Как я помню, код, подсвеченный красным цветом, вызывает утечки, чем можно заменить данный фрагмент кода?
Предполагаю, что нужен таймер, но не понимаю, как создать условие, под которое он создастся после начала игры (скриншот с обычного 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
2 месяца назад
Отредактирован 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
2 месяца назад
0
Ничем не заменять, абсолютно безвредная функция.
Хм, а как понять, что функция "вредна" и создаёт утечки? У меня карта напичкана много чем на GUI и после 15 минут игры вылетает. Предположил, что это из-за накопления утечек.
1
20
2 месяца назад
1
Нативная от нее вот же?
То есть можно воткнуть
call TriggerRegisterPlayerUnitEvent(trig, Player(index), whichEvent, null)
Если я понял, то в скобках название триггера, игрок, эвент и ноль.
Хотя меня уверяли что она сама по себе безвредная
Загруженные файлы
0
10
2 месяца назад
0
Нативная от нее вот же?
То есть можно воткнуть
call TriggerRegisterPlayerUnitEvent(trig, Player(index), whichEvent, null)
Если я понял, то в скобках название триггера, игрок, эвент и ноль.
Хотя меня уверяли что она сама по себе безвредная
Скорее всего от него нативка, но тут связано с таймером от начала игры, да и раз уж она безвредная, то думаю стоит её так оставить.
1
20
2 месяца назад
1
Хм, а как понять, что функция "вредна" и создаёт утечки? У меня карта напичкана много чем на GUI и после 15 минут игры вылетает. Предположил, что это из-за накопления утечек.
))
Это как минимум двойная работа для системы, потому что сначало идет родная нативная функция, потом ее обрабатывают в bj которая делает "по своему" и не всегда логично. Дело даже не в утечках, а в странном подходе, например, если ты создаешь одного юнита через триггер, на самом деле bj делает целую группу из одного юнита. Короче все учим Джасс или хотя бы толкаем custom script , забываем про использование вейтов и чаше юзаем локалки!)))
0
10
2 месяца назад
0
Nneshan:
Это как минимум двойная работа для системы, потому что сначало идет родная нативная функция, потом ее обрабатывают в bj которая делает "по своему" и не всегда логично. Дело даже не в утечках, а в странном подходе, например, если ты создаешь одного юнита через триггер, на самом деле bj делает целую группу из одного юнита. Короче все учим Джасс или хотя бы толкаем custom script , забываем про использование вейтов и чаше юзаем локалки!)))
Какой ужас, но суть понял, перелопачивать весь GUI к чертям и переходить на Jass. Благодарю.)
2
23
2 месяца назад
Отредактирован konvan5
2
Короче все учим Джасс или хотя бы толкаем custom script , забываем про использование вейтов и чаше юзаем локалки!)))
Замечательная мысль! Поддерживаю, как раз меньше вопросов будет по основам jass и + человек, который сможет на них отвечать :D
1
28
2 месяца назад
Отредактирован PT153
1
Хм, а как понять, что функция "вредна" и создаёт утечки?
Создают утечку не функции, а автор карты. Надо просто следить за созданием объектов и ненужные удалять.

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