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

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

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

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