Event scripts
Таблица 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
- datalong2 —
0oneshot,>0emote 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
- datalong2 —
0личный 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 (аура)
- datalong2 —
0снять с target,>0снять с source
SCRIPT_COMMAND_CAST_SPELL (15)
- datalong — Spell ID
- datalong2 — направление/логика каста:
*0Source→Target *1Source→Source (self) *2Target→Target *3Target→Source *4Source→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)
- datalong2 —
0один проход,>0повторять
SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT (21)
- datalong — entry искомого creature (если есть source — поиск вокруг source), либо guid (если source нет)
- datalong2 — ID скрипта из одной из таблиц *_scripts
- dataint — какая таблица:
*3spell_scripts *5event_scripts *6waypoint_scripts
SCRIPT_COMMAND_KILL (22)
- dataint —
1удалить труп, иначе оставить
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