Здравствуйте. Столкнулся с проблемой, что зависания на карте стали уж слишком невыносимыми, они отпугивают игроков . Я точно знаю, что дело в триггерах (без них карта работает нормально). Я решил выставлять сюда триггеры, которые в наибольшей степени по моему мнению могут тормозить карту.
Здесь триггер инкома, событие: каждые 14 секунд
Здесь же триггер налога. У меня их два, но они одинаковые, разница лишь в одной цифре (/10 или /15):
Есть ли в них утечки? Заранее спасибо за ответы.

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

VinerX, дело было не в утечках. У меня очень часто срабатывал триггер с событием "Юнит Атакован" с лютым циклом внутри. Это вызывало лаги. Я связал с каждым юнитом (что может быть атакован) 1 таймер, который запускается на 0,25 - 0,5 с при срабатиывнии триггера, и пока он не истечёт, у этого юнита не будет срабатывать триггер с событием "Юнит Атакован" (проверка в условии триггера).
Другой человек решил такую проблему по-другому - просто выключал триггер на n секунд.
А ещё лучше не использовать событие "Юнит Атакован".
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
26
6 лет назад
0
Ох, русские триггеры!
Лучше бы карту приложил.
0
14
6 лет назад
0
8gabriel8:
Ох, русские триггеры!
Лучше бы карту приложил.
Прикладываю карту. Не смутит что она больше 8мб?
Загруженные файлы
0
16
6 лет назад
0
VinerX, я чекнул карту. Она просто огроменная. Что-то типа "Риска", верно? Мне кажется, она начинает лагать из-за использования Position of Unit и подобных ей функций. Они создают объекты при каждом их вызове, копящиеся в памяти. А у тебя я видел такую в триггере с событием "Юнит Атакован", т.е. очень частое использование.
Утекать может только объект: юнит/группа/точка и им подобные. В приведённых триггерах ты чистишь группы. А вот чистишь ли ты точки..?
0
18
6 лет назад
0
Naadir
В этом случае одну глобальную точку (если у него нету JNGP) , потом этой переменной присвоить точку, в действии сделать что нужно с точкой.
А в конце просто call RemoveLocation( udg_названиеПеременной )
0
14
6 лет назад
0
Ладно, спасибо за советы. Нашел ток то, что каждый 0.7 секунд выбирались все разрушаемые и добавлялось хп. Также их восстановление было с утечкой. Но все-равно кажется что что-то еще есть...
0
16
6 лет назад
0
VinerX, каким это образом восстановление разрушаемых было утечкой? Что у тебя утекало?
0
17
6 лет назад
Отредактирован ledoed
0
закинь системку которая показывает забитость хэша,потом в итоге напиши сколько у тебя за мин 10\20 и тд натикало
0
14
6 лет назад
0
Naadir, выбирались все разрушаемые, я подумал что это как группа.
ledoed, вы говорите о нижней системе тут xgm.guru/p/wc3/triggers-and-jass-optimization ? Я создал текстовый триггер, вставил туда систему с заменой остального, но в итоге карта не запускается.
0
28
6 лет назад
0
Карта во многом будет лагать от Юнит Атакован, сам через это проходил. После того как я каждому юниту дал таймер, который запускается при срабатывании Юнит Атакован на 0.25 секунд. В самом действии же идёт проверка, что если таймер не истёк, то скипнуть все остальные действия.
0
14
6 лет назад
0
PT153, Я так понял атакованный юнит сохраняется в памяти (утечка?), и что его нужно обнулять? А таймер не понял? Таймер создавал утечки или их убирал?
0
28
6 лет назад
0
VinerX, дело было не в утечках. У меня очень часто срабатывал триггер с событием "Юнит Атакован" с лютым циклом внутри. Это вызывало лаги. Я связал с каждым юнитом (что может быть атакован) 1 таймер, который запускается на 0,25 - 0,5 с при срабатиывнии триггера, и пока он не истечёт, у этого юнита не будет срабатывать триггер с событием "Юнит Атакован" (проверка в условии триггера).
Другой человек решил такую проблему по-другому - просто выключал триггер на n секунд.
А ещё лучше не использовать событие "Юнит Атакован".
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.