Нужно сделать одну проверку If-Then-Else (Если-То-Иначе), где объединить все условия: AND (И) - несколько условий. Тогда точно будут проверяться все условия, и действия запустятся, когда все они будут выполнены.
Ещё необходимо удалить утечки памяти - группы, точки и спецэффекты, а то игра со временем начнёт тормозить. Статья про утечки памяти: xgm.guru/p/wc3/jass_optimisations_and_leaks.
Если координаты региона не обновлять, то будет считаться, что этот регион остался на месте (то есть его начальные координаты, когда он создаётся) - тогда unit1 может выйти из своего региона.
Или придётся создавать регион каждые Х секунд для проверки.
А можно попробовать делать проверку логикой, добавляя и удаляя юнитов в группу (Units in Range 300 of unit1, к примеру). В вопросе вариант с областью. А в этом ответе граница взаимодействия будет выглядеть не как квадрат, а как круг, что равномернее. Минус в том, что придётся использовать периодическое событие, так что нужно быть внимательнее с утечками (точка-позиция unit1, группа и то, что есть в последующих действиях триггера).
Если применить, то нужно учесть, если предмет получит юнит с атрибутами или повышением уровня, то скорей всего игра вылетит, так как отсутствуют атрибуты. Проще думаю будет изначально выключить триггер, а потом как появился юнит, включить его.
В карте PT153 галы всё же есть. Наверняка там предметы с другими способностями. Но не в этом дело. Лаг происходит, когда юнит получает способность (предмет), так что когда юнит получит предмет в первый раз после включения тригера, игра будет тормозить, Это только отсрочка. В моём варианте это небольшое увеличение времени ожидания начала игры.
PT153, попробуй дать способность другому юниту. Насколько помню, неважно какому юниту дать. Главное, что способность уже прогрузится. В начале карты немного тормознёт, но потом нормально будет. Юнита вообще удалить можно будет сразу.
PT153, тогда нужно подгрузить способность заранее.
Я в проекте сделал затемнение экрана на старте карты, дал юниту нужную способность и удалил.
Теперь при получении способности (или предмета) во время игры никаких лагов.
По второму вопросу.
Если такое происходит каждый раз при использовании способности, возможно, применение этой способности запускает триггеры, которые притормаживают игру. Со стандартными способностями такого не наблюдал.
Sergey105, к сожалению, я совсем немного понимаю в JASS. На уровне "конвертировать триггер в текст-копировать-вставить"
Сила заклинаний меняется в каком случае? Нужно найти это место в коде и добавить после него строку, где будет изменение в таблице.
У меня в проекте на GUI на каждое такое событие (получил предмет, выучил способность и т. д.) есть один триггер, где просто проводится проверка. В твоём случае будет такой пример: если предмет = "предмет для улучшения 1", то записать в таблицу одно значение, если предмет = "предмет для улучшения 2", то записать другое. Аналогично можно и в JASS такое сделать. Думаю, это легко.
Sergey105, стандартные или нет - это без разницы. Нужно только отловить момент, когда, сила заклинания поменялась, и записать это изменение в нужную ячейку таблицы.
Если параметр нестандартный, то значит, меняется триггерно, так? Значит, в том триггере, где меняется, можно будет добавить действие, записывающее изменение.
Можно и таймером, но если в триггере с малым периодом будет утечка, то через некоторое время игра будет тормозить всё сильнее. А тем более если мультиплеер, где 10 игроков.
Где-то в вопросах читал, что переменные типа multiboard item (вроде так) тоже нужно чистить, а то засоряют память.
Лучше не пользоваться триггерами с малым периодом там, где можно обойтись без этого.
Например, можно обновлять информацию только тогда, когда параметры будут меняться.
Если нужно просто заменить внешний вид молнии, а не добавить, то проще нарисовать свою молнию и импортировать в карту, назвав её так же, как и заменяемую стандартную (например ReplaceableTextures\Weather\Lightning.blp).
Я в своей карте сделал ограничение выстрелов (боеприпасов) через целочисленную переменную.
Стрелять можно только если в руках определённый предмет (оружие).
При каждом выстреле уменьшается значение переменной, а если нечем стрелять (равна нулю) - предмет убирается.
Одновременно с этим можно провести морф в юнита ближнего боя.
Способность эльфов, которая сажает сову на дерево и осветительная вспышка альянса - в них есть цифры, указывающие количество зарядов.
Может, это как-то поможет?
Скопировано из одной карты в другую?
Если да, то проблема в том, что в новой карте нет указанных переменных.
Решается легко: в настройках редактора поставить галочку там, где написано "автоматически создавать неизвестные переменные" (вроде так, не помню). После этого можно вставить триггер заново.
Закодированный цвет и возможность ходьбы/строительства/полёта совпадают следующим образом:
# ходитьлетатьстроить
Если символы равны 00, то можно, если FF - нельзя.
Интересно)
» WarCraft 3 / Добавления юнита в группу
Ещё необходимо удалить утечки памяти - группы, точки и спецэффекты, а то игра со временем начнёт тормозить.
Статья про утечки памяти: xgm.guru/p/wc3/jass_optimisations_and_leaks.
» WarCraft 3 / Будет ли работать?
Или придётся создавать регион каждые Х секунд для проверки.
Ред. Maniac_91
» WarCraft 3 / Предмет-книжка
» WarCraft 3 / Предмет-книжка
» WarCraft 3 / Предмет-книжка
Я в проекте сделал затемнение экрана на старте карты, дал юниту нужную способность и удалил.
Теперь при получении способности (или предмета) во время игры никаких лагов.
» WarCraft 3 / Предмет-книжка
Если такое происходит каждый раз при использовании способности, возможно, применение этой способности запускает триггеры, которые притормаживают игру. Со стандартными способностями такого не наблюдал.
» WarCraft 3 / MultiBoard
» WarCraft 3 / MultiBoard
Сила заклинаний меняется в каком случае? Нужно найти это место в коде и добавить после него строку, где будет изменение в таблице.
У меня в проекте на GUI на каждое такое событие (получил предмет, выучил способность и т. д.) есть один триггер, где просто проводится проверка. В твоём случае будет такой пример: если предмет = "предмет для улучшения 1", то записать в таблицу одно значение, если предмет = "предмет для улучшения 2", то записать другое. Аналогично можно и в JASS такое сделать. Думаю, это легко.
» WarCraft 3 / MultiBoard
Если параметр нестандартный, то значит, меняется триггерно, так? Значит, в том триггере, где меняется, можно будет добавить действие, записывающее изменение.
Можно и таймером, но если в триггере с малым периодом будет утечка, то через некоторое время игра будет тормозить всё сильнее. А тем более если мультиплеер, где 10 игроков.
» WarCraft 3 / MultiBoard
Например, можно обновлять информацию только тогда, когда параметры будут меняться.
» WarCraft 3 / Очередь исследования
Вроде так.
» WarCraft 3 / Волшебный Эль
» WarCraft 3 / Очередь исследования
» WarCraft 3 / Отрицательное значение
» WarCraft 3 / Бред или не бред идея?
» WarCraft 3 / Стрелковое оружие в РПГ карте.
Стрелять можно только если в руках определённый предмет (оружие).
При каждом выстреле уменьшается значение переменной, а если нечем стрелять (равна нулю) - предмет убирается.
Одновременно с этим можно провести морф в юнита ближнего боя.
» WarCraft 3 / Координаты х у ( и краткая)
Ставим галочку и забываем об этой проблеме)
» WarCraft 3 / Возможно ли сменить иконку способности во время игры
Может, это как-то поможет?
» WarCraft 3 / Что делать если при копировании тригера происходит такая ересь?
Если да, то проблема в том, что в новой карте нет указанных переменных.
Решается легко: в настройках редактора поставить галочку там, где написано "автоматически создавать неизвестные переменные" (вроде так, не помню). После этого можно вставить триггер заново.
» WarCraft 3 / Камера и стрелки
» WarCraft 3 / Warcraft Editor преобразование строку в приказ
Ред. Maniac_91
» WarCraft 3 / Камера и стрелки
Действие - на скрине: xgm.guru/files/100/172439/comments/325439/00.jpg
Ну там с плюсами / минусами разобраться легко.
» WarCraft 3 / Нужна модель, кто знает?
» WarCraft 3 / Альтернативный способ наложения карты путей
# ходить летать строить
Если символы равны 00, то можно, если FF - нельзя.
Интересно)
» WarCraft 3 / Проблемы с импортом в редактор.
Сразу после импортирования их не видно, нужно перезагружать.