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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
6
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 считает локации
Значит из за того что не обнулял.
10
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 считает локации
Значит из за того что не обнулял.
Сделал вот так, действие выбрать юнитов и цикл мне нужно обязательно, все равно прибавляется одна утечка (теперь иногда)
Загруженные файлы
6
Lotus101, ни че не понял зачем ты два раза делаешь одно и тоже? выбрал юнитов далее через ForGroup(udg_Croup,function нужная функция) лан в общем лучше делай как на втором скрине там незначительная утечка
10
Tumart:
Lotus101, ни че не понял зачем ты два раза делаешь одно и тоже? выбрал юнитов далее через ForGroup(udg_Croup,function нужная функция) лан в общем лучше делай как на втором скрине там незначительная утечка
Все все дошло, спасибо помогло. Поменял последняя группа юнитов на Group больше утечек нет вообще (хотя при первом использовании способности пропдают 2 утечки, потом прибавляется одна а дальше ничего не меняется, странно) Еще вопрос, все эти скрипты обязательно писать надо, может какие-то лишние?
6
Lotus101, хм ну можно и так ) нет получается лишних нет. А лучше сделал бы как на втором скрине просто убери удалить юнитов из группы и обнули
10
Tumart:
Lotus101, хм ну можно и так ) нет получается лишних нет. А лучше сделал бы как на втором скрине просто убери удалить юнитов из группы и обнули
А зачем в скрипте call GroupEnumUnitsInRangeOfLoc(udg_Group, udg_Point,200., null) после Point, нет пробела и после 200 точка это важно?
6
Lotus101, да нет. Точка означает что это реальное число пробел вапще ни че не значит
10
Вот как должен выглядеть полностью правильный триггер без утечек, единственная утечка создастся только при первом использовании, это я так понял переменная группы, ее обнулять нельзя, иначе скил будет работать только раз.
Загруженные файлы
Принятый ответ
20
удаляй группу, а потом используй действие set variable - группа такая-то
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.