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

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

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

Да, утечек нет. Вот просто огромное спасибо, задача и так висела более года, без вас бы прорыва не было. В решение закреплю пост с окончательным решением, так как по сути тут ответ постепенно развивался по всем сообщениям, чтобы в итоге триггер пришел к таковому виду.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
27
3 года назад
Отредактирован rsfghd
1
PT153, не помню тестировал ли я на пустой карте это, но вроде ничего не утекало, но опять же, я полагался на счётчик хэндлов и опять же, я не помню результаты тестирования толком, это скорее чуйка что-ли(?), посмотрю через час

Так, то есть логические операции с условиями что-ли утекают?
похоже на то)
1
28
3 года назад
1
VinerX, так алло, ты группу не уничтожаешь, вот и утечки.

Так, то есть логические операции с условиями что-ли утекают?
Это нужно отдельно проверять, тут ты их убрал, поэтому дело точно не в них. Группу уничтожай, и не будет утечек.
0
14
3 года назад
0
Постепенное отключение всего и вся
Утечки продолжают быть. Что, значит не в том дело?
Загруженные файлы
1
28
3 года назад
1
Сейчас вообще глупость, у тебя группа удаляется и не пересоздаётся.

На последнем скрине утечек нет.
1
27
3 года назад
1
PT153, в группу юниты берутся через GroupEnum, а не гуишное чё-то там, поэтому достаточно просто очистить, если удалить, то и набрать в группу нельзя будет

На последнем скрине утечек нет.
там и смотреть не на что
0
14
3 года назад
Отредактирован VinerX
0
В общем, провел большую работу. А именно отрубил все, а затем пошагово все включал, ожидая утечки. И знаете на чем они появляются? На показе текста игроку! Даже перепроверил второй разом. Если включу то на скрине со стрелкой, привет 52 тысачи. Почему? Хз.
UPD: утечка возникает, когда я пытаюсь выбранному игроку текст показать(остальное не важно). Тест еще один показал.

Кроме того, хочу выразить огромную благодарность тем кто тут сидел и писал сообщения. Лайков сколько смог раздал, если это имеет значение)
Загруженные файлы
1
27
3 года назад
1
VinerX, вроде player утекает, если не ошибаюсь, и нужно было обнулять и его

rsfghd, это предположение, возможно я всё же неправ.
проверил, похоже кешируются, так что всё хорошо с булекспром


call DisplayTextToForce( GetPlayersMatching(Condition(function Trig_013_Func001001001)), "TRIGSTR_1255" )
->
тут всё ок
function DisplayTextToForce takes force toForce, string message returns nothing
    if (IsPlayerInForce(GetLocalPlayer(), toForce)) then
        // Use only local code (no net traffic) within this block to avoid desyncs.
        call DisplayTextToPlayer(GetLocalPlayer(), 0, 0, message)
    endif
endfunction
а вот тут привет утечки, форс не удаляется и не обнуляется
function GetPlayersMatching takes boolexpr filter returns force
    local force f = CreateForce()
    call ForceEnumPlayers(f, filter)
    call DestroyBoolExpr(filter)
    return f
endfunction

поможет только проделывание тех же действий, что и для группы, только через
call ForceEnumPlayers(f, filter)
и с переменной типа force
Загруженные файлы
0
14
3 года назад
Отредактирован VinerX
0
local force f = CreateForce()
То есть каждый раз создает команду, получается?
UPD: Ща посмотрю твой пример.

Понял, карта старая. Ну щас обдумаю как сделать аналогию. Неужта финишная прямая по оптимизации этого трига...
1
27
3 года назад
1
VinerX, создаёшь глобальную переменную форса (группа игроков), закидываешь туда игроков через булекспр + кастомскрипт и очищаешь группу игроков

прямо как с группой, ничего сложного
2
14
3 года назад
2
Ну вроде так двигаюсь. Ща протестирую, в теории должно работать.

Да, утечек нет. Вот просто огромное спасибо, задача и так висела более года, без вас бы прорыва не было. В решение закреплю пост с окончательным решением, так как по сути тут ответ постепенно развивался по всем сообщениям, чтобы в итоге триггер пришел к таковому виду.
Загруженные файлы
Принятый ответ
1
27
3 года назад
1
VinerX, вообще можно непосредственно одному игроку было показывать
call DisplayTextToPlayer( GetEnumPlayer( ), 0, 0, udg_Text )
такая штука покажет текст в переменной Text выбранному игроку
0
28
3 года назад
Отредактирован PT153
0
вроде player утекает, если не ошибаюсь, и нужно было обнулять и его

UPD: утечка возникает, когда я пытаюсь выбранному игроку текст показать(остальное не важно). Тест еще один показал.
Если это так, то бред, ибо там должны использоваться созданные заранее форсы для игрока.
1
27
3 года назад
1
PT153, я уже показал что там утекает
Чтобы оставить комментарий, пожалуйста, войдите на сайт.