Как убрать утечку в этой функции, что только не пробовал делать, все равно при использовании способности каждый раз прибавляется одна утечка. (А стандартно при использовании способности в 1 раз прибавляется 2 утечки, тоже интересно почему?) При этом если установить как последняя созданная группа или необъявленная переменная группы такого не будет. Проверял через функцию HandleCounter. Это баг проверки утечек или так и должно быть? Или нужно через джасс?

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

Вот как должен выглядеть полностью правильный триггер без утечек, единственная утечка создастся только при первом использовании, это я так понял переменная группы, ее обнулять нельзя, иначе скил будет работать только раз.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
6
8 лет назад
Отредактирован Tumart
0
Lotus101, ну гуи только через CustomScript он же JassCode
Личный Сценарий GroupEnumUnitsInRangeOfLoc(udg_Group, udg_Point,200., null)
0
10
8 лет назад
0
Tumart:
Lotus101, ну гуи только через CustomScript он же JassCode
Личный Сценарий GroupEnumUnitsInRangeOfLoc(udg_Group, udg_Point,200., null)
Я так понял надо так: call GroupEnumUnitsInRangeOfLoc(udg_Group, udg_Point, 200, null) Хотя и ваше тоже копировал, просто непонятно почему пробела перед 200 нет и после 200 точка. Все равно также прибавляется одна утечка.
0
6
8 лет назад
0
Lotus101, ты удалил действие Установить Group=Юниты в радиусе?
0
10
8 лет назад
0
Tumart:
Lotus101, ты удалил действие Установить Group=Юниты в радиусе?
Если я его удалю как тогда работать скил будет?
0
6
8 лет назад
Отредактирован Tumart
0
Lotus101, ты уже сделал то же самое через CustomScript сначала установи точку Point удали Установить Group... далее Личный Сценарий call GroupEnumUnitsInRangeOfLoc(udg_Group, udg_Point,200., null)
после все остальное как на 2 скрине
и незабывай обнулять udg_Group=null; udg_Point=null
0
28
8 лет назад
Отредактирован nvc123
0
2 скрин не вызывает утечки
только удалять юнитов из группы не обязательно
0
6
8 лет назад
0
nvc123, создается же локальная группа.
0
28
8 лет назад
0
Tumart, ну так он её удаляет потом же
0
6
8 лет назад
Отредактирован Tumart
0
nvc123, вот в этой функции создается локальная группа и не обнуляется
function GetUnitsInRangeOfLocMatching takes real radius, location whichLocation, boolexpr filter returns group
    local group g = CreateGroup()
    call GroupEnumUnitsInRangeOfLoc(g, whichLocation, radius, filter)
    call DestroyBoolExpr(filter)
    return g
endfunction
но да ладно HandleCounter считает локации
Значит из за того что не обнулял.
0
10
8 лет назад
0
Tumart:
nvc123, вот в этой функции создается локальная группа и не обнуляется
function GetUnitsInRangeOfLocMatching takes real radius, location whichLocation, boolexpr filter returns group
    local group g = CreateGroup()
    call GroupEnumUnitsInRangeOfLoc(g, whichLocation, radius, filter)
    call DestroyBoolExpr(filter)
    return g
endfunction
но да ладно HandleCounter считает локации
Значит из за того что не обнулял.
Сделал вот так, действие выбрать юнитов и цикл мне нужно обязательно, все равно прибавляется одна утечка (теперь иногда)
Загруженные файлы
0
6
8 лет назад
0
Lotus101, ни че не понял зачем ты два раза делаешь одно и тоже? выбрал юнитов далее через ForGroup(udg_Croup,function нужная функция) лан в общем лучше делай как на втором скрине там незначительная утечка
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.