All scripts
Материал из YTDB DataBase
|
К описанию таблиц базы данных mangos.
Таблицы вида `*_scripts`
Этот формат таблицы используется для 7 различных таблиц, чтобы управлять возможными скриптами, активизированными различными действиями:
- gameobject_scripts: Содержит информация для активации скриптов предназначенных для игровых объектов (ИО) типа GAMEOBJECT_TYPE_DOOR (0) и 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 | |||
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
Для 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
Задержка в секундах, перед тем как скрипт активируется. 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 | Заставить существо атаковать. |
OtherFields
Depending on what command was used, the meaning and use for the following fields varies.
- SCRIPT_COMMAND_TALK = 0
- datalong:
flag | Description |
---|---|
0 | SAY |
1 | YELL |
2 | TEXT_EMOTE |
3 | BOSS_EMOTE |
4 | WHISPER |
5 | BOSS_WHISPER |
6 | ZONE_YELL |
- datalong2: creature entry (searching for a buddy, closest to source)
- datalong3: creature search radius
- datalong4: Выбор языка.
# | Internal Name | Description |
---|---|---|
0 | UNIVERSAL | Text in this language is understood by ALL Races. |
1 | ORCISH | Text in this language is understood ONLY by Horde Races. |
2 | DARNASSIAN | Text in this language is understood ONLY by the Night Elf Race. |
3 | TAURAHE | Text in this language is understood ONLY by the Tauren Race. |
6 | DWARVISH | Text in this language is understood ONLY by the Dwarf Race. |
7 | COMMON | Text in this language is understood ONLY by Alliance Races. |
8 | DEMONIC | Text in this language is understood ONLY by the Demon Race (Not Implimented). |
9 | TITAN | This language was used by Sargeras to speak with other Titians (Not Implemented). |
10 | THALASSIAN | Text in this language is understood ONLY by the Blood Elf Race. |
11 | DRACONIC | Text in this language is understood ONLY by the Dragon Race. |
12 | KALIMAG | Text will display as Kalimag (not readable by players, language of all elementals) |
13 | GNOMISH | Text in this language is understood ONLY by the Gnome Race. |
14 | TROLL | Text in this language is understood ONLY by the Troll Race. |
33 | GUTTERSPEAK | Text in this language is understood ONLY by the Undead Race. |
35 | DRAENEI | Text in this language is understood ONLY by the Draenai Race. |
36 | ZOMBIE | (not currently used?) |
37 | GNOMISH BINARY | Binary language used by Alliance when drinking Binary Brew |
38 | GOBLIN BINARY | Binary language used by Horce when drinking Binary Brew |
- data_flags:
flag | value |
---|---|
flag_target_player_as_source | 0x01 |
flag_original_source_as_target | 0x02 |
flag_buddy_as_target | 0x04 |
- dataint-dataint4: Идентификатор текста, который будет произнесен. См db_script_string. Идентификатор должен быть в диапазоне от 2000000000 до 2000010000.
- dataint2-dataint4: Опционально, для выбора случайного текста.
- SCRIPT_COMMAND_EMOTE = 1
- datalong: The emote ID to play.
- datalong2: creature entry (searching for a buddy, closest to source)
- datalong3: creature search radius
- data_flags: flag_target_as_source = 0x01
- 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.
- data_flags: summon as active object = 0x01
- 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: Source/target cast spell at target/source ( 0: s->t 1: s->s 2: t->t 3: t->s 4: cast triggered).
- 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).
- SCRIPT_COMMAND_SET_ACTIVEOBJECT = 21
- datalong: bool 0=off, 1=on.
- datalong2: creature entry.
- datalong3: search radius.
- SCRIPT_COMMAND_SET_FACTION = 22
- datalong: factionId.
- datalong2: creature entry.
- datalong3: search radius.
- SCRIPT_COMMAND_MORPH_TO_ENTRY_OR_MODEL = 23
- datalong: creature entry/modelid (depend on data_flags).
- datalong2: creature entry.
- datalong3: search radius.
- data_flags: 0x01 to use datalong value as modelid explicit.
- SCRIPT_COMMAND_MOUNT_TO_ENTRY_OR_MODEL = 24
- datalong: creature entry/modelid (depend on data_flags).
- datalong2: creature entry.
- datalong3: search radius.
- data_flags: 0x01 to use datalong value as modelid explicit.
- SCRIPT_COMMAND_SET_RUN = 25
- datalong: bool 0=off, 1=on.
- datalong2: creature entry.
- datalong3: search radius.
- SCRIPT_COMMAND__ATTACK_START = 26
- datalong2 = creature entry (searching for a buddy, closest to source)
- datalong3 = creature search radius
- data_flags:
flag | value |
---|---|
flag_original_source_as_target | 0x02 |
flag_buddy_as_target | 0x04 (When this flag is not set, buddy will be the attacker when buddy is defined) |
Side note: source = WorldObject (but Creature must be final source/attacker, set with datalong-fields where needed), target = Unit/none
comments
Коментарии.