Не работает эффект.

Добавлен
Собственно, есть у героя заклинание, тот его использует, а у жертвы в течении 10 секунд ежесекундно отбавляется 3 HP. Вот только не работает, а почему не понимаю. Часть кода - конвертация, а часть просто.
Code
function Trig_Shoot1_____________________u_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A00D' ) ) then
        return false
    endif
    return true
endfunction

function Trig_Shoot1_____________________u_Actions takes nothing returns nothing
    local unit u
    set u = GetSpellTargetUnit()
    local integer q
    set q = 0
    if ( GetUnitAbilityLevel( u(), GetSpellAbilityId() )==1 ) then
        loop
        exitwhen q > 9
        set q = q + 1
        call SetUnitLifeBJ( u, ( GetUnitStateSwap(UNIT_STATE_LIFE, u) - 3.00 ) )
        call TriggerSleepAction( 1 )
        endloop
    endif
endfunction

//===========================================================================
function InitTrig_Shoot1_____________________u takes nothing returns nothing
    set gg_trg_Shoot1_____________________u = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Shoot1_____________________u, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Shoot1_____________________u, Condition( function Trig_Shoot1_____________________u_Conditions ) )
    call TriggerAddAction( gg_trg_Shoot1_____________________u, function Trig_Shoot1_____________________u_Actions )
endfunction

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

Ancient:
Вообще-то конвертация вроде все, но не важно. В цикле TriggerSleepAction( 1 ) не юзай.
Ancient, нет, код действий написан вручную, GUI безобразит такие простые вещи, как "Если, то, иначе", циклы, создавая какую-то муть. А почему нельзя использовать ожидание? Сам цикл работает, а вот что с условием не могу понять. :(
В-общем, я не знаю, что за фигня внутри триггера, но, надо было ввести проверку уровня способности не "равно 1", а "меньше 2". Почему так, не понимаю, но рад, что из 17 просмотревших 1, да ответил)
0
25
11 лет назад
0
Вообще-то конвертация вроде все, но не важно. В цикле TriggerSleepAction( 1 ) не юзай.
0
13
11 лет назад
0
Ancient:
Вообще-то конвертация вроде все, но не важно. В цикле TriggerSleepAction( 1 ) не юзай.
Ancient, нет, код действий написан вручную, GUI безобразит такие простые вещи, как "Если, то, иначе", циклы, создавая какую-то муть. А почему нельзя использовать ожидание? Сам цикл работает, а вот что с условием не могу понять. :(
В-общем, я не знаю, что за фигня внутри триггера, но, надо было ввести проверку уровня способности не "равно 1", а "меньше 2". Почему так, не понимаю, но рад, что из 17 просмотревших 1, да ответил)
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.