Здравствуйте. На ваш взгляд, что может вызвать утечки в этой системе инкома и потребления? Прилагаю довольно много скринов. Понимаю, объем большой, просто прошу хотя бы глазами пробежаться, вдруг что очевидное не понимаю (статьи перечитывал, но кроме групп, точек и не удаленных спецэффектов не особо что-то понял)
Группу ALLPlayers я в инициализации занес.
Скрин икома золота
Скрин икнома древесины
Скрин системы потребления
Скрины запуска их систем, которые работают по таймеру.
Если нужно еще больше информации, пишите, очень хочется основу хотя бы проверить на оптимизацию)
Заранее спасибо.

Ну вроде так двигаюсь. Ща протестирую, в теории должно работать.

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
quq_CCCP, работа с группами не утекает же в данном случае, юзаются темповые глобалки которые уничтожаются

Сам утечек не обнаружил, автор просто хочет найти изъяны в системе или у него карта вылетает после продолжительной игры? Можешь закинуть счётчик хэндлов для этого триггера, он в состоянии определить утечки на гуи
14
Скажем так, карта очень огромная во всех планах, в том числе и триггерах, поэтому иду методом исключения. Если приду к выводу, что вот эта система надежная, переключусь на другие триггеры (скорее всего тут тоже буду выкладывать). А так, да, карта вылетает после продолжительной игры. Счетчик хендлов давно стоит(на старте 8к, но потом может даже при бездействии скакнуть до 52к).
Хотя первостепенно конечно задача самому научиться находить утечки, их типы (вдруг чего по теме не понял). И вот такой разбор примера на практике очень поможет.
28
quq_CCCP, а, да, точно
function GetUnitsInRectMatching takes rect r, boolexpr filter returns group
    local group g = CreateGroup()
    call GroupEnumUnitsInRect(g, r, filter)
    call DestroyBoolExpr(filter)
    return g
endfunction
локалка не обнуляется в создании группы
14
Так, значит проблема в создании групп? Я гуишник, мой максимум это локальные переменные через кастомскрипт.
Потому, что кроме call destroygroup я должен сделать? Если спрашиваю очевидное, можете в статью какую-нибудь отправить.
UPD: на отдельной версии снес почти все остальные триггеры, скачок с 8 до 52 сохранился. Так что либо проблема тут, либо вообще может не в триггерах.
28
VinerX, делать выбор группы через кастомскрипт

т.к. ты гуишник могу посоветовать в редакторе переменных создать переменную булекспра (она в самом низу списка где-то находится), потом через кастом скрипт call GroupEnumUnitsInRect( udg_Group, bj_mapInitialPlayableArea, udg_Boolexpr ), можешь дальше обращаться к этой группе на гуи, очистив потом

в данном случае оно выбирает всех юнитов на карте, но через условия указанные в твоём булекспре

есть так же
native GroupEnumUnitsOfPlayer takes group whichGroup, player whichPlayer, boolexpr filter returns nothing
это выбор всех юнитов игрока

ну и
native GroupEnumUnitsInRangeOfLoc takes group whichGroup, location whichLocation, real radius, boolexpr filter returns nothing

остальное смотри уже сам, по необходимости
14
Перечитал несколько раз, чет нету. В рефордже она остается?
Загруженные файлы
28
вот пример юза

Перечитал несколько раз, чет нету. В рефордже она остается?
без понятия, я за реф не шарю, мб как-то по другому называется, на скрине определить это не могу
Загруженные файлы
14
Отрыл. Вроде понимаю как ты все предлагаешь делать, другое дело сейчас подумаю как сделать чтобы этот тип переменной мне был доступен.
UPD. Кароче я могу обойти этот запрет банальным копированием переменной. Тем не менее, если её открыть в редакторе объектов, она не будет никакого типа. Огромное спасибо за наводку и пример! Сейчас начну попытки применения уже в карте.
Загруженные файлы
28
VinerX, лол, то есть в моей карте ты эту переменную видишь, она там есть в наличии? В твоей собственной её нет?

если там нельзя её юзать каким-то чудом то придётся учить джасс)
попробуй скопировать триггер и перенести в свою карту, переменная должна скопироваться если есть соответствующая галочка в редакторе, при переносе триггеров копировать переменные
14
rsfghd:
VinerX, лол, то есть в моей карте ты эту переменную видишь, она там есть в наличии? В твоей собственной её нет?

если там нельзя её юзать каким-то чудом то придётся учить джасс)
попробуй скопировать триггер и перенести в свою карту, переменная должна скопироваться если есть соответствующая галочка в редакторе, при переносе триггеров копировать переменные
Да, я её вижу, не вижу только её тип. Работает нормально, буду просто копированием её получать.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.