aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/auth/2013_12_01_00_auth_rbac_permissions.sql1
-rw-r--r--sql/updates/auth/2013_12_01_01_auth_rbac_permissions.sql1
-rw-r--r--sql/updates/world/2013_11_28_02_world_misc.sql2
-rw-r--r--sql/updates/world/2013_11_29_00_world_sai.sql29
-rw-r--r--sql/updates/world/2013_11_29_01_world_sai.sql1026
-rw-r--r--sql/updates/world/2013_11_29_02_world_sai.sql507
-rw-r--r--sql/updates/world/2013_11_29_03_world_sai.sql8
-rw-r--r--sql/updates/world/2013_11_29_04_world_sai.sql111
-rw-r--r--sql/updates/world/2013_11_29_05_world_sai.sql631
-rw-r--r--sql/updates/world/2013_11_29_06_world_sai.sql298
-rw-r--r--sql/updates/world/2013_11_30_00_world_sai.sql1018
-rw-r--r--sql/updates/world/2013_11_30_01_world_sai.sql795
-rw-r--r--sql/updates/world/2013_11_30_02_world_sai.sql284
-rw-r--r--sql/updates/world/2013_11_30_03_world_sai.sql63
-rw-r--r--sql/updates/world/2013_12_01_00_world_creature_ai.sql4
-rw-r--r--sql/updates/world/2013_12_01_01_world_sai.sql7
-rw-r--r--sql/updates/world/2013_12_01_02_world_command.sql1
-rw-r--r--sql/updates/world/2013_12_01_03_world_sai.sql2
-rw-r--r--sql/updates/world/2013_12_01_04_world_sai.sql2
-rw-r--r--sql/updates/world/2013_12_01_05_world_misc.sql10
-rw-r--r--sql/updates/world/2013_12_01_06_world_misc.sql68
-rw-r--r--sql/updates/world/2013_12_01_07_world_sai.sql1
-rw-r--r--sql/updates/world/2013_12_02_00_world_sai.sql12
-rw-r--r--sql/updates/world/2013_12_02_01_world_sai.sql1
-rw-r--r--sql/updates/world/2013_12_02_02_world_sai.sql3
-rw-r--r--sql/updates/world/2013_12_04_00_world_sai.sql13
-rw-r--r--sql/updates/world/2013_12_04_01_world_misc.sql24
-rw-r--r--sql/updates/world/2013_12_04_02_world_misc.sql8
-rw-r--r--sql/updates/world/2013_12_04_03_world_spells.sql10
-rw-r--r--sql/updates/world/2013_12_04_04_world_sai.sql14
-rw-r--r--sql/updates/world/2013_12_04_05_world_sai.sql1
-rw-r--r--sql/updates/world/2013_12_04_06_world_sai.sql14
-rw-r--r--sql/updates/world/2013_12_05_00_world_misc.sql39
-rw-r--r--sql/updates/world/2013_12_05_01_world_sai.sql13
-rw-r--r--sql/updates/world/2013_12_05_02_world_sai.sql118
-rw-r--r--sql/updates/world/2013_12_07_00_world_misc.sql77
-rw-r--r--sql/updates/world/2013_12_07_01_world_sai.sql3
-rw-r--r--sql/updates/world/2013_12_07_02_world_sai.sql3
-rw-r--r--sql/updates/world/2013_12_08_00_world_creature_text.sql8
-rw-r--r--sql/updates/world/2013_12_08_01_world_misc.sql53
-rw-r--r--sql/updates/world/2013_12_08_02_world_misc.sql31
-rw-r--r--sql/updates/world/2013_12_09_00_world_misc.sql53
-rw-r--r--sql/updates/world/2013_12_09_01_world_waypoints.sql142
-rw-r--r--sql/updates/world/2013_12_09_02_world_waypoints.sql515
-rw-r--r--sql/updates/world/2013_12_09_03_world_misc.sql321
-rw-r--r--sql/updates/world/2013_12_09_04_world_creature_template.sql1
-rw-r--r--src/server/collision/Models/WorldModel.h6
-rw-r--r--src/server/game/AI/CoreAI/CombatAI.cpp2
-rw-r--r--src/server/game/AI/CoreAI/PetAI.h1
-rw-r--r--src/server/game/AI/CreatureAIRegistry.cpp2
-rw-r--r--src/server/game/AI/EventAI/CreatureEventAI.cpp1327
-rw-r--r--src/server/game/AI/EventAI/CreatureEventAI.h630
-rw-r--r--src/server/game/AI/EventAI/CreatureEventAIMgr.cpp680
-rw-r--r--src/server/game/AI/EventAI/CreatureEventAIMgr.h46
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.cpp6
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp19
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.h3
-rw-r--r--src/server/game/Accounts/AccountMgr.cpp2
-rw-r--r--src/server/game/Accounts/RBAC.h6
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp6
-rw-r--r--src/server/game/CMakeLists.txt1
-rw-r--r--src/server/game/Chat/ChatLink.h10
-rw-r--r--src/server/game/Combat/UnitEvents.h8
-rw-r--r--src/server/game/DataStores/DBCEnums.h58
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp1
-rw-r--r--src/server/game/Entities/Object/Object.h5
-rw-r--r--src/server/game/Entities/Player/Player.cpp36
-rw-r--r--src/server/game/Entities/Player/Player.h2
-rw-r--r--src/server/game/Entities/Transport/Transport.cpp3
-rw-r--r--src/server/game/Entities/Transport/Transport.h1
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp16
-rwxr-xr-xsrc/server/game/Entities/Vehicle/Vehicle.cpp2
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp8
-rw-r--r--src/server/game/Globals/ObjectMgr.h2
-rw-r--r--src/server/game/Handlers/PetHandler.cpp6
-rw-r--r--src/server/game/Maps/TransportMgr.cpp6
-rw-r--r--src/server/game/Maps/TransportMgr.h4
-rw-r--r--src/server/game/Movement/PathGenerator.cpp2
-rw-r--r--src/server/game/Scripting/MapScripts.cpp4
-rw-r--r--src/server/game/Scripting/ScriptLoader.cpp10
-rw-r--r--src/server/game/Spells/SpellMgr.cpp3
-rw-r--r--src/server/game/World/World.cpp17
-rw-r--r--src/server/game/World/World.h6
-rw-r--r--src/server/scripts/CMakeLists.txt1
-rw-r--r--src/server/scripts/Commands/cs_reload.cpp29
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp39
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp32
-rw-r--r--src/server/scripts/EasternKingdoms/zone_hinterlands.cpp6
-rw-r--r--src/server/scripts/Kalimdor/CMakeLists.txt5
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp1
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp1
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp115
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp103
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp136
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp107
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp270
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp344
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h51
-rw-r--r--src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp1
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp4
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp3
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp44
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp17
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp4
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp1
-rw-r--r--src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp203
-rw-r--r--src/server/scripts/Northrend/zone_grizzly_hills.cpp40
-rw-r--r--src/server/scripts/Northrend/zone_howling_fjord.cpp112
-rw-r--r--src/server/scripts/Northrend/zone_icecrown.cpp86
-rw-r--r--src/server/scripts/Northrend/zone_sholazar_basin.cpp52
-rw-r--r--src/server/scripts/Northrend/zone_storm_peaks.cpp193
-rw-r--r--src/server/scripts/Northrend/zone_zuldrak.cpp14
-rw-r--r--src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp1
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp18
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp44
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp44
-rw-r--r--src/server/scripts/Outland/zone_blades_edge_mountains.cpp101
-rw-r--r--src/server/shared/Cryptography/HMACSHA1.cpp1
-rw-r--r--src/server/shared/DataStores/DBCFileLoader.cpp2
-rw-r--r--src/server/worldserver/CMakeLists.txt1
-rw-r--r--src/server/worldserver/Master.cpp7
131 files changed, 8220 insertions, 3322 deletions
diff --git a/sql/updates/auth/2013_12_01_00_auth_rbac_permissions.sql b/sql/updates/auth/2013_12_01_00_auth_rbac_permissions.sql
new file mode 100644
index 00000000000..c18e9d62d74
--- /dev/null
+++ b/sql/updates/auth/2013_12_01_00_auth_rbac_permissions.sql
@@ -0,0 +1 @@
+DELETE FROM `rbac_permissions` WHERE `id`=614;
diff --git a/sql/updates/auth/2013_12_01_01_auth_rbac_permissions.sql b/sql/updates/auth/2013_12_01_01_auth_rbac_permissions.sql
new file mode 100644
index 00000000000..b07b8a6d6b1
--- /dev/null
+++ b/sql/updates/auth/2013_12_01_01_auth_rbac_permissions.sql
@@ -0,0 +1 @@
+DELETE FROM `rbac_permissions` WHERE `id` IN (631,632);
diff --git a/sql/updates/world/2013_11_28_02_world_misc.sql b/sql/updates/world/2013_11_28_02_world_misc.sql
new file mode 100644
index 00000000000..0e0431d4040
--- /dev/null
+++ b/sql/updates/world/2013_11_28_02_world_misc.sql
@@ -0,0 +1,2 @@
+UPDATE `creature_template_addon` SET `emote`=69 WHERE `entry`=31807;
+DELETE FROM `creature_addon` WHERE `guid` IN (101725,101943);
diff --git a/sql/updates/world/2013_11_29_00_world_sai.sql b/sql/updates/world/2013_11_29_00_world_sai.sql
new file mode 100644
index 00000000000..3a434f77a0e
--- /dev/null
+++ b/sql/updates/world/2013_11_29_00_world_sai.sql
@@ -0,0 +1,29 @@
+-- Forest Moss Creeper SAI fix
+SET @ENTRY := 2350;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0 AND `id`=1;
+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,1,0,0,0,100,6,7800,15700,48300,66300,11,3396,32,0,0,0,0,2,0,0,0,0,0,0,0,"Forest Moss Creeper - In Combat - Cast 3396 (Dungeon Only)");
+-- Scarshield Grunt SAI fix
+UPDATE `smart_scripts` SET `event_flags`=2 WHERE `entryorguid`=9043;
+-- Mana Bomb Explosion Trigger SAI fix
+UPDATE `smart_scripts` SET `link`=0 WHERE `entryorguid`=20767 AND `id`=1;
+-- Serpent Statue SAI fix
+UPDATE `smart_scripts` SET `link`=0 WHERE `entryorguid`=177673;
+-- Warlord Tartek SAI fix
+UPDATE `smart_scripts` SET `link`=0 WHERE `entryorguid`=28105 AND `id`=4;
+-- Razormane Hunter SAI fix
+UPDATE `smart_scripts` SET `link`=5 WHERE `entryorguid`=3265 AND `id`=4;
+-- Father Kamaros SAI fix
+UPDATE `smart_scripts` SET `link`=0 WHERE `entryorguid`=31279 AND `id`=14;
+
+-- Thrym SAI fix
+SET @ENTRY := 29895;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY*100 AND `source_type`=9;
+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,1,11,0,100,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Thrym - On spawn - Yell 0'),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,97,40,30,0,0,0,0,1,0,0,0,5555.583, -2223.97, 235.967,0,'Thrym - On Script - Jump to pos'),
+(@ENTRY,0,2,0,1,0,100,1,3000,3000,3000,3000,101,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Thrym - OOC - Set home position'),
+(@ENTRY,0,3,0,4,0,100,1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Thrym - On Aggro - Yell 1'),
+(@ENTRY,0,4,0,0,0,100,0,8000,16000,15000,21000,11,28167,0,0,0,0,0,5,0,0,0,0,0,0,0,'Thrym - IC - Cast Chain Lightning'),
+(@ENTRY,0,5,0,6,0,100,0,0,0,0,0,11,55662,2,0,0,0,0,7,0,0,0,0,0,0,0,'Thrym - On Death - Cast criteria credit');
diff --git a/sql/updates/world/2013_11_29_01_world_sai.sql b/sql/updates/world/2013_11_29_01_world_sai.sql
new file mode 100644
index 00000000000..144b7dbad5a
--- /dev/null
+++ b/sql/updates/world/2013_11_29_01_world_sai.sql
@@ -0,0 +1,1026 @@
+-- Skeletal Shadowcaster SAI
+SET @ENTRY := 7340;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Shadowcaster - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Shadowcaster - On Aggro - Cast 9613 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Shadowcaster - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Shadowcaster - Between 0-40 Range - Cast 9613 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Shadowcaster - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Shadowcaster - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Shadowcaster - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Shadowcaster - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Shadowcaster - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Shadowcaster - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon)"),
+(@ENTRY,0,10,0,0,0,100,2,6000,10000,7000,14000,11,12248,33,0,0,0,0,5,0,0,0,0,0,0,0,"Skeletal Shadowcaster - In Combat - Cast 12248 (Normal Dungeon)"),
+(@ENTRY,0,11,0,7,0,100,3,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Shadowcaster - On Evade - Forced Despawn (Normal Dungeon)");
+
+-- Southsea Freebooter SAI
+SET @ENTRY := 7856;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Southsea Freebooter - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Southsea Freebooter - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Southsea Freebooter - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Southsea Freebooter - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Southsea Freebooter - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Southsea Freebooter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Southsea Freebooter - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Southsea Freebooter - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Southsea Freebooter - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Southsea Freebooter - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Southsea Freebooter - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Southsea Freebooter - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Southsea Freebooter - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Southsea Freebooter - Between 0-15% Health - Increment Event Phase"),
+(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Southsea Freebooter - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Southsea Freebooter - Between 0-15% Health - Flee For Assist"),
+(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Southsea Freebooter - On Evade - Set Sheath Melee");
+
+-- Death's Head Cultist SAI
+SET @ENTRY := 7872;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Cultist - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Death's Head Cultist - On Aggro - Cast 9613"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Cultist - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Death's Head Cultist - Between 0-40 Range - Cast 9613 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Cultist - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Cultist - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Cultist - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Cultist - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Cultist - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Cultist - Between 30-100% Mana - Decrement Event Phase"),
+(@ENTRY,0,10,0,0,0,100,0,9000,12500,8000,13000,11,11433,0,0,0,0,0,2,0,0,0,0,0,0,0,"Death's Head Cultist - In Combat - Cast 11433");
+
+-- Cyclok the Mad SAI
+SET @ENTRY := 8202;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cyclok the Mad - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20829,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cyclok the Mad - On Aggro - Cast 20829"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cyclok the Mad - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,20829,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cyclok the Mad - Between 0-40 Range - Cast 20829 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cyclok the Mad - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cyclok the Mad - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cyclok the Mad - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cyclok the Mad - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cyclok the Mad - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Cyclok the Mad - Between 30-100% Mana - Decrement Event Phase"),
+(@ENTRY,0,10,0,0,0,100,0,7000,11000,15000,19000,11,11975,1,0,0,0,0,1,0,0,0,0,0,0,0,"Cyclok the Mad - In Combat - Cast 11975"),
+(@ENTRY,0,11,0,2,0,100,1,0,30,0,0,11,6742,1,0,0,0,0,1,0,0,0,0,0,0,0,"Cyclok the Mad - Between 0-30% Health - Cast 6742");
+
+-- Hukku's Imp SAI
+SET @ENTRY := 8658;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hukku's Imp - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,0,0,0,100,2,0,0,180000,180000,11,11770,1,0,0,0,0,1,0,0,0,0,0,0,0,"Hukku's Imp - In Combat - Cast 11770 (Normal Dungeon)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,11762,0,0,0,0,0,2,0,0,0,0,0,0,0,"Hukku's Imp - On Aggro - Cast 11762 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hukku's Imp - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,0,9,1,100,2,0,30,3100,4900,11,11762,0,0,0,0,0,2,0,0,0,0,0,0,0,"Hukku's Imp - Between 0-30 Range - Cast 11762 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,3,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hukku's Imp - Between 0-7% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hukku's Imp - Between 0-7% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hukku's Imp - Between 25-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hukku's Imp - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hukku's Imp - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,10,0,3,0,100,2,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Hukku's Imp - Between 15-100% Mana - Decrement Event Phase (Normal Dungeon)");
+
+-- Anvilrage Reservist SAI
+SET @ENTRY := 8901;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anvilrage Reservist - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anvilrage Reservist - Out Of Combat - Stop Auto Attack (Normal Dungeon)"),
+(@ENTRY,0,2,0,0,0,100,3,0,0,0,0,11,9128,1,0,0,0,0,1,0,0,0,0,0,0,0,"Anvilrage Reservist - In Combat - Cast 9128 (Normal Dungeon)"),
+(@ENTRY,0,3,4,4,0,100,3,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Anvilrage Reservist - On Aggro - Cast 6660 (Normal Dungeon)"),
+(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anvilrage Reservist - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,5,6,9,1,100,2,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Anvilrage Reservist - Between 5-30 Range - Cast 6660 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anvilrage Reservist - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,9,1,100,2,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anvilrage Reservist - Between 25-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anvilrage Reservist - Between 25-80 Range - Start Auto Attack (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,10,9,1,100,2,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anvilrage Reservist - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anvilrage Reservist - Between 0-5 Range - Set Sheath Melee (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anvilrage Reservist - Between 0-5 Range - Start Auto Attack (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,12,13,9,1,100,2,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anvilrage Reservist - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,13,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anvilrage Reservist - Between 5-15 Range - Stop Auto Attack (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,14,0,0,0,100,2,4000,6000,12000,15000,11,9080,1,0,0,0,0,2,0,0,0,0,0,0,0,"Anvilrage Reservist - In Combat - Cast 9080 (Normal Dungeon)"),
+(@ENTRY,0,15,0,0,0,100,2,8000,11000,6000,9000,11,11976,0,0,0,0,0,2,0,0,0,0,0,0,0,"Anvilrage Reservist - In Combat - Cast 11976 (Normal Dungeon)"),
+(@ENTRY,0,16,17,2,0,100,3,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anvilrage Reservist - Between 0-15% Health - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anvilrage Reservist - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Anvilrage Reservist - Between 0-15% Health - Flee For Assist (Normal Dungeon)"),
+(@ENTRY,0,19,0,7,0,100,3,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anvilrage Reservist - On Evade - Set Sheath Melee (Normal Dungeon)");
+
+-- Hate'rel SAI
+SET @ENTRY := 9034;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hate'rel - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,15232,0,0,0,0,0,2,0,0,0,0,0,0,0,"Hate'rel - On Aggro - Cast 15232 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hate'rel - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,3400,4800,11,15232,0,0,0,0,0,2,0,0,0,0,0,0,0,"Hate'rel - Between 0-40 Range - Cast 15232 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hate'rel - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hate'rel - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hate'rel - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hate'rel - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hate'rel - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Hate'rel - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"),
+(@ENTRY,0,10,0,9,0,100,2,0,5,5000,7000,11,15580,0,0,0,0,0,2,0,0,0,0,0,0,0,"Hate'rel - Between 0-5 Range - Cast 15580 (Normal Dungeon)"),
+(@ENTRY,0,11,0,0,0,100,2,9000,14000,40000,48000,11,15232,1,0,0,0,0,1,0,0,0,0,0,0,0,"Hate'rel - In Combat - Cast 15232 (Normal Dungeon)"),
+(@ENTRY,0,12,0,0,0,100,2,14000,17000,15000,20000,11,15232,1,0,0,0,0,5,0,0,0,0,0,0,0,"Hate'rel - In Combat - Cast 15232 (Normal Dungeon)"),
+(@ENTRY,0,13,0,21,0,100,3,0,0,0,0,34,4,2,0,0,0,0,1,0,0,0,0,0,0,0,"Hate'rel - On Just Reached Home - Set Instance Data Field To 4 To Data 2 (Normal Dungeon)");
+
+-- Vile'rel SAI
+SET @ENTRY := 9036;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile'rel - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,15587,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vile'rel - On Aggro - Cast 15587 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile'rel - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,30,3400,4800,11,15587,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vile'rel - Between 0-30 Range - Cast 15587 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile'rel - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile'rel - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,3,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile'rel - Between 25-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile'rel - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile'rel - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Vile'rel - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon)"),
+(@ENTRY,0,10,0,0,0,100,2,20000,30000,60000,120000,11,11974,1,0,0,0,0,1,0,0,0,0,0,0,0,"Vile'rel - In Combat - Cast 11974 (Normal Dungeon)"),
+(@ENTRY,0,11,0,0,0,100,2,15000,20000,15000,20000,11,15585,1,0,0,0,0,1,0,0,0,0,0,0,0,"Vile'rel - In Combat - Cast 15585 (Normal Dungeon)"),
+(@ENTRY,0,12,0,2,0,100,2,0,50,16000,20000,11,15586,1,0,0,0,0,1,0,0,0,0,0,0,0,"Vile'rel - Between 0-50% Health - Cast 15586 (Normal Dungeon)"),
+(@ENTRY,0,13,0,21,0,100,3,0,0,0,0,34,4,2,0,0,0,0,1,0,0,0,0,0,0,0,"Vile'rel - On Just Reached Home - Set Instance Data Field To 4 To Data 2 (Normal Dungeon)");
+
+-- Seeth'rel SAI
+SET @ENTRY := 9038;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Seeth'rel - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,0,1,0,100,2,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Seeth'rel - Out Of Combat - Cast 12544 (Normal Dungeon)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,12675,0,0,0,0,0,2,0,0,0,0,0,0,0,"Seeth'rel - On Aggro - Cast 12675 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Seeth'rel - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,0,9,1,100,2,0,40,3400,4800,11,12675,0,0,0,0,0,2,0,0,0,0,0,0,0,"Seeth'rel - Between 0-40 Range - Cast 12675 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Seeth'rel - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Seeth'rel - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Seeth'rel - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Seeth'rel - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Seeth'rel - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,10,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Seeth'rel - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"),
+(@ENTRY,0,11,0,0,0,100,2,9000,14000,19000,24000,11,15244,1,0,0,0,0,1,0,0,0,0,0,0,0,"Seeth'rel - In Combat - Cast 15244 (Normal Dungeon)"),
+(@ENTRY,0,12,0,0,0,100,2,12000,16000,20000,23000,11,12674,1,0,0,0,0,1,0,0,0,0,0,0,0,"Seeth'rel - In Combat - Cast 12674 (Normal Dungeon)"),
+(@ENTRY,0,13,0,0,0,100,2,3000,5000,64000,75000,11,15044,1,0,0,0,0,1,0,0,0,0,0,0,0,"Seeth'rel - In Combat - Cast 15044 (Normal Dungeon)"),
+(@ENTRY,0,14,0,21,0,100,3,0,0,0,0,34,4,2,0,0,0,0,1,0,0,0,0,0,0,0,"Seeth'rel - On Just Reached Home - Set Instance Data Field To 4 To Data 2 (Normal Dungeon)");
+
+-- Warder Stilgiss SAI
+SET @ENTRY := 9041;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warder Stilgiss - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,0,1,0,100,2,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Warder Stilgiss - Out Of Combat - Cast 12544 (Normal Dungeon)"),
+(@ENTRY,0,2,0,4,0,100,3,0,0,0,0,11,12675,0,0,0,0,0,2,0,0,0,0,0,0,0,"Warder Stilgiss - On Aggro - Cast 12675 (Normal Dungeon)"),
+(@ENTRY,0,3,0,4,0,100,3,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warder Stilgiss - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,0,9,1,100,2,0,40,2400,3800,11,12675,0,0,0,0,0,2,0,0,0,0,0,0,0,"Warder Stilgiss - Between 0-40 Range - Cast 12675 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warder Stilgiss - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,3,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warder Stilgiss - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warder Stilgiss - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warder Stilgiss - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warder Stilgiss - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,10,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Warder Stilgiss - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"),
+(@ENTRY,0,11,0,0,0,100,2,7000,9000,14000,18000,11,12674,1,0,0,0,0,1,0,0,0,0,0,0,0,"Warder Stilgiss - In Combat - Cast 12674 (Normal Dungeon)"),
+(@ENTRY,0,12,0,0,0,100,2,3000,4000,65000,70000,11,15044,1,0,0,0,0,1,0,0,0,0,0,0,0,"Warder Stilgiss - In Combat - Cast 15044 (Normal Dungeon)"),
+(@ENTRY,0,13,0,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warder Stilgiss - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"),
+(@ENTRY,0,14,0,2,0,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warder Stilgiss - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,15,0,2,0,100,3,0,15,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Warder Stilgiss - Between 0-15% Health - Flee For Assist (Normal Dungeon)"),
+(@ENTRY,0,16,0,7,0,100,3,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warder Stilgiss - On Evade - Set Event Phase 0 (Normal Dungeon)");
+
+-- Spirestone Ogre Magus SAI
+SET @ENTRY := 9201;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Ogre Magus - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,15979,0,0,0,0,0,2,0,0,0,0,0,0,0,"Spirestone Ogre Magus - On Aggro - Cast 15979 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Ogre Magus - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,15979,0,0,0,0,0,2,0,0,0,0,0,0,0,"Spirestone Ogre Magus - Between 0-40 Range - Cast 15979 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Ogre Magus - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Ogre Magus - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Ogre Magus - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Ogre Magus - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Ogre Magus - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Ogre Magus - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon)"),
+(@ENTRY,0,10,0,2,0,100,2,0,40,30000,35000,11,6742,1,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Ogre Magus - Between 0-40% Health - Cast 6742 (Normal Dungeon)"),
+(@ENTRY,0,11,0,0,0,100,2,6000,9000,20000,30000,11,13747,1,0,0,0,0,2,0,0,0,0,0,0,0,"Spirestone Ogre Magus - In Combat - Cast 13747 (Normal Dungeon)");
+
+-- Spirestone Lord Magus SAI
+SET @ENTRY := 9217;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Lord Magus - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,15230,0,0,0,0,0,2,0,0,0,0,0,0,0,"Spirestone Lord Magus - On Aggro - Cast 15230 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Lord Magus - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,15230,0,0,0,0,0,2,0,0,0,0,0,0,0,"Spirestone Lord Magus - Between 0-40 Range - Cast 15230 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Lord Magus - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Lord Magus - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Lord Magus - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Lord Magus - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Lord Magus - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Lord Magus - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon)"),
+(@ENTRY,0,10,0,0,0,100,2,7000,12000,14000,19000,11,13323,1,0,0,0,0,6,0,0,0,0,0,0,0,"Spirestone Lord Magus - In Combat - Cast 13323 (Normal Dungeon)"),
+(@ENTRY,0,11,0,2,0,100,2,0,50,25000,30000,11,8365,1,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Lord Magus - Between 0-50% Health - Cast 8365 (Normal Dungeon)"),
+(@ENTRY,0,12,0,2,0,100,2,0,30,30000,35000,11,6742,1,0,0,0,0,1,0,0,0,0,0,0,0,"Spirestone Lord Magus - Between 0-30% Health - Cast 6742 (Normal Dungeon)");
+
+-- Smolderthorn Headhunter SAI
+SET @ENTRY := 9241;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Headhunter - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Headhunter - Out Of Combat - Stop Auto Attack (Normal Dungeon)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,15795,0,0,0,0,0,2,0,0,0,0,0,0,0,"Smolderthorn Headhunter - On Aggro - Cast 15795 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Headhunter - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,5,9,1,100,2,5,30,2300,3900,11,15795,0,0,0,0,0,2,0,0,0,0,0,0,0,"Smolderthorn Headhunter - Between 5-30 Range - Cast 15795 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Headhunter - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,2,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Headhunter - Between 25-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Headhunter - Between 25-80 Range - Start Auto Attack (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,2,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Headhunter - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Headhunter - Between 0-5 Range - Set Sheath Melee (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Headhunter - Between 0-5 Range - Start Auto Attack (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,2,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Headhunter - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Headhunter - Between 5-15 Range - Stop Auto Attack (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,13,14,9,0,100,2,5,30,9000,13000,11,16001,1,0,0,0,0,2,0,0,0,0,0,0,0,"Smolderthorn Headhunter - Between 5-30 Range - Cast 16001 (Normal Dungeon)"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Headhunter - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,15,0,0,0,100,2,5000,10000,22000,26000,11,6016,0,0,0,0,0,2,0,0,0,0,0,0,0,"Smolderthorn Headhunter - In Combat - Cast 6016 (Normal Dungeon)"),
+(@ENTRY,0,16,17,2,0,100,3,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Headhunter - Between 0-15% Health - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Headhunter - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Smolderthorn Headhunter - Between 0-15% Health - Flee For Assist (Normal Dungeon)"),
+(@ENTRY,0,19,0,7,0,100,3,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Headhunter - On Evade - Set Sheath Melee (Normal Dungeon)");
+
+-- Scarshield Warlock SAI
+SET @ENTRY := 9257;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarshield Warlock - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,12471,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarshield Warlock - On Aggro - Cast 12471 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarshield Warlock - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,12471,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarshield Warlock - Between 0-40 Range - Cast 12471 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarshield Warlock - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarshield Warlock - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarshield Warlock - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarshield Warlock - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarshield Warlock - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,3,4,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarshield Warlock - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 4)"),
+(@ENTRY,0,10,0,0,0,100,2,10000,20000,60000,75000,11,15125,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarshield Warlock - In Combat - Cast 15125 (Normal Dungeon)"),
+(@ENTRY,0,11,12,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarshield Warlock - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"),
+(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarshield Warlock - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarshield Warlock - Between 0-15% Health - Flee For Assist (Normal Dungeon)");
+
+-- Firebrand Darkweaver SAI
+SET @ENTRY := 9261;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Darkweaver - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,12471,0,0,0,0,0,2,0,0,0,0,0,0,0,"Firebrand Darkweaver - On Aggro - Cast 12471 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Darkweaver - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,12471,0,0,0,0,0,2,0,0,0,0,0,0,0,"Firebrand Darkweaver - Between 0-40 Range - Cast 12471 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Darkweaver - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Darkweaver - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Darkweaver - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Darkweaver - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Darkweaver - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Darkweaver - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"),
+(@ENTRY,0,10,0,0,0,50,2,4000,6000,30000,45000,11,15128,32,0,0,0,0,5,0,0,0,0,0,0,0,"Firebrand Darkweaver - In Combat - Cast 15128 (Normal Dungeon)"),
+(@ENTRY,0,11,0,0,0,100,2,9000,14000,9000,14000,11,15090,1,0,0,0,0,5,0,0,0,0,0,0,0,"Firebrand Darkweaver - In Combat - Cast 15090 (Normal Dungeon)"),
+(@ENTRY,0,12,0,0,0,100,2,1000,4000,12000,15000,11,16071,32,0,0,0,0,5,0,0,0,0,0,0,0,"Firebrand Darkweaver - In Combat - Cast 16071 (Normal Dungeon)"),
+(@ENTRY,0,13,0,0,0,100,2,12000,15000,12000,15000,11,14887,1,0,0,0,0,2,0,0,0,0,0,0,0,"Firebrand Darkweaver - In Combat - Cast 14887 (Normal Dungeon)"),
+(@ENTRY,0,14,15,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Darkweaver - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"),
+(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Darkweaver - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Firebrand Darkweaver - Between 0-15% Health - Flee For Assist (Normal Dungeon)");
+
+-- Firebrand Invoker SAI
+SET @ENTRY := 9262;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Invoker - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,15242,0,0,0,0,0,2,0,0,0,0,0,0,0,"Firebrand Invoker - On Aggro - Cast 15242 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Invoker - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,15242,0,0,0,0,0,2,0,0,0,0,0,0,0,"Firebrand Invoker - Between 0-40 Range - Cast 15242 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Invoker - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Invoker - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Invoker - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Invoker - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Invoker - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Invoker - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"),
+(@ENTRY,0,10,0,0,0,50,2,4000,6000,30000,45000,11,15128,32,0,0,0,0,5,0,0,0,0,0,0,0,"Firebrand Invoker - In Combat - Cast 15128 (Normal Dungeon)"),
+(@ENTRY,0,11,0,1,0,100,2,8000,10000,11000,14000,11,12470,1,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Invoker - Out Of Combat - Cast 12470 (Normal Dungeon)"),
+(@ENTRY,0,12,0,0,0,100,2,12000,16000,14000,18000,11,12468,0,0,0,0,0,5,0,0,0,0,0,0,0,"Firebrand Invoker - In Combat - Cast 12468 (Normal Dungeon)"),
+(@ENTRY,0,13,14,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Invoker - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"),
+(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firebrand Invoker - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Firebrand Invoker - Between 0-15% Health - Flee For Assist (Normal Dungeon)");
+
+-- Smolderthorn Axe Thrower SAI
+SET @ENTRY := 9267;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - Out Of Combat - Stop Auto Attack (Normal Dungeon)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,15795,0,0,0,0,0,2,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - On Aggro - Cast 15795 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,5,9,1,100,2,5,30,2300,3900,11,15795,0,0,0,0,0,2,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - Between 5-30 Range - Cast 15795 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,2,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - Between 25-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - Between 25-80 Range - Start Auto Attack (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,2,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - Between 0-5 Range - Set Sheath Melee (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - Between 0-5 Range - Start Auto Attack (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,2,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - Between 5-15 Range - Stop Auto Attack (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,13,0,0,0,100,2,6000,9000,9000,12000,11,3391,1,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - In Combat - Cast 3391 (Normal Dungeon)"),
+(@ENTRY,0,14,0,0,0,100,2,9000,14000,11000,15000,11,11428,1,0,0,0,0,2,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - In Combat - Cast 11428 (Normal Dungeon)"),
+(@ENTRY,0,15,16,2,0,100,3,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - Between 0-15% Health - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - Between 0-15% Health - Flee For Assist (Normal Dungeon)"),
+(@ENTRY,0,18,0,7,0,100,3,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Axe Thrower - On Evade - Set Sheath Melee (Normal Dungeon)");
+
+-- Smolderthorn Seer SAI
+SET @ENTRY := 9269;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Seer - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,0,1,0,100,2,1000,1000,600000,600000,11,13585,1,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Seer - Out Of Combat - Cast 13585 (Normal Dungeon)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,15801,0,0,0,0,0,2,0,0,0,0,0,0,0,"Smolderthorn Seer - On Aggro - Cast 15801 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Seer - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,0,9,1,100,2,0,40,2400,3800,11,15801,0,0,0,0,0,2,0,0,0,0,0,0,0,"Smolderthorn Seer - Between 0-40 Range - Cast 15801 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Seer - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Seer - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Seer - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Seer - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Seer - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,10,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Seer - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"),
+(@ENTRY,0,11,0,14,0,100,2,3000,40,15000,25000,11,12492,1,0,0,0,0,7,0,0,0,0,0,0,0,"Smolderthorn Seer - On Friendly Unit At 3000 Health Within 40 Range - Cast 12492 (Normal Dungeon)"),
+(@ENTRY,0,12,0,0,0,100,2,3000,6000,12000,15000,11,15802,32,0,0,0,0,5,0,0,0,0,0,0,0,"Smolderthorn Seer - In Combat - Cast 15802 (Normal Dungeon)"),
+(@ENTRY,0,13,14,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Seer - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"),
+(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Smolderthorn Seer - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Smolderthorn Seer - Between 0-15% Health - Flee For Assist (Normal Dungeon)");
+
+-- Dark Keeper Vorfalk SAI
+SET @ENTRY := 9437;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Vorfalk - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,15234,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Keeper Vorfalk - On Aggro - Cast 15234 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Vorfalk - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,15234,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Keeper Vorfalk - Between 0-40 Range - Cast 15234 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Vorfalk - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Vorfalk - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Vorfalk - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Vorfalk - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Vorfalk - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Vorfalk - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon)"),
+(@ENTRY,0,10,0,0,0,100,2,6000,9000,7000,10000,11,15306,1,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Keeper Vorfalk - In Combat - Cast 15306 (Normal Dungeon)");
+
+-- Dark Keeper Bethek SAI
+SET @ENTRY := 9438;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Bethek - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,15228,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Keeper Bethek - On Aggro - Cast 15228 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Bethek - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,15228,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Keeper Bethek - Between 0-40 Range - Cast 15228 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Bethek - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Bethek - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Bethek - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Bethek - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Bethek - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Bethek - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon)"),
+(@ENTRY,0,10,0,0,0,100,2,3000,5000,15000,20000,11,12738,1,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Keeper Bethek - In Combat - Cast 12738 (Normal Dungeon)");
+
+-- Dark Keeper Uggel SAI
+SET @ENTRY := 9439;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Uggel - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,15232,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Keeper Uggel - On Aggro - Cast 15232 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Uggel - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,15232,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Keeper Uggel - Between 0-40 Range - Cast 15232 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Uggel - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Uggel - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Uggel - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Uggel - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Uggel - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Keeper Uggel - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon)"),
+(@ENTRY,0,10,0,0,0,100,2,5000,7000,12000,18000,11,14875,33,0,0,0,0,5,0,0,0,0,0,0,0,"Dark Keeper Uggel - In Combat - Cast 14875 (Normal Dungeon)");
+
+-- Lordaeron Sentry SAI
+SET @ENTRY := 17815;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lordaeron Sentry - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lordaeron Sentry - Out Of Combat - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"Lordaeron Sentry - On Aggro - Cast 15620 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lordaeron Sentry - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,5,9,1,100,2,5,30,2300,5000,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"Lordaeron Sentry - Between 5-30 Range - Cast 15620 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lordaeron Sentry - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,7,4,0,100,5,0,0,0,0,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Lordaeron Sentry - On Aggro - Cast 16100 (Heroic Dungeon)"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lordaeron Sentry - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,8,9,9,1,100,4,5,30,2300,5000,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Lordaeron Sentry - Between 5-30 Range - Cast 16100 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lordaeron Sentry - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,10,11,9,1,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lordaeron Sentry - Between 25-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lordaeron Sentry - Between 25-80 Range - Start Auto Attack (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,13,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lordaeron Sentry - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,14,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lordaeron Sentry - Between 0-5 Range - Set Sheath Melee (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lordaeron Sentry - Between 0-5 Range - Start Auto Attack (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,15,16,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lordaeron Sentry - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,16,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lordaeron Sentry - Between 5-15 Range - Stop Auto Attack (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,17,18,2,0,100,7,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lordaeron Sentry - Between 0-15% Health - Increment Event Phase (Dungeon Only)"),
+(@ENTRY,0,18,19,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lordaeron Sentry - Between 0-15% Health - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,19,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Lordaeron Sentry - Between 0-15% Health - Flee For Assist (Dungeon Only)"),
+(@ENTRY,0,20,0,7,0,100,7,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lordaeron Sentry - On Evade - Set Sheath Melee (Dungeon Only)");
+
+-- Durnholde Rifleman SAI
+SET @ENTRY := 17820;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - Out Of Combat - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Durnholde Rifleman - On Aggro - Cast 16100 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,5,9,1,100,2,5,30,2300,5000,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 5-30 Range - Cast 16100 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,7,4,0,100,5,0,0,0,0,11,22907,0,0,0,0,0,2,0,0,0,0,0,0,0,"Durnholde Rifleman - On Aggro - Cast 22907 (Heroic Dungeon)"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,8,9,9,1,100,4,5,30,2300,5000,11,22907,0,0,0,0,0,2,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 5-30 Range - Cast 22907 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,10,11,9,1,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 25-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 25-80 Range - Start Auto Attack (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,13,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,14,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 0-5 Range - Set Sheath Melee (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 0-5 Range - Start Auto Attack (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,15,16,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,16,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 5-15 Range - Stop Auto Attack (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,17,18,9,1,100,2,5,30,9000,15000,11,31942,1,0,0,0,0,2,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 5-30 Range - Cast 31942 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,18,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,19,20,9,1,100,4,5,30,9000,15000,11,38383,1,0,0,0,0,2,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 5-30 Range - Cast 38383 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,20,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,21,22,2,0,100,7,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 0-15% Health - Increment Event Phase (Dungeon Only)"),
+(@ENTRY,0,22,23,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 0-15% Health - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,23,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Durnholde Rifleman - Between 0-15% Health - Flee For Assist (Dungeon Only)"),
+(@ENTRY,0,24,0,7,0,100,7,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Rifleman - On Evade - Set Sheath Melee (Dungeon Only)");
+
+-- Wastewalker Slave SAI
+SET @ENTRY := 17963;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewalker Slave - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,1,0,100,6,1000,1000,900000,900000,11,34880,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewalker Slave - Out Of Combat - Cast 34880 (Dungeon Only)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,15497,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wastewalker Slave - On Aggro - Cast 15497 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewalker Slave - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,0,9,2,100,2,0,40,2400,3800,11,15497,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wastewalker Slave - Between 0-40 Range - Cast 15497 (Normal Dungeon) (Phase 2)"),
+(@ENTRY,0,5,6,4,0,100,5,0,0,0,0,11,12675,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wastewalker Slave - On Aggro - Cast 12675 (Heroic Dungeon)"),
+(@ENTRY,0,6,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewalker Slave - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,7,0,9,2,100,4,0,40,2400,3800,11,12675,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wastewalker Slave - Between 0-40 Range - Cast 12675 (Heroic Dungeon) (Phase 2)"),
+(@ENTRY,0,8,9,3,2,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewalker Slave - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,9,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewalker Slave - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,10,0,9,2,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewalker Slave - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,11,0,9,2,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewalker Slave - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,12,0,9,2,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewalker Slave - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,13,0,3,4,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewalker Slave - Between 30-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 4)"),
+(@ENTRY,0,14,0,0,0,100,2,5000,8000,15000,20000,11,32192,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewalker Slave - In Combat - Cast 32192 (Normal Dungeon)"),
+(@ENTRY,0,15,0,0,0,100,4,5000,8000,15000,20000,11,15531,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewalker Slave - In Combat - Cast 15531 (Heroic Dungeon)"),
+(@ENTRY,0,16,17,2,0,100,7,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewalker Slave - Between 0-15% Health - Increment Event Phase (Dungeon Only)"),
+(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewalker Slave - Between 0-15% Health - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Wastewalker Slave - Between 0-15% Health - Flee For Assist (Dungeon Only)");
+
+
+
+-- Shienor Sorcerer SAI
+SET @ENTRY := 18450;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shienor Sorcerer - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,0,0,100,1,0,0,0,0,11,32924,1,0,0,0,0,1,0,0,0,0,0,0,0,"Shienor Sorcerer - In Combat - Cast 32924"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,26098,0,0,0,0,0,2,0,0,0,0,0,0,0,"Shienor Sorcerer - On Aggro - Cast 26098"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shienor Sorcerer - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,26098,0,0,0,0,0,2,0,0,0,0,0,0,0,"Shienor Sorcerer - Between 0-40 Range - Cast 26098 (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shienor Sorcerer - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shienor Sorcerer - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shienor Sorcerer - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shienor Sorcerer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shienor Sorcerer - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Shienor Sorcerer - Between 30-100% Mana - Decrement Event Phase (Phase 4)"),
+(@ENTRY,0,11,0,0,0,100,0,6000,10000,12000,16000,11,32907,1,0,0,0,0,2,0,0,0,0,0,0,0,"Shienor Sorcerer - In Combat - Cast 32907"),
+(@ENTRY,0,12,0,0,0,100,0,10000,14000,18000,25000,11,6728,1,0,0,0,0,6,0,0,0,0,0,0,0,"Shienor Sorcerer - In Combat - Cast 6728"),
+(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shienor Sorcerer - Between 0-15% Health - Set Event Phase 3"),
+(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shienor Sorcerer - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Shienor Sorcerer - Between 0-15% Health - Flee For Assist");
+
+-- Skithian Dreadhawk SAI
+SET @ENTRY := 18452;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skithian Dreadhawk - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skithian Dreadhawk - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skithian Dreadhawk - On Aggro - Cast 10277"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skithian Dreadhawk - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skithian Dreadhawk - Between 5-30 Range - Cast 10277 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skithian Dreadhawk - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skithian Dreadhawk - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skithian Dreadhawk - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skithian Dreadhawk - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skithian Dreadhawk - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skithian Dreadhawk - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skithian Dreadhawk - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skithian Dreadhawk - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,0,0,100,0,5000,8000,14000,18000,11,32908,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skithian Dreadhawk - In Combat - Cast 32908"),
+(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skithian Dreadhawk - Between 0-15% Health - Increment Event Phase"),
+(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skithian Dreadhawk - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Skithian Dreadhawk - Between 0-15% Health - Flee For Assist"),
+(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skithian Dreadhawk - On Evade - Set Sheath Melee");
+
+-- Infinite Vanquisher SAI
+SET @ENTRY := 18995;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infinite Vanquisher - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,1,0,100,7,1000,1000,0,0,11,31326,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infinite Vanquisher - Out Of Combat - Cast 31326 (Dungeon Only)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,12739,0,0,0,0,0,2,0,0,0,0,0,0,0,"Infinite Vanquisher - On Aggro - Cast 12739 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infinite Vanquisher - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,0,9,1,100,2,0,40,3500,4700,11,12739,0,0,0,0,0,2,0,0,0,0,0,0,0,"Infinite Vanquisher - Between 0-40 Range - Cast 12739 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,6,4,0,100,5,0,0,0,0,11,15472,0,0,0,0,0,2,0,0,0,0,0,0,0,"Infinite Vanquisher - On Aggro - Cast 15472 (Heroic Dungeon)"),
+(@ENTRY,0,6,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infinite Vanquisher - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,7,0,9,1,100,4,0,40,3500,4700,11,15472,0,0,0,0,0,2,0,0,0,0,0,0,0,"Infinite Vanquisher - Between 0-40 Range - Cast 15472 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,8,9,3,1,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infinite Vanquisher - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infinite Vanquisher - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infinite Vanquisher - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infinite Vanquisher - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infinite Vanquisher - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,0,0,0,100,2,7500,9000,2400,5500,11,15241,0,0,0,0,0,2,0,0,0,0,0,0,0,"Infinite Vanquisher - In Combat - Cast 15241 (Normal Dungeon)"),
+(@ENTRY,0,14,0,0,0,100,4,7500,9000,2400,5500,11,36807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Infinite Vanquisher - In Combat - Cast 36807 (Heroic Dungeon)"),
+(@ENTRY,0,15,0,0,0,100,2,5900,6000,5900,6000,11,13341,1,0,0,0,0,2,0,0,0,0,0,0,0,"Infinite Vanquisher - In Combat - Cast 13341 (Normal Dungeon)"),
+(@ENTRY,0,16,0,0,0,100,4,5900,6000,5900,6000,11,38526,1,0,0,0,0,2,0,0,0,0,0,0,0,"Infinite Vanquisher - In Combat - Cast 38526 (Heroic Dungeon)"),
+(@ENTRY,0,17,0,3,0,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Infinite Vanquisher - Between 30-100% Mana - Decrement Event Phase (Dungeon Only)"),
+(@ENTRY,0,18,0,7,0,100,7,0,0,0,0,11,31326,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infinite Vanquisher - On Evade - Cast 31326 (Dungeon Only)");
+
+-- Cobalt Serpent SAI
+SET @ENTRY := 19428;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cobalt Serpent - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,17503,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cobalt Serpent - On Aggro - Cast 17503 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cobalt Serpent - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,3400,4800,11,17503,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cobalt Serpent - Between 0-40 Range - Cast 17503 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,38238,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cobalt Serpent - On Aggro - Cast 38238 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cobalt Serpent - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,3400,4800,11,38238,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cobalt Serpent - Between 0-40 Range - Cast 38238 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cobalt Serpent - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cobalt Serpent - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cobalt Serpent - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cobalt Serpent - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cobalt Serpent - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,3,0,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Cobalt Serpent - Between 30-100% Mana - Decrement Event Phase (Dungeon Only)"),
+(@ENTRY,0,13,0,0,0,100,2,4000,5000,8000,11000,11,38193,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cobalt Serpent - In Combat - Cast 38193 (Normal Dungeon)"),
+(@ENTRY,0,14,0,0,0,100,4,4000,5000,8000,11000,11,38133,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cobalt Serpent - In Combat - Cast 38133 (Heroic Dungeon)"),
+(@ENTRY,0,15,0,0,0,100,6,6000,7000,7000,13000,11,38110,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cobalt Serpent - In Combat - Cast 38110 (Dungeon Only)");
+
+-- Ango'rosh Warlock SAI
+SET @ENTRY := 19732;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Warlock - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,61,0,100,0,0,0,0,0,11,13787,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Warlock - Out Of Combat - Cast 13787"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,31,1,2,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Warlock - Out Of Combat - Random Phase Range (1-2)"),
+(@ENTRY,0,3,4,1,1,100,1,0,1000,0,0,11,8722,3,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Warlock - Out Of Combat - Cast 8722 (Phase 1)"),
+(@ENTRY,0,4,0,61,1,100,0,0,0,0,0,23,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Warlock - Out Of Combat - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,5,6,1,2,100,1,0,1000,0,0,11,11939,3,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Warlock - Out Of Combat - Cast 11939 (Phase 2)"),
+(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Warlock - Out Of Combat - Increment Event Phase (Phase 2)"),
+(@ENTRY,0,7,0,4,4,100,1,0,0,0,0,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ango'rosh Warlock - On Aggro - Cast 20825 (Phase 3)"),
+(@ENTRY,0,8,0,9,4,100,0,0,40,2400,3800,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ango'rosh Warlock - Between 0-40 Range - Cast 20825 (Phase 3)"),
+(@ENTRY,0,9,10,3,4,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Warlock - Between 0-15% Mana - Allow Combat Movement (Phase 3)"),
+(@ENTRY,0,10,0,61,4,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Warlock - Between 0-15% Mana - Increment Event Phase (Phase 3)"),
+(@ENTRY,0,11,0,9,4,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Warlock - Between 35-80 Range - Allow Combat Movement (Phase 3)"),
+(@ENTRY,0,12,0,9,4,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Warlock - Between 5-15 Range - Disallow Combat Movement (Phase 3)"),
+(@ENTRY,0,13,0,9,4,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Warlock - Between 0-5 Range - Allow Combat Movement (Phase 3)"),
+(@ENTRY,0,14,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Warlock - Between 30-100% Mana - Decrement Event Phase");
+
+-- Dark Conclave Shadowmancer SAI
+SET @ENTRY := 19826;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,11,0,100,1,0,0,0,0,11,33900,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Conclave Shadowmancer - On Respawn - Cast 33900"),
+(@ENTRY,0,1,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Conclave Shadowmancer - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Conclave Shadowmancer - On Aggro - Cast 9613"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Conclave Shadowmancer - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Conclave Shadowmancer - Between 0-40 Range - Cast 9613 (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Conclave Shadowmancer - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Conclave Shadowmancer - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Conclave Shadowmancer - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Conclave Shadowmancer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Conclave Shadowmancer - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Conclave Shadowmancer - Between 30-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,11,0,0,0,100,0,9000,16000,12000,20000,11,27641,1,0,0,0,0,6,0,0,0,0,0,0,0,"Dark Conclave Shadowmancer - In Combat - Cast 27641"),
+(@ENTRY,0,12,0,2,0,100,1,0,40,0,0,11,16588,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Conclave Shadowmancer - Between 0-40% Health - Cast 16588"),
+(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Conclave Shadowmancer - Between 0-15% Health - Set Event Phase 3"),
+(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Conclave Shadowmancer - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dark Conclave Shadowmancer - Between 0-15% Health - Flee For Assist");
+
+-- Ethereal Arcanist SAI
+SET @ENTRY := 21405;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ethereal Arcanist - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,32936,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ethereal Arcanist - On Aggro - Cast 32936"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,11,33833,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ethereal Arcanist - On Aggro - Cast 33833"),
+(@ENTRY,0,3,0,4,0,100,1,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ethereal Arcanist - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,33833,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ethereal Arcanist - Between 0-40 Range - Cast 33833 (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ethereal Arcanist - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ethereal Arcanist - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ethereal Arcanist - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ethereal Arcanist - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ethereal Arcanist - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ethereal Arcanist - Between 30-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,11,0,0,0,100,0,3000,6000,9000,15000,11,39039,1,0,0,0,0,2,0,0,0,0,0,0,0,"Ethereal Arcanist - In Combat - Cast 39039"),
+(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ethereal Arcanist - Between 0-15% Health - Set Event Phase 3"),
+(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ethereal Arcanist - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Ethereal Arcanist - Between 0-15% Health - Flee For Assist");
+
+-- Dragonmaw Subjugator SAI
+SET @ENTRY := 21718;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Subjugator - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Subjugator - On Aggro - Cast 9613"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Subjugator - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Subjugator - Between 0-40 Range - Cast 9613 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Subjugator - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Subjugator - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Subjugator - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Subjugator - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Subjugator - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Subjugator - Between 30-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,11,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Subjugator - Between 0-15% Health - Set Event Phase 3"),
+(@ENTRY,0,11,12,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Subjugator - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dragonmaw Subjugator - Between 0-15% Health - Flee For Assist"),
+(@ENTRY,0,13,0,6,0,100,1,0,0,0,0,33,22197,0,0,0,0,0,7,0,0,0,0,0,0,0,"Dragonmaw Subjugator - On Death - Quest Credit");
+
+-- Deathshadow Spellbinder SAI
+SET @ENTRY := 22342;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,11,0,100,1,0,0,0,0,11,39102,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Spellbinder - On Respawn - Cast 39102"),
+(@ENTRY,0,1,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Spellbinder - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,33447,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deathshadow Spellbinder - On Aggro - Cast 33447"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Spellbinder - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,33447,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deathshadow Spellbinder - Between 0-40 Range - Cast 33447 (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Spellbinder - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Spellbinder - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Spellbinder - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Spellbinder - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Spellbinder - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Spellbinder - Between 30-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,11,0,0,0,100,0,9000,14000,14000,20000,11,22744,0,0,0,0,0,5,0,0,0,0,0,0,0,"Deathshadow Spellbinder - In Combat - Cast 22744"),
+(@ENTRY,0,12,0,0,0,100,0,6000,9000,7000,14000,11,31999,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deathshadow Spellbinder - In Combat - Cast 31999"),
+(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Spellbinder - Between 0-15% Health - Set Event Phase 3"),
+(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Spellbinder - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Deathshadow Spellbinder - Between 0-15% Health - Flee For Assist");
+
+-- Deathshadow Warlock SAI
+SET @ENTRY := 22363;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,11,0,100,1,0,0,0,0,11,39102,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Warlock - On Respawn - Cast 39102"),
+(@ENTRY,0,1,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Warlock - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,2,0,1,0,100,0,1000,1000,1800000,1800000,11,13787,1,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Warlock - Out Of Combat - Cast 13787"),
+(@ENTRY,0,3,0,1,0,100,1,3000,3000,0,0,11,38980,1,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Warlock - Out Of Combat - Cast 38980"),
+(@ENTRY,0,4,5,4,0,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deathshadow Warlock - On Aggro - Cast 9613"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Warlock - On Aggro - Increment Event Phase"),
+(@ENTRY,0,6,0,9,1,100,0,0,40,2400,3800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deathshadow Warlock - Between 0-40 Range - Cast 9613 (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Warlock - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Warlock - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Warlock - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Warlock - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Warlock - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Warlock - Between 30-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,13,0,0,0,100,0,4000,8000,18000,24000,11,11962,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deathshadow Warlock - In Combat - Cast 11962"),
+(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Warlock - Between 0-15% Health - Set Event Phase 3"),
+(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deathshadow Warlock - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Deathshadow Warlock - Between 0-15% Health - Flee For Assist");
+
+-- Magnataur Patriarch SAI
+SET @ENTRY := 26295;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magnataur Patriarch - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magnataur Patriarch - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,38556,0,0,0,0,0,2,0,0,0,0,0,0,0,"Magnataur Patriarch - On Aggro - Cast 38556"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magnataur Patriarch - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,0,100,0,0,35,2300,3900,11,38556,0,0,0,0,0,2,0,0,0,0,0,0,0,"Magnataur Patriarch - Between 0-35 Range - Cast 38556"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magnataur Patriarch - Between 0-35 Range - Set Sheath Ranged"),
+(@ENTRY,0,6,7,9,0,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magnataur Patriarch - Between 25-80 Range - Allow Combat Movement"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magnataur Patriarch - Between 25-80 Range - Start Auto Attack"),
+(@ENTRY,0,8,9,9,0,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magnataur Patriarch - Between 0-5 Range - Allow Combat Movement"),
+(@ENTRY,0,9,10,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magnataur Patriarch - Between 0-5 Range - Set Sheath Melee"),
+(@ENTRY,0,10,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magnataur Patriarch - Between 0-5 Range - Start Auto Attack"),
+(@ENTRY,0,11,12,9,0,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magnataur Patriarch - Between 5-15 Range - Disallow Combat Movement"),
+(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magnataur Patriarch - Between 5-15 Range - Stop Auto Attack"),
+(@ENTRY,0,13,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magnataur Patriarch - On Evade - Set Sheath Melee");
+
+-- Snowfall Glade Wolvar SAI
+SET @ENTRY := 26198;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Wolvar - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Wolvar - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,43413,0,0,0,0,0,2,0,0,0,0,0,0,0,"Snowfall Glade Wolvar - On Aggro - Cast 43413"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Wolvar - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,43413,0,0,0,0,0,2,0,0,0,0,0,0,0,"Snowfall Glade Wolvar - Between 5-30 Range - Cast 43413 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Wolvar - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Wolvar - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Wolvar - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Wolvar - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Wolvar - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Wolvar - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Wolvar - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Wolvar - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,9,0,100,0,0,20,9000,14000,11,6533,1,0,0,0,0,2,0,0,0,0,0,0,0,"Snowfall Glade Wolvar - Between 0-20 Range - Cast 6533"),
+(@ENTRY,0,14,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Wolvar - On Evade - Set Sheath Melee");
+
+-- Snowfall Glade Shaman SAI
+SET @ENTRY := 26201;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Shaman - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,1,0,100,0,1000,1000,600000,600000,11,12550,1,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Shaman - Out Of Combat - Cast 12550"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,12548,0,0,0,0,0,2,0,0,0,0,0,0,0,"Snowfall Glade Shaman - On Aggro - Cast 12548"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Shaman - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,0,9,1,100,0,0,20,3400,4800,11,12548,0,0,0,0,0,2,0,0,0,0,0,0,0,"Snowfall Glade Shaman - Between 0-20 Range - Cast 12548 (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Shaman - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Shaman - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,15,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Shaman - Between 15-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,5,10,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Shaman - Between 5-10 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Shaman - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,10,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Snowfall Glade Shaman - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,11,0,14,0,100,0,4000,40,23000,30000,11,11986,1,0,0,0,0,7,0,0,0,0,0,0,0,"Snowfall Glade Shaman - On Friendly Unit At 4000 Health Within 40 Range - Cast 11986");
+
+-- Nexus Guardian SAI
+SET @ENTRY := 26276;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nexus Guardian - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,47425,0,0,0,0,0,2,0,0,0,0,0,0,0,"Nexus Guardian - On Aggro - Cast 47425"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nexus Guardian - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,35,3400,4800,11,47425,0,0,0,0,0,2,0,0,0,0,0,0,0,"Nexus Guardian - Between 0-35 Range - Cast 47425 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nexus Guardian - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nexus Guardian - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,30,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nexus Guardian - Between 30-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nexus Guardian - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nexus Guardian - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Nexus Guardian - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,9,0,100,0,0,5,9000,13000,11,51857,1,0,0,0,0,2,0,0,0,0,0,0,0,"Nexus Guardian - Between 0-5 Range - Cast 51857");
+
+-- Anub'ar Cultist SAI
+SET @ENTRY := 26319;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Cultist - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,51605,1,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Cultist - On Aggro - Cast 51605"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Anub'ar Cultist - On Aggro - Cast 9613"),
+(@ENTRY,0,3,0,4,0,100,1,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Cultist - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,0,9,1,100,0,0,40,3400,4800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Anub'ar Cultist - Between 0-40 Range - Cast 9613 (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Cultist - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Cultist - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Cultist - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Cultist - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Cultist - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,10,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Cultist - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,11,0,16,0,100,0,47257,25,12000,16000,11,47257,1,0,0,0,0,7,0,0,0,0,0,0,0,"Anub'ar Cultist - On Friendly Unit Missing Buff _spellNameFirstParam_ - Cast 47257");
+
+-- Redfang Hunter SAI
+SET @ENTRY := 26356;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Redfang Hunter - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Redfang Hunter - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Redfang Hunter - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Redfang Hunter - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Redfang Hunter - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Redfang Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Redfang Hunter - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Redfang Hunter - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Redfang Hunter - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Redfang Hunter - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Redfang Hunter - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Redfang Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Redfang Hunter - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,9,0,100,0,0,20,11000,16000,11,12024,1,0,0,0,0,2,0,0,0,0,0,0,0,"Redfang Hunter - Between 0-20 Range - Cast 12024"),
+(@ENTRY,0,14,0,9,0,100,0,0,5,4000,7000,11,30639,0,0,0,0,0,2,0,0,0,0,0,0,0,"Redfang Hunter - Between 0-5 Range - Cast 30639"),
+(@ENTRY,0,15,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Redfang Hunter - On Evade - Set Sheath Melee"),
+(@ENTRY,0,16,0,6,0,100,1,0,0,0,0,11,47034,39,0,0,0,0,2,0,0,0,0,0,0,0,"Redfang Hunter - On Death - Cast 47034");
+
+-- Solstice Hunter SAI
+SET @ENTRY := 26389;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Solstice Hunter - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Solstice Hunter - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,5,30,9000,13000,11,14443,1,0,0,0,0,2,0,0,0,0,0,0,0,"Solstice Hunter - Between 5-30 Range - Cast 14443 (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,8,9,0,1,100,0,7000,9000,19000,24000,11,52604,1,0,0,0,0,5,0,0,0,0,0,0,0,"Solstice Hunter - In Combat - Cast 52604 (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - In Combat - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,10,11,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,12,13,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,13,14,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,15,16,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,16,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,17,0,0,0,100,0,11000,15000,18000,24000,11,52606,1,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - In Combat - Cast 52606"),
+(@ENTRY,0,18,19,2,0,100,1,0,50,0,0,11,49561,1,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - Between 0-50% Health - Cast 49561"),
+(@ENTRY,0,19,20,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - Between 0-50% Health - Allow Combat Movement"),
+(@ENTRY,0,20,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - Between 0-50% Health - Increment Event Phase"),
+(@ENTRY,0,21,22,0,0,100,0,12000,15000,18000,21000,11,31975,1,0,0,0,0,5,0,0,0,0,0,0,0,"Solstice Hunter - In Combat - Cast 31975"),
+(@ENTRY,0,22,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - In Combat - Set Sheath Ranged"),
+(@ENTRY,0,23,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Solstice Hunter - On Evade - Set Sheath Melee");
+
+-- Runic Lightning Gunner SAI
+SET @ENTRY := 26414;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Runic Lightning Gunner - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Runic Lightning Gunner - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,46982,0,0,0,0,0,2,0,0,0,0,0,0,0,"Runic Lightning Gunner - On Aggro - Cast 46982"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Runic Lightning Gunner - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,4000,6000,11,46982,0,0,0,0,0,2,0,0,0,0,0,0,0,"Runic Lightning Gunner - Between 5-30 Range - Cast 46982 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Runic Lightning Gunner - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Runic Lightning Gunner - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Runic Lightning Gunner - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Runic Lightning Gunner - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Runic Lightning Gunner - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Runic Lightning Gunner - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Runic Lightning Gunner - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Runic Lightning Gunner - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Runic Lightning Gunner - On Evade - Set Sheath Melee"),
+(@ENTRY,0,14,0,6,0,100,1,0,0,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Runic Lightning Gunner - On Death - Set Event Phase 3"),
+(@ENTRY,0,15,16,8,0,100,1,48046,0,0,0,11,48047,0,0,0,0,0,7,0,0,0,0,0,0,0,"Runic Lightning Gunner - On Spellhit By 48046 - Quest Credit"),
+(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Runic Lightning Gunner - On Spellhit By 48046 - Forced Despawn");
+
+-- Frostpaw Shaman SAI
+SET @ENTRY := 26428;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Shaman - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,12058,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frostpaw Shaman - On Aggro - Cast 12058"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Shaman - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,0,9,2,100,0,0,30,6000,7000,11,12058,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frostpaw Shaman - Between 0-30 Range - Cast 12058 (Phase 1)"),
+(@ENTRY,0,5,6,3,2,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Shaman - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Shaman - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,7,0,9,2,100,1,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Shaman - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Shaman - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Shaman - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,10,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Shaman - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,11,0,14,0,100,0,2000,40,15000,20000,11,25420,1,0,0,0,0,7,0,0,0,0,0,0,0,"Frostpaw Shaman - On Friendly Unit At 2000 Health Within 40 Range - Cast 25420"),
+(@ENTRY,0,12,0,6,0,100,1,0,0,0,0,11,47033,39,0,0,0,0,2,0,0,0,0,0,0,0,"Frostpaw Shaman - On Death - Cast 47033");
+
+-- Frostpaw Trapper SAI
+SET @ENTRY := 26434;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,2,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Trapper - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Trapper - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,0,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frostpaw Trapper - On Aggro - Cast 6660"),
+(@ENTRY,0,3,4,9,0,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frostpaw Trapper - Between 5-30 Range - Cast 6660"),
+(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Trapper - Between 5-30 Range - Set Sheath Ranged"),
+(@ENTRY,0,5,6,0,0,100,0,9000,14000,9000,14000,11,30614,1,0,0,0,0,5,0,0,0,0,0,0,0,"Frostpaw Trapper - In Combat - Cast 30614"),
+(@ENTRY,0,6,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Trapper - In Combat - Set Sheath Ranged"),
+(@ENTRY,0,7,8,9,0,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Trapper - Between 25-80 Range - Allow Combat Movement"),
+(@ENTRY,0,8,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Trapper - Between 25-80 Range - Start Auto Attack"),
+(@ENTRY,0,9,10,9,0,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Trapper - Between 0-5 Range - Allow Combat Movement"),
+(@ENTRY,0,10,11,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Trapper - Between 0-5 Range - Set Sheath Melee"),
+(@ENTRY,0,11,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Trapper - Between 0-5 Range - Start Auto Attack"),
+(@ENTRY,0,12,13,9,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Trapper - Between 5-15 Range - Disallow Combat Movement"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Trapper - Between 5-15 Range - Stop Auto Attack"),
+(@ENTRY,0,14,0,9,0,100,0,0,5,11000,15000,11,32908,1,0,0,0,0,2,0,0,0,0,0,0,0,"Frostpaw Trapper - Between 0-5 Range - Cast 32908"),
+(@ENTRY,0,15,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostpaw Trapper - On Evade - Set Sheath Melee"),
+(@ENTRY,0,16,0,6,0,100,1,0,0,0,0,11,47033,39,0,0,0,0,2,0,0,0,0,0,0,0,"Frostpaw Trapper - On Death - Cast 47033");
+
+-- Drakkari Shaman SAI
+SET @ENTRY := 26447;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Drakkari Shaman - On Aggro - Cast 9532"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Drakkari Shaman - Between 0-40 Range - Cast 9532 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,0,9000,12000,14000,17000,11,13730,1,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - In Combat - Cast 13730");
+
+-- Wastes Taskmaster SAI
+SET @ENTRY := 26493;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Taskmaster - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,16583,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wastes Taskmaster - On Aggro - Cast 16583"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Taskmaster - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,20,3400,4800,11,16583,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wastes Taskmaster - Between 0-20 Range - Cast 16583 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Taskmaster - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Taskmaster - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,15,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Taskmaster - Between 15-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,5,10,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Taskmaster - Between 5-10 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Taskmaster - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,10,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Taskmaster - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,11,0,9,0,100,0,0,8,12000,15000,11,32712,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Taskmaster - Between 0-8 Range - Cast 32712");
diff --git a/sql/updates/world/2013_11_29_02_world_sai.sql b/sql/updates/world/2013_11_29_02_world_sai.sql
new file mode 100644
index 00000000000..6afa93b3905
--- /dev/null
+++ b/sql/updates/world/2013_11_29_02_world_sai.sql
@@ -0,0 +1,507 @@
+-- Stars' Rest Sentinel SAI
+SET @ENTRY := 26448;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stars' Rest Sentinel - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stars' Rest Sentinel - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Stars' Rest Sentinel - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stars' Rest Sentinel - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Stars' Rest Sentinel - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stars' Rest Sentinel - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,8,100,9000,13000,11,47059,1,0,0,0,0,2,0,0,0,0,0,0,0,"Stars' Rest Sentinel - Between 8-100 Range - Cast 47059 (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stars' Rest Sentinel - Between 8-100 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stars' Rest Sentinel - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stars' Rest Sentinel - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,10,11,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stars' Rest Sentinel - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,11,12,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stars' Rest Sentinel - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stars' Rest Sentinel - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,13,14,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stars' Rest Sentinel - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stars' Rest Sentinel - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,15,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stars' Rest Sentinel - On Evade - Set Sheath Melee");
+
+-- Drakkari Shaman SAI
+SET @ENTRY := 26639;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,48895,0,0,0,0,0,2,0,0,0,0,0,0,0,"Drakkari Shaman - On Aggro - Cast 48895 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,3400,4800,11,48895,0,0,0,0,0,2,0,0,0,0,0,0,0,"Drakkari Shaman - Between 0-40 Range - Cast 48895 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,59006,0,0,0,0,0,2,0,0,0,0,0,0,0,"Drakkari Shaman - On Aggro - Cast 59006 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,3400,4800,11,59006,0,0,0,0,0,2,0,0,0,0,0,0,0,"Drakkari Shaman - Between 0-40 Range - Cast 59006 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,3,0,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - Between 15-100% Mana - Decrement Event Phase (Dungeon Only)"),
+(@ENTRY,0,13,0,2,0,100,6,0,30,30000,45000,11,47668,1,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Shaman - Between 0-30% Health - Cast 47668 (Dungeon Only)"),
+(@ENTRY,0,14,0,14,0,100,6,15000,45,6000,9000,11,59473,1,0,0,0,0,7,0,0,0,0,0,0,0,"Drakkari Shaman - On Friendly Unit At 15000 Health Within 45 Range - Cast 59473 (Dungeon Only)");
+
+-- High Cultist Zangus SAI
+SET @ENTRY := 26655;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Cultist Zangus - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"High Cultist Zangus - On Aggro - Cast 9613"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Cultist Zangus - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"High Cultist Zangus - Between 0-40 Range - Cast 9613 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Cultist Zangus - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Cultist Zangus - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Cultist Zangus - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Cultist Zangus - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Cultist Zangus - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,4,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"High Cultist Zangus - Between 15-100% Mana - Decrement Event Phase (Phase 4)"),
+(@ENTRY,0,10,0,2,0,100,0,0,30,120000,125000,11,51605,1,0,0,0,0,1,0,0,0,0,0,0,0,"High Cultist Zangus - Between 0-30% Health - Cast 51605");
+
+-- Grumbald One-Eye SAI
+SET @ENTRY := 26681;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Grumbald One-Eye - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,51779,0,0,0,0,0,2,0,0,0,0,0,0,0,"Grumbald One-Eye - On Aggro - Cast 51779"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Grumbald One-Eye - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,51779,0,0,0,0,0,2,0,0,0,0,0,0,0,"Grumbald One-Eye - Between 0-40 Range - Cast 51779 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Grumbald One-Eye - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Grumbald One-Eye - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Grumbald One-Eye - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Grumbald One-Eye - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Grumbald One-Eye - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Grumbald One-Eye - Between 15-100% Mana - Decrement Event Phase"),
+(@ENTRY,0,10,0,0,0,100,0,9000,16000,9000,15000,11,13339,0,0,0,0,0,2,0,0,0,0,0,0,0,"Grumbald One-Eye - In Combat - Cast 13339"),
+(@ENTRY,0,11,0,9,0,100,2,0,8,18000,21000,11,11831,1,0,0,0,0,1,0,0,0,0,0,0,0,"Grumbald One-Eye - Between 0-8 Range - Cast 11831 (Normal Dungeon)"),
+(@ENTRY,0,12,0,2,0,100,0,0,30,120000,130000,11,52495,1,0,0,0,0,1,0,0,0,0,0,0,0,"Grumbald One-Eye - Between 0-30% Health - Cast 52495");
+
+-- Galak Wrangler SAI
+SET @ENTRY := 4093;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Wrangler - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Wrangler - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Galak Wrangler - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Wrangler - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Galak Wrangler - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Wrangler - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Wrangler - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Wrangler - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Wrangler - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,5,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Wrangler - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,5,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Wrangler - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Wrangler - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Wrangler - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,0,0,100,0,3000,5500,9000,15000,11,6533,1,0,0,0,0,2,0,0,0,0,0,0,0,"Galak Wrangler - In Combat - Cast 6533"),
+(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Wrangler - Between 0-15% Health - Increment Event Phase"),
+(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Wrangler - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Galak Wrangler - Between 0-15% Health - Flee For Assist"),
+(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Wrangler - On Evade - Set Sheath Melee");
+
+-- Galak Scout SAI
+SET @ENTRY := 4094;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Scout - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Scout - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Galak Scout - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Scout - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Galak Scout - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Scout - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Scout - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Scout - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Scout - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Scout - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Scout - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Scout - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Scout - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Scout - Between 0-15% Health - Increment Event Phase"),
+(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Scout - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Galak Scout - Between 0-15% Health - Flee For Assist"),
+(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Scout - On Evade - Set Sheath Melee");
+
+-- Galak Stormer SAI
+SET @ENTRY := 4097;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Stormer - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,6535,0,0,0,0,0,2,0,0,0,0,0,0,0,"Galak Stormer - On Aggro - Cast 6535"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Stormer - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Galak Stormer - Between 0-40 Range - Cast 9532 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Stormer - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Stormer - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Stormer - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Stormer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Stormer - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Stormer - Between 30-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,11,2,0,100,1,0,15,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Stormer - Between 0-15% Health - Set Event Phase 2"),
+(@ENTRY,0,11,12,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Stormer - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Galak Stormer - Between 0-15% Health - Flee For Assist");
+
+-- Gravelsnout Surveyor SAI
+SET @ENTRY := 4116;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gravelsnout Surveyor - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20806,0,0,0,0,0,2,0,0,0,0,0,0,0,"Gravelsnout Surveyor - On Aggro - Cast 20806"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gravelsnout Surveyor - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,20806,0,0,0,0,0,2,0,0,0,0,0,0,0,"Gravelsnout Surveyor - Between 0-40 Range - Cast 20806 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gravelsnout Surveyor - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gravelsnout Surveyor - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gravelsnout Surveyor - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gravelsnout Surveyor - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gravelsnout Surveyor - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Gravelsnout Surveyor - Between 30-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,0,6000,9000,17000,21000,11,6141,1,0,0,0,0,2,0,0,0,0,0,0,0,"Gravelsnout Surveyor - In Combat - Cast 6141"),
+(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gravelsnout Surveyor - Between 0-15% Health - Set Event Phase 2"),
+(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gravelsnout Surveyor - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Gravelsnout Surveyor - Between 0-15% Health - Flee For Assist");
+
+-- Cloud Serpent SAI
+SET @ENTRY := 4117;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cloud Serpent - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,8246,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cloud Serpent - On Aggro - Cast 8246"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cloud Serpent - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,8246,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cloud Serpent - Between 0-40 Range - Cast 8246 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cloud Serpent - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cloud Serpent - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cloud Serpent - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cloud Serpent - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cloud Serpent - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Cloud Serpent - Between 30-100% Mana - Decrement Event Phase");
+
+-- Elder Cloud Serpent SAI
+SET @ENTRY := 4119;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elder Cloud Serpent - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,8246,0,0,0,0,0,2,0,0,0,0,0,0,0,"Elder Cloud Serpent - On Aggro - Cast 8246"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elder Cloud Serpent - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,8246,0,0,0,0,0,2,0,0,0,0,0,0,0,"Elder Cloud Serpent - Between 0-40 Range - Cast 8246 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elder Cloud Serpent - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elder Cloud Serpent - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elder Cloud Serpent - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elder Cloud Serpent - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elder Cloud Serpent - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Elder Cloud Serpent - Between 30-100% Mana - Decrement Event Phase"),
+(@ENTRY,0,10,0,9,0,100,0,0,30,7000,11000,11,421,1,0,0,0,0,2,0,0,0,0,0,0,0,"Elder Cloud Serpent - Between 0-30 Range - Cast 421");
+
+-- Keeper Ordanus SAI
+SET @ENTRY := 4273;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Keeper Ordanus - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Keeper Ordanus - On Aggro - Cast 9532"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Keeper Ordanus - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Keeper Ordanus - Between 0-40 Range - Cast 9532 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Keeper Ordanus - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Keeper Ordanus - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Keeper Ordanus - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Keeper Ordanus - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Keeper Ordanus - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,25,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Keeper Ordanus - Between 25-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,0,3500,6200,20900,34300,11,12747,1,0,0,0,0,5,0,0,0,0,0,0,0,"Keeper Ordanus - In Combat - Cast 12747"),
+(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Keeper Ordanus - Between 0-15% Health - Set Event Phase 3"),
+(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Keeper Ordanus - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Keeper Ordanus - Between 0-15% Health - Flee For Assist");
+
+-- Scarlet Evoker SAI
+SET @ENTRY := 4289;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Evoker - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,2601,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Evoker - On Aggro - Cast 2601 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Evoker - On Aggro - Cast 9053 (Normal Dungeon)"),
+(@ENTRY,0,3,0,4,0,100,3,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Evoker - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,0,9,1,100,2,0,40,2400,3800,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Evoker - Between 0-40 Range - Cast 9053 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Evoker - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Evoker - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Evoker - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Evoker - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Evoker - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,10,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Evoker - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"),
+(@ENTRY,0,11,0,0,0,100,2,6000,8000,14000,29000,11,8422,1,0,0,0,0,5,0,0,0,0,0,0,0,"Scarlet Evoker - In Combat - Cast 8422 (Normal Dungeon)"),
+(@ENTRY,0,12,13,2,0,100,3,0,15,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Evoker - Between 0-15% Health - Set Event Phase 2 (Normal Dungeon)"),
+(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Evoker - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Evoker - Between 0-15% Health - Flee For Assist (Normal Dungeon)");
+
+-- Scarlet Diviner SAI
+SET @ENTRY := 4291;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Diviner - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Diviner - On Aggro - Cast 9053 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Diviner - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Diviner - Between 0-40 Range - Cast 9053 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Diviner - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Diviner - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Diviner - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Diviner - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Diviner - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Diviner - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"),
+(@ENTRY,0,10,11,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Diviner - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"),
+(@ENTRY,0,11,12,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Diviner - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Diviner - Between 0-15% Health - Flee For Assist (Normal Dungeon)");
+
+-- Scarlet Sorcerer SAI
+SET @ENTRY := 4294;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Sorcerer - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Sorcerer - On Aggro - Cast 9672 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Sorcerer - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Sorcerer - Between 0-40 Range - Cast 9672 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Sorcerer - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Sorcerer - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Sorcerer - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Sorcerer - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Sorcerer - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Sorcerer - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,2,6000,8000,18000,21000,11,6146,1,0,0,0,0,5,0,0,0,0,0,0,0,"Scarlet Sorcerer - In Combat - Cast 6146 (Normal Dungeon)"),
+(@ENTRY,0,11,12,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Sorcerer - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"),
+(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Sorcerer - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Sorcerer - Between 0-15% Health - Flee For Assist (Normal Dungeon)");
+
+-- Scarlet Conjuror SAI
+SET @ENTRY := 4297;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Conjuror - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,0,1,0,100,3,1000,1000,0,0,11,8985,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Conjuror - Out Of Combat - Cast 8985 (Normal Dungeon)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Conjuror - On Aggro - Cast 9053 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Conjuror - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,0,9,1,100,2,0,40,2400,3800,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Conjuror - Between 0-40 Range - Cast 9053 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Conjuror - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Conjuror - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Conjuror - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Conjuror - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Conjuror - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,10,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Conjuror - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"),
+(@ENTRY,0,11,12,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Conjuror - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"),
+(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Conjuror - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Conjuror - Between 0-15% Health - Flee For Assist (Normal Dungeon)");
+
+-- Firemane Flamecaller SAI
+SET @ENTRY := 4334;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firemane Flamecaller - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Firemane Flamecaller - On Aggro - Cast 9053"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firemane Flamecaller - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Firemane Flamecaller - Between 0-40 Range - Cast 9053 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firemane Flamecaller - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firemane Flamecaller - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firemane Flamecaller - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firemane Flamecaller - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Firemane Flamecaller - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Firemane Flamecaller - Between 30-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,0,1000,5000,600000,600000,11,18968,1,0,0,0,0,1,0,0,0,0,0,0,0,"Firemane Flamecaller - In Combat - Cast 18968"),
+(@ENTRY,0,11,0,0,0,100,0,9000,16000,30000,45000,11,11990,1,0,0,0,0,2,0,0,0,0,0,0,0,"Firemane Flamecaller - In Combat - Cast 11990");
+
+-- Defias Taskmaster SAI
+SET @ENTRY := 4417;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Taskmaster - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Taskmaster - Out Of Combat - Stop Auto Attack (Normal Dungeon)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Taskmaster - On Aggro - Cast 6660 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Taskmaster - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,5,9,0,100,2,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Taskmaster - Between 5-30 Range - Cast 6660 (Normal Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Taskmaster - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,6,7,9,0,100,2,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Taskmaster - Between 25-80 Range - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Taskmaster - Between 25-80 Range - Start Auto Attack (Normal Dungeon)"),
+(@ENTRY,0,8,9,9,0,100,2,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Taskmaster - Between 0-5 Range - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,9,10,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Taskmaster - Between 0-5 Range - Set Sheath Melee (Normal Dungeon)"),
+(@ENTRY,0,10,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Taskmaster - Between 0-5 Range - Start Auto Attack (Normal Dungeon)"),
+(@ENTRY,0,11,12,9,0,100,2,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Taskmaster - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Taskmaster - Between 5-15 Range - Stop Auto Attack (Normal Dungeon)"),
+(@ENTRY,0,13,0,9,0,100,2,5,30,32000,39000,11,6685,1,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Taskmaster - Between 5-30 Range - Cast 6685 (Normal Dungeon)"),
+(@ENTRY,0,14,0,7,0,100,3,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Taskmaster - On Evade - Set Sheath Melee (Normal Dungeon)");
+
+-- Defias Wizard SAI
+SET @ENTRY := 4418;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Wizard - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Wizard - On Aggro - Cast 9053 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Wizard - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,3300,5600,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Wizard - Between 0-40 Range - Cast 9053 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Wizard - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Wizard - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Wizard - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Wizard - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Wizard - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Wizard - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,2,1100,1100,42600,63500,11,4979,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Wizard - In Combat - Cast 4979 (Normal Dungeon)"),
+(@ENTRY,0,11,0,0,0,100,2,3300,7800,9600,14200,11,113,32,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Wizard - In Combat - Cast 113 (Normal Dungeon)"),
+(@ENTRY,0,12,13,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Wizard - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"),
+(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Wizard - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Wizard - Between 0-15% Health - Flee For Assist (Normal Dungeon)");
+
+-- Murkgill Hunter SAI
+SET @ENTRY := 4458;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Hunter - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Hunter - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkgill Hunter - On Aggro - Cast 10277"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Hunter - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2600,4800,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkgill Hunter - Between 5-30 Range - Cast 10277 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Hunter - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Hunter - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Hunter - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Hunter - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Hunter - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Hunter - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Hunter - Between 0-15% Health - Increment Event Phase"),
+(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Hunter - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Murkgill Hunter - Between 0-15% Health - Flee For Assist"),
+(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Hunter - On Evade - Set Sheath Melee");
+
+-- Murkgill Oracle SAI
+SET @ENTRY := 4459;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Oracle - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkgill Oracle - On Aggro - Cast 9532"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Oracle - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkgill Oracle - Between 0-40 Range - Cast 9532 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Oracle - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Oracle - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Oracle - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Oracle - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Oracle - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Oracle - Between 30-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,14,0,100,0,700,40,25000,35000,11,11986,1,0,0,0,0,7,0,0,0,0,0,0,0,"Murkgill Oracle - On Friendly Unit At 700 Health Within 40 Range - Cast 11986"),
+(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Oracle - Between 0-15% Health - Set Event Phase 3"),
+(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Oracle - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Murkgill Oracle - Between 0-15% Health - Flee For Assist");
+
+-- Murkgill Lord SAI
+SET @ENTRY := 4460;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Lord - In Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Lord - Out Of Combat - Cast 12544"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkgill Lord - On Aggro - Cast 9672"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Lord - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkgill Lord - Between 0-40 Range - Cast 9672 (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Lord - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Lord - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Lord - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Lord - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Lord - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Lord - Between 30-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,11,0,0,0,100,0,9800,11100,16100,25700,11,38033,1,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Lord - In Combat - Cast 38033"),
+(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Lord - Between 0-15% Health - Set Event Phase 3"),
+(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Lord - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Murkgill Lord - Between 0-15% Health - Flee For Assist");
+
+-- Scarlet Spellbinder SAI
+SET @ENTRY := 4494;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Spellbinder - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20822,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Spellbinder - On Aggro - Cast 20822"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Spellbinder - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,20822,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Spellbinder - Between 0-40 Range - Cast 20822 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Spellbinder - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Spellbinder - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Spellbinder - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Spellbinder - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Spellbinder - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Spellbinder - Between 30-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,0,6000,9000,15000,18500,11,11831,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Spellbinder - In Combat - Cast 11831"),
+(@ENTRY,0,11,0,0,0,100,0,4000,6000,20000,25000,11,11436,1,0,0,0,0,5,0,0,0,0,0,0,0,"Scarlet Spellbinder - In Combat - Cast 11436"),
+(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Spellbinder - Between 0-15% Health - Set Event Phase 3"),
+(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Spellbinder - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Spellbinder - Between 0-15% Health - Flee For Assist");
+
+-- Death's Head Adept SAI
+SET @ENTRY := 4516;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Adept - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Death's Head Adept - On Aggro - Cast 9672 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Adept - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Death's Head Adept - Between 0-40 Range - Cast 9672 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Adept - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Adept - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Adept - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Adept - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Adept - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Adept - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,2,3000,6000,10000,15000,11,113,1,0,0,0,0,5,0,0,0,0,0,0,0,"Death's Head Adept - In Combat - Cast 113 (Normal Dungeon)"),
+(@ENTRY,0,11,12,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Adept - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"),
+(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Adept - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Death's Head Adept - Between 0-15% Health - Flee For Assist (Normal Dungeon)");
+
+-- Death's Head Priest SAI
+SET @ENTRY := 4517;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Priest - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,0,1,0,100,3,1000,1000,1800000,1800000,11,1245,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Priest - Out Of Combat - Cast 1245 (Normal Dungeon)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Death's Head Priest - On Aggro - Cast 9613 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Priest - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,0,9,1,100,2,0,40,2400,3800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Death's Head Priest - Between 0-40 Range - Cast 9613 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Priest - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Priest - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Priest - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Priest - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Priest - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,10,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Priest - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"),
+(@ENTRY,0,11,0,2,0,100,2,0,40,14000,20000,11,6063,1,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Priest - Between 0-40% Health - Cast 6063 (Normal Dungeon)"),
+(@ENTRY,0,12,13,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Priest - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"),
+(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Priest - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Death's Head Priest - Between 0-15% Health - Flee For Assist (Normal Dungeon)");
diff --git a/sql/updates/world/2013_11_29_03_world_sai.sql b/sql/updates/world/2013_11_29_03_world_sai.sql
new file mode 100644
index 00000000000..1ba727ca930
--- /dev/null
+++ b/sql/updates/world/2013_11_29_03_world_sai.sql
@@ -0,0 +1,8 @@
+-- Scarshield Grunt SAI
+SET @ENTRY := 9043;
+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,2,0,0,0,0,11,11976,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarshield Grunt - Between 0-5 Range - Cast 11976 (Dungeon)"),
+(@ENTRY,0,1,0,9,0,100,0,0,0,0,0,11,11976,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarshield Grunt - Between 0-5 Range - Cast 11976");
+-- Fix Burning Blade Summoner SAI
+UPDATE `smart_scripts` SET `link`=0, `event_type`=61 WHERE `entryorguid`=4668 AND `id`=1;
diff --git a/sql/updates/world/2013_11_29_04_world_sai.sql b/sql/updates/world/2013_11_29_04_world_sai.sql
new file mode 100644
index 00000000000..5f98b7989d8
--- /dev/null
+++ b/sql/updates/world/2013_11_29_04_world_sai.sql
@@ -0,0 +1,111 @@
+-- Twilight Apostle SAI
+DELETE FROM `smart_scripts` WHERE `entryorguid`=30179 AND `source_type`=0 AND `id`=4;
+
+-- Frostbringer SAI
+SET @ENTRY := 30286;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostbringer - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,57825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frostbringer - On Aggro - Cast 57825 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostbringer - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,3400,4800,11,57825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frostbringer - Between 0-40 Range - Cast 57825 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,61461,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frostbringer - On Aggro - Cast 61461 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostbringer - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,3400,4800,11,61461,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frostbringer - Between 0-40 Range - Cast 61461 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostbringer - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostbringer - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostbringer - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostbringer - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostbringer - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,3,2,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Frostbringer - Between 15-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,13,0,0,2,100,2,9000,12000,15000,18000,11,15063,1,0,0,0,0,1,0,0,0,0,0,0,0,"Frostbringer - In Combat - Cast 15063 (Normal Dungeon) (Phase 2)"),
+(@ENTRY,0,14,0,0,2,100,4,9000,12000,15000,18000,11,61462,1,0,0,0,0,1,0,0,0,0,0,0,0,"Frostbringer - In Combat - Cast 61462 (Heroic Dungeon) (Phase 2)"),
+(@ENTRY,0,15,0,2,0,100,6,0,30,120000,130000,11,56716,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frostbringer - Between 0-30% Health - Cast 56716 (Dungeon Only)");
+
+-- Twilight Darkcaster SAI
+SET @ENTRY := 30319;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Darkcaster - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,12739,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Darkcaster - On Aggro - Cast 12739 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Darkcaster - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,4000,5000,11,12739,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Darkcaster - Between 0-40 Range - Cast 12739 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,61562,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Darkcaster - On Aggro - Cast 61562 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Darkcaster - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,5000,7000,11,61562,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Darkcaster - Between 0-40 Range - Cast 61562 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Darkcaster - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Darkcaster - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Darkcaster - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Darkcaster - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Darkcaster - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,3,2,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Darkcaster - Between 15-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,13,0,0,0,100,2,4000,7000,17000,20000,11,56898,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Darkcaster - In Combat - Cast 56898 (Normal Dungeon)"),
+(@ENTRY,0,14,0,0,0,100,4,4000,7000,17000,20000,11,61563,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Darkcaster - In Combat - Cast 61563 (Heroic Dungeon)"),
+(@ENTRY,0,15,0,0,0,100,6,12000,15000,19000,23000,11,13338,1,0,0,0,0,6,0,0,0,0,0,0,0,"Twilight Darkcaster - In Combat - Cast 13338 (Dungeon Only)"),
+(@ENTRY,0,16,0,2,0,100,7,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Darkcaster - Between 0-15% Health - Set Event Phase 3 (Dungeon Only)");
+
+-- Twilight Worshipper SAI
+SET @ENTRY := 30111;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Worshipper - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,17290,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Worshipper - On Aggro - Cast 17290 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Worshipper - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,0,9,1,100,2,0,40,3400,4800,11,17290,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Worshipper - Between 0-40 Range - Cast 17290 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,6,4,0,100,5,0,0,0,0,11,61567,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Worshipper - On Aggro - Cast 61567 (Heroic Dungeon)"),
+(@ENTRY,0,6,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Worshipper - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,7,0,9,1,100,4,0,40,5000,8000,11,61567,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Worshipper - Between 0-40 Range - Cast 61567 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,8,0,0,0,100,2,9000,12000,14000,17000,11,56858,1,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Worshipper - In Combat - Cast 56858 (Normal Dungeon)"),
+(@ENTRY,0,9,0,0,0,100,4,9000,12000,14000,17000,11,61568,1,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Worshipper - In Combat - Cast 61568 (Heroic Dungeon)"),
+(@ENTRY,0,10,11,3,1,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Worshipper - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Worshipper - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Worshipper - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Worshipper - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,14,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Worshipper - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,15,0,3,2,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Worshipper - Between 30-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)");
+
+-- Bound Fire Elemental SAI
+SET @ENTRY := 30416;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Fire Elemental - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,7,0,0,0,0,11,17195,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bound Fire Elemental - On Aggro - Cast 17195 (Dungeon Only)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Fire Elemental - On Aggro - Increment Event Phase (Dungeon Only)"),
+(@ENTRY,0,3,0,9,1,100,6,0,40,3400,4800,11,17195,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bound Fire Elemental - Between 0-40 Range - Cast 17195 (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Fire Elemental - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Fire Elemental - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Fire Elemental - Between 25-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Fire Elemental - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Fire Elemental - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Fire Elemental - Between 15-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,10,0,9,0,100,6,0,5,11000,14000,11,12470,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Fire Elemental - Between 0-5 Range - Cast 12470 (Dungeon Only)");
+
+-- Bound Air Elemental SAI
+SET @ENTRY := 30418;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Air Elemental - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,22414,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bound Air Elemental - On Aggro - Cast 22414 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Air Elemental - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,3400,4800,11,22414,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bound Air Elemental - Between 0-40 Range - Cast 22414 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,59169,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bound Air Elemental - On Aggro - Cast 59169 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Air Elemental - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,3400,4800,11,38378,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bound Air Elemental - Between 0-40 Range - Cast 38378 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Air Elemental - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Air Elemental - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Air Elemental - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Air Elemental - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Air Elemental - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,3,4,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Air Elemental - Between 15-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 4)"),
+(@ENTRY,0,13,0,0,0,100,2,10000,13000,11000,13000,11,46150,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Air Elemental - In Combat - Cast 46150 (Normal Dungeon)"),
+(@ENTRY,0,14,0,0,0,100,4,10000,13000,11000,13000,11,59169,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Air Elemental - In Combat - Cast 59169 (Heroic Dungeon)");
diff --git a/sql/updates/world/2013_11_29_05_world_sai.sql b/sql/updates/world/2013_11_29_05_world_sai.sql
new file mode 100644
index 00000000000..7d9ce9f6880
--- /dev/null
+++ b/sql/updates/world/2013_11_29_05_world_sai.sql
@@ -0,0 +1,631 @@
+-- Sifreldar Runekeeper SAI
+SET @ENTRY := 29331;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sifreldar Runekeeper - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sifreldar Runekeeper - On Aggro - Cast 20792"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sifreldar Runekeeper - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sifreldar Runekeeper - Between 0-40 Range - Cast 20792 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sifreldar Runekeeper - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sifreldar Runekeeper - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sifreldar Runekeeper - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sifreldar Runekeeper - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sifreldar Runekeeper - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Sifreldar Runekeeper - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,2,0,100,0,0,30,15000,22000,11,52714,1,0,0,0,0,1,0,0,0,0,0,0,0,"Sifreldar Runekeeper - Between 0-30% Health - Cast 52714");
+
+-- Yulda the Stormspeaker SAI
+SET @ENTRY := 30046;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Yulda the Stormspeaker - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,32018,0,0,0,0,0,2,0,0,0,0,0,0,0,"Yulda the Stormspeaker - On Aggro - Cast 32018"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Yulda the Stormspeaker - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,30,3400,4800,11,32018,0,0,0,0,0,2,0,0,0,0,0,0,0,"Yulda the Stormspeaker - Between 0-30 Range - Cast 32018 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Yulda the Stormspeaker - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Yulda the Stormspeaker - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Yulda the Stormspeaker - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Yulda the Stormspeaker - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Yulda the Stormspeaker - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Yulda the Stormspeaker - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,0,9000,12000,15000,18000,11,55087,0,0,0,0,0,2,0,0,0,0,0,0,0,"Yulda the Stormspeaker - In Combat - Cast 55087");
+
+-- Ahn'kahar Spell Flinger SAI
+SET @ENTRY := 30278;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ahn'kahar Spell Flinger - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,56698,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ahn'kahar Spell Flinger - On Aggro - Cast 56698 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ahn'kahar Spell Flinger - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,23000,27000,11,56698,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ahn'kahar Spell Flinger - Between 0-40 Range - Cast 56698 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,59102,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ahn'kahar Spell Flinger - On Aggro - Cast 59102 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ahn'kahar Spell Flinger - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,23000,27000,11,59102,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ahn'kahar Spell Flinger - Between 0-40 Range - Cast 59102 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ahn'kahar Spell Flinger - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ahn'kahar Spell Flinger - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ahn'kahar Spell Flinger - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ahn'kahar Spell Flinger - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ahn'kahar Spell Flinger - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,3,0,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ahn'kahar Spell Flinger - Between 15-100% Mana - Decrement Event Phase (Dungeon Only)"),
+(@ENTRY,0,13,0,0,0,100,2,10000,14000,13000,16000,11,56702,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ahn'kahar Spell Flinger - In Combat - Cast 56702 (Normal Dungeon)"),
+(@ENTRY,0,14,0,0,0,100,4,10000,14000,13000,16000,11,59103,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ahn'kahar Spell Flinger - In Combat - Cast 59103 (Heroic Dungeon)");
+
+-- Eye of Taldaram SAI
+SET @ENTRY := 30285;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Eye of Taldaram - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,17439,0,0,0,0,0,2,0,0,0,0,0,0,0,"Eye of Taldaram - On Aggro - Cast 17439 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Eye of Taldaram - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,20,3400,4800,11,17439,0,0,0,0,0,2,0,0,0,0,0,0,0,"Eye of Taldaram - Between 0-20 Range - Cast 17439 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,17289,0,0,0,0,0,2,0,0,0,0,0,0,0,"Eye of Taldaram - On Aggro - Cast 17289 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,4,0,100,5,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Eye of Taldaram - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,20,3400,4800,11,17289,0,0,0,0,0,2,0,0,0,0,0,0,0,"Eye of Taldaram - Between 0-20 Range - Cast 17289 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,13,0,100,3,0,0,0,0,11,56730,0,0,0,0,0,7,0,0,0,0,0,0,0,"Eye of Taldaram - On Target Casting - Cast 56730 (Normal Dungeon)"),
+(@ENTRY,0,8,0,13,0,100,5,0,0,0,0,11,59111,0,0,0,0,0,7,0,0,0,0,0,0,0,"Eye of Taldaram - On Target Casting - Cast 59111 (Heroic Dungeon)"),
+(@ENTRY,0,9,0,0,0,100,6,15000,19000,23000,27000,11,56728,1,0,0,0,0,2,0,0,0,0,0,0,0,"Eye of Taldaram - In Combat - Cast 56728 (Dungeon Only)"),
+(@ENTRY,0,10,11,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Eye of Taldaram - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Eye of Taldaram - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,9,1,100,7,15,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Eye of Taldaram - Between 15-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,0,9,1,100,7,5,10,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Eye of Taldaram - Between 5-10 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,14,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Eye of Taldaram - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,15,0,3,0,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Eye of Taldaram - Between 15-100% Mana - Decrement Event Phase (Dungeon Only)"),
+(@ENTRY,0,16,0,6,0,100,3,0,0,0,0,11,56733,7,0,0,0,0,2,0,0,0,0,0,0,0,"Eye of Taldaram - On Death - Cast 56733 (Normal Dungeon)"),
+(@ENTRY,0,17,0,6,0,100,5,0,0,0,0,11,61463,7,0,0,0,0,2,0,0,0,0,0,0,0,"Eye of Taldaram - On Death - Cast 61463 (Heroic Dungeon)");
+
+-- Bound Water Elemental SAI
+SET @ENTRY := 30419;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Water Elemental - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,7,0,0,0,0,11,56862,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bound Water Elemental - On Aggro - Cast 56862"),
+(@ENTRY,0,2,0,4,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Water Elemental - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,6,0,40,3400,4800,11,56862,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bound Water Elemental - Between 0-40 Range - Cast 56862 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Water Elemental - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Water Elemental - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Water Elemental - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Water Elemental - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Water Elemental - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bound Water Elemental - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,2,9000,12000,12000,15000,11,39207,1,0,0,0,0,5,0,0,0,0,0,0,0,"Bound Water Elemental - In Combat - Cast 39207 (Normal Dungeon)"),
+(@ENTRY,0,11,0,0,0,100,4,9000,12000,12000,15000,11,35735,1,0,0,0,0,5,0,0,0,0,0,0,0,"Bound Water Elemental - In Combat - Cast 35735 (Heroic Dungeon)");
+
+-- Azure Binder SAI
+SET @ENTRY := 31007;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Binder - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,58456,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Binder - On Aggro - Cast 58456 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Binder - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,30,3400,4800,11,58456,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Binder - Between 0-30 Range - Cast 58456 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,59248,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Binder - On Aggro - Cast 59248 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Binder - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,30,3400,4800,11,59248,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Binder - Between 0-30 Range - Cast 59248 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Binder - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Binder - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Binder - Between 25-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Binder - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Binder - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,9,0,100,2,0,8,9000,15000,11,58455,1,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Binder - Between 0-8 Range - Cast 58455 (Normal Dungeon)"),
+(@ENTRY,0,13,0,9,0,100,4,0,8,9000,15000,11,59257,1,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Binder - Between 0-8 Range - Cast 59257 (Heroic Dungeon)"),
+(@ENTRY,0,14,0,3,0,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Binder - Between 15-100% Mana - Decrement Event Phase (Dungeon Only)");
+
+-- Gatekeeper Melindra SAI
+SET @ENTRY := 32373;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gatekeeper Melindra - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Gatekeeper Melindra - Out Of Combat - Cast 12544"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,17290,0,0,0,0,0,2,0,0,0,0,0,0,0,"Gatekeeper Melindra - On Aggro - Cast 17290"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gatekeeper Melindra - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,0,9,1,100,0,0,40,3400,4800,11,17290,0,0,0,0,0,2,0,0,0,0,0,0,0,"Gatekeeper Melindra - Between 0-40 Range - Cast 17290 (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gatekeeper Melindra - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gatekeeper Melindra - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gatekeeper Melindra - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gatekeeper Melindra - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gatekeeper Melindra - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,10,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Gatekeeper Melindra - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,11,0,9,0,100,0,0,15,9000,15000,11,56837,1,0,0,0,0,1,0,0,0,0,0,0,0,"Gatekeeper Melindra - Between 0-15 Range - Cast 56837"),
+(@ENTRY,0,12,0,0,0,100,0,8000,11000,19000,25000,11,12738,1,0,0,0,0,2,0,0,0,0,0,0,0,"Gatekeeper Melindra - In Combat - Cast 12738");
+
+-- Time-Lost Scryer SAI
+SET @ENTRY := 18319;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Time-Lost Scryer - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,1,0,100,6,1000,1000,1800000,1800000,11,32689,1,0,0,0,0,1,0,0,0,0,0,0,0,"Time-Lost Scryer - Out Of Combat - Cast 32689 (Dungeon Only)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,22273,0,0,0,0,0,2,0,0,0,0,0,0,0,"Time-Lost Scryer - On Aggro - Cast 22273 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Time-Lost Scryer - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,0,9,1,100,2,0,30,2400,3800,11,22273,0,0,0,0,0,2,0,0,0,0,0,0,0,"Time-Lost Scryer - Between 0-30 Range - Cast 22273 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,6,4,0,100,5,0,0,0,0,11,33989,0,0,0,0,0,2,0,0,0,0,0,0,0,"Time-Lost Scryer - On Aggro - Cast 33989 (Heroic Dungeon)"),
+(@ENTRY,0,6,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Time-Lost Scryer - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,7,0,9,1,100,4,0,30,2400,3800,11,33989,0,0,0,0,0,2,0,0,0,0,0,0,0,"Time-Lost Scryer - Between 0-30 Range - Cast 33989 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,8,9,3,1,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Time-Lost Scryer - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Time-Lost Scryer - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Time-Lost Scryer - Between 25-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Time-Lost Scryer - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Time-Lost Scryer - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,0,3,0,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Time-Lost Scryer - Between 30-100% Mana - Decrement Event Phase (Dungeon Only)"),
+(@ENTRY,0,14,0,14,0,100,2,5000,20,7000,10000,11,17843,0,0,0,0,0,7,0,0,0,0,0,0,0,"Time-Lost Scryer - On Friendly Unit At 5000 Health Within 20 Range - Cast 17843 (Normal Dungeon)"),
+(@ENTRY,0,15,0,14,0,100,4,8000,20,7000,10000,11,17138,0,0,0,0,0,7,0,0,0,0,0,0,0,"Time-Lost Scryer - On Friendly Unit At 8000 Health Within 20 Range - Cast 17138 (Heroic Dungeon)"),
+(@ENTRY,0,16,0,14,0,100,2,2000,20,8000,10000,11,12160,0,0,0,0,0,7,0,0,0,0,0,0,0,"Time-Lost Scryer - On Friendly Unit At 2000 Health Within 20 Range - Cast 12160 (Normal Dungeon)"),
+(@ENTRY,0,17,0,14,0,100,4,3500,20,8000,10000,11,15981,0,0,0,0,0,7,0,0,0,0,0,0,0,"Time-Lost Scryer - On Friendly Unit At 3500 Health Within 20 Range - Cast 15981 (Heroic Dungeon)");
+
+-- Auchenai Soulpriest SAI
+SET @ENTRY := 18493;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Soulpriest - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,32860,0,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Soulpriest - On Aggro - Cast 32860 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Soulpriest - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,32860,0,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Soulpriest - Between 0-40 Range - Cast 32860 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,38378,0,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Soulpriest - On Aggro - Cast 38378 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Soulpriest - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,2400,3800,11,38378,0,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Soulpriest - Between 0-40 Range - Cast 38378 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Soulpriest - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Soulpriest - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Soulpriest - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Soulpriest - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Soulpriest - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,3,0,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Soulpriest - Between 30-100% Mana - Decrement Event Phase (Dungeon Only)"),
+(@ENTRY,0,13,0,0,0,100,3,8000,8000,0,0,11,32858,1,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Soulpriest - In Combat - Cast 32858 (Normal Dungeon)"),
+(@ENTRY,0,14,0,0,0,100,5,8000,8000,0,0,11,38377,1,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Soulpriest - In Combat - Cast 38377 (Heroic Dungeon)"),
+(@ENTRY,0,15,0,4,0,20,7,0,0,0,0,11,32853,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Soulpriest - On Aggro - Cast 32853 (Dungeon Only)"),
+(@ENTRY,0,16,0,4,0,20,7,0,0,0,0,11,32854,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Soulpriest - On Aggro - Cast 32854 (Dungeon Only)"),
+(@ENTRY,0,17,0,4,0,20,7,0,0,0,0,11,32855,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Soulpriest - On Aggro - Cast 32855 (Dungeon Only)"),
+(@ENTRY,0,18,0,4,0,20,7,0,0,0,0,11,32856,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Soulpriest - On Aggro - Cast 32856 (Dungeon Only)"),
+(@ENTRY,0,19,0,4,0,20,7,0,0,0,0,11,32857,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Soulpriest - On Aggro - Cast 32857 (Dungeon Only)");
+
+-- Unliving Sorcerer SAI
+SET @ENTRY := 18499;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Sorcerer - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,12466,0,0,0,0,0,2,0,0,0,0,0,0,0,"Unliving Sorcerer - On Aggro - Cast 12466 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Sorcerer - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,12466,0,0,0,0,0,2,0,0,0,0,0,0,0,"Unliving Sorcerer - Between 0-40 Range - Cast 12466 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,17290,0,0,0,0,0,2,0,0,0,0,0,0,0,"Unliving Sorcerer - On Aggro - Cast 17290 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Sorcerer - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,2400,3800,11,17290,0,0,0,0,0,2,0,0,0,0,0,0,0,"Unliving Sorcerer - Between 0-40 Range - Cast 17290 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Sorcerer - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Sorcerer - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Sorcerer - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Sorcerer - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Sorcerer - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,3,0,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Sorcerer - Between 30-100% Mana - Decrement Event Phase (Dungeon Only)"),
+(@ENTRY,0,13,0,0,0,100,2,6000,8000,13000,15000,11,15043,0,0,0,0,0,2,0,0,0,0,0,0,0,"Unliving Sorcerer - In Combat - Cast 15043 (Normal Dungeon)"),
+(@ENTRY,0,14,0,0,0,100,4,6000,8000,13000,15000,11,15530,0,0,0,0,0,2,0,0,0,0,0,0,0,"Unliving Sorcerer - In Combat - Cast 15530 (Heroic Dungeon)"),
+(@ENTRY,0,15,0,0,0,100,2,10000,10000,10000,13000,11,15744,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Sorcerer - In Combat - Cast 15744 (Normal Dungeon)"),
+(@ENTRY,0,16,0,0,0,100,4,10000,10000,10000,13000,11,22424,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Sorcerer - In Combat - Cast 22424 (Heroic Dungeon)"),
+(@ENTRY,0,17,0,7,0,100,7,0,0,0,0,37,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Sorcerer - On Evade - Die (Dungeon Only)");
+
+-- Durnholde Mage SAI
+SET @ENTRY := 18934;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Mage - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Mage - Out Of Combat - Cast 12544"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,12466,0,0,0,0,0,2,0,0,0,0,0,0,0,"Durnholde Mage - On Aggro - Cast 12466 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Mage - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,0,9,1,100,2,0,40,3400,4800,11,12466,0,0,0,0,0,2,0,0,0,0,0,0,0,"Durnholde Mage - Between 0-40 Range - Cast 12466 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,6,4,0,100,5,0,0,0,0,11,17290,0,0,0,0,0,2,0,0,0,0,0,0,0,"Durnholde Mage - On Aggro - Cast 17290 (Heroic Dungeon)"),
+(@ENTRY,0,6,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Mage - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,7,0,9,1,100,4,0,40,3400,4800,11,17290,0,0,0,0,0,2,0,0,0,0,0,0,0,"Durnholde Mage - Between 0-40 Range - Cast 17290 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,8,9,3,1,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Mage - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Mage - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Mage - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Mage - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Mage - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,0,3,2,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Mage - Between 30-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,14,0,0,0,100,6,7000,11000,13000,16000,11,13341,0,0,0,0,0,2,0,0,0,0,0,0,0,"Durnholde Mage - In Combat - Cast 13341 (Dungeon Only)"),
+(@ENTRY,0,15,0,0,0,100,6,7000,11000,13000,16000,11,16144,0,0,0,0,0,2,0,0,0,0,0,0,0,"Durnholde Mage - In Combat - Cast 16144 (Dungeon Only)"),
+(@ENTRY,0,16,0,0,0,100,6,14000,19000,16000,19000,11,15244,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Mage - In Combat - Cast 15244 (Dungeon Only)"),
+(@ENTRY,0,17,0,0,0,100,6,14000,19000,16000,19000,11,38384,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Mage - In Combat - Cast 38384 (Dungeon Only)"),
+(@ENTRY,0,18,0,0,0,100,6,8000,13000,14000,18000,11,13323,1,0,0,0,0,6,0,0,0,0,0,0,0,"Durnholde Mage - In Combat - Cast 13323 (Dungeon Only)"),
+(@ENTRY,0,19,20,2,0,100,7,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Mage - Between 0-15% Health - Set Event Phase 3 (Dungeon Only)"),
+(@ENTRY,0,20,21,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Durnholde Mage - Between 0-15% Health - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,21,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Durnholde Mage - Between 0-15% Health - Flee For Assist (Dungeon Only)");
+
+-- Sunfury Nethermancer SAI
+SET @ENTRY := 20248;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Nethermancer - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,1,0,100,0,1000,1000,300000,300000,11,36477,1,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Nethermancer - Out Of Combat - Cast 36477"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,35778,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Nethermancer - On Aggro - Cast 35778"),
+(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunfury Nethermancer - On Aggro - Cast 9613"),
+(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Nethermancer - On Aggro - Increment Event Phase"),
+(@ENTRY,0,5,0,9,1,100,0,0,40,3400,4800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunfury Nethermancer - Between 0-40 Range - Cast 9613 (Phase 1)"),
+(@ENTRY,0,6,7,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Nethermancer - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Nethermancer - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Nethermancer - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Nethermancer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Nethermancer - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,11,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Nethermancer - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,12,0,0,0,100,0,35000,38000,30000,35000,11,35778,1,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Nethermancer - In Combat - Cast 35778"),
+(@ENTRY,0,13,0,2,0,100,0,0,75,15000,20000,11,17173,1,0,0,0,0,2,0,0,0,0,0,0,0,"Sunfury Nethermancer - Between 0-75% Health - Cast 17173"),
+(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Nethermancer - Between 0-15% Health - Set Event Phase 3"),
+(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Nethermancer - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Sunfury Nethermancer - Between 0-15% Health - Flee For Assist");
+
+-- Snowplain Disciple SAI
+SET @ENTRY := 26705;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowplain Disciple - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,61730,0,0,0,0,0,2,0,0,0,0,0,0,0,"Snowplain Disciple - On Aggro - Cast 61730"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowplain Disciple - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,2,100,0,0,40,4000,5000,11,61730,0,0,0,0,0,2,0,0,0,0,0,0,0,"Snowplain Disciple - Between 0-40 Range - Cast 61730 (Phase 1)"),
+(@ENTRY,0,4,5,3,2,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowplain Disciple - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowplain Disciple - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowplain Disciple - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowplain Disciple - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowplain Disciple - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Snowplain Disciple - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,14,0,100,0,1000,20,13000,16000,11,52011,1,0,0,0,0,7,0,0,0,0,0,0,0,"Snowplain Disciple - On Friendly Unit At 1000 Health Within 20 Range - Cast 52011"),
+(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowplain Disciple - Between 0-15% Health - Set Event Phase 3"),
+(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowplain Disciple - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Snowplain Disciple - Between 0-15% Health - Flee For Assist");
+
+-- Azure Magus SAI
+SET @ENTRY := 26722;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Magus - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,15530,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Magus - On Aggro - Cast 15530 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Magus - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,3400,4800,11,15530,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Magus - Between 0-40 Range - Cast 15530 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,56775,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Magus - On Aggro - Cast 56775 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Magus - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,3400,4800,11,56775,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Magus - Between 0-40 Range - Cast 56775 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Magus - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Magus - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Magus - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Magus - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Magus - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,3,0,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Magus - Between 30-100% Mana - Decrement Event Phase (Dungeon Only)"),
+(@ENTRY,0,13,0,0,0,100,2,9000,11000,9000,15000,11,37132,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Magus - In Combat - Cast 37132 (Normal Dungeon)"),
+(@ENTRY,0,14,0,0,0,100,4,9000,11000,9000,15000,11,56776,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Magus - In Combat - Cast 56776 (Heroic Dungeon)");
+
+-- 7th Legion Cleric SAI
+SET @ENTRY := 26780;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Cleric - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,25054,0,0,0,0,0,2,0,0,0,0,0,0,0,"7th Legion Cleric - On Aggro - Cast 25054"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Cleric - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,25054,0,0,0,0,0,2,0,0,0,0,0,0,0,"7th Legion Cleric - Between 0-40 Range - Cast 25054 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Cleric - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Cleric - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Cleric - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Cleric - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Cleric - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Cleric - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,14,0,100,0,7000,40,17000,24000,11,31739,0,0,0,0,0,7,0,0,0,0,0,0,0,"7th Legion Cleric - On Friendly Unit At 7000 Health Within 40 Range - Cast 31739"),
+(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Cleric - Between 0-15% Health - Set Event Phase 3"),
+(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Cleric - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"7th Legion Cleric - Between 0-15% Health - Flee For Assist");
+
+-- Drakkari Oracle SAI
+SET @ENTRY := 26795;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Oracle - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Drakkari Oracle - On Aggro - Cast 9532"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Oracle - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Drakkari Oracle - Between 0-40 Range - Cast 9532 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Oracle - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Oracle - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Oracle - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Oracle - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Oracle - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Oracle - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,0,7000,9000,12000,17000,11,52430,1,0,0,0,0,2,0,0,0,0,0,0,0,"Drakkari Oracle - In Combat - Cast 52430"),
+(@ENTRY,0,11,0,0,0,100,0,9000,12000,12000,17000,11,52431,1,0,0,0,0,5,0,0,0,0,0,0,0,"Drakkari Oracle - In Combat - Cast 52431");
+
+-- Reanimated Frost Wyrm SAI
+SET @ENTRY := 26841;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Reanimated Frost Wyrm - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,47425,0,0,0,0,0,2,0,0,0,0,0,0,0,"Reanimated Frost Wyrm - On Aggro - Cast 47425"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Reanimated Frost Wyrm - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,35,5000,7000,11,47425,0,0,0,0,0,2,0,0,0,0,0,0,0,"Reanimated Frost Wyrm - Between 0-35 Range - Cast 47425 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Reanimated Frost Wyrm - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Reanimated Frost Wyrm - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,30,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Reanimated Frost Wyrm - Between 30-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Reanimated Frost Wyrm - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Reanimated Frost Wyrm - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Reanimated Frost Wyrm - Between 15-100% Mana - Decrement Event Phase");
+
+-- Decrepit Necromancer SAI
+SET @ENTRY := 26942;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Decrepit Necromancer - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Decrepit Necromancer - On Aggro - Cast 9613"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Decrepit Necromancer - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Decrepit Necromancer - Between 0-40 Range - Cast 9613 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Decrepit Necromancer - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Decrepit Necromancer - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Decrepit Necromancer - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Decrepit Necromancer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Decrepit Necromancer - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Decrepit Necromancer - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,0,7000,10000,16000,20000,11,50659,1,0,0,0,0,2,0,0,0,0,0,0,0,"Decrepit Necromancer - In Combat - Cast 50659");
+
+-- Overseer Deathgaze SAI
+SET @ENTRY := 27122;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Overseer Deathgaze - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,12739,0,0,0,0,0,2,0,0,0,0,0,0,0,"Overseer Deathgaze - On Aggro - Cast 12739"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Overseer Deathgaze - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,12739,0,0,0,0,0,2,0,0,0,0,0,0,0,"Overseer Deathgaze - Between 0-40 Range - Cast 12739 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Overseer Deathgaze - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Overseer Deathgaze - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Overseer Deathgaze - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Overseer Deathgaze - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Overseer Deathgaze - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Overseer Deathgaze - Between 15-100% Mana - Decrement Event Phase"),
+(@ENTRY,0,10,0,0,0,100,0,9000,14000,15000,18000,11,50659,1,0,0,0,0,2,0,0,0,0,0,0,0,"Overseer Deathgaze - In Combat - Cast 50659");
+
+-- Iron Rune Overseer SAI
+SET @ENTRY := 27177;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune Overseer - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,32018,0,0,0,0,0,2,0,0,0,0,0,0,0,"Iron Rune Overseer - On Aggro - Cast 32018"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune Overseer - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,30,3400,4800,11,32018,0,0,0,0,0,2,0,0,0,0,0,0,0,"Iron Rune Overseer - Between 0-30 Range - Cast 32018 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune Overseer - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune Overseer - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune Overseer - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune Overseer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune Overseer - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune Overseer - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,11,8,0,100,1,48046,0,0,0,11,48047,0,0,0,0,0,7,0,0,0,0,0,0,0,"Iron Rune Overseer - On Spellhit By 48046 - Quest Credit"),
+(@ENTRY,0,11,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune Overseer - On Spellhit By 48046 - Forced Despawn");
+
+-- Dragonflayer Flamebinder SAI
+SET @ENTRY := 27259;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Flamebinder - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,1,0,100,1,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Flamebinder - Out Of Combat - Set Event Phase 0"),
+(@ENTRY,0,2,0,4,0,100,1,0,0,0,0,11,52209,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Flamebinder - On Aggro - Cast 52209"),
+(@ENTRY,0,3,0,4,0,100,1,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Flamebinder - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,0,9,1,100,0,0,40,3400,4800,11,52209,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Flamebinder - Between 0-40 Range - Cast 52209 (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Flamebinder - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,1,0,7,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Flamebinder - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Flamebinder - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Flamebinder - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Flamebinder - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,10,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Flamebinder - Between 15-100% Mana - Decrement Event Phase"),
+(@ENTRY,0,11,0,0,0,100,0,8000,12000,16000,19000,11,52208,1,0,0,0,0,5,0,0,0,0,0,0,0,"Dragonflayer Flamebinder - In Combat - Cast 52208"),
+(@ENTRY,0,12,0,7,0,100,1,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Flamebinder - On Evade - Set Event Phase 0");
+
+-- Risen Wintergarde Mage SAI
+SET @ENTRY := 27283;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Wintergarde Mage - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Risen Wintergarde Mage - On Aggro - Cast 9672"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Wintergarde Mage - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Risen Wintergarde Mage - Between 0-40 Range - Cast 9672 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Wintergarde Mage - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Wintergarde Mage - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Wintergarde Mage - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Wintergarde Mage - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Wintergarde Mage - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Wintergarde Mage - Between 15-100% Mana - Decrement Event Phase"),
+(@ENTRY,0,10,0,0,0,100,0,8000,12000,9000,14000,11,13339,1,0,0,0,0,5,0,0,0,0,0,0,0,"Risen Wintergarde Mage - In Combat - Cast 13339");
+
+-- Naxxramas Necrolord SAI
+SET @ENTRY := 27289;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Naxxramas Necrolord - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,51287,0,0,0,0,0,2,0,0,0,0,0,0,0,"Naxxramas Necrolord - On Aggro - Cast 51287"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Naxxramas Necrolord - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,51287,0,0,0,0,0,2,0,0,0,0,0,0,0,"Naxxramas Necrolord - Between 0-40 Range - Cast 51287 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Naxxramas Necrolord - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Naxxramas Necrolord - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Naxxramas Necrolord - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Naxxramas Necrolord - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Naxxramas Necrolord - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Naxxramas Necrolord - Between 15-100% Mana - Decrement Event Phase");
+
+-- Onslaught Raven Priest SAI
+SET @ENTRY := 27202;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Priest - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,50740,0,0,0,0,0,2,0,0,0,0,0,0,0,"Onslaught Raven Priest - On Aggro - Cast 50740"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Priest - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,50740,0,0,0,0,0,2,0,0,0,0,0,0,0,"Onslaught Raven Priest - Between 0-40 Range - Cast 50740 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Priest - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Priest - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Priest - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Priest - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Priest - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,1,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Priest - Between 15-100% Mana - Decrement Event Phase (Phase 1)"),
+(@ENTRY,0,10,0,2,0,100,0,0,30,14000,18000,11,50750,1,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Priest - Between 0-30% Health - Cast 50750"),
+(@ENTRY,0,11,12,8,0,100,1,48679,0,0,0,11,48655,0,0,0,0,0,7,0,0,0,0,0,0,0,"Onslaught Raven Priest - On Spellhit By 48679 - Quest Credit"),
+(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Priest - On Spellhit By 48679 - Forced Despawn");
+
+-- Bishop Street SAI
+SET @ENTRY := 27246;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bishop Street - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20820,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bishop Street - On Aggro - Cast 20820"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bishop Street - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,20820,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bishop Street - Between 0-40 Range - Cast 20820 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bishop Street - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bishop Street - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bishop Street - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bishop Street - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bishop Street - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bishop Street - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,0,12000,16000,45000,55000,11,11974,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bishop Street - In Combat - Cast 11974");
+
+-- Onslaught Raven Archon SAI
+SET @ENTRY := 27357;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Archon - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,50740,0,0,0,0,0,2,0,0,0,0,0,0,0,"Onslaught Raven Archon - On Aggro - Cast 50740"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Archon - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,6000,8500,11,50740,0,0,0,0,0,5,0,0,0,0,0,0,0,"Onslaught Raven Archon - Between 0-40 Range - Cast 50740 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Archon - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Archon - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Archon - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Archon - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Archon - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Archon - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,2,0,100,0,0,30,19000,23000,11,50743,1,0,0,0,0,1,0,0,0,0,0,0,0,"Onslaught Raven Archon - Between 0-30% Health - Cast 50743");
+
+-- Thel'zan the Duskbringer SAI
+SET @ENTRY := 27383;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thel'zan the Duskbringer - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,31256,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thel'zan the Duskbringer - Out Of Combat - Cast 31256"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,42719,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thel'zan the Duskbringer - On Aggro - Cast 42719"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thel'zan the Duskbringer - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,0,9,1,100,0,0,40,3400,4800,11,42719,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thel'zan the Duskbringer - Between 0-40 Range - Cast 42719 (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thel'zan the Duskbringer - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thel'zan the Duskbringer - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thel'zan the Duskbringer - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thel'zan the Duskbringer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thel'zan the Duskbringer - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,10,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thel'zan the Duskbringer - Between 15-100% Mana - Decrement Event Phase"),
+(@ENTRY,0,11,0,0,0,100,0,7000,11000,14000,18000,11,39268,1,0,0,0,0,5,0,0,0,0,0,0,0,"Thel'zan the Duskbringer - In Combat - Cast 39268"),
+(@ENTRY,0,12,0,9,0,100,0,0,10,15000,20000,11,22643,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thel'zan the Duskbringer - Between 0-10 Range - Cast 22643"),
+(@ENTRY,0,13,0,2,0,100,1,0,50,0,0,11,50497,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thel'zan the Duskbringer - Between 0-50% Health - Cast 50497"),
+(@ENTRY,0,14,0,2,0,100,1,0,15,0,0,11,50497,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thel'zan the Duskbringer - Between 0-15% Health - Cast 50497");
+
+-- Necrolord Amarion SAI
+SET @ENTRY := 27508;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord Amarion - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,51339,0,0,0,0,0,2,0,0,0,0,0,0,0,"Necrolord Amarion - On Aggro - Cast 51339"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord Amarion - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3800,4500,11,51339,0,0,0,0,0,5,0,0,0,0,0,0,0,"Necrolord Amarion - Between 0-40 Range - Cast 51339 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord Amarion - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord Amarion - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord Amarion - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord Amarion - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord Amarion - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord Amarion - Between 15-100% Mana - Decrement Event Phase");
+
+-- Burning Depths Necromancer SAI
+SET @ENTRY := 27358;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Depths Necromancer - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,51431,0,0,0,0,0,2,0,0,0,0,0,0,0,"Burning Depths Necromancer - On Aggro - Cast 51431"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Depths Necromancer - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,7000,10000,11,51431,0,0,0,0,0,2,0,0,0,0,0,0,0,"Burning Depths Necromancer - Between 0-40 Range - Cast 51431 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Depths Necromancer - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Depths Necromancer - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Depths Necromancer - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Depths Necromancer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Depths Necromancer - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Depths Necromancer - Between 15-100% Mana - Decrement Event Phase (Phase 2)");
+
+-- Frigid Necromancer SAI
+SET @ENTRY := 27539;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,50324,1,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer - On Aggro - Cast 50324"),
+(@ENTRY,0,2,3,61,0,100,0,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frigid Necromancer - On Aggro - Cast 9613"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,0,9,1,100,0,0,40,3400,4800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frigid Necromancer - Between 0-40 Range - Cast 9613 (Phase 1)"),
+(@ENTRY,0,5,6,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,10,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,11,0,2,0,100,1,0,30,0,0,11,50324,1,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer - Between 0-30% Health - Cast 50324");
+
+-- Angrathar Necrolord SAI
+SET @ENTRY := 27603;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Angrathar Necrolord - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Angrathar Necrolord - On Aggro - Cast 9613"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Angrathar Necrolord - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Angrathar Necrolord - Between 0-40 Range - Cast 9613 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Angrathar Necrolord - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Angrathar Necrolord - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Angrathar Necrolord - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Angrathar Necrolord - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Angrathar Necrolord - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Angrathar Necrolord - Between 15-100% Mana - Decrement Event Phase (Phase 2)");
diff --git a/sql/updates/world/2013_11_29_06_world_sai.sql b/sql/updates/world/2013_11_29_06_world_sai.sql
new file mode 100644
index 00000000000..5189b117598
--- /dev/null
+++ b/sql/updates/world/2013_11_29_06_world_sai.sql
@@ -0,0 +1,298 @@
+-- Azure Spellbinder SAI
+SET @ENTRY := 27635;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Spellbinder - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,50702,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Spellbinder - On Aggro - Cast 50702 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Spellbinder - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,5000,7000,11,50702,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Spellbinder - Between 0-40 Range - Cast 50702 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,59212,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Spellbinder - On Aggro - Cast 59212 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Spellbinder - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,5000,7000,11,59212,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Spellbinder - Between 0-40 Range - Cast 59212 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Spellbinder - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Spellbinder - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Spellbinder - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Spellbinder - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Spellbinder - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,3,2,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Spellbinder - Between 15-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,13,0,0,0,100,2,6000,9000,9000,12000,11,38047,1,0,0,0,0,5,0,0,0,0,0,0,0,"Azure Spellbinder - In Combat - Cast 38047 (Normal Dungeon)"),
+(@ENTRY,0,14,0,0,0,100,4,6000,9000,9000,12000,11,50566,1,0,0,0,0,5,0,0,0,0,0,0,0,"Azure Spellbinder - In Combat - Cast 50566 (Heroic Dungeon)"),
+(@ENTRY,0,15,0,0,0,100,6,9000,12000,4000,8000,11,50572,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Spellbinder - In Combat - Cast 50572 (Dungeon Only)");
+
+-- Azure Ley-Whelp SAI
+SET @ENTRY := 27636;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Ley-Whelp - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,50705,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Ley-Whelp - On Aggro - Cast 50705 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Ley-Whelp - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,4000,6000,11,50705,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Ley-Whelp - Between 0-40 Range - Cast 50705 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,59210,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Ley-Whelp - On Aggro - Cast 59210 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Ley-Whelp - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,4000,6000,11,59210,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Ley-Whelp - Between 0-40 Range - Cast 59210 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Ley-Whelp - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Ley-Whelp - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Ley-Whelp - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Ley-Whelp - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Ley-Whelp - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,3,0,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Ley-Whelp - Between 15-100% Mana - Decrement Event Phase (Dungeon Only)");
+
+-- Ring-Lord Sorceress SAI
+SET @ENTRY := 27687;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,50715,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ring-Lord Sorceress - On Aggro - Cast 50715 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,15000,19000,11,50715,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 0-40 Range - Cast 50715 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,59278,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ring-Lord Sorceress - On Aggro - Cast 59278 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,5,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,15000,19000,11,59278,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 0-40 Range - Cast 59278 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,3,2,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 15-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,13,0,0,0,100,2,9000,12000,15000,18000,11,16102,0,0,0,0,0,5,0,0,0,0,0,0,0,"Ring-Lord Sorceress - In Combat - Cast 16102 (Normal Dungeon)"),
+(@ENTRY,0,14,0,0,0,100,4,9000,12000,15000,18000,11,61402,0,0,0,0,0,5,0,0,0,0,0,0,0,"Ring-Lord Sorceress - In Combat - Cast 61402 (Heroic Dungeon)"),
+(@ENTRY,0,15,16,2,0,100,7,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 0-15% Health - Set Event Phase 3 (Dungeon Only)"),
+(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 0-15% Health - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 0-15% Health - Flee For Assist (Dungeon Only)");
+
+-- Fordragon High Priest SAI
+SET @ENTRY := 27677;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon High Priest - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,25054,0,0,0,0,0,2,0,0,0,0,0,0,0,"Fordragon High Priest - On Aggro - Cast 25054"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon High Priest - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,25054,0,0,0,0,0,2,0,0,0,0,0,0,0,"Fordragon High Priest - Between 0-40 Range - Cast 25054 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon High Priest - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon High Priest - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon High Priest - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon High Priest - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon High Priest - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon High Priest - Between 15-100% Mana - Decrement Event Phase"),
+(@ENTRY,0,10,0,0,0,100,0,18000,25000,40000,53000,11,32595,1,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon High Priest - In Combat - Cast 32595"),
+(@ENTRY,0,11,0,0,0,100,0,9000,15000,15000,23000,11,49306,1,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon High Priest - In Combat - Cast 49306"),
+(@ENTRY,0,12,0,14,0,100,0,3000,40,17000,21000,11,25058,1,0,0,0,0,7,0,0,0,0,0,0,0,"Fordragon High Priest - On Friendly Unit At 3000 Health Within 40 Range - Cast 25058"),
+(@ENTRY,0,13,0,2,0,100,1,0,15,0,0,11,49348,1,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon High Priest - Between 0-15% Health - Cast 49348");
+
+-- Warsong Shaman SAI
+SET @ENTRY := 27678;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warsong Shaman - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,39945,0,0,0,0,0,2,0,0,0,0,0,0,0,"Warsong Shaman - On Aggro - Cast 39945"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warsong Shaman - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,30,6000,8000,11,39945,0,0,0,0,0,5,0,0,0,0,0,0,0,"Warsong Shaman - Between 0-30 Range - Cast 39945 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warsong Shaman - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warsong Shaman - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warsong Shaman - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warsong Shaman - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warsong Shaman - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Warsong Shaman - Between 15-100% Mana - Decrement Event Phase"),
+(@ENTRY,0,10,0,0,0,100,0,2000,4000,600000,600000,11,34827,1,0,0,0,0,1,0,0,0,0,0,0,0,"Warsong Shaman - In Combat - Cast 34827"),
+(@ENTRY,0,11,0,0,0,100,0,8000,14000,11000,15000,11,25025,0,0,0,0,0,5,0,0,0,0,0,0,0,"Warsong Shaman - In Combat - Cast 25025"),
+(@ENTRY,0,12,0,0,0,100,0,8000,13000,25000,31000,11,33560,1,0,0,0,0,1,0,0,0,0,0,0,0,"Warsong Shaman - In Combat - Cast 33560"),
+(@ENTRY,0,13,0,14,0,100,0,5000,40,15000,18000,11,49309,1,0,0,0,0,7,0,0,0,0,0,0,0,"Warsong Shaman - On Friendly Unit At 5000 Health Within 40 Range - Cast 49309"),
+(@ENTRY,0,14,0,14,0,100,0,3000,40,12000,15000,11,16367,1,0,0,0,0,7,0,0,0,0,0,0,0,"Warsong Shaman - On Friendly Unit At 3000 Health Within 40 Range - Cast 16367");
+
+-- Dahlia Suntouch SAI
+SET @ENTRY := 27680;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dahlia Suntouch - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,28993,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dahlia Suntouch - On Aggro - Cast 28993"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dahlia Suntouch - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,28993,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dahlia Suntouch - Between 0-40 Range - Cast 28993 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dahlia Suntouch - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dahlia Suntouch - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dahlia Suntouch - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dahlia Suntouch - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dahlia Suntouch - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dahlia Suntouch - Between 15-100% Mana - Decrement Event Phase"),
+(@ENTRY,0,10,0,0,0,100,0,6000,11000,9000,12000,11,51899,32,0,0,0,0,5,0,0,0,0,0,0,0,"Dahlia Suntouch - In Combat - Cast 51899"),
+(@ENTRY,0,11,0,0,0,100,0,5000,6000,15000,18000,11,51897,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dahlia Suntouch - In Combat - Cast 51897");
+
+-- Frigid Necromancer Attacker SAI
+SET @ENTRY := 27687;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer Attacker - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frigid Necromancer Attacker - On Aggro - Cast 9613"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer Attacker - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frigid Necromancer Attacker - Between 0-40 Range - Cast 9613 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer Attacker - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer Attacker - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer Attacker - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer Attacker - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer Attacker - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer Attacker - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,0,2000,4000,60000,70000,11,50324,1,0,0,0,0,1,0,0,0,0,0,0,0,"Frigid Necromancer Attacker - In Combat - Cast 50324");
+
+-- Master Necromancer SAI
+SET @ENTRY := 27732;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Necromancer - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,15537,0,0,0,0,0,2,0,0,0,0,0,0,0,"Master Necromancer - On Aggro - Cast 15537 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Necromancer - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,5000,7000,11,15537,0,0,0,0,0,2,0,0,0,0,0,0,0,"Master Necromancer - Between 0-40 Range - Cast 15537 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,61558,0,0,0,0,0,2,0,0,0,0,0,0,0,"Master Necromancer - On Aggro - Cast 61558 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Necromancer - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,5000,7000,11,61558,0,0,0,0,0,2,0,0,0,0,0,0,0,"Master Necromancer - Between 0-40 Range - Cast 61558 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Necromancer - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Necromancer - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Necromancer - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Necromancer - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Necromancer - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,3,2,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Master Necromancer - Between 15-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,13,0,0,0,100,6,5000,9000,90000,180000,11,52611,1,0,0,0,0,1,0,0,0,0,0,0,0,"Master Necromancer - In Combat - Cast 52611 (Dungeon Only)");
+
+-- High Elf Mage-Priest SAI
+SET @ENTRY := 27747;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Elf Mage-Priest - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,7,0,0,0,0,11,34232,0,0,0,0,0,2,0,0,0,0,0,0,0,"High Elf Mage-Priest - On Aggro - Cast 34232 (Dungeon Only)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Elf Mage-Priest - On Aggro - Increment Event Phase (Dungeon Only)"),
+(@ENTRY,0,3,0,9,1,100,6,0,40,3400,4800,11,34232,0,0,0,0,0,2,0,0,0,0,0,0,0,"High Elf Mage-Priest - Between 0-40 Range - Cast 34232 (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Elf Mage-Priest - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Elf Mage-Priest - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Elf Mage-Priest - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Elf Mage-Priest - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Elf Mage-Priest - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"High Elf Mage-Priest - Between 15-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,10,0,14,0,100,6,5000,40,12000,18000,11,15586,1,0,0,0,0,7,0,0,0,0,0,0,0,"High Elf Mage-Priest - On Friendly Unit At 5000 Health Within 40 Range - Cast 15586 (Dungeon Only)");
+
+-- High Shaman Bloodpaw SAI
+SET @ENTRY := 27762;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Shaman Bloodpaw - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,22414,0,0,0,0,0,2,0,0,0,0,0,0,0,"High Shaman Bloodpaw - On Aggro - Cast 22414"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Shaman Bloodpaw - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,22414,0,0,0,0,0,2,0,0,0,0,0,0,0,"High Shaman Bloodpaw - Between 0-40 Range - Cast 22414 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Shaman Bloodpaw - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Shaman Bloodpaw - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Shaman Bloodpaw - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Shaman Bloodpaw - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"High Shaman Bloodpaw - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,4,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"High Shaman Bloodpaw - Between 15-100% Mana - Decrement Event Phase (Phase 4)"),
+(@ENTRY,0,10,0,0,0,100,0,9000,12000,9000,12000,11,22355,1,0,0,0,0,5,0,0,0,0,0,0,0,"High Shaman Bloodpaw - In Combat - Cast 22355"),
+(@ENTRY,0,11,0,0,0,100,0,2000,5000,9000,12000,11,19133,0,0,0,0,0,2,0,0,0,0,0,0,0,"High Shaman Bloodpaw - In Combat - Cast 19133"),
+(@ENTRY,0,12,0,2,0,100,0,0,30,14000,21000,11,28902,1,0,0,0,0,1,0,0,0,0,0,0,0,"High Shaman Bloodpaw - Between 0-30% Health - Cast 28902");
+
+-- Necrolord Horus SAI
+SET @ENTRY := 27805;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord Horus - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20298,0,0,0,0,0,2,0,0,0,0,0,0,0,"Necrolord Horus - On Aggro - Cast 20298"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord Horus - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,20298,0,0,0,0,0,2,0,0,0,0,0,0,0,"Necrolord Horus - Between 0-40 Range - Cast 20298 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord Horus - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord Horus - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord Horus - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord Horus - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord Horus - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord Horus - Between 15-100% Mana - Decrement Event Phase"),
+(@ENTRY,0,10,0,0,0,100,0,4000,8000,9000,12000,11,51340,32,0,0,0,0,5,0,0,0,0,0,0,0,"Necrolord Horus - In Combat - Cast 51340");
+
+-- Necrolord X'avius SAI
+SET @ENTRY := 27826;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord X'avius - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20298,0,0,0,0,0,2,0,0,0,0,0,0,0,"Necrolord X'avius - On Aggro - Cast 20298"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord X'avius - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,20298,0,0,0,0,0,2,0,0,0,0,0,0,0,"Necrolord X'avius - Between 0-40 Range - Cast 20298 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord X'avius - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord X'avius - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord X'avius - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord X'avius - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord X'avius - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord X'avius - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,0,9000,12000,15000,18000,11,51337,1,0,0,0,0,1,0,0,0,0,0,0,0,"Necrolord X'avius - In Combat - Cast 51337");
+
+-- Rainspeaker Oracle SAI
+SET @ENTRY := 28025;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Rainspeaker Oracle - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,15305,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rainspeaker Oracle - On Aggro - Cast 15305"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Rainspeaker Oracle - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,6000,8000,11,15305,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rainspeaker Oracle - Between 0-40 Range - Cast 15305 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Rainspeaker Oracle - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Rainspeaker Oracle - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Rainspeaker Oracle - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Rainspeaker Oracle - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Rainspeaker Oracle - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Rainspeaker Oracle - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,0,3000,6000,12000,15000,11,54919,1,0,0,0,0,5,0,0,0,0,0,0,0,"Rainspeaker Oracle - In Combat - Cast 54919");
+
+-- Sparktouched Oracle SAI
+SET @ENTRY := 28112;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sparktouched Oracle - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,54916,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sparktouched Oracle - On Aggro - Cast 54916"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sparktouched Oracle - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4800,11,54916,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sparktouched Oracle - Between 0-40 Range - Cast 54916 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sparktouched Oracle - Between 0-7% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sparktouched Oracle - Between 0-7% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sparktouched Oracle - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sparktouched Oracle - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sparktouched Oracle - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Sparktouched Oracle - Between 15-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,9,0,100,0,0,30,9000,12000,11,12549,1,0,0,0,0,2,0,0,0,0,0,0,0,"Sparktouched Oracle - Between 0-30 Range - Cast 12549");
+
+-- Snowflake SAI
+SET @ENTRY := 28153;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowflake - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,50721,0,0,0,0,0,2,0,0,0,0,0,0,0,"Snowflake - On Aggro - Cast 50721 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowflake - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,2,100,2,0,40,3400,4800,11,50721,0,0,0,0,0,2,0,0,0,0,0,0,0,"Snowflake - Between 0-40 Range - Cast 50721 (Normal Dungeon) (Phase 2)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,59280,0,0,0,0,0,2,0,0,0,0,0,0,0,"Snowflake - On Aggro - Cast 59280 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowflake - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,2,100,4,0,40,3400,4800,11,59280,0,0,0,0,0,2,0,0,0,0,0,0,0,"Snowflake - Between 0-40 Range - Cast 59280 (Heroic Dungeon) (Phase 2)"),
+(@ENTRY,0,7,8,3,2,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowflake - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,8,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowflake - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,9,0,9,2,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowflake - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,10,0,9,2,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowflake - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,11,0,9,2,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowflake - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,12,0,0,0,100,7,5000,9000,0,0,11,44604,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowflake - In Combat - Cast 44604 (Dungeon Only)");
diff --git a/sql/updates/world/2013_11_30_00_world_sai.sql b/sql/updates/world/2013_11_30_00_world_sai.sql
new file mode 100644
index 00000000000..1db8146179d
--- /dev/null
+++ b/sql/updates/world/2013_11_30_00_world_sai.sql
@@ -0,0 +1,1018 @@
+-- Atal'ai Priest SAI
+SET @ENTRY := 5269;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,2,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - On Reset - Disable Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,0,1,0,100,2,1000,1000,1800000,1800000,11,31976,1,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Out of Combat - Cast 'Shadow Shield' (Normal Dungeon)"),
+(@ENTRY,0,2,3,4,0,100,2,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Atal'ai Priest - On Aggro - Cast 'Shadow Bolt' (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,2,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - On Aggro - Increment Phase (Normal Dungeon)"),
+(@ENTRY,0,4,0,9,1,100,2,0,40,2400,3800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Atal'ai Priest - Within 0-40 Range - Cast 'Shadow Bolt' (Phase 1) (Normal Dungeon)"),
+(@ENTRY,0,5,6,3,1,100,2,0,15,100,100,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Between 0-15% Mana - Enable Combat Movement (Phase 1) (Normal Dungeon)"),
+(@ENTRY,0,6,0,61,1,100,2,0,15,100,100,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Between 0-15% Mana - Increment Phase (Phase 1) (Normal Dungeon)"),
+(@ENTRY,0,7,0,9,1,100,2,35,80,100,100,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Within 35-80 Range - Enable Combat Movement (Phase 1) (Normal Dungeon)"),
+(@ENTRY,0,8,0,9,1,100,2,5,15,100,100,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Within 5-15 Range - Disable Combat Movement (Phase 1) (Normal Dungeon)"),
+(@ENTRY,0,9,0,9,1,100,2,0,5,100,100,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Within 0-5 Range - Enable Combat Movement (Phase 1) (Normal Dungeon)"),
+(@ENTRY,0,10,0,3,1,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Between 30-100% Mana - Decrement Phase (Phase 1) (Normal Dungeon)"),
+(@ENTRY,0,11,0,14,0,100,2,1000,30,11000,15000,11,11642,1,0,0,0,0,7,0,0,0,0,0,0,0,"Atal'ai Priest - Friendly At 1000 Health - Cast 'Heal' (Normal Dungeon)"),
+(@ENTRY,0,12,13,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Between 0-15% Health - Set Event Phase 3 (No Repeat) (Normal Dungeon)"),
+(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Between 0-15% Health - Enable Combat Movement (No Repeat) (Normal Dungeon)"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,8,0,0,0,0,0,0,0,"Atal'ai Priest - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"),
+(@ENTRY,0,15,0,25,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - On Reset - Disable Combat Movement"),
+(@ENTRY,0,16,0,1,0,100,0,1000,1000,1800000,1800000,11,31976,1,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Out of Combat - Cast 'Shadow Shield'"),
+(@ENTRY,0,17,18,4,0,100,0,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Atal'ai Priest - On Aggro - Cast 'Shadow Bolt'"),
+(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - On Aggro - Increment Phase"),
+(@ENTRY,0,19,0,9,1,100,0,0,40,2400,3800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Atal'ai Priest - Within 0-40 Range - Cast 'Shadow Bolt' (Phase 1)"),
+(@ENTRY,0,20,21,3,1,100,0,0,15,100,100,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Between 0-15% Mana - Enable Combat Movement (Phase 1)"),
+(@ENTRY,0,21,0,61,1,100,0,0,15,100,100,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Between 0-15% Mana - Increment Phase (Phase 1)"),
+(@ENTRY,0,22,0,9,1,100,0,35,80,100,100,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Within 35-80 Range - Enable Combat Movement (Phase 1)"),
+(@ENTRY,0,23,0,9,1,100,0,5,15,100,100,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Within 5-15 Range - Disable Combat Movement (Phase 1)"),
+(@ENTRY,0,24,0,9,1,100,0,0,5,100,100,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Within 0-5 Range - Enable Combat Movement (Phase 1)"),
+(@ENTRY,0,25,0,3,1,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Between 30-100% Mana - Decrement Phase (Phase 1)"),
+(@ENTRY,0,26,0,14,0,100,0,1000,30,11000,15000,11,11642,1,0,0,0,0,7,0,0,0,0,0,0,0,"Atal'ai Priest - Friendly At 1000 Health - Cast 'Heal'"),
+(@ENTRY,0,27,28,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Between 0-15% Health - Set Event Phase 3 (No Repeat)"),
+(@ENTRY,0,28,29,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Between 0-15% Health - Enable Combat Movement (No Repeat)"),
+(@ENTRY,0,29,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,8,0,0,0,0,0,0,0,"Atal'ai Priest - Between 0-15% Health - Flee For Assist (No Repeat)");
+
+-- Atal'ai Witch Doctor SAI
+SET @ENTRY := 5259;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,2,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - On Reset - Disable Combat Movement (Normal Dungeon)"),
+(@ENTRY,0,1,2,4,0,100,2,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - On Aggro - Cast 'Lightning Bolt' (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - On Aggro - Increment Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,3500,5200,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - Within 0-40 Range - Cast 'Lightning Bolt' (Phase 1) (Normal Dungeon)"),
+(@ENTRY,0,4,5,3,1,100,2,0,15,100,100,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - Between 0-15% Mana - Enable Combat Movement (Phase 1) (Normal Dungeon)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - Between 0-15% Mana - Increment Phase (Phase 1) (Normal Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,2,35,80,100,100,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - Within 35-80 Range - Enable Combat Movement (Phase 1) (Normal Dungeon)"),
+(@ENTRY,0,7,0,9,1,100,2,5,15,100,100,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - Within 5-15 Range - Disable Combat Movement (Phase 1) (Normal Dungeon)"),
+(@ENTRY,0,8,0,9,1,100,2,0,5,100,100,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - Within 0-5 Range - Enable Combat Movement (Phase 1) (Normal Dungeon)"),
+(@ENTRY,0,9,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - Between 30-100% Mana - Decrement Phase (Phase 2) (Normal Dungeon)"),
+(@ENTRY,0,10,0,0,0,100,2,4900,13100,13100,18400,11,12058,1,0,0,0,0,2,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - In Combat - Cast 'Chain Lightning' (Normal Dungeon)"),
+(@ENTRY,0,11,0,0,0,100,2,10900,26100,17100,35100,11,11641,1,0,0,0,0,5,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - In Combat - Cast 'Hex' (Normal Dungeon)"),
+(@ENTRY,0,12,0,14,0,100,2,1800,40,12700,23100,11,11986,1,0,0,0,0,7,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - Friendly At 1800 Health - Cast 'Healing Wave' (Normal Dungeon)"),
+(@ENTRY,0,13,14,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - Between 0-15% Health - Set Event Phase 3 (No Repeat) (Normal Dungeon)"),
+(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - Between 0-15% Health - Enable Combat Movement (No Repeat) (Normal Dungeon)"),
+(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)");
+
+-- Tarren Mill Lookout SAI
+SET @ENTRY := 18094;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - Out Of Combat - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"Tarren Mill Lookout - On Aggro - Cast 15620 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,5,9,1,100,2,5,30,2300,5000,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"Tarren Mill Lookout - Between 5-30 Range - Cast 15620 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,7,4,0,100,5,0,0,0,0,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Tarren Mill Lookout - On Aggro - Cast 16100 (Heroic Dungeon)"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,8,9,9,1,100,4,5,30,2300,5000,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Tarren Mill Lookout - Between 5-30 Range - Cast 16100 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,10,11,9,1,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - Between 25-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - Between 25-80 Range - Start Auto Attack (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,13,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,14,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - Between 0-5 Range - Set Sheath Melee (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - Between 0-5 Range - Start Auto Attack (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,15,16,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,16,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - Between 5-15 Range - Stop Auto Attack (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,17,18,0,1,100,6,14000,19000,14000,19000,11,17174,1,0,0,0,0,5,0,0,0,0,0,0,0,"Tarren Mill Lookout - In Combat - Cast 17174 (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,18,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - In Combat - Set Sheath Ranged (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,19,20,0,1,100,6,8000,11000,17000,21000,11,35511,1,0,0,0,0,2,0,0,0,0,0,0,0,"Tarren Mill Lookout - In Combat - Cast 35511 (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,20,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - In Combat - Set Sheath Ranged (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,21,22,2,0,100,7,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - Between 0-15% Health - Increment Event Phase (Dungeon Only)"),
+(@ENTRY,0,22,23,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - Between 0-15% Health - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,23,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Tarren Mill Lookout - Between 0-15% Health - Flee For Assist (Dungeon Only)"),
+(@ENTRY,0,24,0,7,0,100,7,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tarren Mill Lookout - On Evade - Set Sheath Melee (Dungeon Only)");
+
+-- Feralfen Hunter SAI
+SET @ENTRY := 18113;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Feralfen Hunter - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Feralfen Hunter - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,0,1,0,100,1,1000,1000,0,0,11,32060,1,0,0,0,0,1,0,0,0,0,0,0,0,"Feralfen Hunter - Out Of Combat - Cast 32060"),
+(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Feralfen Hunter - On Aggro - Cast 6660"),
+(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Feralfen Hunter - On Aggro - Increment Event Phase"),
+(@ENTRY,0,5,6,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Feralfen Hunter - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Feralfen Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,7,8,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Feralfen Hunter - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Feralfen Hunter - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,9,10,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Feralfen Hunter - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Feralfen Hunter - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Feralfen Hunter - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,12,13,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Feralfen Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,13,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Feralfen Hunter - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,14,0,0,0,100,0,4000,8000,18000,24000,11,31975,0,0,0,0,0,2,0,0,0,0,0,0,0,"Feralfen Hunter - In Combat - Cast 31975"),
+(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Feralfen Hunter - Between 0-15% Health - Increment Event Phase"),
+(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Feralfen Hunter - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Feralfen Hunter - Between 0-15% Health - Flee For Assist"),
+(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Feralfen Hunter - On Evade - Set Sheath Melee");
+
+-- Tuurem Hunter SAI
+SET @ENTRY := 18457;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tuurem Hunter - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tuurem Hunter - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Tuurem Hunter - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tuurem Hunter - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Tuurem Hunter - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tuurem Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tuurem Hunter - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tuurem Hunter - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tuurem Hunter - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tuurem Hunter - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tuurem Hunter - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tuurem Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tuurem Hunter - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tuurem Hunter - Between 0-15% Health - Increment Event Phase"),
+(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tuurem Hunter - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Tuurem Hunter - Between 0-15% Health - Flee For Assist"),
+(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tuurem Hunter - On Evade - Set Sheath Melee");
+
+-- Unliving Stalker SAI
+SET @ENTRY := 18501;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - Out Of Combat - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,15547,0,0,0,0,0,2,0,0,0,0,0,0,0,"Unliving Stalker - On Aggro - Cast 15547 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,5,9,0,100,2,5,30,2300,5000,11,15547,0,0,0,0,0,2,0,0,0,0,0,0,0,"Unliving Stalker - Between 5-30 Range - Cast 15547 (Normal Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,6,7,4,0,100,5,0,0,0,0,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Unliving Stalker - On Aggro - Cast 16100 (Heroic Dungeon)"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,8,9,9,0,100,4,5,30,2300,5000,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Unliving Stalker - Between 5-30 Range - Cast 16100 (Heroic Dungeon)"),
+(@ENTRY,0,9,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon)"),
+(@ENTRY,0,10,11,9,0,100,6,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - Between 25-80 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,11,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - Between 25-80 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,12,13,9,0,100,6,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - Between 0-5 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - Between 0-5 Range - Set Sheath Melee (Dungeon Only)"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - Between 0-5 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,15,16,9,0,100,6,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - Between 5-15 Range - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - Between 5-15 Range - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,17,0,0,0,100,6,5000,5000,20000,20000,11,32829,1,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - In Combat - Cast 32829 (Dungeon Only)"),
+(@ENTRY,0,18,0,9,0,100,2,5,20,10000,12000,11,31975,1,0,0,0,0,5,0,0,0,0,0,0,0,"Unliving Stalker - Between 5-20 Range - Cast 31975 (Normal Dungeon)"),
+(@ENTRY,0,19,0,9,0,100,4,5,20,10000,12000,11,35511,1,0,0,0,0,5,0,0,0,0,0,0,0,"Unliving Stalker - Between 5-20 Range - Cast 35511 (Heroic Dungeon)"),
+(@ENTRY,0,20,0,9,0,100,6,5,20,15000,16000,11,37551,1,0,0,0,0,5,0,0,0,0,0,0,0,"Unliving Stalker - Between 5-20 Range - Cast 37551 (Dungeon Only)"),
+(@ENTRY,0,21,0,9,0,100,6,5,20,15000,16000,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - Between 5-20 Range - Set Sheath Ranged (Dungeon Only)"),
+(@ENTRY,0,22,23,7,0,100,7,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - On Evade - Set Sheath Melee (Dungeon Only)"),
+(@ENTRY,0,23,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unliving Stalker - On Evade - Forced Despawn (Dungeon Only)");
+
+-- Darkspear Axe Thrower SAI
+SET @ENTRY := 18970;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Axe Thrower - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Axe Thrower - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Darkspear Axe Thrower - On Aggro - Cast 10277"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Axe Thrower - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Darkspear Axe Thrower - Between 5-30 Range - Cast 10277 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Axe Thrower - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Axe Thrower - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Axe Thrower - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Axe Thrower - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Axe Thrower - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Axe Thrower - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Axe Thrower - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Axe Thrower - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Axe Thrower - Between 0-15% Health - Increment Event Phase"),
+(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Axe Thrower - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Darkspear Axe Thrower - Between 0-15% Health - Flee For Assist"),
+(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Axe Thrower - On Evade - Set Sheath Melee");
+
+-- Master Daellis Dawnstrike SAI
+SET @ENTRY := 19705;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,0,50,9000,12000,11,35964,1,0,0,0,0,2,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Between 0-50 Range - Cast 35964 (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Between 0-50 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,10,11,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,11,12,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,13,14,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,15,16,9,0,100,0,0,5,16000,21000,11,35963,1,0,0,0,0,2,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Between 0-5 Range - Cast 35963"),
+(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,79,30,150,0,0,0,0,1,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Between 0-5 Range - Set Ranged Movement Distance 30 Angle 150"),
+(@ENTRY,0,17,18,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Between 0-15% Health - Increment Event Phase"),
+(@ENTRY,0,18,19,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,19,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - Between 0-15% Health - Flee For Assist"),
+(@ENTRY,0,20,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Master Daellis Dawnstrike - On Evade - Set Sheath Melee");
+
+-- Sunfury Archer SAI
+SET @ENTRY := 19707;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Archer - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Archer - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunfury Archer - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Archer - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunfury Archer - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Archer - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,10,40,9000,12000,11,37847,1,0,0,0,0,2,0,0,0,0,0,0,0,"Sunfury Archer - Between 10-40 Range - Cast 37847 (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Archer - Between 10-40 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Archer - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Archer - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,10,11,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Archer - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,11,13,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Archer - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Archer - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,13,14,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Archer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Archer - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,15,0,9,0,100,0,0,20,12000,15000,11,12024,1,0,0,0,0,2,0,0,0,0,0,0,0,"Sunfury Archer - Between 0-20 Range - Cast 12024"),
+(@ENTRY,0,16,0,9,0,100,1,0,10,0,0,79,30,150,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Archer - Between 0-10 Range - Set Ranged Movement Distance 30 Angle 150"),
+(@ENTRY,0,17,18,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Archer - Between 0-15% Health - Increment Event Phase"),
+(@ENTRY,0,18,19,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Archer - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,19,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Sunfury Archer - Between 0-15% Health - Flee For Assist"),
+(@ENTRY,0,20,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Archer - On Evade - Set Sheath Melee");
+
+-- Sunfury Geologist SAI
+SET @ENTRY := 19779;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Geologist - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Geologist - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,36645,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunfury Geologist - On Aggro - Cast 36645"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Geologist - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,36645,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunfury Geologist - Between 5-30 Range - Cast 36645 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Geologist - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Geologist - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Geologist - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Geologist - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Geologist - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Geologist - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Geologist - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Geologist - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,9,0,100,0,0,5,5000,9000,11,35918,32,0,0,0,0,2,0,0,0,0,0,0,0,"Sunfury Geologist - Between 0-5 Range - Cast 35918"),
+(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Geologist - Between 0-15% Health - Increment Event Phase"),
+(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Geologist - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Sunfury Geologist - Between 0-15% Health - Flee For Assist"),
+(@ENTRY,0,19,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Geologist - On Evade - Set Sheath Melee");
+
+-- Sunfury Bowman SAI
+SET @ENTRY := 20207;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,11,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - On Respawn - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - On Respawn - Stop Auto Attack"),
+(@ENTRY,0,2,3,1,0,100,0,5000,5000,10000,70000,11,33796,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - Out Of Combat - Cast 33796"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - Out Of Combat - Set Sheath Ranged"),
+(@ENTRY,0,4,5,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunfury Bowman - On Aggro - Cast 6660"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - On Aggro - Increment Event Phase"),
+(@ENTRY,0,6,7,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunfury Bowman - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,10,40,7000,9000,11,37847,1,0,0,0,0,2,0,0,0,0,0,0,0,"Sunfury Bowman - Between 10-40 Range - Cast 37847 (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - Between 10-40 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,10,11,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,12,13,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,13,14,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,15,16,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,16,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,17,0,9,0,100,0,0,20,12000,15000,11,12024,1,0,0,0,0,2,0,0,0,0,0,0,0,"Sunfury Bowman - Between 0-20 Range - Cast 12024"),
+(@ENTRY,0,18,19,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - Between 0-15% Health - Increment Event Phase"),
+(@ENTRY,0,19,20,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,20,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Sunfury Bowman - Between 0-15% Health - Flee For Assist"),
+(@ENTRY,0,21,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunfury Bowman - On Evade - Set Sheath Melee");
+
+-- Greater Crust Burster SAI
+SET @ENTRY := 21380;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,500,500,11,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - Out Of Combat - Cast 20567"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,18,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - Out Of Combat - Set Not Attackable & Not Selectable Flag"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,28,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - On Aggro - Remove Aura 20567"),
+(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,28,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - On Aggro - Remove Aura 29147"),
+(@ENTRY,0,4,5,61,0,100,0,0,0,0,0,11,37752,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - On Aggro - Cast 37752"),
+(@ENTRY,0,5,6,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - On Aggro - Disallow Combat Movement"),
+(@ENTRY,0,6,7,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - On Aggro - Remove Not Attackable & Not Selectable Flag"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - On Aggro - Set Event Phase 1"),
+(@ENTRY,0,8,0,0,0,100,0,1000,1000,2100,4500,11,31747,0,0,0,0,0,2,0,0,0,0,0,0,0,"Greater Crust Burster - In Combat - Cast 31747"),
+(@ENTRY,0,9,0,0,0,100,0,1000,1000,2100,4500,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - In Combat - Disallow Combat Movement"),
+(@ENTRY,0,10,0,0,0,100,0,10000,20000,45000,50000,11,32738,0,0,0,0,0,2,0,0,0,0,0,0,0,"Greater Crust Burster - In Combat - Cast 32738"),
+(@ENTRY,0,11,12,9,0,100,1,20,60,0,0,11,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - Between 20-60 Range - Cast 20567"),
+(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,11,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - Between 20-60 Range - Cast 29147"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - Between 20-60 Range - Set Event Phase 2"),
+(@ENTRY,0,14,15,9,0,100,1,0,8,0,0,28,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - Between 0-8 Range - Remove Aura 20567"),
+(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,28,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - Between 0-8 Range - Remove Aura 29147"),
+(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,11,37752,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - Between 0-8 Range - Cast 37752"),
+(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - Between 0-8 Range - Disallow Combat Movement"),
+(@ENTRY,0,18,19,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - Between 0-8 Range - Remove Not Attackable & Not Selectable Flag"),
+(@ENTRY,0,19,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - Between 0-8 Range - Set Event Phase 1"),
+(@ENTRY,0,20,21,7,0,100,1,0,0,0,0,11,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - On Evade - Cast 29147"),
+(@ENTRY,0,21,0,61,0,100,0,0,0,0,0,14,0,100,0,0,0,0,1,0,0,0,0,0,0,0,"Greater Crust Burster - On Evade - Remove 100% Threat");
+
+-- Skettis Talonite SAI
+SET @ENTRY := 21650;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skettis Talonite - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skettis Talonite - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skettis Talonite - On Aggro - Cast 10277"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skettis Talonite - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,0,100,0,5,30,2300,3900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skettis Talonite - Between 5-30 Range - Cast 10277"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skettis Talonite - Between 5-30 Range - Set Sheath Ranged"),
+(@ENTRY,0,6,7,9,0,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skettis Talonite - Between 25-80 Range - Allow Combat Movement"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skettis Talonite - Between 25-80 Range - Start Auto Attack"),
+(@ENTRY,0,8,9,9,0,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skettis Talonite - Between 0-5 Range - Allow Combat Movement"),
+(@ENTRY,0,9,10,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skettis Talonite - Between 0-5 Range - Set Sheath Melee"),
+(@ENTRY,0,10,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skettis Talonite - Between 0-5 Range - Start Auto Attack"),
+(@ENTRY,0,11,12,9,0,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skettis Talonite - Between 5-15 Range - Disallow Combat Movement"),
+(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skettis Talonite - Between 5-15 Range - Stop Auto Attack"),
+(@ENTRY,0,13,0,0,0,100,0,6000,10000,9000,14000,11,11428,1,0,0,0,0,2,0,0,0,0,0,0,0,"Skettis Talonite - In Combat - Cast 11428"),
+(@ENTRY,0,14,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skettis Talonite - On Evade - Set Sheath Melee");
+
+-- Dragonmaw Drake-Rider SAI
+SET @ENTRY := 21719;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Drake-Rider - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Drake-Rider - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Drake-Rider - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Drake-Rider - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,0,100,0,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Drake-Rider - Between 5-30 Range - Cast 6660"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Drake-Rider - Between 5-30 Range - Set Sheath Ranged"),
+(@ENTRY,0,6,7,9,0,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Drake-Rider - Between 25-80 Range - Allow Combat Movement"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Drake-Rider - Between 25-80 Range - Start Auto Attack"),
+(@ENTRY,0,8,9,9,0,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Drake-Rider - Between 0-5 Range - Allow Combat Movement"),
+(@ENTRY,0,9,10,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Drake-Rider - Between 0-5 Range - Set Sheath Melee"),
+(@ENTRY,0,10,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Drake-Rider - Between 0-5 Range - Start Auto Attack"),
+(@ENTRY,0,11,12,9,0,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Drake-Rider - Between 5-15 Range - Disallow Combat Movement"),
+(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Drake-Rider - Between 5-15 Range - Stop Auto Attack"),
+(@ENTRY,0,13,0,0,0,100,0,4000,6000,12000,16000,11,38859,32,0,0,0,0,5,0,0,0,0,0,0,0,"Dragonmaw Drake-Rider - In Combat - Cast 38859"),
+(@ENTRY,0,14,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Drake-Rider - On Evade - Set Sheath Melee"),
+(@ENTRY,0,15,0,6,0,100,1,0,0,0,0,33,22197,0,0,0,0,0,7,0,0,0,0,0,0,0,"Dragonmaw Drake-Rider - On Death - Quest Credit");
+
+-- Dragonmaw Elite SAI
+SET @ENTRY := 22331;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Elite - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Elite - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,38858,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Elite - On Aggro - Cast 38858"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Elite - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,80,2300,3900,11,38858,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Elite - Between 5-80 Range - Cast 38858 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Elite - Between 5-80 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,45,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Elite - Between 45-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Elite - Between 45-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Elite - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Elite - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Elite - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Elite - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Elite - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,14,0,0,100,0,6000,9000,12000,16000,11,38861,1,0,0,0,0,5,0,0,0,0,0,0,0,"Dragonmaw Elite - In Combat - Cast 38861"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Elite - In Combat - Set Sheath Ranged"),
+(@ENTRY,0,15,0,0,0,100,0,4000,6000,12000,16000,11,38859,32,0,0,0,0,5,0,0,0,0,0,0,0,"Dragonmaw Elite - In Combat - Cast 38859"),
+(@ENTRY,0,16,17,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Elite - Between 0-15% Health - Increment Event Phase"),
+(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Elite - Between 0-15% Health - Allow Combat Movement"),
+(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dragonmaw Elite - Between 0-15% Health - Flee For Assist"),
+(@ENTRY,0,19,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Elite - On Evade - Set Sheath Melee"),
+(@ENTRY,0,20,0,6,0,100,1,0,0,0,0,33,22197,0,0,0,0,0,7,0,0,0,0,0,0,0,"Dragonmaw Elite - On Death - Quest Credit");
+
+-- Unbound Dryad SAI
+SET @ENTRY := 30860;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unbound Dryad - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unbound Dryad - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,55217,0,0,0,0,0,2,0,0,0,0,0,0,0,"Unbound Dryad - On Aggro - Cast 55217"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unbound Dryad - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,8,40,2300,3900,11,55217,0,0,0,0,0,2,0,0,0,0,0,0,0,"Unbound Dryad - Between 8-40 Range - Cast 55217 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unbound Dryad - Between 8-40 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unbound Dryad - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unbound Dryad - Between 35-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unbound Dryad - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unbound Dryad - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unbound Dryad - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unbound Dryad - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unbound Dryad - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,0,0,100,0,3000,9000,9000,13000,11,11976,0,0,0,0,0,2,0,0,0,0,0,0,0,"Unbound Dryad - In Combat - Cast 11976"),
+(@ENTRY,0,14,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Unbound Dryad - On Evade - Set Sheath Melee");
+
+-- Elenna Edune SAI
+SET @ENTRY := 24738;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elenna Edune - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elenna Edune - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Elenna Edune - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elenna Edune - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2600,3500,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Elenna Edune - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elenna Edune - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elenna Edune - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elenna Edune - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elenna Edune - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elenna Edune - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elenna Edune - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elenna Edune - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elenna Edune - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elenna Edune - On Evade - Set Sheath Melee");
+
+-- Silverbrook Trapper SAI
+SET @ENTRY := 26679;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silverbrook Trapper - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silverbrook Trapper - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Silverbrook Trapper - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silverbrook Trapper - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Silverbrook Trapper - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silverbrook Trapper - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silverbrook Trapper - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silverbrook Trapper - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silverbrook Trapper - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silverbrook Trapper - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silverbrook Trapper - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silverbrook Trapper - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silverbrook Trapper - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,9,0,100,0,0,20,9000,15000,11,13608,1,0,0,0,0,2,0,0,0,0,0,0,0,"Silverbrook Trapper - Between 0-20 Range - Cast 13608"),
+(@ENTRY,0,14,0,7,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silverbrook Trapper - On Evade - Set Sheath Melee");
+
+-- 7th Legion Wyrm Hunter SAI
+SET @ENTRY := 26779;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Wyrm Hunter - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Wyrm Hunter - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"7th Legion Wyrm Hunter - On Aggro - Cast 15620"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Wyrm Hunter - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"7th Legion Wyrm Hunter - Between 5-30 Range - Cast 15620 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Wyrm Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Wyrm Hunter - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Wyrm Hunter - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Wyrm Hunter - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Wyrm Hunter - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Wyrm Hunter - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Wyrm Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Wyrm Hunter - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Wyrm Hunter - On Evade - Set Sheath Melee");
+
+-- Amberpine Scout SAI
+SET @ENTRY := 27117;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Amberpine Scout - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Amberpine Scout - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,15547,0,0,0,0,0,2,0,0,0,0,0,0,0,"Amberpine Scout - On Aggro - Cast 15547"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Amberpine Scout - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,15547,0,0,0,0,0,2,0,0,0,0,0,0,0,"Amberpine Scout - Between 5-30 Range - Cast 15547 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Amberpine Scout - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Amberpine Scout - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Amberpine Scout - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Amberpine Scout - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Amberpine Scout - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Amberpine Scout - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Amberpine Scout - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Amberpine Scout - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,9,0,100,0,0,5,9000,12000,11,35918,33,0,0,0,0,2,0,0,0,0,0,0,0,"Amberpine Scout - Between 0-5 Range - Cast 35918"),
+(@ENTRY,0,14,0,2,0,100,0,0,30,12000,20000,11,31567,1,0,0,0,0,1,0,0,0,0,0,0,0,"Amberpine Scout - Between 0-30% Health - Cast 31567"),
+(@ENTRY,0,15,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Amberpine Scout - On Evade - Set Sheath Melee");
+
+-- 7th Legion Sentinel SAI
+SET @ENTRY := 27162;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Sentinel - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Sentinel - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,15547,0,0,0,0,0,2,0,0,0,0,0,0,0,"7th Legion Sentinel - On Aggro - Cast 15547"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Sentinel - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,15547,0,0,0,0,0,2,0,0,0,0,0,0,0,"7th Legion Sentinel - Between 5-30 Range - Cast 15547 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Sentinel - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Sentinel - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Sentinel - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Sentinel - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Sentinel - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Sentinel - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Sentinel - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Sentinel - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,0,0,100,0,9000,14000,17000,22000,11,49481,1,0,0,0,0,5,0,0,0,0,0,0,0,"7th Legion Sentinel - In Combat - Cast 49481"),
+(@ENTRY,0,14,0,0,0,100,0,9000,14000,17000,22000,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Sentinel - In Combat - Set Sheath Ranged"),
+(@ENTRY,0,15,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Sentinel - On Evade - Set Sheath Melee");
+
+-- Moa'ki Warrior SAI
+SET @ENTRY := 27178;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Moa'ki Warrior - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Moa'ki Warrior - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,38556,0,0,0,0,0,2,0,0,0,0,0,0,0,"Moa'ki Warrior - On Aggro - Cast 38556"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Moa'ki Warrior - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,35,2300,3900,11,38556,0,0,0,0,0,2,0,0,0,0,0,0,0,"Moa'ki Warrior - Between 5-35 Range - Cast 38556 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Moa'ki Warrior - Between 5-35 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Moa'ki Warrior - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Moa'ki Warrior - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Moa'ki Warrior - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Moa'ki Warrior - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Moa'ki Warrior - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Moa'ki Warrior - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Moa'ki Warrior - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Moa'ki Warrior - On Evade - Set Sheath Melee");
+
+-- Argent Crusade Rifleman SAI
+SET @ENTRY := 27351;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Argent Crusade Rifleman - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Argent Crusade Rifleman - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,15547,0,0,0,0,0,2,0,0,0,0,0,0,0,"Argent Crusade Rifleman - On Aggro - Cast 15547"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Argent Crusade Rifleman - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,15547,0,0,0,0,0,2,0,0,0,0,0,0,0,"Argent Crusade Rifleman - Between 5-30 Range - Cast 15547 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Argent Crusade Rifleman - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Argent Crusade Rifleman - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Argent Crusade Rifleman - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Argent Crusade Rifleman - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Argent Crusade Rifleman - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Argent Crusade Rifleman - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Argent Crusade Rifleman - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,15,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Argent Crusade Rifleman - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Argent Crusade Rifleman - On Evade - Set Sheath Melee");
+
+-- Thane Torvald Eriksson SAI
+SET @ENTRY := 27377;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thane Torvald Eriksson - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thane Torvald Eriksson - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,50512,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thane Torvald Eriksson - On Aggro - Cast 50512"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thane Torvald Eriksson - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,0,100,0,0,50,2300,3900,11,50512,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thane Torvald Eriksson - Between 0-50 Range - Cast 50512"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thane Torvald Eriksson - Between 0-50 Range - Set Sheath Ranged"),
+(@ENTRY,0,6,7,0,0,100,0,9000,12000,12000,15000,11,52813,1,0,0,0,0,2,0,0,0,0,0,0,0,"Thane Torvald Eriksson - In Combat - Cast 52813"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thane Torvald Eriksson - In Combat - Set Sheath Ranged"),
+(@ENTRY,0,8,9,9,0,100,0,45,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thane Torvald Eriksson - Between 45-80 Range - Allow Combat Movement"),
+(@ENTRY,0,9,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thane Torvald Eriksson - Between 45-80 Range - Start Auto Attack"),
+(@ENTRY,0,10,11,9,0,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thane Torvald Eriksson - Between 0-5 Range - Allow Combat Movement"),
+(@ENTRY,0,11,12,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thane Torvald Eriksson - Between 0-5 Range - Set Sheath Melee"),
+(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thane Torvald Eriksson - Between 0-5 Range - Start Auto Attack"),
+(@ENTRY,0,13,14,9,0,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thane Torvald Eriksson - Between 5-15 Range - Disallow Combat Movement"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thane Torvald Eriksson - Between 5-15 Range - Stop Auto Attack"),
+(@ENTRY,0,15,0,0,0,100,0,8000,13000,9000,15000,11,34829,1,0,0,0,0,6,0,0,0,0,0,0,0,"Thane Torvald Eriksson - In Combat - Cast 34829"),
+(@ENTRY,0,16,0,9,0,100,0,10,70,15000,20000,11,56843,0,0,0,0,0,5,0,0,0,0,0,0,0,"Thane Torvald Eriksson - Between 10-70 Range - Cast 56843"),
+(@ENTRY,0,17,0,2,0,100,0,0,30,15000,19000,11,57057,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thane Torvald Eriksson - Between 0-30% Health - Cast 57057"),
+(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thane Torvald Eriksson - On Evade - Set Sheath Melee");
+
+-- Fordragon Marksman SAI
+SET @ENTRY := 27540;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Marksman - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Marksman - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,32103,0,0,0,0,0,2,0,0,0,0,0,0,0,"Fordragon Marksman - On Aggro - Cast 32103"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Marksman - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,40,5000,7000,11,32103,0,0,0,0,0,2,0,0,0,0,0,0,0,"Fordragon Marksman - Between 5-40 Range - Cast 32103 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Marksman - Between 5-40 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Marksman - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Marksman - Between 35-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Marksman - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Marksman - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Marksman - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Marksman - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Marksman - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,9,0,100,0,3,30,10000,17000,11,7896,0,0,0,0,0,5,0,0,0,0,0,0,0,"Fordragon Marksman - Between 3-30 Range - Cast 7896"),
+(@ENTRY,0,14,0,0,0,100,0,12000,17000,22000,26000,11,49474,1,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Marksman - In Combat - Cast 49474"),
+(@ENTRY,0,15,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Marksman - On Evade - Set Sheath Melee");
+
+-- Darkspear Spear Thrower SAI
+SET @ENTRY := 27560;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Spear Thrower - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Spear Thrower - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Darkspear Spear Thrower - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Spear Thrower - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,35,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Darkspear Spear Thrower - Between 5-35 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Spear Thrower - Between 5-35 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,30,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Spear Thrower - Between 30-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Spear Thrower - Between 30-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Spear Thrower - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Spear Thrower - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Spear Thrower - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Spear Thrower - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Spear Thrower - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,9,0,100,0,0,20,9000,14000,11,12024,1,0,0,0,0,2,0,0,0,0,0,0,0,"Darkspear Spear Thrower - Between 0-20 Range - Cast 12024"),
+(@ENTRY,0,14,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkspear Spear Thrower - On Evade - Set Sheath Melee");
+
+-- Alliance Conscript SAI
+SET @ENTRY := 27564;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Conscript - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Conscript - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"Alliance Conscript - On Aggro - Cast 15620"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Conscript - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"Alliance Conscript - Between 5-30 Range - Cast 15620 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Conscript - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Conscript - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Conscript - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Conscript - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Conscript - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Conscript - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Conscript - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Conscript - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,9,0,100,0,0,5,5000,9000,11,29426,1,0,0,0,0,2,0,0,0,0,0,0,0,"Alliance Conscript - Between 0-5 Range - Cast 29426"),
+(@ENTRY,0,14,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Conscript - On Evade - Set Sheath Melee");
+
+-- Fordragon Sentinel SAI
+SET @ENTRY := 27576;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Sentinel - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Sentinel - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,15547,0,0,0,0,0,2,0,0,0,0,0,0,0,"Fordragon Sentinel - On Aggro - Cast 15547"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Sentinel - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,15547,0,0,0,0,0,2,0,0,0,0,0,0,0,"Fordragon Sentinel - Between 5-30 Range - Cast 15547 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Sentinel - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Sentinel - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Sentinel - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Sentinel - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Sentinel - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Sentinel - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Sentinel - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Sentinel - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,0,0,100,0,9000,16000,18000,24000,11,49481,1,0,0,0,0,5,0,0,0,0,0,0,0,"Fordragon Sentinel - In Combat - Cast 49481"),
+(@ENTRY,0,14,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fordragon Sentinel - On Evade - Set Sheath Melee");
+
+-- 7th Legion Elite SAI
+SET @ENTRY := 27588;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,50092,0,0,0,0,0,2,0,0,0,0,0,0,0,"7th Legion Elite - On Aggro - Cast 50092"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,50092,0,0,0,0,0,2,0,0,0,0,0,0,0,"7th Legion Elite - Between 5-30 Range - Cast 50092 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,9,0,100,0,0,20,9000,12000,11,62312,1,0,0,0,0,2,0,0,0,0,0,0,0,"7th Legion Elite - Between 0-20 Range - Cast 62312"),
+(@ENTRY,0,14,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - On Evade - Set Sheath Melee");
+
+-- 7th Legion Elite SAI
+SET @ENTRY := 27713;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,50092,0,0,0,0,0,2,0,0,0,0,0,0,0,"7th Legion Elite - On Aggro - Cast 50092"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,50092,0,0,0,0,0,2,0,0,0,0,0,0,0,"7th Legion Elite - Between 5-30 Range - Cast 50092 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,9,0,100,0,0,20,9000,12000,11,62312,1,0,0,0,0,2,0,0,0,0,0,0,0,"7th Legion Elite - Between 0-20 Range - Cast 62312"),
+(@ENTRY,0,14,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"7th Legion Elite - On Evade - Set Sheath Melee");
+
+-- Horde Conscript SAI
+SET @ENTRY := 27749;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Conscript - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Conscript - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"Horde Conscript - On Aggro - Cast 15620"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Conscript - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"Horde Conscript - Between 5-30 Range - Cast 15620 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Conscript - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Conscript - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Conscript - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Conscript - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Conscript - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Conscript - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Conscript - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Conscript - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,9,0,100,0,0,5,7000,9000,11,29426,0,0,0,0,0,2,0,0,0,0,0,0,0,"Horde Conscript - Between 0-5 Range - Cast 29426"),
+(@ENTRY,0,14,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Conscript - On Evade - Set Sheath Melee");
+
+-- "Wyrmbait" SAI
+SET @ENTRY := 27843;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"'Wyrmbait' - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"'Wyrmbait' - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"'Wyrmbait' - On Aggro - Cast 15620"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"'Wyrmbait' - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"'Wyrmbait' - Between 5-30 Range - Cast 15620 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"'Wyrmbait' - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"'Wyrmbait' - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"'Wyrmbait' - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"'Wyrmbait' - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"'Wyrmbait' - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"'Wyrmbait' - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"'Wyrmbait' - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"'Wyrmbait' - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"'Wyrmbait' - On Evade - Set Sheath Melee");
+
+-- Legion Commander Tyralion SAI
+SET @ENTRY := 27844;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Tyralion - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Tyralion - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"Legion Commander Tyralion - On Aggro - Cast 15620"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Tyralion - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"Legion Commander Tyralion - Between 5-30 Range - Cast 15620 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Tyralion - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Tyralion - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Tyralion - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Tyralion - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Tyralion - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Tyralion - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Tyralion - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Tyralion - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Tyralion - On Evade - Set Sheath Melee");
+
+-- Legion Commander Yorik SAI
+SET @ENTRY := 27857;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Yorik - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Yorik - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"Legion Commander Yorik - On Aggro - Cast 15620"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Yorik - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"Legion Commander Yorik - Between 5-30 Range - Cast 15620 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Yorik - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Yorik - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Yorik - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Yorik - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Yorik - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Yorik - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Yorik - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Yorik - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legion Commander Yorik - On Evade - Set Sheath Melee");
+
+-- Wastes Scavenger SAI
+SET @ENTRY := 28005;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Scavenger - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Scavenger - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,50403,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wastes Scavenger - On Aggro - Cast 50403"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Scavenger - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,3000,5000,11,50403,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wastes Scavenger - Between 5-30 Range - Cast 50403 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Scavenger - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Scavenger - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Scavenger - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Scavenger - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Scavenger - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Scavenger - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Scavenger - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Scavenger - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastes Scavenger - On Evade - Set Sheath Melee");
+
+-- Frenzyheart Tracker SAI
+SET @ENTRY := 28077;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Tracker - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Tracker - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,22907,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frenzyheart Tracker - On Aggro - Cast 22907"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Tracker - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,0,100,0,5,30,3000,5000,11,22907,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frenzyheart Tracker - Between 5-30 Range - Cast 22907"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Tracker - Between 5-30 Range - Set Sheath Ranged"),
+(@ENTRY,0,6,7,9,0,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Tracker - Between 25-80 Range - Allow Combat Movement"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Tracker - Between 25-80 Range - Start Auto Attack"),
+(@ENTRY,0,8,9,9,0,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Tracker - Between 0-5 Range - Allow Combat Movement"),
+(@ENTRY,0,9,10,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Tracker - Between 0-5 Range - Set Sheath Melee"),
+(@ENTRY,0,10,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Tracker - Between 0-5 Range - Start Auto Attack"),
+(@ENTRY,0,11,12,9,0,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Tracker - Between 5-15 Range - Disallow Combat Movement"),
+(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Tracker - Between 5-15 Range - Stop Auto Attack"),
+(@ENTRY,0,13,0,0,0,100,0,10000,14000,60000,65000,11,53432,1,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Tracker - In Combat - Cast 53432"),
+(@ENTRY,0,14,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Tracker - On Evade - Set Sheath Melee");
+
+-- Dark Rune Elementalist SAI
+SET @ENTRY := 27962;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - Out Of Combat - Set Event Phase 0 (Dungeon Only)"),
+(@ENTRY,0,2,0,1,0,100,7,1000,1000,0,0,11,51475,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - Out Of Combat - Cast 51475 (Dungeon Only)"),
+(@ENTRY,0,3,0,1,0,100,3,3000,3000,0,0,11,51776,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - Out Of Combat - Cast 51776 (Normal Dungeon)"),
+(@ENTRY,0,4,0,1,0,100,5,3000,3000,0,0,11,59025,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - Out Of Combat - Cast 59025 (Heroic Dungeon)"),
+(@ENTRY,0,5,6,4,0,100,3,0,0,0,0,11,53314,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Rune Elementalist - On Aggro - Cast 53314 (Normal Dungeon)"),
+(@ENTRY,0,6,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,7,0,9,1,100,2,0,40,4000,6000,11,53314,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Rune Elementalist - Between 0-40 Range - Cast 53314 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,8,9,4,0,100,5,0,0,0,0,11,59024,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Rune Elementalist - On Aggro - Cast 59024 (Heroic Dungeon)"),
+(@ENTRY,0,9,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,10,0,9,1,100,4,0,40,4000,6000,11,59024,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Rune Elementalist - Between 0-40 Range - Cast 59024 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,11,12,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,14,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,15,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,16,0,3,2,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - Between 15-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,17,0,2,0,100,7,0,30,0,0,11,32693,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - Between 0-30% Health - Cast 32693 (Dungeon Only)");
+
+-- Dark Rune Theurgist SAI
+SET @ENTRY := 27963;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Theurgist - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,15801,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Rune Theurgist - On Aggro - Cast 15801 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Theurgist - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,3400,4800,11,15801,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Rune Theurgist - Between 0-40 Range - Cast 15801 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,35010,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Rune Theurgist - On Aggro - Cast 35010 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Theurgist - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,3400,4800,11,35010,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Rune Theurgist - Between 0-40 Range - Cast 35010 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Theurgist - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Theurgist - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Theurgist - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Theurgist - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Theurgist - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,11,51484,33,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Theurgist - Between 0-5 Range - Cast 51484 (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,0,3,2,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Theurgist - Between 15-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,14,0,0,0,100,2,9000,12000,9000,12000,11,53167,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Rune Theurgist - In Combat - Cast 53167 (Normal Dungeon)"),
+(@ENTRY,0,15,0,0,0,100,4,9000,12000,9000,12000,11,59152,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Rune Theurgist - In Combat - Cast 59152 (Heroic Dungeon)");
+
+-- Frenzyheart Hunter SAI
+SET @ENTRY := 28079;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Hunter - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Hunter - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,15547,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frenzyheart Hunter - On Aggro - Cast 15547"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Hunter - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,15547,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frenzyheart Hunter - Between 5-30 Range - Cast 15547 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Hunter - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Hunter - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Hunter - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Hunter - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Hunter - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,9,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Hunter - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,0,0,100,0,8000,11000,12000,15000,11,52270,1,0,0,0,0,5,0,0,0,0,0,0,0,"Frenzyheart Hunter - In Combat - Cast 52270"),
+(@ENTRY,0,14,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Hunter - On Evade - Set Sheath Melee");
+
+-- Frenzyheart Scavenger SAI
+SET @ENTRY := 28081;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Scavenger - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Scavenger - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,54617,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frenzyheart Scavenger - On Aggro - Cast 54617"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Scavenger - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,40,2300,3900,11,54617,0,0,0,0,0,2,0,0,0,0,0,0,0,"Frenzyheart Scavenger - Between 5-40 Range - Cast 54617 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Scavenger - Between 5-40 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Scavenger - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Scavenger - Between 35-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Scavenger - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Scavenger - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Scavenger - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Scavenger - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Scavenger - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzyheart Scavenger - On Evade - Set Sheath Melee");
+
+-- Drakkari Water Binder SAI
+SET @ENTRY := 28303;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Water Binder - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Drakkari Water Binder - On Aggro - Cast 9532"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Water Binder - On Aggro - Increment Event Phase"),
+(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Drakkari Water Binder - Between 0-40 Range - Cast 9532 (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Water Binder - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Water Binder - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Water Binder - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Water Binder - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Water Binder - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari Water Binder - Between 30-100% Mana - Decrement Event Phase (Phase 2)"),
+(@ENTRY,0,10,0,0,0,100,0,8000,16000,25000,30000,11,54399,1,0,0,0,0,2,0,0,0,0,0,0,0,"Drakkari Water Binder - In Combat - Cast 54399");
+
+-- Dragonflayer Spiritualist SAI
+SET @ENTRY := 28410;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Spiritualist - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,7,0,0,0,0,11,51587,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Spiritualist - On Aggro - Cast 51587 (Dungeon Only)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Spiritualist - On Aggro - Increment Event Phase (Dungeon Only)"),
+(@ENTRY,0,3,0,9,1,100,6,0,40,2400,3800,11,51587,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Spiritualist - Between 0-40 Range - Cast 51587 (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,4,5,3,1,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Spiritualist - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Spiritualist - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Spiritualist - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Spiritualist - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Spiritualist - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,0,0,100,6,1500,4000,8000,10000,11,51588,1,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Spiritualist - In Combat - Cast 51588 (Dungeon Only)"),
+(@ENTRY,0,10,0,14,0,100,6,7000,100,7000,7000,11,51586,1,0,0,0,0,7,0,0,0,0,0,0,0,"Dragonflayer Spiritualist - On Friendly Unit At 7000 Health Within 100 Range - Cast 51586 (Dungeon Only)"),
+(@ENTRY,0,11,0,3,0,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Spiritualist - Between 30-100% Mana - Decrement Event Phase (Dungeon Only)");
+
+-- K3 Bruiser SAI
+SET @ENTRY := 29910;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"K3 Bruiser - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"K3 Bruiser - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,9,0,100,1,0,20,11000,16000,11,12024,1,0,0,0,0,2,0,0,0,0,0,0,0,"K3 Bruiser - Between 0-20 Range - Cast 12024"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"K3 Bruiser - Between 0-20 Range - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,45,2300,3900,11,23337,0,0,0,0,0,2,0,0,0,0,0,0,0,"K3 Bruiser - Between 5-45 Range - Cast 23337 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"K3 Bruiser - Between 5-45 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"K3 Bruiser - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"K3 Bruiser - Between 35-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"K3 Bruiser - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"K3 Bruiser - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"K3 Bruiser - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"K3 Bruiser - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"K3 Bruiser - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"K3 Bruiser - On Evade - Set Sheath Melee");
diff --git a/sql/updates/world/2013_11_30_01_world_sai.sql b/sql/updates/world/2013_11_30_01_world_sai.sql
new file mode 100644
index 00000000000..630dd7183fb
--- /dev/null
+++ b/sql/updates/world/2013_11_30_01_world_sai.sql
@@ -0,0 +1,795 @@
+-- Earthen Stoneguard SAI
+SET @ENTRY := 29960;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Earthen Stoneguard - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Earthen Stoneguard - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,9,0,100,1,0,20,11000,16000,11,12024,1,0,0,0,0,2,0,0,0,0,0,0,0,"Earthen Stoneguard - Between 0-20 Range - Cast 12024"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Earthen Stoneguard - Between 0-20 Range - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,45,2300,3900,11,23337,0,0,0,0,0,2,0,0,0,0,0,0,0,"Earthen Stoneguard - Between 5-45 Range - Cast 23337 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Earthen Stoneguard - Between 5-45 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Earthen Stoneguard - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Earthen Stoneguard - Between 35-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Earthen Stoneguard - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Earthen Stoneguard - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Earthen Stoneguard - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Earthen Stoneguard - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Earthen Stoneguard - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Earthen Stoneguard - On Evade - Set Sheath Melee");
+
+-- Dragonflayer Strategist SAI
+SET @ENTRY := 23956;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Strategist - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Strategist - Out Of Combat - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,42772,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Strategist - On Aggro - Cast 42772 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Strategist - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,5,9,0,100,2,5,30,2300,5000,11,42772,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Strategist - Between 5-30 Range - Cast 42772 (Normal Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Strategist - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,6,7,4,0,100,5,0,0,0,0,11,59685,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Strategist - On Aggro - Cast 59685 (Heroic Dungeon)"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Strategist - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,8,9,9,0,100,4,5,30,2300,5000,11,59685,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Strategist - Between 5-30 Range - Cast 59685 (Heroic Dungeon)"),
+(@ENTRY,0,9,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Strategist - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon)"),
+(@ENTRY,0,10,11,9,0,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Strategist - Between 25-80 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,11,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Strategist - Between 25-80 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,12,13,9,0,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Strategist - Between 0-5 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Strategist - Between 0-5 Range - Set Sheath Melee (Dungeon Only)"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Strategist - Between 0-5 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,15,16,9,0,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Strategist - Between 5-15 Range - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Strategist - Between 5-15 Range - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,17,0,0,0,100,2,4500,5000,11000,16000,11,54962,1,0,0,0,0,5,0,0,0,0,0,0,0,"Dragonflayer Strategist - In Combat - Cast 54962 (Normal Dungeon)"),
+(@ENTRY,0,18,0,0,0,100,4,4500,5000,11000,16000,11,60227,1,0,0,0,0,5,0,0,0,0,0,0,0,"Dragonflayer Strategist - In Combat - Cast 60227 (Heroic Dungeon)"),
+(@ENTRY,0,19,0,0,0,100,6,7500,9000,13000,15000,11,42972,1,0,0,0,0,5,0,0,0,0,0,0,0,"Dragonflayer Strategist - In Combat - Cast 42972 (Dungeon Only)"),
+(@ENTRY,0,20,0,7,0,100,7,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Strategist - On Evade - Set Sheath Melee (Dungeon Only)");
+
+-- Proto-Drake Handler SAI
+SET @ENTRY := 24082;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Handler - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Handler - Out Of Combat - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,54983,0,0,0,0,0,2,0,0,0,0,0,0,0,"Proto-Drake Handler - On Aggro - Cast 54983 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Handler - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,5,9,0,100,2,8,25,2300,5000,11,54983,0,0,0,0,0,2,0,0,0,0,0,0,0,"Proto-Drake Handler - Between 8-25 Range - Cast 54983 (Normal Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Handler - Between 8-25 Range - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,6,7,4,0,100,5,0,0,0,0,11,59696,0,0,0,0,0,2,0,0,0,0,0,0,0,"Proto-Drake Handler - On Aggro - Cast 59696 (Heroic Dungeon)"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Handler - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,8,9,9,0,100,4,8,25,2300,5000,11,59696,0,0,0,0,0,2,0,0,0,0,0,0,0,"Proto-Drake Handler - Between 8-25 Range - Cast 59696 (Heroic Dungeon)"),
+(@ENTRY,0,9,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Handler - Between 8-25 Range - Set Sheath Ranged (Heroic Dungeon)"),
+(@ENTRY,0,10,11,9,0,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Handler - Between 25-80 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,11,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Handler - Between 25-80 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,12,13,9,0,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Handler - Between 0-5 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Handler - Between 0-5 Range - Set Sheath Melee (Dungeon Only)"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Handler - Between 0-5 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,15,16,9,0,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Handler - Between 5-15 Range - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Handler - Between 5-15 Range - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,17,0,0,0,100,2,2000,3000,8000,9500,11,38621,1,0,0,0,0,2,0,0,0,0,0,0,0,"Proto-Drake Handler - In Combat - Cast 38621 (Normal Dungeon)"),
+(@ENTRY,0,18,0,0,0,100,4,2000,3000,8000,9500,11,59695,1,0,0,0,0,2,0,0,0,0,0,0,0,"Proto-Drake Handler - In Combat - Cast 59695 (Heroic Dungeon)"),
+(@ENTRY,0,19,0,16,0,100,2,43664,100,15000,21000,11,43664,32,0,0,0,0,7,0,0,0,0,0,0,0,"Proto-Drake Handler - On Friendly Unit Missing Buff _spellNameFirstParam_ - Cast 43664 (Normal Dungeon)"),
+(@ENTRY,0,20,0,16,0,100,4,59694,100,15000,21000,11,59694,32,0,0,0,0,7,0,0,0,0,0,0,0,"Proto-Drake Handler - On Friendly Unit Missing Buff _spellNameFirstParam_ - Cast 59694 (Heroic Dungeon)"),
+(@ENTRY,0,21,0,7,0,100,7,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Handler - On Evade - Set Sheath Melee (Dungeon Only)");
+
+-- Proto-Drake Rider SAI
+SET @ENTRY := 24849;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Rider - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Rider - Out Of Combat - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,43665,0,0,0,0,0,2,0,0,0,0,0,0,0,"Proto-Drake Rider - On Aggro - Cast 43665 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Rider - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,5,9,1,100,2,5,30,9000,17000,11,43665,0,0,0,0,0,2,0,0,0,0,0,0,0,"Proto-Drake Rider - Between 5-30 Range - Cast 43665 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Rider - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,7,4,0,100,5,0,0,0,0,11,59603,0,0,0,0,0,2,0,0,0,0,0,0,0,"Proto-Drake Rider - On Aggro - Cast 59603 (Heroic Dungeon)"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Rider - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,8,9,9,1,100,4,5,30,9000,17000,11,59603,0,0,0,0,0,2,0,0,0,0,0,0,0,"Proto-Drake Rider - Between 5-30 Range - Cast 59603 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Rider - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,10,11,9,1,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Rider - Between 25-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Rider - Between 25-80 Range - Start Auto Attack (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,13,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Rider - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,14,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Rider - Between 0-5 Range - Set Sheath Melee (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Rider - Between 0-5 Range - Start Auto Attack (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,15,16,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Rider - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,16,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Rider - Between 5-15 Range - Stop Auto Attack (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,17,0,0,0,100,2,6000,7500,11000,17000,11,31551,1,0,0,0,0,2,0,0,0,0,0,0,0,"Proto-Drake Rider - In Combat - Cast 31551 (Normal Dungeon)"),
+(@ENTRY,0,18,0,0,0,100,4,6000,7500,11000,17000,11,59605,1,0,0,0,0,2,0,0,0,0,0,0,0,"Proto-Drake Rider - In Combat - Cast 59605 (Heroic Dungeon)"),
+(@ENTRY,0,19,0,0,0,100,2,3000,4500,9000,12500,11,32908,1,0,0,0,0,2,0,0,0,0,0,0,0,"Proto-Drake Rider - In Combat - Cast 32908 (Normal Dungeon)"),
+(@ENTRY,0,20,0,0,0,100,4,3000,4500,9000,12500,11,59604,1,0,0,0,0,2,0,0,0,0,0,0,0,"Proto-Drake Rider - In Combat - Cast 59604 (Heroic Dungeon)"),
+(@ENTRY,0,21,0,7,0,100,7,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Proto-Drake Rider - On Evade - Set Sheath Melee (Dungeon Only)");
+
+-- Risen Drakkari Handler SAI
+SET @ENTRY := 26637;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Handler - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Handler - Out Of Combat - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,2,3,0,0,100,7,500,500,0,0,43,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Handler - In Combat - Dismount (Dungeon Only)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,11,51224,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Handler - In Combat - Summon Creature Drakkari Raptor Mount (Dungeon Only)"),
+(@ENTRY,0,4,5,4,0,100,3,0,0,0,0,11,49712,0,0,0,0,0,2,0,0,0,0,0,0,0,"Risen Drakkari Handler - On Aggro - Cast 49712 (Normal Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Handler - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,6,7,9,0,100,2,5,30,2300,5000,11,49712,0,0,0,0,0,2,0,0,0,0,0,0,0,"Risen Drakkari Handler - Between 5-30 Range - Cast 49712 (Normal Dungeon)"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Handler - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,8,9,4,0,100,5,0,0,0,0,11,59001,0,0,0,0,0,2,0,0,0,0,0,0,0,"Risen Drakkari Handler - On Aggro - Cast 59001 (Heroic Dungeon)"),
+(@ENTRY,0,9,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Handler - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,10,11,9,0,100,4,5,30,2300,5000,11,59001,0,0,0,0,0,2,0,0,0,0,0,0,0,"Risen Drakkari Handler - Between 5-30 Range - Cast 59001 (Heroic Dungeon)"),
+(@ENTRY,0,11,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Handler - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon)"),
+(@ENTRY,0,12,13,9,0,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Handler - Between 25-80 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Handler - Between 25-80 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,14,15,9,0,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Handler - Between 0-5 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Handler - Between 0-5 Range - Set Sheath Melee (Dungeon Only)"),
+(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Handler - Between 0-5 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,17,18,9,0,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Handler - Between 5-15 Range - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Handler - Between 5-15 Range - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,19,0,0,0,100,6,0,0,6000,9000,11,49711,0,0,0,0,0,5,0,0,0,0,0,0,0,"Risen Drakkari Handler - In Combat - Cast 49711 (Dungeon Only)"),
+(@ENTRY,0,20,0,0,0,100,6,7000,11000,8000,12000,11,6253,0,0,0,0,0,2,0,0,0,0,0,0,0,"Risen Drakkari Handler - In Combat - Cast 6253 (Dungeon Only)"),
+(@ENTRY,0,21,0,7,0,100,7,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Handler - On Evade - Set Sheath Melee (Dungeon Only)");
+
+-- Horde Ranger SAI
+SET @ENTRY := 26801;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - Out Of Combat - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,2,3,4,0,100,7,0,0,0,0,28,47543,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - On Aggro - Remove Aura 47543 (Dungeon Only)"),
+(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"Horde Ranger - On Aggro - Cast 15620 (Normal Dungeon)"),
+(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,5,6,9,0,100,2,5,30,2300,3800,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"Horde Ranger - Between 5-30 Range - Cast 15620 (Normal Dungeon)"),
+(@ENTRY,0,6,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,7,8,4,0,100,5,0,0,0,0,11,22907,0,0,0,0,0,2,0,0,0,0,0,0,0,"Horde Ranger - On Aggro - Cast 22907 (Heroic Dungeon)"),
+(@ENTRY,0,8,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,9,10,9,0,100,4,5,30,2300,3800,11,22907,0,0,0,0,0,2,0,0,0,0,0,0,0,"Horde Ranger - Between 5-30 Range - Cast 22907 (Heroic Dungeon)"),
+(@ENTRY,0,10,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon)"),
+(@ENTRY,0,11,12,9,0,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - Between 25-80 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - Between 25-80 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,13,14,9,0,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - Between 0-5 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - Between 0-5 Range - Set Sheath Melee (Dungeon Only)"),
+(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - Between 0-5 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,16,17,9,0,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - Between 5-15 Range - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - Between 5-15 Range - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,18,19,9,0,100,2,5,45,9500,10000,11,47777,1,0,0,0,0,2,0,0,0,0,0,0,0,"Horde Ranger - Between 5-45 Range - Cast 47777 (Normal Dungeon)"),
+(@ENTRY,0,19,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - Between 5-45 Range - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,20,21,9,0,100,4,5,45,9500,10000,11,56933,1,0,0,0,0,2,0,0,0,0,0,0,0,"Horde Ranger - Between 5-45 Range - Cast 56933 (Heroic Dungeon)"),
+(@ENTRY,0,21,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - Between 5-45 Range - Set Sheath Ranged (Heroic Dungeon)"),
+(@ENTRY,0,22,0,0,0,100,6,12000,15000,16100,19000,11,48191,5,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - In Combat - Cast 48191 (Dungeon Only)"),
+(@ENTRY,0,23,0,7,0,100,7,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Horde Ranger - On Evade - Set Sheath Melee (Dungeon Only)");
+
+-- Azure Inquisitor SAI
+SET @ENTRY := 27633;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Inquisitor - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Inquisitor - Out Of Combat - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,51454,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Inquisitor - On Aggro - Cast 51454 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Inquisitor - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,5,9,1,100,2,5,30,5000,7000,11,51454,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Inquisitor - Between 5-30 Range - Cast 51454 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Inquisitor - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,6,7,4,0,100,5,0,0,0,0,11,59209,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Inquisitor - On Aggro - Cast 59209 (Heroic Dungeon)"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Inquisitor - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,8,9,9,1,100,4,5,30,5000,7000,11,59209,0,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Inquisitor - Between 5-30 Range - Cast 59209 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Inquisitor - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,10,11,9,1,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Inquisitor - Between 25-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Inquisitor - Between 25-80 Range - Start Auto Attack (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,13,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Inquisitor - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,14,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Inquisitor - Between 0-5 Range - Set Sheath Melee (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Inquisitor - Between 0-5 Range - Start Auto Attack (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,15,16,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Inquisitor - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,16,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Inquisitor - Between 5-15 Range - Stop Auto Attack (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,17,0,0,0,100,6,4000,7000,9000,12000,11,50573,1,0,0,0,0,2,0,0,0,0,0,0,0,"Azure Inquisitor - In Combat - Cast 50573 (Dungeon Only)"),
+(@ENTRY,0,18,0,9,0,100,6,0,10,14000,20000,11,50690,1,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Inquisitor - Between 0-10 Range - Cast 50690 (Dungeon Only)"),
+(@ENTRY,0,19,0,7,0,100,7,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Azure Inquisitor - On Evade - Set Sheath Melee (Dungeon Only)");
+
+-- Don Carlos SAI
+SET @ENTRY := 28132;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Don Carlos - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Don Carlos - Out Of Combat - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,2,0,1,0,100,7,1000,1000,0,0,11,50736,1,0,0,0,0,1,0,0,0,0,0,0,0,"Don Carlos - Out Of Combat - Cast 50736 (Dungeon Only)"),
+(@ENTRY,0,3,4,4,0,100,3,0,0,0,0,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Don Carlos - On Aggro - Cast 16100 (Normal Dungeon)"),
+(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Don Carlos - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,5,6,9,0,100,2,5,30,2300,5000,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Don Carlos - Between 5-30 Range - Cast 16100 (Normal Dungeon)"),
+(@ENTRY,0,6,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Don Carlos - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,7,8,4,0,100,5,0,0,0,0,11,16496,0,0,0,0,0,2,0,0,0,0,0,0,0,"Don Carlos - On Aggro - Cast 16496 (Heroic Dungeon)"),
+(@ENTRY,0,8,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Don Carlos - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,9,10,9,0,100,4,5,30,2300,5000,11,16496,0,0,0,0,0,2,0,0,0,0,0,0,0,"Don Carlos - Between 5-30 Range - Cast 16496 (Heroic Dungeon)"),
+(@ENTRY,0,10,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Don Carlos - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon)"),
+(@ENTRY,0,11,12,9,0,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Don Carlos - Between 25-80 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Don Carlos - Between 25-80 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,13,14,9,0,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Don Carlos - Between 0-5 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Don Carlos - Between 0-5 Range - Set Sheath Melee (Dungeon Only)"),
+(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Don Carlos - Between 0-5 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,16,17,9,0,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Don Carlos - Between 5-15 Range - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Don Carlos - Between 5-15 Range - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,18,0,0,0,100,2,9000,14000,22000,26000,11,12024,1,0,0,0,0,5,0,0,0,0,0,0,0,"Don Carlos - In Combat - Cast 12024 (Normal Dungeon)"),
+(@ENTRY,0,19,0,0,0,100,4,9000,14000,22000,26000,11,50762,1,0,0,0,0,5,0,0,0,0,0,0,0,"Don Carlos - In Combat - Cast 50762 (Heroic Dungeon)"),
+(@ENTRY,0,20,0,7,0,100,7,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Don Carlos - On Evade - Set Sheath Melee (Dungeon Only)");
+
+-- Dark Necromancer SAI
+SET @ENTRY := 28200;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Necromancer - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,15537,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Necromancer - On Aggro - Cast 15537 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Necromancer - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,5000,7000,11,15537,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Necromancer - Between 0-40 Range - Cast 15537 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,61558,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Necromancer - On Aggro - Cast 61558 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Necromancer - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,5000,7000,11,61558,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Necromancer - Between 0-40 Range - Cast 61558 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Necromancer - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Necromancer - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Necromancer - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Necromancer - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Necromancer - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,3,2,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Necromancer - Between 15-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,13,0,0,0,100,2,7000,11000,21000,25000,11,20812,1,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Necromancer - In Combat - Cast 20812 (Normal Dungeon)"),
+(@ENTRY,0,14,0,0,0,100,4,7000,11000,21000,25000,11,52498,1,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Necromancer - In Combat - Cast 52498 (Heroic Dungeon)"),
+(@ENTRY,0,15,0,0,0,100,2,14000,18000,15000,21000,11,58772,1,0,0,0,0,6,0,0,0,0,0,0,0,"Dark Necromancer - In Combat - Cast 58772 (Normal Dungeon)"),
+(@ENTRY,0,16,0,0,0,100,4,14000,18000,15000,21000,11,58770,1,0,0,0,0,6,0,0,0,0,0,0,0,"Dark Necromancer - In Combat - Cast 58770 (Heroic Dungeon)");
+
+-- Hemet Nesingwary SAI
+SET @ENTRY := 28451;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hemet Nesingwary - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hemet Nesingwary - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,51742,0,0,0,0,0,2,0,0,0,0,0,0,0,"Hemet Nesingwary - On Aggro - Cast 51742"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hemet Nesingwary - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,51742,0,0,0,0,0,2,0,0,0,0,0,0,0,"Hemet Nesingwary - Between 5-30 Range - Cast 51742 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hemet Nesingwary - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hemet Nesingwary - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hemet Nesingwary - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hemet Nesingwary - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hemet Nesingwary - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hemet Nesingwary - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hemet Nesingwary - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hemet Nesingwary - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hemet Nesingwary - On Evade - Set Sheath Melee");
+
+-- Scarlet Crusader SAI
+SET @ENTRY := 28529;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Crusader - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Crusader - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Crusader - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Crusader - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Crusader - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Crusader - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Crusader - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Crusader - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Crusader - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Crusader - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Crusader - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Crusader - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Crusader - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Crusader - On Evade - Set Sheath Melee");
+
+-- Storming Vortex SAI
+SET @ENTRY := 28547;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Storming Vortex - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,53044,0,0,0,0,0,2,0,0,0,0,0,0,0,"Storming Vortex - On Aggro - Cast 53044 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Storming Vortex - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,3400,4800,11,53044,0,0,0,0,0,2,0,0,0,0,0,0,0,"Storming Vortex - Between 0-40 Range - Cast 53044 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,59169,0,0,0,0,0,2,0,0,0,0,0,0,0,"Storming Vortex - On Aggro - Cast 59169 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Storming Vortex - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,3400,4800,11,59169,0,0,0,0,0,2,0,0,0,0,0,0,0,"Storming Vortex - Between 0-40 Range - Cast 59169 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Storming Vortex - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Storming Vortex - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Storming Vortex - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Storming Vortex - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Storming Vortex - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,3,0,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Storming Vortex - Between 15-100% Mana - Decrement Event Phase (Dungeon Only)"),
+(@ENTRY,0,13,0,9,0,100,4,0,5,9000,18000,11,60236,0,0,0,0,0,6,0,0,0,0,0,0,0,"Storming Vortex - Between 0-5 Range - Cast 60236 (Heroic Dungeon)");
+
+-- Anub'ar Prime Guard SAI
+SET @ENTRY := 29128;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Prime Guard - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,54309,0,0,0,0,0,5,0,0,0,0,0,0,0,"Anub'ar Prime Guard - On Aggro - Cast 54309 (Normal Dungeon)"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Prime Guard - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,3,0,9,1,100,2,0,30,10000,13000,11,54309,0,0,0,0,0,5,0,0,0,0,0,0,0,"Anub'ar Prime Guard - Between 0-30 Range - Cast 54309 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,0,100,5,0,0,0,0,11,59352,0,0,0,0,0,5,0,0,0,0,0,0,0,"Anub'ar Prime Guard - On Aggro - Cast 59352 (Heroic Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Prime Guard - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,6,0,9,1,100,4,0,30,10000,13000,11,59352,0,0,0,0,0,5,0,0,0,0,0,0,0,"Anub'ar Prime Guard - Between 0-30 Range - Cast 59352 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Prime Guard - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Prime Guard - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Prime Guard - Between 25-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Prime Guard - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,7,0,5,0,0,11,54314,33,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Prime Guard - Between 0-5 Range - Cast 54314 (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Prime Guard - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,0,3,0,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Anub'ar Prime Guard - Between 15-100% Mana - Decrement Event Phase (Dungeon Only)");
+
+-- Savage Hill Scavenger SAI
+SET @ENTRY := 29404;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Savage Hill Scavenger - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Savage Hill Scavenger - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,50403,0,0,0,0,0,2,0,0,0,0,0,0,0,"Savage Hill Scavenger - On Aggro - Cast 50403"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Savage Hill Scavenger - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,50,5000,8000,11,50403,0,0,0,0,0,5,0,0,0,0,0,0,0,"Savage Hill Scavenger - Between 5-50 Range - Cast 50403 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Savage Hill Scavenger - Between 5-50 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,45,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Savage Hill Scavenger - Between 45-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Savage Hill Scavenger - Between 45-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Savage Hill Scavenger - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Savage Hill Scavenger - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Savage Hill Scavenger - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,25,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Savage Hill Scavenger - Between 5-25 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Savage Hill Scavenger - Between 5-25 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Savage Hill Scavenger - On Evade - Set Sheath Melee");
+
+-- Stormforged Tracker SAI
+SET @ENTRY := 29652;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Tracker - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Tracker - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Stormforged Tracker - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Tracker - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Stormforged Tracker - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Tracker - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Tracker - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Tracker - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Tracker - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Tracker - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Tracker - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Tracker - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Tracker - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,0,0,100,0,9000,12000,9000,12000,11,46982,1,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Tracker - In Combat - Cast 46982"),
+(@ENTRY,0,14,0,0,0,100,0,9000,12000,9000,12000,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Tracker - In Combat - Set Sheath Ranged"),
+(@ENTRY,0,15,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Tracker - On Evade - Set Sheath Melee");
+
+-- Snowdrift Jormungar SAI
+SET @ENTRY := 29390;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,500,500,11,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - Out Of Combat - Cast 20567"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,18,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - Out Of Combat - Set Not Attackable & Not Selectable Flag"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,28,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - On Aggro - Remove Aura 20567"),
+(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,28,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - On Aggro - Remove Aura 29147"),
+(@ENTRY,0,4,5,61,0,100,0,0,0,0,0,11,37752,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - On Aggro - Cast 37752"),
+(@ENTRY,0,5,6,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - On Aggro - Disallow Combat Movement"),
+(@ENTRY,0,6,7,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - On Aggro - Remove Not Attackable & Not Selectable Flag"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - On Aggro - Set Event Phase 1"),
+(@ENTRY,0,8,9,0,0,100,0,1000,3000,5000,7000,11,50293,0,0,0,0,0,5,0,0,0,0,0,0,0,"Snowdrift Jormungar - In Combat - Cast 50293"),
+(@ENTRY,0,9,0,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - In Combat - Disallow Combat Movement"),
+(@ENTRY,0,10,0,0,0,100,0,20400,20400,45000,50000,11,32738,0,0,0,0,0,2,0,0,0,0,0,0,0,"Snowdrift Jormungar - In Combat - Cast 32738"),
+(@ENTRY,0,11,12,9,0,100,1,20,60,0,0,11,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - Between 20-60 Range - Cast 20567"),
+(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,11,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - Between 20-60 Range - Cast 29147"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - Between 20-60 Range - Set Event Phase 2"),
+(@ENTRY,0,14,15,9,0,100,1,0,8,0,0,28,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - Between 0-8 Range - Remove Aura 20567"),
+(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,28,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - Between 0-8 Range - Remove Aura 29147"),
+(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,11,37752,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - Between 0-8 Range - Cast 37752"),
+(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - Between 0-8 Range - Disallow Combat Movement"),
+(@ENTRY,0,18,19,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - Between 0-8 Range - Remove Not Attackable & Not Selectable Flag"),
+(@ENTRY,0,19,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - Between 0-8 Range - Set Event Phase 1"),
+(@ENTRY,0,20,21,7,0,100,1,0,0,0,0,11,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - On Evade - Cast 20567"),
+(@ENTRY,0,21,22,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - On Evade - Set Event Phase 1"),
+(@ENTRY,0,22,23,61,0,100,0,0,0,0,0,11,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - On Evade - Cast 29147"),
+(@ENTRY,0,23,24,61,0,100,0,0,0,0,0,14,0,100,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - On Evade - Remove 100% Threat"),
+(@ENTRY,0,24,0,61,0,100,0,0,0,0,0,18,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Snowdrift Jormungar - On Evade - Set Not Attackable & Not Selectable Flag");
+
+-- Sunreaver Scout SAI
+SET @ENTRY := 30233;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Scout - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Scout - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunreaver Scout - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Scout - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunreaver Scout - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Scout - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Scout - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Scout - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Scout - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Scout - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Scout - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Scout - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Scout - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,14,9,1,100,0,5,30,8000,13000,11,17174,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunreaver Scout - Between 5-30 Range - Cast 17174 (Phase 1)"),
+(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Scout - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,15,16,9,1,100,0,5,30,15000,25000,11,14443,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunreaver Scout - Between 5-30 Range - Cast 14443 (Phase 1)"),
+(@ENTRY,0,16,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Scout - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Scout - On Evade - Set Sheath Melee");
+
+-- Silver Covenant Scout SAI
+SET @ENTRY := 30238;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Scout - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Scout - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Silver Covenant Scout - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Scout - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Silver Covenant Scout - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Scout - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Scout - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Scout - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Scout - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Scout - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Scout - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Scout - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Scout - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,14,9,1,100,0,5,30,8000,13000,11,17174,0,0,0,0,0,2,0,0,0,0,0,0,0,"Silver Covenant Scout - Between 5-30 Range - Cast 17174 (Phase 1)"),
+(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Scout - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,15,16,9,1,100,0,5,30,15000,25000,11,14443,0,0,0,0,0,2,0,0,0,0,0,0,0,"Silver Covenant Scout - Between 5-30 Range - Cast 14443 (Phase 1)"),
+(@ENTRY,0,16,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Scout - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Scout - On Evade - Set Sheath Melee");
+
+-- Silver Covenant Horseman SAI
+SET @ENTRY := 30263;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Horseman - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Horseman - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Silver Covenant Horseman - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Horseman - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Silver Covenant Horseman - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Horseman - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Horseman - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Horseman - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Horseman - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Horseman - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Horseman - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Horseman - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Horseman - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,14,9,1,100,0,5,30,8000,13000,11,17174,0,0,0,0,0,2,0,0,0,0,0,0,0,"Silver Covenant Horseman - Between 5-30 Range - Cast 17174 (Phase 1)"),
+(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Horseman - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,15,16,9,1,100,0,5,30,15000,25000,11,14443,0,0,0,0,0,2,0,0,0,0,0,0,0,"Silver Covenant Horseman - Between 5-30 Range - Cast 14443 (Phase 1)"),
+(@ENTRY,0,16,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Horseman - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Horseman - On Evade - Set Sheath Melee");
+
+-- Sunreaver Hawkrider SAI
+SET @ENTRY := 30265;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Hawkrider - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Hawkrider - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunreaver Hawkrider - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Hawkrider - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunreaver Hawkrider - Between 5-30 Range - Cast 6660 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Hawkrider - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Hawkrider - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Hawkrider - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Hawkrider - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Hawkrider - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Hawkrider - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Hawkrider - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Hawkrider - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,14,9,1,100,0,5,30,8000,13000,11,17174,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunreaver Hawkrider - Between 5-30 Range - Cast 17174 (Phase 1)"),
+(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Hawkrider - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,15,16,9,1,100,0,5,30,15000,25000,11,14443,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunreaver Hawkrider - Between 5-30 Range - Cast 14443 (Phase 1)"),
+(@ENTRY,0,16,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Hawkrider - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Hawkrider - On Evade - Set Sheath Melee");
+
+-- Jormuttar SAI
+SET @ENTRY := 30340;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,500,500,11,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - Out Of Combat - Cast 20567"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,500,500,18,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - Out Of Combat - Set Not Attackable & Not Selectable Flag"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,28,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - On Aggro - Remove Aura 20567"),
+(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,28,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - On Aggro - Remove Aura 29147"),
+(@ENTRY,0,4,5,61,0,100,0,0,0,0,0,11,37752,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - On Aggro - Cast 37752"),
+(@ENTRY,0,5,6,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - On Aggro - Disallow Combat Movement"),
+(@ENTRY,0,6,7,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - On Aggro - Remove Not Attackable & Not Selectable Flag"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - On Aggro - Set Event Phase 1"),
+(@ENTRY,0,8,9,0,0,100,0,1000,1000,3000,5000,11,61597,0,0,0,0,0,2,0,0,0,0,0,0,0,"Jormuttar - In Combat - Cast 61597"),
+(@ENTRY,0,9,0,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - In Combat - Disallow Combat Movement"),
+(@ENTRY,0,10,0,0,0,100,0,11000,16000,15000,20000,11,61598,1,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - In Combat - Cast 61598"),
+(@ENTRY,0,11,0,0,0,100,0,10000,20000,45000,50000,11,32738,0,0,0,0,0,2,0,0,0,0,0,0,0,"Jormuttar - In Combat - Cast 32738"),
+(@ENTRY,0,12,13,9,0,100,1,30,60,0,0,11,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - Between 30-60 Range - Cast 20567"),
+(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,11,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - Between 30-60 Range - Cast 29147"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - Between 30-60 Range - Set Event Phase 2"),
+(@ENTRY,0,15,16,9,0,100,1,0,8,0,0,28,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - Between 0-8 Range - Remove Aura 20567"),
+(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,28,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - Between 0-8 Range - Remove Aura 29147"),
+(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,11,37752,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - Between 0-8 Range - Cast 37752"),
+(@ENTRY,0,18,19,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - Between 0-8 Range - Disallow Combat Movement"),
+(@ENTRY,0,19,20,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - Between 0-8 Range - Remove Not Attackable & Not Selectable Flag"),
+(@ENTRY,0,20,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - Between 0-8 Range - Set Event Phase 1"),
+(@ENTRY,0,21,22,7,0,100,1,0,0,0,0,11,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - On Evade - Cast 20567"),
+(@ENTRY,0,22,23,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - On Evade - Set Event Phase 1"),
+(@ENTRY,0,23,24,61,0,100,0,0,0,0,0,11,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - On Evade - Cast 29147"),
+(@ENTRY,0,24,25,61,0,100,0,0,0,0,0,14,0,100,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - On Evade - Remove 100% Threat"),
+(@ENTRY,0,25,0,61,0,100,0,0,0,0,0,18,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jormuttar - On Evade - Set Not Attackable & Not Selectable Flag");
+
+-- Nesingwary Game Warden SAI
+SET @ENTRY := 30737;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nesingwary Game Warden - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nesingwary Game Warden - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Nesingwary Game Warden - On Aggro - Cast 16100"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nesingwary Game Warden - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Nesingwary Game Warden - Between 5-30 Range - Cast 16100 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nesingwary Game Warden - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nesingwary Game Warden - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nesingwary Game Warden - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nesingwary Game Warden - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nesingwary Game Warden - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nesingwary Game Warden - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nesingwary Game Warden - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nesingwary Game Warden - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,13,0,9,0,100,0,0,20,9000,13000,11,6533,1,0,0,0,0,2,0,0,0,0,0,0,0,"Nesingwary Game Warden - Between 0-20 Range - Cast 6533"),
+(@ENTRY,0,14,15,9,1,100,0,5,30,8000,10000,11,31942,0,0,0,0,0,5,0,0,0,0,0,0,0,"Nesingwary Game Warden - Between 5-30 Range - Cast 31942 (Phase 1)"),
+(@ENTRY,0,15,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nesingwary Game Warden - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,16,0,9,0,100,0,0,45,7000,9000,11,23337,1,0,0,0,0,6,0,0,0,0,0,0,0,"Nesingwary Game Warden - Between 0-45 Range - Cast 23337"),
+(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nesingwary Game Warden - On Evade - Set Sheath Melee");
+
+-- Shandaral Hunter Spirit SAI
+SET @ENTRY := 30864;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - On Aggro - Cast 6660"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,0,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - Between 5-30 Range - Cast 6660"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - Between 5-30 Range - Set Sheath Ranged"),
+(@ENTRY,0,6,7,9,0,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - Between 25-80 Range - Allow Combat Movement"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - Between 25-80 Range - Start Auto Attack"),
+(@ENTRY,0,8,9,9,0,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - Between 0-5 Range - Allow Combat Movement"),
+(@ENTRY,0,9,10,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - Between 0-5 Range - Set Sheath Melee"),
+(@ENTRY,0,10,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - Between 0-5 Range - Start Auto Attack"),
+(@ENTRY,0,11,12,9,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - Between 5-15 Range - Disallow Combat Movement"),
+(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - Between 5-15 Range - Stop Auto Attack"),
+(@ENTRY,0,13,14,0,0,100,0,4000,8000,9000,14000,11,54615,1,0,0,0,0,2,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - In Combat - Cast 54615"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - In Combat - Set Sheath Ranged"),
+(@ENTRY,0,15,0,0,0,100,0,9000,15000,15000,22000,11,47168,0,0,0,0,0,5,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - In Combat - Cast 47168"),
+(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shandaral Hunter Spirit - On Evade - Set Sheath Melee");
+
+-- Syreian the Bonecarver SAI
+SET @ENTRY := 32438;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Syreian the Bonecarver - Out Of Combat - Disallow Combat Movement"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Syreian the Bonecarver - Out Of Combat - Stop Auto Attack"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,38952,0,0,0,0,0,2,0,0,0,0,0,0,0,"Syreian the Bonecarver - On Aggro - Cast 38952"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Syreian the Bonecarver - On Aggro - Increment Event Phase"),
+(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,50092,0,0,0,0,0,2,0,0,0,0,0,0,0,"Syreian the Bonecarver - Between 5-30 Range - Cast 50092 (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Syreian the Bonecarver - Between 5-30 Range - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,6,7,0,1,100,0,12000,15000,11000,14000,11,38952,1,0,0,0,0,2,0,0,0,0,0,0,0,"Syreian the Bonecarver - In Combat - Cast 38952 (Phase 1)"),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Syreian the Bonecarver - In Combat - Set Sheath Ranged (Phase 1)"),
+(@ENTRY,0,8,9,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Syreian the Bonecarver - Between 25-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Syreian the Bonecarver - Between 25-80 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,10,11,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Syreian the Bonecarver - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,11,12,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Syreian the Bonecarver - Between 0-5 Range - Set Sheath Melee (Phase 1)"),
+(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Syreian the Bonecarver - Between 0-5 Range - Start Auto Attack (Phase 1)"),
+(@ENTRY,0,13,14,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Syreian the Bonecarver - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Syreian the Bonecarver - Between 5-15 Range - Stop Auto Attack (Phase 1)"),
+(@ENTRY,0,15,0,9,0,100,0,0,5,12000,16000,11,47168,1,0,0,0,0,2,0,0,0,0,0,0,0,"Syreian the Bonecarver - Between 0-5 Range - Cast 47168"),
+(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Syreian the Bonecarver - On Evade - Set Sheath Melee");
+
+-- Deep Jormungar SAI
+SET @ENTRY := 34920;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,500,500,11,56503,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - Out Of Combat - Cast 56503"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,18,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - Out Of Combat - Set Not Attackable & Not Selectable Flag"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,28,56503,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - On Aggro - Remove Aura 56503"),
+(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,28,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - On Aggro - Remove Aura 29147"),
+(@ENTRY,0,4,5,61,0,100,0,0,0,0,0,11,37752,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - On Aggro - Cast 37752"),
+(@ENTRY,0,5,6,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - On Aggro - Disallow Combat Movement"),
+(@ENTRY,0,6,7,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - On Aggro - Remove Not Attackable & Not Selectable Flag"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - On Aggro - Set Event Phase 1"),
+(@ENTRY,0,8,9,0,0,100,0,1000,1000,3000,5000,11,61597,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deep Jormungar - In Combat - Cast 61597"),
+(@ENTRY,0,9,0,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - In Combat - Disallow Combat Movement"),
+(@ENTRY,0,10,0,0,0,100,0,11000,16000,15000,20000,11,61598,1,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - In Combat - Cast 61598"),
+(@ENTRY,0,11,0,0,0,100,0,10000,20000,45000,50000,11,32738,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deep Jormungar - In Combat - Cast 32738"),
+(@ENTRY,0,12,13,9,0,100,1,30,60,0,0,11,56503,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - Between 30-60 Range - Cast 56503"),
+(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,11,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - Between 30-60 Range - Cast 29147"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - Between 30-60 Range - Set Event Phase 2"),
+(@ENTRY,0,15,16,9,0,100,1,0,8,0,0,28,56503,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - Between 0-8 Range - Remove Aura 56503"),
+(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,28,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - Between 0-8 Range - Remove Aura 29147"),
+(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,11,37752,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - Between 0-8 Range - Cast 37752"),
+(@ENTRY,0,18,19,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - Between 0-8 Range - Disallow Combat Movement"),
+(@ENTRY,0,19,20,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - Between 0-8 Range - Remove Not Attackable & Not Selectable Flag"),
+(@ENTRY,0,20,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - Between 0-8 Range - Set Event Phase 1"),
+(@ENTRY,0,21,22,7,0,100,1,0,0,0,0,11,56503,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - On Evade - Cast 56503"),
+(@ENTRY,0,22,23,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - On Evade - Set Event Phase 1"),
+(@ENTRY,0,23,24,61,0,100,0,0,0,0,0,11,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - On Evade - Cast 29147"),
+(@ENTRY,0,24,25,61,0,100,0,0,0,0,0,14,0,100,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - On Evade - Remove 100% Threat"),
+(@ENTRY,0,25,0,61,0,100,0,0,0,0,0,18,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deep Jormungar - On Evade - Set Not Attackable & Not Selectable Flag");
+
+-- Titanium Vanguard SAI
+SET @ENTRY := 28838;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Titanium Vanguard - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Titanium Vanguard - Out Of Combat - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,53059,0,0,0,0,0,2,0,0,0,0,0,0,0,"Titanium Vanguard - On Aggro - Cast 53059 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Titanium Vanguard - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,5,9,0,100,2,5,30,14000,21000,11,53059,0,0,0,0,0,2,0,0,0,0,0,0,0,"Titanium Vanguard - Between 5-30 Range - Cast 53059 (Normal Dungeon)"),
+(@ENTRY,0,5,6,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Titanium Vanguard - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,6,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Titanium Vanguard - Between 5-30 Range - Start Auto Attack (Normal Dungeon)"),
+(@ENTRY,0,7,8,4,0,100,5,0,0,0,0,11,59178,0,0,0,0,0,2,0,0,0,0,0,0,0,"Titanium Vanguard - On Aggro - Cast 59178 (Heroic Dungeon)"),
+(@ENTRY,0,8,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Titanium Vanguard - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,9,10,9,0,100,4,5,30,14000,21000,11,59178,0,0,0,0,0,2,0,0,0,0,0,0,0,"Titanium Vanguard - Between 5-30 Range - Cast 59178 (Heroic Dungeon)"),
+(@ENTRY,0,10,11,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Titanium Vanguard - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon)"),
+(@ENTRY,0,11,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Titanium Vanguard - Between 5-30 Range - Start Auto Attack (Heroic Dungeon)"),
+(@ENTRY,0,12,0,0,0,100,7,4000,6000,0,0,11,58619,0,0,0,0,0,2,0,0,0,0,0,0,0,"Titanium Vanguard - In Combat - Cast 58619 (Dungeon Only)"),
+(@ENTRY,0,13,0,0,0,100,6,12000,15000,12000,15000,11,58619,0,0,0,0,0,6,0,0,0,0,0,0,0,"Titanium Vanguard - In Combat - Cast 58619 (Dungeon Only)"),
+(@ENTRY,0,14,15,9,0,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Titanium Vanguard - Between 25-80 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Titanium Vanguard - Between 25-80 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,16,17,9,0,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Titanium Vanguard - Between 0-5 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Titanium Vanguard - Between 0-5 Range - Set Sheath Melee (Dungeon Only)"),
+(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Titanium Vanguard - Between 0-5 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,19,0,7,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Titanium Vanguard - On Evade - Set Sheath Melee (Dungeon Only)");
+
+-- Infesting Jormungar SAI
+SET @ENTRY := 30148;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,1,0,0,500,500,11,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - Out Of Combat - Cast 20567"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,18,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - Out Of Combat - Set Not Attackable & Not Selectable Flag"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,28,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - On Aggro - Remove Aura 20567"),
+(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,28,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - On Aggro - Remove Aura 29147"),
+(@ENTRY,0,4,5,61,0,100,0,0,0,0,0,11,37752,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - On Aggro - Cast 37752"),
+(@ENTRY,0,5,6,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - On Aggro - Disallow Combat Movement"),
+(@ENTRY,0,6,7,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - On Aggro - Remove Not Attackable & Not Selectable Flag"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - On Aggro - Set Event Phase 1"),
+(@ENTRY,0,8,0,0,0,100,0,3000,6000,18000,21000,11,56103,0,0,0,0,0,2,0,0,0,0,0,0,0,"Infesting Jormungar - In Combat - Cast 56103"),
+(@ENTRY,0,9,0,0,0,100,0,9000,12000,19000,23000,11,48287,0,0,0,0,0,2,0,0,0,0,0,0,0,"Infesting Jormungar - In Combat - Cast 48287"),
+(@ENTRY,0,10,0,0,0,100,0,20400,20400,45000,50000,11,32738,0,0,0,0,0,2,0,0,0,0,0,0,0,"Infesting Jormungar - In Combat - Cast 32738"),
+(@ENTRY,0,11,12,9,0,100,1,10,60,0,0,11,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - Between 10-60 Range - Cast 20567"),
+(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,11,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - Between 10-60 Range - Cast 29147"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - Between 10-60 Range - Set Event Phase 2"),
+(@ENTRY,0,14,15,9,0,100,1,0,8,0,0,28,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - Between 0-8 Range - Remove Aura 20567"),
+(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,28,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - Between 0-8 Range - Remove Aura 29147"),
+(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,11,37752,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - Between 0-8 Range - Cast 37752"),
+(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - Between 0-8 Range - Disallow Combat Movement"),
+(@ENTRY,0,18,19,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - Between 0-8 Range - Remove Not Attackable & Not Selectable Flag"),
+(@ENTRY,0,19,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - Between 0-8 Range - Set Event Phase 1"),
+(@ENTRY,0,20,21,7,0,100,1,0,0,0,0,11,20567,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - On Evade - Cast 20567"),
+(@ENTRY,0,21,22,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - On Evade - Set Event Phase 1"),
+(@ENTRY,0,22,23,61,0,100,0,0,0,0,0,11,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - On Evade - Cast 29147"),
+(@ENTRY,0,23,24,61,0,100,0,0,0,0,0,14,0,100,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - On Evade - Remove 100% Threat"),
+(@ENTRY,0,24,0,61,0,100,0,0,0,0,0,18,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,"Infesting Jormungar - On Evade - Set Not Attackable & Not Selectable Flag");
+
+-- Drakkari God Hunter SAI
+SET @ENTRY := 29820;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari God Hunter - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari God Hunter - Out Of Combat - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,35946,0,0,0,0,0,2,0,0,0,0,0,0,0,"Drakkari God Hunter - On Aggro - Cast 35946 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari God Hunter - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,5,9,0,100,2,5,30,2300,5000,11,35946,0,0,0,0,0,2,0,0,0,0,0,0,0,"Drakkari God Hunter - Between 5-30 Range - Cast 35946 (Normal Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari God Hunter - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,6,7,4,0,100,5,0,0,0,0,11,59146,0,0,0,0,0,2,0,0,0,0,0,0,0,"Drakkari God Hunter - On Aggro - Cast 59146 (Heroic Dungeon)"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari God Hunter - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,8,9,9,0,100,4,5,30,2300,5000,11,59146,0,0,0,0,0,2,0,0,0,0,0,0,0,"Drakkari God Hunter - Between 5-30 Range - Cast 59146 (Heroic Dungeon)"),
+(@ENTRY,0,9,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari God Hunter - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon)"),
+(@ENTRY,0,10,0,0,0,100,2,7000,10000,12000,15000,11,55624,1,0,0,0,0,5,0,0,0,0,0,0,0,"Drakkari God Hunter - In Combat - Cast 55624 (Normal Dungeon)"),
+(@ENTRY,0,11,0,0,0,100,4,7000,10000,12000,15000,11,58973,1,0,0,0,0,5,0,0,0,0,0,0,0,"Drakkari God Hunter - In Combat - Cast 58973 (Heroic Dungeon)"),
+(@ENTRY,0,12,13,9,0,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari God Hunter - Between 25-80 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari God Hunter - Between 25-80 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,14,15,9,0,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari God Hunter - Between 0-5 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari God Hunter - Between 0-5 Range - Set Sheath Melee (Dungeon Only)"),
+(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari God Hunter - Between 0-5 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,17,18,9,0,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari God Hunter - Between 5-15 Range - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari God Hunter - Between 5-15 Range - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,19,0,0,0,100,6,3000,5000,33000,37000,11,55798,1,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari God Hunter - In Combat - Cast 55798 (Dungeon Only)"),
+(@ENTRY,0,20,0,0,0,100,6,18000,21000,19000,23000,11,55625,0,0,0,0,0,5,0,0,0,0,0,0,0,"Drakkari God Hunter - In Combat - Cast 55625 (Dungeon Only)"),
+(@ENTRY,0,21,0,2,0,100,6,0,30,12000,15000,11,31567,1,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari God Hunter - Between 0-30% Health - Cast 31567 (Dungeon Only)"),
+(@ENTRY,0,22,0,7,0,100,7,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Drakkari God Hunter - On Evade - Set Sheath Melee (Dungeon Only)");
+
+-- Alliance Ranger SAI
+SET @ENTRY := 26802;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - Out Of Combat - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,2,0,4,0,100,7,0,0,0,0,28,47543,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - On Aggro - Remove Aura 47543 (Dungeon Only)"),
+(@ENTRY,0,3,4,4,0,100,3,0,0,0,0,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"Alliance Ranger - On Aggro - Cast 15620 (Normal Dungeon)"),
+(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,5,6,9,0,100,2,5,30,2300,3800,11,15620,0,0,0,0,0,2,0,0,0,0,0,0,0,"Alliance Ranger - Between 5-30 Range - Cast 15620 (Normal Dungeon)"),
+(@ENTRY,0,6,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,7,8,4,0,100,5,0,0,0,0,11,22907,0,0,0,0,0,2,0,0,0,0,0,0,0,"Alliance Ranger - On Aggro - Cast 22907 (Heroic Dungeon)"),
+(@ENTRY,0,8,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,9,10,9,0,100,4,5,30,2300,3800,11,22907,0,0,0,0,0,2,0,0,0,0,0,0,0,"Alliance Ranger - Between 5-30 Range - Cast 22907 (Heroic Dungeon)"),
+(@ENTRY,0,10,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon)"),
+(@ENTRY,0,11,12,9,0,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - Between 25-80 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - Between 25-80 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,13,14,9,0,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - Between 0-5 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - Between 0-5 Range - Set Sheath Melee (Dungeon Only)"),
+(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - Between 0-5 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,16,17,9,0,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - Between 5-15 Range - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - Between 5-15 Range - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,18,19,9,0,100,2,5,45,9500,10000,11,47777,1,0,0,0,0,2,0,0,0,0,0,0,0,"Alliance Ranger - Between 5-45 Range - Cast 47777 (Normal Dungeon)"),
+(@ENTRY,0,19,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - Between 5-45 Range - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,20,21,9,0,100,4,5,45,9500,10000,11,56933,1,0,0,0,0,2,0,0,0,0,0,0,0,"Alliance Ranger - Between 5-45 Range - Cast 56933 (Heroic Dungeon)"),
+(@ENTRY,0,21,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - Between 5-45 Range - Set Sheath Ranged (Heroic Dungeon)"),
+(@ENTRY,0,22,0,0,0,100,6,12000,15000,16100,19000,11,48191,5,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - In Combat - Cast 48191 (Dungeon Only)"),
+(@ENTRY,0,23,0,7,0,100,7,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Alliance Ranger - On Evade - Set Sheath Melee (Dungeon Only)");
+
+-- Phasing Stalker SAI
+SET @ENTRY := 18559;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - Out Of Combat - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,15547,0,0,0,0,0,2,0,0,0,0,0,0,0,"Phasing Stalker - On Aggro - Cast 15547 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,5,9,0,100,2,5,30,2300,5000,11,15547,0,0,0,0,0,2,0,0,0,0,0,0,0,"Phasing Stalker - Between 5-30 Range - Cast 15547 (Normal Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,6,7,4,0,100,5,0,0,0,0,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Phasing Stalker - On Aggro - Cast 16100 (Heroic Dungeon)"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,8,9,9,0,100,4,5,30,2300,5000,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Phasing Stalker - Between 5-30 Range - Cast 16100 (Heroic Dungeon)"),
+(@ENTRY,0,9,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon)"),
+(@ENTRY,0,10,11,9,0,100,6,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - Between 25-80 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,11,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - Between 25-80 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,12,13,9,0,100,6,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - Between 0-5 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - Between 0-5 Range - Set Sheath Melee (Dungeon Only)"),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - Between 0-5 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,15,16,9,0,100,6,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - Between 5-15 Range - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - Between 5-15 Range - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - Between 5-15 Range - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,18,0,0,0,100,6,5000,5000,20000,20000,11,32829,1,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - In Combat - Cast 32829 (Dungeon Only)"),
+(@ENTRY,0,19,0,9,0,100,2,5,20,10000,12000,11,31975,1,0,0,0,0,5,0,0,0,0,0,0,0,"Phasing Stalker - Between 5-20 Range - Cast 31975 (Normal Dungeon)"),
+(@ENTRY,0,20,0,9,0,100,4,5,20,10000,12000,11,35511,1,0,0,0,0,5,0,0,0,0,0,0,0,"Phasing Stalker - Between 5-20 Range - Cast 35511 (Heroic Dungeon)"),
+(@ENTRY,0,21,22,9,0,100,6,5,20,15000,16000,11,37551,1,0,0,0,0,5,0,0,0,0,0,0,0,"Phasing Stalker - Between 5-20 Range - Cast 37551 (Dungeon Only)"),
+(@ENTRY,0,22,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - Between 5-20 Range - Set Sheath Ranged (Dungeon Only)"),
+(@ENTRY,0,23,0,7,0,100,7,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Phasing Stalker - On Evade - Set Sheath Melee (Dungeon Only)");
diff --git a/sql/updates/world/2013_11_30_02_world_sai.sql b/sql/updates/world/2013_11_30_02_world_sai.sql
new file mode 100644
index 00000000000..fd835ef5d8b
--- /dev/null
+++ b/sql/updates/world/2013_11_30_02_world_sai.sql
@@ -0,0 +1,284 @@
+UPDATE `creature_template` SET `AIName`= '' WHERE `entry`=3430;
+DELETE FROM `creature_ai_texts` WHERE `entry`=-47;
+
+-- Hardened Steel Skycaller SAI
+SET @ENTRY := 28580;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - Out Of Combat - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,2,0,4,0,100,3,0,0,0,0,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Hardened Steel Skycaller - On Aggro - Cast 16100 (Normal Dungeon)"),
+(@ENTRY,0,3,4,9,0,100,2,5,30,2300,5000,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Hardened Steel Skycaller - Between 5-30 Range - Cast 16100 (Normal Dungeon)"),
+(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,5,6,0,0,100,2,9000,12000,15000,20000,11,52754,0,0,0,0,0,5,0,0,0,0,0,0,0,"Hardened Steel Skycaller - In Combat - Cast 52754 (Normal Dungeon)"),
+(@ENTRY,0,6,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - In Combat - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,7,8,0,0,100,2,7000,12000,12000,18000,11,52755,0,0,0,0,0,5,0,0,0,0,0,0,0,"Hardened Steel Skycaller - In Combat - Cast 52755 (Normal Dungeon)"),
+(@ENTRY,0,8,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - In Combat - Set Sheath Ranged (Normal Dungeon)"),
+(@ENTRY,0,9,0,4,0,100,5,0,0,0,0,11,61515,0,0,0,0,0,2,0,0,0,0,0,0,0,"Hardened Steel Skycaller - On Aggro - Cast 61515 (Heroic Dungeon)"),
+(@ENTRY,0,10,11,9,0,100,4,5,30,2300,5000,11,61515,0,0,0,0,0,2,0,0,0,0,0,0,0,"Hardened Steel Skycaller - Between 5-30 Range - Cast 61515 (Heroic Dungeon)"),
+(@ENTRY,0,11,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon)"),
+(@ENTRY,0,12,13,0,0,100,4,9000,12000,15000,20000,11,59148,0,0,0,0,0,5,0,0,0,0,0,0,0,"Hardened Steel Skycaller - In Combat - Cast 59148 (Heroic Dungeon)"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - In Combat - Set Sheath Ranged (Heroic Dungeon)"),
+(@ENTRY,0,14,15,0,0,100,4,7000,12000,12000,18000,11,59147,0,0,0,0,0,5,0,0,0,0,0,0,0,"Hardened Steel Skycaller - In Combat - Cast 59147 (Heroic Dungeon)"),
+(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - In Combat - Set Sheath Ranged (Heroic Dungeon)"),
+(@ENTRY,0,16,0,9,0,100,6,0,5,6000,9000,11,61507,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - Between 0-5 Range - Cast 61507 (Dungeon Only)"),
+(@ENTRY,0,17,18,9,0,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - Between 25-80 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - Between 25-80 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,19,20,9,0,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - Between 0-5 Range - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,20,21,61,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - Between 0-5 Range - Set Sheath Melee (Dungeon Only)"),
+(@ENTRY,0,21,0,61,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - Between 0-5 Range - Start Auto Attack (Dungeon Only)"),
+(@ENTRY,0,22,23,9,0,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - Between 5-15 Range - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,23,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - Between 5-15 Range - Stop Auto Attack (Dungeon Only)"),
+(@ENTRY,0,24,0,7,0,100,7,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hardened Steel Skycaller - On Evade - Set Sheath Melee (Dungeon Only)");
+
+-- Cabal Ritualist SAI
+SET @ENTRY := 18794;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,30,1,4,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - Out Of Combat - Set Random Phase (Dungeon Only)"),
+(@ENTRY,0,2,5,4,1,100,3,0,0,0,0,11,15497,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cabal Ritualist - On Aggro - Cast 15497 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,15497,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cabal Ritualist - Between 0-40 Range - Cast 15497 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,1,100,3,0,0,0,0,11,12675,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cabal Ritualist - On Aggro - Cast 12675 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - On Aggro - Increment Event Phase (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,2400,3800,11,12675,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cabal Ritualist - Between 0-40 Range - Cast 12675 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,0,1,100,2,7000,7000,7000,12000,11,15532,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - In Combat - Cast 15532 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,13,0,0,1,100,4,7000,7000,7000,12000,11,15063,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - In Combat - Cast 15063 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,14,0,0,2,100,6,4000,4000,6000,8000,11,12540,0,0,0,0,0,6,0,0,0,0,0,0,0,"Cabal Ritualist - In Combat - Cast 12540 (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,15,0,3,2,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - Between 30-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,16,19,4,4,100,3,0,0,0,0,11,33833,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cabal Ritualist - On Aggro - Cast 33833 (Normal Dungeon) (Phase 3)"),
+(@ENTRY,0,17,0,9,4,100,2,0,30,2400,3800,11,33833,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cabal Ritualist - Between 0-30 Range - Cast 33833 (Normal Dungeon) (Phase 3)"),
+(@ENTRY,0,18,19,4,4,100,3,0,0,0,0,11,38264,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cabal Ritualist - On Aggro - Cast 38264 (Heroic Dungeon) (Phase 3)"),
+(@ENTRY,0,19,0,61,4,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - On Aggro - Increment Event Phase (Heroic Dungeon) (Phase 3)"),
+(@ENTRY,0,20,0,9,4,100,4,0,30,2400,3800,11,38264,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cabal Ritualist - Between 0-30 Range - Cast 38264 (Heroic Dungeon) (Phase 3)"),
+(@ENTRY,0,21,22,3,4,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,22,0,61,4,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,23,0,9,4,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,24,0,9,4,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,25,0,9,4,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,26,0,0,4,100,6,9000,12000,12000,16000,11,33487,1,0,0,0,0,6,0,0,0,0,0,0,0,"Cabal Ritualist - In Combat - Cast 33487 (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,27,0,0,8,100,6,4000,4000,6000,8000,11,12540,0,0,0,0,0,6,0,0,0,0,0,0,0,"Cabal Ritualist - In Combat - Cast 12540 (Dungeon Only) (Phase 4)"),
+(@ENTRY,0,28,0,3,8,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - Between 30-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 4)"),
+(@ENTRY,0,29,0,4,0,100,7,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Cabal Ritualist - On Aggro - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,30,0,0,0,100,2,6000,10000,4000,6000,11,20795,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cabal Ritualist - In Combat - Cast 20795 (Normal Dungeon)"),
+(@ENTRY,0,31,0,0,0,100,4,6000,10000,4000,6000,11,14145,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cabal Ritualist - In Combat - Cast 14145 (Heroic Dungeon)"),
+(@ENTRY,0,32,0,0,0,100,6,2000,2000,10000,12000,11,9574,0,0,0,0,0,2,0,0,0,0,0,0,0,"Cabal Ritualist - In Combat - Cast 9574 (Dungeon Only)"),
+(@ENTRY,0,33,0,0,0,100,6,4000,4000,6000,8000,11,12540,0,0,0,0,0,6,0,0,0,0,0,0,0,"Cabal Ritualist - In Combat - Cast 12540 (Dungeon Only)");
+
+-- Ring-Lord Sorceress SAI
+SET @ENTRY := 27639;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,50715,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ring-Lord Sorceress - On Aggro - Cast 50715 (Normal Dungeon)"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - On Aggro - Increment Event Phase (Normal Dungeon)"),
+(@ENTRY,0,4,0,9,1,100,2,0,40,15000,19000,11,50715,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 0-40 Range - Cast 50715 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,6,4,0,100,5,0,0,0,0,11,59278,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ring-Lord Sorceress - On Aggro - Cast 59278 (Heroic Dungeon)"),
+(@ENTRY,0,6,0,61,0,100,5,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - On Aggro - Increment Event Phase (Heroic Dungeon)"),
+(@ENTRY,0,7,0,9,1,100,4,0,40,15000,19000,11,59278,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 0-40 Range - Cast 59278 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,8,9,3,1,100,7,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 0-7% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 0-7% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,0,3,2,100,6,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ring-Lord Sorceress - Between 15-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,14,0,0,0,100,2,9000,12000,15000,18000,11,16102,0,0,0,0,0,5,0,0,0,0,0,0,0,"Ring-Lord Sorceress - In Combat - Cast 16102 (Normal Dungeon)"),
+(@ENTRY,0,15,0,0,0,100,4,9000,12000,15000,18000,11,61402,0,0,0,0,0,5,0,0,0,0,0,0,0,"Ring-Lord Sorceress - In Combat - Cast 61402 (Heroic Dungeon)");
+
+-- Murkblood Oracle SAI
+SET @ENTRY := 17771;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,1,0,100,6,1000,1000,900000,900000,11,34880,1,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Out Of Combat - Cast 34880 (Dungeon Only)"),
+(@ENTRY,0,2,0,0,0,100,7,0,0,0,0,30,1,3,5,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - In Combat - Set Random Phase (Dungeon Only)"),
+(@ENTRY,0,3,6,4,1,100,3,0,0,0,0,11,15497,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Oracle - On Aggro - Cast 15497 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,0,9,1,100,2,0,40,3200,4800,11,15497,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-40 Range - Cast 15497 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,6,4,1,100,3,0,0,0,0,11,12675,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Oracle - On Aggro - Cast 12675 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - On Aggro - Increment Event Phase (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,4,0,40,3200,4800,11,12675,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-40 Range - Cast 12675 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,8,9,3,1,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,0,0,1,100,2,8700,8700,19000,19000,11,32192,1,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - In Combat - Cast 32192 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,14,0,0,1,100,4,8700,8700,19000,19000,11,15531,1,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - In Combat - Cast 15531 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,15,0,3,2,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 30-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,16,19,4,4,100,3,0,0,0,0,11,14034,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Oracle - On Aggro - Cast 14034 (Normal Dungeon) (Phase 3)"),
+(@ENTRY,0,17,0,9,4,100,2,0,40,2400,3800,11,14034,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-40 Range - Cast 14034 (Normal Dungeon) (Phase 3)"),
+(@ENTRY,0,18,19,4,4,100,3,0,0,0,0,11,15228,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Oracle - On Aggro - Cast 15228 (Heroic Dungeon) (Phase 3)"),
+(@ENTRY,0,19,0,61,4,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - On Aggro - Increment Event Phase (Heroic Dungeon) (Phase 3)"),
+(@ENTRY,0,20,0,9,4,100,4,0,40,2400,3800,11,15228,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-40 Range - Cast 15228 (Heroic Dungeon) (Phase 3)"),
+(@ENTRY,0,21,22,3,4,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,22,0,61,4,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,23,0,9,4,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,24,0,9,4,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,25,0,9,4,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,26,0,0,4,100,2,3600,3600,12000,15000,11,15241,1,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Oracle - In Combat - Cast 15241 (Normal Dungeon) (Phase 3)"),
+(@ENTRY,0,27,0,0,4,100,4,3600,3600,9000,12000,11,36807,1,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Oracle - In Combat - Cast 36807 (Heroic Dungeon) (Phase 3)"),
+(@ENTRY,0,28,0,3,8,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 30-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 4)"),
+(@ENTRY,0,29,32,4,16,100,3,0,0,0,0,11,12471,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Oracle - On Aggro - Cast 12471 (Normal Dungeon) (Phase 5)"),
+(@ENTRY,0,30,0,9,16,100,2,0,40,3100,4700,11,12471,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-40 Range - Cast 12471 (Normal Dungeon) (Phase 5)"),
+(@ENTRY,0,31,32,4,16,100,3,0,0,0,0,11,15232,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Oracle - On Aggro - Cast 15232 (Heroic Dungeon) (Phase 5)"),
+(@ENTRY,0,32,0,61,16,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - On Aggro - Increment Event Phase (Heroic Dungeon) (Phase 5)"),
+(@ENTRY,0,33,0,9,16,100,4,0,40,3100,4700,11,15232,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-40 Range - Cast 15232 (Heroic Dungeon) (Phase 5)"),
+(@ENTRY,0,34,35,3,16,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 5)"),
+(@ENTRY,0,35,0,61,16,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 5)"),
+(@ENTRY,0,36,0,9,16,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 5)"),
+(@ENTRY,0,37,0,9,16,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 5)"),
+(@ENTRY,0,38,0,9,16,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 5)"),
+(@ENTRY,0,39,0,0,16,100,2,7600,7600,3600,10100,11,31405,32,0,0,0,0,5,0,0,0,0,0,0,0,"Murkblood Oracle - In Combat - Cast 31405 (Normal Dungeon) (Phase 5)"),
+(@ENTRY,0,40,0,0,16,100,4,7600,7600,6700,6700,11,37113,32,0,0,0,0,5,0,0,0,0,0,0,0,"Murkblood Oracle - In Combat - Cast 37113 (Heroic Dungeon) (Phase 5)"),
+(@ENTRY,0,41,0,3,32,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 30-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 6)"),
+(@ENTRY,0,42,0,0,0,100,6,3000,9000,15000,250000,11,34880,33,0,0,0,0,5,0,0,0,0,0,0,0,"Murkblood Oracle - In Combat - Cast 34880 (Dungeon Only)"),
+(@ENTRY,0,43,44,2,0,100,7,0,15,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-15% Health - Set Event Phase 0 (Dungeon Only)"),
+(@ENTRY,0,44,45,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-15% Health - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,45,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Murkblood Oracle - Between 0-15% Health - Flee For Assist (Dungeon Only)");
+
+-- Coilfang Leper SAI
+SET @ENTRY := 21338;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,0,0,100,7,0,0,0,0,30,1,3,5,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - In Combat - Set Random Phase (Dungeon Only)"),
+(@ENTRY,0,2,5,4,1,100,3,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Coilfang Leper - On Aggro - Cast 9613 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Coilfang Leper - Between 0-40 Range - Cast 9613 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,1,100,3,0,0,0,0,11,12739,0,0,0,0,0,2,0,0,0,0,0,0,0,"Coilfang Leper - On Aggro - Cast 12739 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - On Aggro - Increment Event Phase (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,2400,3800,11,12739,0,0,0,0,0,2,0,0,0,0,0,0,0,"Coilfang Leper - Between 0-40 Range - Cast 12739 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,0,1,85,2,9000,12000,9000,12000,11,11831,1,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - In Combat - Cast 11831 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,13,0,0,1,100,4,9000,12000,9000,12000,11,15063,1,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - In Combat - Cast 15063 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,14,0,3,2,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 30-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,15,16,9,4,100,2,5,30,2300,3800,11,15547,0,0,0,0,0,2,0,0,0,0,0,0,0,"Coilfang Leper - Between 5-30 Range - Cast 15547 (Normal Dungeon) (Phase 3)"),
+(@ENTRY,0,16,0,61,4,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 3)"),
+(@ENTRY,0,17,18,9,4,100,4,5,30,2300,3800,11,16100,0,0,0,0,0,2,0,0,0,0,0,0,0,"Coilfang Leper - Between 5-30 Range - Cast 16100 (Heroic Dungeon) (Phase 3)"),
+(@ENTRY,0,18,0,61,4,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 5-30 Range - Set Sheath Ranged (Heroic Dungeon) (Phase 3)"),
+(@ENTRY,0,19,20,9,4,100,7,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 25-80 Range - Allow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,20,0,61,4,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 25-80 Range - Start Auto Attack (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,21,22,9,4,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,22,23,61,4,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 0-5 Range - Set Sheath Melee (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,23,0,61,4,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 0-5 Range - Start Auto Attack (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,24,25,9,4,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,25,0,61,4,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 5-15 Range - Stop Auto Attack (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,26,0,2,4,100,2,0,40,10000,14000,11,11642,1,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 0-40% Health - Cast 11642 (Normal Dungeon) (Phase 3)"),
+(@ENTRY,0,27,0,2,4,100,4,0,40,10000,11000,11,15586,1,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 0-40% Health - Cast 15586 (Heroic Dungeon) (Phase 3)"),
+(@ENTRY,0,28,0,0,8,100,1,1000,1000,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - In Combat - Allow Combat Movement (Phase 4)"),
+(@ENTRY,0,29,0,0,16,100,2,5000,7000,7000,9000,11,13339,0,0,0,0,0,2,0,0,0,0,0,0,0,"Coilfang Leper - In Combat - Cast 13339 (Normal Dungeon) (Phase 5)"),
+(@ENTRY,0,30,0,0,16,100,4,5000,7000,7000,8000,11,14145,0,0,0,0,0,2,0,0,0,0,0,0,0,"Coilfang Leper - In Combat - Cast 14145 (Heroic Dungeon) (Phase 5)"),
+(@ENTRY,0,31,0,0,16,100,6,8000,12000,8000,14000,11,13444,0,0,0,0,0,2,0,0,0,0,0,0,0,"Coilfang Leper - In Combat - Cast 13444 (Dungeon Only) (Phase 5)"),
+(@ENTRY,0,32,0,0,16,100,6,6000,8000,9000,12000,11,13446,1,0,0,0,0,2,0,0,0,0,0,0,0,"Coilfang Leper - In Combat - Cast 13446 (Dungeon Only) (Phase 5)"),
+(@ENTRY,0,33,34,2,0,100,7,0,15,0,0,22,6,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 0-15% Health - Set Event Phase 6 (Dungeon Only)"),
+(@ENTRY,0,34,35,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - Between 0-15% Health - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,35,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Coilfang Leper - Between 0-15% Health - Flee For Assist (Dungeon Only)"),
+(@ENTRY,0,36,0,7,0,100,7,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coilfang Leper - On Evade - Set Sheath Melee (Dungeon Only)");
+
+-- Mage Hunter Ascendant SAI
+SET @ENTRY := 26727;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,0,0,100,7,0,0,0,0,30,1,4,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - In Combat - Set Random Phase (Dungeon Only)"),
+(@ENTRY,0,2,5,4,1,100,3,0,0,0,0,11,12466,0,0,0,0,0,2,0,0,0,0,0,0,0,"Mage Hunter Ascendant - On Aggro - Cast 12466 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,12466,0,0,0,0,0,2,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Between 0-40 Range - Cast 12466 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,5,4,1,100,3,0,0,0,0,11,17290,0,0,0,0,0,2,0,0,0,0,0,0,0,"Mage Hunter Ascendant - On Aggro - Cast 17290 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - On Aggro - Increment Event Phase (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,4,0,40,2400,3800,11,17290,0,0,0,0,0,2,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Between 0-40 Range - Cast 17290 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,8,3,1,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,9,1,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,0,1,100,6,4000,6000,12000,18000,11,47784,0,0,0,0,0,2,0,0,0,0,0,0,0,"Mage Hunter Ascendant - In Combat - Cast 47784 (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,0,0,1,100,2,7000,9000,15000,28000,11,36808,0,0,0,0,0,5,0,0,0,0,0,0,0,"Mage Hunter Ascendant - In Combat - Cast 36808 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,14,0,0,1,100,4,7000,9000,15000,28000,11,39376,0,0,0,0,0,5,0,0,0,0,0,0,0,"Mage Hunter Ascendant - In Combat - Cast 39376 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,15,0,3,2,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Between 30-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,16,19,4,4,100,3,0,0,0,0,11,12737,0,0,0,0,0,2,0,0,0,0,0,0,0,"Mage Hunter Ascendant - On Aggro - Cast 12737 (Normal Dungeon) (Phase 3)"),
+(@ENTRY,0,17,0,9,4,100,2,0,30,2400,3800,11,12737,0,0,0,0,0,2,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Between 0-30 Range - Cast 12737 (Normal Dungeon) (Phase 3)"),
+(@ENTRY,0,18,19,4,4,100,3,0,0,0,0,11,56837,0,0,0,0,0,2,0,0,0,0,0,0,0,"Mage Hunter Ascendant - On Aggro - Cast 56837 (Heroic Dungeon) (Phase 3)"),
+(@ENTRY,0,19,0,61,4,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - On Aggro - Increment Event Phase (Heroic Dungeon) (Phase 3)"),
+(@ENTRY,0,20,0,9,4,100,4,0,30,2400,3800,11,56837,0,0,0,0,0,2,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Between 0-30 Range - Cast 56837 (Heroic Dungeon) (Phase 3)"),
+(@ENTRY,0,21,22,3,4,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,22,0,61,4,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,23,0,9,4,100,7,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,24,0,9,4,100,7,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,25,0,9,4,100,7,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,26,0,0,0,100,6,7000,9000,11000,18000,11,55040,0,0,0,0,0,2,0,0,0,0,0,0,0,"Mage Hunter Ascendant - In Combat - Cast 55040 (Dungeon Only)"),
+(@ENTRY,0,27,0,0,0,100,2,10000,12000,11000,15000,11,15244,0,0,0,0,0,2,0,0,0,0,0,0,0,"Mage Hunter Ascendant - In Combat - Cast 15244 (Normal Dungeon)"),
+(@ENTRY,0,28,0,0,0,100,4,10000,12000,11000,15000,11,38384,0,0,0,0,0,2,0,0,0,0,0,0,0,"Mage Hunter Ascendant - In Combat - Cast 38384 (Heroic Dungeon)"),
+(@ENTRY,0,29,0,3,8,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Between 30-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 4)"),
+(@ENTRY,0,30,0,1,16,100,6,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - Out Of Combat - Allow Combat Movement (Dungeon Only) (Phase 5)"),
+(@ENTRY,0,31,0,0,1,100,2,4000,6000,8000,11000,11,34933,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - In Combat - Cast 34933 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,32,0,0,1,100,4,4000,6000,8000,11000,11,56825,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - In Combat - Cast 56825 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,33,0,0,1,100,6,8000,9000,9000,15000,11,47789,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - In Combat - Cast 47789 (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,34,0,0,1,100,2,1000,1200,60000,60000,11,50182,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - In Combat - Cast 50182 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,35,0,0,1,100,4,1000,1200,60000,60000,11,56827,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mage Hunter Ascendant - In Combat - Cast 56827 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,36,0,0,0,100,6,9000,14000,19000,22000,11,13323,1,0,0,0,0,6,0,0,0,0,0,0,0,"Mage Hunter Ascendant - In Combat - Cast 13323 (Dungeon Only)");
+
+-- Veteran Mage Hunter SAI
+SET @ENTRY := 30665;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,1,0,100,7,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Out Of Combat - Disallow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,1,0,1,0,100,7,1000,1000,0,0,11,58040,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Out Of Combat - Cast 58040 (Dungeon Only)"),
+(@ENTRY,0,2,0,0,0,100,7,0,0,0,0,30,1,3,5,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - In Combat - Set Random Phase (Dungeon Only)"),
+(@ENTRY,0,3,6,4,1,100,3,0,0,0,0,11,15043,0,0,0,0,0,2,0,0,0,0,0,0,0,"Veteran Mage Hunter - On Aggro - Cast 15043 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,4,0,9,1,100,2,0,40,2400,3800,11,15043,0,0,0,0,0,2,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-40 Range - Cast 15043 (Normal Dungeon) (Phase 1)"),
+(@ENTRY,0,5,6,4,1,100,3,0,0,0,0,11,20822,0,0,0,0,0,2,0,0,0,0,0,0,0,"Veteran Mage Hunter - On Aggro - Cast 20822 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - On Aggro - Increment Event Phase (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,4,0,40,2400,3800,11,20822,0,0,0,0,0,2,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-40 Range - Cast 20822 (Heroic Dungeon) (Phase 1)"),
+(@ENTRY,0,8,9,3,1,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,10,0,9,1,100,6,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,11,0,9,1,100,6,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,12,0,9,1,100,6,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 1)"),
+(@ENTRY,0,13,0,3,2,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 30-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 2)"),
+(@ENTRY,0,14,17,4,4,100,3,0,0,0,0,11,12466,0,0,0,0,0,2,0,0,0,0,0,0,0,"Veteran Mage Hunter - On Aggro - Cast 12466 (Normal Dungeon) (Phase 3)"),
+(@ENTRY,0,15,0,9,4,100,2,0,40,2400,3800,11,12466,0,0,0,0,0,2,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-40 Range - Cast 12466 (Normal Dungeon) (Phase 3)"),
+(@ENTRY,0,16,17,4,4,100,3,0,0,0,0,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Veteran Mage Hunter - On Aggro - Cast 20823 (Heroic Dungeon) (Phase 3)"),
+(@ENTRY,0,17,0,61,4,100,3,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - On Aggro - Increment Event Phase (Heroic Dungeon) (Phase 3)"),
+(@ENTRY,0,18,0,9,4,100,4,0,40,2400,3800,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-40 Range - Cast 20823 (Heroic Dungeon) (Phase 3)"),
+(@ENTRY,0,19,20,3,4,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,20,0,61,4,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,21,0,9,4,100,6,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,22,0,9,4,100,6,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,23,0,9,4,100,6,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 3)"),
+(@ENTRY,0,24,0,3,8,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 30-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 4)"),
+(@ENTRY,0,25,28,4,16,100,3,0,0,0,0,11,13748,0,0,0,0,0,2,0,0,0,0,0,0,0,"Veteran Mage Hunter - On Aggro - Cast 13748 (Normal Dungeon) (Phase 5)"),
+(@ENTRY,0,26,0,9,16,100,2,0,40,2400,3800,11,13748,0,0,0,0,0,2,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-40 Range - Cast 13748 (Normal Dungeon) (Phase 5)"),
+(@ENTRY,0,27,28,4,16,100,3,0,0,0,0,11,20829,0,0,0,0,0,2,0,0,0,0,0,0,0,"Veteran Mage Hunter - On Aggro - Cast 20829 (Heroic Dungeon) (Phase 5)"),
+(@ENTRY,0,28,0,61,16,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - On Aggro - Increment Event Phase (Heroic Dungeon) (Phase 5)"),
+(@ENTRY,0,29,0,9,16,100,4,0,40,2400,3800,11,20829,0,0,0,0,0,2,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-40 Range - Cast 20829 (Heroic Dungeon) (Phase 5)"),
+(@ENTRY,0,30,31,3,16,100,7,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-15% Mana - Allow Combat Movement (Dungeon Only) (Phase 5)"),
+(@ENTRY,0,31,0,61,16,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-15% Mana - Increment Event Phase (Dungeon Only) (Phase 5)"),
+(@ENTRY,0,32,0,9,16,100,6,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 35-80 Range - Allow Combat Movement (Dungeon Only) (Phase 5)"),
+(@ENTRY,0,33,0,9,16,100,6,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 5-15 Range - Disallow Combat Movement (Dungeon Only) (Phase 5)"),
+(@ENTRY,0,34,0,9,16,100,6,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-5 Range - Allow Combat Movement (Dungeon Only) (Phase 5)"),
+(@ENTRY,0,35,0,3,32,100,6,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 30-100% Mana - Decrement Event Phase (Dungeon Only) (Phase 6)"),
+(@ENTRY,0,36,37,2,0,100,7,0,15,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-15% Health - Set Event Phase 0 (Dungeon Only)"),
+(@ENTRY,0,37,38,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-15% Health - Allow Combat Movement (Dungeon Only)"),
+(@ENTRY,0,38,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Veteran Mage Hunter - Between 0-15% Health - Flee For Assist (Dungeon Only)");
diff --git a/sql/updates/world/2013_11_30_03_world_sai.sql b/sql/updates/world/2013_11_30_03_world_sai.sql
new file mode 100644
index 00000000000..a13515fb926
--- /dev/null
+++ b/sql/updates/world/2013_11_30_03_world_sai.sql
@@ -0,0 +1,63 @@
+-- Voidshrieker SAI
+SET @ENTRY := 18870;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@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,11,0,100,1,0,0,0,0,11,34302,1,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Respawn - Cast 34302"),
+(@ENTRY,0,1,0,0,0,100,7,0,0,0,0,30,1,2,3,4,5,6,1,0,0,0,0,0,0,0,"Voidshrieker - On Aggro - Set Random Phase"),
+(@ENTRY,0,2,3,8,0,100,1,0,2,0,0,11,34336,1,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By type 2 - Cast 34336"),
+(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By type 2 - Disallow Combat Movement"),
+(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By type 2 - Set Event Phase 1"),
+(@ENTRY,0,5,6,8,0,100,1,0,4,0,0,11,34333,1,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By type 4 - Cast 34333"),
+(@ENTRY,0,6,7,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By type 4 - Disallow Combat Movement"),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By type 4 - Set Event Phase 2"),
+(@ENTRY,0,8,9,8,0,100,1,0,8,0,0,11,34335,1,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By type 8 - Cast 34335"),
+(@ENTRY,0,9,10,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By type 8 - Disallow Combat Movement"),
+(@ENTRY,0,10,0,61,0,100,0,0,0,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By type 8 - Set Event Phase 3"),
+(@ENTRY,0,11,12,8,0,100,1,0,16,0,0,11,34334,1,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By type 16 - Cast 34334"),
+(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By type 16 - Disallow Combat Movement"),
+(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,22,4,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By type 16 - Set Event Phase 4"),
+(@ENTRY,0,14,15,8,0,100,1,0,32,0,0,11,34338,1,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By type 32 - Cast 34338"),
+(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By type 32 - Disallow Combat Movement"),
+(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,22,5,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By type 32 - Set Event Phase 5"),
+(@ENTRY,0,17,18,8,0,100,1,0,64,0,0,11,34331,1,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By 64 - Cast 34331"),
+(@ENTRY,0,18,19,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By 64 - Disallow Combat Movement"),
+(@ENTRY,0,19,0,61,0,100,0,0,0,0,0,22,6,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - On Spellhit By 64 - Set Event Phase 6"),
+(@ENTRY,0,20,0,9,1,100,0,0,40,2000,3000,11,34346,0,0,0,0,0,2,0,0,0,0,0,0,0,"Voidshrieker - Between 0-40 Range - Cast 34346 (Phase 1)"),
+(@ENTRY,0,21,22,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-15% Mana - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,22,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-15% Mana - Increment Event Phase (Phase 1)"),
+(@ENTRY,0,23,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 35-80 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,24,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 5-15 Range - Disallow Combat Movement (Phase 1)"),
+(@ENTRY,0,25,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-5 Range - Allow Combat Movement (Phase 1)"),
+(@ENTRY,0,26,0,9,2,100,0,0,40,2000,3000,11,34348,0,0,0,0,0,2,0,0,0,0,0,0,0,"Voidshrieker - Between 0-40 Range - Cast 34348 (Phase 2)"),
+(@ENTRY,0,27,28,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-15% Mana - Allow Combat Movement (Phase 2)"),
+(@ENTRY,0,28,0,61,2,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-15% Mana - Increment Event Phase (Phase 2)"),
+(@ENTRY,0,29,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 35-80 Range - Allow Combat Movement (Phase 2)"),
+(@ENTRY,0,30,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 5-15 Range - Disallow Combat Movement (Phase 2)"),
+(@ENTRY,0,31,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-5 Range - Allow Combat Movement (Phase 2)"),
+(@ENTRY,0,32,0,9,4,100,0,0,40,2000,3000,11,34345,0,0,0,0,0,2,0,0,0,0,0,0,0,"Voidshrieker - Between 0-40 Range - Cast 34345 (Phase 3)"),
+(@ENTRY,0,33,34,3,4,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-15% Mana - Allow Combat Movement (Phase 3)"),
+(@ENTRY,0,34,0,61,4,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-15% Mana - Increment Event Phase (Phase 3)"),
+(@ENTRY,0,35,0,9,4,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 35-80 Range - Allow Combat Movement (Phase 3)"),
+(@ENTRY,0,36,0,9,4,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 5-15 Range - Disallow Combat Movement (Phase 3)"),
+(@ENTRY,0,37,0,9,4,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-5 Range - Allow Combat Movement (Phase 3)"),
+(@ENTRY,0,38,0,9,8,100,0,0,40,2000,3000,11,34347,0,0,0,0,0,2,0,0,0,0,0,0,0,"Voidshrieker - Between 0-40 Range - Cast 34347 (Phase 4)"),
+(@ENTRY,0,39,40,3,8,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-15% Mana - Allow Combat Movement (Phase 4)"),
+(@ENTRY,0,40,0,61,8,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-15% Mana - Increment Event Phase (Phase 4)"),
+(@ENTRY,0,41,0,9,8,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 35-80 Range - Allow Combat Movement (Phase 4)"),
+(@ENTRY,0,42,0,9,8,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 5-15 Range - Disallow Combat Movement (Phase 4)"),
+(@ENTRY,0,43,0,9,8,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-5 Range - Allow Combat Movement (Phase 4)"),
+(@ENTRY,0,44,0,9,16,100,0,0,40,2000,3000,11,34344,0,0,0,0,0,2,0,0,0,0,0,0,0,"Voidshrieker - Between 0-40 Range - Cast 34344 (Phase 5)"),
+(@ENTRY,0,45,46,3,16,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-15% Mana - Allow Combat Movement (Phase 5)"),
+(@ENTRY,0,46,0,61,16,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-15% Mana - Increment Event Phase (Phase 5)"),
+(@ENTRY,0,47,0,9,16,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 35-80 Range - Allow Combat Movement (Phase 5)"),
+(@ENTRY,0,48,0,9,16,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 5-15 Range - Disallow Combat Movement (Phase 5)"),
+(@ENTRY,0,49,0,9,16,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-5 Range - Allow Combat Movement (Phase 5)"),
+(@ENTRY,0,50,0,9,32,100,0,0,30,2400,3800,11,34447,0,0,0,0,0,2,0,0,0,0,0,0,0,"Voidshrieker - Between 0-30 Range - Cast 34447 (Phase 6)"),
+(@ENTRY,0,51,52,3,32,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-15% Mana - Allow Combat Movement (Phase 6)"),
+(@ENTRY,0,52,0,61,32,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-15% Mana - Increment Event Phase (Phase 6)"),
+(@ENTRY,0,53,0,9,32,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 25-80 Range - Allow Combat Movement (Phase 6)"),
+(@ENTRY,0,54,0,9,32,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 5-15 Range - Disallow Combat Movement (Phase 6)"),
+(@ENTRY,0,55,0,9,32,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - Between 0-5 Range - Allow Combat Movement (Phase 6)"),
+(@ENTRY,0,56,0,0,0,100,0,9000,13000,14000,18000,11,22884,1,0,0,0,0,1,0,0,0,0,0,0,0,"Voidshrieker - In Combat - Cast 22884");
diff --git a/sql/updates/world/2013_12_01_00_world_creature_ai.sql b/sql/updates/world/2013_12_01_00_world_creature_ai.sql
new file mode 100644
index 00000000000..e10c64a59fe
--- /dev/null
+++ b/sql/updates/world/2013_12_01_00_world_creature_ai.sql
@@ -0,0 +1,4 @@
+DROP TABLE `creature_ai_scripts`;
+DROP TABLE `creature_ai_texts`;
+
+DELETE FROM `command` WHERE `name`='reload all eventai';
diff --git a/sql/updates/world/2013_12_01_01_world_sai.sql b/sql/updates/world/2013_12_01_01_world_sai.sql
new file mode 100644
index 00000000000..f59bae00809
--- /dev/null
+++ b/sql/updates/world/2013_12_01_01_world_sai.sql
@@ -0,0 +1,7 @@
+-- Lord-Commander Arete SAI
+SET @ENTRY := 29344;
+UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0 AND `id` IN (1,2);
+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,1,2,62,0,100,0,9812,0,0,0,15,12807,0,0,0,0,0,7,0,0,0,0,0,0,0,"Lord-Commander Arete - Gossip Option Select - Quest credit"),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Lord-Commander Arete - Gossip Option Select - Close gossip");
diff --git a/sql/updates/world/2013_12_01_02_world_command.sql b/sql/updates/world/2013_12_01_02_world_command.sql
new file mode 100644
index 00000000000..e47c583a94a
--- /dev/null
+++ b/sql/updates/world/2013_12_01_02_world_command.sql
@@ -0,0 +1 @@
+DELETE FROM `command` WHERE `permission` IN (631,632);
diff --git a/sql/updates/world/2013_12_01_03_world_sai.sql b/sql/updates/world/2013_12_01_03_world_sai.sql
new file mode 100644
index 00000000000..ac04f14bc0e
--- /dev/null
+++ b/sql/updates/world/2013_12_01_03_world_sai.sql
@@ -0,0 +1,2 @@
+UPDATE `creature_template` SET `AIName`= '' WHERE `entry` IN (30666,30961,30661,30963,30664,30668,31079,30667,30962,30662,32191);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (30666,30961,30661,30963,30664,30668,31079,30667,30962,30662,32191);
diff --git a/sql/updates/world/2013_12_01_04_world_sai.sql b/sql/updates/world/2013_12_01_04_world_sai.sql
new file mode 100644
index 00000000000..5d1236d9f9f
--- /dev/null
+++ b/sql/updates/world/2013_12_01_04_world_sai.sql
@@ -0,0 +1,2 @@
+-- Fix Felweaver Scornn SAI
+UPDATE `smart_scripts` SET `event_type`=61, `event_flags`=0, `event_param2`=0 WHERE `entryorguid`=5822 AND `id` IN (11,12);
diff --git a/sql/updates/world/2013_12_01_05_world_misc.sql b/sql/updates/world/2013_12_01_05_world_misc.sql
new file mode 100644
index 00000000000..7c0fbe48985
--- /dev/null
+++ b/sql/updates/world/2013_12_01_05_world_misc.sql
@@ -0,0 +1,10 @@
+DELETE FROM `spell_scripts` WHERE `id` IN (52160,52163);
+DELETE FROM `db_script_string` WHERE `entry` IN (2000000107,2000000108);
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (52160,52163);
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(52160, 'spell_shango_tracks'),
+(52163, 'spell_shango_tracks');
+DELETE FROM `trinity_string` WHERE `entry` IN (28634,28635);
+INSERT INTO `trinity_string` (`entry`,`content_default`) VALUES
+(28634, 'These tracks must belong to Shango.'),
+(28635, 'These aren''t Shango''s tracks.');
diff --git a/sql/updates/world/2013_12_01_06_world_misc.sql b/sql/updates/world/2013_12_01_06_world_misc.sql
new file mode 100644
index 00000000000..77654de6300
--- /dev/null
+++ b/sql/updates/world/2013_12_01_06_world_misc.sql
@@ -0,0 +1,68 @@
+-- gossip_menu_option for Squires David,Danny and Cavin
+DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (10340,10383,10343);
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
+(10340, 0, 0, 'I am ready to fight!', 1, 1, 0, 0, 0, 0, NULL),
+(10340, 1, 0, 'How do the Argent Crusade riders fight?', 1, 1, 10440, 0, 0, 0, NULL),
+(10383, 0, 0, 'Ask Cavin to summon the Black Knight.', 1, 1, 0, 0, 0, 0, NULL),
+(10343, 0, 0, 'I am ready to fight!', 1, 1, 0, 0, 0, 0, NULL);
+
+-- Squire Danny menu option conditions
+DELETE FROM `conditions` WHERE SourceTypeOrReferenceId=15 and SourceGroup=10343;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(15, 10343, 0, 0, 0, 9, 0, 13731, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge'),
+(15, 10343, 0, 0, 0, 28, 0, 13731, 0, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge not complete'),
+(15, 10343, 0, 0, 0, 1, 0, 63034, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has aura 63034'),
+(15, 10343, 0, 0, 0, 29, 0, 33707, 100, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if an Argent Champion is not near'),
+--
+(15, 10343, 0, 0, 1, 9, 0, 13729, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge'),
+(15, 10343, 0, 0, 1, 28, 0, 13729, 0, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge not complete'),
+(15, 10343, 0, 0, 1, 1, 0, 63034, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has aura 63034'),
+(15, 10343, 0, 0, 1, 29, 0, 33707, 100, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if an Argent Champion is not near'),
+--
+(15, 10343, 0, 0, 2, 9, 0, 13728, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge'),
+(15, 10343, 0, 0, 2, 28, 0, 13728, 0, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge not complete'),
+(15, 10343, 0, 0, 2, 1, 0, 63034, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has aura 63034'),
+(15, 10343, 0, 0, 2, 29, 0, 33707, 100, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if an Argent Champion is not near'),
+--
+(15, 10343, 0, 0, 3, 9, 0, 13727, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge'),
+(15, 10343, 0, 0, 3, 28, 0, 13727, 0, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge not complete'),
+(15, 10343, 0, 0, 3, 1, 0, 63034, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has aura 63034'),
+(15, 10343, 0, 0, 3, 29, 0, 33707, 100, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if an Argent Champion is not near'),
+--
+(15, 10343, 0, 0, 4, 9, 0, 13726, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge'),
+(15, 10343, 0, 0, 4, 28, 0, 13726, 0, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge not complete'),
+(15, 10343, 0, 0, 4, 1, 0, 63034, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has aura 63034'),
+(15, 10343, 0, 0, 4, 29, 0, 33707, 100, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if an Argent Champion is not near'),
+--
+(15, 10343, 0, 0, 5, 9, 0, 13725, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge'),
+(15, 10343, 0, 0, 5, 28, 0, 13725, 0, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge not complete'),
+(15, 10343, 0, 0, 5, 1, 0, 63034, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has aura 63034'),
+(15, 10343, 0, 0, 5, 29, 0, 33707, 100, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if an Argent Champion is not near'),
+--
+(15, 10343, 0, 0, 6, 9, 0, 13724, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge'),
+(15, 10343, 0, 0, 6, 28, 0, 13724, 0, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge not complete'),
+(15, 10343, 0, 0, 6, 1, 0, 63034, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has aura 63034'),
+(15, 10343, 0, 0, 6, 29, 0, 33707, 100, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if an Argent Champion is not near'),
+--
+(15, 10343, 0, 0, 7, 9, 0, 13723, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge'),
+(15, 10343, 0, 0, 7, 28, 0, 13723, 0, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge not complete'),
+(15, 10343, 0, 0, 7, 1, 0, 63034, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has aura 63034'),
+(15, 10343, 0, 0, 7, 29, 0, 33707, 100, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if an Argent Champion is not near'),
+--
+(15, 10343, 0, 0, 8, 9, 0, 13713, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge'),
+(15, 10343, 0, 0, 8, 28, 0, 13713, 0, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge not complete'),
+(15, 10343, 0, 0, 8, 1, 0, 63034, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has aura 63034'),
+(15, 10343, 0, 0, 8, 29, 0, 33707, 100, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if an Argent Champion is not near'),
+--
+(15, 10343, 0, 0, 9, 9, 0, 13699, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge'),
+(15, 10343, 0, 0, 9, 28, 0, 13699, 0, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Valiant''s Challenge not complete'),
+(15, 10343, 0, 0, 9, 1, 0, 63034, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has aura 63034'),
+(15, 10343, 0, 0, 9, 29, 0, 33707, 100, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if an Argent Champion is now near');
+
+-- Squire Cavin menu option conditions
+DELETE FROM `conditions` WHERE SourceTypeOrReferenceId=15 and SourceGroup=10383;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(15, 10383, 0, 0, 0, 9, 0, 13664, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Black Knight''s Fall'),
+(15, 10383, 0, 0, 0, 28, 0, 13664, 0, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if player has quest The Black Knight''s Fall not complete'),
+(15, 10383, 0, 0, 0, 1, 0, 63663, 0, 0, 0, 0, 0, '', 'Squire Danny - Show gossip option if player has aura 63663'),
+(15, 10383, 0, 0, 0, 29, 0, 33785, 100, 0, 1, 0, 0, '', 'Squire Danny - Show gossip option if The Black Knight is not near');
diff --git a/sql/updates/world/2013_12_01_07_world_sai.sql b/sql/updates/world/2013_12_01_07_world_sai.sql
new file mode 100644
index 00000000000..9e2dce60a75
--- /dev/null
+++ b/sql/updates/world/2013_12_01_07_world_sai.sql
@@ -0,0 +1 @@
+UPDATE `smart_scripts` SET `event_type`=61 WHERE `entryorguid`=28079 AND `id`=12;
diff --git a/sql/updates/world/2013_12_02_00_world_sai.sql b/sql/updates/world/2013_12_02_00_world_sai.sql
new file mode 100644
index 00000000000..8bb7e8d9591
--- /dev/null
+++ b/sql/updates/world/2013_12_02_00_world_sai.sql
@@ -0,0 +1,12 @@
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0 AND `id`=5;
+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
+(4848,0,5,0,61,1,100,2,0,15,100,100,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stonevault Darkcaster - Between 0-15% Mana - Increment Phase (Phase 1) (Normal Dungeon)");
+UPDATE `smart_scripts` SET `event_type`=11, `event_flags`=1, `comment`= 'Val''kyr Guardian - On spawn install AI template caster - Cast Smite every 1.5/2.5 seconds' WHERE `entryorguid`=38391 AND `source_type`=0;
+UPDATE `smart_scripts` SET `event_type`=11, `event_flags`=1, `comment`= 'Val''kyr Protector - On spawn install AI template caster - Cast Smite (Rank 12) every 1.5/2.5 seconds' WHERE `entryorguid`=38392 AND `source_type`=0;
+UPDATE `smart_scripts` SET `event_type`=61 WHERE `entryorguid`=31135 AND `source_type`=0 AND `id` IN (27);
+UPDATE `smart_scripts` SET `link`=12 WHERE `entryorguid`=19707 AND `source_type`=0 AND `id` IN (11);
+UPDATE `smart_scripts` SET `event_type`=61 WHERE `entryorguid`=16332 AND `source_type`=0 AND `id` IN (9);
+UPDATE `smart_scripts` SET `event_type`=61 WHERE `entryorguid`=30860 AND `source_type`=0 AND `id` IN (11);
+UPDATE `smart_scripts` SET `event_type`=61 WHERE `entryorguid`=30285 AND `source_type`=0 AND `id` IN (5);
+UPDATE `smart_scripts` SET `event_type`=61 WHERE `entryorguid`=6221 AND `source_type`=0 AND `id` IN (19,20);
+UPDATE `smart_scripts` SET `event_type`=61 WHERE `entryorguid`=28079 AND `source_type`=0 AND `id` IN (12);
diff --git a/sql/updates/world/2013_12_02_01_world_sai.sql b/sql/updates/world/2013_12_02_01_world_sai.sql
new file mode 100644
index 00000000000..0a121c85f30
--- /dev/null
+++ b/sql/updates/world/2013_12_02_01_world_sai.sql
@@ -0,0 +1 @@
+UPDATE `smart_scripts` SET `event_phase_mask`=1 WHERE `entryorguid`=5089 AND `source_type`=0 AND `id` IN (3,4);
diff --git a/sql/updates/world/2013_12_02_02_world_sai.sql b/sql/updates/world/2013_12_02_02_world_sai.sql
new file mode 100644
index 00000000000..159a5235fc7
--- /dev/null
+++ b/sql/updates/world/2013_12_02_02_world_sai.sql
@@ -0,0 +1,3 @@
+DELETE FROM `smart_scripts` WHERE `entryorguid`=26670 AND `id` IN (25,26,27);
+UPDATE `smart_scripts` SET `id`=25 WHERE `entryorguid`=26670 AND `id`=28;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=28368 AND `id` IN (16,17,18);
diff --git a/sql/updates/world/2013_12_04_00_world_sai.sql b/sql/updates/world/2013_12_04_00_world_sai.sql
new file mode 100644
index 00000000000..29c011670ab
--- /dev/null
+++ b/sql/updates/world/2013_12_04_00_world_sai.sql
@@ -0,0 +1,13 @@
+-- Val'kyr Guardian SAI
+SET @ENTRY := 38391;
+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,1500,2500,1500,2500,11,71841,0,0,0,0,0,2,0,0,0,0,0,0,0,"Val'kyr Guardian - Combat - Cast Smite every 1.5/2.5 seconds");
+
+-- Val'kyr Protector SAI
+SET @ENTRY := 38392;
+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,1500,2500,1500,2500,11,71842,0,0,0,0,0,2,0,0,0,0,0,0,0,"Val'kyr Protector - Combat - Cast Smite every 1.5/2.5 seconds");
diff --git a/sql/updates/world/2013_12_04_01_world_misc.sql b/sql/updates/world/2013_12_04_01_world_misc.sql
new file mode 100644
index 00000000000..15cd150f942
--- /dev/null
+++ b/sql/updates/world/2013_12_04_01_world_misc.sql
@@ -0,0 +1,24 @@
+-- Quest 10594 "Gauging the Resonant Frequency"
+
+-- Add creature script
+UPDATE creature_template SET ScriptName = 'npc_oscillating_frequency_scanner_master_bunny' WHERE entry=21760;
+
+-- Update triggers
+UPDATE `creature_template` SET `flags_extra`=`flags_extra`|128 WHERE `entry` IN (21759,21760);
+
+-- Add spell script
+DELETE FROM `spell_script_names` WHERE `spell_id`=37408;
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(37408, 'spell_oscillating_field');
+
+-- Oscillating Frequency Scanner Top Bunny (Caster) SAI
+SET @ENTRY := 21759;
+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,11,0,100,0,0,0,0,0,11,37418,0,0,0,0,0,1,0,0,0,0,0,0,0,"Oscillating Frequency Scanner Top Bunny (Caster) - On Spawn - Cast Top Bunny Beam Test Visual");
+
+-- Condition for spell Top Bunny Beam Test Visual
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=37697;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13, 1, 37697, 0, 0, 31, 0, 3, 21759, 0, 0, 0, 0, '', 'Top Bunny Beam Test Visual targets Oscillating Frequency Scanner Top Bunny');
diff --git a/sql/updates/world/2013_12_04_02_world_misc.sql b/sql/updates/world/2013_12_04_02_world_misc.sql
new file mode 100644
index 00000000000..2704719cba3
--- /dev/null
+++ b/sql/updates/world/2013_12_04_02_world_misc.sql
@@ -0,0 +1,8 @@
+-- Terrorspark SAI
+SET @ENTRY := 10078;
+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,0,0,3000,3400,11,9053,64,0,0,0,0,2,0,0,0,0,0,0,0,"Sifreldar Runekeeper - Combat - Cast Fireball"),
+(@ENTRY,0,1,0,0,0,100,0,4800,29300,2300,9700,11,11968,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sifreldar Runekeeper - Combat - Cast Fire Shield"),
+(@ENTRY,0,2,3,0,0,100,0,10900,23300,33000,53400,11,15710,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sifreldar Runekeeper - Combat - Cast Summon Flamekin Torcher"),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,11,15711,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sifreldar Runekeeper - Combat - Cast Summon Summon Flamekin Rager");
diff --git a/sql/updates/world/2013_12_04_03_world_spells.sql b/sql/updates/world/2013_12_04_03_world_spells.sql
new file mode 100644
index 00000000000..422b8cccb7f
--- /dev/null
+++ b/sql/updates/world/2013_12_04_03_world_spells.sql
@@ -0,0 +1,10 @@
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (50240,49840,49592);
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(50240, 'spell_oculus_evasive_maneuvers'),
+(49840, 'spell_oculus_shock_lance'),
+(49592, 'spell_oculus_temporal_rift');
+
+DELETE FROM `spell_proc_event` WHERE `entry` IN (49592,50240);
+INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`procFlags`,`procEx`,`ppmRate`,`CustomChance`,`Cooldown`) VALUES
+(49592,0,0,0,0,0,0x008222A8,0,0,0,0),
+(50240,0,0,0,0,0,0,0x14,0,0,0);
diff --git a/sql/updates/world/2013_12_04_04_world_sai.sql b/sql/updates/world/2013_12_04_04_world_sai.sql
new file mode 100644
index 00000000000..a42f7bf1e1b
--- /dev/null
+++ b/sql/updates/world/2013_12_04_04_world_sai.sql
@@ -0,0 +1,14 @@
+-- Fix SAI script for Denalan
+DELETE FROM `smart_scripts` WHERE `entryorguid`=208000 AND `source_type`=9;
+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
+(208000,9,0,0,0,0,100,0,0,0,0,0,69,0,0,0,0,0,0,8,0,0,0,9507.291,714.583,1255.89,2.5643, 'Denalan - Script - Move'),
+(208000,9,1,0,0,0,100,0,100,100,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Denalan - Script - Say 0'),
+(208000,9,2,0,0,0,100,0,500,500,0,0,83,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Denalan - Script - Remove questgiver flag'),
+(208000,9,3,0,0,0,100,0,6500,6500,0,0,5,16,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Denalan - Script - Play emote'),
+(208000,9,4,0,0,0,100,0,9500,9500,0,0,66,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Denalan - Script - Turn to player'),
+(208000,9,5,0,0,0,100,0,100,100,0,0,1,1,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Denalan - Script - Say 1'),
+(208000,9,6,0,0,0,100,0,10000,10000,0,0,69,0,0,0,0,0,0,14,0,0,0,9506.866,713.7188,1255.885,0.6457718, 'Denalan - Script - Move'),
+(208000,9,7,0,0,0,100,0,8000,8000,0,0,82,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Denalan - Script - Add questgiver flag');
+-- Fix emotes for Denalan text
+UPDATE `creature_text` SET `emote`=0 WHERE `entry`=2080 AND `groupid`=0;
+UPDATE `creature_text` SET `emote`=2 WHERE `entry`=2080 AND `groupid`=1;
diff --git a/sql/updates/world/2013_12_04_05_world_sai.sql b/sql/updates/world/2013_12_04_05_world_sai.sql
new file mode 100644
index 00000000000..f08c4afb700
--- /dev/null
+++ b/sql/updates/world/2013_12_04_05_world_sai.sql
@@ -0,0 +1 @@
+UPDATE `smart_scripts` SET `link`=3 WHERE `entryorguid`=25814 AND `id`=1;
diff --git a/sql/updates/world/2013_12_04_06_world_sai.sql b/sql/updates/world/2013_12_04_06_world_sai.sql
new file mode 100644
index 00000000000..7f2b9c773cb
--- /dev/null
+++ b/sql/updates/world/2013_12_04_06_world_sai.sql
@@ -0,0 +1,14 @@
+-- Fathom Stone SAI for quest 6921
+SET @ENTRY := 177964;
+UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=1;
+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,1,0,1,70,0,100,0,1,0,0,0,12,12876,6,300000,1,0,0,8,0,0,0,-780.4395,-79.37307,-44.02165,0.6806784,"Fathom Stone - On Activate - summon Baron Aquanis");
+
+-- Baron Aquanis SAI
+SET @ENTRY := 12876;
+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,0,0,4000,6000,11,15043,64,0,0,0,0,2,0,0,0,0,0,0,0,"Baron Aquanis - Combat - Cast Frostbolt"),
+(@ENTRY,0,1,0,0,0,100,0,7000,12000,14000,19000,11,14907,1,0,0,0,0,1,0,0,0,0,0,0,0,"Baron Aquanis - Combat - Cast Frost Nova");
diff --git a/sql/updates/world/2013_12_05_00_world_misc.sql b/sql/updates/world/2013_12_05_00_world_misc.sql
new file mode 100644
index 00000000000..51150d8aacc
--- /dev/null
+++ b/sql/updates/world/2013_12_05_00_world_misc.sql
@@ -0,0 +1,39 @@
+-- Fix Quest 12244 "Shredder Repair" (Aliance) and 12270 "Shred the Alliance" (Horde)
+
+SET @GUID := 45832;
+SET @OGUID := 5927;
+
+-- Missing Broken-down Shredder spawns
+DELETE FROM `creature` WHERE `guid` IN (@GUID, @GUID+1);
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+(@GUID,27354,571,1,1,0,0,4156.482,-2963.999,283.8623,6.091199,300,0,0,1,0,0),
+(@GUID+1,27354,571,1,1,0,0,4085.375,-2916.553,278.0346,5.026548,300,0,0,1,0,0);
+
+-- Spawn Basecamp objects
+DELETE FROM `gameobject` WHERE `id` = 300202;
+DELETE FROM `gameobject` WHERE `guid` IN (@OGUID, @OGUID+1);
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(@OGUID, 300202, 571, 1, 1, 4379.31, -2921.89, 309.674, 2.54818, 0, 0, 0.439743, 0.898124, 300, 0, 1),
+(@OGUID+1, 300202, 571, 1, 1, 3991.77, -3186.28, 281.448, 0.069813, 0, 0, 0.94445, -0.328654, 300, 0, 1);
+
+-- Broken-down Shredder
+UPDATE `creature_template` SET `speed_run`=0.57142857, `spell1`=48558, `spell2`=48604, `spell3`=48548, `spell4`=0, `spell5`=48610 WHERE `entry`=27354;
+DELETE FROM `creature_template_addon` WHERE `entry`=27354;
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(27354,0,0,1,0, '48456 48458');
+
+-- Add Spellclick
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=27354;
+INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES
+(27354,43671,1,0);
+
+-- conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=18 AND `SourceGroup`=27354 AND `SourceEntry` = 43671;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(18, 27354, 43671, 1, 9, 0, 12244, 0, 0, 0, '', 'Required quest active for spellclick'),
+(18, 27354, 43671, 2, 9, 0, 12270, 0, 0, 0, '', 'Required quest active for spellclick');
+
+-- Add Spellscript name
+DELETE FROM `spell_script_names` WHERE `spell_id`=48610;
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(48610, 'spell_shredder_delivery');
diff --git a/sql/updates/world/2013_12_05_01_world_sai.sql b/sql/updates/world/2013_12_05_01_world_sai.sql
new file mode 100644
index 00000000000..29c011670ab
--- /dev/null
+++ b/sql/updates/world/2013_12_05_01_world_sai.sql
@@ -0,0 +1,13 @@
+-- Val'kyr Guardian SAI
+SET @ENTRY := 38391;
+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,1500,2500,1500,2500,11,71841,0,0,0,0,0,2,0,0,0,0,0,0,0,"Val'kyr Guardian - Combat - Cast Smite every 1.5/2.5 seconds");
+
+-- Val'kyr Protector SAI
+SET @ENTRY := 38392;
+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,1500,2500,1500,2500,11,71842,0,0,0,0,0,2,0,0,0,0,0,0,0,"Val'kyr Protector - Combat - Cast Smite every 1.5/2.5 seconds");
diff --git a/sql/updates/world/2013_12_05_02_world_sai.sql b/sql/updates/world/2013_12_05_02_world_sai.sql
new file mode 100644
index 00000000000..364ecdd1078
--- /dev/null
+++ b/sql/updates/world/2013_12_05_02_world_sai.sql
@@ -0,0 +1,118 @@
+-- QUEST 12512 "Leave no one behind"
+
+SET @JONATHAN := 28136;
+SET @LAMOOF := 28142;
+SET @JOSEPHINE := 28148;
+
+UPDATE `creature_template` SET `gossip_menu_id`=9660 WHERE `entry`=@JONATHAN;
+UPDATE `creature_template` SET `gossip_menu_id`=9659 WHERE `entry`=@LAMOOF;
+UPDATE `creature_template` SET `gossip_menu_id`=9658 WHERE `entry`=@JOSEPHINE;
+UPDATE `creature_template` SET `faction_A`=2070, `faction_H`=2070, `npcflag`=1, `unit_flags`=32768, `AIName`='SmartAI' WHERE `entry` IN (@JONATHAN,@LAMOOF,@JOSEPHINE);
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid` IN (@JONATHAN,@LAMOOF,@JOSEPHINE);
+DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid` IN (@JONATHAN*100,@LAMOOF*100,@JOSEPHINE*100);
+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
+(@JONATHAN,0,0,1,54,0,100,0,0,0,0,0,11,50665,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan - Just summoned - Spellcast Bleeding Out'),
+(@JONATHAN,0,1,2,61,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Crusader Jonathan - Just summoned - Store targetlist'),
+(@JONATHAN,0,2,3,61,0,100,0,0,0,0,0,29,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Crusader Jonathan - Just summoned - Follow envoker'),
+(@JONATHAN,0,3,4,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan - Just summoned - Set phase 1'),
+(@JONATHAN,0,4,0,61,0,100,0,0,0,0,0,91,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan - Just summoned - Reset unit_field_bytes1'),
+(@JONATHAN,0,5,0,23,1,100,1,50665,0,0,0,80,@JONATHAN*100,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan - Aura Bleeding Out missing (phase 1) - Call timed actionlist'),
+(@JONATHAN,0,6,7,40,0,100,1,5,0,0,0,90,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan - On WP 5 reached - Set unit_field_bytes1'),
+(@JONATHAN,0,7,0,61,0,100,0,0,0,0,0,41,20000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan - On WP 5 reached - Despawn after 20 seconds'),
+(@JONATHAN,0,8,9,8,1,100,0,50669,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan - On spellhit Quest Credit - Set phase 2'),
+(@JONATHAN,0,9,10,61,0,100,0,0,0,0,0,11,50671,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan - On spellhit Quest Credit - Cast Kill Credit Jonathan 01'),
+(@JONATHAN,0,10,11,61,0,100,0,0,0,0,0,11,50709,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan - On spellhit Quest Credit - Cast Strip Aura Jonathan 01'),
+(@JONATHAN,0,11,12,61,0,100,0,0,0,0,0,86,50680,0,12,1,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan - On spellhit Quest Credit - Crosscast Kill Credit Jonathan'),
+(@JONATHAN,0,12,13,61,0,100,0,0,0,0,0,86,50710,0,12,1,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan - On spellhit Quest Credit - Crosscast Strip Aura Jonanthan'),
+(@JONATHAN,0,13,14,61,0,100,0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 'Crusader Jonathan - On spellhit Quest Credit - Stop follow'),
+(@JONATHAN,0,14,15,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan - On spellhit Quest Credit - Say text'),
+(@JONATHAN,0,15,16,61,0,100,0,0,0,0,0,53,0,@JONATHAN,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan - On spellhit Quest Credit - Start WP movement'),
+(@JONATHAN,0,16,0,61,0,100,0,0,0,0,0,83,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan - On spellhit Quest Credit - Remove npcflag'),
+(@JONATHAN*100,9,0,0,0,0,100,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan script - Say text'),
+(@JONATHAN*100,9,1,0,0,0,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan script - Set phase 2'),
+(@JONATHAN*100,9,2,0,0,0,100,0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 'Crusader Jonathan script - Stop follow'),
+(@JONATHAN*100,9,3,0,0,0,100,0,2000,2000,0,0,37,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Jonathan script - Die'),
+
+(@LAMOOF,0,0,1,54,0,100,0,0,0,0,0,11,50681,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof - Just summoned - Spellcast Bleeding Out'),
+(@LAMOOF,0,1,2,61,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Crusader Lamoof - Just summoned - Store targetlist'),
+(@LAMOOF,0,2,3,61,0,100,0,0,0,0,0,29,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Crusader Lamoof - Just summoned - Follow envoker'),
+(@LAMOOF,0,3,4,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof - Just summoned - Set phase 1'),
+(@LAMOOF,0,4,0,61,0,100,0,0,0,0,0,91,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof - Just summoned - Reset unit_field_bytes1'),
+(@LAMOOF,0,5,0,23,1,100,1,50681,0,0,0,80,@LAMOOF*100,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof - Aura Bleeding Out missing (phase 1) - Call timed actionlist'),
+(@LAMOOF,0,6,7,40,0,100,1,5,0,0,0,90,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof - On WP 5 reached - Set unit_field_bytes1'),
+(@LAMOOF,0,7,0,61,0,100,0,0,0,0,0,41,20000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof - On WP 5 reached - Despawn after 20 seconds'),
+(@LAMOOF,0,8,9,8,1,100,0,50669,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof - On spellhit Quest Credit - Set phase 2'),
+(@LAMOOF,0,9,10,61,0,100,0,0,0,0,0,11,50683,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof - On spellhit Quest Credit - Cast Kill Credit Lamoof 01'),
+(@LAMOOF,0,10,11,61,0,100,0,0,0,0,0,11,50723,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof - On spellhit Quest Credit - Cast Strip Aura Lamoof 01'),
+(@LAMOOF,0,11,12,61,0,100,0,0,0,0,0,86,50684,0,12,1,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof - On spellhit Quest Credit - Crosscast Kill Credit Lamoof'),
+(@LAMOOF,0,12,13,61,0,100,0,0,0,0,0,86,50722,0,12,1,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof - On spellhit Quest Credit - Crosscast Strip Aura Lamoof'),
+(@LAMOOF,0,13,14,61,0,100,0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 'Crusader Lamoof - On spellhit Quest Credit - Stop follow'),
+(@LAMOOF,0,14,15,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof - On spellhit Quest Credit - Say text'),
+(@LAMOOF,0,15,16,61,0,100,0,0,0,0,0,53,0,@LAMOOF,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof - On spellhit Quest Credit - Start WP movement'),
+(@LAMOOF,0,16,0,61,0,100,0,0,0,0,0,83,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof - On spellhit Quest Credit - Remove npcflag'),
+(@LAMOOF*100,9,0,0,0,0,100,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof script - Say text'),
+(@LAMOOF*100,9,1,0,0,0,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof script - Set phase 2'),
+(@LAMOOF*100,9,2,0,0,0,100,0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 'Crusader Lamoof script - Stop follow'),
+(@LAMOOF*100,9,3,0,0,0,100,0,2000,2000,0,0,37,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Lamoof script - Die'),
+
+(@JOSEPHINE,0,0,1,54,0,100,0,0,0,0,0,11,50695,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine - Just summoned - Spellcast Bleeding Out'),
+(@JOSEPHINE,0,1,2,61,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Crusader Josephine - Just summoned - Store targetlist'),
+(@JOSEPHINE,0,2,3,61,0,100,0,0,0,0,0,29,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Crusader Josephine - Just summoned - Follow envoker'),
+(@JOSEPHINE,0,3,4,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine - Just summoned - Set phase 1'),
+(@JOSEPHINE,0,4,0,61,0,100,0,0,0,0,0,91,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine - Just summoned - Reset unit_field_bytes1'),
+(@JOSEPHINE,0,5,0,23,1,100,1,50695,0,0,0,80,@JOSEPHINE*100,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine - Aura Bleeding Out missing (phase 1) - Call timed actionlist'),
+(@JOSEPHINE,0,6,7,40,0,100,1,4,0,0,0,90,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine - On WP 4 reached - Set unit_field_bytes1'),
+(@JOSEPHINE,0,7,0,61,0,100,0,0,0,0,0,41,20000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine - On WP 4 reached - Despawn after 20 seconds'),
+(@JOSEPHINE,0,8,9,8,1,100,0,50669,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine - On spellhit Quest Credit - Set phase 2'),
+(@JOSEPHINE,0,9,10,61,0,100,0,0,0,0,0,11,50698,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine - On spellhit Quest Credit - Cast Kill Credit Jospehine 01'),
+(@JOSEPHINE,0,10,11,61,0,100,0,0,0,0,0,11,50711,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine - On spellhit Quest Credit - Cast Strip Aura Josephine 01'),
+(@JOSEPHINE,0,11,12,61,0,100,0,0,0,0,0,86,50699,0,12,1,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine - On spellhit Quest Credit - Crosscast Kill Credit Josephine'),
+(@JOSEPHINE,0,12,13,61,0,100,0,0,0,0,0,86,50712,0,12,1,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine - On spellhit Quest Credit - Crosscast Strip Aura Josephine'),
+(@JOSEPHINE,0,13,14,61,0,100,0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 'Crusader Josephine - On spellhit Quest Credit - Stop follow'),
+(@JOSEPHINE,0,14,15,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine - On spellhit Quest Credit - Say text'),
+(@JOSEPHINE,0,15,16,61,0,100,0,0,0,0,0,53,0,@JOSEPHINE,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine - On spellhit Quest Credit - Start WP movement'),
+(@JOSEPHINE,0,16,0,61,0,100,0,0,0,0,0,83,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine - On spellhit Quest Credit - Remove npcflag'),
+(@JOSEPHINE*100,9,0,0,0,0,100,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine script - Say text'),
+(@JOSEPHINE*100,9,1,0,0,0,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine script - Set phase 2'),
+(@JOSEPHINE*100,9,2,0,0,0,100,0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 'Crusader Josephine script - Stop follow'),
+(@JOSEPHINE*100,9,3,0,0,0,100,0,2000,2000,0,0,37,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Crusader Josephine script - Die');
+
+DELETE FROM `waypoints` WHERE `entry` IN (@JONATHAN,@LAMOOF,@JOSEPHINE);
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`) VALUES
+(@JONATHAN,1,5257.454,-3500.14,291.6933),
+(@JONATHAN,2,5253.089,-3516.885,291.6786),
+(@JONATHAN,3,5255.452,-3523.673,291.6932),
+(@JONATHAN,4,5262.733,-3527.41,291.6934),
+(@JONATHAN,5,5261.445,-3528.885,291.6929),
+
+(@LAMOOF,1,5257.454,-3500.14,291.6933),
+(@LAMOOF,2,5253.089,-3516.885,291.6786),
+(@LAMOOF,3,5255.452,-3523.673,291.6932),
+(@LAMOOF,4,5260.741,-3525.38,291.69343),
+(@LAMOOF,5,5259.029,-3527.101,291.4913),
+
+(@JOSEPHINE,1,5257.454,-3500.14,291.6933),
+(@JOSEPHINE,2,5253.089,-3516.885,291.6786),
+(@JOSEPHINE,3,5257.784,-3521.994,291.6931),
+(@JOSEPHINE,4,5256.293,-3523.494,291.6933);
+
+DELETE FROM `creature_text` WHERE `entry` IN (@JONATHAN,@LAMOOF,@JOSEPHINE) AND `groupid`=1;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@JONATHAN,1,0,'<sigh>... This is the end of me.',12,0,100,1,0,0,''),
+(@LAMOOF,1,0,'<sigh>... This is the end of me.',12,0,100,1,0,0,''),
+(@JOSEPHINE,1,0,'Ohhh, I... cannot go on....',12,0,100,1,0,0,'');
+
+DELETE FROM `gossip_menu` WHERE `entry` IN (9658,9659,9660);
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
+(9658,13081),
+(9659,13083),
+(9660,13082);
+
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (50709,50710,50711,50712,50722,50723);
+INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES
+(50709,-50665,1,'Strip Aura Jonathan 01 remove aura Bleeding Out'),
+(50710,-50666,1,'Strip Aura Jonathan remove aura Jonathan Dying from player'),
+(50711,-50695,1,'Strip Aura Josephine 01 remove aura Bleeding Out'),
+(50712,-50693,1,'Strip Aura Josephine remove aura Josephine Dying from player'),
+(50722,-50679,1,'Strip Aura Lamoof remove aura Lamoof Dying from player'),
+(50723,-50681,1,'Strip Aura Lamoof 01 remove aura Bleeding Out');
diff --git a/sql/updates/world/2013_12_07_00_world_misc.sql b/sql/updates/world/2013_12_07_00_world_misc.sql
new file mode 100644
index 00000000000..a8981ed22c5
--- /dev/null
+++ b/sql/updates/world/2013_12_07_00_world_misc.sql
@@ -0,0 +1,77 @@
+-- Talk text for Mordresh Fire Eye from sniff
+SET @ENTRY := 7357;
+DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@ENTRY,0,0,'We will enslave the quilboar!',12,0,100,1,0,5819, 'Mordresh Fire Eye - SAY_OOC_1'),
+(@ENTRY,1,0,'We will spread across this barren land!',12,0,100,1,0,5820, 'Mordresh Fire Eye - SAY_OOC_2'),
+(@ENTRY,2,0,'Soon, the Scourge will rule the world!',12,0,100,22,0,5821, 'Mordresh Fire Eye - SAY_OOC_3'),
+(@ENTRY,3,0,'Slay them, my brethren! For the Scourge!',14,0,100,0,0,5822, 'Mordresh Fire Eye - SAY_AGGRO');
+
+-- Talk text for Belnistrasz from sniff
+SET @ENTRY := 8516;
+DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@ENTRY,0,0,'All right, stay close. These fiends will jump right out of the shadows at you if you let your guard down.',12,0,100,0,0,0,'Belnistrasz SAY_QUEST_ACCEPTED'),
+(@ENTRY,1,0,'Okay, here we go. It''s going to take about five minutes to shut this thing down through the ritual. Once I start, keep the vermin off of me or it will be the end of us all!',12,0,100,0,0,0,'Belnistrasz SAY_EVENT_START'),
+(@ENTRY,2,0,'Three minutes left -- I can feel the energy starting to build! Keep up the solid defense!',14,0,100,0,0,0,'Belnistrasz SAY_EVENT_THREE_MIN_LEFT'),
+(@ENTRY,3,0,'Just two minutes to go! We''re half way there, but don''t let your guard down!',14,0,100,0,0,0,'Belnistrasz SAY_EVENT_TWO_MIN_LEFT'),
+(@ENTRY,4,0,'One more minute! Hold on now, the ritual is about to take hold!',14,0,100,0,0,0,'Belnistrasz SAY_EVENT_ONE_MIN_LEFT'),
+(@ENTRY,5,0,'That''s it -- we made it! The ritual is set in motion, and idol fires are about to go out for good! You truly are the heroes I thought you would be!',14,0,100,4,0,0,'Belnistrasz SAY_EVENT_END'),
+(@ENTRY,6,0,'You''ll rue the day you crossed me, $N',12,0,100,0,0,0,'Belnistrasz SAY_AGGRO'),
+(@ENTRY,7,0,'Watch out for the $N!',12,0,100,0,0,0,'Belnistrasz SAY_WATCH_OUT');
+
+-- Fix trigger location
+UPDATE `creature_template` SET `InhabitType`=4, `flags_extra`=`flags_extra`|128 WHERE `entry`=8662;
+
+-- Condition for spell Belnistrasz Idol Shutdown Visual
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=12774;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13, 1, 12774, 0, 0, 31, 0, 3, 8662, 0, 0, 0, 0, '', 'Belnistrasz Idol Shutdown Visual targets Idol Oven Fire Target');
+
+-- Add cpp scripts
+UPDATE creature_template SET `AIName`= '',ScriptName = 'boss_tuten_kash' WHERE entry=7355;
+UPDATE creature_template SET `AIName`= '',ScriptName = 'boss_mordresh_fire_eye' WHERE entry=7357;
+UPDATE creature_template SET `AIName`= '',ScriptName = 'boss_glutton' WHERE entry=8567;
+UPDATE creature_template SET `AIName`= '',ScriptName = 'npc_belnistrasz' WHERE entry=8516;
+UPDATE creature_template SET `AIName`= '',ScriptName = 'npc_idol_room_spawner' WHERE entry=8611;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (7355,7357,8567,8516) AND `source_type`=0;
+
+-- Pathing for Belnistrasz Entry: 8516
+SET @NPC := 87171;
+SET @PATH := @NPC * 10;
+DELETE FROM `creature_template_addon` WHERE `entry`=8516;
+INSERT INTO `creature_template_addon` (`entry`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (8516,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,2603.313,724.335,54.608,0,0,1,0,100,0),
+(@PATH,2,2593.379,726.272,55.112,0,0,1,0,100,0),
+(@PATH,3,2588.499,733.1947,55.3959,0,0,1,0,100,0),
+(@PATH,4,2572.573,752.5162,54.71815,0,0,1,0,100,0),
+(@PATH,5,2558.068,748.3008,54.3559,0,0,1,0,100,0),
+(@PATH,6,2539.677,777.1356,46.95155,0,0,1,0,100,0),
+(@PATH,7,2527.828,800.8403,44.74713,0,0,1,0,100,0),
+(@PATH,8,2495.996,785.7536,39.51203,0,0,1,0,100,0),
+(@PATH,9,2484.358,814.8914,43.57789,0,0,1,0,100,0),
+(@PATH,10,2501.128,847.9614,47.5574,0,0,1,0,100,0),
+(@PATH,11,2537.36,874.4713,47.67798,0,0,1,0,100,0),
+(@PATH,12,2548.493,894.6515,47.69307,0,0,1,0,100,0),
+(@PATH,13,2541.478,910.5101,46.17223,0,0,1,0,100,0),
+(@PATH,14,2519.403,925.6332,46.51501,0,0,1,0,100,0),
+(@PATH,15,2527.237,951.4606,49.2807,0,0,1,0,100,0),
+(@PATH,16,2541.675,976.5887,50.41221,0,0,1,0,100,0),
+(@PATH,17,2554.084,973.8665,50.36161,0,0,1,0,100,0),
+(@PATH,18,2575.601,950.1381,52.84592,0,0,1,0,100,0);
+
+DELETE FROM `creature_questender` WHERE `id`=8516 AND `quest`=3525;
+DELETE FROM `gameobject_questender` WHERE `id`=152097 AND `quest`=3525;
+INSERT INTO `gameobject_questender` (`id`,`quest`) VALUES (152097,3525);
+
+-- Death's Head Geomancer SAI
+SET @ENTRY := 7335;
+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,2,0,0,3000,4000,11,9053,64,0,0,0,0,2,0,0,0,0,0,0,0,"Death's Head Geomancer - Combat - Cast Fireball (Normal Dungeon)"),
+(@ENTRY,0,1,0,0,0,100,2,8000,10000,6000,15000,11,6725,0,0,0,0,0,5,0,0,0,0,0,0,0,"Death's Head Geomancer - Combat - Cast Flame Spike (Normal Dungeon)"),
+(@ENTRY,0,2,0,0,0,100,2,12000,16000,8000,20000,11,11436,1,0,0,0,0,5,0,0,0,0,0,0,0,"Death's Head Geomancer - Combat - Cast Slow (Normal Dungeon)"),
+(@ENTRY,0,3,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Death's Head Geomancer - 0-15% Health - Flee For Assist (Normal Dungeon)");
diff --git a/sql/updates/world/2013_12_07_01_world_sai.sql b/sql/updates/world/2013_12_07_01_world_sai.sql
new file mode 100644
index 00000000000..2bce2208938
--- /dev/null
+++ b/sql/updates/world/2013_12_07_01_world_sai.sql
@@ -0,0 +1,3 @@
+-- Remove Springpaw Stalker & Elder Springpaw SAI
+UPDATE `creature_template` SET `AIName`= '' WHERE `entry`IN (15651,15652);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (15651,15652);
diff --git a/sql/updates/world/2013_12_07_02_world_sai.sql b/sql/updates/world/2013_12_07_02_world_sai.sql
new file mode 100644
index 00000000000..765cc18abc2
--- /dev/null
+++ b/sql/updates/world/2013_12_07_02_world_sai.sql
@@ -0,0 +1,3 @@
+-- Remove Grimscale Murloc SAI
+UPDATE `creature_template` SET `AIName`= '' WHERE `entry`IN (15668);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (15668);
diff --git a/sql/updates/world/2013_12_08_00_world_creature_text.sql b/sql/updates/world/2013_12_08_00_world_creature_text.sql
new file mode 100644
index 00000000000..4dfc579047b
--- /dev/null
+++ b/sql/updates/world/2013_12_08_00_world_creature_text.sql
@@ -0,0 +1,8 @@
+-- Talk text for Glutton
+SET @ENTRY := 8567;
+DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@ENTRY,0,0,'Me smell stench of the living!',14,0,100,0,0,5823, 'Glutton - SAY_AGGRO'),
+(@ENTRY,1,0,'Me feast on you all!',14,0,100,0,0,5824, 'Glutton - SAY_SLAY'),
+(@ENTRY,2,0,'%s is getting hungry!',16,0,100,0,0,0, 'Glutton - EMOTE_50%'),
+(@ENTRY,3,0,'%s is getting VERY hungry!',16,0,100,0,0,0, 'Glutton - EMOTE 15%');
diff --git a/sql/updates/world/2013_12_08_01_world_misc.sql b/sql/updates/world/2013_12_08_01_world_misc.sql
new file mode 100644
index 00000000000..586b8d2c739
--- /dev/null
+++ b/sql/updates/world/2013_12_08_01_world_misc.sql
@@ -0,0 +1,53 @@
+-- Fix Quest 11310 Warning: Some Assembly Required
+
+-- Condition for spell Mindless Abomination Control
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=42168;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13,1,42168,0,0,31,0,3,23575,0,0,0,0, '', 'Mindless Abomination Control targets Mindless Abomination');
+
+UPDATE `creature_template` SET `spell1`=42166, `spell2`=61359, `AIName`= '',ScriptName = 'npc_mindless_abomination' WHERE `entry`=23575;
+
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger`=43392;
+INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES
+(43392,42168,0, 'Mindless Abomination Control cast when Assemble Abomination cast');
+
+DELETE FROM `spell_script_names` WHERE `spell_id`=42268;
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(42268, 'spell_mindless_abomination_explosion_fx_master');
+
+-- Update SAI for Plagued Dragonflayer Tribesman, Plagued Dragonflayer Rune-Caster, Plagued Dragonflayer Handler from Pitcrawler
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (23564,24198,24199) 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
+(23564,0,0,1,8,0,100,0,42166,0,0,0,11,43399,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Plagued Dragonflayer Tribesman - On spellhit Plagued Blood Explosion - Spellcast Plagued Vrykul Force Credit'),
+(23564,0,1,0,61,0,100,0,0,0,0,0,11,42167,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Tribesman - On spellhit Plagued Blood Explosion - Spellcast Plagued Blood Explosion'),
+(23564,0,2,0,8,0,100,0,42167,0,0,0,11,42167,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Tribesman - On spellhit Plagued Blood Explosion - Spellcast Plagued Blood Explosion'),
+(23564,0,3,0,4,0,100,0,0,0,0,0,11,43506,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Tribesman - On aggro - Spellcast Plague Blight'),
+(23564,0,4,5,8,0,100,0,43381,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Tribesman - On spellhit Plague Spray - Say text'),
+(23564,0,5,6,61,0,100,0,0,0,0,0,2,1925,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Tribesman - On spellhit Plague Spray - Set faction'),
+(23564,0,6,0,61,0,100,0,0,0,0,0,11,43384,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Plagued Dragonflayer Tribesman - On spellhit Plague Spray - Spellcast Spray Credit'),
+(23564,0,7,0,8,0,100,0,43385,0,0,0,49,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Plagued Dragonflayer Tribesman - On spellhit Plagued Vrykul Dummy - Start attack'),
+(23564,0,8,0,6,0,100,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Tribesman - On death - Set default faction'),
+(23564,0,9,0,1,0,35,0,0,30000,25000,45000,11,43327,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Tribesman - On update OOC - Spellcast Vomit'),
+(23564,0,10,0,0,0,100,0,2000,4000,5000,8000,11,32736,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Plagued Dragonflayer Tribesman - On update IC - Spellcast Mortal Strike'),
+(23564,0,11,0,0,0,100,0,1000,1000,4000,5000,11,15496,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Plagued Dragonflayer Tribesman - On update IC - Spellcast Cleave'),
+(24198,0,0,1,8,0,100,0,42166,0,0,0,11,43399,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Plagued Dragonflayer Rune-Caster - On spellhit Plagued Blood Explosion - Spellcast Plagued Vrykul Force Credit'),
+(24198,0,1,0,61,0,100,0,0,0,0,0,11,42167,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Rune-Caster - On spellhit Plagued Blood Explosion - Spellcast Plagued Blood Explosion'),
+(24198,0,2,0,8,0,100,0,42167,0,0,0,11,42167,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Rune-Caster - On spellhit Plagued Blood Explosion - Spellcast Plagued Blood Explosion'),
+(24198,0,3,4,8,0,100,0,43381,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Rune-Caster - On spellhit Plague Spray - Say text'),
+(24198,0,4,5,61,0,100,0,0,0,0,0,2,1925,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Rune-Caster - On spellhit Plague Spray - Set faction'),
+(24198,0,5,0,61,0,100,0,0,0,0,0,11,43384,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Plagued Dragonflayer Rune-Caster - On spellhit Plague Spray - Spellcast Spray Credit'),
+(24198,0,6,0,8,0,100,0,43385,0,0,0,49,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Plagued Dragonflayer Rune-Caster - On spellhit Plagued Vrykul Dummy - Start attack'),
+(24198,0,7,0,6,0,100,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Rune-Caster - On death - Set default faction'),
+(24198,0,8,0,1,0,35,0,0,30000,25000,45000,11,43327,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Rune-Caster - On update OOC - Spellcast Vomit'),
+(24198,0,9,0,0,0,100,0,0,0,18000,20000,11,47782,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Plagued Dragonflayer Rune-Caster - On update IC - Spellcast Corruption'),
+(24198,0,10,0,0,0,100,0,10000,12000,15000,17000,11,15616,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Plagued Dragonflayer Rune-Caster - On update IC - Spellcast Flame Shock'),
+(24199,0,0,1,8,0,100,0,42166,0,0,0,11,43399,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Plagued Dragonflayer Handler - On spellhit Plagued Blood Explosion - Spellcast Plagued Vrykul Force Credit'),
+(24199,0,1,0,61,0,100,0,0,0,0,0,11,42167,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Handler - On spellhit Plagued Blood Explosion - Spellcast Plagued Blood Explosion'),
+(24199,0,2,0,8,0,100,0,42167,0,0,0,11,42167,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Handler - On spellhit Plagued Blood Explosion - Spellcast Plagued Blood Explosion'),
+(24199,0,3,0,4,0,100,0,0,0,0,0,11,43506,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Handler - On aggro - Spellcast Plague Blight'),
+(24199,0,4,5,8,0,100,0,43381,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Handler - On spellhit Plague Spray - Say text'),
+(24199,0,5,6,61,0,100,0,0,0,0,0,2,1925,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Handler - On spellhit Plague Spray - Set faction'),
+(24199,0,6,0,61,0,100,0,0,0,0,0,11,43384,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Plagued Dragonflayer Handler - On spellhit Plague Spray - Spellcast Spray Credit'),
+(24199,0,7,0,8,0,100,0,43385,0,0,0,49,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Plagued Dragonflayer Handler - On spellhit Plagued Vrykul Dummy - Start attack'),
+(24199,0,8,0,6,0,100,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Handler - On death - Set default faction'),
+(24199,0,9,0,1,0,35,0,0,30000,25000,45000,11,43327,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Plagued Dragonflayer Handler - On update OOC - Spellcast Vomit');
diff --git a/sql/updates/world/2013_12_08_02_world_misc.sql b/sql/updates/world/2013_12_08_02_world_misc.sql
new file mode 100644
index 00000000000..34f7a0b07f7
--- /dev/null
+++ b/sql/updates/world/2013_12_08_02_world_misc.sql
@@ -0,0 +1,31 @@
+-- Condition for spells Mind Trick: Chains
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (5432);
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `ElseGroup`=1 AND `SourceEntry` IN (59951,59952);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13, 1, 5432, 0, 0, 31, 0, 3, 31892, 0, 0, 0, 0, '', 'Mind Trick: Chains - Torso Blood Back targets Darkspeaker R''khem'),
+(13, 1, 59951, 0, 1, 31, 0, 3, 31892, 0, 0, 0, 0, '', 'Mind Trick: Chains - Left Hand targets Darkspeaker R''khem'),
+(13, 1, 59952, 0, 1, 31, 0, 3, 31892, 0, 0, 0, 0, '', 'Mind Trick: Chains - Right Hand targets Darkspeaker R''khem');
+
+-- Update ELM General Purpose Bunny Large
+UPDATE `creature_template` SET `flags_extra`=`flags_extra`|128 WHERE `entry`=24110;
+UPDATE `creature` SET `modelid`=0, `spawndist`=0, `curhealth`=1, `MovementType`=0 WHERE `id`=24110;
+
+-- ELM General Purpose Bunny Large SAI
+SET @ENTRY := 24110;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid` BETWEEN -121628 AND -121615;
+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
+(-121615,0,0,0,1,0,100,1,1000,1000,1000,1000,11,59952,0,0,0,0,0,1,0,0,0,0,0,0,0,"ELM General Purpose Bunny Large - OCC Once - Cast chains on Darkspeaker R'khem"),
+(-121616,0,0,0,1,0,100,1,1000,1000,1000,1000,11,59952,0,0,0,0,0,1,0,0,0,0,0,0,0,"ELM General Purpose Bunny Large - OCC Once - Cast chains on Darkspeaker R'khem"),
+(-121617,0,0,0,1,0,100,1,1000,1000,1000,1000,11,59952,0,0,0,0,0,1,0,0,0,0,0,0,0,"ELM General Purpose Bunny Large - OCC Once - Cast chains on Darkspeaker R'khem"),
+(-121618,0,0,0,1,0,100,1,1000,1000,1000,1000,11,5432,0,0,0,0,0,1,0,0,0,0,0,0,0,"ELM General Purpose Bunny Large - OCC Once - Cast chains on Darkspeaker R'khem"),
+(-121619,0,0,0,1,0,100,1,1000,1000,1000,1000,11,5432,0,0,0,0,0,1,0,0,0,0,0,0,0,"ELM General Purpose Bunny Large - OCC Once - Cast chains on Darkspeaker R'khem"),
+(-121620,0,0,0,1,0,100,1,1000,1000,1000,1000,11,5432,0,0,0,0,0,1,0,0,0,0,0,0,0,"ELM General Purpose Bunny Large - OCC Once - Cast chains on Darkspeaker R'khem"),
+(-121621,0,0,0,1,0,100,1,1000,1000,1000,1000,11,59951,0,0,0,0,0,1,0,0,0,0,0,0,0,"ELM General Purpose Bunny Large - OCC Once - Cast chains on Darkspeaker R'khem"),
+(-121622,0,0,0,1,0,100,1,1000,1000,1000,1000,11,59951,0,0,0,0,0,1,0,0,0,0,0,0,0,"ELM General Purpose Bunny Large - OCC Once - Cast chains on Darkspeaker R'khem"),
+(-121623,0,0,0,1,0,100,1,1000,1000,1000,1000,11,5432,0,0,0,0,0,1,0,0,0,0,0,0,0,"ELM General Purpose Bunny Large - OCC Once - Cast chains on Darkspeaker R'khem"),
+(-121624,0,0,0,1,0,100,1,1000,1000,1000,1000,11,5432,0,0,0,0,0,1,0,0,0,0,0,0,0,"ELM General Purpose Bunny Large - OCC Once - Cast chains on Darkspeaker R'khem"),
+(-121625,0,0,0,1,0,100,1,1000,1000,1000,1000,11,5432,0,0,0,0,0,1,0,0,0,0,0,0,0,"ELM General Purpose Bunny Large - OCC Once - Cast chains on Darkspeaker R'khem"),
+(-121626,0,0,0,1,0,100,1,1000,1000,1000,1000,11,59951,0,0,0,0,0,1,0,0,0,0,0,0,0,"ELM General Purpose Bunny Large - OCC Once - Cast chains on Darkspeaker R'khem"),
+(-121627,0,0,0,1,0,100,1,1000,1000,1000,1000,11,59951,0,0,0,0,0,1,0,0,0,0,0,0,0,"ELM General Purpose Bunny Large - OCC Once - Cast chains on Darkspeaker R'khem"),
+(-121628,0,0,0,1,0,100,1,1000,1000,1000,1000,11,59952,0,0,0,0,0,1,0,0,0,0,0,0,0,"ELM General Purpose Bunny Large - OCC Once - Cast chains on Darkspeaker R'khem");
diff --git a/sql/updates/world/2013_12_09_00_world_misc.sql b/sql/updates/world/2013_12_09_00_world_misc.sql
new file mode 100644
index 00000000000..7c4e64f3601
--- /dev/null
+++ b/sql/updates/world/2013_12_09_00_world_misc.sql
@@ -0,0 +1,53 @@
+-- Fix for Quest 13285 "Forging the Keystone"
+
+-- Missing Brann Bronzebeard spawn
+SET @GUID := 24;
+DELETE FROM `creature` WHERE `guid` IN (@GUID);
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+(@GUID,31810,571,1,1,0,1,7850.829,-1393.344,1534.143,5.88176,300,0,0,1,0,0);
+
+-- Brann Bronzebeard creature update
+UPDATE `creature_template` SET `gossip_menu_id`=10124,`minlevel`=80,`maxlevel`=80,`exp`=2,`npcflag`=3, `AIName`= '',ScriptName = 'npc_brann_bronzebeard' WHERE `entry`=31810;
+DELETE FROM `creature_template_addon` WHERE `entry`=31810;
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(31810,0,0,1,0, '54500');
+
+-- Add missing equipment for Brann Bronzebeard
+DELETE FROM `creature_equip_template` WHERE `entry`=31810;
+INSERT INTO `creature_equip_template` (`entry`,`id`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES (31810,1,1903,0,0);
+
+-- Add Missing gossip for Brann Bronzebeard
+DELETE FROM `gossip_menu` WHERE (`entry`=10124 AND `text_id`=13641);
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10124,13641);
+DELETE FROM `gossip_menu_option` WHERE (`menu_id`=10124);
+INSERT INTO `gossip_menu_option` (menu_id, id, option_icon, option_text, option_id, npc_option_npcflag, action_menu_id, action_poi_id, box_coded, box_money, box_text) VALUES
+(10124,0,0, 'I''m ready, Brann. Let''s make the keystone.',1,1,0,0,0,0, '');
+
+-- Talk text for Brann Bronzebeard
+SET @ENTRY := 31810;
+DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@ENTRY,0,0,'Let''s see if we can finish this keystone.',12,0,100,1,0,0, 'Brann Bronzebeard'),
+(@ENTRY,1,0,'The keystone is completed! We''ve done it, $N!',12,0,100,5,0,0, 'Brann Bronzebeard'),
+(@ENTRY,2,0,'Who knows what secrets await within Ulduar''s archives? I''m off to discover them. Thank you again for your help, $N. Without it, I''d still be searching for that key.',12,0,100,66,0,0, 'Brann Bronzebeard');
+
+-- Spell "See Quest Brann Bronzebeard (TOI)" for quest "Forging the Keystone"
+DELETE FROM `spell_area` WHERE `spell`=60963;
+INSERT INTO `spell_area` (`spell`,`area`,`quest_start`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`,`quest_start_status`,`quest_end_status`) VALUES
+(60963, 4466, 13285, 0, 0, 0, 2, 1, 74, 11);
+
+-- A Distant Voice creature update
+UPDATE `creature_template` SET `minlevel`=80,`maxlevel`=80,`exp`=2,`unit_class`=2,`InhabitType`=4,`flags_extra`=`flags_extra`|128 WHERE `entry`=31814;
+DELETE FROM `creature_template_addon` WHERE `entry`=31814;
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(31814,0,0,1,0, '35709');
+
+-- Talk text for A Distant Voice
+SET @ENTRY := 31814;
+DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@ENTRY,0,0,'Welcome, Brann Bronzebeard. I am all that remains of this temple''s guardian.',12,0,100,0,0,0, 'A Distant Voice'),
+(@ENTRY,1,0,'You have proven yourself as an explorer and seeker of knowledge.',12,0,100,0,0,0, 'A Distant Voice'),
+(@ENTRY,2,0,'You have been a steadfast ally to the Earthen.',12,0,100,0,0,0, 'A Distant Voice'),
+(@ENTRY,3,0,'You and your companion have proven yourselves in combat and in the pursuit of the keystone.',12,0,100,0,0,0, 'A Distant Voice'),
+(@ENTRY,4,0,'Your motives are pure. The keystone''s parts shall be reunited. Go to Ulduar and learn the answers to your questions, Brann Bronzebeard.',12,0,100,0,0,0, 'A Distant Voice');
diff --git a/sql/updates/world/2013_12_09_01_world_waypoints.sql b/sql/updates/world/2013_12_09_01_world_waypoints.sql
new file mode 100644
index 00000000000..9196aad3f97
--- /dev/null
+++ b/sql/updates/world/2013_12_09_01_world_waypoints.sql
@@ -0,0 +1,142 @@
+-- Missing Stormforged Taskmaster spawns
+SET @GUID := 63373;
+DELETE FROM `creature` WHERE `guid` IN (@GUID,@GUID+1,@GUID+2);
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+(@GUID,29369,571,1,1,0,1,7842.542,-110.6463,882.8068,5.88176,300,0,0,1,0,0),
+(@GUID+1,29369,571,1,1,0,1,7827.683,-77.09928,882.7308,5.88176,300,0,0,1,0,0),
+(@GUID+2,29369,571,1,1,0,1,7834.078,-130.5392,882.3082,5.88176,300,0,0,1,0,0);
+
+-- Pathing for Stormforged Taskmaster Entry: 29369
+SET @NPC := @GUID;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7842.542,`position_y`=-110.6463,`position_z`=882.8068 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7842.542,-110.6463,882.8068,0,0,0,0,100,0),
+(@PATH,2,7839.237,-106.3565,882.6854,0,0,0,0,100,0),
+(@PATH,3,7833.708,-100.7408,881.3173,0,0,0,0,100,0),
+(@PATH,4,7827.768,-96.58257,881.0281,0,0,0,0,100,0),
+(@PATH,5,7822.916,-90.53754,880.5125,0,0,0,0,100,0),
+(@PATH,6,7822.845,-83.79515,881.5299,0,0,0,0,100,0),
+(@PATH,7,7822.916,-90.48802,880.5093,0,0,0,0,100,0),
+(@PATH,8,7827.694,-96.49003,881.0132,0,0,0,0,100,0),
+(@PATH,9,7833.708,-100.7408,881.3173,0,0,0,0,100,0),
+(@PATH,10,7839.095,-106.2119,882.6039,0,0,0,0,100,0);
+
+-- Pathing for Stormforged Taskmaster Entry: 29369
+SET @NPC := @GUID+1;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7827.683,`position_y`=-77.09928,`position_z`=882.7308 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7827.683,-77.09928,882.7308,0,0,0,0,100,0),
+(@PATH,2,7824.653,-79.73319,882.5463,0,0,0,0,100,0),
+(@PATH,3,7827.683,-77.09928,882.7308,0,0,0,0,100,0),
+(@PATH,4,7832.377,-77.63552,881.9279,0,0,0,0,100,0),
+(@PATH,5,7837.402,-75.31012,880.0537,0,0,0,0,100,0),
+(@PATH,6,7832.377,-77.63552,881.9279,0,0,0,0,100,0);
+
+-- Pathing for Stormforged Taskmaster Entry: 29369
+SET @NPC := @GUID+2;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7842.921,`position_y`=-124.6453,`position_z`=880.9332 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7834.078,-130.5392,882.3082,0,0,0,0,100,0),
+(@PATH,2,7842.921,-124.6453,880.9332,0,0,0,0,100,0),
+(@PATH,3,7851.019,-120.6835,880.8082,0,0,0,0,100,0),
+(@PATH,4,7856.965,-115.7509,881.3082,0,0,0,0,100,0),
+(@PATH,5,7850.458,-124.2621,880.1832,0,0,0,0,100,0),
+(@PATH,6,7856.965,-115.7509,881.3082,0,0,0,0,100,0),
+(@PATH,7,7851.019,-120.6835,880.8082,0,0,0,0,100,0),
+(@PATH,8,7842.921,-124.6453,880.9332,0,0,0,0,100,0);
+
+-- Pathing for Stormforged Taskmaster Entry: 29369
+SET @NPC := 113453;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7831.406,`position_y`=-36.4311,`position_z`=881.7036 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7831.406,-36.4311,881.7036,0,0,0,0,100,0),
+(@PATH,2,7825.858,-41.52279,882.6611,0,0,0,0,100,0),
+(@PATH,3,7825.452,-46.9974,881.7455,0,0,0,0,100,0),
+(@PATH,4,7825.429,-52.69217,881.6854,0,0,0,0,100,0),
+(@PATH,5,7829.174,-59.9388,881.8911,0,0,0,0,100,0),
+(@PATH,6,7830.546,-64.68768,881.6604,0,0,0,0,100,0),
+(@PATH,7,7829.176,-59.94751,881.8936,0,0,0,0,100,0),
+(@PATH,8,7825.429,-52.69217,881.6854,0,0,0,0,100,0),
+(@PATH,9,7825.452,-46.9974,881.7455,0,0,0,0,100,0),
+(@PATH,10,7825.858,-41.52279,882.6611,0,0,0,0,100,0),
+(@PATH,11,7831.406,-36.4311,881.7036,0,0,0,0,100,0),
+(@PATH,12,7834.929,-35.81573,881.0314,0,0,0,0,100,0);
+
+-- Pathing for Stormforged Taskmaster Entry: 29369
+SET @NPC := 113454;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7806.823,`position_y`=-50.18902,`position_z`=883.4045 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7806.823,-50.18902,883.4045,0,0,0,0,100,0),
+(@PATH,2,7810.619,-51.10297,883.5612,0,0,0,0,100,0),
+(@PATH,3,7814.73,-51.17838,883.1161,0,0,0,0,100,0),
+(@PATH,4,7818.904,-50.98427,882.5912,0,0,0,0,100,0),
+(@PATH,5,7814.926,-51.18197,883.0936,0,0,0,0,100,0),
+(@PATH,6,7810.619,-51.10297,883.5612,0,0,0,0,100,0),
+(@PATH,7,7806.823,-50.18902,883.4045,0,0,0,0,100,0),
+(@PATH,8,7802.53,-48.54416,883.1284,0,0,0,0,100,0),
+(@PATH,9,7796.819,-50.17252,882.2547,0,0,0,0,100,0),
+(@PATH,10,7802.53,-48.54416,883.1284,0,0,0,0,100,0);
+
+-- Pathing for Stormforged Taskmaster Entry: 29369
+SET @NPC := 113456;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7741.837,`position_y`=-35.62127,`position_z`=868.321 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7741.837,-35.62127,868.321,0,0,0,0,100,0),
+(@PATH,2,7742.504,-41.76921,868.1025,0,0,0,0,100,0),
+(@PATH,3,7745.919,-49.20704,869.4573,0,0,0,0,100,0),
+(@PATH,4,7748.479,-53.62652,870.8617,0,0,0,0,100,0),
+(@PATH,5,7745.919,-49.20704,869.4573,0,0,0,0,100,0),
+(@PATH,6,7742.512,-41.78676,868.1014,0,0,0,0,100,0),
+(@PATH,7,7741.922,-36.00348,868.2827,0,0,0,0,100,0),
+(@PATH,8,7736.815,-27.02236,867.0229,0,0,0,0,100,0),
+(@PATH,9,7730.213,-23.21951,867.5583,0,0,0,0,100,0),
+(@PATH,10,7736.815,-27.02236,867.0229,0,0,0,0,100,0);
+
+-- Pathing for Stormforged Taskmaster Entry: 29369
+SET @NPC := 113455;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7755.479,`position_y`=-0.06315613,`position_z`=865.8619 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7755.479,-0.06315613,865.8619,0,0,0,0,100,0),
+(@PATH,2,7761.083,1.82399,865.3038,0,0,0,0,100,0),
+(@PATH,3,7766.307,-2.848633,864.6754,0,0,0,0,100,0),
+(@PATH,4,7771.372,-8.783966,863.8624,0,0,0,0,100,0),
+(@PATH,5,7776.645,-11.9133,863.2283,0,0,0,0,100,0),
+(@PATH,6,7771.372,-8.783966,863.8624,0,0,0,0,100,0),
+(@PATH,7,7766.307,-2.848633,864.6754,0,0,0,0,100,0),
+(@PATH,8,7761.083,1.82399,865.3038,0,0,0,0,100,0),
+(@PATH,9,7755.479,-0.06315613,865.8619,0,0,0,0,100,0),
+(@PATH,10,7747.007,-1.096794,865.6259,0,0,0,0,100,0),
+(@PATH,11,7738.89,-1.104057,866.1718,0,0,0,0,100,0),
+(@PATH,12,7732.288,0.6400833,866.1253,0,0,0,0,100,0),
+(@PATH,13,7726.064,0.6717682,867.4063,0,0,0,0,100,0),
+(@PATH,14,7732.288,0.6400833,866.1253,0,0,0,0,100,0),
+(@PATH,15,7738.89,-1.104057,866.1718,0,0,0,0,100,0),
+(@PATH,16,7747.007,-1.096794,865.6259,0,0,0,0,100,0);
diff --git a/sql/updates/world/2013_12_09_02_world_waypoints.sql b/sql/updates/world/2013_12_09_02_world_waypoints.sql
new file mode 100644
index 00000000000..d65222b3053
--- /dev/null
+++ b/sql/updates/world/2013_12_09_02_world_waypoints.sql
@@ -0,0 +1,515 @@
+-- This Stormforged War Golem has a larger random movement than in db
+UPDATE `creature` SET `spawndist`=10 WHERE `guid`=114468;
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114457;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8023.331,`position_y`=77.24121,`position_z`=999.9595 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,8023.331,77.24121,999.9595,0,0,0,0,100,0),
+(@PATH,2,8016.558,64.0587,989.7907,0,0,0,0,100,0),
+(@PATH,3,8009.225,52.23459,980.1657,0,0,0,0,100,0),
+(@PATH,4,8005.339,45.29612,973.7907,0,0,0,0,100,0),
+(@PATH,5,8001.864,36.03364,967.7907,0,0,0,0,100,0),
+(@PATH,6,8000.232,26.16992,963.5776,0,0,0,0,100,0),
+(@PATH,7,8001.864,36.03364,967.7907,0,0,0,0,100,0),
+(@PATH,8,8005.339,45.29612,973.7907,0,0,0,0,100,0),
+(@PATH,9,8009.225,52.23459,980.1657,0,0,0,0,100,0),
+(@PATH,10,8016.558,64.0587,989.7907,0,0,0,0,100,0),
+(@PATH,11,8023.331,77.24121,999.9595,0,0,0,0,100,0),
+(@PATH,12,8032.478,95.32867,1012.085,0,0,0,0,100,0),
+(@PATH,13,8031.838,102.6918,1015.026,0,0,0,0,100,0),
+(@PATH,14,8023.94,108.6624,1017.026,0,0,0,0,100,0),
+(@PATH,15,8014.495,112.6428,1019.401,0,0,0,0,100,0),
+(@PATH,16,8003.407,107.8157,1021.276,0,0,0,0,100,0),
+(@PATH,17,7993.737,99.56966,1024.987,0,0,0,0,100,0),
+(@PATH,18,8003.407,107.8157,1021.276,0,0,0,0,100,0),
+(@PATH,19,8014.495,112.6428,1019.401,0,0,0,0,100,0),
+(@PATH,20,8023.94,108.6624,1017.026,0,0,0,0,100,0),
+(@PATH,21,8031.838,102.6918,1015.026,0,0,0,0,100,0),
+(@PATH,22,8032.478,95.32867,1012.085,0,0,0,0,100,0),
+(@PATH,23,8028.997,86.29623,1006.21,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114469;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8210.855,`position_y`=83.22288,`position_z`=899.8224 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,8210.855,83.22288,899.8224,0,0,0,0,100,0),
+(@PATH,2,8206.622,70.00694,899.5724,0,0,0,0,100,0),
+(@PATH,3,8197.973,61.24078,899.2055,0,0,0,0,100,0),
+(@PATH,4,8184.639,55.54492,899.8305,0,0,0,0,100,0),
+(@PATH,5,8197.973,61.24078,899.2055,0,0,0,0,100,0),
+(@PATH,6,8206.622,70.00694,899.5724,0,0,0,0,100,0),
+(@PATH,7,8210.855,83.22288,899.8224,0,0,0,0,100,0),
+(@PATH,8,8206.317,98.42123,900.0724,0,0,0,0,100,0),
+(@PATH,9,8198.927,116.0298,899.1041,0,0,0,0,100,0),
+(@PATH,10,8206.317,98.42123,900.0724,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114458;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8174.757,`position_y`=6.792969,`position_z`=852.8932 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,8174.757,6.792969,852.8932,0,0,0,0,100,0),
+(@PATH,2,8163.236,5.554037,856.1956,0,0,0,0,100,0),
+(@PATH,3,8148.116,-1.020725,859.5831,0,0,0,0,100,0),
+(@PATH,4,8136.771,-4.926215,860.8331,0,0,0,0,100,0),
+(@PATH,5,8126.096,-10.58008,863.0983,0,0,0,0,100,0),
+(@PATH,6,8115.336,-16.46669,866.2233,0,0,0,0,100,0),
+(@PATH,7,8125.859,-10.70117,863.4733,0,0,0,0,100,0),
+(@PATH,8,8136.771,-4.926215,860.8331,0,0,0,0,100,0),
+(@PATH,9,8148.116,-1.020725,859.5831,0,0,0,0,100,0),
+(@PATH,10,8163.236,5.554037,856.1956,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114470;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8115.971,`position_y`=42.09624,`position_z`=900.9437 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,8115.971,42.09624,900.9437,0,0,0,0,100,0),
+(@PATH,2,8126.555,49.1735,902.4437,0,0,0,0,100,0),
+(@PATH,3,8115.971,42.09624,900.9437,0,0,0,0,100,0),
+(@PATH,4,8105.812,37.60786,898.8187,0,0,0,0,100,0),
+(@PATH,5,8094.797,32.17817,896.4277,0,0,0,0,100,0),
+(@PATH,6,8084.893,20.01226,892.8027,0,0,0,0,100,0),
+(@PATH,7,8076.25,7.765625,888.1777,0,0,0,0,100,0),
+(@PATH,8,8070.748,-0.3867188,883.864,0,0,0,0,100,0),
+(@PATH,9,8068.489,-9.105469,880.239,0,0,0,0,100,0),
+(@PATH,10,8070.748,-0.3867188,883.864,0,0,0,0,100,0),
+(@PATH,11,8076.067,7.493273,888.1777,0,0,0,0,100,0),
+(@PATH,12,8084.893,20.01226,892.8027,0,0,0,0,100,0),
+(@PATH,13,8094.797,32.17817,896.4277,0,0,0,0,100,0),
+(@PATH,14,8105.812,37.60786,898.8187,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114456;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8083.848,`position_y`=66.86187,`position_z`=928.5247 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,8083.848,66.86187,928.5247,0,0,0,0,100,0),
+(@PATH,2,8055.064,57.03885,945.9103,0,0,0,0,100,0),
+(@PATH,3,8044.63,51.07888,947.9103,0,0,0,0,100,0),
+(@PATH,4,8036.362,43.75098,948.4103,0,0,0,0,100,0),
+(@PATH,5,8028.82,33.40723,952.9157,0,0,0,0,100,0),
+(@PATH,6,8021.039,24.85319,956.2026,0,0,0,0,100,0),
+(@PATH,7,8015.258,18.09885,958.2026,0,0,0,0,100,0),
+(@PATH,8,8021.039,24.85319,956.2026,0,0,0,0,100,0),
+(@PATH,9,8028.82,33.40723,952.9157,0,0,0,0,100,0),
+(@PATH,10,8036.362,43.75098,948.4103,0,0,0,0,100,0),
+(@PATH,11,8044.63,51.07888,947.9103,0,0,0,0,100,0),
+(@PATH,12,8055.064,57.03885,945.9103,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114452;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7891.817,`position_y`=29.8049,`position_z`=1012.99 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7891.817,29.8049,1012.99,0,0,0,0,100,0),
+(@PATH,2,7902.199,39.88314,1019.54,0,0,0,0,100,0),
+(@PATH,3,7910.464,47.52941,1024.165,0,0,0,0,100,0),
+(@PATH,4,7917.577,54.32107,1027.29,0,0,0,0,100,0),
+(@PATH,5,7910.464,47.52941,1024.165,0,0,0,0,100,0),
+(@PATH,6,7902.199,39.88314,1019.54,0,0,0,0,100,0),
+(@PATH,7,7891.817,29.8049,1012.99,0,0,0,0,100,0),
+(@PATH,8,7877.582,23.72005,1007.24,0,0,0,0,100,0),
+(@PATH,9,7858.5,22.52029,1004.369,0,0,0,0,100,0),
+(@PATH,10,7845.615,28.44293,1005.119,0,0,0,0,100,0),
+(@PATH,11,7834.722,33.47287,1007.502,0,0,0,0,100,0),
+(@PATH,12,7825.046,33.51389,1009.348,0,0,0,0,100,0),
+(@PATH,13,7834.722,33.47287,1007.502,0,0,0,0,100,0),
+(@PATH,14,7845.615,28.44293,1005.119,0,0,0,0,100,0),
+(@PATH,15,7858.5,22.52029,1004.369,0,0,0,0,100,0),
+(@PATH,16,7877.582,23.72005,1007.24,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114466;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8052.202,`position_y`=-165.8067,`position_z`=858.999 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,8052.202,-165.8067,858.999,0,0,0,0,100,0),
+(@PATH,2,8059.497,-161.3153,857.999,0,0,0,0,100,0),
+(@PATH,3,8071.769,-156.6751,858.2012,0,0,0,0,100,0),
+(@PATH,4,8086.116,-153.3002,856.5762,0,0,0,0,100,0),
+(@PATH,5,8095.891,-153.3699,857.7012,0,0,0,0,100,0),
+(@PATH,6,8105.404,-155.2473,858.9095,0,0,0,0,100,0),
+(@PATH,7,8095.891,-153.3699,857.7012,0,0,0,0,100,0),
+(@PATH,8,8086.116,-153.3002,856.5762,0,0,0,0,100,0),
+(@PATH,9,8071.769,-156.6751,858.2012,0,0,0,0,100,0),
+(@PATH,10,8059.497,-161.3153,857.999,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114463;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8070.4,`position_y`=-277.1614,`position_z`=864.549 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,8070.4,-277.1614,864.549,0,0,0,0,100,0),
+(@PATH,2,8062.835,-282.7156,867.5071,0,0,0,0,100,0),
+(@PATH,3,8056.209,-286.8712,868.4637,0,0,0,0,100,0),
+(@PATH,4,8048.796,-294.7416,868.7055,0,0,0,0,100,0),
+(@PATH,5,8044.233,-303.6937,867.402,0,0,0,0,100,0),
+(@PATH,6,8037.981,-317.1875,865.6969,0,0,0,0,100,0),
+(@PATH,7,8028.49,-325.9581,864.4135,0,0,0,0,100,0),
+(@PATH,8,8020.713,-345.0319,859.0582,0,0,0,0,100,0),
+(@PATH,9,8009.588,-357.7793,853.5903,0,0,0,0,100,0),
+(@PATH,10,8020.713,-345.0319,859.0582,0,0,0,0,100,0),
+(@PATH,11,8028.449,-326.0605,864.4465,0,0,0,0,100,0),
+(@PATH,12,8037.981,-317.1875,865.6969,0,0,0,0,100,0),
+(@PATH,13,8044.233,-303.6937,867.402,0,0,0,0,100,0),
+(@PATH,14,8048.796,-294.7416,868.7055,0,0,0,0,100,0),
+(@PATH,15,8056.209,-286.8712,868.4637,0,0,0,0,100,0),
+(@PATH,16,8062.701,-282.7995,867.561,0,0,0,0,100,0),
+(@PATH,17,8070.4,-277.1614,864.549,0,0,0,0,100,0),
+(@PATH,18,8076.281,-272.4348,863.3943,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114467;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8066.473,`position_y`=-227.3648,`position_z`=850.1917 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,8066.473,-227.3648,850.1917,0,0,0,0,100,0),
+(@PATH,2,8060.724,-215.8946,847.5667,0,0,0,0,100,0),
+(@PATH,3,8066.473,-227.3648,850.1917,0,0,0,0,100,0),
+(@PATH,4,8072.938,-237.2425,853.0301,0,0,0,0,100,0),
+(@PATH,5,8082.311,-252.4066,857.7801,0,0,0,0,100,0),
+(@PATH,6,8092.322,-256.9824,859.9051,0,0,0,0,100,0),
+(@PATH,7,8104.916,-253.7578,862.3018,0,0,0,0,100,0),
+(@PATH,8,8092.322,-256.9824,859.9051,0,0,0,0,100,0),
+(@PATH,9,8082.311,-252.4066,857.7801,0,0,0,0,100,0),
+(@PATH,10,8072.938,-237.2425,853.0301,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114462;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7951.181,`position_y`=-303.6466,`position_z`=868.0612 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7951.181,-303.6466,868.0612,0,0,0,0,100,0),
+(@PATH,2,7953.972,-293.1617,864.6669,0,0,0,0,100,0),
+(@PATH,3,7958.955,-282.3007,860.7919,0,0,0,0,100,0),
+(@PATH,4,7962.751,-272.1515,857.0419,0,0,0,0,100,0),
+(@PATH,5,7966.29,-263.5002,854.0172,0,0,0,0,100,0),
+(@PATH,6,7970.295,-257.2281,851.6115,0,0,0,0,100,0),
+(@PATH,7,7966.29,-263.5002,854.0172,0,0,0,0,100,0),
+(@PATH,8,7962.751,-272.1515,857.0419,0,0,0,0,100,0),
+(@PATH,9,7958.955,-282.3007,860.7919,0,0,0,0,100,0),
+(@PATH,10,7953.972,-293.1617,864.6669,0,0,0,0,100,0),
+(@PATH,11,7951.181,-303.6466,868.0612,0,0,0,0,100,0),
+(@PATH,12,7947.293,-317.9044,872.9362,0,0,0,0,100,0),
+(@PATH,13,7946.081,-328.0955,876.0612,0,0,0,0,100,0),
+(@PATH,14,7947.293,-317.9044,872.9362,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114460;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7988.024,`position_y`=-360.8784,`position_z`=851.5723 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7988.024,-360.8784,851.5723,0,0,0,0,100,0),
+(@PATH,2,7981.517,-348.1698,848.4473,0,0,0,0,100,0),
+(@PATH,3,7981.517,-337.562,848.1973,0,0,0,0,100,0),
+(@PATH,4,7984.724,-323.3203,847.6024,0,0,0,0,100,0),
+(@PATH,5,7990.423,-311.3583,847.1024,0,0,0,0,100,0),
+(@PATH,6,7984.724,-323.3203,847.6024,0,0,0,0,100,0),
+(@PATH,7,7981.517,-337.562,848.1973,0,0,0,0,100,0),
+(@PATH,8,7981.517,-348.1698,848.4473,0,0,0,0,100,0),
+(@PATH,9,7988.024,-360.8784,851.5723,0,0,0,0,100,0),
+(@PATH,10,7993.853,-367.1549,852.2777,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114464;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7938.075,`position_y`=-292.4181,`position_z`=872.0419 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7938.075,-292.4181,872.0419,0,0,0,0,100,0),
+(@PATH,2,7933.337,-302.122,873.6862,0,0,0,0,100,0),
+(@PATH,3,7929.871,-311.5463,875.9217,0,0,0,0,100,0),
+(@PATH,4,7933.337,-302.122,873.6862,0,0,0,0,100,0),
+(@PATH,5,7938.075,-292.4181,872.0419,0,0,0,0,100,0),
+(@PATH,6,7937.996,-284.6571,872.2919,0,0,0,0,100,0),
+(@PATH,7,7940.083,-276.4322,873.5419,0,0,0,0,100,0),
+(@PATH,8,7944.605,-263.8913,873.1422,0,0,0,0,100,0),
+(@PATH,9,7947.522,-254.4118,872.0172,0,0,0,0,100,0),
+(@PATH,10,7963.557,-224.8985,868.0352,0,0,0,0,100,0),
+(@PATH,11,7948.587,-241.9518,872.2672,0,0,0,0,100,0),
+(@PATH,12,7970.556,-216.756,868.567,0,0,0,0,100,0),
+(@PATH,13,7983.082,-208.4296,868.817,0,0,0,0,100,0),
+(@PATH,14,7970.556,-216.756,868.567,0,0,0,0,100,0),
+(@PATH,15,7948.587,-241.9518,872.2672,0,0,0,0,100,0),
+(@PATH,16,7963.557,-224.8985,868.0352,0,0,0,0,100,0),
+(@PATH,17,7947.522,-254.4118,872.0172,0,0,0,0,100,0),
+(@PATH,18,7944.605,-263.8913,873.1422,0,0,0,0,100,0),
+(@PATH,19,7940.083,-276.4322,873.5419,0,0,0,0,100,0),
+(@PATH,20,7937.996,-284.6571,872.2919,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114448;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8292.766,`position_y`=-246.2448,`position_z`=925.6675 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,8292.766,-246.2448,925.6675,0,0,0,0,100,0),
+(@PATH,2,8301.604,-243.4602,923.659,0,0,0,0,100,0),
+(@PATH,3,8292.766,-246.2448,925.6675,0,0,0,0,100,0),
+(@PATH,4,8280.42,-246.1662,933.0425,0,0,0,0,100,0),
+(@PATH,5,8269.42,-246.2734,940.4175,0,0,0,0,100,0),
+(@PATH,6,8260.231,-245.6485,946.4034,0,0,0,0,100,0),
+(@PATH,7,8245.475,-248.834,952.5284,0,0,0,0,100,0),
+(@PATH,8,8239.138,-252.9452,952.7784,0,0,0,0,100,0),
+(@PATH,9,8245.475,-248.834,952.5284,0,0,0,0,100,0),
+(@PATH,10,8260.231,-245.6485,946.4034,0,0,0,0,100,0),
+(@PATH,11,8269.42,-246.2734,940.4175,0,0,0,0,100,0),
+(@PATH,12,8280.42,-246.1662,933.0425,0,0,0,0,100,0),
+(@PATH,13,8292.766,-246.2448,925.6675,0,0,0,0,100,0),
+(@PATH,14,8301.604,-243.4602,923.659,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114454;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8287.12,`position_y`=-232.0705,`position_z`=920.8063 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,8287.12,-232.0705,920.8063,0,0,0,0,100,0),
+(@PATH,2,8279.343,-226.6951,918.1813,0,0,0,0,100,0),
+(@PATH,3,8270.205,-221.0446,914.4313,0,0,0,0,100,0),
+(@PATH,4,8260.98,-219.1772,911.1617,0,0,0,0,100,0),
+(@PATH,5,8251.401,-217.5979,908.6617,0,0,0,0,100,0),
+(@PATH,6,8240.566,-216.677,906.1617,0,0,0,0,100,0),
+(@PATH,7,8232.138,-216.4807,904.547,0,0,0,0,100,0),
+(@PATH,8,8224.63,-221.0824,903.422,0,0,0,0,100,0),
+(@PATH,9,8217.282,-228.2757,902.297,0,0,0,0,100,0),
+(@PATH,10,8209.278,-233.1008,901.422,0,0,0,0,100,0),
+(@PATH,11,8199.357,-237.1406,897.0337,0,0,0,0,100,0),
+(@PATH,12,8209.278,-233.1008,901.422,0,0,0,0,100,0),
+(@PATH,13,8217.282,-228.2757,902.297,0,0,0,0,100,0),
+(@PATH,14,8224.63,-221.0824,903.422,0,0,0,0,100,0),
+(@PATH,15,8232.138,-216.4807,904.547,0,0,0,0,100,0),
+(@PATH,16,8240.566,-216.677,906.1617,0,0,0,0,100,0),
+(@PATH,17,8251.401,-217.5979,908.6617,0,0,0,0,100,0),
+(@PATH,18,8260.98,-219.1772,911.1617,0,0,0,0,100,0),
+(@PATH,19,8270.205,-221.0446,914.4313,0,0,0,0,100,0),
+(@PATH,20,8279.343,-226.6951,918.1813,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114453;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7763.875,`position_y`=25.31001,`position_z`=1009.387 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7763.875,25.31001,1009.387,0,0,0,0,100,0),
+(@PATH,2,7774.83,29.45172,1009.433,0,0,0,0,100,0),
+(@PATH,3,7784.966,36.1964,1009.425,0,0,0,0,100,0),
+(@PATH,4,7792.793,46.41374,1009.425,0,0,0,0,100,0),
+(@PATH,5,7784.966,36.1964,1009.425,0,0,0,0,100,0),
+(@PATH,6,7774.83,29.45172,1009.433,0,0,0,0,100,0),
+(@PATH,7,7763.875,25.31001,1009.387,0,0,0,0,100,0),
+(@PATH,8,7757.785,17.42741,1009.387,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114471;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8062.678,`position_y`=-34.05208,`position_z`=872.399 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,8062.678,-34.05208,872.399,0,0,0,0,100,0),
+(@PATH,2,8050.187,-36.93273,874.024,0,0,0,0,100,0),
+(@PATH,3,8041.209,-47.45063,875.399,0,0,0,0,100,0),
+(@PATH,4,8050.187,-36.93273,874.024,0,0,0,0,100,0),
+(@PATH,5,8062.678,-34.05208,872.399,0,0,0,0,100,0),
+(@PATH,6,8071.337,-37.65701,869.6487,0,0,0,0,100,0),
+(@PATH,7,8083.439,-34.81456,866.6487,0,0,0,0,100,0),
+(@PATH,8,8092.34,-23.51801,869.239,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114450;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8020.559,`position_y`=-462.7457,`position_z`=945.5956 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,8020.559,-462.7457,945.5956,0,0,0,0,100,0),
+(@PATH,2,8021.167,-454.9322,943.7206,0,0,0,0,100,0),
+(@PATH,3,8021.333,-447.3739,941.8456,0,0,0,0,100,0),
+(@PATH,4,8019.993,-438.8365,940.0956,0,0,0,0,100,0),
+(@PATH,5,8018.624,-428.8778,938.6416,0,0,0,0,100,0),
+(@PATH,6,8015.852,-421.9554,938.6416,0,0,0,0,100,0),
+(@PATH,7,8015.377,-415.9785,937.8916,0,0,0,0,100,0),
+(@PATH,8,8015.852,-421.9554,938.6416,0,0,0,0,100,0),
+(@PATH,9,8018.624,-428.8778,938.6416,0,0,0,0,100,0),
+(@PATH,10,8019.993,-438.8365,940.0956,0,0,0,0,100,0),
+(@PATH,11,8021.333,-447.3739,941.8456,0,0,0,0,100,0),
+(@PATH,12,8021.167,-454.9322,943.7206,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114465;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8135.024,`position_y`=-370.0041,`position_z`=963.259 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,8135.024,-370.0041,963.259,0,0,0,100,0),
+(@PATH,2,8141.749,-366.09,960.2184,0,0,0,100,0),
+(@PATH,3,8149.224,-360.9964,959.7184,0,0,0,100,0),
+(@PATH,4,8154.405,-356.4004,961.2184,0,0,0,100,0),
+(@PATH,5,8159.849,-352.6774,963.8434,0,0,0,100,0),
+(@PATH,6,8165.625,-349.4785,964.9684,0,0,0,100,0),
+(@PATH,7,8172.873,-345.124,967.3318,0,0,0,100,0),
+(@PATH,8,8180.829,-338.1227,969.8495,0,0,0,100,0),
+(@PATH,9,8188.221,-330.7452,970.2561,0,0,0,100,0),
+(@PATH,10,8195.111,-320.5364,969.1892,0,0,0,100,0),
+(@PATH,11,8203.715,-304.7978,966.9639,0,0,0,100,0),
+(@PATH,12,8195.111,-320.5364,969.1892,0,0,0,100,0),
+(@PATH,13,8188.221,-330.7452,970.2561,0,0,0,100,0),
+(@PATH,14,8180.829,-338.1227,969.8495,0,0,0,100,0),
+(@PATH,15,8172.873,-345.124,967.3318,0,0,0,100,0),
+(@PATH,16,8165.625,-349.4785,964.9684,0,0,0,100,0),
+(@PATH,17,8159.849,-352.6774,963.8434,0,0,0,100,0),
+(@PATH,18,8154.405,-356.4004,961.2184,0,0,0,100,0),
+(@PATH,19,8149.224,-360.9964,959.7184,0,0,0,100,0),
+(@PATH,20,8141.749,-366.09,960.2184,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114461;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8166.605,`position_y`=-333.7136,`position_z`=1002.62 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,8166.605,-333.7136,1002.62,0,0,0,100,0),
+(@PATH,2,8179.676,-327.8151,1004.554,0,0,0,100,0),
+(@PATH,3,8190.838,-319.5394,1004.838,0,0,0,100,0),
+(@PATH,4,8201.984,-310.4258,1003.127,0,0,0,100,0),
+(@PATH,5,8190.838,-319.5394,1004.838,0,0,0,100,0),
+(@PATH,6,8179.676,-327.8151,1004.554,0,0,0,100,0),
+(@PATH,7,8166.605,-333.7136,1002.62,0,0,0,100,0),
+(@PATH,8,8151.038,-342.4005,1003.778,0,0,0,100,0),
+(@PATH,9,8136.858,-348.6777,1003.9702,0,0,0,100,0),
+(@PATH,10,8151.038,-342.4005,1003.778,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114451;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8203.202,`position_y`=-201.5354,`position_z`=871.047 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,8203.202,-201.5354,871.047,0,0,0,0,100,0),
+(@PATH,2,8210.509,-193.4404,865.8152,0,0,0,0,100,0),
+(@PATH,3,8203.202,-201.5354,871.047,0,0,0,0,100,0),
+(@PATH,4,8197.84,-207.3055,874.847,0,0,0,0,100,0),
+(@PATH,5,8189.615,-210.5096,877.097,0,0,0,0,100,0),
+(@PATH,6,8178.526,-213.311,878.847,0,0,0,0,100,0),
+(@PATH,7,8163.427,-218.207,883.10522,0,0,0,0,100,0),
+(@PATH,8,8150.156,-226.349,882.16364,0,0,0,0,100,0),
+(@PATH,9,8138.535,-234.773,880.50934,0,0,0,0,100,0),
+(@PATH,10,8150.156,-226.349,882.16364,0,0,0,0,100,0),
+(@PATH,11,8163.427,-218.207,883.10522,0,0,0,0,100,0),
+(@PATH,12,8178.526,-213.311,878.847,0,0,0,0,100,0),
+(@PATH,13,8189.615,-210.5096,877.097,0,0,0,0,100,0),
+(@PATH,14,8197.84,-207.3055,874.847,0,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114455;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8040.252,`position_y`=-470.226,`position_z`=960.61102 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,8040.252,-470.226,960.61102,0,0,0,100,0),
+(@PATH,2,8047.966,-456.777,968.20410,0,0,0,100,0),
+(@PATH,3,8055.527,-444.8557,974.9588,0,0,0,100,0),
+(@PATH,4,8062.53,-433.15,980.1395,0,0,0,100,0),
+(@PATH,5,8067.174,-421.3754,980.673,0,0,0,100,0),
+(@PATH,6,8074.543,-413.8202,982.8965,0,0,0,100,0),
+(@PATH,7,8083.434,-407.5285,984.6893,0,0,0,100,0),
+(@PATH,8,8092.955,-402.0415,984.0195,0,0,0,100,0),
+(@PATH,9,8103.769,-391.861,982.40454,0,0,0,100,0),
+(@PATH,10,8092.955,-402.0415,984.0195,0,0,0,100,0),
+(@PATH,11,8083.434,-407.5285,984.6893,0,0,0,100,0),
+(@PATH,12,8074.543,-413.8202,982.8965,0,0,0,100,0),
+(@PATH,13,8067.174,-421.3754,980.673,0,0,0,100,0),
+(@PATH,14,8062.53,-433.15,980.1395,0,0,0,100,0),
+(@PATH,15,8055.527,-444.8557,974.9588,0,0,0,100,0),
+(@PATH,16,8047.966,-456.777,968.20410,0,0,0,100,0);
+
+-- Pathing for Stormforged War Golem Entry: 29380
+SET @NPC := 114449;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7951.311,`position_y`=-378.571,`position_z`=887.77075 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7951.311,-378.571,887.77075,0,0,0,100,0),
+(@PATH,2,7960.646,-389.960,892.92139,0,0,0,100,0),
+(@PATH,3,7968.372,-399.0812,898.0277,0,0,0,100,0),
+(@PATH,4,7977.658,-409.0112,903.3966,0,0,0,100,0),
+(@PATH,5,7981.982,-417.7852,908.3966,0,0,0,100,0),
+(@PATH,6,7984.058,-427.559,913.42731,0,0,0,100,0),
+(@PATH,7,7985.685,-434.808,917.18005,0,0,0,100,0),
+(@PATH,8,7990.529,-444.403,924.04565,0,0,0,100,0),
+(@PATH,9,7996.638,-456.090,931.35016,0,0,0,100,0),
+(@PATH,10,8001.585,-467.127,938.43726,0,0,0,100,0),
+(@PATH,11,8014.281,-473.688,946.06091,0,0,0,100,0),
+(@PATH,12,8025.918,-483.258,952.99622,0,0,0,100,0),
+(@PATH,13,8038.910,-488.314,958.12402,0,0,0,100,0),
+(@PATH,14,8048.530,-496.921,961.03595,0,0,0,100,0),
+(@PATH,15,8038.910,-488.314,958.12402,0,0,0,100,0),
+(@PATH,16,8025.918,-483.258,952.99622,0,0,0,100,0),
+(@PATH,17,8014.281,-473.688,946.06091,0,0,0,100,0),
+(@PATH,18,8001.585,-467.127,938.43726,0,0,0,100,0),
+(@PATH,19,7996.638,-456.090,931.35016,0,0,0,100,0),
+(@PATH,20,7990.529,-444.403,924.04565,0,0,0,100,0),
+(@PATH,21,7985.685,-434.808,917.18005,0,0,0,100,0),
+(@PATH,22,7984.058,-427.559,913.42731,0,0,0,100,0),
+(@PATH,23,7981.982,-417.7852,908.3966,0,0,0,100,0),
+(@PATH,24,7977.658,-409.0112,903.3966,0,0,0,100,0),
+(@PATH,25,7968.372,-399.0812,898.0277,0,0,0,100,0),
+(@PATH,26,7960.646,-389.960,892.92139,0,0,0,100,0);
diff --git a/sql/updates/world/2013_12_09_03_world_misc.sql b/sql/updates/world/2013_12_09_03_world_misc.sql
new file mode 100644
index 00000000000..1a4d2fdd678
--- /dev/null
+++ b/sql/updates/world/2013_12_09_03_world_misc.sql
@@ -0,0 +1,321 @@
+-- Missing Mechagnome Laborer spawns
+SET @GUID := 68274;
+DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+4;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+(@GUID,29389,571,1,1,0,1,7850.829,-1393.344,1534.143,5.88176,300,0,0,1,0,0),
+(@GUID+1,29389,571,1,1,0,1,7850.829,-1393.344,1534.143,5.88176,300,0,0,1,0,0),
+(@GUID+2,29389,571,1,1,0,1,7850.829,-1393.344,1534.143,5.88176,300,0,0,1,0,0),
+(@GUID+3,29389,571,1,1,0,1,7850.829,-1393.344,1534.143,5.88176,300,0,0,1,0,0),
+(@GUID+4,29389,571,1,1,0,1,7850.829,-1393.344,1534.143,5.88176,300,0,0,1,0,0);
+
+-- Pathing for Mechagnome Laborer Entry: 29389
+SET @NPC := @GUID;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7910.65,`position_y`=-1418.727,`position_z`=1534.705 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7910.65,-1418.727,1534.705,0,0,0,0,100,0),
+(@PATH,2,7913.654,-1426.635,1534.705,0,0,0,0,100,0),
+(@PATH,3,7920.053,-1414.188,1534.705,0,0,0,0,100,0),
+(@PATH,4,7922.347,-1395.791,1534.705,0,0,0,0,100,0),
+(@PATH,5,7920.222,-1386.216,1534.705,0,0,0,0,100,0),
+(@PATH,6,7923.166,-1385.087,1534.705,0,0,0,0,100,0),
+(@PATH,7,7916.864,-1385.485,1534.705,0,0,0,0,100,0),
+(@PATH,8,7916.226,-1392.192,1534.705,0,0,0,0,100,0),
+(@PATH,9,7911.995,-1404.557,1534.705,0,0,0,0,100,0);
+
+-- Pathing for Mechagnome Laborer Entry: 29389
+SET @NPC := @GUID+1;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7868.562,`position_y`=-1363.65,`position_z`=1534.059 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7868.562,-1363.65,1534.059,0,0,0,0,100,0),
+(@PATH,2,7879.646,-1351.339,1534.705,0,0,0,0,100,0),
+(@PATH,3,7868.222,-1355.34,1534.705,0,0,0,0,100,0),
+(@PATH,4,7851.979,-1359.603,1534.705,0,0,0,0,100,0),
+(@PATH,5,7840.327,-1375.057,1534.059,0,0,0,0,100,0),
+(@PATH,6,7843.573,-1379.135,1534.059,0,0,0,0,100,0),
+(@PATH,7,7830.217,-1389.011,1534.366,0,0,0,0,100,0),
+(@PATH,8,7825.899,-1405.483,1534.705,0,0,0,0,100,0),
+(@PATH,9,7846.697,-1416.326,1534.059,0,0,0,0,100,0),
+(@PATH,10,7849.118,-1427.04,1534.059,0,0,0,0,100,0),
+(@PATH,11,7848.421,-1411.426,1534.059,0,0,0,0,100,0),
+(@PATH,12,7845.131,-1389.869,1534.059,0,0,0,0,100,0),
+(@PATH,13,7859.611,-1375.139,1534.059,0,0,0,0,100,0);
+
+-- Pathing for Mechagnome Laborer Entry: 29389
+SET @NPC := @GUID+2;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7900.394,`position_y`=-1481.597,`position_z`=1532.27 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7900.394,-1481.597,1532.27,0,0,0,0,100,0),
+(@PATH,2,7921.518,-1469.935,1532.267,0,0,0,0,100,0),
+(@PATH,3,7939.954,-1444.368,1532.134,0,0,0,0,100,0),
+(@PATH,4,7915.613,-1432.221,1535.256,0,0,0,0,100,0),
+(@PATH,5,7939.954,-1444.368,1532.134,0,0,0,0,100,0),
+(@PATH,6,7921.518,-1469.935,1532.267,0,0,0,0,100,0),
+(@PATH,7,7900.394,-1481.597,1532.27,0,0,0,0,100,0),
+(@PATH,8,7875.807,-1482.918,1532.255,0,0,0,0,100,0),
+(@PATH,9,7872.38,-1464.144,1534.557,0,0,0,0,100,0),
+(@PATH,10,7875.807,-1482.918,1532.255,0,0,0,0,100,0);
+
+-- Pathing for Mechagnome Laborer Entry: 29389
+SET @NPC := @GUID+3;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7857.495,`position_y`=-1330.407,`position_z`=1534.557 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7857.495,-1330.407,1534.557,0,0,0,0,100,0),
+(@PATH,2,7853.63,-1310.692,1532.1,0,0,0,0,100,0),
+(@PATH,3,7832.517,-1312.412,1532.386,0,0,0,0,100,0),
+(@PATH,4,7814.14,-1322.234,1532.386,0,0,0,0,100,0),
+(@PATH,5,7795.604,-1339.547,1532.251,0,0,0,0,100,0),
+(@PATH,6,7817.405,-1356.497,1535.256,0,0,0,0,100,0),
+(@PATH,7,7804.852,-1402.777,1535.256,0,0,0,0,100,0),
+(@PATH,8,7782.151,-1408.093,1532.063,0,0,0,0,100,0),
+(@PATH,9,7804.852,-1402.777,1535.256,0,0,0,0,100,0),
+(@PATH,10,7817.405,-1356.497,1535.256,0,0,0,0,100,0),
+(@PATH,11,7795.604,-1339.547,1532.251,0,0,0,0,100,0),
+(@PATH,12,7814.14,-1322.234,1532.386,0,0,0,0,100,0),
+(@PATH,13,7832.517,-1312.412,1532.386,0,0,0,0,100,0),
+(@PATH,14,7853.63,-1310.692,1532.1,0,0,0,0,100,0);
+
+-- Pathing for Mechagnome Laborer Entry: 29389
+SET @NPC := @GUID+4;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7309.224,`position_y`=-666.5821,`position_z`=784.8982 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,7309.224,-666.5821,784.8982,0,0,0,0,100,0),
+(@PATH,2,7309.142,-656.5869,784.8982,0,0,0,0,100,0),
+(@PATH,3,7309.335,-647.4516,784.8982,0,0,0,0,100,0),
+(@PATH,4,7309.67,-640.1229,784.8982,0,0,0,0,100,0),
+(@PATH,5,7309.579,-631.7067,785.1652,0,0,0,0,100,0),
+(@PATH,6,7309.624,-623.5741,785.4073,0,0,0,0,100,0),
+(@PATH,7,7309.579,-631.7067,785.1652,0,0,0,0,100,0),
+(@PATH,8,7309.67,-640.1229,784.8982,0,0,0,0,100,0),
+(@PATH,9,7309.335,-647.4516,784.8982,0,0,0,0,100,0),
+(@PATH,10,7309.142,-656.5869,784.8982,0,0,0,0,100,0),
+(@PATH,11,7309.224,-666.5821,784.8982,0,0,0,0,100,0),
+(@PATH,12,7309.377,-678.6055,785.1129,0,0,0,0,100,0),
+(@PATH,13,7309.483,-688.7038,785.1492,0,0,0,0,100,0),
+(@PATH,14,7309.378,-678.7083,785.1492,0,0,0,0,100,0);
+
+DELETE FROM `creature_addon` WHERE `guid` IN (114116,114097,114117,114118,114119,114120,114105,114108,114099,114122,114123,114106,114102,114114,114100,114107,114104,113873);
+INSERT INTO `creature_addon` (`guid`,`bytes2`,`emote`) VALUES
+(114116,1,233),(114097,1,233),(114117,1,233),(114118,1,233),
+(114119,1,233),(114120,1,233),(114105,1,233),(114108,1,233),
+(114099,1,233),(114122,1,233),(114123,1,69),(114106,1,69),
+(114102,1,69),(114114,1,69),(114100,1,69),(114107,1,69),
+(114104,1,69),(113873,1,69);
+
+DELETE FROM `creature_template_addon` WHERE `entry`=29384;
+INSERT INTO `creature_template_addon` (`entry`,`path_id`,`bytes2`,`emote`,`auras`) VALUES (29384,0,1,233, '');
+
+UPDATE `creature` SET `modelid`=0,`spawndist`=0,`MovementType`=0 WHERE `id`=29424;
+UPDATE `creature_template` SET `InhabitType`=4, `flags_extra`=`flags_extra`|128 WHERE `entry`=29424;
+
+DELETE FROM `creature_addon` WHERE `guid` IN (113623,113875,114121,114103);
+INSERT INTO `creature_addon` (`guid`,`bytes1`,`bytes2`) VALUES
+(113623,8,1),(113875,1,1),(114121,1,1),(114103,1,1);
+
+DELETE FROM `creature_template_addon` WHERE `entry`=29370;
+INSERT INTO `creature_template_addon` (`entry`,`bytes2`,`emote`,`auras`) VALUES (29370,1,375, '');
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=0 WHERE `guid`=113377;
+UPDATE `Creature_template` SET InhabitType=4 WHERE `entry`=29368;
+
+DELETE FROM `creature_addon` WHERE `guid` IN (100482);
+DELETE FROM `creature_template_addon` WHERE `entry`=30001;
+INSERT INTO `creature_template_addon` (`entry`,`bytes1`,`bytes2`,`auras`) VALUES (30001,3,1, '55701');
+
+-- Condition for spell targets
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (54464,54430);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13, 1, 54464, 0, 0, 31, 0, 3, 29424, 0, 0, 0, 0, '', 'Artificer''s Beam targets Stormforged Lightning Target'),
+(13, 1, 54430, 0, 0, 31, 0, 3, 29424, 0, 0, 0, 0, '', 'Stormforged Beam targets Stormforged Lightning Target');
+UPDATE `creature` SET `position_x`=8108.245,`position_y`=-291.4,`position_z`=871.0 WHERE `guid`=118561;
+
+-- Stormforged Artificer SAI
+SET @ENTRY := -114111;
+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,40,7000,9000,11,57580,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Artificer - Between 0-40 Range - Cast Lightning Infusion"),
+(@ENTRY,0,1,0,1,0,100,0,4000,4000,14000,14000,11,54464,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Artificer - OOC - Cast Artificer's Beam");
+
+-- Stormforged Artificer SAI
+SET @ENTRY := -114098;
+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,40,7000,9000,11,57580,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Artificer - Between 0-40 Range - Cast Lightning Infusion"),
+(@ENTRY,0,1,0,1,0,100,0,4000,4000,14000,14000,11,54464,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Artificer - OOC - Cast Artificer's Beam");
+
+-- Stormforged Artificer SAI
+SET @ENTRY := -114115;
+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,40,7000,9000,11,57580,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Artificer - Between 0-40 Range - Cast Lightning Infusion"),
+(@ENTRY,0,1,0,1,0,100,0,4000,4000,14000,14000,11,54464,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Artificer - OOC - Cast Artificer's Beam");
+
+-- Stormforged Artificer SAI
+SET @ENTRY := -114109;
+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,40,7000,9000,11,57580,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Artificer - Between 0-40 Range - Cast Lightning Infusion"),
+(@ENTRY,0,1,0,1,0,100,0,4000,4000,14000,14000,11,54464,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Artificer - OOC - Cast Artificer's Beam");
+
+-- Stormforged Artificer SAI
+SET @ENTRY := -114110;
+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,40,7000,9000,11,57580,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Artificer - Between 0-40 Range - Cast Lightning Infusion"),
+(@ENTRY,0,1,0,1,0,100,0,4000,4000,14000,14000,11,54464,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Artificer - OOC - Cast Artificer's Beam");
+
+-- Stormforged Artificer SAI
+SET @ENTRY := -114112;
+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,40,7000,9000,11,57580,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Artificer - Between 0-40 Range - Cast Lightning Infusion"),
+(@ENTRY,0,1,0,1,0,100,0,4000,4000,14000,14000,11,54464,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Artificer - OOC - Cast Artificer's Beam");
+
+-- Stormforged Artificer SAI
+SET @ENTRY := -114101;
+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,40,7000,9000,11,57580,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Artificer - Between 0-40 Range - Cast Lightning Infusion"),
+(@ENTRY,0,1,0,1,0,100,0,4000,4000,14000,14000,11,54464,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Artificer - OOC - Cast Artificer's Beam");
+
+-- Stormforged Artificer SAI
+SET @ENTRY := 29376;
+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,40,7000,9000,11,57580,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Artificer - Between 0-40 Range - Cast Lightning Infusion");
+
+-- Stormforged Magus SAI
+SET @ENTRY := 29374;
+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,1,0,100,0,1000,1000,605000,610000,11,12550,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - Out Of Combat - Cast Lightning Shield"),
+(@ENTRY,0,1,0,0,0,100,0,1000,5000,15000,35000,11,12550,33,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - In Combat - Cast Lightning Shield"),
+(@ENTRY,0,2,0,0,0,100,0,4000,9000,16000,19000,11,32193,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Magus - In Combat - Cast Lightning Cloud");
+
+-- Stormforged Magus SAI
+SET @ENTRY := -113879;
+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,1,0,100,0,1000,1000,605000,610000,11,12550,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - Out Of Combat - Cast Lightning Shield"),
+(@ENTRY,0,1,0,0,0,100,0,1000,5000,15000,35000,11,12550,33,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - In Combat - Cast Lightning Shield"),
+(@ENTRY,0,2,0,0,0,100,0,4000,9000,16000,19000,11,32193,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Magus - In Combat - Cast Lightning Cloud"),
+(@ENTRY,0,3,0,1,0,100,0,4000,8000,17000,17000,11,54430,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - OOC - Cast Stormforged Beam");
+
+-- Stormforged Magus SAI
+SET @ENTRY := -113874;
+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,1,0,100,0,1000,1000,605000,610000,11,12550,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - Out Of Combat - Cast Lightning Shield"),
+(@ENTRY,0,1,0,0,0,100,0,1000,5000,15000,35000,11,12550,33,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - In Combat - Cast Lightning Shield"),
+(@ENTRY,0,2,0,0,0,100,0,4000,9000,16000,19000,11,32193,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Magus - In Combat - Cast Lightning Cloud"),
+(@ENTRY,0,3,0,1,0,100,0,4000,8000,17000,17000,11,54430,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - OOC - Cast Stormforged Beam");
+
+-- Stormforged Magus SAI
+SET @ENTRY := -113876;
+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,1,0,100,0,1000,1000,605000,610000,11,12550,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - Out Of Combat - Cast Lightning Shield"),
+(@ENTRY,0,1,0,0,0,100,0,1000,5000,15000,35000,11,12550,33,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - In Combat - Cast Lightning Shield"),
+(@ENTRY,0,2,0,0,0,100,0,4000,9000,16000,19000,11,32193,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Magus - In Combat - Cast Lightning Cloud"),
+(@ENTRY,0,3,0,1,0,100,0,4000,8000,17000,17000,11,54430,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - OOC - Cast Stormforged Beam");
+
+-- Stormforged Magus SAI
+SET @ENTRY := -113878;
+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,1,0,100,0,1000,1000,605000,610000,11,12550,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - Out Of Combat - Cast Lightning Shield"),
+(@ENTRY,0,1,0,0,0,100,0,1000,5000,15000,35000,11,12550,33,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - In Combat - Cast Lightning Shield"),
+(@ENTRY,0,2,0,0,0,100,0,4000,9000,16000,19000,11,32193,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Magus - In Combat - Cast Lightning Cloud"),
+(@ENTRY,0,3,0,1,0,100,0,4000,8000,17000,17000,11,54430,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - OOC - Cast Stormforged Beam");
+
+-- Stormforged Magus SAI
+SET @ENTRY := -113881;
+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,1,0,100,0,1000,1000,605000,610000,11,12550,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - Out Of Combat - Cast Lightning Shield"),
+(@ENTRY,0,1,0,0,0,100,0,1000,5000,15000,35000,11,12550,33,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - In Combat - Cast Lightning Shield"),
+(@ENTRY,0,2,0,0,0,100,0,4000,9000,16000,19000,11,32193,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Magus - In Combat - Cast Lightning Cloud"),
+(@ENTRY,0,3,0,1,0,100,0,4000,8000,17000,17000,11,54430,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - OOC - Cast Stormforged Beam");
+
+-- Stormforged Magus SAI
+SET @ENTRY := -113880;
+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,1,0,100,0,1000,1000,605000,610000,11,12550,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - Out Of Combat - Cast Lightning Shield"),
+(@ENTRY,0,1,0,0,0,100,0,1000,5000,15000,35000,11,12550,33,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - In Combat - Cast Lightning Shield"),
+(@ENTRY,0,2,0,0,0,100,0,4000,9000,16000,19000,11,32193,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Magus - In Combat - Cast Lightning Cloud"),
+(@ENTRY,0,3,0,1,0,100,0,4000,8000,17000,17000,11,54430,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Magus - OOC - Cast Stormforged Beam");
+
+-- Missing Stormforged Artificer spawns
+SET @GUID := 53927;
+DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+4;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+(@GUID,29376,571,1,1,0,1,8050.98633,-296.318359,868.735352,5.253441,300,0,0,1,0,0),
+(@GUID+1,29376,571,1,1,0,1,8073.413,-296.032776,901.670532,5.375614,300,0,0,1,0,0);
+
+-- Stormforged Artificer SAI
+SET @ENTRY := -53927;
+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,40,7000,9000,11,57580,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Artificer - Between 0-40 Range - Cast Lightning Infusion"),
+(@ENTRY,0,1,0,1,0,100,0,4000,4000,14000,14000,11,54464,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Artificer - OOC - Cast Artificer's Beam");
+
+-- Stormforged Artificer SAI
+SET @ENTRY := -53928;
+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,40,7000,9000,11,57580,0,0,0,0,0,5,0,0,0,0,0,0,0,"Stormforged Artificer - Between 0-40 Range - Cast Lightning Infusion"),
+(@ENTRY,0,1,0,1,0,100,0,4000,4000,14000,14000,11,54464,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stormforged Artificer - OOC - Cast Artificer's Beam");
+
+-- Valduran the Stormborn SAI
+SET @ENTRY := 29368;
+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,0,0,0,0,0,11,56220,0,0,0,0,0,1,0,0,0,0,0,0,0,"Valduran the Stormborn - Reset - Cast Valduran's Channel"),
+(@ENTRY,0,1,0,0,0,100,0,0,0,3400,4800,11,56326,64,0,0,0,0,2,0,0,0,0,0,0,0,"Valduran the Stormborn - Combat - Cast Lightning Bolt (CMC)"),
+(@ENTRY,0,2,0,0,0,100,0,15000,18000,29000,33000,11,56322,1,0,0,0,0,1,0,0,0,0,0,0,0,"Valduran the Stormborn - Combat - Cast Spark Frenzy"),
+(@ENTRY,0,3,0,0,0,100,0,3000,8000,23000,26000,11,56319,0,0,0,0,0,5,0,0,0,0,0,0,0,"Valduran the Stormborn - Combat - Cast Ball Lightning");
+
+-- Snowdrift Jormungar SAI
+SET @ENTRY := 29390;
+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,1000,3000,5000,7000,11,50293,0,0,0,0,0,5,0,0,0,0,0,0,0,"Snowdrift Jormungar - In Combat - Cast Corrosive Poison");
diff --git a/sql/updates/world/2013_12_09_04_world_creature_template.sql b/sql/updates/world/2013_12_09_04_world_creature_template.sql
new file mode 100644
index 00000000000..d33d360d043
--- /dev/null
+++ b/sql/updates/world/2013_12_09_04_world_creature_template.sql
@@ -0,0 +1 @@
+UPDATE `creature_template` SET ScriptName = 'npc_brann_bronzebeard_keystone' WHERE `entry`=31810;
diff --git a/src/server/collision/Models/WorldModel.h b/src/server/collision/Models/WorldModel.h
index 23fb1cdb7b6..309b6d8051c 100644
--- a/src/server/collision/Models/WorldModel.h
+++ b/src/server/collision/Models/WorldModel.h
@@ -36,7 +36,7 @@ namespace VMAP
class MeshTriangle
{
public:
- MeshTriangle(){ }
+ MeshTriangle() : idx0(0), idx1(0), idx2(0) { }
MeshTriangle(uint32 na, uint32 nb, uint32 nc): idx0(na), idx1(nb), idx2(nc) { }
uint32 idx0;
@@ -59,7 +59,7 @@ namespace VMAP
bool writeToFile(FILE* wf);
static bool readFromFile(FILE* rf, WmoLiquid* &liquid);
private:
- WmoLiquid(): iHeight(0), iFlags(0) { }
+ WmoLiquid(): iTilesX(0), iTilesY(0), iType(0), iHeight(0), iFlags(0) { }
uint32 iTilesX; //!< number of tiles in x direction, each
uint32 iTilesY;
G3D::Vector3 iCorner; //!< the lower corner
@@ -74,7 +74,7 @@ namespace VMAP
class GroupModel
{
public:
- GroupModel(): iLiquid(0) { }
+ GroupModel(): iMogpFlags(0), iGroupWMOID(0), iLiquid(0) { }
GroupModel(const GroupModel &other);
GroupModel(uint32 mogpFlags, uint32 groupWMOID, const G3D::AABox &bound):
iBound(bound), iMogpFlags(mogpFlags), iGroupWMOID(groupWMOID), iLiquid(0) { }
diff --git a/src/server/game/AI/CoreAI/CombatAI.cpp b/src/server/game/AI/CoreAI/CombatAI.cpp
index 723f8262181..4f015e3f016 100644
--- a/src/server/game/AI/CoreAI/CombatAI.cpp
+++ b/src/server/game/AI/CoreAI/CombatAI.cpp
@@ -330,7 +330,7 @@ void VehicleAI::CheckConditions(const uint32 diff)
{
if (!conditions.empty())
{
- if( Vehicle* vehicleKit = me->GetVehicleKit())
+ if (Vehicle* vehicleKit = me->GetVehicleKit())
for (SeatMap::iterator itr = vehicleKit->Seats.begin(); itr != vehicleKit->Seats.end(); ++itr)
if (Unit* passenger = ObjectAccessor::GetUnit(*me, itr->second.Passenger.Guid))
{
diff --git a/src/server/game/AI/CoreAI/PetAI.h b/src/server/game/AI/CoreAI/PetAI.h
index 9cce00440e1..6e24a079f9f 100644
--- a/src/server/game/AI/CoreAI/PetAI.h
+++ b/src/server/game/AI/CoreAI/PetAI.h
@@ -57,7 +57,6 @@ class PetAI : public CreatureAI
void UpdateAllies();
TimeTracker i_tracker;
- bool inCombat;
std::set<uint64> m_AllySet;
uint32 m_updateAlliesTimer;
diff --git a/src/server/game/AI/CreatureAIRegistry.cpp b/src/server/game/AI/CreatureAIRegistry.cpp
index 8f035667a34..8b74db24a42 100644
--- a/src/server/game/AI/CreatureAIRegistry.cpp
+++ b/src/server/game/AI/CreatureAIRegistry.cpp
@@ -22,7 +22,6 @@
#include "GuardAI.h"
#include "PetAI.h"
#include "TotemAI.h"
-#include "CreatureEventAI.h"
#include "RandomMovementGenerator.h"
#include "MovementGeneratorImpl.h"
#include "CreatureAIRegistry.h"
@@ -46,7 +45,6 @@ namespace AIRegistry
(new CreatureAIFactory<CombatAI>("CombatAI"))->RegisterSelf();
(new CreatureAIFactory<ArcherAI>("ArcherAI"))->RegisterSelf();
(new CreatureAIFactory<TurretAI>("TurretAI"))->RegisterSelf();
- (new CreatureAIFactory<CreatureEventAI>("EventAI"))->RegisterSelf();
(new CreatureAIFactory<VehicleAI>("VehicleAI"))->RegisterSelf();
(new CreatureAIFactory<SmartAI>("SmartAI"))->RegisterSelf();
diff --git a/src/server/game/AI/EventAI/CreatureEventAI.cpp b/src/server/game/AI/EventAI/CreatureEventAI.cpp
deleted file mode 100644
index 8e2e4e8dc2e..00000000000
--- a/src/server/game/AI/EventAI/CreatureEventAI.cpp
+++ /dev/null
@@ -1,1327 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "Common.h"
-#include "CreatureEventAI.h"
-#include "CreatureEventAIMgr.h"
-#include "ObjectMgr.h"
-#include "Spell.h"
-#include "World.h"
-#include "Cell.h"
-#include "CellImpl.h"
-#include "GameEventMgr.h"
-#include "GridNotifiers.h"
-#include "GridNotifiersImpl.h"
-#include "InstanceScript.h"
-#include "SpellMgr.h"
-#include "CreatureAIImpl.h"
-#include "ConditionMgr.h"
-
-bool CreatureEventAIHolder::UpdateRepeatTimer(Creature* creature, uint32 repeatMin, uint32 repeatMax)
-{
- if (repeatMin == repeatMax)
- Time = repeatMin;
- else if (repeatMax > repeatMin)
- Time = urand(repeatMin, repeatMax);
- else
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u using Event %u (Type = %u) has RandomMax < RandomMin. Event repeating disabled.", creature->GetEntry(), Event.event_id, Event.event_type);
- Enabled = false;
- return false;
- }
-
- return true;
-}
-
-int CreatureEventAI::Permissible(const Creature* creature)
-{
- if (creature->GetAIName() == "EventAI")
- return PERMIT_BASE_SPECIAL;
- return PERMIT_BASE_NO;
-}
-
-CreatureEventAI::CreatureEventAI(Creature* c) : CreatureAI(c)
-{
- // Need make copy for filter unneeded steps and safe in case table reload
- CreatureEventAI_Event_Map::const_iterator CreatureEvents = sEventAIMgr->GetCreatureEventAIMap().find(me->GetEntry());
- if (CreatureEvents != sEventAIMgr->GetCreatureEventAIMap().end())
- {
- std::vector<CreatureEventAI_Event>::const_iterator i;
- for (i = (*CreatureEvents).second.begin(); i != (*CreatureEvents).second.end(); ++i)
- {
- //Debug check
- #ifndef TRINITY_DEBUG
- if ((*i).event_flags & EFLAG_DEBUG_ONLY)
- continue;
- #endif
- if (me->GetMap()->IsDungeon())
- {
- if ((1 << (me->GetMap()->GetSpawnMode()+1)) & (*i).event_flags)
- {
- //event flagged for instance mode
- m_CreatureEventAIList.push_back(CreatureEventAIHolder(*i));
- }
- continue;
- }
- m_CreatureEventAIList.push_back(CreatureEventAIHolder(*i));
- }
- //EventMap had events but they were not added because they must be for instance
- if (m_CreatureEventAIList.empty())
- TC_LOG_ERROR("misc", "CreatureEventAI: Creature %u has events but no events added to list because of instance flags.", me->GetEntry());
- }
- else
- TC_LOG_ERROR("misc", "CreatureEventAI: EventMap for Creature %u is empty but creature is using CreatureEventAI.", me->GetEntry());
-
- m_bEmptyList = m_CreatureEventAIList.empty();
- m_Phase = 0;
- m_CombatMovementEnabled = true;
- m_MeleeEnabled = true;
- m_AttackDistance = 0.0f;
- m_AttackAngle = 0.0f;
-
- m_InvincibilityHpLevel = 0;
-
- //Handle Spawned Events
- if (!m_bEmptyList)
- {
- for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i)
- if (SpawnedEventConditionsCheck((*i).Event))
- ProcessEvent(*i);
- }
-}
-
-bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& holder, Unit* actionInvoker /*=NULL*/)
-{
- if (!holder.Enabled || holder.Time)
- return false;
-
- //Check the inverse phase mask (event doesn't trigger if current phase bit is set in mask)
- if (holder.Event.event_inverse_phase_mask & (1 << m_Phase))
- return false;
-
- CreatureEventAI_Event const& event = holder.Event;
-
- //Check event conditions based on the event type, also reset events
- switch (event.event_type)
- {
- case EVENT_T_TIMER:
- if (!me->IsInCombat())
- return false;
-
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.timer.repeatMin, event.timer.repeatMax);
- break;
- case EVENT_T_TIMER_OOC:
- if (me->IsInCombat())
- return false;
-
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.timer.repeatMin, event.timer.repeatMax);
- break;
- case EVENT_T_HP:
- {
- if (!me->IsInCombat() || !me->GetMaxHealth())
- return false;
-
- uint32 perc = uint32(me->GetHealthPct());
-
- if (perc > event.percent_range.percentMax || perc < event.percent_range.percentMin)
- return false;
-
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.percent_range.repeatMin, event.percent_range.repeatMax);
- break;
- }
- case EVENT_T_MANA:
- {
- if (!me->IsInCombat() || !me->GetMaxPower(POWER_MANA))
- return false;
-
- uint32 perc = (me->GetPower(POWER_MANA)*100) / me->GetMaxPower(POWER_MANA);
-
- if (perc > event.percent_range.percentMax || perc < event.percent_range.percentMin)
- return false;
-
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.percent_range.repeatMin, event.percent_range.repeatMax);
- break;
- }
- case EVENT_T_AGGRO:
- break;
- case EVENT_T_KILL:
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.kill.repeatMin, event.kill.repeatMax);
- break;
- case EVENT_T_DEATH:
- case EVENT_T_EVADE:
- break;
- case EVENT_T_SPELLHIT:
- //Spell hit is special case, param1 and param2 handled within CreatureEventAI::SpellHit
-
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.spell_hit.repeatMin, event.spell_hit.repeatMax);
- break;
- case EVENT_T_RANGE:
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.range.repeatMin, event.range.repeatMax);
- break;
- case EVENT_T_OOC_LOS:
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.ooc_los.repeatMin, event.ooc_los.repeatMax);
- break;
- case EVENT_T_RESET:
- case EVENT_T_SPAWNED:
- break;
- case EVENT_T_TARGET_HP:
- {
- if (!me->IsInCombat() || !me->GetVictim() || !me->GetVictim()->GetMaxHealth())
- return false;
-
- uint32 perc = uint32(me->GetVictim()->GetHealthPct());
-
- if (perc > event.percent_range.percentMax || perc < event.percent_range.percentMin)
- return false;
-
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.percent_range.repeatMin, event.percent_range.repeatMax);
- break;
- }
- case EVENT_T_TARGET_CASTING:
- if (!me->IsInCombat() || !me->GetVictim() || !me->GetVictim()->IsNonMeleeSpellCasted(false, false, true))
- return false;
-
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.target_casting.repeatMin, event.target_casting.repeatMax);
- break;
- case EVENT_T_FRIENDLY_HP:
- {
- if (!me->IsInCombat())
- return false;
-
- Unit* unit = DoSelectLowestHpFriendly((float)event.friendly_hp.radius, event.friendly_hp.hpDeficit);
- if (!unit)
- return false;
-
- actionInvoker = unit;
-
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.friendly_hp.repeatMin, event.friendly_hp.repeatMax);
- break;
- }
- case EVENT_T_FRIENDLY_IS_CC:
- {
- if (!me->IsInCombat())
- return false;
-
- std::list<Creature*> pList;
- DoFindFriendlyCC(pList, (float)event.friendly_is_cc.radius);
-
- //List is empty
- if (pList.empty())
- return false;
-
- //We don't really care about the whole list, just return first available
- actionInvoker = *(pList.begin());
-
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.friendly_is_cc.repeatMin, event.friendly_is_cc.repeatMax);
- break;
- }
- case EVENT_T_FRIENDLY_MISSING_BUFF:
- {
- std::list<Creature*> pList;
- DoFindFriendlyMissingBuff(pList, (float)event.friendly_buff.radius, event.friendly_buff.spellId);
-
- //List is empty
- if (pList.empty())
- return false;
-
- //We don't really care about the whole list, just return first available
- actionInvoker = *(pList.begin());
-
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.friendly_buff.repeatMin, event.friendly_buff.repeatMax);
- break;
- }
- case EVENT_T_SUMMONED_UNIT:
- {
- //Prevent event from occuring on no unit or non creatures
- if (!actionInvoker || actionInvoker->GetTypeId() != TYPEID_UNIT)
- return false;
-
- //Creature id doesn't match up
- if (actionInvoker->ToCreature()->GetEntry() != event.summon_unit.creatureId)
- return false;
-
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.summon_unit.repeatMin, event.summon_unit.repeatMax);
- break;
- }
- case EVENT_T_TARGET_MANA:
- {
- if (!me->IsInCombat() || !me->GetVictim() || !me->GetVictim()->GetMaxPower(POWER_MANA))
- return false;
-
- uint32 perc = (me->GetVictim()->GetPower(POWER_MANA)*100) / me->GetVictim()->GetMaxPower(POWER_MANA);
-
- if (perc > event.percent_range.percentMax || perc < event.percent_range.percentMin)
- return false;
-
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.percent_range.repeatMin, event.percent_range.repeatMax);
- break;
- }
- case EVENT_T_REACHED_HOME:
- case EVENT_T_RECEIVE_EMOTE:
- break;
- case EVENT_T_BUFFED:
- {
- //Note: checked only aura for effect 0, if need check aura for effect 1/2 then
- // possible way: pack in event.buffed.amount 2 uint16 (ammount+effectIdx)
- Aura const* aura = me->GetAura(event.buffed.spellId);
- if (!aura || aura->GetStackAmount() < event.buffed.amount)
- return false;
-
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.buffed.repeatMin, event.buffed.repeatMax);
- break;
- }
- case EVENT_T_TARGET_BUFFED:
- {
- //Prevent event from occuring on no unit
- if (!actionInvoker)
- return false;
-
- //Note: checked only aura for effect 0, if need check aura for effect 1/2 then
- // possible way: pack in event.buffed.amount 2 uint16 (ammount+effectIdx)
- Aura const* aura = actionInvoker->GetAura(event.buffed.spellId);
- if (!aura || aura->GetStackAmount() < event.buffed.amount)
- return false;
-
- //Repeat Timers
- holder.UpdateRepeatTimer(me, event.buffed.repeatMin, event.buffed.repeatMax);
- break;
- }
- default:
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u using Event %u has invalid Event Type(%u), missing from ProcessEvent() Switch.", me->GetEntry(), holder.Event.event_id, holder.Event.event_type);
- break;
- }
-
- //Disable non-repeatable events
- if (!(holder.Event.event_flags & EFLAG_REPEATABLE))
- holder.Enabled = false;
-
- //Store random here so that all random actions match up
- uint32 rnd = rand();
-
- //Return if chance for event is not met
- if (holder.Event.event_chance <= rnd % 100)
- return false;
-
- //Process actions
- for (uint8 j = 0; j < MAX_ACTIONS; ++j)
- ProcessAction(holder.Event.action[j], rnd, holder.Event.event_id, actionInvoker);
-
- return true;
-}
-
-void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 rnd, uint32 eventId, Unit* actionInvoker)
-{
- switch (action.type)
- {
- case ACTION_T_TEXT:
- {
- if (!action.text.TextId1)
- return;
-
- int32 temp = action.text.TextId1;
-
- if (action.text.TextId2 && action.text.TextId3)
- temp = RAND(action.text.TextId1, action.text.TextId2, action.text.TextId3);
- else if (action.text.TextId2 && urand(0, 1))
- temp = action.text.TextId2;
-
- if (temp)
- {
- Unit* target = NULL;
-
- if (actionInvoker)
- {
- if (actionInvoker->GetTypeId() == TYPEID_PLAYER)
- target = actionInvoker;
- else if (Unit* owner = actionInvoker->GetOwner())
- {
- if (owner->GetTypeId() == TYPEID_PLAYER)
- target = owner;
- }
- }
- else
- {
- target = me->GetVictim();
- if (target && target->GetTypeId() != TYPEID_PLAYER)
- if (Unit* owner = target->GetOwner())
- if (owner->GetTypeId() == TYPEID_PLAYER)
- target = owner;
- }
-
- DoScriptText(temp, me, target);
- }
- break;
- }
- case ACTION_T_SET_FACTION:
- {
- if (action.set_faction.factionId)
- me->setFaction(action.set_faction.factionId);
- else
- {
- if (CreatureTemplate const* ci = sObjectMgr->GetCreatureTemplate(me->GetEntry()))
- {
- //if no id provided, assume reset and then use default
- if (me->getFaction() != ci->faction_A)
- me->setFaction(ci->faction_A);
- }
- }
- break;
- }
- case ACTION_T_MORPH_TO_ENTRY_OR_MODEL:
- {
- if (action.morph.creatureId || action.morph.modelId)
- {
- //set model based on entry from creature_template
- if (action.morph.creatureId)
- {
- if (CreatureTemplate const* ci = sObjectMgr->GetCreatureTemplate(action.morph.creatureId))
- me->SetDisplayId(ObjectMgr::ChooseDisplayId(ci));
- }
- //if no param1, then use value from param2 (modelId)
- else
- me->SetDisplayId(action.morph.modelId);
- }
- else
- me->DeMorph();
- break;
- }
- case ACTION_T_SOUND:
- me->PlayDirectSound(action.sound.soundId);
- break;
- case ACTION_T_EMOTE:
- me->HandleEmoteCommand(action.emote.emoteId);
- break;
- case ACTION_T_RANDOM_SOUND:
- {
- int32 temp = GetRandActionParam(rnd, action.random_sound.soundId1, action.random_sound.soundId2, action.random_sound.soundId3);
- if (temp >= 0)
- me->PlayDirectSound(temp);
- break;
- }
- case ACTION_T_RANDOM_EMOTE:
- {
- int32 temp = GetRandActionParam(rnd, action.random_emote.emoteId1, action.random_emote.emoteId2, action.random_emote.emoteId3);
- if (temp >= 0)
- me->HandleEmoteCommand(temp);
- break;
- }
- case ACTION_T_CAST:
- {
- Unit* target = GetTargetByType(action.cast.target, actionInvoker);
- Unit* caster = me;
-
- if (!target)
- return;
-
- if (action.cast.castFlags & CAST_FORCE_TARGET_SELF)
- caster = target;
-
- //Allowed to cast only if not casting (unless we interrupt ourself) or if spell is triggered
- bool canCast = !caster->IsNonMeleeSpellCasted(false) || (action.cast.castFlags & (CAST_TRIGGERED | CAST_INTERRUPT_PREVIOUS));
-
- // If cast flag CAST_AURA_NOT_PRESENT is active, check if target already has aura on them
- if (action.cast.castFlags & CAST_AURA_NOT_PRESENT)
- {
- if (target->HasAura(action.cast.spellId))
- return;
- }
-
- if (canCast)
- {
- const SpellInfo* tSpell = sSpellMgr->GetSpellInfo(action.cast.spellId);
-
- //Verify that spell exists
- if (tSpell)
- {
- //Check if cannot cast spell
- if (!(action.cast.castFlags & (CAST_FORCE_TARGET_SELF | CAST_FORCE_CAST)) &&
- !CanCast(target, tSpell, (action.cast.castFlags & CAST_TRIGGERED)))
- {
- //Melee current victim if flag not set
- if (!(action.cast.castFlags & CAST_NO_MELEE_IF_OOM))
- {
- if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == CHASE_MOTION_TYPE)
- {
- m_AttackDistance = 0.0f;
- m_AttackAngle = 0.0f;
-
- me->GetMotionMaster()->MoveChase(me->GetVictim(), m_AttackDistance, m_AttackAngle);
- }
- }
- }
- else
- {
- //Interrupt any previous spell
- if (caster->IsNonMeleeSpellCasted(false) && action.cast.castFlags & CAST_INTERRUPT_PREVIOUS)
- caster->InterruptNonMeleeSpells(false);
-
- caster->CastSpell(target, action.cast.spellId, (action.cast.castFlags & CAST_TRIGGERED));
- }
- }
- else
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: event %d creature %d attempt to cast spell that doesn't exist %d", eventId, me->GetEntry(), action.cast.spellId);
- }
- break;
- }
- case ACTION_T_THREAT_SINGLE_PCT:
- if (Unit* target = GetTargetByType(action.threat_single_pct.target, actionInvoker))
- me->getThreatManager().modifyThreatPercent(target, action.threat_single_pct.percent);
- break;
- case ACTION_T_THREAT_ALL_PCT:
- {
- ThreatContainer::StorageType const& threatList = me->getThreatManager().getThreatList();
- for (ThreatContainer::StorageType::const_iterator i = threatList.begin(); i != threatList.end(); ++i)
- if (Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()))
- me->getThreatManager().modifyThreatPercent(unit, action.threat_all_pct.percent);
- break;
- }
- case ACTION_T_QUEST_EVENT:
- if (Unit* target = GetTargetByType(action.quest_event.target, actionInvoker))
- if (target->GetTypeId() == TYPEID_PLAYER)
- target->ToPlayer()->AreaExploredOrEventHappens(action.quest_event.questId);
- break;
- case ACTION_T_SET_UNIT_FIELD:
- {
- Unit* target = GetTargetByType(action.set_unit_field.target, actionInvoker);
-
- // not allow modify important for integrity object fields
- if (action.set_unit_field.field < OBJECT_END || action.set_unit_field.field >= UNIT_END)
- return;
-
- if (target)
- target->SetUInt32Value(action.set_unit_field.field, action.set_unit_field.value);
-
- break;
- }
- case ACTION_T_SET_UNIT_FLAG:
- if (Unit* target = GetTargetByType(action.unit_flag.target, actionInvoker))
- target->SetFlag(UNIT_FIELD_FLAGS, action.unit_flag.value);
- break;
- case ACTION_T_REMOVE_UNIT_FLAG:
- if (Unit* target = GetTargetByType(action.unit_flag.target, actionInvoker))
- target->RemoveFlag(UNIT_FIELD_FLAGS, action.unit_flag.value);
- break;
- case ACTION_T_AUTO_ATTACK:
- m_MeleeEnabled = action.auto_attack.state != 0;
- break;
- case ACTION_T_COMBAT_MOVEMENT:
- // ignore no affect case
- if (m_CombatMovementEnabled == (action.combat_movement.state != 0))
- return;
-
- m_CombatMovementEnabled = action.combat_movement.state != 0;
-
- //Allow movement (create new targeted movement gen only if idle)
- if (m_CombatMovementEnabled)
- {
- Unit* victim = me->GetVictim();
- if (me->IsInCombat() && victim)
- {
- if (action.combat_movement.melee)
- {
- me->AddUnitState(UNIT_STATE_MELEE_ATTACKING);
- me->SendMeleeAttackStart(victim);
- }
- if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == IDLE_MOTION_TYPE)
- me->GetMotionMaster()->MoveChase(victim, m_AttackDistance, m_AttackAngle); // Targeted movement generator will start melee automatically, no need to send it explicitly
- }
- }
- else
- {
- if (me->IsInCombat())
- {
- Unit* victim = me->GetVictim();
- if (action.combat_movement.melee && victim)
- {
- me->ClearUnitState(UNIT_STATE_MELEE_ATTACKING);
- me->SendMeleeAttackStop(victim);
- }
- if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == CHASE_MOTION_TYPE)
- me->GetMotionMaster()->MoveIdle();
- }
- }
- break;
- case ACTION_T_SET_PHASE:
- m_Phase = action.set_phase.phase;
- break;
- case ACTION_T_INC_PHASE:
- {
- int32 new_phase = int32(m_Phase)+action.set_inc_phase.step;
- if (new_phase < 0)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %d decrease m_Phase under 0. CreatureEntry = %d", eventId, me->GetEntry());
- m_Phase = 0;
- }
- else if (new_phase >= MAX_PHASE)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %d incremented m_Phase above %u. m_Phase mask cannot be used with phases past %u. CreatureEntry = %d", eventId, MAX_PHASE-1, MAX_PHASE-1, me->GetEntry());
- m_Phase = MAX_PHASE-1;
- }
- else
- m_Phase = new_phase;
-
- break;
- }
- case ACTION_T_EVADE:
- EnterEvadeMode();
- break;
- case ACTION_T_FLEE_FOR_ASSIST:
- me->DoFleeToGetAssistance();
- break;
- case ACTION_T_QUEST_EVENT_ALL:
- if (actionInvoker && actionInvoker->GetTypeId() == TYPEID_PLAYER)
- {
- if (Unit* Temp = Unit::GetUnit(*me, actionInvoker->GetGUID()))
- if (Temp->GetTypeId() == TYPEID_PLAYER)
- Temp->ToPlayer()->GroupEventHappens(action.quest_event_all.questId, me);
- }
- break;
- case ACTION_T_REMOVEAURASFROMSPELL:
- if (Unit* target = GetTargetByType(action.remove_aura.target, actionInvoker))
- target->RemoveAurasDueToSpell(action.remove_aura.spellId);
- break;
- case ACTION_T_RANGED_MOVEMENT:
- m_AttackDistance = (float)action.ranged_movement.distance;
- m_AttackAngle = action.ranged_movement.angle/180.0f*M_PI;
-
- if (m_CombatMovementEnabled)
- {
- me->GetMotionMaster()->MoveChase(me->GetVictim(), m_AttackDistance, m_AttackAngle);
- }
- break;
- case ACTION_T_RANDOM_PHASE:
- m_Phase = GetRandActionParam(rnd, action.random_phase.phase1, action.random_phase.phase2, action.random_phase.phase3);
- break;
- case ACTION_T_RANDOM_PHASE_RANGE:
- if (action.random_phase_range.phaseMin <= action.random_phase_range.phaseMax)
- m_Phase = urand(action.random_phase_range.phaseMin, action.random_phase_range.phaseMax);
- else
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: ACTION_T_RANDOM_PHASE_RANGE cannot have Param2 < Param1. Event = %d. CreatureEntry = %d", eventId, me->GetEntry());
- break;
- case ACTION_T_KILLED_MONSTER:
- //first attempt player who tapped creature
- if (Player* player = me->GetLootRecipient())
- player->RewardPlayerAndGroupAtEvent(action.killed_monster.creatureId, player); // player as param is a hacky solution not to use GUID
- else
- {
- //if not available, use actionInvoker
- if (Unit* target = GetTargetByType(action.killed_monster.target, actionInvoker))
- if (Player* player2 = target->GetCharmerOrOwnerPlayerOrPlayerItself())
- player2->RewardPlayerAndGroupAtEvent(action.killed_monster.creatureId, player2);
- }
- break;
- case ACTION_T_SET_INST_DATA:
- {
- InstanceScript* instance = me->GetInstanceScript();
- if (!instance)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %d attempt to set instance data without instance script. Creature %d", eventId, me->GetEntry());
- return;
- }
-
- instance->SetData(action.set_inst_data.field, action.set_inst_data.value);
- break;
- }
- case ACTION_T_SET_INST_DATA64:
- {
- Unit* target = GetTargetByType(action.set_inst_data64.target, actionInvoker);
- if (!target)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %d attempt to set instance data64 but Target == NULL. Creature %d", eventId, me->GetEntry());
- return;
- }
-
- InstanceScript* instance = me->GetInstanceScript();
- if (!instance)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %d attempt to set instance data64 without instance script. Creature %d", eventId, me->GetEntry());
- return;
- }
-
- instance->SetData64(action.set_inst_data64.field, target->GetGUID());
- break;
- }
- case ACTION_T_UPDATE_TEMPLATE:
- if (me->GetEntry() == action.update_template.creatureId)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %d ACTION_T_UPDATE_TEMPLATE call with param1 == current entry. Creature %d", eventId, me->GetEntry());
- return;
- }
-
- me->UpdateEntry(action.update_template.creatureId, action.update_template.team ? HORDE : ALLIANCE);
- break;
- case ACTION_T_DIE:
- if (me->isDead())
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %d ACTION_T_DIE on dead creature. Creature %d", eventId, me->GetEntry());
- return;
- }
- me->Kill(me);
- break;
- case ACTION_T_ZONE_COMBAT_PULSE:
- {
- me->SetInCombatWithZone();
- break;
- }
- case ACTION_T_CALL_FOR_HELP:
- {
- me->CallForHelp((float)action.call_for_help.radius);
- break;
- }
- break;
-
- // TRINITY ONLY
- case ACTION_T_MOVE_RANDOM_POINT: //dosen't work in combat
- {
- float x, y, z;
- me->GetClosePoint(x, y, z, me->GetObjectSize() / 3, (float)action.raw.param1);
- me->GetMotionMaster()->MovePoint(0, x, y, z);
- break;
- }
- case ACTION_T_SET_STAND_STATE:
- me->SetStandState(UnitStandStateType(action.raw.param1));
- break;
- case ACTION_T_SET_PHASE_MASK:
- me->SetPhaseMask(action.raw.param1, true);
- break;
- case ACTION_T_SET_VISIBILITY:
- me->SetVisible(bool(action.raw.param1));
- break;
- case ACTION_T_SET_ACTIVE:
- me->setActive(action.raw.param1 ? true : false);
- break;
- case ACTION_T_SET_AGGRESSIVE:
- me->SetReactState(ReactStates(action.raw.param1));
- break;
- case ACTION_T_ATTACK_START_PULSE:
- AttackStart(me->SelectNearestTarget((float)action.raw.param1));
- break;
- case ACTION_T_SUMMON_GO:
- {
- float x, y, z;
- me->GetPosition(x, y, z);
- GameObject* object = me->SummonGameObject(action.raw.param1, x, y, z, 0, 0, 0, 0, 0, action.raw.param2);
- if (!object)
- TC_LOG_ERROR("scripts", "EventAI failed to spawn object %u. Spawn event %d is on creature %d", action.raw.param1, eventId, me->GetEntry());
-
- break;
- }
- case ACTION_T_SET_SHEATH:
- {
- me->SetSheath(SheathState(action.set_sheath.sheath));
- break;
- }
- case ACTION_T_FORCE_DESPAWN:
- {
- me->DespawnOrUnsummon(action.forced_despawn.msDelay);
- break;
- }
- case ACTION_T_SET_INVINCIBILITY_HP_LEVEL:
- {
- if (action.invincibility_hp_level.is_percent)
- m_InvincibilityHpLevel = me->CountPctFromMaxHealth(action.invincibility_hp_level.hp_level);
- else
- m_InvincibilityHpLevel = action.invincibility_hp_level.hp_level;
- break;
- }
- case ACTION_T_MOUNT_TO_ENTRY_OR_MODEL:
- {
- if (action.mount.creatureId || action.mount.modelId)
- {
- // set model based on entry from creature_template
- if (action.mount.creatureId)
- {
- if (CreatureTemplate const* cInfo = sObjectMgr->GetCreatureTemplate(action.mount.creatureId))
- me->Mount(ObjectMgr::ChooseDisplayId(cInfo));
- }
- //if no param1, then use value from param2 (modelId)
- else
- me->Mount(action.mount.modelId);
- }
- else
- me->Dismount();
-
- break;
- }
- default:
- break;
- }
-}
-
-void CreatureEventAI::JustRespawned()
-{
- Reset();
-
- if (m_bEmptyList)
- return;
-
- //Handle Spawned Events
- for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i)
- if (SpawnedEventConditionsCheck((*i).Event))
- ProcessEvent(*i);
-}
-
-void CreatureEventAI::Reset()
-{
- m_EventUpdateTime = EVENT_UPDATE_TIME;
- m_EventDiff = 0;
-
- if (m_bEmptyList)
- return;
-
- for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i)
- {
- if ((*i).Event.event_type == EVENT_T_RESET)
- ProcessEvent(*i);
- }
-
- //Reset all events to enabled
- for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i)
- {
- CreatureEventAI_Event const& event = (*i).Event;
- switch (event.event_type)
- {
- //Reset all out of combat timers
- case EVENT_T_TIMER_OOC:
- {
- if ((*i).UpdateRepeatTimer(me, event.timer.initialMin, event.timer.initialMax))
- (*i).Enabled = true;
- break;
- }
- default:
- /// @todo enable below code line / verify this is correct to enable events previously disabled (ex. aggro yell), instead of enable this in void EnterCombat()
- //(*i).Enabled = true;
- //(*i).Time = 0;
- break;
- }
- }
-}
-
-void CreatureEventAI::JustReachedHome()
-{
- if (!m_bEmptyList)
- {
- for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i)
- {
- if ((*i).Event.event_type == EVENT_T_REACHED_HOME)
- ProcessEvent(*i);
- }
- }
-
- Reset();
-}
-
-void CreatureEventAI::EnterEvadeMode()
-{
- CreatureAI::EnterEvadeMode();
-
- if (m_bEmptyList)
- return;
-
- //Handle Evade events
- for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i)
- {
- if ((*i).Event.event_type == EVENT_T_EVADE)
- ProcessEvent(*i);
- }
-}
-
-void CreatureEventAI::JustDied(Unit* killer)
-{
- Reset();
-
- if (m_bEmptyList)
- return;
-
- //Handle Evade events
- for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i)
- {
- if ((*i).Event.event_type == EVENT_T_DEATH)
- ProcessEvent(*i, killer);
- }
-
- // reset phase after any death state events
- m_Phase = 0;
-}
-
-void CreatureEventAI::KilledUnit(Unit* victim)
-{
- if (m_bEmptyList || victim->GetTypeId() != TYPEID_PLAYER)
- return;
-
- for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i)
- {
- if ((*i).Event.event_type == EVENT_T_KILL)
- ProcessEvent(*i, victim);
- }
-}
-
-void CreatureEventAI::JustSummoned(Creature* unit)
-{
- if (m_bEmptyList || !unit)
- return;
-
- for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i)
- {
- if ((*i).Event.event_type == EVENT_T_SUMMONED_UNIT)
- ProcessEvent(*i, unit);
- }
-}
-
-void CreatureEventAI::EnterCombat(Unit* enemy)
-{
- //Check for on combat start events
- if (!m_bEmptyList)
- {
- for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i)
- {
- CreatureEventAI_Event const& event = (*i).Event;
- switch (event.event_type)
- {
- case EVENT_T_AGGRO:
- (*i).Enabled = true;
- ProcessEvent(*i, enemy);
- break;
- //Reset all in combat timers
- case EVENT_T_TIMER:
- if ((*i).UpdateRepeatTimer(me, event.timer.initialMin, event.timer.initialMax))
- (*i).Enabled = true;
- break;
- //All normal events need to be re-enabled and their time set to 0
- default:
- (*i).Enabled = true;
- (*i).Time = 0;
- break;
- }
- }
- }
-
- m_EventUpdateTime = EVENT_UPDATE_TIME;
- m_EventDiff = 0;
-}
-
-void CreatureEventAI::AttackStart(Unit* who)
-{
- if (!who)
- return;
-
- if (me->Attack(who, m_MeleeEnabled))
- {
- if (m_CombatMovementEnabled)
- {
- me->GetMotionMaster()->MoveChase(who, m_AttackDistance, m_AttackAngle);
- }
- else
- {
- me->GetMotionMaster()->MoveIdle();
- }
- }
-}
-
-void CreatureEventAI::MoveInLineOfSight(Unit* who)
-{
- if (me->GetVictim())
- return;
-
- //Check for OOC LOS Event
- if (!m_bEmptyList)
- {
- for (CreatureEventAIList::iterator itr = m_CreatureEventAIList.begin(); itr != m_CreatureEventAIList.end(); ++itr)
- {
- if ((*itr).Event.event_type == EVENT_T_OOC_LOS)
- {
- //can trigger if closer than fMaxAllowedRange
- float fMaxAllowedRange = (float)((*itr).Event.ooc_los.maxRange);
-
- //if range is ok and we are actually in LOS
- if (me->IsWithinDistInMap(who, fMaxAllowedRange) && me->IsWithinLOSInMap(who))
- {
- //if friendly event&&who is not hostile OR hostile event&&who is hostile
- if (((*itr).Event.ooc_los.noHostile && !me->IsHostileTo(who)) ||
- ((!(*itr).Event.ooc_los.noHostile) && me->IsHostileTo(who)))
- ProcessEvent(*itr, who);
- }
- }
- }
- }
-
- CreatureAI::MoveInLineOfSight(who);
-}
-
-void CreatureEventAI::SpellHit(Unit* unit, const SpellInfo* spell)
-{
- if (m_bEmptyList)
- return;
-
- for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i)
- if ((*i).Event.event_type == EVENT_T_SPELLHIT)
- //If spell id matches (or no spell id) & if spell school matches (or no spell school)
- if (!(*i).Event.spell_hit.spellId || spell->Id == (*i).Event.spell_hit.spellId)
- if (spell->SchoolMask & (*i).Event.spell_hit.schoolMask)
- ProcessEvent(*i, unit);
-}
-
-void CreatureEventAI::UpdateAI(uint32 diff)
-{
- //Check if we are in combat (also updates calls threat update code)
- bool Combat = UpdateVictim();
-
- if (!m_bEmptyList)
- {
- //Events are only updated once every EVENT_UPDATE_TIME ms to prevent lag with large amount of events
- if (m_EventUpdateTime <= diff)
- {
- m_EventDiff += diff;
-
- //Check for time based events
- for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i)
- {
- //Decrement Timers
- if ((*i).Time)
- {
- if (m_EventDiff <= (*i).Time)
- {
- //Do not decrement timers if event cannot trigger in this phase
- if (!((*i).Event.event_inverse_phase_mask & (1 << m_Phase)))
- (*i).Time -= m_EventDiff;
-
- //Skip processing of events that have time remaining
- continue;
- }
- else (*i).Time = 0;
- }
-
- //Events that are updated every EVENT_UPDATE_TIME
- switch ((*i).Event.event_type)
- {
- case EVENT_T_TIMER_OOC:
- ProcessEvent(*i);
- break;
- case EVENT_T_TIMER:
- case EVENT_T_MANA:
- case EVENT_T_HP:
- case EVENT_T_TARGET_HP:
- case EVENT_T_TARGET_CASTING:
- case EVENT_T_FRIENDLY_HP:
- if (me->GetVictim())
- ProcessEvent(*i);
- break;
- case EVENT_T_RANGE:
- if (me->GetVictim())
- if (me->IsInMap(me->GetVictim()) && me->InSamePhase(me->GetVictim()))
- if (me->IsInRange(me->GetVictim(), (float)(*i).Event.range.minDist, (float)(*i).Event.range.maxDist))
- ProcessEvent(*i);
- break;
- default:
- break;
- }
- }
-
- m_EventDiff = 0;
- m_EventUpdateTime = EVENT_UPDATE_TIME;
- }
- else
- {
- m_EventDiff += diff;
- m_EventUpdateTime -= diff;
- }
- }
-
- //Melee Auto-Attack
- if (Combat && m_MeleeEnabled)
- DoMeleeAttackIfReady();
-}
-
-inline uint32 CreatureEventAI::GetRandActionParam(uint32 rnd, uint32 param1, uint32 param2, uint32 param3)
-{
- switch (rnd % 3)
- {
- case 0: return param1;
- case 1: return param2;
- case 2: break;
- }
-
- return param3;
-}
-
-inline int32 CreatureEventAI::GetRandActionParam(uint32 rnd, int32 param1, int32 param2, int32 param3)
-{
- switch (rnd % 3)
- {
- case 0: return param1;
- case 1: return param2;
- case 2: break;
- }
-
- return param3;
-}
-
-inline Unit* CreatureEventAI::GetTargetByType(uint32 target, Unit* actionInvoker)
-{
- switch (target)
- {
- case TARGET_T_SELF:
- return me;
- case TARGET_T_HOSTILE:
- return me->GetVictim();
- case TARGET_T_HOSTILE_SECOND_AGGRO:
- return SelectTarget(SELECT_TARGET_TOPAGGRO, 1);
- case TARGET_T_HOSTILE_LAST_AGGRO:
- return SelectTarget(SELECT_TARGET_BOTTOMAGGRO, 0);
- case TARGET_T_HOSTILE_RANDOM:
- return SelectTarget(SELECT_TARGET_RANDOM, 0);
- case TARGET_T_HOSTILE_RANDOM_NOT_TOP:
- return SelectTarget(SELECT_TARGET_RANDOM, 1);
- case TARGET_T_ACTION_INVOKER:
- return actionInvoker;
- default:
- return NULL;
- };
-}
-
-Unit* CreatureEventAI::DoSelectLowestHpFriendly(float range, uint32 minHPDiff)
-{
- CellCoord p(Trinity::ComputeCellCoord(me->GetPositionX(), me->GetPositionY()));
- Cell cell(p);
- cell.SetNoCreate();
-
- Unit* unit = NULL;
-
- Trinity::MostHPMissingInRange u_check(me, range, minHPDiff);
- Trinity::UnitLastSearcher<Trinity::MostHPMissingInRange> searcher(me, unit, u_check);
-
- /*
- typedef TYPELIST_4(GameObject, Creature*except pets*, DynamicObject, Corpse*Bones*) AllGridObjectTypes;
- This means that if we only search grid then we cannot possibly return pets or players so this is safe
- */
- TypeContainerVisitor<Trinity::UnitLastSearcher<Trinity::MostHPMissingInRange>, GridTypeMapContainer > grid_unit_searcher(searcher);
-
- cell.Visit(p, grid_unit_searcher, *me->GetMap(), *me, range);
- return unit;
-}
-
-void CreatureEventAI::DoFindFriendlyCC(std::list<Creature*>& _list, float range)
-{
- CellCoord p(Trinity::ComputeCellCoord(me->GetPositionX(), me->GetPositionY()));
- Cell cell(p);
- cell.SetNoCreate();
-
- Trinity::FriendlyCCedInRange u_check(me, range);
- Trinity::CreatureListSearcher<Trinity::FriendlyCCedInRange> searcher(me, _list, u_check);
-
- TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::FriendlyCCedInRange>, GridTypeMapContainer > grid_creature_searcher(searcher);
-
- cell.Visit(p, grid_creature_searcher, *me->GetMap(), *me, range);
-}
-
-void CreatureEventAI::DoFindFriendlyMissingBuff(std::list<Creature*>& _list, float range, uint32 spellid)
-{
- CellCoord p(Trinity::ComputeCellCoord(me->GetPositionX(), me->GetPositionY()));
- Cell cell(p);
- cell.SetNoCreate();
-
- Trinity::FriendlyMissingBuffInRange u_check(me, range, spellid);
- Trinity::CreatureListSearcher<Trinity::FriendlyMissingBuffInRange> searcher(me, _list, u_check);
-
- TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::FriendlyMissingBuffInRange>, GridTypeMapContainer > grid_creature_searcher(searcher);
-
- cell.Visit(p, grid_creature_searcher, *me->GetMap(), *me, range);
-}
-
-// *********************************
-// *** Functions used globally ***
-
-void CreatureEventAI::DoScriptText(int32 textEntry, WorldObject* source, Unit* target)
-{
- if (!source)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: DoScriptText entry %i, invalid Source pointer.", textEntry);
- return;
- }
-
- if (textEntry >= 0)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: DoScriptText with source entry %u (TypeId=%u, guid=%u) attempts to process text entry %i, but text entry must be negative.", source->GetEntry(), source->GetTypeId(), source->GetGUIDLow(), textEntry);
- return;
- }
-
- CreatureEventAI_TextMap::const_iterator i = sEventAIMgr->GetCreatureEventAITextMap().find(textEntry);
-
- if (i == sEventAIMgr->GetCreatureEventAITextMap().end())
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: DoScriptText with source entry %u (TypeId=%u, guid=%u) could not find text entry %i.", source->GetEntry(), source->GetTypeId(), source->GetGUIDLow(), textEntry);
- return;
- }
-
- TC_LOG_DEBUG("scripts.ai", "CreatureEventAI: DoScriptText: text entry=%i, Sound=%u, Type=%u, Language=%u, Emote=%u", textEntry, (*i).second.SoundId, (*i).second.Type, (*i).second.Language, (*i).second.Emote);
-
- if ((*i).second.SoundId)
- {
- if (sSoundEntriesStore.LookupEntry((*i).second.SoundId))
- source->PlayDirectSound((*i).second.SoundId);
- else
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: DoScriptText entry %i tried to process invalid sound id %u.", textEntry, (*i).second.SoundId);
- }
-
- if ((*i).second.Emote)
- {
- if (source->GetTypeId() == TYPEID_UNIT || source->GetTypeId() == TYPEID_PLAYER)
- {
- ((Unit*)source)->HandleEmoteCommand((*i).second.Emote);
- }
- else
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: DoScriptText entry %i tried to process emote for invalid TypeId (%u).", textEntry, source->GetTypeId());
- }
-
- switch ((*i).second.Type)
- {
- case CHAT_TYPE_SAY:
- source->MonsterSay(textEntry, (*i).second.Language, target ? target->GetGUID() : 0);
- break;
- case CHAT_TYPE_YELL:
- source->MonsterYell(textEntry, (*i).second.Language, target ? target->GetGUID() : 0);
- break;
- case CHAT_TYPE_TEXT_EMOTE:
- source->MonsterTextEmote(textEntry, target ? target->GetGUID() : 0);
- break;
- case CHAT_TYPE_BOSS_EMOTE:
- source->MonsterTextEmote(textEntry, target ? target->GetGUID() : 0, true);
- break;
- case CHAT_TYPE_WHISPER:
- {
- if (target && target->GetTypeId() == TYPEID_PLAYER)
- source->MonsterWhisper(textEntry, target->GetGUID());
- else TC_LOG_ERROR("sql.sql", "CreatureEventAI: DoScriptText entry %i cannot whisper without target unit (TYPEID_PLAYER).", textEntry);
- }break;
- case CHAT_TYPE_BOSS_WHISPER:
- {
- if (target && target->GetTypeId() == TYPEID_PLAYER)
- source->MonsterWhisper(textEntry, target->GetGUID(), true);
- else TC_LOG_ERROR("sql.sql", "CreatureEventAI: DoScriptText entry %i cannot whisper without target unit (TYPEID_PLAYER).", textEntry);
- }break;
- case CHAT_TYPE_ZONE_YELL:
- source->MonsterYellToZone(textEntry, (*i).second.Language, target ? target->GetGUID() : 0);
- break;
- }
-}
-
-bool CreatureEventAI::CanCast(Unit* target, SpellInfo const* spell, bool triggered)
-{
- //No target so we can't cast
- if (!target || !spell)
- return false;
-
- //Silenced so we can't cast
- if (!triggered && me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED))
- return false;
-
- //Check for power
- if (!triggered && me->GetPower((Powers)spell->PowerType) < uint32(spell->CalcPowerCost(me, spell->GetSchoolMask())))
- return false;
-
- //Unit is out of range of this spell
- if (!me->IsInRange(target, spell->GetMinRange(false), spell->GetMaxRange(false)))
- return false;
-
- //Spell is on cooldown
- if (me->HasSpellCooldown(spell->Id))
- return false;
-
- return true;
-}
-
-void CreatureEventAI::ReceiveEmote(Player* player, uint32 textEmote)
-{
- if (m_bEmptyList)
- return;
-
- for (CreatureEventAIList::iterator itr = m_CreatureEventAIList.begin(); itr != m_CreatureEventAIList.end(); ++itr)
- {
- if ((*itr).Event.event_type == EVENT_T_RECEIVE_EMOTE)
- {
- if ((*itr).Event.receive_emote.emoteId != textEmote)
- return;
-
- Condition cond;
- cond.ConditionType = ConditionTypes((*itr).Event.receive_emote.condition);
- cond.ConditionValue1 = (*itr).Event.receive_emote.conditionValue1;
- cond.ConditionValue2 = (*itr).Event.receive_emote.conditionValue2;
-
- ConditionSourceInfo srcInfo = ConditionSourceInfo(player);
- if (cond.Meets(srcInfo))
- {
- TC_LOG_DEBUG("scripts.ai", "CreatureEventAI: ReceiveEmote CreatureEventAI: Condition ok, processing");
- ProcessEvent(*itr, player);
- }
- }
- }
-}
-
-void CreatureEventAI::DamageTaken(Unit* /*done_by*/, uint32& damage)
-{
- if (m_InvincibilityHpLevel > 0 && me->GetHealth() < m_InvincibilityHpLevel+damage)
- {
- if (me->GetHealth() <= m_InvincibilityHpLevel)
- damage = 0;
- else
- damage = me->GetHealth() - m_InvincibilityHpLevel;
- }
-}
-
-bool CreatureEventAI::SpawnedEventConditionsCheck(CreatureEventAI_Event const& event)
-{
- if (event.event_type != EVENT_T_SPAWNED)
- return false;
-
- switch (event.spawned.condition)
- {
- case SPAWNED_EVENT_ALWAY:
- // always
- return true;
- case SPAWNED_EVENT_MAP:
- // map ID check
- return me->GetMapId() == event.spawned.conditionValue1;
- case SPAWNED_EVENT_ZONE:
- {
- // zone ID check
- uint32 zone, area;
- me->GetZoneAndAreaId(zone, area);
- return zone == event.spawned.conditionValue1 || area == event.spawned.conditionValue1;
- }
- default:
- break;
- }
-
- return false;
-}
diff --git a/src/server/game/AI/EventAI/CreatureEventAI.h b/src/server/game/AI/EventAI/CreatureEventAI.h
deleted file mode 100644
index c16f0901b05..00000000000
--- a/src/server/game/AI/EventAI/CreatureEventAI.h
+++ /dev/null
@@ -1,630 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef TRINITY_CREATURE_EAI_H
-#define TRINITY_CREATURE_EAI_H
-
-#include "Common.h"
-#include "Creature.h"
-#include "CreatureAI.h"
-#include "Unit.h"
-
-class Player;
-class WorldObject;
-
-#define EVENT_UPDATE_TIME 500
-#define MAX_ACTIONS 3
-#define MAX_PHASE 32
-
-enum EventAI_Type
-{
- EVENT_T_TIMER = 0, // InitialMin, InitialMax, RepeatMin, RepeatMax
- EVENT_T_TIMER_OOC = 1, // InitialMin, InitialMax, RepeatMin, RepeatMax
- EVENT_T_HP = 2, // HPMax%, HPMin%, RepeatMin, RepeatMax
- EVENT_T_MANA = 3, // ManaMax%, ManaMin% RepeatMin, RepeatMax
- EVENT_T_AGGRO = 4, // NONE
- EVENT_T_KILL = 5, // RepeatMin, RepeatMax
- EVENT_T_DEATH = 6, // NONE
- EVENT_T_EVADE = 7, // NONE
- EVENT_T_SPELLHIT = 8, // SpellID, School, RepeatMin, RepeatMax
- EVENT_T_RANGE = 9, // MinDist, MaxDist, RepeatMin, RepeatMax
- EVENT_T_OOC_LOS = 10, // NoHostile, MaxRnage, RepeatMin, RepeatMax
- EVENT_T_SPAWNED = 11, // Condition, CondValue1
- EVENT_T_TARGET_HP = 12, // HPMax%, HPMin%, RepeatMin, RepeatMax
- EVENT_T_TARGET_CASTING = 13, // RepeatMin, RepeatMax
- EVENT_T_FRIENDLY_HP = 14, // HPDeficit, Radius, RepeatMin, RepeatMax
- EVENT_T_FRIENDLY_IS_CC = 15, // DispelType, Radius, RepeatMin, RepeatMax
- EVENT_T_FRIENDLY_MISSING_BUFF = 16, // SpellId, Radius, RepeatMin, RepeatMax
- EVENT_T_SUMMONED_UNIT = 17, // CreatureId, RepeatMin, RepeatMax
- EVENT_T_TARGET_MANA = 18, // ManaMax%, ManaMin%, RepeatMin, RepeatMax
- EVENT_T_QUEST_ACCEPT = 19, // QuestID
- EVENT_T_QUEST_COMPLETE = 20, //
- EVENT_T_REACHED_HOME = 21, // NONE
- EVENT_T_RECEIVE_EMOTE = 22, // EmoteId, Condition, CondValue1, CondValue2
- EVENT_T_BUFFED = 23, // Param1 = SpellID, Param2 = Number of Time STacked, Param3/4 Repeat Min/Max
- EVENT_T_TARGET_BUFFED = 24, // Param1 = SpellID, Param2 = Number of Time STacked, Param3/4 Repeat Min/Max
- EVENT_T_RESET = 35, // Is it called after combat, when the creature respawn and spawn. -- TRINITY ONLY
-
- EVENT_T_END
-};
-
-enum EventAI_ActionType
-{
- ACTION_T_NONE = 0, // No action
- ACTION_T_TEXT = 1, // TextId1, optionally -TextId2, optionally -TextId3(if -TextId2 exist). If more than just -TextId1 is defined, randomize. Negative values.
- ACTION_T_SET_FACTION = 2, // FactionId (or 0 for default)
- ACTION_T_MORPH_TO_ENTRY_OR_MODEL = 3, // Creature_template entry(param1) OR ModelId (param2) (or 0 for both to demorph)
- ACTION_T_SOUND = 4, // SoundId
- ACTION_T_EMOTE = 5, // EmoteId
- ACTION_T_RANDOM_SAY = 6, // UNUSED
- ACTION_T_RANDOM_YELL = 7, // UNUSED
- ACTION_T_RANDOM_TEXTEMOTE = 8, // UNUSED
- ACTION_T_RANDOM_SOUND = 9, // SoundId1, SoundId2, SoundId3 (-1 in any field means no output if randomed that field)
- ACTION_T_RANDOM_EMOTE = 10, // EmoteId1, EmoteId2, EmoteId3 (-1 in any field means no output if randomed that field)
- ACTION_T_CAST = 11, // SpellId, Target, CastFlags
- ACTION_T_SUMMON = 12, // CreatureID, Target, Duration in ms
- ACTION_T_THREAT_SINGLE_PCT = 13, // Threat%, Target
- ACTION_T_THREAT_ALL_PCT = 14, // Threat%
- ACTION_T_QUEST_EVENT = 15, // QuestID, Target
- // none = 16,
- ACTION_T_SET_UNIT_FIELD = 17, // Field_Number, Value, Target
- ACTION_T_SET_UNIT_FLAG = 18, // Flags (may be more than one field OR'd together), Target
- ACTION_T_REMOVE_UNIT_FLAG = 19, // Flags (may be more than one field OR'd together), Target
- ACTION_T_AUTO_ATTACK = 20, // AllowAttackState (0 = stop attack, anything else means continue attacking)
- ACTION_T_COMBAT_MOVEMENT = 21, // AllowCombatMovement (0 = stop combat based movement, anything else continue attacking)
- ACTION_T_SET_PHASE = 22, // Phase
- ACTION_T_INC_PHASE = 23, // Value (may be negative to decrement phase, should not be 0)
- ACTION_T_EVADE = 24, // No Params
- ACTION_T_FLEE_FOR_ASSIST = 25, // No Params
- ACTION_T_QUEST_EVENT_ALL = 26, // QuestID
- // none = 27,
- ACTION_T_REMOVEAURASFROMSPELL = 28, // Target, Spellid
- ACTION_T_RANGED_MOVEMENT = 29, // Distance, Angle
- ACTION_T_RANDOM_PHASE = 30, // PhaseId1, PhaseId2, PhaseId3
- ACTION_T_RANDOM_PHASE_RANGE = 31, // PhaseMin, PhaseMax
- ACTION_T_SUMMON_ID = 32, // CreatureId, Target, SpawnId
- ACTION_T_KILLED_MONSTER = 33, // CreatureId, Target
- ACTION_T_SET_INST_DATA = 34, // Field, Data
- ACTION_T_SET_INST_DATA64 = 35, // Field, Target
- ACTION_T_UPDATE_TEMPLATE = 36, // Entry, Team
- ACTION_T_DIE = 37, // No Params
- ACTION_T_ZONE_COMBAT_PULSE = 38, // No Params
- ACTION_T_CALL_FOR_HELP = 39, // Radius
- ACTION_T_SET_SHEATH = 40, // Sheath (0-passive, 1-melee, 2-ranged)
- ACTION_T_FORCE_DESPAWN = 41, // No Params
- ACTION_T_SET_INVINCIBILITY_HP_LEVEL = 42, // MinHpValue, format(0-flat, 1-percent from max health)
- ACTION_T_MOUNT_TO_ENTRY_OR_MODEL = 43, // Creature_template entry(param1) OR ModelId (param2) (or 0 for both to dismount)
-
- ACTION_T_SET_PHASE_MASK = 97,
- ACTION_T_SET_STAND_STATE = 98,
- ACTION_T_MOVE_RANDOM_POINT = 99,
- ACTION_T_SET_VISIBILITY = 100,
- ACTION_T_SET_ACTIVE = 101, //Apply
- ACTION_T_SET_AGGRESSIVE = 102, //Apply
- ACTION_T_ATTACK_START_PULSE = 103, //Distance
- ACTION_T_SUMMON_GO = 104, //GameObjectID, DespawnTime in ms
-
- ACTION_T_END = 105
-};
-
-enum Target
-{
- //Self (me)
- TARGET_T_SELF = 0, //Self cast
-
- //Hostile targets (if pet then returns pet owner)
- TARGET_T_HOSTILE, //Our current target (ie: highest aggro)
- TARGET_T_HOSTILE_SECOND_AGGRO, //Second highest aggro (generaly used for cleaves and some special attacks)
- TARGET_T_HOSTILE_LAST_AGGRO, //Dead last on aggro (no idea what this could be used for)
- TARGET_T_HOSTILE_RANDOM, //Just any random target on our threat list
- TARGET_T_HOSTILE_RANDOM_NOT_TOP, //Any random target except top threat
-
- //Invoker targets (if pet then returns pet owner)
- TARGET_T_ACTION_INVOKER, //Unit who caused this Event to occur (only works for EVENT_T_AGGRO, EVENT_T_KILL, EVENT_T_DEATH, EVENT_T_SPELLHIT, EVENT_T_OOC_LOS, EVENT_T_FRIENDLY_HP, EVENT_T_FRIENDLY_IS_CC, EVENT_T_FRIENDLY_MISSING_BUFF)
-
- //Hostile targets (including pets)
- TARGET_T_HOSTILE_WPET, //Current target (can be a pet)
- TARGET_T_HOSTILE_WPET_SECOND_AGGRO, //Second highest aggro (generaly used for cleaves and some special attacks)
- TARGET_T_HOSTILE_WPET_LAST_AGGRO, //Dead last on aggro (no idea what this could be used for)
- TARGET_T_HOSTILE_WPET_RANDOM, //Just any random target on our threat list
- TARGET_T_HOSTILE_WPET_RANDOM_NOT_TOP, //Any random target except top threat
-
- TARGET_T_ACTION_INVOKER_WPET,
-
- TARGET_T_END
-};
-
-enum CastFlags
-{
- CAST_INTERRUPT_PREVIOUS = 0x01, //Interrupt any spell casting
- CAST_TRIGGERED = 0x02, //Triggered (this makes spell cost zero mana and have no cast time)
- CAST_FORCE_CAST = 0x04, //Forces cast even if creature is out of mana or out of range
- CAST_NO_MELEE_IF_OOM = 0x08, //Prevents creature from entering melee if out of mana or out of range
- CAST_FORCE_TARGET_SELF = 0x10, //Forces the target to cast this spell on itself
- CAST_AURA_NOT_PRESENT = 0x20 //Only casts the spell if the target does not have an aura from the spell
-};
-
-enum EventFlags
-{
- EFLAG_REPEATABLE = 0x01, //Event repeats
- EFLAG_DIFFICULTY_0 = 0x02, //Event only occurs in instance difficulty 0
- EFLAG_DIFFICULTY_1 = 0x04, //Event only occurs in instance difficulty 1
- EFLAG_DIFFICULTY_2 = 0x08, //Event only occurs in instance difficulty 2
- EFLAG_DIFFICULTY_3 = 0x10, //Event only occurs in instance difficulty 3
- EFLAG_RESERVED_5 = 0x20,
- EFLAG_RESERVED_6 = 0x40,
- EFLAG_DEBUG_ONLY = 0x80, //Event only occurs in debug build
-
- EFLAG_DIFFICULTY_ALL = (EFLAG_DIFFICULTY_0|EFLAG_DIFFICULTY_1|EFLAG_DIFFICULTY_2|EFLAG_DIFFICULTY_3)
-};
-
-enum SpawnedEventMode
-{
- SPAWNED_EVENT_ALWAY = 0,
- SPAWNED_EVENT_MAP = 1,
- SPAWNED_EVENT_ZONE = 2
-};
-
-// String text additional data, used in (CreatureEventAI)
-struct StringTextData
-{
- uint32 SoundId;
- uint8 Type;
- uint32 Language;
- uint32 Emote;
-};
-// Text Maps
-typedef UNORDERED_MAP<int32, StringTextData> CreatureEventAI_TextMap;
-
-struct CreatureEventAI_Action
-{
- EventAI_ActionType type: 16;
- union
- {
- // ACTION_T_TEXT = 1
- struct
- {
- int32 TextId1;
- int32 TextId2;
- int32 TextId3;
- } text;
- // ACTION_T_SET_FACTION = 2
- struct
- {
- uint32 factionId; // faction or 0 for default)
- } set_faction;
- // ACTION_T_MORPH_TO_ENTRY_OR_MODEL = 3
- struct
- {
- uint32 creatureId; // set one from fields (or 0 for both to demorph)
- uint32 modelId;
- } morph;
- // ACTION_T_SOUND = 4
- struct
- {
- uint32 soundId;
- } sound;
- // ACTION_T_EMOTE = 5
- struct
- {
- uint32 emoteId;
- } emote;
- // ACTION_T_RANDOM_SOUND = 9
- struct
- {
- int32 soundId1; // (-1 in any field means no output if randomed that field)
- int32 soundId2;
- int32 soundId3;
- } random_sound;
- // ACTION_T_RANDOM_EMOTE = 10
- struct
- {
- int32 emoteId1; // (-1 in any field means no output if randomed that field)
- int32 emoteId2;
- int32 emoteId3;
- } random_emote;
- // ACTION_T_CAST = 11
- struct
- {
- uint32 spellId;
- uint32 target;
- uint32 castFlags;
- } cast;
- // ACTION_T_SUMMON = 12
- struct
- {
- uint32 creatureId;
- uint32 target;
- uint32 duration;
- } summon;
- // ACTION_T_THREAT_SINGLE_PCT = 13
- struct
- {
- int32 percent;
- uint32 target;
- } threat_single_pct;
- // ACTION_T_THREAT_ALL_PCT = 14
- struct
- {
- int32 percent;
- } threat_all_pct;
- // ACTION_T_QUEST_EVENT = 15
- struct
- {
- uint32 questId;
- uint32 target;
- } quest_event;
- // ACTION_T_SET_UNIT_FIELD = 17
- struct
- {
- uint32 field;
- uint32 value;
- uint32 target;
- } set_unit_field;
- // ACTION_T_SET_UNIT_FLAG = 18, // value provided mask bits that will be set
- // ACTION_T_REMOVE_UNIT_FLAG = 19, // value provided mask bits that will be clear
- struct
- {
- uint32 value;
- uint32 target;
- } unit_flag;
- // ACTION_T_AUTO_ATTACK = 20
- struct
- {
- uint32 state; // 0 = stop attack, anything else means continue attacking
- } auto_attack;
- // ACTION_T_COMBAT_MOVEMENT = 21
- struct
- {
- uint32 state; // 0 = stop combat based movement, anything else continue attacking
- uint32 melee; // if set: at stop send melee combat stop if in combat, use for terminate melee fighting state for switch to ranged
- } combat_movement;
- // ACTION_T_SET_PHASE = 22
- struct
- {
- uint32 phase;
- } set_phase;
- // ACTION_T_INC_PHASE = 23
- struct
- {
- int32 step;
- } set_inc_phase;
- // ACTION_T_QUEST_EVENT_ALL = 26
- struct
- {
- uint32 questId;
- } quest_event_all;
- // ACTION_T_REMOVEAURASFROMSPELL = 28
- struct
- {
- uint32 target;
- uint32 spellId;
- } remove_aura;
- // ACTION_T_RANGED_MOVEMENT = 29
- struct
- {
- uint32 distance;
- int32 angle;
- } ranged_movement;
- // ACTION_T_RANDOM_PHASE = 30
- struct
- {
- uint32 phase1;
- uint32 phase2;
- uint32 phase3;
- } random_phase;
- // ACTION_T_RANDOM_PHASE_RANGE = 31
- struct
- {
- uint32 phaseMin;
- uint32 phaseMax;
- } random_phase_range;
- // ACTION_T_SUMMON_ID = 32
- struct
- {
- uint32 creatureId;
- uint32 target;
- uint32 spawnId;
- } summon_id;
- // ACTION_T_KILLED_MONSTER = 33
- struct
- {
- uint32 creatureId;
- uint32 target;
- } killed_monster;
- // ACTION_T_SET_INST_DATA = 34
- struct
- {
- uint32 field;
- uint32 value;
- } set_inst_data;
- // ACTION_T_SET_INST_DATA64 = 35
- struct
- {
- uint32 field;
- uint32 target;
- } set_inst_data64;
- // ACTION_T_UPDATE_TEMPLATE = 36
- struct
- {
- uint32 creatureId;
- uint32 team;
- } update_template;
- // ACTION_T_CALL_FOR_HELP = 39
- struct
- {
- uint32 radius;
- } call_for_help;
- // ACTION_T_SET_SHEATH = 40
- struct
- {
- uint32 sheath;
- } set_sheath;
- // ACTION_T_FORCE_DESPAWN = 41
- struct
- {
- uint32 msDelay;
- } forced_despawn;
- // ACTION_T_SET_INVINCIBILITY_HP_LEVEL = 42
- struct
- {
- uint32 hp_level;
- uint32 is_percent;
- } invincibility_hp_level;
- // ACTION_T_MOUNT_TO_ENTRY_OR_MODEL = 43
- struct
- {
- uint32 creatureId; // set one from fields (or 0 for both to dismount)
- uint32 modelId;
- } mount;
- // RAW
- struct
- {
- uint32 param1;
- uint32 param2;
- uint32 param3;
- } raw;
- };
-};
-
-struct CreatureEventAI_Event
-{
- uint32 event_id;
-
- uint32 creature_id;
-
- uint32 event_inverse_phase_mask;
-
- EventAI_Type event_type : 16;
- uint8 event_chance : 8;
- uint8 event_flags : 8;
-
- union
- {
- // EVENT_T_TIMER = 0
- // EVENT_T_TIMER_OOC = 1
- struct
- {
- uint32 initialMin;
- uint32 initialMax;
- uint32 repeatMin;
- uint32 repeatMax;
- } timer;
- // EVENT_T_HP = 2
- // EVENT_T_MANA = 3
- // EVENT_T_TARGET_HP = 12
- // EVENT_T_TARGET_MANA = 18
- struct
- {
- uint32 percentMax;
- uint32 percentMin;
- uint32 repeatMin;
- uint32 repeatMax;
- } percent_range;
- // EVENT_T_KILL = 5
- struct
- {
- uint32 repeatMin;
- uint32 repeatMax;
- } kill;
- // EVENT_T_SPELLHIT = 8
- struct
- {
- uint32 spellId;
- uint32 schoolMask; // -1 ( == 0xffffffff) is ok value for full mask, or must be more limited mask like (0 < 1) = 1 for normal/physical school
- uint32 repeatMin;
- uint32 repeatMax;
- } spell_hit;
- // EVENT_T_RANGE = 9
- struct
- {
- uint32 minDist;
- uint32 maxDist;
- uint32 repeatMin;
- uint32 repeatMax;
- } range;
- // EVENT_T_OOC_LOS = 10
- struct
- {
- uint32 noHostile;
- uint32 maxRange;
- uint32 repeatMin;
- uint32 repeatMax;
- } ooc_los;
- // EVENT_T_SPAWNED = 11
- struct
- {
- uint32 condition;
- uint32 conditionValue1;
- } spawned;
- // EVENT_T_TARGET_CASTING = 13
- struct
- {
- uint32 repeatMin;
- uint32 repeatMax;
- } target_casting;
- // EVENT_T_FRIENDLY_HP = 14
- struct
- {
- uint32 hpDeficit;
- uint32 radius;
- uint32 repeatMin;
- uint32 repeatMax;
- } friendly_hp;
- // EVENT_T_FRIENDLY_IS_CC = 15
- struct
- {
- uint32 dispelType; // unused ?
- uint32 radius;
- uint32 repeatMin;
- uint32 repeatMax;
- } friendly_is_cc;
- // EVENT_T_FRIENDLY_MISSING_BUFF = 16
- struct
- {
- uint32 spellId;
- uint32 radius;
- uint32 repeatMin;
- uint32 repeatMax;
- } friendly_buff;
- // EVENT_T_SUMMONED_UNIT = 17
- struct
- {
- uint32 creatureId;
- uint32 repeatMin;
- uint32 repeatMax;
- } summon_unit;
- // EVENT_T_QUEST_ACCEPT = 19
- // EVENT_T_QUEST_COMPLETE = 20
- struct
- {
- uint32 questId;
- } quest;
- // EVENT_T_RECEIVE_EMOTE = 22
- struct
- {
- uint32 emoteId;
- uint32 condition;
- uint32 conditionValue1;
- uint32 conditionValue2;
- } receive_emote;
- // EVENT_T_BUFFED = 23
- // EVENT_T_TARGET_BUFFED = 24
- struct
- {
- uint32 spellId;
- uint32 amount;
- uint32 repeatMin;
- uint32 repeatMax;
- } buffed;
-
- // RAW
- struct
- {
- uint32 param1;
- uint32 param2;
- uint32 param3;
- uint32 param4;
- } raw;
- };
-
- CreatureEventAI_Action action[MAX_ACTIONS];
-};
-//Event_Map
-typedef UNORDERED_MAP<uint32, std::vector<CreatureEventAI_Event> > CreatureEventAI_Event_Map;
-
-struct CreatureEventAI_Summon
-{
- //uint32 id;
-
- float position_x;
- float position_y;
- float position_z;
- float orientation;
- uint32 SpawnTimeSecs;
-};
-
-//EventSummon_Map
-typedef UNORDERED_MAP<uint32, CreatureEventAI_Summon> CreatureEventAI_Summon_Map;
-
-struct CreatureEventAIHolder
-{
- CreatureEventAIHolder(CreatureEventAI_Event const& p) : Event(p), Time(0), Enabled(true){ }
-
- CreatureEventAI_Event Event;
- uint32 Time;
- bool Enabled;
-
- // helper
- bool UpdateRepeatTimer(Creature* creature, uint32 repeatMin, uint32 repeatMax);
-};
-
-class CreatureEventAI : public CreatureAI
-{
- public:
- explicit CreatureEventAI(Creature* c);
- ~CreatureEventAI() { }
-
- void JustRespawned();
- void Reset();
- void JustReachedHome();
- void EnterCombat(Unit* enemy);
- void EnterEvadeMode();
- void JustDied(Unit* /*killer*/);
- void KilledUnit(Unit* victim);
- void JustSummoned(Creature* unit);
- void AttackStart(Unit* who);
- void MoveInLineOfSight(Unit* who);
- void SpellHit(Unit* unit, const SpellInfo* spell);
- void DamageTaken(Unit* done_by, uint32& damage);
- void HealReceived(Unit* /*done_by*/, uint32& /*addhealth*/) { }
- void UpdateAI(uint32 diff);
- void ReceiveEmote(Player* player, uint32 textEmote);
- static int Permissible(const Creature*);
-
- bool ProcessEvent(CreatureEventAIHolder& holder, Unit* actionInvoker = NULL);
- void ProcessAction(CreatureEventAI_Action const& action, uint32 rnd, uint32 eventId, Unit* actionInvoker);
- inline uint32 GetRandActionParam(uint32 rnd, uint32 param1, uint32 param2, uint32 param3);
- inline int32 GetRandActionParam(uint32 rnd, int32 param1, int32 param2, int32 param3);
- inline Unit* GetTargetByType(uint32 target, Unit* actionInvoker);
-
- void DoScriptText(int32 textEntry, WorldObject* source, Unit* target);
- bool CanCast(Unit* target, SpellInfo const* spell, bool triggered);
-
- bool SpawnedEventConditionsCheck(CreatureEventAI_Event const& event);
-
- Unit* DoSelectLowestHpFriendly(float range, uint32 minHPDiff);
- void DoFindFriendlyMissingBuff(std::list<Creature*>& _list, float range, uint32 spellid);
- void DoFindFriendlyCC(std::list<Creature*>& _list, float range);
-
- protected:
- uint32 m_EventUpdateTime; // Time between event updates
- uint32 m_EventDiff; // Time between the last event call
- bool m_bEmptyList;
-
- typedef std::vector<CreatureEventAIHolder> CreatureEventAIList;
- CreatureEventAIList m_CreatureEventAIList; // Holder for events (stores enabled, time, and eventid)
- // Variables used by Events themselves
- uint8 m_Phase; // Current phase, max 32 phases
- bool m_CombatMovementEnabled; // If we allow targeted movment gen (movement twoards top threat)
- bool m_MeleeEnabled; // If we allow melee auto attack
- float m_AttackDistance; // Distance to attack from
- float m_AttackAngle; // Angle of attack
- uint32 m_InvincibilityHpLevel; // Minimal health level allowed at damage apply
-};
-#endif
diff --git a/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp b/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp
deleted file mode 100644
index daaf531dbda..00000000000
--- a/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp
+++ /dev/null
@@ -1,680 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "Common.h"
-#include "DatabaseEnv.h"
-#include "CreatureEventAI.h"
-#include "CreatureEventAIMgr.h"
-#include "ObjectMgr.h"
-#include "ObjectDefines.h"
-#include "GridDefines.h"
-#include "ConditionMgr.h"
-#include "SpellMgr.h"
-#include "SpellInfo.h"
-#include "Player.h"
-
-// -------------------
-void CreatureEventAIMgr::LoadCreatureEventAI_Texts()
-{
- uint32 oldMSTime = getMSTime();
-
- // Drop Existing Text Map, only done once and we are ready to add data from multiple sources.
- m_CreatureEventAI_TextMap.clear();
-
- // Load EventAI Text
- sObjectMgr->LoadTrinityStrings("creature_ai_texts", MIN_CREATURE_AI_TEXT_STRING_ID, MAX_CREATURE_AI_TEXT_STRING_ID);
-
- // Gather Additional data from EventAI Texts 0 1 2 3 4
- QueryResult result = WorldDatabase.Query("SELECT entry, sound, type, language, emote FROM creature_ai_texts");
-
- if (!result)
- {
- TC_LOG_INFO("server.loading", ">> Loaded 0 additional CreatureEventAI Texts data. DB table `creature_ai_texts` is empty.");
- return;
- }
-
- uint32 count = 0;
-
- do
- {
- Field* fields = result->Fetch();
- StringTextData temp;
-
- int32 i = fields[0].GetInt32();
- temp.SoundId = fields[1].GetUInt32();
- temp.Type = fields[2].GetUInt8();
- temp.Language = fields[3].GetUInt8();
- temp.Emote = fields[4].GetUInt16();
-
- // range negative
- if (i > MIN_CREATURE_AI_TEXT_STRING_ID || i <= MAX_CREATURE_AI_TEXT_STRING_ID)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Entry %i in table `creature_ai_texts` is not in valid range(%d-%d)", i, MIN_CREATURE_AI_TEXT_STRING_ID, MAX_CREATURE_AI_TEXT_STRING_ID);
- continue;
- }
-
- // range negative (must not happen, loaded from same table)
- if (!sObjectMgr->GetTrinityStringLocale(i))
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Entry %i in table `creature_ai_texts` not found", i);
- continue;
- }
-
- if (temp.SoundId)
- {
- if (!sSoundEntriesStore.LookupEntry(temp.SoundId))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Entry %i in table `creature_ai_texts` has Sound %u but sound does not exist.", i, temp.SoundId);
- }
-
- if (!GetLanguageDescByID(temp.Language))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Entry %i in table `creature_ai_texts` using Language %u but Language does not exist.", i, temp.Language);
-
- if (temp.Type > CHAT_TYPE_ZONE_YELL)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Entry %i in table `creature_ai_texts` has Type %u but this Chat Type does not exist.", i, temp.Type);
-
- if (temp.Emote)
- {
- if (!sEmotesStore.LookupEntry(temp.Emote))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Entry %i in table `creature_ai_texts` has Emote %u but emote does not exist.", i, temp.Emote);
- }
-
- m_CreatureEventAI_TextMap[i] = temp;
- ++count;
- }
- while (result->NextRow());
-
- TC_LOG_INFO("server.loading", ">> Loaded %u additional CreatureEventAI Texts data in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
-}
-
-void CreatureEventAIMgr::LoadCreatureEventAI_Scripts()
-{
- uint32 oldMSTime = getMSTime();
-
- //Drop Existing EventAI List
- m_CreatureEventAI_Event_Map.clear();
-
- // Gather event data
- QueryResult result = WorldDatabase.Query("SELECT id, creature_id, event_type, event_inverse_phase_mask, event_chance, event_flags, "
- "event_param1, event_param2, event_param3, event_param4, "
- "action1_type, action1_param1, action1_param2, action1_param3, "
- "action2_type, action2_param1, action2_param2, action2_param3, "
- "action3_type, action3_param1, action3_param2, action3_param3 "
- "FROM creature_ai_scripts");
-
- if (!result)
- {
- TC_LOG_INFO("server.loading", ">> Loaded 0 CreatureEventAI scripts. DB table `creature_ai_scripts` is empty.");
- return;
- }
-
- uint32 count = 0;
-
- do
- {
- Field* fields = result->Fetch();
-
- CreatureEventAI_Event temp;
- temp.event_id = EventAI_Type(fields[0].GetUInt32());
- uint32 i = temp.event_id;
-
- temp.creature_id = fields[1].GetUInt32();
- uint32 creature_id = temp.creature_id;
-
- uint32 e_type = fields[2].GetUInt8();
- //Report any errors in event
- if (e_type >= EVENT_T_END)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u have wrong type (%u), skipping.", i, e_type);
- continue;
- }
- temp.event_type = EventAI_Type(e_type);
-
- temp.event_inverse_phase_mask = fields[3].GetInt32();
- temp.event_chance = fields[4].GetUInt32();
- temp.event_flags = fields[5].GetUInt32();
- temp.raw.param1 = fields[6].GetInt32();
- temp.raw.param2 = fields[7].GetInt32();
- temp.raw.param3 = fields[8].GetInt32();
- temp.raw.param4 = fields[9].GetInt32();
-
- CreatureTemplate const* cInfo = sObjectMgr->GetCreatureTemplate(creature_id);
- //Creature does not exist in database
- if (!cInfo)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u has script for non-existing creature entry (%u), skipping.", i, creature_id);
- continue;
- }
-
- // Only on the first script
- if (cInfo->AIName != "EventAI" && m_CreatureEventAI_Event_Map[creature_id].empty())
- TC_LOG_ERROR("sql.sql", "Creature entry %u has EventAI scripts, but its AIName is not 'EventAI' - possible AI-mismatch?", temp.creature_id);
-
- //No chance of this event occuring
- if (temp.event_chance == 0)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u has 0 percent chance. Event will never trigger!", i);
- //Chance above 100, force it to be 100
- else if (temp.event_chance > 100)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using event %u with more than 100 percent chance. Adjusting to 100 percent.", temp.creature_id, i);
- temp.event_chance = 100;
- }
-
- //Individual event checks
- switch (temp.event_type)
- {
- case EVENT_T_TIMER:
- case EVENT_T_TIMER_OOC:
- if (temp.timer.initialMax < temp.timer.initialMin)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using timed event(%u) with param2 < param1 (InitialMax < InitialMin). Event will never repeat.", temp.creature_id, i);
- if (temp.timer.repeatMax < temp.timer.repeatMin)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
- break;
- case EVENT_T_HP:
- case EVENT_T_MANA:
- case EVENT_T_TARGET_HP:
- case EVENT_T_TARGET_MANA:
- if (temp.percent_range.percentMax > 100)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using percentage event(%u) with param2 (MinPercent) > 100. Event will never trigger! ", temp.creature_id, i);
-
- if (temp.percent_range.percentMax <= temp.percent_range.percentMin)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using percentage event(%u) with param1 <= param2 (MaxPercent <= MinPercent). Event will never trigger! ", temp.creature_id, i);
-
- if (temp.event_flags & EFLAG_REPEATABLE && !temp.percent_range.repeatMin && !temp.percent_range.repeatMax)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u has param3 and param4=0 (RepeatMin/RepeatMax) but cannot be repeatable without timers. Removing EFLAG_REPEATABLE for event %u.", temp.creature_id, i);
- temp.event_flags &= ~EFLAG_REPEATABLE;
- }
- break;
- case EVENT_T_SPELLHIT:
- if (temp.spell_hit.spellId)
- {
- SpellInfo const* spell = sSpellMgr->GetSpellInfo(temp.spell_hit.spellId);
- if (!spell)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u has non-existant SpellID(%u) defined in event %u.", temp.creature_id, temp.spell_hit.spellId, i);
- continue;
- }
-
- if ((temp.spell_hit.schoolMask & spell->SchoolMask) != spell->SchoolMask)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u has param1(spellId %u) but param2 is not -1 and not equal to spell's school mask. Event %u can never trigger.",
- temp.creature_id, temp.spell_hit.schoolMask, i);
- }
- }
-
- if (!temp.spell_hit.schoolMask)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u is using invalid SpellSchoolMask(%u) defined in event %u.", temp.creature_id, temp.spell_hit.schoolMask, i);
-
- if (temp.spell_hit.repeatMax < temp.spell_hit.repeatMin)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
- break;
- case EVENT_T_RANGE:
- if (temp.range.maxDist < temp.range.minDist)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using event(%u) with param2 < param1 (MaxDist < MinDist). Event will never repeat.", temp.creature_id, i);
- if (temp.range.repeatMax < temp.range.repeatMin)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
- break;
- case EVENT_T_OOC_LOS:
- if (temp.ooc_los.repeatMax < temp.ooc_los.repeatMin)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
- break;
- case EVENT_T_SPAWNED:
- switch (temp.spawned.condition)
- {
- case SPAWNED_EVENT_ALWAY:
- break;
- case SPAWNED_EVENT_MAP:
- if (!sMapStore.LookupEntry(temp.spawned.conditionValue1))
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using spawned event(%u) with param1 = %u 'map specific' but with not existed map (%u) in param2. Event will never repeat.",
- temp.creature_id, i, temp.spawned.condition, temp.spawned.conditionValue1);
- }
- break;
- case SPAWNED_EVENT_ZONE:
- if (!GetAreaEntryByAreaID(temp.spawned.conditionValue1))
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using spawned event(%u) with param1 = %u 'area specific' but with not existed area (%u) in param2. Event will never repeat.",
- temp.creature_id, i, temp.spawned.condition, temp.spawned.conditionValue1);
- }
- break;
- default:
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using invalid spawned event %u mode (%u) in param1", temp.creature_id, i, temp.spawned.condition);
- break;
- }
- break;
- case EVENT_T_FRIENDLY_HP:
- if (temp.friendly_hp.repeatMax < temp.friendly_hp.repeatMin)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
- break;
- case EVENT_T_FRIENDLY_IS_CC:
- if (temp.friendly_is_cc.repeatMax < temp.friendly_is_cc.repeatMin)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
- break;
- case EVENT_T_FRIENDLY_MISSING_BUFF:
- {
- SpellInfo const* spell = sSpellMgr->GetSpellInfo(temp.spell_hit.spellId);
- if (!spell)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u has non-existant SpellID(%u) defined in event %u.", temp.creature_id, temp.spell_hit.spellId, i);
- continue;
- }
- if (temp.friendly_buff.repeatMax < temp.friendly_buff.repeatMin)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
- break;
- }
- case EVENT_T_KILL:
- if (temp.kill.repeatMax < temp.kill.repeatMin)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using event(%u) with param2 < param1 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
- break;
- case EVENT_T_TARGET_CASTING:
- if (temp.target_casting.repeatMax < temp.target_casting.repeatMin)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using event(%u) with param2 < param1 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
- break;
- case EVENT_T_SUMMONED_UNIT:
- if (!sObjectMgr->GetCreatureTemplate(temp.summon_unit.creatureId))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using event(%u) with not existed creature template id (%u) in param1, skipped.", temp.creature_id, i, temp.summon_unit.creatureId);
- if (temp.summon_unit.repeatMax < temp.summon_unit.repeatMin)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using event(%u) with param2 < param1 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
- break;
- case EVENT_T_QUEST_ACCEPT:
- case EVENT_T_QUEST_COMPLETE:
- if (!sObjectMgr->GetQuestTemplate(temp.quest.questId))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using event(%u) with not existed qyest id (%u) in param1, skipped.", temp.creature_id, i, temp.quest.questId);
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u using not implemented event (%u) in event %u.", temp.creature_id, temp.event_id, i);
- continue;
-
- case EVENT_T_AGGRO:
- case EVENT_T_DEATH:
- case EVENT_T_EVADE:
- case EVENT_T_REACHED_HOME:
- {
- if (temp.event_flags & EFLAG_REPEATABLE)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u has EFLAG_REPEATABLE set. Event can never be repeatable. Removing flag for event %u.", temp.creature_id, i);
- temp.event_flags &= ~EFLAG_REPEATABLE;
- }
-
- break;
- }
-
- case EVENT_T_RECEIVE_EMOTE:
- {
- if (!sEmotesTextStore.LookupEntry(temp.receive_emote.emoteId))
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u using event %u: param1 (EmoteTextId: %u) are not valid.", temp.creature_id, i, temp.receive_emote.emoteId);
- continue;
- }
- if (temp.receive_emote.condition)
- {
- Condition cond;
- cond.ConditionType = ConditionTypes(temp.receive_emote.condition);
- cond.ConditionValue1 = temp.receive_emote.conditionValue1;
- cond.ConditionValue2 = temp.receive_emote.conditionValue2;
- if (!sConditionMgr->isConditionTypeValid(&cond))
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u using event %u: param2 (Condition: %u) are not valid.", temp.creature_id, i, temp.receive_emote.condition);
- continue;
- }
- }
-
- if (!(temp.event_flags & EFLAG_REPEATABLE))
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u using event %u: EFLAG_REPEATABLE not set. Event must always be repeatable. Flag applied.", temp.creature_id, i);
- temp.event_flags |= EFLAG_REPEATABLE;
- }
-
- break;
- }
-
- case EVENT_T_BUFFED:
- case EVENT_T_TARGET_BUFFED:
- {
- SpellInfo const* spell = sSpellMgr->GetSpellInfo(temp.buffed.spellId);
- if (!spell)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u has non-existant SpellID(%u) defined in event %u.", temp.creature_id, temp.spell_hit.spellId, i);
- continue;
- }
- if (temp.buffed.repeatMax < temp.buffed.repeatMin)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
- break;
- }
-
- default:
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u using not checked at load event (%u) in event %u. Need check code update?", temp.creature_id, temp.event_id, i);
- break;
- }
-
- for (uint32 j = 0; j < MAX_ACTIONS; j++)
- {
- uint16 action_type = fields[10+(j*4)].GetUInt8();
- if (action_type >= ACTION_T_END)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u has incorrect action type (%u), replace by ACTION_T_NONE.", i, j+1, action_type);
- temp.action[j].type = ACTION_T_NONE;
- continue;
- }
-
- CreatureEventAI_Action& action = temp.action[j];
-
- action.type = EventAI_ActionType(action_type);
- action.raw.param1 = fields[11+(j*4)].GetInt32();
- action.raw.param2 = fields[12+(j*4)].GetInt32();
- action.raw.param3 = fields[13+(j*4)].GetInt32();
-
- //Report any errors in actions
- switch (action.type)
- {
- case ACTION_T_NONE:
- break;
- case ACTION_T_TEXT:
- {
- if (action.text.TextId1 < 0)
- {
- if (m_CreatureEventAI_TextMap.find(action.text.TextId1) == m_CreatureEventAI_TextMap.end())
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param1 refrences non-existing entry in texts table.", i, j+1);
- }
- if (action.text.TextId2 < 0)
- {
- if (m_CreatureEventAI_TextMap.find(action.text.TextId2) == m_CreatureEventAI_TextMap.end())
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param2 refrences non-existing entry in texts table.", i, j+1);
-
- if (!action.text.TextId1)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u has param2, but param1 is not set. Required for randomized text.", i, j+1);
- }
- if (action.text.TextId3 < 0)
- {
- if (m_CreatureEventAI_TextMap.find(action.text.TextId3) == m_CreatureEventAI_TextMap.end())
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param3 refrences non-existing entry in texts table.", i, j+1);
-
- if (!action.text.TextId1 || !action.text.TextId2)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u has param3, but param1 and/or param2 is not set. Required for randomized text.", i, j+1);
- }
- break;
- }
- case ACTION_T_SET_FACTION:
- if (action.set_faction.factionId !=0 && !sFactionStore.LookupEntry(action.set_faction.factionId))
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existent FactionId %u.", i, j+1, action.set_faction.factionId);
- action.set_faction.factionId = 0;
- }
- break;
- case ACTION_T_MORPH_TO_ENTRY_OR_MODEL:
- if (action.morph.creatureId !=0 || action.morph.modelId !=0)
- {
- if (action.morph.creatureId && !sObjectMgr->GetCreatureTemplate(action.morph.creatureId))
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existant Creature entry %u.", i, j+1, action.morph.creatureId);
- action.morph.creatureId = 0;
- }
-
- if (action.morph.modelId)
- {
- if (action.morph.creatureId)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u have unused ModelId %u with also set creature id %u.", i, j+1, action.morph.modelId, action.morph.creatureId);
- action.morph.modelId = 0;
- }
- else if (!sCreatureDisplayInfoStore.LookupEntry(action.morph.modelId))
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existant ModelId %u.", i, j+1, action.morph.modelId);
- action.morph.modelId = 0;
- }
- }
- }
- break;
- case ACTION_T_SOUND:
- if (!sSoundEntriesStore.LookupEntry(action.sound.soundId))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existant SoundID %u.", i, j+1, action.sound.soundId);
- break;
- case ACTION_T_EMOTE:
- if (!sEmotesStore.LookupEntry(action.emote.emoteId))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param1 (EmoteId: %u) are not valid.", i, j+1, action.emote.emoteId);
- break;
- case ACTION_T_RANDOM_SOUND:
- if (!sSoundEntriesStore.LookupEntry(action.random_sound.soundId1))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param1 uses non-existant SoundID %u.", i, j+1, action.random_sound.soundId1);
- if (action.random_sound.soundId2 >= 0 && !sSoundEntriesStore.LookupEntry(action.random_sound.soundId2))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param2 uses non-existant SoundID %u.", i, j+1, action.random_sound.soundId2);
- if (action.random_sound.soundId3 >= 0 && !sSoundEntriesStore.LookupEntry(action.random_sound.soundId3))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param3 uses non-existant SoundID %u.", i, j+1, action.random_sound.soundId3);
- break;
- case ACTION_T_RANDOM_EMOTE:
- if (!sEmotesStore.LookupEntry(action.random_emote.emoteId1))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param1 (EmoteId: %u) are not valid.", i, j+1, action.random_emote.emoteId1);
- if (action.random_emote.emoteId2 >= 0 && !sEmotesStore.LookupEntry(action.random_emote.emoteId2))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param2 (EmoteId: %u) are not valid.", i, j+1, action.random_emote.emoteId2);
- if (action.random_emote.emoteId3 >= 0 && !sEmotesStore.LookupEntry(action.random_emote.emoteId3))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param3 (EmoteId: %u) are not valid.", i, j+1, action.random_emote.emoteId3);
- break;
- case ACTION_T_CAST:
- {
- const SpellInfo* spell = sSpellMgr->GetSpellInfo(action.cast.spellId);
- if (!spell)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existent SpellID %u.", i, j+1, action.cast.spellId);
- /* FIXME: temp.raw.param3 not have event tipes with recovery time in it....
- else
- {
- if (spell->RecoveryTime > 0 && temp.event_flags & EFLAG_REPEATABLE)
- {
- //output as debug for now, also because there's no general rule all spells have RecoveryTime
- if (temp.event_param3 < spell->RecoveryTime)
- TC_LOG_DEBUG("CreatureEventAI: Event %u Action %u uses SpellID %u but cooldown is longer(%u) than minumum defined in event param3(%u).", i, j+1, action.cast.spellId, spell->RecoveryTime, temp.event_param3);
- }
- }
- */
-
- //Cast is always triggered if target is forced to cast on self
- if (action.cast.castFlags & CAST_FORCE_TARGET_SELF)
- action.cast.castFlags |= CAST_TRIGGERED;
-
- if (action.cast.target >= TARGET_T_END)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1);
- break;
- }
- case ACTION_T_SUMMON:
- if (!sObjectMgr->GetCreatureTemplate(action.summon.creatureId))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existent creature entry %u.", i, j+1, action.summon.creatureId);
-
- if (action.summon.target >= TARGET_T_END)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1);
- break;
- case ACTION_T_THREAT_SINGLE_PCT:
- if (std::abs(action.threat_single_pct.percent) > 100)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses invalid percent value %u.", i, j+1, action.threat_single_pct.percent);
- if (action.threat_single_pct.target >= TARGET_T_END)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1);
- break;
- case ACTION_T_THREAT_ALL_PCT:
- if (std::abs(action.threat_all_pct.percent) > 100)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses invalid percent value %u.", i, j+1, action.threat_all_pct.percent);
- break;
- case ACTION_T_QUEST_EVENT:
- if (Quest const* qid = sObjectMgr->GetQuestTemplate(action.quest_event.questId))
- {
- if (!qid->HasSpecialFlag(QUEST_SPECIAL_FLAGS_EXPLORATION_OR_EVENT))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u. SpecialFlags for quest entry %u does not include |2, Action will not have any effect.", i, j+1, action.quest_event.questId);
- }
- else
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existent Quest entry %u.", i, j+1, action.quest_event.questId);
-
- if (action.quest_event.target >= TARGET_T_END)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1);
-
- break;
- case ACTION_T_SET_UNIT_FIELD:
- if (action.set_unit_field.field < OBJECT_END || action.set_unit_field.field >= UNIT_END)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param1 (UNIT_FIELD*). Index out of range for intended use.", i, j+1);
- if (action.set_unit_field.target >= TARGET_T_END)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1);
- break;
- case ACTION_T_SET_UNIT_FLAG:
- case ACTION_T_REMOVE_UNIT_FLAG:
- if (action.unit_flag.target >= TARGET_T_END)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1);
- break;
- case ACTION_T_SET_PHASE:
- if (action.set_phase.phase >= MAX_PHASE)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u attempts to set phase >= %u. Phase mask cannot be used past phase %u.", i, j+1, MAX_PHASE, MAX_PHASE-1);
- break;
- case ACTION_T_INC_PHASE:
- if (action.set_inc_phase.step == 0)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u is incrementing phase by 0. Was this intended?", i, j+1);
- else if (std::abs(action.set_inc_phase.step) > MAX_PHASE-1)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u is change phase by too large for any use %i.", i, j+1, action.set_inc_phase.step);
- break;
- case ACTION_T_QUEST_EVENT_ALL:
- if (Quest const* qid = sObjectMgr->GetQuestTemplate(action.quest_event_all.questId))
- {
- if (!qid->HasSpecialFlag(QUEST_SPECIAL_FLAGS_EXPLORATION_OR_EVENT))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u. SpecialFlags for quest entry %u does not include |2, Action will not have any effect.", i, j+1, action.quest_event_all.questId);
- }
- else
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existent Quest entry %u.", i, j+1, action.quest_event_all.questId);
- break;
- case ACTION_T_REMOVEAURASFROMSPELL:
- if (!sSpellMgr->GetSpellInfo(action.remove_aura.spellId))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existent SpellID %u.", i, j+1, action.remove_aura.spellId);
- if (action.remove_aura.target >= TARGET_T_END)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1);
- break;
- case ACTION_T_RANDOM_PHASE: //PhaseId1, PhaseId2, PhaseId3
- if (action.random_phase.phase1 >= MAX_PHASE)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u attempts to set phase1 >= %u. Phase mask cannot be used past phase %u.", i, j+1, MAX_PHASE, MAX_PHASE-1);
- if (action.random_phase.phase2 >= MAX_PHASE)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u attempts to set phase2 >= %u. Phase mask cannot be used past phase %u.", i, j+1, MAX_PHASE, MAX_PHASE-1);
- if (action.random_phase.phase3 >= MAX_PHASE)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u attempts to set phase3 >= %u. Phase mask cannot be used past phase %u.", i, j+1, MAX_PHASE, MAX_PHASE-1);
- break;
- case ACTION_T_RANDOM_PHASE_RANGE: //PhaseMin, PhaseMax
- if (action.random_phase_range.phaseMin >= MAX_PHASE)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u attempts to set phaseMin >= %u. Phase mask cannot be used past phase %u.", i, j+1, MAX_PHASE, MAX_PHASE-1);
- if (action.random_phase_range.phaseMin >= MAX_PHASE)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u attempts to set phaseMax >= %u. Phase mask cannot be used past phase %u.", i, j+1, MAX_PHASE, MAX_PHASE-1);
- if (action.random_phase_range.phaseMin >= action.random_phase_range.phaseMax)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u attempts to set phaseMax <= phaseMin.", i, j+1);
- std::swap(action.random_phase_range.phaseMin, action.random_phase_range.phaseMax);
- // equal case processed at call
- }
- break;
- case ACTION_T_KILLED_MONSTER:
- if (!sObjectMgr->GetCreatureTemplate(action.killed_monster.creatureId))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existant creature entry %u.", i, j+1, action.killed_monster.creatureId);
- if (action.killed_monster.target >= TARGET_T_END)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1);
- break;
- case ACTION_T_SET_INST_DATA:
- if (!(temp.event_flags & EFLAG_DIFFICULTY_ALL))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u. Cannot set instance data without difficulty event flags.", i, j+1);
- if (action.set_inst_data.value > 4/*SPECIAL*/)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u attempts to set instance data above encounter state 4. Custom case?", i, j+1);
- break;
- case ACTION_T_SET_INST_DATA64:
- if (!(temp.event_flags & EFLAG_DIFFICULTY_ALL))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u. Cannot set instance data without difficulty event flags.", i, j+1);
- if (action.set_inst_data64.target >= TARGET_T_END)
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1);
- break;
- case ACTION_T_UPDATE_TEMPLATE:
- if (!sObjectMgr->GetCreatureTemplate(action.update_template.creatureId))
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existant creature entry %u.", i, j+1, action.update_template.creatureId);
- break;
- case ACTION_T_SET_SHEATH:
- if (action.set_sheath.sheath >= MAX_SHEATH_STATE)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses wrong sheath state %u.", i, j+1, action.set_sheath.sheath);
- action.set_sheath.sheath = SHEATH_STATE_UNARMED;
- }
- break;
- case ACTION_T_SET_INVINCIBILITY_HP_LEVEL:
- if (action.invincibility_hp_level.is_percent)
- {
- if (action.invincibility_hp_level.hp_level > 100)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses wrong percent value %u.", i, j+1, action.invincibility_hp_level.hp_level);
- action.invincibility_hp_level.hp_level = 100;
- }
- }
- break;
- case ACTION_T_MOUNT_TO_ENTRY_OR_MODEL:
- if (action.mount.creatureId != 0 || action.mount.modelId != 0)
- {
- if (action.mount.creatureId && !sObjectMgr->GetCreatureTemplate(action.mount.creatureId))
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses nonexistent Creature entry %u.", i, j+1, action.mount.creatureId);
- action.morph.creatureId = 0;
- }
-
- if (action.mount.modelId)
- {
- if (action.mount.creatureId)
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u have unused ModelId %u with also set creature id %u.", i, j+1, action.mount.modelId, action.mount.creatureId);
- action.mount.modelId = 0;
- }
- else if (!sCreatureDisplayInfoStore.LookupEntry(action.mount.modelId))
- {
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses nonexistent ModelId %u.", i, j+1, action.mount.modelId);
- action.mount.modelId = 0;
- }
- }
- }
- break;
- case ACTION_T_EVADE: //No Params
- case ACTION_T_FLEE_FOR_ASSIST: //No Params
- case ACTION_T_DIE: //No Params
- case ACTION_T_ZONE_COMBAT_PULSE: //No Params
- case ACTION_T_FORCE_DESPAWN: //No Params
- case ACTION_T_AUTO_ATTACK: //AllowAttackState (0 = stop attack, anything else means continue attacking)
- case ACTION_T_COMBAT_MOVEMENT: //AllowCombatMovement (0 = stop combat based movement, anything else continue attacking)
- case ACTION_T_RANGED_MOVEMENT: //Distance, Angle
- case ACTION_T_CALL_FOR_HELP: //Distance
- break;
-
- case ACTION_T_RANDOM_SAY:
- case ACTION_T_RANDOM_YELL:
- case ACTION_T_RANDOM_TEXTEMOTE:
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u currently unused ACTION type. Did you forget to update database?", i, j+1);
- break;
-
- case ACTION_T_MOVE_RANDOM_POINT:
- case ACTION_T_SET_STAND_STATE:
- case ACTION_T_SET_PHASE_MASK:
- case ACTION_T_SET_VISIBILITY:
- case ACTION_T_SET_ACTIVE:
- case ACTION_T_SET_AGGRESSIVE:
- case ACTION_T_ATTACK_START_PULSE:
- case ACTION_T_SUMMON_GO:
- break;
-
- default:
- TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u have currently not checked at load action type (%u). Need check code update?", i, j+1, action.type);
- break;
- }
- }
-
- //Add to list
- m_CreatureEventAI_Event_Map[creature_id].push_back(temp);
- ++count;
-
- }
- while (result->NextRow());
-
- TC_LOG_INFO("server.loading", ">> Loaded %u CreatureEventAI scripts in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
-}
diff --git a/src/server/game/AI/EventAI/CreatureEventAIMgr.h b/src/server/game/AI/EventAI/CreatureEventAIMgr.h
deleted file mode 100644
index 577958b6f5b..00000000000
--- a/src/server/game/AI/EventAI/CreatureEventAIMgr.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef TRINITY_CREATURE_EAI_MGR_H
-#define TRINITY_CREATURE_EAI_MGR_H
-
-#include "Common.h"
-#include "CreatureEventAI.h"
-
-class CreatureEventAIMgr
-{
- friend class ACE_Singleton<CreatureEventAIMgr, ACE_Null_Mutex>;
-
- private:
- CreatureEventAIMgr(){ }
- ~CreatureEventAIMgr(){ }
-
- public:
- void LoadCreatureEventAI_Texts();
- void LoadCreatureEventAI_Scripts();
-
- CreatureEventAI_Event_Map const& GetCreatureEventAIMap() const { return m_CreatureEventAI_Event_Map; }
- CreatureEventAI_TextMap const& GetCreatureEventAITextMap() const { return m_CreatureEventAI_TextMap; }
-
- private:
- CreatureEventAI_Event_Map m_CreatureEventAI_Event_Map;
- CreatureEventAI_TextMap m_CreatureEventAI_TextMap;
-};
-
-#define sEventAIMgr ACE_Singleton<CreatureEventAIMgr, ACE_Null_Mutex>::instance()
-#endif
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp
index ae3f7078f5c..c367ba0a5ed 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.cpp
+++ b/src/server/game/AI/SmartScripts/SmartAI.cpp
@@ -460,7 +460,6 @@ void SmartAI::EnterEvadeMode()
me->LoadCreaturesAddon();
me->SetLootRecipient(NULL);
me->ResetPlayerDamageReq();
-
GetScript()->ProcessEventsFor(SMART_EVENT_EVADE);//must be after aura clear so we can cast spells from db
SetRun(mRun);
@@ -588,6 +587,9 @@ int SmartAI::Permissible(const Creature* creature)
void SmartAI::JustReachedHome()
{
GetScript()->ProcessEventsFor(SMART_EVENT_REACHED_HOME);
+
+ if (!UpdateVictim() && me->GetMotionMaster()->GetCurrentMovementGeneratorType() == IDLE_MOTION_TYPE && me->GetWaypointPath())
+ me->ToCreature()->GetMotionMaster()->MovePath(me->GetWaypointPath(), true);
}
void SmartAI::EnterCombat(Unit* enemy)
@@ -787,6 +789,8 @@ void SmartAI::SetCombatMove(bool on)
}
else
{
+ me->GetMotionMaster()->MovementExpired();
+ me->GetMotionMaster()->Clear(true);
me->StopMoving();
me->GetMotionMaster()->MoveIdle();
}
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index d2d5027ce7d..7555471e091 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -516,7 +516,26 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
if (e.action.cast.flags & SMARTCAST_INTERRUPT_PREVIOUS)
me->InterruptNonMeleeSpells(false);
+ if (e.action.cast.flags & SMARTCAST_COMBAT_MOVE)
+ {
+ // If cast flag SMARTCAST_COMBAT_MOVE is set combat movement will not be allowed
+ // unless target is outside spell range, out of mana, or LOS.
+
+ bool _allowMove = false;
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(e.action.cast.spell);
+ int32 mana = me->GetPower(POWER_MANA);
+
+ if (me->GetDistance((*itr)->ToUnit()) > spellInfo->GetMaxRange(true) ||
+ me->GetDistance((*itr)->ToUnit()) < spellInfo->GetMinRange(true) ||
+ !me->ToUnit()->IsWithinLOSInMap((*itr)->ToUnit()) ||
+ mana < spellInfo->CalcPowerCost(me, spellInfo->GetSchoolMask()))
+ _allowMove = true;
+
+ CAST_AI(SmartAI, me->AI())->SetCombatMove(_allowMove);
+ }
+
me->CastSpell((*itr)->ToUnit(), e.action.cast.spell, (e.action.cast.flags & SMARTCAST_TRIGGERED));
+
TC_LOG_DEBUG("scripts.ai", "SmartScript::ProcessAction:: SMART_ACTION_CAST:: Creature %u casts spell %u on target %u with castflags %u",
me->GetGUIDLow(), e.action.cast.spell, (*itr)->GetGUIDLow(), e.action.cast.flags);
}
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
index 35abdcc47f0..d6bf318b8ac 100644
--- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h
+++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
@@ -1283,7 +1283,8 @@ enum SmartCastFlags
//SMARTCAST_FORCE_CAST = 0x04, //Forces cast even if creature is out of mana or out of range
//SMARTCAST_NO_MELEE_IF_OOM = 0x08, //Prevents creature from entering melee if out of mana or out of range
//SMARTCAST_FORCE_TARGET_SELF = 0x10, //Forces the target to cast this spell on itself
- SMARTCAST_AURA_NOT_PRESENT = 0x20 //Only casts the spell if the target does not have an aura from the spell
+ SMARTCAST_AURA_NOT_PRESENT = 0x20, //Only casts the spell if the target does not have an aura from the spell
+ SMARTCAST_COMBAT_MOVE = 0x40 //Prevents combat movement if cast successful. Allows movement on range, OOM, LOS
};
// one line in DB is one event
diff --git a/src/server/game/Accounts/AccountMgr.cpp b/src/server/game/Accounts/AccountMgr.cpp
index b80df5018e4..4c71a044488 100644
--- a/src/server/game/Accounts/AccountMgr.cpp
+++ b/src/server/game/Accounts/AccountMgr.cpp
@@ -459,7 +459,7 @@ void AccountMgr::LoadRBAC()
{
Field* field = result->Fetch();
uint32 newId = field[0].GetUInt32();
- if (secId != newId)
+ if (secId != newId || permissions == NULL)
{
secId = newId;
permissions = &_defaultPermissions[secId];
diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h
index 1bc135bc8e0..b18996f2af0 100644
--- a/src/server/game/Accounts/RBAC.h
+++ b/src/server/game/Accounts/RBAC.h
@@ -517,7 +517,7 @@ enum RBACPermissions
RBAC_PERM_COMMAND_RELOAD_ALL = 611,
RBAC_PERM_COMMAND_RELOAD_ALL_ACHIEVEMENT = 612,
RBAC_PERM_COMMAND_RELOAD_ALL_AREA = 613,
- RBAC_PERM_COMMAND_RELOAD_ALL_EVENTAI = 614,
+ RBAC_PERM_UNUSED_614 = 614, // unused
RBAC_PERM_COMMAND_RELOAD_ALL_GOSSIP = 615,
RBAC_PERM_COMMAND_RELOAD_ALL_ITEM = 616,
RBAC_PERM_COMMAND_RELOAD_ALL_LOCALES = 617,
@@ -534,8 +534,8 @@ enum RBACPermissions
RBAC_PERM_COMMAND_RELOAD_COMMAND = 628,
RBAC_PERM_COMMAND_RELOAD_CONDITIONS = 629,
RBAC_PERM_COMMAND_RELOAD_CONFIG = 630,
- RBAC_PERM_COMMAND_RELOAD_CREATURE_AI_SCRIPTS = 631,
- RBAC_PERM_COMMAND_RELOAD_CREATURE_AI_TEXTS = 632,
+ RBAC_PERM_UNUSED_631 = 631, // unused
+ RBAC_PERM_UNUSED_632 = 632, // unused
RBAC_PERM_COMMAND_RELOAD_CREATURE_LINKED_RESPAWN = 633,
RBAC_PERM_COMMAND_RELOAD_CREATURE_LOOT_TEMPLATE = 634,
RBAC_PERM_COMMAND_RELOAD_CREATURE_ONKILL_REPUTATION = 635,
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
index c4e8ba49ba9..aa3568a62d5 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
@@ -558,8 +558,12 @@ void BattlegroundIC::UpdateNodeWorldState(ICNodePoint* nodePoint)
uint32 worldstate = nodePoint->worldStates[nodePoint->nodeState];
// with this we are sure we dont bug the client
- for (uint8 i = 0; i < 4; ++i)
+ for (uint8 i = 0; i < 5; ++i)
+ {
+ if (nodePoint->worldStates[i] == worldstate)
+ continue;
UpdateWorldState(nodePoint->worldStates[i], 0);
+ }
UpdateWorldState(worldstate, 1);
}
diff --git a/src/server/game/CMakeLists.txt b/src/server/game/CMakeLists.txt
index f455610666e..be3997243e4 100644
--- a/src/server/game/CMakeLists.txt
+++ b/src/server/game/CMakeLists.txt
@@ -130,7 +130,6 @@ include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/Addons
${CMAKE_CURRENT_SOURCE_DIR}/AI
${CMAKE_CURRENT_SOURCE_DIR}/AI/CoreAI
- ${CMAKE_CURRENT_SOURCE_DIR}/AI/EventAI
${CMAKE_CURRENT_SOURCE_DIR}/AI/ScriptedAI
${CMAKE_CURRENT_SOURCE_DIR}/AI/SmartScripts
${CMAKE_CURRENT_SOURCE_DIR}/AuctionHouse
diff --git a/src/server/game/Chat/ChatLink.h b/src/server/game/Chat/ChatLink.h
index 57785fbe1a0..c77fcf7ad76 100644
--- a/src/server/game/Chat/ChatLink.h
+++ b/src/server/game/Chat/ChatLink.h
@@ -56,7 +56,10 @@ protected:
class ItemChatLink : public ChatLink
{
public:
- ItemChatLink() : ChatLink(), _item(NULL), _suffix(NULL), _property(NULL) { }
+ ItemChatLink() : ChatLink(), _item(NULL), _suffix(NULL), _property(NULL)
+ {
+ memset(_data, 0, sizeof(_data));
+ }
virtual bool Initialize(std::istringstream& iss);
virtual bool ValidateName(char* buffer, const char* context);
@@ -98,7 +101,10 @@ protected:
class AchievementChatLink : public ChatLink
{
public:
- AchievementChatLink() : ChatLink(), _guid(0), _achievement(NULL) { }
+ AchievementChatLink() : ChatLink(), _guid(0), _achievement(NULL)
+ {
+ memset(_data, 0, sizeof(_data));
+ }
virtual bool Initialize(std::istringstream& iss);
virtual bool ValidateName(char* buffer, const char* context);
diff --git a/src/server/game/Combat/UnitEvents.h b/src/server/game/Combat/UnitEvents.h
index 0e568d139a8..8bb7d95a384 100644
--- a/src/server/game/Combat/UnitEvents.h
+++ b/src/server/game/Combat/UnitEvents.h
@@ -93,13 +93,13 @@ class ThreatRefStatusChangeEvent : public UnitBaseEvent
};
ThreatManager* iThreatManager;
public:
- ThreatRefStatusChangeEvent(uint32 pType) : UnitBaseEvent(pType) { iHostileReference = NULL; }
+ ThreatRefStatusChangeEvent(uint32 pType) : UnitBaseEvent(pType), iThreatManager(NULL) { iHostileReference = NULL; }
- ThreatRefStatusChangeEvent(uint32 pType, HostileReference* pHostileReference) : UnitBaseEvent(pType) { iHostileReference = pHostileReference; }
+ ThreatRefStatusChangeEvent(uint32 pType, HostileReference* pHostileReference) : UnitBaseEvent(pType), iThreatManager(NULL) { iHostileReference = pHostileReference; }
- ThreatRefStatusChangeEvent(uint32 pType, HostileReference* pHostileReference, float pValue) : UnitBaseEvent(pType) { iHostileReference = pHostileReference; iFValue = pValue; }
+ ThreatRefStatusChangeEvent(uint32 pType, HostileReference* pHostileReference, float pValue) : UnitBaseEvent(pType), iThreatManager(NULL) { iHostileReference = pHostileReference; iFValue = pValue; }
- ThreatRefStatusChangeEvent(uint32 pType, HostileReference* pHostileReference, bool pValue) : UnitBaseEvent(pType) { iHostileReference = pHostileReference; iBValue = pValue; }
+ ThreatRefStatusChangeEvent(uint32 pType, HostileReference* pHostileReference, bool pValue) : UnitBaseEvent(pType), iThreatManager(NULL) { iHostileReference = pHostileReference; iBValue = pValue; }
int32 getIValue() const { return iIValue; }
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h
index 171d0fe8cc2..e976704c215 100644
--- a/src/server/game/DataStores/DBCEnums.h
+++ b/src/server/game/DataStores/DBCEnums.h
@@ -224,35 +224,35 @@ enum AchievementCategory
enum AreaFlags
{
- AREA_FLAG_UNK0 = 0x00000001, // Unknown
- AREA_FLAG_UNK1 = 0x00000002, // Razorfen Downs, Naxxramas and Acherus: The Ebon Hold (3.3.5a)
- AREA_FLAG_UNK2 = 0x00000004, // Only used for areas on map 571 (development before)
- AREA_FLAG_SLAVE_CAPITAL = 0x00000008, // city and city subsones
- AREA_FLAG_UNK3 = 0x00000010, // can't find common meaning
- AREA_FLAG_SLAVE_CAPITAL2 = 0x00000020, // slave capital city flag?
- AREA_FLAG_ALLOW_DUELS = 0x00000040, // allow to duel here
- AREA_FLAG_ARENA = 0x00000080, // arena, both instanced and world arenas
- AREA_FLAG_CAPITAL = 0x00000100, // main capital city flag
- AREA_FLAG_CITY = 0x00000200, // only for one zone named "City" (where it located?)
- AREA_FLAG_OUTLAND = 0x00000400, // expansion zones? (only Eye of the Storm not have this flag, but have 0x00004000 flag)
- AREA_FLAG_SANCTUARY = 0x00000800, // sanctuary area (PvP disabled)
- AREA_FLAG_NEED_FLY = 0x00001000, // Respawn alive at the graveyard without corpse
- AREA_FLAG_UNUSED1 = 0x00002000, // Unused in 3.3.5a
- AREA_FLAG_OUTLAND2 = 0x00004000, // expansion zones? (only Circle of Blood Arena not have this flag, but have 0x00000400 flag)
- AREA_FLAG_OUTDOOR_PVP = 0x00008000, // pvp objective area? (Death's Door also has this flag although it's no pvp object area)
- AREA_FLAG_ARENA_INSTANCE = 0x00010000, // used by instanced arenas only
- AREA_FLAG_UNUSED2 = 0x00020000, // Unused in 3.3.5a
- AREA_FLAG_CONTESTED_AREA = 0x00040000, // On PvP servers these areas are considered contested, even though the zone it is contained in is a Horde/Alliance territory.
- AREA_FLAG_UNK6 = 0x00080000, // Valgarde and Acherus: The Ebon Hold
- AREA_FLAG_LOWLEVEL = 0x00100000, // used for some starting areas with area_level <= 15
- AREA_FLAG_TOWN = 0x00200000, // small towns with Inn
- AREA_FLAG_UNK7 = 0x00400000, // Warsong Hold, Acherus: The Ebon Hold, New Agamand Inn, Vengeance Landing Inn, Sunreaver Pavilion (Something to do with team?)
- AREA_FLAG_UNK8 = 0x00800000, // Valgarde, Acherus: The Ebon Hold, Westguard Inn, Silver Covenant Pavilion (Something to do with team?)
- AREA_FLAG_WINTERGRASP = 0x01000000, // Wintergrasp and it's subzones
- AREA_FLAG_INSIDE = 0x02000000, // used for determinating spell related inside/outside questions in Map::IsOutdoors
- AREA_FLAG_OUTSIDE = 0x04000000, // used for determinating spell related inside/outside questions in Map::IsOutdoors
- AREA_FLAG_WINTERGRASP_2 = 0x08000000, // Can Hearth And Resurrect From Area
- AREA_FLAG_NO_FLY_ZONE = 0x20000000 // Marks zones where you cannot fly
+ AREA_FLAG_UNK0 = 0x00000001, // Unknown
+ AREA_FLAG_UNK1 = 0x00000002, // Razorfen Downs, Naxxramas and Acherus: The Ebon Hold (3.3.5a)
+ AREA_FLAG_UNK2 = 0x00000004, // Only used for areas on map 571 (development before)
+ AREA_FLAG_SLAVE_CAPITAL = 0x00000008, // city and city subsones
+ AREA_FLAG_UNK3 = 0x00000010, // can't find common meaning
+ AREA_FLAG_SLAVE_CAPITAL2 = 0x00000020, // slave capital city flag?
+ AREA_FLAG_ALLOW_DUELS = 0x00000040, // allow to duel here
+ AREA_FLAG_ARENA = 0x00000080, // arena, both instanced and world arenas
+ AREA_FLAG_CAPITAL = 0x00000100, // main capital city flag
+ AREA_FLAG_CITY = 0x00000200, // only for one zone named "City" (where it located?)
+ AREA_FLAG_OUTLAND = 0x00000400, // expansion zones? (only Eye of the Storm not have this flag, but have 0x00004000 flag)
+ AREA_FLAG_SANCTUARY = 0x00000800, // sanctuary area (PvP disabled)
+ AREA_FLAG_NEED_FLY = 0x00001000, // Respawn alive at the graveyard without corpse
+ AREA_FLAG_UNUSED1 = 0x00002000, // Unused in 3.3.5a
+ AREA_FLAG_OUTLAND2 = 0x00004000, // expansion zones? (only Circle of Blood Arena not have this flag, but have 0x00000400 flag)
+ AREA_FLAG_OUTDOOR_PVP = 0x00008000, // pvp objective area? (Death's Door also has this flag although it's no pvp object area)
+ AREA_FLAG_ARENA_INSTANCE = 0x00010000, // used by instanced arenas only
+ AREA_FLAG_UNUSED2 = 0x00020000, // Unused in 3.3.5a
+ AREA_FLAG_CONTESTED_AREA = 0x00040000, // On PvP servers these areas are considered contested, even though the zone it is contained in is a Horde/Alliance territory.
+ AREA_FLAG_UNK4 = 0x00080000, // Valgarde and Acherus: The Ebon Hold
+ AREA_FLAG_LOWLEVEL = 0x00100000, // used for some starting areas with area_level <= 15
+ AREA_FLAG_TOWN = 0x00200000, // small towns with Inn
+ AREA_FLAG_REST_ZONE_HORDE = 0x00400000, // Instead of using areatriggers, the zone will act as one for Horde players (Warsong Hold, Acherus: The Ebon Hold, New Agamand Inn, Vengeance Landing Inn, Sunreaver Pavilion, etc)
+ AREA_FLAG_REST_ZONE_ALLIANCE = 0x00800000, // Instead of using areatriggers, the zone will act as one for Alliance players (Valgarde, Acherus: The Ebon Hold, Westguard Inn, Silver Covenant Pavilion, etc)
+ AREA_FLAG_WINTERGRASP = 0x01000000, // Wintergrasp and it's subzones
+ AREA_FLAG_INSIDE = 0x02000000, // used for determinating spell related inside/outside questions in Map::IsOutdoors
+ AREA_FLAG_OUTSIDE = 0x04000000, // used for determinating spell related inside/outside questions in Map::IsOutdoors
+ AREA_FLAG_WINTERGRASP_2 = 0x08000000, // Can Hearth And Resurrect From Area
+ AREA_FLAG_NO_FLY_ZONE = 0x20000000 // Marks zones where you cannot fly
};
enum Difficulty
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 64e9d4a1c26..3c44c8e6035 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -64,6 +64,7 @@ GameObject::GameObject() : WorldObject(false), MapObject(),
lootingGroupLowGUID = 0;
ResetLootMode(); // restore default loot mode
+ m_stationaryPosition.Relocate(0.0f, 0.0f, 0.0f, 0.0f);
}
GameObject::~GameObject()
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index f03b95d0cc7..aeeb1d691f0 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -536,7 +536,10 @@ class MapObject
friend class ObjectGridLoader; //grid loader for loading creatures
protected:
- MapObject() : _moveState(MAP_OBJECT_CELL_MOVE_NONE) { }
+ MapObject() : _moveState(MAP_OBJECT_CELL_MOVE_NONE)
+ {
+ _newPosition.Relocate(0.0f, 0.0f, 0.0f, 0.0f);
+ }
private:
Cell _currentCell;
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index c61621f3a91..91e2e9f1834 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -15312,7 +15312,8 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver,
// cast spells after mark quest complete (some spells have quest completed state requirements in spell_area data)
if (quest->GetRewSpellCast() > 0)
{
- if (questGiver->isType(TYPEMASK_UNIT))
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(quest->GetRewSpellCast());
+ if (questGiver->isType(TYPEMASK_UNIT) && !spellInfo->HasEffect(SPELL_EFFECT_LEARN_SPELL))
{
if (Creature* creature = GetMap()->GetCreature(questGiver->GetGUID()))
creature->CastSpell(this, quest->GetRewSpellCast(), true);
@@ -15322,7 +15323,8 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver,
}
else if (quest->GetRewSpell() > 0)
{
- if (questGiver->isType(TYPEMASK_UNIT))
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(quest->GetRewSpell());
+ if (questGiver->isType(TYPEMASK_UNIT) && !spellInfo->HasEffect(SPELL_EFFECT_LEARN_SPELL))
{
if (Creature* creature = GetMap()->GetCreature(questGiver->GetGUID()))
creature->CastSpell(this, quest->GetRewSpell(), true);
@@ -19890,7 +19892,7 @@ void Player::UpdateSpeakTime()
}
}
else
- m_speakCount = 0;
+ m_speakCount = 1;
m_speakTime = current + sWorld->getIntConfig(CONFIG_CHATFLOOD_MESSAGE_DELAY);
}
@@ -20707,13 +20709,15 @@ void Player::RestoreSpellMods(Spell* spell, uint32 ownerAuraId, Aura* aura)
if (!spell || spell->m_appliedMods.empty())
return;
+ std::list<Aura*> aurasQueue;
+
for (uint8 i=0; i<MAX_SPELLMOD; ++i)
{
for (SpellModList::iterator itr = m_spellMods[i].begin(); itr != m_spellMods[i].end(); ++itr)
{
SpellModifier* mod = *itr;
- // spellmods without aura set cannot be charged
+ // Spellmods without aura set cannot be charged
if (!mod->ownerAura || !mod->ownerAura->IsUsingCharges())
continue;
@@ -20724,17 +20728,20 @@ void Player::RestoreSpellMods(Spell* spell, uint32 ownerAuraId, Aura* aura)
if (aura && mod->ownerAura != aura)
continue;
- // check if mod affected this spell
- // first, check if the mod aura applied at least one spellmod to this spell
+ // Check if mod affected this spell
+ // First, check if the mod aura applied at least one spellmod to this spell
Spell::UsedSpellMods::iterator iterMod = spell->m_appliedMods.find(mod->ownerAura);
if (iterMod == spell->m_appliedMods.end())
continue;
- // secondly, check if the current mod is one of the spellmods applied by the mod aura
+ // Second, check if the current mod is one of those applied by the mod aura
if (!(mod->mask & spell->m_spellInfo->SpellFamilyFlags))
continue;
- // remove from list
- spell->m_appliedMods.erase(iterMod);
+ // remove from list - This will be done after all mods have been gone through
+ // to ensure we iterate over all mods of an aura before removing said aura
+ // from applied mods (Else, an aura with two mods on the current spell would
+ // only see the first of its modifier restored)
+ aurasQueue.push_back(mod->ownerAura);
// add mod charges back to mod
if (mod->charges == -1)
@@ -20742,15 +20749,22 @@ void Player::RestoreSpellMods(Spell* spell, uint32 ownerAuraId, Aura* aura)
else
mod->charges++;
- // Do not set more spellmods than avalible
+ // Do not set more spellmods than available
if (mod->ownerAura->GetCharges() < mod->charges)
mod->charges = mod->ownerAura->GetCharges();
// Skip this check for now - aura charges may change due to various reason
- /// @todo trac these changes correctly
+ /// @todo track these changes correctly
//ASSERT (mod->ownerAura->GetCharges() <= mod->charges);
}
}
+
+ for (std::list<Aura*>::iterator itr = aurasQueue.begin(); itr != aurasQueue.end(); ++itr)
+ {
+ Spell::UsedSpellMods::iterator iterMod = spell->m_appliedMods.find(*itr);
+ if (iterMod != spell->m_appliedMods.end())
+ spell->m_appliedMods.erase(iterMod);
+ }
}
void Player::RestoreAllSpellMods(uint32 ownerAuraId, Aura* aura)
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 35a3f5f10d4..6aa19b5395a 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -251,7 +251,7 @@ typedef std::list<PlayerCreateInfoAction> PlayerCreateInfoActions;
struct PlayerInfo
{
// existence checked by displayId != 0
- PlayerInfo() : displayId_m(0), displayId_f(0), levelInfo(NULL) { }
+ PlayerInfo() : mapId(0), areaId(0), positionX(0.0f), positionY(0.0f), positionZ(0.0f), orientation(0.0f), displayId_m(0), displayId_f(0), levelInfo(NULL) { }
uint32 mapId;
uint32 areaId;
diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp
index ddb0775dc01..386a36ae1f0 100644
--- a/src/server/game/Entities/Transport/Transport.cpp
+++ b/src/server/game/Entities/Transport/Transport.cpp
@@ -33,7 +33,8 @@
#include "CellImpl.h"
Transport::Transport() : GameObject(),
- _transportInfo(NULL), _isMoving(true), _pendingStop(false)
+ _transportInfo(NULL), _isMoving(true), _pendingStop(false),
+ _triggeredArrivalEvent(false), _triggeredDepartureEvent(false)
{
m_updateFlag = UPDATEFLAG_TRANSPORT | UPDATEFLAG_LOWGUID | UPDATEFLAG_STATIONARY_POSITION | UPDATEFLAG_ROTATION;
}
diff --git a/src/server/game/Entities/Transport/Transport.h b/src/server/game/Entities/Transport/Transport.h
index 0145ec608ae..e290a5d5e00 100644
--- a/src/server/game/Entities/Transport/Transport.h
+++ b/src/server/game/Entities/Transport/Transport.h
@@ -90,7 +90,6 @@ class Transport : public GameObject, public TransportBase
KeyFrameVec::const_iterator _currentFrame;
KeyFrameVec::const_iterator _nextFrame;
- uint32 _moveTimer;
TimeTrackerSmall _positionChangeTimer;
bool _isMoving;
bool _pendingStop;
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 54db2da73df..38785018768 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -957,6 +957,8 @@ void Unit::CastSpell(GameObject* go, uint32 spellId, bool triggered, Item* castI
uint32 Unit::SpellNonMeleeDamageLog(Unit* victim, uint32 spellID, uint32 damage)
{
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellID);
+ if (!spellInfo)
+ return 0;
SpellNonMeleeDamage damageInfo(this, victim, spellInfo->Id, spellInfo->SchoolMask);
damage = SpellDamageBonusDone(victim, spellInfo, damage, SPELL_DIRECT_DAMAGE);
damage = victim->SpellDamageBonusTaken(this, spellInfo, damage, SPELL_DIRECT_DAMAGE);
@@ -13607,9 +13609,19 @@ void CharmInfo::InitEmptyActionBar(bool withAttack)
void CharmInfo::InitPossessCreateSpells()
{
- InitEmptyActionBar();
if (_unit->GetTypeId() == TYPEID_UNIT)
{
+ // Adding switch until better way is found. Malcrom
+ // Adding entrys to this switch will prevent COMMAND_ATTACK being added to pet bar.
+ switch (_unit->GetEntry())
+ {
+ case 23575: // Mindless Abomination
+ break;
+ default:
+ InitEmptyActionBar();
+ break;
+ }
+
for (uint32 i = 0; i < CREATURE_MAX_SPELLS; ++i)
{
uint32 spellId = _unit->ToCreature()->m_spells[i];
@@ -13623,6 +13635,8 @@ void CharmInfo::InitPossessCreateSpells()
}
}
}
+ else
+ InitEmptyActionBar();
}
void CharmInfo::InitCharmCreateSpells()
diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp
index e1d6a2f3d9e..d5ab2057d81 100755
--- a/src/server/game/Entities/Vehicle/Vehicle.cpp
+++ b/src/server/game/Entities/Vehicle/Vehicle.cpp
@@ -102,7 +102,7 @@ void Vehicle::Install()
if (!spellInfo)
continue;
- if (spellInfo->PowerType == POWER_ENERGY)
+ if (spellInfo->PowerType == POWER_ENERGY && spellInfo->CalcPowerCost(_me, spellInfo->GetSchoolMask()) > 0)
{
_me->setPowerType(POWER_ENERGY);
_me->SetMaxPower(POWER_ENERGY, 100);
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 8ebcc17df16..3d56225bc00 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -234,7 +234,8 @@ ObjectMgr::ObjectMgr():
_hiGoGuid(1),
_hiDoGuid(1),
_hiCorpseGuid(1),
- _hiMoTransGuid(1)
+ _hiMoTransGuid(1),
+ DBCLocaleIndex(LOCALE_enUS)
{
for (uint8 i = 0; i < MAX_CLASSES; ++i)
{
@@ -1411,6 +1412,11 @@ bool ObjectMgr::SetCreatureLinkedRespawn(uint32 guidLow, uint32 linkedGuidLow)
}
const CreatureData* slave = GetCreatureData(linkedGuidLow);
+ if (!slave)
+ {
+ TC_LOG_ERROR("sql.sql", "Creature '%u' linking to non-existent creature '%u'.", guidLow, linkedGuidLow);
+ return false;
+ }
const MapEntry* const map = sMapStore.LookupEntry(master->mapid);
if (!map || !map->Instanceable() || (master->mapid != slave->mapid))
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index fa0f0e76e46..bf835ed6c4e 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -457,7 +457,7 @@ typedef std::pair<QuestRelations::const_iterator, QuestRelations::const_iterator
struct PetLevelInfo
{
- PetLevelInfo() : health(0), mana(0) { for (uint8 i=0; i < MAX_STATS; ++i) stats[i] = 0; }
+ PetLevelInfo() : health(0), mana(0), armor(0) { for (uint8 i=0; i < MAX_STATS; ++i) stats[i] = 0; }
uint16 stats[MAX_STATS];
uint16 health;
diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp
index ad8cacbd3c0..d57308d359a 100644
--- a/src/server/game/Handlers/PetHandler.cpp
+++ b/src/server/game/Handlers/PetHandler.cpp
@@ -718,6 +718,12 @@ void WorldSession::HandlePetSpellAutocastOpcode(WorldPacket& recvPacket)
}
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellid);
+ if (!spellInfo)
+ {
+ TC_LOG_ERROR("network", "WORLD: unknown PET spell id %u", spellid);
+ return;
+ }
+
// do not add not learned spells/ passive spells
if (!pet->HasSpell(spellid) || !spellInfo->IsAutocastable())
return;
diff --git a/src/server/game/Maps/TransportMgr.cpp b/src/server/game/Maps/TransportMgr.cpp
index b84a8ddb217..11798201397 100644
--- a/src/server/game/Maps/TransportMgr.cpp
+++ b/src/server/game/Maps/TransportMgr.cpp
@@ -60,6 +60,12 @@ void TransportMgr::LoadTransportTemplates()
Field* fields = result->Fetch();
uint32 entry = fields[0].GetUInt32();
GameObjectTemplate const* goInfo = sObjectMgr->GetGameObjectTemplate(entry);
+ if (goInfo == NULL)
+ {
+ TC_LOG_ERROR("sql.sql", "Transport %u has no associated GameObjectTemplate from `gameobject_template` , skipped.", entry);
+ continue;
+ }
+
if (goInfo->moTransport.taxiPathId >= sTaxiPathNodesByPath.size())
{
TC_LOG_ERROR("sql.sql", "Transport %u (name: %s) has an invalid path specified in `gameobject_template`.`data0` (%u) field, skipped.", entry, goInfo->name.c_str(), goInfo->moTransport.taxiPathId);
diff --git a/src/server/game/Maps/TransportMgr.h b/src/server/game/Maps/TransportMgr.h
index 250a2c50bb1..205a614eabb 100644
--- a/src/server/game/Maps/TransportMgr.h
+++ b/src/server/game/Maps/TransportMgr.h
@@ -38,7 +38,7 @@ typedef UNORDERED_MAP<uint32, std::set<uint32> > TransportInstanceMap;
struct KeyFrame
{
- explicit KeyFrame(TaxiPathNodeEntry const& _node) : Node(&_node),
+ explicit KeyFrame(TaxiPathNodeEntry const& _node) : Index(0), Node(&_node),
DistSinceStop(-1.0f), DistUntilStop(-1.0f), DistFromPrev(-1.0f), TimeFrom(0.0f), TimeTo(0.0f),
Teleport(false), ArriveTime(0), DepartureTime(0), Spline(NULL), NextDistFromPrev(0.0f), NextArriveTime(0)
{
@@ -66,7 +66,7 @@ struct KeyFrame
struct TransportTemplate
{
- TransportTemplate() : pathTime(0), accelTime(0.0f), accelDist(0.0f) { }
+ TransportTemplate() : inInstance(false), pathTime(0), accelTime(0.0f), accelDist(0.0f), entry(0) { }
~TransportTemplate();
std::set<uint32> mapsUsed;
diff --git a/src/server/game/Movement/PathGenerator.cpp b/src/server/game/Movement/PathGenerator.cpp
index 85a08e49fd3..91ad6d2b676 100644
--- a/src/server/game/Movement/PathGenerator.cpp
+++ b/src/server/game/Movement/PathGenerator.cpp
@@ -33,6 +33,8 @@ PathGenerator::PathGenerator(const Unit* owner) :
_endPosition(G3D::Vector3::zero()), _sourceUnit(owner), _navMesh(NULL),
_navMeshQuery(NULL)
{
+ memset(_pathPolyRefs, 0, sizeof(_pathPolyRefs));
+
TC_LOG_DEBUG("maps", "++ PathGenerator::PathGenerator for %u \n", _sourceUnit->GetGUIDLow());
uint32 mapId = _sourceUnit->GetMapId();
diff --git a/src/server/game/Scripting/MapScripts.cpp b/src/server/game/Scripting/MapScripts.cpp
index e70c88d2181..41c18b850a1 100644
--- a/src/server/game/Scripting/MapScripts.cpp
+++ b/src/server/game/Scripting/MapScripts.cpp
@@ -499,7 +499,7 @@ void Map::ScriptsProcess()
if (step.script->FlagToggle.FieldID <= OBJECT_FIELD_ENTRY || step.script->FlagToggle.FieldID >= cSource->GetValuesCount())
TC_LOG_ERROR("scripts", "%s wrong field %u (max count: %u) in object (TypeId: %u, Entry: %u, GUID: %u) specified, skipping.",
step.script->GetDebugInfo().c_str(), step.script->FlagToggle.FieldID,
- source->GetValuesCount(), source->GetTypeId(), source->GetEntry(), source->GetGUIDLow());
+ cSource->GetValuesCount(), cSource->GetTypeId(), cSource->GetEntry(), cSource->GetGUIDLow());
else
cSource->SetFlag(step.script->FlagToggle.FieldID, step.script->FlagToggle.FieldValue);
}
@@ -513,7 +513,7 @@ void Map::ScriptsProcess()
if (step.script->FlagToggle.FieldID <= OBJECT_FIELD_ENTRY || step.script->FlagToggle.FieldID >= cSource->GetValuesCount())
TC_LOG_ERROR("scripts", "%s wrong field %u (max count: %u) in object (TypeId: %u, Entry: %u, GUID: %u) specified, skipping.",
step.script->GetDebugInfo().c_str(), step.script->FlagToggle.FieldID,
- source->GetValuesCount(), source->GetTypeId(), source->GetEntry(), source->GetGUIDLow());
+ cSource->GetValuesCount(), cSource->GetTypeId(), cSource->GetEntry(), cSource->GetGUIDLow());
else
cSource->RemoveFlag(step.script->FlagToggle.FieldID, step.script->FlagToggle.FieldValue);
}
diff --git a/src/server/game/Scripting/ScriptLoader.cpp b/src/server/game/Scripting/ScriptLoader.cpp
index 28fe883feb9..b486eb45915 100644
--- a/src/server/game/Scripting/ScriptLoader.cpp
+++ b/src/server/game/Scripting/ScriptLoader.cpp
@@ -321,7 +321,10 @@ void AddSC_boss_ptheradras();
void AddSC_instance_maraudon();
void AddSC_boss_onyxia(); //Onyxia's Lair
void AddSC_instance_onyxias_lair();
-void AddSC_boss_amnennar_the_coldbringer(); //Razorfen Downs
+void AddSC_boss_tuten_kash(); //Razorfen Downs
+void AddSC_boss_mordresh_fire_eye();
+void AddSC_boss_glutton();
+void AddSC_boss_amnennar_the_coldbringer();
void AddSC_razorfen_downs();
void AddSC_instance_razorfen_downs();
void AddSC_razorfen_kraul(); //Razorfen Kraul
@@ -1032,7 +1035,10 @@ void AddKalimdorScripts()
AddSC_instance_maraudon();
AddSC_boss_onyxia(); //Onyxia's Lair
AddSC_instance_onyxias_lair();
- AddSC_boss_amnennar_the_coldbringer(); //Razorfen Downs
+ AddSC_boss_tuten_kash(); //Razorfen Downs
+ AddSC_boss_mordresh_fire_eye();
+ AddSC_boss_glutton();
+ AddSC_boss_amnennar_the_coldbringer();
AddSC_razorfen_downs();
AddSC_instance_razorfen_downs();
AddSC_razorfen_kraul(); //Razorfen Kraul
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 994050b2374..241df021a6c 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -3221,6 +3221,9 @@ void SpellMgr::LoadSpellInfoCorrections()
case 28200: // Ascendance (Talisman of Ascendance trinket)
spellInfo->ProcCharges = 6;
break;
+ case 37408: // Oscillation Field
+ spellInfo->AttributesEx3 |= SPELL_ATTR3_STACK_FOR_DIFF_CASTERS;
+ break;
case 47201: // Everlasting Affliction
case 47202:
case 47203:
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index 83083778e32..d8dc19c5dcd 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -41,7 +41,6 @@
#include "ArenaTeamMgr.h"
#include "GuildMgr.h"
#include "TicketMgr.h"
-#include "CreatureEventAIMgr.h"
#include "SpellMgr.h"
#include "GroupMgr.h"
#include "Chat.h"
@@ -1692,12 +1691,6 @@ void World::SetInitialWorldSettings()
TC_LOG_INFO("server.loading", "Loading Scripts text locales..."); // must be after Load*Scripts calls
sObjectMgr->LoadDbScriptStrings();
- TC_LOG_INFO("server.loading", "Loading CreatureEventAI Texts...");
- sEventAIMgr->LoadCreatureEventAI_Texts();
-
- TC_LOG_INFO("server.loading", "Loading CreatureEventAI Scripts...");
- sEventAIMgr->LoadCreatureEventAI_Scripts();
-
TC_LOG_INFO("server.loading", "Loading spell script names...");
sObjectMgr->LoadSpellScriptNames();
@@ -3018,16 +3011,6 @@ void World::LoadDBVersion()
m_DBVersion = "Unknown world database.";
}
-void World::ProcessStartEvent()
-{
- isEventKillStart = true;
-}
-
-void World::ProcessStopEvent()
-{
- isEventKillStart = false;
-}
-
void World::UpdateAreaDependentAuras()
{
SessionMap::const_iterator itr;
diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
index 9435fa8aa94..9422566b707 100644
--- a/src/server/game/World/World.h
+++ b/src/server/game/World/World.h
@@ -731,12 +731,6 @@ class World
void UpdateAreaDependentAuras();
- void ProcessStartEvent();
- void ProcessStopEvent();
- bool GetEventKill() const { return isEventKillStart; }
-
- bool isEventKillStart;
-
CharacterNameData const* GetCharacterNameData(uint32 guid) const;
void AddCharacterNameData(uint32 guid, std::string const& name, uint8 gender, uint8 race, uint8 playerClass, uint8 level);
void UpdateCharacterNameData(uint32 guid, std::string const& name, uint8 gender = GENDER_NONE, uint8 race = RACE_NONE);
diff --git a/src/server/scripts/CMakeLists.txt b/src/server/scripts/CMakeLists.txt
index 5be634d2060..20e4c4c7fdd 100644
--- a/src/server/scripts/CMakeLists.txt
+++ b/src/server/scripts/CMakeLists.txt
@@ -73,7 +73,6 @@ include_directories(
${CMAKE_SOURCE_DIR}/src/server/game/Addons
${CMAKE_SOURCE_DIR}/src/server/game/AI
${CMAKE_SOURCE_DIR}/src/server/game/AI/CoreAI
- ${CMAKE_SOURCE_DIR}/src/server/game/AI/EventAI
${CMAKE_SOURCE_DIR}/src/server/game/AI/ScriptedAI
${CMAKE_SOURCE_DIR}/src/server/game/AI/SmartScripts
${CMAKE_SOURCE_DIR}/src/server/game/AuctionHouse
diff --git a/src/server/scripts/Commands/cs_reload.cpp b/src/server/scripts/Commands/cs_reload.cpp
index 039766177c1..59477c6684f 100644
--- a/src/server/scripts/Commands/cs_reload.cpp
+++ b/src/server/scripts/Commands/cs_reload.cpp
@@ -26,7 +26,6 @@ EndScriptData */
#include "AchievementMgr.h"
#include "AuctionHouseMgr.h"
#include "Chat.h"
-#include "CreatureEventAIMgr.h"
#include "CreatureTextMgr.h"
#include "DisableMgr.h"
#include "Language.h"
@@ -53,7 +52,6 @@ public:
{
{ "achievement", rbac::RBAC_PERM_COMMAND_RELOAD_ALL_ACHIEVEMENT, true, &HandleReloadAllAchievementCommand, "", NULL },
{ "area", rbac::RBAC_PERM_COMMAND_RELOAD_ALL_AREA, true, &HandleReloadAllAreaCommand, "", NULL },
- { "eventai", rbac::RBAC_PERM_COMMAND_RELOAD_ALL_EVENTAI, true, &HandleReloadAllEventAICommand, "", NULL },
{ "gossips", rbac::RBAC_PERM_COMMAND_RELOAD_ALL_GOSSIP, true, &HandleReloadAllGossipsCommand, "", NULL },
{ "item", rbac::RBAC_PERM_COMMAND_RELOAD_ALL_ITEM, true, &HandleReloadAllItemCommand, "", NULL },
{ "locales", rbac::RBAC_PERM_COMMAND_RELOAD_ALL_LOCALES, true, &HandleReloadAllLocalesCommand, "", NULL },
@@ -80,8 +78,6 @@ public:
{ "conditions", rbac::RBAC_PERM_COMMAND_RELOAD_CONDITIONS, true, &HandleReloadConditions, "", NULL },
{ "config", rbac::RBAC_PERM_COMMAND_RELOAD_CONFIG, true, &HandleReloadConfigCommand, "", NULL },
{ "creature_text", rbac::RBAC_PERM_COMMAND_RELOAD_CREATURE_TEXT, true, &HandleReloadCreatureText, "", NULL },
- { "creature_ai_scripts", rbac::RBAC_PERM_COMMAND_RELOAD_CREATURE_AI_SCRIPTS, true, &HandleReloadEventAIScriptsCommand, "", NULL },
- { "creature_ai_texts", rbac::RBAC_PERM_COMMAND_RELOAD_CREATURE_AI_TEXTS, true, &HandleReloadEventAITextsCommand, "", NULL },
{ "creature_questender", rbac::RBAC_PERM_COMMAND_RELOAD_CREATURE_QUESTENDER, true, &HandleReloadCreatureQuestEnderCommand, "", NULL },
{ "creature_linked_respawn", rbac::RBAC_PERM_COMMAND_RELOAD_CREATURE_LINKED_RESPAWN, true, &HandleReloadLinkedRespawnCommand, "", NULL },
{ "creature_loot_template", rbac::RBAC_PERM_COMMAND_RELOAD_CREATURE_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesCreatureCommand, "", NULL },
@@ -182,7 +178,6 @@ public:
HandleReloadAllAchievementCommand(handler, "");
HandleReloadAllAreaCommand(handler, "");
- HandleReloadAllEventAICommand(handler, "");
HandleReloadAllLootCommand(handler, "");
HandleReloadAllNpcCommand(handler, "");
HandleReloadAllQuestCommand(handler, "");
@@ -273,13 +268,6 @@ public:
return true;
}
- static bool HandleReloadAllEventAICommand(ChatHandler* handler, const char* /*args*/)
- {
- HandleReloadEventAITextsCommand(handler, "a");
- HandleReloadEventAIScriptsCommand(handler, "a");
- return true;
- }
-
static bool HandleReloadAllSpellCommand(ChatHandler* handler, const char* /*args*/)
{
HandleReloadSkillDiscoveryTemplateCommand(handler, "a");
@@ -1014,23 +1002,6 @@ public:
return true;
}
- static bool HandleReloadEventAITextsCommand(ChatHandler* handler, const char* /*args*/)
- {
-
- TC_LOG_INFO("misc", "Re-Loading Texts from `creature_ai_texts`...");
- sEventAIMgr->LoadCreatureEventAI_Texts();
- handler->SendGlobalGMSysMessage("DB table `creature_ai_texts` reloaded.");
- return true;
- }
-
- static bool HandleReloadEventAIScriptsCommand(ChatHandler* handler, const char* /*args*/)
- {
- TC_LOG_INFO("misc", "Re-Loading Scripts from `creature_ai_scripts`...");
- sEventAIMgr->LoadCreatureEventAI_Scripts();
- handler->SendGlobalGMSysMessage("DB table `creature_ai_scripts` reloaded.");
- return true;
- }
-
static bool HandleReloadSpellScriptsCommand(ChatHandler* handler, const char* args)
{
if (sScriptMgr->IsScriptScheduled())
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp
index 6dbcdffca72..2b1b04cb654 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp
@@ -60,6 +60,7 @@ public:
{
waterBoltTimer = 3 * IN_MILLISECONDS;
resetTimer = 5 * IN_MILLISECONDS;
+ balindaGUID = 0;
}
void UpdateAI(uint32 diff) OVERRIDE
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp
index 275b3802764..ff839e3cacb 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp
@@ -171,6 +171,7 @@ public:
_Reset();
gythEvent = false;
victorGUID = 0;
+ portcullisGUID = 0;
}
void EnterCombat(Unit* /*who*/) OVERRIDE
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp
index 9b250cc169a..a1bbad7ee1c 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp
@@ -73,6 +73,8 @@ public:
go_blackrockaltar = 0;
go_portcullis_active = 0;
go_portcullis_tobossrooms = 0;
+ memset(go_roomrunes, 0, sizeof(go_roomrunes));
+ memset(go_emberseerrunes, 0, sizeof(go_emberseerrunes));
}
void OnCreatureCreate(Creature* creature) OVERRIDE
@@ -270,7 +272,7 @@ public:
return true;
}
- void ProcessEvent(WorldObject* /*gameObject*/, uint32 eventId) OVERRIDE
+ void ProcessEvent(WorldObject* /*obj*/, uint32 eventId) OVERRIDE
{
switch (eventId)
{
@@ -313,102 +315,71 @@ public:
{
case DATA_HIGHLORD_OMOKK:
return HighlordOmokk;
- break;
case DATA_SHADOW_HUNTER_VOSHGAJIN:
return ShadowHunterVoshgajin;
- break;
case DATA_WARMASTER_VOONE:
return WarMasterVoone;
- break;
case DATA_MOTHER_SMOLDERWEB:
return MotherSmolderweb;
- break;
case DATA_UROK_DOOMHOWL:
return UrokDoomhowl;
- break;
case DATA_QUARTERMASTER_ZIGRIS:
return QuartermasterZigris;
- break;
case DATA_GIZRUL_THE_SLAVENER:
return GizrultheSlavener;
- break;
case DATA_HALYCON:
return Halycon;
- break;
case DATA_OVERLORD_WYRMTHALAK:
return OverlordWyrmthalak;
- break;
case DATA_PYROGAURD_EMBERSEER:
return PyroguardEmberseer;
- break;
case DATA_WARCHIEF_REND_BLACKHAND:
return WarchiefRendBlackhand;
- break;
case DATA_GYTH:
return Gyth;
- break;
case DATA_THE_BEAST:
return TheBeast;
- break;
case DATA_GENERAL_DRAKKISATH:
return GeneralDrakkisath;
- break;
case GO_EMBERSEER_IN:
return go_emberseerin;
- break;
case GO_DOORS:
return go_doors;
- break;
case GO_EMBERSEER_OUT:
return go_emberseerout;
- break;
case GO_HALL_RUNE_1:
return go_roomrunes[0];
- break;
case GO_HALL_RUNE_2:
return go_roomrunes[1];
- break;
case GO_HALL_RUNE_3:
return go_roomrunes[2];
- break;
case GO_HALL_RUNE_4:
return go_roomrunes[3];
- break;
case GO_HALL_RUNE_5:
return go_roomrunes[4];
- break;
case GO_HALL_RUNE_6:
return go_roomrunes[5];
- break;
case GO_HALL_RUNE_7:
return go_roomrunes[6];
- break;
case GO_EMBERSEER_RUNE_1:
return go_emberseerrunes[0];
- break;
case GO_EMBERSEER_RUNE_2:
return go_emberseerrunes[1];
- break;
case GO_EMBERSEER_RUNE_3:
return go_emberseerrunes[2];
- break;
case GO_EMBERSEER_RUNE_4:
return go_emberseerrunes[3];
- break;
case GO_EMBERSEER_RUNE_5:
return go_emberseerrunes[4];
- break;
case GO_EMBERSEER_RUNE_6:
return go_emberseerrunes[5];
- break;
case GO_EMBERSEER_RUNE_7:
return go_emberseerrunes[6];
- break;
case GO_PORTCULLIS_ACTIVE:
return go_portcullis_active;
- break;
case GO_PORTCULLIS_TOBOSSROOMS:
return go_portcullis_tobossrooms;
+ default:
break;
}
return 0;
@@ -577,8 +548,6 @@ public:
protected:
EventMap Events;
- uint32 encounter[EncounterCount];
- std::string m_strInstData;
uint64 HighlordOmokk;
uint64 ShadowHunterVoshgajin;
uint64 WarMasterVoone;
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
index f3a788918f2..4e0c79509fc 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
@@ -264,7 +264,6 @@ public:
if (Unit* player = me->SelectNearestPlayer(60.0f))
{
me->SetInFront(player);
- me->SendMovementFlagUpdate();
Talk(SAY_SUCCESS);
if (GameObject* portcullis1 = me->FindNearestGameObject(GO_PORTCULLIS_ACTIVE, 65.0f))
portcullis1->SetGoState(GO_STATE_ACTIVE);
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp
index 622c34d3358..0c85e89ec4a 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp
@@ -63,6 +63,7 @@ public:
{
// Razorgore
EggCount = 0;
+ EggEvent = 0;
RazorgoreTheUntamedGUID = 0;
RazorgoreDoorGUID = 0;
EggList.clear();
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
index 8efcbf29d30..91127f2db0d 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
@@ -614,7 +614,8 @@ public:
}
return 50000;
case 15:
- arca->DealDamage(arca, arca->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
+ if (arca)
+ arca->DealDamage(arca, arca->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
return 5000;
default : return 9999999;
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
index 463e88b670b..0810d5ca2b8 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
@@ -807,6 +807,7 @@ public:
me->GetPosition(x, y, z); //this visual aura some under ground
me->SetPosition(x, y, z + 0.35f, 0.0f);
Despawn();
+ debuffGUID = 0;
Creature* debuff = DoSpawnCreature(HELPER, 0, 0, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 14500);
if (debuff)
{
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
index 280b4c27770..e68d834b20d 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
@@ -200,16 +200,13 @@ public:
{
if (!SisterDeath)
{
- if (instance)
+ Unit* Temp = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_ALYTHESS));
+ if (Temp && Temp->isDead())
{
- Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_ALYTHESS));
- if (Temp && Temp->isDead())
- {
- Talk(YELL_SISTER_ALYTHESS_DEAD);
- DoCast(me, SPELL_EMPOWER);
- me->InterruptSpell(CURRENT_GENERIC_SPELL);
- SisterDeath = true;
- }
+ Talk(YELL_SISTER_ALYTHESS_DEAD);
+ DoCast(me, SPELL_EMPOWER);
+ me->InterruptSpell(CURRENT_GENERIC_SPELL);
+ SisterDeath = true;
}
}
@@ -347,15 +344,12 @@ public:
{
Enraged = false;
- if (instance)
+ if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SACROLASH)))
{
- if (Creature* temp = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_SACROLASH)))
- {
- if (temp->isDead())
- temp->Respawn();
- else if (temp->GetVictim())
- me->getThreatManager().addThreat(temp->GetVictim(), 0.0f);
- }
+ if (temp->isDead())
+ temp->Respawn();
+ else if (temp->GetVictim())
+ me->getThreatManager().addThreat(temp->GetVictim(), 0.0f);
}
if (!me->IsInCombat())
@@ -527,7 +521,7 @@ public:
if (!SisterDeath)
{
- Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_SACROLASH));
+ Unit* Temp = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_SACROLASH));
if (Temp && Temp->isDead())
{
Talk(YELL_SISTER_SACROLASH_DEAD);
@@ -538,7 +532,7 @@ public:
}
if (!me->GetVictim())
{
- Creature* sisiter = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_SACROLASH));
+ Creature* sisiter = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SACROLASH));
if (sisiter && !sisiter->isDead() && sisiter->GetVictim())
{
me->AddThreat(sisiter->GetVictim(), 0.0f);
diff --git a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp
index ebec0170d23..257e3c21688 100644
--- a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp
@@ -41,9 +41,9 @@ enum OOX
{
SAY_OOX_START = 0,
SAY_OOX_AGGRO = 1,
- SAY_OOX_AMBUSH = 3,
- SAY_OOX_AMBUSH_REPLY = 4,
- SAY_OOX_END = 5,
+ SAY_OOX_AMBUSH = 2,
+ SAY_OOX_AMBUSH_REPLY = 3,
+ SAY_OOX_END = 4,
QUEST_RESQUE_OOX_09 = 836,
diff --git a/src/server/scripts/Kalimdor/CMakeLists.txt b/src/server/scripts/Kalimdor/CMakeLists.txt
index 17c360a54b2..c02e896a87d 100644
--- a/src/server/scripts/Kalimdor/CMakeLists.txt
+++ b/src/server/scripts/Kalimdor/CMakeLists.txt
@@ -15,12 +15,15 @@ set(scripts_STAT_SRCS
Kalimdor/zone_moonglade.cpp
Kalimdor/RazorfenDowns/razorfen_downs.cpp
Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp
+ Kalimdor/RazorfenDowns/boss_tuten_kash.cpp
+ Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp
+ Kalimdor/RazorfenDowns/boss_glutton.cpp
Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
Kalimdor/RazorfenDowns/razorfen_downs.h
- Kalimdor/ZulFarrak/zulfarrak.h
Kalimdor/ZulFarrak/zulfarrak.cpp
Kalimdor/ZulFarrak/instance_zulfarrak.cpp
Kalimdor/ZulFarrak/boss_zum_rah.cpp
+ Kalimdor/ZulFarrak/zulfarrak.h
Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp
Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h
Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
index 164de89b017..52f706d5626 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
@@ -186,6 +186,7 @@ public:
{
npc_towering_infernalAI(Creature* creature) : ScriptedAI(creature)
{
+ AnetheronGUID = 0;
instance = creature->GetInstanceScript();
if (instance)
AnetheronGUID = instance->GetData64(DATA_ANETHERON);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
index aaf2bb65ba0..dd486df16ed 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
@@ -193,6 +193,7 @@ public:
{
npc_lesser_doomguardAI(Creature* creature) : hyjal_trashAI(creature)
{
+ AzgalorGUID = 0;
instance = creature->GetInstanceScript();
if (instance)
AzgalorGUID = instance->GetData64(DATA_AZGALOR);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
index 43d75fad876..9245a0c648f 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
@@ -186,6 +186,7 @@ hyjal_trashAI::hyjal_trashAI(Creature* creature) : npc_escortAI(creature)
faction = 0;
useFlyPath = false;
damageTaken = 0;
+ memset(DummyTarget, 0, sizeof(DummyTarget));
Reset();
}
@@ -430,7 +431,6 @@ public:
bool meteor;
bool CanMove;
- bool WpEnabled;
bool go;
uint32 spawnTimer;
uint32 FlameBuffetTimer;
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
index 4a4d7fe4b07..323fd92a8f6 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
@@ -1,6 +1,5 @@
/*
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -16,63 +15,57 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: Boss_Amnennar_the_coldbringer
-SD%Complete: 100
-SDComment:
-SDCategory: Razorfen Downs
-EndScriptData */
-
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "razorfen_downs.h"
-enum AmnennarTheColdbringer
+enum Say
{
SAY_AGGRO = 0,
SAY_SUMMON60 = 1,
SAY_SUMMON30 = 2,
SAY_HP = 3,
- SAY_KILL = 4,
+ SAY_KILL = 4
+};
+enum Spells
+{
SPELL_AMNENNARSWRATH = 13009,
SPELL_FROSTBOLT = 15530,
SPELL_FROST_NOVA = 15531,
SPELL_FROST_SPECTRES = 12642
};
+enum Events
+{
+ EVENT_AMNENNARSWRATH = 1,
+ EVENT_FROSTBOLT = 2,
+ EVENT_FROST_NOVA = 3
+};
+
class boss_amnennar_the_coldbringer : public CreatureScript
{
public:
boss_amnennar_the_coldbringer() : CreatureScript("boss_amnennar_the_coldbringer") { }
- CreatureAI* GetAI(Creature* creature) const OVERRIDE
- {
- return new boss_amnennar_the_coldbringerAI(creature);
- }
-
- struct boss_amnennar_the_coldbringerAI : public ScriptedAI
+ struct boss_amnennar_the_coldbringerAI : public BossAI
{
- boss_amnennar_the_coldbringerAI(Creature* creature) : ScriptedAI(creature) { }
-
- uint32 AmnenarsWrath_Timer;
- uint32 FrostBolt_Timer;
- uint32 FrostNova_Timer;
- bool Spectrals60;
- bool Spectrals30;
- bool Hp;
+ boss_amnennar_the_coldbringerAI(Creature* creature) : BossAI(creature, DATA_AMNENNAR_THE_COLD_BRINGER) { }
void Reset() OVERRIDE
{
- AmnenarsWrath_Timer = 8000;
- FrostBolt_Timer = 1000;
- FrostNova_Timer = urand(10000, 15000);
- Spectrals30 = false;
- Spectrals60 = false;
- Hp = false;
+ _Reset();
+ hp60Spectrals = false;
+ hp30Spectrals = false;
+ hp50 = false;
}
void EnterCombat(Unit* /*who*/) OVERRIDE
{
+ _EnterCombat();
+ events.ScheduleEvent(EVENT_AMNENNARSWRATH, 8000);
+ events.ScheduleEvent(EVENT_FROSTBOLT, 1000);
+ events.ScheduleEvent(EVENT_FROST_NOVA, urand(10000, 15000));
Talk(SAY_AGGRO);
}
@@ -81,55 +74,73 @@ public:
Talk(SAY_KILL);
}
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ _JustDied();
+ }
+
void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- //AmnenarsWrath_Timer
- if (AmnenarsWrath_Timer <= diff)
- {
- DoCastVictim(SPELL_AMNENNARSWRATH);
- AmnenarsWrath_Timer = 12000;
- } else AmnenarsWrath_Timer -= diff;
+ events.Update(diff);
- //FrostBolt_Timer
- if (FrostBolt_Timer <= diff)
- {
- DoCastVictim(SPELL_FROSTBOLT);
- FrostBolt_Timer = 8000;
- } else FrostBolt_Timer -= diff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- if (FrostNova_Timer <= diff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- DoCast(me, SPELL_FROST_NOVA);
- FrostNova_Timer = 15000;
- } else FrostNova_Timer -= diff;
+ switch (eventId)
+ {
+ case EVENT_AMNENNARSWRATH:
+ DoCastVictim(SPELL_AMNENNARSWRATH);
+ events.ScheduleEvent(EVENT_AMNENNARSWRATH, 12000);
+ break;
+ case EVENT_FROSTBOLT:
+ DoCastVictim(SPELL_FROSTBOLT);
+ events.ScheduleEvent(EVENT_FROSTBOLT, 8000);
+ break;
+ case EVENT_FROST_NOVA:
+ DoCast(me, SPELL_FROST_NOVA);
+ events.ScheduleEvent(EVENT_FROST_NOVA, 15000);
+ break;
+ }
+ }
- if (!Spectrals60 && HealthBelowPct(60))
+ if (!hp60Spectrals && HealthBelowPct(60))
{
Talk(SAY_SUMMON60);
DoCastVictim(SPELL_FROST_SPECTRES);
- Spectrals60 = true;
+ hp60Spectrals = true;
}
- if (!Hp && HealthBelowPct(50))
+ if (!hp50 && HealthBelowPct(50))
{
Talk(SAY_HP);
- Hp = true;
+ hp50 = true;
}
- if (!Spectrals30 && HealthBelowPct(30))
+ if (!hp30Spectrals && HealthBelowPct(30))
{
Talk(SAY_SUMMON30);
DoCastVictim(SPELL_FROST_SPECTRES);
- Spectrals30 = true;
+ hp30Spectrals = true;
}
DoMeleeAttackIfReady();
}
+
+ private:
+ bool hp60Spectrals;
+ bool hp30Spectrals;
+ bool hp50;
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_amnennar_the_coldbringerAI(creature);
+ }
};
void AddSC_boss_amnennar_the_coldbringer()
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp
new file mode 100644
index 00000000000..b75fcad64a5
--- /dev/null
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "razorfen_downs.h"
+
+enum Say
+{
+ SAY_AGGRO = 0,
+ SAY_SLAY = 1,
+ SAY_HP50 = 2,
+ SAY_HP15 = 3
+};
+
+enum Spells
+{
+ SPELL_DISEASE_CLOUD = 12627,
+ SPELL_FRENZY = 12795
+};
+
+class boss_glutton : public CreatureScript
+{
+public:
+ boss_glutton() : CreatureScript("boss_glutton") { }
+
+ struct boss_gluttonAI : public BossAI
+ {
+ boss_gluttonAI(Creature* creature) : BossAI(creature, DATA_GLUTTON) { }
+
+ void Reset() OVERRIDE
+ {
+ _Reset();
+ hp50 = false;
+ hp15 = false;
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ _EnterCombat();
+ Talk(SAY_AGGRO);
+ }
+
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
+ {
+ Talk(SAY_SLAY);
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ _JustDied();
+ }
+
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ if (!hp50 && HealthBelowPct(50))
+ {
+ Talk(SAY_HP50);
+ hp50 = true;
+ }
+
+ if (!hp15 && HealthBelowPct(15))
+ {
+ Talk(SAY_HP15);
+ DoCast(me, SPELL_FRENZY);
+ hp15 = true;
+ }
+
+ DoMeleeAttackIfReady();
+ }
+
+ private:
+ bool hp50;
+ bool hp15;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_gluttonAI(creature);
+ }
+};
+
+void AddSC_boss_glutton()
+{
+ new boss_glutton();
+}
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp
new file mode 100644
index 00000000000..1f45de3c4c6
--- /dev/null
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp
@@ -0,0 +1,136 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "razorfen_downs.h"
+
+enum Say
+{
+ SAY_OOC_1 = 0,
+ SAY_OOC_2 = 1,
+ SAY_OOC_3 = 2,
+ SAY_AGGRO = 3
+};
+
+enum Spells
+{
+ SPELL_FIREBALL = 12466,
+ SPELL_FIRE_NOVA = 12470
+};
+
+enum Events
+{
+ EVENT_OOC_1 = 1,
+ EVENT_OOC_2 = 2,
+ EVENT_OOC_3 = 3,
+ EVENT_OOC_4 = 4,
+ EVENT_FIREBALL = 5,
+ EVENT_FIRE_NOVA = 6
+};
+
+class boss_mordresh_fire_eye : public CreatureScript
+{
+public:
+ boss_mordresh_fire_eye() : CreatureScript("boss_mordresh_fire_eye") { }
+
+ struct boss_mordresh_fire_eyeAI : public BossAI
+ {
+ boss_mordresh_fire_eyeAI(Creature* creature) : BossAI(creature, DATA_MORDRESH_FIRE_EYE) { }
+
+ void Reset() OVERRIDE
+ {
+ _Reset();
+ events.ScheduleEvent(EVENT_OOC_1, 10000);
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ _EnterCombat();
+ events.Reset();
+ Talk(SAY_AGGRO);
+ events.ScheduleEvent(EVENT_FIREBALL, 100);
+ events.ScheduleEvent(EVENT_FIRE_NOVA, urand(8000, 12000));
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ _JustDied();
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ events.Update(diff);
+
+ if (!UpdateVictim())
+ {
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_OOC_1:
+ Talk(SAY_OOC_1);
+ events.ScheduleEvent(EVENT_OOC_2, 8000);
+ break;
+ case EVENT_OOC_2:
+ Talk(SAY_OOC_2);
+ events.ScheduleEvent(EVENT_OOC_3, 3000);
+ break;
+ case EVENT_OOC_3:
+ me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
+ events.ScheduleEvent(EVENT_OOC_4, 6000);
+ break;
+ case EVENT_OOC_4:
+ Talk(SAY_OOC_3);
+ events.ScheduleEvent(EVENT_OOC_1, 14000);
+ break;
+ }
+ }
+ return;
+ }
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_FIREBALL:
+ DoCastVictim(SPELL_FIREBALL);
+ events.ScheduleEvent(EVENT_FIREBALL, urand(2400, 3800));
+ break;
+ case EVENT_FIRE_NOVA:
+ DoCast(me, SPELL_FIRE_NOVA);
+ events.ScheduleEvent(EVENT_FIRE_NOVA, urand(11000, 16000));
+ break;
+ }
+ }
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_mordresh_fire_eyeAI(creature);
+ }
+};
+
+void AddSC_boss_mordresh_fire_eye()
+{
+ new boss_mordresh_fire_eye();
+}
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp
new file mode 100644
index 00000000000..5cf8a2992a3
--- /dev/null
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "razorfen_downs.h"
+
+enum Spells
+{
+ SPELL_THRASH = 8876,
+ SPELL_WEB_SPRAY = 12252,
+ SPELL_VIRULENT_POISON = 12254,
+ SPELL_CURSE_OF_TUTENKASH = 12255
+};
+
+enum Events
+{
+ EVENT_WEB_SPRAY = 1,
+ EVENT_CURSE_OF_TUTENKASH = 2
+};
+
+class boss_tuten_kash : public CreatureScript
+{
+public:
+ boss_tuten_kash() : CreatureScript("boss_tuten_kash") { }
+
+ struct boss_tuten_kashAI : public BossAI
+ {
+ boss_tuten_kashAI(Creature* creature) : BossAI(creature, DATA_TUTEN_KASH) { }
+
+ void Reset() OVERRIDE
+ {
+ _Reset();
+ if (!me->HasAura(SPELL_THRASH))
+ DoCast(me, SPELL_THRASH);
+ if (!me->HasAura(SPELL_VIRULENT_POISON))
+ DoCast(me, SPELL_VIRULENT_POISON);
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ _EnterCombat();
+ events.ScheduleEvent(EVENT_WEB_SPRAY, urand(3000, 5000));
+ events.ScheduleEvent(EVENT_CURSE_OF_TUTENKASH, urand(9000, 14000));
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ _JustDied();
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_WEB_SPRAY:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, false))
+ {
+ if (!target->HasAura(SPELL_WEB_SPRAY))
+ DoCast(target, SPELL_WEB_SPRAY);
+ }
+ events.ScheduleEvent(EVENT_WEB_SPRAY, urand(6000, 8000));
+ break;
+ case EVENT_CURSE_OF_TUTENKASH:
+ DoCast(me, SPELL_CURSE_OF_TUTENKASH);
+ events.ScheduleEvent(EVENT_CURSE_OF_TUTENKASH, urand(15000, 25000));
+ break;
+ }
+ }
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_tuten_kashAI(creature);
+ }
+};
+
+void AddSC_boss_tuten_kash()
+{
+ new boss_tuten_kash();
+}
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp
index 091c7e46585..097f340891a 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp
@@ -16,199 +16,219 @@
*/
#include "ScriptMgr.h"
+#include "ObjectMgr.h"
#include "InstanceScript.h"
#include "razorfen_downs.h"
#include "Player.h"
#include "TemporarySummon.h"
-#define MAX_ENCOUNTER 1
+Position const PosSummonTutenkash[15] =
+{
+ // 7349 Tomb Fiend
+ { 2487.339f, 805.9111f, 43.08361f, 2.844887f },
+ { 2485.405f, 804.1145f, 43.68511f, 3.054326f },
+ { 2488.431f, 801.2809f, 42.70374f, 4.29351f },
+ { 2489.914f, 804.7949f, 43.25175f, 1.658063f },
+ { 2541.246f, 907.0941f, 46.64201f, 2.024582f },
+ { 2544.701f, 907.6331f, 46.38007f, 1.605703f },
+ { 2541.49f, 911.1756f, 46.26493f, 4.817109f },
+ { 2544.693f, 912.8887f, 46.39912f, 2.129302f },
+ { 2524.036f, 834.4852f, 48.37031f, 0.8028514f },
+ { 2527.017f, 829.9793f, 48.06498f, 0.6981317f },
+ // 7351 Tomb Reaver
+ { 2542.818f, 904.9359f, 46.80911f, 4.642576f },
+ { 2543.287f, 911.2448f, 46.32785f, 0.6806784f },
+ { 2489.083f, 806.5914f, 43.21102f, 3.682645f },
+ { 2486.828f, 802.8737f, 43.19883f, 2.9147f },
+ // 7355 Tuten'kash
+ { 2487.939f, 804.2224f, 43.10735f, 1.692969f }
+};
class instance_razorfen_downs : public InstanceMapScript
{
public:
- instance_razorfen_downs() : InstanceMapScript("instance_razorfen_downs", 129) { }
-
- InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
- {
- return new instance_razorfen_downs_InstanceMapScript(map);
- }
+ instance_razorfen_downs() : InstanceMapScript(RFDScriptName, 129) { }
struct instance_razorfen_downs_InstanceMapScript : public InstanceScript
{
instance_razorfen_downs_InstanceMapScript(Map* map) : InstanceScript(map)
{
+ SetBossNumber(EncounterCount);
}
- uint64 uiGongGUID;
-
- uint32 m_auiEncounter[MAX_ENCOUNTER];
-
- uint16 uiGongWaves;
-
- std::string str_data;
-
void Initialize() OVERRIDE
{
- uiGongGUID = 0;
-
- uiGongWaves = 0;
-
- memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
- }
-
- std::string GetSaveData() OVERRIDE
- {
- OUT_SAVE_INST_DATA;
-
- std::ostringstream saveStream;
-
- saveStream << "T C " << m_auiEncounter[0]
- << ' ' << uiGongWaves;
-
- str_data = saveStream.str();
-
- OUT_SAVE_INST_DATA_COMPLETE;
- return str_data;
+ goGongGUID = 0;
+ gongWave = 0;
+ fiendsKilled = 0;
+ reaversKilled = 0;
+ summonLowRange = 0;
+ summonHighRange = 0;
+ summonCreature = 0;
}
- void Load(const char* in) OVERRIDE
+ void OnGameObjectCreate(GameObject* gameObject) OVERRIDE
{
- if (!in)
+ switch (gameObject->GetEntry())
{
- OUT_LOAD_INST_DATA_FAIL;
- return;
+ case GO_GONG:
+ goGongGUID = gameObject->GetGUID();
+ if (GetBossState(DATA_TUTEN_KASH) == DONE)
+ gameObject->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
+ break;
+ case GO_IDOL_OVEN_FIRE:
+ case GO_IDOL_CUP_FIRE:
+ case GO_IDOL_MOUTH_FIRE:
+ if (GetBossState(DATA_EXTINGUISHING_THE_IDOL) == DONE)
+ gameObject->Delete();
+ break;
+ default:
+ break;
}
-
- OUT_LOAD_INST_DATA(in);
-
- char dataHead1, dataHead2;
- uint16 data0, data1;
-
- std::istringstream loadStream(in);
- loadStream >> dataHead1 >> dataHead2 >> data0 >> data1;
-
- if (dataHead1 == 'T' && dataHead2 == 'C')
- {
- m_auiEncounter[0] = data0;
-
- for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS)
- m_auiEncounter[i] = NOT_STARTED;
-
- uiGongWaves = data1;
- } else OUT_LOAD_INST_DATA_FAIL;
-
- OUT_LOAD_INST_DATA_COMPLETE;
}
- void OnGameObjectCreate(GameObject* go) OVERRIDE
+ bool SetBossState(uint32 type, EncounterState state) OVERRIDE
{
- switch (go->GetEntry())
+ if (!InstanceScript::SetBossState(type, state))
+ return false;
+
+ switch (type)
{
- case GO_GONG:
- uiGongGUID = go->GetGUID();
- if (m_auiEncounter[0] == DONE)
- go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
+ case DATA_TUTEN_KASH:
+ case DATA_MORDRESH_FIRE_EYE:
+ case DATA_GLUTTON:
+ case DATA_AMNENNAR_THE_COLD_BRINGER:
+ case DATA_GONG:
+ case DATA_WAVE:
+ case DATA_EXTINGUISHING_THE_IDOL:
break;
default:
break;
}
+ return true;
}
- void SetData(uint32 uiType, uint32 uiData) OVERRIDE
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
- if (uiType == DATA_GONG_WAVES)
+ if (type == DATA_WAVE)
{
- uiGongWaves = uiData;
-
- switch (uiGongWaves)
+ switch (data)
{
- case 9:
- case 14:
- if (GameObject* go = instance->GetGameObject(uiGongGUID))
- go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
- break;
- case 1:
- case 10:
- case 16:
+ case IN_PROGRESS:
{
- GameObject* go = instance->GetGameObject(uiGongGUID);
-
- if (!go)
- return;
-
- go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
-
- uint32 uiCreature = 0;
- uint8 uiSummonTimes = 0;
+ if (GameObject* go = instance->GetGameObject(goGongGUID))
+ go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
- switch (uiGongWaves)
+ switch (gongWave)
{
- case 1:
- uiCreature = NPC_TOMB_FIEND;
- uiSummonTimes = 7;
- break;
- case 10:
- uiCreature = NPC_TOMB_REAVER;
- uiSummonTimes = 3;
+ case 0:
+ summonLowRange = 0;
+ summonHighRange = 10;
+ summonCreature = NPC_TOMB_FIEND;
break;
- case 16:
- uiCreature = NPC_TUTEN_KASH;
+ case 1:
+ summonLowRange = 10;
+ summonHighRange = 14;
+ summonCreature = NPC_TOMB_REAVER;
break;
- default:
+ case 2:
+ summonLowRange = 14;
+ summonHighRange = 15;
+ summonCreature = NPC_TUTEN_KASH;
break;
}
- if (Creature* creature = go->SummonCreature(uiCreature, 2502.635f, 844.140f, 46.896f, 0.633f))
+ if (GameObject* go = instance->GetGameObject(goGongGUID))
{
- if (uiGongWaves == 10 || uiGongWaves == 1)
+ for (uint8 i = summonLowRange; i < summonHighRange; ++i)
{
- for (uint8 i = 0; i < uiSummonTimes; ++i)
- {
- if (Creature* summon = go->SummonCreature(uiCreature, 2502.635f + float(irand(-5, 5)), 844.140f + float(irand(-5, 5)), 46.896f, 0.633f))
- summon->GetMotionMaster()->MovePoint(0, 2533.479f + float(irand(-5, 5)), 870.020f + float(irand(-5, 5)), 47.678f);
- }
+ Creature* creature = go->SummonCreature(summonCreature, PosSummonTutenkash[i]);
+ creature->GetMotionMaster()->MovePoint(0, 2533.479f + float(irand(-5, 5)), 870.020f + float(irand(-5, 5)), 47.678f);
}
- creature->GetMotionMaster()->MovePoint(0, 2533.479f + float(irand(-5, 5)), 870.020f + float(irand(-5, 5)), 47.678f);
}
+
+ ++gongWave;
break;
}
- default:
+ case NPC_TOMB_FIEND:
+ if (++fiendsKilled == 10)
+ {
+ fiendsKilled = 0;
+ if (GameObject* go = instance->GetGameObject(goGongGUID))
+ go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
+ }
+ break;
+ case NPC_TOMB_REAVER:
+ if (++reaversKilled == 4)
+ {
+ reaversKilled = 0;
+ if (GameObject* go = instance->GetGameObject(goGongGUID))
+ go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
+ }
break;
}
+
}
- if (uiType == BOSS_TUTEN_KASH)
- {
- m_auiEncounter[0] = uiData;
+ }
- if (uiData == DONE)
- SaveToDB();
- }
+ std::string GetSaveData() OVERRIDE
+ {
+ OUT_SAVE_INST_DATA;
+
+ std::ostringstream saveStream;
+ saveStream << "R D " << GetBossSaveData();
+
+ OUT_SAVE_INST_DATA_COMPLETE;
+ return saveStream.str();
}
- uint32 GetData(uint32 uiType) const OVERRIDE
+ void Load(const char* str) OVERRIDE
{
- switch (uiType)
+ if (!str)
{
- case DATA_GONG_WAVES:
- return uiGongWaves;
+ OUT_LOAD_INST_DATA_FAIL;
+ return;
}
- return 0;
- }
+ OUT_LOAD_INST_DATA(str);
- uint64 GetData64(uint32 uiType) const OVERRIDE
- {
- switch (uiType)
+ char dataHead1, dataHead2;
+
+ std::istringstream loadStream(str);
+ loadStream >> dataHead1 >> dataHead2;
+
+ if (dataHead1 == 'R' && dataHead2 == 'D')
{
- case DATA_GONG: return uiGongGUID;
+ for (uint32 i = 0; i < EncounterCount; ++i)
+ {
+ uint32 tmpState;
+ loadStream >> tmpState;
+ if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
+ tmpState = NOT_STARTED;
+ SetBossState(i, EncounterState(tmpState));
+ }
}
+ else
+ OUT_LOAD_INST_DATA_FAIL;
- return 0;
+ OUT_LOAD_INST_DATA_COMPLETE;
}
+
+ protected:
+ uint64 goGongGUID;
+ uint16 gongWave;
+ uint8 fiendsKilled;
+ uint8 reaversKilled;
+ uint8 summonLowRange;
+ uint8 summonHighRange;
+ uint32 summonCreature;
};
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
+ {
+ return new instance_razorfen_downs_InstanceMapScript(map);
+ }
};
void AddSC_instance_razorfen_downs()
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
index 320c9970077..3300f0d811b 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
@@ -32,6 +32,10 @@ EndContentData */
#include "ScriptedGossip.h"
#include "razorfen_downs.h"
#include "Player.h"
+#include "GridNotifiers.h"
+#include "GridNotifiersImpl.h"
+#include "Cell.h"
+#include "CellImpl.h"
/*###
# npc_henry_stern
@@ -101,32 +105,272 @@ public:
};
/*######
-## go_gong
+## npc_belnistrasz for Quest 3525 "Extinguishing the Idol"
######*/
-class go_gong : public GameObjectScript
+Position const PosSummonSpawner[3] =
+{
+ { 2582.789f, 954.3925f, 52.48214f, 3.787364f },
+ { 2569.42f, 956.3801f, 52.27323f, 5.427974f },
+ { 2570.62f, 942.3934f, 53.7433f, 0.715585f }
+};
+
+enum Belnistrasz
+{
+ EVENT_CHANNEL = 1,
+ EVENT_IDOL_ROOM_SPAWNER = 2,
+ EVENT_PROGRESS = 3,
+ EVENT_COMPLETE = 4,
+ EVENT_FIREBALL = 5,
+ EVENT_FROST_NOVA = 6,
+
+ FACTION_ESCORT = 250,
+
+ PATH_ESCORT = 871710,
+ POINT_REACH_IDOL = 17,
+
+ QUEST_EXTINGUISHING_THE_IDOL = 3525,
+
+ SAY_QUEST_ACCEPTED = 0,
+ SAY_EVENT_START = 1,
+ SAY_EVENT_THREE_MIN_LEFT = 2,
+ SAY_EVENT_TWO_MIN_LEFT = 3,
+ SAY_EVENT_ONE_MIN_LEFT = 4,
+ SAY_EVENT_END = 5,
+ SAY_AGGRO = 6, // Combat
+ SAY_WATCH_OUT = 7, // 25% chance to target random creature and say on wave spawn
+
+ SPELL_ARCANE_INTELLECT = 13326,
+ SPELL_FIREBALL = 9053,
+ SPELL_FROST_NOVA = 11831,
+ SPELL_IDOL_SHUTDOWN_VISUAL = 12774, // Hits Unit Entry: 8662
+ SPELL_IDOM_ROOM_CAMERA_SHAKE = 12816 // Dummy needs scripting
+};
+
+class npc_belnistrasz : public CreatureScript
{
public:
- go_gong() : GameObjectScript("go_gong") { }
+ npc_belnistrasz() : CreatureScript("npc_belnistrasz") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
+ struct npc_belnistraszAI : public ScriptedAI
{
- //basic support, not blizzlike data is missing...
- InstanceScript* instance = go->GetInstanceScript();
+ npc_belnistraszAI(Creature* creature) : ScriptedAI(creature)
+ {
+ instance = creature->GetInstanceScript();
+ eventInProgress = false;
+ }
- if (instance)
+ void Reset() OVERRIDE
{
- instance->SetData(DATA_GONG_WAVES, instance->GetData(DATA_GONG_WAVES)+1);
- return true;
+ if (!eventInProgress)
+ {
+ if (!me->HasAura(SPELL_ARCANE_INTELLECT))
+ DoCast(me, SPELL_ARCANE_INTELLECT);
+
+ channeling = false;
+ eventProgress = 0;
+ spawnerCount = 0;
+ me->SetFlag(UNIT_NPC_FLAGS, GOSSIP_OPTION_QUESTGIVER);
+ }
}
- return false;
+ void EnterCombat(Unit* who) OVERRIDE
+ {
+ if (channeling)
+ {
+ Talk(SAY_WATCH_OUT, who->GetGUID());
+ }
+ else
+ {
+ events.ScheduleEvent(EVENT_FIREBALL, 1000);
+ events.ScheduleEvent(EVENT_FROST_NOVA, urand(8000, 12000));
+ if (urand(0, 100) > 40)
+ Talk(SAY_AGGRO, who->GetGUID());
+ }
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ instance->SetBossState(DATA_EXTINGUISHING_THE_IDOL, DONE);
+ me->DespawnOrUnsummon(5000);
+ }
+
+ void sQuestAccept(Player* /*player*/, Quest const* quest) OVERRIDE
+ {
+ if (quest->GetQuestId() == QUEST_EXTINGUISHING_THE_IDOL)
+ {
+ eventInProgress = true;
+ Talk(SAY_QUEST_ACCEPTED);
+ me->RemoveFlag(UNIT_NPC_FLAGS, GOSSIP_OPTION_QUESTGIVER);
+ me->setFaction(FACTION_ESCORT);
+ me->GetMotionMaster()->MovePath(PATH_ESCORT, false);
+ }
+ }
+
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
+ {
+ if (type == WAYPOINT_MOTION_TYPE && id == POINT_REACH_IDOL)
+ {
+ channeling = true;
+ events.ScheduleEvent(EVENT_CHANNEL, 2000);
+ }
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!eventInProgress)
+ return;
+
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_CHANNEL:
+ Talk(SAY_EVENT_START);
+ DoCast(me, SPELL_IDOL_SHUTDOWN_VISUAL);
+ events.ScheduleEvent(EVENT_IDOL_ROOM_SPAWNER, 100);
+ events.ScheduleEvent(EVENT_PROGRESS, 120000);
+ break;
+ case EVENT_IDOL_ROOM_SPAWNER:
+ if (Creature* creature = me->SummonCreature(NPC_IDOL_ROOM_SPAWNER, PosSummonSpawner[urand(0,2)], TEMPSUMMON_TIMED_DESPAWN, 4000))
+ creature->AI()->SetData(0,spawnerCount);
+ if (++spawnerCount < 8)
+ events.ScheduleEvent(EVENT_IDOL_ROOM_SPAWNER, 35000);
+ break;
+ case EVENT_PROGRESS:
+ {
+ switch (eventProgress)
+ {
+ case 0:
+ Talk(SAY_EVENT_THREE_MIN_LEFT);
+ ++eventProgress;
+ events.ScheduleEvent(EVENT_PROGRESS, 60000);
+ break;
+ case 1:
+ Talk(SAY_EVENT_TWO_MIN_LEFT);
+ ++eventProgress;
+ events.ScheduleEvent(EVENT_PROGRESS, 60000);
+ break;
+ case 2:
+ Talk(SAY_EVENT_ONE_MIN_LEFT);
+ ++eventProgress;
+ events.ScheduleEvent(EVENT_PROGRESS, 60000);
+ break;
+ case 3:
+ events.CancelEvent(EVENT_IDOL_ROOM_SPAWNER);
+ me->InterruptSpell(CURRENT_CHANNELED_SPELL);
+ Talk(SAY_EVENT_END);
+ events.ScheduleEvent(EVENT_COMPLETE, 3000);
+ break;
+ }
+ break;
+ }
+ case EVENT_COMPLETE:
+ {
+ DoCast(me, SPELL_IDOM_ROOM_CAMERA_SHAKE);
+ me->SummonGameObject(GO_BELNISTRASZS_BRAZIER, 2577.196f, 947.0781f, 53.16757f, 2.356195f, 0, 0, 0.9238796f, 0.3826832f, 3600000);
+ std::list<WorldObject*> ClusterList;
+ Trinity::AllWorldObjectsInRange objects(me, 50.0f);
+ Trinity::WorldObjectListSearcher<Trinity::AllWorldObjectsInRange> searcher(me, ClusterList, objects);
+ me->VisitNearbyObject(50.0f, searcher);
+ for (std::list<WorldObject*>::const_iterator itr = ClusterList.begin(); itr != ClusterList.end(); ++itr)
+ {
+ if (Player* player = (*itr)->ToPlayer())
+ {
+ if (player->GetQuestStatus(QUEST_EXTINGUISHING_THE_IDOL) == QUEST_STATUS_INCOMPLETE)
+ player->CompleteQuest(QUEST_EXTINGUISHING_THE_IDOL);
+ }
+ else if (GameObject* go = (*itr)->ToGameObject())
+ {
+ if (go->GetEntry() == GO_IDOL_OVEN_FIRE || go->GetEntry() == GO_IDOL_CUP_FIRE || go->GetEntry() == GO_IDOL_MOUTH_FIRE)
+ go->Delete();
+ }
+ }
+ instance->SetBossState(DATA_EXTINGUISHING_THE_IDOL, DONE);
+ me->DespawnOrUnsummon();
+ break;
+ }
+ case EVENT_FIREBALL:
+ if (me->HasUnitState(UNIT_STATE_CASTING) || !UpdateVictim())
+ return;
+ DoCastVictim(SPELL_FIREBALL);
+ events.ScheduleEvent(EVENT_FIREBALL, 8000);
+ break;
+ case EVENT_FROST_NOVA:
+ if (me->HasUnitState(UNIT_STATE_CASTING) || !UpdateVictim())
+ return;
+ DoCast(me, SPELL_FROST_NOVA);
+ events.ScheduleEvent(EVENT_FROST_NOVA, 15000);
+ break;
+ }
+ }
+ if (!channeling)
+ DoMeleeAttackIfReady();
+ }
+
+ private:
+ InstanceScript* instance;
+ EventMap events;
+ bool eventInProgress;
+ bool channeling;
+ uint8 eventProgress;
+ uint8 spawnerCount;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_belnistraszAI(creature);
}
+};
+
+class npc_idol_room_spawner : public CreatureScript
+{
+public:
+ npc_idol_room_spawner() : CreatureScript("npc_idol_room_spawner") { }
+
+ struct npc_idol_room_spawnerAI : public ScriptedAI
+ {
+ npc_idol_room_spawnerAI(Creature* creature) : ScriptedAI(creature)
+ {
+ instance = creature->GetInstanceScript();
+ }
+
+ void Reset() OVERRIDE { }
+ void SetData(uint32 /*type*/, uint32 data) OVERRIDE
+ {
+ if (!instance)
+ return;
+
+ if (data < 7)
+ {
+ me->SummonCreature(NPC_WITHERED_BATTLE_BOAR, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
+ if (data > 0 && me->GetOrientation() < 4.0f)
+ me->SummonCreature(NPC_WITHERED_BATTLE_BOAR, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
+ me->SummonCreature(NPC_DEATHS_HEAD_GEOMANCER, me->GetPositionX() + (cos(me->GetOrientation() - (M_PI/2)) * 2), me->GetPositionY() + (sin(me->GetOrientation() - (M_PI/2)) * 2), me->GetPositionZ(), me->GetOrientation());
+ me->SummonCreature(NPC_WITHERED_QUILGUARD, me->GetPositionX() + (cos(me->GetOrientation() + (M_PI/2)) * 2), me->GetPositionY() + (sin(me->GetOrientation() + (M_PI/2)) * 2), me->GetPositionZ(), me->GetOrientation());
+ }
+ else if (data == 7)
+ me->SummonCreature(NPC_PLAGUEMAW_THE_ROTTING, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
+ }
+
+ private:
+ InstanceScript* instance;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_idol_room_spawnerAI(creature);
+ }
};
enum TombCreature
{
+ EVENT_WEB = 7,
+ SPELL_POISON_PROC = 3616,
+ SPELL_VIRULENT_POISON_PROC = 12254,
SPELL_WEB = 745
};
@@ -135,11 +379,6 @@ class npc_tomb_creature : public CreatureScript
public:
npc_tomb_creature() : CreatureScript("npc_tomb_creature") { }
- CreatureAI* GetAI(Creature* creature) const OVERRIDE
- {
- return new npc_tomb_creatureAI(creature);
- }
-
struct npc_tomb_creatureAI : public ScriptedAI
{
npc_tomb_creatureAI(Creature* creature) : ScriptedAI(creature)
@@ -147,45 +386,86 @@ public:
instance = creature->GetInstanceScript();
}
- InstanceScript* instance;
+ void Reset() OVERRIDE
+ {
+ if (!me->HasAura(SPELL_POISON_PROC) && me->GetEntry() == NPC_TOMB_FIEND)
+ DoCast(me, SPELL_POISON_PROC);
- uint32 uiWebTimer;
+ if (!me->HasAura(SPELL_VIRULENT_POISON_PROC) && me->GetEntry() == NPC_TOMB_REAVER)
+ DoCast(me, SPELL_VIRULENT_POISON_PROC);
+ }
- void Reset() OVERRIDE
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ if (instance)
+ instance->SetData(DATA_WAVE, me->GetEntry());
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
- uiWebTimer = urand(5000, 8000);
+ events.ScheduleEvent(EVENT_WEB, urand(5000, 8000));
}
- void UpdateAI(uint32 uiDiff) OVERRIDE
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- //from acid
- if (me->GetEntry() == NPC_TOMB_REAVER)
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
{
- if (uiWebTimer <= uiDiff)
+ switch (eventId)
{
- DoCastVictim(SPELL_WEB);
- uiWebTimer = urand(7000, 16000);
- } else uiWebTimer -= uiDiff;
+ case EVENT_WEB:
+ DoCastVictim(SPELL_WEB);
+ events.ScheduleEvent(EVENT_WEB, urand(7000, 16000));
+ break;
+ }
}
-
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/) OVERRIDE
+ private:
+ InstanceScript* instance;
+ EventMap events;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_tomb_creatureAI(creature);
+ }
+};
+
+/*######
+## go_gong
+######*/
+
+class go_gong : public GameObjectScript
+{
+public:
+ go_gong() : GameObjectScript("go_gong") { }
+
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
+ {
+ InstanceScript* instance = go->GetInstanceScript();
+
+ if (instance)
{
- if (instance)
- instance->SetData(DATA_GONG_WAVES, instance->GetData(DATA_GONG_WAVES)+1);
+ go->SendCustomAnim(0);
+ instance->SetData(DATA_WAVE, IN_PROGRESS);
+ return true;
}
- };
+ return false;
+ }
};
void AddSC_razorfen_downs()
{
new npc_henry_stern();
- new go_gong();
+ new npc_belnistrasz();
+ new npc_idol_room_spawner();
new npc_tomb_creature();
+ new go_gong();
}
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h
index c0f63474f23..9fe5314fda0 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h
@@ -18,27 +18,56 @@
#ifndef DEF_RAZORFEN_DOWNS_H
#define DEF_RAZORFEN_DOWNS_H
-enum Data
+#define RFDScriptName "instance_razorfen_downs"
+
+uint32 const EncounterCount = 5;
+
+enum DataTypes
{
- BOSS_TUTEN_KASH,
- DATA_GONG_WAVES
+ // Main Bosses
+ DATA_TUTEN_KASH = 0,
+ DATA_MORDRESH_FIRE_EYE = 1,
+ DATA_GLUTTON = 2,
+ DATA_AMNENNAR_THE_COLD_BRINGER = 3,
+ // Events
+ DATA_GONG = 4,
+ DATA_WAVE = 5,
+ DATA_EXTINGUISHING_THE_IDOL = 6
};
-enum Data64
+enum CreatureIds
{
- DATA_GONG
+ // Used in Tuten Kash summon event
+ NPC_TOMB_FIEND = 7349,
+ NPC_TOMB_REAVER = 7351,
+ NPC_TUTEN_KASH = 7355,
+ // Used for quest 3525 "Extinguishing the Idol"
+ NPC_IDOL_ROOM_SPAWNER = 8611,
+ NPC_WITHERED_BATTLE_BOAR = 7333,
+ NPC_DEATHS_HEAD_GEOMANCER = 7335,
+ NPC_WITHERED_QUILGUARD = 7329,
+ NPC_PLAGUEMAW_THE_ROTTING = 7356
};
enum GameObjectIds
{
- GO_GONG = 148917
+ // Used for Tuten Kash summon event
+ GO_GONG = 148917,
+ // Used for quest 3525 "Extinguishing the Idol"
+ GO_IDOL_OVEN_FIRE = 151951,
+ GO_IDOL_CUP_FIRE = 151952,
+ GO_IDOL_MOUTH_FIRE = 151973,
+ GO_BELNISTRASZS_BRAZIER = 152097
};
-enum CreatureId
+template<class AI>
+CreatureAI* GetRazorfenDownsAI(Creature* creature)
{
- NPC_TOMB_FIEND = 7349,
- NPC_TOMB_REAVER = 7351,
- NPC_TUTEN_KASH = 7355
-};
+ if (InstanceMap* instance = creature->GetMap()->ToInstanceMap())
+ if (instance->GetInstanceScript())
+ if (instance->GetScriptId() == sObjectMgr->GetScriptId(RFDScriptName))
+ return new AI(creature);
+ return NULL;
+}
#endif
diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
index ee8618eacc9..35fea896a10 100644
--- a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
@@ -176,6 +176,7 @@ public:
void Reset() OVERRIDE
{
IsMovementActive = false;
+ TargetTubberGUID = 0;
}
void MovementInform(uint32 type, uint32 id) OVERRIDE
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
index d1f0bb10ecd..d2b5b5eaf8c 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
@@ -922,6 +922,7 @@ public:
{
eye_tentacleAI(Creature* creature) : ScriptedAI(creature)
{
+ Portal = 0;
if (Creature* pPortal = me->SummonCreature(NPC_SMALL_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
{
pPortal->SetReactState(REACT_PASSIVE);
@@ -999,6 +1000,7 @@ public:
{
SetCombatMovement(false);
+ Portal = 0;
if (Creature* pPortal = me->SummonCreature(NPC_SMALL_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
{
pPortal->SetReactState(REACT_PASSIVE);
@@ -1109,6 +1111,7 @@ public:
{
SetCombatMovement(false);
+ Portal = 0;
if (Creature* pPortal = me->SummonCreature(NPC_GIANT_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
{
pPortal->SetReactState(REACT_PASSIVE);
@@ -1228,6 +1231,7 @@ public:
{
SetCombatMovement(false);
+ Portal = 0;
if (Creature* pPortal = me->SummonCreature(NPC_GIANT_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
{
pPortal->SetReactState(REACT_PASSIVE);
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
index 8f6b951d524..3fdfc0c8ae3 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -310,8 +310,6 @@ class npc_snobold_vassal : public CreatureScript
_targetGUID = 0;
_targetDied = false;
- if (_instance)
- _bossGUID = _instance->GetData64(NPC_GORMOK);
//Workaround for Snobold
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
}
@@ -450,7 +448,6 @@ class npc_snobold_vassal : public CreatureScript
private:
EventMap _events;
InstanceScript* _instance;
- uint64 _bossGUID;
uint64 _targetGUID;
bool _targetDied;
};
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
index 6b746222a72..96b772df5a9 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
@@ -1121,6 +1121,7 @@ enum TrashSpells
SPELL_FROSTBOLT = 72166,
SPELL_CHAINS_OF_ICE = 72121,
SPELL_HALLUCINATION = 72342,
+ AURA_HALLUCINATION = 72343,
// Phantom Hallucination (same as phantom mage + HALLUCINATION_2 when dies)
SPELL_HALLUCINATION_2 = 72344,
@@ -1180,13 +1181,11 @@ enum TrashEvents
struct npc_gauntlet_trash : public ScriptedAI
{
- npc_gauntlet_trash(Creature* creature) : ScriptedAI(creature),
- _instance(creature->GetInstanceScript())
- {
- }
+ npc_gauntlet_trash(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { }
void Reset() OVERRIDE
{
+ InternalWaveId = 0;
me->CastSpell(me, SPELL_WELL_OF_SOULS, true);
_events.Reset();
}
@@ -1226,9 +1225,7 @@ public:
struct npc_ghostly_priestAI : public npc_gauntlet_trash
{
- npc_ghostly_priestAI(Creature* creature) : npc_gauntlet_trash(creature)
- {
- }
+ npc_ghostly_priestAI(Creature* creature) : npc_gauntlet_trash(creature) { }
void EnterCombat(Unit* /*who*/) OVERRIDE
{
@@ -1297,8 +1294,12 @@ public:
struct npc_phantom_mageAI : public npc_gauntlet_trash
{
- npc_phantom_mageAI(Creature* creature) : npc_gauntlet_trash(creature)
+ npc_phantom_mageAI(Creature* creature) : npc_gauntlet_trash(creature) { }
+
+ void EnterEvadeMode() OVERRIDE
{
+ if (!me->HasAura(AURA_HALLUCINATION))
+ npc_gauntlet_trash::EnterEvadeMode();
}
void EnterCombat(Unit* /*who*/) OVERRIDE
@@ -1342,6 +1343,8 @@ public:
_events.ScheduleEvent(EVENT_CHAINS_OF_ICE, 15000);
break;
case EVENT_HALLUCINATION:
+ // removing any dots on mage or else the invisibility spell will break duration
+ me->RemoveAllAuras();
DoCast(SPELL_HALLUCINATION);
break;
}
@@ -1365,6 +1368,19 @@ public:
{
npc_phantom_hallucinationAI(Creature* creature) : npc_phantom_mage::npc_phantom_mageAI(creature) { }
+ void Reset() OVERRIDE
+ {
+ if (Unit* unit = me->SelectNearestTarget())
+ AttackStart(unit);
+ DoZoneInCombat();
+ }
+
+ void EnterEvadeMode() OVERRIDE
+ {
+ if (!me->GetOwner()->HasAura(AURA_HALLUCINATION))
+ npc_phantom_mage::npc_phantom_mageAI::EnterEvadeMode();
+ }
+
void JustDied(Unit* /*killer*/) OVERRIDE
{
DoCast(SPELL_HALLUCINATION_2);
@@ -1384,9 +1400,7 @@ public:
struct npc_shadowy_mercenaryAI : public npc_gauntlet_trash
{
- npc_shadowy_mercenaryAI(Creature* creature) : npc_gauntlet_trash(creature)
- {
- }
+ npc_shadowy_mercenaryAI(Creature* creature) : npc_gauntlet_trash(creature) { }
void EnterCombat(Unit* /*who*/) OVERRIDE
{
@@ -1444,9 +1458,7 @@ public:
struct npc_spectral_footmanAI : public npc_gauntlet_trash
{
- npc_spectral_footmanAI(Creature* creature) : npc_gauntlet_trash(creature)
- {
- }
+ npc_spectral_footmanAI(Creature* creature) : npc_gauntlet_trash(creature) { }
void EnterCombat(Unit* /*who*/) OVERRIDE
{
@@ -1498,9 +1510,7 @@ public:
struct npc_tortured_riflemanAI : public npc_gauntlet_trash
{
- npc_tortured_riflemanAI(Creature* creature) : npc_gauntlet_trash(creature)
- {
- }
+ npc_tortured_riflemanAI(Creature* creature) : npc_gauntlet_trash(creature) { }
void EnterCombat(Unit* /*who*/) OVERRIDE
{
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
index 0599596fc0a..955f4fb1568 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
@@ -110,10 +110,13 @@ public:
void OnCreatureCreate(Creature* creature) OVERRIDE
{
- Map::PlayerList const& players = instance->GetPlayers();
- if (!players.isEmpty())
- if (Player* player = players.begin()->GetSource())
- _teamInInstance = player->GetTeam();
+ if (!_teamInInstance)
+ {
+ Map::PlayerList const& players = instance->GetPlayers();
+ if (!players.isEmpty())
+ if (Player* player = players.begin()->GetSource())
+ _teamInInstance = player->GetTeam();
+ }
switch (creature->GetEntry())
{
@@ -184,7 +187,7 @@ public:
case GO_ARTHAS_DOOR:
_arthasDoorGUID = go->GetGUID();
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND);
- if (GetBossState(DATA_FROSWORN_EVENT) == DONE)
+ if (GetData(DATA_FROSWORN_EVENT) == DONE)
HandleGameObject(0, true, go);
else
HandleGameObject(0, false, go);
@@ -511,13 +514,13 @@ public:
OUT_SAVE_INST_DATA;
std::ostringstream saveStream;
- saveStream << "H R " << GetBossSaveData() << _introEvent << ' ' << _frostwornGeneral << _escapeevent;
+ saveStream << "H R " << GetBossSaveData() << _introEvent << ' ' << _frostwornGeneral << ' ' << _escapeevent;
OUT_SAVE_INST_DATA_COMPLETE;
return saveStream.str();
}
- void Load(char const* in) OVERRIDE OVERRIDE
+ void Load(char const* in) OVERRIDE
{
if (!in)
{
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
index 20b7d39815f..4a9a41f6f8e 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
@@ -187,7 +187,7 @@ class boss_garfrost : public CreatureScript
switch (eventId)
{
case EVENT_THROW_SARONITE:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
{
Talk(SAY_THROW_SARONITE, target->GetGUID());
DoCast(target, SPELL_THROW_SARONITE);
@@ -199,7 +199,7 @@ class boss_garfrost : public CreatureScript
events.ScheduleEvent(EVENT_CHILLING_WAVE, 40000, 0, PHASE_TWO);
break;
case EVENT_DEEP_FREEZE:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
{
Talk(SAY_CAST_DEEP_FREEZE, target->GetGUID());
DoCast(target, SPELL_DEEP_FREEZE);
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp
index 7aa8b123f98..d61fc69a0ae 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp
@@ -63,7 +63,7 @@ class instance_pit_of_saron : public InstanceMapScript
{
if (!_teamInInstance)
{
- Map::PlayerList const &players = instance->GetPlayers();
+ Map::PlayerList const& players = instance->GetPlayers();
if (!players.isEmpty())
if (Player* player = players.begin()->GetSource())
_teamInInstance = player->GetTeam();
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
index 68387279c1d..f76c46d96ff 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
@@ -514,6 +514,7 @@ class npc_gothik_minion : public CreatureScript
npc_gothik_minionAI(Creature* creature) : CombatAI(creature)
{
liveSide = IN_LIVE_SIDE(me);
+ gateClose = false;
}
bool liveSide;
diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp
index a1511fb3dd8..4777b451e4e 100644
--- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp
+++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp
@@ -165,7 +165,7 @@ public:
unit->SetControlled(true, UNIT_STATE_ROOT);
}
- void ProcessEvent(WorldObject* /*obj*/, uint32 eventId)
+ void ProcessEvent(WorldObject* /*obj*/, uint32 eventId) OVERRIDE
{
if (eventId == EVENT_FOCUSING_IRIS)
{
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
index 96fadc7002b..b108378910e 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
@@ -179,7 +179,7 @@ class instance_oculus : public InstanceMapScript
}
}
- void ProcessEvent(WorldObject* /*unit*/, uint32 eventId)
+ void ProcessEvent(WorldObject* /*unit*/, uint32 eventId) OVERRIDE
{
if (eventId != EVENT_CALL_DRAGON)
return;
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
index 4b24e5a81fb..1230868c020 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
@@ -38,44 +38,45 @@ enum GossipNPCs
enum Drakes
{
-/*Ruby Drake,
-(npc 27756) (item 37860)
-(summoned by spell Ruby Essence = 37860 ---> Call Amber Drake == 49462 ---> Summon 27756)
-*/
- SPELL_RIDE_RUBY_DRAKE_QUE = 49463, //Apply Aura: Periodic Trigger, Interval: 3 seconds ---> 49464
- SPELL_RUBY_DRAKE_SADDLE = 49464, //Allows you to ride on the back of an Amber Drake. ---> Dummy
- SPELL_RUBY_SEARING_WRATH = 50232, //(60 yds) - Instant - Breathes a stream of fire at an enemy dragon, dealing 6800 to 9200 Fire damage and then jumping to additional dragons within 30 yards. Each jump increases the damage by 50%. Affects up to 5 total targets
- SPELL_RUBY_EVASIVE_AURA = 50248, //Instant - Allows the Ruby Drake to generate Evasive Charges when hit by hostile attacks and spells.
- SPELL_RUBY_EVASIVE_MANEUVERS = 50240, //Instant - 5 sec. cooldown - Allows your drake to dodge all incoming attacks and spells. Requires Evasive Charges to use. Each attack or spell dodged while this ability is active burns one Evasive Charge. Lasts 30 sec. or until all charges are exhausted.
- //you do not have acces to until you kill Mage-Lord Urom
- SPELL_RUBY_MARTYR = 50253, //Instant - 10 sec. cooldown - Redirect all harmful spells cast at friendly drakes to yourself for 10 sec.
-
-/*Amber Drake,
-(npc 27755) (item 37859)
-(summoned by spell Amber Essence = 37859 ---> Call Amber Drake == 49461 ---> Summon 27755)
-*/
- SPELL_RIDE_AMBER_DRAKE_QUE = 49459, //Apply Aura: Periodic Trigger, Interval: 3 seconds ---> 49460
- SPELL_AMBER_DRAKE_SADDLE = 49460, //Allows you to ride on the back of an Amber Drake. ---> Dummy
- SPELL_AMBER_SHOCK_CHARGE = 49836,
- SPELL_AMBER_SHOCK_LANCE = 49840, //(60 yds) - Instant - Deals 4822 to 5602 Arcane damage and detonates all Shock Charges on an enemy dragon. Damage is increased by 6525 for each detonated.
- // SPELL_AMBER_STOP_TIME //Instant - 1 min cooldown - Halts the passage of time, freezing all enemy dragons in place for 10 sec. This attack applies 5 Shock Charges to each affected target.
- //you do not have access to until you kill the Mage-Lord Urom.
- SPELL_AMBER_TEMPORAL_RIFT = 49592, //(60 yds) - Channeled - Channels a temporal rift on an enemy dragon for 10 sec. While trapped in the rift, all damage done to the target is increased by 100%. In addition, for every 15, 000 damage done to a target affected by Temporal Rift, 1 Shock Charge is generated.
-
-/*Emerald Drake,
-(npc 27692) (item 37815),
- (summoned by spell Emerald Essence = 37815 ---> Call Emerald Drake == 49345 ---> Summon 27692)
-*/
- SPELL_RIDE_EMERALD_DRAKE_QUE = 49427, //Apply Aura: Periodic Trigger, Interval: 3 seconds ---> 49346
- SPELL_EMERALD_DRAKE_SADDLE = 49346, //Allows you to ride on the back of an Amber Drake. ---> Dummy
- SPELL_EMERALD_LEECHING_POISON = 50328, //(60 yds) - Instant - Poisons the enemy dragon, leeching 1300 to the caster every 2 sec. for 12 sec. Stacks up to 3 times.
- SPELL_EMERALD_TOUCH_THE_NIGHTMARE = 50341, //(60 yds) - Instant - Consumes 30% of the caster's max health to inflict 25, 000 nature damage to an enemy dragon and reduce the damage it deals by 25% for 30 sec.
+/*
+ * Ruby Drake (27756)
+ * (summoned by spell Ruby Essence (37860) --> Call Amber Drake (49462) --> Summon 27756)
+ */
+ SPELL_RIDE_RUBY_DRAKE_QUE = 49463, // Apply Aura: Periodic Trigger, Interval: 3 seconds --> 49464
+ SPELL_RUBY_DRAKE_SADDLE = 49464, // Allows you to ride on the back of an Amber Drake. --> Dummy
+ SPELL_RUBY_SEARING_WRATH = 50232, // (60 yds) - Instant - Breathes a stream of fire at an enemy dragon, dealing 6800 to 9200 Fire damage and then jumping to additional dragons within 30 yards. Each jump increases the damage by 50%. Affects up to 5 total targets
+ SPELL_RUBY_EVASIVE_AURA = 50248, // Instant - Allows the Ruby Drake to generate Evasive Charges when hit by hostile attacks and spells.
+ SPELL_RUBY_EVASIVE_CHARGES = 50241,
+ SPELL_RUBY_EVASIVE_MANEUVERS = 50240, // Instant - 5 sec. cooldown - Allows your drake to dodge all incoming attacks and spells. Requires Evasive Charges to use. Each attack or spell dodged while this ability is active burns one Evasive Charge. Lasts 30 sec. or until all charges are exhausted.
+ // you do not have acces to until you kill Mage-Lord Urom
+ SPELL_RUBY_MARTYR = 50253, // Instant - 10 sec. cooldown - Redirect all harmful spells cast at friendly drakes to yourself for 10 sec.
+
+/*
+ * Amber Drake (27755)
+ * (summoned by spell Amber Essence (37859) --> Call Amber Drake (49461) --> Summon 27755)
+ */
+ SPELL_RIDE_AMBER_DRAKE_QUE = 49459, // Apply Aura: Periodic Trigger, Interval: 3 seconds --> 49460
+ SPELL_AMBER_DRAKE_SADDLE = 49460, // Allows you to ride on the back of an Amber Drake. --> Dummy
+ SPELL_AMBER_SHOCK_CHARGE = 49836,
+ SPELL_AMBER_SHOCK_LANCE = 49840, // (60 yds) - Instant - Deals 4822 to 5602 Arcane damage and detonates all Shock Charges on an enemy dragon. Damage is increased by 6525 for each detonated.
+ SPELL_AMBER_STOP_TIME = 49838, // Instant - 1 min cooldown - Halts the passage of time, freezing all enemy dragons in place for 10 sec. This attack applies 5 Shock Charges to each affected target.
+ // you do not have access to until you kill the Mage-Lord Urom.
+ SPELL_AMBER_TEMPORAL_RIFT = 49592, // (60 yds) - Channeled - Channels a temporal rift on an enemy dragon for 10 sec. While trapped in the rift, all damage done to the target is increased by 100%. In addition, for every 15, 000 damage done to a target affected by Temporal Rift, 1 Shock Charge is generated.
+
+/*
+ * Emerald Drake (27692)
+ * (summoned by spell Emerald Essence (37815) --> Call Emerald Drake (49345) --> Summon 27692)
+ */
+ SPELL_RIDE_EMERALD_DRAKE_QUE = 49427, // Apply Aura: Periodic Trigger, Interval: 3 seconds --> 49346
+ SPELL_EMERALD_DRAKE_SADDLE = 49346, // Allows you to ride on the back of an Amber Drake. --> Dummy
+ SPELL_EMERALD_LEECHING_POISON = 50328, // (60 yds) - Instant - Poisons the enemy dragon, leeching 1300 to the caster every 2 sec. for 12 sec. Stacks up to 3 times.
+ SPELL_EMERALD_TOUCH_THE_NIGHTMARE = 50341, // (60 yds) - Instant - Consumes 30% of the caster's max health to inflict 25, 000 nature damage to an enemy dragon and reduce the damage it deals by 25% for 30 sec.
// you do not have access to until you kill the Mage-Lord Urom
- SPELL_EMERALD_DREAM_FUNNEL = 50344, //(60 yds) - Channeled - Transfers 5% of the caster's max health to a friendly drake every second for 10 seconds as long as the caster channels.
+ SPELL_EMERALD_DREAM_FUNNEL = 50344, // (60 yds) - Channeled - Transfers 5% of the caster's max health to a friendly drake every second for 10 seconds as long as the caster channels.
// Misc
- POINT_LAND = 2,
- POINT_TAKE_OFF = 3
+ POINT_LAND = 2,
+ POINT_TAKE_OFF = 3
};
enum DrakeEvents
@@ -432,6 +433,85 @@ class spell_oculus_ride_ruby_emerald_amber_drake_que : public SpellScriptLoader
}
};
+// 50240 - Evasive Maneuvers
+class spell_oculus_evasive_maneuvers : public SpellScriptLoader
+{
+ public:
+ spell_oculus_evasive_maneuvers() : SpellScriptLoader("spell_oculus_evasive_maneuvers") { }
+
+ class spell_oculus_evasive_maneuvers_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_oculus_evasive_maneuvers_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_RUBY_EVASIVE_CHARGES))
+ return false;
+ return true;
+ }
+
+ void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& /*eventInfo*/)
+ {
+ PreventDefaultAction();
+ GetTarget()->RemoveAuraFromStack(SPELL_RUBY_EVASIVE_CHARGES);
+ if (!GetTarget()->HasAura(SPELL_RUBY_EVASIVE_CHARGES))
+ Remove();
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectProc += AuraEffectProcFn(spell_oculus_evasive_maneuvers_AuraScript::HandleProc, EFFECT_2, SPELL_AURA_PROC_TRIGGER_SPELL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_oculus_evasive_maneuvers_AuraScript();
+ }
+};
+
+// 49840 - Shock Lance
+class spell_oculus_shock_lance : public SpellScriptLoader
+{
+ public:
+ spell_oculus_shock_lance() : SpellScriptLoader("spell_oculus_shock_lance") { }
+
+ class spell_oculus_shock_lance_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_oculus_shock_lance_SpellScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_AMBER_SHOCK_CHARGE))
+ return false;
+ return true;
+ }
+
+ void CalcDamage()
+ {
+ int32 damage = GetHitDamage();
+ if (Unit* target = GetHitUnit())
+ if (AuraEffect const* shockCharges = target->GetAuraEffect(SPELL_AMBER_SHOCK_CHARGE, EFFECT_0, GetCaster()->GetGUID()))
+ {
+ damage += shockCharges->GetAmount();
+ shockCharges->GetBase()->Remove();
+ }
+
+ SetHitDamage(damage);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnHit += SpellHitFn(spell_oculus_shock_lance_SpellScript::CalcDamage);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_oculus_shock_lance_SpellScript();
+ }
+};
+
// 49838 - Stop Time
class spell_oculus_stop_time : public SpellScriptLoader
{
@@ -457,7 +537,7 @@ class spell_oculus_stop_time : public SpellScriptLoader
Unit* target = GetTarget();
for (uint32 i = 0; i < 5; ++i)
- caster->CastSpell(target, SPELL_AMBER_SHOCK_CHARGE, false);
+ caster->CastSpell(target, SPELL_AMBER_SHOCK_CHARGE, true);
}
void Register() OVERRIDE
@@ -472,6 +552,51 @@ class spell_oculus_stop_time : public SpellScriptLoader
}
};
+// 49592 - Temporal Rift
+class spell_oculus_temporal_rift : public SpellScriptLoader
+{
+ public:
+ spell_oculus_temporal_rift() : SpellScriptLoader("spell_oculus_temporal_rift") { }
+
+ class spell_oculus_temporal_rift_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_oculus_temporal_rift_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_AMBER_SHOCK_CHARGE))
+ return false;
+ return true;
+ }
+
+ void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+ int32 amount = aurEff->GetAmount() + eventInfo.GetDamageInfo()->GetDamage();
+
+ if (amount >= 15000)
+ {
+ if (Unit* caster = GetCaster())
+ caster->CastSpell(GetTarget(), SPELL_AMBER_SHOCK_CHARGE, true);
+ amount -= 15000;
+ }
+
+ const_cast<AuraEffect*>(aurEff)->SetAmount(amount);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectProc += AuraEffectProcFn(spell_oculus_temporal_rift_AuraScript::HandleProc, EFFECT_2, SPELL_AURA_DUMMY);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_oculus_temporal_rift_AuraScript();
+ }
+};
+
+// 50341 - Touch the Nightmare
class spell_oculus_touch_the_nightmare : public SpellScriptLoader
{
public:
@@ -498,7 +623,8 @@ class spell_oculus_touch_the_nightmare : public SpellScriptLoader
}
};
-class spell_oculus_dream_funnel: public SpellScriptLoader
+// 50344 - Dream Funnel
+class spell_oculus_dream_funnel : public SpellScriptLoader
{
public:
spell_oculus_dream_funnel() : SpellScriptLoader("spell_oculus_dream_funnel") { }
@@ -535,7 +661,10 @@ void AddSC_oculus()
new npc_ruby_emerald_amber_drake();
new spell_oculus_call_ruby_emerald_amber_drake();
new spell_oculus_ride_ruby_emerald_amber_drake_que();
+ new spell_oculus_evasive_maneuvers();
+ new spell_oculus_shock_lance();
new spell_oculus_stop_time();
+ new spell_oculus_temporal_rift();
new spell_oculus_touch_the_nightmare();
new spell_oculus_dream_funnel();
}
diff --git a/src/server/scripts/Northrend/zone_grizzly_hills.cpp b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
index 9ea3023de01..6587f0536b3 100644
--- a/src/server/scripts/Northrend/zone_grizzly_hills.cpp
+++ b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
@@ -20,7 +20,9 @@
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
#include "Player.h"
+#include "Spell.h"
#include "SpellInfo.h"
+#include "SpellScript.h"
#include "CreatureTextMgr.h"
/*######
@@ -749,6 +751,43 @@ public:
}
};
+enum ShredderDelivery
+{
+ NPC_BROKEN_DOWN_SHREDDER = 27354
+};
+
+class spell_shredder_delivery : public SpellScriptLoader
+{
+ public:
+ spell_shredder_delivery() : SpellScriptLoader("spell_shredder_delivery") { }
+
+ class spell_shredder_delivery_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_shredder_delivery_SpellScript);
+
+ bool Load() OVERRIDE
+ {
+ return GetCaster()->GetTypeId() == TYPEID_UNIT;
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ if (GetCaster()->ToCreature()->GetEntry() == NPC_BROKEN_DOWN_SHREDDER)
+ GetCaster()->ToCreature()->DespawnOrUnsummon();
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_shredder_delivery_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_shredder_delivery_SpellScript();
+ }
+};
+
void AddSC_grizzly_hills()
{
new npc_emily();
@@ -759,4 +798,5 @@ void AddSC_grizzly_hills()
new npc_wounded_skirmisher();
new npc_venture_co_straggler();
new npc_lake_frog();
+ new spell_shredder_delivery();
}
diff --git a/src/server/scripts/Northrend/zone_howling_fjord.cpp b/src/server/scripts/Northrend/zone_howling_fjord.cpp
index 671628e4cbc..fd5b0a5ca1c 100644
--- a/src/server/scripts/Northrend/zone_howling_fjord.cpp
+++ b/src/server/scripts/Northrend/zone_howling_fjord.cpp
@@ -32,6 +32,8 @@ EndContentData */
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
#include "Player.h"
+#include "SpellInfo.h"
+#include "SpellScript.h"
/*######
## npc_apothecary_hanes
@@ -43,7 +45,8 @@ enum Entries
FACTION_ESCORTEE_H = 775,
NPC_HANES_FIRE_TRIGGER = 23968,
QUEST_TRAIL_OF_FIRE = 11241,
- SPELL_COSMETIC_LOW_POLY_FIRE = 56274
+ SPELL_COSMETIC_LOW_POLY_FIRE = 56274,
+ SPELL_HEALING_POTION = 17534
};
class npc_apothecary_hanes : public CreatureScript
@@ -92,7 +95,7 @@ public:
{
if (PotTimer <= diff)
{
- DoCast(me, 17534, true);
+ DoCast(me, SPELL_HEALING_POTION, true);
PotTimer = 10000;
} else PotTimer -= diff;
}
@@ -380,10 +383,107 @@ public:
}
};
+enum MindlessAbomination
+{
+ EVENT_CHECK_CHARMED = 1
+};
+
+class npc_mindless_abomination : public CreatureScript
+{
+public:
+ npc_mindless_abomination() : CreatureScript("npc_mindless_abomination") { }
+
+ struct npc_mindless_abominationAI : public ScriptedAI
+ {
+ npc_mindless_abominationAI(Creature* creature) : ScriptedAI(creature) { }
+
+ void Reset() OVERRIDE
+ {
+ events.ScheduleEvent(EVENT_CHECK_CHARMED, 1000);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_CHECK_CHARMED:
+ if (!me->IsCharmedOwnedByPlayerOrPlayer())
+ me->DespawnOrUnsummon();
+ else
+ events.ScheduleEvent(EVENT_CHECK_CHARMED, 1000);
+ break;
+ }
+ }
+ }
+
+ private:
+ EventMap events;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_mindless_abominationAI(creature);
+ }
+};
+
+class spell_mindless_abomination_explosion_fx_master : public SpellScriptLoader
+{
+ enum Spells
+ {
+ SPELL_RANDOM_CIRCUMFERENCE_POINT_POISON = 42266,
+ SPELL_COSMETIC_BLOOD_EXPLOSION_GREEN_LARGE = 43401
+ };
+
+ public:
+ spell_mindless_abomination_explosion_fx_master() : SpellScriptLoader("spell_mindless_abomination_explosion_fx_master") { }
+
+ class spell_mindless_abomination_explosion_fx_master_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_mindless_abomination_explosion_fx_master_SpellScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_RANDOM_CIRCUMFERENCE_POINT_POISON) || !sSpellMgr->GetSpellInfo(SPELL_COSMETIC_BLOOD_EXPLOSION_GREEN_LARGE))
+ return false;
+ return true;
+ }
+
+ void HandleScript(SpellEffIndex /*eff*/)
+ {
+ Creature* caster = GetCaster()->ToCreature();
+ if (!caster)
+ return;
+
+ caster->AI()->DoCast(caster, SPELL_COSMETIC_BLOOD_EXPLOSION_GREEN_LARGE);
+
+ for (uint8 i = 0; i < 10; ++i)
+ caster->AI()->DoCast(caster, SPELL_RANDOM_CIRCUMFERENCE_POINT_POISON);
+
+ caster->DespawnOrUnsummon(4000);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_mindless_abomination_explosion_fx_master_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_mindless_abomination_explosion_fx_master_SpellScript();
+ }
+};
+
void AddSC_howling_fjord()
{
- new npc_apothecary_hanes;
- new npc_plaguehound_tracker;
- new npc_razael_and_lyana;
- new npc_daegarn;
+ new npc_apothecary_hanes();
+ new npc_plaguehound_tracker();
+ new npc_razael_and_lyana();
+ new npc_daegarn();
+ new npc_mindless_abomination();
+ new spell_mindless_abomination_explosion_fx_master();
}
diff --git a/src/server/scripts/Northrend/zone_icecrown.cpp b/src/server/scripts/Northrend/zone_icecrown.cpp
index b20efa1c5a5..5c65be982e0 100644
--- a/src/server/scripts/Northrend/zone_icecrown.cpp
+++ b/src/server/scripts/Northrend/zone_icecrown.cpp
@@ -25,91 +25,6 @@
#include "CombatAI.h"
/*######
-## npc_arete
-######*/
-
-#define GOSSIP_ARETE_ITEM1 "Lord-Commander, I would hear your tale."
-#define GOSSIP_ARETE_ITEM2 "<You nod slightly but do not complete the motion as the Lord-Commander narrows his eyes before he continues.>"
-#define GOSSIP_ARETE_ITEM3 "I thought that they now called themselves the Scarlet Onslaught?"
-#define GOSSIP_ARETE_ITEM4 "Where did the grand admiral go?"
-#define GOSSIP_ARETE_ITEM5 "That's fine. When do I start?"
-#define GOSSIP_ARETE_ITEM6 "Let's finish this!"
-#define GOSSIP_ARETE_ITEM7 "That's quite a tale, Lord-Commander."
-
-enum Arete
-{
- GOSSIP_TEXTID_ARETE1 = 13525,
- GOSSIP_TEXTID_ARETE2 = 13526,
- GOSSIP_TEXTID_ARETE3 = 13527,
- GOSSIP_TEXTID_ARETE4 = 13528,
- GOSSIP_TEXTID_ARETE5 = 13529,
- GOSSIP_TEXTID_ARETE6 = 13530,
- GOSSIP_TEXTID_ARETE7 = 13531,
-
- QUEST_THE_STORY_THUS_FAR = 12807
-};
-
-class npc_arete : public CreatureScript
-{
-public:
- npc_arete() : CreatureScript("npc_arete") { }
-
- bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
- {
- if (creature->IsQuestGiver())
- player->PrepareQuestMenu(creature->GetGUID());
-
- if (player->GetQuestStatus(QUEST_THE_STORY_THUS_FAR) == QUEST_STATUS_INCOMPLETE)
- {
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE1, creature->GetGUID());
- return true;
- }
-
- player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
- return true;
- }
-
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
- {
- player->PlayerTalkClass->ClearMenus();
- switch (action)
- {
- case GOSSIP_ACTION_INFO_DEF+1:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE2, creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+2:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE3, creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+3:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE4, creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+4:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE5, creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+5:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE6, creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+6:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE7, creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+7:
- player->CLOSE_GOSSIP_MENU();
- player->AreaExploredOrEventHappens(QUEST_THE_STORY_THUS_FAR);
- break;
- }
-
- return true;
- }
-};
-
-/*######
## npc_squire_david
######*/
@@ -1149,7 +1064,6 @@ class npc_morbidus : public CreatureScript
void AddSC_icecrown()
{
- new npc_arete;
new npc_squire_david;
new npc_argent_valiant;
new npc_guardian_pavilion;
diff --git a/src/server/scripts/Northrend/zone_sholazar_basin.cpp b/src/server/scripts/Northrend/zone_sholazar_basin.cpp
index 77b85037a01..a0b6524bd89 100644
--- a/src/server/scripts/Northrend/zone_sholazar_basin.cpp
+++ b/src/server/scripts/Northrend/zone_sholazar_basin.cpp
@@ -1082,6 +1082,57 @@ public:
}
};
+/*######
+## Quest Dreadsaber Mastery: Stalking the Prey (12550)
+######*/
+
+enum ShangoTracks
+{
+ SPELL_CORRECT_TRACKS = 52160,
+ SPELL_INCORRECT_TRACKS = 52163,
+ SAY_CORRECT_TRACKS = 28634,
+ SAY_INCORRECT_TRACKS = 28635
+};
+
+class spell_shango_tracks : public SpellScriptLoader
+{
+public:
+ spell_shango_tracks() : SpellScriptLoader("spell_shango_tracks") { }
+
+ class spell_shango_tracks_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_shango_tracks_SpellScript);
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ if (Player* player = GetHitUnit()->ToPlayer())
+ {
+ switch (GetSpellInfo()->Id)
+ {
+ case SPELL_CORRECT_TRACKS:
+ player->MonsterSay(sObjectMgr->GetTrinityStringForDBCLocale(SAY_CORRECT_TRACKS), LANG_UNIVERSAL, player->GetGUID());
+ break;
+ case SPELL_INCORRECT_TRACKS:
+ player->MonsterSay(sObjectMgr->GetTrinityStringForDBCLocale(SAY_INCORRECT_TRACKS), LANG_UNIVERSAL, player->GetGUID());
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_shango_tracks_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_shango_tracks_SpellScript();
+ }
+};
+
void AddSC_sholazar_basin()
{
new npc_injured_rainspeaker_oracle();
@@ -1095,4 +1146,5 @@ void AddSC_sholazar_basin()
new spell_q12589_shoot_rjr();
new npc_haiphoon();
new npc_vics_flying_machine();
+ new spell_shango_tracks();
}
diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp
index 825981ba5c5..d08c60d373d 100644
--- a/src/server/scripts/Northrend/zone_storm_peaks.cpp
+++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp
@@ -413,6 +413,181 @@ class npc_hyldsmeet_protodrake : public CreatureScript
}
};
+
+/*#####
+# npc_brann_bronzebeard for Quest 13285 "Forging the Keystone"
+#####*/
+
+enum BrannBronzebeard
+{
+ NPC_BRANN_BRONZEBEARD = 31810,
+ NPC_A_DISTANT_VOICE = 31814,
+ OBJECT_TOL_SIGNAL_1 = 193590,
+ OBJECT_TOL_SIGNAL_2 = 193591,
+ OBJECT_TOL_SIGNAL_3 = 193592,
+ OBJECT_TOL_SIGNAL_4 = 193593,
+ OBJECT_TOL_SIGNAL_5 = 193594,
+ SPELL_RESURRECTION = 58854,
+ SAY_BRANN_1 = 0,
+ SAY_BRANN_2 = 1,
+ SAY_BRANN_3 = 2,
+ SAY_VOICE_1 = 0,
+ SAY_VOICE_2 = 1,
+ SAY_VOICE_3 = 2,
+ SAY_VOICE_4 = 3,
+ SAY_VOICE_5 = 4,
+
+ EVENT_SCRIPT_1 = 1,
+ EVENT_SCRIPT_2 = 2,
+ EVENT_SCRIPT_3 = 3,
+ EVENT_SCRIPT_4 = 4,
+ EVENT_SCRIPT_5 = 5,
+ EVENT_SCRIPT_6 = 6,
+ EVENT_SCRIPT_7 = 7,
+ EVENT_SCRIPT_8 = 8,
+ EVENT_SCRIPT_9 = 9,
+ EVENT_SCRIPT_10 = 10,
+ EVENT_SCRIPT_11 = 11,
+ EVENT_SCRIPT_12 = 12,
+ EVENT_SCRIPT_13 = 13
+};
+
+class npc_brann_bronzebeard_keystone : public CreatureScript
+{
+public:
+ npc_brann_bronzebeard_keystone() : CreatureScript("npc_brann_bronzebeard_keystone") { }
+
+ struct npc_brann_bronzebeard_keystoneAI : public ScriptedAI
+ {
+ npc_brann_bronzebeard_keystoneAI(Creature* creature) : ScriptedAI(creature) { }
+
+ void Reset() OVERRIDE
+ {
+ memset(&objectGUID, 0, sizeof(objectGUID));
+ playerGUID = 0;
+ voiceGUID = 0;
+ objectCounter = 0;
+ }
+
+ void sGossipSelect(Player* player, uint32 /*sender*/, uint32 /*action*/) OVERRIDE
+ {
+ player->CLOSE_GOSSIP_MENU();
+ playerGUID = player->GetGUID();
+ events.ScheduleEvent(EVENT_SCRIPT_1, 100);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_SCRIPT_1:
+ Talk(SAY_BRANN_1, playerGUID);
+ me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
+ if (Creature* voice = me->SummonCreature(NPC_A_DISTANT_VOICE, 7863.43f, -1396.585f, 1538.076f, 2.949606f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 49000))
+ voiceGUID = voice->GetGUID();
+ events.ScheduleEvent(EVENT_SCRIPT_2, 4000);
+ break;
+ case EVENT_SCRIPT_2:
+ me->SetWalk(true);
+ me->GetMotionMaster()->MovePoint(0, 7861.488f, -1396.376f, 1534.059f, false);
+ events.ScheduleEvent(EVENT_SCRIPT_3, 6000);
+ break;
+ case EVENT_SCRIPT_3:
+ me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_WORK_MINING);
+ events.ScheduleEvent(EVENT_SCRIPT_4, 6000);
+ break;
+ case EVENT_SCRIPT_4:
+ me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID))
+ {
+ voice->AI()->DoCast(voice, SPELL_RESURRECTION);
+ voice->AI()->Talk(SAY_VOICE_1, playerGUID);
+ }
+ if (GameObject* go = me->SummonGameObject(OBJECT_TOL_SIGNAL_1, 7860.273f, -1383.622f, 1538.302f, -1.658062f, 0, 0, -0.737277f, 0.6755905f, 0))
+ objectGUID[objectCounter++] = go->GetGUID();
+ events.ScheduleEvent(EVENT_SCRIPT_5, 6000);
+ break;
+ case EVENT_SCRIPT_5:
+ if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID))
+ voice->AI()->Talk(SAY_VOICE_2, playerGUID);
+ if (GameObject* go = me->SummonGameObject(OBJECT_TOL_SIGNAL_2, 7875.67f, -1387.266f, 1538.323f, -2.373644f, 0, 0, -0.9271832f, 0.3746083f, 0))
+ objectGUID[objectCounter++] = go->GetGUID();
+ events.ScheduleEvent(EVENT_SCRIPT_6, 6000);
+ break;
+ case EVENT_SCRIPT_6:
+ if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID))
+ voice->AI()->Talk(SAY_VOICE_3, playerGUID);
+ if (GameObject* go = me->SummonGameObject(OBJECT_TOL_SIGNAL_3, 7879.212f, -1401.175f, 1538.279f, 2.967041f, 0, 0, 0.9961939f, 0.08716504f, 0))
+ objectGUID[objectCounter++] = go->GetGUID();
+ events.ScheduleEvent(EVENT_SCRIPT_7, 6000);
+ break;
+ case EVENT_SCRIPT_7:
+ if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID))
+ voice->AI()->Talk(SAY_VOICE_4, playerGUID);
+ if (GameObject* go = me->SummonGameObject(OBJECT_TOL_SIGNAL_4, 7868.944f, -1411.18f, 1538.213f, 2.111848f, 0, 0, 0.8703556f, 0.4924237f, 0))
+ objectGUID[objectCounter++] = go->GetGUID();
+ events.ScheduleEvent(EVENT_SCRIPT_8, 6000);
+ break;
+ case EVENT_SCRIPT_8:
+ if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID))
+ voice->AI()->Talk(SAY_VOICE_5, playerGUID);
+ if (GameObject* go = me->SummonGameObject(OBJECT_TOL_SIGNAL_5, 7855.11f, -1406.839f, 1538.42f, 1.151916f, 0, 0, 0.5446386f, 0.8386708f, 0))
+ objectGUID[objectCounter] = go->GetGUID();
+ events.ScheduleEvent(EVENT_SCRIPT_9, 6000);
+ break;
+ case EVENT_SCRIPT_9:
+ if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID))
+ voice->AI()->DoCast(voice, SPELL_RESURRECTION);
+ events.ScheduleEvent(EVENT_SCRIPT_10, 6000);
+ break;
+ case EVENT_SCRIPT_10:
+ Talk(SAY_BRANN_2, playerGUID);
+ if (Player* player = ObjectAccessor::GetPlayer(*me, playerGUID))
+ player->KilledMonsterCredit(me->GetEntry());
+ events.ScheduleEvent(EVENT_SCRIPT_11, 6000);
+ break;
+ case EVENT_SCRIPT_11:
+ me->SetOrientation(2.932153f);
+ me->SendMovementFlagUpdate(true);
+ Talk(SAY_BRANN_3, playerGUID);
+ for (uint8 i = 0; i < 5; ++i)
+ {
+ if (GameObject* go = ObjectAccessor::GetGameObject(*me, objectGUID[i]))
+ go->Delete();
+ }
+ events.ScheduleEvent(EVENT_SCRIPT_12, 6000);
+ break;
+ case EVENT_SCRIPT_12:
+ me->GetMotionMaster()->Clear();
+ me->SetWalk(false);
+ me->GetMotionMaster()->MovePoint(0, 7799.908f, -1413.561f, 1534.829f, false);
+ events.ScheduleEvent(EVENT_SCRIPT_13, 10000);
+ break;
+ case EVENT_SCRIPT_13:
+ me->DisappearAndDie();
+ break;
+ }
+ }
+ }
+
+ private:
+ EventMap events;
+ uint64 playerGUID;
+ uint64 objectGUID[5];
+ uint64 voiceGUID;
+ uint8 objectCounter;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_brann_bronzebeard_keystoneAI(creature);
+ }
+};
+
enum CloseRift
{
SPELL_DESPAWN_RIFT = 61665
@@ -467,7 +642,11 @@ class spell_close_rift : public SpellScriptLoader
enum JokkumScriptcast
{
SPELL_JOKKUM_KILL_CREDIT = 56545,
- SPELL_JOKKUM_SUMMON = 56541
+ SPELL_JOKKUM_SUMMON = 56541,
+ SPELL_RIDE_JOKKUM = 56606,
+ NPC_KINGJOKKUM = 30331,
+ SAY_HOLD_ON = 0,
+ PATH_JOKKUM = 2072200
};
class spell_jokkum_scriptcast : public SpellScriptLoader
@@ -491,6 +670,17 @@ class spell_jokkum_scriptcast : public SpellScriptLoader
{
player->CastSpell(player, SPELL_JOKKUM_KILL_CREDIT, true);
player->CastSpell(player, SPELL_JOKKUM_SUMMON, true);
+
+ if (Creature* kingjokkum = GetClosestCreatureWithEntry(player, NPC_KINGJOKKUM, 10.0f))
+ {
+ kingjokkum->setFaction(player->getFaction());
+ player->CastSpell(kingjokkum, SPELL_RIDE_JOKKUM, true);
+ player->SetUInt64Value(PLAYER_FARSIGHT, player->GetGUID());
+ kingjokkum->AI()->Talk(0, player->GetGUID());
+ kingjokkum->ToPlayer()->SetClientControl(kingjokkum, 1);
+ kingjokkum->GetMotionMaster()->MovePath(PATH_JOKKUM, false);
+ kingjokkum->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
+ }
}
}
@@ -514,6 +704,7 @@ void AddSC_storm_peaks()
new npc_freed_protodrake();
new npc_icefang();
new npc_hyldsmeet_protodrake();
+ new npc_brann_bronzebeard_keystone();
new spell_close_rift();
new spell_jokkum_scriptcast();
}
diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp
index 29d7c017748..1137c86f287 100644
--- a/src/server/scripts/Northrend/zone_zuldrak.cpp
+++ b/src/server/scripts/Northrend/zone_zuldrak.cpp
@@ -57,16 +57,15 @@ public:
float x, y, z;
me->GetClosePoint(x, y, z, me->GetObjectSize() / 3, 0.1f);
- if (Unit* summon = me->SummonCreature(NPC_RAGECLAW, x, y, z, 0, TEMPSUMMON_DEAD_DESPAWN, 1000))
+ if (Creature* summon = me->SummonCreature(NPC_RAGECLAW, x, y, z, 0, TEMPSUMMON_DEAD_DESPAWN, 1000))
{
_rageclawGUID = summon->GetGUID();
- LockRageclaw();
+ LockRageclaw(summon);
}
}
- void LockRageclaw()
+ void LockRageclaw(Creature* rageclaw)
{
- Unit* rageclaw = Unit::GetCreature(*me, _rageclawGUID);
// pointer check not needed
me->SetInFront(rageclaw);
rageclaw->SetInFront(me);
@@ -75,12 +74,11 @@ public:
DoCast(rageclaw, SPELL_RIGHT_CHAIN, true);
}
- void UnlockRageclaw(Unit* who)
+ void UnlockRageclaw(Unit* who, Creature* rageclaw)
{
if (!who)
return;
- Creature* rageclaw = Unit::GetCreature(*me, _rageclawGUID);
// pointer check not needed
DoCast(rageclaw, SPELL_FREE_RAGECLAW, true);
@@ -95,7 +93,7 @@ public:
{
if (Creature* rageclaw = Unit::GetCreature(*me, _rageclawGUID))
{
- UnlockRageclaw(caster);
+ UnlockRageclaw(caster, rageclaw);
caster->ToPlayer()->KilledMonster(rageclaw->GetCreatureTemplate(), _rageclawGUID);
me->DespawnOrUnsummon();
}
@@ -459,6 +457,8 @@ public:
void Reset() OVERRIDE
{
+ _playerGUID = 0;
+ _getingredienttry = 0;
_events.ScheduleEvent(EVENT_TURN_TO_POT, urand(15000, 26000));
}
diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp
index 4f7ac113547..783e7b9f09b 100644
--- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp
+++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp
@@ -68,6 +68,7 @@ public:
void Reset() OVERRIDE
{
+ myClass = CLASS_NONE;
Class_Timer = 1000;
}
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp
index b5947e93216..36377b4d715 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp
@@ -72,7 +72,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript
_JustDied();
Talk(SAY_DEATH);
- if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, soccothratesGUID))
+ if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES)))
if (soccothrates->IsAlive() && !soccothrates->IsInCombat())
soccothrates->AI()->SetData(1, 1);
}
@@ -86,9 +86,6 @@ class boss_dalliah_the_doomsayer : public CreatureScript
events.ScheduleEvent(EVENT_SHADOW_WAVE, urand(11000, 16000));
events.ScheduleEvent(EVENT_ME_FIRST, 6000);
Talk(SAY_AGGRO);
-
- if (Creature* soccothrates = me->FindNearestCreature(NPC_SOCCOTHRATES, 100.0f, true))
- soccothratesGUID = soccothrates->GetGUID();
}
void KilledUnit(Unit* /*victim*/) OVERRIDE
@@ -161,7 +158,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript
events.ScheduleEvent(EVENT_SHADOW_WAVE, urand(11000, 16000));
break;
case EVENT_ME_FIRST:
- if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, soccothratesGUID))
+ if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES)))
if (soccothrates->IsAlive() && !soccothrates->IsInCombat())
soccothrates->AI()->Talk(SAY_AGGRO_DALLIAH_FIRST);
break;
@@ -172,7 +169,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript
if (HealthBelowPct(25) && !soccothratesTaunt)
{
- if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, soccothratesGUID))
+ if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES)))
soccothrates->AI()->Talk(SAY_DALLIAH_25_PERCENT);
soccothratesTaunt = true;
}
@@ -180,15 +177,14 @@ class boss_dalliah_the_doomsayer : public CreatureScript
DoMeleeAttackIfReady();
}
- private:
- bool soccothratesTaunt;
- bool soccothratesDeath;
- uint64 soccothratesGUID;
+ private:
+ bool soccothratesTaunt;
+ bool soccothratesDeath;
};
CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_dalliah_the_doomsayerAI(creature);
+ return GetArcatrazAI<boss_dalliah_the_doomsayerAI>(creature);
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp
index 046ef93bf10..2d9bfc92583 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp
@@ -98,7 +98,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript
_JustDied();
Talk(SAY_DEATH);
- if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID))
+ if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH)))
if (dalliah->IsAlive() && !dalliah->IsInCombat())
dalliah->AI()->SetData(1, 1);
}
@@ -120,20 +120,13 @@ class boss_wrath_scryer_soccothrates : public CreatureScript
void MoveInLineOfSight(Unit* who) OVERRIDE
{
- if (instance)
+ if (instance->GetData(DATA_CONVERSATION) == NOT_STARTED && who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 70.0f))
{
- if (instance->GetData(DATA_CONVERSATION) == NOT_STARTED && who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 70.0f))
- {
- Talk(SAY_SOCCOTHRATES_CONVO_1);
- instance->SetData(DATA_CONVERSATION, DONE);
+ Talk(SAY_SOCCOTHRATES_CONVO_1);
+ instance->SetData(DATA_CONVERSATION, DONE);
- if (Creature* dalliah = me->FindNearestCreature(NPC_DALLIAH, 50.0f, true))
- {
- dalliahGUID = dalliah->GetGUID();
- preFight = true;
- events.ScheduleEvent(EVENT_PREFIGHT_1, 2000);
- }
- }
+ preFight = true;
+ events.ScheduleEvent(EVENT_PREFIGHT_1, 2000);
}
}
@@ -163,7 +156,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript
switch (eventId)
{
case EVENT_PREFIGHT_1:
- if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID))
+ if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH)))
dalliah->AI()->Talk(SAY_DALLIAH_CONVO_1);
events.ScheduleEvent(EVENT_PREFIGHT_2, 3000);
break;
@@ -172,7 +165,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript
events.ScheduleEvent(EVENT_PREFIGHT_3, 3000);
break;
case EVENT_PREFIGHT_3:
- if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID))
+ if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH)))
dalliah->AI()->Talk(SAY_DALLIAH_CONVO_2);
events.ScheduleEvent(EVENT_PREFIGHT_4, 6000);
break;
@@ -181,7 +174,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript
events.ScheduleEvent(EVENT_PREFIGHT_5, 2000);
break;
case EVENT_PREFIGHT_5:
- if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID))
+ if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH)))
dalliah->AI()->Talk(SAY_DALLIAH_CONVO_3);
events.ScheduleEvent(EVENT_PREFIGHT_6, 3000);
break;
@@ -190,7 +183,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript
events.ScheduleEvent(EVENT_PREFIGHT_7, 2000);
break;
case EVENT_PREFIGHT_7:
- if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID))
+ if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH)))
dalliah->GetMotionMaster()->MovePoint(0, 118.6048f, 96.84852f, 22.44115f);
events.ScheduleEvent(EVENT_PREFIGHT_8, 4000);
break;
@@ -199,7 +192,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript
events.ScheduleEvent(EVENT_PREFIGHT_9, 4000);
break;
case EVENT_PREFIGHT_9:
- if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID))
+ if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH)))
{
dalliah->SetFacingToObject(me);
me->SetFacingToObject(dalliah);
@@ -253,7 +246,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript
events.ScheduleEvent(EVENT_KNOCK_AWAY, urand(11000, 12000));
break;
case EVENT_ME_FIRST:
- if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID))
+ if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH)))
if (dalliah->IsAlive() && !dalliah->IsInCombat())
dalliah->AI()->Talk(SAY_AGGRO_SOCCOTHRATES_FIRST);
break;
@@ -264,7 +257,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript
if (HealthBelowPct(25) && !dalliahTaunt)
{
- if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID))
+ if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH)))
dalliah->AI()->Talk(SAY_SOCCOTHRATES_25_PERCENT);
dalliahTaunt = true;
}
@@ -272,16 +265,15 @@ class boss_wrath_scryer_soccothrates : public CreatureScript
DoMeleeAttackIfReady();
}
- private:
- bool preFight;
- bool dalliahTaunt;
- bool dalliahDeath;
- uint64 dalliahGUID;
+ private:
+ bool preFight;
+ bool dalliahTaunt;
+ bool dalliahDeath;
};
CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_wrath_scryer_soccothratesAI(creature);
+ return GetArcatrazAI<boss_wrath_scryer_soccothratesAI>(creature);
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp
index 0145636f9d2..cb7cd3828e2 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp
@@ -38,6 +38,8 @@ class instance_arcatraz : public InstanceMapScript
SetBossNumber(EncounterCount);
LoadDoorData(doorData);
+ DalliahGUID = 0;
+ SoccothratesGUID = 0;
MellicharGUID = 0;
WardensShieldGUID = 0;
@@ -49,8 +51,20 @@ class instance_arcatraz : public InstanceMapScript
void OnCreatureCreate(Creature* creature) OVERRIDE
{
- if (creature->GetEntry() == NPC_MELLICHAR)
- MellicharGUID = creature->GetGUID();
+ switch (creature->GetEntry())
+ {
+ case NPC_DALLIAH:
+ DalliahGUID = creature->GetGUID();
+ break;
+ case NPC_SOCCOTHRATES:
+ SoccothratesGUID = creature->GetGUID();
+ break;
+ case NPC_MELLICHAR:
+ MellicharGUID = creature->GetGUID();
+ break;
+ default:
+ break;
+ }
}
void OnGameObjectCreate(GameObject* go) OVERRIDE
@@ -102,29 +116,13 @@ class instance_arcatraz : public InstanceMapScript
switch (type)
{
case DATA_WARDEN_1:
- if (data == IN_PROGRESS)
- HandleGameObject(StasisPodGUIDs[0], true);
- StasisPodStates[0] = uint8(data);
- break;
case DATA_WARDEN_2:
- if (data == IN_PROGRESS)
- HandleGameObject(StasisPodGUIDs[1], true);
- StasisPodStates[1] = uint8(data);
- break;
case DATA_WARDEN_3:
- if (data == IN_PROGRESS)
- HandleGameObject(StasisPodGUIDs[2], true);
- StasisPodStates[2] = uint8(data);
- break;
case DATA_WARDEN_4:
- if (data == IN_PROGRESS)
- HandleGameObject(StasisPodGUIDs[3], true);
- StasisPodStates[3] = uint8(data);
- break;
case DATA_WARDEN_5:
if (data == IN_PROGRESS)
- HandleGameObject(StasisPodGUIDs[4], true);
- StasisPodStates[4] = uint8(data);
+ HandleGameObject(StasisPodGUIDs[type - DATA_WARDEN_1], true);
+ StasisPodStates[type - DATA_WARDEN_1] = uint8(data);
break;
case DATA_CONVERSATION:
ConversationState = uint8(data);
@@ -156,6 +154,10 @@ class instance_arcatraz : public InstanceMapScript
{
switch (data)
{
+ case DATA_DALLIAH:
+ return DalliahGUID;
+ case DATA_SOCCOTHRATES:
+ return SoccothratesGUID;
case DATA_MELLICHAR:
return MellicharGUID;
case DATA_WARDENS_SHIELD:
@@ -233,6 +235,8 @@ class instance_arcatraz : public InstanceMapScript
}
protected:
+ uint64 DalliahGUID;
+ uint64 SoccothratesGUID;
uint64 StasisPodGUIDs[5];
uint64 MellicharGUID;
uint64 WardensShieldGUID;
diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
index a005153a4fc..167fd7f2074 100644
--- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
+++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
@@ -19,7 +19,7 @@
/* ScriptData
SDName: Blades_Edge_Mountains
SD%Complete: 90
-SDComment: Quest support: 10503, 10504, 10556, 10609, 10682, 10821, 10980. Ogri'la->Skettis Flight. (npc_daranelle needs bit more work before consider complete)
+SDComment: Quest support: 10503, 10504, 10556, 10594, 10609, 10682, 10821, 10980. Ogri'la->Skettis Flight. (npc_daranelle needs bit more work before consider complete)
SDCategory: Blade's Edge Mountains
EndScriptData */
@@ -40,6 +40,10 @@ EndContentData */
#include "GridNotifiersImpl.h"
#include "Cell.h"
#include "CellImpl.h"
+#include "SpellInfo.h"
+#include "SpellScript.h"
+#include "SpellAuras.h"
+#include "SpellAuraEffects.h"
//Support for quest: You're Fired! (10821)
bool obelisk_one, obelisk_two, obelisk_three, obelisk_four, obelisk_five;
@@ -1143,6 +1147,99 @@ class go_apexis_relic : public GameObjectScript
}
};
+/*######
+## npc_oscillating_frequency_scanner_master_bunny used for quest 10594 "Gauging the Resonant Frequency"
+######*/
+
+enum ScannerMasterBunny
+{
+ NPC_OSCILLATING_FREQUENCY_SCANNER_TOP_BUNNY = 21759,
+ SPELL_OSCILLATION_FIELD = 37408,
+ QUEST_GAUGING_THE_RESONANT_FREQUENCY = 10594
+};
+
+class npc_oscillating_frequency_scanner_master_bunny : public CreatureScript
+{
+public:
+ npc_oscillating_frequency_scanner_master_bunny() : CreatureScript("npc_oscillating_frequency_scanner_master_bunny") { }
+
+ struct npc_oscillating_frequency_scanner_master_bunnyAI : public ScriptedAI
+ {
+ npc_oscillating_frequency_scanner_master_bunnyAI(Creature* creature) : ScriptedAI(creature) { }
+
+ void Reset() OVERRIDE
+ {
+ if (GetClosestCreatureWithEntry(me, NPC_OSCILLATING_FREQUENCY_SCANNER_TOP_BUNNY, 25.0f))
+ me->DespawnOrUnsummon();
+ else
+ {
+ // Spell 37392 does not exist in dbc, manually spawning
+ me->SummonCreature(21759, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 0.5f, me->GetOrientation(), TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 50000);
+ me->SummonGameObject(184926, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation(), 0, 0, 0, 0, 50000);
+ me->DespawnOrUnsummon(50000);
+ }
+
+ timer = 500;
+ }
+
+ void IsSummonedBy(Unit* summoner) OVERRIDE
+ {
+ if (summoner->isType(TYPEMASK_PLAYER))
+ playerGuid = summoner->GetGUID();
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (timer <= diff)
+ {
+ if (Player* player = ObjectAccessor::GetPlayer(*me, playerGuid))
+ DoCast(player, SPELL_OSCILLATION_FIELD);
+
+ timer = 3000;
+ }
+ else
+ timer -= diff;
+ }
+
+ private:
+ uint64 playerGuid;
+ uint32 timer;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_oscillating_frequency_scanner_master_bunnyAI(creature);
+ }
+};
+
+class spell_oscillating_field : public SpellScriptLoader
+{
+ public:
+ spell_oscillating_field() : SpellScriptLoader("spell_oscillating_field") { }
+
+ class spell_oscillating_field_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_oscillating_field_SpellScript);
+
+ void HandleEffect(SpellEffIndex /*effIndex*/)
+ {
+ if (Player* player = GetHitPlayer())
+ if (player->GetAuraCount(SPELL_OSCILLATION_FIELD) == 5 && player->GetQuestStatus(QUEST_GAUGING_THE_RESONANT_FREQUENCY) == QUEST_STATUS_INCOMPLETE)
+ player->CompleteQuest(QUEST_GAUGING_THE_RESONANT_FREQUENCY);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_oscillating_field_SpellScript::HandleEffect, EFFECT_0, SPELL_EFFECT_APPLY_AURA);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_oscillating_field_SpellScript();
+ }
+};
+
void AddSC_blades_edge_mountains()
{
new npc_bladespire_ogre();
@@ -1157,4 +1254,6 @@ void AddSC_blades_edge_mountains()
new npc_simon_bunny();
new go_simon_cluster();
new go_apexis_relic();
+ new npc_oscillating_frequency_scanner_master_bunny();
+ new spell_oscillating_field();
}
diff --git a/src/server/shared/Cryptography/HMACSHA1.cpp b/src/server/shared/Cryptography/HMACSHA1.cpp
index c6c49f14a8e..2585fa64ea1 100644
--- a/src/server/shared/Cryptography/HMACSHA1.cpp
+++ b/src/server/shared/Cryptography/HMACSHA1.cpp
@@ -24,6 +24,7 @@ HmacHash::HmacHash(uint32 len, uint8 *seed)
{
HMAC_CTX_init(&m_ctx);
HMAC_Init_ex(&m_ctx, seed, len, EVP_sha1(), NULL);
+ memset(m_digest, 0, sizeof(m_digest));
}
HmacHash::~HmacHash()
diff --git a/src/server/shared/DataStores/DBCFileLoader.cpp b/src/server/shared/DataStores/DBCFileLoader.cpp
index 0aa94f1d14a..3c02d5f533d 100644
--- a/src/server/shared/DataStores/DBCFileLoader.cpp
+++ b/src/server/shared/DataStores/DBCFileLoader.cpp
@@ -23,7 +23,7 @@
#include "DBCFileLoader.h"
#include "Errors.h"
-DBCFileLoader::DBCFileLoader() : fieldsOffset(NULL), data(NULL), stringTable(NULL) { }
+DBCFileLoader::DBCFileLoader() : recordSize(0), recordCount(0), fieldCount(0), stringSize(0), fieldsOffset(NULL), data(NULL), stringTable(NULL) { }
bool DBCFileLoader::Load(const char* filename, const char* fmt)
{
diff --git a/src/server/worldserver/CMakeLists.txt b/src/server/worldserver/CMakeLists.txt
index e48197aeb2c..99ea60ba76f 100644
--- a/src/server/worldserver/CMakeLists.txt
+++ b/src/server/worldserver/CMakeLists.txt
@@ -70,7 +70,6 @@ include_directories(
${CMAKE_SOURCE_DIR}/src/server/game/Addons
${CMAKE_SOURCE_DIR}/src/server/game/AI
${CMAKE_SOURCE_DIR}/src/server/game/AI/CoreAI
- ${CMAKE_SOURCE_DIR}/src/server/game/AI/EventAI
${CMAKE_SOURCE_DIR}/src/server/game/AI/ScriptedAI
${CMAKE_SOURCE_DIR}/src/server/game/AI/SmartScripts
${CMAKE_SOURCE_DIR}/src/server/game/AuctionHouse
diff --git a/src/server/worldserver/Master.cpp b/src/server/worldserver/Master.cpp
index ffeeafc8951..3fcd4c28f0f 100644
--- a/src/server/worldserver/Master.cpp
+++ b/src/server/worldserver/Master.cpp
@@ -86,7 +86,12 @@ private:
uint32 _lastChange;
uint32 _delaytime;
public:
- FreezeDetectorRunnable() { _delaytime = 0; }
+ FreezeDetectorRunnable()
+ {
+ _loops = 0;
+ _lastChange = 0;
+ _delaytime = 0;
+ }
void SetDelayTime(uint32 t) { _delaytime = t; }