All scripts

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

(Различия между версиями)
Перейти к: навигация, поиск
(OtherFields)
 
(233 промежуточные версии не показаны)
Строка 2: Строка 2:
| __TOC__
| __TOC__
|}
|}
-
Back to [[mangosdb_struct|world database]] list of tables.
+
[[Category: Mangos world database tables]]
 +
К описанию таблиц [[mangosdb_struct|базы данных mangos]].
-
<big>'''The `*_scripts` table'''</big>
+
<big>'''Таблицы вида `dbscripts_on_*`'''</big>
-
This table format is used for 5 different tables to control possible scripts activated by different actions:
+
Этот формат таблицы используется для 7 различных таблиц, чтобы управлять возможными скриптами, активизированными различными действиями:
-
* '''gameobject_scripts:''' Holds possible scripts activated by gameobjects of type GAMEOBJECT_TYPE_BUTTON (1).
+
-
* '''spell_scripts:''' Holds scripts that can be activated by spells with effect SPELL_EFFECT_SCRIPT_EFFECT (77).
+
* '''dbscripts_on_creature_death:''' Содержит скрипты активирующиеся всякий раз при смерти нпц.
-
* '''quest_start_scripts:''' Holds scripts activated when a player accepts a quest.
+
* '''dbscripts_on_creature_movement:''' Содержит скрипты активирующиеся всякий раз при движении нпц.
-
* '''quest_end_scripts:''' Holds scripts activated when a player finishes a quest.
+
* '''dbscripts_on_event:''' Содержит скрипты активирующиеся всякий раз, когда происходит указанное событие, будь это объект или эффект заклинания SPELL_EFFECT_SEND_EVENT (61).
-
* '''event_scripts:''' Holds scripts activated whenever an event is activated, be it by an object or as the spell effect SPELL_EFFECT_SEND_EVENT (61).
+
* '''dbscripts_on_gossip:''' Содержит скрипты активирующиеся всякий раз, когда происходит указанное событие в госсип меню.
-
NOTE: An entry in this table may have more than one row as a script may do more than just one action. Also each action the script may make can have a separate delay attached to it. In that case, the core will activate the appropriate action after the correct delay.
+
* '''dbscripts_on_go_template_use:''' Содержит информацию для активации скриптов предназначенных для игровых объектов(по шаблону).
-
<big>'''Structure'''</big>
+
* '''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).
 +
 
 +
ПРИМЕЧЕНИЕ: У скриптов в этой таблицы может быть больше чем одна запись, поскольку скрипт может сделать больше чем только одно действие. Также каждому действию, которое может сделать скрипт, можно указать отдельную задержку к нему. В этом случае, ядро активизирует соответствующее действие после правильной задержки.
 +
 
 +
 
 +
<big>'''Структура'''</big>
{| border="1"
{| border="1"
|'''Field'''
|'''Field'''
|'''Type'''
|'''Type'''
 +
|'''Attributes'''
|'''Null'''
|'''Null'''
|'''Key'''
|'''Key'''
|'''Default'''
|'''Default'''
-
|'''Extra'''
+
|'''Comments'''
|-
|-
|[[#id|id]]
|[[#id|id]]
-
|int(11) unsigned
+
|mediumint(8)
 +
|unsigned
|NO
|NO
|
|
Строка 37: Строка 52:
|-
|-
|[[#delay|delay]]
|[[#delay|delay]]
-
|int(11) unsigned
+
|int(10)
 +
|unsigned
 +
|NO
 +
|
 +
|0
 +
|
 +
|-
 +
|[[#priority|priority]]
 +
|int(11)
 +
|unsigned
|NO
|NO
|
|
Строка 44: Строка 68:
|-
|-
|[[#command|command]]
|[[#command|command]]
-
|int(11) unsigned
+
|mediumint(8)
 +
|unsigned
|NO
|NO
|
|
Строка 51: Строка 76:
|-
|-
|[[#OtherFields|datalong]]
|[[#OtherFields|datalong]]
-
|int(11) unsigned
+
|mediumint(8)
 +
|unsigned
|NO
|NO
|
|
Строка 58: Строка 84:
|-
|-
|[[#OtherFields|datalong2]]
|[[#OtherFields|datalong2]]
-
|int(11) unsigned
+
|int(10)
 +
|unsigned
 +
|NO
 +
|
 +
|0
 +
|
 +
|-
 +
|[[#OtherFields|datalong3]]
 +
|int(11)
 +
|unsigned
 +
|NO
 +
|
 +
|0
 +
|
 +
|-
 +
|[[#OtherFields|buddy_entry]]
 +
|mediumint(8)
 +
|unsigned
 +
|NO
 +
|
 +
|0
 +
|
 +
|-
 +
|[[#OtherFields|search_radius]]
 +
|mediumint(8)
 +
|unsigned
 +
|NO
 +
|
 +
|0
 +
|
 +
|-
 +
|[[#OtherFields|data_flags]]
 +
|tinyint(3)
 +
|unsigned
|NO
|NO
|
|
Строка 66: Строка 125:
|[[#OtherFields|dataint]]
|[[#OtherFields|dataint]]
|int(11)
|int(11)
 +
|
 +
|NO
 +
|
 +
|0
 +
|
 +
|-
 +
|[[#OtherFields|dataint2]]
 +
|int(11)
 +
|
 +
|NO
 +
|
 +
|0
 +
|
 +
|-
 +
|[[#OtherFields|dataint3]]
 +
|int(11)
 +
|
 +
|NO
 +
|
 +
|0
 +
|
 +
|-
 +
|[[#OtherFields|dataint4]]
 +
|int(11)
 +
|
|NO
|NO
|
|
Строка 73: Строка 157:
|[[#OtherFields|x]]
|[[#OtherFields|x]]
|float
|float
 +
|
|NO
|NO
|
|
Строка 80: Строка 165:
|[[#OtherFields|y]]
|[[#OtherFields|y]]
|float
|float
 +
|
|NO
|NO
|
|
Строка 87: Строка 173:
|[[#OtherFields|z]]
|[[#OtherFields|z]]
|float
|float
 +
|
|NO
|NO
|
|
Строка 94: Строка 181:
|[[#OtherFields|o]]
|[[#OtherFields|o]]
|float
|float
 +
|
 +
|NO
 +
|
 +
|0
 +
|
 +
|-
 +
|[[#comments|comments]]
 +
|varchar(255)
 +
|
|NO
|NO
|
|
Строка 101: Строка 197:
-
<big>'''Description of the fields'''</big>
+
<big>'''Описание полей'''</big>
====id====
====id====
-
For '''gameobject_scripts''', it is the guid of the button/lever. See [[gameobject#guid|gameobject.guid]].<br>
+
Для '''dbscripts_on_creature_death'''.<br>
-
For '''spell_scripts''', it is the spell ID. See Spell.dbc<br>
+
Для '''dbscripts_on_creature_movement''', этот номер берется из [[Creature movement#script_id|script_id]] в таблице с точками передвижения существ.<br>
-
For '''quest_*_scripts''', it is the ID that is used in [[quest_template#StartScript|StartScript]] or [[quest_template#CompleteScript|CompleteScript]] in the quest template definition.<br>
+
Для '''dbscripts_on_event''', это номер события. В настоящее время не существует полного списка событий. В любом случае, номера событий взяты непосредственно из WDB данных игровых объектов (ИО) или данных эффектов заклинаний. Если игровой объект (ИО) и заклинания активизируют то же самое событие, то номера записей будут соответствовать.<br>
-
For '''event_scripts''', it is the event ID. There doesn't exist currently a full list of events. In any case, the event IDs are taken directly from gameobject WDB data or spell effect data. If both a gameobject and a spell activate the same event, the IDs will match.
+
Для '''dbscripts_on_gossip''', этот номер берется из [[Gossip menu option#action_script_id|action_script_id]] в таблице с шаблонами меню.<br>
 +
Для '''dbscripts_on_go_template_use''', это идентификатор (ID) обьекта. Смотри [[gameobject_template#entry|gameobject_template.entry]].<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_relay''', єтот номер берется из скриптов SD2 или EventAI.<br>
 +
Для '''dbscripts_on_spell''', это номер заклинания. Смотри [[Spell.dbc]]
====delay====
====delay====
-
Delay in seconds before this current step of the script activates. 0 = instant.
+
Задержка в миллисекундах, перед тем как скрипт активируется. 0 = сразу.
 +
 
 +
====priority====
====command====
====command====
-
The type of action performed by the script after [[#delay|delay]] seconds have passed. The value of this field affects what other fields also need to be set.
+
Тип действия скрипта по прошествии [[#delay|delay]] секунд. Значение этого поля влияет на то, каким образом нужно заполнять поля рядом.
-
The following commands can be used:
+
Можно использовать такие команды:
{| border=1 cellpadding=3 cellspacing=0
{| border=1 cellpadding=3 cellspacing=0
-
! Command !! Name !! Description
+
! Комманда !! Имя !! Описание
|-
|-
-
| 0 || TALK || Creature say/whisper/yell/textemote.
+
| 0 || TALK || Сказать/прошептать/крикнуть/текстовая эмоция.
|-
|-
-
| 1 || EMOTE || Play emote on creature.
+
| 1 || EMOTE || Проиграть эмоцию у существа.
|-
|-
-
| 2 || FIELD_SET || Change the value at an index for the player.
+
| 2 || FIELD_SET || Сменить значение по индексу у игрока.
|-
|-
-
| 3 || MOVE_TO || Relocate creature to a destination
+
| 3 || MOVE_TO || Переместить существо по адресу.
|-
|-
-
| 4 || FLAG_SET || Turns on bits on a flag field at an index for the player.
+
| 4 || FLAG_SET || Включает биты в поле флагов по индексу у игрока.
|-
|-
-
| 5 || FLAG_REMOVE || Turns off bits on a flag field at an index for the player.  
+
| 5 || FLAG_REMOVE || Выключает биты в поле флагов по индексу у игрока.
|-
|-
-
| 6 || TELEPORT_TO || Teleports the player to a location.
+
| 6 || TELEPORT_TO || Телепортирует игрока в локацию.
|-
|-
-
| 7 || QUEST_EXPLORED || Satisfies the explore requirement for a quest.
+
| 7 || QUEST_EXPLORED || Засчитывает открытие для квеста.
|-
|-
-
| 8 || KILL_CREDIT || Satisfies the kill credit requirement for a quest.
+
| 8 || KILL_CREDIT || Засчитывает убийство для квеста.
|-
|-
-
| 9 || RESPAWN_GAMEOBJECT || Spawns a despawned gameobject.
+
| 9 || RESPAWN_GAMEOBJECT || Спавнит незаспавненное ГО.
|-
|-
-
| 10 || TEMP_SUMMON_CREATURE || Temporarily summon a creature.
+
| 10 || TEMP_SPAWN_CREATURE || Временно вызывает существо.
|-
|-
-
| 11 || OPEN_DOOR || Opens a door gameobject (type == 0).
+
| 11 || OPEN_DOOR || Открывает дверь. (type == 0).
|-
|-
-
| 12 || CLOSE_DOOR || Closes a door gameobject (type == 0).
+
| 12 || CLOSE_DOOR || Закрывает дверь. (type == 0).
|-
|-
-
| 13 || ACTIVATE_OBJECT || Activates an object.
+
| 13 || ACTIVATE_OBJECT || Активирует объект.
|-
|-
-
| 14 || REMOVE_AURA || Removes an aura due to a spell.
+
| 14 || REMOVE_AURA || Убирает ауру наложенную заклинанием.
|-
|-
-
| 15 || CAST_SPELL || Casts a spell.  
+
| 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|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====
====OtherFields====
-
Depending on what command was used, the meaning and use for the following fields varies.
 
-
* '''SCRIPT_COMMAND_TALK = 0'''
+
* '''buddy_entry''' - поле содержит идентификатор цели (может быть [[creature_template#entry|creature_template.entry]] или [[gameobject_template#entry|gameobject_template.entry]]).
-
** datalong: 0=say, 1=whisper, 2=yell, 3=text emote
+
* '''search_radius''' - радиус, в котором указанная в buddy_entry цель будет искаться.<br>'''Если установлен флаг SCRIPT_FLAG_BUDDY_BY_GUID, то в поле пишется GUID цели'''.
-
** dataint: The text ID that the creature will say. See [[db_script_string]]. ID must be between 2000000000 and 2000010000.
+
''Примечание'' - если эти поля заполнены, то команда отработает только тогда, когда указанное условие выполнится.
 +
* '''data_flags''' - поле может содержать как один, так и комбинацию флагов:
 +
{| border=1 cellpadding=2 cellspacing=0
 +
! Description !! Описание !! flag !! Значение
 +
|-
 +
|SCRIPT_FLAG_BUDDY_AS_TARGET||Действие от имени игрока||0x01||1
 +
|-
 +
|SCRIPT_FLAG_REVERSE_DIRECTION||Действие от имени цели||0x02||2
 +
|-
 +
|SCRIPT_FLAG_SOURCE_TARGETS_SELF||||0x04||4
 +
|-
 +
|SCRIPT_FLAG_COMMAND_ADDITIONAL||Возможно только для некоторых команд ||0x08||8
 +
|-
 +
|SCRIPT_FLAG_BUDDY_BY_GUID||Возможно только для гуидов существ ||0x10||16
 +
|-
 +
|SCRIPT_FLAG_BUDDY_IS_PET||Возможно только для питомцев ||0x20||32
 +
|-
 +
|SCRIPT_FLAG_BUDDY_IS_DESPAWNED||Возможно только для "мертвых" или деспавненых существ ||0x40||64
 +
|-
 +
|SCRIPT_FLAG_BUDDY_BY_POOL|| Возможно только для существ в пуле||0x80||128
 +
|}
 +
 +
 +
В зависимости от команды будут срабатывать следующие значения:
 +
 +
 +
* '''SCRIPT_COMMAND_TALK = 0'''
 +
''Примечание: resultingSource = WorldObject, resultingTarget = Unit/none''
 +
** dataint: Идентификатор текста, который будет произнесен. См [[dbscript_string#entry|dbscript_string.entry]].
 +
** 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'''
-
** datalong: The emote ID to play.
+
''Примечание: resultingSource = Unit, resultingTarget = Unit/none''
 +
** datalong: Идентификатор воспроизводимой эмоции.
 +
** dataint1-dataint4: Опционально, для случайного выбора эмоции из полей.
* '''SCRIPT_COMMAND_FIELD_SET = 2'''
* '''SCRIPT_COMMAND_FIELD_SET = 2'''
-
** datalong: Index of the field.
+
''Примечание: source = any''
-
** datalong2: Value to place at the index.
+
** datalong: Идентификатор поля.
 +
** datalong2: Значение поля.
* '''SCRIPT_COMMAND_MOVE_TO = 3'''
* '''SCRIPT_COMMAND_MOVE_TO = 3'''
-
** datalong2: Length of the motion.
+
''Примечание: resultingSource = Creature, if position is very near to current position, or x=y=z=0, then only orientation is changed''
-
** x: X position to move to.
+
** datalong2: travel_speed*100 (use 0 for creature default movement).
-
** y: Y position to move to.
+
** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: teleport unit to position
-
** z: Z position to move to.
+
** x:        Координата x.
-
** o: Orientation to face.
+
** y:         Координата y.
 +
** z:         Координата z.
 +
** o:         Ориентация.
* '''SCRIPT_COMMAND_FLAG_SET = 4'''
* '''SCRIPT_COMMAND_FLAG_SET = 4'''
-
** datalong:  Field index to be set.
+
''Примечание: source = any''
-
** datalong2:  Flag bit(s) to set.
+
** datalong:  Идентификатор поля.
 +
** 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)
 +
|}
* '''SCRIPT_COMMAND_FLAG_REMOVE = 5'''
* '''SCRIPT_COMMAND_FLAG_REMOVE = 5'''
-
** datalong:  Field index to be unset.
+
''Примечание: source = any''
-
** datalong2:  Flag bit(s) to unset.
+
** datalong:  Идентификатор поля.
 +
** 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)
 +
|}
* '''SCRIPT_COMMAND_TELEPORT_TO = 6'''
* '''SCRIPT_COMMAND_TELEPORT_TO = 6'''
-
** datalong:  Target Map ID. See [[Maps.dbc]]
+
''Примечание: source or target with Player''
-
** x:          Teleport target x coordinate.
+
** datalong:  Идентификатор карты. См. [[Maps.dbc]]
-
** y:          Teleport target y coordinate.
+
** x:          Координата x.
-
** z:          Teleport target z coordinate.
+
** y:          Координата y.
-
** o:          Teleport target orientation.
+
** z:          Координата z.
 +
** o:          Ориентация.
* '''SCRIPT_COMMAND_QUEST_EXPLORED = 7'''
* '''SCRIPT_COMMAND_QUEST_EXPLORED = 7'''
-
** datalong:  Quest ID whose external status should be satisfied
+
''Примечание: one from source or target must be Player, another GO/Creature''
-
** datalong2:  Distance away from the NPC/object that the player can be and have the script still take effect
+
** datalong:  Идентификатор задания. См. [[quest_template#entry|quest_template.entry]].
 +
** datalong2:  Дистанция от NPC/object до игрока, для срабатывания эффекта или 0.
* '''SCRIPT_COMMAND_KILL_CREDIT = 8'''
* '''SCRIPT_COMMAND_KILL_CREDIT = 8'''
-
** datalong:  Kill credit entry for quest (entry in quest_template.ReqCreatureOrGOId)
+
''Примечание: source or target with Player''
-
** datalong2:  0=personal credit, 1=group credit
+
** datalong:  Идентификатор существа или 0. См. [[quest_template#ReqCreatureOrGOId|quest_template.ReqCreatureOrGOId]], если 0 - используется ид цели(текущего нпц).
 +
** datalong2:  0=персональный зачет, 1=групповой зачет.
* '''SCRIPT_COMMAND_RESPAWN_GAMEOBJECT = 9'''
* '''SCRIPT_COMMAND_RESPAWN_GAMEOBJECT = 9'''
-
** datalong:  Guid of the gameobject to respawn. See [[gameobject#guid|gameobject.guid]].
+
''Примечание: source = any, target = any''
-
** datalong2:  Despawn time in seconds. If the value is < 5 seconds: 5 is used instead.
+
** datalong:  Идентификатор объекта(can be skipped for buddy). См. [[gameobject#guid|gameobject.guid]]. Если поле равно 0, тогда в поле [[all_scripts#OtherFields|buddy_entry]] указывается ИД объекта.
 +
** datalong2:  Время деспавна в секундах. Если значение поля < 5 сек: значение 5 ставится автоматически.
-
* '''SCRIPT_COMMAND_TEMP_SUMMON_CREATURE = 10'''
+
* '''SCRIPT_COMMAND_TEMP_SPAWN_CREATURE = 10'''
-
** datalong:  Entry of the summoned creature from [[creature_template#entry|creature_template.entry]].
+
''Примечание: source = any, target = any''
-
** datalong2:  Despawn time in ms.
+
** datalong:  Идентификатор существа [[creature_template#entry|creature_template.entry]].
-
** x:          Summon target x coordinate.
+
** datalong2:  Время деспавна в миллисекундах.
-
** y:          Summon target y coordinate.
+
** datalong3:  Идентификатор для pathId - creature_movement_template
-
** z:          Summon target z coordinate.
+
** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: Вызывет при активации объекта.
-
** o:          Summon target orientation.
+
** 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'''
* '''SCRIPT_COMMAND_OPEN_DOOR = 11'''
-
** datalong:  Guid of the activated door. It's a [[gameobject#guid|gameobject.guid]].
+
''Примечание: source = any''
-
** datalong2:  Delay before closing again the door. If the value is < 5 seconds: 5 is used instead.
+
** datalong:  Идентификатор объекта. См. [[gameobject#guid|gameobject.guid]]. Если поле равно 0, тогда в поле [[all_scripts#OtherFields|buddy_entry]] указывается ИД объекта.
 +
** datalong2:  Время закрытия объекта в секундах. Если значение поля < 5 сек: значение 5 ставится автоматически.
* '''SCRIPT_COMMAND_CLOSE_DOOR = 12'''
* '''SCRIPT_COMMAND_CLOSE_DOOR = 12'''
-
** datalong:  Guid of the activated door. It's a [[gameobject#guid|gameobject.guid]].
+
''Примечание: source = any''
-
** datalong2:  Delay before opening again the door. If the value is < 5 seconds: 5 is used instead.
+
** datalong:  Идентификатор объекта. См. [[gameobject#guid|gameobject.guid]]. Если поле равно 0, тогда в поле [[all_scripts#OtherFields|buddy_entry]] указывается ИД объекта.
 +
** datalong2:  Время открытия объекта в секундах. Если значение поля < 5 сек: значение 5 ставится автоматически.
* '''SCRIPT_COMMAND_ACTIVATE_OBJECT = 13'''
* '''SCRIPT_COMMAND_ACTIVATE_OBJECT = 13'''
-
** The source must be a unit and the target a game object.
+
''Примечание: source = unit, target=GO''
* '''SCRIPT_COMMAND_REMOVE_AURA = 14'''
* '''SCRIPT_COMMAND_REMOVE_AURA = 14'''
-
** datalong: Spell ID.
+
''Примечание: resultingSource = Unit''
-
** datalong2: If value > 0, then cast on the source; otherwise cast on the target.
+
** datalong: Идентификатор заклинания. См. [[Spell.dbc]].
 +
** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: remove aura by caster spell from script target
* '''SCRIPT_COMMAND_CAST_SPELL = 15'''
* '''SCRIPT_COMMAND_CAST_SPELL = 15'''
-
** datalong: Spell ID.
+
''Примечание: resultingSource = Unit, cast spell at resultingTarget = Unit''
-
** datalong2: If value > 0, then cast on the source; otherwise cast on the target.
+
** datalong: Идентификатор заклинания. См. [[Spell.dbc]].
 +
** datalong2: TriggerCastFlags.
 +
** dataint1-dataint4: Опционально, для случайного выбора заклинания из полей.
* '''SCRIPT_COMMAND_PLAY_SOUND = 16'''
* '''SCRIPT_COMMAND_PLAY_SOUND = 16'''
-
** datalong: sound_id.
+
''Примечание: source = any object, target=any/player''
-
** datalong2: bitmask: 0/1=anyone/target, 0/2=with distance dependent, so 1|2 = 3 is target with distance dependent.
+
** 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|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|Creature_template.Factionx]].
 +
** datalong2 = Значение флага
 +
{| border=1 cellpadding=3 cellspacing=0
 +
! 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_template.entry]]) или модели(см. [[creature_model_info#modelid|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_template.entry]]) или модели(см. [[creature_model_info#modelid|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: Идентификатор позиции существа {{:UnitStandStateType}}
 +
 
 +
 
 +
* '''SCRIPT_COMMAND_MODIFY_NPC_FLAGS  = 29'''
 +
''Примечание: source = resultingSource = Creature''
 +
** datalong: Идентификатор флага существа. См. [[creature_template#npcflag|creature_template.npcflag]].
 +
** datalong2:
 +
{| border=1 cellpadding=3 cellspacing=0
 +
! 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|creature_template.entry]]).
 +
** datalong2: радиус, в котором будет искаться существо, указанное в buddy_entry.
 +
** datalong3: pool_id.
 +
** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: флага нет - прервать скрипт, если найдено "живое" существо, флаг есть - прервать скрипт, если найдено "мертвое" существо.
 +
** dataint1-dataint4: изменение времени ожидания [[Creature movement#waittime|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: Идентификатор условия, при котором сработает данный пункт. См. [[conditions#condition_entry|condition_entry]].
 +
** datalong2: Идентификатор проваленного задания(если задание это предусматривает). См. [[quest_template#entry|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====
 +
Коментарии.

Текущая версия на 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

Коментарии.

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