All scripts
Материал из YTDB DataBase
|
К описанию таблиц базы данных mangos.
Таблицы вида `dbscripts_on_*`
Этот формат таблицы используется для 7 различных таблиц, чтобы управлять возможными скриптами, активизированными различными действиями:
- dbscripts_on_creature_death: Содержит скрипты активирующиеся всякий раз при смерти нпц.
- dbscripts_on_creature_movement: Содержит скрипты активирующиеся всякий раз при движении нпц.
- dbscripts_on_event: Содержит скрипты активирующиеся всякий раз, когда происходит указанное событие, будь это объект или эффект заклинания SPELL_EFFECT_SEND_EVENT (61).
- dbscripts_on_gossip: Содержит скрипты активирующиеся всякий раз, когда происходит указанное событие в госсип меню.
- dbscripts_on_go_template_use: Содержит информацию для активации скриптов предназначенных для игровых объектов(по шаблону).
- dbscripts_on_go_use: Содержит информацию для активации скриптов предназначенных для игровых объектов (ИО) типа GAMEOBJECT_TYPE_DOOR (0) и GAMEOBJECT_TYPE_BUTTON (1).
- dbscripts_on_quest_start: Содержит информацию для активации скриптов после того, как игрок взял указанный квест.
- dbscripts_on_quest_end: Содержит информацию для активации скриптов после того, как игрок сдал указанный квест.
- dbscripts_on_spell: Содержит информацию для активации скриптов предназначенных для заклинаний с эффектом SPELL_EFFECT_SCRIPT_EFFECT (77), SPELL_EFFECT_DUMMY (3), SPELL_EFFECT_TRIGGER_SPELL (64).
ПРИМЕЧЕНИЕ: У скриптов в этой таблицы может быть больше чем одна запись, поскольку скрипт может сделать больше чем только одно действие. Также каждому действию, которое может сделать скрипт, можно указать отдельную задержку к нему. В этом случае, ядро активизирует соответствующее действие после правильной задержки.
Структура
Field | Type | Attributes | Null | Key | Default | Comments |
id | mediumint(8) | unsigned | NO | 0 | ||
delay | int(10) | unsigned | NO | 0 | ||
command | mediumint(8) | unsigned | NO | 0 | ||
datalong | mediumint(8) | unsigned | NO | 0 | ||
datalong2 | int(10) | unsigned | NO | 0 | ||
buddy_entry | mediumint(8) | unsigned | NO | 0 | ||
search_radius | mediumint(8) | unsigned | NO | 0 | ||
data_flags | tinyint(3) | unsigned | NO | 0 | ||
dataint | int(11) | NO | 0 | |||
dataint2 | int(11) | NO | 0 | |||
dataint3 | int(11) | NO | 0 | |||
dataint4 | int(11) | NO | 0 | |||
x | float | NO | 0 | |||
y | float | NO | 0 | |||
z | float | NO | 0 | |||
o | float | NO | 0 | |||
comments | varchar(255) | NO | 0 |
Описание полей
id
Для dbscripts_on_creature_death.
Для dbscripts_on_creature_movement, этот номер берется из script_id в таблице с точками передвижения существ.
Для dbscripts_on_event, это номер события. В настоящее время не существует полного списка событий. В любом случае, номера событий взяты непосредственно из WDB данных игровых объектов (ИО) или данных эффектов заклинаний. Если игровой объект (ИО) и заклинания активизируют то же самое событие, то номера записей будут соответствовать.
Для dbscripts_on_gossip, этот номер берется из action_script_id в таблице с шаблонами меню.
Для dbscripts_on_go_template_use, это идентификатор (ID) обьекта. Смотри gameobject_template.entry.
Для dbscripts_on_go_use, это глобальный номер (GUID) кнопок/рычагов. Смотри gameobject.guid.
Для dbscripts_on_quest_*, этот номер берется из StartScript или CompleteScript в таблицы с шаблонами квестов.
Для dbscripts_on_spell, это номер заклинания. Смотри Spell.dbc
delay
Задержка в секундах, перед тем как скрипт активируется. 0 = сразу.
command
Тип действия скрипта по прошествии delay секунд. Значение этого поля влияет на то, каким образом нужно заполнять поля рядом.
Можно использовать такие команды:
Комманда | Имя | Описание |
---|---|---|
0 | TALK | Сказать/прошептать/крикнуть/текстовая эмоция. |
1 | EMOTE | Проиграть эмоцию у существа. |
2 | FIELD_SET | Сменить значение по индексу у игрока. |
3 | MOVE_TO | Переместить существо по адресу. |
4 | FLAG_SET | Включает биты в поле флагов по индексу у игрока. |
5 | FLAG_REMOVE | Выключает биты в поле флагов по индексу у игрока. |
6 | TELEPORT_TO | Телепортирует игрока в локацию. |
7 | QUEST_EXPLORED | Засчитывает открытие для квеста. |
8 | KILL_CREDIT | Засчитывает убийство для квеста. |
9 | RESPAWN_GAMEOBJECT | Спавнит незаспавненное ГО. |
10 | TEMP_SUMMON_CREATURE | Временно вызывает существо. |
11 | OPEN_DOOR | Открывает дверь. (type == 0). |
12 | CLOSE_DOOR | Закрывает дверь. (type == 0). |
13 | ACTIVATE_OBJECT | Активирует объект. |
14 | REMOVE_AURA | Убирает ауру наложенную заклинанием. |
15 | CAST_SPELL | Кастует заклинание. |
16 | PLAY_SOUND | Играет звук. |
17 | CREATE_ITEM | Создает предмет. |
18 | DESPAWN_SELF | Деспавнит нпц с задержкой. |
19 | PLAY_MOVIE | Показывает видео. |
20 | MOVEMENT | Начинает движение или сменяет его тип. |
21 | SET_ACTIVEOBJECT | |
22 | SET_FACTION | Изменить фракцию существа. |
23 | MORPH_TO_ENTRY_OR_MODEL | Заставить существо сменить модель. |
24 | MOUNT_TO_ENTRY_OR_MODEL | Заставить существо сесть верхом. |
25 | SET_RUN | Заставить существо бежать. |
26 | ATTACK_START | Заставить существо атаковать. |
27 | SCRIPT_COMMAND_GO_LOCK_STATE | |
28 | SCRIPT_COMMAND_STAND_STATE | Заставить существо сменить стойку (стоять, сесть, лечь...). |
29 | SCRIPT_COMMAND_MODIFY_NPC_FLAGS | Заставить существо сменить creature_template.npcflag. |
30 | SCRIPT_COMMAND_SEND_TAXI_PATH | Заставить начать движение по указанному маршруту. |
31 | SCRIPT_COMMAND_TERMINATE_SCRIPT | Команда для прекращения работы сценария. |
32 | SCRIPT_COMMAND_PAUSE_WAYPOINTS | Команда для установки(отмены)паузы в движении существа. |
33 | SCRIPT_COMMAND_XP_USER | Команда для установки(отмены)флага получения опыта(PLAYER_FLAGS_XP_USER_DISABLED) у игрока. |
34 | SCRIPT_COMMAND_TERMINATE_COND | Команда для прерывания действия скрипта, если условие выполняется или не выполняется. |
35 | SCRIPT_COMMAND_SEND_AI_EVENT_AROUND | Команда для взаимодействия между eventAI и dbscripts. |
36 | SCRIPT_COMMAND_SET_FACING | |
37 | SCRIPT_COMMAND_MOVE_DYNAMIC | |
38 | SCRIPT_COMMAND_SEND_MAIL |
OtherFields
- buddy_entry - поле содержит идентификатор цели (зависит от команды, может быть как gameobject_template.entry или creature_template.entry, так gameobject.guid или creature.guid(если установлен флаг SCRIPT_FLAG_BUDDY_BY_GUID)).
- search_radius - радиус, в котором указанная в buddy_entry цель будет искаться.
Примечание - если эти поля заполнены, то команда отработает только тогда, когда указанное условие выполнится.
- data_flags - поле может содержать как один, так и комбинацию флагов:
Description | Описание | flag |
---|---|---|
SCRIPT_FLAG_BUDDY_AS_TARGET | Действие от имени игрока | 0x01 |
SCRIPT_FLAG_REVERSE_DIRECTION | Действие от имени цели | 0x02 |
SCRIPT_FLAG_SOURCE_TARGETS_SELF | 0x04 | |
SCRIPT_FLAG_COMMAND_ADDITIONAL | Возможно только для некоторых команд | 0x08 |
SCRIPT_FLAG_BUDDY_BY_GUID | Возможно только для гуидов существ | 0x10 |
SCRIPT_FLAG_BUDDY_IS_PET | Возможно только для питомцев | 0x20 |
В зависимости от команды будут срабатывать следующие значения:
- SCRIPT_COMMAND_TALK = 0
Примечание: resultingSource = WorldObject, resultingTarget = Unit/none
- dataint: Идентификатор текста, который будет произнесен. См db_script_string.
- dataint2-dataint4: Опционально, для случайного выбора текста из полей.
- SCRIPT_COMMAND_EMOTE = 1
Примечание: resultingSource = Unit, resultingTarget = Unit/none
- datalong: Идентификатор воспроизводимой эмоции.
- dataint1-dataint4: Опционально, для случайного выбора эмоции из полей.
- SCRIPT_COMMAND_FIELD_SET = 2
Примечание: source = any
- datalong: Идентификатор поля.
- datalong2: Значение поля.
- SCRIPT_COMMAND_MOVE_TO = 3
Примечание: resultingSource = Creature, if position is very near to current position, or x=y=z=0, then only orientation is changed
- datalong2: travel_speed*100 (use 0 for creature default movement).
- data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: teleport unit to position
- x: Координата x.
- y: Координата y.
- z: Координата z.
- o: Ориентация.
- SCRIPT_COMMAND_FLAG_SET = 4
Примечание: source = any
- datalong: Идентификатор поля.
- datalong2: Битмаска.
- SCRIPT_COMMAND_FLAG_REMOVE = 5
Примечание: source = any
- datalong: Идентификатор поля.
- datalong2: Битмаска.
- SCRIPT_COMMAND_TELEPORT_TO = 6
Примечание: source or target with Player
- datalong: Идентификатор карты. См. Maps.dbc
- x: Координата x.
- y: Координата y.
- z: Координата z.
- o: Ориентация.
- SCRIPT_COMMAND_QUEST_EXPLORED = 7
Примечание: one from source or target must be Player, another GO/Creature
- datalong: Идентификатор задания. См. quest_template.entry.
- datalong2: Дистанция от NPC/object до игрока, для срабатывания эффекта или 0.
- SCRIPT_COMMAND_KILL_CREDIT = 8
Примечание: source or target with Player
- datalong: Идентификатор существа или 0. См. quest_template.ReqCreatureOrGOId, если 0 - используется ид цели(текущего нпц).
- datalong2: 0=персональный зачет, 1=групповой зачет.
- SCRIPT_COMMAND_RESPAWN_GAMEOBJECT = 9
Примечание: source = any, target = any
- datalong: Идентификатор объекта(can be skipped for buddy). См. gameobject.guid. Если поле равно 0, тогда в поле buddy_entry указывается ИД объекта.
- datalong2: Время деспавна в секундах. Если значение поля < 5 сек: значение 5 ставится автоматически.
- SCRIPT_COMMAND_TEMP_SUMMON_CREATURE = 10
Примечание: source = any, target = any
- datalong: Идентификатор существа creature_template.entry.
- datalong2: Время деспавна в миллисекундах.
- data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: Вызывет при активации объекта.
- x: Координата x.
- y: Координата y.
- z: Координата z.
- o: Ориентация.
- SCRIPT_COMMAND_OPEN_DOOR = 11
Примечание: source = any
- datalong: Идентификатор объекта. См. gameobject.guid. Если поле равно 0, тогда в поле buddy_entry указывается ИД объекта.
- datalong2: Время закрытия объекта в секундах. Если значение поля < 5 сек: значение 5 ставится автоматически.
- SCRIPT_COMMAND_CLOSE_DOOR = 12
Примечание: source = any
- datalong: Идентификатор объекта. См. gameobject.guid. Если поле равно 0, тогда в поле buddy_entry указывается ИД объекта.
- datalong2: Время открытия объекта в секундах. Если значение поля < 5 сек: значение 5 ставится автоматически.
- SCRIPT_COMMAND_ACTIVATE_OBJECT = 13
Примечание: source = unit, target=GO
- SCRIPT_COMMAND_REMOVE_AURA = 14
Примечание: resultingSource = Unit
- datalong: Идентификатор заклинания. См. Spell.dbc.
- SCRIPT_COMMAND_CAST_SPELL = 15
Примечание: resultingSource = Unit, cast spell at resultingTarget = Unit
- datalong: Идентификатор заклинания. См. Spell.dbc.
- dataint1-dataint4: Опционально, для случайного выбора заклинания из полей.
- data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: cast triggered
- SCRIPT_COMMAND_PLAY_SOUND = 16
Примечание: source = any object, target=any/player
- datalong: Идентификатор звука. См. SoundEntries.dbc.
- datalong2: Битмаска: 0/1=target-player, 0/2=with distance dependent, 0/4=map wide, 0/8=zone wide; so 1|2 = 3 is target with distance dependent
- data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: play music instead of sound
- SCRIPT_COMMAND_CREATE_ITEM = 17
Примечание: source or target must be player
- datalong: Идентификатор предмета. См. item_template.entry.
- datalong2: Количество.
- SCRIPT_COMMAND_DESPAWN_SELF = 18
Примечание: resultingSource = Creature
- datalong: Время деспавна в миллисекундах.
- SCRIPT_COMMAND_PLAY_MOVIE = 19
Примечание: target can only be a player
- datalong: Идентификатор видео. См. Movie.dbc.
- SCRIPT_COMMAND_MOVEMENT = 20
Примечание: Команда начать движение источнику скрипта. Если источник - не существо, но цель - да, то применяем к цели.
- datalong: Может быть 0:без движения, 1:случайное, 2:точки передвижения. Если 2, то у существа должна быть запись в creature_movement_template.
- datalong2: Как далеко существо может отойти от точки спавна(для случайного движения, когда datalong = 1).
- data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: Случайное движение вокруг текущей позиции.
- SCRIPT_COMMAND_SET_ACTIVEOBJECT = 21
Примечание: resultingSource = Creature
- datalong: Значение: 0=выкл, 1=вкл.
- SCRIPT_COMMAND_SET_FACTION = 22
Примечание: resultingSource = Creature
- datalong: Идентификатор фракции. См. FactionTemplate.dbc. Если значение 0 - то ставится значение по умолчанию из Creature_template.Factionx.
- datalong2 = Значение флага
flag | Описание | value |
---|---|---|
TEMPFACTION_NONE | Требует ручного возврата | 0x00 |
TEMPFACTION_RESTORE_RESPAWN | Возврат при респавне | 0x01 |
TEMPFACTION_RESTORE_COMBAT_STOP | Возврат по окончании боя | 0x02 |
TEMPFACTION_RESTORE_REACH_HOME | Возврат при эвейде | 0x04 |
TEMPFACTION_TOGGLE_NON_ATTACKABLE | Убрать флаг UNIT_FLAG_NON_ATTACKABLE(0x02) если фракция изменилась (возврат, если временная фракция удалена) | 0x08 |
TEMPFACTION_TOGGLE_OOC_NOT_ATTACK | Убрать флаг UNIT_FLAG_OOC_NOT_ATTACKABLE(0x100) если фракция изменилась (возврат, если временная фракция удалена) | 0x10 |
TEMPFACTION_TOGGLE_PASSIVE | Убрать флаг UNIT_FLAG_PASSIVE(0x200) | 0x20 |
TEMPFACTION_TOGGLE_PACIFIED | Убрать флаг UNIT_FLAG_PACIFIED(0x20000) | 0x40 |
TEMPFACTION_TOGGLE_NOT_SELECTABLE | Убрать флаг UNIT_FLAG_NOT_SELECTABLE(0x2000000) | 0x80 |
- SCRIPT_COMMAND_MORPH_TO_ENTRY_OR_MODEL = 23
Примечание: resultingSource = Creature
- datalong: Идентификатор существа(см. creature_template.entry) или модели(см. creature_model_info.modelid), зависит от флага.
- data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: в поле datalong идентификатор модели.
- SCRIPT_COMMAND_MOUNT_TO_ENTRY_OR_MODEL = 24
Примечание: resultingSource = Creature
- datalong: Идентификатор существа(см. creature_template.entry) или модели(см. creature_model_info.modelid), зависит от флага.
- data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: в поле datalong идентификатор модели.
- SCRIPT_COMMAND_SET_RUN = 25
Примечание: resultingSource = Creature
- datalong: Значение: 0=выкл, 1=вкл.
- SCRIPT_COMMAND__ATTACK_START = 26
Примечание: resultingSource = Creature, resultingTarget = Unit
- SCRIPT_COMMAND_GO_LOCK_STATE = 27
Примечание: resultingSource = GO
- datalong: 0x01=lock, 0x02=unlock, 0x04=set not-interactable, 0x08=set interactable
- SCRIPT_COMMAND_STAND_STATE = 28
Примечание: resultingSource = Creature
- datalong: Идентификатор позиции существа
flag | Name | Description |
---|---|---|
0 | UNIT_STAND_STATE_STAND | Стоять |
1 | UNIT_STAND_STATE_SIT | Сидеть на земле |
2 | UNIT_STAND_STATE_SIT_CHAIR | |
3 | UNIT_STAND_STATE_SLEEP | Имитировать сон |
4 | UNIT_STAND_STATE_SIT_LOW_CHAIR | Сидеть на маленьком стуле |
5 | UNIT_STAND_STATE_SIT_MEDIUM_CHAIR | Сидеть на среднем стуле |
6 | UNIT_STAND_STATE_SIT_HIGH_CHAIR | Сидеть на большом стуле |
7 | UNIT_STAND_STATE_DEAD | Имитировать смерть (имитировать отсутствие жизни можно при помощи (dynamicflags = 32) и серое имя при помощи (dynamicflags = 4)) |
8 | UNIT_STAND_STATE_KNEEL | Встать на колено |
9 | UNIT_STAND_STATE_CUSTOM | В зависимости от модели анимации |
- SCRIPT_COMMAND_MODIFY_NPC_FLAGS = 29
Примечание: source = resultingSource = Creature
- datalong: Идентификатор флага существа. См. creature_template.npcflag.
- datalong2:
flag | Описание | value |
---|---|---|
flag_toggle | По умолчанию | 0x00 |
flag_add | Установить | 0x01 |
flag_remove | Убрать | 0x02 |
- SCRIPT_COMMAND_SEND_TAXI_PATH = 30
Примечание: resultingTarget or Source must be Player
- datalong: Идентификатор маршрута полета. См. TaxiPath.dbc
- SCRIPT_COMMAND_TERMINATE_SCRIPT = 31
- datalong: Идентификатор существа(см. creature_template.entry).
- datalong2: радиус, в котором будет искаться существо, указанное в buddy_entry.
- data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: флага нет - прервать скрипт, если найдено "живое" существо, флаг есть - прервать скрипт, если найдено "мертвое" существо.
- dataint: изменение времени ожидания waittime (миллисекунды) для текущей точки движения(если значение отрицательное - время будет уменьшаться).
- SCRIPT_COMMAND_PAUSE_WAYPOINTS = 32
Примечание: resultingSource must be Creature
- datalong: 0/1 - отменить/установить паузу.
- SCRIPT_COMMAND_XP_USER = 33
Примечание: source or target with Player
- datalong: 0/1 - выключить/включить у игрока флаг получения опыта.
- SCRIPT_COMMAND_TERMINATE_COND = 34
- datalong: Идентификатор условия, при котором сработает данный пункт. См. condition_entry.
- datalong2: Идентификатор проваленного задания(если задание это предусматривает). См. quest_template.entry.
- data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: флага нет - прекратить работу скрипта, когда условие выполнено, флаг есть - прекратить работу скрипта, когда условие не выполнено.
- SCRIPT_COMMAND_SEND_AI_EVENT_AROUND = 35
Примечание: resultingSource = Creature, resultingTarget = Unit
- datalong: AIEventType.
- datalong2: радиус.
- SCRIPT_COMMAND_SET_FACING = 36
Примечание: resultingSource = Creature, resultingTarget WorldObject
- datalong: Если != 0, то сброс TargetGuid, сброс поля orientation.
- data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: установить TargetGuid из resultingSource в resultingTarget.
- SCRIPT_COMMAND_MOVE_DYNAMIC = 37
Примечание: resultingSource = Creature, resultingTarget Worldobject
- datalong = 0: Move resultingSource towards resultingTarget.
- datalong != 0: Move resultingSource to a random point between datalong2..datalong around resultingTarget.
- orientation != 0: Obtain a random point around resultingTarget in direction of orientation.
- SCRIPT_COMMAND_SEND_MAIL = 38
Примечание: resultingSource = Creature OR NULL, resTarget must be Player
- datalong = mailTemplateId.
- datalong2: AlternativeSenderEntry. Use as sender-Entry of the sent mail.
- dataint: Delay (>= 0) in Seconds.
comments
Коментарии.