Вспомнил про один баг. Есть сделать PauseTimer() на периодический таймер, а потом на этой таймер использовать ResumeTimer(), то таймер повторит свой цикл лишь раз, а потом остановится.
Добавлю ещё способность Death Coil, у которой не меняется эффект, накладываемый на цель. То есть его изменяешь или убираешь, но он всё равно остаётся. Лечится заменой модельки на пустышку.
Будет очень интересно глянуть, как они реализуют структуры. В своей карте я их использую очень активно, так как знаю о них всё, и во всех триггерах сразу делаю переход от нативных объектов к структурам. Надеюсь, они добавят способ привязывания структур к нативным объектам.
Нативные структы - очень гуд, потому что строились они изначально на хаках и параллельных массивах и были лимиты и т.д.
Любой данный лимит можно всегда расширить. Базово не более 8190 (на самом деле 8191) элементов у структуры, и этого хватает обычно, но можно расширить на сколько угодно.
Показ состояния зданий - у юнитов в панели информации есть строка Status, где отображаются все текущие баффы. Этот параметр отвечает за показ этой строки у зданий.
Радиус разведки тумана - юнит игрока умирает (был атакован), то вокруг умирающего (атакующего) даётся обзор указанного радиуса на некоторое время.
Уведомление о атаке - очевидно, что это про сигнал атаки. Минимальный интервал и минимальное расстояние (от текущего положения камеры?), чтобы сигнал звучал.
Хм, просто Кель имеет эту способность и при атаке использует именно ту анимацию (камни ещё при этом пропадают). Или я чего-то не понимаю?
Эффект пропадает при атаке, и появляется через некоторое время. Изменение полей "Duration" и "Cooldown" не помогло.
Укрепленные логова 'Arbr' - пустышка с невидимой иконкой, которая есть у логова и сторожевых вышек. Открывается при завершении исследования. Скорее всего больше создана для эффектов. У этих строении пояляются стальное укрепление. Короче железки с четырех сторон.
Шипы 'Aspi' - пустышка с невидимой иконкой, которая есть у всех орочьих строении. Открывается при завершении исследования. Скорее всего больше создана для эффектов. У этих строении появляются шипы.
Надо написать сборник такой по всем абилкам.
У этих способностей нет требований, но эффект появляются только в результате улучшений, что меня настораживает. JaBeN_Симфер:
Если нет необходимости в таких уникальных механиках работы абилки с аттачами, как Сфера Келя, то стоит задуматься об отказе от абилок и переходе на триггерную систему аттачей, тем более, если абилок очень много.
Мне проще создать абилку, так как:
её эффект сразу удалится, как только юнит умрёт;
не нужно проверять, есть ли уже такой эффект у юнита.
Можно добавить, что Asph - лучший вариант, самый легкий с точки зрения движка. Остальные так или иначе являбются абилками и подтягиваются лишний раз при определенных действиях. Asph считается чисто визуальной абилкой и не генерирует лишних операций
А если у юнита атака, то модель снаряда будет браться из Asph?
Из того что приходит в голову только триггерная атака. Ну тоесть если подумать какой толк от залпа вместо одного снаряда если урон от этого только меньше. Если например у противника уменьшение урона от каменной брони.
У меня своя система брони и атаки, просто мне нужна способность, которая выпускает в цель снаряды (то есть несколько снарядов в течение некоторого времени).
Я могу и триггерно это сделать, но вдруг есть такая способность.
PT153, Есть идеи как заменить эту функцию? Ну или строка кастом скрипта. Заодно я узнаю как это делается на джассе.
Заменить g на bj_lastCreatedGroup или любую другую глобальную переменную. Но нужно написать свои функции для общих случаев.
А так можно прямо в самом триггере.
set nospawn = CreateGroup()
call GroupEnumUnitsInRangeOfLoc(nospawn, spawn, 500., null)
...
Мне нужно это не для одного юнита. А для юнитов в области. И я проверил утечки были от того что добавлялись события.
Юнит входит в область Вся карта только 1 раз за игру, то есть событие Юнит получает урон добавляется только 1 раз. А в триггере, куда добавляется событие, есть условие (какое Вам нужно), при котором триггер будет срабатывать, как я и написал.
Триггер Init.
События - Юнит входит в Вся карта.
Условия - Тип юнита равно Манекен.
Действия - Добавить событие в триггер Maneken Боевая единица Вошедший юнит получает урон.
Триггер Maneken.
События - ИХ НЕТ.
Условия - Атакованный юнит находится в области (какая нужна).
Действия - Создать плавающий текст над Атакованный юнит (и прочее).
Всегда так делал, всё работало, и никаких утечек нет.
function GetUnitsInRangeOfLocMatching takes real radius, location whichLocation, boolexpr filter returns group
local group g = CreateGroup()
call GroupEnumUnitsInRangeOfLoc(g, whichLocation, radius, filter)
call DestroyBoolExpr(filter)
return g
endfunction
Это функция, которая используется Вашим действием. Тут всё время будет утекать переменная g, так как она не обнуляется.
Не используйте группы, нахватаесть утечек от них и от локаций, которые используются во многих BJ функциях.
» WarCraft 3 / Патч 1.29 вышел на основных серверах
» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3
» WarCraft 3 / Отслеживание количества юнитов на карте
Ред. PT153
» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3
То есть его изменяешь или убираешь, но он всё равно остаётся. Лечится заменой модельки на пустышку.
» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3
Ред. PT153
» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3
» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3
Не заметил в багфиксах этой функции.
Ну и функцию GetUnitZ хотелось бы.
» WarCraft 3 / Игровые Константы
- Показ состояния зданий - у юнитов в панели информации есть строка Status, где отображаются все текущие баффы. Этот параметр отвечает за показ этой строки у зданий.
- Радиус разведки тумана - юнит игрока умирает (был атакован), то вокруг умирающего (атакующего) даётся обзор указанного радиуса на некоторое время.
- Столкновение: максимальный радиус - максимальный возможный радиус хитбокса юнита.
- Уведомление о атаке - очевидно, что это про сигнал атаки. Минимальный интервал и минимальное расстояние (от текущего положения камеры?), чтобы сигнал звучал.
Остальные неизвестны.» WarCraft 3 / Аттачменты у способностей
» WarCraft 3 / Аттачменты у способностей
Эффект пропадает при атаке, и появляется через некоторое время. Изменение полей "Duration" и "Cooldown" не помогло.
» WarCraft 3 / Почему нельзя создать больше TriggerAddCondition для 1 триггера?
» WarCraft 3 / Аттачменты у способностей
JaBeN_Симфер: Мне проще создать абилку, так как:
- её эффект сразу удалится, как только юнит умрёт;
- не нужно проверять, есть ли уже такой эффект у юнита.
DracoL1ch: А если у юнита атака, то модель снаряда будет браться из Asph?» WarCraft 3 / Триггер
» WarCraft 3 / Перевод в BLP
Также кликни на "Альфа-канал", там его настройки.
» WarCraft 3 / Аттачменты у способностей
Ред. PT153
» WarCraft 3 / Аттачменты у способностей
» WarCraft 3 / Баффы, основанные на одной способности
» WarCraft 3 / Засунул цепную молнию в сферу молний, а иконку никак не скрыть
Ред. PT153
» WarCraft 3 / Опять они
Ред. PT153
» WarCraft 3 / Залп снарядов
Патиссончик:
Патиссончик: А жаль. :(
Ладно, спасибо.
» WarCraft 3 / Залп снарядов
Alexey103: У меня своя система брони и атаки, просто мне нужна способность, которая выпускает в цель снаряды (то есть несколько снарядов в течение некоторого времени).
Ред. PT153
» WarCraft 3 / Опять они
А так можно прямо в самом триггере.
Ред. PT153
» WarCraft 3 / Add event DamageTaken создаёт утечку, как исправить?
Ред. PT153
» WarCraft 3 / Опять они
Не используйте группы, нахватаесть утечек от них и от локаций, которые используются во многих BJ функциях.
» WarCraft 3 / Add event DamageTaken создаёт утечку, как исправить?