call FlushChildHashtable( Hash, id )
call FlushChildHashtable( Hash, id2 )
call FlushChildHashtable( Hash, SpellId )
call FlushChildHashtable( Hash, GetHandleId( TimerAct ) )
Из-за FlushChildHashtable те что выше не работает конец кода где обнуляются переменные и вывод debug текста, потому что если их стереть всё работает...
set Dummy = null
set Caster = null
set TimerAct = null
if Caster == null then
call BJDebugMsg("+")
else
call BJDebugMsg("-")
endif
`
ОЖИДАНИЕ РЕКЛАМЫ...
6
Сначала обнуляй переменные, а потом уже FlushChildHashtable
Ответы (7)
9
IzobretatelBoom, Это как вариант, или важно FlushChildHashtable ставить внизу?
28
значит обрыв потока происходит, возможно не инициализировал какую-то переменную
9
rsfghd, Вот это мне помогло! Теперь я понимаю насколько важно делать дебаг сообщения после некоторых действий)) Во первых переменные юнита и группы у меня инициализируются позже чем я могу прекратить каст на ESC, при прекращении каста юнит убивался и группа уничтожалась, во вторых у меня id2 который не пересохранялся, и в итоге при флюше он был без значения))) Я поставил проверку при убийстве юнита и уничтожении группы что эти переменные != null. И ещё даже пришлось переменным юнита и группы задать изначально null значение, ибо при проверке они её не проходили)))))))
Спасибо.
28
LastUchiha, красавчик, тоже мучился с этим в первый раз, когда изучал джасс
9
rsfghd, xD, я теперь даже функции для удаления таймеров, киллов юнитов, удаления юнитов и уничтожение групп написал... Кстати не расскажешь как работает поток в варике? Или мб статья есть какая?
Чтобы оставить комментарий, пожалуйста, войдите на сайт.