Способность по механике аналогичная самопожертвованию у послушника, юнит может применить её только на определённое здание и после применения его похилит, а скилл уйдёт в кд. Думал вариант сбрасывать кд скилла если выбрано не то здание и не давать никакого эффекта, но не нашёл как сбросить кд только одной способности, а не всех.

Принятый ответ

вроде как кулдаун не запускается, если в момент применения способности юнита переместить триггером в какое-нибудь другое место (например, на несколько точек вправо)
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
26
7 лет назад
Отредактирован Extremator
2
ща скину функцию
// Reset CD of one Ability
function UnitResetCooldownAbility takes unit u, integer i returns nothing
    local integer l = GetUnitAbilityLevel(u,i)
    if l > 0 then
        call UnitRemoveAbility(u,i)
        call UnitAddAbility(u,i)
        call SetUnitAbilityLevel(u,i,l)
    endif
    set u = null // ololo
endfunction
Используешь так, u = юнит которому нужно сбросить кд скилла, i = равкод нужного скилла
call UnitResetCooldownAbility( u, i )
или так (юнит - тот кто вызвал триггер, скилл - который вызвал триггер)
call UnitResetCooldownAbility( GetTriggerUnit(), GetSpellAbilityId() )
0
9
7 лет назад
0
Extremator: спасибо, я не требую уже триггерно, скорее всего это не реально. Обьясни пожалуйста что здесь юнит, что способность, а что здание
1
20
7 лет назад
Отредактирован biridius
1
вроде как кулдаун не запускается, если в момент применения способности юнита переместить триггером в какое-нибудь другое место (например, на несколько точек вправо)
Принятый ответ
0
16
7 лет назад
0
Extremator, ты специально обнулил параметр функции, чтобы кто-то спросил зачем ты это делаешь?
0
9
7 лет назад
0
biridius:спасибо огромное, кулдаун и эффект действительно не появляются если сдвинуть юнита, при этом даже если сдвигать его на 0; 0; по отношению к его позиции, правда расходуется мана но это не важно, спасибо огромное.
0
26
7 лет назад
Отредактирован Extremator
0
спасибо, я не требую уже триггерно, скорее всего это не реально. Обьясни пожалуйста что здесь юнит, что способность, а что здание
Ты можешь создать левый триггер, перед запуском которого будешь забивать две переменных (юнита и абилку). Но это чисто для того, что бы не повторять одно и то же каждый раз (если тебе надо будет сбрасывать КД у других скиллов). А так вообще - просто запомнить уровень скилла и удалишь его, и тут же добавь обратно (верни уровень, из записи). Вот и всё.
вроде как кулдаун не запускается, если в момент применения способности юнита переместить триггером в какое-нибудь другое место (например, на несколько точек вправо)
или любым другим способом сбить приказ каста
можно дать другой приказ, или двинуть юнита (работает кстати не всегда)
ты специально обнулил параметр функции, чтобы кто-то спросил зачем ты это делаешь?
а то ж
Чтобы оставить комментарий, пожалуйста, войдите на сайт.