Spell scripts

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

Таблица spell_scripts

Таблица spell_scripts из базы данных world — часть Script System. Содержит **скриптовые шаги** (команды), которые выполняются при срабатывании заклинаний с эффектом SPELL_EFFECT_DUMMY (3) или SPELL_EFFECT_SCRIPT_EFFECT (77). Для одного и того же id может быть несколько строк — каждая строка отдельная команда с собственным delay.

Field Type Attributes Key Null Default Extra
id int UNSIGNED NO 0
effIndex tinyint 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

Для spell_scripts — это Spell ID, который триггерит данный скрипт.

Пример: 53823

effIndex

Индекс эффекта заклинания, к которому применяется скрипт (обычно 0–2).

Value Описание
0 Effect #0
1 Effect #1
2 Effect #2

Пример: 0

delay

Задержка перед выполнением этого шага, в секундах.

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

Пример: 2

command

Тип действия, которое будет выполнено после delay.

Value Name Описание
0 TALK Реплика/крик/шёпот/эмоут-текст
1 EMOTE Проиграть emote
2 FIELD_SET Установить значение поля по индексу
3 MOVE_TO Переместить существо в точку
4 FLAG_SET Установить флаги (битовую маску) в поле
5 FLAG_REMOVE Снять флаги (битовую маску) в поле
6 TELEPORT_TO Телепортировать в точку
7 QUEST_EXPLORED Засчитать «исследование» для квеста
8 KILL_CREDIT Выдать kill credit
9 RESPAWN_GAMEOBJECT Респавн GameObject по GUID
10 TEMP_SUMMON_CREATURE Временно призвать существо
11 OPEN_DOOR Открыть дверь (GameObject)
12 CLOSE_DOOR Закрыть дверь (GameObject)
13 ACTIVATE_OBJECT Активировать объект (GameObject)
14 REMOVE_AURA Снять ауру по Spell ID
15 CAST_SPELL Каст Spell ID по заданным правилам
16 PLAY_SOUND Проиграть звук
17 CREATE_ITEM Создать предмет(ы) игроку
18 DESPAWN_SELF Деспавн существа/объекта
20 LOAD_PATH Запустить waypoint-движение по пути
21 CALLSCRIPT_TO_UNIT Вызвать другой *_scripts на юните
22 KILL Убить существо (опционально удалить труп)
30 ORIENTATION Повернуть юнит (к цели или к углу)
31 EQUIP Поставить комплект экипировки
32 MODEL Сменить модель
33 CLOSE_GOSSIP Закрыть окно gossip
34 PLAYMOVIE Проиграть ролик (movie)

Пример: 15

datalong

Параметр №1. Смысл зависит от command:

command datalong — что хранится
TALK Режим текста (0=say, 1=yell, 2=text emote, 3=boss emote, 4=whisper, 5=boss whisper)
EMOTE Emote ID
FIELD_SET Индекс поля
FLAG_SET / FLAG_REMOVE Индекс поля
TELEPORT_TO MapID
QUEST_EXPLORED Quest ID
KILL_CREDIT Creature entry (kill credit)
RESPAWN_GAMEOBJECT GameObject GUID
TEMP_SUMMON_CREATURE Creature entry
OPEN_DOOR / CLOSE_DOOR Door GameObject GUID
REMOVE_AURA Spell ID
CAST_SPELL Spell ID
PLAY_SOUND Sound ID
CREATE_ITEM Item entry
DESPAWN_SELF Задержка деспавна
LOAD_PATH Path ID (waypoint_data.id)
CALLSCRIPT_TO_UNIT entry или GUID искомого существа (см. dataint)
ORIENTATION 0 — повернуть по углу из o; !=0 — повернуть к цели
EQUIP ID набора экипировки (equipment entry)
MODEL Model ID
PLAYMOVIE Movie ID

Пример: 12345

datalong2

Параметр №2. Смысл зависит от command:

command datalong2 — что хранится
EMOTE >0 — emote state, 0 — oneshot
MOVE_TO Длительность движения (время)
FLAG_SET / FLAG_REMOVE Бит(ы) флагов
TELEPORT_TO 0 — телепорт Player, 1 — телепорт Creature
QUEST_EXPLORED Дистанция (min 5), на которой зачтётся условие
KILL_CREDIT >0 — кредит группе, 0 — только игроку
RESPAWN_GAMEOBJECT Despawn time (сек), min 5
TEMP_SUMMON_CREATURE Despawn time (мс)
OPEN_DOOR Задержка перед закрытием (мс), min 15000
CLOSE_DOOR Задержка перед открытием (мс), min 15000
REMOVE_AURA >0 — снять с source; иначе с target
CAST_SPELL Направление/режим каста (0..4)
PLAY_SOUND Режим проигрывания (0..3)
CREATE_ITEM Количество предметов
LOAD_PATH >0 — повторяемое движение
CALLSCRIPT_TO_UNIT ID скрипта из *_scripts

Пример: 0

dataint

Параметр №3. Используется не всеми командами.

command dataint — что хранится
TALK BroadcastText ID (broadcast_text.id)
CAST_SPELL При datalong2=4 — creature entry цели; иначе — trigger flags/атрибут для CastSpell
CALLSCRIPT_TO_UNIT Какую таблицу *_scripts вызвать: 3=spell_scripts, 5=event_scripts, 6=waypoint_scripts
KILL 1 — удалить труп

Пример: 3

x

Float-параметр X. Чаще всего координата для команд, работающих с точками (например MOVE_TO/TELEPORT_TO/TEMP_SUMMON_CREATURE). Также может использоваться как радиус поиска (например, при CAST_SPELL с datalong2=4).

Пример: -9465.12

y

Float-параметр Y (обычно координата).

Пример: 64.80

z

Float-параметр Z (обычно координата).

Пример: 56.15

o

Float-параметр O (orientation). Используется в командах, где нужна ориентация (например TELEPORT_TO, TEMP_SUMMON_CREATURE, ORIENTATION).

Пример: 3.14159

Comment

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

Пример: "Cast spell on target after 2s"