server/doc/script_commands.txt
Schmoozerd 6b355bd987 [11840] Fix script command modify_npc_flag
Thanks to faq for pointing.
I checked both udb and ytdb, and they don't use this command yet;
If however you use it already check your scripts. (The toggle/add/remove flag must be set in `data_flags`) Sorry for the inconvenience.
Alos added a forgotten break.

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
2011-11-06 16:06:59 +01:00

238 lines
13 KiB
Text

-- --------------------------
## Script processing
-- --------------------------
Copyright (c) 2010-2011 MaNGOS <http://getmangos.com/>
-- --------------------------
## id
-- --------------------------
creature_movement_scripts DB project self defined id
event_scripts Event id. Several sources: spell effect 61, taxi/transport nodes, gameobject_template data
gameobject_scripts Gameobject guid
gossip_scripts DB project self defined id
quest_end_scripts DB project self defined id (generally quest entry)
quest_start_scripts DB project self defined id (generally quest entry)
spell_scripts Spell id
-- --------------------------
## delay
-- --------------------------
Delay in seconds
The order of which each step are executed.
-- --------------------------
## command
-- --------------------------
The action to execute.
-- --------------------------
## datalong
-- --------------------------
4 multipurpose fields, store raw data as unsigned values
-- --------------------------
## data_flags
-- --------------------------
1 multipurpose field, generally intended for bitmask based data
-- --------------------------
## dataint
-- --------------------------
4 multipurpose fields, store raw data as signed values
Note: currently used only for text id
-- --------------------------
## x y z o
-- --------------------------
Map coordinates for commands that need it.
-- --------------------------
## origin of script and source/target in scripts
-- --------------------------
creature_movement_scripts
`creature_movement` `creature_movement_template`
Source: creature. Target: creature
event_scripts
Flight path
Source: player. Target: player
Transport path
Source: transport GO. Target: Transport GO
`gameobject_template`
Source: User (player/creature). Target: GO
Spell (effect 61)
Source: caster. Target: GO (spell focus)
gameobject_scripts
Gameobject use
Source: user: Target: GO (only type door/button)
gossip_scripts
`gossip_menu_option`
Source: creature. Target: player
Source: player. Target: GO
quest_end_scripts
`quest_template`
Source: quest taker (creature/GO). Target: player
quest_start_scripts
`quest_template`
Source: quest giver (creature/GO). Target: player
spell_scripts
Spell (effect 77)
Source: caster: Target: target of spell (Unit)
-- --------------------------
## Each command has different parameters, and are as follows:
-- --------------------------
0 SCRIPT_COMMAND_TALK source = WorldObject, target = any/none
* datalong (see enum ChatType for supported CHAT_TYPE_'s)
* datalong2 = creature entry (searching for a buddy, closest to source)
* datalong3 = creature search radius
* datalong4 = language
* data_flags = flag_target_player_as_source = 0x01
flag_original_source_as_target = 0x02
flag_buddy_as_target = 0x04
* dataint = text entry from db_script_string -table. dataint2-dataint4 optionally, for random selection of text
1 SCRIPT_COMMAND_EMOTE source = Unit (or WorldObject when creature entry defined), target = Unit (or none)
* datalong = emote_id
* datalong2 = creature entry (searching for a buddy, closest to source)
* datalong3 = creature search radius
* data_flags = flag_target_as_source = 0x01
2 SCRIPT_COMMAND_FIELD_SET source = any
* datalong = field_id
* datalong2 = field value
3 SCRIPT_COMMAND_MOVE_TO source = Creature
* datalong2 = travel time
* x/y/z
4 SCRIPT_COMMAND_FLAG_SET source = any
* datalong = field_id
* datalong2 = bitmask
5 SCRIPT_COMMAND_FLAG_REMOVE source = any
* datalong = field_id
* datalong2 = bitmask
6 SCRIPT_COMMAND_TELEPORT_TO source or target with Player
* datalong = map_id
* x/y/z
7 SCRIPT_COMMAND_QUEST_EXPLORED one from source or target must be Player, another GO/Creature
* datalong = quest_id
* datalong2 = distance or 0
8 SCRIPT_COMMAND_KILL_CREDIT source or target with Player
* datalong = creature entry
* datalong2 = bool (0=personal credit, 1=group credit)
9 SCRIPT_COMMAND_RESPAWN_GAMEOBJECT source = any (summoner)
* datalong=db_guid
* datalong2 = despawn_delay
10 SCRIPT_COMMAND_TEMP_SUMMON_CREATURE source = any (summoner)
* datalong = creature entry
* datalong2 = despawn_delay
* data_flags = summon_as_active_object = 0x01
11 SCRIPT_COMMAND_OPEN_DOOR source = unit
* datalong = db_guid
* datalong2 = reset_delay
12 SCRIPT_COMMAND_CLOSE_DOOR source = unit
* datalong = db_guid
* datalong2 = reset_delay
13 SCRIPT_COMMAND_ACTIVATE_OBJECT source = unit, target=GO
14 SCRIPT_COMMAND_REMOVE_AURA source (datalong2!=0) or target (datalong==0) unit
* datalong = spell_id
* datalong2 = bool source is target of action
15 SCRIPT_COMMAND_CAST_SPELL source/target cast spell at target/source
* datalong = spell id
* datalong2 = 0: s->t 1: s->s 2: t->t 3: t->s 4: cast triggered
16 SCRIPT_COMMAND_PLAY_SOUND source = any object, target=any/player
* datalong = sound_id
* datalong2 (bitmask: 0/1=anyone/target, 0/2=with distance dependent, so 1|2 = 3 is target with distance dependent)
17 SCRIPT_COMMAND_CREATE_ITEM source or target must be player
* datalong = item entry
* datalong2 = amount
18 SCRIPT_COMMAND_DESPAWN_SELF source or target must be creature
* datalong = despawn delay
19 SCRIPT_COMMAND_PLAY_MOVIE target can only be a player
* datalog = movie id
20 SCRIPT_COMMAND_MOVEMENT source or target must be creature
* datalong = MovementType (0:idle, 1:random or 2:waypoint)
* datalong2 = creature entry (searching for a buddy, closest to source)
* datalong3 = creature search radius
21 SCRIPT_COMMAND_SET_ACTIVEOBJECT source=worldobject, target=creature
* datalong=bool 0=off, 1=on
* datalong2=creature entry
* datalong3=search radius
22 SCRIPT_COMMAND_SET_FACTION source=worldobject, target=creature
* datalong=factionId OR 0 to restore original faction from creature_template
* datalong2=creature entry
* datalong3=search radius
* data_flags = enum TemporaryFactionFlags
TEMPFACTION_NONE = 0x00, // When no flag is used in temporary faction change, faction will be persistent. It will then require manual change back to default/another faction when changed once
TEMPFACTION_RESTORE_RESPAWN = 0x01, // Default faction will be restored at respawn
TEMPFACTION_RESTORE_COMBAT_STOP = 0x02, // ... at CombatStop() (happens at creature death, at evade or custom scripte among others)
TEMPFACTION_RESTORE_REACH_HOME = 0x04, // ... at reaching home in home movement (evade), if not already done at CombatStop()
23 SCRIPT_COMMAND_MORPH_TO_ENTRY_OR_MODEL source=worldobject, target=creature
* datalong=creature entry/modelid (depend on data_flags) OR 0 to demorph
* datalong2=creature entry
* datalong3=search radius
* dataflags= 0x01 to use datalong value as modelid explicit
24 SCRIPT_COMMAND_MOUNT_TO_ENTRY_OR_MODEL source=worldobject, target=creature
* datalong=creature entry/modelid (depend on data_flags) OR 0 to dismount
* datalong2=creature entry
* datalong3=search radius
* dataflags= 0x01 to use datalong value as modelid explicit
25 SCRIPT_COMMAND_SET_RUN source=worldobject, target=creature
* datalong= bool 0=off, 1=on
* datalong2=creature entry
* datalong3=search radius
26 SCRIPT_COMMAND_ATTACK_START source = WorldObject (but Creature must be final source/attacker, set with datalong-fields where needed), target = Unit/none
* datalong2 = creature entry (searching for a buddy, closest to source)
* datalong3 = creature search radius
* data_flags = flag_original_source_as_target = 0x02
flag_buddy_as_target = 0x04 (When this flag is not set, buddy will be the attacker when buddy is defined)
27 SCRIPT_COMMAND_GO_LOCK_STATE source or target must be WorldObject
* datalong = flag_go_lock = 0x01, flag_go_unlock = 0x02,
flag_go_nonInteract = 0x04, flag_go_interact = 0x08
* datalong2 = go entry (searching closest to source (if worldobject) or target
* datalong3 = go search radius
28 SCRIPT_COMMAND_STAND_STATE source = Unit (or WorldObject when creature entry defined), target = Unit (or none)
* datalong = stand state (enum UnitStandStateType)
* datalong2 = creature entry (searching for a buddy, closest to source)
* datalong3 = creature search radius
* data_flags = flag_target_as_source = 0x01
29 SCRIPT_COMMAND_MODIFY_NPC_FLAGS source=worldobject or target=worldobject (datalong1==0), else source or target = creature
* datalong=NPCFlags
* datalong2=creature entry
* datalong3=search radius
* data_flags = 0x00=toggle, 0x01=add, 0x02=remove