Как я помню, код, подсвеченный красным цветом, вызывает утечки, чем можно заменить данный фрагмент кода?
Предполагаю, что нужен таймер, но не понимаю, как создать условие, под которое он создастся после начала игры (скриншот с обычного GUI ниже):

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

Как я помню, код, подсвеченный красным цветом, вызывает утечки
Абсолютно точно нет.

Ничем не заменять, абсолютно безвредная функция.
function TriggerRegisterTimerEventPeriodic takes trigger trig, real timeout returns event
    return TriggerRegisterTimerEvent(trig, timeout, true)
endfunction

function TriggerRegisterTimerEventSingle takes trigger trig, real timeout returns event
    return TriggerRegisterTimerEvent(trig, timeout, false)
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...
3
28
5 месяцев назад
Отредактирован PT153
3
Как я помню, код, подсвеченный красным цветом, вызывает утечки
Абсолютно точно нет.

Ничем не заменять, абсолютно безвредная функция.
function TriggerRegisterTimerEventPeriodic takes trigger trig, real timeout returns event
    return TriggerRegisterTimerEvent(trig, timeout, true)
endfunction

function TriggerRegisterTimerEventSingle takes trigger trig, real timeout returns event
    return TriggerRegisterTimerEvent(trig, timeout, false)
endfunction
Принятый ответ
0
10
5 месяцев назад
0
Ничем не заменять, абсолютно безвредная функция.
Хм, а как понять, что функция "вредна" и создаёт утечки? У меня карта напичкана много чем на GUI и после 15 минут игры вылетает. Предположил, что это из-за накопления утечек.
1
20
5 месяцев назад
1
Нативная от нее вот же?
То есть можно воткнуть
call TriggerRegisterPlayerUnitEvent(trig, Player(index), whichEvent, null)
Если я понял, то в скобках название триггера, игрок, эвент и ноль.
Хотя меня уверяли что она сама по себе безвредная
Загруженные файлы
0
10
5 месяцев назад
0
Нативная от нее вот же?
То есть можно воткнуть
call TriggerRegisterPlayerUnitEvent(trig, Player(index), whichEvent, null)
Если я понял, то в скобках название триггера, игрок, эвент и ноль.
Хотя меня уверяли что она сама по себе безвредная
Скорее всего от него нативка, но тут связано с таймером от начала игры, да и раз уж она безвредная, то думаю стоит её так оставить.
1
20
5 месяцев назад
1
Хм, а как понять, что функция "вредна" и создаёт утечки? У меня карта напичкана много чем на GUI и после 15 минут игры вылетает. Предположил, что это из-за накопления утечек.
))
Это как минимум двойная работа для системы, потому что сначало идет родная нативная функция, потом ее обрабатывают в bj которая делает "по своему" и не всегда логично. Дело даже не в утечках, а в странном подходе, например, если ты создаешь одного юнита через триггер, на самом деле bj делает целую группу из одного юнита. Короче все учим Джасс или хотя бы толкаем custom script , забываем про использование вейтов и чаше юзаем локалки!)))
0
10
5 месяцев назад
0
Nneshan:
Это как минимум двойная работа для системы, потому что сначало идет родная нативная функция, потом ее обрабатывают в bj которая делает "по своему" и не всегда логично. Дело даже не в утечках, а в странном подходе, например, если ты создаешь одного юнита через триггер, на самом деле bj делает целую группу из одного юнита. Короче все учим Джасс или хотя бы толкаем custom script , забываем про использование вейтов и чаше юзаем локалки!)))
Какой ужас, но суть понял, перелопачивать весь GUI к чертям и переходить на Jass. Благодарю.)
2
25
5 месяцев назад
Отредактирован konvan5
2
Короче все учим Джасс или хотя бы толкаем custom script , забываем про использование вейтов и чаше юзаем локалки!)))
Замечательная мысль! Поддерживаю, как раз меньше вопросов будет по основам jass и + человек, который сможет на них отвечать :D
1
28
5 месяцев назад
Отредактирован PT153
1
Хм, а как понять, что функция "вредна" и создаёт утечки?
Создают утечку не функции, а автор карты. Надо просто следить за созданием объектов и ненужные удалять.

Если вы на рефе, есть либа, которая исправит все утечки.
1
29
5 месяцев назад
1
Создают утечку не функции, а автор карты.
Локалки, написанные ногами возникли конечно из-за автора карты....
1
28
5 месяцев назад
1
nazarpunk, этим можно пренебречь в контексте гуи. Сначала убираем валидные утечки, потом, если всё ещё есть проблемы, уже убираем из-за JASS.
1
20
5 месяцев назад
1
PT153:
Если вы на рефе, есть либа, которая исправит все утечки.
А я дурак, наивно надеялся, что на рефордже давно удалили все утечки!
1
29
5 месяцев назад
1
что на рефордже давно удалили все утечки!
Утечки от созданных объектов ты никак не удалишь. Можно конечно писать код руками...
1
20
5 месяцев назад
1
что на рефордже давно удалили все утечки!
Утечки от созданных объектов ты никак не удалишь. Можно конечно писать код руками...
И я знаю, почему. Потому что приказы в варкрафте это хэндлы. То есть ничего не дается напрямую, а как бы через посредника и конечно остается мусор в памяти. Такое могут поправить только сами близзы, но им пох!
1
27
5 месяцев назад
1
SсRealm, в смысле приказ это хэндл? Есть ли статья, подтверждающая твои слова?
1
28
5 месяцев назад
1
rsfghd, нет, приказ это число или строка.
1
29
5 месяцев назад
1
приказ это число или строка.
А так же приказ это событие.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.