Areatrigger actions: различия между версиями

Материал из Uwow
Перейти к навигации Перейти к поиску
(Новая страница: «ц»)
 
 
(не показано 12 промежуточных версий 2 участников)
Строка 1: Строка 1:
ц
<blockquote>'''areatrigger_actions - таблица выполнения действий для areatriggers'''</blockquote>
Структура таблицы:
 
===== entry =====
Берется из <u>EffectMiscValueA</u> в спелах с эфектом <u>SPELL_EFFECT_CREATE_AREATRIGGER</u> или из ауры <u>SPELL_AURA_CREATE_AREATRIGGER</u> берется misc
 
===== id =====
Уникальный номер действия.
 
===== moment =====
Флаги момента срабатывания. Бывают следующих видов:
{| class="wikitable"
!'''Название'''
!'''№ (hex)'''
!'''Комментарий/описание'''
|-
|'''AT_ACTION_MOMENT_ENTER'''
|'''0x0001'''
|Срабатывает при входе в зону действия AreaTrigger
|-
|'''AT_ACTION_MOMENT_LEAVE'''
|'''0x0002'''
|Срабатывает, когда цель покидает зону действия AreaTrigger
|-
|'''AT_ACTION_MOMENT_UPDATE_TARGET'''
|'''0x0004'''
|Срабатывает при обновлении цели (для одиночных спеллов)
|-
|'''AT_ACTION_MOMENT_DESPAWN'''
|'''0x0008'''
|Срабатывает, когда AreaTrigger исчезает (despawn)
|-
|'''AT_ACTION_MOMENT_SPAWN'''
|'''0x0010'''
|Срабатывает, когда AreaTrigger появляется (spawn)
|-
|'''AT_ACTION_MOMENT_REMOVE'''
|'''0x0020'''
|Срабатывает при удалении AreaTrigger
|-
|'''AT_ACTION_MOMENT_ON_THE_WAY'''
|'''0x0040'''
|Момент, когда цель находится между начальной и конечной точкой. Работает только с флагом '''ENTER'''
|-
|'''AT_ACTION_MOMENT_ON_STOP_MOVE'''
|'''0x0080'''
|Момент, когда цель остановилась между начальной и конечной точкой. Также требует флаг '''ENTER'''
|-
|'''AT_ACTION_MOMENT_ON_ACTIVATE'''
|'''0x0100'''
|Срабатывает при активации AreaTrigger
|-
|'''AT_ACTION_MOMENT_ON_CAST_ACTION'''
|'''0x0200'''
|Вызывается из тика ауры (spell_aura_trigger с опцией 10) или вручную из скриптов. Требует `AT_TARGET_FLAG_ALWAYS_TRIGGER`
|-
|'''AT_ACTION_MOMENT_UPDATE'''
|'''0x0400'''
|Срабатывает при обновлении (tick'е) AreaTrigger (обычно AOE-эффекты)
|-
|'''AT_ACTION_MOMENT_ON_DESPAWN'''
|'''0x0800'''
|Срабатывает при исчезновении AreaTrigger (вариант для AOE)
|-
|'''AT_ACTION_MOMENT_LEAVE_ALL'''
|'''0x1000'''
|Срабатывает, когда **все** цели покинули зону действия AreaTrigger
|}
 
===== actionType =====
Действие, которое выполняется на таргет (цель) при срабатывании
{| class="wikitable"
!Название
!№
!Комментарий/описание
|-
|'''AT_ACTION_TYPE_CAST_SPELL'''
|'''''0'''''
|Кастовать способность
|-
|'''AT_ACTION_TYPE_REMOVE_AURA'''
|'''''1'''''
|Удалить ауру
|-
|'''AT_ACTION_TYPE_ADD_STACK'''
|'''''2'''''
|Добавить стак
|-
|'''AT_ACTION_TYPE_REMOVE_STACK'''
|'''''3'''''
|Удалить стак
|-
|'''AT_ACTION_TYPE_CHANGE_SCALE'''
|'''''4'''''
|Изменить размер
|-
|'''AT_ACTION_TYPE_SHARE_DAMAGE'''
|'''''5'''''
|Деление урона на количество целей
|-
|'''AT_ACTION_TYPE_APPLY_MOVEMENT_FORCE'''
|'''''6'''''
|Применяет ветер (сдувает персонажей)
|-
|'''AT_ACTION_TYPE_REMOVE_MOVEMENT_FORCE'''
|'''''7'''''
|Удаляет ветер
|-
|'''AT_ACTION_TYPE_CHANGE_DURATION_ANY_AT'''
|'''''8'''''
|Изменить задержку для AreaTrigger (например, цепной реакция при взрыве бомбы - взрываются и остальные близлежащие
|-
|'''AT_ACTION_TYPE_CHANGE_AMOUNT_FROM_HEALT'''
|'''''9'''''
|Уменьшение количества возможного исцеления (волна отхила может хильнуть 100к. Первого хильнула 10к, значит, осталось 90к для последующих)
|-
|'''AT_ACTION_TYPE_RE_PATCH'''
|'''10'''
|hit mask 0x0400 вызывает обратное движение АТ к кастеру
|-
|'''AT_ACTION_TYPE_SET_AURA_CUSTOM_ADD'''
|'''11'''
|Добавляет кастомное поведение или эффект при применении ауры
|-
|'''AT_ACTION_TYPE_SET_AURA_CUSTOM_REMOVE'''
|'''12'''
|Удаляет кастомный эффект или поведение, связанное с аурой
|-
|'''AT_ACTION_TYPE_REMOVE_AURA_BY_CASTER'''
|'''13'''
|Удаляет ауру, если она была наложена текущим кастером
|-
|'''AT_ACTION_TYPE_CAST_SPELL_NOT_TRIGGER'''
|'''14'''
|Применяет заклинание, игнорируя все триггеры (proc, on-hit и т.д.)
|-
|'''AT_ACTION_TYPE_NO_ACTION'''
|'''15'''
|Ничего не делает (пустое действие, используется как заглушка)
|-
|'''AT_ACTION_TYPE_RE_PATCH'''
|'''16'''
|hit mask 0x0400 вызывает обратное движение АТ к кастеру
|-
|'''AT_ACTION_TYPE_REMOVE_OWNED_AURA'''
|'''17'''
|Удаляет ауру, принадлежащую текущему объекту (владельцу)
|-
|'''AT_ACTION_TYPE_OWNER_CAST_SPELL'''
|'''18'''
|Заставляет владельца текущего объекта применить заклинание
|-
|'''AT_ACTION_TYPE_RE_PATCH_SCRIPT'''
|'''19'''
|Запускает движение по скрипту, аналогично RE_PATCH, но с кастомным поведением
|-
|'''AT_ACTION_TYPE_CASTER_GUID_REMOVE_AURA'''
|'''20'''
|Удаляет ауру только в том случае, если кастер соответствует GUID
|-
|'''AT_ACTION_TYPE_CAST_SPELL_WITH_ORIGINAL_CASTER'''
|'''21'''
|Применяет заклинание от имени оригинального кастера
|-
|'''AT_ACTION_TYPE_DESPAWN'''
|'''22'''
|Удаляет объект из мира (деспаун)
|-
|'''AT_ACTION_TYPE_AT_CASTER_CAST_SPELL'''
|'''23'''
|Применить заклинание от кастера АТ
|}
 
===== targetFlags =====
Кого считать целью?
{| class="wikitable"
!'''Название'''
!'''№ (hex)'''
!Комментарий/описание
|-
|'''AT_TARGET_FLAG_FRIENDLY'''
|'''0x0000001'''
|Применяется к целям, которые дружелюбны для владельца AreaTrigger (кто призвал его)
|-
|'''AT_TARGET_FLAG_VALIDATTACK'''
|'''0x0000002'''
|Применяется к целям, которых может атаковать владелец AreaTrigger
|-
|'''AT_TARGET_FLAG_OWNER'''
|'''0x0000004'''
|Применяется к владельцу AreaTrigger
|-
|'''AT_TARGET_FLAG_PLAYER'''
|'''0x0000008'''
|Применяется только к игрокам
|-
|'''AT_TARGET_FLAG_NOT_PET'''
|'''0x0000010'''
|Применяется ко всем, кроме петов
|-
|'''AT_TARGET_FLAG_CAST_AT_SRC'''
|'''0x0000020'''
|Применяется к местоположению AreaTrigger`а
|-
|'''AT_TARGET_FLAG_CASTER_IS_TARGET'''
|'''0x0000040'''
|Применяется к кастеру
|-
|'''AT_TARGET_FLAG_NOT_FULL_HP'''
|'''0x0000080'''
|Применяется к целям с неполным здоровьем
|-
|'''AT_TARGET_FLAG_ALWAYS_TRIGGER'''
|'''0x0000100'''
|Применяется к любым действиям, направленным на владельца
|-
|'''AT_TARGET_FLAG_IN_FRONT'''
|'''0x0000200'''
|Если цель подойдет со спины, то скилл не сработает
|-
|'''AT_TARGET_FLAG_NOT_FULL_ENERGY'''
|'''0x0000400'''
|Применяется к целям с неполной энергией
|-
|'''AT_TARGET_FLAG_GROUP_OR_RAID'''
|'''0x0000800'''
|Применяется к целям в группе или рейде с владельцем
|-
|'''AT_TARGET_FLAG_HOSTILE'''
|'''0x0001000'''
|Применяется к враждебным целям
|-
|'''AT_TARGET_FLAG_TARGET_IS_CASTER'''
|'''0x0002000'''
|Применяется к цели, если она является кастером
|-
|'''AT_TARGET_FLAG_CAST_AURA_TARGET'''
|'''0x0004000'''
|Применяется к цели ауры
|-
|'''AT_TARGET_FLAG_NOT_AURA_TARGET'''
|'''0x0008000'''
|Применяется, если цель — не цель ауры
|-
|'''AT_TARGET_FLAG_TARGET_IS_SUMMONER'''
|'''0x0010000'''
|Применяется к суммонеру (призывателю)
|-
|'''AT_TARGET_FLAG_NOT_OWNER'''
|'''0x0020000'''
|Применяется к целям, которые не являются владельцем
|-
|'''AT_TARGET_FLAG_NPC_ENTRY'''
|'''0x0040000'''
|Применяется к мобам по Entry
|-
|'''AT_TARGET_FLAG_TARGET_PASSANGER'''
|'''0x0080000'''
|Применяется к пассажирам
|-
|'''AT_TARGET_FLAG_TARGET_PASSANGER_VEH'''
|'''0x0100000'''
|Применяется к пассажирам в транспорте (vehicle)
|-
|'''AT_TARGET_FLAG_TARGET_IS_CASTER_2'''
|'''0x0200000'''
|Альтернативная проверка на то, что цель — кастер
|-
|'''AT_TARGET_FLAG_SCRIPT'''
|'''0x0400000'''
|Цель определяется через скрипт
|-
|'''AT_TARGET_FLAG_CASTER_AURA_TARGET'''
|'''0x0800000'''
|Цель — та, на кого воздействует аура кастера
|-
|'''AT_TARGET_FLAG_NOT_IN_LOS'''
|'''0x1000000'''
|Применяется к целям вне Line of Sight (прямой видимости)
|-
|'''AT_TARGET_FLAG_NOT_IN_LOS_Z'''
|'''0x2000000'''
|Игнорирует видимость по оси Z (высота)
|-
|'''AT_TARGET_FLAG_NOT_TARGET_FALL'''
|'''0x4000000'''
|Не применяется к целям, находящимся в падении
|}
 
===== spellId =====
Скилл, с которым выполняется действие
 
===== maxCharges =====
Количество срабатываний, после которых AreaTrigger исчезнет. Например, если стоит 0, то не используется; Если = 3, то повесит ауру 3 раза, после чего исчезнет
 
===== aura =====
Проверяет наличие ауры на цели - если ауры нету, то действие не выполнится. Может быть отрицательным значением - тогда если есть аура, то действие не выполнится.
 
===== hasspell =====
Проверяет наличие выученного спела у цели. Так же может быть отрицательным, как и '''aura'''
 
===== chargeRecoveryTime =====
Время отката. Грубо говоря - КД между срабатываниями.  T.е. если кто-то наступил на АТ, тогда повесит ауру, а следующее срабатывание будет только через выставленное КД
 
===== scale =====
Если не равно 0, то при попадании по цели изменяет свой размер. Может быть отрицательным и положительным, соответственно увеличивает или уменьшает размер на заданное значение
 
===== hitMaxCount =====
Максимально возможное число срабатываний АreaТrigger
 
===== amount =====
Используется только в '''AT_ACTION_TYPE_CHANGE_AMOUNT_FROM_HEALT. '''Когда '''amont''' заканчивается, АreaТrigger исчезает

Текущая версия от 15:22, 21 июля 2025

areatrigger_actions - таблица выполнения действий для areatriggers

Структура таблицы:
entry

Берется из EffectMiscValueA в спелах с эфектом SPELL_EFFECT_CREATE_AREATRIGGER или из ауры SPELL_AURA_CREATE_AREATRIGGER берется misc

id

Уникальный номер действия.

moment

Флаги момента срабатывания. Бывают следующих видов:

Название № (hex) Комментарий/описание
AT_ACTION_MOMENT_ENTER 0x0001 Срабатывает при входе в зону действия AreaTrigger
AT_ACTION_MOMENT_LEAVE 0x0002 Срабатывает, когда цель покидает зону действия AreaTrigger
AT_ACTION_MOMENT_UPDATE_TARGET 0x0004 Срабатывает при обновлении цели (для одиночных спеллов)
AT_ACTION_MOMENT_DESPAWN 0x0008 Срабатывает, когда AreaTrigger исчезает (despawn)
AT_ACTION_MOMENT_SPAWN 0x0010 Срабатывает, когда AreaTrigger появляется (spawn)
AT_ACTION_MOMENT_REMOVE 0x0020 Срабатывает при удалении AreaTrigger
AT_ACTION_MOMENT_ON_THE_WAY 0x0040 Момент, когда цель находится между начальной и конечной точкой. Работает только с флагом ENTER
AT_ACTION_MOMENT_ON_STOP_MOVE 0x0080 Момент, когда цель остановилась между начальной и конечной точкой. Также требует флаг ENTER
AT_ACTION_MOMENT_ON_ACTIVATE 0x0100 Срабатывает при активации AreaTrigger
AT_ACTION_MOMENT_ON_CAST_ACTION 0x0200 Вызывается из тика ауры (spell_aura_trigger с опцией 10) или вручную из скриптов. Требует `AT_TARGET_FLAG_ALWAYS_TRIGGER`
AT_ACTION_MOMENT_UPDATE 0x0400 Срабатывает при обновлении (tick'е) AreaTrigger (обычно AOE-эффекты)
AT_ACTION_MOMENT_ON_DESPAWN 0x0800 Срабатывает при исчезновении AreaTrigger (вариант для AOE)
AT_ACTION_MOMENT_LEAVE_ALL 0x1000 Срабатывает, когда **все** цели покинули зону действия AreaTrigger
actionType

Действие, которое выполняется на таргет (цель) при срабатывании

Название Комментарий/описание
AT_ACTION_TYPE_CAST_SPELL 0 Кастовать способность
AT_ACTION_TYPE_REMOVE_AURA 1 Удалить ауру
AT_ACTION_TYPE_ADD_STACK 2 Добавить стак
AT_ACTION_TYPE_REMOVE_STACK 3 Удалить стак
AT_ACTION_TYPE_CHANGE_SCALE 4 Изменить размер
AT_ACTION_TYPE_SHARE_DAMAGE 5 Деление урона на количество целей
AT_ACTION_TYPE_APPLY_MOVEMENT_FORCE 6 Применяет ветер (сдувает персонажей)
AT_ACTION_TYPE_REMOVE_MOVEMENT_FORCE 7 Удаляет ветер
AT_ACTION_TYPE_CHANGE_DURATION_ANY_AT 8 Изменить задержку для AreaTrigger (например, цепной реакция при взрыве бомбы - взрываются и остальные близлежащие
AT_ACTION_TYPE_CHANGE_AMOUNT_FROM_HEALT 9 Уменьшение количества возможного исцеления (волна отхила может хильнуть 100к. Первого хильнула 10к, значит, осталось 90к для последующих)
AT_ACTION_TYPE_RE_PATCH 10 hit mask 0x0400 вызывает обратное движение АТ к кастеру
AT_ACTION_TYPE_SET_AURA_CUSTOM_ADD 11 Добавляет кастомное поведение или эффект при применении ауры
AT_ACTION_TYPE_SET_AURA_CUSTOM_REMOVE 12 Удаляет кастомный эффект или поведение, связанное с аурой
AT_ACTION_TYPE_REMOVE_AURA_BY_CASTER 13 Удаляет ауру, если она была наложена текущим кастером
AT_ACTION_TYPE_CAST_SPELL_NOT_TRIGGER 14 Применяет заклинание, игнорируя все триггеры (proc, on-hit и т.д.)
AT_ACTION_TYPE_NO_ACTION 15 Ничего не делает (пустое действие, используется как заглушка)
AT_ACTION_TYPE_RE_PATCH 16 hit mask 0x0400 вызывает обратное движение АТ к кастеру
AT_ACTION_TYPE_REMOVE_OWNED_AURA 17 Удаляет ауру, принадлежащую текущему объекту (владельцу)
AT_ACTION_TYPE_OWNER_CAST_SPELL 18 Заставляет владельца текущего объекта применить заклинание
AT_ACTION_TYPE_RE_PATCH_SCRIPT 19 Запускает движение по скрипту, аналогично RE_PATCH, но с кастомным поведением
AT_ACTION_TYPE_CASTER_GUID_REMOVE_AURA 20 Удаляет ауру только в том случае, если кастер соответствует GUID
AT_ACTION_TYPE_CAST_SPELL_WITH_ORIGINAL_CASTER 21 Применяет заклинание от имени оригинального кастера
AT_ACTION_TYPE_DESPAWN 22 Удаляет объект из мира (деспаун)
AT_ACTION_TYPE_AT_CASTER_CAST_SPELL 23 Применить заклинание от кастера АТ
targetFlags

Кого считать целью?

Название № (hex) Комментарий/описание
AT_TARGET_FLAG_FRIENDLY 0x0000001 Применяется к целям, которые дружелюбны для владельца AreaTrigger (кто призвал его)
AT_TARGET_FLAG_VALIDATTACK 0x0000002 Применяется к целям, которых может атаковать владелец AreaTrigger
AT_TARGET_FLAG_OWNER 0x0000004 Применяется к владельцу AreaTrigger
AT_TARGET_FLAG_PLAYER 0x0000008 Применяется только к игрокам
AT_TARGET_FLAG_NOT_PET 0x0000010 Применяется ко всем, кроме петов
AT_TARGET_FLAG_CAST_AT_SRC 0x0000020 Применяется к местоположению AreaTrigger`а
AT_TARGET_FLAG_CASTER_IS_TARGET 0x0000040 Применяется к кастеру
AT_TARGET_FLAG_NOT_FULL_HP 0x0000080 Применяется к целям с неполным здоровьем
AT_TARGET_FLAG_ALWAYS_TRIGGER 0x0000100 Применяется к любым действиям, направленным на владельца
AT_TARGET_FLAG_IN_FRONT 0x0000200 Если цель подойдет со спины, то скилл не сработает
AT_TARGET_FLAG_NOT_FULL_ENERGY 0x0000400 Применяется к целям с неполной энергией
AT_TARGET_FLAG_GROUP_OR_RAID 0x0000800 Применяется к целям в группе или рейде с владельцем
AT_TARGET_FLAG_HOSTILE 0x0001000 Применяется к враждебным целям
AT_TARGET_FLAG_TARGET_IS_CASTER 0x0002000 Применяется к цели, если она является кастером
AT_TARGET_FLAG_CAST_AURA_TARGET 0x0004000 Применяется к цели ауры
AT_TARGET_FLAG_NOT_AURA_TARGET 0x0008000 Применяется, если цель — не цель ауры
AT_TARGET_FLAG_TARGET_IS_SUMMONER 0x0010000 Применяется к суммонеру (призывателю)
AT_TARGET_FLAG_NOT_OWNER 0x0020000 Применяется к целям, которые не являются владельцем
AT_TARGET_FLAG_NPC_ENTRY 0x0040000 Применяется к мобам по Entry
AT_TARGET_FLAG_TARGET_PASSANGER 0x0080000 Применяется к пассажирам
AT_TARGET_FLAG_TARGET_PASSANGER_VEH 0x0100000 Применяется к пассажирам в транспорте (vehicle)
AT_TARGET_FLAG_TARGET_IS_CASTER_2 0x0200000 Альтернативная проверка на то, что цель — кастер
AT_TARGET_FLAG_SCRIPT 0x0400000 Цель определяется через скрипт
AT_TARGET_FLAG_CASTER_AURA_TARGET 0x0800000 Цель — та, на кого воздействует аура кастера
AT_TARGET_FLAG_NOT_IN_LOS 0x1000000 Применяется к целям вне Line of Sight (прямой видимости)
AT_TARGET_FLAG_NOT_IN_LOS_Z 0x2000000 Игнорирует видимость по оси Z (высота)
AT_TARGET_FLAG_NOT_TARGET_FALL 0x4000000 Не применяется к целям, находящимся в падении
spellId

Скилл, с которым выполняется действие

maxCharges

Количество срабатываний, после которых AreaTrigger исчезнет. Например, если стоит 0, то не используется; Если = 3, то повесит ауру 3 раза, после чего исчезнет

aura

Проверяет наличие ауры на цели - если ауры нету, то действие не выполнится. Может быть отрицательным значением - тогда если есть аура, то действие не выполнится.

hasspell

Проверяет наличие выученного спела у цели. Так же может быть отрицательным, как и aura

chargeRecoveryTime

Время отката. Грубо говоря - КД между срабатываниями. T.е. если кто-то наступил на АТ, тогда повесит ауру, а следующее срабатывание будет только через выставленное КД

scale

Если не равно 0, то при попадании по цели изменяет свой размер. Может быть отрицательным и положительным, соответственно увеличивает или уменьшает размер на заданное значение

hitMaxCount

Максимально возможное число срабатываний АreaТrigger

amount

Используется только в AT_ACTION_TYPE_CHANGE_AMOUNT_FROM_HEALT. Когда amont заканчивается, АreaТrigger исчезает