|
|
| (не показано 148 промежуточных версий этого же участника) |
| Строка 1: |
Строка 1: |
| local weaponData = mw.loadData("Модуль:IanComradeBot/prototypes/weapon.json/data")
| |
|
| |
|
| local p = {}
| |
|
| |
| function p.main(frame)
| |
| local mode = frame.args[1]
| |
| local id = frame.args[2]
| |
|
| |
| if not id then
| |
| return "Ошибка: не задан параметр id."
| |
| end
| |
|
| |
| local entry = nil
| |
| for _, weapon in ipairs(weaponData) do
| |
| if weapon.id == id then
| |
| entry = weapon
| |
| break
| |
| end
| |
| end
| |
|
| |
| if not entry then
| |
| return "Оружие с id '" .. tostring(id) .. "' не найдено."
| |
| end
| |
|
| |
| if mode == "melee" then
| |
| local melee = entry.MeleeWeapon
| |
| if not melee then
| |
| return "Нет данных о MeleeWeapon для оружия '" .. tostring(id) .. "'."
| |
| end
| |
|
| |
| local oneHandDamage = melee.damage and melee.damage.types
| |
| if not oneHandDamage then
| |
| return "Нет данных о повреждениях (MeleeWeapon.damage.types) для оружия '" .. tostring(id) .. "'."
| |
| end
| |
|
| |
| local twoHandDamage = entry.DamageOtherOnHit
| |
| and entry.DamageOtherOnHit.damage
| |
| and entry.DamageOtherOnHit.damage.types
| |
|
| |
| local lines = {}
| |
|
| |
| if twoHandDamage then
| |
| -- Секция для одноручного хвата
| |
| table.insert(lines, "В одноручном хвате:")
| |
| for dmgType, value in pairs(oneHandDamage) do
| |
| table.insert(lines, value .. " " .. dmgType)
| |
| end
| |
|
| |
| -- Секция для двуручного хвата
| |
| table.insert(lines, "В двуручном хвате:")
| |
| for dmgType, value in pairs(twoHandDamage) do
| |
| table.insert(lines, value .. " " .. dmgType)
| |
| end
| |
| else
| |
| for dmgType, value in pairs(oneHandDamage) do
| |
| table.insert(lines, value .. " " .. dmgType)
| |
| end
| |
| end
| |
|
| |
| return table.concat(lines, "<br />")
| |
|
| |
| elseif mode == "attackRate" then
| |
| local melee = entry.MeleeWeapon
| |
| if not melee then
| |
| return "Нет данных о MeleeWeapon для оружия '" .. tostring(id) .. "'."
| |
| end
| |
|
| |
| if melee.attackRate then
| |
| return tostring(melee.attackRate)
| |
| else
| |
| return "1"
| |
| end
| |
|
| |
| else
| |
| return "Неверный режим: " .. tostring(mode)
| |
| end
| |
| end
| |
|
| |
| return p
| |