Сделал простенький гуи-триггер на способность героя "аура антимагии", по аналогии с аурой рубика. Каждую секунду он генерит 12 новых объектов в память игры, то есть, я так понимаю, каждый цикл числа "А" генерит 1 утечку. Цикл используется потому, что карта мультиплеер, и каждый игрок в теории может нанять героя "Кария".
Не могу понять, где здесь течь.
ПС. группа All_Heroes это просто все герои в игре. Они туда заносятся при обучении и больше не удаляются оттуда.

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
19
4 года назад
0
Похожие вопросы:

ответ
Попробуй call DestroyGroup(udg_UNOSITMENIA) выбор юнитов тоже создаёт утечки.
ответ
nvc123, внутри GetRectCenter нет утечки
// blizzard.j:1772
function GetRectCenter takes rect whichRect returns location
    return Location(GetRectCenterX(whichRect), GetRectCenterY(whichRect))
endfunction
а эвент регистрируется 1 раз, так что можно забить
// blizzard.j:7959
function TriggerRegisterEnterRectSimple takes trigger trig, rect r returns event
    local region rectRegion = CreateRegion()
    call RegionAddRect(rectRegion, r)
    return TriggerRegisterEnterRegion(trig, rectRegion, null)
endfunction
Другое дело, что у order есть утечка, но это нативно, она минимальная и это никак не исправляется.

0
26
4 года назад
0
а с чего вы взяли что утечка?
0
20
4 года назад
0
Hate, я использую триггер для их выявления. Он уже не раз доказывал безошибочность своей работы.
2
24
4 года назад
2
Добавь проверку на существование героя чтобы не создавать точку и группу для несуществующих героев. Не факт что поможет, но в любом случае пригодится.
0
19
4 года назад
0
По идеи не должно быть. Попробуй проверить строку где ты находишь юнитов.
0
26
4 года назад
0
Yury13, попробуй после удаления группы/точки затирать саму переменную.
Теперь используемая тобой система показывает другие значения? или те же?
+ убрать периодик, и добавить таймер
+ заносить в проверку только используемых героев
+ проверить компоненты фильтра в создании группы
Принятый ответ
0
20
4 года назад
0
Extremator, имеет значение, однократный таймер, который постоянно перезапускается, или сразу можно ставить многократный?
0
26
4 года назад
0
Yury13:
Extremator, имеет значение, однократный таймер, который постоянно перезапускается, или сразу можно ставить многократный?
Таймер можешь работать как одноразово, так и многоразово.
Но отличается он периодика тем, что таймер можно остановить.
А периодик будет работать всю игру, но не вызывать действия (если триггер выключен).

Yury13:
сразу можно ставить многократный?
В твоей ситуации - ставишь старт многократного, в тот самый момент, когда один из героев получает (прокачивает) эту ауру, для которой и делаются все проверки.
0
20
4 года назад
0
Extremator, затирать переменную... Это как?)

Я использую следующую систему.
function Trig_check_Actions takes nothing returns nothing
local timer Timer = CreateTimer ()
local string S = I2S(GetHandleId(Timer)-0x10000)
call BJDebugMsg(S)
call DestroyTimer (Timer)
set S = null
set Timer = null

endfunction
function InitTrig_check takes nothing returns nothing
set gg_trg_check = CreateTrigger( )
call TriggerRegisterTimerEvent( gg_trg_check, 0.1, true )
call TriggerAddAction ( gg_trg_check, function Trig_check_Actions )
endfunction

Сейчас я выяснил, что болшую утечку вызывает как раз вторая часть моего триггера, которая работает с группой All-Heroes.
0
26
4 года назад
Отредактирован Extremator
0
Yury13:
затирать переменную... Это как?)
set u = null
set g = null
set l = null

Yury13:
Сейчас я выяснил, что болшую утечку вызывает как раз вторая часть моего триггера, которая работает с группой All-Heroes.
Можно попробовать перекопировать ВСЁ содержимое в кастом-конструкцию, и затестить её. Если покажет разницу - значит косяк под капотом. (и ты ничего с этим не сделаешь... а нужно ли?)
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.