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

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_SELF0x04
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

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.

comments

Коментарии.

Личные инструменты