Добавлен KaneThaumaturge
Есть два примера, один не вызывает утечки, второй вызывает.
1 пример:
1 пример:
Он не вызыввает утечек, хоть там и не стоит call DestroyGroup. Почему?
2 пример:
2 пример:
Вызывает утечки, почему? Как исправить?
Принятый ответ
Достаточно посмотреть как устроены эти бж функции и все будет понятно.
function OnlyAliveSourcess takes nothing returns boolean // эту функция в кастом код карты, в самом вверху.
return GetUnitTypeId( GetFilterUnit( ) ) == 'hsor' and not ( GetWidgetLife( GetFilterUnit( ) ) < 0.405 or IsUnitType( GetFilterUnit( ), UNIT_TYPE_DEAD ) )
endfunction
//...
call GroupClear( udg_Group ) // это в кастом скрипт твоего триггера
call GroupEnumUnitsInRect( udg_Group, bj_mapInitialPlayableArea, Condition( function OnlyAliveSourcess )) // это в кастом скрипт твоего триггера
Вот без утечек и локейшинов и прочих ненужных действий.
Далее уже делай что хочешь с юнитами в группе
Далее уже делай что хочешь с юнитами в группе
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
создавай группу через отдельную переменную-точку
потом удаляй
Тоесть можно юзать второй вариант, и сильных утечек не будет?
ну лучше через координаты делать, если триггер каждый сек работать будет
Отредактирован quq_CCCP
Далее уже делай что хочешь с юнитами в группе
Спасибо больше, функцию OnlyAliveSourcess вставить в вверх. А триггер сделать таким:
quq_CCCP:
Да, я так понял функция фильтрует только волшебниц, но я сделал их для примера просто.
call GroupEnumUnitsInRect( udg_Group, bj_mapInitialPlayableArea, null) Нельзя использовать ли это? А в условие ставить уже в цикле?
Ну то что после == это есть ро код юнита, смотри в редакторе объектов нажав Ctr + D
Да, я увидел, но я же не ограничиваюсь только этим услвоием, у меня куча триггеров с пиком, и все они вызывают утечки, и у всех разные условия. Исправляю мапу свою
call GroupEnumUnitsInRect( udg_Group, bj_mapInitialPlayableArea, null) Нельзя использовать ли это? А в условие ставить уже в цикле?
Вам я так понял координаты не даются...
KaneThaumaturge, не надо, это помедленнее в разы + пикать всех, включая дохлых плохая затея - могут быть баги.
Для этого делаются фильтры на все случаи жизни, штук 10, и используются во всех триггерах.
Хорошо, тогда с ними разберусь уже как-то. Спасибо
Отредактирован quq_CCCP