Scripts SF: Difference between revisions

From Project Skyfire
Jump to navigation Jump to search
No edit summary
 
Line 19: Line 19:
*'''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).
*'''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).


*'''waypoint_scripts:''' Holds scripts used in the [[Waypoint data tc2|waypoint_data]] table.
*'''waypoint_scripts:''' Holds scripts used in the [[Waypoint data SF|waypoint_data]] table.


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.  
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.  
Line 150: Line 150:


==== id ====
==== id ====
For '''gameobject_scripts''', it is the guid of the button/lever. See [[Gameobject tc2#guid|gameobject.guid]].<br>
For '''gameobject_scripts''', it is the guid of the button/lever. See [[Gameobject SF#guid|gameobject.guid]].<br>
For '''spell_scripts''', it is the spell ID. See [[Spell.dbc tc2|Spell.dbc]]<br>
For '''spell_scripts''', it is the spell ID. See [[Spell.dbc SF|Spell.dbc]]<br>
For '''quest_*_scripts''', it is the ID that is used in [[Quest template tc2#StartScript|StartScript]] or [[Quest template tc2#CompleteScript|CompleteScript]] in the quest template definition.<br>
For '''quest_*_scripts''', it is the ID that is used in [[Quest template SF#StartScript|StartScript]] or [[Quest template SF#CompleteScript|CompleteScript]] in the quest template definition.<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.<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.<br>
For '''waypoint_scripts''', it is the [[Waypoint data tc2#action|action]] ID.<br>
For '''waypoint_scripts''', it is the [[Waypoint data SF#action|action]] ID.<br>


==== effIndex ====
==== effIndex ====
Line 294: Line 294:
**target: any/Player (for whisper).  
**target: any/Player (for whisper).  
**datalong: 12=say, 14=yell, 16=text emote, 41=boss emote, 15=whisper 42=boss whisper
**datalong: 12=say, 14=yell, 16=text emote, 41=boss emote, 15=whisper 42=boss whisper
**dataint: reference to [[Db script string tc2#entry|db_script_string.entry]] values must start at 2000000000 and end at 2000010000<br>
**dataint: reference to [[Db script string SF#entry|db_script_string.entry]] values must start at 2000000000 and end at 2000010000<br>


<br>  
<br>  
Line 337: Line 337:
*'''SCRIPT_COMMAND_TELEPORT_TO = 6'''  
*'''SCRIPT_COMMAND_TELEPORT_TO = 6'''  
**source or target: Player (datalong2 == 0) or Creature (datalong2 == 1).  
**source or target: Player (datalong2 == 0) or Creature (datalong2 == 1).  
**datalong: Target Map ID. See [[Map.dbc_tc2|Map.dbc]]  
**datalong: Target Map ID. See [[Map.dbc_SF|Map.dbc]]  
**x: Teleport target x coordinate.  
**x: Teleport target x coordinate.  
**y: Teleport target y coordinate.  
**y: Teleport target y coordinate.  
Line 348: Line 348:
**source or target: Player.  
**source or target: Player.  
**target or source: WorldObject.  
**target or source: WorldObject.  
**datalong: Quest entry which external status should be satisfied. See [[Quest template tc2#entry|quest_template.entry]].  
**datalong: Quest entry which external status should be satisfied. See [[Quest template SF#entry|quest_template.entry]].  
**datalong2: Distance away from the NPC/object that the player can be and have the script still take effect (min value 5).
**datalong2: Distance away from the NPC/object that the player can be and have the script still take effect (min value 5).


Line 355: Line 355:
*'''SCRIPT_COMMAND_KILL_CREDIT = 8'''  
*'''SCRIPT_COMMAND_KILL_CREDIT = 8'''  
**target or source: Player.  
**target or source: Player.  
**datalong: Creatue entry of kill credit. See [[Creature template tc2#entry|creature_template.entry]].  
**datalong: Creatue entry of kill credit. See [[Creature template SF#entry|creature_template.entry]].  
**datalong2: If value&nbsp;&gt; 0 gives kill credit to the whole group player belongs to, otherwise, gives personal kill credit.
**datalong2: If value&nbsp;&gt; 0 gives kill credit to the whole group player belongs to, otherwise, gives personal kill credit.


Line 362: Line 362:
*'''SCRIPT_COMMAND_RESPAWN_GAMEOBJECT = 9'''  
*'''SCRIPT_COMMAND_RESPAWN_GAMEOBJECT = 9'''  
**source: WorldObject (summoner).  
**source: WorldObject (summoner).  
**datalong: Guid of the gameobject to respawn. See [[Gameobject tc2#guid|gameobject.guid]].  
**datalong: Guid of the gameobject to respawn. See [[Gameobject SF#guid|gameobject.guid]].  
**datalong2: Despawn time in seconds. If the value is &lt; 5 seconds: 5 is used instead.
**datalong2: Despawn time in seconds. If the value is &lt; 5 seconds: 5 is used instead.


Line 369: Line 369:
*'''SCRIPT_COMMAND_TEMP_SUMMON_CREATURE = 10'''  
*'''SCRIPT_COMMAND_TEMP_SUMMON_CREATURE = 10'''  
**source: WorldObject (summoner).  
**source: WorldObject (summoner).  
**datalong: Entry of the summoned creature. See [[Creature template tc2#entry|creature_template.entry]].  
**datalong: Entry of the summoned creature. See [[Creature template SF#entry|creature_template.entry]].  
**datalong2: Despawn time in ms.  
**datalong2: Despawn time in ms.  
**x: Summon target x coordinate.  
**x: Summon target x coordinate.  
Line 380: Line 380:
*'''SCRIPT_COMMAND_OPEN_DOOR = 11'''  
*'''SCRIPT_COMMAND_OPEN_DOOR = 11'''  
**source: WorldObject.  
**source: WorldObject.  
**datalong: Guid of the activated door. See [[Gameobject tc2#guid|gameobject.guid]].  
**datalong: Guid of the activated door. See [[Gameobject SF#guid|gameobject.guid]].  
**datalong2: Delay before closing again the door. If the value is &lt; 15 seconds: 15 is used instead.
**datalong2: Delay before closing again the door. If the value is &lt; 15 seconds: 15 is used instead.


Line 387: Line 387:
*'''SCRIPT_COMMAND_CLOSE_DOOR = 12'''  
*'''SCRIPT_COMMAND_CLOSE_DOOR = 12'''  
**source: WorldObject.  
**source: WorldObject.  
**datalong: Guid of the activated door. See [[Gameobject tc2#guid|gameobject.guid]].  
**datalong: Guid of the activated door. See [[Gameobject SF#guid|gameobject.guid]].  
**datalong2: Delay before opening again the door. If the value is &lt; 15 seconds: 15 is used instead.
**datalong2: Delay before opening again the door. If the value is &lt; 15 seconds: 15 is used instead.


Line 400: Line 400:
*'''SCRIPT_COMMAND_REMOVE_AURA = 14'''  
*'''SCRIPT_COMMAND_REMOVE_AURA = 14'''  
**source (datalong2&nbsp;!= 0) or target (datalong2 == 0): Unit.  
**source (datalong2&nbsp;!= 0) or target (datalong2 == 0): Unit.  
**datalong: Spell ID. See [[Spell.dbc tc2|Spell.dbc]].  
**datalong: Spell ID. See [[Spell.dbc SF|Spell.dbc]].  
**datalong2: If value &gt; 0, then remove from the source; otherwise remove from the target.
**datalong2: If value &gt; 0, then remove from the source; otherwise remove from the target.


Line 408: Line 408:
**source: Unit.  
**source: Unit.  
**target: Unit.  
**target: Unit.  
**datalong: Spell ID. See [[Spell.dbc tc2|Spell.dbc]].  
**datalong: Spell ID. See [[Spell.dbc SF|Spell.dbc]].  
**datalong2:  
**datalong2:  
***0 - Source-&gt;Target  
***0 - Source-&gt;Target  
Line 434: Line 434:
*'''SCRIPT_COMMAND_CREATE_ITEM = 17'''  
*'''SCRIPT_COMMAND_CREATE_ITEM = 17'''  
**target or source: Player.  
**target or source: Player.  
**datalong: Item entry to create. See [[Item template tc2#entry|item_template.entry]].  
**datalong: Item entry to create. See [[Item template SF#entry|item_template.entry]].  
**datalong2: Amount of items to create.
**datalong2: Amount of items to create.


Line 447: Line 447:
*'''SCRIPT_COMMAND_LOAD_PATH = 20'''  
*'''SCRIPT_COMMAND_LOAD_PATH = 20'''  
**source: Unit.  
**source: Unit.  
**datalong: Path ID. See [[Waypoint data tc2#id|waypoint_data.id]].  
**datalong: Path ID. See [[Waypoint data SF#id|waypoint_data.id]].  
**datalong2: If value &gt; 0, means waypoint movement is repeatable.
**datalong2: If value &gt; 0, means waypoint movement is repeatable.


Line 482: Line 482:
*'''SCRIPT_COMMAND_EQUIP = 31'''  
*'''SCRIPT_COMMAND_EQUIP = 31'''  
**source: Creature.  
**source: Creature.  
**datalong: equipment entry. See [[Creature equip template tc2#entry|creature_equip_template.entry]].
**datalong: equipment entry. See [[Creature equip template SF#entry|creature_equip_template.entry]].


<br>  
<br>  

Latest revision as of 01:13, 6 July 2012

Back to world database list of tables.


The `*_scripts` table

This table format is used for 6 different tables to control possible scripts activated by different actions:

  • 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) or SPELL_EFFECT_DUMMY(3).
  • quest_start_scripts: Holds scripts activated when a player accepts a quest.
  • quest_end_scripts: Holds scripts activated when a player finishes a quest.
  • 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).

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.


Structure

Field Type Attributes Key Null Default Extra Comment
id mediumint(8) unsigned
NO 0

effIndex [1] tinyint(3) unsigned
NO 0

delay int(10) unsigned
NO 0

command mediumint(8) unsigned
NO 0

datalong mediumint(8) unsigned
NO 0

datalong2 int(10) unsigned
NO 0

dataint int(11) signed
NO 0

x float signed
NO 0

y float signed
NO 0

z float signed
NO 0

o float signed
NO 0

guid [2] int(11) signed PRI NO 0

1 present in spell_scripts table only.
2 present in waypoint_scripts table only.


Description of the fields

id

For gameobject_scripts, it is the guid of the button/lever. See gameobject.guid.
For spell_scripts, it is the spell ID. See Spell.dbc
For quest_*_scripts, it is the ID that is used in StartScript or CompleteScript in the quest template definition.
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.
For waypoint_scripts, it is the action ID.

effIndex

The effect index of the spell that this script is to be applied to.

delay

Delay in seconds before this current step of the script activates. 0 = instant.

command

The type of action performed by the script after delay seconds have passed. The value of this field affects what other fields also need to be set. The following commands can be used:

Command Name Description
0 TALK Creature say/whisper/yell/textemote.
1 EMOTE Play emote on creature.
2 FIELD_SET Change the value at an index for the player.
3 MOVE_TO Relocate creature to a destination.
4 FLAG_SET Turns on bits on a flag field at an index for the player.
5 FLAG_REMOVE Turns off bits on a flag field at an index for the player.
6 TELEPORT_TO Teleports the player to a location.
7 QUEST_EXPLORED Satisfies the explore requirement for a quest.
8 KILL_CREDIT Gives kill credit to the player.
9 RESPAWN_GAMEOBJECT Spawns a despawned gameobject.
10 TEMP_SUMMON_CREATURE Temporarily summons a creature.
11 OPEN_DOOR Opens a door gameobject (type == 0).
12 CLOSE_DOOR Closes a door gameobject (type == 0).
13 ACTIVATE_OBJECT Activates an object.
14 REMOVE_AURA Removes an aura due to a spell.
15 CAST_SPELL Casts a spell.
16 PLAY_SOUND Plays a sound.
17 CREATE_ITEM Creates specified amount of items for the player.
18 DESPAWN_SELF Forces creature to despawn.
19 nuttin There is no command 19.
20 LOAD_PATH Load path to unit, then unit starts waypoint movement.
21 CALLSCRIPT_TO_UNIT Calls script from one of *_scripts table with given unit as source.
22 KILL Changes state of the creature to dead and optionally removes its corpse.
30 ORIENTATION Changes unit's orientation (Used in Waypoint Scripts)
31 EQUIP Sets creature equipment.
32 MODEL Sets creature model.
33 CLOSE_GOSSIP Closes gossip window. This command is only used for Gossip Scripts.
34 PLAYMOVIE Plays movie.


OtherFields

Depending on what command was used, the meaning and use for the following fields varies.

  • SCRIPT_COMMAND_TALK = 0
    • source: Creature.
    • target: any/Player (for whisper).
    • datalong: 12=say, 14=yell, 16=text emote, 41=boss emote, 15=whisper 42=boss whisper
    • dataint: reference to db_script_string.entry values must start at 2000000000 and end at 2000010000


  • SCRIPT_COMMAND_EMOTE = 1
    • source or target: Creature.
    • datalong: The emote ID to play.
    • datalong2: If this value is > 0 the npc will play emote state rather than oneshot.


  • SCRIPT_COMMAND_FIELD_SET = 2
    • source or target: Creature.
    • datalong: Index of the field.
    • datalong2: Value to place at the index.


  • SCRIPT_COMMAND_MOVE_TO = 3
    • source: Creature.
    • datalong2: Length (in time) of the motion.
    • x: X position to move to.
    • y: Y position to move to.
    • z: Z position to move to.


  • SCRIPT_COMMAND_FLAG_SET = 4
    • source or target: Creature.
    • datalong: Field index to be set.
    • datalong2: Flag bit(s) to set.


  • SCRIPT_COMMAND_FLAG_REMOVE = 5
    • source or target: Creature.
    • datalong: Field index to be unset.
    • datalong2: Flag bit(s) to unset.


  • SCRIPT_COMMAND_TELEPORT_TO = 6
    • source or target: Player (datalong2 == 0) or Creature (datalong2 == 1).
    • datalong: Target Map ID. See Map.dbc
    • x: Teleport target x coordinate.
    • y: Teleport target y coordinate.
    • z: Teleport target z coordinate.
    • o: Teleport target orientation.


  • SCRIPT_COMMAND_QUEST_EXPLORED = 7
    • source or target: Player.
    • target or source: WorldObject.
    • datalong: Quest entry which external status should be satisfied. See quest_template.entry.
    • datalong2: Distance away from the NPC/object that the player can be and have the script still take effect (min value 5).


  • SCRIPT_COMMAND_KILL_CREDIT = 8
    • target or source: Player.
    • datalong: Creatue entry of kill credit. See creature_template.entry.
    • datalong2: If value > 0 gives kill credit to the whole group player belongs to, otherwise, gives personal kill credit.


  • SCRIPT_COMMAND_RESPAWN_GAMEOBJECT = 9
    • source: WorldObject (summoner).
    • datalong: Guid of the gameobject to respawn. See gameobject.guid.
    • datalong2: Despawn time in seconds. If the value is < 5 seconds: 5 is used instead.


  • SCRIPT_COMMAND_TEMP_SUMMON_CREATURE = 10
    • source: WorldObject (summoner).
    • datalong: Entry of the summoned creature. See creature_template.entry.
    • datalong2: Despawn time in ms.
    • x: Summon target x coordinate.
    • y: Summon target y coordinate.
    • z: Summon target z coordinate.
    • o: Summon target orientation.


  • SCRIPT_COMMAND_OPEN_DOOR = 11
    • source: WorldObject.
    • datalong: Guid of the activated door. See gameobject.guid.
    • datalong2: Delay before closing again the door. If the value is < 15 seconds: 15 is used instead.


  • SCRIPT_COMMAND_CLOSE_DOOR = 12
    • source: WorldObject.
    • datalong: Guid of the activated door. See gameobject.guid.
    • datalong2: Delay before opening again the door. If the value is < 15 seconds: 15 is used instead.


  • SCRIPT_COMMAND_ACTIVATE_OBJECT = 13
    • source: Unit.
    • target: GameObject.


  • SCRIPT_COMMAND_REMOVE_AURA = 14
    • source (datalong2 != 0) or target (datalong2 == 0): Unit.
    • datalong: Spell ID. See Spell.dbc.
    • datalong2: If value > 0, then remove from the source; otherwise remove from the target.


  • SCRIPT_COMMAND_CAST_SPELL = 15
    • source: Unit.
    • target: Unit.
    • datalong: Spell ID. See Spell.dbc.
    • datalong2:
      • 0 - Source->Target
      • 1 - Source->Source (Self cast, use for dummy spells)
      • 2 - Target->Target
      • 3 - Target->Source
      • 4 - Source->Closest entry of dataint.
    • dataint: Creature entry to target if datalong2 value is 4, or triggered attribute for CastSpell method in other cases.
    • x: Search range for creature entry (dataint) if datalong2 value is 4.


  • SCRIPT_COMMAND_PLAY_SOUND = 16
    • source: WorldObject.
    • target: none (datalong2 & 1 == 0) or Player (datalong2 & 1 != 0).
    • datalong: Sound ID.
    • datalong2:
      • 0 - play direct sound to everyone.
      • 1 - play direct sound to target (must be Player).
      • 2 - play sound with distance dependency to anyone.
      • 3 - play sound with distance dependency to target (must be Player).


  • SCRIPT_COMMAND_CREATE_ITEM = 17
    • target or source: Player.
    • datalong: Item entry to create. See item_template.entry.
    • datalong2: Amount of items to create.


  • SCRIPT_COMMAND_DESPAWN_SELF = 18
    • target: Creature.
    • datalong: Despawn delay.


  • SCRIPT_COMMAND_LOAD_PATH = 20
    • source: Unit.
    • datalong: Path ID. See waypoint_data.id.
    • datalong2: If value > 0, means waypoint movement is repeatable.


  • SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT = 21
    • source: if present, used as a search center.
    • datalong: entry of searched creature, if source exists, guid of the creature otherwise.
    • datalong2: ID of the script from *_scripts table.
    • dataint:
      • 1 - use quest_end_scripts table;
      • 2 - use quest_start_scripts table;
      • 3 - use spell_scripts table;
      • 4 - use gameobject_scripts table;
      • 5 - use event_scripts table;
      • 6 - use waypoint_scripts table.


  • SCRIPT_COMMAND_KILL = 22
    • source: Creature.
    • dataint: if value == 1 remove corpse.


  • SCRIPT_COMMAND_ORIENTATION = 30
    • source: Unit.
    • target: Unit (datalong != 0).
    • datalong: If value != 0, then turn to face the target; otherwise turn to value in o.
    • o: Set orientation to value in field `o`.



  • SCRIPT_COMMAND_MODEL = 32
    • source: Creature.
    • datalong: model ID.


  • SCRIPT_COMMAND_CLOSE_GOSSIP = 33
    • source: Player.


  • SCRIPT_COMMAND_PLAYMOVIE = 34
    • source: Player.
    • datalong: movie ID.


guid

This field has no description. You can help wiki by clicking here to describe this field, if you have permissions.