Сейчас увидел на хайве использование этого кастом скрипта для предотвращения утечек. Насколько понял, это корректно работает при использовании мгновенных действий с группами, а не для сохранения групп на какое-то время, чтобы потом произвести там действия. Это гораздо удобнее, как мне кажется, чем создавать переменную для группы, которую потом удалять. Но у нас ни разу не видел использования подобного CS. Может он дискредитирован как-то, либо используется лишь на патчах до 1.26а, почему это не предлагают?
Принятый ответ
ForGroupBJ
function ForGroupBJ takes group whichGroup, code callback returns nothing
local boolean wantDestroy = bj_wantDestroyGroup
set bj_wantDestroyGroup = false
local boolean wantDestroy = bj_wantDestroyGroup
set bj_wantDestroyGroup = false
call ForGroup(whichGroup, callback)
if (wantDestroy) then
call DestroyGroup(whichGroup)
endif
endfunction
call DestroyGroup(whichGroup)
endif
endfunction
Судя по BJ функции, сразу после первого выбора группы bj_wantDestroyGroup станет фолс, и следующая группа не удалица.
Тобишь перед каждой forgroup нада делать CS: set bj_wantDestroyGroup = true, а не один раз в начале триггера.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Jack-of-shadow: согласен проще темповую глобалку на все. так как варкрафт потоки выполняет последовательно. Параллельно не может играть обрабатывать их. Поэтому вряд ли перезапишут эту глобалку
Отредактирован 8gabriel8
Steal nerves, как бы посмотреть в Function List могу, но рассматривать и вникать буду очень долго. Просто почти не вижу причин, когда может пригодиться jass, что требуется, то покрывается возможностями GUI, не считая утечек, которые не вызывают забот в кастомных кампаниях, либо очень специфических проблем, типа воспроизведения нестандартно названной анимации, либо сброс уровня сложности кастомной кампании.
Отредактирован Jack-of-shadow
local boolean wantDestroy = bj_wantDestroyGroup
set bj_wantDestroyGroup = false
call DestroyGroup(whichGroup)
endif
endfunction