All scripts
Материал из YTDB DataBase
|
К описанию таблиц базы данных mangos.
Таблицы вида `*_scripts`
Этот формат таблицы используется для 7 различных таблиц, чтобы управлять возможными скриптами, активизированными различными действиями:
- gameobject_scripts: Содержит информация для активации скриптов предназначенных для игровых объектов (ИО) типа GAMEOBJECT_TYPE_BUTTON (1).
- spell_scripts: Содержит информацию для активации скриптов предназначенных для заклинаний с эффектом SPELL_EFFECT_SCRIPT_EFFECT (77).
- quest_start_scripts: Содержит информацию для активации скриптов после того, как игрок взял указанный квест.
- quest_end_scripts: Содержит информацию для активации скриптов после того, как игрок сдал указанный квест.
- event_scripts: Содержит скрипты активирующиеся всякий раз, когда происходит указанный случай, будь это объект или эффект заклинания SPELL_EFFECT_SEND_EVENT (61).
- gossip_scripts: Содержит скрипты активирующиеся всякий раз, когда происходит указанный случай в госсип меню.
- creature_movement_scripts: Содержит скрипты активирующиеся всякий раз при движении нпц.
ПРИМЕЧЕНИЕ: У скриптов в этой таблицы может быть больше чем одна запись, поскольку скрипт может сделать больше чем только одно действие. Также каждому действию, которое может сделать скрипт, можно указать отдельную задержку к нему. В этом случае, ядро активизирует соответствующее действие после правильной задержки.
Структура
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 | ||
datalong3 | int(10) | unsigned | NO | 0 | ||
datalong4 | int(10) | unsigned | NO | 0 | ||
data_flags | tinyint(3) | unsigned | NO | 0 | ||
dataint | int(11) | NO | 0 | |||
x | float | NO | 0 | |||
y | float | NO | 0 | |||
z | float | NO | 0 | |||
o | float | NO | 0 |
Описание полей
id
Для gameobject_scripts, это глобальный номер (GUID) кнопок/рычагов. Смотри gameobject.guid.
Для spell_scripts, это номер заклинания. Смотри Spell.dbc
Для quest_*_scripts, этот номер берется из StartScript или CompleteScript в таблицы с шаблонами квестов.
Для event_scripts, это номер события. В настоящее время не существует полного списка событий. В любом случае, номера событий взяты непосредственно из WDB данных игровых объектов (ИО) или данных эффектов заклинаний. Если игровой объект (ИО) и заклинания активизируют то же самое событие, то номера записей будут соответствовать.
Для gossip_scripts, этот номер берется из action_script_id в таблице с шаблонами меню.
Для creature_movement_scripts, этот номер берется из script_id в таблице с точками передвижения существ.
delay
Delay in seconds before this current step of the script activates. 0 = instant.
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 | Начинает движение или сменяет его тип. |
OtherFields
Depending on what command was used, the meaning and use for the following fields varies.
- SCRIPT_COMMAND_TALK = 0
- datalong: 0=say, 1=whisper, 2=yell, 3=text emote
- datalong2: creature entry (searching for a buddy, closest to source)
- datalong3: creature search radius
- data_flags:
flag | value |
---|---|
flag_target_player_as_source | 0x01 |
flag_original_source_as_target | 0x02 |
flag_buddy_as_target | 0x04 |
- dataint: The text ID that the creature will say. See db_script_string. ID must be between 2000000000 and 2000010000.
- SCRIPT_COMMAND_EMOTE = 1
- datalong: The emote ID to play.
- SCRIPT_COMMAND_FIELD_SET = 2
- datalong: Index of the field.
- datalong2: Value to place at the index.
- SCRIPT_COMMAND_MOVE_TO = 3
- datalong2: Length of the motion.
- x: X position to move to.
- y: Y position to move to.
- z: Z position to move to.
- o: Orientation to face.
- SCRIPT_COMMAND_FLAG_SET = 4
- datalong: Field index to be set.
- datalong2: Flag bit(s) to set.
- SCRIPT_COMMAND_FLAG_REMOVE = 5
- datalong: Field index to be unset.
- datalong2: Flag bit(s) to unset.
- SCRIPT_COMMAND_TELEPORT_TO = 6
- datalong: Target Map ID. See Maps.dbc
- x: Teleport target x coordinate.
- y: Teleport target y coordinate.
- z: Teleport target z coordinate.
- o: Teleport target orientation.
- SCRIPT_COMMAND_QUEST_EXPLORED = 7
- datalong: Quest ID whose external status should be satisfied
- datalong2: Distance away from the NPC/object that the player can be and have the script still take effect
- SCRIPT_COMMAND_KILL_CREDIT = 8
- datalong: Kill credit entry for quest (entry in quest_template.ReqCreatureOrGOId)
- datalong2: 0=personal credit, 1=group credit
- SCRIPT_COMMAND_RESPAWN_GAMEOBJECT = 9
- datalong: Guid of the gameobject to respawn. See gameobject.guid.
- datalong2: Despawn time in seconds. If the value is < 5 seconds: 5 is used instead.
- SCRIPT_COMMAND_TEMP_SUMMON_CREATURE = 10
- datalong: Entry of the summoned creature from creature_template.entry.
- datalong2: Despawn time in ms.
- x: Summon target x coordinate.
- y: Summon target y coordinate.
- z: Summon target z coordinate.
- o: Summon target orientation.
- SCRIPT_COMMAND_OPEN_DOOR = 11
- datalong: Guid of the activated door. It's a gameobject.guid.
- datalong2: Delay before closing again the door. If the value is < 5 seconds: 5 is used instead.
- SCRIPT_COMMAND_CLOSE_DOOR = 12
- datalong: Guid of the activated door. It's a gameobject.guid.
- datalong2: Delay before opening again the door. If the value is < 5 seconds: 5 is used instead.
- SCRIPT_COMMAND_ACTIVATE_OBJECT = 13
- The source must be a unit and the target a game object.
- SCRIPT_COMMAND_REMOVE_AURA = 14
- datalong: Spell ID.
- datalong2: If value > 0, then cast on the source; otherwise cast on the target.
- SCRIPT_COMMAND_CAST_SPELL = 15
- datalong: Spell ID.
- datalong2: If value > 0, then cast on the source; otherwise cast on the target.
- SCRIPT_COMMAND_PLAY_SOUND = 16
- datalong: Sound ID.
- datalong2: bitmask: 0/1=anyone/target, 0/2=with distance dependent, so 1|2 = 3 is target with distance dependent.
Side note: Source may be any object/npc. Target may be any player.
- SCRIPT_COMMAND_CREATE_ITEM = 17
- datalong: Item ID.
- datalong2: Amount.
Side note: Source or target have to be a player.
- SCRIPT_COMMAND_DESPAWN_SELF = 18
- datalong: despawn delay.
Side note: Source or target must be creature.
- SCRIPT_COMMAND_PLAY_MOVIE = 19
- datalong: movie_id. See Movie.dbc.
- SCRIPT_COMMAND_MOVEMENT = 20
- datalong: может быть 0:без движения, 1:случайное, 2:точки передвижения. Если 2, то у существа должна быть запись в creature_movement_template.
- datalong2: Опционально entry существа.
- datalong3: Радиус поиска существа, если используем datalong2.
Side note:Команда начать движение источнику скрипта. Если источник - не существо, но цель - да, то применяем к цели. Можно указать entry существа в datalong2 и начать его движение, если оно находится рядом (радиус поиска указан в datalong3).