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

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
6
8 лет назад
Отредактирован Tumart
0
Юниты в радиусе содержит такую функцию создающюю утечку группы
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
Делай как на втором скрине только в CustomScript добавляй вот эту функцию вместо(Юниты в радиусе)
GroupEnumUnitsInRangeOfLoc(group, whichLocation, radius, null)
А лучше используй GroupEnumUnitsInRange юзай не точки а координаты x,y
0
10
8 лет назад
0
Tumart:
Юниты в радиусе содержит такую функцию создающюю утечку группы
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
Делай как на втором скрине только в CustomScript добавляй вот эту функцию вместо(Юниты в радиусе)
GroupEnumUnitsInRangeOfLoc(group, whichLocation, radius, null)
А лучше используй GroupEnumUnitsInRange юзай не точки а координаты x,y
А на гуи можно пожалуйста?
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=Юниты в радиусе?
Если я его удалю как тогда работать скил будет?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.