Во время отладки приходит 4, ждет 3 секунды и прилетает destroy и далее 5 6 7 8 ....
Если убрать call DestroyEffectTimer и оставить только call AddSpecialEffectLoc, то всё будет нормально.
Но такого быть не должно, DestroyEffectTimer же не возвращает ничего
function DestroyEffectTimer takes effect e returns nothing
    call PolledWait(3.00)
    call DestroyEffect(e)
    call DisplayTextToPlayer(Player(0),0,0,"destroy")
endfunction

function BansheeZombies takes unit u, boolean b returns nothing
    local location pU
    local location p
    local integer i = 0
    local unit uEffect
    if (b == true) then
    call PolledWait (1.00)
    else
    call PolledWait (7.00)
    endif
    if ((udg_end == false) and (IsUnitDeadBJ(u) == false)) then
        set pU = GetUnitLoc(u)
        set p = PolarProjectionBJ(pU, 100.00, GetUnitFacing(u))
        call RemoveLocation(pU)
        set pU = null
        set i = 0
        call DisplayTextToPlayer(Player(0),0,0,"start")
        loop
        exitwhen i > 2
            call DisplayTextToPlayer(Player(0),0,0,"1")
            set uEffect = CreateUnitAtLoc(GetOwningPlayer(u), 'n00A', p, GetUnitFacing(u))
            call DisplayTextToPlayer(Player(0),0,0,"2")
            call GroupAddUnit(udg_globalUnitGroup, uEffect)
            call DisplayTextToPlayer(Player(0),0,0,"3")
            set pU = GetUnitLoc(uEffect)
            call DisplayTextToPlayer(Player(0),0,0,"4")
            call DestroyEffectTimer(AddSpecialEffectLoc ("Abilities\\Spells\\Undead\\RaiseSkeletonWarrior\\RaiseSkeleton.mdl", pU))
            call DisplayTextToPlayer(Player(0),0,0,"5")
            call RemoveLocation(pU)
            call DisplayTextToPlayer(Player(0),0,0,"6")
            set pU = null
            call DisplayTextToPlayer(Player(0),0,0,"7")
            set uEffect = null
            call DisplayTextToPlayer(Player(0),0,0,"8")
        set i = i + 1
        call DisplayTextToPlayer(Player(0),0,0,"9")
        endloop
        call DisplayTextToPlayer(Player(0),0,0,"end")
        call RemoveLocation(p)
        call RemoveLocation(pU)
        set p = null
        set pU = null
        set uEffect = null
        set i = 0
    endif
    if ( (udg_end == false) and (IsUnitDeadBJ(u) == false) ) then
        call BansheeZombies (u, false)
    endif
endfunction

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

Шо за дерьмо! По изощеренне то не мог удаление эффектов сделать? видел код этих вейтов, там наверняка лимит операций уже... Да и вовсе не надо использовать вейты для задержек, уже все изсписано - ненадо вейтов, небудет ничего работать хоть вы обосритесь, есть хештаблица + таймер, забудьте про вейты, за одно и баги связанные с ними...
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
1
6 лет назад
1
ты его удаляешь в ожидании таймера как затухнет анимация
2
32
6 лет назад
2
Шо за дерьмо! По изощеренне то не мог удаление эффектов сделать? видел код этих вейтов, там наверняка лимит операций уже... Да и вовсе не надо использовать вейты для задержек, уже все изсписано - ненадо вейтов, небудет ничего работать хоть вы обосритесь, есть хештаблица + таймер, забудьте про вейты, за одно и баги связанные с ними...
Принятый ответ
1
17
6 лет назад
1
вейты не робят если не находяться при вызове трига
1
18
6 лет назад
Отредактирован Hodor
1
quq_CCCP:
Шо за дерьмо! По изощеренне то не мог удаление эффектов сделать? видел код этих вейтов, там наверняка лимит операций уже... Да и вовсе не надо использовать вейты для задержек, уже все изсписано - ненадо вейтов, небудет ничего работать хоть вы обосритесь, есть хештаблица + таймер, забудьте про вейты, за одно и баги связанные с ними...
лень было на ХТ и таймере делать, думал так прокатит. Да и фиг с этим, внес эффекты в массив и в этой же функции удалил их через некоторое время.
1
21
6 лет назад
1
Для отладки есть специальная функция BJDebugMsg( string ). А если есть JNGP, то он еще красиво светится красным цветом.
	debug call BJDebugMsg( "start" )
2
32
6 лет назад
2
FabulousTiger, лень? Серьёзно? Три строчки вместо этой писанины?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.