KV => Function => Modifier

EnDronist

Продвинутый
28 Апр 2016
231
0
Проект
Защитники Изобилия | Defenders of Abundance
Не передаётся информация о способности (предмете). Как получить этот table в модификаторе?
npc_items_custom.txt:
KV:
"BaseClass"                        "item_datadriven"
...
"OnSpellStart"
{
    "RunScript"
    {
        "ScriptFile"           "items/item_custom.lua"
        "Function"             "item_custom_on_spell_start"
    }

}
items/item_custom.lua:
Lua:
LinkLuaModifier("modifier_item_custom", "modifiers/modifier_item_custom", LUA_MODIFIER_MOTION_NONE)
function item_custom_on_spell_start(keys)
    print(keys.ability) -- Есть информация
    keys.caster:AddNewModifier(keys.caster, keys.ability, "modifier_item_custom", {duration = -1})
end
modifiers\modifier_item_custom.lua:
Lua:
modifier_item_custom = class({})
...
function modifier_item_custom:OnCreated()
    print(self:GetAbility()) -- => nil
end
 

HappyFeedFriends

Друзья CG
14 Авг 2017
540
32
Проект
Battle Heroes Arena
Не передаётся информация о способности (предмете). Как получить этот table в модификаторе?
npc_items_custom.txt:
KV:
"BaseClass"                        "item_datadriven"
...
"OnSpellStart"
{
    "RunScript"
    {
        "ScriptFile"           "items/item_custom.lua"
        "Function"             "item_custom_on_spell_start"
    }

}
items/item_custom.lua:
Lua:
LinkLuaModifier("modifier_item_custom", "modifiers/modifier_item_custom", LUA_MODIFIER_MOTION_NONE)
function item_custom_on_spell_start(keys)
    print(keys.ability) -- Есть информация
    keys.caster:AddNewModifier(keys.caster, keys.ability, "modifier_item_custom", {duration = -1})
end
modifiers\modifier_item_custom.lua:
Lua:
modifier_item_custom = class({})
...
function modifier_item_custom:OnCreated()
    print(self:GetAbility()) -- => nil
end
Линкани модификатор не в файле с функцией,а в addon_game_mode.lua. Возможно не читает линк просто,так как у тебя онли функция запускается.
 

EnDronist

Продвинутый
28 Апр 2016
231
0
Проект
Защитники Изобилия | Defenders of Abundance
Линкани модификатор не в файле с функцией,а в addon_game_mode.lua. Возможно не читает линк просто,так как у тебя онли функция запускается.
Модификатор-то у меня накладывается, т.е. Линк работает. Кароч, я вчера просто полностью переделал предмет с item_datadriven на item_lua. Теперь информация хорошо передаётся напрямую со способности, и я могу её найти в модификаторе с помощью self:GetAbility()
 

EnDronist

Продвинутый
28 Апр 2016
231
0
Проект
Защитники Изобилия | Defenders of Abundance
Нашёл ответ. Нужно было принимать таблицу params:
Lua:
function modifier_item_custom:OnCreated(params)
    print(self:GetAbility()) -- => table
end
 
Реклама: