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

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
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
Загруженные файлы
14
local force f = CreateForce()
То есть каждый раз создает команду, получается?
UPD: Ща посмотрю твой пример.

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

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

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

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