[Ability&Modifier] SwapAbilities

EnDronist

Продвинутый
28 Апр 2016
231
0
16
20
Проект
Защитники Изобилия | Defenders of Abundance
Реакции
0 0 0
#1
Пытался сделать переключаемую способность, как Nightmare у Bane или Ice Blast у Ancient Apparation, но столкнулся с проблемой при обратном переключении, которое срабатывает, когда уничтожается бафф, накладывающийся на героя при смене изначальной способности:


Lua:
function SomeText(keys)
    -- Ability Datadriven, Lua Function with arguments "main_ability_name" and "sub_ability_name"
    print(keys.main_ability_name,keys.sub_ability_name)
    print(keys.target,keys.caster)
    if target == caster then
        keys.caster:SwapAbilities(keys.main_ability_name,keys.sub_ability_name,false,true) -- Криво свапает
        if keys.main_ability_name == keys.check_ability then
            local level_ability = keys.caster:FindAbilityByName(keys.sub_ability_name)
            if level_ability:GetLevel() ~= 1 then level_ability:SetLevel(1) end
        end
    end
end
 

vulkantsk

Друзья CG
21 Июн 2017
663
63
28
17
https://steamcommunity.com/profiles/76561198307890
www.dotabuff.com
Проект
Roshan defense
Реакции
71 0 5
#2

EnDronist

Продвинутый
28 Апр 2016
231
0
16
20
Проект
Защитники Изобилия | Defenders of Abundance
Реакции
0 0 0
#3
Оп, а вот и нашёл проблему. Т.к. способность менялась при её использовании, а использование - целенаправленное, то скрипт запускался, но не менял способность на другую, хотя визуально она менялась, что странно. Но в первую очередь проблема заключалась в том, что target и caster были написаны без обращения к переменным класса keys, мда. (Псс, как пометить тему, как решённую?)
 
Реклама: