All scripts

Материал из YTDB DataBase

(Различия между версиями)
Перейти к: навигация, поиск
(OtherFields)
 
(42 промежуточные версии не показаны)
Строка 25: Строка 25:
* '''dbscripts_on_quest_end:''' Содержит информацию для активации скриптов после того, как игрок сдал указанный квест.
* '''dbscripts_on_quest_end:''' Содержит информацию для активации скриптов после того, как игрок сдал указанный квест.
 +
 +
* '''dbscripts_on_relay:''' Содержит информацию для активации скриптов. Идентичный идентификатор проекта DB, Id используется в dbscripts, EAI или SD2 для его запуска.
* '''dbscripts_on_spell:''' Содержит информацию для активации скриптов предназначенных для заклинаний с эффектом SPELL_EFFECT_SCRIPT_EFFECT (77), SPELL_EFFECT_DUMMY (3), SPELL_EFFECT_TRIGGER_SPELL (64).
* '''dbscripts_on_spell:''' Содержит информацию для активации скриптов предназначенных для заклинаний с эффектом SPELL_EFFECT_SCRIPT_EFFECT (77), SPELL_EFFECT_DUMMY (3), SPELL_EFFECT_TRIGGER_SPELL (64).
Строка 51: Строка 53:
|[[#delay|delay]]
|[[#delay|delay]]
|int(10)
|int(10)
 +
|unsigned
 +
|NO
 +
|
 +
|0
 +
|
 +
|-
 +
|[[#priority|priority]]
 +
|int(11)
|unsigned
|unsigned
|NO
|NO
Строка 75: Строка 85:
|[[#OtherFields|datalong2]]
|[[#OtherFields|datalong2]]
|int(10)
|int(10)
 +
|unsigned
 +
|NO
 +
|
 +
|0
 +
|
 +
|-
 +
|[[#OtherFields|datalong3]]
 +
|int(11)
|unsigned
|unsigned
|NO
|NO
Строка 188: Строка 206:
Для '''dbscripts_on_go_use''', это глобальный номер (GUID) кнопок/рычагов. Смотри [[gameobject#guid|gameobject.guid]].<br>
Для '''dbscripts_on_go_use''', это глобальный номер (GUID) кнопок/рычагов. Смотри [[gameobject#guid|gameobject.guid]].<br>
Для '''dbscripts_on_quest_*''', этот номер берется из [[quest_template#StartScript|StartScript]] или [[quest_template#CompleteScript|CompleteScript]] в таблицы с шаблонами квестов.<br>
Для '''dbscripts_on_quest_*''', этот номер берется из [[quest_template#StartScript|StartScript]] или [[quest_template#CompleteScript|CompleteScript]] в таблицы с шаблонами квестов.<br>
 +
Для '''dbscripts_on_relay''', єтот номер берется из скриптов SD2 или EventAI.<br>
Для '''dbscripts_on_spell''', это номер заклинания. Смотри [[Spell.dbc]]
Для '''dbscripts_on_spell''', это номер заклинания. Смотри [[Spell.dbc]]
====delay====
====delay====
-
Задержка в секундах, перед тем как скрипт активируется. 0 = сразу.
+
Задержка в миллисекундах, перед тем как скрипт активируется. 0 = сразу.
 +
 
 +
====priority====
====command====
====command====
Строка 220: Строка 241:
| 9 || RESPAWN_GAMEOBJECT || Спавнит незаспавненное ГО.
| 9 || RESPAWN_GAMEOBJECT || Спавнит незаспавненное ГО.
|-
|-
-
| 10 || TEMP_SUMMON_CREATURE || Временно вызывает существо.
+
| 10 || TEMP_SPAWN_CREATURE || Временно вызывает существо.
|-
|-
| 11 || OPEN_DOOR || Открывает дверь. (type == 0).
| 11 || OPEN_DOOR || Открывает дверь. (type == 0).
Строка 234: Строка 255:
| 16 || PLAY_SOUND || Играет звук.
| 16 || PLAY_SOUND || Играет звук.
|-
|-
-
| 17 || CREATE_ITEM || Создает предмет.
+
| 17 || CREATE_ITEM || Создает или удаляет предмет.
|-
|-
| 18 || DESPAWN_SELF || Деспавнит нпц с задержкой.
| 18 || DESPAWN_SELF || Деспавнит нпц с задержкой.
Строка 242: Строка 263:
| 20 || MOVEMENT || Начинает движение или сменяет его тип.
| 20 || MOVEMENT || Начинает движение или сменяет его тип.
|-
|-
-
| 21 || SET_ACTIVEOBJECT ||  
+
| 21 || SET_ACTIVEOBJECT || Делает НПЦ активным.
|-
|-
| 22 || SET_FACTION || Изменить фракцию существа.
| 22 || SET_FACTION || Изменить фракцию существа.
Строка 254: Строка 275:
| 26 || ATTACK_START  || Заставить существо атаковать.
| 26 || ATTACK_START  || Заставить существо атаковать.
|-
|-
-
| 27 || SCRIPT_COMMAND_GO_LOCK_STATE ||
+
| 27 || SCRIPT_COMMAND_GO_LOCK_STATE || Изменяет состояние блокировки / взаимодействия объекта.
|-
|-
| 28 || SCRIPT_COMMAND_STAND_STATE || Заставить существо сменить стойку (стоять, сесть, лечь...).
| 28 || SCRIPT_COMMAND_STAND_STATE || Заставить существо сменить стойку (стоять, сесть, лечь...).
Строка 276: Строка 297:
| 37 || SCRIPT_COMMAND_MOVE_DYNAMIC ||  
| 37 || SCRIPT_COMMAND_MOVE_DYNAMIC ||  
|-
|-
-
| 38 || SCRIPT_COMMAND_SEND_MAIL ||  
+
| 38 || SCRIPT_COMMAND_SEND_MAIL || Команда для отправки почтового сообщения.
|-
|-
| 39 || SCRIPT_COMMAND_SET_FLY  ||  
| 39 || SCRIPT_COMMAND_SET_FLY  ||  
|-
|-
-
| 40 || SCRIPT_COMMAND_DESPAWN_GO ||  
+
| 40 || SCRIPT_COMMAND_DESPAWN_GO || Деспавнит объект.
|-
|-
-
| 41 || SCRIPT_COMMAND_RESPAWN ||  
+
| 41 || SCRIPT_COMMAND_RESPAWN || Респавнит нпц.
 +
|-
 +
| 42 || SCRIPT_COMMAND_SET_EQUIPMENT_SLOTS  || Смена состояния экипировки у НПЦ.
 +
|-
 +
| 43 || SCRIPT_COMMAND_RESET_GO  || Сбрасывает текущее состояние объекта.
 +
|-
 +
| 44 || SCRIPT_COMMAND_UPDATE_TEMPLATE  ||
 +
|-
 +
| 45 || SCRIPT_COMMAND_START_RELAY_SCRIPT  || Запускает скрипт статический из dbscripts_on_relay, либо случайный из dbscript_random_templates.
 +
|-
 +
| 46 || SCRIPT_COMMAND_CAST_CUSTOM_SPELL ||
 +
|-
 +
| 47 || SCRIPT_COMMAND_INTERRUPT_SPELL ||
 +
|}
|}
|}
Строка 288: Строка 322:
* '''buddy_entry''' - поле содержит идентификатор цели (может быть [[creature_template#entry|creature_template.entry]] или [[gameobject_template#entry|gameobject_template.entry]]).
* '''buddy_entry''' - поле содержит идентификатор цели (может быть [[creature_template#entry|creature_template.entry]] или [[gameobject_template#entry|gameobject_template.entry]]).
-
* '''search_radius''' - радиус, в котором указанная в buddy_entry цель будет искаться. '''Если установлен флаг SCRIPT_FLAG_BUDDY_BY_GUID, то в поле пишется GUID цели'''.
+
* '''search_radius''' - радиус, в котором указанная в buddy_entry цель будет искаться.<br>'''Если установлен флаг SCRIPT_FLAG_BUDDY_BY_GUID, то в поле пишется GUID цели'''.
''Примечание'' - если эти поля заполнены, то команда отработает только тогда, когда указанное условие выполнится.
''Примечание'' - если эти поля заполнены, то команда отработает только тогда, когда указанное условие выполнится.
* '''data_flags''' - поле может содержать как один, так и комбинацию флагов:
* '''data_flags''' - поле может содержать как один, так и комбинацию флагов:
{| border=1 cellpadding=2 cellspacing=0
{| border=1 cellpadding=2 cellspacing=0
-
! Description !! Описание !! flag
+
! Description !! Описание !! flag !! Значение
 +
|-
 +
|SCRIPT_FLAG_BUDDY_AS_TARGET||Действие от имени игрока||0x01||1
|-
|-
-
|SCRIPT_FLAG_BUDDY_AS_TARGET||Действие от имени игрока||0x01
+
|SCRIPT_FLAG_REVERSE_DIRECTION||Действие от имени цели||0x02||2
|-
|-
-
|SCRIPT_FLAG_REVERSE_DIRECTION||Действие от имени цели||0x02
+
|SCRIPT_FLAG_SOURCE_TARGETS_SELF||||0x04||4
|-
|-
-
|SCRIPT_FLAG_SOURCE_TARGETS_SELF||||0x04
+
|SCRIPT_FLAG_COMMAND_ADDITIONAL||Возможно только для некоторых команд ||0x08||8
|-
|-
-
|SCRIPT_FLAG_COMMAND_ADDITIONAL||Возможно только для некоторых команд ||0x08
+
|SCRIPT_FLAG_BUDDY_BY_GUID||Возможно только для гуидов существ ||0x10||16
|-
|-
-
|SCRIPT_FLAG_BUDDY_BY_GUID||Возможно только для гуидов существ ||0x10
+
|SCRIPT_FLAG_BUDDY_IS_PET||Возможно только для питомцев ||0x20||32
|-
|-
-
|SCRIPT_FLAG_BUDDY_IS_PET||Возможно только для питомцев ||0x20
+
|SCRIPT_FLAG_BUDDY_IS_DESPAWNED||Возможно только для "мертвых" или деспавненых существ ||0x40||64
|-
|-
-
|SCRIPT_FLAG_BUDDY_IS_DESPAWNED||Возможно только для "мертвых" или деспавненых существ ||0x40
+
|SCRIPT_FLAG_BUDDY_BY_POOL|| Возможно только для существ в пуле||0x80||128
|}
|}
Строка 316: Строка 352:
* '''SCRIPT_COMMAND_TALK = 0'''
* '''SCRIPT_COMMAND_TALK = 0'''
''Примечание: resultingSource = WorldObject, resultingTarget = Unit/none''
''Примечание: resultingSource = WorldObject, resultingTarget = Unit/none''
-
** dataint: Идентификатор текста, который будет произнесен. См [[db_script_string]].
+
** dataint: Идентификатор текста, который будет произнесен. См [[dbscript_string#entry|dbscript_string.entry]].
** dataint2-dataint4: Опционально, для случайного выбора текста из полей.
** dataint2-dataint4: Опционально, для случайного выбора текста из полей.
-
 
+
** datalong = [[dbscript_random_templates#id|dbscript_random_templates.id]] - will randomize between all dbscript_strings in given template.
* '''SCRIPT_COMMAND_EMOTE = 1'''
* '''SCRIPT_COMMAND_EMOTE = 1'''
Строка 346: Строка 382:
** datalong:  Идентификатор поля.
** datalong:  Идентификатор поля.
** datalong2:  Битмаска.
** datalong2:  Битмаска.
 +
 +
{| border=1 cellpadding=2 cellspacing=0
 +
! FIELD TO MODIFY !! HEX VALUES !! DECIMAL INDEX VALUE !! COMMENTS
 +
|-
 +
|UNIT_FIELD_FLAGS||0×0006 + 0×0028||59-WOTLK||Modify UnitFlags for NPC (Source Must Be Unit)
 +
|-
 +
|UNIT_DYNAMIC_FLAGS||0×0006 + 0×009E||78-WOTLK||Modify DynamicFlags for NPC (Source Must Be Unit)
 +
|-
 +
|UNIT_NPC_FLAGS||0×0006 + 0×00A2||82-WOTLK||Modify NPCFlags for NPC (Source Must Be Unit)
 +
|}
Строка 352: Строка 398:
** datalong:  Идентификатор поля.
** datalong:  Идентификатор поля.
** datalong2:  Битмаска.
** datalong2:  Битмаска.
 +
 +
{| border=1 cellpadding=2 cellspacing=0
 +
! FIELD TO MODIFY !! HEX VALUES !! DECIMAL INDEX VALUE !! COMMENTS
 +
|-
 +
|UNIT_FIELD_FLAGS||0×0006 + 0×0028||59-WOTLK||Modify UnitFlags for NPC (Source Must Be Unit)
 +
|-
 +
|UNIT_DYNAMIC_FLAGS||0×0006 + 0×009E||78-WOTLK||Modify DynamicFlags for NPC (Source Must Be Unit)
 +
|-
 +
|UNIT_NPC_FLAGS||0×0006 + 0×00A2||82-WOTLK||Modify NPCFlags for NPC (Source Must Be Unit)
 +
|}
Строка 381: Строка 437:
-
* '''SCRIPT_COMMAND_TEMP_SUMMON_CREATURE = 10'''
+
* '''SCRIPT_COMMAND_TEMP_SPAWN_CREATURE = 10'''
''Примечание: source = any, target = any''
''Примечание: source = any, target = any''
** datalong:  Идентификатор существа [[creature_template#entry|creature_template.entry]].
** datalong:  Идентификатор существа [[creature_template#entry|creature_template.entry]].
** datalong2:  Время деспавна в миллисекундах.
** datalong2:  Время деспавна в миллисекундах.
 +
** datalong3:  Идентификатор для pathId - creature_movement_template
** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: Вызывет при активации объекта.
** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: Вызывет при активации объекта.
 +
** dataint  = (bool) setRun; 0 = off (default), 1 = on
 +
** dataint2 = factionId - if 0 is set, faction is from DB entry
 +
** dataint3 = modelId - if 0 is set, model is from DB entry
** x:          Координата x.
** x:          Координата x.
** y:          Координата y.
** y:          Координата y.
Строка 411: Строка 471:
''Примечание: resultingSource = Unit''
''Примечание: resultingSource = Unit''
** datalong: Идентификатор заклинания. См. [[Spell.dbc]].
** datalong: Идентификатор заклинания. См. [[Spell.dbc]].
 +
** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: remove aura by caster spell from script target
Строка 416: Строка 477:
''Примечание: resultingSource = Unit, cast spell at resultingTarget = Unit''
''Примечание: resultingSource = Unit, cast spell at resultingTarget = Unit''
** datalong: Идентификатор заклинания. См. [[Spell.dbc]].
** datalong: Идентификатор заклинания. См. [[Spell.dbc]].
 +
** datalong2: TriggerCastFlags.
** dataint1-dataint4: Опционально, для случайного выбора заклинания из полей.
** dataint1-dataint4: Опционально, для случайного выбора заклинания из полей.
-
** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: cast triggered
 
Строка 431: Строка 492:
** datalong: Идентификатор предмета. См. [[item_template#entry|item_template.entry]].
** datalong: Идентификатор предмета. См. [[item_template#entry|item_template.entry]].
** datalong2: Количество.
** datalong2: Количество.
 +
** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: удаляет предмет в количестве из datalong2.
Строка 446: Строка 508:
''Примечание: Команда начать движение источнику скрипта. Если источник - не существо, но цель - да, то применяем к цели.''
''Примечание: Команда начать движение источнику скрипта. Если источник - не существо, но цель - да, то применяем к цели.''
** datalong: Может быть 0:без движения, 1:случайное, 2:точки передвижения. Если 2, то у существа должна быть запись в [[creature_movement_template]].
** datalong: Может быть 0:без движения, 1:случайное, 2:точки передвижения. Если 2, то у существа должна быть запись в [[creature_movement_template]].
-
** datalong2: Как далеко существо может отойти от точки спавна(для случайного движения, когда datalong = 1).
+
** datalong2: Как далеко существо может отойти от точки спавна(для случайного движения, когда datalong = 1). pathId (for waypoint movement)
** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: Случайное движение вокруг текущей позиции.
** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: Случайное движение вокруг текущей позиции.
   
   
* '''SCRIPT_COMMAND_SET_ACTIVEOBJECT  = 21'''
* '''SCRIPT_COMMAND_SET_ACTIVEOBJECT  = 21'''
-
''Примечание: resultingSource = Creature''
+
''Примечание: resultingSource = Creature. Делает существо активным или наоборот(зависит от флага).''
** datalong: Значение: 0=выкл, 1=вкл.
** datalong: Значение: 0=выкл, 1=вкл.
Строка 536: Строка 598:
** datalong: Идентификатор существа(см. [[creature_template#entry|creature_template.entry]]).
** datalong: Идентификатор существа(см. [[creature_template#entry|creature_template.entry]]).
** datalong2: радиус, в котором будет искаться существо, указанное в buddy_entry.
** datalong2: радиус, в котором будет искаться существо, указанное в buddy_entry.
 +
** datalong3: pool_id.
** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: флага нет - прервать скрипт, если найдено "живое" существо, флаг есть - прервать скрипт, если найдено "мертвое" существо.
** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: флага нет - прервать скрипт, если найдено "живое" существо, флаг есть - прервать скрипт, если найдено "мертвое" существо.
** dataint1-dataint4: изменение времени ожидания [[Creature movement#waittime|waittime]] (миллисекунды) для текущей точки движения(если значение отрицательное - время будет уменьшаться).
** dataint1-dataint4: изменение времени ожидания [[Creature movement#waittime|waittime]] (миллисекунды) для текущей точки движения(если значение отрицательное - время будет уменьшаться).
Строка 578: Строка 641:
* '''SCRIPT_COMMAND_SEND_MAIL  = 38'''
* '''SCRIPT_COMMAND_SEND_MAIL  = 38'''
''Примечание: resultingSource = Creature OR NULL, resTarget must be Player''
''Примечание: resultingSource = Creature OR NULL, resTarget must be Player''
-
** datalong = mailTemplateId.
+
** datalong: mailTemplateId.
** datalong2: AlternativeSenderEntry. Use as sender-Entry of the sent mail.
** datalong2: AlternativeSenderEntry. Use as sender-Entry of the sent mail.
** dataint: Delay (>= 0) in Seconds.
** dataint: Delay (>= 0) in Seconds.
Строка 585: Строка 648:
* '''SCRIPT_COMMAND_SET_FLY  = 39'''
* '''SCRIPT_COMMAND_SET_FLY  = 39'''
''Примечание: resultingSource = Creature''
''Примечание: resultingSource = Creature''
-
** datalong = bool 0=off, 1=on
+
** datalong: bool 0=off, 1=on
** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL set/unset byte flag UNIT_BYTE1_FLAG_FLY_ANIM
** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL set/unset byte flag UNIT_BYTE1_FLAG_FLY_ANIM
Строка 595: Строка 658:
* '''SCRIPT_COMMAND_RESPAWN  = 41'''
* '''SCRIPT_COMMAND_RESPAWN  = 41'''
''Примечание: resultingSource = Creature. Requires SCRIPT_FLAG_BUDDY_IS_DESPAWNED to find dead or despawned targets''
''Примечание: resultingSource = Creature. Requires SCRIPT_FLAG_BUDDY_IS_DESPAWNED to find dead or despawned targets''
 +
 +
 +
* '''SCRIPT_COMMAND_SET_EQUIPMENT_SLOTS  = 42'''
 +
''Примечание: resultingSource = Creature''
 +
** datalong: resetDefault: bool 0=false, 1=true
 +
** dataint: main hand slot; dataint2 = off hand slot; dataint3 = ranged slot
 +
 +
 +
* '''SCRIPT_COMMAND_RESET_GO  = 43'''
 +
''Примечание: resultingTarget = GameObject. Reset doors or buttons (GO type 0 and 1)''
 +
 +
 +
* '''SCRIPT_COMMAND_UPDATE_TEMPLATE  = 44'''
 +
''Примечание: resultingTarget = Creature.''
 +
** datalong: new creature entry. Must be different than the current one
 +
** datalong2: faction for which the entry is updated. 0 = Alliance, 1 = Horde
 +
 +
 +
* '''SCRIPT_COMMAND_START_RELAY_SCRIPT  = 45'''
 +
''Примечание: source and target of command define source and target of launched dbscript''
 +
** datalong: dbscripts_on_relay id
 +
** datalong2: dbscript_random_templates id
 +
 +
 +
* '''SCRIPT_COMMAND_CAST_CUSTOM_SPELL  = 46'''
 +
''Примечание: resultingSource = Unit, cast spell at resultingTarget = Unit''
 +
** datalong: Идентификатор заклинания. См. [[Spell.dbc]].
 +
** datalong2: TriggerCastFlags.
 +
** dataint1-dataint3: define the &bp for the spell. At least one field is required.
 +
 +
 +
* '''SCRIPT_COMMAND_INTERRUPT_SPELL  = 47'''
 +
''Примечание: source must be unit
 +
** datalong = SpellType enum CurrentSpellTypes
====comments====
====comments====
Коментарии.
Коментарии.

Текущая версия на 11:15, 1 февраля 2020

Содержание

К описанию таблиц базы данных 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_relay: Содержит информацию для активации скриптов. Идентичный идентификатор проекта DB, Id используется в dbscripts, EAI или SD2 для его запуска.
  • 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
priority int(11) unsigned NO 0
command mediumint(8) unsigned NO 0
datalong mediumint(8) unsigned NO 0
datalong2 int(10) unsigned NO 0
datalong3 int(11) 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_relay, єтот номер берется из скриптов SD2 или EventAI.
Для dbscripts_on_spell, это номер заклинания. Смотри Spell.dbc

delay

Задержка в миллисекундах, перед тем как скрипт активируется. 0 = сразу.

priority

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_SPAWN_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 Команда для взаимодействия между eventAI и dbscripts.
36 SCRIPT_COMMAND_SET_FACING
37 SCRIPT_COMMAND_MOVE_DYNAMIC
38 SCRIPT_COMMAND_SEND_MAIL Команда для отправки почтового сообщения.
39 SCRIPT_COMMAND_SET_FLY
40 SCRIPT_COMMAND_DESPAWN_GO Деспавнит объект.
41 SCRIPT_COMMAND_RESPAWN Респавнит нпц.
42 SCRIPT_COMMAND_SET_EQUIPMENT_SLOTS Смена состояния экипировки у НПЦ.
43 SCRIPT_COMMAND_RESET_GO Сбрасывает текущее состояние объекта.
44 SCRIPT_COMMAND_UPDATE_TEMPLATE
45 SCRIPT_COMMAND_START_RELAY_SCRIPT Запускает скрипт статический из dbscripts_on_relay, либо случайный из dbscript_random_templates.
46 SCRIPT_COMMAND_CAST_CUSTOM_SPELL
47 SCRIPT_COMMAND_INTERRUPT_SPELL

|}

OtherFields

  • buddy_entry - поле содержит идентификатор цели (может быть creature_template.entry или gameobject_template.entry).
  • search_radius - радиус, в котором указанная в buddy_entry цель будет искаться.
    Если установлен флаг SCRIPT_FLAG_BUDDY_BY_GUID, то в поле пишется GUID цели.

Примечание - если эти поля заполнены, то команда отработает только тогда, когда указанное условие выполнится.

  • data_flags - поле может содержать как один, так и комбинацию флагов:
Description Описание flag Значение
SCRIPT_FLAG_BUDDY_AS_TARGETДействие от имени игрока0x011
SCRIPT_FLAG_REVERSE_DIRECTIONДействие от имени цели0x022
SCRIPT_FLAG_SOURCE_TARGETS_SELF0x044
SCRIPT_FLAG_COMMAND_ADDITIONALВозможно только для некоторых команд 0x088
SCRIPT_FLAG_BUDDY_BY_GUIDВозможно только для гуидов существ 0x1016
SCRIPT_FLAG_BUDDY_IS_PETВозможно только для питомцев 0x2032
SCRIPT_FLAG_BUDDY_IS_DESPAWNEDВозможно только для "мертвых" или деспавненых существ 0x4064
SCRIPT_FLAG_BUDDY_BY_POOL Возможно только для существ в пуле0x80128


В зависимости от команды будут срабатывать следующие значения:


  • SCRIPT_COMMAND_TALK = 0

Примечание: resultingSource = WorldObject, resultingTarget = Unit/none

    • dataint: Идентификатор текста, который будет произнесен. См dbscript_string.entry.
    • dataint2-dataint4: Опционально, для случайного выбора текста из полей.
    • datalong = dbscript_random_templates.id - will randomize between all dbscript_strings in given template.
  • 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: Битмаска.
FIELD TO MODIFY HEX VALUES DECIMAL INDEX VALUE COMMENTS
UNIT_FIELD_FLAGS0×0006 + 0×002859-WOTLKModify UnitFlags for NPC (Source Must Be Unit)
UNIT_DYNAMIC_FLAGS0×0006 + 0×009E78-WOTLKModify DynamicFlags for NPC (Source Must Be Unit)
UNIT_NPC_FLAGS0×0006 + 0×00A282-WOTLKModify NPCFlags for NPC (Source Must Be Unit)


  • SCRIPT_COMMAND_FLAG_REMOVE = 5

Примечание: source = any

    • datalong: Идентификатор поля.
    • datalong2: Битмаска.
FIELD TO MODIFY HEX VALUES DECIMAL INDEX VALUE COMMENTS
UNIT_FIELD_FLAGS0×0006 + 0×002859-WOTLKModify UnitFlags for NPC (Source Must Be Unit)
UNIT_DYNAMIC_FLAGS0×0006 + 0×009E78-WOTLKModify DynamicFlags for NPC (Source Must Be Unit)
UNIT_NPC_FLAGS0×0006 + 0×00A282-WOTLKModify NPCFlags for NPC (Source Must Be Unit)


  • 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_SPAWN_CREATURE = 10

Примечание: source = any, target = any

    • datalong: Идентификатор существа creature_template.entry.
    • datalong2: Время деспавна в миллисекундах.
    • datalong3: Идентификатор для pathId - creature_movement_template
    • data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: Вызывет при активации объекта.
    • dataint = (bool) setRun; 0 = off (default), 1 = on
    • dataint2 = factionId - if 0 is set, faction is from DB entry
    • dataint3 = modelId - if 0 is set, model is from DB entry
    • 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.
    • data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: remove aura by caster spell from script target


  • SCRIPT_COMMAND_CAST_SPELL = 15

Примечание: resultingSource = Unit, cast spell at resultingTarget = Unit

    • datalong: Идентификатор заклинания. См. Spell.dbc.
    • datalong2: TriggerCastFlags.
    • dataint1-dataint4: Опционально, для случайного выбора заклинания из полей.


  • 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: Количество.
    • data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: удаляет предмет в количестве из 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). pathId (for waypoint movement)
    • 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.
    • datalong3: pool_id.
    • data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: флага нет - прервать скрипт, если найдено "живое" существо, флаг есть - прервать скрипт, если найдено "мертвое" существо.
    • dataint1-dataint4: изменение времени ожидания 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 = 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.
    • data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL Obtain a point in direction of resTarget->GetOrientation + orientation for resTarget == resSource and orientation == 0 this will mean resSource moving forward


  • 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.


  • SCRIPT_COMMAND_SET_FLY = 39

Примечание: resultingSource = Creature

    • datalong: bool 0=off, 1=on
    • data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL set/unset byte flag UNIT_BYTE1_FLAG_FLY_ANIM


  • SCRIPT_COMMAND_DESPAWN_GO = 40

Примечание: resultingTarget = GameObject. Внимание, не все типы обьектов поддерживают эту команду


  • SCRIPT_COMMAND_RESPAWN = 41

Примечание: resultingSource = Creature. Requires SCRIPT_FLAG_BUDDY_IS_DESPAWNED to find dead or despawned targets


  • SCRIPT_COMMAND_SET_EQUIPMENT_SLOTS = 42

Примечание: resultingSource = Creature

    • datalong: resetDefault: bool 0=false, 1=true
    • dataint: main hand slot; dataint2 = off hand slot; dataint3 = ranged slot


  • SCRIPT_COMMAND_RESET_GO = 43

Примечание: resultingTarget = GameObject. Reset doors or buttons (GO type 0 and 1)


  • SCRIPT_COMMAND_UPDATE_TEMPLATE = 44

Примечание: resultingTarget = Creature.

    • datalong: new creature entry. Must be different than the current one
    • datalong2: faction for which the entry is updated. 0 = Alliance, 1 = Horde


  • SCRIPT_COMMAND_START_RELAY_SCRIPT = 45

Примечание: source and target of command define source and target of launched dbscript

    • datalong: dbscripts_on_relay id
    • datalong2: dbscript_random_templates id


  • SCRIPT_COMMAND_CAST_CUSTOM_SPELL = 46

Примечание: resultingSource = Unit, cast spell at resultingTarget = Unit

    • datalong: Идентификатор заклинания. См. Spell.dbc.
    • datalong2: TriggerCastFlags.
    • dataint1-dataint3: define the &bp for the spell. At least one field is required.


  • SCRIPT_COMMAND_INTERRUPT_SPELL = 47

Примечание: source must be unit

    • datalong = SpellType enum CurrentSpellTypes

comments

Коментарии.

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