Short guide to Smart Scripts

Post Reply
User avatar
Gnurg
Posts: 2420
Joined: 28 Jan 2013 19:38
Location: Oslo, Norway

Short guide to Smart Scripts

#1 » Post by Gnurg » 20 Jan 2017 13:51

Looking at the TBC Transition Thread, there seems to be a huge amount of unscripted creatures in Outland and the new starting zones. The majority of scripted creatures on our server is scripted through Smart Scripts, which is a straight forward and simple way of scripting them. The only problem is that it can be time-consuming when there are so many, so I am certain the developers would like some help. :-)

Should you want to help out, I would recommend you start with creatures outside instances, as they tend to be a bit simpler in certain ways like what target to choose. Though, very many instance-creatures are simple as well.

You can post your smart_scripts here: http://truewow.org/forum/viewtopic.php?f=66&t=36905. Though, you will have to apply as testers first.

Here is TrinityCore's page on smart scripts: https://trinitycore.atlassian.net/wiki/ ... rt_scripts. I'll cover the basics of smart_scripts, which is more than enough to script 95 % of the creatures mentioned in the TBC Transition Thread.


Identification
These together should always be unique as they together are the primary key for smart_scripts.
  • entryorguid - The entry of the creature. Hogger is 448 (http://www.wowhead.com/npc=448/hogger).
  • source_type - When scripting creatures, you put 0 here.
  • id - Incremental id (0, 1, 2, ... ). You increment it for every event you add.
Events
I would take a look at this list: https://trinitycore.atlassian.net/wiki/ ... event_type
  • event_type - What type of event should it be? What should trigger it to happen? Here you have a lot to choose from, but the ones you want to look at are: UPDATE_IC (0), UPDATE_OOC (1), AGGRO (4), RANGE (9) and RESET (25).
  • event_param1-4: Each type of event come with different params, so they'll be used differently for each type of event:
    • For UPDATE_IC, param 1 is the minimum time and param 2 is the maximum until the event happens for the first time.
    • Param 3 and param 4 are the minimum and maximum time for how the event repeats after the event has happened once.
      For AGGRO, the params aren't even in use, so you just leave them at 0.
Image

You'll just have to look at link above to figure out what event type you want and what event_params you should provide it.

Action
https://trinitycore.atlassian.net/wiki/ ... ction_type
What should be done? You can make this very advanced, but for most creatures, we just want them to cast a spell. Target
https://trinitycore.atlassian.net/wiki/ ... arget_type
Who shall we cast the spell on? Here it's important to make sure you cast on the correct target. It's recommend you try out the spell on the PTR before deciding who should be the target. For instance, AoE spells like Thunder Clap, should be cast on self.
  • target_type - Who do we cast on? Most used for open world creatures: self (1), victim (2)
That's all you need to know about to script most of the unscripted open world creatures.

Template

Code: Select all

SET @ENTRY := <NPC ID>; 
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(@ENTRY, 0, 0, 0, EVENT_TYPE, 0, 100, 0, EVENT_PARAM1, EVENT_PARAM2, EVENT_PARAM3, EVENT_PARAM4, 11, SPELL_ID, 0, 0, 0, 0, 0, TARGET_TYPE, 0, 0, 0, 0, 0, 0, 0, "Comment"),
(@ENTRY, 0, 1, 0, EVENT_TYPE, 0, 100, 0, EVENT_PARAM1, EVENT_PARAM2, EVENT_PARAM3, EVENT_PARAM4, 11, SPELL_ID, 0, 0, 0, 0, 0, TARGET_TYPE, 0, 0, 0, 0, 0, 0, 0, "Comment"),
(@ENTRY, 0, 2, 0, EVENT_TYPE, 0, 100, 0, EVENT_PARAM1, EVENT_PARAM2, EVENT_PARAM3, EVENT_PARAM4, 11, SPELL_ID, 0, 0, 0, 0, 0, TARGET_TYPE, 0, 0, 0, 0, 0, 0, 0, "Comment");
Keep in mind that each row (after the comment) should end with , (comma) except for the last one, which should be ; (semicolon).


Some examples:

The Rock should cast Acid Spit. The in combat (IC) event (0) with the params below will make first cast after 3-5 seconds (1000 miliseconds = 1 second) and have it repeat every 10-12 seconds thereafter. It casts Acid Spit (spell id: 44477) and it casts it on the victim (target_type: 2).

Code: Select all

-- Rock Worm (http://www.wowhead.com/npc=11788/rock-worm#abilities) SAI
SET @ENTRY := 11788;
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
(@ENTRY,0,0,0,0,0,100,0,3000,5000,10000,12000,11,44477,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rock Worm - IC - Cast Acid Spit");

Shadowshard Rumbler should cast Trample. Trample has a limit range, so we will use the event RANGE (9) with the params that makes it only cast it if someone is within 0-5 yards (param1 & param2) of the Shadowshard Rumbler and it will repeat every 10-12 seconds (param3 & param4). Since it is an AoE abbility, we cast it on ourself (target_type = 1)

Code: Select all

-- Shadowshard Rumbler (http://www.wowhead.com/npc=11777/shadowshard-rumbler#abilities) SAI
SET @ENTRY := 11777;
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
(@ENTRY,0,0,0,9,0,100,0,0,5,10000,12000,11,5568,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadowshard Rumbler - Range (0-5) - Trample");

The Fallout Slime should have the Disease Cloud aura from when it spawns. The RESET event (event type: 25) happens whenever the creature spawn or reset, so I use it to make it cast Diseases Cloud (spell id: 28156) on itself (target type: 1).

Code: Select all

-- Fallout Slime SAI (Grobbolus)
SET @ENTRY := 16290;
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(@ENTRY, 0, 0, 0, 25, 0, 100, 1, 0, 0, 0, 0, 11, 28156, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Fallout Slime - Reset- Cast Disease Cloud");

Khan Jehn should cast defensive stance (spell: 72) on aggro (event type: 4) and he should cast it on himself. He does as well have a interrupt in Shield Bash, which is handled on a less used event (Victim casting, 13).

Code: Select all

-- Khan Jehn (http://wotlk.openwow.com/npc=5601 [^]) SAI
SET @ENTRY := 5601;
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
(@ENTRY,0,0,0,4,0,100,0,0,0,0,0,11,7164,0,0,0,0,0,1,0,0,0,0,0,0,0,"Khan Jehn - Agroo - Cast Defensive Stance"),
(@ENTRY,0,1,0,13,0,100,0,12000,18000,0,0,11,72,0,0,0,0,0,2,0,0,0,0,0,0,0,"Khan Jehn - Victim Casting - Cast Shield Bash"),
(@ENTRY,0,2,0,0,0,100,0,0,0,10000,12000,11,8380,0,0,0,0,0,2,0,0,0,0,0,0,0,"Khan Jehn - IC - Cast Sunder Armor");

Whenever the Stonescythe Alpha's health is below 50 (event_type: 2), it should cast Desperate Defense (33896). This is something you can use for healing as well, only let it heal when it's health is below a certain value.

Code: Select all

-- Stonescythe Alpha (http://www.wowhead.com/npc=16929/stonescythe-alpha#abilities [^]) SAI
SET @ENTRY := 16929;
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
(@ENTRY,0,0,0,0,0,100,0,3000,5000,6000,10000,11,33911,0,0,0,0,0,2,0,0,0,0,0,0,0,"Stonescythe Alpha - IC - Cast Tear Armor"),
(@ENTRY,0,1,0,2,0,100,0,0,50,120000,120000,11,33896,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stonescythe Alpha - Less than 50% HP - Cast Desperate Defense");

Should the creature say something?
If you want the creature to say something, all you have to do is set the action_type to 1 (the one that is 11 for when we cast spells) and action_param1 set to the group in the creature_text we want to use. First off, we need to set up a creature_text for the creature, which is another table.

It has a few interesting attributes: *Primary key made out of bolded.
  • entry - The entry of creature, same as per usual.
  • group - You have one group for each type of event that triggers it. i.e. one group for when the creature aggro, one group for when a creature dies, one group for when the creature kills someone.
  • id - Just an incremental value that should increment for within each group. On aggro, a creature might have two different aggro-messages, so we add one on id = 0 and one on id = 1.
  • text - Basically, what the creature will say.
  • type - Say (12), Yell (14), Emote (16), Boss Emote (41), Whisper (15), Boss Whisper (42)
  • language - Generally kept 0 (universal), but you can choose from this list: https://trinitycore.atlassian.net/wiki/ ... /Languages
  • BroadcastTextId - You need to find the text you want the creature to say and add its id. Big file
  • Comment - Name of the creature - What should trigger it. i.e. 'Hogger - On Aggro'

Code: Select all

@ENTRY := Creature_entry

DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(@ENTRY, GROUP, INCREMENTED_ID, 'Something the creature would say', TYPE, 0, 100, 0, 0, 0, BROADCAST_ID, 0, 'Creature_name - What and how should it trigger'),
(@ENTRY, GROUP, INCREMENTED_ID, 'Something the creature would say', TYPE, 0, 100, 0, 0, 0, BROADCAST_ID, 0, 'Creature_name - What should trigger it');

UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(@ENTRY, 0, 0, 0, EVENT_TYPE, 0, 100, 0, EVENT_PARAM1, EVENT_PARAM2, EVENT_PARAM3, EVENT_PARAM4, 1, GROUP, 0, 0, 0, 0, 0, TARGET_TYPE, 0, 0, 0, 0, 0, 0, 0, "Comment");

Most importantly:
  • 1. Make sure the SQL doesn't have any errors. Something as little as replacing ` with ' will make the server not start up again (I've done that in the past. ^_^ ). Should you use the template, it should however, be quite complicated to make any errors.
    2. Make sure you have correct creature ID. Should we end up updating the wrong creature, we will bug out a different creature, which is very bad.
If you have any questions, feel free to ask.
Last edited by Gnurg on 22 Feb 2017 15:15, edited 4 times in total.
HAI
CAN HAZ STDIO?
VISIBLE "HAI WORLD, IZ GNURF!"
KTHXBYE

User avatar
Jiranthos
Admin
Posts: 1978
Joined: 23 Jun 2015 03:43
Location: Not on your bad side, hopefully

Re: Short guide to Smart Scripts

#2 » Post by Jiranthos » 20 Jan 2017 14:05

Stickied.


The TBC Transition thread mentioned in the guide references to a thread only visible to the Testers group. If you would like to participate more in testing and development and get access to these kinds of threads, please familiarize yourself with this guide, the BugTracker at www.truewow.org/bugs and apply for a tester status with the staff (private message to Flooded or Errorista will do).

Everybody knows that the best way to describe the ocean to a blind man is to push him in

User avatar
IronSharona
Former Staff
Posts: 1145
Joined: 02 Feb 2017 00:49
Location: Austin, Texas, USA

Re: Short guide to Smart Scripts

#3 » Post by IronSharona » 06 Feb 2017 14:46

Hey Gnurg, if you get a chance, could you explain a little bit more about how the id works for NPCs with multiple events and how we can incorporate those in our smartscripts?

The current TBC testing thread is listing only the spells missing or broken for each NPC, but some NPCs have a plethora of spells already working correctly that aren't mentioned. Without access to the original smartscripts in the database or however the working spells were applied, I think it is likely that for any multi-event NPCs we will be breaking the working spells by overwriting them with low numbered ids through our submissions.

Ex. Mmmrrrggglll was casting Frost shock well. I added a script to try to cycle in more chain lightning, base his heal cast on his health instead of being random cast, and tried to get the nearby murlocs to fear. He seems to have replaced his affinity for Frost Shock with Chain Lightning and won't cast anything else now. This shows either my script completely overloaded his spellset or I've misunderstood how to increment event id numbers, which would be super embarrassing but I don't put it past myself :P
Welcome to the new decade! Let's hope the Roaring 20's come with just as much jazz, but a bit less prohibition and Great Depression. 8-)

User avatar
Gnurg
Posts: 2420
Joined: 28 Jan 2013 19:38
Location: Oslo, Norway

Re: Short guide to Smart Scripts

#4 » Post by Gnurg » 06 Feb 2017 15:44

IronSharona wrote:Hey Gnurg, if you get a chance, could you explain a little bit more about how the id works for NPCs with multiple events and how we can incorporate those in our smartscripts?

The current TBC testing thread is listing only the spells missing or broken for each NPC, but some NPCs have a plethora of spells already working correctly that aren't mentioned. Without access to the original smartscripts in the database or however the working spells were applied, I think it is likely that for any multi-event NPCs we will be breaking the working spells by overwriting them with low numbered ids through our submissions.

Ex. Mmmrrrggglll was casting Frost shock well. I added a script to try to cycle in more chain lightning, base his heal cast on his health instead of being random cast, and tried to get the nearby murlocs to fear. He seems to have replaced his affinity for Frost Shock with Chain Lightning and won't cast anything else now. This shows either my script completely overloaded his spellset or I've misunderstood how to increment event id numbers, which would be super embarrassing but I don't put it past myself :P
In the template provided, it deletes all existing entries for that creature, including the already working Frost Shock. We want to do this, so we don't get into any duplicate primary key conflicts when inserting. *The primary key is the combination of entry, source type and id. It's also very convenient for you, as you don't have to take into consideration how the NPC currently is scripted, you just script it from scratch.

Looking at your submission for Mmmrrrggglll.
  • When you increment the id-s, only increment the id field, underlined here in red: (@ENTRY, 0, 0, 0, 2, ...
  • Chain Lightning one looks good.
  • You will have to add the Frost Shock, so he casts it.
  • I am not sure why he wouldn't cast Healing Wave, but it could be because you updated the link-field (the one to the right of id field) too when incrementing the ids. The spells also costs mana, so maybe he was out of mana at that point?
  • For the fear I am again a bit unsure, one obvious error is that you did only specify the minimum distance (10 yds) and not the maximum distance. You have to specify both for target_range.
  • For the comment part, the middle part (between the two -), please state what kind of event it is. HP%(0-25), On Death, IC, etc.
Mmmrrrggglll is a bit complicated, so don't worry about having to use some iterations to get him fully working.

Thanks for helping out and if there's anything else, feel free to ask.
HAI
CAN HAZ STDIO?
VISIBLE "HAI WORLD, IZ GNURF!"
KTHXBYE

User avatar
Nyeriah

Re: Short guide to Smart Scripts

#5 » Post by Nyeriah » 06 Feb 2017 23:32

Is Mmmmrggll the murloc that should fear near murlocs on death? If the spell he casts doesn't specifically target nearby friendly units then it's way, way easier to script it with a core script instead.

User avatar
Gnurg
Posts: 2420
Joined: 28 Jan 2013 19:38
Location: Oslo, Norway

Re: Short guide to Smart Scripts

#6 » Post by Gnurg » 07 Feb 2017 00:17

Nyeriah wrote:Is Mmmmrggll the murloc that should fear near murlocs on death? If the spell he casts doesn't specifically target nearby friendly units then it's way, way easier to script it with a core script instead.
The spell is actually always a self-cast and is supposed to be cast by all the murloc themselves when their chieftain dies. I've seen Doctor_J use Set Data to make the creatures 'communicate' and it worked locally for me, so I guess I'll go for it. :-)
IronSharona wrote:!
Use this in your Mmmrrrggglll Smart Script and I'll make sure the other murlocs reacts when he dies:

Code: Select all

(15937, 0, 0, 0, 6, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, "Mmmrrrggglll - On Death - Alert nearby murlocs"),
Short idea: You make Mmmrrrggglll Set Data (45, what it does, is irrelevant, I think. We'll see what Nyeriah says.) on nearby murlocs, when he dies. The other murlocs will fear themselves on the event that their Data was set (38).
HAI
CAN HAZ STDIO?
VISIBLE "HAI WORLD, IZ GNURF!"
KTHXBYE

User avatar
Gnurg
Posts: 2420
Joined: 28 Jan 2013 19:38
Location: Oslo, Norway

Re: Short guide to Smart Scripts

#7 » Post by Gnurg » 22 Feb 2017 15:18

I added a section for how to make the SAI have the creature talk when certain events occur. It's basically the same as with spells, except we add a creature_text and have action_type set to 1 and action_param1 set to the group in the creature_text we want.

As always, if you got any questions, please feel to ask.


Smart Scripts can be submitted here: viewtopic.php?f=66&t=36905
HAI
CAN HAZ STDIO?
VISIBLE "HAI WORLD, IZ GNURF!"
KTHXBYE

User avatar
Doctor_J
Developer
Posts: 5827
Joined: 01 Sep 2012 19:30
Location: United Kingdom

Making a NPC respond to a player emote

#8 » Post by Doctor_J » 22 Apr 2017 01:10

Ok will post this here as tc documentation for id what you need to use to make a npc respond to a player emote (eg /wave, /salute, etc) is incorrect as player emotes and npc emotes do not use the same ids

So if anyone is interesting in fixes any of those things where you need a npc to respond to a player emote, the correct ids to use with SAI action 22 are as follows: -

Code: Select all

1 - /Agree
2 - /Amaze
3 - /Angry
4 - /Apologize
5 - /Applaud
6 - /Basful
7 - /Beckon
8 - /Beg
9 - /Bite
10 - /Bleed
11 - /Blink
12 - /Blush
13 - /Bonk
14 - /Bored
15 - /Bounce
16 - /BRB
17 - /Bow
18 - /Burp
19 - /Bye
20 - /Cackle
21 - /Cheer
22 - /Chicken
23 - /Chuckle
24 - /Clap
25 - /Confused
26 - /Congratulate
27 - /Cough
28 - /Cower
29 - /Crack
30 - /Cringe
31 - /Cry
32 - /Curious
33 - /Curtsey
34 - /Dance
35 - /Drink
36 - /Drool
37 - /Eat
38 - /Eye
39 - /Fart
40 - /Fidget
41 - /Flex
42 - /Frown
43 - /Gasp
44 - /Gaze
45 - /Giggle
46 - /Glare
47 - /Gloat
48 - /Greet
49 - /Grin
50 - /Groan
51 - /Grovel
52 - /Guffaw
53 - /Hail
54 - /Happy
55 - /Hello
56 - /Hug
57 - /Hungry
58 - /Kiss
59 - /Kneel
60 - /Laugh
61 - /Laydown
62 - /Massage
63 - /Moan
64 - /Moon
65 - /Mourn
66 - /No
67 - /Nod
68 - /Nosepick
69 - /Panic
70 - /Peer
71 - /Plead
72 - /Point
73 - /Poke
74 - /Pray
75 - /Roar
76 - /ROFL
77 - /Rude
78 - /Salute
79 - /Scratch
80 - /Sexy
81 - /Shake
82 - /Shout
83 - /Shrug
84 - /Shy
85 - /Sigh
86 - /Sit
87 - /Sleep
88 - /Snarl
89 - /Spit
90 - /Stare
91 - /Suprised
92 - /Surrender
93 - /Talk
94 - /Talkex
95 - /Talkq
96 - /Tap
97 - /Thank
98 - /Threaten
99 - /Tired
100 - /Victory
101 - /Wave
102 - /Welcome
103 - /Whine
104 - /Whistle
105 - /Work
106 - /Yawn
107 - /Boggle
108 - /Calm
109 - /Cold
110 - /Comfort
111 - /Cuddle
112 - /Duck
113 - /Insult
114 - /Introduce
115 - /JK
116 - /Lick
117 - /Listen
118 - /Lost
119 - /Mock
120 - /Ponder
121 - /Pounce
122 - /Praise
123 - /Purr
124 - /Puzzle
125 - /Raise
126 - /Ready
127 - /Shimmy
128 - /Shiver
129 - /Shoo
130 - /Slap
131 - /Smirk
132 - /Sniff
133 - /Snub
134 - /Sooth
135 - /Stink
136 - /Taunt
137 - /Tease
138 - /Thirsty
139 - /Veto
140 - /Snicker
141 - /Stand
142 - /Tickle
143 - /Violin
163 - /Smile
183 - /Rasp
203 - /Pity
204 - /Growl
205 - /Bark
223 - /Scared
224 - /Flop
225 - /Love
226 - /Moo
243 - /Commend
264 - /Train
303 - /Helpme
304 - /Incoming
305 - /Charge
306 - /Flee
307 - /Attackmytarget
323 - /OOM
324 - /Follow
325 - /Wait
326 - /Healme
327 - /Openfire
328 - /Flirt
329 - /Joke
343 - /Golfclap
363 - /Wink
364 - /Mount
365 - /Serious
366 - /Mountspecial
367 - /Goodluck
368 - /Blame
369 - /Blank
370 - /Brandish
371 - /Breath
372 - /Disagree
373 - /Doubt
373 - /Embarrass
375 - /Encourage
376 - /Enemy
377 - /Eyebrow
378 - /Toast
379 - /Fail
380 - /Highfive
381 - /Absent
382 - /Arm
383 - /Awe
384 - /Backpack
385 - /Badfeeling
386 - /Challenge
387 - /Chug
389 - /Ding
390 - /Facepalm
391 - /Faint
392 - /Go
393 - /Going
394 - /Glower
395 - /Headache
396 - /Hiccup
398 - /Hiss
399 - /Holdhand
401 - /Hurry
402 - /Idea
404 - /Luck
405 - /Map
406 - /Mercy
407 - /Mutter
408 - /Nervous
409 - /Offer
410 - /Pet
411 - /Pinch
413 - /Proud
414 - /Promise
415 - /Pulse
416 - /Pinch
417 - /Pout
418 - /Regret
420 - /Revenge
421 - /Rolleyes
422 - /Ruffle
423 - /Sad
424 - /Scoff
425 - /Scold
426 - /Scowl
427 - /Search
428 - /Shakefist
429 - /Shifty
430 - /Shudder
431 - /Signal
432 - /Silence
433 - /Sing
434 - /Smack
435 - /Sneak
436 - /Sneeze
437 - /Snort
438 - /Squeal
439 - /Stopattack
440 - /Suspicious
441 - /Think
442 - /Truce
443 - /Twiddle
444 - /Warn
445 - /Snap
446 - /Charm
447 - /Coverears
448 - /Crossarms
449 - /Look
450 - /Object
451 - /Sweat
453 - /YW

User avatar
loveable
Posts: 348
Joined: 14 Jul 2015 19:46
Location: Iran
Contact:

Re: Short guide to Smart Scripts

#9 » Post by loveable » 22 Apr 2017 06:25

> AnimationData.dbc
Beating Everything In WoW -> Ghost <-
Get Rekt , Get Rekt , Get Rekt = RBG
Get Rekt , Get Rekt , Get Rekt = Not RBG

User avatar
Doctor_J
Developer
Posts: 5827
Joined: 01 Sep 2012 19:30
Location: United Kingdom

Re: Short guide to Smart Scripts

#10 » Post by Doctor_J » 22 Apr 2017 11:17

Actually its emotestext.dbc you can also see animation from this table but not all player emotes have animation as this field is 0 for some emote text

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest