All scripts
Материал из YTDB DataBase
Virusav (Обсуждение | вклад) |
NeatElves (Обсуждение | вклад) |
||
(188 промежуточных версий не показаны.) | |||
Строка 6: | Строка 6: | ||
- | <big>'''Таблицы вида `* | + | <big>'''Таблицы вида `dbscripts_on_*`'''</big> |
Этот формат таблицы используется для 7 различных таблиц, чтобы управлять возможными скриптами, активизированными различными действиями: | Этот формат таблицы используется для 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). | ||
ПРИМЕЧЕНИЕ: У скриптов в этой таблицы может быть больше чем одна запись, поскольку скрипт может сделать больше чем только одно действие. Также каждому действию, которое может сделать скрипт, можно указать отдельную задержку к нему. В этом случае, ядро активизирует соответствующее действие после правильной задержки. | ПРИМЕЧЕНИЕ: У скриптов в этой таблицы может быть больше чем одна запись, поскольку скрипт может сделать больше чем только одно действие. Также каждому действию, которое может сделать скрипт, можно указать отдельную задержку к нему. В этом случае, ядро активизирует соответствующее действие после правильной задержки. | ||
Строка 46: | Строка 53: | ||
|[[#delay|delay]] | |[[#delay|delay]] | ||
|int(10) | |int(10) | ||
+ | |unsigned | ||
+ | |NO | ||
+ | | | ||
+ | |0 | ||
+ | | | ||
+ | |- | ||
+ | |[[#priority|priority]] | ||
+ | |int(11) | ||
|unsigned | |unsigned | ||
|NO | |NO | ||
Строка 77: | Строка 92: | ||
|- | |- | ||
|[[#OtherFields|datalong3]] | |[[#OtherFields|datalong3]] | ||
- | |int( | + | |int(11) |
|unsigned | |unsigned | ||
|NO | |NO | ||
Строка 84: | Строка 99: | ||
| | | | ||
|- | |- | ||
- | |[[#OtherFields| | + | |[[#OtherFields|buddy_entry]] |
- | | | + | |mediumint(8) |
+ | |unsigned | ||
+ | |NO | ||
+ | | | ||
+ | |0 | ||
+ | | | ||
+ | |- | ||
+ | |[[#OtherFields|search_radius]] | ||
+ | |mediumint(8) | ||
|unsigned | |unsigned | ||
|NO | |NO | ||
Строка 176: | Строка 199: | ||
<big>'''Описание полей'''</big> | <big>'''Описание полей'''</big> | ||
====id==== | ====id==== | ||
- | Для ''' | + | Для '''dbscripts_on_creature_death'''.<br> |
- | Для ''' | + | Для '''dbscripts_on_creature_movement''', этот номер берется из [[Creature movement#script_id|script_id]] в таблице с точками передвижения существ.<br> |
- | + | Для '''dbscripts_on_event''', это номер события. В настоящее время не существует полного списка событий. В любом случае, номера событий взяты непосредственно из WDB данных игровых объектов (ИО) или данных эффектов заклинаний. Если игровой объект (ИО) и заклинания активизируют то же самое событие, то номера записей будут соответствовать.<br> | |
- | Для ''' | + | Для '''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==== | ||
- | Задержка в | + | Задержка в миллисекундах, перед тем как скрипт активируется. 0 = сразу. |
+ | |||
+ | ====priority==== | ||
====command==== | ====command==== | ||
Строка 207: | Строка 235: | ||
| 6 || TELEPORT_TO || Телепортирует игрока в локацию. | | 6 || TELEPORT_TO || Телепортирует игрока в локацию. | ||
|- | |- | ||
- | | 7 || QUEST_EXPLORED || | + | | 7 || QUEST_EXPLORED || Засчитывает открытие для квеста. |
|- | |- | ||
- | | 8 || KILL_CREDIT || | + | | 8 || KILL_CREDIT || Засчитывает убийство для квеста. |
|- | |- | ||
| 9 || RESPAWN_GAMEOBJECT || Спавнит незаспавненное ГО. | | 9 || RESPAWN_GAMEOBJECT || Спавнит незаспавненное ГО. | ||
|- | |- | ||
- | | 10 || | + | | 10 || TEMP_SPAWN_CREATURE || Временно вызывает существо. |
|- | |- | ||
| 11 || OPEN_DOOR || Открывает дверь. (type == 0). | | 11 || OPEN_DOOR || Открывает дверь. (type == 0). | ||
Строка 227: | Строка 255: | ||
| 16 || PLAY_SOUND || Играет звук. | | 16 || PLAY_SOUND || Играет звук. | ||
|- | |- | ||
- | | 17 || CREATE_ITEM || Создает предмет. | + | | 17 || CREATE_ITEM || Создает или удаляет предмет. |
|- | |- | ||
| 18 || DESPAWN_SELF || Деспавнит нпц с задержкой. | | 18 || DESPAWN_SELF || Деспавнит нпц с задержкой. | ||
Строка 235: | Строка 263: | ||
| 20 || MOVEMENT || Начинает движение или сменяет его тип. | | 20 || MOVEMENT || Начинает движение или сменяет его тип. | ||
|- | |- | ||
- | | 21 || SET_ACTIVEOBJECT || | + | | 21 || SET_ACTIVEOBJECT || Делает НПЦ активным. |
|- | |- | ||
| 22 || SET_FACTION || Изменить фракцию существа. | | 22 || SET_FACTION || Изменить фракцию существа. | ||
|- | |- | ||
- | | 23 || MORPH_TO_ENTRY_OR_MODEL || | + | | 23 || MORPH_TO_ENTRY_OR_MODEL || Заставить существо сменить модель. |
|- | |- | ||
- | | 24 || MOUNT_TO_ENTRY_OR_MODEL || | + | | 24 || MOUNT_TO_ENTRY_OR_MODEL || Заставить существо сесть верхом. |
|- | |- | ||
| 25 || SET_RUN || Заставить существо бежать. | | 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==== | ||
+ | |||
+ | * '''buddy_entry''' - поле содержит идентификатор цели (может быть [[creature_template#entry|creature_template.entry]] или [[gameobject_template#entry|gameobject_template.entry]]). | ||
+ | * '''search_radius''' - радиус, в котором указанная в buddy_entry цель будет искаться.<br>'''Если установлен флаг SCRIPT_FLAG_BUDDY_BY_GUID, то в поле пишется GUID цели'''. | ||
+ | ''Примечание'' - если эти поля заполнены, то команда отработает только тогда, когда указанное условие выполнится. | ||
+ | |||
+ | * '''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: | + | ''Примечание: resultingSource = Unit, resultingTarget = Unit/none'' |
+ | ** datalong: Идентификатор воспроизводимой эмоции. | ||
+ | ** dataint1-dataint4: Опционально, для случайного выбора эмоции из полей. | ||
* '''SCRIPT_COMMAND_FIELD_SET = 2''' | * '''SCRIPT_COMMAND_FIELD_SET = 2''' | ||
- | ** datalong: | + | ''Примечание: source = any'' |
- | ** datalong2: | + | ** datalong: Идентификатор поля. |
+ | ** datalong2: Значение поля. | ||
* '''SCRIPT_COMMAND_MOVE_TO = 3''' | * '''SCRIPT_COMMAND_MOVE_TO = 3''' | ||
- | ** datalong2: | + | ''Примечание: 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). |
- | ** y: | + | ** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: teleport unit to position |
- | ** z: | + | ** x: Координата x. |
- | ** o: | + | ** y: Координата y. |
+ | ** z: Координата z. | ||
+ | ** o: Ориентация. | ||
* '''SCRIPT_COMMAND_FLAG_SET = 4''' | * '''SCRIPT_COMMAND_FLAG_SET = 4''' | ||
- | ** datalong: | + | ''Примечание: source = any'' |
- | ** datalong2: | + | ** 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: | + | ''Примечание: source = any'' |
- | ** datalong2: | + | ** 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: | + | ''Примечание: source or target with Player'' |
- | ** x: | + | ** datalong: Идентификатор карты. См. [[Maps.dbc]] |
- | ** y: | + | ** x: Координата x. |
- | ** z: | + | ** y: Координата y. |
- | ** o: | + | ** z: Координата z. |
+ | ** o: Ориентация. | ||
* '''SCRIPT_COMMAND_QUEST_EXPLORED = 7''' | * '''SCRIPT_COMMAND_QUEST_EXPLORED = 7''' | ||
- | ** datalong: | + | ''Примечание: one from source or target must be Player, another GO/Creature'' |
- | ** datalong2: | + | ** datalong: Идентификатор задания. См. [[quest_template#entry|quest_template.entry]]. |
+ | ** datalong2: Дистанция от NPC/object до игрока, для срабатывания эффекта или 0. | ||
* '''SCRIPT_COMMAND_KILL_CREDIT = 8''' | * '''SCRIPT_COMMAND_KILL_CREDIT = 8''' | ||
- | ** datalong: | + | ''Примечание: source or target with Player'' |
- | ** datalong2: 0= | + | ** datalong: Идентификатор существа или 0. См. [[quest_template#ReqCreatureOrGOId|quest_template.ReqCreatureOrGOId]], если 0 - используется ид цели(текущего нпц). |
+ | ** datalong2: 0=персональный зачет, 1=групповой зачет. | ||
* '''SCRIPT_COMMAND_RESPAWN_GAMEOBJECT = 9''' | * '''SCRIPT_COMMAND_RESPAWN_GAMEOBJECT = 9''' | ||
- | ** datalong: | + | ''Примечание: source = any, target = any'' |
- | ** datalong2: | + | ** datalong: Идентификатор объекта(can be skipped for buddy). См. [[gameobject#guid|gameobject.guid]]. Если поле равно 0, тогда в поле [[all_scripts#OtherFields|buddy_entry]] указывается ИД объекта. |
+ | ** datalong2: Время деспавна в секундах. Если значение поля < 5 сек: значение 5 ставится автоматически. | ||
- | * ''' | + | * '''SCRIPT_COMMAND_TEMP_SPAWN_CREATURE = 10''' |
- | ** datalong: | + | ''Примечание: source = any, target = any'' |
- | ** datalong2: | + | ** datalong: Идентификатор существа [[creature_template#entry|creature_template.entry]]. |
- | ** data_flags: | + | ** datalong2: Время деспавна в миллисекундах. |
- | ** x: | + | ** datalong3: Идентификатор для pathId - creature_movement_template |
- | ** y: | + | ** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: Вызывет при активации объекта. |
- | ** z: | + | ** dataint = (bool) setRun; 0 = off (default), 1 = on |
- | ** o: | + | ** 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: | + | ''Примечание: source = any'' |
- | ** datalong2: | + | ** 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: | + | ''Примечание: source = any'' |
- | ** datalong2: | + | ** datalong: Идентификатор объекта. См. [[gameobject#guid|gameobject.guid]]. Если поле равно 0, тогда в поле [[all_scripts#OtherFields|buddy_entry]] указывается ИД объекта. |
+ | ** datalong2: Время открытия объекта в секундах. Если значение поля < 5 сек: значение 5 ставится автоматически. | ||
* '''SCRIPT_COMMAND_ACTIVATE_OBJECT = 13''' | * '''SCRIPT_COMMAND_ACTIVATE_OBJECT = 13''' | ||
- | + | ''Примечание: source = unit, target=GO'' | |
* '''SCRIPT_COMMAND_REMOVE_AURA = 14''' | * '''SCRIPT_COMMAND_REMOVE_AURA = 14''' | ||
- | ** datalong: Spell | + | ''Примечание: resultingSource = Unit'' |
- | ** | + | ** 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 | + | ''Примечание: resultingSource = Unit, cast spell at resultingTarget = Unit'' |
- | ** datalong2: | + | ** datalong: Идентификатор заклинания. См. [[Spell.dbc]]. |
+ | ** datalong2: TriggerCastFlags. | ||
+ | ** dataint1-dataint4: Опционально, для случайного выбора заклинания из полей. | ||
* '''SCRIPT_COMMAND_PLAY_SOUND = 16''' | * '''SCRIPT_COMMAND_PLAY_SOUND = 16''' | ||
- | ** datalong: | + | ''Примечание: source = any object, target=any/player'' |
- | ** datalong2: | + | ** 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''' | * '''SCRIPT_COMMAND_CREATE_ITEM = 17''' | ||
- | ** datalong: | + | ''Примечание: source or target must be player'' |
- | ** datalong2: | + | ** datalong: Идентификатор предмета. См. [[item_template#entry|item_template.entry]]. |
- | + | ** datalong2: Количество. | |
+ | ** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: удаляет предмет в количестве из datalong2. | ||
* '''SCRIPT_COMMAND_DESPAWN_SELF = 18''' | * '''SCRIPT_COMMAND_DESPAWN_SELF = 18''' | ||
- | ** datalong: | + | ''Примечание: resultingSource = Creature'' |
- | + | ** datalong: Время деспавна в миллисекундах. | |
* '''SCRIPT_COMMAND_PLAY_MOVIE = 19''' | * '''SCRIPT_COMMAND_PLAY_MOVIE = 19''' | ||
- | ** datalong: | + | ''Примечание: target can only be a player'' |
+ | ** datalong: Идентификатор видео. См. [[Movie.dbc]]. | ||
* '''SCRIPT_COMMAND_MOVEMENT = 20''' | * '''SCRIPT_COMMAND_MOVEMENT = 20''' | ||
- | ** datalong: | + | ''Примечание: Команда начать движение источнику скрипта. Если источник - не существо, но цель - да, то применяем к цели.'' |
- | ** datalong2: | + | ** 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''' | * '''SCRIPT_COMMAND_SET_ACTIVEOBJECT = 21''' | ||
- | ** datalong: | + | ''Примечание: resultingSource = Creature. Делает существо активным или наоборот(зависит от флага).'' |
- | + | ** datalong: Значение: 0=выкл, 1=вкл. | |
- | + | ||
* '''SCRIPT_COMMAND_SET_FACTION = 22''' | * '''SCRIPT_COMMAND_SET_FACTION = 22''' | ||
- | ** datalong: | + | ''Примечание: resultingSource = Creature'' |
- | ** datalong2 | + | ** 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''' | * '''SCRIPT_COMMAND_MORPH_TO_ENTRY_OR_MODEL = 23''' | ||
- | ** datalong: | + | ''Примечание: resultingSource = Creature'' |
- | + | ** datalong: Идентификатор существа(см. [[creature_template#entry|creature_template.entry]]) или модели(см. [[creature_model_info#modelid|creature_model_info.modelid]]), зависит от флага. | |
- | + | ** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: в поле datalong идентификатор модели. | |
- | ** data_flags: | + | |
* '''SCRIPT_COMMAND_MOUNT_TO_ENTRY_OR_MODEL = 24''' | * '''SCRIPT_COMMAND_MOUNT_TO_ENTRY_OR_MODEL = 24''' | ||
- | ** datalong: | + | ''Примечание: resultingSource = Creature'' |
- | + | ** datalong: Идентификатор существа(см. [[creature_template#entry|creature_template.entry]]) или модели(см. [[creature_model_info#modelid|creature_model_info.modelid]]), зависит от флага. | |
- | + | ** data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL: в поле datalong идентификатор модели. | |
- | ** data_flags: | + | |
* '''SCRIPT_COMMAND_SET_RUN = 25''' | * '''SCRIPT_COMMAND_SET_RUN = 25''' | ||
- | ** datalong: bool 0=off, 1=on. | + | ''Примечание: 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==== | ====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 | Действие от имени игрока | 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.
- 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_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
Примечание: source = any
- datalong: Идентификатор поля.
- datalong2: Битмаска.
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
Примечание: 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
- datalong: Идентификатор флага существа. См. creature_template.npcflag.
- datalong2:
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
Коментарии.