Добавлен
Всем привет. Создавал карту лет 5 назад, периодически к ней возвращаюсь и хотелось бы довести до работоспособного состояния. Главная проблема в том, что в определенный момент начинают возникать сильные лаги которые мешают игровому процессу, при том они не связаны с количество юнитов в игре, делаю вывод что есть много утечек в триггерах. Надеюсь что кто-нибудь сможет помочь. Первый раз пользуюсь этим сайтом, поэтому возможно не в тот раздел обращаюсь.

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

После этого смотреть дальше не стал ибо жалко нервную систему.
По хорошему это всё переписывать нужно.

А вот и гора утечек
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
19
5 лет назад
2
Похожие вопросы:

ответ
Какой ужас
Делай вот так.
бронепоезд
создать.
направить на 128 точек наверх(90)
сделать неперманентным
текст удалится через 3 секунды
текст затухнет до 100% прозрачности через 3 секунды
Вот чёрт. не успел приплюснуть к посту.
ответ
После создания юнита нужно удалить последнюю созданную группу. В Custom Script.
call DestroyGroup(bj_lastCreatedGroup)
Если же есть JNGP, то там есть функция по удалению группы.

Также нужно создать переменную TempLocation, перед созданием юнита в неё записывать позицию, где хочешь создать юнита, а после создания удалять эту позицию.

А ещё, это не сработает, как ты хочешь. После 270 секунд триггер начнёт выполнятся, "Тип исследуемой технологии" будет ничем, таким образом, выражение в "Тогда" не выполнится.
Нужно создать отдельный периодический таймер для каждого игрока (то есть массив таймеров), при завершении исследования, стартануть таймер для игрока. Сделать триггер, срабатывающий на завершение таймера, который и будет создавать юнита.
ответ
GetUnitsSelectedAll не освобождает хендл, но это не утечка.
С помощью set bj_wantDestroyGroup = true созданная в GetUnitsSelectedAll группа удаляются, но хендл не освобождается. Это не так страшно, но лучше сделать вот так.
globals
    group TempGroup
endglobals

function GetUnitsSelectedAllFixed takes player whichPlayer returns group
    set TempGroup = CreateGroup()
    call SyncSelections()
    call GroupEnumUnitsSelected(TempGroup, whichPlayer, null)
    return TempGroup
endfunction

...

set bj_wantDestroyGroup = true
set udg_InfoPick[GetConvertedPlayerId(GetTriggerPlayer())] = GroupPickRandomUnit(GetUnitsSelectedAllFixed(GetTriggerPlayer()))
ответ
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\CrushingWave\\CrushingWaveDamage.mdl", x1, y1))
ответ
Дистанцию оставил как была (0). Но Скорость невидимой волны увеличил до 9999. Такое решение сразу же решило проблему.
Решение временное и сегодня же вечером поменяю её на канал.

1
29
5 лет назад
1
После этого смотреть дальше не стал ибо жалко нервную систему.
По хорошему это всё переписывать нужно.

А вот и гора утечек
Загруженные файлы
Принятый ответ
2
27
5 лет назад
Отредактирован MpW
2
NazarPunk, это мощная защита) когда кто-нибудь откроет, а там 999к триггеров
2
29
5 лет назад
2
это мощная защита) когда кто-нибудь откроет, а там 999к триггеров
А что, EmberCraft похожую использует)
Загруженные файлы
0
8
5 лет назад
0
xgm.guru/p/wc3/223912 поможет
вот еще мой вопрос xgm.guru/p/100/229470
2
29
5 лет назад
2
xgm.guru/p/wc3/223912 поможет
К чему эта ссылка?
Чтобы оставить комментарий, пожалуйста, войдите на сайт.