Event scripts

Материал из World of WarCraft Developers Wiki
Перейти к навигации Перейти к поиску

Таблица event_scripts

Таблица event_scripts из базы данных world — часть системы *_scripts. Хранит набор действий, которые выполняются при срабатывании Event ID (обычно от GameObject или эффекта заклинания SPELL_EFFECT_SEND_EVENT (61)).

Примечание: один и тот же id может иметь несколько строк — это несколько шагов скрипта с разными задержками/командами.

Field Type Attributes Key Null Default Extra
id int UNSIGNED NO 0
delay int UNSIGNED NO 0
command int UNSIGNED NO 0
datalong int UNSIGNED NO 0
datalong2 int UNSIGNED NO 0
dataint int NO 0
x float NO 0
y float NO 0
z float NO 0
o float NO 0
Comment varchar(255) utf8mb4_unicode_ci NO

id

Event ID — идентификатор события, при котором выполняются строки скрипта.

Пример: 12345

delay

Задержка (в секундах) перед выполнением данной строки после срабатывания события.

  • 0 — выполнить сразу.

Пример: 5

command

Тип действия (команда), которая будет выполнена. Именно command определяет, как трактуются поля datalong, datalong2, dataint, x, y, z, o.

Value Name Описание
0 SCRIPT_COMMAND_TALK Текст/реплика (say/yell/whisper/emote) через BroadcastText
1 SCRIPT_COMMAND_EMOTE Проиграть emote (oneshot/состояние)
2 SCRIPT_COMMAND_FIELD_SET Установить значение поля (field index → value)
3 SCRIPT_COMMAND_MOVE_TO Переместить существо в координаты (x,y,z)
4 SCRIPT_COMMAND_FLAG_SET Установить биты флага в поле
5 SCRIPT_COMMAND_FLAG_REMOVE Снять биты флага в поле
6 SCRIPT_COMMAND_TELEPORT_TO Телепорт (map,x,y,z,o)
7 SCRIPT_COMMAND_QUEST_EXPLORED Засчитать “explore requirement” квеста
8 SCRIPT_COMMAND_KILL_CREDIT Выдать kill credit
9 SCRIPT_COMMAND_RESPAWN_GAMEOBJECT Респавн GameObject по guid
10 SCRIPT_COMMAND_TEMP_SUMMON_CREATURE Временно призвать существо (entry, время, coords)
11 SCRIPT_COMMAND_OPEN_DOOR Открыть дверь (GameObject guid)
12 SCRIPT_COMMAND_CLOSE_DOOR Закрыть дверь (GameObject guid)
13 SCRIPT_COMMAND_ACTIVATE_OBJECT Активировать объект
14 SCRIPT_COMMAND_REMOVE_AURA Снять ауру (spell id)
15 SCRIPT_COMMAND_CAST_SPELL Каст заклинания
16 SCRIPT_COMMAND_PLAY_SOUND Проиграть звук
17 SCRIPT_COMMAND_CREATE_ITEM Создать предмет(ы) игроку
18 SCRIPT_COMMAND_DESPAWN_SELF Деспавн (self) с задержкой
19 (нет) Команда отсутствует (не используется)
20 SCRIPT_COMMAND_LOAD_PATH Загрузить waypoint/path и начать движение
21 SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT Вызвать другой *_scripts для указанного юнита
22 SCRIPT_COMMAND_KILL Убить существо (опционально удалить труп)
30 SCRIPT_COMMAND_ORIENTATION Повернуть юнита (ориентация/на цель)
31 SCRIPT_COMMAND_EQUIP Выставить экипировку по creature_equip_template
32 SCRIPT_COMMAND_MODEL Сменить модель
33 SCRIPT_COMMAND_CLOSE_GOSSIP Закрыть окно gossip
34 SCRIPT_COMMAND_PLAYMOVIE Проиграть ролик (movie id)

Пример: 15

datalong

Параметр команды (UNSIGNED). Смысл зависит от command — см. раздел ниже.

Пример: 0

datalong2

Дополнительный параметр команды (UNSIGNED). Смысл зависит от command — см. раздел ниже.

Пример: 0

dataint

Параметр команды (SIGNED). Смысл зависит от command — см. раздел ниже.

Пример: 0

x

Координата X или параметр команды (в зависимости от command).

Пример: 1620.45

y

Координата Y или параметр команды (в зависимости от command).

Пример: 254.12

z

Координата Z или параметр команды (в зависимости от command).

Пример: 62.77

o

Ориентация (facing) или параметр команды (в зависимости от command).

Пример: 3.14

Comment

Комментарий/пояснение к строке.

Пример: "Cast spell on trigger"

Расшифровка параметров по командам

Ниже — как обычно трактуются поля datalong / datalong2 / dataint / x / y / z / o.

SCRIPT_COMMAND_TALK (0)

  • datalong — тип текста: 0=say, 1=yell, 2=text emote, 3=boss emote, 4=whisper, 5=boss whisper
  • dataint — BroadcastText ID

SCRIPT_COMMAND_EMOTE (1)

  • datalong — Emote ID
  • datalong20 oneshot, >0 emote state

SCRIPT_COMMAND_FIELD_SET (2)

  • datalong — индекс поля (field index)
  • datalong2 — значение

SCRIPT_COMMAND_MOVE_TO (3)

  • datalong2 — длительность перемещения (время)
  • x,y,z — координаты назначения

SCRIPT_COMMAND_FLAG_SET (4)

  • datalong — индекс поля
  • datalong2 — биты флага, которые нужно установить

SCRIPT_COMMAND_FLAG_REMOVE (5)

  • datalong — индекс поля
  • datalong2 — биты флага, которые нужно снять

SCRIPT_COMMAND_TELEPORT_TO (6)

  • datalong — MapID
  • x,y,z,o — координаты и ориентация

SCRIPT_COMMAND_QUEST_EXPLORED (7)

  • datalong — Quest ID
  • datalong2 — дистанция (min 5), на которой засчитывается “explore requirement”

SCRIPT_COMMAND_KILL_CREDIT (8)

  • datalong — Creature entry для kill credit
  • datalong20 личный credit, >0 выдать группе

SCRIPT_COMMAND_RESPAWN_GAMEOBJECT (9)

  • datalong — GameObject guid
  • datalong2 — время деспавна (сек), минимум обычно 5

SCRIPT_COMMAND_TEMP_SUMMON_CREATURE (10)

  • datalong — Creature entry
  • datalong2 — время деспавна (мс)
  • x,y,z,o — координаты/ориентация призыва

SCRIPT_COMMAND_OPEN_DOOR (11)

  • datalong — door GameObject guid
  • datalong2 — задержка до автозакрытия (мс, минимум обычно 15000)

SCRIPT_COMMAND_CLOSE_DOOR (12)

  • datalong — door GameObject guid
  • datalong2 — задержка до автооткрытия (мс, минимум обычно 15000)

SCRIPT_COMMAND_ACTIVATE_OBJECT (13)

  • обычно достаточно указать корректный source/target в момент вызова события (поля чаще всего не используются)

SCRIPT_COMMAND_REMOVE_AURA (14)

  • datalong — Spell ID (аура)
  • datalong20 снять с target, >0 снять с source

SCRIPT_COMMAND_CAST_SPELL (15)

  • datalong — Spell ID
  • datalong2 — направление/логика каста:
 * 0 Source→Target
 * 1 Source→Source (self)
 * 2 Target→Target
 * 3 Target→Source
 * 4 Source→Closest entry из dataint (по радиусу x)
  • dataint — entry цели при datalong2=4, либо “triggered attribute” (в иных режимах)
  • x — радиус поиска при datalong2=4

SCRIPT_COMMAND_PLAY_SOUND (16)

  • datalong — Sound ID
  • datalong2 — режим:
 * 0 всем (direct)
 * 1 только target Player (direct)
 * 2 всем (distance)
 * 3 только target Player (distance)

SCRIPT_COMMAND_CREATE_ITEM (17)

  • datalong — Item entry
  • datalong2 — количество

SCRIPT_COMMAND_DESPAWN_SELF (18)

  • datalong — задержка деспавна

SCRIPT_COMMAND_LOAD_PATH (20)

  • datalong — Path ID (waypoint_data.id)
  • datalong20 один проход, >0 повторять

SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT (21)

  • datalong — entry искомого creature (если есть source — поиск вокруг source), либо guid (если source нет)
  • datalong2 — ID скрипта из одной из таблиц *_scripts
  • dataint — какая таблица:
 * 3 spell_scripts
 * 5 event_scripts
 * 6 waypoint_scripts

SCRIPT_COMMAND_KILL (22)

  • dataint1 удалить труп, иначе оставить

SCRIPT_COMMAND_ORIENTATION (30)

  • datalong — если !=0, повернуться к цели; если 0 — повернуться на o
  • o — ориентация

SCRIPT_COMMAND_EQUIP (31)

  • datalong — ID набора экипировки (creature_equip_template)

SCRIPT_COMMAND_MODEL (32)

  • datalong — Model ID

SCRIPT_COMMAND_CLOSE_GOSSIP (33)

  • параметров нет (закрывает gossip)

SCRIPT_COMMAND_PLAYMOVIE (34)

  • datalong — Movie ID