Как устранить Утечку в условии
Помогите как убрать утечку в этом триггере изображённом на скрине. Как я понял утечку создаёт условие, как бы я не пытался я так и не понял как его устранить.
Как триггер выглядит на JASS:
function Trig_init_Conditions takes nothing returns boolean
if ( not ( CountUnitsInGroup(GetUnitsInRectAll(gg_rct_Oblast)) == 0 ) ) then
return false
endif
return true
endfunction
function Trig_init_Actions takes nothing returns nothing
call DisableTrigger( GetTriggeringTrigger() )
call CreateNUnitsAtLoc( 1, 'hfoo', Player(0), GetRectCenter(gg_rct_Oblast), bj_UNIT_FACING )
call TriggerSleepAction( 20.00 )
call EnableTrigger( GetTriggeringTrigger() )
endfunction
===========================================================================
function InitTrig_init takes nothing returns nothing
set gg_trg_init = CreateTrigger( )
call TriggerRegisterTimerEvent( gg_trg_init, 0.01, true)
call TriggerAddCondition( gg_trg_init, Condition( function Trig_init_Conditions ) )
call TriggerAddAction( gg_trg_init, function Trig_init_Actions )
endfunction

Лучший ответ:
Ты создаешь в "Trig_init_Conditions" группу которую потом не удаляешь.
Если вкратце: сохрани группу в переменную и после подсчитывания количества юнитов в ней -- удаляй ее.



Просмотров: 269

AlexSan #1 - 4 месяца назад 0

Ты создаешь в "Trig_init_Conditions" группу которую потом не удаляешь.
Если вкратце: сохрани группу в переменную и после подсчитывания количества юнитов в ней -- удаляй ее.
quq_CCCP #2 - 4 месяца назад 0
Эмм не писать на гуи вовсе, у вас есть таймер, на кой черт вам нужен вейт?
Что мешает каждые 20 секунд создавать пехотинца в области, причем ненадо использовать локейшины - это тоже утечки.
bifurcated #3 - 4 месяца назад 0
AlexSan, Я делал что-то типо этого. Добавляли функцию - установить Group = Юниты в области OBLAST, потом через личный сценарий уделял её, но утечка всё-равно не уходила. Я пытался раскрыть функцию - CountUnitsInGroup, нажав по ней ctrl, но у меня карта не открывалась видимо я что-то не то делал.
quq_CCCP, Да это пример, я хочу просто устранить утечку в условии: if ( not ( CountUnitsInGroup(GetUnitsInRectAll(gg_rct_Oblast)) == 0 ) ) then
return false
endif
return true
pro100master #4 - 4 месяца назад 0
bifurcated, научиш, не бывает который человек с 1 раза создать идеальный jass.. Мне вот хватило понять суть jass 2 недели...
Это сообщение удалено
quq_CCCP #6 - 4 месяца назад 0
Что собрать всех юнитов на опред области в группу, по условию - живой, не здание, ну и так далее, потом проверить а больше ли 0 юнитов в группе?
Так сложно? Группа в виде глобальной переменной, перед каждым использованием очищается.