From d3cbe4ab3ae456b7a1ed05914ea046fc64352ca0 Mon Sep 17 00:00:00 2001 From: Walter Pagani Date: Sat, 16 Jan 2021 16:12:09 -0300 Subject: update smart_scripts (#360) * update smart_scripts * Brief description of the table contents. * Adding recommendations. * Adding list in source_type --- docs/smart_scripts.md | 4471 ++++--------------------------------------------- 1 file changed, 351 insertions(+), 4120 deletions(-) diff --git a/docs/smart_scripts.md b/docs/smart_scripts.md index dde668c..00cebd5 100644 --- a/docs/smart_scripts.md +++ b/docs/smart_scripts.md @@ -2,11 +2,13 @@ [<-Back-to:World](database-world.md) +The `smart_scripts` table has 30 attributes. It serves to make scripts in SQL language. The important thing is always to analyze, who is the event that motivates the execution of an action and of course, who is the objective. As a recommendation, you can review the scripts that are already inside the table, to understand how it works. The advantage, for which several use this method, is that it is not required to compile, when adding records, with restarting the server, if it is well programmed, you can appreciate the changes. Another reason is the portability, but it depends on the point of view of the developer, the response you can get. + **Table Structure** | Field | Type | Attributes | Key | Null | Default | Extra | Comment | |-----------------------|-------------|------------|-----|------|---------|-------|---------------| -| [entryorguid][1] | int(11) | signed | PRI | NO | NULL | | | +| [entryorguid][1] | int(11) | signed | PRI | NO | | | | | [source_type][2] | tinyint(3) | unsigned | PRI | NO | 0 | | | | [id][3] | smallint(5) | unsigned | PRI | NO | 0 | | | | [link][4] | smallint(5) | unsigned | PRI | NO | 0 | | | @@ -14,11 +16,11 @@ | [event_phase_mask][6] | smallint(5) | unsigned | | NO | 0 | | | | [event_chance][7] | tinyint(3) | unsigned | | NO | 100 | | | | [event_flags][8] | smallint(5) | unsigned | | NO | 0 | | | -| [event_param1][8] | int(10) | unsigned | | NO | 0 | | | -| [event_param2][8] | int(10) | unsigned | | NO | 0 | | | -| [event_param3][8] | int(10) | unsigned | | NO | 0 | | | -| [event_param4][8] | int(10) | unsigned | | NO | 0 | | | -| [event_param5][8] | int(10) | unsigned | | NO | 0 | | | +| [event_param1][5] | int(10) | unsigned | | NO | 0 | | | +| [event_param2][5] | int(10) | unsigned | | NO | 0 | | | +| [event_param3][5] | int(10) | unsigned | | NO | 0 | | | +| [event_param4][5] | int(10) | unsigned | | NO | 0 | | | +| [event_param5][5] | int(10) | unsigned | | NO | 0 | | | | [action_type][9] | tinyint(3) | unsigned | | NO | 0 | | | | [action_param1][9] | int(10) | unsigned | | NO | 0 | | | | [action_param2][9] | int(10) | unsigned | | NO | 0 | | | @@ -31,11 +33,11 @@ | [target_param2][10] | int(10) | unsigned | | NO | 0 | | | | [target_param3][10] | int(10) | unsigned | | NO | 0 | | | | [target_param4][10] | int(10) | unsigned | | NO | 0 | | | -| [target_x][10] | float | | | NO | 0 | | | -| [target_y][10] | float | | | NO | 0 | | | -| [target_z][10] | float | | | NO | 0 | | | -| [target_o][10] | float | | | NO | 0 | | | -| [comment][11] | text | | | NO | NULL | | Event Comment | +| [target_x][10] | float | signed | | NO | 0 | | | +| [target_y][10] | float | signed | | NO | 0 | | | +| [target_z][10] | float | signed | | NO | 0 | | | +| [target_o][10] | float | signed | | NO | 0 | | | +| [comment][11] | text | | | NO | | | Event Comment | [1]: #entryorguid [2]: #source_type @@ -53,42 +55,33 @@ ### entryorguid -- EntryOrGuid > 0: entry of the creature / game object / etc. - - - -- EntryOrGuid < 0: guid of the creature / game object / etc. - - - -- Depends on source\_type. +- EntryOrGuid > 0: `entry` of the creature / game object / etc. +- EntryOrGuid < 0: `guid` of the creature / game object / etc. +- **Depends on source\_type.** ### source\_type -- Object type: creature, game object, spell. see table below for values +Object type: creature, game object, spell. see table below for values - | Name | Value | - |---------------------------------------------------------------------|-------| - | SMART\_SCRIPT\_TYPE\_CREATURE | 0 | - | SMART\_SCRIPT\_TYPE\_GAMEOBJECT | 1 | - | SMART\_SCRIPT\_TYPE\_AREATRIGGER | 2 | - | SMART\_SCRIPT\_TYPE\_TIMED\_ACTIONLIST | 9 | +| Name | Value | +|----------------------------------------|-------| +| SMART\_SCRIPT\_TYPE\_CREATURE | 0 | +| SMART\_SCRIPT\_TYPE\_GAMEOBJECT | 1 | +| SMART\_SCRIPT\_TYPE\_AREATRIGGER | 2 | +| SMART\_SCRIPT\_TYPE\_TIMED\_ACTIONLIST | 9 | ### id -- Incremental id *bound* to each entryorguid & source\_type (0, 1, 2, ...). +Incremental id *bound* to each entryorguid & source\_type (0, 1, 2, ...). ### link -- Simple event linking; - - - -- Example: if id = 0 and link = 1; id 1 will only be able to occur if id = 0 was triggered (id 1 has to use event\_type SMART\_EVENT\_LINK). +Simple event linking; - +- Example: if id = 0 and link = 1; id 1 will only be able to occur if id = 0 was triggered (id 1 has to use event\_type SMART\_EVENT\_LINK). +- Smart\_event to be used. -- Smart\_event to be used. +**Thanks to the use of links, you can execute several actions, keeping the same event.** ### event\_phase\_mask @@ -96,15 +89,15 @@ When dealing with phases, *phase IDs* have to be used. There are 13 (12+1) diffe **Example:** The script is in phase 0 by default - If we want it to go to phase 1, we got two choices: -- SMART\_ACTION\_INC\_PHASE by 1 or SMART\_ACTION\_SET\_PHASE 1 +- SMART\_ACTION\_INC\_PHASE by 1 or SMART\_ACTION\_SET\_PHASE 1 If the script is in phase 0 and want to skip to phase 2: -- SMART\_ACTION\_INC\_PHASE by 2 or SMART\_ACTION\_SET\_PHASE 2 +- SMART\_ACTION\_INC\_PHASE by 2 or SMART\_ACTION\_SET\_PHASE 2 If the script is in phase 1 and want to skip to phase 2: -- SMART\_ACTION\_INC\_PHASE by 1 or SMART\_ACTION\_SET\_PHASE 2 +- SMART\_ACTION\_INC\_PHASE by 1 or SMART\_ACTION\_SET\_PHASE 2 | Name | Flag | Hex | Comment | |----------------------------------|------|-------|-----------------------------| @@ -122,11 +115,8 @@ If the script is in phase 1 and want to skip to phase 2: | SMART\_EVENT\_PHASE\_11 | 1024 | 0x400 | Phase 11 only. | | SMART\_EVENT\_PHASE\_12 | 2048 | 0x800 | Phase 12 only. | -- Event will only be able to occur if creature/GO is in this phase. - - - -- Example: If we want an event to only be able to occure in phase 1 and 4, **event\_phase\_mask** = 1+8 = 9 +- Event will only be able to occur if creature/GO is in this phase. +- Example: If we want an event to only be able to occure in phase 1 and 4, **event\_phase\_mask** = 1+8 = 9 ### event\_chance @@ -134,4005 +124,291 @@ This is the probability of the event to occur as a percentage from 0-100. So, if ### event\_flags - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameFlagHexComment

SMART_EVENT_FLAG_NOT_REPEATABLE

1

0x01

Event can not repeat

SMART_EVENT_FLAG_DIFFICULTY_0

2

0x02

Event only occurs in normal dungeon

SMART_EVENT_FLAG_DIFFICULTY_1

4

0x04

Event only occurs in heroic dungeon

SMART_EVENT_FLAG_DIFFICULTY_2

8

0x08

Event only occurs in normal raid

SMART_EVENT_FLAG_DIFFICULTY_3

16

0x10

Event only occurs in heroic raid

SMART_EVENT_FLAG_RESERVED_5

32

0x20


-

SMART_EVENT_FLAG_RESERVED_6

64

0x40


-

SMART_EVENT_FLAG_DEBUG_ONLY

128

0x80

Event only occurs in debug build

SMART_EVENT_FLAG_DONT_RESET

256

0x100

Event will not reset in SmartScript::OnReset()

- -- Sets if the event should not repeat or should only happen in a given instance/dungeon difficulty (if applicable); - - - -- Values can be added together (bitwise math). +| Name | Flag | Hex | Comment | +|---------------------------------|------|-------|------------------------------------------------| +| SMART_EVENT_FLAG_NOT_REPEATABLE | 1 | 0x01 | Event can not repeat | +| SMART_EVENT_FLAG_DIFFICULTY_0 | 2 | 0x02 | Event only occurs in normal dungeon | +| SMART_EVENT_FLAG_DIFFICULTY_1 | 4 | 0x04 | Event only occurs in heroic dungeon | +| SMART_EVENT_FLAG_DIFFICULTY_2 | 8 | 0x08 | Event only occurs in normal raid | +| SMART_EVENT_FLAG_DIFFICULTY_3 | 16 | 0x10 | Event only occurs in heroic raid | +| SMART_EVENT_FLAG_RESERVED_5 | 32 | 0x20 | | +| SMART_EVENT_FLAG_RESERVED_6 | 64 | 0x40 | | +| SMART_EVENT_FLAG_DEBUG_ONLY | 128 | 0x80 | Event only occurs in debug build | +| SMART_EVENT_FLAG_DONT_RESET | 256 | 0x100 | Event will not reset in SmartScript::OnReset() | + +- Sets if the event should not repeat or should only happen in a given instance/dungeon difficulty (if applicable); +- Values can be added together (bitwise math). ### event\_type - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Value

Param1

Param2

Param3

Param4

Param5

Comment

SMART_EVENT_UPDATE_IC

0

InitialMin

InitialMax

RepeatMin

RepeatMax


-

In combat.

SMART_EVENT_UPDATE_OOC

1

InitialMin

InitialMax

RepeatMin

RepeatMax


-

Out of combat.

SMART_EVENT_HEALTH_PCT

2

HPMin%

HPMax%

RepeatMin

RepeatMax


-

Health Percentage

SMART_EVENT_MANA_PCT

3

ManaMin%

ManaMax%

RepeatMin

RepeatMax


-

Mana Percentage

SMART_EVENT_AGGRO

4


-


-


-


-


-

On Creature Aggro

SMART_EVENT_KILL

5

CooldownMin

CooldownMax

Player only (0/1)

Creature entry (if param3 is 0)


-

On Creature Kill

SMART_EVENT_DEATH

6


-


-


-


-


-

On Creature Death

SMART_EVENT_EVADE

7


-


-


-


-


-

On Creature Evade Attack

SMART_EVENT_SPELLHIT

8

SpellID

School

CooldownMin

CooldownMax


-

On Creature/Gameobject Spell Hit

SMART_EVENT_RANGE

9

MinDist

MaxDist

RepeatMin

RepeatMax


-

On Target In Range

SMART_EVENT_OOC_LOS

10

NoHostile

MaxRange

CooldownMin

CooldownMax

0/1 Player OnlyOn Target In Distance Out of Combat

SMART_EVENT_RESPAWN

11

type (None = 0, Map = 1, Area = 2)

MapId

ZoneId


-


-

On Creature/Gameobject Respawn

SMART_EVENT_TARGET_HEALTH_PCT

12

HPMin%

HPMax%

RepeatMin

RepeatMax


-

On Target Health Percentage

SMART_EVENT_VICTIM_CASTING

13

RepeatMin

RepeatMax

Spell id (0 any)


-


-

On Target Casting Spell

SMART_EVENT_FRIENDLY_HEALTH

14

HPDeficit

Radius

RepeatMin

RepeatMax


-

On Friendly Health Deficit

SMART_EVENT_FRIENDLY_IS_CC

15

Radius

RepeatMin

RepeatMax


-


-


-

SMART_EVENT_FRIENDLY_MISSING_BUFF

16

SpellId

Radius

RepeatMin

RepeatMax


-

On Friendly Lost Buff

SMART_EVENT_SUMMONED_UNIT

17

CretureId (0 all)

CooldownMin

CooldownMax


-


-

On Creature/Gameobject Summoned Unit

SMART_EVENT_TARGET_MANA_PCT

18

ManaMin%

ManaMax%

RepeatMin

RepeatMax


-

On Target Mana Percentage

SMART_EVENT_ACCEPTED_QUEST

19

QuestID (0 any)


-


-


-


-

On Target Accepted Quest

SMART_EVENT_REWARD_QUEST

20

QuestID (0 any)


-


-


-


-

On Target Rewarded Quest

SMART_EVENT_REACHED_HOME

21


-


-


-


-


-

On Creature Reached Home

SMART_EVENT_RECEIVE_EMOTE

22

EmoteId

CooldownMin

CooldownMax


-

On Receive Emote.

SMART_EVENT_HAS_AURA

23

SpellID

Stacks

RepeatMin

RepeatMax


-

On Creature Has Aura

SMART_EVENT_TARGET_BUFFED

24

SpellID

Stacks

RepeatMin

RepeatMax


-

On Target Buffed With Spell

SMART_EVENT_RESET

25


-


-


-


-


-

After Combat, On Respawn or Spawn

SMART_EVENT_IC_LOS

26

NoHostile

MaxRange

CooldownMin

CooldownMax

0/1 Player OnlyOn Target In Distance In Combat

SMART_EVENT_PASSENGER_BOARDED

27

CooldownMin

CooldownMax


-


-


-


-

SMART_EVENT_PASSENGER_REMOVED

28

CooldownMin

CooldownMax


-


-


-


-

SMART_EVENT_CHARMED

29


-


-


-


-


-

On Creature Charmed

SMART_EVENT_CHARMED_TARGET

30


-


-


-


-


-

On Target Charmed

SMART_EVENT_SPELLHIT_TARGET

31

SpellId

School

RepeatMin

RepeatMax


-

On Target Spell Hit

SMART_EVENT_DAMAGED

32

MinDmg

MaxDmg

RepeatMin

RepeatMax


-

On Creature Damaged

SMART_EVENT_DAMAGED_TARGET

33

MinDmg

MaxDmg

RepeatMin

RepeatMax


-

On Target Damaged

SMART_EVENT_MOVEMENTINFORM

34

MovementType (0=any)

PointID


-


-


-

ESCORT_MOTION_TYPE = 17, POINT_MOTION_TYPE = 8

SMART_EVENT_SUMMON_DESPAWNED

35

Entry

CooldownMin

CooldownMax


-


-

On Summoned Unit Despawned

SMART_EVENT_CORPSE_REMOVED

36


-


-


-


-


-

On Creature Corpse Removed

SMART_EVENT_AI_INIT

37


-


-


-


-


-


-

SMART_EVENT_DATA_SET

38

Field

Value

CooldownMin

CooldownMax


-

On Creature/Gameobject Data Set, Can be used with SMART_ACTION_SET_DATA

SMART_EVENT_WAYPOINT_START

39

PointId (0 any)

pathId (0 any)


-


-


-

On Creature Waypoint ID Started

SMART_EVENT_WAYPOINT_REACHED

40

PointId (0 any)

pathId (0 any)


-


-


-

On Creature Waypoint ID Reached

SMART_EVENT_AREATRIGGER_ONTRIGGER

46

TriggerId (0 any)


-


-


-


-


-

SMART_EVENT_TEXT_OVER

52

creature_text.GroupID

creature.id (0 any)


-


-


-

On TEXT_OVER Event Triggered After SMART_ACTION_TALK

SMART_EVENT_RECEIVE_HEAL

53

MinHeal

MaxHeal

CooldownMin

CooldownMax


-

On Creature Received Healing

SMART_EVENT_JUST_SUMMONED

54


-


-


-


-


-

On Creature Just spawned

SMART_EVENT_WAYPOINT_PAUSED

55

PointId (0 any)

pathID (0 any)


-


-


-

On Creature Paused at Waypoint ID

SMART_EVENT_WAYPOINT_RESUMED

56

PointId (0 any)

pathID (0 any)


-


-


-

On Creature Resumed after Waypoint ID

SMART_EVENT_WAYPOINT_STOPPED

57

PointId (0 any)

pathID (0 any)


-


-


-

On Creature Stopped On Waypoint ID

SMART_EVENT_WAYPOINT_ENDED

58

PointId (0 any)

pathID (0 any)


-


-


-

On Creature Waypoint Path Ended

SMART_EVENT_TIMED_EVENT_TRIGGERED

59

Id


-


-


-


-


-

SMART_EVENT_UPDATE

60

InitialMin

InitialMax

RepeatMin

RepeatMax


-


-

SMART_EVENT_LINK

61


-


-


-


-


-

Used to link together multiple events as a chain of events.

SMART_EVENT_GOSSIP_SELECT

62

gossip_menu_option.MenuID

gossip_menu_option.OptionID


-


-


-

On gossip clicked (gossip_menu_option).

SMART_EVENT_JUST_CREATED

63


-


-


-


-


-


-

SMART_EVENT_GOSSIP_HELLO

64


-


-


-


-


-

On Right-Click Creature/Gameobject that have gossip enabled.

SMART_EVENT_FOLLOW_COMPLETED

65


-


-


-


-


-


-

-

SMART_EVENT_UNUSED_66

-

66


-


-


-


-


-

UNUSED

SMART_EVENT_IS_BEHIND_TARGET

67

CooldownMin

CooldownMax


-


-


-

On Creature is behind target.

SMART_EVENT_GAME_EVENT_START

68

game_event.eventEntry


-


-


-


-

On game_event started.

SMART_EVENT_GAME_EVENT_END

69

game_event.eventEntry


-


-


-


-

On game_event ended.

SMART_EVENT_GO_STATE_CHANGED

70

State (0 - Active, 1 - Ready, 2 - Active alternative)


-


-


-


-


-

SMART_EVENT_GO_EVENT_INFORM

71

EventId


-


-


-


-


-

SMART_EVENT_ACTION_DONE

72

EventId


-


-


-


-


-

SMART_EVENT_ON_SPELLCLICK73


-


-


-


-


-


-

SMART_EVENT_FRIENDLY_HEALTH_PCT74

minHpPct

maxHpPct

repeatMin

repeatMax


-


-

SMART_EVENT_DISTANCE_CREATURE75database guiddatabase entrydistancerepeat interval (ms)


-

On creature guid OR any instance of creature entry is within distance.

SMART_EVENT_DISTANCE_GAMEOBJECT76database guiddatabase entrydistancerepeat interval (ms)


-

On gameobject guid OR any instance of gameobject entry is within distance.

SMART_EVENT_COUNTER_SET77counterIDvaluecooldownMincooldownMax


-

If the value of specified counterID is equal to a specified value
SMART_EVENT_NEAR_PLAYERS101minPlayersRange (yards)FirstCheck (ms)RepeatCheck (ms)


-

Event will trigger if there are more than minPlayers in range.

SMART_EVENT_NEAR_PLAYERS_NEGATION102maxPlayersRange (yards)FirstCheck (ms)RepeatCheck (ms)


-

Event will trigger if there are less than maxPlayers in range.

+| Name | Value | Param1 | Param2 | Param3 | Param4 | Param5 | Comment | +|-----------------------------------|-------|-------------------------------------------------------|-----------------------------|-------------------|---------------------------------|-----------------|------------------------------------------------------------------------------| +| SMART_EVENT_UPDATE_IC | 0 | InitialMin | InitialMax | RepeatMin | RepeatMax | | In combat. | +| SMART_EVENT_UPDATE_OOC | 1 | InitialMin | InitialMax | RepeatMin | RepeatMax | | Out of combat. | +| SMART_EVENT_HEALTH_PCT | 2 | HPMin% | HPMax% | RepeatMin | RepeatMax | | Health Percentage | +| SMART_EVENT_MANA_PCT | 3 | ManaMin% | ManaMax% | RepeatMin | RepeatMax | | Mana Percentage | +| SMART_EVENT_AGGRO | 4 | | | | | | On Creature Aggro | +| SMART_EVENT_KILL | 5 | CooldownMin | CooldownMax | Player only (0/1) | Creature entry (if param3 is 0) | | On Creature Kill | +| SMART_EVENT_DEATH | 6 | | | | | | On Creature Death | +| SMART_EVENT_EVADE | 7 | | | | | | On Creature Evade Attack | +| SMART_EVENT_SPELLHIT | 8 | SpellID | School | CooldownMin | CooldownMax | | On Creature/Gameobject Spell Hit | +| SMART_EVENT_RANGE | 9 | MinDist | MaxDist | RepeatMin | RepeatMax | | On Target In Range | +| SMART_EVENT_OOC_LOS | 10 | NoHostile | MaxRange | CooldownMin | CooldownMax | 0/1 Player Only | On Target In Distance Out of Combat | +| SMART_EVENT_RESPAWN | 11 | type (None = 0, Map = 1, Area = 2) | MapId | ZoneId | | | On Creature/Gameobject Respawn | +| SMART_EVENT_TARGET_HEALTH_PCT | 12 | HPMin% | HPMax% | RepeatMin | RepeatMax | | On Target Health Percentage | +| SMART_EVENT_VICTIM_CASTING | 13 | RepeatMin | RepeatMax | Spell id (0 any) | | | On Target Casting Spell | +| SMART_EVENT_FRIENDLY_HEALTH | 14 | HPDeficit | Radius | RepeatMin | RepeatMax | | On Friendly Health Deficit | +| SMART_EVENT_FRIENDLY_IS_CC | 15 | Radius | RepeatMin | RepeatMax | | | | +| SMART_EVENT_FRIENDLY_MISSING_BUFF | 16 | SpellId | Radius | RepeatMin | RepeatMax | | On Friendly Lost Buff | +| SMART_EVENT_SUMMONED_UNIT | 17 | CretureId (0 all) | CooldownMin | CooldownMax | | | On Creature/Gameobject Summoned Unit | +| SMART_EVENT_TARGET_MANA_PCT | 18 | ManaMin% | ManaMax% | RepeatMin | RepeatMax | | On Target Mana Percentage | +| SMART_EVENT_ACCEPTED_QUEST | 19 | QuestID (0 any) | | | | | On Target Accepted Quest | +| SMART_EVENT_REWARD_QUEST | 20 | QuestID (0 any) | | | | | On Target Rewarded Quest | +| SMART_EVENT_REACHED_HOME | 21 | | | | | | On Creature Reached Home | +| SMART_EVENT_RECEIVE_EMOTE | 22 | EmoteId | CooldownMin | CooldownMax | | | On Receive Emote. | +| SMART_EVENT_HAS_AURA | 23 | SpellID | Stacks | RepeatMin | RepeatMax | | On Creature Has Aura | +| SMART_EVENT_TARGET_BUFFED | 24 | SpellID | Stacks | RepeatMin | RepeatMax | | On Target Buffed With Spell | +| SMART_EVENT_RESET | 25 | | | | | | After Combat, On Respawn or Spawn | +| SMART_EVENT_IC_LOS | 26 | NoHostile | MaxRange | CooldownMin | CooldownMax | 0/1 Player Only | On Target In Distance In Combat | +| SMART_EVENT_PASSENGER_BOARDED | 27 | CooldownMin | CooldownMax | | | | | +| SMART_EVENT_PASSENGER_REMOVED | 28 | CooldownMin | CooldownMax | | | | | +| SMART_EVENT_CHARMED | 29 | | | | | | On Creature Charmed | +| SMART_EVENT_CHARMED_TARGET | 30 | | | | | | On Target Charmed | +| SMART_EVENT_SPELLHIT_TARGET | 31 | SpellId | School | RepeatMin | RepeatMax | | On Target Spell Hit | +| SMART_EVENT_DAMAGED | 32 | MinDmg | MaxDmg | RepeatMin | RepeatMax | | On Creature Damaged | +| SMART_EVENT_DAMAGED_TARGET | 33 | MinDmg | MaxDmg | RepeatMin | RepeatMax | | On Target Damaged | +| SMART_EVENT_MOVEMENTINFORM | 34 | MovementType (0=any) | PointID | | | | ESCORT_MOTION_TYPE = 17, POINT_MOTION_TYPE = 8 | +| SMART_EVENT_SUMMON_DESPAWNED | 35 | Entry | CooldownMin | CooldownMax | | | On Summoned Unit Despawned | +| SMART_EVENT_CORPSE_REMOVED | 36 | | | | | | On Creature Corpse Removed | +| SMART_EVENT_AI_INIT | 37 | | | | | | | +| SMART_EVENT_DATA_SET | 38 | Field | Value | CooldownMin | CooldownMax | | On Creature/Gameobject Data Set, Can be used with SMART_ACTION_SET_DATA | +| SMART_EVENT_WAYPOINT_START | 39 | PointId (0 any) | pathId (0 any) | | | | On Creature Waypoint ID Started | +| SMART_EVENT_WAYPOINT_REACHED | 40 | PointId (0 any) | pathId (0 any) | | | | On Creature Waypoint ID Reached | +| SMART_EVENT_AREATRIGGER_ONTRIGGER | 46 | TriggerId (0 any) | | | | | | +| SMART_EVENT_TEXT_OVER | 52 | creature_text.GroupID | creature.id (0 any) | | | | On TEXT_OVER Event Triggered After SMART_ACTION_TALK | +| SMART_EVENT_RECEIVE_HEAL | 53 | MinHeal | MaxHeal | CooldownMin | CooldownMax | | On Creature Received Healing | +| SMART_EVENT_JUST_SUMMONED | 54 | | | | | | On Creature Just spawned | +| SMART_EVENT_WAYPOINT_PAUSED | 55 | PointId (0 any) | pathID (0 any) | | | | On Creature Paused at Waypoint ID | +| SMART_EVENT_WAYPOINT_RESUMED | 56 | PointId (0 any) | pathID (0 any) | | | | On Creature Resumed after Waypoint ID | +| SMART_EVENT_WAYPOINT_STOPPED | 57 | PointId (0 any) | pathID (0 any) | | | | On Creature Stopped On Waypoint ID | +| SMART_EVENT_WAYPOINT_ENDED | 58 | PointId (0 any) | pathID (0 any) | | | | On Creature Waypoint Path Ended | +| SMART_EVENT_TIMED_EVENT_TRIGGERED | 59 | Id | | | | | | +| SMART_EVENT_UPDATE | 60 | InitialMin | InitialMax | RepeatMin | RepeatMax | | | +| SMART_EVENT_LINK | 61 | | | | | | Used to link together multiple events as a chain of events. | +| SMART_EVENT_GOSSIP_SELECT | 62 | gossip_menu_option.MenuID | gossip_menu_option.OptionID | | | | On gossip clicked (gossip_menu_option). | +| SMART_EVENT_JUST_CREATED | 63 | | | | | | | +| SMART_EVENT_GOSSIP_HELLO | 64 | | | | | | On Right-Click Creature/Gameobject that have gossip enabled. | +| SMART_EVENT_FOLLOW_COMPLETED | 65 | | | | | | | +| SMART_EVENT_UNUSED_66 | 66 | | | | | | UNUSED | +| SMART_EVENT_IS_BEHIND_TARGET | 67 | CooldownMin | CooldownMax | | | | On Creature is behind target. | +| SMART_EVENT_GAME_EVENT_START | 68 | game_event.eventEntry | | | | | On game_event started. | +| SMART_EVENT_GAME_EVENT_END | 69 | game_event.eventEntry | | | | | On game_event ended. | +| SMART_EVENT_GO_STATE_CHANGED | 70 | State (0 - Active, 1 - Ready, 2 - Active alternative) | | | | | | +| SMART_EVENT_GO_EVENT_INFORM | 71 | EventId | | | | | | +| SMART_EVENT_ACTION_DONE | 72 | EventId | | | | | | +| SMART_EVENT_ON_SPELLCLICK | 73 | | | | | | | +| SMART_EVENT_FRIENDLY_HEALTH_PCT | 74 | minHpPct | maxHpPct | repeatMin | repeatMax | | | +| SMART_EVENT_DISTANCE_CREATURE | 75 | database guid | database entry | distance | repeat interval (ms) | | On creature guid OR any instance of creature entry is within distance. | +| SMART_EVENT_DISTANCE_GAMEOBJECT | 76 | database guid | database entry | distance | repeat interval (ms) | | On gameobject guid OR any instance of gameobject entry is within distance. | +| SMART_EVENT_COUNTER_SET | 77 | counterID | value | cooldownMin | cooldownMax | | If the value of specified counterID is equal to a specified value | +| SMART_EVENT_NEAR_PLAYERS | 101 | minPlayers | Range (yards) | FirstCheck (ms) | RepeatCheck (ms) | | Event will trigger if there are more than minPlayers in range. | +| SMART_EVENT_NEAR_PLAYERS_NEGATION | 102 | maxPlayers | Range (yards) | FirstCheck (ms) | RepeatCheck (ms) | | Event will trigger if there are less than maxPlayers in range. | ### action\_type - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Value

Param1

Param2

Param3

Param4

Param5

Param6

Comment

SMART_ACTION_NONE

0


-


-


-


-


-


-

Do nothing

SMART_ACTION_TALK

1

creature_text.GroupID

Duration to wait before SMART_EVENT_TEXT_OVER is triggered.

0 It will try to trigger talk of the target -

1 Set target as talk target (used for $vars in texts and whisper target)


-


-


-

Param2 in Milliseconds.

SMART_ACTION_SET_FACTION

2

FactionID (or 0 for default)


-


-


-


-


-

Sets faction to creature.

SMART_ACTION_MORPH_TO_ENTRY_OR_MODEL

3

creature_template.entry(param1)

creature_template.modelidx(param2)


-


-


-


-

Take DisplayID of creature (param1) OR Turn to DisplayID (param2) OR Both = 0 for Demorph

SMART_ACTION_SOUND

4

SoundId

onlySelf (0/1)


-


-


-


-

Play Sound; onlySelf = 1 only sends sound to self, onlySelf = 0 sends sound to everyone in visibility range

SMART_ACTION_PLAY_EMOTE

5

EmoteId


-


-


-


-


-

Play Emote

SMART_ACTION_FAIL_QUEST

6

QuestID


-


-


-


-


-

Fail Quest of Target

SMART_ACTION_OFFER_QUEST

7

quest_template.id

directAdd (0/1)


-


-


-


-

Add Quest to Target

SMART_ACTION_SET_REACT_STATE

8

ReactState


-


-


-


-


-

React State. Can be Passive (0), Defensive (1), Aggressive (2).

SMART_ACTION_ACTIVATE_GOBJECT

9


-


-


-


-


-


-

Activate Object

SMART_ACTION_RANDOM_EMOTE

10

EmoteId1

EmoteId2

EmoteId3

EmoteId4

EmoteId5

EmoteId6

Play Random Emote

SMART_ACTION_CAST

11

SpellId

castFlags

limitTargets (0 = all targets)


-


-


-

Cast Spell ID at Target(s)

SMART_ACTION_SUMMON_CREATURE

12

creature_template.entry

Summon type

duration in ms

attackInvoker (0/1/2)

attackScriptOwner (0/1)


-

Summon Unit; attackInvoker 1: attack target; attackInvoker 2: attack actual invoker

SMART_ACTION_THREAT_SINGLE_PCT

13

Threat% inc

Threat% dec


-


-


-


-

Change Threat Percentage for Single Target

SMART_ACTION_THREAT_ALL_PCT

14

Threat% inc

Threat% dec


-


-


-


-

Change Threat Percentage for All Enemies

SMART_ACTION_CALL_AREAEXPLOREDOREVENTHAPPENS

15

quest_template.id


-


-


-


-


-


-

SMART_ACTION_RESERVED_16

16


-


-


-


-


-


-

For 4.3.4 + only

SMART_ACTION_SET_EMOTE_STATE

17

EmoteId


-


-


-


-


-

Play Emote Continuously

SMART_ACTION_SET_UNIT_FLAG

18

(may be more than one field OR'd together)

type

-

If false set creature_template.unit_flags

-

If true set creature_template.unit_flags2


-


-


-


-

Can set Multi-able flags at once

SMART_ACTION_REMOVE_UNIT_FLAG

19

(may be more than one field OR'd together)

type

-

If false set creature_template.unit_flags

-

If true set creature_template.unit_flags2


-


-


-


-

Can Remove Multi-able flags at once

SMART_ACTION_AUTO_ATTACK

20

AllowAttackState (0 = Stop attack, anything else means continue attacking)


-


-


-


-


-

Stop or Continue Automatic Attack.

SMART_ACTION_ALLOW_COMBAT_MOVEMENT

21

AllowCombatMovement (0 = Stop combat based movement, anything else continue attacking)


-


-


-


-


-

Allow or Disable Combat Movement

SMART_ACTION_SET_EVENT_PHASE

22

event_phase_mask


-


-


-


-


-

Set event phase 0-12 (the actual values, no bit mask!)

SMART_ACTION_INC_EVENT_PHASE

23

Increment

Decrement


-


-


-


-

Set param1 OR param2 (not both). Value 0 has no effect.

SMART_ACTION_EVADE

24


-


-


-


-


-


-

Evade Incoming Attack

SMART_ACTION_FLEE_FOR_ASSIST

25

0/1 (If you want the fleeing NPC to say attempts to flee text on flee, use 1 on param1. For no message use 0.)


-


-


-


-


-

If you want the fleeing NPC to say '%s attempts to run away in fear' on flee, use 1 on param1. 0 for no message.

SMART_ACTION_CALL_GROUPEVENTHAPPENS

26

quest_template.id


-


-


-


-


-


-

SMART_ACTION_COMBAT_STOP

27


-


-


-


-


-


-


-

SMART_ACTION_REMOVEAURASFROMSPELL

28

Spellid (0 removes all auras)

charges (0 removes aura)


-


-


-


-


-

SMART_ACTION_FOLLOW

29

Distance (0 = Default value)

Angle (0 = Default value)

End creature_template.entry

credit

creditType (0 monsterkill, 1 event)


-

Follow Target

SMART_ACTION_RANDOM_PHASE

30

event_phase_mask 1

event_phase_mask 2

event_phase_mask 3

event_phase_mask 4

event_phase_mask 5

event_phase_mask 6


-

SMART_ACTION_RANDOM_PHASE_RANGE

31

event_phase_mask minimum

event_phase_mask maximum


-


-


-


-


-

SMART_ACTION_RESET_GOBJECT

32


-


-


-


-


-


-

Reset Gameobject

SMART_ACTION_CALL_KILLEDMONSTER

33

creature_template.entry


-


-


-


-


-

This is the ID from quest_template.RequiredNpcOrGo

SMART_ACTION_SET_INST_DATA

34

Field

Data


-


-


-


-

Set Instance Data

SMART_ACTION_SET_INST_DATA64

35

Field


-


-


-


-


-

Set Instance Data uint64

SMART_ACTION_UPDATE_TEMPLATE

36

creature_template.entry

Update Level


-


-


-


-

Updates creature_template to given entry

SMART_ACTION_DIE

37


-


-


-


-


-


-

Kill Target

SMART_ACTION_SET_IN_COMBAT_WITH_ZONE

38

Range in yards for