aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--sql/updates/world/2015_01_30_00_world.sql32
-rw-r--r--sql/updates/world/2015_01_31_00_335.sql3
-rw-r--r--sql/updates/world/2015_02_02_00_world.sql16
-rw-r--r--sql/updates/world/2015_02_05_00_world.sql4
-rw-r--r--sql/updates/world/2015_02_06_00_world.sql27
-rw-r--r--sql/updates/world/2015_02_06_01_world.sql40
-rw-r--r--sql/updates/world/2015_02_06_02_world.sql33
-rw-r--r--sql/updates/world/2015_02_06_03_world.sql62
-rw-r--r--sql/updates/world/2015_02_06_04_world.sql32
-rw-r--r--sql/updates/world/2015_02_06_05_world.sql45
-rw-r--r--sql/updates/world/2015_02_06_06_world.sql2
-rw-r--r--sql/updates/world/2015_02_06_07_world.sql6
-rw-r--r--sql/updates/world/2015_02_06_08_world.sql4
-rw-r--r--sql/updates/world/2015_02_06_09_world.sql11
-rw-r--r--sql/updates/world/2015_02_06_10_world.sql2
-rw-r--r--sql/updates/world/2015_02_06_11_world.sql7
-rw-r--r--sql/updates/world/2015_02_06_12_world.sql2
-rw-r--r--sql/updates/world/2015_02_06_13_world_335.sql372
-rw-r--r--sql/updates/world/2015_02_07_00_world.sql14
-rw-r--r--sql/updates/world/2015_02_07_01_world.sql2
-rw-r--r--sql/updates/world/2015_02_09_00_world.sql10
-rw-r--r--sql/updates/world/2015_02_09_01_world.sql2
-rw-r--r--sql/updates/world/2015_02_09_02_world.sql2
-rw-r--r--sql/updates/world/2015_02_09_03_world.sql204
-rw-r--r--sql/updates/world/2015_02_09_04_world.sql85
-rw-r--r--sql/updates/world/2015_02_09_05_world.sql52
-rw-r--r--sql/updates/world/2015_02_09_06_world.sql340
-rw-r--r--sql/updates/world/2015_02_09_07_world.sql461
-rw-r--r--sql/updates/world/2015_02_09_08_world.sql2
-rw-r--r--sql/updates/world/2015_02_09_09_world.sql2
-rw-r--r--sql/updates/world/2015_02_09_10_world.sql32
-rw-r--r--sql/updates/world/2015_02_09_11_world.sql252
-rw-r--r--sql/updates/world/2015_02_09_12_world.sql2
-rw-r--r--sql/updates/world/2015_02_09_13_world.sql43
-rw-r--r--sql/updates/world/2015_02_09_14_world.sql2
-rw-r--r--sql/updates/world/2015_02_09_15_world.sql1
-rw-r--r--sql/updates/world/2015_02_10_00_world.sql18
-rw-r--r--sql/updates/world/2015_02_10_01_world.sql12
-rw-r--r--sql/updates/world/2015_02_10_02_world.sql41
-rw-r--r--sql/updates/world/2015_02_10_03_world.sql7
-rw-r--r--sql/updates/world/2015_02_10_04_world.sql15
-rw-r--r--sql/updates/world/2015_02_10_05_world.sql911
-rw-r--r--sql/updates/world/2015_02_10_06_world.sql58
-rw-r--r--sql/updates/world/2015_02_10_07_world.sql3
-rw-r--r--sql/updates/world/2015_02_10_08_world.sql3
-rw-r--r--sql/updates/world/2015_02_10_09_world.sql4
-rw-r--r--sql/updates/world/2015_02_11_00_world.sql12
-rw-r--r--sql/updates/world/2015_02_11_01_world.sql100
-rw-r--r--sql/updates/world/2015_02_11_02_world.sql153
-rw-r--r--sql/updates/world/2015_02_11_03_world.sql5
-rw-r--r--sql/updates/world/2015_02_11_04_world.sql44
-rw-r--r--sql/updates/world/2015_02_11_05_world.sql4
-rw-r--r--src/server/collision/Maps/TileAssembler.cpp12
-rw-r--r--src/server/collision/Models/GameObjectModel.cpp6
-rw-r--r--src/server/game/AuctionHouseBot/AuctionHouseBot.cpp18
-rw-r--r--src/server/game/AuctionHouseBot/AuctionHouseBot.h18
-rw-r--r--src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp569
-rw-r--r--src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.h31
-rw-r--r--src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp4
-rw-r--r--src/server/game/Entities/Player/Player.cpp38
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp34
-rw-r--r--src/server/game/Groups/Group.cpp2
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp6
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h2
-rw-r--r--src/server/game/Reputation/ReputationMgr.cpp2
-rw-r--r--src/server/game/Spells/Spell.cpp4
-rw-r--r--src/server/game/Spells/SpellMgr.cpp4
-rw-r--r--src/server/scripts/Commands/cs_debug.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp9
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp414
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h23
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp52
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp2
-rw-r--r--src/server/scripts/Northrend/zone_zuldrak.cpp2
-rw-r--r--src/server/shared/DataStores/DBCStore.h7
-rw-r--r--src/server/shared/Database/DatabaseWorkerPool.h9
-rw-r--r--src/server/shared/Database/MySQLConnection.cpp12
-rw-r--r--src/server/shared/Database/MySQLConnection.h2
-rw-r--r--src/server/shared/Database/Transaction.cpp8
-rw-r--r--src/server/shared/Debugging/Errors.h6
-rw-r--r--src/server/worldserver/worldserver.conf.dist59
84 files changed, 4577 insertions, 384 deletions
diff --git a/README.md b/README.md
index 263339fc9dd..d92b3848c94 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,8 @@
[![Coverity Scan Build Status](https://scan.coverity.com/projects/435/badge.svg)](https://scan.coverity.com/projects/435)
[![Bountysource](https://www.bountysource.com/badge/tracker?tracker_id=1310)](https://www.bountysource.com/trackers/1310-trinity-core?utm_source=1310&utm_medium=shield&utm_campaign=TRACKER_BADGE)
+[![Issue Stats](http://www.issuestats.com/github/TrinityCore/TrinityCore/badge/pr)](http://www.issuestats.com/github/TrinityCore/TrinityCore)
+[![Issue Stats](http://www.issuestats.com/github/TrinityCore/TrinityCore/badge/issue)](http://www.issuestats.com/github/TrinityCore/TrinityCore)
`6.x`: [![6.x Build Status](https://travis-ci.org/TrinityCore/TrinityCore.svg?branch=6.x)](https://travis-ci.org/TrinityCore/TrinityCore)
`4.3.4`: [![4.3.4 Build Status](https://travis-ci.org/TrinityCore/TrinityCore.svg?branch=4.3.4)](https://travis-ci.org/TrinityCore/TrinityCore)
`3.3.5`: [![3.3.5 Build Status](https://travis-ci.org/TrinityCore/TrinityCore.svg?branch=3.3.5)](https://travis-ci.org/TrinityCore/TrinityCore)
diff --git a/sql/updates/world/2015_01_30_00_world.sql b/sql/updates/world/2015_01_30_00_world.sql
new file mode 100644
index 00000000000..4393b38ddd2
--- /dev/null
+++ b/sql/updates/world/2015_01_30_00_world.sql
@@ -0,0 +1,32 @@
+DELETE FROM `creature_text` WHERE `entry` IN(37158,37704);
+DELETE FROM `creature_text` WHERE `entry`=37225 AND `groupid` > 15;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
+(37158, 0, 0, '%s prepares to attack!', 41, 0, 100, 0, 0, 0, 'Quel''Delar', 37211),
+(37704, 0, 0, 'Quel''Delar leaps to life in the presence of Frostmourne!', 41, 0, 100, 0, 0, 0, 'Frostmourne Altar Bunny (Quel''Delar)', 37645),
+-- Uther
+(37225, 16, 0, 'Halt! Do not carry that blade any further!', 14, 0, 100, 25, 0, 16675, 'Uther the Lightbringer', 37201),
+(37225, 17, 0, 'Do you realize what you''ve done?', 14, 0, 100, 5, 0, 16676, 'Uther the Lightbringer', 37202),
+(37225, 18, 0, 'You have forged this blade from saronite, the very blood of an old god. The power of the Lich King calls to this weapon.', 12, 0, 100, 1, 0, 16677, 'Uther the Lightbringer', 37204),
+(37225, 19, 0, 'Each moment you tarry here, Quel''Delar drinks in the evil of this place.', 12, 0, 100, 1, 0, 16678, 'Uther the Lightbringer', 38442),
+(37225, 20, 0, 'There is only one way to cleanse this sword. Make haste for the Sunwell and immerse the blade in its waters.', 12, 0, 100, 25, 0, 16679, 'Uther the Lightbringer', 37205),
+(37225, 21, 0, 'I can resist Frostmourne''s call no more...', 12, 0, 100, 1, 0, 16680, 'Uther the Lightbringer', 37206);
+
+UPDATE `creature_template` SET `unit_flags`=768, `flags_extra`=0, `ScriptName`='npc_quel_delar_sword', `InhabitType`=7 WHERE `entry`=37158;
+UPDATE `creature_template` SET `ScriptName`='npc_uther_quel_delar' WHERE `entry`=37225;
+
+DELETE FROM `areatrigger_scripts` WHERE `entry`=5660;
+INSERT INTO `areatrigger_scripts` (`entry`,`ScriptName`) VALUES
+(5660, 'at_hor_uther_quel_delar_start');
+
+DELETE FROM `spell_target_position` WHERE `id` IN(70719,70700);
+INSERT INTO `spell_target_position` (`id`,`target_map`,`target_position_x`,`target_position_y`,`target_position_z`,`target_orientation`) VALUES
+(70719, 668, 5302, 1989, 708, 0),
+(70700, 668, 5298, 1995, 708, 0);
+
+DELETE FROM `creature_loot_template` WHERE `entry` = 37158 AND `item` = 50254;
+INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Chance`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`) VALUES
+(37158, 50254, 100, 1, 0, 1, 1);
+
+DELETE FROM `conditions` WHERE `SourceEntry` = 73035 AND `SourceTypeOrReferenceId` = 13;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `Comment`) VALUES
+(13,1,73035,0,0,31,0,3,37704,0,0,0,0,'Essence of the Captured (73035) only hits Frostmourne Altar Bunny (Quel''Delar)');
diff --git a/sql/updates/world/2015_01_31_00_335.sql b/sql/updates/world/2015_01_31_00_335.sql
new file mode 100644
index 00000000000..8aaa026154a
--- /dev/null
+++ b/sql/updates/world/2015_01_31_00_335.sql
@@ -0,0 +1,3 @@
+DELETE FROM `gameobject_template` WHERE `entry` = 180856;
+INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `data0`, `data1`, `data2`, `data3`, `size`, `VerifiedBuild`) VALUES
+(180856, 10, 6522, 'Firework Rocket, Type 1 Purple', 0, 0, 0, 3000, 1, -18019);
diff --git a/sql/updates/world/2015_02_02_00_world.sql b/sql/updates/world/2015_02_02_00_world.sql
new file mode 100644
index 00000000000..84d31ef7be1
--- /dev/null
+++ b/sql/updates/world/2015_02_02_00_world.sql
@@ -0,0 +1,16 @@
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry` IN(29491,28994,28721,28725,33027,28727,28715,28714,28726,29523,28989,28997,28723,28718);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(22, 1, 29491, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Karandonna - Only run SAI if invoker is player'),
+(22, 1, 28994, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Abra Cadabra - Only run SAI if invoker is player'),
+(22, 1, 28721, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Tiffany Cartier - Only run SAI if invoker is player'),
+(22, 1, 28725, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Patricia Egan - Only run SAI if invoker is player'),
+(22, 1, 33027, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Jessica Sellers - Only run SAI if invoker is player'),
+(22, 1, 28727, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Edward Egan - Only run SAI if invoker is player'),
+(22, 1, 28714, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Ildine Sorrowspear - Only run SAI if invoker is player'),
+(22, 1, 28715, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Endora Moorehead - Only run SAI if invoker is player'),
+(22, 1, 28726, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Dominique Stefano - Only run SAI if invoker is player'),
+(22, 1, 29523, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Bragund Brightlink - Only run SAI if invoker is player'),
+(22, 1, 28997, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Griselda Hunderland - Only run SAI if invoker is player'),
+(22, 1, 28989, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Aemara - Only run SAI if invoker is player'),
+(22, 1, 28723, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Larana Drome - Only run SAI if invoker is player'),
+(22, 1, 28718, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Ranid Glowergold - Only run SAI if invoker is player');
diff --git a/sql/updates/world/2015_02_05_00_world.sql b/sql/updates/world/2015_02_05_00_world.sql
new file mode 100644
index 00000000000..77bc4fd8b53
--- /dev/null
+++ b/sql/updates/world/2015_02_05_00_world.sql
@@ -0,0 +1,4 @@
+--
+DELETE FROM `skill_fishing_base_level` WHERE `entry`=4710;
+INSERT INTO `skill_fishing_base_level` (`entry`, `skill`) VALUES
+(4710, 480);
diff --git a/sql/updates/world/2015_02_06_00_world.sql b/sql/updates/world/2015_02_06_00_world.sql
new file mode 100644
index 00000000000..96eb6a65f28
--- /dev/null
+++ b/sql/updates/world/2015_02_06_00_world.sql
@@ -0,0 +1,27 @@
+-- The Brewmaiden SAI
+SET @ENTRY := 36021;
+
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+
+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,0,22,0,100,0,101,0,0,0,11,48249,1,0,0,0,0,7,0,0,0,0,0,0,0,'The Brewmaiden - Received Emote 101 - Cast ''Brewfest Brew Toss''');
+
+DELETE FROM `creature_template_addon` WHERE `entry`=@ENTRY;
+INSERT INTO `creature_template_addon` (`entry`,`bytes2`,`auras`) VALUES
+(@ENTRY,0x1,'68269');
+
+
+-- The Brewmaiden SAI
+SET @ENTRY := 27166;
+
+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,22,0,100,0,101,0,0,0,11,48249,1,0,0,0,0,7,0,0,0,0,0,0,0,'The Brewmaiden - Received Emote 101 - Cast ''Brewfest Brew Toss''');
+
+DELETE FROM `creature_template_addon` WHERE `entry`=@ENTRY;
+INSERT INTO `creature_template_addon` (`entry`,`bytes2`,`auras`) VALUES
+(@ENTRY,0x1,'51847');
diff --git a/sql/updates/world/2015_02_06_01_world.sql b/sql/updates/world/2015_02_06_01_world.sql
new file mode 100644
index 00000000000..3b16d7a367c
--- /dev/null
+++ b/sql/updates/world/2015_02_06_01_world.sql
@@ -0,0 +1,40 @@
+-- Fel Portal Alarm SAI
+SET @ENTRY := 23310;
+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,1,0,0,0,0,11,46907,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fel Portal Alarm - On Respawn - Cast 'Boss Fel Portal State' (No Repeat)"),
+(@ENTRY,0,1,0,38,0,100,0,1,1,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fel Portal Alarm - On Data Set 1 1 - Increment Phase"),
+(@ENTRY,0,2,3,1,32,100,0,1000,1000,0,0,12,25003,5,120000,0,0,0,1,0,0,0,0,0,0,0,"Fel Portal Alarm - Out of Combat - Summon Creature 'Emissary of Hate' (Phase 32)"),
+(@ENTRY,0,3,0,61,32,100,0,1000,1000,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fel Portal Alarm - Out of Combat - Set Event Phase 0 (Phase 32)");
+
+DELETE FROM `creature` WHERE `id`=25003;
+
+-- Irespeaker SAI
+SET @ENTRY := 24999;
+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,3000,10000,15000,11,35913,0,0,0,0,0,2,0,0,0,0,0,0,0,"Irespeaker - In Combat - Cast 'Fel Fireball'"),
+(@ENTRY,0,1,0,0,0,100,0,13000,16000,20000,35000,11,18267,0,0,0,0,0,2,0,0,0,0,0,0,0,"Irespeaker - In Combat - Cast 'Curse of Weakness'"),
+(@ENTRY,0,2,0,6,0,100,1,0,0,0,0,33,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Irespeaker - On Just Died - Quest Credit 'Kanrethad's Quest' (No Repeat)"),
+(@ENTRY,0,3,0,6,0,100,0,5000,5000,10000,10000,45,1,1,0,0,0,0,10,79450,23310,0,0,0,0,0,"Irespeaker - On Just Died - Set Data 1 1");
+
+-- Unleashed Hellion SAI
+SET @ENTRY := 25002;
+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,6,0,100,1,0,0,0,0,33,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Unleashed Hellion - On Just Died - Quest Credit 'Kanrethad's Quest' (No Repeat)"),
+(@ENTRY,0,1,0,0,0,100,0,4000,5000,18000,35000,11,11876,0,0,0,0,0,2,0,0,0,0,0,0,0,"Unleashed Hellion - In Combat - Cast 'War Stomp'"),
+(@ENTRY,0,2,0,0,0,100,0,6000,9000,12600,16000,11,20754,0,0,0,0,0,2,0,0,0,0,0,0,0,"Unleashed Hellion - In Combat - Cast 'Rain of Fire'"),
+(@ENTRY,0,3,0,6,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,79450,23310,0,0,0,0,0,"Unleashed Hellion - On Just Died - Set Data 1 1");
+
+-- Emissary of Hate SAI
+SET @ENTRY := 25003;
+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,2000,5000,15000,20000,11,25003,0,0,0,0,0,2,0,0,0,0,0,0,0,"Emissary of Hate - In Combat - Cast 'Mortar'"),
+(@ENTRY,0,1,0,0,0,100,0,8000,10000,15000,20000,11,38611,0,0,0,0,0,2,0,0,0,0,0,0,0,"Emissary of Hate - In Combat - Cast 'Flame Wave'"),
+(@ENTRY,0,2,0,54,0,100,0,0,0,0,0,89,10,0,0,0,0,0,1,0,0,0,0,0,0,0,"Emissary of Hate - On Just Summoned - Start Random Movement");
diff --git a/sql/updates/world/2015_02_06_02_world.sql b/sql/updates/world/2015_02_06_02_world.sql
new file mode 100644
index 00000000000..4c514ea95d4
--- /dev/null
+++ b/sql/updates/world/2015_02_06_02_world.sql
@@ -0,0 +1,33 @@
+-- Master Gadrin SAI
+SET @ENTRY := 3188;
+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,20,0,100,0,808,0,0,0,80,@ENTRY*100+00,2,0,0,0,0,1,0,0,0,0,0,0,0,"Master Gadrin - On Quest 'Minshina's Skull' Finished - Run Script");
+
+-- Actionlist SAI
+SET @ENTRY := 318800;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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,9,0,0,0,0,100,0,2000,2000,0,0,12,3289,5,14000,0,0,0,8,0,0,0,-822.91,-4923.33,19.6365,3.41642,"Master Gadrin - On Script - Summon Creature 'Spirit of Minshina'"),
+(@ENTRY,9,1,0,0,0,100,0,2000,2000,0,0,66,0,0,0,0,0,0,21,20,0,0,0,0,0,0,"Master Gadrin - On Script - Set Orientation Closest Player"),
+(@ENTRY,9,2,0,0,0,100,0,3000,3000,0,0,1,0,0,0,0,0,0,21,20,0,0,0,0,0,0,"Master Gadrin - On Script - Say Line 0");
+
+-- Spirit of Minshina SAI
+SET @ENTRY := 3289;
+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,54,0,100,0,0,0,0,0,80,@ENTRY*100+00,2,0,0,0,0,1,0,0,0,0,0,0,0,"Spirit of Minshina - On Just Summoned - Run Script");
+
+-- Actionlist SAI
+SET @ENTRY := 328900;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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,9,0,0,0,0,100,0,2000,2000,0,0,66,0,0,0,0,0,0,21,20,0,0,0,0,0,0,"Spirit of Minshina - On Script - Set Orientation Closest Player"),
+(@ENTRY,9,1,0,0,0,100,0,2000,2000,0,0,5,2,0,0,0,0,0,1,2000,2000,0,0,0,0,0,"Spirit of Minshina - On Script - Play Emote 2"),
+(@ENTRY,9,2,0,0,0,100,0,11000,11000,0,0,41,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Spirit of Minshina - On Script - Despawn Instant");
+
+DELETE FROM `creature_text` WHERE `entry`=3188;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
+(3188, 0, 0, 'I thank you, $n. And my brother thanks you.', 12, 0, 100, 0, 0, 0, 'Master Gadrin', 983);
diff --git a/sql/updates/world/2015_02_06_03_world.sql b/sql/updates/world/2015_02_06_03_world.sql
new file mode 100644
index 00000000000..83aedd75069
--- /dev/null
+++ b/sql/updates/world/2015_02_06_03_world.sql
@@ -0,0 +1,62 @@
+--
+DELETE FROM `waypoints` WHERE `entry`=16856;
+INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES
+(16856, 1,-807.327,2739.82,115.447, 'Caretaker Dilandrus'),
+(16856, 2,-798.86,2719.21,111.628, 'Caretaker Dilandrus'),
+(16856, 3,-785.502,2706.21,107.293, 'Caretaker Dilandrus'),
+(16856, 4,-785.546,2702.16,106.208, 'Caretaker Dilandrus'),
+(16856, 5,-787.652,2700.58,105.792, 'Caretaker Dilandrus'),
+(16856, 6,-791.771,2694.26,104.589, 'Caretaker Dilandrus'),
+(16856, 7,-793.482,2693.76,104.592, 'Caretaker Dilandrus'),
+(16856, 8,-794.696,2691.44,104.35, 'Caretaker Dilandrus'),
+(16856, 9,-797.951,2691.02,104.535, 'Caretaker Dilandrus'),
+(16856, 10,-798.984,2693.63,104.891, 'Caretaker Dilandrus'),
+(16856, 11,-797.778,2697.53,105.43, 'Caretaker Dilandrus'),
+(16856, 12,-792.678,2705.64,106.948, 'Caretaker Dilandrus'),
+(16856, 13,-792.409,2708.46,107.754, 'Caretaker Dilandrus'),
+(16856, 14,-794.25,2710.38,108.384, 'Caretaker Dilandrus'),
+(16856, 15,-799.924,2706.66,107.387, 'Caretaker Dilandrus'),
+(16856, 16,-807.92,2692.9,104.856, 'Caretaker Dilandrus'),
+(16856, 17,-811.612,2690.9,104.36, 'Caretaker Dilandrus'),
+(16856, 18,-814.837,2692.26,104.736, 'Caretaker Dilandrus'),
+(16856, 19,-814.33,2696.03,105.773, 'Caretaker Dilandrus'),
+(16856, 20,-809.779,2704.45,107.63, 'Caretaker Dilandrus'),
+(16856, 21,-801.425,2715.06,109.679, 'Caretaker Dilandrus'),
+(16856, 22,-801.359,2718.11,110.676, 'Caretaker Dilandrus'),
+(16856, 23,-804.433,2720.69,111.13, 'Caretaker Dilandrus'),
+(16856, 24,-810.324,2717.67,110.329, 'Caretaker Dilandrus'),
+(16856, 25,-814.433,2712.14,109.487, 'Caretaker Dilandrus'),
+(16856, 26,-820.17,2701.35,107.506, 'Caretaker Dilandrus'),
+(16856, 27,-823.067,2699.77,107.458, 'Caretaker Dilandrus'),
+(16856, 28,-824.921,2701.38,107.939, 'Caretaker Dilandrus'),
+(16856, 29,-824.739,2706.05,108.591, 'Caretaker Dilandrus'),
+(16856, 30,-820.185,2714.8,110.056, 'Caretaker Dilandrus'),
+(16856, 31,-814.476,2725.61,111.567, 'Caretaker Dilandrus'),
+(16856, 32,-807.327,2739.82,115.447, 'Caretaker Dilandrus'),
+(16856, 33,-807.327,2739.82,115.447, 'Caretaker Dilandrus');
+
+UPDATE `creature` SET `position_x`=-807.327, `position_y`=2739.82, `position_z`=115.447, `orientation`=2.611, `MovementType`=2 WHERE `guid`=58021;
+
+-- Caretaker Dilandrus SAI
+SET @ENTRY := 16856;
+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,53,0,16856,1,0,0,0,1,0,0,0,0,0,0,0,"Caretaker Dilandrus - On Reset - Start Waypoint"),
+(@ENTRY,0,1,0,40,0,100,0,5,16856,0,0,80,@ENTRY*100+01,2,0,0,0,0,1,0,0,0,0,0,0,0,"Caretaker Dilandrus - On Waypoint 5 Reached - Run Script"),
+(@ENTRY,0,2,0,40,0,100,0,7,16856,0,0,80,@ENTRY*100+01,2,0,0,0,0,1,0,0,0,0,0,0,0,"Caretaker Dilandrus - On Waypoint 7 Reached - Run Script"),
+(@ENTRY,0,3,0,40,0,100,0,11,16856,0,0,80,@ENTRY*100+01,2,0,0,0,0,1,0,0,0,0,0,0,0,"Caretaker Dilandrus - On Waypoint 11 Reached - Run Script"),
+(@ENTRY,0,4,0,40,0,100,0,15,16856,0,0,80,@ENTRY*100+01,2,0,0,0,0,1,0,0,0,0,0,0,0,"Caretaker Dilandrus - On Waypoint 15 Reached - Run Script"),
+(@ENTRY,0,5,0,40,0,100,0,20,16856,0,0,80,@ENTRY*100+01,2,0,0,0,0,1,0,0,0,0,0,0,0,"Caretaker Dilandrus - On Waypoint 20 Reached - Run Script"),
+(@ENTRY,0,6,0,40,0,100,0,24,16856,0,0,80,@ENTRY*100+01,2,0,0,0,0,1,0,0,0,0,0,0,0,"Caretaker Dilandrus - On Waypoint 24 Reached - Run Script"),
+(@ENTRY,0,7,0,40,0,100,0,30,16856,0,0,80,@ENTRY*100+01,2,0,0,0,0,1,0,0,0,0,0,0,0,"Caretaker Dilandrus - On Waypoint 30 Reached - Run Script"),
+(@ENTRY,0,8,0,40,0,100,0,33,16856,0,0,54,300000,0,0,0,0,0,1,0,0,0,0,0,0,0,"Caretaker Dilandrus - On Waypoint 33 Reached - Pause Waypoint");
+
+-- Actionlist SAI
+SET @ENTRY := 1685601;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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,9,0,0,0,0,100,0,0,0,0,0,54,10000,0,0,0,0,0,1,0,0,0,0,0,0,0,"Caretaker Dilandrus - On Script - Pause Waypoint"),
+(@ENTRY,9,1,0,0,0,100,0,0,0,0,0,66,0,0,0,0,0,0,1,0,0,0,0,0,0,2.75976,"Caretaker Dilandrus - On Script - Set Orientation Home Position"),
+(@ENTRY,9,2,0,0,0,100,0,3000,3000,0,0,5,66,0,0,0,0,0,1,0,0,0,0,0,0,0,"Caretaker Dilandrus - On Script - Play Emote 66"),
+(@ENTRY,9,3,0,0,0,100,0,3000,3000,0,0,5,68,0,0,0,0,0,0,0,0,0,0,0,0,0,"Caretaker Dilandrus - On Script - Play Emote 68");
diff --git a/sql/updates/world/2015_02_06_04_world.sql b/sql/updates/world/2015_02_06_04_world.sql
new file mode 100644
index 00000000000..1a4484df5a3
--- /dev/null
+++ b/sql/updates/world/2015_02_06_04_world.sql
@@ -0,0 +1,32 @@
+-- Areatrigger SAI
+SET @ENTRY := 1447;
+DELETE FROM `areatrigger_scripts` WHERE `entry`=@ENTRY;
+INSERT INTO `areatrigger_scripts` (`entry`,`ScriptName`) VALUES (@ENTRY,"SmartTrigger");
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=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,2,0,0,46,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,81519,8127,0,0,0,0,0,"Areatrigger - On Trigger - Set Data 1 1");
+
+-- Antu'sul SAI
+SET @ENTRY := 8127;
+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,1,0,0,50,2,11600,11600,13300,21700,11,8376,0,0,0,0,0,1,0,0,0,0,0,0,0,"Antu'sul - In Combat - Cast 'Earthgrab Totem' (Normal Dungeon)"),
+(@ENTRY,0,1,0,61,0,50,3,11600,11600,13300,21700,11,11899,0,0,0,0,0,1,0,0,0,0,0,0,0,"Antu'sul - In Combat - Cast 'Healing Ward' (Normal Dungeon)"),
+(@ENTRY,0,2,6,4,0,100,3,0,0,0,0,11,11894,0,0,0,0,0,1,0,0,0,0,0,0,0,"Antu'sul - On Aggro - Cast 'Antu'sul's Minion' (No Repeat) (Normal Dungeon)"),
+(@ENTRY,0,3,0,2,0,100,3,0,20,0,0,11,11895,0,0,0,0,0,1,0,0,0,0,0,0,0,"Antu'sul - Between 0-20% Health - Cast 'Healing Wave of Antu'sul' (No Repeat) (Normal Dungeon)"),
+(@ENTRY,0,4,5,2,0,100,3,0,25,0,0,11,11894,0,0,0,0,0,1,0,0,0,0,0,0,0,"Antu'sul - Between 0-25% Health - Cast 'Antu'sul's Minion' (No Repeat) (Normal Dungeon)"),
+(@ENTRY,0,5,0,61,0,100,3,0,25,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Antu'sul - Between 0-25% Health - Say Line 0 (No Repeat) (Normal Dungeon)"),
+(@ENTRY,0,6,0,61,0,100,3,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Antu'sul - On Aggro - Say Line 1 (No Repeat) (Normal Dungeon)"),
+(@ENTRY,0,7,8,2,0,100,3,0,75,0,0,11,11894,0,0,0,0,0,1,0,0,0,0,0,0,0,"Antu'sul - Between 0-75% Health - Cast 'Antu'sul's Minion' (No Repeat) (Normal Dungeon)"),
+(@ENTRY,0,8,0,61,0,100,3,0,75,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Antu'sul - Between 0-75% Health - Say Line 2 (No Repeat) (Normal Dungeon)"),
+(@ENTRY,0,9,0,0,0,100,2,5000,5000,12000,14000,11,16006,0,0,0,0,0,5,0,0,0,0,0,0,0,"Antu'sul - In Combat - Cast 'Chain Lightning' (Normal Dungeon)"),
+(@ENTRY,0,10,0,0,0,100,2,3000,3000,9000,11000,11,15501,0,0,0,0,0,2,0,0,0,0,0,0,0,"Antu'sul - In Combat - Cast 'Earth Shock' (Normal Dungeon)"),
+(@ENTRY,0,11,0,38,0,100,0,1,1,0,0,49,0,0,0,0,0,0,21,100,0,0,0,0,0,0,"Antu'sul - On Data Set 1 1 - Start Attacking");
+
+SET @ENTRY := 8127;
+DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
+(@ENTRY,0,0, 'The children of Sul will protect their master. Rise once more Sul\'lithuz!',14,0,100,0,0,0, 4178, 0, 'Antu\'sul'),
+(@ENTRY,1,0, 'Lunch has arrived, my beautiful children. Tear them to pieces!',14,0,100,0,0,0, 4166, 0, 'Antu\'sul'),
+(@ENTRY,2,0, 'Rise and defend your master!',14,0,100,0,0,0, 4177, 0, 'Antu\'sul');
diff --git a/sql/updates/world/2015_02_06_05_world.sql b/sql/updates/world/2015_02_06_05_world.sql
new file mode 100644
index 00000000000..bd04efd9c66
--- /dev/null
+++ b/sql/updates/world/2015_02_06_05_world.sql
@@ -0,0 +1,45 @@
+-- Commander Hogarth SAI
+SET @ENTRY := 19937;
+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,1,0,0,0,0,11,33900,0,0,0,0,0,1,0,0,0,0,0,0,0,"Commander Hogarth - On Respawn - Cast 'Shroud of Death' (No Repeat)"),
+(@ENTRY,0,1,2,20,0,100,0,10258,0,0,0,12,20117,6,0,0,0,0,8,0,0,0,-1186.95,2608.81,27.702,5.38523,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding Knight'"),
+(@ENTRY,0,2,3,61,0,100,0,10258,0,0,0,12,19863,6,0,0,0,0,8,0,0,0,-1192.14,2602.7,29.2625,0.0820243,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding'"),
+(@ENTRY,0,3,4,61,0,100,0,10258,0,0,0,12,20117,6,0,0,0,0,8,0,0,0,-1181.95,2611.13,27.3004,4.61566,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding Knight'"),
+(@ENTRY,0,4,5,61,0,100,0,10258,0,0,0,12,19863,6,0,0,0,0,8,0,0,0,-1183.65,2603.66,29.4927,6.09219,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding'"),
+(@ENTRY,0,5,6,61,0,100,0,10258,0,0,0,12,19863,6,0,0,0,0,8,0,0,0,-1184.48,2609.26,27.7192,5.01103,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding'"),
+(@ENTRY,0,6,7,61,0,100,0,10258,0,0,0,12,19863,6,0,0,0,0,8,0,0,0,-1175.39,2607.4,28.853,3.63473,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding'"),
+(@ENTRY,0,7,8,61,0,100,0,10258,0,0,0,12,19863,6,0,0,0,0,8,0,0,0,-1178.36,2609.96,27.8814,4.12375,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding'"),
+(@ENTRY,0,8,9,61,0,100,0,10258,0,0,0,12,19863,6,0,0,0,0,8,0,0,0,-1182.51,2608.35,28.1201,4.67383,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding'"),
+(@ENTRY,0,9,10,61,0,100,0,10258,0,0,0,12,19863,6,0,0,0,0,8,0,0,0,-1189.12,2601.88,29.6988,0.242659,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding'"),
+(@ENTRY,0,10,11,61,0,100,0,10258,0,0,0,12,19863,6,0,0,0,0,8,0,0,0,-1179.46,2606.03,29.0216,3.81031,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding'"),
+(@ENTRY,0,11,12,61,0,100,0,10258,0,0,0,12,19863,6,0,0,0,0,8,0,0,0,-1180.6,2598.15,35.2317,1.94692,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding'"),
+(@ENTRY,0,12,13,61,0,100,0,10258,0,0,0,12,20117,6,0,0,0,0,8,0,0,0,-1190.87,2607.06,27.9991,5.86898,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding Knight'"),
+(@ENTRY,0,13,14,61,0,100,0,10258,0,0,0,12,19863,6,0,0,0,0,8,0,0,0,-1179.81,2603.43,29.8027,3.12637,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding'"),
+(@ENTRY,0,14,15,61,0,100,0,10258,0,0,0,12,19863,6,0,0,0,0,8,0,0,0,-1184.47,2606.9,28.4442,5.18881,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding'"),
+(@ENTRY,0,15,16,61,0,100,0,10258,0,0,0,12,19863,6,0,0,0,0,8,0,0,0,-1186.63,2605.58,28.7169,5.79079,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding'"),
+(@ENTRY,0,16,17,61,0,100,0,10258,0,0,0,12,19863,6,0,0,0,0,8,0,0,0,-1189.03,2604.6,28.8694,6.10697,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding'"),
+(@ENTRY,0,17,18,61,0,100,0,10258,0,0,0,12,19863,6,0,0,0,0,8,0,0,0,-1185.68,2603.39,29.4476,5.18881,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding'"),
+(@ENTRY,0,18,0,61,0,100,0,10258,0,0,0,12,19863,6,0,0,0,0,8,0,0,0,-1181.97,2605.76,28.9476,4.40683,"Commander Hogarth - On Quest 'Honor the Fallen' Finished - Summon Creature 'Vengeful Unyielding'");
+
+DELETE FROM `creature_template_addon` WHERE `entry` IN (20117, 19863);
+INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(20117, 0, 0, 0, 0, 0, '33900'),
+(19863, 0, 0, 0, 0, 0, '33900');
+
+-- Vengeful Unyielding Knight SAI
+SET @ENTRY := 20117;
+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,54,0,100,0,0,0,0,0,41,15000,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vengeful Unyielding Knight - On Just Summoned - Despawn In 15000 ms"),
+(@ENTRY,0,1,0,54,0,100,0,0,0,0,0,5,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vengeful Unyielding Knight - On Just Summoned - Play Emote 2");
+
+-- Vengeful Unyielding SAI
+SET @ENTRY := 19863;
+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,54,0,100,0,0,0,0,0,41,15000,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vengeful Unyielding - On Just Summoned - Despawn In 15000 ms"),
+(@ENTRY,0,1,0,54,0,100,0,0,0,0,0,5,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vengeful Unyielding - On Just Summoned - Play Emote 2");
diff --git a/sql/updates/world/2015_02_06_06_world.sql b/sql/updates/world/2015_02_06_06_world.sql
new file mode 100644
index 00000000000..0d7b75a72cc
--- /dev/null
+++ b/sql/updates/world/2015_02_06_06_world.sql
@@ -0,0 +1,2 @@
+--
+UPDATE `creature_questender` SET `id` =38017 WHERE `quest` =24880;
diff --git a/sql/updates/world/2015_02_06_07_world.sql b/sql/updates/world/2015_02_06_07_world.sql
new file mode 100644
index 00000000000..ab3eb6ae454
--- /dev/null
+++ b/sql/updates/world/2015_02_06_07_world.sql
@@ -0,0 +1,6 @@
+-- Tiny Snowman SAI
+SET @ENTRY := 15710;
+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,22,0,100,0,34,0,0,0,5,94,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tiny Snowman - Received Emote 34 - Play Emote 94");
diff --git a/sql/updates/world/2015_02_06_08_world.sql b/sql/updates/world/2015_02_06_08_world.sql
new file mode 100644
index 00000000000..e05c5e15c8e
--- /dev/null
+++ b/sql/updates/world/2015_02_06_08_world.sql
@@ -0,0 +1,4 @@
+--
+DELETE FROM `smart_scripts` WHERE `entryorguid`=20206 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
+(20206, 0, 0, 0, 20, 0, 100, 0, 10919, 0, 0, 0, 53, 0, 20206, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fei Fei - On Quest \'Fei Fei\'s Treat\' Finished - Start Waypoint (Phase 1) (No Repeat)');
diff --git a/sql/updates/world/2015_02_06_09_world.sql b/sql/updates/world/2015_02_06_09_world.sql
new file mode 100644
index 00000000000..94696444dd4
--- /dev/null
+++ b/sql/updates/world/2015_02_06_09_world.sql
@@ -0,0 +1,11 @@
+--
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (4131, 4133);
+DELETE FROM `smart_scripts` WHERE `entryorguid`=4131 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
+(4131, 0, 0, 0, 0, 0, 100, 1, 4000, 7000, 22000, 25000, 11, 6016, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Silithid Invader - IC - Cast Pierce Armor'),
+(4131, 0, 1, 0, 0, 0, 100, 1, 10000, 16000, 0, 0, 11, 8137, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Silithid Invader - IC - Cast Pierce Armor'),
+(4131, 0, 2, 0, 2, 0, 100, 1, 0, 15, 0, 0, 39, 20, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Silithid Invader - on hp below 15 % - call for help');
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=4133 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
+(4133, 0, 2, 0, 2, 0, 100, 1, 0, 15, 0, 0, 39, 20, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Silithid Hive Drone - on hp below 15 % - call for help');
diff --git a/sql/updates/world/2015_02_06_10_world.sql b/sql/updates/world/2015_02_06_10_world.sql
new file mode 100644
index 00000000000..428a0c7e8ca
--- /dev/null
+++ b/sql/updates/world/2015_02_06_10_world.sql
@@ -0,0 +1,2 @@
+--
+UPDATE creature_template SET mechanic_immune_mask = mechanic_immune_mask | 0x20 WHERE entry = 31464;
diff --git a/sql/updates/world/2015_02_06_11_world.sql b/sql/updates/world/2015_02_06_11_world.sql
new file mode 100644
index 00000000000..5a385218931
--- /dev/null
+++ b/sql/updates/world/2015_02_06_11_world.sql
@@ -0,0 +1,7 @@
+--
+DELETE FROM `disables` WHERE `entry` IN (649,650) AND `sourceType` = 7;
+DELETE FROM `disables` WHERE `entry` = 650 AND `sourceType` = 2;
+INSERT INTO `disables` (`sourceType`, `entry`, `flags`, `params_0`, `params_1`, `comment`) VALUES
+(7, 649, 0, '', '', 'Disable mmaps - Trial of the Crusader'),
+(7, 650, 0, '', '', 'Disable mmaps - Trial of the Champion'),
+(2, 650, 3, '', '', 'Disable Trial of the Champion, broken instance');
diff --git a/sql/updates/world/2015_02_06_12_world.sql b/sql/updates/world/2015_02_06_12_world.sql
new file mode 100644
index 00000000000..f6a95a7c010
--- /dev/null
+++ b/sql/updates/world/2015_02_06_12_world.sql
@@ -0,0 +1,2 @@
+--
+UPDATE `gameobject_template` SET `flags`=32 WHERE `entry` IN (175611,175612,175613,175614);
diff --git a/sql/updates/world/2015_02_06_13_world_335.sql b/sql/updates/world/2015_02_06_13_world_335.sql
new file mode 100644
index 00000000000..8cd8df2147e
--- /dev/null
+++ b/sql/updates/world/2015_02_06_13_world_335.sql
@@ -0,0 +1,372 @@
+UPDATE `locales_item` SET `description_loc6` = '', `description_loc7` = '' WHERE `entry` IN (42469, 42734, 42739, 42740, 42747, 42750, 43357, 43420, 43426, 43429);
+UPDATE `locales_item` SET `description_loc7` = `description_loc6` WHERE `entry` IN (40142, 40143, 40144, 40145, 40146, 40147, 40149, 40150, 40152, 40154, 40155, 40156, 40158, 40159, 40160, 40161, 40163);
+
+CREATE TEMPORARY TABLE `locales_update` (
+ `entry` mediumint(8) unsigned NOT NULL DEFAULT '0',
+ `name_loc6` varchar(100) NOT NULL DEFAULT '',
+ `name_loc7` varchar(100) NOT NULL DEFAULT '',
+ `description_loc6` varchar(255) DEFAULT NULL,
+ `description_loc7` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`entry`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+INSERT INTO `locales_update` (`entry`, `name_loc6`, `name_loc7`, `description_loc6`, `description_loc7`) VALUES
+ (40143, 'Ametrino con grabados', 'Ametrino con grabados', 'Encaja en una ranura de color rojo o amarillo.', 'Encaja en una ranura de color rojo o amarillo.'),
+ (40148, 'Ametrino destellante', 'Ametrino destellante', 'Encaja en una ranura de color rojo o amarillo.', 'Encaja en una ranura de color rojo o amarillo.'),
+ (40151, 'Ametrino luminoso', 'Ametrino luminoso', 'Encaja en una ranura de color rojo o amarillo.', 'Encaja en una ranura de color rojo o amarillo.'),
+ (40153, 'Ametrino velado', 'Ametrino velado', 'Encaja en una ranura de color rojo o amarillo.', 'Encaja en una ranura de color rojo o amarillo.'),
+ (40157, 'Ametrino prístino', 'Ametrino prístino', 'Encaja en una ranura de color rojo o amarillo.', 'Encaja en una ranura de color rojo o amarillo.'),
+ (40162, 'Ametrino de precisión', 'Ametrino de precisión', 'Encaja en una ranura de color rojo o amarillo.', 'Encaja en una ranura de color rojo o amarillo.'),
+ (46947, 'Boceto: ametrino luminoso', 'Boceto: ametrino luminoso', 'Te enseña a tallar un ametrino luminoso.', 'Te enseña a tallar un ametrino luminoso.'),
+ (46951, 'Boceto: ametrino velado', 'Boceto: ametrino velado', 'Te enseña a tallar un ametrino velado.', 'Te enseña a tallar un ametrino velado.'),
+ (46953, 'Boceto: ametrino con grabados', 'Boceto: ametrino con grabados', 'Te enseña a tallar un ametrino con grabados.', ' Te enseña a tallar un ametrino con grabados.'),
+ (46956, 'Boceto: ametrino prístino', 'Boceto: ametrino prístino', 'Te enseña a tallar un ametrino prístino.', ' Te enseña a tallar un ametrino prístino.'),
+ (47008, 'Boceto: ametrino destellante', 'Boceto: ametrino destellante', 'Te enseña a tallar un ametrino destellante.', ' Te enseña a tallar un ametrino destellante.'),
+ (47010, 'Boceto: ametrino de precisión', 'Boceto: ametrino de precisión', 'Te enseña a tallar un ametrino de precisión.', ' Te enseña a tallar un ametrino de precisión.'),
+ (46900, 'Boceto: ojo de Zul deslumbrante', 'Boceto: ojo de Zul deslumbrante', 'Te enseña a tallar un ojo de Zul deslumbrante.', 'Te enseña a tallar un ojo de Zul deslumbrante.'),
+ (46902, 'Boceto: ojo de Zul intemporal', 'Boceto: ojo de Zul intemporal', 'Te enseña a tallar un ojo de Zul intemporal.', 'Te enseña a tallar un ojo de Zul intemporal.'),
+ (46903, 'Boceto: ojo de Zul vidente', 'Boceto: ojo de Zul vidente', 'Te enseña a tallar un ojo de Zul vidente.', 'Te enseña a tallar un ojo de Zul vidente.'),
+ (41101,'Glifo de Escudo de vengador','Glifo de Escudo de vengador','',''),
+ (41107,'Glifo de Cólera vengativa','Glifo de Cólera vengativa','',''),
+ (45743,'Glifo de Tormenta divina','Glifo de Tormenta divina','',''),
+ (41105,'Glifo de Destello de Luz','Glifo de Destello de Luz','',''),
+ (41106,'Glifo de Luz Sagrada','Glifo de Luz Sagrada','',''),
+ (41100,'Glifo de Defensa recta','Glifo de Defensa recta','',''),
+ (41094,'Glifo de Sello de orden','Glifo de Sello de orden','',''),
+ (41110,'Glifo de Sello de Luz','Glifo de Sello de Luz','',''),
+ (43868,'Glifo de Sello de rectitud','Glifo de Sello de rectitud','',''),
+ (43869,'Glifo de Sello de venganza','Glifo de Sello de venganza','',''),
+ (41109,'Glifo de Sello de sabiduría','Glifo de Sello de sabiduría','',''),
+ (45744,'Glifo de Escudo de rectitud','Glifo de Escudo de rectitud','',''),
+ (45760,'Glifo de Supresión de dolor','Glifo de Supresión de dolor','',''),
+ (42407,'Glifo de sombra','Glifo de sombra','',''),
+ (42417,'Glifo de Espíritu redentor','Glifo de Espíritu redentor','',''),
+ (42965,'Glifo de Golpe fantasmal','Glifo de Golpe fantasmal','',''),
+ (45761,'Glifo de Hambre de sangre','Glifo de Hambre de sangre','',''),
+ (42971,'Glifo de vigor','Glifo de vigor','',''),
+ (43380,'Glifo de Esfumarse','Glifo de Esfumarse','',''),
+ (48720,'Glifo de Zarpa','Glifo de Zarpa','',''),
+ (40899,'Glifo de Bramido','Glifo de Bramido','',''),
+ (46372,'Glifo de Instintos de supervivencia','Glifo de Instintos de supervivencia','',''),
+ (50125,'Glifo de Rejuvenecimiento rápido','Glifo de Rejuvenecimiento rápido','',''),
+ (40903,'Glifo de Arañazo','Glifo de Arañazo','',''),
+ (45603,'Glifo de Nutrir','Glifo de Nutrir','',''),
+ (43335,'Glifo de lo Salvaje','Glifo de lo Salvaje','',''),
+ (42899,'Glifo de la bestia','Glifo de la bestia','',''),
+ (42901,'Glifo de Aspecto de la víbora','Glifo de Aspecto de la víbora','',''),
+ (45733,'Glifo de Trampa explosiva','Glifo de Trampa explosiva','',''),
+ (42906,'Glifo de Trampa de Escarcha','Glifo de Trampa de Escarcha','',''),
+ (42907,'Glifo de Marca del cazador','Glifo de Marca del cazador','',''),
+ (42909,'Glifo de halcón','Glifo de halcón','',''),
+ (42910,'Glifo de Multidisparo','Glifo de Multidisparo','',''),
+ (42915,'Glifo de Aura de disparo certero','Glifo de Aura de disparo certero','',''),
+ (42916,'Glifo de Salva','Glifo de Salva','',''),
+ (43350,'Glifo de Aliviar mascota','Glifo de Aliviar mascota','',''),
+ (43354,'Glifo de fuerza poseída','Glifo de fuerza poseída','',''),
+ (43355,'Glifo de la manada','Glifo de la manada','',''),
+ (42734,'Glifo de Deflagración Arcana','Glifo de Deflagración Arcana','',''),
+ (50045,'Glifo de Agua eterna','Glifo de Agua eterna','',''),
+ (42740,'Glifo de Explosión de Fuego','Glifo de Explosión de Fuego','',''),
+ (42743,'Glifo de Armadura de hielo','Glifo de Armadura de hielo','',''),
+ (42747,'Glifo de Agostar','Glifo de Agostar','',''),
+ (45737,'Glifo de Bomba viva','Glifo de Bomba viva','',''),
+ (42750,'Glifo de Gema de maná','Glifo de Gema de maná','',''),
+ (42753,'Glifo de Eliminar maldición','Glifo de Eliminar maldición','',''),
+ (42754,'Glifo de Elemental de agua','Glifo de Elemental de agua','',''),
+ (43339,'Glifo de Intelecto Arcano','Glifo de Intelecto Arcano','',''),
+ (43357,'Glifo de Resguardo contra el Fuego','Glifo de Resguardo contra el Fuego','',''),
+ (43359,'Glifo de Armadura de Escarcha','Glifo de Armadura de Escarcha','',''),
+ (43360,'Glifo de Resguardo contra la Escarcha','Glifo de Resguardo contra la Escarcha','',''),
+ (41096,'Glifo de Protección divina','Glifo de Protección divina','',''),
+ (43366,'Glifo de Bendición de sabiduría','Glifo de Bendición de sabiduría','',''),
+ (43368,'Glifo de Captar no-muertos','Glifo de Captar no-muertos','',''),
+ (43369,'Glifo del Sabio','Glifo del Sabio','',''),
+ (45758,'Glifo de Himno de esperanza','Glifo de Himno de esperanza','',''),
+ (42405,'Glifo de Control mental','Glifo de Control mental','',''),
+ (45757,'Glifo de Abrasamiento mental','Glifo de Abrasamiento mental','',''),
+ (41541,'Glifo de Maestría en Agua','Glifo de Maestría en Agua','',''),
+ (45776,'Glifo de Tótem de cólera','Glifo de Tótem de cólera','',''),
+ (41538,'Glifo de Tótem Marea de maná','Glifo de Tótem Marea de maná','',''),
+ (41535,'Glifo de Ola de sanación inferior','Glifo de Ola de sanación inferior','',''),
+ (41524,'Glifo de Lava','Glifo de Lava','',''),
+ (43386,'Glifo de Escudo de agua','Glifo de Escudo de agua','',''),
+ (42456,'Glifo de Maldición de agonía','Glifo de Maldición de agonía','',''),
+ (50077,'Glifo de descomposición presurosa','Glifo de descomposición presurosa','',''),
+ (42466,'Glifo de Dolor abrasador','Glifo de Dolor abrasador','',''),
+ (42469,'Glifo de Succionar vida','Glifo de Succionar vida','',''),
+ (43394,'Glifo de almas','Glifo de almas','',''),
+ (43391,'Glifo de Kilrogg','Glifo de Kilrogg','',''),
+ (43420,'Glifo de insultos barbáricos','Glifo de insultos barbáricos','',''),
+ (43425,'Glifo de Bloqueo','Glifo de Bloqueo','',''),
+ (43412,'Glifo de Sed de sangre','Glifo de Sed de sangre','',''),
+ (45794,'Glifo de Regeneración iracunda','Glifo de Regeneración iracunda','',''),
+ (43416,'Glifo de Ejecutar','Glifo de Ejecutar','',''),
+ (43417,'Glifo de Seccionar','Glifo de Seccionar','',''),
+ (43418,'Glifo de Golpe heroico','Glifo de Golpe heroico','',''),
+ (43426,'Glifo de Última carga','Glifo de Última carga','',''),
+ (43423,'Glifo de Desgarrar','Glifo de Desgarrar','',''),
+ (43429,'Glifo de Provocar','Glifo de Provocar','',''),
+ (45793,'Glifo de Vigilancia','Glifo de Vigilancia','',''),
+ (43432,'Glifo de Torbellino','Glifo de Torbellino','',''),
+ (43398,'Glifo de Falsa arremetida','Glifo de Falsa arremetida','',''),
+ (49084,'Glifo de orden','Glifo de orden','',''),
+ (43397,'Glifo de Cargar','Glifo de Cargar','',''),
+ (43396,'Glifo de Ira rabiosa','Glifo de Ira rabiosa','',''),
+ (40114,'Rubí cárdeno brillante','Rubí cárdeno brillante','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (40117,'Rubí cárdeno fracturado','Rubí cárdeno fracturado','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (40113,'Rubí cárdeno rúnico','Rubí cárdeno rúnico','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (40115,'Rubí cárdeno sutil','Rubí cárdeno sutil','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (32197,'Espinela carmesí brillante','Espinela carmesí brillante','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (32196,'Espinela carmesí rúnica','Espinela carmesí rúnica','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (32198,'Espinela carmesí sutil','Espinela carmesí sutil','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (32195,'Lágrima de espinela carmesí','Lágrima de espinela carmesí','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (39999,'Rubí escarlata brillante','Rubí escarlata brillante','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (40002,'Rubí escarlata fracturado','Rubí escarlata fracturado','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (39998,'Rubí escarlata rúnico','Rubí escarlata rúnico','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (24031,'Rubí vivo brillante','Rubí vivo brillante','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (24030,'Rubí vivo rúnico','Rubí vivo rúnico','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (24032,'Rubí vivo sutil','Rubí vivo sutil','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (24029,'Lágrima de rubí vivo','Lágrima de rubí vivo','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (39907,'Sangrita sutil','Sangrita sutil','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (39906,'Sangrita brillante','Sangrita brillante','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (39909,'Sangrita fracturada','Sangrita fracturada','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (39911,'Sangrita rúnica','Sangrita rúnica','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (23096,'Granate de sangre rúnico','Granate de sangre rúnico','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (28595,'Granate de sangre brillante','Granate de sangre brillante','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (23094,'Lágrima de granate de sangre','Lágrima de granate de sangre','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (40175,'Ojo de Zul deslumbrante','Ojo de Zul deslumbrante','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40167,'Ojo de Zul duradero','Ojo de Zul duradero','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40174,'Ojo de Zul intrincado','Ojo de Zul intrincado','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40165,'Ojo de Zul irregular','Ojo de Zul irregular','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40177,'Ojo de Zul luminiscente','Ojo de Zul luminiscente','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40178,'Ojo de Zul opaco','Ojo de Zul opaco','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40170,'Ojo de Zul vidente','Ojo de Zul vidente','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40172,'Ojo de Zul brillante','Ojo de Zul brillante','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40176,'Ojo de Zul hendido','Ojo de Zul hendido','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40181,'Ojo de Zul tenso','Ojo de Zul tenso','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40164,'Ojo de Zul intemporal','Ojo de Zul intemporal','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40166,'Ojo de Zul vívido','Ojo de Zul vívido','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (32225,'Esmeralda de espuma marina deslumbrante','Esmeralda de espuma marina deslumbrante.','Encaja en una ranura de color amarillo o azul','Encaja en una ranura de color amarillo o azul.'),
+ (32223,'Esmeralda de espuma marina duradera','Esmeralda de espuma marina duradera.','Encaja en una ranura de color amarillo o azul','Encaja en una ranura de color amarillo o azul.'),
+ (32226,'Esmeralda de espuma marina irregular','Esmeralda de espuma marina irregular.','Encaja en una ranura de color amarillo o azul','Encaja en una ranura de color amarillo o azul.'),
+ (40094,'Esmeralda del bosque deslumbrante','Esmeralda del bosque deslumbrante','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40089,'Esmeralda del bosque duradera','Esmeralda del bosque duradera','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40104,'Esmeralda del bosque intrincada','Esmeralda del bosque intrincada','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40100,'Esmeralda del bosque luminiscente','Esmeralda del bosque luminiscente','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40103,'Esmeralda del bosque opaca','Esmeralda del bosque opaca','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40092,'Esmeralda del bosque de vidente','Esmeralda del bosque de vidente','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40099,'Esmeralda del bosque brillante','Esmeralda del bosque brillante','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40096,'Esmeralda del bosque hendida','Esmeralda del bosque hendida','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40101,'Esmeralda del bosque tensa','Esmeralda del bosque tensa','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40085,'Esmeralda del bosque intemporal','Esmeralda del bosque intemporal','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40088,'Esmeralda del bosque vívida','Esmeralda del bosque vívida','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (24065,'Talasita deslumbrante','Talasita deslumbrante','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (24062,'Talasita duradera','Talasita duradera','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (24067,'Talasita irregular','Talasita irregular','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (39984,'Jade oscuro deslumbrante','Jade oscuro deslumbrante','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (39976,'Jade oscuro duradero','Jade oscuro duradero','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (39983,'Jade oscuro intrincado','Jade oscuro intrincado','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (39986,'Jade oscuro luminiscente','Jade oscuro luminiscente','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (39988,'Jade oscuro opaco','Jade oscuro opaco','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (39979,'Jade oscuro vidente','Jade oscuro vidente','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (39981,'Jade oscuro brillante','Jade oscuro brillante','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (39985,'Jade oscuro hendido','Jade oscuro hendido','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (39991,'Jade oscuro tenso','Jade oscuro tenso','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (39968,'Jade oscuro intemporal','Jade oscuro intemporal','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (39975,'Jade oscuro vívido','Jade oscuro vívido','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (23106,'Peridoto intenso deslumbrante','Peridoto intenso deslumbrante','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (23105,'Peridoto intenso duradero','Peridoto intenso duradero','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (23104,'Peridoto intenso irregular','Peridoto intenso irregular','Encaja en una ranura de color amarillo o azul.','Encaja en una ranura de color amarillo o azul.'),
+ (40154,'Ametrino durable','Ametrino durable','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40158,'Ametrino potenciado','Ametrino potenciado','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40161,'Ametrino de luz trémula','Ametrino de luz trémula','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40149,'Ametrino iluminado','Ametrino iluminado','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40145,'Ametrino resplandeciente','Ametrino resplandeciente','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40159,'Ametrino diestro','Ametrino diestro','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40156,'Ametrino maligno','Ametrino maligno','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (32220,'Piropiedra destelleante','Piropiedra destelleante','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (32219,'Piropiedra luminosa','Piropiedra luminosa','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo'),
+ (32221,'Piropiedra velada','Piropiedra velada','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (32222,'Piropiedra maligna','Piropiedra maligna','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40058,'Topacio monarca de precisión','Topacio monarca de precisión','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40046,'Topacio monarca diestro','Topacio monarca diestro','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40050,'Topacio monarca durable','Topacio monarca durable','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40054,'Topacio monarca potenciado','Topacio monarca potenciado','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40038,'Topacio monarca grabado','Topacio monarca grabado','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40057,'Topacio monarca de luz trémula','Topacio monarca de luz trémula','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40044,'Topacio monarca destellante','Topacio monarca destellante','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40045,'Topacio monarca iluminado','Topacio monarca iluminado','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40047,'Topacio monarca luminoso','Topacio monarca luminoso','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40053,'Topacio monarca prístino','Topacio monarca prístino','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40055,'Topacio monarca completo','Topacio monarca completo','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40049,'Topacio monarca velado','Topacio monarca velado','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40052,'Topacio monarca maligno','Topacio monarca maligno','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (24061,'Topacio noble destellante','Topacio noble destellante','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (24060,'Topacio noble temerario','Topacio noble temerario','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (31867,'Topacio noble velado','Topacio noble velado','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (31868,'Topacio noble maligno','Topacio noble maligno','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (39965,'Citrino enorme de luz trémula','Citrino enorme de luz trémula','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (39966,'Citrino enorme de precisión','Citrino enorme de precisión','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (39958,'Citrino enorme durable','Citrino enorme durable','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (39962,'Citrino enorme potenciado','Citrino enorme potenciado','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (39948,'Citrino enorme grabado','Citrino enorme grabado','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (39953,'Citrino enorme destellante','Citrino enorme destellante','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (39954,'Citrino enorme iluminado','Citrino enorme iluminado','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (39946,'Citrino enorme luminoso','Citrino enorme luminoso','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (39961,'Citrino enorme prístino','Citrino enorme prístino','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (39963,'Citrino enorme completo','Citrino enorme completo','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (39957,'Citrino enorme velado','Citrino enorme velado','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (39960,'Citrino enorme maligno','Citrino enorme maligno','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (31866,'Espesartita de llamas velada','Espesartita de llamas velada','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (31869,'Espesartita de llamas maligna','Espesartita de llamas maligna','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (23100,'Espesartita de llamas destellante','Espesartita de llamas destellante','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (23099,'Espesartita de llamas luminosa','Espesartita de llamas luminosa','Encaja en una ranura de color rojo o amarillo.','Encaja en una ranura de color rojo o amarillo.'),
+ (40136,'Piedra de terror equilibrada','Piedra de terror equilibrada','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (40132,'Piedra de terror resplandeciente','Piedra de terror resplandeciente','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (40137,'Piedra de terror imbuida','Piedra de terror imbuida','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (40138,'Piedra de terror regia','Piedra de terror regia','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (40134,'Piedra de terror real','Piedra de terror real','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (40131,'Piedra de terror de tenuidad','Piedra de terror de tenuidad','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (32213,'Amatista Cantosombrío equilibrada','Amatista Cantosombrío equilibrada','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (32215,'Amatista Cantosombrío resplandeciente','Amatista Cantosombrío resplandeciente','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (32214,'Amatista Cantosombrío imbuida','Amatista Cantosombrío imbuida','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (32216,'Amatista Cantosombrío real','Amatista Cantosombrío real','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (40029,'Ópalo crepuscular equilibrado','Ópalo crepuscular equilibrado','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (40025,'Ópalo crepuscular resplandeciente','Ópalo crepuscular resplandeciente','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (40030,'Ópalo crepuscular imbuido','Ópalo crepuscular imbuido','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (40033,'Ópalo crepuscular enjundioso','Ópalo crepuscular enjundioso','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (40031,'Ópalo crepuscular regio','Ópalo crepuscular regio','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (40027,'Ópalo crepuscular real','Ópalo crepuscular real','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (40024,'Ópalo crepuscular de tenuidad','Ópalo crepuscular de tenuidad','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (31863,'Ojo de noche equilibrado','Ojo de noche equilibrado','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (24056,'Ojo de noche resplandeciente','Ojo de noche resplandeciente','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (31865,'Ojo de noche imbuido','Ojo de noche imbuido','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (35707,'Ojo de noche regio','Ojo de noche regio','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (24057,'Ojo de noche real','Ojo de noche real','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (39938,'Cristal de Sombras regio','Cristal de Sombras regio','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (39937,'Cristal de Sombras equilibrado','Cristal de Sombras equilibrado','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (39936,'Cristal de Sombras resplandeciente','Cristal de Sombras resplandeciente','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (39944,'Cristal de Sombras imbuido','Cristal de Sombras imbuido','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (39933,'Cristal de Sombras enjudioso','Cristal de Sombras enjudioso','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (39943,'Cristal de Sombras real','Cristal de Sombras real','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (39942,'Cristal de Sombras de tenuidad','Cristal de Sombras de tenuidad','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (31862,'Draenita de Sombras equilibrada','Draenita de Sombras equilibrada','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (31864,'Draenita de Sombras imbuida','Draenita de Sombras imbuida','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (23109,'Draenita de Sombras real','Draenita de Sombras real','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (23108,'Draenita de Sombras resplandeciente','Draenita de Sombras resplandeciente','Encaja en una ranura de color rojo o azul.','Encaja en una ranura de color rojo o azul.'),
+ (42701,'Perla encantada','Perla encantada','Encaja en una ranura de color rojo, amarillo o azul. Solo puedes encajar una en tu equipo.','Encaja en una ranura de color rojo, amarillo o azul. Solo puedes encajar una en tu equipo.'),
+ (36766,'Ojo de dragón brillante','Ojo de dragón brillante','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (42153,'Ojo de dragón fracturado','Ojo de dragón fracturado','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (42146,'Ojo de dragón lustroso','Ojo de dragón lustroso','Encaja en una ranura de color azul.','Encaja en una ranura de color azul.'),
+ (42144,'Ojo de dragón rúnico','Ojo de dragón rúnico','Encaja en una ranura de color rojo.','Encaja en una ranura de color rojo.'),
+ (42157,'Ojo de dragón grueso','Ojo de dragón grueso','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (41377,'Diamante de llama celeste refulgente','Diamante de llama celeste refulgente','Solo encaja en una ranura de gema meta.','Solo encaja en una ranura de gema meta.'),
+ (32202,'Zafiro empíreo luciente','Zafiro empíreo luciente','Encaja en una ranura de color azul.','Encaja en una ranura de color azul.'),
+ (32200,'Zafiro empíreo sólido','Zafiro empíreo sólido','Encaja en una ranura de color azul.','Encaja en una ranura de color azul.'),
+ (40123,'Ámbar del rey luminoso','Ámbar del rey luminoso','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (39349,'Vitela de arma','Vitela de arma','Se puede marcar como el objetivo de varios encantamientos de armas para almacenar el encantamiento y usarlo más tarde. Solo puede absorber encantamientos sin restricciones de nivel.','Se puede marcar como el objetivo de varios encantamientos de armas para almacenar el encantamiento y usarlo más tarde. Solo puede absorber encantamientos sin restricciones de nivel.'),
+ (39350,'Vitela de arma II','Vitela de arma II','Se puede marcar como el objetivo de varios encantamientos de armas para almacenar el encantamiento y usarlo más tarde. Solo puede absorber encantamientos con restricciones de nivel 35 o inferior.','Se puede marcar como el objetivo de varios encantamientos de armas para almacenar el encantamiento y usarlo más tarde. Solo puede absorber encantamientos con restricciones de nivel 35 o inferior.'),
+ (43146,'Vitela de arma III','Vitela de arma III','Se puede marcar como el objetivo de varios encantamientos de armas para almacenar el encantamiento y usarlo más tarde. Solo puede absorber encantamientos con restricciones de nivel 60 o inferior.','Se puede marcar como el objetivo de varios encantamientos de armas para almacenar el encantamiento y usarlo más tarde. Solo puede absorber encantamientos con restricciones de nivel 60 o inferior.'),
+ (38682,'Vitela de armadura','Vitela de armadura','Se puede marcar como el objetivo de varios encantamientos de armadura para almacenar el encantamiento y usarlo más tarde. Solo puede absorber encantamientos sin restricciones de nivel.','Se puede marcar como el objetivo de varios encantamientos de armadura para almacenar el encantamiento y usarlo más tarde. Solo puede absorber encantamientos sin restricciones de nivel.'),
+ (37602,'Vitela de armadura II','Vitela de armadura II','Se puede marcar como el objetivo de varios encantamientos de armadura para almacenar el encantamiento y usarlo más tarde. Solo puede absorber encantamientos con restricciones de nivel 35 o inferior.','Se puede marcar como el objetivo de varios encantamientos de armadura para almacenar el encantamiento y usarlo más tarde. Solo puede absorber encantamientos con restricciones de nivel 35 o inferior.'),
+ (43145,'Vitela de armadura III','Vitela de armadura III','Se puede marcar como el objetivo de varios encantamientos de armadura para almacenar el encantamiento y usarlo más tarde. Solo puede absorber encantamientos con restricciones de nivel 60 o inferior.','Se puede marcar como el objetivo de varios encantamientos de armadura para almacenar el encantamiento y usarlo más tarde. Solo puede absorber encantamientos con restricciones de nivel 60 o inferior.'),
+ (40121,'Circón majestuoso luciente','Circón majestuoso luciente','Encaja en una ranura de color azul.','Encaja en una ranura de color azul.'),
+ (40010,'Zafiro celestial luciente','Zafiro celestial luciente','Encaja en una ranura de color azul.','Encaja en una ranura de color azul.'),
+ (24037,'Estrella de Eluna luciente','Estrella de Eluna luciente','Encaja en una ranura de color azul.','Encaja en una ranura de color azul.'),
+ (39927,'Calcedonia lustrosa','Calcedonia lustrosa','Encaja en una ranura de color azul.','Encaja en una ranura de color azul.'),
+ (39920,'Calcedonia brillante','Calcedonia brillante','Encaja en una ranura de color azul.','Encaja en una ranura de color azul.'),
+ (23121,'Piedra lunar azur luciente','Piedra lunar azur luciente','Encaja en una ranura de color azul.','Encaja en una ranura de color azul.'),
+ (40125,'Ámbar del rey rígido','Ámbar del rey rígido','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (40126,'Ámbar del rey grueso','Ámbar del rey grueso','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (32204,'Ojo de león luminoso','Ojo de león luminoso','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (32207,'Ojo de león reluciente','Ojo de león reluciente','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (32210,'Gran ojo de león','Gran ojo de león','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (32206,'Ojo de león rígido','Ojo de león rígido','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (32208,'Ojo de león grueso','Ojo de león grueso','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (40012,'Brillo de otoño luminoso','Brillo de otoño luminoso','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (40014,'Brillo de otoño rígido','Brillo de otoño rígido','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (40015,'Brillo de otoño grueso','Brillo de otoño grueso','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (24047,'Piedra del alba luminosa','Piedra del alba luminosa','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (24050,'Piedra del alba reluciente','Piedra del alba reluciente','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (31861,'Gran piedra del alba ','Gran piedra del alba ','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (24051,'Piedra del alba rígida','Piedra del alba rígida','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (24052,'Piedra del alba gruesa','Piedra del alba gruesa','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (39912,'Cristal de sol luminoso','Cristal de sol luminoso','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (39915,'Cristal de sol rígido','Cristal de sol rígido','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (39916,'Cristal de sol grueso','Cristal de sol grueso','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (31860,'Gran draenita dorada','Gran draenita dorada','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (23116,'Draenita dorada rígida','Draenita dorada rígida','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (23115,'Draenita dorada gruesa','Draenita dorada gruesa','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (23114,'Draenita dorada reluciente','Draenita dorada reluciente','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.'),
+ (23113,'Draenita dorada luminosa','Draenita dorada luminosa','Encaja en una ranura de color amarillo.','Encaja en una ranura de color amarillo.');
+
+INSERT INTO `locales_update` (`entry`, `name_loc6`, `name_loc7`, `description_loc6`) VALUES
+ (41580,'Boceto: brillo de otoño rígido','Boceto: brillo de otoño rígido','Te enseña a tallar un brillo de otoño rígido.'),
+ (41581,'Boceto: zafiro celestial luciente','Boceto: zafiro celestial luciente','Te enseña a tallar un zafiro celestial luciente.'),
+ (41582,'Boceto: topacio monarca destellante','Boceto: topacio monarca destellante','Te enseña a tallar un topacio monarca destellante.'),
+ (41687,'Boceto: topacio monarca completo','Boceto: topacio monarca completo','Te enseña a tallar un topacio monarca completo.'),
+ (41688,'Boceto: topacio monarca velado','Boceto: topacio monarca velado','Te enseña a tallar un topacio monarca velado.'),
+ (41689,'Boceto: topacio monarca luminoso','Boceto: topacio monarca luminoso','Te enseña a tallar un topacio monarca luminoso.'),
+ (41696,'Boceto: esmeralda del bosque luminiscente','Boceto: esmeralda del bosque luminiscente','Te enseña a tallar una esmeralda del bosque luminiscente.'),
+ (41694,'Boceto: esmeralda del bosque intrincada','Boceto: esmeralda del bosque intrincada','Te enseña a tallar una esmeralda del bosque intrincada.'),
+ (40140,'Piedra de terror enjundiosa','Piedra de terror enjundiosa','Encaja en una ranura de color rojo o azul.'),
+ (41697,'Boceto: esmeralda del bosque duradera','Boceto: esmeralda del bosque duradera','Te enseña a tallar una esmeralda del bosque duradera.'),
+ (41699,'Boceto: esmeralda del bosque de vidente','Boceto: esmeralda del bosque de vidente','Te enseña a tallar una esmeralda del bosque de vidente.'),
+ (41701,'Boceto: ópalo crepuscular real','Boceto: ópalo crepuscular real','Te enseña a tallar un ópalo crepuscular real.'),
+ (41702,'Boceto: ópalo crepuscular enjundioso','Boceto: ópalo crepuscular enjundioso','Te enseña a tallar un ópalo crepuscular enjundioso.'),
+ (41703,'Boceto: ópalo crepuscular regio','Boceto: ópalo crepuscular regio','Te enseña a tallar un ópalo crepuscular regio.'),
+ (41705,'Boceto: diamante de llama celeste refulgente','Boceto: diamante de llama celeste refulgente','Te enseña a tallar un diamante de llama celeste refulgente.'),
+ (42299,'Boceto: ojo de dragón brillante','Boceto: ojo de dragón brillante','Te enseña a tallar un ojo de dragón brillante.'),
+ (42303,'Boceto: ojo de dragón fracturado','Boceto: ojo de dragón fracturado','Te enseña a tallar un ojo de dragón fracturado.'),
+ (42304,'Boceto: ojo de dragón lustroso','Boceto: ojo de dragón lustroso','Te enseña a tallar un ojo de dragón lustroso.'),
+ (42309,'Boceto: ojo de dragón rúnico','Boceto: ojo de dragón rúnico','Te enseña a tallar un ojo de dragón rúnico.'),
+ (42315,'Boceto: ojo de dragón grueso','Boceto: ojo de dragón grueso','Te enseña a tallar un ojo de dragón grueso.'),
+ (46934,'Boceto: piedra de terror equilibrada','Boceto: piedra de terror equilibrada','Te enseña a tallar una piedra de terror equilibrada.'),
+ (46952,'Boceto: ametrino durable','Boceto: ametrino durable','Te enseña a tallar un ametrino durable.'),
+ (47016,'Boceto: ametrino potenciado','Boceto: ametrino potenciado','Te enseña a tallar un ametrino potenciado.'),
+ (46921,'Boceto: rubí cárdeno fracturado','Boceto: rubí cárdeno fracturado','Te enseña a tallar un rubí cárdeno fracturado.'),
+ (47012,'Boceto: ametrino de luz trémula','Boceto: ametrino de luz trémula','Te enseña a tallar un ametrino de luz trémula.'),
+ (46945,'Boceto: piedra de terror imbuida','Boceto: piedra de terror imbuida','Te enseña a tallar una piedra de terror imbuida.'),
+ (46901,'Boceto: ojo de Zul irregular','Boceto: ojo de Zul irregular','Te enseña a tallar un ojo de Zul irregular.'),
+ (46909,'Boceto: ojo de Zul luminiscente','Boceto: ojo de Zul luminiscente','Te enseña a tallar un ojo de Zul luminiscente.'),
+ (47021,'Boceto: ametrino iluminado','Boceto: ametrino iluminado','Te enseña a tallar un ametrino iluminado.'),
+ (46927,'Boceto: circón majestuoso luciente','Boceto: circón majestuoso luciente','Te enseña a tallar un circón majestuoso luciente.'),
+ (49112,'Boceto: Lágrima de pesadilla','Boceto: Lágrima de pesadilla','Te enseña a tallar una Lágrima de pesadilla.'),
+ (46914,'Boceto: ojo de Zul opaco','Boceto: ojo de Zul opaco','Te enseña a tallar un ojo de Zul opaco.'),
+ (46944,'Boceto: piedra de terror enjundiosa','Boceto: piedra de terror enjundiosa','Te enseña a tallar una piedra de terror enjundiosa.'),
+ (46940,'Boceto: piedra de terror regia','Boceto: piedra de terror regia','Te enseña a tallar una piedra de terror regia.'),
+ (47018,'Boceto: ametrino resplandeciente','Boceto: ametrino resplandeciente','Te enseña a tallar un ametrino resplandeciente.'),
+ (46928,'Boceto: ámbar del rey rígido','Boceto: ámbar del rey rígido','Te enseña a tallar un ámbar del rey rígido.'),
+ (46939,'Boceto: piedra de terror real','Boceto: piedra de terror real','Te enseña a tallar una piedra de terror real.'),
+ (46916,'Boceto: rubí cárdeno rúnico','Boceto: rubí cárdeno rúnico','Te enseña a tallar un rubí cárdeno rúnico.'),
+ (46907,'Boceto: ojo de Zul brillante','Boceto: ojo de Zul brillante','Te enseña a tallar un ojo de Zul brillante.'),
+ (46922,'Boceto: rubí cárdeno sutil','Boceto: rubí cárdeno sutil','Te enseña a tallar un rubí cárdeno sutil.'),
+ (46906,'Boceto: ojo de Zul hendido','Boceto: ojo de Zul hendido','Te enseña a tallar un ojo de Zul hendido.'),
+ (46908,'Boceto: ojo de Zul tenso','Boceto: ojo de Zul tenso','Te enseña a tallar un ojo de Zul tenso.'),
+ (46946,'Boceto: piedra de terror de tenuidad','Boceto: piedra de terror de tenuidad','Te enseña a tallar una piedra de terror de tenuidad.'),
+ (46931,'Boceto: ámbar del rey grueso','Boceto: ámbar del rey grueso','Te enseña a tallar un ámbar del rey grueso.'),
+ (46899,'Boceto: ojo de Zul vívido','Boceto: ojo de Zul vívido','Te enseña a tallar un ojo de Zul vívido.'),
+ (47011,'Boceto: ametrino maligno','Boceto: ametrino maligno','Te enseña a tallar un ametrino maligno.'),
+ (52023,'Diseño: Flecha de hoja de hielo','Diseño: Flecha de hoja de hielo','Te enseña a hacer flechas de hoja de hielo.'),
+ (52022,'Diseño: Balas destrozadoras','Diseño: Balas destrozadoras','Te enseña a hacer balas destrozadoras.'),
+ (50166,'Técnica: Glifo de Agua eterna','Técnica: Glifo de Agua eterna','Te enseña a inscribir un Glifo de Agua eterna.'),
+ (50168,'Técnica: Glifo de descomposición presurosa','Técnica: Glifo de descomposición presurosa','Te enseña a inscribir un Glifo de descomposición presurosa.'),
+ (50167,'Técnica: Glifo de Rejuvenecimiento rápido','Técnica: Glifo de Rejuvenecimiento rápido','Te enseña a inscribir un Glifo de Rejuvenecimiento rápido.'),
+ (43826,'Glifo de Golpe sangriento','Glifo de Golpe sangriento',''),
+ (43538,'Glifo de Orden oscura','Glifo de Orden oscura',''),
+ (45804,'Glifo de muerte oscura','Glifo de muerte oscura',''),
+ (45805,'Glifo de enfermedad','Glifo de enfermedad',''),
+ (43545,'Glifo de Entereza ligada al hielo','Glifo de Entereza ligada al hielo',''),
+ (43548,'Glifo de Golpe de peste','Glifo de Golpe de peste',''),
+ (43549,'Glifo del necrófago','Glifo del necrófago',''),
+ (43553,'Glifo de Armadura inquebrantable','Glifo de Armadura inquebrantable',''),
+ (45803,'Glifo de Añublo profano','Glifo de Añublo profano',''),
+ (43671,'Glifo de Deflagración de cadáver','Glifo de Deflagración de cadáver',''),
+ (43672,'Glifo de Pestilencia','Glifo de Pestilencia',''),
+ (43673,'Glifo de Levantar a muerto','Glifo de Levantar a muerto','');
+
+UPDATE `locales_item`, `locales_update` SET `locales_item`.`name_loc6` = `locales_update`.`name_loc6`, `locales_item`.`name_loc7` = `locales_update`.`name_loc7`, `locales_item`.`description_loc6` = `locales_update`.`description_loc6`, `locales_item`.`description_loc7` = `locales_update`.`description_loc7`
+ WHERE `locales_item`.`entry` = `locales_update`.`entry`;
+
+DROP TABLE `locales_update`;
+UPDATE `locales_item` SET `description_loc7` = `description_loc6` WHERE `entry` IN (41580,41581,41582,41687,41688,41689,41696,41694,41697,41699,41701,41702,41703,41705,42299,42303,42304,42309,42315,46934,46952,47016,46921,47012,46945,46901,46909,47021,46927,49112,46914,46944,46940,47018,46928,46939,46916,46907,46922,46906,46908,46946,46931,46899,47011,52023,52022,50166,50168,50167,43826,43538,45804,45805,43545,43548,43549,43553,45803,43671,43672,43673);
diff --git a/sql/updates/world/2015_02_07_00_world.sql b/sql/updates/world/2015_02_07_00_world.sql
new file mode 100644
index 00000000000..c0616f833ea
--- /dev/null
+++ b/sql/updates/world/2015_02_07_00_world.sql
@@ -0,0 +1,14 @@
+-- A Friendly Chat... (24576, 24657)
+-- Snivel Rustrocket set gossip flag
+UPDATE `creature_template` SET `npcflag` = 1, `AIName`='SmartAI' WHERE `entry` = 37715;
+
+-- Quest credit SAI
+DELETE FROM `smart_scripts` WHERE (`entryorguid`=37715 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
+(37715,0,0,0,62,0,100,0,10946,0,0,0,11,70646,2,0,0,0,0,7,0,0,0,0,0,0,0, "Snivel Rustrocket - on gosip 10947 - cast Love - Create Snivel's Ledger");
+
+-- Gossip option conditions
+DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId`=15 AND `SourceGroup`=10929);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,10929,0,0,9,24576,0,0,0,'','Show gossip only if plaer have A Friendly Chat... Horde quest'),
+(15,10929,0,1,9,24657,0,0,0,'','Show gossip only if plaer have A Friendly Chat... Alliance quest');
diff --git a/sql/updates/world/2015_02_07_01_world.sql b/sql/updates/world/2015_02_07_01_world.sql
new file mode 100644
index 00000000000..742d833352e
--- /dev/null
+++ b/sql/updates/world/2015_02_07_01_world.sql
@@ -0,0 +1,2 @@
+--
+UPDATE `creature_template` SET `flags_extra`=0 WHERE `entry`=24938;
diff --git a/sql/updates/world/2015_02_09_00_world.sql b/sql/updates/world/2015_02_09_00_world.sql
new file mode 100644
index 00000000000..dcfd5ddf029
--- /dev/null
+++ b/sql/updates/world/2015_02_09_00_world.sql
@@ -0,0 +1,10 @@
+-- Irespeaker SAI
+SET @ENTRY := 24999;
+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,3000,10000,15000,11,35913,0,0,0,0,0,2,0,0,0,0,0,0,0,"Irespeaker - In Combat - Cast 'Fel Fireball'"),
+(@ENTRY,0,1,0,0,0,100,0,13000,16000,20000,35000,11,18267,0,0,0,0,0,2,0,0,0,0,0,0,0,"Irespeaker - In Combat - Cast 'Curse of Weakness'"),
+(@ENTRY,0,2,0,6,0,100,1,0,0,0,0,33,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Irespeaker - On Just Died - Quest Credit 'Kanrethad's Quest' (No Repeat)"),
+(@ENTRY,0,3,0,6,0,100,0,5000,5000,10000,10000,45,1,1,0,0,0,0,10,79450,23310,0,0,0,0,0,"Irespeaker - On Just Died - Set Data 1 1"),
+(@ENTRY,0,4,0,25,0,100,0,0,0,0,0,11,45023,0,0,0,0,0,19,25953,13,0,0,0,0,0,"Irespeaker - On Reset - Cast 'Fel Consumption'");
diff --git a/sql/updates/world/2015_02_09_01_world.sql b/sql/updates/world/2015_02_09_01_world.sql
new file mode 100644
index 00000000000..f844fcce5d0
--- /dev/null
+++ b/sql/updates/world/2015_02_09_01_world.sql
@@ -0,0 +1,2 @@
+--
+UPDATE `creature_text` SET `type`=14 WHERE `entry`=20977;
diff --git a/sql/updates/world/2015_02_09_02_world.sql b/sql/updates/world/2015_02_09_02_world.sql
new file mode 100644
index 00000000000..46ff767997f
--- /dev/null
+++ b/sql/updates/world/2015_02_09_02_world.sql
@@ -0,0 +1,2 @@
+--
+UPDATE `quest_template` SET `PrevQuestId`=3451 WHERE `Id`=3483;
diff --git a/sql/updates/world/2015_02_09_03_world.sql b/sql/updates/world/2015_02_09_03_world.sql
new file mode 100644
index 00000000000..2bef0c6b1f5
--- /dev/null
+++ b/sql/updates/world/2015_02_09_03_world.sql
@@ -0,0 +1,204 @@
+--
+UPDATE `creature` SET `position_x`=1772.803833, `position_y`=848.654846, `position_z`=123.192604, `orientation`=1.649258 WHERE `guid`=127067;
+UPDATE `creature` SET `position_x`=1772.699585, `position_y`=852.786560, `position_z`=123.192734, `orientation`=4.675874 WHERE `guid`=127068;
+
+DELETE FROM `creature_addon` WHERE `guid` IN (127051, 127062, 127065, 127059, 127047);
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(127051, 0, 0, 0, 1, 4, ''),
+(127062, 0, 0, 0, 1, 4, ''),
+(127065, 0, 0, 0, 1, 4, ''),
+(127059, 0, 0, 0, 1, 4, ''),
+(127047, 0, 0, 0, 1, 4, '');
+
+DELETE FROM `creature_addon` WHERE `guid` IN (127067, 127068);
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(127067, 0, 0, 0, 1, 36, ''),
+(127068, 0, 0, 0, 1, 36, '');
+
+UPDATE `creature_addon` SET `emote`=20 WHERE `guid`=127043;
+
+/* emotes for these creatures. http://pokit.org/get/?2ee8b0b514852adc528b2543f704fdcd.jpg*/
+
+-- Pathing for Entry: 29830 'TDB FORMAT'
+SET @NPC := 127079;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1580.776,`position_y`=726.0986,`position_z`=143.0329 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1580.776,726.0986,143.0329,0,0,0,0,100,0),
+(@PATH,2,1601.526,726.0986,143.0329,0,0,0,0,100,0),
+(@PATH,3,1580.776,726.0986,143.0329,0,0,0,0,100,0),
+(@PATH,4,1601.526,726.0986,143.0329,0,0,0,0,100,0);
+-- 0x1C3AE04B801D2180006CCE0002D7B1EE .go 1580.776 726.0986 143.0329
+
+-- Pathing for Entry: 29830 'TDB FORMAT'
+SET @NPC := 127077;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1634.252,`position_y`=750.1481,`position_z`=143.0402 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1634.252,750.1481,143.0402,0,0,0,0,100,0),
+(@PATH,2,1645.534,749.2593,143.062,0,0,0,0,100,0),
+(@PATH,3,1646.846,740.0786,143.036,0,0,0,0,100,0),
+(@PATH,4,1643.028,738.3261,143.0428,0,0,0,0,100,0),
+(@PATH,5,1634.346,729.3132,143.0253,0,0,0,0,100,0),
+(@PATH,6,1629.24,728.4056,143.036,0,0,0,0,100,0),
+(@PATH,7,1625.434,724.1005,143.033,0,0,0,0,100,0),
+(@PATH,8,1625.066,724.9523,143.0346,0,0,0,0,100,0),
+(@PATH,9,1633.39,728.2556,143.0207,0,0,0,0,100,0),
+(@PATH,10,1634.352,731.7579,143.036,0,0,0,0,100,0),
+(@PATH,11,1642.503,738.0968,143.036,0,0,0,0,100,0),
+(@PATH,12,1646.744,748.6193,143.0608,0,0,0,0,100,0);
+-- 0x1C3AE04B801D2180006CCE0003D7B1EE .go 1634.252 750.1481 143.0402
+
+-- Pathing for Entry: 29830 'TDB FORMAT'
+SET @NPC := 127078;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1624.936,`position_y`=762.2312,`position_z`=143.0362 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1624.936,762.2312,143.0362,0,0,0,0,100,0),
+(@PATH,2,1624.857,762.3463,143.0362,0,0,0,0,100,0),
+(@PATH,3,1616.904,760.4952,143.0778,0,0,0,0,100,0),
+(@PATH,4,1616.059,757.1263,143.036,0,0,0,0,100,0),
+(@PATH,5,1615.883,751.8171,143.036,0,0,0,0,100,0),
+(@PATH,6,1612.587,742.8907,143.036,0,0,0,0,100,0),
+(@PATH,7,1615.973,735.1326,143.036,0,0,0,0,100,0),
+(@PATH,8,1616.567,728.8411,143.0389,0,0,0,0,100,0),
+(@PATH,9,1616.565,728.8934,143.0389,0,0,0,0,100,0),
+(@PATH,10,1616.015,735.0688,143.036,0,0,0,0,100,0),
+(@PATH,11,1612.599,741.9441,143.036,0,0,0,0,100,0),
+(@PATH,12,1612.643,745.9359,143.036,0,0,0,0,100,0),
+(@PATH,13,1615.984,759.0609,143.0375,0,0,0,0,100,0),
+(@PATH,14,1620.861,760.4977,143.036,0,0,0,0,100,0),
+(@PATH,15,1624.961,762.2328,143.0362,0,0,0,0,100,0),
+(@PATH,16,1624.857,762.3463,143.0362,0,0,0,0,100,0),
+(@PATH,17,1616.904,760.5043,143.0776,0,0,0,0,100,0);
+-- 0x1C3AE04B801D2180006CCE000357B1EE .go 1624.936 762.2312 143.0362
+
+UPDATE `smart_scripts` SET `action_param1`=1 WHERE `entryorguid` IN (29774, 29820) AND `source_type`=0 AND `id`=0 AND `link`=1;
+-- Pathing for Entry: 29774 'TDB FORMAT'
+SET @NPC := 127023;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1642.346,`position_y`=653.1481,`position_z`=125.2523 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1642.346,653.1481,125.2523,0,0,0,0,100,0),
+(@PATH,2,1639.856,642.3232,125.6559,0,0,0,0,100,0),
+(@PATH,3,1642.258,637.7573,126.032,0,0,0,0,100,0),
+(@PATH,4,1647.147,632.4925,126.6323,0,0,0,0,100,0),
+(@PATH,5,1657.781,625.1252,128.0753,0,0,0,0,100,0),
+(@PATH,6,1664.838,624.4281,127.6226,0,0,0,0,100,0),
+(@PATH,7,1669.714,625.9705,127.4224,0,0,0,0,100,0),
+(@PATH,8,1674.736,633.4069,127.3273,0,0,0,0,100,0),
+(@PATH,9,1673.877,644.5715,126.3829,0,0,0,0,100,0),
+(@PATH,10,1668.756,649.8423,126.1618,0,0,0,0,100,0),
+(@PATH,11,1662.11,654.2892,125.6076,0,0,0,0,100,0),
+(@PATH,12,1655.857,656.4763,125.5904,0,0,0,0,100,0),
+(@PATH,13,1645.618,656.3919,125.2844,0,0,0,0,100,0),
+(@PATH,14,1642.373,653.2665,125.2903,0,0,0,0,100,0);
+-- 0x1C3AE04B801D1380006CCE0000D7B1EE .go 1642.346 653.1481 125.2523
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=127023;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(127023, 127023, 0, 0, 2, 0, 0),
+(127023, 127013, 4, 50, 2, 0, 0),
+(127023, 127024, 4, 310, 2, 0, 0);
+
+-- Pathing for Entry: 29829 'TDB FORMAT'
+SET @NPC := 127069;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1592.818,`position_y`=817.3067,`position_z`=149.783 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1592.818,817.3067,149.783,0,0,0,0,100,0),
+(@PATH,2,1601.493,805.8055,146.3105,0,0,0,0,100,0),
+(@PATH,3,1609.685,802.7231,145.2017,0,0,0,0,100,0),
+(@PATH,4,1623.651,794.6301,143.8499,0,0,0,0,100,0),
+(@PATH,5,1615.21,801.1007,144.687,0,0,0,0,100,0),
+(@PATH,6,1605.104,803.2402,145.5161,0,0,0,0,100,0),
+(@PATH,7,1597.137,810.431,147.7381,0,0,0,0,100,0),
+(@PATH,8,1591.998,822.5156,150.5477,0,0,0,0,100,0),
+(@PATH,9,1586.166,840.6243,153.7294,0,0,0,0,100,0),
+(@PATH,10,1584.692,843.8578,154.2673,0,0,0,0,100,0),
+(@PATH,11,1584.178,844.4227,154.4869,0,0,0,0,100,0),
+(@PATH,12,1590.102,830.2843,152.1621,0,0,0,0,100,0);
+-- 0x1C3AE04B801D2140006CCE0000D7B1EE .go 1592.818 817.3067 149.783
+
+-- Pathing for Entry: 29829 'TDB FORMAT'
+SET @NPC := 127070;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1706.755,`position_y`=857.1785,`position_z`=129.9813 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1706.755,857.1785,129.9813,0,0,0,0,100,0),
+(@PATH,2,1707.281,867.1033,130.2534,0,0,0,0,100,0),
+(@PATH,3,1704.177,879.5166,130.7884,0,0,0,0,100,0),
+(@PATH,4,1691.342,892.488,132.9258,0,0,0,0,100,0),
+(@PATH,5,1679.412,891.944,134.244,0,0,0,0,100,0),
+(@PATH,6,1668.286,882.3208,137.746,0,0,0,0,100,0),
+(@PATH,7,1673.63,888.4031,136.1639,0,0,0,0,100,0),
+(@PATH,8,1687.955,893.6246,133.4256,0,0,0,0,100,0),
+(@PATH,9,1701.138,885.8834,131.8191,0,0,0,0,100,0),
+(@PATH,10,1706.935,871.8005,130.679,0,0,0,0,100,0);
+-- 0x1C3AE04B801D2140006CCE000057B1EE .go 1706.755 857.1785 129.9813
+
+-- Pathing for Entry: 29820 'TDB FORMAT'
+SET @NPC := 127054;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1627.05,`position_y`=895.2917,`position_z`=145.9627 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1627.05,895.2917,145.9627,0,0,0,0,100,0),
+(@PATH,2,1641.819,895.4995,144.4391,0,0,0,0,100,0),
+(@PATH,3,1646.381,886.3206,142.0332,0,0,0,0,100,0),
+(@PATH,4,1648.376,877.1378,140.8607,0,0,0,0,100,0),
+(@PATH,5,1651.261,870.6509,139.9442,0,0,0,0,100,0),
+(@PATH,6,1648.879,874.7926,140.348,0,0,0,0,100,0),
+(@PATH,7,1648.431,879.759,140.6906,0,0,0,0,100,0),
+(@PATH,8,1643.23,894.2725,143.7524,0,0,0,0,100,0),
+(@PATH,9,1633.633,896.613,144.9795,0,0,0,0,100,0),
+(@PATH,10,1628.168,895.5144,145.8911,0,0,0,0,100,0),
+(@PATH,11,1608.678,886.468,148.1761,0,0,0,0,100,0),
+(@PATH,12,1600.244,880.922,149.9891,0,0,0,0,100,0),
+(@PATH,13,1583.596,870.7088,152.9289,0,0,0,0,100,0),
+(@PATH,14,1593.538,876.7352,151.3219,0,0,0,0,100,0),
+(@PATH,15,1606.508,885.0313,148.7535,0,0,0,0,100,0),
+(@PATH,16,1616.299,891.1467,147.5494,0,0,0,0,100,0),
+(@PATH,17,1627.23,895.3035,145.926,0,0,0,0,100,0),
+(@PATH,18,1641.784,895.3555,144.6143,0,0,0,0,100,0);
+-- 0x1C3AE04B801D1F00006CCE000257B1EE .go 1627.05 895.2917 145.9627
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=127054;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(127054, 127054, 0, 0, 2, 0, 0),
+(127054, 127064, 4, 90, 2, 0, 0);
+
+DELETE FROM `creature_addon` WHERE `guid` IN (127057, 127053, 127063, 127052, 127060, 127055, 127066, 127048, 127049, 127061, 127056, 127050);
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(127057, 0, 0, 0, 1, 1, ''),
+(127053, 0, 0, 0, 1, 1, ''),
+(127063, 0, 0, 0, 1, 1, ''),
+(127052, 0, 0, 0, 1, 1, ''),
+(127060, 0, 0, 0, 1, 1, ''),
+(127055, 0, 0, 0, 1, 1, ''),
+(127066, 0, 0, 0, 1, 1, ''),
+(127048, 0, 0, 0, 1, 1, ''),
+(127049, 0, 0, 0, 1, 1, ''),
+(127061, 0, 0, 0, 1, 1, ''),
+(127056, 0, 0, 0, 1, 1, ''),
+(127050, 0, 0, 0, 1, 1, '');
diff --git a/sql/updates/world/2015_02_09_04_world.sql b/sql/updates/world/2015_02_09_04_world.sql
new file mode 100644
index 00000000000..7ad7c3411af
--- /dev/null
+++ b/sql/updates/world/2015_02_09_04_world.sql
@@ -0,0 +1,85 @@
+--
+UPDATE `smart_scripts` SET `action_param1`=1 WHERE `entryorguid`=27963 AND `source_type`=0 AND `id`=0 AND `link`=0;
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=126709;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(126709, 126709, 0, 0, 2, 0, 0),
+(126709, 126692, 4, 50, 2, 0, 0),
+(126709, 126693, 4, 310, 2, 0, 0);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=126687;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(126687, 126687, 0, 0, 2, 0, 0),
+(126687, 126705, 3, 50, 2, 0, 0),
+(126687, 126700, 3, 310, 2, 0, 0);
+
+UPDATE `creature_addon` SET `path_id`=0 WHERE `guid` IN (126711, 126701, 126703);
+DELETE FROM `creature_formations` WHERE `leaderGUID`=126690;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(126690, 126690, 0, 0, 2, 0, 0),
+(126690, 126707, 3, 50, 2, 0, 0),
+(126690, 126701, 3, 310, 2, 0, 0);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=126691;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(126691, 126691, 0, 0, 2, 0, 0),
+(126691, 126708, 3, 50, 2, 0, 0),
+(126691, 126702, 3, 310, 2, 0, 0);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=126695;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(126695, 126695, 0, 0, 2, 0, 0),
+(126695, 126713, 3, 50, 2, 0, 0),
+(126695, 126703, 3, 310, 2, 0, 0);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=126696;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(126696, 126696, 0, 0, 2, 0, 0),
+(126696, 126714, 3, 50, 2, 0, 0),
+(126696, 126704, 3, 310, 2, 0, 0);
+
+-- Pathing for Entry: 28582 'TDB FORMAT'
+SET @NPC := 126696;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(1266960, 1, 1180.73, 659.129, 196.233, 0, 0, 0, 0, 100, 3108493),
+(1266960, 2, 1181.3, 667.947, 196.233, 0, 0, 0, 0, 100, 3108495),
+(1266960, 3, 1180.7, 675.583, 196.235, 0, 0, 0, 0, 100, 3108497),
+(1266960, 4, 1177.06, 683.484, 196.235, 0, 0, 0, 0, 100, 3108499),
+(1266960, 7, 1180.73, 659.129, 196.233, 0, 0, 0, 0, 100, 3108493),
+(1266960, 6, 1181.3, 667.947, 196.233, 0, 0, 0, 0, 100, 3108495),
+(1266960, 5, 1180.7, 675.583, 196.235, 0, 0, 0, 0, 100, 3108497),
+(1266960, 8, 1177.75, 651.607, 196.235, 0, 0, 0, 0, 100, 3108501);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=126715;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(126715, 126715, 0, 0, 2, 0, 0),
+(126715, 126716, 5, 270, 2, 0, 0);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=126694;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(126694, 126694, 0, 0, 2, 0, 0),
+(126694, 126711, 3, 50, 2, 0, 0),
+(126694, 126712, 3, 310, 2, 0, 0);
+
+UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry`=28055;
+-- Dark Rune Shaper SAI
+SET @ENTRY := 27965;
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0 AND `id`=14;
+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,14,0,1,0,100,0,2000,2000,4000,4000,11,50563,0,0,0,0,0,19,28055,50,0,0,0,0,0,"Dark Rune Shaper - On Reset - Cast 'Carve Stone'");
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=50563;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13, 1, 50563, 0, 0, 31, 0, 3, 28055, 0, 0, 0, 0, '', 'Carve Stone - only targets Dummy');
+
+DELETE FROM `disables` WHERE `sourceType`=0 AND `entry`=50563;
+INSERT INTO `disables` (`sourceType`, `entry`, `flags`, `params_0`, `params_1`, `comment`) VALUES
+(0, 50563, 64, '', '', 'Ignore LOS for Carve Stone');
+
+UPDATE `creature` SET `spawndist`=8, `MovementType`=1 WHERE `guid` IN (126738, 126745, 126739, 126744);
diff --git a/sql/updates/world/2015_02_09_05_world.sql b/sql/updates/world/2015_02_09_05_world.sql
new file mode 100644
index 00000000000..2486927a2cf
--- /dev/null
+++ b/sql/updates/world/2015_02_09_05_world.sql
@@ -0,0 +1,52 @@
+-- Scourge Reanimator SAI
+SET @GUID := -127410;
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=26626;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@GUID 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
+(@GUID,0,0,1,6,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,127435,26635,0,0,0,0,0,"Scourge Reanimator - On Just Died - Set Data 1 1"),
+(@GUID,0,1,0,61,0,100,0,0,0,0,0,45,1,2,0,0,0,0,10,127426,26635,0,0,0,0,0,"Scourge Reanimator - On Just Died - Set Data 1 2");
+
+
+-- Risen Drakkari Warrior SAI
+SET @ENTRY := 26635;
+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,6,1000,3000,5000,9500,11,36093,0,0,0,0,0,2,0,0,0,0,0,0,0,"Risen Drakkari Warrior - In Combat - Cast 'Ghost Strike' (Dungeon)"),
+(@ENTRY,0,1,0,0,0,100,6,1000,3000,7250,10000,11,33661,0,0,0,0,0,2,0,0,0,0,0,0,0,"Risen Drakkari Warrior - In Combat - Cast 'Crush Armor' (Dungeon)"),
+(@ENTRY,0,2,0,54,0,100,0,0,0,0,0,89,5,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Warrior - On Just Summoned - Start Random Movement"),
+(@ENTRY,0,3,7,38,0,100,0,1,1,0,0,53,1,@ENTRY*100+00,0,0,0,2,1,0,0,0,0,0,0,0,"Risen Drakkari Warrior - On Data Set 1 1 - Start Waypoint"),
+(@ENTRY,0,4,8,38,0,100,0,1,2,0,0,53,1,@ENTRY*100+01,0,0,0,2,1,0,0,0,0,0,0,0,"Risen Drakkari Warrior - On Data Set 1 2 - Start Waypoint"),
+(@ENTRY,0,5,0,40,0,100,0,9,@ENTRY*100+00,0,0,12,26635,3,600000,0,0,0,8,0,0,0,-358.38,-592.396,4.37907,3.71398,"Risen Drakkari Warrior - On Waypoint 9 Reached - Summon Creature 'Risen Drakkari Warrior'"),
+(@ENTRY,0,6,0,40,0,100,0,9,@ENTRY*100+01,0,0,12,26636,3,600000,0,0,0,8,0,0,0,-362.385162,-609.420288,2.467764,2.788083,"Risen Drakkari Warrior - On Waypoint 9 Reached - Summon Creature 'Risen Drakkari Soulmage'"),
+(@ENTRY,0,7,0,61,0,100,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Risen Drakkari Warrior - On Data Set 1 1 - Say Line 0"),
+(@ENTRY,0,8,0,61,0,100,0,1,2,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Risen Drakkari Warrior - On Data Set 1 2 - Say Line 1");
+
+DELETE FROM `waypoints` WHERE `entry`=2663500;
+INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES
+(2663500, 1, -358.149, -591.396, 4.8929, 'Risen Drakkari Warrior'),
+(2663500, 2, -355.111, -588.661, 7.43521, 'Risen Drakkari Warrior'),
+(2663500, 3, -351.322, -585.026, 10.995, 'Risen Drakkari Warrior'),
+(2663500, 4, -345.376, -579.253, 11.012, 'Risen Drakkari Warrior'),
+(2663500, 5, -343.792, -579.642, 11.012, 'Risen Drakkari Warrior'),
+(2663500, 6, -346.169, -582.965, 11.012, 'Risen Drakkari Warrior'),
+(2663500, 7, -350.619, -586.543, 10.6995, 'Risen Drakkari Warrior'),
+(2663500, 8, -356.449, -591.583, 5.55874, 'Risen Drakkari Warrior'),
+(2663500, 9, -363.399, -595.822, 2.26113, 'Risen Drakkari Warrior');
+
+DELETE FROM `waypoints` WHERE `entry`=2663501;
+INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES
+(2663501, 1, -361.498, -611.317, 2.82481, 'Risen Drakkari Warrior'),
+(2663501, 2, -358.749, -613.483, 4.91993, 'Risen Drakkari Warrior'),
+(2663501, 3, -351.531, -619.59, 11.0096, 'Risen Drakkari Warrior'),
+(2663501, 4, -349.112, -623.42, 11.0119, 'Risen Drakkari Warrior'),
+(2663501, 5, -347.686, -624.43, 11.0119, 'Risen Drakkari Warrior'),
+(2663501, 6, -346.433, -620.963, 11.0119, 'Risen Drakkari Warrior'),
+(2663501, 7, -350.655, -617.858, 10.8491, 'Risen Drakkari Warrior'),
+(2663501, 8, -356.367, -613.813, 6.09785, 'Risen Drakkari Warrior'),
+(2663501, 9, -366.529, -607.86, 2.26056, 'Risen Drakkari Warrior');
+
+DELETE FROM `creature_text` WHERE `entry`=26635;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
+(26635, 0, 0, 'Help mon! There''s too many of dem!', 14, 0, 100, 0, 0, 0, 26538, 0, 'Risen Drakkari Warrior'),
+(26635, 1, 0, 'Backup! We need backup!', 14, 0, 100, 0, 0, 0, 26537, 0, 'Risen Drakkari Warrior');
diff --git a/sql/updates/world/2015_02_09_06_world.sql b/sql/updates/world/2015_02_09_06_world.sql
new file mode 100644
index 00000000000..f4dd026d790
--- /dev/null
+++ b/sql/updates/world/2015_02_09_06_world.sql
@@ -0,0 +1,340 @@
+--
+UPDATE `smart_scripts` SET `action_param1`=1 WHERE `entryorguid` IN (26626, 26637) AND `source_type`=0 AND `id`=0 AND `link`=1;
+UPDATE `creature` SET `spawndist`=5, `MovementType`=1 WHERE `id` IN (26636 ,26625);
+UPDATE `creature` SET `spawndist`=5, `MovementType`=1 WHERE `guid`=127430; /*31261 */
+
+UPDATE `creature_addon` SET `auras`='31261 49852' WHERE `guid` IN (127571, 127569, 127568, 127583, 127567, 127570, 127584);
+
+DELETE FROM `creature_template_addon` WHERE `entry`=26621;
+INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(26621, 0, 0, 0, 1, 418, '');
+
+
+-- Pathing for Entry: 26624 'TDB FORMAT'
+SET @NPC := 127403;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-321.1793,`position_y`=-660.2445,`position_z`=10.63094 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-321.1793,-660.2445,10.63094,0,0,0,0,100,0),
+(@PATH,2,-314.265,-658.299,10.85989,0,0,0,0,100,0),
+(@PATH,3,-308.3121,-663.0262,10.8531,0,0,0,0,100,0),
+(@PATH,4,-312.3275,-667.5159,10.43025,0,0,0,0,100,0),
+(@PATH,5,-323.8721,-672.2502,11.15234,0,0,0,0,100,0),
+(@PATH,6,-325.2265,-672.576,11.07057,0,0,0,0,100,0),
+(@PATH,7,-324.1945,-665.3568,10.65234,0,0,0,0,100,0),
+(@PATH,8,-321.2054,-660.1317,10.51689,0,0,0,0,100,0),
+(@PATH,9,-314.2662,-658.2737,10.85989,0,0,0,0,100,0),
+(@PATH,10,-308.2971,-663.0308,10.85604,0,0,0,0,100,0),
+(@PATH,11,-312.3167,-667.5278,10.43211,0,0,0,0,100,0),
+(@PATH,12,-323.8912,-672.2682,11.15234,0,0,0,0,100,0),
+(@PATH,13,-325.2353,-672.5774,11.0714,0,0,0,0,100,0),
+(@PATH,14,-324.1946,-665.3556,10.65234,0,0,0,0,100,0),
+(@PATH,15,-321.2102,-660.1342,10.51981,0,0,0,0,100,0),
+(@PATH,16,-314.2662,-658.2732,10.85989,0,0,0,0,100,0),
+(@PATH,17,-308.2755,-663.0374,10.86023,0,0,0,0,100,0),
+(@PATH,18,-312.2948,-667.5519,10.43588,0,0,0,0,100,0),
+(@PATH,19,-323.9076,-672.2837,11.15234,0,0,0,0,100,0),
+(@PATH,20,-325.265,-672.582,11.07419,0,0,0,0,100,0);
+-- 0x1C16DC4B001A0000005B0C0000578386 .go -321.1793 -660.2445 10.63094
+
+-- Pathing for Entry: 26624 'TDB FORMAT'
+SET @NPC := 127404;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-318.1556,`position_y`=-640.515,`position_z`=11.95144 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-318.1556,-640.515,11.95144,0,0,0,0,100,0),
+(@PATH,2,-311.1296,-643.6861,11.3687,0,0,0,0,100,0),
+(@PATH,3,-306.9548,-646.1841,10.92374,0,0,0,0,100,0),
+(@PATH,4,-300.4054,-650.3721,11.09798,0,0,0,0,100,0),
+(@PATH,5,-298.4008,-658.082,10.63272,0,0,0,0,100,0),
+(@PATH,6,-298.8151,-659.7013,10.62173,0,0,0,0,100,0),
+(@PATH,7,-310.1207,-661.3427,10.63743,0,0,0,0,100,0),
+(@PATH,8,-314.2844,-659.1246,10.57358,0,0,0,0,100,0),
+(@PATH,9,-316.9409,-657.6439,10.68161,0,0,0,0,100,0),
+(@PATH,10,-325.1304,-655.4464,10.74956,0,0,0,0,100,0),
+(@PATH,11,-329.8129,-650.3148,12.10803,0,0,0,0,100,0),
+(@PATH,12,-329.9256,-647.5079,12.01005,0,0,0,0,100,0),
+(@PATH,13,-328.6924,-642.873,12.058,0,0,0,0,100,0);
+-- 0x1C16DC4B001A0000005B0C0000D78386 .go -318.1556 -640.515 11.95144
+
+-- Pathing for Entry: 26637 'TDB FORMAT'
+SET @NPC := 127444;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-466.2595,`position_y`=-652.3038,`position_z`=28.78722 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,6469,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-466.2595,-652.3038,28.78722,0,0,0,0,100,0),
+(@PATH,2,-478.2595,-652.0538,28.78722,0,0,0,0,100,0);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=127444;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(127444, 127444, 0, 0, 2, 0, 0),
+(127444, 127456, 4, 90, 2, 0, 0),
+(127444, 127457, 4, 270, 2, 0, 0);
+
+-- Pathing for Entry: 26637 'TDB FORMAT'
+SET @NPC := 127442;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-499.8308,`position_y`=-705.9434,`position_z`=30.6214 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,6469,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-499.8308,-705.9434,30.6214,0,0,0,0,100,0),
+(@PATH,2,-502.4009,-683.0112,30.58796,0,0,0,0,100,0),
+(@PATH,3,-502.3382,-683.26,30.3714,0,0,0,0,100,0),
+(@PATH,4,-502.022,-683.1946,30.61549,0,0,0,0,100,0),
+(@PATH,5,-499.6927,-706.1716,30.6214,0,0,0,0,100,0),
+(@PATH,6,-496.0414,-714.49,30.6214,0,0,0,0,100,0),
+(@PATH,7,-496.3022,-714.5132,30.3714,0,0,0,0,100,0),
+(@PATH,8,-496.2182,-714.349,30.6214,0,0,0,0,100,0),
+(@PATH,9,-499.8963,-705.8741,30.6214,0,0,0,0,100,0);
+-- 0x1C16DC4B001A0340005B0C0000578386 .go -499.8308 -705.9434 30.6214
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=127442;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(127442, 127442, 0, 0, 2, 0, 0),
+(127442, 127443, 4, 90, 2, 0, 0);
+
+DELETE FROM `creature_addon` WHERE `guid` IN (127617, 127589, 127438, 127590, 127428, 127427, 127580, 127579, 127432, 127578, 127433);
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(127427, 0, 0, 0, 1, 36, ''),
+(127428, 0, 0, 0, 1, 36, ''),
+(127432, 0, 0, 0, 1, 36, ''),
+(127433, 0, 0, 0, 1, 36, ''),
+(127578, 0, 0, 0, 1, 36, ''),
+(127579, 0, 0, 0, 1, 36, ''),
+(127580, 0, 0, 0, 1, 36, ''),
+(127589, 0, 0, 0, 1, 36, ''),
+(127590, 0, 0, 0, 1, 36, ''),
+(127617, 0, 0, 0, 1, 36, '');
+
+-- Pathing for Entry: 26637 'TDB FORMAT'
+SET @NPC := 127446;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-458.184,`position_y`=-595.712,`position_z`=93.7567 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,26751,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH, 1, -431.004, -599.244, 96.6243, 0, 0, 1, 0, 100, 0),
+(@PATH, 2, -397.542, -607.933, 89.8221, 0, 0, 1, 0, 100, 0),
+(@PATH, 3, -380.795, -608.944, 84.5094, 0, 0, 1, 0, 100, 0),
+(@PATH, 4, -366.926, -609.622, 86.2929, 0, 0, 1, 0, 100, 0),
+(@PATH, 5, -335.819, -610.248, 92.769, 0, 0, 1, 0, 100, 0),
+(@PATH, 6, -324.31, -610.248, 94.3711, 0, 0, 1, 0, 100, 0),
+(@PATH, 7, -313.428, -610.467, 95.2595, 0, 0, 1, 0, 100, 0),
+(@PATH, 8, -331.964, -610.102, 92.3899, 0, 0, 1, 0, 100, 0),
+(@PATH, 9, -343.592, -609.99, 90.6398, 0, 0, 1, 0, 100, 0),
+(@PATH, 10, -367.122, -609.527, 87.0978, 0, 0, 1, 0, 100, 0),
+(@PATH, 11, -381.21, -609.16, 84.9903, 0, 0, 1, 0, 100, 0),
+(@PATH, 12, -399.507, -608.891, 89.1199, 0, 0, 1, 0, 100, 0),
+(@PATH, 13, -428.922, -609.198, 91.8185, 0, 0, 1, 0, 100, 0);
+
+UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry` IN (26638, 31351);
+
+-- Pathing for Entry: 29237 'TDB FORMAT'
+SET @NPC := 203549;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=6709.566,`position_y`=-4355.494,`position_z`=440.7194 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,6709.566,-4355.494,440.7194,0,0,0,0,100,0),
+(@PATH,2,6711.722,-4357.65,440.7194,0,0,0,0,100,0),
+(@PATH,3,6713.885,-4359.814,440.7194,0,0,0,0,100,0),
+(@PATH,4,6716.069,-4361.999,440.7194,0,0,0,0,100,0),
+(@PATH,5,6718.223,-4364.154,440.7194,0,0,0,0,100,0),
+(@PATH,6,6720.4,-4366.332,440.7194,0,0,0,0,100,0),
+(@PATH,7,6722.556,-4368.488,440.7025,0,0,0,0,100,0),
+(@PATH,8,6724.659,-4370.592,440.7025,0,0,0,0,100,0),
+(@PATH,9,6726.705,-4372.757,440.7025,0,0,0,0,100,0),
+(@PATH,10,6728.782,-4374.959,440.7025,0,0,0,0,100,0),
+(@PATH,11,6730.868,-4377.171,440.7025,0,0,0,0,100,0),
+(@PATH,12,6732.948,-4379.376,440.7025,0,0,0,0,100,0),
+(@PATH,13,6735.021,-4381.573,440.6158,0,0,0,0,100,0),
+(@PATH,14,6737.099,-4383.777,440.6158,0,0,0,0,100,0),
+(@PATH,15,6738.558,-4385.286,440.6158,0,0,0,0,100,0),
+(@PATH,16,6740.794,-4387.498,440.6158,0,0,0,0,100,0),
+(@PATH,17,6743.027,-4389.707,440.6158,0,0,0,0,100,0),
+(@PATH,18,6745.267,-4391.922,440.6158,0,0,0,0,100,0),
+(@PATH,19,6747.505,-4394.136,440.6158,0,0,0,0,100,0),
+(@PATH,20,6749.747,-4396.354,440.6158,0,0,0,0,100,0),
+(@PATH,21,6752.003,-4398.586,440.6158,0,0,0,0,100,0),
+(@PATH,22,6754.265,-4400.824,440.6158,0,0,0,0,100,0),
+(@PATH,23,6756.507,-4403.042,440.6158,0,0,0,0,100,0),
+(@PATH,24,6758.502,-4405.03,440.6158,0,0,0,0,100,0),
+(@PATH,25,6760.651,-4407.223,440.6158,0,0,0,0,100,0),
+(@PATH,26,6762.793,-4409.409,440.6158,0,0,0,0,100,0),
+(@PATH,27,6764.924,-4411.583,440.6158,0,0,0,0,100,0),
+(@PATH,28,6767.083,-4413.788,440.7194,0,0,0,0,100,0),
+(@PATH,29,6769.217,-4415.966,440.7194,0,0,0,0,100,0),
+(@PATH,30,6771.352,-4418.145,440.7194,0,0,0,0,100,0),
+(@PATH,31,6773.472,-4420.309,440.7194,0,0,0,0,100,0),
+(@PATH,32,6775.598,-4422.479,440.7194,0,0,0,0,100,0),
+(@PATH,33,6776.916,-4423.868,440.7194,0,0,0,0,100,0),
+(@PATH,34,6779.079,-4426.187,440.7194,0,0,0,0,100,0),
+(@PATH,35,6781.248,-4428.51,440.7194,0,0,0,0,100,0),
+(@PATH,36,6783.421,-4430.838,440.7194,0,0,0,0,100,0),
+(@PATH,37,6785.586,-4433.158,440.7194,0,0,0,0,100,0),
+(@PATH,38,6787.766,-4435.493,440.7009,0,0,0,0,100,0),
+(@PATH,39,6789.926,-4437.807,440.7009,0,0,0,0,100,0),
+(@PATH,40,6791.934,-4439.958,440.7009,0,0,0,0,100,0),
+(@PATH,41,6794.533,-4442.054,440.7009,0,0,0,0,100,0),
+(@PATH,42,6796.933,-4443.941,440.7009,0,0,0,0,100,0),
+(@PATH,43,6799.326,-4445.824,440.7009,0,0,0,0,100,0),
+(@PATH,44,6801.72,-4447.708,440.7194,0,0,0,0,100,0),
+(@PATH,45,6804.107,-4449.586,440.7194,0,0,0,0,100,0),
+(@PATH,46,6805.872,-4450.974,440.7194,0,0,0,0,100,0),
+(@PATH,47,6805.872,-4450.974,440.7194,0,0,0,0,100,0),
+(@PATH,48,6802.628,-4448.422,440.7194,0,0,0,0,100,0),
+(@PATH,49,6801.03,-4447.165,440.7194,0,0,0,0,100,0),
+(@PATH,50,6798.649,-4445.292,440.7009,0,0,0,0,100,0),
+(@PATH,51,6796.252,-4443.406,440.7009,0,0,0,0,100,0),
+(@PATH,52,6793.855,-4441.521,440.7009,0,0,0,0,100,0),
+(@PATH,53,6791.484,-4439.477,440.7009,0,0,0,0,100,0),
+(@PATH,54,6789.404,-4437.248,440.7009,0,0,0,0,100,0),
+(@PATH,55,6787.313,-4435.008,440.7009,0,0,0,0,100,0),
+(@PATH,56,6785.237,-4432.784,440.7194,0,0,0,0,100,0),
+(@PATH,57,6783.164,-4430.563,440.7194,0,0,0,0,100,0),
+(@PATH,58,6781.085,-4428.335,440.7194,0,0,0,0,100,0),
+(@PATH,59,6778.998,-4426.099,440.7194,0,0,0,0,100,0),
+(@PATH,60,6776.91,-4423.862,440.7194,0,0,0,0,100,0),
+(@PATH,61,6775.327,-4422.202,440.7194,0,0,0,0,100,0),
+(@PATH,62,6773.147,-4419.977,440.7194,0,0,0,0,100,0),
+(@PATH,63,6770.978,-4417.763,440.7194,0,0,0,0,100,0),
+(@PATH,64,6768.798,-4415.538,440.7194,0,0,0,0,100,0),
+(@PATH,65,6766.607,-4413.302,440.6158,0,0,0,0,100,0),
+(@PATH,66,6764.424,-4411.074,440.6158,0,0,0,0,100,0),
+(@PATH,67,6762.253,-4408.858,440.6158,0,0,0,0,100,0),
+(@PATH,68,6760.07,-4406.629,440.6158,0,0,0,0,100,0),
+(@PATH,69,6757.998,-4404.517,440.6158,0,0,0,0,100,0),
+(@PATH,70,6755.836,-4402.378,440.6158,0,0,0,0,100,0),
+(@PATH,71,6753.682,-4400.247,440.6158,0,0,0,0,100,0),
+(@PATH,72,6751.511,-4398.099,440.6158,0,0,0,0,100,0),
+(@PATH,73,6749.368,-4395.979,440.6158,0,0,0,0,100,0),
+(@PATH,74,6747.188,-4393.823,440.6158,0,0,0,0,100,0),
+(@PATH,75,6745.053,-4391.711,440.6158,0,0,0,0,100,0),
+(@PATH,76,6742.909,-4389.59,440.6158,0,0,0,0,100,0),
+(@PATH,77,6740.754,-4387.458,440.6158,0,0,0,0,100,0),
+(@PATH,78,6738.592,-4385.319,440.6158,0,0,0,0,100,0),
+(@PATH,79,6736.751,-4383.408,440.6158,0,0,0,0,100,0),
+(@PATH,80,6734.615,-4381.143,440.6158,0,0,0,0,100,0),
+(@PATH,81,6732.473,-4378.873,440.7025,0,0,0,0,100,0),
+(@PATH,82,6730.346,-4376.617,440.7025,0,0,0,0,100,0),
+(@PATH,83,6728.218,-4374.362,440.7025,0,0,0,0,100,0),
+(@PATH,84,6729.046,-4370.898,440.9525,0,0,0,0,100,0),
+(@PATH,85,6724.064,-4369.998,440.7025,0,0,0,0,100,0),
+(@PATH,86,6721.935,-4367.867,440.7025,0,0,0,0,100,0),
+(@PATH,87,6719.804,-4365.736,440.7194,0,0,0,0,100,0),
+(@PATH,88,6717.628,-4363.559,440.7194,0,0,0,0,100,0),
+(@PATH,89,6715.489,-4361.419,440.7194,0,0,0,0,100,0),
+(@PATH,90,6713.351,-4359.279,440.7194,0,0,0,0,100,0),
+(@PATH,91,6711.217,-4357.145,440.7194,0,0,0,0,100,0),
+(@PATH,92,6709.114,-4355.041,440.7194,0,0,0,0,100,0),
+(@PATH,93,6706.909,-4353.476,440.7194,0,0,0,0,100,0),
+(@PATH,94,6704.445,-4351.718,440.7194,0,0,0,0,100,0),
+(@PATH,95,6701.982,-4349.961,440.7194,0,0,0,0,100,0),
+(@PATH,96,6699.487,-4348.182,440.7194,0,0,0,0,100,0),
+(@PATH,97,6697.032,-4346.43,440.7194,0,0,0,0,100,0),
+(@PATH,98,6696.491,-4345.139,440.7194,0,0,0,0,100,0),
+(@PATH,99,6693.5,-4346.004,440.7194,0,0,0,0,100,0),
+(@PATH,100,6690.534,-4346.862,440.7194,0,0,0,0,100,0),
+(@PATH,101,6687.572,-4347.719,440.7582,0,0,0,0,100,0),
+(@PATH,102,6684.732,-4348.541,440.7194,0,0,0,0,100,0),
+(@PATH,103,6683.093,-4349.978,440.7194,0,0,0,0,100,0),
+(@PATH,104,6680.785,-4351.966,440.7194,0,0,0,0,100,0),
+(@PATH,105,6678.49,-4353.942,440.7194,0,0,0,0,100,0),
+(@PATH,106,6676.195,-4355.919,440.7194,0,0,0,0,100,0),
+(@PATH,107,6673.887,-4357.907,440.7194,0,0,0,0,100,0),
+(@PATH,108,6672.325,-4359.7,440.7194,0,0,0,0,100,0),
+(@PATH,109,6670.341,-4362.154,440.7194,0,0,0,0,100,0),
+(@PATH,110,6668.408,-4364.545,440.7194,0,0,0,0,100,0),
+(@PATH,111,6666.455,-4366.962,440.8546,0,0,0,0,100,0),
+(@PATH,112,6664.507,-4369.371,440.9098,0,0,0,0,100,0),
+(@PATH,113,6663.903,-4370.801,441.0089,0,0,0,0,100,0),
+(@PATH,114,6663.605,-4373.883,440.7194,0,0,0,0,100,0),
+(@PATH,115,6663.312,-4376.927,440.7194,0,0,0,0,100,0),
+(@PATH,116,6663.017,-4379.976,440.7194,0,0,0,0,100,0),
+(@PATH,117,6663.048,-4380.506,440.7194,0,0,0,0,100,0),
+(@PATH,118,6665.024,-4382.971,440.7194,0,0,0,0,100,0),
+(@PATH,119,6667.013,-4385.452,440.7194,0,0,0,0,100,0),
+(@PATH,120,6669.01,-4387.943,440.7194,0,0,0,0,100,0),
+(@PATH,121,6670.983,-4390.403,440.7194,0,0,0,0,100,0),
+(@PATH,122,6672.976,-4392.888,440.7194,0,0,0,0,100,0),
+(@PATH,123,6674.643,-4394.981,440.7194,0,0,0,0,100,0),
+(@PATH,124,6676.801,-4397.127,440.7194,0,0,0,0,100,0),
+(@PATH,125,6678.959,-4399.274,440.7194,0,0,0,0,100,0),
+(@PATH,126,6681.114,-4401.417,440.7194,0,0,0,0,100,0),
+(@PATH,127,6683.27,-4403.563,440.7194,0,0,0,0,100,0),
+(@PATH,128,6685.439,-4405.72,440.7194,0,0,0,0,100,0),
+(@PATH,129,6687.588,-4407.858,440.7194,0,0,0,0,100,0),
+(@PATH,130,6689.752,-4410.01,440.7194,0,0,0,0,100,0),
+(@PATH,131,6691.524,-4411.785,440.7194,0,0,0,0,100,0),
+(@PATH,132,6693.658,-4414.005,440.7194,0,0,0,0,100,0),
+(@PATH,133,6695.81,-4416.244,440.7194,0,0,0,0,100,0),
+(@PATH,134,6697.947,-4418.468,440.7194,0,0,0,0,100,0),
+(@PATH,135,6700.072,-4420.679,440.6158,0,0,0,0,100,0),
+(@PATH,136,6702.215,-4422.909,440.6158,0,0,0,0,100,0),
+(@PATH,137,6704.354,-4425.135,440.6158,0,0,0,0,100,0),
+(@PATH,138,6706.516,-4427.385,440.6158,0,0,0,0,100,0),
+(@PATH,139,6708.664,-4429.62,440.6158,0,0,0,0,100,0),
+(@PATH,140,6710.82,-4431.864,440.6158,0,0,0,0,100,0),
+(@PATH,141,6713.229,-4433.922,440.7194,0,0,0,0,100,0),
+(@PATH,142,6715.676,-4436.133,440.7194,0,0,0,0,100,0),
+(@PATH,143,6718.125,-4438.346,440.7194,0,0,0,0,100,0),
+(@PATH,144,6720.556,-4440.542,440.7194,0,0,0,0,100,0),
+(@PATH,145,6722.997,-4442.747,440.7194,0,0,0,0,100,0),
+(@PATH,146,6725.418,-4444.934,440.7194,0,0,0,0,100,0),
+(@PATH,147,6727.87,-4447.148,440.7194,0,0,0,0,100,0),
+(@PATH,148,6730.146,-4449.292,440.7194,0,0,0,0,100,0),
+(@PATH,149,6730.788,-4452.639,440.7194,0,0,0,0,100,0),
+(@PATH,150,6731.166,-4454.971,440.7194,0,0,0,0,100,0),
+(@PATH,151,6731.166,-4457.63,440.7194,0,0,0,0,100,0),
+(@PATH,152,6732.197,-4457.931,440.7194,0,0,0,0,100,0),
+(@PATH,153,6734.809,-4459.646,440.7194,0,0,0,0,100,0),
+(@PATH,154,6737.403,-4461.349,440.7194,0,0,0,0,100,0),
+(@PATH,155,6740.015,-4463.064,440.7194,0,0,0,0,100,0),
+(@PATH,156,6742.618,-4464.773,440.7194,0,0,0,0,100,0),
+(@PATH,157,6745.232,-4466.489,440.7194,0,0,0,0,100,0),
+(@PATH,158,6747.178,-4467.969,440.7194,0,0,0,0,100,0),
+(@PATH,159,6749.505,-4470.075,440.7194,0,0,0,0,100,0),
+(@PATH,160,6751.848,-4472.194,440.7194,0,0,0,0,100,0),
+(@PATH,161,6754.179,-4474.303,440.7194,0,0,0,0,100,0),
+(@PATH,162,6756.502,-4476.405,440.7194,0,0,0,0,100,0),
+(@PATH,163,6758.849,-4478.528,440.7194,0,0,0,0,100,0),
+(@PATH,164,6761.196,-4480.651,440.7194,0,0,0,0,100,0),
+(@PATH,165,6763.529,-4482.762,440.7194,0,0,0,0,100,0),
+(@PATH,166,6765.672,-4484.701,440.7194,0,0,0,0,100,0),
+(@PATH,167,6765.672,-4484.701,440.7194,0,0,0,0,100,0),
+(@PATH,168,6762.613,-4481.934,440.7194,0,0,0,0,100,0),
+(@PATH,169,6761.11,-4480.573,440.7194,0,0,0,0,100,0),
+(@PATH,170,6758.854,-4478.532,440.7194,0,0,0,0,100,0),
+(@PATH,171,6756.6,-4476.493,440.7194,0,0,0,0,100,0),
+(@PATH,172,6754.358,-4474.465,440.7194,0,0,0,0,100,0),
+(@PATH,173,6752.123,-4472.442,440.7194,0,0,0,0,100,0),
+(@PATH,174,6749.883,-4470.417,440.7194,0,0,0,0,100,0),
+(@PATH,175,6747.618,-4468.367,440.7194,0,0,0,0,100,0),
+(@PATH,176,6747.454,-4468.149,440.7194,0,0,0,0,100,0),
+(@PATH,177,6745.778,-4463.783,440.7194,0,0,0,0,100,0),
+(@PATH,178,6743.626,-4461.631,440.7194,0,0,0,0,100,0),
+(@PATH,179,6741.465,-4459.471,440.7194,0,0,0,0,100,0),
+(@PATH,180,6739.305,-4457.311,440.7194,0,0,0,0,100,0),
+(@PATH,181,6737.125,-4455.129,440.7194,0,0,0,0,100,0),
+(@PATH,182,6734.964,-4452.969,440.7194,0,0,0,0,100,0),
+(@PATH,183,6731.37,-4451.403,440.7194,0,0,0,0,100,0);
+-- 0x1C091047601C8D4000000B0000572225 .go 6709.566 -4355.494 440.7194
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=203549;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(203549, 203549, 0, 0, 2, 0, 0),
+(203549, 203562, 3, 270, 2, 0, 0);
diff --git a/sql/updates/world/2015_02_09_07_world.sql b/sql/updates/world/2015_02_09_07_world.sql
new file mode 100644
index 00000000000..89c125a9c2e
--- /dev/null
+++ b/sql/updates/world/2015_02_09_07_world.sql
@@ -0,0 +1,461 @@
+-- Pathing for Entry: 28582 'TDB FORMAT'
+SET @NPC := 126942;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,69, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(1269420, 1, 1336.35, 97.1842, 40.1805, 0, 0, 0, 0, 100, 0),
+(1269420, 2, 1337.76, 97.2226, 40.1805, 0, 0, 0, 0, 100, 0),
+(1269420, 3, 1339.43, 101.827, 40.1805, 0, 0, 0, 0, 100, 0),
+(1269420, 4, 1337.51, 102.338, 40.1805, 0, 0, 0, 0, 100, 0),
+(1269420, 5, 1337.45, 101.881, 40.1805, 0, 4000, 0, 0, 100, 0),
+(1269420, 6, 1327.41, 101.553, 40.1805, 0, 0, 0, 0, 100, 0),
+(1269420, 7, 1327.35, 100.975, 40.1805, 0, 4000, 0, 0, 100, 0),
+(1269420, 8, 1325.64, 100.623, 40.1805, 0, 0, 0, 0, 100, 0),
+(1269420, 9, 1325.01, 96.4632, 40.1805, 0, 0, 0, 0, 100, 0),
+(1269420, 10, 1327.11, 96.4808, 40.1805, 0, 0, 0, 0, 100, 0),
+(1269420, 11, 1327.07, 96.8291, 40.1805, 0, 4000, 0, 0, 100, 0);
+
+DELETE FROM `creature_template_addon` WHERE `entry` IN (28582, 30974);
+INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(28582, 0, 0, 0, 0, 69, ''),
+(30974, 0, 0, 0, 0, 69, '');
+
+-- Pathing for Entry: 28582 'TDB FORMAT'
+SET @NPC := 126926;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(1269260, 1, 1377.28, 64.533, 48.8931, 0, 0, 0, 0, 100, 0),
+(1269260, 2, 1377.69, 64.9436, 48.8931, 0, 6000, 0, 0, 100, 0),
+(1269260, 3, 1359.25, 81.9585, 41.0455, 0, 0, 0, 0, 100, 0),
+(1269260, 4, 1359.68, 82.5069, 41.0204, 0, 6000, 0, 0, 100, 0);
+
+-- Pathing for Entry: 28582 'TDB FORMAT'
+SET @NPC := 126915;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,69, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(1269150, 1, 1393.45, 47.8648, 50.0383, 0, 6000, 0, 0, 100, 0),
+(1269150, 2, 1401.61, 46.3271, 50.0383, 0, 0, 0, 0, 100, 0),
+(1269150, 3, 1401.81, 45.7834, 50.0383, 0, 6000, 0, 0, 100, 0),
+(1269150, 4, 1394.37, 48.5111, 50.0383, 0, 0, 0, 0, 100, 0);
+
+-- Pathing for Entry: 28582 'TDB FORMAT'
+SET @NPC := 126925;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,69, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(1269250, 1, 1414.64, 32.7402, 50.2271, 0, 0, 0, 0, 100, 0),
+(1269250, 2, 1419.4, 32.7552, 53.1143, 0, 0, 0, 0, 100, 0),
+(1269250, 3, 1429.45, 32.845, 58.7644, 0, 0, 0, 0, 100, 0),
+(1269250, 4, 1433.53, 32.8176, 58.7671, 0, 0, 0, 0, 100, 0),
+(1269250, 5, 1434.02, 32.0269, 58.7671, 0, 6000, 0, 0, 100, 0),
+(1269250, 6, 1430.18, 32.2594, 58.7671, 0, 0, 0, 0, 100, 0),
+(1269250, 7, 1422.24, 32.287, 54.8356, 0, 0, 0, 0, 100, 0),
+(1269250, 8, 1414.43, 32.6758, 50.0945, 0, 0, 0, 0, 100, 0),
+(1269250, 9, 1407.78, 32.7916, 50.0383, 0, 0, 0, 0, 100, 0),
+(1269250, 10, 1406.76, 32.718, 50.0383, 0, 6000, 0, 0, 100, 0);
+
+-- Pathing for Entry: 28582 'TDB FORMAT'
+SET @NPC := 126924;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,69, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(1269240, 1, 1358.66, -8.12641, 41.1612, 0, 0, 0, 0, 100, 0),
+(1269240, 2, 1359.22, -8.72624, 41.1518, 0, 6000, 0, 0, 100, 0),
+(1269240, 3, 1376.27, 9.68446, 48.9541, 0, 0, 0, 0, 100, 0),
+(1269240, 4, 1376.68, 9.25245, 48.95, 0, 6000, 0, 0, 100, 0);
+
+-- Pathing for Entry: 28582 'TDB FORMAT'
+SET @NPC := 126933;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,69, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(1269330, 1, 1353.19, 3.42894, 42.4993, 0, 0, 0, 0, 100, 0),
+(1269330, 2, 1352.77, 3.83879, 42.4978, 0, 6000, 0, 0, 100, 0),
+(1269330, 3, 1368.11, 18.3238, 49.0597, 0, 0, 0, 0, 100, 0),
+(1269330, 4, 1367.63, 18.8363, 49.0662, 0, 6000, 0, 0, 100, 0);
+
+-- Pathing for Entry: 28582 'TDB FORMAT'
+SET @NPC := 126939;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,69, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(1269390, 1, 1324.11, -36.4178, 40.1806, 0, 0, 0, 0, 100, 0),
+(1269390, 2, 1320.59, -33.3142, 40.1806, 0, 0, 0, 0, 100, 0),
+(1269390, 3, 1322.34, -31.4373, 40.1806, 0, 0, 0, 0, 100, 0),
+(1269390, 4, 1323.13, -32.1258, 40.1806, 0, 6000, 0, 0, 100, 0),
+(1269390, 5, 1321.68, -35.1774, 40.1806, 0, 0, 0, 0, 100, 0),
+(1269390, 6, 1324.78, -37.6497, 40.1806, 0, 0, 0, 0, 100, 0),
+(1269390, 7, 1340.48, -36.3091, 40.1806, 0, 0, 0, 0, 100, 0),
+(1269390, 8, 1341.82, -34.5498, 40.1806, 0, 0, 0, 0, 100, 0),
+(1269390, 9, 1342.51, -31.7143, 40.1806, 0, 0, 0, 0, 100, 0),
+(1269390, 10, 1343.71, -26.8389, 40.1806, 0, 0, 0, 0, 100, 0),
+(1269390, 11, 1343.06, -26.1627, 40.1806, 0, 6000, 0, 0, 100, 0),
+(1269390, 12, 1341.99, -31.7877, 40.1806, 0, 0, 0, 0, 100, 0),
+(1269390, 13, 1341.6, -32.2199, 40.1806, 0, 6000, 0, 0, 100, 0),
+(1269390, 14, 1341.2, -36.4011, 40.1806, 0, 0, 0, 0, 100, 0),
+(1269390, 15, 1325.72, -38.8983, 40.1806, 0, 0, 0, 0, 100, 0);
+
+
+-- Pathing for Entry: 28582 'TDB FORMAT'
+SET @NPC := 126941;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,69, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(1269410, 1, 1267.08, -35.0841, 33.5057, 0, 6000, 0, 0, 100, 0),
+(1269410, 2, 1253.98, -31.204, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269410, 3, 1252.76, -28.9487, 33.5057, 0, 6000, 0, 0, 100, 0),
+(1269410, 4, 1255.2, -33.8478, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269410, 5, 1256.82, -34.5311, 33.5057, 0, 6000, 0, 0, 100, 0),
+(1269410, 6, 1256.49, -38.1348, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269410, 7, 1259.85, -39.4856, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269410, 8, 1264.16, -36.9788, 33.5057, 0, 0, 0, 0, 100, 0);
+
+-- Pathing for Entry: 28582 'TDB FORMAT'
+SET @NPC := 126917;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(1269170, 1, 1268.62, 32.3739, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269170, 2, 1270.03, 32.3423, 33.5057, 0, 6000, 0, 0, 100, 0),
+(1269170, 3, 1269.46, 0.489199, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269170, 4, 1269.81, 0.525176, 33.5057, 0, 6000, 0, 0, 100, 0);
+
+-- Pathing for Entry: 28582 'TDB FORMAT'
+SET @NPC := 126940;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(1269400, 1, 1269.07, 39.2463, 33.5055, 0, 0, 0, 0, 100, 0),
+(1269400, 2, 1269.94, 39.279, 33.5055, 0, 6000, 0, 0, 100, 0),
+(1269400, 3, 1269, 68.7823, 33.5055, 0, 0, 0, 0, 100, 0),
+(1269400, 4, 1269.8, 68.7924, 33.5055, 0, 6000, 0, 0, 100, 0);
+
+-- Pathing for Entry: 28582 'TDB FORMAT'
+SET @NPC := 126919;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(1269190, 1, 1254.43, 38.9632, 33.5056, 0, 0, 0, 0, 100, 0),
+(1269190, 2, 1254.33, 32.6571, 35.0186, 0, 0, 0, 0, 100, 0),
+(1269190, 3, 1254.73, 9.53858, 33.5056, 0, 0, 0, 0, 100, 0),
+(1269190, 4, 1254.26, 9.55597, 33.5056, 0, 6000, 0, 0, 100, 0),
+(1269190, 5, 1254.61, 28.5055, 33.8212, 0, 0, 0, 0, 100, 0),
+(1269190, 6, 1254.59, 33.0582, 35.0141, 0, 0, 0, 0, 100, 0),
+(1269190, 7, 1254.56, 55.7588, 33.5058, 0, 0, 0, 0, 100, 0),
+(1269190, 8, 1254.14, 55.7403, 33.5058, 0, 6000, 0, 0, 100, 0);
+
+-- Pathing for Entry: 28582 'TDB FORMAT'
+SET @NPC := 126918;
+SET @PATH := 1269180;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,69, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(1269180, 1, 1252.42, 106.457, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269180, 2, 1249.45, 101.782, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269180, 3, 1250.39, 100.591, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269180, 4, 1251.37, 101.803, 33.5057, 0, 6000, 0, 0, 100, 0),
+(1269180, 5, 1250.43, 104.446, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269180, 6, 1259.91, 113.097, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269180, 7, 1265.25, 112.968, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269180, 8, 1273.82, 106.516, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269180, 9, 1274.95, 101.531, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269180, 10, 1272.59, 100.018, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269180, 11, 1272.4, 100.808, 33.5057, 0, 6000, 0, 0, 100, 0),
+(1269180, 12, 1275.02, 103.29, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269180, 13, 1273.92, 106.241, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269180, 14, 1267.23, 108.337, 33.5057, 0, 0, 0, 0, 100, 0),
+(1269180, 15, 1264.99, 108.96, 33.5057, 0, 6000, 0, 0, 100, 0),
+(1269180, 16, 1263.4, 112.342, 33.5057, 0, 0, 0, 0, 100, 0);
+
+UPDATE `creature` SET `spawndist`=8, `MovementType`=1 WHERE `id`=28585;
+UPDATE `creature` SET `spawndist`=5, `MovementType`=1 WHERE `id` IN (28825, 28547, 28584, 28583);
+
+-- Pathing for Entry: 28583 'TDB FORMAT'
+SET @NPC := 126954;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1311.234,`position_y`=-158.9818,`position_z`=52.27496 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1311.234,-158.9818,52.27496,0,0,0,0,100,0),
+(@PATH,2,1312.317,-174.7872,52.27221,0,0,0,0,100,0),
+(@PATH,3,1328.705,-186.7419,52.27302,0,0,0,0,100,0),
+(@PATH,4,1341.044,-184.8856,52.27322,0,0,0,0,100,0),
+(@PATH,5,1354.387,-173.1809,52.27328,0,0,0,0,100,0),
+(@PATH,6,1354.742,-169.7169,52.27325,0,0,0,0,100,0),
+(@PATH,7,1348.927,-148.5091,52.27411,0,0,0,0,100,0),
+(@PATH,8,1335.543,-142.5214,52.27379,0,0,0,0,100,0),
+(@PATH,9,1318.144,-146.4185,52.31124,0,0,0,0,100,0),
+(@PATH,10,1311.167,-158.8409,52.27437,0,0,0,0,100,0);
+-- 0x1C307C4B401BE9C000021700025672BB .go 1311.234 -158.9818 52.27496
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=126954;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(126954, 126954, 0, 0, 2, 0, 0),
+(126954, 126955, 3, 0, 2, 0, 0);
+
+-- Pathing for Entry: 28583 'TDB FORMAT'
+SET @NPC := 76296;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(762960, 1, 1176.14, -298.09, 52.3436, 0, 0, 0, 0, 100, 0),
+(762960, 2, 1176.3, -246.576, 52.3528, 0, 0, 0, 0, 100, 0);
+
+-- Pathing for Entry: 28583 'TDB FORMAT'
+SET @NPC := 76297;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(762970, 1, 1180.57, -315.473, 52.3378, 0, 0, 0, 0, 100, 0),
+(762970, 2, 1171.95, -315.333, 52.3378, 0, 0, 0, 0, 100, 0),
+(762970, 3, 1171.02, -327.394, 52.6927, 0, 0, 0, 0, 100, 0),
+(762970, 4, 1183.75, -330.38, 52.3378, 0, 0, 0, 0, 100, 0),
+(762970, 5, 1183.62, -317.868, 52.3378, 0, 0, 0, 0, 100, 0);
+
+UPDATE `creature` SET `spawndist`=8,`MovementType`=1 WHERE `guid`=76298;
+UPDATE `smart_scripts` SET `action_param1`=1 WHERE `entryorguid`=28547 AND `source_type`=0 AND `id`=0 AND `link`=0;
+
+-- Pathing for Entry: 28583 'TDB FORMAT'
+SET @NPC := 126874;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(1268740, 1, 1118.22, -248.207, 56.8882, 0, 0, 1, 0, 100, 0),
+(1268740, 2, 1118.62, -274.988, 56.8831, 0, 0, 1, 0, 100, 0);
+
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,69, '');
+
+DELETE FROM `creature_addon` WHERE `guid` IN (126904, 126921, 126903, 126911, 126928, 126929, 126930, 126931, 126912);
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(126911, 0, 0, 0, 1, 69, ''),
+(126928, 0, 0, 0, 1, 69, ''),
+(126929, 0, 0, 0, 1, 69, ''),
+(126930, 0, 0, 0, 1, 69, ''),
+(126931, 0, 0, 0, 1, 69, ''),
+(126912, 0, 0, 0, 1, 69, ''),
+(126903, 0, 0, 0, 1, 69, ''),
+(126921, 0, 0, 0, 1, 69, ''),
+(126904, 0, 0, 0, 1, 69, '');
+
+
+UPDATE `smart_scripts` SET `action_param1`=1 WHERE `entryorguid`=28838 AND `source_type`=0 AND `id`=0 AND `link`=1;
+-- Pathing for Entry: 28838 'TDB FORMAT'
+SET @NPC := 126938;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1096.845,`position_y`=-166.1139,`position_z`=58.68692 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1096.845,-166.1139,58.68692,0,0,0,0,100,0),
+(@PATH,2,1091.599,-152.8187,61.33255,0,0,0,0,100,0),
+(@PATH,3,1076.235,-141.8798,61.18824,0,0,0,0,100,0),
+(@PATH,4,1060.763,-145.9723,61.39173,0,0,0,0,100,0),
+(@PATH,5,1049.471,-171.0271,58.53773,0,0,0,0,100,0),
+(@PATH,6,1055.509,-189.0143,58.94555,0,0,0,0,100,0),
+(@PATH,7,1073.278,-198.3343,59.91864,0,0,0,0,100,0),
+(@PATH,8,1091.632,-153.0076,61.24912,0,0,0,0,100,0),
+(@PATH,9,1076.185,-141.7971,61.18842,0,0,0,0,100,0),
+(@PATH,10,1060.682,-145.9083,61.35257,0,0,0,0,100,0),
+(@PATH,11,1049.497,-171.1528,58.5324,0,0,0,0,100,0),
+(@PATH,12,1055.636,-188.8313,58.83115,0,0,0,0,100,0),
+(@PATH,13,1073.335,-198.4241,59.88276,0,0,0,0,100,0),
+(@PATH,14,1083.434,-195.9087,59.84556,0,0,0,0,100,0),
+(@PATH,15,1095.76,-180.6208,58.73315,0,0,0,0,100,0),
+(@PATH,16,1096.683,-166.0892,58.71755,0,0,0,0,100,0),
+(@PATH,17,1091.595,-152.9597,61.3679,0,0,0,0,100,0),
+(@PATH,18,1076.179,-141.7626,61.18819,0,0,0,0,100,0),
+(@PATH,19,1060.637,-145.9161,61.39425,0,0,0,0,100,0),
+(@PATH,20,1049.585,-171.0794,58.53699,0,0,0,0,100,0),
+(@PATH,21,1055.467,-188.91,58.98404,0,0,0,0,100,0),
+(@PATH,22,1073.328,-198.439,59.93514,0,0,0,0,100,0),
+(@PATH,23,1083.423,-195.8686,59.93195,0,0,0,0,100,0),
+(@PATH,24,1095.775,-180.6299,58.52916,0,0,0,0,100,0),
+(@PATH,25,1096.451,-166.0939,58.80622,0,0,0,0,100,0),
+(@PATH,26,1091.409,-152.9162,61.46411,0,0,0,0,100,0),
+(@PATH,27,1076.1,-141.8916,61.18857,0,0,0,0,100,0),
+(@PATH,28,1060.651,-145.9504,61.40473,0,0,0,0,100,0),
+(@PATH,29,1049.581,-171.0241,58.53423,0,0,0,0,100,0),
+(@PATH,30,1055.498,-188.95,59.02743,0,0,0,0,100,0),
+(@PATH,31,1073.29,-198.3899,60.07246,0,0,0,0,100,0),
+(@PATH,32,1083.527,-195.7341,59.79642,0,0,0,0,100,0),
+(@PATH,33,1095.63,-180.5483,58.69926,0,0,0,0,100,0),
+(@PATH,34,1096.488,-165.9498,58.67723,0,0,0,0,100,0),
+(@PATH,35,1091.622,-152.8619,61.2616,0,0,0,0,100,0),
+(@PATH,36,1076.115,-141.9001,61.18835,0,0,0,0,100,0),
+(@PATH,37,1060.789,-145.8449,61.36668,0,0,0,0,100,0),
+(@PATH,38,1049.622,-171.201,58.53172,0,0,0,0,100,0),
+(@PATH,39,1055.608,-188.9287,58.85689,0,0,0,0,100,0),
+(@PATH,40,1073.355,-198.4655,59.88638,0,0,0,0,100,0),
+(@PATH,41,1083.45,-195.9156,59.8475,0,0,0,0,100,0),
+(@PATH,42,1095.778,-180.6123,58.73478,0,0,0,0,100,0),
+(@PATH,43,1096.679,-166.0957,58.71638,0,0,0,0,100,0),
+(@PATH,44,1091.597,-152.9846,61.35995,0,0,0,0,100,0),
+(@PATH,45,1076.191,-141.7885,61.1882,0,0,0,0,100,0),
+(@PATH,46,1060.679,-145.9348,61.39341,0,0,0,0,100,0),
+(@PATH,47,1049.618,-171.0668,58.53717,0,0,0,0,100,0),
+(@PATH,48,1055.49,-188.8295,58.96278,0,0,0,0,100,0),
+(@PATH,49,1073.294,-198.3665,59.92146,0,0,0,0,100,0),
+(@PATH,50,1083.419,-195.9023,59.84375,0,0,0,0,100,0),
+(@PATH,51,1095.709,-180.6607,58.52328,0,0,0,0,100,0),
+(@PATH,52,1096.673,-166.108,58.71417,0,0,0,0,100,0),
+(@PATH,53,1091.596,-152.9702,61.36453,0,0,0,0,100,0),
+(@PATH,54,1076.134,-141.7107,61.1886,0,0,0,0,100,0),
+(@PATH,55,1060.718,-145.7299,61.40303,0,0,0,0,100,0),
+(@PATH,56,1049.66,-170.9935,58.53466,0,0,0,0,100,0),
+(@PATH,57,1055.598,-189.0659,59.09127,0,0,0,0,100,0),
+(@PATH,58,1073.295,-198.3694,59.92171,0,0,0,0,100,0),
+(@PATH,59,1083.648,-195.8578,59.9237,0,0,0,0,100,0),
+(@PATH,60,1095.808,-180.5819,58.69283,0,0,0,0,100,0),
+(@PATH,61,1096.681,-166.0555,58.68321,0,0,0,0,100,0),
+(@PATH,62,1091.416,-153.0063,61.45639,0,0,0,0,100,0),
+(@PATH,63,1076.171,-141.768,61.18841,0,0,0,0,100,0),
+(@PATH,64,1060.65,-145.894,61.35575,0,0,0,0,100,0),
+(@PATH,65,1049.462,-171.1664,58.5322,0,0,0,0,100,0),
+(@PATH,66,1055.634,-188.8381,58.83295,0,0,0,0,100,0),
+(@PATH,67,1073.464,-198.508,59.93453,0,0,0,0,100,0),
+(@PATH,68,1083.448,-195.6998,59.78678,0,0,0,0,100,0),
+(@PATH,69,1095.786,-180.5919,58.69092,0,0,0,0,100,0),
+(@PATH,70,1096.673,-166.0698,58.68402,0,0,0,0,100,0),
+(@PATH,71,1091.631,-152.9937,61.25031,0,0,0,0,100,0),
+(@PATH,72,1076.178,-141.7825,61.18841,0,0,0,0,100,0),
+(@PATH,73,1060.676,-145.9058,61.35313,0,0,0,0,100,0),
+(@PATH,74,1049.458,-171.1682,58.53218,0,0,0,0,100,0),
+(@PATH,75,1055.627,-188.8615,58.83912,0,0,0,0,100,0),
+(@PATH,76,1070.503,-200.296,61.23225,0,0,0,0,100,0);
+-- 0x1C16DC4B401C2980000A1E0001563CBC .go 1096.845 -166.1139 58.68692
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=126938;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(126938, 126938, 0, 0, 2, 0, 0),
+(126938, 126937, 5, 90, 2, 0, 0);
+
+-- Pathing for Entry: 28838 'TDB FORMAT'
+SET @NPC := 126935;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1049.899,`position_y`=-99.5955,`position_z`=59.38226 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1049.899,-99.5955,59.38226,0,0,0,0,100,0),
+(@PATH,2,1050.742,-83.34245,58.92643,0,0,0,0,100,0),
+(@PATH,3,1055.898,-75.28898,59.04939,0,0,0,0,100,0),
+(@PATH,4,1066.186,-64.55377,61.31993,0,0,0,0,100,0),
+(@PATH,5,1083.335,-68.16859,59.77402,0,0,0,0,100,0),
+(@PATH,6,1095.981,-92.44127,57.85799,0,0,0,0,100,0),
+(@PATH,7,1097.756,-106.9242,61.43462,0,0,0,0,100,0),
+(@PATH,8,1097.813,-109.0895,61.5177,0,0,0,0,100,0),
+(@PATH,9,1073.511,-124.8458,61.22898,0,0,0,0,100,0),
+(@PATH,10,1063.165,-119.7333,61.23046,0,0,0,0,100,0),
+(@PATH,11,1052.941,-108.3153,61.3854,0,0,0,0,100,0);
+-- 0x1C307C4B401C29800002170000D672BB .go 1049.899 -99.5955 59.38226
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=126935;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(126935, 126935, 0, 0, 2, 0, 0),
+(126935, 126936, 5, 270, 2, 0, 0);
+
+UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry`=29048;
+UPDATE `creature` SET `spawndist`=40 WHERE `id`=29048;
+
+-- Pathing for Entry: 28835 'TDB FORMAT'
+SET @NPC := 126892;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1053.155,`position_y`=78.30748,`position_z`=61.44365 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1053.155,78.30748,61.44365,0,0,0,0,100,0),
+(@PATH,2,1050.469,75.66108,61.44365,0,0,0,0,100,0),
+(@PATH,3,1034.158,48.75368,59.26595,0,0,0,0,100,0),
+(@PATH,4,1033.885,12.18762,61.27556,0,0,0,0,100,0),
+(@PATH,5,1041.208,0.1274123,61.39244,0,0,0,0,100,0),
+(@PATH,6,1052.702,-9.815857,61.43917,0,0,0,0,100,0),
+(@PATH,7,1053.008,-10.01389,61.44186,0,0,0,0,100,0),
+(@PATH,8,1041.027,0.347192,61.39876,0,0,0,0,100,0),
+(@PATH,9,1032.457,20.25849,58.73366,0,0,0,0,100,0),
+(@PATH,10,1050.469,75.66108,61.44365,0,0,0,0,100,0),
+(@PATH,11,1034.158,48.75368,59.26595,0,0,0,0,100,0);
+-- 0x1C307C4B401C28C000021700015672BB .go 1053.155 78.30748 61.44365
+
+-- Pathing for Entry: 28920 'TDB FORMAT'
+SET @NPC := 126984;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1098.968,`position_y`=19.55447,`position_z`=53.64101 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1098.968,19.55447,53.64101,0,0,0,0,100,0),
+(@PATH,2,1080.878,7.88341,53.63377,0,0,0,0,100,0),
+(@PATH,3,1066.863,12.70812,53.63047,0,0,0,0,100,0),
+(@PATH,4,1078.049,8.259874,53.6311,0,0,0,0,100,0),
+(@PATH,5,1091.877,12.4073,53.63206,0,0,0,0,100,0);
+-- 0x1C307C4B401C3E0000021700005672BB .go 1098.968 19.55447 53.64101
+
+-- Pathing for Entry: 28920 'TDB FORMAT'
+SET @NPC := 126983;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1098.049,`position_y`=54.05235,`position_z`=53.65234 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1098.049,54.05235,53.65234,0,0,0,0,100,0),
+(@PATH,2,1085.831,60.05393,53.65328,0,0,0,0,100,0),
+(@PATH,3,1067.126,53.06633,53.64429,0,0,0,0,100,0),
+(@PATH,4,1068.714,55.26102,53.64336,0,0,0,0,100,0),
+(@PATH,5,1090.947,60.23857,53.65356,0,0,0,0,100,0),
+(@PATH,6,1100.346,51.25973,53.65813,0,0,0,0,100,0);
+-- 0x1C307C4B401C3E000002170000D672BB .go 1098.049 54.05235 53.65234
diff --git a/sql/updates/world/2015_02_09_08_world.sql b/sql/updates/world/2015_02_09_08_world.sql
new file mode 100644
index 00000000000..4699da2c181
--- /dev/null
+++ b/sql/updates/world/2015_02_09_08_world.sql
@@ -0,0 +1,2 @@
+--
+UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry` IN (21440, 21438, 21437, 21436, 21439);
diff --git a/sql/updates/world/2015_02_09_09_world.sql b/sql/updates/world/2015_02_09_09_world.sql
new file mode 100644
index 00000000000..ef2b8bb9b1d
--- /dev/null
+++ b/sql/updates/world/2015_02_09_09_world.sql
@@ -0,0 +1,2 @@
+-- Update rotation of Ru'zah
+UPDATE `creature` SET `orientation`=5.026751 WHERE `guid`=74329;
diff --git a/sql/updates/world/2015_02_09_10_world.sql b/sql/updates/world/2015_02_09_10_world.sql
new file mode 100644
index 00000000000..67fd1112e47
--- /dev/null
+++ b/sql/updates/world/2015_02_09_10_world.sql
@@ -0,0 +1,32 @@
+--
+/* SAI for Burning Exile */
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=2760;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=2760;
+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
+(2760, 0, 0, 0, 8, 0, 100, 0, 4130, 0, 0, 0, 41, 500, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Burning Exile - on spellhit - Despawn');
+
+/* SAI for Cresting Exile */
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=2761;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=2761;
+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
+(2761, 0, 0, 0, 1, 0, 100, 1, 1000, 1000, 1800000, 1800000, 11, 12544, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Cresting Exile - Out Of Combat - Cast Frost Armor'),
+(2761, 0, 1, 0, 0, 0, 100, 0, 1400, 7300, 25600, 32300, 11, 865, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Cresting Exile - In Combat - Cast Frost Nova'),
+(2761, 0, 2, 0, 8, 0, 100, 0, 4131, 0, 0, 0, 41, 500, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Cresting Exile - on spellhit - Despawn');
+
+/* SAI for Thundering Exile */
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=2762;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=2762;
+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
+(2762, 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, 'Thundering Exile - Out Of Combat - Allow Combat Movement'),
+(2762, 0, 1, 2, 4, 0, 100, 0, 0, 0, 0, 0, 11, 9532, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Thundering Exile - On Aggro - Cast Lightning Bolt'),
+(2762, 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, 'Thundering Exile - On Aggro - Increment Phase'),
+(2762, 0, 3, 0, 9, 0, 100, 0, 0, 40, 3300, 6600, 11, 9532, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Thundering Exile - At 0 - 40 Range - Cast Lightning Bolt'),
+(2762, 0, 4, 5, 3, 0, 100, 0, 0, 15, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thundering Exile - At 15% Mana - Allow Combat Movement'),
+(2762, 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, 'Thundering Exile - At 15% Mana - Increment Phase'),
+(2762, 0, 6, 0, 9, 0, 100, 1, 35, 80, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thundering Exile - At 35 - 80 Range - Allow Combat Movement'),
+(2762, 0, 7, 0, 9, 0, 100, 1, 0, 5, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thundering Exile - At 0 - 5 Range - Allow Combat Movement'),
+(2762, 0, 8, 0, 9, 0, 100, 0, 5, 15, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thundering Exile - At 5 - 15 Range - Allow Combat Movement'),
+(2762, 0, 9, 10, 3, 0, 100, 0, 30, 100, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thundering Exile - At 100% Mana - Allow Combat Movement'),
+(2762, 0, 10, 0, 61, 0, 100, 0, 0, 0, 0, 0, 23, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thundering Exile - At 100% Mana - Increment Phase'),
+(2762, 0, 11, 0, 0, 0, 100, 0, 1600, 15100, 18900, 25400, 11, 11824, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Thundering Exile - In Combat - Cast Shock'),
+(2762, 0, 12, 0, 8, 0, 100, 0, 4132, 0, 0, 0, 41, 500, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thundering Exile - on spellhit - Despawn');
diff --git a/sql/updates/world/2015_02_09_11_world.sql b/sql/updates/world/2015_02_09_11_world.sql
new file mode 100644
index 00000000000..d0838a1b31d
--- /dev/null
+++ b/sql/updates/world/2015_02_09_11_world.sql
@@ -0,0 +1,252 @@
+-- Theradrim Shardling SAI
+SET @ENTRY := 11783;
+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,50,0,0,5,7000,11000,11,13584,0,0,0,0,0,2,0,0,0,0,0,0,0,"Theradrim Shardling - Within 0-5 Range - Cast 'Strike'"),
+(@ENTRY,0,1,0,54,0,100,0,0,0,0,0,29,2,90,0,0,0,0,19,11784,10,0,0,0,0,0,"Theradrim Shardling - On Just Summoned - Start Follow Closest Creature 'Theradrim Guardian'");
+
+-- Theradrim Guardian SAI
+SET @ENTRY := 11784;
+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,2,0,5,7000,12000,11,16790,0,0,0,0,0,2,0,0,0,0,0,0,0,"Theradrim Guardian - Within 0-5 Range - Cast 'Knockdown' (Normal Dungeon)"),
+(@ENTRY,0,1,0,1,0,100,3,1000,1000,0,0,11,21057,0,0,0,0,0,1,0,0,0,0,0,0,0,"Theradrim Guardian - Out of Combat - Cast 'Summon Theradrim Shardling' (No Repeat) (Normal Dungeon)");
+
+UPDATE `creature` SET `MovementType`=2 WHERE `guid`=55465;
+DELETE FROM `creature_addon` WHERE `guid`=55465;
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(55465, 554650, 0, 0, 0, 0, '');
+DELETE FROM `waypoint_data` WHERE `id`=554650;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(554650, 1, 248.538, -93.024, -129.62, 0, 0, 0, 0, 100, 0),
+(554650, 2, 219.021, -92.1171, -129.607, 0, 0, 0, 0, 100, 0),
+(554650, 3, 258.14, -97.1733, -129.619, 0, 0, 0, 0, 100, 0),
+(554650, 4, 246.967, -145.304, -130.844, 0, 0, 0, 0, 100, 0),
+(554650, 5, 213.934, -199.873, -131.159, 0, 0, 0, 0, 100, 0),
+(554650, 6, 248.627, -140.739, -131.005, 0, 0, 0, 0, 100, 0),
+(554650, 7, 259.8, -98.2245, -129.619, 0, 0, 0, 0, 100, 0);
+
+DELETE FROM `creature` WHERE `guid` IN (55466, 56518, 56516, 56517, 56504, 56502, 56505, 56503, 56488, 56487, 56486, 88993, 88991, 88990, 88992, 56343, 56341, 55472);
+
+UPDATE `creature` SET `MovementType`=2 WHERE `guid`=55471;
+DELETE FROM `creature_addon` WHERE `guid`=55471;
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(55471, 554710, 0, 0, 0, 0, '');
+DELETE FROM `waypoint_data` WHERE `id`=554710;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(554710, 1, 200.354, -133.505, -101.058, 0, 0, 0, 0, 100, 0),
+(554710, 2, 230.841, -109.688, -88.8687, 0, 0, 0, 0, 100, 0),
+(554710, 3, 278.173, -121.002, -83.4807, 0, 0, 0, 0, 100, 0),
+(554710, 4, 300.187, -149.075, -69.7502, 0, 0, 0, 0, 100, 0),
+(554710, 5, 298.76, -178.312, -59.8991, 0, 0, 0, 0, 100, 0),
+(554710, 6, 299.577, -148.794, -69.9433, 0, 0, 0, 0, 100, 0),
+(554710, 7, 276.408, -121.048, -83.6496, 0, 0, 0, 0, 100, 0),
+(554710, 8, 226.955, -112.811, -89.7437, 0, 0, 0, 0, 100, 0),
+(554710, 9, 199.686, -134.684, -101.541, 0, 0, 0, 0, 100, 0),
+(554710, 10, 183.329, -185.544, -111.375, 0, 0, 0, 0, 100, 0);
+
+UPDATE `creature` SET `MovementType`=2 WHERE `guid`=88989;
+DELETE FROM `creature_addon` WHERE `guid`=88989;
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(88989, 889890, 0, 0, 0, 0, '');
+DELETE FROM `waypoint_data` WHERE `id`=889890;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(889890, 1, 109.037, -268.553, -108.677, 0, 0, 0, 0, 100, 0),
+(889890, 2, 151.884, -275.712, -108.677, 0, 0, 0, 0, 100, 0),
+(889890, 3, 143.666, -231.173, -108.852, 0, 0, 0, 0, 100, 0),
+(889890, 4, 156.17, -275.286, -108.676, 0, 0, 0, 0, 100, 0),
+(889890, 5, 138.876, -278.577, -108.676, 0, 0, 0, 0, 100, 0),
+(889890, 6, 79.5604, -259.988, -108.678, 0, 0, 0, 0, 100, 0),
+(889890, 7, 62.416, -207.188, -109.659, 0, 0, 0, 0, 100, 0),
+(889890, 8, 8.187, -127.348, -123.845, 0, 0, 0, 0, 100, 0),
+(889890, 9, 28.705, -38.025, -128.761, 0, 0, 0, 0, 100, 0),
+(889890, 10, 8.187, -127.348, -123.845, 0, 0, 0, 0, 100, 0),
+(889890, 11, 62.416, -207.188, -109.659, 0, 0, 0, 0, 100, 0),
+(889890, 12, 79.0383, -255.555, -108.677, 0, 0, 0, 0, 100, 0);
+
+UPDATE `creature` SET `MovementType`=2 WHERE `guid`=56485;
+DELETE FROM `creature_addon` WHERE `guid`=56485;
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(56485, 564850, 0, 0, 0, 0, '');
+DELETE FROM `waypoint_data` WHERE `id`=564850;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(564850, 1, 150.49, -193.898, -171.747, 0, 0, 0, 0, 100, 0),
+(564850, 2, 152.233, -231.891, -170.382, 0, 0, 0, 0, 100, 0),
+(564850, 3, 125.841, -257.66, -168.113, 0, 0, 0, 0, 100, 0),
+(564850, 4, 155.987, -284.034, -168.989, 0, 0, 0, 0, 100, 0),
+(564850, 5, 148.455, -238.759, -169.543, 0, 0, 0, 0, 100, 0),
+(564850, 6, 155.062, -199.53, -171.957, 0, 0, 0, 0, 100, 0),
+(564850, 7, 104.937, -185.658, -167.457, 0, 0, 0, 0, 100, 0),
+(564850, 8, 100.198, -176.082, -167.457, 0, 0, 0, 0, 100, 0),
+(564850, 9, 111.893, -160.596, -167.328, 0, 0, 0, 0, 100, 0),
+(564850, 10, 121.304, -176.939, -167.457, 0, 0, 0, 0, 100, 0),
+(564850, 11, 128.284, -191.12, -168.26, 0, 0, 0, 0, 100, 0);
+
+UPDATE `creature` SET `MovementType`=2 WHERE `guid`=56501;
+DELETE FROM `creature_addon` WHERE `guid`=56501;
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(56501, 565010, 0, 0, 0, 0, '');
+DELETE FROM `waypoint_data` WHERE `id`=565010;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(565010, 1, 177.079, -304.031, -172.328, 0, 0, 0, 0, 100, 0),
+(565010, 2, 146.519, -316.403, -174.591, 0, 0, 0, 0, 100, 0),
+(565010, 3, 153.733, -376.576, -175.003, 0, 0, 0, 0, 100, 0),
+(565010, 4, 211.381, -381.672, -160.691, 0, 0, 0, 0, 100, 0),
+(565010, 5, 156.615, -376.11, -175.002, 0, 0, 0, 0, 100, 0),
+(565010, 6, 148.461, -317.13, -174.589, 0, 0, 0, 0, 100, 0);
+
+
+UPDATE `creature` SET `MovementType`=2 WHERE `guid`=56515;
+DELETE FROM `creature_addon` WHERE `guid`=56515;
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(56515, 565150, 0, 0, 0, 0, '');
+DELETE FROM `waypoint_data` WHERE `id`=565150;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(565150, 1, 312.737, -343.241, -117.348, 0, 0, 0, 0, 100, 0),
+(565150, 2, 328.91, -288.013, -118.069, 0, 0, 0, 0, 100, 0),
+(565150, 3, 320.637, -268.75, -117.912, 0, 0, 0, 0, 100, 0),
+(565150, 4, 337.697, -262.309, -118.049, 0, 0, 0, 0, 100, 0),
+(565150, 5, 345.634, -276.933, -117.941, 0, 0, 0, 0, 100, 0),
+(565150, 6, 331.665, -290.395, -118.061, 0, 0, 0, 0, 100, 0),
+(565150, 7, 317.848, -331.827, -116.777, 0, 0, 0, 0, 100, 0),
+(565150, 8, 325.14, -394.223, -124.867, 0, 0, 0, 0, 100, 0),
+(565150, 9, 250.345, -396.668, -139.555, 0, 0, 0, 0, 100, 0),
+(565150, 10, 256.965, -328.427, -140.451, 0, 0, 0, 0, 100, 0),
+(565150, 11, 251.778, -396.72, -139.555, 0, 0, 0, 0, 100, 0),
+(565150, 12, 319.125, -403.751, -124.866, 0, 0, 0, 0, 100, 0);
+
+SET @GUID := 160506;
+SET @ENTRY := 1211;
+-- Placed NPC 12237 (Meshlok the Harvester) into a pool with its placeholder
+DELETE FROM `pool_creature` WHERE `guid` IN (@GUID, @GUID +3, 54652);
+INSERT INTO `pool_creature` VALUES
+(@GUID, @ENTRY, 30, 'Meshlok the Harvester (Maraudon)'),
+(@GUID + 3, @ENTRY, 0, 'Meshlok the Harvester placeholder (Maraudon)'),
+(54652, @ENTRY, 0, 'Meshlok the Harvester placeholder (Maraudon)');
+
+DELETE FROM `pool_template` WHERE `entry` = @ENTRY;
+INSERT INTO `pool_template` VALUES
+(@ENTRY, 1, 'Meshlok the Harvester (Maraudon)');
+
+DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID + 7;
+INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `VerifiedBuild`) VALUES
+(@GUID, 12237, 349, 0, 0, 1, 1, 0, 1, 632.101, -92.409, -57.4999, 3.49563, 7200, 0, 0, 5757, 0, 0, 0, 0, 0, 0),
+(@GUID + 1, 12224, 349, 0, 0, 1, 1, 0, 1, 748.725, -81.8362, -57.4696, 0.620471, 7200, 0, 0, 4434, 2301, 0, 0, 0, 0, 0),
+(@GUID + 2, 12224, 349, 0, 0, 1, 1, 0, 1, 632.101, -92.409, -57.4999, 3.49563, 7200, 0, 0, 4434, 2301, 0, 0, 0, 0, 0),
+(@GUID + 3, 12224, 349, 0, 0, 1, 1, 0, 1, 818.573, -215.097, -77.1489, 4.14281, 7200, 0, 0, 4434, 2301, 0, 0, 0, 0, 0),
+(@GUID + 4, 12224, 349, 0, 0, 1, 1, 0, 1, 813.453, -370.449, -59.2094, 6.02488, 7200, 0, 0, 4434, 2301, 0, 0, 0, 0, 0),
+(@GUID + 5, 12224, 349, 0, 0, 1, 1, 0, 1, 719.899, -83.8715, -57.2155, 3.48941, 7200, 0, 0, 4434, 2301, 0, 0, 0, 0, 0);
+
+UPDATE `creature` SET `MovementType`=2 WHERE `guid`=@GUID + 1;
+DELETE FROM `creature_addon` WHERE `guid`=@GUID + 1;
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(@GUID+1, (@GUID+1) * 10, 0, 0, 0, 0, '');
+DELETE FROM `waypoint_data` WHERE `id`=(@GUID+1) * 10;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+((@GUID+1) * 10, 1, 747.806, -79.9688, -57.4744, 0, 0, 0, 0, 100, 0),
+((@GUID+1) * 10, 2, 750.866, -86.8807, -57.4595, 0, 0, 0, 0, 100, 0),
+((@GUID+1) * 10, 3, 741.016, -94.8653, -57.4978, 0, 0, 0, 0, 100, 0),
+((@GUID+1) * 10, 4, 745.803, -84.0748, -57.4833, 0, 0, 0, 0, 100, 0),
+((@GUID+1) * 10, 5, 738.607, -70.5452, -57.4977, 0, 0, 0, 0, 100, 0),
+((@GUID+1) * 10, 6, 751.253, -70.6902, -57.3912, 0, 0, 0, 0, 100, 0),
+((@GUID+1) * 10, 7, 744.367, -78.7708, -57.4887, 0, 0, 0, 0, 100, 0),
+((@GUID+1) * 10, 8, 756.588, -80.4979, -57.3727, 0, 0, 0, 0, 100, 0),
+((@GUID+1) * 10, 9, 736.461, -89.3428, -57.4996, 0, 0, 0, 0, 100, 0),
+((@GUID+1) * 10, 10, 734.7, -80.3283, -57.4996, 0, 0, 0, 0, 100, 0),
+((@GUID+1) * 10, 11, 744.209, -79.5844, -57.4915, 0, 0, 0, 0, 100, 0),
+((@GUID+1) * 10, 12, 734.044, -71.701, -57.4977, 0, 0, 0, 0, 100, 0);
+
+UPDATE `creature` SET `MovementType`=2 WHERE `guid`=@GUID + 2;
+DELETE FROM `creature_addon` WHERE `guid`=@GUID + 2;
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(@GUID+2, (@GUID+2) * 10, 0, 0, 0, 0, '');
+DELETE FROM `waypoint_data` WHERE `id`=(@GUID+2) * 10;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+((@GUID+2) * 10, 1, 632.101, -92.409, -57.4999, 0, 0, 0, 0, 100, 0),
+((@GUID+2) * 10, 2, 642.895, -89.225, -57.4999, 0, 0, 0, 0, 100, 0),
+((@GUID+2) * 10, 3, 654.193, -88.5337, -57.4999, 0, 0, 0, 0, 100, 0),
+((@GUID+2) * 10, 4, 666.728, -91.7718, -57.4999, 0, 0, 0, 0, 100, 0),
+((@GUID+2) * 10, 5, 675.549, -93.9197, -57.4999, 0, 0, 0, 0, 100, 0),
+((@GUID+2) * 10, 6, 690.764, -89.7546, -57.4999, 0, 0, 0, 0, 100, 0),
+((@GUID+2) * 10, 7, 702.83, -84.753, -57.4631, 0, 0, 0, 0, 100, 0),
+((@GUID+2) * 10, 8, 715.159, -83.791, -57.1193, 0, 0, 0, 0, 100, 0),
+((@GUID+2) * 10, 9, 708.503, -83.9885, -57.2554, 0, 0, 0, 0, 100, 0),
+((@GUID+2) * 10, 10, 699.353, -86.647, -57.5, 0, 0, 0, 0, 100, 0),
+((@GUID+2) * 10, 11, 681.834, -93.4817, -57.5, 0, 0, 0, 0, 100, 0),
+((@GUID+2) * 10, 12, 674.938, -93.0037, -57.5, 0, 0, 0, 0, 100, 0),
+((@GUID+2) * 10, 13, 665.508, -90.6338, -57.5, 0, 0, 0, 0, 100, 0),
+((@GUID+2) * 10, 14, 652.935, -87.6942, -57.5, 0, 0, 0, 0, 100, 0),
+((@GUID+2) * 10, 15, 634.167, -92.0013, -57.5, 0, 0, 0, 0, 100, 0);
+
+UPDATE `creature` SET `MovementType`=2 WHERE `guid`=@GUID + 3;
+DELETE FROM `creature_addon` WHERE `guid`=@GUID + 3;
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(@GUID+3, (@GUID+3) * 10, 0, 0, 0, 0, '');
+DELETE FROM `waypoint_data` WHERE `id`=(@GUID+3) * 10;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+((@GUID+3) * 10, 1, 818.873, -216.343, -77.1489, 0, 0, 0, 0, 100, 0),
+((@GUID+3) * 10, 2, 813.487, -210.328, -77.1489, 0, 0, 0, 0, 100, 0),
+((@GUID+3) * 10, 3, 806.875, -204.634, -77.1489, 0, 0, 0, 0, 100, 0),
+((@GUID+3) * 10, 4, 804.811, -193.5, -77.1489, 0, 0, 0, 0, 100, 0),
+((@GUID+3) * 10, 5, 806.356, -184.124, -77.1489, 0, 0, 0, 0, 100, 0),
+((@GUID+3) * 10, 6, 813.319, -173.6, -77.2995, 0, 0, 0, 0, 100, 0),
+((@GUID+3) * 10, 7, 808.847, -175.006, -77.3074, 0, 0, 0, 0, 100, 0),
+((@GUID+3) * 10, 8, 805.501, -182.277, -77.1489, 0, 0, 0, 0, 100, 0),
+((@GUID+3) * 10, 9, 804.538, -193.051, -77.1489, 0, 0, 0, 0, 100, 0),
+((@GUID+3) * 10, 10, 807.906, -203.501, -77.1489, 0, 0, 0, 0, 100, 0);
+
+UPDATE `creature` SET `MovementType`=2 WHERE `guid`=203506;
+DELETE FROM `creature_addon` WHERE `guid`=203506;
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(203506, 203506 * 10, 0, 0, 0, 0, '');
+DELETE FROM `waypoint_data` WHERE `id`=203506 * 10;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(203506 * 10, 1, 632.101, -92.409, -57.4999, 0, 0, 0, 0, 100, 0),
+(203506 * 10, 2, 642.895, -89.225, -57.4999, 0, 0, 0, 0, 100, 0),
+(203506 * 10, 3, 654.193, -88.5337, -57.4999, 0, 0, 0, 0, 100, 0),
+(203506 * 10, 4, 666.728, -91.7718, -57.4999, 0, 0, 0, 0, 100, 0),
+(203506 * 10, 5, 675.549, -93.9197, -57.4999, 0, 0, 0, 0, 100, 0),
+(203506 * 10, 6, 690.764, -89.7546, -57.4999, 0, 0, 0, 0, 100, 0),
+(203506 * 10, 7, 702.83, -84.753, -57.4631, 0, 0, 0, 0, 100, 0),
+(203506 * 10, 8, 715.159, -83.791, -57.1193, 0, 0, 0, 0, 100, 0),
+(203506 * 10, 9, 708.503, -83.9885, -57.2554, 0, 0, 0, 0, 100, 0),
+(203506 * 10, 10, 699.353, -86.647, -57.5, 0, 0, 0, 0, 100, 0),
+(203506 * 10, 11, 681.834, -93.4817, -57.5, 0, 0, 0, 0, 100, 0),
+(203506 * 10, 12, 674.938, -93.0037, -57.5, 0, 0, 0, 0, 100, 0),
+(203506 * 10, 13, 665.508, -90.6338, -57.5, 0, 0, 0, 0, 100, 0),
+(203506 * 10, 14, 652.935, -87.6942, -57.5, 0, 0, 0, 0, 100, 0),
+(203506 * 10, 15, 634.167, -92.0013, -57.5, 0, 0, 0, 0, 100, 0);
+
+UPDATE `creature_template` SET `speed_walk`=0.3, `speed_run`=0.4 WHERE `entry`=12222;
+
+UPDATE `creature` SET `MovementType`=2 WHERE `guid`=55118;
+DELETE FROM `creature_addon` WHERE `guid`=55118;
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(55118, 55118 * 10, 0, 0, 0, 0, '');
+DELETE FROM `waypoint_data` WHERE `id`=55118 * 10;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
+(55118 * 10, 1, 560.44, 74.1416, -96.3128, 0, 0, 0, 0, 100, 0),
+(55118 * 10, 2, 556.001, 97.5598, -96.3128, 0, 0, 0, 0, 100, 0),
+(55118 * 10, 3, 562.821, 116.938, -96.3128, 0, 0, 0, 0, 100, 0),
+(55118 * 10, 4, 558.737, 80.2023, -96.3128, 0, 0, 0, 0, 100, 0),
+(55118 * 10, 5, 567.894, 47.7771, -96.3128, 0, 0, 0, 0, 100, 0),
+(55118 * 10, 6, 573.623, 24.1758, -96.3128, 0, 0, 0, 0, 100, 0),
+(55118 * 10, 7, 583.107, 6.90322, -96.3128, 0, 0, 0, 0, 100, 0),
+(55118 * 10, 8, 597.509, 5.07898, -96.3128, 0, 0, 0, 0, 100, 0),
+(55118 * 10, 9, 600.013, 21.6183, -96.3128, 0, 0, 0, 0, 100, 0),
+(55118 * 10, 10, 575.202, 46.2133, -96.3128, 0, 0, 0, 0, 100, 0);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=55118;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(55118, 55118, 0, 0, 2, 0, 0),
+(55118, 55115, 3, 0, 2, 0, 0),
+(55118, 55116, 3, 70, 2, 0, 0),
+(55118, 55117, 3, 290, 2, 0, 0);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=54579;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(54579, 54579, 0, 0, 2, 0, 0),
+(54579, 54675, 16, 270, 2, 0, 0),
+(54579, 54676, 16, 90, 2, 0, 0);
diff --git a/sql/updates/world/2015_02_09_12_world.sql b/sql/updates/world/2015_02_09_12_world.sql
new file mode 100644
index 00000000000..0306b11fa79
--- /dev/null
+++ b/sql/updates/world/2015_02_09_12_world.sql
@@ -0,0 +1,2 @@
+--
+DELETE FROM `creature` WHERE guid=85587 AND `id`=17318;
diff --git a/sql/updates/world/2015_02_09_13_world.sql b/sql/updates/world/2015_02_09_13_world.sql
new file mode 100644
index 00000000000..96d4237bd0d
--- /dev/null
+++ b/sql/updates/world/2015_02_09_13_world.sql
@@ -0,0 +1,43 @@
+--
+UPDATE `creature_template` SET `unit_flags`=0, `flags_extra`=0, `npcflag`=0 WHERE `entry`=17587;
+-- Timberstrider Fledgling SAI
+SET @ENTRY := 17372;
+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,6,0,100,0,0,0,0,0,45,1,1,0,0,0,0,19,17587,10,0,0,0,0,0,"Timberstrider Fledgling - On Just Died - Set Data 1 1");
+
+-- Draenei Youngling SAI
+SET @ENTRY := 17587;
+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,3,1,0,100,0,60000,60000,60000,60000,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Draenei Youngling - Out of Combat - Set Event Phase 0"),
+(@ENTRY,0,1,0,8,0,100,0,28880,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Draenei Youngling - On Spellhit 'Gift of the Naaru' - Set Event Phase 1"),
+(@ENTRY,0,2,0,38,1,100,0,1,1,0,0,81,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Draenei Youngling - On Data Set 1 1 - Set Npc Flag Questgiver (Phase 1)"),
+(@ENTRY,0,3,0,61,0,100,0,60000,60000,60000,60000,81,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Draenei Youngling - Out of Combat - Set Npc Flag "),
+(@ENTRY,0,5,0,8,0,100,0,59547,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Draenei Youngling - On Spellhit 'Gift of the Naaru' - Set Event Phase 1"),
+(@ENTRY,0,6,0,8,0,100,0,59545,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Draenei Youngling - On Spellhit 'Gift of the Naaru' - Set Event Phase 1"),
+(@ENTRY,0,7,0,8,0,100,0,59544,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Draenei Youngling - On Spellhit 'Gift of the Naaru' - Set Event Phase 1"),
+(@ENTRY,0,8,0,8,0,100,0,59542,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Draenei Youngling - On Spellhit 'Gift of the Naaru' - Set Event Phase 1"),
+(@ENTRY,0,9,0,8,0,100,0,59548,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Draenei Youngling - On Spellhit 'Gift of the Naaru' - Set Event Phase 1"),
+(@ENTRY,0,10,0,8,0,100,0,59543,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Draenei Youngling - On Spellhit 'Gift of the Naaru' - Set Event Phase 1");
+
+DELETE FROM `creature_text` WHERE `entry`IN (17587);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`, `BroadcastTextID`) VALUES
+(17587,0,0, 'Help! I think this creature might be too tough for me to handle alone.',12,35,100,0,0,0, '17587',14167), -- player IC_LOS
+(17587,0,1, 'Can anyone hear me? I need help! This creature is going to kill me!',12,35,100,0,0,0, '17587',14168), -- player IC_LOS
+(17587,0,2, 'I can''t hold it off any longer! Tell the exarch that I gave it my best.',12,35,100,0,0,0, '17587',14169), -- player IC_LOS
+(17587,1,0, 'Thanks again!',12,35,100,0,0,0, '17587',14170), -- heal received
+(17587,1,1, 'Thanks for the heal, $n!',12,35,100,0,0,0, '17587',14166), -- heal received
+(17587,2,0, 'Another victory for the Draenei!',12,35,100,0,0,0, '17587',14171), -- target dies
+(17587,2,1, 'Another infected beast destroyed!',12,35,100,0,0,0, '17587',14172), -- target dies
+(17587,2,2, 'Hah! This is easy.',12,35,100,0,0,0, '17587',14174), -- target dies
+(17587,2,3, 'How could you think yourself a match for the draenei champion!',12,35,100,0,0,0, '17587',14173), -- target dies
+(17587,3,0, 'Kill as many infected nightstalkers as I can find... This should be easy.',12,35,100,0,0,0, '17587',14165), -- random ooc
+(17587,3,1, 'I''m supposed to be hunting infected nightstalkers... This should be easy.',12,35,100,0,0,0, '17587',14175), -- random ooc
+(17587,3,2, 'Where in the nether are these damnable lashers??',12,35,100,0,0,0, '17587',14176), -- random ooc
+(17587,3,3, 'Hrm, azure snapdragons? Where do they come up with these names? Daedal has gone mad!',12,35,100,0,0,0, '17587',14177), -- random ooc
+(17587,3,4, 'These stags look nothing like talbuks.',12,35,100,0,0,0, '17587',14178), -- random ooc
+(17587,3,5, 'I wonder what that little purple creature at the village is... It''s certainly beautiful.',12,35,100,0,0,0, '17587',14179), -- random ooc
+(17587,4,0, 'Time to meet your maker, $n!',12,35,100,0,0,0, '17587',14180); -- on aggro
diff --git a/sql/updates/world/2015_02_09_14_world.sql b/sql/updates/world/2015_02_09_14_world.sql
new file mode 100644
index 00000000000..4a2d1bba7df
--- /dev/null
+++ b/sql/updates/world/2015_02_09_14_world.sql
@@ -0,0 +1,2 @@
+--
+UPDATE `item_template` SET `HolidayId`=423, `ScriptName`='' WHERE `entry`=49867;
diff --git a/sql/updates/world/2015_02_09_15_world.sql b/sql/updates/world/2015_02_09_15_world.sql
new file mode 100644
index 00000000000..d2495cf0270
--- /dev/null
+++ b/sql/updates/world/2015_02_09_15_world.sql
@@ -0,0 +1 @@
+DELETE FROM `skill_discovery_template` WHERE `spellId`=54020 AND `reqSpell`=60893;
diff --git a/sql/updates/world/2015_02_10_00_world.sql b/sql/updates/world/2015_02_10_00_world.sql
new file mode 100644
index 00000000000..bfa25d8982b
--- /dev/null
+++ b/sql/updates/world/2015_02_10_00_world.sql
@@ -0,0 +1,18 @@
+-- Magmoth Shaman SAI
+SET @ENTRY := 25428;
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,0,4,0,5,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magmoth Shaman - On Aggro - Say Line 0 (No Repeat)"),
+(@ENTRY,0,1,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Magmoth Shaman - Between 0-15% Health - Flee For Assist (No Repeat)"),
+(@ENTRY,0,2,0,25,0,100,0,0,0,0,0,11,45575,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magmoth Shaman - On Reset - Cast 'Magmoth Fire Totem'");
+
+-- Magmoth Fire Totem SAI
+SET @ENTRY := 25444;
+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,54,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magmoth Fire Totem - On Just Summoned - Enable Combat Movement"),
+(@ENTRY,0,1,0,0,0,100,0,3000,4000,4000,4000,11,45580,0,0,0,0,0,2,0,0,0,0,0,0,0,"Magmoth Fire Totem - In Combat - Cast 'Fireball'"),
+(@ENTRY,0,2,0,1,0,100,0,100,100,20000,20000,11,45576,0,0,0,0,0,19,24021,30,0,0,0,0,0,"Magmoth Fire Totem - Out of Combat - Cast 'Cosmetic - New Fire Beam Channel (Mouth)'"),
+(@ENTRY,0,3,0,7,0,100,0,0,0,0,0,41,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magmoth Fire Totem - On Evade - Despawn Instant");
diff --git a/sql/updates/world/2015_02_10_01_world.sql b/sql/updates/world/2015_02_10_01_world.sql
new file mode 100644
index 00000000000..835ac05343b
--- /dev/null
+++ b/sql/updates/world/2015_02_10_01_world.sql
@@ -0,0 +1,12 @@
+--
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=45465;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13, 1, 45465, 0, 0, 31, 0, 3, 24862, 0, 0, 0, 0, '', 'Mage Hunter Channel - targets Bunny');
+
+-- Beryl Treasure Hunter SAI
+SET @ENTRY := 25353;
+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,1000,12500,15500,11,50658,0,0,0,0,0,2,0,0,0,0,0,0,0,"Beryl Treasure Hunter - In Combat - Cast 'Focus Beam'"),
+(@ENTRY,0,1,0,1,0,100,0,5000,5000,15000,15000,11,45465,0,0,0,0,0,19,24862,60,0,0,0,0,0,"Beryl Treasure Hunter - Out of Combat - Cast 'Mage Hunter Channel'");
diff --git a/sql/updates/world/2015_02_10_02_world.sql b/sql/updates/world/2015_02_10_02_world.sql
new file mode 100644
index 00000000000..62c0f960123
--- /dev/null
+++ b/sql/updates/world/2015_02_10_02_world.sql
@@ -0,0 +1,41 @@
+-- Kvaldir Mist Lord SAI
+SET @GUID := -110298;
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=25496;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@GUID 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
+(@GUID,0,0,0,25,0,100,0,0,0,0,0,53,0,2549600,1,0,0,2,1,0,0,0,0,0,0,0,"Kvaldir Mist Lord - On Reset - Start Waypoint"),
+(@GUID,0,1,0,40,0,100,0,2,2549600,0,0,80,2549600,2,0,0,0,0,1,0,0,0,0,0,0,0,"Kvaldir Mist Lord - On Waypoint 2 Reached - Run Script"),
+(@GUID,0,2,0,40,0,100,0,4,2549600,0,0,80,2549600,2,0,0,0,0,1,0,0,0,0,0,0,0,"Kvaldir Mist Lord - On Waypoint 4 Reached - Run Script"),
+(@GUID,0,3,0,40,0,100,0,6,2549600,0,0,80,2549600,2,0,0,0,0,1,0,0,0,0,0,0,0,"Kvaldir Mist Lord - On Waypoint 6 Reached - Run Script"),
+(@GUID,0,4,0,40,0,100,0,8,2549600,0,0,80,2549600,2,0,0,0,0,1,0,0,0,0,0,0,0,"Kvaldir Mist Lord - On Waypoint 8 Reached - Run Script");
+
+-- Actionlist SAI
+SET @ENTRY := 2549600;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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,9,0,0,0,0,100,0,0,0,0,0,54,7000,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kvaldir Mist Lord - On Script - Pause Waypoint"),
+(@ENTRY,9,1,0,0,0,100,0,0,0,0,0,66,0,0,0,0,0,0,10,110382,25242,0,0,0,0,0,"Kvaldir Mist Lord - On Script - Set Orientation Closest Creature 'Warsong Battleguard'"),
+(@ENTRY,9,2,0,0,0,100,0,1000,1000,0,0,5,53,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kvaldir Mist Lord - On Script - Play Emote 53"),
+(@ENTRY,9,3,0,0,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kvaldir Mist Lord - On Script - Say Line 0"),
+(@ENTRY,9,4,0,0,0,100,0,0,0,0,0,11,45667,0,0,0,0,0,19,25244,50,0,0,0,0,0,"Kvaldir Mist Lord - On Script - Cast 'Torch Corpse'");
+
+DELETE FROM `waypoints` WHERE `entry`=2549600;
+INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES
+(2549600, 1, 2943.3, 6805.71, 6.86362, 'Kvaldir Mist Lord'),
+(2549600, 2, 2946.38, 6808.99, 6.89997, 'Kvaldir Mist Lord'),
+(2549600, 3, 2952.22, 6815.03, 5.49191, 'Kvaldir Mist Lord'),
+(2549600, 4, 2956.26, 6811.33, 5.7004, 'Kvaldir Mist Lord'),
+(2549600, 5, 2959.27, 6809.55, 5.73998, 'Kvaldir Mist Lord'),
+(2549600, 6, 2958.56, 6804.6, 6.10027, 'Kvaldir Mist Lord'),
+(2549600, 7, 2958.36, 6799.58, 6.55177, 'Kvaldir Mist Lord'),
+(2549600, 8, 2953.32, 6798.66, 6.69609, 'Kvaldir Mist Lord');
+
+DELETE FROM `creature_text` WHERE `entry`=25496;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
+(25496, 0, 0, 'You are dismissed, $n.', 12, 0, 100, 113, 0, 0, 1242, 0, 'Marshal McBride');
+
+DELETE FROM `creature_text` WHERE `entry`=25496;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `BroadcastTextID`, `comment`) VALUES
+(25496, 0, 0, 'Become ashes in the mist!', 12, 0, 50, 53, 0, 0, 24719, 'Kvaldir Mist Lord'),
+(25496, 0, 1, 'The subjugation of these people has only just begun... so much time for fun and games.', 12, 0, 50, 53, 0, 0, 24718, 'Kvaldir Mist Lord'),
+(25496, 0, 2, 'Burn, land dweller! BURN!', 12, 0, 50, 53, 0, 0, 24717, 'Kvaldir Mist Lord');
diff --git a/sql/updates/world/2015_02_10_03_world.sql b/sql/updates/world/2015_02_10_03_world.sql
new file mode 100644
index 00000000000..6b2ed183c1d
--- /dev/null
+++ b/sql/updates/world/2015_02_10_03_world.sql
@@ -0,0 +1,7 @@
+-- Fireguard Destroyer SAI
+SET @ENTRY := 8911;
+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,2,0,30,9000,11000,11,15243,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fireguard Destroyer - Within 0-30 Range - Cast 'Fireball Volley' (Normal Dungeon)"),
+(@ENTRY,0,1,0,0,0,100,0,5000,8000,5000,8000,11,16788,64,0,0,0,0,2,0,0,0,0,0,0,0,"Fireguard Destroyer - In Combat - Cast 'Fireball'");
diff --git a/sql/updates/world/2015_02_10_04_world.sql b/sql/updates/world/2015_02_10_04_world.sql
new file mode 100644
index 00000000000..27debf9fb46
--- /dev/null
+++ b/sql/updates/world/2015_02_10_04_world.sql
@@ -0,0 +1,15 @@
+--
+UPDATE `conditions` SET `ConditionValue1`=11332 WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9546 AND `SourceEntry`=1 AND `SourceId`=0 AND `ElseGroup`=0 AND `ConditionTypeOrReference`=9 AND `ConditionTarget`=0 AND `ConditionValue1`=12298 AND `ConditionValue2`=0 AND `ConditionValue3`=0;
+UPDATE `gossip_menu_option` SET `npc_option_npcflag`=8195 WHERE `menu_id`=9546 AND `id`=1;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=23859;
+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
+(23859, 0, 0, 0, 4, 0, 100, 0, 0, 0, 0, 0, 80, 2385900, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Greer Orehammer - On aggro - Run Script'),
+(23859, 0, 1, 0, 62, 0, 100, 0, 9546, 1, 0, 0, 56, 33634, 10, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Greer Orehammer - On gossip option select - give player 10 Orehammer\'s Precision Bombs'),
+(23859, 0, 2, 0, 62, 0, 100, 0, 9546, 1, 0, 0, 52, 745, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Greer Orehammer - On gossip option select - Plague This Taxi Start');
+
+-- New Agamand Plague Tank Bunny SAI
+SET @ENTRY := 24290;
+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,8,0,100,0,43404,0,0,0,33,24290,0,0,0,0,0,7,0,0,0,0,0,0,0,"New Agamand Plague Tank Bunny - On Spellhit 'Mission: Plague This!: Orehammer's Precision Bombs Dummy' - Quest Credit 'Mission: Plague This!'");
diff --git a/sql/updates/world/2015_02_10_05_world.sql b/sql/updates/world/2015_02_10_05_world.sql
new file mode 100644
index 00000000000..20c36c24585
--- /dev/null
+++ b/sql/updates/world/2015_02_10_05_world.sql
@@ -0,0 +1,911 @@
+-- Pathing for Entry: 25979 'TDB FORMAT'
+SET @NPC := 107300;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3289.213,`position_y`=5620.369,`position_z`=51.0953 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3289.213,5620.369,51.0953,0,0,0,0,100,0),
+(@PATH,2,3289.156,5612.807,51.6523,0,0,0,0,100,0),
+(@PATH,3,3285.626,5645.205,51.53279,0,0,0,0,100,0),
+(@PATH,4,3283.541,5652.846,52.70237,0,0,0,0,100,0),
+(@PATH,5,3280.611,5683.929,54.8549,0,0,0,0,100,0),
+(@PATH,6,3303.37,5707.606,60.20351,0,0,0,0,100,0),
+(@PATH,7,3282.027,5687.42,56.04992,0,0,0,0,100,0),
+(@PATH,8,3279.962,5672.618,53.23326,0,0,0,0,100,0),
+(@PATH,9,3284.723,5649.133,52.33985,0,0,0,0,100,0);
+-- 0x1C09144760195EC000000C0000579A79 .go 3289.213 5620.369 51.0953
+-- Inquisitor Salrand SAI
+SET @ENTRY := 25584;
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0 AND `id`=6;
+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,6,0,1,0,100,0,5000,5000,10000,10000,11,45777,0,0,0,0,0,10,119586,25594,0,0,0,0,0,"Inquisitor Salrand - Out of Combat - Cast 'Salrand's Beam'");
+
+-- Pathing for Entry: 25217 'TDB FORMAT'
+SET @NPC := 122872;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=4113.013,`position_y`=6276.871,`position_z`=25.68058 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,4113.013,6276.871,25.68058,0,0,0,0,100,0),
+(@PATH,2,4090.676,6280.604,27.56935,0,0,0,0,100,0),
+(@PATH,3,4074.31,6276.669,26.26191,0,0,0,0,100,0),
+(@PATH,4,4063.338,6284.883,23.54415,0,0,0,0,100,0),
+(@PATH,5,4060.495,6308.033,24.63371,0,0,0,0,100,0),
+(@PATH,6,4064.796,6325.54,25.33357,0,0,0,0,100,0),
+(@PATH,7,4062.167,6349.621,24.96839,0,0,0,0,100,0),
+(@PATH,8,4055.423,6363.151,27.49203,0,0,0,0,100,0),
+(@PATH,9,4061.251,6351.451,25.36894,0,0,0,0,100,0),
+(@PATH,10,4064.368,6335.375,25.38478,0,0,0,0,100,0),
+(@PATH,11,4061.08,6310.811,24.90634,0,0,0,0,100,0),
+(@PATH,12,4059.284,6298.654,24.53846,0,0,0,0,100,0),
+(@PATH,13,4069.346,6279.003,24.92667,0,0,0,0,100,0),
+(@PATH,14,4084.886,6280.17,27.70065,0,0,0,0,100,0),
+(@PATH,15,4107.833,6280.248,25.45559,0,0,0,0,100,0);
+-- 0x1C0914476018A04000000C000057EEC0 .go 4113.013 6276.871 25.68058
+
+-- Pathing for Entry: 25611 'TDB FORMAT'
+SET @NPC := 57031;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=2797.154,`position_y`=6620.249,`position_z`=48.24942 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,2797.154,6620.249,48.24942,0,0,0,0,100,0),
+(@PATH,2,2807.472,6623.047,46.9419,0,0,0,0,100,0),
+(@PATH,3,2822.777,6620.003,48.07745,0,0,0,0,100,0),
+(@PATH,4,2828.091,6608.199,49.87174,0,0,0,0,100,0),
+(@PATH,5,2829.904,6600.112,50.43536,0,0,0,0,100,0),
+(@PATH,6,2825.405,6583.044,51.32146,0,0,0,0,100,0),
+(@PATH,7,2812.032,6576.637,50.3959,0,0,0,0,100,0),
+(@PATH,8,2808.558,6575.663,49.55042,0,0,0,0,100,0),
+(@PATH,9,2791.914,6578.114,49.39709,0,0,0,0,100,0),
+(@PATH,10,2790.871,6579.394,49.35609,0,0,0,0,100,0),
+(@PATH,11,2793.273,6598.499,49.21821,0,0,0,0,100,0),
+(@PATH,12,2797.287,6620.314,48.24408,0,0,0,0,100,0);
+-- 0x1C091447601902C000000C0000588B21 .go 2797.154 6620.249 48.24942
+
+-- Pathing for Entry: 25611 'TDB FORMAT'
+SET @NPC := 97489;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=2755.648,`position_y`=6516.167,`position_z`=52.22083 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,2755.648,6516.167,52.22083,0,0,0,0,100,0),
+(@PATH,2,2739.121,6534.617,51.25744,0,0,0,0,100,0),
+(@PATH,3,2736.37,6540.505,50.52654,0,0,0,0,100,0),
+(@PATH,4,2736.999,6568.931,49.45178,0,0,0,0,100,0),
+(@PATH,5,2745.165,6582.929,49.87815,0,0,0,0,100,0),
+(@PATH,6,2749.685,6588.33,49.43536,0,0,0,0,100,0),
+(@PATH,7,2764.539,6590.529,49.07096,0,0,0,0,100,0),
+(@PATH,8,2783.451,6578.873,49.38116,0,0,0,0,100,0),
+(@PATH,9,2790.408,6542.078,51.47867,0,0,0,0,100,0),
+(@PATH,10,2781.756,6526.21,53.26818,0,0,0,0,100,0),
+(@PATH,11,2759.35,6514.721,52.89858,0,0,0,0,100,0);
+-- 0x1C091447601902C000000C0001588AE6 .go 2755.648 6516.167 52.22083
+
+-- Pathing for Entry: 25611 'TDB FORMAT'
+SET @NPC := 97486;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=2959.18,`position_y`=6518.749,`position_z`=72.95694 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,2959.18,6518.749,72.95694,0,0,0,0,100,0),
+(@PATH,2,2943.816,6531.531,70.15851,0,0,0,0,100,0),
+(@PATH,3,2922.839,6548.202,66.36589,0,0,0,0,100,0),
+(@PATH,4,2905.143,6556.469,64.68446,0,0,0,0,100,0),
+(@PATH,5,2886.449,6562.177,61.95524,0,0,0,0,100,0),
+(@PATH,6,2870.039,6568.242,58.85592,0,0,0,0,100,0),
+(@PATH,7,2849.421,6573.922,54.75926,0,0,0,0,100,0),
+(@PATH,8,2864.578,6570.402,57.7508,0,0,0,0,100,0),
+(@PATH,9,2880.555,6564.39,60.65393,0,0,0,0,100,0),
+(@PATH,10,2900.065,6558.482,64.16826,0,0,0,0,100,0),
+(@PATH,11,2916.618,6552.232,65.66638,0,0,0,0,100,0),
+(@PATH,12,2939.966,6534.6,69.45979,0,0,0,0,100,0),
+(@PATH,13,2950.899,6526.294,71.31409,0,0,0,0,100,0),
+(@PATH,14,2978.666,6499.601,75.67303,0,0,0,0,100,0),
+(@PATH,15,2959.18,6518.749,72.95694,0,0,0,0,100,0);
+-- 0x1C091447601902C000000C00005893B1 .go 2959.18 6518.749 72.95694
+
+-- Pathing for Entry: 25611 'TDB FORMAT'
+SET @NPC := 97472;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3132.141,`position_y`=6364.85,`position_z`=87.00642 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3132.141,6364.85,87.00642,0,0,0,0,100,0),
+(@PATH,2,3145.254,6377.429,86.04013,0,0,0,0,100,0),
+(@PATH,3,3150.995,6384.529,85.66245,0,0,0,0,100,0),
+(@PATH,4,3150.954,6413.424,86.59067,0,0,0,0,100,0),
+(@PATH,5,3148.383,6418.564,87.16897,0,0,0,0,100,0),
+(@PATH,6,3127.888,6445.25,85.42545,0,0,0,0,100,0),
+(@PATH,7,3125.299,6448.726,84.63122,0,0,0,0,100,0),
+(@PATH,8,3098.482,6453.096,86.2816,0,0,0,0,100,0),
+(@PATH,9,3092.813,6430.465,86.18443,0,0,0,0,100,0),
+(@PATH,10,3092.439,6429.254,86.16457,0,0,0,0,100,0),
+(@PATH,11,3090.803,6416.944,86.47922,0,0,0,0,100,0),
+(@PATH,12,3080.703,6420.038,86.92494,0,0,0,0,100,0),
+(@PATH,13,3066.926,6403.042,89.00624,0,0,0,0,100,0),
+(@PATH,14,3071.34,6388.575,89.95999,0,0,0,0,100,0),
+(@PATH,15,3071.793,6387.598,89.86023,0,0,0,0,100,0),
+(@PATH,16,3092.656,6366.145,89.73042,0,0,0,0,100,0),
+(@PATH,17,3109.781,6356.525,88.38365,0,0,0,0,100,0),
+(@PATH,18,3114.204,6357.174,87.74312,0,0,0,0,100,0),
+(@PATH,19,3132.181,6364.944,87.00461,0,0,0,0,100,0);
+-- 0x1C091447601902C000000A000058AB81 .go 3132.141 6364.85 87.00642
+
+-- Pathing for Entry: 25475 'TDB FORMAT'
+SET @NPC := 107800;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=2814.188,`position_y`=6720.133,`position_z`=9.794792 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,2814.188,6720.133,9.794792,0,0,0,0,100,0),
+(@PATH,2,2810.317,6723.547,9.082146,0,0,0,0,100,0);
+-- 0x1C0914476018E0C000000C00005660EE .go 2814.188 6720.133 9.794792
+
+-- Pathing for Entry: 25496 'TDB FORMAT'
+SET @NPC := 110300;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3067.602,`position_y`=6705.609,`position_z`=6.230121 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3067.602,6705.609,6.230121,0,0,0,0,100,0),
+(@PATH,2,3051.766,6718.588,6.615577,0,0,0,0,100,0),
+(@PATH,3,3024.569,6720.975,9.706598,0,0,0,0,100,0),
+(@PATH,4,3031.904,6726.806,7.207738,0,0,0,0,100,0),
+(@PATH,5,3033.154,6727.66,6.58389,0,0,0,0,100,0),
+(@PATH,6,3068.976,6704.811,5.953619,0,0,0,0,100,0),
+(@PATH,7,3095.539,6680.229,6.846659,0,0,0,0,100,0),
+(@PATH,8,3095.83,6662.607,9.923321,0,0,0,0,100,0),
+(@PATH,9,3099.785,6674.892,7.75151,0,0,0,0,100,0),
+(@PATH,10,3090.089,6685.671,6.213068,0,0,0,0,100,0),
+(@PATH,11,3067.523,6705.942,6.221252,0,0,0,0,100,0);
+-- 0x1C0914476018E60000000C000058AEB8 .go 3067.602 6705.609 6.230121
+
+UPDATE `creature` SET `spawndist`=0, `MovementType`=0 WHERE `id` IN (25244);
+UPDATE `creature` SET `spawndist`=0, `MovementType`=0 WHERE `guid`=57067;
+
+-- Pathing for Entry: 25496 'TDB FORMAT'
+SET @NPC := 57066;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=2431.173,`position_y`=6827.691,`position_z`=4.434509 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,2431.173,6827.691,4.434509,0,0,0,0,100,0),
+(@PATH,2,2417.92,6818.268,3.808835,0,0,0,0,100,0),
+(@PATH,3,2401.83,6806.687,1.444491,0,0,0,0,100,0),
+(@PATH,4,2397.053,6803.022,1.261812,0,0,0,0,100,0),
+(@PATH,5,2415.603,6771.807,2.460288,0,0,0,0,100,0),
+(@PATH,6,2444.461,6781.449,6.446399,0,0,0,0,100,0),
+(@PATH,7,2448.987,6792.239,6.01413,0,0,0,0,100,0),
+(@PATH,8,2466.415,6808.424,4.947993,0,0,0,0,100,0),
+(@PATH,9,2479.129,6823.808,2.68948,0,0,0,0,100,0),
+(@PATH,10,2480.822,6831.567,1.405943,0,0,0,0,100,0),
+(@PATH,11,2481.074,6846.526,1.077314,0,0,0,0,100,0),
+(@PATH,12,2453.165,6857.935,1.077329,0,0,0,0,100,0),
+(@PATH,13,2438.796,6843.509,1.671256,0,0,0,0,100,0);
+-- 0x1C0914476018E60000000A0000586C4C .go 2431.173 6827.691 4.434509
+
+-- Pathing for Entry: 25496 'TDB FORMAT'
+SET @NPC := 57059;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=2414.351,`position_y`=6738.811,`position_z`=2.7648 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,2414.351,6738.811,2.7648,0,0,0,0,100,0),
+(@PATH,2,2411.604,6704.709,6.068311,0,0,0,0,100,0),
+(@PATH,3,2411.347,6702.018,6.760894,0,0,0,0,100,0),
+(@PATH,4,2452.357,6721.351,6.010249,0,0,0,0,100,0),
+(@PATH,5,2466.691,6738.082,6.927616,0,0,0,0,100,0),
+(@PATH,6,2495.109,6765.589,6.517776,0,0,0,0,100,0),
+(@PATH,7,2513.06,6790.916,4.482207,0,0,0,0,100,0),
+(@PATH,8,2523.949,6806.354,1.703682,0,0,0,0,100,0),
+(@PATH,9,2532.222,6817.983,1.145756,0,0,0,0,100,0),
+(@PATH,10,2546.355,6838.362,1.049538,0,0,0,0,100,0),
+(@PATH,11,2548.539,6846.931,0.8498411,0,0,0,0,100,0),
+(@PATH,12,2506.485,6784.912,5.38059,0,0,0,0,100,0),
+(@PATH,13,2483.945,6763.865,6.803366,0,0,0,0,100,0),
+(@PATH,14,2480.173,6760.685,6.7745,0,0,0,0,100,0),
+(@PATH,15,2419.531,6764.058,3.010518,0,0,0,0,100,0),
+(@PATH,16,2414.283,6738.649,2.879114,0,0,0,0,100,0);
+-- 0x1C0914476018E60000000C0000587988 .go 2414.351 6738.811 2.7648
+
+DELETE FROM `creature_addon` WHERE `guid` IN (110289,57070,57063, 57065, 57067,57064,57062,57068,57060,57058,57057, 57056,57061,110291,110301,110290,110285,57072);
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(57063, 0, 0, 0, 0, 69, ''),
+(57065, 0, 0, 0, 0, 234, ''),
+(57067, 0, 0, 0, 0, 234, ''),
+(57064, 0, 0, 0, 0, 234, ''),
+(57062, 0, 0, 0, 0, 69, ''),
+(57068, 0, 0, 0, 0, 234, ''),
+(57060, 0, 0, 0, 0, 234, ''),
+(57058, 0, 0, 0, 0, 234, ''),
+(57057, 0, 0, 0, 0, 234, ''),
+(57056, 0, 0, 0, 0, 234, ''),
+(57061, 0, 0, 0, 0, 27, ''),
+(110291, 0, 0, 0, 0, 27, ''),
+(110301, 0, 0, 0, 0, 69, ''),
+(110290, 0, 0, 0, 0, 27, ''),
+(110285, 0, 0, 0, 0, 27, ''),
+(57072, 0, 0, 0, 0, 69, ''),
+(110289, 0, 0, 0, 0, 27, ''),
+(57070, 0, 0, 0, 0, 27, '');
+
+DELETE FROM `creature_addon` WHERE `guid` IN (112665,112663,112662,112660,112659,112666,112679,112673,112678,112671,112667,112672,56752,112741,56327,112661,112658,56325, 112668, 112670, 112669, 56322);
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(56325, 0, 0, 0, 0, 4, ''),
+(112668, 0, 0, 0, 0, 4, ''),
+(112670, 0, 0, 0, 0, 4, ''),
+(112669, 0, 0, 0, 0, 4, ''),
+(56322, 0, 0, 0, 0, 4, ''),
+(112661, 0, 0, 0, 0, 234, ''),
+(112658, 0, 0, 0, 0, 234, ''),
+(56327, 0, 0, 0, 0, 234, ''),
+(112741, 0, 0, 0, 0, 27, ''),
+(56752, 0, 0, 0, 0, 27, ''),
+(112672, 0, 0, 1, 0, 0, ''),
+--
+(112678, 0, 0, 0, 0, 4, ''),
+(112671, 0, 0, 0, 0, 4, ''),
+(112667, 0, 0, 0, 0, 4, ''),
+--
+(112673, 0, 0, 1, 0, 0, ''),
+(112679, 0, 0, 1, 0, 0, ''),
+(112666, 0, 0, 0, 0, 234, ''),
+(112665, 0, 0, 0, 0, 234, ''),
+(112659, 0, 0, 0, 0, 234, ''),
+(112660, 0, 0, 0, 0, 234, ''),
+(112663, 0, 0, 0, 0, 234, ''),
+(112662, 0, 0, 0, 0, 234, '');
+
+-- Pathing for Entry: 25522 'TDB FORMAT'
+SET @NPC := 112755;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1863.071,`position_y`=5721.263,`position_z`=0.5444731 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1863.071,5721.263,0.5444731,0,0,0,0,100,0),
+(@PATH,2,1871.592,5727.264,0.5210824,0,0,0,0,100,0),
+(@PATH,3,1865.804,5766.675,0.8066133,0,0,0,0,100,0),
+(@PATH,4,1861.19,5769.085,0.636929,0,0,0,0,100,0),
+(@PATH,5,1853.291,5777.555,0.8031902,0,0,0,0,100,0),
+(@PATH,6,1838.134,5783.222,0.6275423,0,0,0,0,100,0),
+(@PATH,7,1838.138,5783.196,0.5076787,0,0,0,0,100,0),
+(@PATH,8,1838.279,5783.279,0.609849,0,0,0,0,100,0),
+(@PATH,9,1853.601,5777.178,0.8158144,0,0,0,0,100,0),
+(@PATH,10,1872.918,5754.421,0.8373558,0,0,0,0,100,0),
+(@PATH,11,1873.445,5750.554,0.7919877,0,0,0,0,100,0),
+(@PATH,12,1857.673,5717.76,0.05196175,0,0,0,0,100,0),
+(@PATH,13,1863.071,5721.263,0.5444731,0,0,0,0,100,0),
+(@PATH,14,1871.617,5727.281,0.5215871,0,0,0,0,100,0),
+(@PATH,15,1865.804,5766.67,0.806583,0,0,0,0,100,0),
+(@PATH,16,1861.121,5769.259,0.6014363,0,0,0,0,100,0),
+(@PATH,17,1853.309,5777.537,0.8029698,0,0,0,0,100,0),
+(@PATH,18,1838.146,5783.217,0.6276386,0,0,0,0,100,0),
+(@PATH,19,1838.138,5783.196,0.5076787,0,0,0,0,100,0),
+(@PATH,20,1838.511,5783.279,0.6102685,0,0,0,0,100,0),
+(@PATH,21,1853.596,5777.181,0.8157681,0,0,0,0,100,0),
+(@PATH,22,1872.897,5754.442,0.837615,0,0,0,0,100,0),
+(@PATH,23,1873.44,5750.595,0.7921225,0,0,0,0,100,0),
+(@PATH,24,1857.677,5717.557,0.05224757,0,0,0,0,100,0),
+(@PATH,25,1863.071,5721.263,0.5444731,0,0,0,0,100,0),
+(@PATH,26,1871.631,5727.291,0.5218816,0,0,0,0,100,0),
+(@PATH,27,1865.809,5766.73,0.8069472,0,0,0,0,100,0),
+(@PATH,28,1861.136,5769.112,0.6354876,0,0,0,0,100,0);
+-- 0x1C0914476018EC8000000B0000D90C39 .go 1863.071 5721.263 0.5444731
+
+-- Pathing for Entry: 25522 'TDB FORMAT'
+SET @NPC := 112671;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1853.63,`position_y`=5846.966,`position_z`=2.740726 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1853.63,5846.966,2.740726,0,0,0,0,100,0),
+(@PATH,2,1874.7,5836.919,4.813838,0,0,0,0,100,0),
+(@PATH,3,1876.592,5812.892,4.801723,0,0,0,0,100,0),
+(@PATH,4,1872.844,5797.556,3.118221,0,0,0,0,100,0),
+(@PATH,5,1875.815,5806.438,3.974422,0,0,0,0,100,0),
+(@PATH,6,1876.563,5816.451,5.334268,0,0,0,0,100,0),
+(@PATH,7,1877.032,5828.594,4.914,0,0,0,0,100,0),
+(@PATH,8,1862.273,5842.986,4.152772,0,0,0,0,100,0),
+(@PATH,9,1853.646,5846.958,2.74155,0,0,0,0,100,0),
+(@PATH,10,1849.364,5848.809,2.105818,0,0,0,0,100,0);
+-- 0x1C0914476018EC8000000B0000D90AF7 .go 1853.63 5846.966 2.740726
+
+
+-- Pathing for Entry: 25522 'TDB FORMAT'
+SET @NPC := 112766;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1821.645,`position_y`=5874.956,`position_z`=2.705887 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1821.645,5874.956,2.705887,0,0,0,0,100,0),
+(@PATH,2,1824.808,5874.413,2.800447,0,0,0,0,100,0),
+(@PATH,3,1827.45,5854.379,1.631521,0,0,0,0,100,0),
+(@PATH,4,1822.537,5840.488,1.119883,0,0,0,0,100,0),
+(@PATH,5,1819.79,5826.655,0.8782115,0,0,0,0,100,0),
+(@PATH,6,1816.417,5813.835,0.7204496,0,0,0,0,100,0),
+(@PATH,7,1816.219,5813.744,0.5043496,0,0,0,0,100,0),
+(@PATH,8,1816.581,5813.962,0.5907121,0,0,0,0,100,0),
+(@PATH,9,1820.05,5826.836,0.8006111,0,0,0,0,100,0),
+(@PATH,10,1828.175,5856.271,1.831071,0,0,0,0,100,0),
+(@PATH,11,1828.932,5859.332,2.491501,0,0,0,0,100,0),
+(@PATH,12,1816.584,5895.463,0.9250998,0,0,0,0,100,0),
+(@PATH,13,1821.645,5874.956,2.705887,0,0,0,0,100,0);
+-- 0x1C0914476018EC8000000B000159120F .go 1821.645 5874.956 2.705887
+
+UPDATE `creature` SET `spawndist`=10 WHERE `guid` IN (112682, 112762);
+
+-- Pathing for Entry: 25522 'TDB FORMAT'
+SET @NPC := 112761;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1869.091,`position_y`=5953.953,`position_z`=6.38201 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1869.091,5953.953,6.38201,0,0,0,0,100,0),
+(@PATH,2,1879.48,5943.066,7.114405,0,0,0,0,100,0),
+(@PATH,3,1905.42,5926.519,12.31866,0,0,0,0,100,0),
+(@PATH,4,1907.966,5924.864,12.90823,0,0,0,0,100,0),
+(@PATH,5,1907.694,5924.906,12.73229,0,0,0,0,100,0),
+(@PATH,6,1888.924,5936.15,8.416003,0,0,0,0,100,0),
+(@PATH,7,1885.86,5938.519,7.107553,0,0,0,0,100,0),
+(@PATH,8,1879.301,5943.302,7.06257,0,0,0,0,100,0),
+(@PATH,9,1863.642,5963.351,5.116355,0,0,0,0,100,0),
+(@PATH,10,1848.166,5986.37,2.711081,0,0,0,0,100,0),
+(@PATH,11,1856.702,5973.741,4.321182,0,0,0,0,100,0),
+(@PATH,12,1868.008,5955.694,6.300377,0,0,0,0,100,0),
+(@PATH,13,1869.092,5953.951,6.382379,0,0,0,0,100,0);
+-- 0x1C0914476018EC8000000B00005916B8 .go 1869.091 5953.953 6.38201
+
+-- Pathing for Entry: 25522 'TDB FORMAT'
+SET @NPC := 112764;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1949.82,`position_y`=5779.809,`position_z`=10.0687 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,1949.82,5779.809,10.0687,0,0,0,0,100,0),
+(@PATH,2,1949.888,5780.269,10.04539,0,0,0,0,100,0),
+(@PATH,3,1959.407,5805.928,11.8103,0,0,0,0,100,0),
+(@PATH,4,1955.581,5821.07,13.57725,0,0,0,0,100,0),
+(@PATH,5,1949.136,5832.18,12.86915,0,0,0,0,100,0),
+(@PATH,6,1947.718,5833.966,12.66496,0,0,0,0,100,0),
+(@PATH,7,1944.919,5838.312,12.17096,0,0,0,0,100,0),
+(@PATH,8,1945.014,5838.031,12.05043,0,0,0,0,100,0),
+(@PATH,9,1945.333,5838.103,12.31259,0,0,0,0,100,0),
+(@PATH,10,1950.632,5829.593,14.2812,0,0,0,0,100,0),
+(@PATH,11,1959.209,5813.076,12.95494,0,0,0,0,100,0),
+(@PATH,12,1958.309,5800.833,11.20766,0,0,0,0,100,0),
+(@PATH,13,1953.69,5789.138,10.24553,0,0,0,0,100,0),
+(@PATH,14,1952.009,5763.52,9.059128,0,0,0,0,100,0),
+(@PATH,15,1949.82,5779.809,10.0687,0,0,0,0,100,0);
+-- 0x1C0914476018EC8000000B0001D91590 .go 1949.82 5779.809 10.0687
+
+-- Pathing for Entry: 25464 'TDB FORMAT'
+SET @NPC := 132708;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=2822.261,`position_y`=5519.366,`position_z`=53.74162 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,2822.261,5519.366,53.74162,0,0,0,0,100,0),
+(@PATH,2,2823.339,5522.105,53.3661,0,0,0,0,100,0),
+(@PATH,3,2816.756,5522.176,52.7483,0,0,0,0,100,0),
+(@PATH,4,2815.625,5523.958,52.19855,0,0,0,0,100,0),
+(@PATH,5,2815.16,5520.309,52.78535,0,0,0,0,100,0),
+(@PATH,6,2820.333,5521.584,53.39899,0,0,0,0,100,0),
+(@PATH,7,2824.778,5510.136,55.34394,0,0,0,0,100,0),
+(@PATH,8,2815.103,5518.417,53.53315,0,0,0,0,100,0),
+(@PATH,9,2819.598,5522.154,52.91368,0,0,0,0,100,0),
+(@PATH,10,2822.082,5521.53,53.60404,0,0,0,0,100,0),
+(@PATH,11,2818.371,5523.108,52.66743,0,0,0,0,100,0),
+(@PATH,12,2819.409,5516.978,53.96194,0,0,0,0,100,0),
+(@PATH,13,2823.384,5522.104,53.37409,0,0,0,0,100,0),
+(@PATH,14,2825.392,5523.739,52.87629,0,0,0,0,100,0),
+(@PATH,15,2815.691,5521.912,52.45197,0,0,0,0,100,0),
+(@PATH,16,2814.33,5518.599,52.92414,0,0,0,0,100,0),
+(@PATH,17,2815.653,5522.167,52.41706,0,0,0,0,100,0),
+(@PATH,18,2821.683,5522.525,53.24909,0,0,0,0,100,0),
+(@PATH,19,2822.436,5520.497,53.40412,0,0,0,0,100,0),
+(@PATH,20,2822.451,5523.602,53.0274,0,0,0,0,100,0),
+(@PATH,21,2815.243,5522.016,52.44831,0,0,0,0,100,0),
+(@PATH,22,2818.638,5521.292,53.17999,0,0,0,0,100,0),
+(@PATH,23,2822.181,5517.789,54.00129,0,0,0,0,100,0),
+(@PATH,24,2822.296,5519.241,53.7021,0,0,0,0,100,0),
+(@PATH,25,2816.71,5523.35,52.70033,0,0,0,0,100,0),
+(@PATH,26,2819.778,5520.425,53.55138,0,0,0,0,100,0),
+(@PATH,27,2824.004,5522.665,53.19855,0,0,0,0,100,0),
+(@PATH,28,2822.11,5517.678,54.01472,0,0,0,0,100,0),
+(@PATH,29,2823.61,5518.823,53.80622,0,0,0,0,100,0),
+(@PATH,30,2824.499,5512.02,55.12739,0,0,0,0,100,0),
+(@PATH,31,2824.968,5518.775,54.21228,0,0,0,0,100,0),
+(@PATH,32,2822.294,5517.814,53.99824,0,0,0,0,100,0),
+(@PATH,33,2818.368,5520.58,53.24421,0,0,0,0,100,0),
+(@PATH,34,2822.198,5523.147,52.89338,0,0,0,0,100,0),
+(@PATH,35,2819.597,5521.721,53.0246,0,0,0,0,100,0),
+(@PATH,36,2822.367,5519.021,53.98109,0,0,0,0,100,0),
+(@PATH,37,2826.401,5522.089,53.23542,0,0,0,0,100,0),
+(@PATH,38,2816.553,5521.619,52.96187,0,0,0,0,100,0),
+(@PATH,39,2825.091,5521.14,53.50007,0,0,0,0,100,0),
+(@PATH,40,2822.17,5524.09,52.63996,0,0,0,0,100,0),
+(@PATH,41,2823.85,5520.973,53.41511,0,0,0,0,100,0),
+(@PATH,42,2823.884,5524.132,52.88813,0,0,0,0,100,0),
+(@PATH,43,2823.595,5521.119,53.4554,0,0,0,0,100,0),
+(@PATH,44,2822.149,5521.591,53.26643,0,0,0,0,100,0),
+(@PATH,45,2825.091,5523.302,52.98078,0,0,0,0,100,0);
+-- 0x1C0914476018DE0000000B00005919F4 .go 2822.261 5519.366 53.74162
+
+-- Pathing for Entry: 25719 'TDB FORMAT'
+SET @NPC := 122683;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3856.668,`position_y`=6592.438,`position_z`=165.8591 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3856.668,6592.438,165.8591,0,0,0,0,100,0),
+(@PATH,2,3845.146,6580.313,167.2839,0,0,0,0,100,0),
+(@PATH,3,3819.979,6552.679,171.2212,0,0,0,0,100,0),
+(@PATH,4,3834.785,6568.925,168.5641,0,0,0,0,100,0),
+(@PATH,5,3856.229,6592.091,166.1844,0,0,0,0,100,0),
+(@PATH,6,3856.884,6592.668,166.1273,0,0,0,0,100,0),
+(@PATH,7,3856.668,6592.438,165.8591,0,0,0,0,100,0);
+-- 0x1C09144760191DC000000C00005923F6 .go 3856.668 6592.438 165.8591
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=122683;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(122683, 122683, 0, 0, 2, 0, 0),
+(122683, 122668, 4, 0, 2, 0, 0);
+
+-- Pathing for Entry: 25719 'TDB FORMAT'
+SET @NPC := 122679;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3877.737,`position_y`=6617.055,`position_z`=165.4812 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3877.737,6617.055,165.4812,0,0,0,0,100,0),
+(@PATH,2,3876.591,6615.319,165.2154,0,0,0,0,100,0),
+(@PATH,3,3876.513,6615.291,165.0491,0,0,0,0,100,0),
+(@PATH,4,3881.765,6622.608,165.9126,0,0,0,0,100,0),
+(@PATH,5,3887.004,6630.904,166.6272,0,0,0,0,100,0),
+(@PATH,6,3890.648,6642.739,166.3096,0,0,0,0,100,0),
+(@PATH,7,3895.043,6655.15,167.9105,0,0,0,0,100,0),
+(@PATH,8,3892.582,6650.448,166.6568,0,0,0,0,100,0),
+(@PATH,9,3890.725,6641.271,166.7931,0,0,0,0,100,0),
+(@PATH,10,3886.259,6630.026,166.4984,0,0,0,0,100,0),
+(@PATH,11,3877.767,6616.941,165.558,0,0,0,0,100,0),
+(@PATH,12,3876.568,6615.188,165.1826,0,0,0,0,100,0),
+(@PATH,13,3876.513,6615.291,165.0491,0,0,0,0,100,0),
+(@PATH,14,3881.689,6622.583,165.9073,0,0,0,0,100,0),
+(@PATH,15,3886.83,6631.109,166.6665,0,0,0,0,100,0),
+(@PATH,16,3890.699,6642.743,166.3585,0,0,0,0,100,0);
+-- 0x1C09144760191DC000000C00005923E0 .go 3877.737 6617.055 165.4812
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=122679;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(122679, 122679, 0, 0, 2, 0, 0),
+(122679, 122664, 4, 0, 2, 0, 0);
+
+-- Pathing for Entry: 25719 'TDB FORMAT'
+SET @NPC := 122682;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3802.633,`position_y`=6610.85,`position_z`=160.9254 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3802.633,6610.85,160.9254,0,0,0,0,100,0),
+(@PATH,2,3814.249,6608.161,162.6728,0,0,0,0,100,0),
+(@PATH,3,3817.92,6607.578,162.962,0,0,0,0,100,0),
+(@PATH,4,3817.757,6607.444,162.8091,0,0,0,0,100,0),
+(@PATH,5,3809.16,6609.176,161.7681,0,0,0,0,100,0),
+(@PATH,6,3794.561,6613.893,159.8145,0,0,0,0,100,0),
+(@PATH,7,3787.977,6622.479,157.1806,0,0,0,0,100,0),
+(@PATH,8,3777.748,6635.708,153.5259,0,0,0,0,100,0);
+-- 0x1C09144760191DC000000C000059215B .go 3802.633 6610.85 160.9254
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=122682;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(122682, 122682, 0, 0, 2, 0, 0),
+(122682, 122667, 4, 0, 2, 0, 0);
+
+-- Pathing for Entry: 25719 'TDB FORMAT'
+SET @NPC := 122671;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3876.684,`position_y`=6542.924,`position_z`=175.354 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3876.684,6542.924,175.354,0,0,0,0,100,0),
+(@PATH,2,3865.112,6532.595,176.6299,0,0,0,0,100,0),
+(@PATH,3,3868.344,6534.336,176.2356,0,0,0,0,100,0),
+(@PATH,4,3880.712,6554.647,173.5269,0,0,0,0,100,0),
+(@PATH,5,3880.566,6581.678,168.6076,0,0,0,0,100,0),
+(@PATH,6,3881.85,6561.938,171.8416,0,0,0,0,100,0),
+(@PATH,7,3876.725,6542.939,175.2055,0,0,0,0,100,0),
+(@PATH,8,3864.951,6532.556,176.746,0,0,0,0,100,0),
+(@PATH,9,3868.344,6534.336,176.2356,0,0,0,0,100,0);
+-- 0x1C09144760191DC000000C0000592014 .go 3876.684 6542.924 175.354
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=122671;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(122671, 122671, 0, 0, 2, 0, 0),
+(122671, 122660, 4, 0, 2, 0, 0);
+
+-- Pathing for Entry: 25719 'TDB FORMAT'
+SET @NPC := 122681;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3856.668,`position_y`=6592.438,`position_z`=165.8591 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3856.668,6592.438,165.8591,0,0,0,0,100,0),
+(@PATH,2,3845.146,6580.313,167.2839,0,0,0,0,100,0),
+(@PATH,3,3819.979,6552.679,171.2212,0,0,0,0,100,0),
+(@PATH,4,3834.785,6568.925,168.5641,0,0,0,0,100,0),
+(@PATH,5,3856.229,6592.091,166.1844,0,0,0,0,100,0),
+(@PATH,6,3856.884,6592.668,166.1273,0,0,0,0,100,0),
+(@PATH,7,3856.668,6592.438,165.8591,0,0,0,0,100,0);
+-- 0x1C09144760191DC000000C00005923F6 .go 3856.668 6592.438 165.8591
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=122681;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(122681, 122681, 0, 0, 2, 0, 0),
+(122681, 122666, 4, 0, 2, 0, 0);
+
+UPDATE `creature` SET `spawndist`=15 WHERE `guid`=122549;
+UPDATE `creature` SET `spawndist`=20 WHERE `guid`=122548;
+
+-- Pathing for Entry: 25719 'TDB FORMAT'
+SET @NPC := 122675;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3772.382,`position_y`=6700.643,`position_z`=150.745 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3772.382,6700.643,150.745,0,0,0,0,100,0),
+(@PATH,2,3765.955,6706.445,152.0959,0,0,0,0,100,0),
+(@PATH,3,3760.302,6711.588,152.1358,0,0,0,0,100,0),
+(@PATH,4,3750.747,6726.564,151.7103,0,0,0,0,100,0),
+(@PATH,5,3749.879,6729.181,151.658,0,0,0,0,100,0),
+(@PATH,6,3750.81,6726.225,151.6613,0,0,0,0,100,0),
+(@PATH,7,3771.484,6701.582,151.0565,0,0,0,0,100,0),
+(@PATH,8,3772.745,6700.572,150.9297,0,0,0,0,100,0),
+(@PATH,9,3772.382,6700.643,150.745,0,0,0,0,100,0);
+-- 0x1C09144760191DC000000C0000592493 .go 3772.382 6700.643 150.745
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=122675;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(122675, 122675, 0, 0, 2, 0, 0),
+(122675, 122661, 4, 0, 2, 0, 0);
+
+
+-- Pathing for Entry: 25719 'TDB FORMAT'
+SET @NPC := 122678;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3765.189,`position_y`=6646.188,`position_z`=152.2007 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3765.189,6646.188,152.2007,0,0,0,0,100,0),
+(@PATH,2,3761.339,6649.458,151.591,0,0,0,0,100,0),
+(@PATH,3,3761.412,6649.275,151.5081,0,0,0,0,100,0),
+(@PATH,4,3775.332,6638.132,152.7523,0,0,0,0,100,0),
+(@PATH,5,3784.681,6626.98,155.8878,0,0,0,0,100,0),
+(@PATH,6,3791.935,6616.86,158.9415,0,0,0,0,100,0),
+(@PATH,7,3802.772,6610.692,160.7068,0,0,0,0,100,0),
+(@PATH,8,3814.205,6608.264,162.5391,0,0,0,0,100,0),
+(@PATH,9,3817.96,6607.651,162.9075,0,0,0,0,100,0),
+(@PATH,10,3817.757,6607.444,162.8091,0,0,0,0,100,0),
+(@PATH,11,3809.104,6609.054,161.8425,0,0,0,0,100,0),
+(@PATH,12,3794.503,6613.823,159.8757,0,0,0,0,100,0),
+(@PATH,13,3788.144,6622.311,157.2462,0,0,0,0,100,0),
+(@PATH,14,3777.916,6635.792,153.5504,0,0,0,0,100,0),
+(@PATH,15,3765.363,6646.322,152.2002,0,0,0,0,100,0),
+(@PATH,16,3761.535,6649.459,151.5641,0,0,0,0,100,0),
+(@PATH,17,3761.412,6649.275,151.5081,0,0,0,0,100,0),
+(@PATH,18,3775.165,6638.005,152.7578,0,0,0,0,100,0),
+(@PATH,19,3784.59,6626.891,155.6862,0,0,0,0,100,0);
+-- 0x1C09144760191DC000000C0000592B08 .go 3765.189 6646.188 152.2007
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=122678;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(122678, 122678, 0, 0, 2, 0, 0),
+(122678, 122663, 4, 0, 2, 0, 0);
+
+-- Pathing for Entry: 25719 'TDB FORMAT'
+SET @NPC := 122684;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3726.047,`position_y`=6604.721,`position_z`=171.6309 WHERE `guid` IN (@NPC, 122669);
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3726.047,6604.721,171.6309,0,0,0,0,100,0),
+(@PATH,2,3737.404,6582.727,172.9987,0,0,0,0,100,0),
+(@PATH,3,3752.602,6559.511,175.07,0,0,0,0,100,0),
+(@PATH,4,3757.825,6548.518,176.1503,0,0,0,0,100,0),
+(@PATH,5,3741.299,6576.517,173.8608,0,0,0,0,100,0),
+(@PATH,6,3731.644,6593.12,172.3642,0,0,0,0,100,0),
+(@PATH,7,3725.372,6606.514,171.4347,0,0,0,0,100,0),
+(@PATH,8,3726.047,6604.721,171.6309,0,0,0,0,100,0);
+-- 0x1C09144760191DC000000C0000592BE0 .go 3726.047 6604.721 171.6309
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=122684;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(122684, 122684, 0, 0, 2, 0, 0),
+(122684, 122669, 4, 0, 2, 0, 0);
+
+-- Coldarra Spellweaver SAI
+SET @ENTRY := 25722;
+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,600,5300,11,34447,64,0,0,0,0,2,0,0,0,0,0,0,0,"Coldarra Spellweaver - In Combat - Cast 'Arcane Missiles'"),
+(@ENTRY,0,1,0,1,0,100,0,100,100,45000,45000,11,39550,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coldarra Spellweaver - Out of Combat - Cast 'Arcane Channeling'");
+
+-- Coldarra Spellbinder SAI
+SET @ENTRY := 25719;
+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,3900,5800,11,9672,64,0,0,0,0,2,0,0,0,0,0,0,0,"Coldarra Spellbinder - In Combat - Cast 'Frostbolt'"),
+(@ENTRY,0,1,0,0,0,100,0,1700,13500,172100,172100,11,50583,1,0,0,0,0,1,0,0,0,0,0,0,0,"Coldarra Spellbinder - In Combat - Cast 'Summon Frozen Spheres'"),
+(@ENTRY,0,2,0,1,0,100,0,100,100,45000,45000,11,39550,0,0,0,0,0,1,0,0,0,0,0,0,0,"Coldarra Spellbinder - Out of Combat - Cast 'Arcane Channeling'");
+
+-- Inquisitor Caleras SAI
+SET @ENTRY := 25720;
+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,3400,6200,11,15043,64,0,0,0,0,2,0,0,0,0,0,0,0,"Inquisitor Caleras - In Combat - Cast 'Frostbolt'"),
+(@ENTRY,0,1,0,0,0,100,0,9800,21300,18400,18400,11,32192,1,0,0,0,0,1,0,0,0,0,0,0,0,"Inquisitor Caleras - In Combat - Cast 'Frost Nova'"),
+(@ENTRY,0,2,0,1,0,100,0,100,100,45000,45000,11,39550,0,0,0,0,0,1,0,0,0,0,0,0,0,"Inquisitor Caleras - Out of Combat - Cast 'Arcane Channeling'");
+
+-- Pathing for Entry: 25719 'TDB FORMAT'
+SET @NPC := 122676;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3839.049,`position_y`=6746.131,`position_z`=150.8772 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3839.049,6746.131,150.8772,0,0,0,0,100,0),
+(@PATH,2,3838.777,6746.075,150.6292,0,0,0,0,100,0),
+(@PATH,3,3838.793,6746.344,150.9143,0,0,0,0,100,0),
+(@PATH,4,3826.649,6753.63,150.9941,0,0,0,0,100,0),
+(@PATH,5,3811.169,6750.051,150.4951,0,0,0,0,100,0),
+(@PATH,6,3811.172,6750.112,150.299,0,0,0,0,100,0),
+(@PATH,7,3811.489,6750.411,150.5408,0,0,0,0,100,0),
+(@PATH,8,3826.923,6753.677,150.8951,0,0,0,0,100,0),
+(@PATH,9,3839.046,6746.012,150.8834,0,0,0,0,100,0),
+(@PATH,10,3838.777,6746.075,150.6292,0,0,0,0,100,0),
+(@PATH,11,3838.828,6746.229,150.9149,0,0,0,0,100,0),
+(@PATH,12,3826.723,6753.648,150.7468,0,0,0,0,100,0);
+-- 0x1C09144760191DC000000C00005924AC .go 3839.049 6746.131 150.8772
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=122676;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(122676, 122676, 0, 0, 2, 0, 0),
+(122676, 122662, 4, 0, 2, 0, 0);
+
+-- Pathing for Entry: 25719 'TDB FORMAT'
+SET @NPC := 122680;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3863.127,`position_y`=6753.518,`position_z`=150.5189 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3863.127,6753.518,150.5189,0,0,0,0,100,0),
+(@PATH,2,3860.453,6741.29,150.7381,0,0,0,0,100,0),
+(@PATH,3,3875.973,6736.009,151.0474,0,0,0,0,100,0),
+(@PATH,4,3886.431,6727.403,151.3167,0,0,0,0,100,0),
+(@PATH,5,3886.167,6727.198,151.1895,0,0,0,0,100,0),
+(@PATH,6,3886.265,6727.485,151.3074,0,0,0,0,100,0),
+(@PATH,7,3875.836,6736.28,151.0612,0,0,0,0,100,0),
+(@PATH,8,3860.38,6741.66,150.7448,0,0,0,0,100,0),
+(@PATH,9,3862.974,6753.514,150.6811,0,0,0,0,100,0),
+(@PATH,10,3867.98,6753.716,150.6562,0,0,0,0,100,0);
+-- 0x1C09144760191DC000000C00005924B3 .go 3863.127 6753.518 150.5189
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=122680;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(122680, 122680, 0, 0, 2, 0, 0),
+(122680, 122665, 4, 0, 2, 0, 0);
+
+-- Pathing for Entry: 25719 'TDB FORMAT'
+SET @NPC := 122685;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3908.275,`position_y`=6757.146,`position_z`=150.8441 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3908.275,6757.146,150.8441,0,0,0,0,100,0),
+(@PATH,2,3893.045,6770.693,150.8547,0,0,0,0,100,0),
+(@PATH,3,3880.528,6782.54,150.7091,0,0,0,0,100,0),
+(@PATH,4,3880.478,6782.537,150.6073,0,0,0,0,100,0),
+(@PATH,5,3880.76,6782.527,150.8653,0,0,0,0,100,0),
+(@PATH,6,3893.34,6770.562,150.8441,0,0,0,0,100,0),
+(@PATH,7,3908.603,6756.879,150.896,0,0,0,0,100,0),
+(@PATH,8,3925.911,6721.284,153.766,0,0,0,0,100,0),
+(@PATH,9,3920.531,6713.925,153.515,0,0,0,0,100,0),
+(@PATH,10,3906.757,6706.551,151.9455,0,0,0,0,100,0),
+(@PATH,11,3894.688,6701.577,151.5052,0,0,0,0,100,0),
+(@PATH,12,3894.756,6701.676,151.4043,0,0,0,0,100,0),
+(@PATH,13,3916.371,6709.826,152.6267,0,0,0,0,100,0),
+(@PATH,14,3921.297,6714.496,153.5745,0,0,0,0,100,0),
+(@PATH,15,3929.399,6745.379,151.6542,0,0,0,0,100,0),
+(@PATH,16,3919.581,6752.038,150.9705,0,0,0,0,100,0),
+(@PATH,17,3908.269,6757.149,150.8441,0,0,0,0,100,0),
+(@PATH,18,3893.047,6770.691,150.8547,0,0,0,0,100,0),
+(@PATH,19,3880.51,6782.556,150.7091,0,0,0,0,100,0);
+-- 0x1C09144760191DC000000C00005932EB .go 3908.275 6757.146 150.8441
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=122685;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(122685, 122685, 0, 0, 2, 0, 0),
+(122685, 122670, 4, 0, 2, 0, 0);
+
+UPDATE `creature` SET `spawndist`=20 WHERE `guid`=122550;
+
+UPDATE `creature` SET `spawndist`=15 WHERE `id`=25721;
+
+-- Pathing for Entry: 25717 'TDB FORMAT'
+SET @NPC := 122652;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=4071.958,`position_y`=7059.748,`position_z`=166.7365 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,4071.958,7059.748,166.7365,0,0,0,0,100,0),
+(@PATH,2,4072.932,7060.661,166.5419,0,0,0,0,100,0),
+(@PATH,3,4087.155,7066.582,166.7904,0,0,0,0,100,0),
+(@PATH,4,4086.809,7066.466,166.6568,0,0,0,0,100,0),
+(@PATH,5,4086.776,7066.416,166.7174,0,0,0,0,100,0),
+(@PATH,6,4062.645,7049.889,167.7236,0,0,0,0,100,0),
+(@PATH,7,4054.082,7027.509,166.672,0,0,0,0,100,0),
+(@PATH,8,4059.144,7041.778,167.9961,0,0,0,0,100,0),
+(@PATH,9,4071.981,7059.813,166.7345,0,0,0,0,100,0);
+-- 0x1C09144760191D4000000C00005932C9 .go 4071.958 7059.748 166.7365
+
+-- General Cerulean SAI
+SET @ENTRY := 25716;
+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,10200,13600,10000,12000,11,15499,0,0,0,0,0,2,0,0,0,0,0,0,0,"General Cerulean - In Combat - Cast 'Frost Shock'"),
+(@ENTRY,0,1,0,1,0,100,0,100,100,45000,45000,11,39550,0,0,0,0,0,1,0,0,0,0,0,0,0,"General Cerulean - Out of Combat - Cast 'Arcane Channeling'");
+
+UPDATE `creature` SET `spawndist`=20 WHERE `guid` IN (122547, 122551);
+
+-- Pathing for Entry: 25713 'TDB FORMAT'
+SET @NPC := 122611;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3820.672,`position_y`=7153.959,`position_z`=163.4258 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3820.672,7153.959,163.4258,0,0,0,0,100,0),
+(@PATH,2,3816.873,7173.65,161.3409,0,0,0,0,100,0),
+(@PATH,3,3819.527,7160.829,162.4046,0,0,0,0,100,0),
+(@PATH,4,3821.152,7145.412,164.2622,0,0,0,0,100,0),
+(@PATH,5,3820.075,7133.457,165.5549,0,0,0,0,100,0),
+(@PATH,6,3819.108,7129.334,166.0357,0,0,0,0,100,0),
+(@PATH,7,3819.164,7129.457,165.8505,0,0,0,0,100,0),
+(@PATH,8,3820.722,7140.354,165.1108,0,0,0,0,100,0),
+(@PATH,9,3820.762,7154.072,163.3669,0,0,0,0,100,0),
+(@PATH,10,3816.832,7173.758,161.5131,0,0,0,0,100,0);
+-- 0x1C09144760191C4000000C0000590957 .go 3820.672 7153.959 163.4258
+
+-- Pathing for Entry: 25713 'TDB FORMAT'
+SET @NPC := 122643;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3715.234,`position_y`=7159.224,`position_z`=160.5815 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3715.234,7159.224,160.5815,0,0,0,0,100,0),
+(@PATH,2,3712.465,7168.071,160.3927,0,0,0,0,100,0),
+(@PATH,3,3711.697,7180.112,160.1553,0,0,0,0,100,0),
+(@PATH,4,3712.53,7195.874,160.5102,0,0,0,0,100,0),
+(@PATH,5,3712.202,7195.61,160.2491,0,0,0,0,100,0),
+(@PATH,6,3712.354,7195.505,160.5099,0,0,0,0,100,0),
+(@PATH,7,3711.637,7179.952,160.1052,0,0,0,0,100,0),
+(@PATH,8,3712.478,7167.976,160.2884,0,0,0,0,100,0),
+(@PATH,9,3715.501,7158.848,160.5296,0,0,0,0,100,0),
+(@PATH,10,3715.303,7158.94,160.4226,0,0,0,0,100,0),
+(@PATH,11,3715.255,7159.067,160.5904,0,0,0,0,100,0),
+(@PATH,12,3712.359,7168.119,160.3639,0,0,0,0,100,0),
+(@PATH,13,3711.62,7180.215,160.1398,0,0,0,0,100,0),
+(@PATH,14,3712.332,7195.925,160.5264,0,0,0,0,100,0);
+-- 0x1C09144760191C4000000C0000592DB7 .go 3715.234 7159.224 160.5815
+
+-- Warbringer Goredrak SAI
+SET @ENTRY := 25712;
+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,200,16900,21200,11,50534,0,0,0,0,0,2,0,0,0,0,0,0,0,"Warbringer Goredrak - In Combat - Cast 'Power Sap'"),
+(@ENTRY,0,1,0,0,0,100,0,5900,6700,16800,21200,11,50545,1,0,0,0,0,2,0,0,0,0,0,0,0,"Warbringer Goredrak - In Combat - Cast 'Arcane Blast'"),
+(@ENTRY,0,2,0,1,0,100,0,100,100,45000,45000,11,39550,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warbringer Goredrak - Out of Combat - Cast 'Arcane Channeling'");
+
+UPDATE `creature` SET `spawndist`=10 WHERE `guid`=122806;
+UPDATE `creature` SET `spawndist`=15 WHERE `guid` IN (122824, 122545);
+-- Pathing for Entry: 25709 'TDB FORMAT'
+SET @NPC := 122562;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3821.72,`position_y`=7226.874,`position_z`=165.7941 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3821.72,7226.874,165.7941,0,0,0,0,100,0),
+(@PATH,2,3840.45,7225.532,167.5351,0,0,0,0,100,0),
+(@PATH,3,3854.693,7219.692,168.801,0,0,0,0,100,0),
+(@PATH,4,3872.789,7201.074,168.0432,0,0,0,0,100,0),
+(@PATH,5,3877.849,7192.911,167.4686,0,0,0,0,100,0),
+(@PATH,6,3853.227,7162.686,166.2984,0,0,0,0,100,0),
+(@PATH,7,3831.403,7190.82,162.3192,0,0,0,0,100,0),
+(@PATH,8,3821.685,7226.815,165.7664,0,0,0,0,100,0);
+-- 0x1C09144760191B4000000C00005929B2 .go 3821.72 7226.874 165.7941
+
+-- Pathing for Entry: 25717 'TDB FORMAT'
+SET @NPC := 122655;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=4158.797,`position_y`=7025.598,`position_z`=165.7506 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,4158.797,7025.598,165.7506,0,0,0,0,100,0),
+(@PATH,2,4158.771,7025.846,166.0288,0,0,0,0,100,0),
+(@PATH,3,4149.362,7040.18,166.0216,0,0,0,0,100,0),
+(@PATH,4,4141.375,7046.86,165.9186,0,0,0,0,100,0),
+(@PATH,5,4128.7,7050.973,165.6986,0,0,0,0,100,0),
+(@PATH,6,4128.795,7050.833,165.5718,0,0,0,0,100,0),
+(@PATH,7,4129.043,7050.743,165.6772,0,0,0,0,100,0),
+(@PATH,8,4141.438,7046.565,166.0175,0,0,0,0,100,0),
+(@PATH,9,4149.486,7040.006,166.0294,0,0,0,0,100,0),
+(@PATH,10,4159.022,7025.654,165.9743,0,0,0,0,100,0);
+-- 0x1C09144760191D4000000C000059272B .go 4158.797 7025.598 165.7506
diff --git a/sql/updates/world/2015_02_10_06_world.sql b/sql/updates/world/2015_02_10_06_world.sql
new file mode 100644
index 00000000000..bcd42994ee2
--- /dev/null
+++ b/sql/updates/world/2015_02_10_06_world.sql
@@ -0,0 +1,58 @@
+--
+SET @NPC:= 25968;
+UPDATE `creature_template` SET `VehicleId`=30 WHERE `entry`=@NPC;
+DELETE FROM `vehicle_template_accessory` where `entry` in (@NPC) AND `accessory_entry` IN (25801);
+INSERT INTO `vehicle_template_accessory` (`entry`,`accessory_entry`,`seat_id`,`minion`,`description`,`summontype`,`summontimer`) VALUES
+(@NPC,25801,0,0,'Lunchbox',8,0);
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry` = @NPC;
+INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES
+(@NPC, 46598, 1, 0);
+
+-- Nedar, Lord of Rhinos SAI
+SET @ENTRY := 25801;
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,0,4,0,100,1,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nedar, Lord of Rhinos - On Aggro - Set Event Phase 1 (No Repeat)"),
+(@ENTRY,0,1,0,4,1,100,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nedar, Lord of Rhinos - On Aggro - Say Line 0 (Phase 1) (No Repeat)"),
+(@ENTRY,0,2,0,4,1,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nedar, Lord of Rhinos - On Aggro - Disable Combat Movement (Phase 1) (No Repeat)"),
+(@ENTRY,0,3,0,4,1,100,1,0,0,0,0,11,41440,0,0,0,0,0,2,0,0,0,0,0,0,0,"Nedar, Lord of Rhinos - On Aggro - Cast 'Shoot' (Phase 1) (No Repeat)"),
+(@ENTRY,0,4,0,9,1,100,0,5,30,3500,4100,11,41440,0,0,0,0,0,2,0,0,0,0,0,0,0,"Nedar, Lord of Rhinos - Within 5-30 Range - Cast 'Shoot' (Phase 1)"),
+(@ENTRY,0,5,0,9,1,100,0,30,100,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nedar, Lord of Rhinos - Within 30-100 Range - Enable Combat Movement (Phase 1)"),
+(@ENTRY,0,6,0,9,1,100,0,9,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nedar, Lord of Rhinos - Within 9-15 Range - Disable Combat Movement (Phase 1)"),
+(@ENTRY,0,7,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nedar, Lord of Rhinos - Within 0-5 Range - Enable Combat Movement (Phase 1)"),
+(@ENTRY,0,8,0,9,1,100,0,5,30,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nedar, Lord of Rhinos - Within 5-30 Range - Disable Combat Movement (Phase 1)");
+-- Complete the Broadcast_text
+DELETE FROM `creature_text` WHERE `entry` IN (@ENTRY);
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
+(@ENTRY, 0, 0, 'Your impetuousness will be your end!', 12, 0, 100, 0, 0, 0, 'Nedar', 25103),
+(@ENTRY, 0, 1, 'You dare challenge Nedar, lord of the tundral!?', 12, 0, 100, 0, 0, 0, 'Nedar', 25102),
+(@ENTRY, 0, 2, 'You don''t stand a chance!', 12, 0, 100, 0, 0, 0, 'Nedar', 25104);
+
+-- Pathing for Entry: 25968 'TDB FORMAT'
+SET @NPC := 106302;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3170.232,`position_y`=5968.757,`position_z`=96.36165 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3170.232,5968.757,96.36165,0,0,0,0,100,0),
+(@PATH,2,3159.33,5950.815,95.96857,0,0,0,0,100,0),
+(@PATH,3,3162.685,5902.838,96.0918,0,0,0,0,100,0),
+(@PATH,4,3169.452,5888.983,97.71611,0,0,0,0,100,0),
+(@PATH,5,3204.079,5874.618,97.02065,0,0,0,0,100,0),
+(@PATH,6,3238.726,5868.98,94.07452,0,0,0,0,100,0),
+(@PATH,7,3266.804,5867.507,86.87187,0,0,0,0,100,0),
+(@PATH,8,3300.308,5874.12,83.72194,0,0,0,0,100,0),
+(@PATH,9,3328.993,5853.078,78.86817,0,0,0,0,100,0),
+(@PATH,10,3344.677,5812.18,67.82541,0,0,0,0,100,0),
+(@PATH,11,3341.184,5774.667,61.2993,0,0,0,0,100,0),
+(@PATH,12,3357.205,5767.466,65.42284,0,0,0,0,100,0),
+(@PATH,13,3357.227,5799.264,67.74834,0,0,0,0,100,0),
+(@PATH,14,3359.967,5824.072,71.90356,0,0,0,0,100,0),
+(@PATH,15,3354.479,5873.997,76.9686,0,0,0,0,100,0),
+(@PATH,16,3341.863,5907.724,79.92758,0,0,0,0,100,0),
+(@PATH,17,3316.034,5925.089,85.70946,0,0,0,0,100,0),
+(@PATH,18,3293.812,5947.116,82.76896,0,0,0,0,100,0);
+-- 0x2009144760195C0000000C000057E949 .go 3170.232 5968.757 96.36165
diff --git a/sql/updates/world/2015_02_10_07_world.sql b/sql/updates/world/2015_02_10_07_world.sql
new file mode 100644
index 00000000000..87a59e4440e
--- /dev/null
+++ b/sql/updates/world/2015_02_10_07_world.sql
@@ -0,0 +1,3 @@
+--
+UPDATE `creature` SET `MovementType`=0 WHERE `guid` IN (126701,126703,126711);
+UPDATE `creature` SET `equipment_id`=0 WHERE `id` IN (12237, 12224);
diff --git a/sql/updates/world/2015_02_10_08_world.sql b/sql/updates/world/2015_02_10_08_world.sql
new file mode 100644
index 00000000000..647e89253f5
--- /dev/null
+++ b/sql/updates/world/2015_02_10_08_world.sql
@@ -0,0 +1,3 @@
+--
+UPDATE `creature` SET `MovementType`=0 WHERE `guid` = 58021;
+UPDATE `creature` SET `MovementType`=1 WHERE `guid` IN (122545, 122824);
diff --git a/sql/updates/world/2015_02_10_09_world.sql b/sql/updates/world/2015_02_10_09_world.sql
new file mode 100644
index 00000000000..9ba05c77e41
--- /dev/null
+++ b/sql/updates/world/2015_02_10_09_world.sql
@@ -0,0 +1,4 @@
+--
+UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=32535;
+UPDATE `creature_template_addon` SET`auras`="" WHERE`entry` IN (26608, 31306); -- vehicle auras appear only when the npc ride a vehicle or when he's mounted
+UPDATE `creature_template` SET `npcflag`=16777216 WHERE `entry`=35427;
diff --git a/sql/updates/world/2015_02_11_00_world.sql b/sql/updates/world/2015_02_11_00_world.sql
new file mode 100644
index 00000000000..271a5b8be94
--- /dev/null
+++ b/sql/updates/world/2015_02_11_00_world.sql
@@ -0,0 +1,12 @@
+--
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=49947;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13, 1, 49947, 0, 0, 31, 0, 3, 19871, 0, 0, 0, 0, '', 'Laser - only targets Bunny');
+
+-- Scavenge-bot 004-A8 SAI
+SET @ENTRY := 25752;
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0 AND `id` >=3;
+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,3,0,1,0,100,0,5000,5000,15000,20000,11,49947,0,0,0,0,0,19,19871,25,0,0,0,0,0,"Scavenge-bot 004-A8 - Out of Combat - Cast 'Cutting Laser'"),
+(@ENTRY,0,4,0,1,0,100,0,20000,25000,35000,40000,5,35,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scavenge-bot 004-A8 - Out of Combat - Play Emote 35");
diff --git a/sql/updates/world/2015_02_11_01_world.sql b/sql/updates/world/2015_02_11_01_world.sql
new file mode 100644
index 00000000000..5932d48ef5e
--- /dev/null
+++ b/sql/updates/world/2015_02_11_01_world.sql
@@ -0,0 +1,100 @@
+-- Pathing for Stonebreaker Grunt Entry: 18973 'TDB FORMAT'
+SET @NPC := 68131;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2562.284,`position_y`=4397.473,`position_z`=58.68661 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-2562.284,4397.473,58.68661,0,0,0,0,100,0),
+(@PATH,2,-2551.224,4407.652,53.44283,0,0,0,0,100,0),
+(@PATH,3,-2547.335,4405.842,52.35535,0,0,0,0,100,0),
+(@PATH,4,-2543.202,4397.742,52.17545,0,0,0,0,100,0),
+(@PATH,5,-2547.734,4388.876,52.18408,0,0,0,0,100,0),
+(@PATH,6,-2556.611,4386.977,52.1886,0,0,0,0,100,0),
+(@PATH,7,-2556.627,4386.753,51.9386,0,0,0,0,100,0),
+(@PATH,8,-2556.481,4387.06,52.1886,0,0,0,0,100,0),
+(@PATH,9,-2543.486,4397,52.17455,0,0,0,0,100,0),
+(@PATH,10,-2547.152,4405.732,52.17457,0,0,0,0,100,0),
+(@PATH,11,-2558.628,4405.742,57.89645,0,0,0,0,100,0),
+(@PATH,12,-2562.429,4397.533,58.73559,0,0,0,0,100,0),
+(@PATH,13,-2562.816,4394.701,58.72124,0,0,0,0,100,0),
+(@PATH,14,-2547.645,4388.162,58.39926,0,0,0,0,100,0),
+(@PATH,15,-2545.306,4391.472,58.38942,0,0,0,0,100,0),
+(@PATH,16,-2543.268,4397.77,58.69866,0,0,0,0,100,0),
+(@PATH,17,-2543.174,4397.481,58.44216,0,0,0,0,100,0),
+(@PATH,18,-2545.374,4391.247,58.40757,0,0,0,0,100,0),
+(@PATH,19,-2554.22,4387.671,58.65759,0,0,0,0,100,0),
+(@PATH,20,-2562.223,4394.01,58.45053,0,0,0,0,100,0),
+(@PATH,21,-2562.396,4397.497,58.69535,0,0,0,0,100,0),
+(@PATH,22,-2551.103,4407.721,53.44612,0,0,0,0,100,0),
+(@PATH,23,-2547.447,4405.818,52.24909,0,0,0,0,100,0),
+(@PATH,24,-2543.19,4397.657,52.17642,0,0,0,0,100,0),
+(@PATH,25,-2547.777,4388.548,52.18584,0,0,0,0,100,0),
+(@PATH,26,-2556.725,4387.103,52.1886,0,0,0,0,100,0),
+(@PATH,27,-2556.627,4386.753,51.9386,0,0,0,0,100,0),
+(@PATH,28,-2556.351,4386.949,52.1886,0,0,0,0,100,0),
+(@PATH,29,-2543.485,4397.102,52.17455,0,0,0,0,100,0),
+(@PATH,30,-2547.133,4405.784,52.17457,0,0,0,0,100,0),
+(@PATH,31,-2558.618,4405.514,57.89614,0,0,0,0,100,0),
+(@PATH,32,-2562.308,4397.42,58.72334,0,0,0,0,100,0),
+(@PATH,33,-2562.909,4394.518,58.71896,0,0,0,0,100,0),
+(@PATH,34,-2547.697,4388.187,58.39987,0,0,0,0,100,0),
+(@PATH,35,-2545.525,4391.353,58.41209,0,0,0,0,100,0),
+(@PATH,36,-2543.177,4397.777,58.7028,0,0,0,0,100,0),
+(@PATH,37,-2543.174,4397.481,58.44216,0,0,0,0,100,0),
+(@PATH,38,-2545.295,4391.392,58.40459,0,0,0,0,100,0),
+(@PATH,39,-2554.367,4387.682,58.65977,0,0,0,0,100,0),
+(@PATH,40,-2562.382,4393.967,58.45837,0,0,0,0,100,0);
+-- 0x1C3930424012874000002C0003BF2EBC .go -2562.284 4397.473 58.68661
+
+-- Pathing for Stonebreaker Grunt Entry: 18973 'TDB FORMAT'
+SET @NPC := 68132;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2582.699,`position_y`=4367.507,`position_z`=27.14433 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-2582.699,4367.507,27.14433,240000,0,0,0,100,0),
+(@PATH,2,-2595.828,4382.915,29.9575,0,0,0,0,100,0),
+(@PATH,3,-2613.849,4391.314,33.12907,0,0,0,0,100,0),
+(@PATH,4,-2632.729,4386.462,35.28672,0,0,0,0,100,0),
+(@PATH,5,-2636.813,4385.448,35.57519,0,0,0,0,100,0),
+(@PATH,6,-2667.237,4407.722,35.60794,0,0,0,0,100,0),
+(@PATH,7,-2701.92,4386.847,28.3668,0,0,0,0,100,0),
+(@PATH,8,-2708.737,4383.311,26.62656,0,0,0,0,100,0),
+(@PATH,9,-2671.687,4406.917,35.27893,0,0,0,0,100,0),
+(@PATH,10,-2638.984,4412.332,35.20811,0,0,0,0,100,0),
+(@PATH,11,-2613.415,4394.945,33.2278,0,0,0,0,100,0),
+(@PATH,12,-2591.59,4381.07,29.3395,0,0,0,0,100,0);
+-- 0x1C3930424012874000002C00023F2EBA .go -2582.699 4367.507 27.14433
+
+-- Pathing for Stonebreaker Peon Entry: 19048 'TDB FORMAT'
+SET @NPC := 68353;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2607.763,`position_y`=4381.312,`position_z`=33.58602 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,69, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-2607.763,4381.312,33.58602,0,0,0,0,100,0),
+(@PATH,2,-2633.11,4379.769,35.77549,0,0,0,0,100,0),
+(@PATH,3,-2634.318,4379.514,35.83887,0,0,0,0,100,0),
+(@PATH,4,-2647.237,4382.08,36.08328,0,240000,0,0,100,0),
+(@PATH,5,-2642.319,4381.9,35.72264,0,0,0,0,100,0),
+(@PATH,6,-2642.08,4381.872,35.9688,0,0,0,0,100,0),
+(@PATH,7,-2607.333,4387.602,31.9885,0,0,0,0,100,0),
+(@PATH,8,-2603.056,4389.318,31.18134,0,0,0,0,100,0),
+(@PATH,9,-2598.985,4391.519,30.64458,0,240000,0,0,100,0),
+(@PATH,10,-2592.19,4391.983,30.50177,0,240000,0,0,100,0),
+(@PATH,11,-2568.814,4388.118,33.5708,0,0,0,0,100,0),
+(@PATH,12,-2567.081,4387.359,34.20564,0,240000,0,0,100,0);
+-- 0x1C39304240129A0000002C00023F2EBC .go -2607.763 4381.312 33.58602
+
+-- Update Keb'ezil's movement, he should be running around as an imp.
+UPDATE `creature` SET `MovementType`=1 WHERE `guid`=66944;
+UPDATE `creature` SET `spawndist`=5 WHERE `guid`=66944;
+
+-- Update coordinates of Ru'zah
+UPDATE `creature` SET `position_x`=-2627.9, `position_y`=4486.034, `position_z`=36.21471 WHERE `guid`=74329;
diff --git a/sql/updates/world/2015_02_11_02_world.sql b/sql/updates/world/2015_02_11_02_world.sql
new file mode 100644
index 00000000000..8db79bc0c8f
--- /dev/null
+++ b/sql/updates/world/2015_02_11_02_world.sql
@@ -0,0 +1,153 @@
+-- Urdak SAI
+SET @ENTRY := 18541;
+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,1,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Urdak - Out of Combat - Enable Combat Movement (No Repeat)"),
+(@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,"Urdak - In Combat - Cast 'Power of Kran'aish' (No Repeat)"),
+(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,38465,0,0,0,0,0,2,0,0,0,0,0,0,0,"Urdak - On Aggro - Cast 'Lightning Bolt' (No Repeat)"),
+(@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,"Urdak - On Aggro - Increment Phase By 1 (No Repeat)"),
+(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,38465,0,0,0,0,0,2,0,0,0,0,0,0,0,"Urdak - Within 0-40 Range - Cast 'Lightning Bolt' (No Repeat)"),
+(@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,"Urdak - Between 0-15% Mana - Enable Combat Movement (Phase 1) (No Repeat)"),
+(@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,"Urdak - Between 0-15% Mana - Increment Phase By 1 (Phase 1) (No Repeat)"),
+(@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,"Urdak - Within 35-80 Range - Enable Combat Movement (Phase 1) (No Repeat)"),
+(@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,"Urdak - Within 5-15 Range - Disable Combat Movement (Phase 1) (No Repeat)"),
+(@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,"Urdak - Within 0-5 Range - Enable Combat Movement (Phase 1) (No Repeat)"),
+(@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,"Urdak - Between 30-100% Mana - Decrement Phase By 1 (Phase 1) (No Repeat)"),
+(@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,"Urdak - In Combat - Cast 'Arakkoa Blast' (Phase 1) (No Repeat)"),
+(@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,"Urdak - In Combat - Cast 'Enveloping Winds' (Phase 1) (No Repeat)"),
+(@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,"Urdak - Between 0-15% Health - Set Event Phase 3 (No Repeat)"),
+(@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,"Urdak - Between 0-15% Health - Enable Combat Movement (No Repeat)"),
+(@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,"Urdak - Between 0-15% Health - Flee For Assist (No Repeat)");
+
+-- Pathing for Urdak Entry: 18541 'TDB FORMAT'
+SET @NPC := 66701;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2531.757,`position_y`=5367.723,`position_z`=27.48038 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-2531.757,5367.723,27.48038,0,0,0,0,100,0),
+(@PATH,2,-2522.244,5363.866,27.5043,0,0,0,0,100,0),
+(@PATH,3,-2511.568,5370.136,27.19551,0,0,0,0,100,0),
+(@PATH,4,-2509.842,5376.426,27.17996,0,0,0,0,100,0),
+(@PATH,5,-2514.843,5388.665,27.42471,0,0,0,0,100,0),
+(@PATH,6,-2525.896,5389.706,27.21724,0,0,0,0,100,0),
+(@PATH,7,-2531.956,5386.355,27.44649,0,0,0,0,100,0),
+(@PATH,8,-2535.825,5377.078,27.48491,0,0,0,0,100,0);
+-- 0x1C39304240121B400000D00000395D5F .go -2531.757 5367.723 27.48038
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=66960;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES
+(66960, 66960, 0, 0, 2),
+(66960, 57334, 3, 270, 2);
+
+-- Pathing for Shadowy Hunter Entry: 18718 'TDB FORMAT'
+SET @NPC := 66960;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2399.251,`position_y`=4948.647,`position_z`=33.51818 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-2399.251,4948.647,33.51818,0,0,0,0,100,0),
+(@PATH,2,-2382.013,4957.111,36.26661,0,0,0,0,100,0),
+(@PATH,3,-2386.387,4964.082,33.5477,0,0,0,0,100,0),
+(@PATH,4,-2396.421,4967.332,32.63216,0,0,0,0,100,0),
+(@PATH,5,-2404.207,4968.344,32.13279,0,0,0,0,100,0),
+(@PATH,6,-2411.476,4973.782,31.9511,0,0,0,0,100,0),
+(@PATH,7,-2419.75,5004.045,29.51139,0,0,0,0,100,0),
+(@PATH,8,-2423.043,5009.497,29.88427,0,0,0,0,100,0),
+(@PATH,9,-2425.305,5012.542,29.87346,0,0,0,0,100,0),
+(@PATH,10,-2452.268,5014.185,28.21556,0,0,0,0,100,0),
+(@PATH,11,-2455.99,5026.977,25.38416,0,0,0,0,100,0),
+(@PATH,12,-2461.66,5046.541,20.78516,0,0,0,0,100,0),
+(@PATH,13,-2468.601,5062.008,17.91999,0,0,0,0,100,0),
+(@PATH,14,-2471.484,5074.755,15.08363,0,0,0,0,100,0),
+(@PATH,15,-2462.648,5034.314,23.94722,0,0,0,0,100,0),
+(@PATH,16,-2458.38,5013.544,27.85468,0,0,0,0,100,0),
+(@PATH,17,-2460.833,5004.856,28.65945,0,0,0,0,100,0),
+(@PATH,18,-2468.316,4978.999,31.72539,0,0,0,0,100,0),
+(@PATH,19,-2469.694,4960.631,33.31852,0,0,0,0,100,0),
+(@PATH,20,-2466.243,4944.808,34.89827,0,0,0,0,100,0),
+(@PATH,21,-2466.676,4930.218,36.72472,0,0,0,0,100,0),
+(@PATH,22,-2473.81,4922.928,38.69386,0,0,0,0,100,0),
+(@PATH,23,-2476.339,4921.196,39.03951,0,0,0,0,100,0),
+(@PATH,24,-2486.696,4911.087,38.99028,0,0,0,0,100,0),
+(@PATH,25,-2488.085,4899.312,39.16518,0,0,0,0,100,0),
+(@PATH,26,-2466.59,4887.837,36.24532,0,0,0,0,100,0),
+(@PATH,27,-2459.039,4893.131,34.30416,0,0,0,0,100,0),
+(@PATH,28,-2456.6,4895.325,33.89172,0,0,0,0,100,0),
+(@PATH,29,-2455.763,4912.572,33.6131,0,0,0,0,100,0),
+(@PATH,30,-2459.973,4922.549,33.84817,0,0,0,0,100,0),
+(@PATH,31,-2454.409,4941.216,34.89568,0,0,0,0,100,0),
+(@PATH,32,-2453.032,4942.258,34.88249,0,0,0,0,100,0),
+(@PATH,33,-2441.288,4944.204,34.91498,0,0,0,0,100,0),
+(@PATH,34,-2424.706,4957.187,34.11639,0,0,0,0,100,0),
+(@PATH,35,-2420.334,4960.088,33.7532,0,0,0,0,100,0),
+(@PATH,36,-2399.827,4949.04,33.55933,0,0,0,0,100,0);
+-- 0x1C393042401247800000D80000395139 .go -2399.251 4948.647 33.51818
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=66959;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES
+(66959, 66959, 0, 0, 2),
+(66959, 57324, 3, 270, 2);
+
+-- Pathing for Shadowy Hunter Entry: 18718 'TDB FORMAT'
+SET @NPC := 66959;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2458.59,`position_y`=4883.933,`position_z`=34.63649 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,0,0,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-2458.59,4883.933,34.63649,0,0,0,0,100,0),
+(@PATH,2,-2454.139,4881.942,34.18031,0,0,0,0,100,0),
+(@PATH,3,-2441.338,4867.939,34.96668,0,0,0,0,100,0),
+(@PATH,4,-2447.259,4881.18,33.54724,0,0,0,0,100,0),
+(@PATH,5,-2454.204,4888.805,33.82166,0,0,0,0,100,0),
+(@PATH,6,-2455.784,4897.667,33.77719,0,0,0,0,100,0),
+(@PATH,7,-2455.145,4910.682,33.57897,0,0,0,0,100,0),
+(@PATH,8,-2459.188,4921.684,33.73078,0,0,0,0,100,0),
+(@PATH,9,-2455.591,4939.817,34.61909,0,0,0,0,100,0),
+(@PATH,10,-2453.116,4941.684,35.0243,0,0,0,0,100,0),
+(@PATH,11,-2443.437,4943.616,34.76263,0,0,0,0,100,0),
+(@PATH,12,-2431.095,4940.732,36.18304,0,0,0,0,100,0),
+(@PATH,13,-2422.104,4931.316,35.36322,0,0,0,0,100,0),
+(@PATH,14,-2418.187,4924.916,36.3769,0,0,0,0,100,0),
+(@PATH,15,-2425.994,4937.722,36.55001,0,0,0,0,100,0),
+(@PATH,16,-2430.061,4945.802,35.26893,0,0,0,0,100,0),
+(@PATH,17,-2429.3,4947.917,34.86908,0,0,0,0,100,0),
+(@PATH,18,-2424.078,4963.271,33.09982,0,0,0,0,100,0),
+(@PATH,19,-2421.393,4974.704,31.43381,0,0,0,0,100,0),
+(@PATH,20,-2421.332,4975.644,31.21901,0,0,0,0,100,0),
+(@PATH,21,-2418.137,5000.565,30.00104,0,0,0,0,100,0),
+(@PATH,22,-2417.527,5002.019,29.37036,0,0,0,0,100,0),
+(@PATH,23,-2416.402,5010.205,29.2325,0,0,0,0,100,0),
+(@PATH,24,-2417.669,5014.722,28.97691,0,0,0,0,100,0),
+(@PATH,25,-2428.226,5012.224,29.9898,0,0,0,0,100,0),
+(@PATH,26,-2444.966,5008.044,29.51899,0,0,0,0,100,0),
+(@PATH,27,-2453.993,5013.485,28.19345,0,0,0,0,100,0),
+(@PATH,28,-2456.664,5023.554,26.07574,0,0,0,0,100,0),
+(@PATH,29,-2459.761,5038.568,22.79576,0,0,0,0,100,0),
+(@PATH,30,-2465.731,5053.402,19.17121,0,0,0,0,100,0),
+(@PATH,31,-2467.348,5032.213,24.09672,0,0,0,0,100,0),
+(@PATH,32,-2467.405,5023.126,25.73068,0,0,0,0,100,0),
+(@PATH,33,-2467.814,5012.714,28.07976,0,0,0,0,100,0),
+(@PATH,34,-2470.525,4997.041,29.28029,0,0,0,0,100,0),
+(@PATH,35,-2471.126,4980.461,31.38793,0,0,0,0,100,0),
+(@PATH,36,-2477.811,4974.808,32.3695,0,0,0,0,100,0),
+(@PATH,37,-2497.777,4966.848,35.28411,0,0,0,0,100,0),
+(@PATH,38,-2506.064,4953.317,38.70324,0,0,0,0,100,0),
+(@PATH,39,-2510.001,4942.142,39.95487,0,0,0,0,100,0),
+(@PATH,40,-2510.834,4938.938,40.30884,0,0,0,0,100,0),
+(@PATH,41,-2510.035,4921.547,39.56293,0,0,0,0,100,0),
+(@PATH,42,-2510.577,4918.453,39.31087,0,0,0,0,100,0),
+(@PATH,43,-2507.691,4905.567,39.31522,0,0,0,0,100,0),
+(@PATH,44,-2500.221,4899.546,39.09933,0,0,0,0,100,0),
+(@PATH,45,-2490.795,4896.659,39.47167,0,0,0,0,100,0);
+-- 0x1C393042401247800000D800003955BB .go -2458.59 4883.933 34.63649
+
+-- Remove 1 too many 'Shadowy Executioner'
+DELETE FROM `creature` WHERE `guid`=57323;
diff --git a/sql/updates/world/2015_02_11_03_world.sql b/sql/updates/world/2015_02_11_03_world.sql
new file mode 100644
index 00000000000..d748355d624
--- /dev/null
+++ b/sql/updates/world/2015_02_11_03_world.sql
@@ -0,0 +1,5 @@
+--
+DELETE FROM `disables` WHERE `sourceType` =0 AND `entry` IN (71599, 71024) AND `flags`=64;
+INSERT INTO `disables` (`sourceType`, `entry`, `flags`, `params_0`, `params_1`, `comment`) VALUES
+(0, 71599, 64, '', '', 'Ignore LOS for Cosmetic - Explosion (Chemical Wagon)'),
+(0, 71024, 64, '', '', 'Ignore LOS for Throw Bomb');
diff --git a/sql/updates/world/2015_02_11_04_world.sql b/sql/updates/world/2015_02_11_04_world.sql
new file mode 100644
index 00000000000..f94edb80882
--- /dev/null
+++ b/sql/updates/world/2015_02_11_04_world.sql
@@ -0,0 +1,44 @@
+--
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=26191;
+INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES
+(26191, 46978, 2, 0);
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=18 AND `SourceGroup`=26191 AND `SourceEntry`=46978;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(18, 26191, 46978, 0, 0, 9, 0, 11956, 0, 0, 0, 0, 0, '', 'Required quest ''Finding the Phylactery'' active for spellclick');
+
+UPDATE `creature_template` SET `minlevel`=80, `maxlevel`=80, `rank`=3, `speed_walk`=2.5, `speed_run`=2.5 WHERE `entry`=28182;
+
+-- Dusk SAI
+SET @ENTRY := 28182;
+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,54,0,100,0,0,0,0,0,53,1,28182,0,0,0,0,1,0,0,0,0,0,0,0,"Dusk - On Just Summoned - Start Waypoint"),
+(@ENTRY,0,1,0,40,0,100,0,21,28182,0,0,41,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dusk - On Waypoint 21 Reached - Despawn Instant"),
+(@ENTRY,0,2,0,54,0,100,0,0,0,0,0,8,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dusk - On Just Summoned - Set Reactstate Passive"),
+(@ENTRY,0,3,0,28,0,100,0,0,0,0,0,41,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dusk - On Passenger Removed - Despawn Instant");
+
+DELETE FROM `waypoints` WHERE `entry`=28182;
+INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES
+(28182, 1,3137.103,3835.605,23.80482, 'Dusk'),
+(28182, 2,3151.105,3841.837,26.15598, 'Dusk'),
+(28182, 3,3190.882,3844.668,28.8679, 'Dusk'),
+(28182, 4,3232.1,3838.992,27.33721, 'Dusk'),
+(28182, 5,3282.762,3832.855,27.20968, 'Dusk'),
+(28182, 6,3307.908,3829.667,28.43119, 'Dusk'),
+(28182, 7,3340.627,3826.012,25.35527, 'Dusk'),
+(28182, 8,3352.079,3823.348,27.22523, 'Dusk'),
+(28182, 9,3399.218,3818.613,27.66385, 'Dusk'),
+(28182, 10,3439.386,3828.509,27.79152, 'Dusk'),
+(28182, 11,3456.517,3835.027,29.58427, 'Dusk'),
+(28182, 12,3482.749,3841.445,32.40864, 'Dusk'),
+(28182, 13,3531.002,3843.39,33.53048, 'Dusk'),
+(28182, 14,3549.508,3830.051,39.22393, 'Dusk'),
+(28182, 15,3561.163,3818.268,40.28746, 'Dusk'),
+(28182, 16,3573.922,3785.856,36.752, 'Dusk'),
+(28182, 17,3574.622,3781.316,36.74898, 'Dusk'),
+(28182, 18,3583.712,3758.963,36.55262, 'Dusk'),
+(28182, 19,3603.148,3712.664,36.74012, 'Dusk'),
+(28182, 20,3605.655,3702.697,36.80239, 'Dusk'),
+(28182, 21,3618.601,3670.745,35.97186, 'Dusk');
diff --git a/sql/updates/world/2015_02_11_05_world.sql b/sql/updates/world/2015_02_11_05_world.sql
new file mode 100644
index 00000000000..3f0d52d3054
--- /dev/null
+++ b/sql/updates/world/2015_02_11_05_world.sql
@@ -0,0 +1,4 @@
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=10 AND `SourceGroup`=10016 AND `SourceEntry`=46004;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(10, 10016, 46004, 0, 0, 8, 0, 13845, 0, 0, 1, 0, 0, '', 'Sealed vial of poison only drops if player is not rewarded for quest sealed vial of poison');
+UPDATE `gossip_menu_option` SET `npc_option_npcflag`=1 WHERE `menu_id`=9546 AND `id`=1;
diff --git a/src/server/collision/Maps/TileAssembler.cpp b/src/server/collision/Maps/TileAssembler.cpp
index 06540ecdc61..ee978211577 100644
--- a/src/server/collision/Maps/TileAssembler.cpp
+++ b/src/server/collision/Maps/TileAssembler.cpp
@@ -391,6 +391,18 @@ namespace VMAP
}
}
+ if (bounds.isEmpty())
+ {
+ std::cout << "\nModel " << std::string(buff, name_length) << " has empty bounding box" << std::endl;
+ continue;
+ }
+
+ if (!bounds.isFinite())
+ {
+ std::cout << "\nModel " << std::string(buff, name_length) << " has invalid bounding box" << std::endl;
+ continue;
+ }
+
fwrite(&displayId, sizeof(uint32), 1, model_list_copy);
fwrite(&name_length, sizeof(uint32), 1, model_list_copy);
fwrite(&buff, sizeof(char), name_length, model_list_copy);
diff --git a/src/server/collision/Models/GameObjectModel.cpp b/src/server/collision/Models/GameObjectModel.cpp
index 993c298941c..05bd5d360c6 100644
--- a/src/server/collision/Models/GameObjectModel.cpp
+++ b/src/server/collision/Models/GameObjectModel.cpp
@@ -78,6 +78,12 @@ void LoadGameObjectModelList()
break;
}
+ if (v1.isNaN() || v2.isNaN())
+ {
+ VMAP_ERROR_LOG("misc", "File '%s' Model '%s' has invalid v1%s v2%s values!", VMAP::GAMEOBJECT_MODELS, std::string(buff, name_length).c_str(), v1.toString().c_str(), v2.toString().c_str());
+ continue;
+ }
+
model_list.insert
(
ModelList::value_type( displayId, GameobjectModelData(std::string(buff, name_length), AABox(v1, v2)) )
diff --git a/src/server/game/AuctionHouseBot/AuctionHouseBot.cpp b/src/server/game/AuctionHouseBot/AuctionHouseBot.cpp
index 7e8ccb4bb23..a04e4091778 100644
--- a/src/server/game/AuctionHouseBot/AuctionHouseBot.cpp
+++ b/src/server/game/AuctionHouseBot/AuctionHouseBot.cpp
@@ -204,14 +204,24 @@ void AuctionBotConfig::GetConfigFromFile()
SetConfig(CONFIG_AHBOT_MINTIME, "AuctionHouseBot.MinTime", 1);
SetConfig(CONFIG_AHBOT_MAXTIME, "AuctionHouseBot.MaxTime", 72);
- SetConfigMinMax(CONFIG_AHBOT_BUYER_CHANCE_RATIO_ALLIANCE, "AuctionHouseBot.Buyer.Alliance.Chance.Ratio", 3, 1, 100);
- SetConfigMinMax(CONFIG_AHBOT_BUYER_CHANCE_RATIO_HORDE, "AuctionHouseBot.Buyer.Horde.Chance.Ratio", 3, 1, 100);
- SetConfigMinMax(CONFIG_AHBOT_BUYER_CHANCE_RATIO_NEUTRAL, "AuctionHouseBot.Buyer.Neutral.Chance.Ratio", 3, 1, 100);
SetConfigMinMax(CONFIG_AHBOT_BUYER_RECHECK_INTERVAL, "AuctionHouseBot.Buyer.Recheck.Interval", 20, 1, DAY / MINUTE);
+ SetConfig(CONFIG_AHBOT_BUYER_BASEPRICE_GRAY, "AuctionHouseBot.Buyer.Baseprice.Gray", 3504);
+ SetConfig(CONFIG_AHBOT_BUYER_BASEPRICE_WHITE, "AuctionHouseBot.Buyer.Baseprice.White", 5429);
+ SetConfig(CONFIG_AHBOT_BUYER_BASEPRICE_GREEN, "AuctionHouseBot.Buyer.Baseprice.Green", 21752);
+ SetConfig(CONFIG_AHBOT_BUYER_BASEPRICE_BLUE, "AuctionHouseBot.Buyer.Baseprice.Blue", 36463);
+ SetConfig(CONFIG_AHBOT_BUYER_BASEPRICE_PURPLE, "AuctionHouseBot.Buyer.Baseprice.Purple", 87124);
+ SetConfig(CONFIG_AHBOT_BUYER_BASEPRICE_ORANGE, "AuctionHouseBot.Buyer.Baseprice.Orange", 214347);
+ SetConfig(CONFIG_AHBOT_BUYER_BASEPRICE_YELLOW, "AuctionHouseBot.Buyer.Baseprice.Yellow", 407406);
+ SetConfig(CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_GRAY, "AuctionHouseBot.Buyer.ChanceMultiplier.Gray", 100);
+ SetConfig(CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_WHITE, "AuctionHouseBot.Buyer.ChanceMultiplier.White", 100);
+ SetConfig(CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_GREEN, "AuctionHouseBot.Buyer.ChanceMultiplier.Green", 100);
+ SetConfig(CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_BLUE, "AuctionHouseBot.Buyer.ChanceMultiplier.Blue", 100);
+ SetConfig(CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_PURPLE, "AuctionHouseBot.Buyer.ChanceMultiplier.Purple", 100);
+ SetConfig(CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_ORANGE, "AuctionHouseBot.Buyer.ChanceMultiplier.Orange", 100);
+ SetConfig(CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_YELLOW, "AuctionHouseBot.Buyer.ChanceMultiplier.Yellow", 100);
SetConfig(CONFIG_AHBOT_SELLER_ENABLED, "AuctionHouseBot.Seller.Enabled", false);
SetConfig(CONFIG_AHBOT_BUYER_ENABLED, "AuctionHouseBot.Buyer.Enabled", false);
- SetConfig(CONFIG_AHBOT_BUYPRICE_BUYER, "AuctionHouseBot.Buyer.Buyprice", true);
SetConfig(CONFIG_AHBOT_CLASS_MISC_MOUNT_MIN_REQ_LEVEL, "AuctionHouseBot.Class.Misc.Mount.ReqLevel.Min", 0);
SetConfig(CONFIG_AHBOT_CLASS_MISC_MOUNT_MAX_REQ_LEVEL, "AuctionHouseBot.Class.Misc.Mount.ReqLevel.Max", 0);
diff --git a/src/server/game/AuctionHouseBot/AuctionHouseBot.h b/src/server/game/AuctionHouseBot/AuctionHouseBot.h
index 964262579e6..29460ba13d7 100644
--- a/src/server/game/AuctionHouseBot/AuctionHouseBot.h
+++ b/src/server/game/AuctionHouseBot/AuctionHouseBot.h
@@ -110,10 +110,21 @@ enum AuctionBotConfigUInt32Values
CONFIG_AHBOT_CLASS_PERMANENT_PRICE_RATIO,
CONFIG_AHBOT_CLASS_MISC_PRICE_RATIO,
CONFIG_AHBOT_CLASS_GLYPH_PRICE_RATIO,
- CONFIG_AHBOT_BUYER_CHANCE_RATIO_ALLIANCE,
- CONFIG_AHBOT_BUYER_CHANCE_RATIO_HORDE,
- CONFIG_AHBOT_BUYER_CHANCE_RATIO_NEUTRAL,
CONFIG_AHBOT_BUYER_RECHECK_INTERVAL,
+ CONFIG_AHBOT_BUYER_BASEPRICE_GRAY,
+ CONFIG_AHBOT_BUYER_BASEPRICE_WHITE,
+ CONFIG_AHBOT_BUYER_BASEPRICE_GREEN,
+ CONFIG_AHBOT_BUYER_BASEPRICE_BLUE,
+ CONFIG_AHBOT_BUYER_BASEPRICE_PURPLE,
+ CONFIG_AHBOT_BUYER_BASEPRICE_ORANGE,
+ CONFIG_AHBOT_BUYER_BASEPRICE_YELLOW,
+ CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_GRAY,
+ CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_WHITE,
+ CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_GREEN,
+ CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_BLUE,
+ CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_PURPLE,
+ CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_ORANGE,
+ CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_YELLOW,
CONFIG_AHBOT_CLASS_MISC_MOUNT_MIN_REQ_LEVEL,
CONFIG_AHBOT_CLASS_MISC_MOUNT_MAX_REQ_LEVEL,
CONFIG_AHBOT_CLASS_MISC_MOUNT_MIN_SKILL_RANK,
@@ -143,7 +154,6 @@ enum AuctionBotConfigBoolValues
CONFIG_AHBOT_BIND_USE,
CONFIG_AHBOT_BIND_QUEST,
CONFIG_AHBOT_BUYPRICE_SELLER,
- CONFIG_AHBOT_BUYPRICE_BUYER,
CONFIG_AHBOT_SELLER_ENABLED,
CONFIG_AHBOT_BUYER_ENABLED,
CONFIG_AHBOT_LOCKBOX_ENABLED,
diff --git a/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp b/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp
index af60316cbec..bd5defe2bc3 100644
--- a/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp
+++ b/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp
@@ -20,7 +20,7 @@
#include "ItemPrototype.h"
#include "AuctionHouseBotBuyer.h"
-AuctionBotBuyer::AuctionBotBuyer(): _checkInterval(20)
+AuctionBotBuyer::AuctionBotBuyer() : _checkInterval(20 * MINUTE)
{
// Define faction for our main data class.
for (int i = 0; i < MAX_AUCTION_HOUSE_TYPE; ++i)
@@ -48,391 +48,394 @@ bool AuctionBotBuyer::Initialize()
if (!activeHouse)
return false;
- //load Check interval
+ // load Check interval
_checkInterval = sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_RECHECK_INTERVAL) * MINUTE;
- TC_LOG_DEBUG("ahbot", "AHBot buyer interval between 2 check = %u", _checkInterval);
+ TC_LOG_DEBUG("ahbot", "AHBot buyer interval is %u minutes", _checkInterval / MINUTE);
return true;
}
-void AuctionBotBuyer::LoadBuyerValues(BuyerConfiguration& config)
+void AuctionBotBuyer::LoadConfig()
{
- uint32 factionChance;
-
- switch (config.GetHouseType())
+ for (int i = 0; i < MAX_AUCTION_HOUSE_TYPE; ++i)
{
- case AUCTION_HOUSE_ALLIANCE:
- config.BuyerPriceRatio = sAuctionBotConfig->GetConfig(CONFIG_AHBOT_ALLIANCE_PRICE_RATIO) + 50;
- factionChance = sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_CHANCE_RATIO_ALLIANCE);
- break;
- case AUCTION_HOUSE_HORDE:
- config.BuyerPriceRatio = sAuctionBotConfig->GetConfig(CONFIG_AHBOT_HORDE_PRICE_RATIO) + 50;
- factionChance = sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_CHANCE_RATIO_HORDE);
- break;
- default:
- config.BuyerPriceRatio = sAuctionBotConfig->GetConfig(CONFIG_AHBOT_NEUTRAL_PRICE_RATIO) + 50;
- factionChance = sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_CHANCE_RATIO_NEUTRAL);
- break;
+ _houseConfig[i].BuyerEnabled = sAuctionBotConfig->GetConfigBuyerEnabled(AuctionHouseType(i));
+ if (_houseConfig[i].BuyerEnabled)
+ LoadBuyerValues(_houseConfig[i]);
}
+}
+
+void AuctionBotBuyer::LoadBuyerValues(BuyerConfiguration& config)
+{
- config.FactionChance = 5000 * factionChance;
}
-void AuctionBotBuyer::LoadConfig()
+// Makes an AHbot buyer cycle for AH type if necessary
+bool AuctionBotBuyer::Update(AuctionHouseType houseType)
{
- for (int i = 0; i < MAX_AUCTION_HOUSE_TYPE; ++i)
+ if (!sAuctionBotConfig->GetConfigBuyerEnabled(houseType))
+ return false;
+
+ TC_LOG_DEBUG("ahbot", "AHBot: %s buying ...", AuctionBotConfig::GetHouseTypeName(houseType));
+
+ BuyerConfiguration& config = _houseConfig[houseType];
+ uint32 eligibleItems = GetItemInformation(config);
+ if (eligibleItems)
{
- _houseConfig[i].BuyerEnabled = sAuctionBotConfig->GetConfigBuyerEnabled(AuctionHouseType(i));
- if (_houseConfig[i].BuyerEnabled)
- LoadBuyerValues(_houseConfig[i]);
+ // Prepare list of items to bid or buy - remove old items
+ PrepareListOfEntry(config);
+ // Process buying and bidding items
+ BuyAndBidItems(config);
}
+
+ return true;
}
-uint32 AuctionBotBuyer::GetBuyableEntry(BuyerConfiguration& config)
+// Collects information about item counts and minimum prices to SameItemInfo and updates EligibleItems - a list with new items eligible for bot to buy and bid
+// Returns count of items in AH that were eligible for being bought or bidded on by ahbot buyer (EligibleItems size)
+uint32 AuctionBotBuyer::GetItemInformation(BuyerConfiguration& config)
{
config.SameItemInfo.clear();
- uint32 count = 0;
time_t now = time(nullptr);
+ uint32 count = 0;
AuctionHouseObject* house = sAuctionMgr->GetAuctionsMap(config.GetHouseType());
for (AuctionHouseObject::AuctionEntryMap::const_iterator itr = house->GetAuctionsBegin(); itr != house->GetAuctionsEnd(); ++itr)
{
AuctionEntry* entry = itr->second;
Item* item = sAuctionMgr->GetAItem(entry->itemGUIDLow);
- if (item)
+ if (!item)
+ continue;
+
+ BuyerItemInfo& itemInfo = config.SameItemInfo[item->GetEntry()];
+
+ // Update item entry's count and total bid prices
+ // This can be used later to determine the prices and chances to bid
+ uint32 itemBidPrice = entry->startbid / item->GetCount();
+ itemInfo.TotalBidPrice = itemInfo.TotalBidPrice + itemBidPrice;
+ itemInfo.BidItemCount++;
+
+ // Set minimum bid price
+ if (!itemInfo.MinBidPrice)
+ itemInfo.MinBidPrice = itemBidPrice;
+ else
+ itemBidPrice = std::min(itemInfo.MinBidPrice, itemBidPrice);
+
+ // Set minimum buyout price if item has buyout
+ if (entry->buyout)
{
- ItemTemplate const * prototype = item->GetTemplate();
- if (prototype)
- {
- ++config.SameItemInfo[item->GetEntry()].ItemCount; // Structure constructor will make sure Element are correctly initialized if entry is created here.
- config.SameItemInfo[item->GetEntry()].BuyPrice = config.SameItemInfo[item->GetEntry()].BuyPrice + (itr->second->buyout / item->GetCount());
- config.SameItemInfo[item->GetEntry()].BidPrice = config.SameItemInfo[item->GetEntry()].BidPrice + (itr->second->startbid / item->GetCount());
- if (itr->second->buyout != 0)
- {
- if (itr->second->buyout / item->GetCount() < config.SameItemInfo[item->GetEntry()].MinBuyPrice)
- config.SameItemInfo[item->GetEntry()].MinBuyPrice = itr->second->buyout / item->GetCount();
- else if (config.SameItemInfo[item->GetEntry()].MinBuyPrice == 0)
- config.SameItemInfo[item->GetEntry()].MinBuyPrice = itr->second->buyout / item->GetCount();
- }
- if (itr->second->startbid / item->GetCount() < config.SameItemInfo[item->GetEntry()].MinBidPrice)
- config.SameItemInfo[item->GetEntry()].MinBidPrice = itr->second->startbid / item->GetCount();
- else if (config.SameItemInfo[item->GetEntry()].MinBidPrice == 0)
- config.SameItemInfo[item->GetEntry()].MinBidPrice = itr->second->startbid / item->GetCount();
-
- if (!entry->owner)
- {
-
- if (entry->bid != 0 && entry->bidder) // Add bid by player
- {
- config.CheckedEntry[entry->Id].LastExist = now;
- config.CheckedEntry[entry->Id].AuctionId = entry->Id;
- ++count;
- }
- }
- else
- {
- if (entry->bid != 0)
- {
- if (entry->bidder)
- {
- config.CheckedEntry[entry->Id].LastExist = now;
- config.CheckedEntry[entry->Id].AuctionId = entry->Id;
- ++count;
- }
- }
- else
- {
- config.CheckedEntry[entry->Id].LastExist = now;
- config.CheckedEntry[entry->Id].AuctionId = entry->Id;
- ++count;
- }
- }
- }
+ // Update item entry's count and total buyout prices
+ // This can be used later to determine the prices and chances to buyout
+ uint32 itemBuyPrice = entry->buyout / item->GetCount();
+ itemInfo.TotalBuyPrice = itemInfo.TotalBuyPrice + itemBuyPrice;
+ itemInfo.BuyItemCount++;
+
+ if (!itemInfo.MinBuyPrice)
+ itemInfo.MinBuyPrice = itemBuyPrice;
+ else
+ itemInfo.MinBuyPrice = std::min(itemInfo.MinBuyPrice, itemBuyPrice);
+ }
+
+ // Add/update to EligibleItems if:
+ // has a bid by player or
+ // has no bids and not owned by bot
+ if ((entry->bid && entry->bidder) || (entry->owner && !entry->bid))
+ {
+ config.EligibleItems[entry->Id].LastExist = now;
+ config.EligibleItems[entry->Id].AuctionId = entry->Id;
+ ++count;
}
}
- TC_LOG_DEBUG("ahbot", "AHBot: %u items added to buyable vector for ah type: %u", count, config.GetHouseType());
+ TC_LOG_DEBUG("ahbot", "AHBot: %u items added to buyable/biddable vector for ah type: %u", count, config.GetHouseType());
TC_LOG_DEBUG("ahbot", "AHBot: SameItemInfo size = %u", (uint32)config.SameItemInfo.size());
return count;
}
-void AuctionBotBuyer::PrepareListOfEntry(BuyerConfiguration& config)
+// ahInfo can be NULL
+bool AuctionBotBuyer::RollBuyChance(const BuyerItemInfo* ahInfo, const Item* item, const AuctionEntry* auction, uint32 /*bidPrice*/)
{
- time_t now = time(nullptr) - 5;
+ if (!auction->buyout)
+ return false;
- for (CheckEntryMap::iterator itr = config.CheckedEntry.begin(); itr != config.CheckedEntry.end();)
- {
- if (itr->second.LastExist < (now - 5))
- config.CheckedEntry.erase(itr++);
- else
- ++itr;
- }
+ uint32 itemBuyPrice = auction->buyout / item->GetCount();
+ uint32 itemPrice = item->GetTemplate()->SellPrice ? item->GetTemplate()->SellPrice : GetVendorPrice(item->GetTemplate()->Quality);
+ // The AH cut needs to be added to the price, but we dont want a 100% chance to buy if the price is exactly AH default
+ itemPrice *= 1.4f;
- TC_LOG_DEBUG("ahbot", "AHBot: CheckedEntry size = %u", (uint32)config.CheckedEntry.size());
-}
+ // This value is between 0 and 100 and is used directly as the chance to buy or bid
+ // Value equal or above 100 means 100% chance and value below 0 means 0% chance
+ float chance = 100 / sqrt(itemBuyPrice / float(itemPrice));
-bool AuctionBotBuyer::IsBuyableEntry(uint32 buyoutPrice, double inGameBuyPrice, uint32 maxBuyablePrice, uint32 minBuyPrice, uint32 maxChance, uint32 chanceRatio)
-{
- double ratio = 0;
- uint32 chance = 0;
+ // If a player has bidded on item, have fifth of normal chance
+ if (auction->bidder)
+ chance = chance / 5;
- if (buyoutPrice <= minBuyPrice)
+ if (ahInfo)
{
- if (buyoutPrice <= maxBuyablePrice)
- chance = maxChance;
- else
- {
+ float avgBuyPrice = ahInfo->TotalBuyPrice / float(ahInfo->BuyItemCount);
- if (buyoutPrice > 0 && maxBuyablePrice > 0)
- {
- ratio = double(buyoutPrice) / double(maxBuyablePrice);
- if (ratio < 10)
- chance = maxChance - (ratio * maxChance / 10);
- else
- chance = 1;
- }
- }
- }
- else if (buyoutPrice <= inGameBuyPrice)
- {
- if (buyoutPrice <= maxBuyablePrice)
- chance = maxChance / 5;
- else
- {
+ TC_LOG_DEBUG("ahbot", "AHBot: buyout average: %.1f items with buyout: %u", avgBuyPrice, ahInfo->BuyItemCount);
- if (buyoutPrice > 0 && maxBuyablePrice > 0)
- {
- ratio = double(buyoutPrice) / double(maxBuyablePrice);
- if (ratio < 10)
- chance = (maxChance / 5) - (ratio * maxChance / 50);
- else
- chance = 1;
- }
- }
- }
- else if (buyoutPrice <= maxBuyablePrice)
- chance = maxChance / 10;
- else
- {
- if (buyoutPrice > 0 && maxBuyablePrice > 0)
+ // If there are more than 5 items on AH of this entry, try weigh in the average buyout price
+ if (ahInfo->BuyItemCount > 5)
{
- ratio = double(buyoutPrice) / double(maxBuyablePrice);
- if (ratio < 10)
- chance = (maxChance / 5) - (ratio* maxChance / 50);
- else
- chance = 0;
+ chance *= 1 / sqrt(itemBuyPrice / avgBuyPrice);
}
- else
- chance = 0;
}
- if (urand(1, chanceRatio) <= chance)
- {
- TC_LOG_DEBUG("ahbot", "AHBot: WIN BUY! Chance = %u, num = %u.", chance, chanceRatio);
- return true;
- }
- else
- {
- TC_LOG_DEBUG("ahbot", "AHBot: LOOSE BUY! Chance = %u, num = %u.", chance, chanceRatio);
- return false;
- }
+ // Add config weigh in for quality
+ chance *= GetChanceMultiplier(item->GetTemplate()->Quality) / 100.0f;
+
+ float rand = frand(0, 100);
+ bool win = rand <= chance;
+ TC_LOG_DEBUG("ahbot", "AHBot: %s BUY! chance = %.2f, price = %u, buyprice = %u.", win ? "WIN" : "LOSE", chance, itemPrice, itemBuyPrice);
+ return win;
}
-bool AuctionBotBuyer::IsBidableEntry(uint32 bidPrice, double inGameBuyPrice, double maxBidablePrice, uint32 minBidPrice, uint32 maxChance, uint32 chanceRatio)
+// ahInfo can be NULL
+bool AuctionBotBuyer::RollBidChance(const BuyerItemInfo* ahInfo, const Item* item, const AuctionEntry* auction, uint32 bidPrice)
{
- double ratio = 0;
- uint32 chance = 0;
+ uint32 itemBidPrice = bidPrice / item->GetCount();
+ uint32 itemPrice = item->GetTemplate()->SellPrice ? item->GetTemplate()->SellPrice : GetVendorPrice(item->GetTemplate()->Quality);
+ // The AH cut needs to be added to the price, but we dont want a 100% chance to buy if the price is exactly AH default
+ itemPrice *= 1.4f;
- if (bidPrice <= minBidPrice)
- {
- if (inGameBuyPrice != 0 && bidPrice < inGameBuyPrice - (inGameBuyPrice / 30))
- chance = maxChance;
- else
- {
- if (bidPrice < maxBidablePrice)
- {
- ratio = maxBidablePrice / bidPrice;
- if (ratio < 3)
- chance = maxChance / 500 * ratio;
- else
- chance = maxChance / 500;
- }
- }
- }
- else if (bidPrice < (inGameBuyPrice - (inGameBuyPrice / 30)))
- chance = (maxChance / 10);
- else
+ // This value is between 0 and 100 and is used directly as the chance to buy or bid
+ // Value equal or above 100 means 100% chance and value below 0 means 0% chance
+ float chance = 100 / sqrt(itemBidPrice / float(itemPrice));
+
+ if (ahInfo)
{
- if (bidPrice < maxBidablePrice)
+ float avgBidPrice = ahInfo->TotalBidPrice / float(ahInfo->BidItemCount);
+
+ TC_LOG_DEBUG("ahbot", "AHBot: Bid average: %.1f biddable item count: %u", avgBidPrice, ahInfo->BidItemCount);
+
+ // If there are more than 5 items on AH of this entry, try weigh in the average bid price
+ if (ahInfo->BidItemCount >= 5)
{
- ratio = maxBidablePrice / bidPrice;
- if (ratio < 4)
- chance = maxChance / 1000 * ratio;
- else
- chance = maxChance / 1000;
+ chance *= 1 / sqrt(itemBidPrice / avgBidPrice);
}
}
- if (urand(1, chanceRatio) <= chance)
- {
- TC_LOG_DEBUG("ahbot", "AHBot: WIN BID! Chance = %u, num = %u.", chance, chanceRatio);
- return true;
- }
- else
- {
- TC_LOG_DEBUG("ahbot", "AHBot: LOOSE BID! Chance = %u, num = %u.", chance, chanceRatio);
- return false;
- }
-}
+ // If a player has bidded on item, have fifth of normal chance
+ if (auction->bidder)
+ chance = chance / 5;
-void AuctionBotBuyer::PlaceBidToEntry(AuctionEntry* auction, uint32 bidPrice)
-{
- TC_LOG_DEBUG("ahbot", "AHBot: Bid placed to entry %u, %.2fg", auction->Id, float(bidPrice) / 10000.0f);
- auction->bid = bidPrice;
+ // Add config weigh in for quality
+ chance *= GetChanceMultiplier(item->GetTemplate()->Quality) / 100.0f;
+
+ float rand = frand(0, 100);
+ bool win = rand <= chance;
+ TC_LOG_DEBUG("ahbot", "AHBot: %s BID! chance = %.2f, price = %u, bidprice = %u.", win ? "WIN" : "LOSE", chance, itemPrice, itemBidPrice);
+ return win;
}
-void AuctionBotBuyer::BuyEntry(AuctionEntry* auction)
+// Removes items from EligibleItems that we shouldnt buy or bid on
+// The last existed time on them should be older than now
+void AuctionBotBuyer::PrepareListOfEntry(BuyerConfiguration& config)
{
- TC_LOG_DEBUG("ahbot", "AHBot: Entry %u bought at %.2fg", auction->Id, float(auction->buyout) / 10000.0f);
- auction->bid = auction->buyout;
+ // now - 5 seconds to leave out all old entries but keep the ones just updated a moment ago
+ time_t now = time(nullptr) - 5;
+
+ for (CheckEntryMap::iterator itr = config.EligibleItems.begin(); itr != config.EligibleItems.end();)
+ {
+ if (itr->second.LastExist < now)
+ config.EligibleItems.erase(itr++);
+ else
+ ++itr;
+ }
+
+ TC_LOG_DEBUG("ahbot", "AHBot: EligibleItems size = %u", (uint32)config.EligibleItems.size());
}
-void AuctionBotBuyer::AddNewAuctionBuyerBotBid(BuyerConfiguration& config)
+// Tries to bid and buy items based on their prices and chances set in configs
+void AuctionBotBuyer::BuyAndBidItems(BuyerConfiguration& config)
{
+ time_t now = time(nullptr);
AuctionHouseObject* auctionHouse = sAuctionMgr->GetAuctionsMap(config.GetHouseType());
+ CheckEntryMap& items = config.EligibleItems;
- PrepareListOfEntry(config);
-
- time_t now = time(nullptr);
- uint32 buyCycles;
- if (config.CheckedEntry.size() > sAuctionBotConfig->GetItemPerCycleBoost())
+ // Max amount of items to buy or bid
+ uint32 cycles = sAuctionBotConfig->GetItemPerCycleNormal();
+ if (items.size() > sAuctionBotConfig->GetItemPerCycleBoost())
{
- buyCycles = sAuctionBotConfig->GetItemPerCycleBoost();
+ // set more cycles if there is a huge influx of items
+ cycles = sAuctionBotConfig->GetItemPerCycleBoost();
TC_LOG_DEBUG("ahbot", "AHBot: Boost value used for Buyer! (if this happens often adjust both ItemsPerCycle in worldserver.conf)");
}
- else
- buyCycles = sAuctionBotConfig->GetItemPerCycleNormal();
- for (CheckEntryMap::iterator itr = config.CheckedEntry.begin(); itr != config.CheckedEntry.end();)
+ // Process items eligible to be bidded or bought
+ CheckEntryMap::iterator itr = items.begin();
+ while (cycles && itr != items.end())
{
AuctionEntry* auction = auctionHouse->GetAuction(itr->second.AuctionId);
- if (!auction) // is auction not active now
+ if (!auction)
{
- TC_LOG_DEBUG("ahbot", "AHBot: Entry %u doesn't exists, perhaps bought already?",
- itr->second.AuctionId);
-
- config.CheckedEntry.erase(itr++);
+ TC_LOG_DEBUG("ahbot", "AHBot: Entry %u doesn't exists, perhaps bought already?", itr->second.AuctionId);
+ items.erase(itr++);
continue;
}
- if (itr->second.LastChecked != 0 && (now - itr->second.LastChecked) <= _checkInterval)
+ // Check if the item has been checked once before
+ // If it has been checked and it was recently, skip it
+ if (itr->second.LastChecked && (now - itr->second.LastChecked) <= _checkInterval)
{
TC_LOG_DEBUG("ahbot", "AHBot: In time interval wait for entry %u!", auction->Id);
++itr;
continue;
}
- if (buyCycles == 0)
- break;
-
- uint32 maxChance = 5000;
-
Item* item = sAuctionMgr->GetAItem(auction->itemGUIDLow);
- if (!item) // auction item not accessible, possible auction in payment pending mode
+ if (!item)
{
- config.CheckedEntry.erase(itr++);
+ // auction item not accessible, possible auction in payment pending mode
+ items.erase(itr++);
continue;
}
- ItemTemplate const* prototype = item->GetTemplate();
-
- uint32 basePrice = sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYPRICE_BUYER) ? prototype->BuyPrice : prototype->SellPrice;
- basePrice *= item->GetCount();
-
- uint32 maxBuyablePrice = (basePrice * config.BuyerPriceRatio) / 100;
- BuyerItemInfoMap::iterator sameItemItr = config.SameItemInfo.find(item->GetEntry());
- uint32 buyoutPrice = auction->buyout / item->GetCount();
-
+ // price to bid if bidding
uint32 bidPrice;
- uint32 bidPriceByItem;
- uint32 minBidPrice;
- uint32 minBuyPrice;
if (auction->bid >= auction->startbid)
{
- bidPrice = auction->GetAuctionOutBid();
- bidPriceByItem = auction->bid / item->GetCount();
+ // get bid price to outbid previous bidder
+ bidPrice = auction->bid + auction->GetAuctionOutBid();
}
else
{
+ // no previous bidders - use starting bid
bidPrice = auction->startbid;
- bidPriceByItem = auction->startbid / item->GetCount();
}
- double inGameBuyPrice;
- double inGameBidPrice;
- if (sameItemItr == config.SameItemInfo.end())
- {
- inGameBuyPrice = 0;
- inGameBidPrice = 0;
- minBidPrice = 0;
- minBuyPrice = 0;
- }
- else
- {
- if (sameItemItr->second.ItemCount == 1)
- maxBuyablePrice = maxBuyablePrice * 5; // if only one item exist can be bought if the price is high too.
- inGameBuyPrice = sameItemItr->second.BuyPrice / sameItemItr->second.ItemCount;
- inGameBidPrice = sameItemItr->second.BidPrice / sameItemItr->second.ItemCount;
- minBidPrice = sameItemItr->second.MinBidPrice;
- minBuyPrice = sameItemItr->second.MinBuyPrice;
- }
+ const BuyerItemInfo* ahInfo = nullptr;
+ BuyerItemInfoMap::const_iterator sameItemItr = config.SameItemInfo.find(item->GetEntry());
+ if (sameItemItr != config.SameItemInfo.end())
+ ahInfo = &sameItemItr->second;
- uint32 maxBidablePrice = maxBuyablePrice - (maxBuyablePrice / 30); // Max Bidable price defined to 70% of max buyable price
+ TC_LOG_DEBUG("ahbot", "AHBot: Rolling for AHentry %u:", auction->Id);
- TC_LOG_DEBUG("ahbot", "AHBot: Auction added with data:");
- TC_LOG_DEBUG("ahbot", "AHBot: MaxPrice of Entry %u is %.1fg.", itr->second.AuctionId, double(maxBuyablePrice) / 10000.0);
- TC_LOG_DEBUG("ahbot", "AHBot: GamePrice buy=%.1fg, bid=%.1fg.", inGameBuyPrice / 10000, inGameBidPrice / 10000);
- TC_LOG_DEBUG("ahbot", "AHBot: Minimal price see in AH Buy=%ug, Bid=%ug.",
- minBuyPrice / 10000, minBidPrice / 10000);
- TC_LOG_DEBUG("ahbot", "AHBot: Actual Entry price, Buy=%ug, Bid=%ug.", buyoutPrice / 10000, bidPrice / 10000);
+ // Roll buy and bid chances
+ bool successBuy = RollBuyChance(ahInfo, item, auction, bidPrice);
+ bool successBid = RollBidChance(ahInfo, item, auction, bidPrice);
- if (!auction->owner) // Original auction owner
- maxChance = maxChance / 5; // if Owner is AHBot this mean player placed bid on this auction. We divide by 5 chance for AhBuyer to place bid on it. (This make more challenge than ignore entry)
- if (auction->buyout != 0) // Is the item directly buyable?
- {
- if (IsBuyableEntry(buyoutPrice, inGameBuyPrice, maxBuyablePrice, minBuyPrice, maxChance, config.FactionChance))
- {
- if (IsBidableEntry(bidPriceByItem, inGameBuyPrice, maxBidablePrice, minBidPrice, maxChance / 2, config.FactionChance))
- {
- if (urand(0, 5) == 0)
- PlaceBidToEntry(auction, bidPrice);
- else
- BuyEntry(auction);
- }
- else
- BuyEntry(auction);
- }
- else if (IsBidableEntry(bidPriceByItem, inGameBuyPrice, maxBidablePrice, minBidPrice, maxChance / 2, config.FactionChance))
- PlaceBidToEntry(auction, bidPrice);
- }
- else if (IsBidableEntry(bidPriceByItem, inGameBuyPrice, maxBidablePrice, minBidPrice, maxChance, config.FactionChance))
- PlaceBidToEntry(auction, bidPrice);
+ // If roll bidding succesfully and bid price is above buyout -> buyout
+ // If roll for buying was successful but not for bid, buyout directly
+ // If roll bidding was also successful, buy the entry with 20% chance
+ // - Better bid than buy since the item is bought by bot if no player bids after
+ // Otherwise bid if roll for bid was successful
+ if ((auction->buyout && successBid && bidPrice >= auction->buyout) ||
+ (successBuy && (!successBid || urand(1, 5) == 1)))
+ BuyEntry(auction, auctionHouse); // buyout
+ else if (successBid)
+ PlaceBidToEntry(auction, bidPrice); // bid
itr->second.LastChecked = now;
- --buyCycles;
-
+ --cycles;
++itr;
}
+
+ // Clear not needed entries
+ config.SameItemInfo.clear();
}
-bool AuctionBotBuyer::Update(AuctionHouseType houseType)
+uint32 AuctionBotBuyer::GetVendorPrice(uint32 quality)
+{
+ switch (quality)
+ {
+ case ITEM_QUALITY_POOR:
+ return sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_BASEPRICE_GRAY);
+ case ITEM_QUALITY_NORMAL:
+ return sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_BASEPRICE_WHITE);
+ case ITEM_QUALITY_UNCOMMON:
+ return sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_BASEPRICE_GREEN);
+ case ITEM_QUALITY_RARE:
+ return sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_BASEPRICE_BLUE);
+ case ITEM_QUALITY_EPIC:
+ return sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_BASEPRICE_PURPLE);
+ case ITEM_QUALITY_LEGENDARY:
+ return sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_BASEPRICE_ORANGE);
+ case ITEM_QUALITY_ARTIFACT:
+ return sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_BASEPRICE_YELLOW);
+ default:
+ return 1 * SILVER;
+ }
+}
+
+uint32 AuctionBotBuyer::GetChanceMultiplier(uint32 quality)
{
- if (sAuctionBotConfig->GetConfigBuyerEnabled(houseType))
+ switch (quality)
{
- TC_LOG_DEBUG("ahbot", "AHBot: %s buying ...", AuctionBotConfig::GetHouseTypeName(houseType));
- if (GetBuyableEntry(_houseConfig[houseType]) > 0)
- AddNewAuctionBuyerBotBid(_houseConfig[houseType]);
- return true;
+ case ITEM_QUALITY_POOR:
+ return sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_GRAY);
+ case ITEM_QUALITY_NORMAL:
+ return sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_WHITE);
+ case ITEM_QUALITY_UNCOMMON:
+ return sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_GREEN);
+ case ITEM_QUALITY_RARE:
+ return sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_BLUE);
+ case ITEM_QUALITY_EPIC:
+ return sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_PURPLE);
+ case ITEM_QUALITY_LEGENDARY:
+ return sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_ORANGE);
+ case ITEM_QUALITY_ARTIFACT:
+ return sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYER_CHANCEMULTIPLIER_YELLOW);
+ default:
+ return 100;
}
+}
+
+// Buys the auction and does necessary actions to complete the buyout
+void AuctionBotBuyer::BuyEntry(AuctionEntry* auction, AuctionHouseObject* auctionHouse)
+{
+ TC_LOG_DEBUG("ahbot", "AHBot: Entry %u bought at %.2fg", auction->Id, float(auction->buyout) / GOLD);
+
+ SQLTransaction trans = CharacterDatabase.BeginTransaction();
+
+ // Send mail to previous bidder if any
+ if (auction->bidder)
+ sAuctionMgr->SendAuctionOutbiddedMail(auction, auction->buyout, NULL, trans);
+
+ // Set bot as bidder and set new bid amount
+ auction->bidder = 0;
+ auction->bid = auction->buyout;
+
+ // Mails must be under transaction control too to prevent data loss
+ sAuctionMgr->SendAuctionSalePendingMail(auction, trans);
+ sAuctionMgr->SendAuctionSuccessfulMail(auction, trans);
+ sAuctionMgr->SendAuctionWonMail(auction, trans);
+
+ // Delete auction from DB
+ auction->DeleteFromDB(trans);
+
+ // Remove auction item and auction from memory
+ sAuctionMgr->RemoveAItem(auction->itemGUIDLow);
+ auctionHouse->RemoveAuction(auction);
+
+ // Run SQLs
+ CharacterDatabase.CommitTransaction(trans);
+}
+
+// Bids on the auction and does the necessary actions for bidding
+void AuctionBotBuyer::PlaceBidToEntry(AuctionEntry* auction, uint32 bidPrice)
+{
+ TC_LOG_DEBUG("ahbot", "AHBot: Bid placed to entry %u, %.2fg", auction->Id, float(bidPrice) / GOLD);
+
+ SQLTransaction trans = CharacterDatabase.BeginTransaction();
+
+ // Send mail to previous bidder if any
+ if (auction->bidder)
+ sAuctionMgr->SendAuctionOutbiddedMail(auction, bidPrice, NULL, trans);
+
+ // Set bot as bidder and set new bid amount
+ auction->bidder = 0;
+ auction->bid = bidPrice;
+
+ // Update auction to DB
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_AUCTION_BID);
+ stmt->setUInt32(0, auction->bidder);
+ stmt->setUInt32(1, auction->bid);
+ stmt->setUInt32(2, auction->Id);
+ trans->Append(stmt);
- return false;
+ // Run SQLs
+ CharacterDatabase.CommitTransaction(trans);
}
diff --git a/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.h b/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.h
index bd8d6e46f0e..c030731cb40 100644
--- a/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.h
+++ b/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.h
@@ -24,7 +24,7 @@
struct BuyerAuctionEval
{
- BuyerAuctionEval(): AuctionId(0), LastChecked(0), LastExist(0) {}
+ BuyerAuctionEval() : AuctionId(0), LastChecked(0), LastExist(0) { }
uint32 AuctionId;
time_t LastChecked;
@@ -33,13 +33,14 @@ struct BuyerAuctionEval
struct BuyerItemInfo
{
- BuyerItemInfo(): ItemCount(0), BuyPrice(0), BidPrice(0), MinBuyPrice(0), MinBidPrice(0) {}
+ BuyerItemInfo() : BidItemCount(0), BuyItemCount(0), MinBuyPrice(0), MinBidPrice(0), TotalBuyPrice(0), TotalBidPrice(0) { }
- uint32 ItemCount;
- double BuyPrice;
- double BidPrice;
+ uint32 BidItemCount;
+ uint32 BuyItemCount;
uint32 MinBuyPrice;
uint32 MinBidPrice;
+ double TotalBuyPrice;
+ double TotalBidPrice;
};
typedef std::map<uint32, BuyerItemInfo> BuyerItemInfoMap;
@@ -47,7 +48,7 @@ typedef std::map<uint32, BuyerAuctionEval> CheckEntryMap;
struct BuyerConfiguration
{
- BuyerConfiguration(): FactionChance(3), BuyerEnabled(false), BuyerPriceRatio(100), _houseType(AUCTION_HOUSE_NEUTRAL) {}
+ BuyerConfiguration() : BuyerEnabled(false), _houseType(AUCTION_HOUSE_NEUTRAL) { }
void Initialize(AuctionHouseType houseType)
{
@@ -57,10 +58,8 @@ struct BuyerConfiguration
AuctionHouseType GetHouseType() const { return _houseType; }
BuyerItemInfoMap SameItemInfo;
- CheckEntryMap CheckedEntry;
- uint32 FactionChance;
+ CheckEntryMap EligibleItems;
bool BuyerEnabled;
- uint32 BuyerPriceRatio;
private:
AuctionHouseType _houseType;
@@ -78,19 +77,23 @@ public:
bool Update(AuctionHouseType houseType) override;
void LoadConfig();
- void AddNewAuctionBuyerBotBid(BuyerConfiguration& config);
+ void BuyAndBidItems(BuyerConfiguration& config);
private:
uint32 _checkInterval;
BuyerConfiguration _houseConfig[MAX_AUCTION_HOUSE_TYPE];
void LoadBuyerValues(BuyerConfiguration& config);
- bool IsBuyableEntry(uint32 buyoutPrice, double inGameBuyPrice, uint32 maxBuyablePrice, uint32 minBuyPrice, uint32 maxChance, uint32 chanceRatio);
- bool IsBidableEntry(uint32 bidPrice, double inGameBuyPrice, double maxBidablePrice, uint32 minBidPrice, uint32 maxChance, uint32 chanceRatio);
+
+ // ahInfo can be NULL
+ bool RollBuyChance(const BuyerItemInfo* ahInfo, const Item* item, const AuctionEntry* auction, uint32 bidPrice);
+ bool RollBidChance(const BuyerItemInfo* ahInfo, const Item* item, const AuctionEntry* auction, uint32 bidPrice);
void PlaceBidToEntry(AuctionEntry* auction, uint32 bidPrice);
- void BuyEntry(AuctionEntry* auction);
+ void BuyEntry(AuctionEntry* auction, AuctionHouseObject* auctionHouse);
void PrepareListOfEntry(BuyerConfiguration& config);
- uint32 GetBuyableEntry(BuyerConfiguration& config);
+ uint32 GetItemInformation(BuyerConfiguration& config);
+ uint32 GetVendorPrice(uint32 quality);
+ uint32 GetChanceMultiplier(uint32 quality);
};
#endif
diff --git a/src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp b/src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp
index dff4077d569..733bd5e9ec8 100644
--- a/src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp
+++ b/src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp
@@ -44,14 +44,14 @@ bool AuctionBotSeller::Initialize()
{
std::stringstream includeStream(sAuctionBotConfig->GetAHBotIncludes());
std::string temp;
- while (getline(includeStream, temp, ','))
+ while (std::getline(includeStream, temp, ','))
includeItems.push_back(atoi(temp.c_str()));
}
{
std::stringstream excludeStream(sAuctionBotConfig->GetAHBotExcludes());
std::string temp;
- while (getline(excludeStream, temp, ','))
+ while (std::getline(excludeStream, temp, ','))
excludeItems.push_back(atoi(temp.c_str()));
}
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 161fca432b4..b5e6e865531 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -19086,7 +19086,7 @@ bool Player::Satisfy(AccessRequirement const* ar, uint32 target_map, bool report
else if (mapDiff->hasErrorMessage) // if (missingAchievement) covered by this case
SendTransferAborted(target_map, TRANSFER_ABORT_DIFFICULTY, target_difficulty);
else if (missingItem)
- GetSession()->SendAreaTriggerMessage(GetSession()->GetTrinityString(LANG_LEVEL_MINREQUIRED_AND_ITEM), LevelMin, sObjectMgr->GetItemTemplate(missingItem)->Name1.c_str());
+ GetSession()->SendAreaTriggerMessage(GetSession()->GetTrinityString(LANG_LEVEL_MINREQUIRED_AND_ITEM), LevelMin, ASSERT_NOTNULL(sObjectMgr->GetItemTemplate(missingItem))->Name1.c_str());
else if (LevelMin)
GetSession()->SendAreaTriggerMessage(GetSession()->GetTrinityString(LANG_LEVEL_MINREQUIRED), LevelMin);
}
@@ -22138,6 +22138,34 @@ void Player::SendCooldownEvent(SpellInfo const* spellInfo, uint32 itemId /*= 0*/
data << uint32(spellInfo->Id);
data << uint64(GetGUID());
SendDirectMessage(&data);
+
+ uint32 cat = spellInfo->GetCategory();
+ if (cat && spellInfo->CategoryRecoveryTime)
+ {
+ SpellCategoryStore::const_iterator ct = sSpellsByCategoryStore.find(cat);
+ if (ct != sSpellsByCategoryStore.end())
+ {
+ SpellCategorySet const& catSet = ct->second;
+ for (SpellCooldowns::const_iterator i = m_spellCooldowns.begin(); i != m_spellCooldowns.end(); ++i)
+ {
+ if (i->first == spellInfo->Id) // skip main spell, already handled above
+ continue;
+
+ SpellInfo const* spellInfo2 = sSpellMgr->GetSpellInfo(i->first);
+ if (!spellInfo2 || !spellInfo2->IsCooldownStartedOnEvent())
+ continue;
+
+ if (catSet.find(i->first) != catSet.end())
+ {
+ // Send activate cooldown timer (possible 0) at client side
+ WorldPacket data(SMSG_COOLDOWN_EVENT, 4 + 8);
+ data << uint32(i->first);
+ data << uint64(GetGUID());
+ SendDirectMessage(&data);
+ }
+ }
+ }
+ }
}
void Player::UpdatePotionCooldown(Spell* spell)
@@ -25047,6 +25075,7 @@ void Player::_LoadSkills(PreparedQueryResult result)
// SetPQuery(PLAYER_LOGIN_QUERY_LOADSKILLS, "SELECT skill, value, max FROM character_skills WHERE guid = '%u'", GUID_LOPART(m_guid));
uint32 count = 0;
+ std::unordered_map<uint32, uint32> loadedSkillValues;
if (result)
{
do
@@ -25114,8 +25143,7 @@ void Player::_LoadSkills(PreparedQueryResult result)
SetUInt32Value(PLAYER_SKILL_BONUS_INDEX(count), 0);
mSkillStatus.insert(SkillStatusMap::value_type(skill, SkillStatusData(count, SKILL_UNCHANGED)));
-
- LearnSkillRewardedSpells(skill, value);
+ loadedSkillValues[skill] = value;
++count;
@@ -25128,6 +25156,10 @@ void Player::_LoadSkills(PreparedQueryResult result)
while (result->NextRow());
}
+ // Learn skill rewarded spells after all skills have been loaded to prevent learning a skill from them before its loaded with proper value from DB
+ for (auto& skill : loadedSkillValues)
+ LearnSkillRewardedSpells(skill.first, skill.second);
+
for (; count < PLAYER_MAX_SKILLS; ++count)
{
SetUInt32Value(PLAYER_SKILL_INDEX(count), 0);
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index d07ec212d0c..f0d7d039dd5 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -7078,6 +7078,7 @@ void ObjectMgr::LoadReputationSpilloverTemplate()
continue;
}
+ bool invalidSpilloverFaction = false;
for (uint32 i = 0; i < MAX_SPILLOVER_FACTIONS; ++i)
{
if (repTemplate.faction[i])
@@ -7087,47 +7088,28 @@ void ObjectMgr::LoadReputationSpilloverTemplate()
if (!factionSpillover)
{
TC_LOG_ERROR("sql.sql", "Spillover faction (faction.dbc) %u does not exist but is used in `reputation_spillover_template` for faction %u, skipping", repTemplate.faction[i], factionId);
- continue;
+ invalidSpilloverFaction = true;
+ break;
}
if (factionSpillover->reputationListID < 0)
{
TC_LOG_ERROR("sql.sql", "Spillover faction (faction.dbc) %u for faction %u in `reputation_spillover_template` can not be listed for client, and then useless, skipping", repTemplate.faction[i], factionId);
- continue;
+ invalidSpilloverFaction = true;
+ break;
}
if (repTemplate.faction_rank[i] >= MAX_REPUTATION_RANK)
{
TC_LOG_ERROR("sql.sql", "Rank %u used in `reputation_spillover_template` for spillover faction %u is not valid, skipping", repTemplate.faction_rank[i], repTemplate.faction[i]);
- continue;
+ invalidSpilloverFaction = true;
+ break;
}
}
}
- FactionEntry const* factionEntry0 = sFactionStore.LookupEntry(repTemplate.faction[0]);
- if (repTemplate.faction[0] && !factionEntry0)
- {
- TC_LOG_ERROR("sql.sql", "Faction (faction.dbc) %u does not exist but is used in `reputation_spillover_template`", repTemplate.faction[0]);
+ if (invalidSpilloverFaction)
continue;
- }
- FactionEntry const* factionEntry1 = sFactionStore.LookupEntry(repTemplate.faction[1]);
- if (repTemplate.faction[1] && !factionEntry1)
- {
- TC_LOG_ERROR("sql.sql", "Faction (faction.dbc) %u does not exist but is used in `reputation_spillover_template`", repTemplate.faction[1]);
- continue;
- }
- FactionEntry const* factionEntry2 = sFactionStore.LookupEntry(repTemplate.faction[2]);
- if (repTemplate.faction[2] && !factionEntry2)
- {
- TC_LOG_ERROR("sql.sql", "Faction (faction.dbc) %u does not exist but is used in `reputation_spillover_template`", repTemplate.faction[2]);
- continue;
- }
- FactionEntry const* factionEntry3 = sFactionStore.LookupEntry(repTemplate.faction[3]);
- if (repTemplate.faction[3] && !factionEntry3)
- {
- TC_LOG_ERROR("sql.sql", "Faction (faction.dbc) %u does not exist but is used in `reputation_spillover_template`", repTemplate.faction[3]);
- continue;
- }
_repSpilloverTemplateStore[factionId] = repTemplate;
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index d9124551c63..5664cbb6e4b 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -1808,7 +1808,7 @@ GroupJoinBattlegroundResult Group::CanJoinBattlegroundQueue(Battleground const*
return ERR_BATTLEGROUND_NONE; // ERR_GROUP_JOIN_BATTLEGROUND_TOO_MANY handled on client side
// get a player as reference, to compare other players' stats to (arena team id, queue id based on level, etc.)
- Player* reference = GetFirstMember()->GetSource();
+ Player* reference = ASSERT_NOTNULL(GetFirstMember())->GetSource();
// no reference found, can't join this way
if (!reference)
return ERR_BATTLEGROUND_JOIN_FAILED;
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index d6d7e3b9876..b6157d6eb94 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -458,6 +458,12 @@ void WorldSession::HandleQuestConfirmAccept(WorldPacket& recvData)
if (!_player->IsInSameRaidWith(originalPlayer))
return;
+ if (!originalPlayer->CanShareQuest(questId))
+ return;
+
+ if (!_player->CanTakeQuest(quest, true))
+ return;
+
if (_player->CanAddQuest(quest, true))
_player->AddQuestAndCheckCompletion(quest, NULL); // NULL, this prevent DB script from duplicate running
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index 0775a9a299a..685bcd338a9 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -427,7 +427,7 @@ enum SpellAttr4
SPELL_ATTR4_UNK4 = 0x00000010, // 4 This will no longer cause guards to attack on use??
SPELL_ATTR4_UNK5 = 0x00000020, // 5
SPELL_ATTR4_NOT_STEALABLE = 0x00000040, // 6 although such auras might be dispellable, they cannot be stolen
- SPELL_ATTR4_TRIGGERED = 0x00000080, // 7 spells forced to be triggered
+ SPELL_ATTR4_CAN_CAST_WHILE_CASTING = 0x00000080, // 7 Can be cast while another cast is in progress - see CanCastWhileCasting(SpellRec const*,CGUnit_C *,int &)
SPELL_ATTR4_FIXED_DAMAGE = 0x00000100, // 8 Ignores resilience and any (except mechanic related) damage or % damage taken auras on target.
SPELL_ATTR4_TRIGGER_ACTIVATE = 0x00000200, // 9 initially disabled / trigger activate from event (Execute, Riposte, Deep Freeze end other)
SPELL_ATTR4_SPELL_VS_EXTEND_COST = 0x00000400, // 10 Rogue Shiv have this flag
diff --git a/src/server/game/Reputation/ReputationMgr.cpp b/src/server/game/Reputation/ReputationMgr.cpp
index ad71381a1de..b99cb677ba0 100644
--- a/src/server/game/Reputation/ReputationMgr.cpp
+++ b/src/server/game/Reputation/ReputationMgr.cpp
@@ -297,7 +297,7 @@ bool ReputationMgr::SetReputation(FactionEntry const* factionEntry, int32 standi
{
// bonuses are already given, so just modify standing by rate
int32 spilloverRep = int32(standing * repTemplate->faction_rate[i]);
- SetOneFactionReputation(sFactionStore.LookupEntry(repTemplate->faction[i]), spilloverRep, incremental);
+ SetOneFactionReputation(sFactionStore.AssertEntry(repTemplate->faction[i]), spilloverRep, incremental);
}
}
}
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 8e415b06745..8f8295d57d1 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -574,8 +574,8 @@ m_caster((info->AttributesEx6 & SPELL_ATTR6_CAST_BY_CHARMER && caster->GetCharme
m_spellState = SPELL_STATE_NULL;
_triggeredCastFlags = triggerFlags;
- if (info->AttributesEx4 & SPELL_ATTR4_TRIGGERED)
- _triggeredCastFlags = TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_EQUIPPED_ITEM_REQUIREMENT);
+ if (info->AttributesEx4 & SPELL_ATTR4_CAN_CAST_WHILE_CASTING)
+ _triggeredCastFlags = TriggerCastFlags(uint32(_triggeredCastFlags) | TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_CAST_DIRECTLY);
m_CastItem = NULL;
m_castItemGUID.Clear();
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index db16a7312ea..dd4453cc4c5 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -2959,6 +2959,8 @@ void SpellMgr::LoadSpellInfoCorrections()
switch (spellInfo->Id)
{
case 53096: // Quetz'lun's Judgment
+ case 70743: // AoD Special
+ case 70614: // AoD Special - Vegard
spellInfo->MaxAffectedTargets = 1;
break;
case 42436: // Drink! (Brewfest)
@@ -3729,7 +3731,7 @@ void SpellMgr::LoadSpellInfoCorrections()
case 45440: // Steam Tonk Controller
case 60256: // Collect Sample
// Crashes client on pressing ESC
- spellInfo->AttributesEx4 &= ~SPELL_ATTR4_TRIGGERED;
+ spellInfo->AttributesEx4 &= ~SPELL_ATTR4_CAN_CAST_WHILE_CASTING;
break;
// ISLE OF CONQUEST SPELLS
//
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp
index 5d6cdb3fb63..ccd82aa3ef9 100644
--- a/src/server/scripts/Commands/cs_debug.cpp
+++ b/src/server/scripts/Commands/cs_debug.cpp
@@ -299,7 +299,7 @@ public:
else if (commentToken[1] == '/')
{
std::string str;
- getline(ifs, str);
+ std::getline(ifs, str);
continue;
}
// regular data
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index 3db0e1092fd..326360428d2 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -174,7 +174,7 @@ public:
anchor->GetContactPoint(me, anchorX, anchorY, z, 1.0f);
playerGUID = target->GetGUID();
- Talk(SAY_EVENT_START);
+ Talk(SAY_EVENT_START, target);
}
void UpdateAI(uint32 diff) override
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
index ea56494f0f9..421f3d771a0 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
@@ -207,7 +207,7 @@ public:
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override
{
- if (damage > me->GetHealth() && events.IsInPhase(PHASE_ONE))
+ if (damage >= me->GetHealth() && events.IsInPhase(PHASE_ONE))
{
damage = 0;
me->RemoveAllAuras();
diff --git a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
index 390fd3e529f..ca5e4697c35 100644
--- a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
@@ -29,6 +29,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "PassiveAI.h"
#include "Player.h"
/*######
@@ -48,14 +49,18 @@ class npc_webbed_creature : public CreatureScript
public:
npc_webbed_creature() : CreatureScript("npc_webbed_creature") { }
- struct npc_webbed_creatureAI : public ScriptedAI
+ struct npc_webbed_creatureAI : public NullCreatureAI
{
- npc_webbed_creatureAI(Creature* creature) : ScriptedAI(creature) { }
+ npc_webbed_creatureAI(Creature* creature) : NullCreatureAI(creature) { }
void Reset() override { }
void EnterCombat(Unit* /*who*/) override { }
+ void AttackStart(Unit* /*who*/) override { }
+
+ void MoveInLineOfSight(Unit* /*who*/) override { }
+
void JustDied(Unit* killer) override
{
uint32 spawnCreatureID = 0;
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 7b80db7dd39..9edde447f32 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
@@ -21,6 +21,7 @@
#include "SpellScript.h"
#include "Transport.h"
#include "Player.h"
+#include "MoveSplineInit.h"
#include "halls_of_reflection.h"
enum Text
@@ -342,6 +343,20 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript
public:
npc_jaina_or_sylvanas_intro_hor() : CreatureScript("npc_jaina_or_sylvanas_intro_hor") { }
+ bool OnGossipHello(Player* player, Creature* creature) override
+ {
+ // override default gossip
+ if (InstanceScript* instance = creature->GetInstanceScript())
+ if (instance->GetData(DATA_QUEL_DELAR_EVENT) == IN_PROGRESS || instance->GetData(DATA_QUEL_DELAR_EVENT) == SPECIAL)
+ {
+ player->PlayerTalkClass->ClearMenus();
+ return true;
+ }
+
+ // load default gossip
+ return false;
+ }
+
struct npc_jaina_or_sylvanas_intro_horAI : public ScriptedAI
{
npc_jaina_or_sylvanas_intro_horAI(Creature* creature) : ScriptedAI(creature)
@@ -1998,6 +2013,13 @@ class at_hor_intro_start : public AreaTriggerScript
if (_instance->GetData(DATA_INTRO_EVENT) == NOT_STARTED)
_instance->SetData(DATA_INTRO_EVENT, IN_PROGRESS);
+ if (player->HasAura(SPELL_QUEL_DELAR_COMPULSION) && (player->GetQuestStatus(QUEST_HALLS_OF_REFLECTION_ALLIANCE) == QUEST_STATUS_INCOMPLETE ||
+ player->GetQuestStatus(QUEST_HALLS_OF_REFLECTION_HORDE) == QUEST_STATUS_INCOMPLETE) && _instance->GetData(DATA_QUEL_DELAR_EVENT) == NOT_STARTED)
+ {
+ _instance->SetData(DATA_QUEL_DELAR_EVENT, IN_PROGRESS);
+ _instance->SetGuidData(DATA_QUEL_DELAR_INVOKER, player->GetGUID());
+ }
+
return true;
}
};
@@ -2330,6 +2352,395 @@ class npc_lumbering_abomination : public CreatureScript
}
};
+enum QuelDelarUther
+{
+ ACTION_UTHER_START_SCREAM = 1,
+ ACTION_UTHER_OUTRO = 2,
+
+ EVENT_UTHER_1 = 1,
+ EVENT_UTHER_2 = 2,
+ EVENT_UTHER_3 = 3,
+ EVENT_UTHER_4 = 4,
+ EVENT_UTHER_5 = 5,
+ EVENT_UTHER_6 = 6,
+ EVENT_UTHER_7 = 7,
+ EVENT_UTHER_8 = 8,
+ EVENT_UTHER_9 = 9,
+ EVENT_UTHER_10 = 10,
+ EVENT_UTHER_11 = 11,
+ EVENT_UTHER_FACING = 12,
+ EVENT_UTHER_KNEEL = 13,
+
+ SAY_UTHER_QUEL_DELAR_1 = 16,
+ SAY_UTHER_QUEL_DELAR_2 = 17,
+ SAY_UTHER_QUEL_DELAR_3 = 18,
+ SAY_UTHER_QUEL_DELAR_4 = 19,
+ SAY_UTHER_QUEL_DELAR_5 = 20,
+ SAY_UTHER_QUEL_DELAR_6 = 21,
+
+ SPELL_ESSENCE_OF_CAPTURED_1 = 73036
+};
+
+enum QuelDelarSword
+{
+ SPELL_WHIRLWIND_VISUAL = 70300,
+ SPELL_HEROIC_STRIKE = 29426,
+ SPELL_WHIRLWIND = 67716,
+ SPELL_BLADESTORM = 67541,
+
+ NPC_QUEL_DELAR = 37158,
+ POINT_TAKE_OFF = 1,
+
+ EVENT_QUEL_DELAR_INIT = 1,
+ EVENT_QUEL_DELAR_FLIGHT_INIT = 2,
+ EVENT_QUEL_DELAR_FLIGHT = 3,
+ EVENT_QUEL_DELAR_LAND = 4,
+ EVENT_QUEL_DELAR_FIGHT = 5,
+ EVENT_QUEL_DELAR_BLADESTORM = 6,
+ EVENT_QUEL_DELAR_HEROIC_STRIKE = 7,
+ EVENT_QUEL_DELAR_WHIRLWIND = 8,
+
+ SAY_QUEL_DELAR_SWORD = 0
+};
+
+enum QuelDelarMisc
+{
+ SAY_FROSTMOURNE_BUNNY = 0,
+ SPELL_QUEL_DELAR_WILL = 70698
+};
+
+Position const QuelDelarCenterPos = { 5309.259f, 2006.390f, 718.046f, 0.0f };
+Position const QuelDelarSummonPos = { 5298.473f, 1994.852f, 709.424f, 3.979351f };
+Position const QuelDelarMovement[] =
+{
+ { 5292.870f, 1998.950f, 718.046f, 0.0f },
+ { 5295.819f, 1991.912f, 707.707f, 0.0f },
+ { 5295.301f, 1989.782f, 708.696f, 0.0f }
+};
+
+Position const UtherQuelDelarMovement[] =
+{
+ { 5336.830f, 1981.700f, 709.319f, 0.0f },
+ { 5314.350f, 1993.440f, 707.726f, 0.0f }
+};
+
+class npc_uther_quel_delar : public CreatureScript
+{
+ public:
+ npc_uther_quel_delar() : CreatureScript("npc_uther_quel_delar") { }
+
+ struct npc_uther_quel_delarAI : public ScriptedAI
+ {
+ npc_uther_quel_delarAI(Creature* creature) : ScriptedAI(creature)
+ {
+ _instance = me->GetInstanceScript();
+ }
+
+ void Reset() override
+ {
+ // Prevent to break Uther in intro event during instance encounter
+ if (_instance->GetData(DATA_QUEL_DELAR_EVENT) != IN_PROGRESS && _instance->GetData(DATA_QUEL_DELAR_EVENT) != SPECIAL)
+ return;
+
+ _events.Reset();
+ _events.ScheduleEvent(EVENT_UTHER_1, 1);
+ }
+
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) override
+ {
+ if (damage >= me->GetHealth())
+ damage = me->GetHealth() - 1;
+ }
+
+ void DoAction(int32 action) override
+ {
+ switch (action)
+ {
+ case ACTION_UTHER_START_SCREAM:
+ _instance->SetData(DATA_QUEL_DELAR_EVENT, SPECIAL);
+ _events.ScheduleEvent(EVENT_UTHER_2, 0);
+ break;
+ case ACTION_UTHER_OUTRO:
+ _events.ScheduleEvent(EVENT_UTHER_6, 0);
+ break;
+ default:
+ break;
+ }
+ }
+
+ void MovementInform(uint32 /*type*/, uint32 pointId) override
+ {
+ switch (pointId)
+ {
+ case 1:
+ _events.ScheduleEvent(EVENT_UTHER_FACING, 1000);
+ break;
+ default:
+ break;
+ }
+ }
+
+ void UpdateAI(uint32 diff) override
+ {
+ // Prevent to break Uther in intro event during instance encounter
+ if (_instance->GetData(DATA_QUEL_DELAR_EVENT) != IN_PROGRESS && _instance->GetData(DATA_QUEL_DELAR_EVENT) != SPECIAL)
+ return;
+
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_UTHER_1:
+ Talk(SAY_UTHER_QUEL_DELAR_1);
+ break;
+ case EVENT_UTHER_2:
+ if (Creature* bunny = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_FROSTMOURNE_ALTAR_BUNNY)))
+ if (Unit* target = ObjectAccessor::GetPlayer(*me, _instance->GetGuidData(DATA_QUEL_DELAR_INVOKER)))
+ bunny->CastSpell(target, SPELL_QUEL_DELAR_WILL, true);
+ _events.ScheduleEvent(EVENT_UTHER_3, 2000);
+ break;
+ case EVENT_UTHER_3:
+ me->SummonCreature(NPC_QUEL_DELAR, QuelDelarSummonPos);
+ _events.ScheduleEvent(EVENT_UTHER_4, 2000);
+ break;
+ case EVENT_UTHER_4:
+ Talk(SAY_UTHER_QUEL_DELAR_2);
+ _events.ScheduleEvent(EVENT_UTHER_5, 8000);
+ break;
+ case EVENT_UTHER_5:
+ me->GetMotionMaster()->MovePoint(1, UtherQuelDelarMovement[0]);
+ break;
+ case EVENT_UTHER_6:
+ me->SetWalk(true);
+ me->GetMotionMaster()->MovePoint(0, UtherQuelDelarMovement[1]);
+ _events.ScheduleEvent(EVENT_UTHER_7, 5000);
+ break;
+ case EVENT_UTHER_7:
+ Talk(SAY_UTHER_QUEL_DELAR_3);
+ _events.ScheduleEvent(EVENT_UTHER_8, 12000);
+ break;
+ case EVENT_UTHER_8:
+ Talk(SAY_UTHER_QUEL_DELAR_4);
+ _events.ScheduleEvent(EVENT_UTHER_9, 7000);
+ break;
+ case EVENT_UTHER_9:
+ Talk(SAY_UTHER_QUEL_DELAR_5);
+ _events.ScheduleEvent(EVENT_UTHER_10, 10000);
+ break;
+ case EVENT_UTHER_10:
+ Talk(SAY_UTHER_QUEL_DELAR_6);
+ _events.ScheduleEvent(EVENT_UTHER_11, 5000);
+ break;
+ case EVENT_UTHER_11:
+ DoCast(me, SPELL_ESSENCE_OF_CAPTURED_1, true);
+ me->DespawnOrUnsummon(3000);
+ _instance->SetData(DATA_QUEL_DELAR_EVENT, DONE);
+ break;
+ case EVENT_UTHER_FACING:
+ if (Creature* bunny = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_FROSTMOURNE_ALTAR_BUNNY)))
+ me->SetFacingToObject(bunny);
+ _events.ScheduleEvent(EVENT_UTHER_KNEEL, 1000);
+ break;
+ case EVENT_UTHER_KNEEL:
+ me->HandleEmoteCommand(EMOTE_STATE_KNEEL);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ private:
+ EventMap _events;
+ InstanceScript* _instance;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const override
+ {
+ return GetHallsOfReflectionAI<npc_uther_quel_delarAI>(creature);
+ }
+};
+
+class npc_quel_delar_sword : public CreatureScript
+{
+ public:
+ npc_quel_delar_sword() : CreatureScript("npc_quel_delar_sword") { }
+
+ struct npc_quel_delar_swordAI : public ScriptedAI
+ {
+ npc_quel_delar_swordAI(Creature* creature) : ScriptedAI(creature)
+ {
+ _instance = me->GetInstanceScript();
+ me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
+ _intro = true;
+ }
+
+ void Reset() override
+ {
+ _events.Reset();
+ me->SetSpeed(MOVE_FLIGHT, 4.5f, true);
+ DoCast(SPELL_WHIRLWIND_VISUAL);
+ if (_intro)
+ _events.ScheduleEvent(EVENT_QUEL_DELAR_INIT, 0);
+ else
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
+ }
+
+ void EnterCombat(Unit* /*victim*/) override
+ {
+ _events.ScheduleEvent(EVENT_QUEL_DELAR_HEROIC_STRIKE, 4000);
+ _events.ScheduleEvent(EVENT_QUEL_DELAR_BLADESTORM, 6000);
+ _events.ScheduleEvent(EVENT_QUEL_DELAR_WHIRLWIND, 6000);
+ }
+
+ void JustDied(Unit* /*killer*/) override
+ {
+ if (Creature* uther = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_UTHER_QUEL_DELAR)))
+ uther->AI()->DoAction(ACTION_UTHER_OUTRO);
+ }
+
+ void MovementInform(uint32 type, uint32 pointId) override
+ {
+ if (type != EFFECT_MOTION_TYPE)
+ return;
+
+ switch (pointId)
+ {
+ case POINT_TAKE_OFF:
+ _events.ScheduleEvent(EVENT_QUEL_DELAR_FLIGHT, 0);
+ break;
+ default:
+ break;
+ }
+ }
+
+ void UpdateAI(uint32 diff) override
+ {
+ _events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ if (!UpdateVictim())
+ {
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_QUEL_DELAR_INIT:
+ if (Creature* bunny = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_FROSTMOURNE_ALTAR_BUNNY)))
+ bunny->AI()->Talk(SAY_FROSTMOURNE_BUNNY);
+ _intro = false;
+ _events.ScheduleEvent(EVENT_QUEL_DELAR_FLIGHT_INIT, 2500);
+ break;
+ case EVENT_QUEL_DELAR_FLIGHT_INIT:
+ me->GetMotionMaster()->MoveTakeoff(POINT_TAKE_OFF, QuelDelarMovement[0]);
+ break;
+ case EVENT_QUEL_DELAR_FLIGHT:
+ {
+ Movement::MoveSplineInit init(me);
+ FillCirclePath(QuelDelarCenterPos, 18.0f, 718.046f, init.Path(), true);
+ init.SetFly();
+ init.SetCyclic();
+ init.SetAnimation(Movement::ToFly);
+ init.Launch();
+
+ _events.ScheduleEvent(EVENT_QUEL_DELAR_LAND, 15000);
+ break;
+ }
+ case EVENT_QUEL_DELAR_LAND:
+ me->StopMoving();
+ me->GetMotionMaster()->Clear();
+ me->GetMotionMaster()->MoveLand(0, QuelDelarMovement[1]);
+ _events.ScheduleEvent(EVENT_QUEL_DELAR_FIGHT, 6000);
+ break;
+ case EVENT_QUEL_DELAR_FIGHT:
+ Talk(SAY_QUEL_DELAR_SWORD);
+ me->GetMotionMaster()->MovePoint(0, QuelDelarMovement[2]);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ else
+ {
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_QUEL_DELAR_BLADESTORM:
+ DoCast(me, SPELL_BLADESTORM);
+ _events.ScheduleEvent(EVENT_QUEL_DELAR_BLADESTORM, 10000);
+ break;
+ case EVENT_QUEL_DELAR_HEROIC_STRIKE:
+ DoCastVictim(SPELL_HEROIC_STRIKE);
+ _events.ScheduleEvent(EVENT_QUEL_DELAR_HEROIC_STRIKE, 6000);
+ break;
+ case EVENT_QUEL_DELAR_WHIRLWIND:
+ DoCastAOE(SPELL_WHIRLWIND);
+ _events.ScheduleEvent(EVENT_QUEL_DELAR_WHIRLWIND, 1000);
+ break;
+ default:
+ break;
+ }
+ }
+
+ DoMeleeAttackIfReady();
+ }
+ }
+
+ private:
+ void FillCirclePath(Position const& centerPos, float radius, float z, Movement::PointsArray& path, bool clockwise)
+ {
+ float step = clockwise ? -M_PI / 8.0f : M_PI / 8.0f;
+ float angle = centerPos.GetAngle(me->GetPositionX(), me->GetPositionY());
+
+ for (uint8 i = 0; i < 16; angle += step, ++i)
+ {
+ G3D::Vector3 point;
+ point.x = centerPos.GetPositionX() + radius * cosf(angle);
+ point.y = centerPos.GetPositionY() + radius * sinf(angle);
+ point.z = z;
+ path.push_back(point);
+ }
+ }
+
+ EventMap _events;
+ InstanceScript* _instance;
+ bool _intro;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const override
+ {
+ return GetHallsOfReflectionAI<npc_quel_delar_swordAI>(creature);
+ }
+};
+
+// 5660
+class at_hor_uther_quel_delar_start : public AreaTriggerScript
+{
+ public:
+ at_hor_uther_quel_delar_start() : AreaTriggerScript("at_hor_uther_quel_delar_start") { }
+
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/) override
+ {
+ if (player->IsGameMaster())
+ return true;
+
+ InstanceScript* _instance = player->GetInstanceScript();
+
+ if (_instance->GetData(DATA_QUEL_DELAR_EVENT) == IN_PROGRESS)
+ if (Creature* uther = ObjectAccessor::GetCreature(*player, _instance->GetGuidData(DATA_UTHER_QUEL_DELAR)))
+ uther->AI()->DoAction(ACTION_UTHER_START_SCREAM);
+
+ return true;
+ }
+};
+
// 72900 - Start Halls of Reflection Quest AE
class spell_hor_start_halls_of_reflection_quest_ae : public SpellScriptLoader
{
@@ -2447,6 +2858,7 @@ void AddSC_halls_of_reflection()
new at_hor_waves_restarter();
new at_hor_impenetrable_door();
new at_hor_shadow_throne();
+ new at_hor_uther_quel_delar_start();
new npc_jaina_or_sylvanas_intro_hor();
new npc_jaina_or_sylvanas_escape_hor();
new npc_the_lich_king_escape_hor();
@@ -2461,6 +2873,8 @@ void AddSC_halls_of_reflection()
new npc_raging_ghoul();
new npc_risen_witch_doctor();
new npc_lumbering_abomination();
+ new npc_uther_quel_delar();
+ new npc_quel_delar_sword();
new spell_hor_start_halls_of_reflection_quest_ae();
new spell_hor_evasion();
new spell_hor_gunship_cannon_fire();
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h
index 9594617fa9a..d2f9ab5d262 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h
@@ -46,7 +46,13 @@ enum DataTypes
DATA_ESCAPE_LEADER = 10,
DATA_ICEWALL = 11,
DATA_ICEWALL_TARGET = 12,
- DATA_GUNSHIP = 13
+ DATA_GUNSHIP = 13,
+
+ // Quest stuff
+ DATA_QUEL_DELAR_EVENT = 14,
+ DATA_FROSTMOURNE_ALTAR_BUNNY = 15,
+ DATA_UTHER_QUEL_DELAR = 16,
+ DATA_QUEL_DELAR_INVOKER = 17
};
enum CreatureIds
@@ -131,7 +137,8 @@ enum InstanceEvents
EVENT_NEXT_WAVE = 2,
EVENT_DO_WIPE = 3,
EVENT_ADD_WAVE = 4,
- EVENT_SPAWN_ESCAPE_EVENT = 5
+ EVENT_SPAWN_ESCAPE_EVENT = 5,
+ EVENT_QUEL_DELAR_SUMMON_UTHER = 6
};
enum InstanceEventIds
@@ -160,7 +167,17 @@ enum InstanceSpells
// Gunship
SPELL_GUNSHIP_CANNON_FIRE = 70017,
SPELL_GUNSHIP_CANNON_FIRE_MISSILE_ALLIANCE = 70021,
- SPELL_GUNSHIP_CANNON_FIRE_MISSILE_HORDE = 70246
+ SPELL_GUNSHIP_CANNON_FIRE_MISSILE_HORDE = 70246,
+
+ // Halls of Reflection quest
+ SPELL_QUEL_DELAR_COMPULSION = 70013,
+ SPELL_ESSENCE_OF_CAPTURED = 70720
+};
+
+enum InstanceQuests
+{
+ QUEST_HALLS_OF_REFLECTION_ALLIANCE = 24480,
+ QUEST_HALLS_OF_REFLECTION_HORDE = 24561
};
enum InstanceWorldStates
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 ea2a1539f1c..660a639487f 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
@@ -73,6 +73,8 @@ Position const SpawnPos[] =
{ 5299.250f, 2035.998f, 707.7781f, 5.026548f }
};
+Position const UtherQuelDalarPos = { 5302.001f, 1988.698f, 707.7781f, 3.700098f };
+
class instance_halls_of_reflection : public InstanceMapScript
{
public:
@@ -89,6 +91,7 @@ class instance_halls_of_reflection : public InstanceMapScript
_waveCount = 0;
_introState = NOT_STARTED;
_frostswornGeneralState = NOT_STARTED;
+ _quelDelarState = NOT_STARTED;
events.Reset();
}
@@ -159,6 +162,9 @@ class instance_halls_of_reflection : public InstanceMapScript
case NPC_ICE_WALL_TARGET:
IcewallTargetGUID = creature->GetGUID();
break;
+ case NPC_UTHER:
+ UtherGUID = creature->GetGUID();
+ break;
default:
break;
}
@@ -439,6 +445,18 @@ class instance_halls_of_reflection : public InstanceMapScript
HandleGameObject(ShadowThroneDoorGUID, true);
_frostswornGeneralState = data;
break;
+ case DATA_QUEL_DELAR_EVENT:
+ if (data == IN_PROGRESS)
+ {
+ if (_quelDelarState == NOT_STARTED)
+ {
+ if (Creature* bunny = instance->GetCreature(FrostmourneAltarBunnyGUID))
+ bunny->CastSpell((Unit*)NULL, SPELL_ESSENCE_OF_CAPTURED);
+ events.ScheduleEvent(EVENT_QUEL_DELAR_SUMMON_UTHER, 2000);
+ }
+ }
+ _quelDelarState = data;
+ break;
default:
break;
}
@@ -446,6 +464,18 @@ class instance_halls_of_reflection : public InstanceMapScript
SaveToDB();
}
+ void SetGuidData(uint32 type, ObjectGuid data) override
+ {
+ switch (type)
+ {
+ case DATA_QUEL_DELAR_INVOKER:
+ QuelDelarInvokerGUID = data;
+ break;
+ default:
+ break;
+ }
+ }
+
// wave scheduling, checked when wave npcs die
void OnUnitDeath(Unit* unit) override
{
@@ -491,6 +521,9 @@ class instance_halls_of_reflection : public InstanceMapScript
case EVENT_SPAWN_ESCAPE_EVENT:
SpawnEscapeEvent();
break;
+ case EVENT_QUEL_DELAR_SUMMON_UTHER:
+ instance->SummonCreature(NPC_UTHER, UtherQuelDalarPos);
+ break;
}
}
@@ -649,6 +682,8 @@ class instance_halls_of_reflection : public InstanceMapScript
return _introState;
case DATA_FROSTSWORN_GENERAL:
return _frostswornGeneralState;
+ case DATA_QUEL_DELAR_EVENT:
+ return _quelDelarState;
default:
break;
}
@@ -682,6 +717,12 @@ class instance_halls_of_reflection : public InstanceMapScript
return IcewallGUID;
case DATA_ICEWALL_TARGET:
return IcewallTargetGUID;
+ case DATA_FROSTMOURNE_ALTAR_BUNNY:
+ return FrostmourneAltarBunnyGUID;
+ case DATA_UTHER_QUEL_DELAR:
+ return UtherGUID;
+ case DATA_QUEL_DELAR_INVOKER:
+ return QuelDelarInvokerGUID;
default:
break;
}
@@ -691,7 +732,7 @@ class instance_halls_of_reflection : public InstanceMapScript
void WriteSaveDataMore(std::ostringstream& data) override
{
- data << _introState << ' ' << _frostswornGeneralState;
+ data << _introState << ' ' << _frostswornGeneralState << ' ' << _quelDelarState;
}
void ReadSaveDataMore(std::istringstream& data) override
@@ -708,6 +749,12 @@ class instance_halls_of_reflection : public InstanceMapScript
SetData(DATA_FROSTSWORN_GENERAL, DONE);
else
SetData(DATA_FROSTSWORN_GENERAL, NOT_STARTED);
+
+ data >> temp;
+ if (temp == DONE)
+ SetData(DATA_QUEL_DELAR_EVENT, DONE);
+ else
+ SetData(DATA_QUEL_DELAR_EVENT, NOT_STARTED);
}
private:
@@ -731,6 +778,7 @@ class instance_halls_of_reflection : public InstanceMapScript
uint32 _waveCount;
uint32 _introState;
uint32 _frostswornGeneralState;
+ uint32 _quelDelarState;
EventMap events;
GuidSet waveGuidList[8];
@@ -740,6 +788,8 @@ class instance_halls_of_reflection : public InstanceMapScript
ObjectGuid CaptainGUID;
ObjectGuid IcewallGUID;
ObjectGuid IcewallTargetGUID;
+ ObjectGuid QuelDelarInvokerGUID;
+ ObjectGuid UtherGUID;
GuidSet GunshipCannonGUIDs;
GuidSet GunshipStairGUIDs;
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
index 4c6fd0f2fcc..63082808e03 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
@@ -1259,7 +1259,7 @@ class spell_putricide_mutated_plague : public SpellScriptLoader
return;
uint32 triggerSpell = GetSpellInfo()->Effects[aurEff->GetEffIndex()].TriggerSpell;
- SpellInfo const* spell = sSpellMgr->GetSpellInfo(triggerSpell);
+ SpellInfo const* spell = sSpellMgr->EnsureSpellInfo(triggerSpell);
spell = sSpellMgr->GetSpellForDifficultyFromSpell(spell, caster);
int32 damage = spell->Effects[EFFECT_0].CalcValue(caster);
diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp
index f73930181f0..91c796a6e69 100644
--- a/src/server/scripts/Northrend/zone_zuldrak.cpp
+++ b/src/server/scripts/Northrend/zone_zuldrak.cpp
@@ -313,7 +313,7 @@ public:
{
player->KilledMonsterCredit(gymerDummy->GetEntry(), gymerDummy->GetGUID());
gymerDummy->CastSpell(gymerDummy, SPELL_GYMER_LOCK_EXPLOSION, true);
- gymerDummy->DespawnOrUnsummon();
+ gymerDummy->DespawnOrUnsummon(4 * IN_MILLISECONDS);
}
}
return true;
diff --git a/src/server/shared/DataStores/DBCStore.h b/src/server/shared/DataStores/DBCStore.h
index 10d4ff1bec9..1cb67a4235e 100644
--- a/src/server/shared/DataStores/DBCStore.h
+++ b/src/server/shared/DataStores/DBCStore.h
@@ -87,6 +87,13 @@ class DBCStorage
return (id >= nCount) ? NULL : indexTable.asT[id];
}
+ T const* AssertEntry(uint32 id) const
+ {
+ T const* entry = LookupEntry(id);
+ ASSERT(entry);
+ return entry;
+ }
+
uint32 GetNumRows() const { return nCount; }
char const* GetFormat() const { return fmt; }
uint32 GetFieldCount() const { return fieldCount; }
diff --git a/src/server/shared/Database/DatabaseWorkerPool.h b/src/server/shared/Database/DatabaseWorkerPool.h
index 5a06ad69a1d..f0ddbe91ad8 100644
--- a/src/server/shared/Database/DatabaseWorkerPool.h
+++ b/src/server/shared/Database/DatabaseWorkerPool.h
@@ -29,6 +29,8 @@
#include "QueryHolder.h"
#include "AdhocStatement.h"
+#include <mysqld_error.h>
+
#define MIN_MYSQL_SERVER_VERSION 50100u
#define MIN_MYSQL_CLIENT_VERSION 50100u
@@ -368,7 +370,8 @@ class DatabaseWorkerPool
void DirectCommitTransaction(SQLTransaction& transaction)
{
T* con = GetFreeConnection();
- if (con->ExecuteTransaction(transaction))
+ int errorCode = con->ExecuteTransaction(transaction);
+ if (!errorCode)
{
con->Unlock(); // OK, operation succesful
return;
@@ -376,12 +379,12 @@ class DatabaseWorkerPool
//! Handle MySQL Errno 1213 without extending deadlock to the core itself
/// @todo More elegant way
- if (con->GetLastError() == 1213)
+ if (errorCode == ER_LOCK_DEADLOCK)
{
uint8 loopBreaker = 5;
for (uint8 i = 0; i < loopBreaker; ++i)
{
- if (con->ExecuteTransaction(transaction))
+ if (!con->ExecuteTransaction(transaction))
break;
}
}
diff --git a/src/server/shared/Database/MySQLConnection.cpp b/src/server/shared/Database/MySQLConnection.cpp
index bea229df184..1a9f973d47b 100644
--- a/src/server/shared/Database/MySQLConnection.cpp
+++ b/src/server/shared/Database/MySQLConnection.cpp
@@ -359,11 +359,11 @@ void MySQLConnection::CommitTransaction()
Execute("COMMIT");
}
-bool MySQLConnection::ExecuteTransaction(SQLTransaction& transaction)
+int MySQLConnection::ExecuteTransaction(SQLTransaction& transaction)
{
std::list<SQLElementData> const& queries = transaction->m_queries;
if (queries.empty())
- return false;
+ return -1;
BeginTransaction();
@@ -380,8 +380,9 @@ bool MySQLConnection::ExecuteTransaction(SQLTransaction& transaction)
if (!Execute(stmt))
{
TC_LOG_WARN("sql.sql", "Transaction aborted. %u queries not executed.", (uint32)queries.size());
+ int errorCode = GetLastError();
RollbackTransaction();
- return false;
+ return errorCode;
}
}
break;
@@ -392,8 +393,9 @@ bool MySQLConnection::ExecuteTransaction(SQLTransaction& transaction)
if (!Execute(sql))
{
TC_LOG_WARN("sql.sql", "Transaction aborted. %u queries not executed.", (uint32)queries.size());
+ int errorCode = GetLastError();
RollbackTransaction();
- return false;
+ return errorCode;
}
}
break;
@@ -406,7 +408,7 @@ bool MySQLConnection::ExecuteTransaction(SQLTransaction& transaction)
// and not while iterating over every element.
CommitTransaction();
- return true;
+ return 0;
}
MySQLPreparedStatement* MySQLConnection::GetPreparedStatement(uint32 index)
diff --git a/src/server/shared/Database/MySQLConnection.h b/src/server/shared/Database/MySQLConnection.h
index 33f17d02228..d486f5b4679 100644
--- a/src/server/shared/Database/MySQLConnection.h
+++ b/src/server/shared/Database/MySQLConnection.h
@@ -86,7 +86,7 @@ class MySQLConnection
void BeginTransaction();
void RollbackTransaction();
void CommitTransaction();
- bool ExecuteTransaction(SQLTransaction& transaction);
+ int ExecuteTransaction(SQLTransaction& transaction);
operator bool () const { return m_Mysql != NULL; }
void Ping() { mysql_ping(m_Mysql); }
diff --git a/src/server/shared/Database/Transaction.cpp b/src/server/shared/Database/Transaction.cpp
index 3dee865267b..b83b787a106 100644
--- a/src/server/shared/Database/Transaction.cpp
+++ b/src/server/shared/Database/Transaction.cpp
@@ -17,6 +17,7 @@
#include "DatabaseEnv.h"
#include "Transaction.h"
+#include <mysqld_error.h>
//- Append a raw ad-hoc query to the transaction
void Transaction::Append(const char* sql)
@@ -74,14 +75,15 @@ void Transaction::Cleanup()
bool TransactionTask::Execute()
{
- if (m_conn->ExecuteTransaction(m_trans))
+ int errorCode = m_conn->ExecuteTransaction(m_trans);
+ if (!errorCode)
return true;
- if (m_conn->GetLastError() == 1213)
+ if (errorCode == ER_LOCK_DEADLOCK)
{
uint8 loopBreaker = 5; // Handle MySQL Errno 1213 without extending deadlock to the core itself
for (uint8 i = 0; i < loopBreaker; ++i)
- if (m_conn->ExecuteTransaction(m_trans))
+ if (!m_conn->ExecuteTransaction(m_trans))
return true;
}
diff --git a/src/server/shared/Debugging/Errors.h b/src/server/shared/Debugging/Errors.h
index df770c2aa47..4d4624b63dd 100644
--- a/src/server/shared/Debugging/Errors.h
+++ b/src/server/shared/Debugging/Errors.h
@@ -49,4 +49,10 @@ namespace Trinity
#define ASSERT WPAssert
+template <typename T> inline T* ASSERT_NOTNULL(T* pointer)
+{
+ ASSERT(pointer);
+ return pointer;
+}
+
#endif
diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist
index eaef902addc..010c73779bc 100644
--- a/src/server/worldserver/worldserver.conf.dist
+++ b/src/server/worldserver/worldserver.conf.dist
@@ -3029,33 +3029,54 @@ AuctionHouseBot.Buyer.Horde.Enabled = 0
AuctionHouseBot.Buyer.Neutral.Enabled = 0
#
-# AuctionHouseBot.BuyPrice.Buyer
-# Description: Should the Buyer use BuyPrice or SellPrice to determine Bid Prices
-# Default: 1 - (use BuyPrice)
-# 0 - (use SellPrice)
-
-AuctionHouseBot.Buyer.Buyprice = 1
+# AuctionHouseBot.Buyer.Baseprice.QUALITY
+# Description: Base sellprices in copper for non priced items for each quality.
+# The default values are based on average item prices of each quality.
+# Defaults: Gray 3504
+# White 5429
+# Green 21752
+# Blue 36463
+# Purple 87124
+# Orange 214347
+# Yellow 407406
+
+AuctionHouseBot.Buyer.Baseprice.Gray = 3504
+AuctionHouseBot.Buyer.Baseprice.White = 5429
+AuctionHouseBot.Buyer.Baseprice.Green = 21752
+AuctionHouseBot.Buyer.Baseprice.Blue = 36463
+AuctionHouseBot.Buyer.Baseprice.Purple = 87124
+AuctionHouseBot.Buyer.Baseprice.Orange = 214347
+AuctionHouseBot.Buyer.Baseprice.Yellow = 407406
+
+#
+# AuctionHouseBot.Buyer.ChanceMultiplier.QUALITY
+# Description: Multipliers for the buy/bid chances for each quality. 100 means the chance is 100% of the original,
+# 1 would mean 1 % of the original and 200 would mean 200% of the original chance.
+# Defaults: Gray 100
+# White 100
+# Green 100
+# Blue 100
+# Purple 100
+# Orange 100
+# Yellow 100
+
+AuctionHouseBot.Buyer.ChanceMultiplier.Gray = 100
+AuctionHouseBot.Buyer.ChanceMultiplier.White = 100
+AuctionHouseBot.Buyer.ChanceMultiplier.Green = 100
+AuctionHouseBot.Buyer.ChanceMultiplier.Blue = 100
+AuctionHouseBot.Buyer.ChanceMultiplier.Purple = 100
+AuctionHouseBot.Buyer.ChanceMultiplier.Orange = 100
+AuctionHouseBot.Buyer.ChanceMultiplier.Yellow = 100
#
# AuctionHouseBot.Buyer.Recheck.Interval
-# Description: This specifies the time interval (in minutes) between two evaluations of the same selled item.
-# The lesser this value is, the more chances you give for item to be bought by ahbot.
+# Description: This specifies the time interval (in minutes) between two evaluations of the same sold item.
+# The smaller this value is, the more chances you give for an item to be bought by ahbot.
# Default: 20 (20min.)
AuctionHouseBot.Buyer.Recheck.Interval = 20
#
-# AuctionHouseBot.Buyer.Alliance.Chance.Ratio
-# Description: Chance ratio for the buyer to buy an item. Higher the value, lesser the probability
-# Example: 3 (1 out of 3 change, that is, 33%).
-# Default: 3
-#
-
-AuctionHouseBot.Buyer.Alliance.Chance.Ratio = 3
-AuctionHouseBot.Buyer.Horde.Chance.Ratio = 3
-AuctionHouseBot.Buyer.Neutral.Chance.Ratio = 3
-
-#
###################################################################################################
###################################################################################################