aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md3
-rw-r--r--dep/PackageList.txt2
-rw-r--r--dep/cppformat/format.h10
-rw-r--r--sql/updates/world/2015_04_04_00_world.sql117
-rw-r--r--sql/updates/world/2015_04_04_01_world.sql118
-rw-r--r--sql/updates/world/2015_04_04_02_world.sql9
-rw-r--r--sql/updates/world/2015_04_04_03_world.sql42
-rw-r--r--sql/updates/world/2015_04_04_04_world.sql124
-rw-r--r--sql/updates/world/2015_04_04_05_world.sql40
-rw-r--r--sql/updates/world/2015_04_04_06_world.sql7
-rw-r--r--sql/updates/world/2015_04_05_00_world.sql234
-rw-r--r--sql/updates/world/2015_04_05_01_world.sql72
-rw-r--r--sql/updates/world/2015_04_05_02_world.sql2
-rw-r--r--sql/updates/world/2015_04_05_03_world.sql4
-rw-r--r--sql/updates/world/2015_04_05_04_world.sql33
-rw-r--r--sql/updates/world/2015_04_05_05_world.sql7
-rw-r--r--sql/updates/world/2015_04_05_06_world_335.sql2
-rw-r--r--sql/updates/world/2015_04_05_07_world.sql118
-rw-r--r--sql/updates/world/2015_04_06_00_world.sql94
-rw-r--r--sql/updates/world/2015_04_06_01_world.sql114
-rw-r--r--sql/updates/world/2015_04_06_02_world.sql31
-rw-r--r--sql/updates/world/2015_04_06_03_world.sql19
-rw-r--r--sql/updates/world/2015_04_06_04_world.sql4
-rw-r--r--sql/updates/world/2015_04_06_05_world.sql117
-rw-r--r--sql/updates/world/2015_04_07_00_world.sql21
-rw-r--r--sql/updates/world/2015_04_07_02_world.sql358
-rw-r--r--sql/updates/world/2015_04_08_00_world.sql7
-rw-r--r--sql/updates/world/2015_04_08_01_world.sql16
-rw-r--r--sql/updates/world/2015_04_09_00_world.sql2
-rw-r--r--sql/updates/world/2015_04_09_01_world.sql3
-rw-r--r--sql/updates/world/2015_04_09_02_world.sql2
-rw-r--r--sql/updates/world/2015_04_09_03_world.sql14
-rw-r--r--sql/updates/world/2015_04_10_00_world.sql2
-rw-r--r--sql/updates/world/2015_04_10_01_world.sql46
-rw-r--r--sql/updates/world/2015_04_11_00_world.sql23
-rw-r--r--sql/updates/world/2015_04_11_01_world.sql1126
-rw-r--r--sql/updates/world/2015_04_11_02_world.sql2
-rw-r--r--src/server/collision/Management/VMapManager2.cpp2
-rw-r--r--src/server/game/DataStores/DBCStores.cpp21
-rw-r--r--src/server/game/DataStores/DBCStores.h2
-rw-r--r--src/server/game/DataStores/DBCStructure.h29
-rw-r--r--src/server/game/DataStores/DBCfmt.h1
-rw-r--r--src/server/game/DungeonFinding/LFGMgr.cpp12
-rw-r--r--src/server/game/Entities/Player/Player.cpp105
-rw-r--r--src/server/game/Entities/Player/Player.h3
-rw-r--r--src/server/game/Entities/Transport/Transport.cpp2
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp7
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp30
-rw-r--r--src/server/game/Server/WorldSession.cpp1
-rw-r--r--src/server/game/Server/WorldSocket.cpp107
-rw-r--r--src/server/game/Server/WorldSocket.h12
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp2
-rw-r--r--src/server/game/Spells/SpellInfo.cpp10
-rw-r--r--src/server/scripts/Commands/cs_account.cpp2
-rw-r--r--src/server/scripts/Commands/cs_misc.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/zone_hinterlands.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/zone_undercity.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp10
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_ashenvale.cpp133
-rw-r--r--src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_winterspring.cpp4
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp2
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp2
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp6
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp2
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp2
-rw-r--r--src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp2
-rw-r--r--src/server/scripts/Northrend/zone_grizzly_hills.cpp6
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPZM.h10
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp2
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp2
-rw-r--r--src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp2
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp4
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp2
-rw-r--r--src/server/scripts/Outland/zone_blades_edge_mountains.cpp196
-rw-r--r--src/server/scripts/Outland/zone_hellfire_peninsula.cpp2
-rw-r--r--src/server/scripts/Spells/spell_item.cpp2
-rw-r--r--src/server/shared/Dynamic/ObjectRegistry.h4
-rw-r--r--src/server/shared/Logging/Log.h2
-rw-r--r--src/server/shared/Networking/Socket.h6
-rw-r--r--src/server/shared/Updater/DBUpdater.cpp27
-rw-r--r--src/server/shared/Updater/UpdateFetcher.cpp2
-rw-r--r--src/server/shared/Updater/UpdateFetcher.h19
-rw-r--r--src/server/shared/Utilities/ServiceWin32.cpp2
-rw-r--r--src/server/worldserver/Main.cpp2
-rw-r--r--src/tools/map_extractor/System.cpp37
-rw-r--r--src/tools/vmap4_assembler/CMakeLists.txt1
-rw-r--r--src/tools/vmap4_extractor/vmapexport.cpp25
109 files changed, 3380 insertions, 493 deletions
diff --git a/README.md b/README.md
index d92b3848c94..33b7349d9f1 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,7 @@
# ![logo](http://www.trinitycore.org/f/public/style_images/1_trinitycore.png) TrinityCore
-[![Coverity Scan Build Status](https://scan.coverity.com/projects/435/badge.svg)](https://scan.coverity.com/projects/435)
+`6.x`: [![Coverity Scan Build Status](https://scan.coverity.com/projects/435/badge.svg)](https://scan.coverity.com/projects/435)
+`3.3.5`: [![Coverity Scan Build Status](https://scan.coverity.com/projects/4656/badge.svg)](https://scan.coverity.com/projects/4656)
[![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)
diff --git a/dep/PackageList.txt b/dep/PackageList.txt
index 63b41e4813e..9c5e66a955e 100644
--- a/dep/PackageList.txt
+++ b/dep/PackageList.txt
@@ -14,7 +14,7 @@ bzip2 (a freely available, patent free, high-quality data compressor)
cppformat (type safe format library)
https://github.com/cppformat/cppformat
- Version: 1.1.0 aab64b55a4c5db598c123e1a2770b9eb6507d7d8
+ Version: 1.1.0 fd53bb6fb88a23e38ec4fe331bfe95d7372d49c9
G3D (a commercial-grade C++ 3D engine available as Open Source (BSD License)
http://g3d.sourceforge.net/
diff --git a/dep/cppformat/format.h b/dep/cppformat/format.h
index 3a82f8272c0..8d54bf521c7 100644
--- a/dep/cppformat/format.h
+++ b/dep/cppformat/format.h
@@ -800,6 +800,10 @@ struct EnableIf {};
template<class T>
struct EnableIf<true, T> { typedef T type; };
+// A helper function to suppress bogus "conditional expression is constant"
+// warnings.
+inline bool check(bool value) { return value; }
+
// Makes an Arg object from any type.
template <typename Char>
class MakeValue : public Arg {
@@ -859,7 +863,7 @@ class MakeValue : public Arg {
MakeValue(long value) {
// To minimize the number of types we need to deal with, long is
// translated either to int or to long long depending on its size.
- if (sizeof(long) == sizeof(int))
+ if (check(sizeof(long) == sizeof(int)))
int_value = static_cast<int>(value);
else
long_long_value = value;
@@ -869,7 +873,7 @@ class MakeValue : public Arg {
}
MakeValue(unsigned long value) {
- if (sizeof(unsigned long) == sizeof(unsigned))
+ if (check(sizeof(unsigned long) == sizeof(unsigned)))
uint_value = static_cast<unsigned>(value);
else
ulong_long_value = value;
@@ -2634,7 +2638,7 @@ struct ArgArraySize {
Arg array[fmt::internal::ArgArraySize<sizeof...(Args)>::VALUE] = { \
fmt::internal::MakeValue<Char>(args)... \
}; \
- if (sizeof...(Args) > fmt::ArgList::MAX_PACKED_ARGS) \
+ if (fmt::internal::check((sizeof...(Args) > fmt::ArgList::MAX_PACKED_ARGS))) \
set_types(array, args...); \
call(FMT_FOR_EACH(FMT_GET_ARG_NAME, __VA_ARGS__), \
fmt::ArgList(fmt::internal::make_type(args...), array)); \
diff --git a/sql/updates/world/2015_04_04_00_world.sql b/sql/updates/world/2015_04_04_00_world.sql
new file mode 100644
index 00000000000..6b6621136e0
--- /dev/null
+++ b/sql/updates/world/2015_04_04_00_world.sql
@@ -0,0 +1,117 @@
+-- Lil Timmy c.8666 - Stormwind
+-- correct spawn point, spawntime, waypoints.
+SET @GUID:= 23427; -- 1 free guid set by tc
+DELETE FROM `creature_formations` WHERE `leaderGUID`=45501;
+INSERT INTO `creature_formations` (`leaderGUID`,`memberGUID`,`dist`,`angle`,`groupAI`) VALUES
+(45501,45501,0,0,2),
+(45501,@GUID,2,0,2);
+
+-- White Kitten - missing added
+DELETE FROM `creature` WHERE `guid`=@GUID;
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `curhealth`, `spawndist`, `MovementType`) VALUES
+(@GUID, 7386, 0, 1, 1, -8632.046875, 921.279480, 99.382813, 3.897803, 180, 42, 0, 0);
+
+UPDATE `creature` SET `position_x` =-8634.505859, `position_y` = 918.960571, `position_z` = 99.354980, `orientation` = 3.832987, `MovementType` = 2, `spawntimesecs` = 5400 WHERE `guid` = 45501;
+UPDATE `creature` SET `position_x` =-8583.879883 , `position_y` =633.127014 , `position_z` =96.338028 , `orientation` =4.989326 WHERE `guid` = 79816;
+UPDATE `creature` SET `position_x` =-8582.030273 , `position_y` =633.633972 , `position_z` =96.338028 , `orientation` =4.989326 WHERE `guid` = 79815;
+UPDATE `creature` SET `position_x` =-8580.509766 , `position_y` =635.107971 , `position_z` =96.338028 , `orientation` =4.989326 WHERE `guid` = 79817;
+
+UPDATE `creature_template` SET `MovementType` = 2 WHERE `entry` = 8666;
+DELETE FROM `creature_addon` WHERE `guid`=45501;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(45501,455010,0,0,1,0,'');
+
+DELETE FROM `waypoint_data` WHERE `id`=455010;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
+(455010,1,-8641.4,912.342,99.1397,0,0,0,0,100,0),
+(455010,2,-8661.71,894.74,97.6239,0,0,0,0,100,0),
+(455010,3,-8679.15,880.967,97.0168,0,0,0,0,100,0),
+(455010,4,-8681.12,877.654,97.0168,0,0,0,0,100,0),
+(455010,5,-8679.29,873.082,97.0168,0,0,0,0,100,0),
+(455010,6,-8659.98,849.329,97.0168,0,0,0,0,100,0),
+(455010,7,-8639.96,825.073,96.6251,0,0,0,0,100,0),
+(455010,8,-8636.74,813.025,96.6486,0,0,0,0,100,0),
+(455010,9,-8634,793.001,96.6508,0,0,0,0,100,0),
+(455010,10,-8635.94,785.58,96.6515,0,0,0,0,100,0),
+(455010,11,-8651.43,775.162,96.6714,0,0,0,0,100,0),
+(455010,12,-8661.39,764.974,96.6998,0,0,0,0,100,0),
+(455010,13,-8662.58,758.134,96.6947,0,0,0,0,100,0),
+(455010,14,-8647.73,738.576,96.6965,0,0,0,0,100,0),
+(455010,15,-8630.74,726.606,96.7377,0,0,0,0,100,0),
+(455010,16,-8618.88,711.997,96.7248,0,0,0,0,100,0),
+(455010,17,-8614.67,709.545,96.7549,0,0,0,0,100,0),
+(455010,18,-8606.13,711.345,96.7382,0,0,0,0,100,0),
+(455010,19,-8598.07,712.945,96.6746,0,0,0,0,100,0),
+(455010,20,-8588.25,706.887,97.0168,0,0,0,0,100,0),
+(455010,21,-8566.09,678.512,97.0168,0,0,0,0,100,0),
+(455010,22,-8561.86,674.735,97.0168,0,0,0,0,100,0),
+(455010,23,-8556.46,676.784,97.0168,0,0,0,0,100,0),
+(455010,24,-8542.79,686.774,97.6239,0,0,0,0,100,0),
+(455010,25,-8536.45,686.854,97.6775,0,0,0,0,100,0),
+(455010,26,-8531.64,683.194,98.4422,0,0,0,0,100,0),
+(455010,27,-8524.58,673.178,102.5,0,0,0,0,100,0),
+(455010,28,-8519.8,666.4,102.615,0,0,0,0,100,0),
+(455010,29,-8512.94,656.648,100.901,0,0,0,0,100,0),
+(455010,30,-8513.15,648.714,100.292,0,0,0,0,100,0),
+(455010,31,-8518.18,642.361,100.092,0,0,0,0,100,0),
+(455010,32,-8538.04,630.723,100.404,0,0,0,0,100,0),
+(455010,33,-8554.03,617.81,102.053,0,0,0,0,100,0),
+(455010,34,-8564.5,613.48,102.435,0,0,0,0,100,0),
+(455010,35,-8576.12,601.799,103.26,0,0,0,0,100,0),
+(455010,36,-8582.44,589.572,103.691,0,0,0,0,100,0),
+(455010,37,-8586.68,575.605,102.985,0,0,0,0,100,0),
+(455010,38,-8585.96,565.941,102.26,0,0,0,0,100,0),
+(455010,39,-8578.9,545.988,101.779,0,0,0,0,100,0),
+(455010,40,-8581.73,541.012,102.09,0,0,0,0,100,0),
+(455010,41,-8590.09,533.912,104.76,0,0,0,0,100,0),
+(455010,42,-8598.32,527.164,106.399,0,0,0,0,100,0),
+(455010,43,-8605.67,520.882,105.748,0,0,0,0,100,0),
+(455010,44,-8610.26,515.735,103.79,0,0,0,0,100,0),
+(455010,45,-8613.43,514.684,103.401,0,0,0,0,100,0),
+(455010,46,-8618.8,518.794,103.068,0,0,0,0,100,0),
+(455010,47,-8635.17,535.152,99.9833,0,0,0,0,100,0),
+(455010,48,-8647.39,546.721,97.8568,0,0,0,0,100,0),
+(455010,49,-8655.78,552.938,96.9435,0,0,0,0,100,0),
+(455010,50,-8671.86,552.874,97.2037,0,0,0,0,100,0),
+(455010,51,-8679.66,549.654,97.5031,0,0,0,0,100,0),
+(455010,52,-8689.63,540.268,97.828,0,0,0,0,100,0),
+(455010,53,-8698.98,530.295,97.7173,0,0,0,0,100,0),
+(455010,54,-8712.64,520.242,97.2398,0,0,0,0,100,0),
+(455010,55,-8715.24,521.571,97.4039,0,0,0,0,100,0),
+(455010,56,-8720.77,528.729,99.1496,0,0,0,0,100,0),
+(455010,57,-8729.84,539.87,101.105,0,0,0,0,100,0),
+(455010,58,-8735.95,547.101,100.845,0,0,0,0,100,0),
+(455010,59,-8745.79,557.737,97.7107,0,0,0,0,100,0),
+(455010,60,-8746.01,564.915,97.4001,0,0,0,0,100,0),
+(455010,61,-8729.92,581.294,97.6775,0,0,0,0,100,0),
+(455010,62,-8719.58,591.033,98.4713,0,0,0,0,100,0),
+(455010,63,-8712.04,594.001,98.6079,0,0,0,0,100,0),
+(455010,64,-8707.26,600.676,98.9982,0,0,0,0,100,0),
+(455010,65,-8704.46,616.407,100.215,0,0,0,0,100,0),
+(455010,66,-8705.6,629.078,100.477,0,0,0,0,100,0),
+(455010,67,-8708.67,645.787,99.9994,0,0,0,0,100,0),
+(455010,68,-8716.46,666.585,98.8681,0,0,0,0,100,0),
+(455010,69,-8724.09,676.482,98.6317,0,0,0,0,100,0),
+(455010,70,-8728.54,684.167,98.7324,0,0,0,0,100,0),
+(455010,71,-8733.47,695.151,98.723,0,0,0,0,100,0),
+(455010,72,-8743.6,709.876,98.2678,0,0,0,0,100,0),
+(455010,73,-8741.08,714.561,98.9815,0,0,0,0,100,0),
+(455010,74,-8734.46,720.119,101.647,0,0,0,0,100,0),
+(455010,75,-8726.79,726.231,100.924,0,0,0,0,100,0),
+(455010,76,-8718.09,733.687,97.9511,0,0,0,0,100,0),
+(455010,77,-8716.42,737.269,97.7782,0,0,0,0,100,0),
+(455010,78,-8721.01,746.752,97.9693,0,0,0,0,100,0),
+(455010,79,-8730.96,759.107,98.1572,0,0,0,0,100,0),
+(455010,80,-8731.99,769.385,98.0161,0,0,0,0,100,0),
+(455010,81,-8724.64,778.108,98.0604,0,0,0,0,100,0),
+(455010,82,-8717.55,792.762,97.1197,0,0,0,0,100,0),
+(455010,83,-8717.68,798.804,97.1792,0,0,0,0,100,0),
+(455010,84,-8728.3,817.744,96.9777,0,0,0,0,100,0),
+(455010,85,-8726.79,830.504,96.3102,0,0,0,0,100,0),
+(455010,86,-8723.42,841.35,96.0764,0,0,0,0,100,0),
+(455010,87,-8709.57,857.779,96.978,0,0,0,0,100,0),
+(455010,88,-8692.38,870.557,97.0284,0,0,0,0,100,0),
+(455010,89,-8679.35,880.974,97.0167,0,0,0,0,100,0),
+(455010,90,-8661.22,896.239,97.5968,0,0,0,0,100,0),
+(455010,91,-8643.7,912.233,98.9288,0,0,0,0,100,0),
+(455010,92,-8634.58,918.926,99.3551,0,0,0,0,100,0);
diff --git a/sql/updates/world/2015_04_04_01_world.sql b/sql/updates/world/2015_04_04_01_world.sql
new file mode 100644
index 00000000000..78036014011
--- /dev/null
+++ b/sql/updates/world/2015_04_04_01_world.sql
@@ -0,0 +1,118 @@
+SET @OGUID := 29742;
+SET @CGUID := 143505;
+
+UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`IN (177257,177258,177259,179504,179505,179503,179506);
+
+DELETE FROM `gameobject` where `id` IN (177257,177258,177259,179504,179505,179503,179506,179563,177219,179563,177219,177221,177211,177212,177215,179549,177217) AND `map`=429;
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(@OGUID+0, 177258, 429, 3, 1, 121.2223, 429.0921, 28.45481, 0.4188786, 0, 0, 1, -4.371139E-08, 7200, 255, 1), -- 177258 (Area: 0)
+(@OGUID+1, 177259, 429, 3, 1, 12.94134, 277.9307, -8.932899, 0, 0, 0, 1, -4.371139E-08, 7200, 255, 1), -- 177259 (Area: 5915)
+(@OGUID+2, 177257, 429, 3, 1, -92.34557, 442.6703, 28.54704, 0.4188786, 0, 0, 1, -4.371139E-08, 7200, 255, 1), -- 177257 (Area: 5915)
+(@OGUID+3, 179504, 429, 3, 1, 78.13875, 737.4021, -24.62163, 0, 0, 0, 1, -4.371139E-08, 7200, 255, 1), -- 179504 (Area: 5915)
+(@OGUID+4, 179505, 429, 3, 1, -155.4332, 734.1661, -24.62163, 0, 0, 0, 1, -4.371139E-08, 7200, 255, 1), -- 179505 (Area: 5915)
+(@OGUID+5, 179503, 429, 3, 1, -38.96511, 813.7094, -27.31784, 0, 0, 0, 1, -4.371139E-08, 7200, 255, 1), -- 179503 (Area: 5913)
+(@OGUID+6, 179506, 429, 3, 1, -38.75632, 812.5867, -3.8761, 0, 0, 0, 1, -4.371139E-08, 7200, 255, 1), -- 179506 (Area: 5913)
+(@OGUID+7, 179563, 429, 3, 1, 116.1046, 638.89, -48.46696, 4.520406, 0, 0, 0, 1, 7200, 255, 1), -- 179563 (Area: 5915)
+(@OGUID+8, 177219, 429, 3, 1, 385.3268, 374.2315, -1.34314, 1.570796, 0, 0, 1, -4.371139E-08, 7200, 255, 1), -- 177219 (Area: 5913)
+(@OGUID+9, 177221, 429, 3, 1, 50.58631, 501.9406, -23.14985, 4.71239, 0, 0, 1, -4.371139E-08, 7200, 255, 1), -- 177221 (Area: 5913)
+(@OGUID+10, 177211, 429, 3, 1, -41.8254, 159.8736, -3.448337, 0, 0, 0, 1, -4.371139E-08, 7200, 255, 1), -- 177211 (Area: 5913)
+(@OGUID+11, 177212, 429, 3, 1, 10.72159, 159.4589, -3.448351, 3.141593, 0, 0, 1, -4.371139E-08, 7200, 255, 1), -- 177212 (Area: 5913)
+(@OGUID+12, 177215, 429, 3, 1, 255.4084, 10.3791, -2.693807, 1.570796, 0, 0, 1, -4.371139E-08, 7200, 255, 1), -- 177215 (Area: 5913)
+(@OGUID+13, 179549, 429, 3, 1, 351.5679, 88.67347, -36.39297, 1.570796, 0, 0, 1, -4.371139E-08, 7200, 255, 1), -- 179549 (Area: 5913)
+(@OGUID+14, 177217, 429, 3, 1, 491.2043, 515.1331, 29.46753, 1.570796, 0, 0, 1, -4.371139E-08, 7200, 255, 1); -- 177217 (Area: 5913)
+
+DELETE FROM `creature` WHERE `id` IN(11480,11483,13916,13160);
+
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `MovementType`) VALUES
+(@CGUID+0, 11480, 429, 3, 1, 130.4702, 422.0486, 28.68438, 5.5676, 7200, 0, 0), -- 11480 (Area: 0)
+(@CGUID+1, 11480, 429, 3, 1, 129.8357, 437.4243, 28.68438, 0.6457718, 7200, 0, 0), -- 11480 (Area: 0)
+(@CGUID+2, 11483, 429, 3, 1, 112.3598, 421.3277, 28.68438, 3.979351, 7200, 0, 0), -- 11483 (Area: 0)
+(@CGUID+3, 11483, 429, 3, 1, 112.2285, 437.3398, 28.68438, 2.495821, 7200, 0, 0), -- 11483 (Area: 0)
+(@CGUID+4, 11483, 429, 3, 1, 24.50517, 278.4114, -8.422497, 0.8726646, 7200, 0, 0), -- 11483 (Area: 5915)
+(@CGUID+5, 11480, 429, 3, 1, 3.030073, 275.064, -8.27089, 3.036873, 7200, 0, 0), -- 11480 (Area: 5915)
+(@CGUID+6, 11483, 429, 3, 1, 18.33997, 262.5933, -7.229755, 5.044002, 7200, 0, 0), -- 11483 (Area: 5915)
+(@CGUID+7, 11480, 429, 3, 1, -99.35272, 434.2773, 28.68608, 3.926991, 7200, 0, 0), -- 11480 (Area: 5915)
+(@CGUID+8, 11483, 429, 3, 1, -83.95709, 435.4832, 28.68626, 5.61996, 7200, 0, 0), -- 11483 (Area: 5915)
+(@CGUID+9, 11480, 429, 3, 1, -100.4601, 449.052, 28.6875, 2.321288, 7200, 0, 0), -- 11480 (Area: 5915)
+(@CGUID+10, 11483, 429, 3, 1, -83.53941, 449.507, 28.6862, 0.9599311, 7200, 5, 1), -- 11483 (Area: 5915) (possible waypoints or random movement)
+(@CGUID+11, 11483, 429, 3, 1, 90.66621, 740.4608, -24.49702, 0.3490658, 7200, 0, 0), -- 11483 (Area: 5915)
+(@CGUID+12, 11480, 429, 3, 1, 75.12427, 748.4026, -24.49702, 1.553343, 7200, 0, 0), -- 11480 (Area: 5915)
+(@CGUID+13, 11483, 429, 3, 1, 81.96804, 725.6087, -24.49635, 5.166174, 7200, 5, 1), -- 11483 (Area: 5915) (Auras: ) (possible waypoints or random movement)
+(@CGUID+14, 11480, 429, 3, 1, 67.98151, 733.5004, -24.49676, 3.665191, 7200, 0, 0), -- 11480 (Area: 5915)
+(@CGUID+15, 11480, 429, 3, 1, -151.3329, 721.8649, -24.49508, 4.904375, 7200, 0, 0), -- 11480 (Area: 5915)
+(@CGUID+16, 11483, 429, 3, 1, -142.6175, 736.7474, -24.49702, 6.108652, 7200, 0, 0), -- 11483 (Area: 5915)
+(@CGUID+17, 11483, 429, 3, 1, -166.1358, 729.3408, -24.49702, 3.525565, 7200, 0, 0), -- 11483 (Area: 5915)
+(@CGUID+18, 11480, 429, 3, 1, -157.8231, 746.3584, -24.49702, 1.623156, 7200, 0, 0),-- 11480 (Area: 5915)
+(@CGUID+19, 11480, 429, 3, 1, 10.1239, 287.949, -8.78406, 1.62106, 7200, 0, 0),-- 11480 (Area: 5915)
+(@CGUID+20, 13916, 429, 3, 1, 13.45142, 277.6283, 1.514334, 2.286381, 7200, 0, 0), -- 13916 (Area: 5915)
+(@CGUID+21, 13160, 429, 3, 1, 462.8175, 251.535, 8.817377, 4.555309, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+22, 13160, 429, 3, 1, 452.7207, 247.395, 11.30013, 4.642576, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+23, 13160, 429, 3, 1, 448.1017, 251.626, 11.29641, 4.677482, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+24, 13160, 429, 3, 1, 455.3728, 253.9155, 11.3039, 4.625123, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+25, 13160, 429, 3, 1, 448.4704, 258.7166, 11.29889, 4.677482, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+26, 13160, 429, 3, 1, 449.7683, 243.4786, 11.29772, 4.660029, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+27, 13160, 429, 3, 1, 452.4716, 260.4895, 11.30317, 4.642576, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+28, 13160, 429, 3, 1, 477.2956, 252.6243, 2.873334, 2.817438, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+29, 13160, 429, 3, 1, 462.7784, 260.8503, 8.751555, 2.073882, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+30, 13160, 429, 3, 1, 471.8947, 252.9371, 4.882514, 4.475661, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+31, 13160, 429, 3, 1, 486.488, 313.6001, 2.936218, 4.485496, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+32, 13160, 429, 3, 1, 494.2127, 319.3602, 2.936227, 4.45059, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+33, 13160, 429, 3, 1, 474.5892, 316.7031, 2.936239, 4.537856, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+34, 13160, 429, 3, 1, 478.2815, 324.038, 2.936251, 4.537856, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+35, 13160, 429, 3, 1, 493.1786, 309.8522, 2.936205, 4.433136, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+36, 13160, 429, 3, 1, 467.4713, 316.5861, 2.93625, 4.590216, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+37, 13160, 429, 3, 1, 471.9471, 324.6326, 2.936259, 4.572762, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+38, 13160, 429, 3, 1, 485.187, 320.7115, 2.936234, 4.485496, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+39, 13160, 429, 3, 1, 490.0086, 329.4991, 2.852889, 1.889038, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+40, 13160, 429, 3, 1, 484.4862, 327.5917, 2.85289, 3.664191, 7200, 5, 1), -- 13160 (Area: 0) (possible waypoints or random movement)
+(@CGUID+41, 13160, 429, 3, 1, 479.4313, 534.1829, -25.30033, 4.625123, 7200, 0, 0), -- 13160 (Area: 0) (Auras: )
+(@CGUID+42, 13160, 429, 3, 1, 494.0698, 531.7256, -25.30895, 4.590216, 7200, 0, 0), -- 13160 (Area: 0) (Auras: )
+(@CGUID+43, 13160, 429, 3, 1, 480.5341, 542.3371, -25.3806, 6.065704, 7200, 0, 0), -- 13160 (Area: 0) (Auras: )
+(@CGUID+44, 13160, 429, 3, 1, 518.8744, 532.2348, -25.39863, 2.637258, 7200, 0, 0), -- 13160 (Area: 0) (Auras: )
+(@CGUID+45, 13160, 429, 3, 1, 521.4735, 543.2216, -25.39985, 2.595782, 7200, 0, 0), -- 13160 (Area: 0) (Auras: )
+(@CGUID+46, 13160, 429, 3, 1, 532.2884, 535.4186, -25.40494, 0.08802468, 7200, 0, 0), -- 13160 (Area: 0) (Auras: )
+(@CGUID+47, 13160, 429, 3, 1, 507.4343, 541.1744, -25.39325, 4.851843, 7200, 0, 0), -- 13160 (Area: 0) (Auras: )
+(@CGUID+48, 13160, 429, 3, 1, 481.1589, 552.1213, -25.3825, 0.2103749, 7200, 0, 0), -- 13160 (Area: 0) (Auras: )
+(@CGUID+49, 13160, 429, 3, 1, 511.5812, 556.6573, -25.39854, 3.27448, 7200, 5, 1), -- 13160 (Area: 0) (Auras: ) (possible waypoints or random movement)
+(@CGUID+50, 13160, 429, 3, 1, 532.3871, 552.1505, -25.40498, 2.640144, 7200, 5, 1), -- 13160 (Area: 0) (Auras: ) (possible waypoints or random movement)
+(@CGUID+51, 13160, 429, 3, 1, 472.9739, -32.42187, -3.903387, 6.217165, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+52, 13160, 429, 3, 1, 460.5289, -24.7918, -3.886683, 1.132865, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+53, 13160, 429, 3, 1, 472.9483, -21.3704, -3.911369, 2.103442, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+54, 13160, 429, 3, 1, 460.5975, -39.44626, -3.886727, 5.271253, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+55, 13160, 429, 3, 1, 471.0815, -48.29583, -3.886039, 1.733511, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+56, 13160, 429, 3, 1, 456.1195, -58.02909, -4.279171, 3.795121, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+57, 13160, 429, 3, 1, 470.6244, -60.59518, -3.886099, 0.863512, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+58, 13160, 429, 3, 1, 463.9873, -52.75054, -3.886564, 2.476561, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+59, 13160, 429, 3, 1, 460.2359, -68.97313, -3.886916, 3.776749, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+60, 13160, 429, 3, 1, 469.8415, -70.88819, -3.886191, 4.886696, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+61, 13160, 429, 3, 1, 396.9608, -98.32198, -3.887123, 2.894927, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+62, 13160, 429, 3, 1, 404.5128, -110.0931, -3.886247, 0.1595933, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+63, 13160, 429, 3, 1, 445.6248, -113.9238, -3.886032, 5.102283, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+64, 13160, 429, 3, 1, 414.6084, -108.6204, -3.886377, 0.0039941, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+65, 13160, 429, 3, 1, 443.4119, -99.60896, -3.887109, 2.986769, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+66, 13160, 429, 3, 1, 401.1027, -104.8092, -3.88664, 0.2074864, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+67, 13160, 429, 3, 1, 438.3328, -108.5529, -3.886425, 5.919142, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+68, 13160, 429, 3, 1, 426.5037, -100.5517, -3.887007, 2.909149, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+69, 13160, 429, 3, 1, 414.977, -98.74563, -3.887123, 2.845945, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+70, 13160, 429, 3, 1, 424.4419, -108.6975, -3.886389, 1.076339, 7200, 0, 0), -- 13160 (Area: 0)
+(@CGUID+71, 13160, 429, 3, 1, 396.8296, -98.32212, -3.803594, 1.37881, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+72, 13160, 429, 3, 1, 414.977, -98.74563, -3.803658, 1.448623, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+73, 13160, 429, 3, 1, 400.0482, -105.0312, -3.803111, 1.396263, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+74, 13160, 429, 3, 1, 437.5299, -108.435, -3.803006, 1.553343, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+75, 13160, 429, 3, 1, 424.8745, -110.3578, -3.802841, 1.500983, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+76, 13160, 429, 3, 1, 460.3629, -24.53695, -3.803384, 1.658063, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+77, 13160, 429, 3, 1, 403.6488, -110.2321, -3.802753, 1.413717, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+78, 13160, 429, 3, 1, 427.6517, -100.8249, -3.803568, 1.500983, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+79, 13160, 429, 3, 1, 414.4864, -108.6242, -3.802916, 1.448623, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+80, 13160, 429, 3, 1, 456.6826, -57.28893, -4.25341, 1.623156, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+81, 13160, 429, 3, 1, 471.2401, -46.80048, -3.802765, 1.710423, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+82, 13160, 429, 3, 1, 473.4761, -22.86045, -3.80176, 1.745329, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+83, 13160, 429, 3, 1, 470.647, -70.00087, -3.802982, 1.692969, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+84, 13160, 429, 3, 1, 472.6571, -33.71276, -3.802353, 1.727876, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+85, 13160, 429, 3, 1, 461.8682, -40.83654, -3.803358, 1.658063, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+86, 13160, 429, 3, 1, 444.67, -99.75545, -3.803718, 1.570796, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+87, 13160, 429, 3, 1, 460.2359, -68.97313, -3.803645, 1.64061, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+88, 13160, 429, 3, 1, 464.6496, -53.98102, -3.803182, 1.658063, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+89, 13160, 429, 3, 1, 445.7453, -113.9387, -3.802556, 1.570796, 7200, 5, 1), -- 13160 (Area: 5913) (possible waypoints or random movement)
+(@CGUID+90, 13160, 429, 3, 1, 470.4993, -60.37534, -3.802882, 1.692969, 7200, 5, 1); -- 13160 (Area: 5913) (possible waypoints or random movement)
+
diff --git a/sql/updates/world/2015_04_04_02_world.sql b/sql/updates/world/2015_04_04_02_world.sql
new file mode 100644
index 00000000000..1cc2cb61ea3
--- /dev/null
+++ b/sql/updates/world/2015_04_04_02_world.sql
@@ -0,0 +1,9 @@
+--
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=16 AND `SourceEntry`=4163;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(16,0,26813,0,0,23,0,4163,0,0,0,0,'','Dismount player from Kor''kron War Rider when not in intended zone(Icemist Village)');
+
+UPDATE `creature_template` SET `InhabitType`=5, `npcflag`=16777216 WHERE `entry`=26813;
+DELETE FROM `creature_template_addon` WHERE `entry`=26813;
+INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(26813, 0, 0, 33554432, 0, 0, '55971');
diff --git a/sql/updates/world/2015_04_04_03_world.sql b/sql/updates/world/2015_04_04_03_world.sql
new file mode 100644
index 00000000000..78e5f2b50b5
--- /dev/null
+++ b/sql/updates/world/2015_04_04_03_world.sql
@@ -0,0 +1,42 @@
+-- Pathing for Entry: Entry: 21801 (Vhel'kur)
+SET @NPC := 21801;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5140.628,`position_y`=537.6068,`position_z`=225.5867 WHERE `guid`=76114;
+UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=76114;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(76114,@PATH,0,33554432,1,0, '55971');
+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,-5140.628,537.6068,225.5867,0,0,0,0,100,0),
+(@PATH,2,-5047.682,660.9525,148.8644,0,0,0,0,100,0),
+(@PATH,3,-5011.98,674.3496,148.8644,0,0,0,0,100,0),
+(@PATH,4,-4981.461,669.827,148.8644,0,0,0,0,100,0),
+(@PATH,5,-4959.014,632.2751,148.8644,0,0,0,0,100,0),
+(@PATH,6,-4943.981,608.1472,148.8644,0,0,0,0,100,0),
+(@PATH,7,-4929.495,593.4562,148.8644,0,0,0,0,100,0),
+(@PATH,8,-4910.322,557.0013,148.8644,0,0,0,0,100,0),
+(@PATH,9,-4886.5,522.941,148.8644,0,0,0,0,100,0),
+(@PATH,10,-4860.481,492.9438,148.8644,0,0,0,0,100,0),
+(@PATH,11,-4853.529,472.7724,148.8644,0,0,0,0,100,0),
+(@PATH,12,-4853.905,449.3954,148.8644,0,0,0,0,100,0),
+(@PATH,13,-4862.35,417.3469,148.8644,0,0,0,0,100,0),
+(@PATH,14,-4904.073,347.1447,148.8644,0,0,0,0,100,0),
+(@PATH,15,-4938.952,289.3222,148.8644,0,0,0,0,100,0),
+(@PATH,16,-4959.224,247.5302,148.8644,0,0,0,0,100,0),
+(@PATH,17,-4971.73,201.8298,148.8644,0,0,0,0,100,0),
+(@PATH,18,-4979.256,156.9421,148.8644,0,0,0,0,100,0),
+(@PATH,19,-4987.867,132.5271,148.8644,0,0,0,0,100,0),
+(@PATH,20,-4998.63,107.5142,148.8644,0,0,0,0,100,0),
+(@PATH,21,-5020.076,73.21224,148.8644,0,0,0,0,100,0),
+(@PATH,22,-5061.159,55.51009,148.8644,0,0,0,0,100,0),
+(@PATH,23,-5077.839,49.82715,148.8644,0,0,0,0,100,0),
+(@PATH,24,-5112.819,49.43273,148.8644,0,0,0,0,100,0),
+(@PATH,25,-5175.664,65.2347,163.3922,0,0,0,0,100,0),
+(@PATH,26,-5198.992,107.9043,173.1977,0,0,0,0,100,0),
+(@PATH,27,-5165.273,219.0713,198.2255,0,0,0,0,100,0),
+(@PATH,28,-5113.013,300.7207,198.2255,0,0,0,0,100,0),
+(@PATH,29,-5109.759,353.3949,226.7533,0,0,0,0,100,0),
+(@PATH,30,-5113.028,378.9975,240.6144,0,0,0,0,100,0),
+(@PATH,31,-5122.197,411.4973,243.2811,0,0,0,0,100,0);
+-- 0x1C39A84240154A4000002100000AE735 .go -5140.628 537.6068 225.5867
diff --git a/sql/updates/world/2015_04_04_04_world.sql b/sql/updates/world/2015_04_04_04_world.sql
new file mode 100644
index 00000000000..58314391994
--- /dev/null
+++ b/sql/updates/world/2015_04_04_04_world.sql
@@ -0,0 +1,124 @@
+--
+SET @ENTRY := 10978;
+SET @Sprinkle:=7583;
+SET @Quixxil:=10977;
+
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry` IN (@ENTRY, @Sprinkle, @Quixxil);
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@Sprinkle AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@Quixxil AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_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,17166,0,0,0,80,1097800,2,0,0,0,0,1,0,0,0,0,0,0,0,"Legacki - On Spellhit 'Release Umi's Yeti' - Run Script"),
+(@ENTRY,0,1,0,40,0,100,0,15,10978,0,0,80,@ENTRY*100+01,2,0,0,0,0,1,0,0,0,0,0,0,0,"Legacki - On Waypoint 15 Reached - Run Script"),
+(@Sprinkle,0,0,0,8,0,100,0,17166,0,0,0,80,@Sprinkle*100,2,0,0,0,0,1,0,0,0,0,0,0,0,"Sprinkle - On Spellhit 'Release Umi's Yeti' - Run Script"),
+(@Sprinkle,0,1,0,40,0,100,0,7,@Sprinkle,0,0,80,@Sprinkle*100+01,2,0,0,0,0,1,0,0,0,0,0,0,0,"Sprinkle - On Waypoint 7 Reached - Run Script"),
+(@Quixxil,0,0,0,8,0,100,0,17166,0,0,0,80,@Quixxil*100,2,0,0,0,0,1,0,0,0,0,0,0,0,"Quixxil - On Spellhit 'Release Umi's Yeti' - Run Script"),
+(@Quixxil,0,1,0,40,0,100,0,11,@Quixxil,0,0,80,@Quixxil*100+01,2,0,0,0,0,1,0,0,0,0,0,0,0,"Quixxil - On Waypoint 11 Reached - Run Script");
+
+-- Actionlist SAI
+SET @ENTRY := 1097800;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=9;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@Sprinkle*100 AND `source_type`=9;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@Quixxil*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,9,0,0,0,0,100,0,1000,1000,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legacki - On Script - Say Line 0"),
+(@ENTRY,9,1,0,0,0,100,0,1000,1000,0,0,53,1,10978,0,0,0,2,1,0,0,0,0,0,0,0,"Legacki -On Script - Start Waypoint"),
+(@ENTRY,9,2,0,0,0,100,0,0,0,0,0,45,0,1,0,0,0,0,19,10980,20,0,0,0,0,0,"Legacki -On Script - Say Line 1"),
+(@ENTRY,9,3,0,0,0,100,0,1000,1000,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legacki -On Script - Say Line 1"),
+(@ENTRY,9,4,0,0,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,"Legacki -On Script - Store target"),
+(@Sprinkle*100,9,0,0,0,0,100,0,1000,1000,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sprinkle - On Script - Say Line 0"),
+(@Sprinkle*100,9,1,0,0,0,100,0,1000,1000,0,0,53,1,@Sprinkle,0,0,0,2,1,0,0,0,0,0,0,0,"Sprinkle - On Script - Start Waypoint"),
+(@Sprinkle*100,9,2,0,0,0,100,0,0,0,0,0,45,0,2,0,0,0,0,19,10980,20,0,0,0,0,0,"Sprinkle - On Script - Say Line 1"),
+(@Sprinkle*100,9,3,0,0,0,100,0,1000,1000,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sprinkle - On Script - Say Line 1"),
+(@Sprinkle*100,9,4,0,0,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,"Sprinkle - On Script - Store target"),
+(@Quixxil*100,9,0,0,0,0,100,0,1000,1000,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Quixxil - On Script - Say Line 0"),
+(@Quixxil*100,9,1,0,0,0,100,0,1000,1000,0,0,53,1,@Quixxil,0,0,0,2,1,0,0,0,0,0,0,0,"Quixxil - On Script - Start Waypoint"),
+(@Quixxil*100,9,2,0,0,0,100,0,0,0,0,0,45,0,3,0,0,0,0,19,10980,20,0,0,0,0,0,"Quixxil - On Script - Say Line 1"),
+(@Quixxil*100,9,3,0,0,0,100,0,1000,1000,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Quixxil - On Script - Say Line 1"),
+(@Quixxil*100,9,4,0,0,0,100,0,4000,4000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Quixxil - On Script - Say Line 2"),
+(@Quixxil*100,9,5 ,0,0,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,"Quixxil - On Script - Store target");
+
+-- Actionlist SAI
+SET @ENTRY := 1097801;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=9;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@Sprinkle*100+1 AND `source_type`=9;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@Quixxil*100+1 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,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legacki - On Script - Say Line 2"),
+(@ENTRY,9,1,0,0,0,100,0,2000,2000,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legacki - On Script - Say Line 3"),
+(@ENTRY,9,2,0,0,0,100,0,2000,2000,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,"Legacki - On Script - Say Line 4"),
+(@ENTRY,9,3,0,0,0,100,0,2000,2000,0,0,33,10978,0,0,0,0,0,12,1,0,0,0,0,0,0,"Legacki - On Script - Credit quest"),
+(@Sprinkle*100+1,9,0,0,0,0,100,0,2000,2000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sprinkle - On Script - Say Line 2"),
+(@Sprinkle*100+1,9,1,0,0,0,100,0,2000,2000,0,0,33,@Sprinkle,0,0,0,0,0,12,1,0,0,0,0,0,0,"Sprinkle - On Script - Credit quest"),
+(@Quixxil*100+1,9,1,0,0,0,100,0,2000,2000,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Quixxil - On Script - Say Line 3"),
+(@Quixxil*100+1,9,2,0,0,0,100,0,2000,2000,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,"Quixxil - On Script - Say Line 4"),
+(@Quixxil*100+1,9,3,0,0,0,100,0,2000,2000,0,0,33,@Quixxil,0,0,0,0,0,12,1,0,0,0,0,0,0,"Quixxil - On Script - Credit quest");
+
+-- Umi's Mechanical Yeti SAI
+SET @ENTRY := 10980;
+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,38,0,100,0,0,1,0,0,29,5,10,0,0,0,0,19,10978,10,0,0,0,0,0,"Umi's Mechanical Yeti - On Just Summoned - Start Follow Closest Creature 'Legacki'"),
+(@ENTRY,0,1,0,38,0,100,0,0,2,0,0,29,5,10,0,0,0,0,19,@Sprinkle,10,0,0,0,0,0,"Umi's Mechanical Yeti - On Just Summoned - Start Follow Closest Creature 'Legacki'"),
+(@ENTRY,0,2,0,38,0,100,0,0,3,0,0,29,5,10,0,0,0,0,19,@Quixxil,10,0,0,0,0,0,"Umi's Mechanical Yeti - On Just Summoned - Start Follow Closest Creature 'Legacki'"),
+(@ENTRY,0,3,4,54,0,100,0,0,0,0,0,1,0,1000,0,0,0,0,1,0,0,0,0,0,0,0,"Umi's Mechanical Yeti - On Just Summoned - Say Line 0"),
+(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,41,30000,0,0,0,0,0,1,0,0,0,0,0,0,0,"Umi's Mechanical Yeti - On Just Summoned - Despawn In 30000 ms"),
+(@ENTRY,0,5,0,52,0,100,0,0,10980,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Umi's Mechanical Yeti - On Text 0 Over - Say Line 1");
+
+DELETE FROM `creature_text` WHERE `entry` IN (10980, 10978, @Quixxil, @Sprinkle);
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
+(10978, 0, 0, '%s jumps in fright!', 16, 0, 100, 0, 0, 0, 6301, 0, 'Legacki'),
+(10978, 1, 0, 'Ahhhhh!!!', 12, 0, 100, 0, 0, 0, 6302, 0, 'Legacki'),
+(10978, 2, 0, 'You big meanie! Who put you up to this?', 12, 0, 100, 0, 0, 0, 6303, 0, 'Legacki'),
+(10978, 3, 0, 'It was Umi, wasn''t it?! She''s always playing jokes on me, and now she''s got you in on it too!', 12, 0, 100, 0, 0, 0, 6304, 0, 'Legacki'),
+(10978, 4, 0, '%s sighs.', 16, 0, 100, 0, 0, 0, 6305, 0, 'Legacki'),
+(@Quixxil, 0, 0, 'Oh!!! Get that thing away from me!', 12, 0, 100, 0, 0, 0, 6314, 0, 'Quixxil'),
+(@Quixxil, 1, 0, '%s runs quickly away from Umi''s Mechanical yeti.', 16, 0, 100, 0, 0, 0, 6318, 0, 'Quixxil'),
+(@Quixxil, 2, 0, 'Why do you chase me, Mechanical yeti?! WHY?!', 12, 0, 100, 0, 0, 0, 6317, 0, 'Quixxil'),
+(@Quixxil, 3, 0, '%s looks relieved.', 16, 0, 100, 0, 0, 0, 6322, 0, 'Quixxil'),
+(@Quixxil, 4, 0, 'I''m jumpy as it is... and people insist on scaring me... Next time, though, I''ll be ready!', 12, 0, 100, 0, 0, 0, 6320, 0, 'Quixxil'),
+(@Sprinkle, 0, 0, '%s jumps in fright!', 16, 0, 100, 0, 0, 0, 6306, 0, 'Legacki'),
+(@Sprinkle, 1, 0, 'Ahhhhh!!! What is that thing?!', 12, 0, 100, 0, 0, 0, 6307, 0, 'Legacki'),
+(@Sprinkle, 2, 0, 'Umi sent you, didn''t she? She told me to expect a surprise, but I never thought that this is what she meant!', 12, 0, 100, 0, 0, 0, 6308, 0, 'Legacki'),
+(10980, 0, 0, '%s marches around, roaring and making a ruckus.', 16, 0, 100, 0, 0, 0, 6327, 0, 'Umi''s Mechanical Yeti'),
+(10980, 1, 0, 'RAAAAAAAR!', 12, 0, 100, 0, 0, 0, 6329, 0, 'Umi''s Mechanical Yeti');
+
+
+DELETE FROM `waypoints` WHERE `entry` IN (10978, @Quixxil, @Sprinkle);
+INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES
+(10978, 1,6713.694,-4682.374,721.6163, 'Legacki'),
+(10978, 2,6731.523,-4675.635,721.2076, 'Legacki'),
+(10978, 3,6736.806,-4672.955,721.9132, 'Legacki'),
+(10978, 4,6749.889,-4662.13,725.0011, 'Legacki'),
+(10978, 5,6750.157,-4661.562,724.9875, 'Legacki'),
+(10978, 6,6732.859,-4641.781,722.8784, 'Legacki'),
+(10978, 7,6727.719,-4641.233,721.6862, 'Legacki'),
+(10978, 8,6715.982,-4643.644,721.1971, 'Legacki'),
+(10978, 9,6719.307,-4652.817,721.231, 'Legacki'),
+(10978, 10,6715.004,-4685.518,721.466, 'Legacki'),
+(10978, 11,6718.75,-4705.675,721.9097, 'Legacki'),
+(10978, 12,6712.263,-4717.947,721.5077, 'Legacki'),
+(10978, 13,6701.636,-4714.284,721.6529, 'Legacki'),
+(10978, 14,6701.108,-4695.846,722.3613, 'Legacki'),
+(10978, 15,6705.608,-4686.181,721.9736, 'Legacki'),
+(@Quixxil, 1, -6186.462402, -1096.938965, -213.828033, 'Quixxil'),
+(@Quixxil, 2, -6165.831543, -1100.158203, -210.395004, 'Quixxil'),
+(@Quixxil, 3, -6146.718750, -1120.232056, -212.840530, 'Quixxil'),
+(@Quixxil, 4, -6160.913574, -1141.027466, -217.996246, 'Quixxil'),
+(@Quixxil, 5, -6184.303711, -1125.439087, -217.041824, 'Quixxil'),
+(@Quixxil, 6, -6203.271484, -1111.438354, -219.371887, 'Quixxil'),
+(@Quixxil, 7, -6213.762695, -1080.857422, -211.627533, 'Quixxil'),
+(@Quixxil, 8, -6184.807129, -1050.598633, -191.913223, 'Quixxil'),
+(@Quixxil, 9, -6173.853516, -1054.144165, -190.152405, 'Quixxil'),
+(@Quixxil, 10, -6179.203613, -1041.906372, -185.499283, 'Quixxil'),
+(@Quixxil, 11, -6197.859863, -1082.170044, -209.164001, 'Quixxil'),
+(@Sprinkle, 1, -7114.151855, -3811.191406, 8.390815, 'Sprinkle'),
+(@Sprinkle, 2, -7155.397949, -3820.387695, 8.370462, 'Sprinkle'),
+(@Sprinkle, 3, -7178.134766, -3791.506836, 8.370436, 'Sprinkle'),
+(@Sprinkle, 4, -7160.750488, -3758.740723, 8.370436, 'Sprinkle'),
+(@Sprinkle, 5, -7136.473145, -3747.802246, 8.407521, 'Sprinkle'),
+(@Sprinkle, 6, -7109.993652, -3739.603760, 9.105528, 'Sprinkle'),
+(@Sprinkle, 7, -7111.109863, -3741.780029, 8.609260, 'Sprinkle');
diff --git a/sql/updates/world/2015_04_04_05_world.sql b/sql/updates/world/2015_04_04_05_world.sql
new file mode 100644
index 00000000000..dccc4f0c082
--- /dev/null
+++ b/sql/updates/world/2015_04_04_05_world.sql
@@ -0,0 +1,40 @@
+--
+DELETE FROM `creature_text`
+WHERE `entry` IN (1506, 1507, 1667);
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
+(1506, 0, 0, 'You carry the taint of the Scourge. Prepare to enter the Twisting Nether.', 12, 7, 25, 0, 0, 0, 2625, 0, 'Scarlet Convert 1'),
+(1506, 0, 1, 'There is no escape for you. The Crusade shall destroy all who carry the Scourge''s taint.', 12, 7, 25, 0, 0, 0, 2626, 0, 'Scarlet Convert 2'),
+(1506, 0, 2, 'The Light condemns all who harbor evil. Now you will die!', 12, 7, 25, 0, 0, 0, 2627, 0, 'Scarlet Convert 3'),
+(1506, 0, 3, 'The Scarlet Crusade shall smite the wicked and drive evil from these lands!', 12, 7, 25, 0, 0, 0, 2628, 0, 'Scarlet Convert 4'),
+(1507, 0, 0, 'You carry the taint of the Scourge. Prepare to enter the Twisting Nether.', 12, 7, 25, 0, 0, 0, 2625, 0, 'Scarlet Initiate 1'),
+(1507, 0, 1, 'There is no escape for you. The Crusade shall destroy all who carry the Scourge''s taint.', 12, 7, 25, 0, 0, 0, 2626, 0, 'Scarlet Initiate 2'),
+(1507, 0, 2, 'The Light condemns all who harbor evil. Now you will die!', 12, 7, 25, 0, 0, 0, 2627, 0, 'Scarlet Initiate 3'),
+(1507, 0, 3, 'The Scarlet Crusade shall smite the wicked and drive evil from these lands!', 12, 7, 25, 0, 0, 0, 2628, 0, 'Scarlet Initiate 4'),
+(1667, 0, 0, 'These lands shall be cleansed!', 12, 0, 100, 5, 0, 0, 314, 0, 'Meven Korgal - Nearby aggro'),
+(1667, 1, 0, 'These undead atrocities will be destroyed!', 12, 0, 100, 5, 0, 0, 316, 0, 'Meven Korgal - Spawn'),
+(1667, 2, 0, 'The Scarlet Crusade shall not fail in its mission!', 12, 0, 100, 0, 0, 0, 317, 0, 'Meven Korgal - On aggro');
+
+-- Scarlet Initiate SAI
+SET @ENTRY := 1507;
+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,7,0,0,0,100,0,0,0,3500,5000,11,20793,64,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Initiate - In Combat - Cast 'Fireball'"),
+(@ENTRY,0,10,0,23,0,100,0,12544,0,5000,10000,11,12544,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Initiate - On Has Aura 'Frost Armor' - Cast 'Frost Armor'"),
+(@ENTRY,0,11,0,4,0,50,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Initiate - On Aggro - Say Line 0");
+
+-- Scarlet Convert SAI
+SET @ENTRY := 1506;
+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,50,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Convert - On Aggro - Say Line 0");
+
+-- Meven Korgal SAI
+SET @ENTRY := 1667;
+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,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Meven Korgal - On Reset - Say Line 1"),
+(@ENTRY,0,1,0,1,0,100,0,10000,30000,45000,120000,1,0,0,0,0,0,0,17,1,30,0,0,0,0,0,"Meven Korgal - Out of Combat - Say Line 0"),
+(@ENTRY,0,2,0,4,0,100,0,0,0,0,0,1,2,0,0,0,0,0,2,0,0,0,0,0,0,0,"Meven Korgal - On Aggro - Say Line 2");
diff --git a/sql/updates/world/2015_04_04_06_world.sql b/sql/updates/world/2015_04_04_06_world.sql
new file mode 100644
index 00000000000..16034938010
--- /dev/null
+++ b/sql/updates/world/2015_04_04_06_world.sql
@@ -0,0 +1,7 @@
+--
+-- Valiance Keep Rifleman SAI
+SET @ENTRY := 25311;
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,0,1,0,100,0,1000,1000,6000,6000,11,45761,0,0,0,0,0,19,24921,50,0,0,0,0,0,"Valiance Keep Rifleman - Out of Combat - Cast 'Shoot Gun'");
diff --git a/sql/updates/world/2015_04_05_00_world.sql b/sql/updates/world/2015_04_05_00_world.sql
new file mode 100644
index 00000000000..d37c91586bf
--- /dev/null
+++ b/sql/updates/world/2015_04_05_00_world.sql
@@ -0,0 +1,234 @@
+ SET @OGUID := 16926;
+
+ -- Creatures :
+ SET @MOGRAINE := 20345;
+ SET @ISILLIEN := 20346;
+ SET @ABBENDIS := 20347;
+ SET @FAIRBANKS := 20348;
+ SET @TIRION := 20349;
+ SET @DOAN := 20352;
+ SET @TARGET := 20391; -- for spells
+ -- DB Guids :
+ SET @MGUID := 83685;
+ SET @FGUID := 83686;
+ SET @DGUID := 83689;
+ SET @TGUID := 83690;
+ SET @IGUID := 83691;
+ SET @AGUID := 83692;
+ -- Event
+ SET @TRIGG := 4498;
+ -- Default difference between events
+ SET @DELAY := 3000000;
+ -- Objects
+ SET @CHAIR := 184305;
+ SET @DARK := 184306;
+ SET @LIGHT := 184307;
+ SET @CHEST := 184308;
+ -- Positions
+ SET @CHESTX := 1816.698;
+ SET @CHESTY := 1031.316;
+ SET @CHESTZ := 11.84751;
+ -- Spells
+ SET @TBTL := 35172;
+ SET @JUDGE := 35170;
+ SET @SHOCK := 35160;
+ SET @SMITE := 35155;
+ SET @HEALS := 35162;
+
+ DELETE FROM `gameobject` WHERE `id` BETWEEN 22882 AND 22887 AND `map`=560;
+ INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+ (@OGUID+0, 22882, 560, 3, 1, 1823.365, 1029.282, 11.64124, 1.439896, 0, 0, 0.7071069, 0.7071066, 7200, 255, 1),
+ (@OGUID+1, 22883, 560, 3, 1, 1824.24, 1031.343, 11.64124, 0.5061446, 0, 0, 0.7071069, 0.7071066, 7200, 255, 1),
+ (@OGUID+2, 22884, 560, 3, 1, 1822.9, 1032.183, 11.64124, 3.141593, 0, 0, 0.7071069, 0.7071066, 7200, 255, 1),
+ (@OGUID+3, 22885, 560, 3, 1, 1813.827, 999.6839, 12.13165, 0.1047193, 0, 0, 0.7071069, 0.7071066, 7200, 255, 1),
+ (@OGUID+4, 22886, 560, 3, 1, 1822.891, 1030.719, 11.64124, 4.232424, 0, 0, 0.7071069, 0.7071066, 7200, 255, 1),
+ (@OGUID+5, 22887, 560, 3, 1, 1812.618, 999.1037, 12.13165, 1.509709, 0, 0, 0.7071069, 0.7071066, 7200, 255, 1);
+
+ DELETE FROM `conditions` WHERE `SourceEntry` IN (@SMITE,@SHOCK,@JUDGE,@HEALS);
+ INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+ (13,1,@SMITE,0,0,31,0,3,@TARGET,0,0,0,'','Spell casts only on Creature 20391'),
+ (13,1,@SHOCK,0,0,31,0,3,@TARGET,0,0,0,'','Spell casts only on Creature 20391'),
+ (13,1,@JUDGE,0,0,31,0,3,@TARGET,0,0,0,'','Spell casts only on Creature 20391'),
+ (13,1,@HEALS,0,0,31,0,3,@TARGET,0,0,0,'','Spell casts only on Creature 20391');
+
+ DELETE FROM `creature_text` WHERE `entry` IN (@MOGRAINE,@ISILLIEN,@ABBENDIS,@FAIRBANKS,@TIRION,@DOAN);
+ INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `BroadcastTextId`, `comment`) VALUES
+ -- Commander Mograine
+ (@MOGRAINE, 0 , 0, 'Keep your voices down. There are strangers about...' ,12 ,0,100,1,18084, ' Mograine - 1'),
+ (@MOGRAINE, 1 , 0, 'Brothers and sisters, I have called you here today to discuss the fate of Lordaeron.' ,12 ,0,100,1,18085, ' Mograine - 2'),
+ (@MOGRAINE, 2 , 0, 'I hear things... Things that should not be.' ,12 ,0,100,1,18087, ' Mograine - 3'),
+ (@MOGRAINE, 3 , 0, 'The dead rise... Undead, from the frozen northlands. Whole cities have gone missing. I...' ,12 ,0,100,1,18088, ' Mograine - 4'),
+ (@MOGRAINE, 4 , 0, 'I have heard that Northrend is lost...' ,12 ,0,100,274,18089, ' Mograine - 5'),
+ (@MOGRAINE, 5 , 0, 'We must stand at the ready. I have faced undead before. They are ruthless killing machines, devoid of any emotion or compassion.' ,12 ,0,100,1,18091, ' Mograine - 6'),
+ (@MOGRAINE, 6 , 0, 'Propose? I propose that we prepare. That we prepare our loved ones, family and friends for the possibility of an undead holocaust.' ,12 ,0,100,6,18095, ' Mograine - 7'),
+ (@MOGRAINE, 7 , 0, 'And there is this...' ,12 ,0,100,6,18096, ' Mograine - 8'),
+ (@MOGRAINE, 8 , 0, 'I have had this object in my possession for 10 years. Since Blackrock Spire...' ,12 ,0,100,1,18099, ' Mograine - 9'),
+ (@MOGRAINE, 9 , 0, 'I wrested it free from the remains of an orc lieutenant - a dark caster... It is from their homeworld.' ,12 ,0,100,1,18100, ' Mograine - 10'),
+ (@MOGRAINE, 10 , 0, 'Do not get too close. I laid a hand upon it once... Only once and never again. The memories of that day still linger.' ,12 ,0,100,1,18101, ' Mograine - 11'),
+ (@MOGRAINE, 11 , 0, 'I surmise that this object is the living embodiment of shadows... darkness... It is a manifestation. It is a void.' ,12 ,0,100,1,18103, ' Mograine - 12'),
+ (@MOGRAINE, 12 , 0, 'No, old friend, it is very relevant.' ,12 ,0,100,1,18107, ' Mograine - 13'),
+ (@MOGRAINE, 13 , 0, 'Let me ask you this, brothers and sisters: Can good exist without evil? Can there be light without dark?' ,12 ,0,100,1,18108, ' Mograine - 14'),
+ (@MOGRAINE, 14 , 0, 'And if that answer is no, then could it be possible that because this artifact exists, its polar opposite must also exist?' ,12 ,0,100,25,18109, ' Mograine - 15'),
+ (@MOGRAINE, 15 , 0, 'Could you imagine what the material manifestation of the Light could do against the undead?' ,12 ,0,100,1,18110, ' Mograine - 16'),
+ (@MOGRAINE, 16 , 0, 'It consumed the Light!' ,12 ,0,100,25,18117, ' Mograine - 17'),
+ (@MOGRAINE, 17 , 0, 'BY THE LIGHT! Could it be? Could this be it?' ,12 ,0,100,5,18122, ' Mograine - 18'),
+ (@MOGRAINE, 18 , 0, 'I must know... I will know.' ,12 ,0,100,5,18123, ' Mograine - 19'),
+ (@MOGRAINE, 19 , 0, 'I... It... It is beautiful. What I felt when I touched it... The Light coursed through me and I through it... It healed my spirit.' ,12 ,0,100,1,18125, ' Mograine - 20'),
+ (@MOGRAINE, 20 , 0, 'Let us never again speak of this day. Our enemies are many. They need not know we hold such artifacts.' ,12 ,0,100,1,18128, ' Mograine - 21'),
+ (@MOGRAINE, 21 , 0, 'I have seen it... From this blessed crystal we will forge a weapon. This weapon will hold inside it a piece of each of us... And when it is used against undead, it shall cast them down. And in its wake, it will leave only ashes...' ,12 ,0,100,1,18129, ' Mograine - 22'),
+ (@MOGRAINE, 22 , 0, '%s lowers his voice to a whisper.' ,16,0,100,0,18086, ' Emote - 1'),
+ (@MOGRAINE, 23 , 0, 'Gasps can be heard throughout the room.' ,16,0,100,0,18090, ' Emote - 2'),
+ (@MOGRAINE, 25 , 0, '%s unlocks the chest.' ,16,0,100,25,18097, ' Emote - 4'),
+ (@MOGRAINE, 26 , 0, '%s removes the gauntlet from his right arm and shows everyone his mangled hand.' ,16,0,100,0,18102, ' Emote - 5'),
+ (@MOGRAINE, 27 , 0, '%s shakes his head.' ,16,0,100,0,18106, ' Emote - 6'),
+ (@MOGRAINE, 28 , 0, 'Shock then silence overtakes the crowd.' ,16,0,100,0,18113, ' Emote - 7'),
+ (@MOGRAINE, 29 , 0, '%s reaches out to touch the light crystal.' ,16,0,100,25,18124, ' Emote - 8'),
+ (@MOGRAINE, 30 , 0, '%s puts the crystal back inside the chest.' ,16,0,100,0,18127, ' Emote - 9'),
+ -- Isillien
+ (@ISILLIEN, 0 , 0, 'I do not see how this evil artifact is relevant to the undead. We must destroy it!' ,12 ,0,100,5,18104, ' Isillien - 1'),
+ (@ISILLIEN, 1 , 0, 'Nonsense, Mograine! It must be destroyed!' ,12 ,0,100,5,18112, ' Isillien - 2'),
+ (@ISILLIEN, 2 , 0, 'Your hand! It is healed!' ,12 ,0,100,25,18126, ' Isillien - 3'),
+ (@ISILLIEN, 3 , 0, 'The Ashbringer...' ,12 ,0,100,66,18130, ' Isillien - 4'),
+ -- Abbendis
+ (@ABBENDIS, 0 , 0, 'By the Light! What is it?' ,12 ,0,100,25,18098, ' Abbendis - 1'),
+ (@ABBENDIS, 1 , 0, 'The Ashbringer...' ,12 ,0,100,66,18130, ' Abbendis - 2'),
+ -- Fairbanks
+ (@FAIRBANKS, 0 , 0, 'Is... Is it getting lighter? Its coloration... It is changing.' ,12 ,0,100,1,18121, ' Fairbanks - 1'),
+ (@FAIRBANKS, 1 , 0, 'The Ashbringer...' ,12 ,0,100,66,18130, ' Fairbanks - 2'),
+ -- Tirion Fordring
+ (@TIRION, 0 , 0, 'Aye, I''ve battled them as well. We are ill-prepared as a kingdom to withstand such an assault.' ,12 ,0,100,1,18093, ' Tirion - 1'),
+ (@TIRION, 1 , 0, 'Impossible!' ,12 ,0,100,5,18118, ' Tirion - 2'),
+ (@TIRION, 2 , 0, 'The Ashbringer...' ,12 ,0,100,66,18130, ' Tirion - 3'),
+ (@TIRION, 3 , 0, '%s nods.' ,16,0,100,0,18092, ' Emote - 3'),
+ -- Archanist Doan
+ (@DOAN, 0 , 0, 'What do you propose, Mograine?' ,12 ,0,100,6,18094, ' Doan - 1'),
+ (@DOAN, 1 , 0, 'The Ashbringer...' ,12 ,0,100,66,18130, ' Doan - 2');
+
+ UPDATE `creature` SET `position_x`=1818.420044, `position_y`=1031.170044, `position_z`=11.0651, `orientation`=3.14155 WHERE `guid`=@MGUID;
+ UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry` IN (@MOGRAINE,@TIRION,@ABBENDIS,@FAIRBANKS,@ISILLIEN);
+ UPDATE `creature_template` SET `scale` = 1.5 WHERE `entry` = @TARGET;
+
+ DELETE FROM `creature_addon` WHERE `guid` = @MGUID;
+ INSERT INTO `creature_addon` (`guid`,`bytes1`) VALUES (@MGUID,4);
+
+ DELETE FROM `areatrigger_scripts` WHERE `entry` = @TRIGG;
+ INSERT INTO `areatrigger_scripts`(`entry`, `ScriptName`) VALUES
+ (@TRIGG,'SmartTrigger');
+
+ DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@TRIGG,@MOGRAINE,@MOGRAINE*100,@TIRION,@TIRION*100,@ABBENDIS,@ABBENDIS*100,@ISILLIEN,@ISILLIEN*100,@FAIRBANKS,@FAIRBANKS*100);
+ INSERT INTO `smart_scripts`(`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+ -- Trigger sets data on involved NPCs
+ (@TRIGG,2,0,1,46,0,100,0,@TRIGG,0,0,0,45,1,1,0,0,0,0,10,@MGUID,@MOGRAINE,0,0,0,0,0,"Set data - On Enter inn"),
+ (@TRIGG,2,1,2,61,0,100,0,@TRIGG,0,0,0,45,1,1,0,0,0,0,10,@TGUID,@TIRION,0,0,0,0,0,"Set data - On Enter inn"),
+ (@TRIGG,2,2,3,61,0,100,0,@TRIGG,0,0,0,45,1,1,0,0,0,0,10,@AGUID,@ABBENDIS,0,0,0,0,0,"Set data - On Enter inn"),
+ (@TRIGG,2,3,4,61,0,100,0,@TRIGG,0,0,0,45,1,1,0,0,0,0,10,@IGUID,@ISILLIEN,0,0,0,0,0,"Set data - On Enter inn"),
+ (@TRIGG,2,4,5,61,0,100,0,@TRIGG,0,0,0,45,1,1,0,0,0,0,10,@FGUID,@FAIRBANKS,0,0,0,0,0,"Set data - On Enter inn"),
+ -- NPCs run scripts
+ (@MOGRAINE,0,0,1,38,0,100,0,1,1,@DELAY,@DELAY,80,@MOGRAINE*100,2,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - On set data - Run Script"),
+ (@ISILLIEN,0,0,1,38,0,100,0,1,1,@DELAY,@DELAY,80,@ISILLIEN*100,2,0,0,0,0,1,0,0,0,0,0,0,0,"Isillien - On set data - Run Script"),
+ (@TIRION,0,0,1,38,0,100,0,1,1,@DELAY,@DELAY,80,@TIRION*100,2,0,0,0,0,1,0,0,0,0,0,0,0,"Tirion - On set data - Run Script"),
+ (@FAIRBANKS,0,0,1,38,0,100,0,1,1,@DELAY,@DELAY,80,@FAIRBANKS*100,2,0,0,0,0,1,0,0,0,0,0,0,0,"Fairbanks - On set data - Run Script"),
+ (@ABBENDIS,0,0,1,38,0,100,0,1,1,@DELAY,@DELAY,80,@ABBENDIS*100,2,0,0,0,0,1,0,0,0,0,0,0,0,"Abbendis - On set data - Run Script"),
+ -- Mograine (main) script
+ (@MOGRAINE*100,9,0,0,0,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 1"),-- 56:34.5
+ (@MOGRAINE*100,9,1,0,0,0,100,0,5000,5000,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 2"),-- 39
+ (@MOGRAINE*100,9,2,0,0,0,100,0,7000,7000,0,0,1,22,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Emote 1"), -- 46
+ (@MOGRAINE*100,9,3,0,0,0,100,0,1000,1000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 3"),-- 47
+ (@MOGRAINE*100,9,4,0,0,0,100,0,4000,4000,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 4"),-- 51
+ (@MOGRAINE*100,9,5,0,0,0,100,0,9000,9000,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 5"), -- 00
+ (@MOGRAINE*100,9,6,0,0,0,100,0,6000,6000,0,0,1,23,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Emote 2"), -- 06
+ (@MOGRAINE*100,9,7,0,0,0,100,0,2000,2000,0,0,1,5,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 6"), -- 08
+ (@MOGRAINE*100,9,8,0,0,0,100,0,6000,6000,0,0,1,3,0,0,0,0,0,10,@TGUID,@TIRION,0,0,0,0,0,"Tirion - Script - Emote 3"), -- 14
+ (@MOGRAINE*100,9,9,0,0,0,100,0,3000,3000,0,0,1,0,0,0,0,0,0,10,@TGUID,@TIRION,0,0,0,0,0,"Tirion - Script - Say Line 1"), -- 17
+ (@MOGRAINE*100,9,10,0,0,0,100,0,6000,6000,0,0,1,0,0,0,0,0,0,10,@DGUID,@DOAN,0,0,0,0,0,"Doan - Say Line 1"), -- 23
+ (@MOGRAINE*100,9,11,0,0,0,100,0,5000,5000,0,0,1,6,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 7"), -- 28
+ (@MOGRAINE*100,9,12,0,0,0,100,0,7000,7000,0,0,1,7,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 8"), -- 35
+ (@MOGRAINE*100,9,13,0,0,0,100,0,4000,4000,0,0,50,@CHEST,155,0,0,0,0,8,0,0,0,@CHESTX,@CHESTY,@CHESTZ,0,"Mograine - Script - Spawn chest"), -- 39
+ (@MOGRAINE*100,9,14,0,0,0,100,0,2000,2000,0,0,1,25,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Emote 4"), -- 41
+ (@MOGRAINE*100,9,15,0,0,0,100,0,1000,1000,0,0,9,0,0,0,0,0,0,15,@CHEST,10,0,0,0,0,0,"Mograine - Script - Open Chest"), -- 42
+ (@MOGRAINE*100,9,16,0,0,0,100,0,0,0,0,0,12,@TARGET,1,120000,0,0,0,8,0,0,0,1816.784,1031.313,12.4703,6.265732,"Mograine - Script - Spawn dummy"), -- 42
+ (@MOGRAINE*100,9,17,0,0,0,100,0,0,0,0,0,50,@DARK,110,0,0,0,0,8,0,0,0,@CHESTX,@CHESTY,@CHESTZ,0,"Mograine - Script - Spawn crystal"), -- 42
+ (@MOGRAINE*100,9,18,0,0,0,100,0,2000,2000,0,0,5,34,0,0,0,0,0,10,@AGUID,@ABBENDIS,0,0,0,0,0,"Abbendis - Script - Emote"), -- 44
+ (@MOGRAINE*100,9,19,0,0,0,100,0,2000,2000,0,0,1,0,0,0,0,0,0,10,@AGUID,@ABBENDIS,0,0,0,0,0,"Abbendis - Script - Say Line 1"), -- 46
+ (@MOGRAINE*100,9,20,0,0,0,100,0,5000,5000,0,0,1,8,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 9"), -- 50
+ (@MOGRAINE*100,9,21,0,0,0,100,0,4000,4000,0,0,1,9,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 10"), -- 54
+ (@MOGRAINE*100,9,22,0,0,0,100,0,6000,6000,0,0,1,10,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 11"), -- 00
+ (@MOGRAINE*100,9,23,0,0,0,100,0,3000,3000,0,0,1,26,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Emote 5"),
+ (@MOGRAINE*100,9,24,0,0,0,100,0,4000,4000,0,0,1,11,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 12"),
+ (@MOGRAINE*100,9,25,0,0,0,100,0,9000,9000,0,0,1,0,0,0,0,0,0,10,@IGUID,@ISILLIEN,0,0,0,0,0,"Isillien - Script - Say Line 1"),
+ (@MOGRAINE*100,9,26,0,0,0,100,0,5000,5000,0,0,1,27,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Emote 6"),
+ (@MOGRAINE*100,9,27,0,0,0,100,0,1000,1000,0,0,1,12,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 13"),
+ (@MOGRAINE*100,9,28,0,0,0,100,0,4000,4000,0,0,1,13,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 14"),
+ (@MOGRAINE*100,9,29,0,0,0,100,0,3000,3000,0,0,5,6,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Emote"),
+ (@MOGRAINE*100,9,30,0,0,0,100,0,3000,3000,0,0,1,14,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 15"),
+ (@MOGRAINE*100,9,31,0,0,0,100,0,2000,2000,0,0,5,6,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Emote"),
+ (@MOGRAINE*100,9,32,0,0,0,100,0,2000,2000,0,0,1,15,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 16"),
+ (@MOGRAINE*100,9,33,0,0,0,100,0,4000,4000,0,0,5,6,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Emote"),
+ (@MOGRAINE*100,9,34,0,0,0,100,0,4000,4000,0,0,1,1,0,0,0,0,0,10,@IGUID,@ISILLIEN,0,0,0,0,0,"Isillien - Script - Say Line 2"),
+ (@MOGRAINE*100,9,35,0,0,0,100,0,3000,3000,0,0,5,25,0,0,0,0,0,10,@IGUID,@ISILLIEN,0,0,0,0,0,"Isillien - Script - Emote"),
+ (@MOGRAINE*100,9,36,0,0,0,100,0,5000,5000,0,0,1,28,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Emote 7"),
+ (@MOGRAINE*100,9,37,0,0,0,100,0,0,0,0,0,5,5,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Emote"), -- 52
+ (@MOGRAINE*100,9,38,0,0,0,100,0,2000,2000,0,0,91,@MGUID,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Set unit bytes"),
+ (@MOGRAINE*100,9,39,0,0,0,100,0,0,0,0,0,69,0,0,0,0,0,0,8,0,0,0,1818.665,1029.883,11.09751,2.553278,"Mograine - Script - Start WP"),
+ (@MOGRAINE*100,9,40,0,0,0,100,0,1000,1000,0,0,66,0,0,0,0,0,0,15,@CHEST,50,0,0,0,0,0,"Mograine - Script - Set orientation"),
+ (@MOGRAINE*100,9,41,0,0,0,100,0,4000,4000,0,0,1,16,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 17"), -- 58
+ (@MOGRAINE*100,9,42,0,0,0,100,0,2000,2000,0,0,5,5,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Emote"), -- 00
+ (@MOGRAINE*100,9,43,0,0,0,100,0,3000,3000,0,0,1,1,0,0,0,0,0,10,@TGUID,@TIRION,0,0,0,0,0,"Tirion - Say Line 2"), -- 03
+ (@MOGRAINE*100,9,44,0,0,0,100,0,9000,9000,0,0,1,0,0,0,0,0,0,10,@FGUID,@FAIRBANKS,0,0,0,0,0,"Fairbanks - Say Line 2"), -- 11
+ (@MOGRAINE*100,9,45,0,0,0,100,0,20000,20000,0,0,50,@LIGHT,32,0,0,0,0,8,0,0,0,1816.681,1031.386,12.78501,0,"Mograine - Script - Spawn crystal"),
+ (@MOGRAINE*100,9,46,0,0,0,100,0,3000,3000,0,0,1,17,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 18"), -- 34
+ (@MOGRAINE*100,9,47,0,0,0,100,0,2000,2000,0,0,5,25,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Emote"), -- 36
+ (@MOGRAINE*100,9,48,0,0,0,100,0,2000,2000,0,0,1,18,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 19"), -- 38
+ (@MOGRAINE*100,9,49,0,0,0,100,0,4000,4000,0,0,1,29,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Emote 8"), -- 42
+ (@MOGRAINE*100,9,50,0,0,0,100,0,1500,1500,0,0,5,16,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Emote"),
+ (@MOGRAINE*100,9,51,0,0,0,100,0,0,0,0,0,11,@TBTL,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Cast TBLT"),
+ (@MOGRAINE*100,9,52,0,0,0,100,0,4000,4000,0,0,5,18,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Emote"),
+ (@MOGRAINE*100,9,53,0,0,0,100,0,7000,7000,0,0,1,19,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 20"),
+ (@MOGRAINE*100,9,54,0,0,0,100,0,7000,7000,0,0,1,2,0,0,0,0,0,10,@IGUID,@ISILLIEN,0,0,0,0,0,"Isillien - Script - Say Line 3"),
+ (@MOGRAINE*100,9,55,0,0,0,100,0,4000,4000,0,0,1,30,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Emote 9"),
+ (@MOGRAINE*100,9,56,0,0,0,100,0,0,0,0,0,32,0,0,0,0,0,0,15,@CHEST,10,0,0,0,0,0,"Mograine - Script - Close Chest"),
+ (@MOGRAINE*100,9,57,0,0,0,100,0,4000,4000,0,0,1,20,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 21"),
+ (@MOGRAINE*100,9,58,0,0,0,100,0,0,0,0,0,69,0,0,0,0,0,0,8,0,0,0,1818.346,1031.224,11.09751,3.124123,"Mograine - Script - Start WP"),
+ (@MOGRAINE*100,9,59,0,0,0,100,0,500,500,0,0,50,@CHAIR,5000,0,0,0,0,8,0,0,0,1818.346,1031.224,11.09751,3.124123,"Mograine - Script - Spawn chair"),
+ (@MOGRAINE*100,9,60,0,0,0,100,0,1000,1000,0,0,66,0,0,0,0,0,0,10,@TGUID,@TIRION,0,0,0,0,0,"Mograine - Script - Set orientation"),
+ (@MOGRAINE*100,9,61,0,0,0,100,0,0,0,0,0,90,4,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Set unit bytes"),
+ (@MOGRAINE*100,9,62,0,0,0,100,0,8000,8000,0,0,1,21,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mograine - Script - Say Line 22"),
+ (@MOGRAINE*100,9,63,0,0,0,100,0,11000,11000,0,0,1,2,0,0,0,0,0,10,@TGUID,@TIRION,0,0,0,0,0,"Tirion - Say Line 3"),
+ (@MOGRAINE*100,9,64,0,0,0,100,0,3000,3000,0,0,1,3,0,0,0,0,0,10,@IGUID,@ISILLIEN,0,0,0,0,0,"Isillien - Script - Say line 4"),
+ (@MOGRAINE*100,9,65,0,0,0,100,0,0,0,0,0,1,1,0,0,0,0,0,10,@DGUID,@DOAN,0,0,0,0,0,"Doan - Script - Say line 2"),
+ (@MOGRAINE*100,9,66,0,0,0,100,0,0,0,0,0,1,1,0,0,0,0,0,10,@FGUID,@FAIRBANKS,0,0,0,0,0,"Fairbanks - Script - Say line 2"),
+ (@MOGRAINE*100,9,67,0,0,0,100,0,0,0,0,0,1,1,0,0,0,0,0,10,@AGUID,@ABBENDIS,0,0,0,0,0,"Abbendis - Script - Say line 2"),
+ -- Tirion script
+ (@TIRION*100,9,0,0,0,0,100,0,0,0,0,0,50,@CHAIR,215,0,0,0,0,8,0,0,0,1818.346,1031.224,11.09751,3.124123,"Mograine - Script - Spawn chair"),
+ (@TIRION*100,9,1,0,0,0,100,0,152000,152000,0,0,11,@SHOCK,2,0,0,0,0,1,0,0,0,0,0,0,0,"Tirion - Script - Cast Holy Shock"),
+ (@TIRION*100,9,2,0,0,0,100,0,12500,12500,0,0,11,@SHOCK,2,0,0,0,0,1,0,0,0,0,0,0,0,"Tirion - Script - Cast Holy Shock"),
+ (@TIRION*100,9,3,0,0,0,100,0,3500,3500,0,0,11,@JUDGE,2,0,0,0,0,1,0,0,0,0,0,0,0,"Tirion - Script - Cast Judgement"),
+ (@TIRION*100,9,4,0,0,0,100,0,2000,2000,0,0,11,@JUDGE,2,0,0,0,0,1,0,0,0,0,0,0,0,"Tirion - Script - Cast Judgement"),
+ (@TIRION*100,9,5,0,0,0,100,0,2500,2500,0,0,11,@HEALS,2,0,0,0,0,1,0,0,0,0,0,0,0,"Tirion - Script - Cast Heal"),
+ (@TIRION*100,9,6,0,0,0,100,0,4000,4000,0,0,11,@SHOCK,2,0,0,0,0,1,0,0,0,0,0,0,0,"Tirion - Script - Cast Holy Shock"),
+ -- Fairbanks script
+ (@FAIRBANKS*100,9,0,0,0,0,100,0,155000,155000,0,0,66,0,0,0,0,0,0,15,@CHEST,50,0,0,0,0,0,"Fairbanks - Script - Set orientation"),
+ (@FAIRBANKS*100,9,1,0,0,0,100,0,6000,6000,0,0,11,@HEALS,2,0,0,0,0,1,0,0,0,0,0,0,0,"Fairbanks - Script - Cast Heal"),
+ (@FAIRBANKS*100,9,2,0,0,0,100,0,5000,5000,0,0,11,@SMITE,2,0,0,0,0,1,0,0,0,0,0,0,0,"Fairbanks - Script - Cast Smite"),
+ (@FAIRBANKS*100,9,3,0,0,0,100,0,2500,2500,0,0,11,@HEALS,2,0,0,0,0,1,0,0,0,0,0,0,0,"Fairbanks - Script - Cast Heal"),
+ (@FAIRBANKS*100,9,4,0,0,0,100,0,2500,2500,0,0,11,@SMITE,2,0,0,0,0,1,0,0,0,0,0,0,0,"Fairbanks - Script - Cast Smite"),
+ (@FAIRBANKS*100,9,5,0,0,0,100,0,2500,2500,0,0,11,@SMITE,2,0,0,0,0,1,0,0,0,0,0,0,0,"Fairbanks - Script - Cast Smite"),
+ (@FAIRBANKS*100,9,6,0,0,0,100,0,2500,2500,0,0,11,@HEALS,2,0,0,0,0,1,0,0,0,0,0,0,0,"Fairbanks - Script - Cast Heal"),
+ (@FAIRBANKS*100,9,7,0,0,0,100,0,70000,70000,0,0,66,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fairbanks - Script - Set orientation"),
+ -- Abbendis script
+ (@ABBENDIS*100,9,0,0,0,0,100,0,68500,68500,0,0,66,0,0,0,0,0,0,15,@CHEST,50,0,0,0,0,0,"Abbendis - Script - Set orientation"),
+ (@ABBENDIS*100,9,1,0,0,0,100,0,96000,96000,0,0,11,@SHOCK,2,0,0,0,0,1,0,0,0,0,0,0,0,"Abbendis - Script - Cast Holy Shock"),
+ (@ABBENDIS*100,9,2,0,0,0,100,0,3500,3500,0,0,11,@JUDGE,2,0,0,0,0,1,0,0,0,0,0,0,0,"Abbendis - Script - Cast Judgement"),
+ (@ABBENDIS*100,9,3,0,0,0,100,0,3500,3500,0,0,11,@SHOCK,2,0,0,0,0,1,0,0,0,0,0,0,0,"Abbendis - Script - Cast Holy Shock"),
+ (@ABBENDIS*100,9,4,0,0,0,100,0,5000,5000,0,0,11,@HEALS,2,0,0,0,0,1,0,0,0,0,0,0,0,"Abbendis - Script - Cast Heal"),
+ (@ABBENDIS*100,9,5,0,0,0,100,0,2500,2500,0,0,11,@SHOCK,2,0,0,0,0,1,0,0,0,0,0,0,0,"Abbendis - Script - Cast Holy Shock"),
+ (@ABBENDIS*100,9,6,0,0,0,100,0,67000,67000,0,0,66,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Abbendis - Script - Set orientation"),
+ -- Isillien script
+ (@ISILLIEN*100,9,0,0,0,0,100,0,68000,68000,0,0,66,0,0,0,0,0,0,15,@CHEST,50,0,0,0,0,0,"Isillien - Script - Set orientation"),
+ (@ISILLIEN*100,9,1,0,0,0,100,0,66000,66000,0,0,11,@SMITE,2,0,0,0,0,1,0,0,0,0,0,0,0,"Isillien - Script - Cast Smite"),
+ (@ISILLIEN*100,9,2,0,0,0,100,0,32000,32000,0,0,11,@SMITE,2,0,0,0,0,1,0,0,0,0,0,0,0,"Isillien - Script - Cast Smite"),
+ (@ISILLIEN*100,9,3,0,0,0,100,0,2500,2500,0,0,11,@HEALS,2,0,0,0,0,1,0,0,0,0,0,0,0,"Isillien - Script - Cast Heal"),
+ (@ISILLIEN*100,9,4,0,0,0,100,0,2500,2500,0,0,11,@SMITE,2,0,0,0,0,1,0,0,0,0,0,0,0,"Isillien - Script - Cast Smite"),
+ (@ISILLIEN*100,9,5,0,0,0,100,0,2500,2500,0,0,11,@SMITE,2,0,0,0,0,1,0,0,0,0,0,0,0,"Isillien - Script - Cast Smite"),
+ (@ISILLIEN*100,9,6,0,0,0,100,0,2500,2500,0,0,11,@HEALS,2,0,0,0,0,1,0,0,0,0,0,0,0,"Isillien - Script - Cast Heal"),
+ (@ISILLIEN*100,9,7,0,0,0,100,0,70000,70000,0,0,66,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Isillien - Script - Set orientation");
diff --git a/sql/updates/world/2015_04_05_01_world.sql b/sql/updates/world/2015_04_05_01_world.sql
new file mode 100644
index 00000000000..8b8d98fc558
--- /dev/null
+++ b/sql/updates/world/2015_04_05_01_world.sql
@@ -0,0 +1,72 @@
+UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`='' WHERE `entry` IN(12858,12859);
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN(12858,12859) AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN(1285800) 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
+
+(12858, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 2, 113, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Torek - On Spawn - Set Faction'),
+(12858, 0, 1, 2, 19, 0, 100, 0, 6544, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Torek - On Quest Accept - Store Targetlist'),
+(12858, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 80, 1285800, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Torek - On Quest Accept - Run Script'),
+(12858, 0, 3, 0, 40, 0, 100, 1, 1, 12858, 0, 0, 1, 1, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Torek - On Reached WP1 - Say Line 1'),
+(12858, 0, 4, 0, 40, 0, 100, 1, 8, 12858, 0, 0, 1, 2, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Torek - On Reached WP8 - Say Line 2'),
+(12858, 0, 5, 0, 40, 0, 100, 1, 19, 12858, 0, 0, 107, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Torek - On Reached WP19 - Summon Group'),
+(12858, 0, 6, 7, 40, 0, 100, 1, 20, 12858, 0, 0, 1, 3, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Torek - On Reached WP20 - Say Line 3'),
+(12858, 0, 7, 0, 61, 0, 100, 0, 0, 0, 0, 0, 15, 6544, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Torek - On Reached WP20 - Complete Quest'),
+(12858, 0, 8, 9, 40, 0, 100, 1, 21, 12858, 0, 0, 1, 4, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Torek - On Reached WP21 - Say Line 4'),
+(12858, 0, 9, 0, 61, 0, 100, 0, 0, 0, 0, 0, 54, 60000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Torek - On Reached WP21 - Pause WP'),
+(12858, 0, 10, 11, 40, 0, 100, 0, 22, 12858, 0, 0, 45, 2, 2, 0, 0, 0, 0, 9, 12859, 0, 100, 0, 0, 0, 0, 'Torek - On Reached WP22 - Set Data on Splintertree Raider'),
+(12858, 0, 11, 0, 61, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Torek - On Reached WP22 - Despawn'),
+(12858, 0, 12, 13, 6, 0, 100, 0, 0, 0, 0, 0, 45, 2, 2, 0, 0, 0, 0, 9, 12859, 0, 200, 0, 0, 0, 0, 'Torek - On Death - Set Data on Splintertree Raider'),
+(12858, 0, 13, 0, 61, 0, 100, 0, 0, 0, 0, 0, 6, 6544, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Torek - On Death - Fail Quest'),
+(12858, 0, 14, 0, 9, 0, 100, 0, 0, 5, 15000, 20000, 11, 11977, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Torek - IC - Cast Rend'),
+(12858, 0, 15, 0, 0, 0, 100, 0, 0, 5000, 20000, 30000, 11, 8078, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Torek - IC - Cast Thunderclap'),
+(12858, 0, 16, 0, 40, 0, 100, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On reached WP - Set Home Position'),
+
+(12859, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 2, 113, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Splintertree Raider - On Spawn - Set Faction'),
+(12859, 0, 1, 2, 38, 0, 100, 0, 1, 1, 0, 0, 2, 83, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Splintertree Raider - On Data Set 1 1 - Set Faction'),
+(12859, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 91, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Splintertree Raider - On Data Set 1 1 - Set Bytes 1'),
+(12859, 0, 3, 4, 61, 0, 100, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Splintertree Raider - On Data Set 1 1 - Set Aggresive'),
+
+(12859, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 19, 12858, 0, 0, 0, 0, 0, 0, 'Splintertree Raider - On Data Set 1 1 - Follow Torek'),
+(12859, 0, 5, 0, 7, 0, 100, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 19, 12858, 0, 0, 0, 0, 0, 0, 'Splintertree Raider - On Evade - Follow Torek'),
+(12859, 0, 6, 0, 38, 0, 100, 0, 2, 2, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Splintertree Raider - On Data Set 2 2 - Despawn'),
+(12859, 0, 7, 0, 1, 0, 100, 0, 1000, 1000, 1000, 1000, 101, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Splintertree Raider - OOC - Set Home Position'),
+
+(1285800, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Torek - Script - Set NPC Flags'),
+(1285800, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 2, 83, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Torek - Script - Set Faction'),
+(1285800, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Torek - Script - Say Line 0'),
+(1285800, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 9, 12859, 0, 200, 0, 0, 0, 0, 'Torek - Script - Set Data on Splintertree Raider'),
+(1285800, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 53, 0, 12858, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 'Torek - Script - Start WP');
+
+DELETE FROM `creature_summon_groups` WHERE `summonerId`=12858;
+INSERT INTO `creature_summon_groups` (`summonerId`, `summonerType`, `groupId`, `entry`, `position_x`, `position_y`, `position_z`, `orientation`, `summonType`, `summonTime`) VALUES
+(12858, 0, 0, 12860, 1776.73, -2049.06, 109.83, 1.54, 4, 25000),
+(12858, 0, 0, 12896, 1774.64, -2049.41, 109.83, 1.40, 4, 25000),
+(12858, 0, 0, 12897, 1778.73, -2049.50, 109.83, 1.67, 4, 25000);
+
+DELETE FROM `script_waypoint` WHERE `entry`=12858;
+DELETE FROM `waypoints` WHERE `entry`=12858;
+INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES
+ (12858, 1, 1788.88, -2240.17, 111.71, ''),
+ (12858, 2, 1797.49, -2238.11, 112.31, ''),
+ (12858, 3, 1803.83, -2232.77, 111.22, ''),
+ (12858, 4, 1806.65, -2217.83, 107.36, ''),
+ (12858, 5, 1811.81, -2208.01, 107.45, ''),
+ (12858, 6, 1820.85, -2190.82, 100.49, ''),
+ (12858, 7, 1829.6, -2177.49, 96.44, ''),
+ (12858, 8, 1837.98, -2164.19, 96.71, 'prepare'),
+ (12858, 9, 1839.99, -2149.29, 96.78, ''),
+ (12858, 10, 1835.14, -2134.98, 96.8, ''),
+ (12858, 11, 1823.57, -2118.27, 97.43, ''),
+ (12858, 12, 1814.99, -2110.35, 98.38, ''),
+ (12858, 13, 1806.6, -2103.09, 99.19, ''),
+ (12858, 14, 1798.27, -2095.77, 100.04, ''),
+ (12858, 15, 1783.59, -2079.92, 100.81, ''),
+ (12858, 16, 1776.79, -2069.48, 101.77, ''),
+ (12858, 17, 1776.82, -2054.59, 109.82, ''),
+ (12858, 18, 1776.88, -2047.56, 109.83, ''),
+ (12858, 19, 1776.86, -2036.55, 109.83, ''),
+ (12858, 20, 1776.9, -2024.56, 109.83, 'win'),
+ (12858, 21, 1776.87, -2028.31, 109.83, 'stay'),
+ (12858, 22, 1776.9, -2028.3, 109.83, '');
diff --git a/sql/updates/world/2015_04_05_02_world.sql b/sql/updates/world/2015_04_05_02_world.sql
new file mode 100644
index 00000000000..7b6816fc41e
--- /dev/null
+++ b/sql/updates/world/2015_04_05_02_world.sql
@@ -0,0 +1,2 @@
+-- Add Quest rewards for quest Teron Gorefiend, I am...
+UPDATE `quest_template` SET `RewardChoiceItemId1`=31104, `RewardChoiceItemId2`=31110, `RewardChoiceItemId3`=31109, `RewardChoiceItemId4`=31107, `RewardChoiceItemId5`=31106, `RewardChoiceItemId6`=31105 WHERE `Id` IN (10645,10639);
diff --git a/sql/updates/world/2015_04_05_03_world.sql b/sql/updates/world/2015_04_05_03_world.sql
new file mode 100644
index 00000000000..261dd6c2a9f
--- /dev/null
+++ b/sql/updates/world/2015_04_05_03_world.sql
@@ -0,0 +1,4 @@
+--
+UPDATE `creature` SET `spawnMask`=1 WHERE `map`=429;
+UPDATE `gameobject` SET `spawnMask`=1 WHERE `map`=429;
+UPDATE `quest_template` SET `RewardChoiceItemCount1`=1, `RewardChoiceItemCount2`=1, `RewardChoiceItemCount3`=1, `RewardChoiceItemCount4`=1, `RewardChoiceItemCount5`=1, `RewardChoiceItemCount6`=1 WHERE `Id` IN (10645,10639);
diff --git a/sql/updates/world/2015_04_05_04_world.sql b/sql/updates/world/2015_04_05_04_world.sql
new file mode 100644
index 00000000000..12fabf12d97
--- /dev/null
+++ b/sql/updates/world/2015_04_05_04_world.sql
@@ -0,0 +1,33 @@
+UPDATE `creature_template` SET `ainame`='SmartAI', `scriptname`='' WHERE `entry` IN(12256,12255,12254,12253,12252,12251,12249,12244);
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN(12256,12255,12254,12253,12252,12251,12249,12244) AND `source_type`=0;
+
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(12256, 0, 0, 1, 8, 0, 100, 0, 19250, 0, 120000, 120000, 33, 12247, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Mark of Detonation - On Spellhit - Kill Credit'),
+(12255, 0, 0, 1, 8, 0, 100, 0, 19250, 0, 120000, 120000, 33, 12247, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Mark of Detonation - On Spellhit - Kill Credit'),
+(12254, 0, 0, 1, 8, 0, 100, 0, 19250, 0, 120000, 120000, 33, 12247, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Mark of Detonation - On Spellhit - Kill Credit'),
+(12253, 0, 0, 1, 8, 0, 100, 0, 19250, 0, 120000, 120000, 33, 12247, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Mark of Detonation - On Spellhit - Kill Credit'),
+(12252, 0, 0, 1, 8, 0, 100, 0, 19250, 0, 120000, 120000, 33, 12247, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Mark of Detonation - On Spellhit - Kill Credit'),
+(12251, 0, 0, 1, 8, 0, 100, 0, 19250, 0, 120000, 120000, 33, 12247, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Mark of Detonation - On Spellhit - Kill Credit'),
+(12249, 0, 0, 1, 8, 0, 100, 0, 19250, 0, 120000, 120000, 33, 12247, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Mark of Detonation - On Spellhit - Kill Credit'),
+(12244, 0, 0, 1, 8, 0, 100, 0, 19250, 0, 120000, 120000, 33, 12247, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Mark of Detonation - On Spellhit - Kill Credit'),
+(12256, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 120, 0, 0, 0, 0, 0, 20, 177668, 0, 0, 0, 0, 0, 0, 'Mark of Detonation - On Spellhit - Despawn Mark of Detonation'),
+(12255, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 120, 0, 0, 0, 0, 0, 20, 177668, 0, 0, 0, 0, 0, 0, 'Mark of Detonation - On Spellhit - Despawn Mark of Detonation'),
+(12254, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 120, 0, 0, 0, 0, 0, 20, 177668, 0, 0, 0, 0, 0, 0, 'Mark of Detonation - On Spellhit - Despawn Mark of Detonation'),
+(12253, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 120, 0, 0, 0, 0, 0, 20, 177668, 0, 0, 0, 0, 0, 0, 'Mark of Detonation - On Spellhit - Despawn Mark of Detonation'),
+(12252, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 120, 0, 0, 0, 0, 0, 20, 177668, 0, 0, 0, 0, 0, 0, 'Mark of Detonation - On Spellhit - Despawn Mark of Detonation'),
+(12251, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 120, 0, 0, 0, 0, 0, 20, 177668, 0, 0, 0, 0, 0, 0, 'Mark of Detonation - On Spellhit - Despawn Mark of Detonation'),
+(12249, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 120, 0, 0, 0, 0, 0, 20, 177668, 0, 0, 0, 0, 0, 0, 'Mark of Detonation - On Spellhit - Despawn Mark of Detonation'),
+(12244, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 120, 0, 0, 0, 0, 0, 20, 177668, 0, 0, 0, 0, 0, 0, 'Mark of Detonation - On Spellhit - Despawn Mark of Detonation');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=19250;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13, 1, 19250, 0, 0, 31, 0, 3, 12256, 0, 0, 0, 0, '', 'Place Smokeys Mixture targets Mark of Detonation'),
+(13, 1, 19250, 0, 1, 31, 0, 3, 12255, 0, 0, 0, 0, '', 'Place Smokeys Mixture targets Mark of Detonation'),
+(13, 1, 19250, 0, 2, 31, 0, 3, 12254, 0, 0, 0, 0, '', 'Place Smokeys Mixture targets Mark of Detonation'),
+(13, 1, 19250, 0, 3, 31, 0, 3, 12253, 0, 0, 0, 0, '', 'Place Smokeys Mixture targets Mark of Detonation'),
+(13, 1, 19250, 0, 4, 31, 0, 3, 12252, 0, 0, 0, 0, '', 'Place Smokeys Mixture targets Mark of Detonation'),
+(13, 1, 19250, 0, 5, 31, 0, 3, 12251, 0, 0, 0, 0, '', 'Place Smokeys Mixture targets Mark of Detonation'),
+(13, 1, 19250, 0, 6, 31, 0, 3, 12249, 0, 0, 0, 0, '', 'Place Smokeys Mixture targets Mark of Detonation'),
+(13, 1, 19250, 0, 7, 31, 0, 3, 12244, 0, 0, 0, 0, '', 'Place Smokeys Mixture targets Mark of Detonation'),
+(13, 4, 19250, 0, 0, 31, 0, 3, 12247, 0, 0, 0, 0, '', 'Place Smokeys Mixture targets Scourge Structure');
diff --git a/sql/updates/world/2015_04_05_05_world.sql b/sql/updates/world/2015_04_05_05_world.sql
new file mode 100644
index 00000000000..4d23ec8a4c4
--- /dev/null
+++ b/sql/updates/world/2015_04_05_05_world.sql
@@ -0,0 +1,7 @@
+UPDATE `creature_template` SET `ainame`='SmartAI', `scriptname`='' WHERE `entry` =29217;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` =29217 AND `source_type`=0;
+
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(29217, 0, 0, 0, 0, 0, 100, 2, 0, 2000, 2000, 4000, 11, 53617, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Anub ar Venomancer - On Range - Cast Poison Bolt (Normal)'),
+(29217, 0, 1, 0, 0, 0, 100, 4, 0, 2000, 2000, 4000, 11, 59359, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Anub ar Venomancer - On Range - Cast Poison Bolt (Heroic)');
diff --git a/sql/updates/world/2015_04_05_06_world_335.sql b/sql/updates/world/2015_04_05_06_world_335.sql
new file mode 100644
index 00000000000..ed7071282ab
--- /dev/null
+++ b/sql/updates/world/2015_04_05_06_world_335.sql
@@ -0,0 +1,2 @@
+--
+UPDATE `game_event` SET `start_time`='2015-04-05 00:01:00' WHERE `eventEntry`=9;
diff --git a/sql/updates/world/2015_04_05_07_world.sql b/sql/updates/world/2015_04_05_07_world.sql
new file mode 100644
index 00000000000..af5fb8a8390
--- /dev/null
+++ b/sql/updates/world/2015_04_05_07_world.sql
@@ -0,0 +1,118 @@
+-- Pathing for Kor'kron Defender Entry: 19362 'TDB FORMAT'
+SET @NPC := 69082;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2973.116,`position_y`=2556.282,`position_z`=105.8032 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,-2973.116,2556.282,105.8032,0,0,0,0,100,0), -- 13:50:20
+(@PATH,2,-2962.696,2547.778,105.8032,0,0,0,0,100,0), -- 13:50:24
+(@PATH,3,-2953.723,2551.618,105.8032,0,0,0,0,100,0), -- 13:50:29
+(@PATH,4,-2954.077,2563.904,105.8032,0,0,0,0,100,0), -- 13:50:33
+(@PATH,5,-2967.127,2567.316,105.8032,0,0,0,0,100,0), -- 13:50:38
+(@PATH,6,-2968.788,2567.15,105.8032,0,0,0,0,100,0); -- 13:50:43
+-- 0x1C09FC424012E88000001A00019B696A .go -2973.116 2556.282 105.8032
+
+-- Pathing for Kor'kron Defender Entry: 19362 'TDB FORMAT'
+SET @NPC := 69087;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-3089.103,`position_y`=2508.026,`position_z`=83.78547 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,-3089.103,2508.026,83.78547,0,0,0,0,100,0), -- 13:47:23
+(@PATH,2,-3087.197,2507.859,83.85033,0,0,0,0,100,0), -- 13:47:23
+(@PATH,3,-3081.65,2516.463,84.05411,0,0,0,0,100,0), -- 13:47:26
+(@PATH,4,-3090.028,2524.237,84.04036,0,0,0,0,100,0), -- 13:47:30
+(@PATH,5,-3094.658,2522.566,84.06168,0,0,0,0,100,0), -- 13:47:33
+(@PATH,6,-3096.908,2520.316,83.81168,0,0,0,0,100,0), -- 13:47:33
+(@PATH,7,-3098.908,2518.066,84.06168,0,0,0,0,100,0), -- 13:47:33
+(@PATH,8,-3099.196,2517.561,84.04745,0,0,0,0,100,0), -- 13:47:37
+(@PATH,9,-3097.946,2514.811,84.04745,0,0,0,0,100,0), -- 13:47:37
+(@PATH,10,-3096.946,2512.061,84.04745,0,0,0,0,100,0); -- 13:47:37
+-- 0x1C09FC424012E88000001A00009B6969 .go -3089.103 2508.026 83.78547
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=69091;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES
+(69091, 69091, 0, 0, 2),
+(69091, 69092, 3, 270, 2);
+
+-- Pathing for Kor'kron Defender Entry: 19362 'TDB FORMAT'
+SET @NPC := 69091;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-3146.969,`position_y`=2563.808,`position_z`=61.37704 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,-3146.969,2563.808,61.37704,0,0,0,0,100,0), -- 13:54:58
+(@PATH,2,-3120.494,2564.844,61.75181,0,0,0,0,100,0), -- 13:54:58
+(@PATH,3,-3120.494,2564.844,61.75181,0,0,0,0,100,0), -- 13:54:58
+(@PATH,4,-3120.175,2565.024,61.98759,0,0,0,0,100,0), -- 13:55:06
+(@PATH,5,-3105.344,2573.74,61.804,0,0,0,0,100,0), -- 13:55:12
+(@PATH,6,-3091.726,2572.44,62.09174,0,0,0,0,100,0), -- 13:55:18
+(@PATH,7,-3088.27,2558.042,62.11543,0,0,0,0,100,0), -- 13:55:24
+(@PATH,8,-3100.597,2545.807,62.11351,0,0,0,0,100,0), -- 13:55:32
+(@PATH,9,-3094.525,2537.95,61.9211,0,0,0,0,100,0), -- 13:55:35
+(@PATH,10,-3079.098,2537.322,62.08109,0,0,0,0,100,0), -- 13:55:43
+(@PATH,11,-3062.423,2502.734,63.59535,0,0,0,0,100,0), -- 13:55:52
+(@PATH,12,-3063.66,2507.985,63.10339,0,0,0,0,100,0), -- 13:56:00
+(@PATH,13,-3065.486,2517.504,62.46205,0,0,0,0,100,0), -- 13:56:04
+(@PATH,14,-3079.187,2537.478,62.18378,0,0,0,0,100,0), -- 13:56:14
+(@PATH,15,-3094.9,2537.977,62.13345,0,0,0,0,100,0), -- 13:56:20
+(@PATH,16,-3100.354,2544.985,61.87681,0,0,0,0,100,0), -- 13:56:30
+(@PATH,17,-3100.963,2545.778,61.87681,0,0,0,0,100,0), -- 13:56:30
+(@PATH,18,-3088.325,2558.04,61.854,0,0,0,0,100,0), -- 13:56:30
+(@PATH,19,-3088.325,2558.04,61.854,0,0,0,0,100,0), -- 13:56:30
+(@PATH,20,-3088.377,2558.176,62.10567,0,0,0,0,100,0), -- 13:56:32
+(@PATH,21,-3091.65,2572.547,62.05435,0,0,0,0,100,0), -- 13:56:38
+(@PATH,22,-3105.591,2573.866,62.01907,0,0,0,0,100,0), -- 13:56:43
+(@PATH,23,-3120.379,2565.042,61.81473,0,0,0,0,100,0), -- 13:56:50
+(@PATH,24,-3120.494,2564.844,61.75181,0,0,0,0,100,0); -- 13:57:02
+-- 0x1C09FC424012E88000001A00039B696A .go -3146.969 2563.808 61.37704
+
+-- Remove too many spawns
+DELETE FROM `creature` WHERE `guid` IN (74221,74220);
+
+-- Pathing for Kor'kron Wyvern Rider Entry: 21153 'TDB FORMAT'
+SET @NPC := 74219;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-3014.283,`position_y`=2567.434,`position_z`=141.6225 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,17722,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,-3014.283,2567.434,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,2,-2997.179,2547.184,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,3,-2975.056,2527.355,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,4,-2944.816,2526.003,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,5,-2925.329,2546.514,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,6,-2919.246,2565.872,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,7,-2920.081,2589.365,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,8,-2931.993,2608.762,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,9,-2955.626,2618.87,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,10,-2977.497,2619.666,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,11,-3014.667,2609.543,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,12,-3055.036,2590.46,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,13,-3085.538,2571.631,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,14,-3114.716,2555.922,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,15,-3143.012,2552.032,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,16,-3176.688,2560.458,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,17,-3190.569,2587.816,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,18,-3187.101,2615.266,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,19,-3164.5,2634.338,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,20,-3137.512,2639.929,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,21,-3099.443,2633.703,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,22,-3074.344,2622.916,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,23,-3057.397,2608.769,141.6225,0,0,1,0,100,0), -- 13:51:11
+(@PATH,24,-3045.574,2592.941,140.8448,0,0,1,0,100,0), -- 13:51:11
+(@PATH,25,-3046.095,2591.678,139.9281,0,0,1,0,100,0), -- 13:51:11
+(@PATH,26,-3028.975,2582.002,141.6225,0,0,1,0,100,0); -- 13:51:11
+-- 0x1C09FC424014A84000001A00001B6969 .go -3014.283 2567.434 141.6225
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=69079;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES
+(69079, 69079, 0, 0, 2),
+(69079, 69081, 3, 270, 2);
diff --git a/sql/updates/world/2015_04_06_00_world.sql b/sql/updates/world/2015_04_06_00_world.sql
new file mode 100644
index 00000000000..7ba78d72963
--- /dev/null
+++ b/sql/updates/world/2015_04_06_00_world.sql
@@ -0,0 +1,94 @@
+-- Pathing for Barash the Den Mother Entry: 23269 'TDB FORMAT'
+SET @NPC := 40645;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5028.414,`position_y`=385.6584,`position_z`=171.0149 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,-5028.414,385.6584,171.0149,0,0,1,0,100,0), -- 20:05:15
+(@PATH,2,-5037.621,373.1704,171.0173,0,0,1,0,100,0), -- 20:05:18
+(@PATH,3,-5051.44,373.3133,171.0181,0,0,1,0,100,0), -- 20:05:20
+(@PATH,4,-5055.748,366.6401,171.0181,0,0,1,0,100,0), -- 20:05:21
+(@PATH,5,-5058.255,357.087,171.0151,0,0,1,0,100,0), -- 20:05:23
+(@PATH,6,-5055.19,345.9996,170.9724,0,0,1,0,100,0), -- 20:05:25
+(@PATH,7,-5034.827,346.2221,171.0174,0,0,1,0,100,0), -- 20:05:27
+(@PATH,8,-5025.357,353.0934,170.6913,0,0,1,0,100,0), -- 20:05:31
+(@PATH,9,-5019.042,361.9999,170.704,0,0,1,0,100,0), -- 20:05:33
+(@PATH,10,-5018.177,373.4781,170.964,0,0,1,0,100,0); -- 20:05:34
+
+-- Update position Ja'y Nosliw <Skybreaker General> 22433
+UPDATE `creature` SET `position_x`=-5144.404, `position_y`=600.9089, `position_z`=82.75489, `orientation`=6.021386 WHERE `guid`=78787;
+
+-- Update position Taskmaster Varkule Dragonbreath 23140
+UPDATE `creature` SET `position_x`=-5114.439, `position_y`=588.4843, `position_z`=85.87241, `orientation`=3.036873 WHERE `guid`=51876;
+
+-- Pathing for Arvoar the Rapacious Entry: 23267 'TDB FORMAT'
+SET @NPC := 40619;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5115.436,`position_y`=144.5614,`position_z`=130.1606 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,-5115.436,144.5614,130.1606,0,0,0,0,100,0), -- 07:19:51
+(@PATH,2,-5127.696,139.5475,130.1854,0,0,0,0,100,0), -- 07:19:53
+(@PATH,3,-5122.23,120.3736,129.9845,0,0,0,0,100,0), -- 07:19:56
+(@PATH,4,-5117.039,117.6734,129.9086,0,0,0,0,100,0), -- 07:19:58
+(@PATH,5,-5107.681,117.8557,129.8407,0,0,0,0,100,0), -- 07:19:59
+(@PATH,6,-5100.675,122.349,130.0891,0,0,0,0,100,0), -- 07:20:01
+(@PATH,7,-5105.304,139.7458,130.1348,0,0,0,0,100,0); -- 07:20:04
+
+-- Update fly speed of Dragonmaw Skybreakers
+UPDATE `waypoint_data` SET `move_type`=1 WHERE `id` IN (782940, 782970, 782910, 782920, 782930, 782940, 782950, 782960, 782970, 782980, 782990, 783000);
+
+-- Pathing for Dragonmaw Transporter Entry: 23188 'TDB FORMAT'
+SET @NPC := 132814;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-4584.821,`position_y`=56.05914,`position_z`=260.3116 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,16314,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,-4584.821,56.05914,260.3116,0,0,1,0,100,0), -- 07:28:22
+(@PATH,2,-4554.921,74.39236,250.4782,0,0,1,0,100,0), -- 07:28:22
+(@PATH,3,-4532.374,72.2015,243.3948,0,0,1,0,100,0), -- 07:28:22
+(@PATH,4,-4508.559,67.28505,241.6727,0,0,1,0,100,0), -- 07:28:22
+(@PATH,5,-4487.302,56.6492,242.2004,0,0,1,0,100,0), -- 07:28:22
+(@PATH,6,-4470.297,28.84614,244.756,0,0,1,0,100,0), -- 07:28:22
+(@PATH,7,-4461.818,-8.348633,247.9227,0,0,1,0,100,0), -- 07:28:22
+(@PATH,8,-4477.97,-44.38118,242.3393,0,0,1,0,100,0), -- 07:28:22
+(@PATH,9,-4516.678,-59.03483,240.2283,0,0,1,0,100,0), -- 07:28:22
+(@PATH,10,-4543.176,-60.92849,240.2838,0,0,1,0,100,0), -- 07:28:22
+(@PATH,11,-4566.225,-51.06413,247.3116,0,0,1,0,100,0), -- 07:28:22
+(@PATH,12,-4581.653,-29.58301,254.2004,0,0,1,0,100,0), -- 07:28:22
+(@PATH,13,-4591.782,0.532661,260.3116,0,0,1,0,100,0), -- 07:28:22
+(@PATH,14,-4594.208,28.59668,260.3116,0,0,1,0,100,0); -- 07:28:22
+
+-- Pathing for Dragonmaw Transporter Entry: 23188 'TDB FORMAT'
+SET @NPC := 132818;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-4735.987,`position_y`=122.2487,`position_z`=106.433 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,16314,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,-4735.987,122.2487,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,2,-4744.92,149.3799,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,3,-4751.057,182.3161,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,4,-4767.275,216.0688,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,5,-4776.866,248.6194,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,6,-4781.172,280.7835,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,7,-4783.174,319.2545,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,8,-4752.483,324.3357,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,9,-4729.643,316.453,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,10,-4715.97,309.7697,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,11,-4709.104,290.6015,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,12,-4710.651,264.7013,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,13,-4709.572,256.6543,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,14,-4706.147,218.4914,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,15,-4709.459,193.1469,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,16,-4704.721,157.6649,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,17,-4695.498,116.758,106.433,0,0,1,0,100,0), -- 07:15:27
+(@PATH,18,-4713.938,87.04405,101.2085,0,0,1,0,100,0), -- 07:15:27
+(@PATH,19,-4726.667,100.212,106.433,0,0,1,0,100,0); -- 07:15:27
diff --git a/sql/updates/world/2015_04_06_01_world.sql b/sql/updates/world/2015_04_06_01_world.sql
new file mode 100644
index 00000000000..2b82c2e3210
--- /dev/null
+++ b/sql/updates/world/2015_04_06_01_world.sql
@@ -0,0 +1,114 @@
+DELETE FROM `page_text` WHERE `entry` IN (3587, 3588, 3589, 3590, 3591, 3592, 3593, 3581, 3582, 3584, 3585, 3586, 3583);
+INSERT INTO `page_text` (`entry`, `Text`, `next_page`, `VerifiedBuild`) VALUES
+(3587, 'How to date a Dwarven woman:
+
+1. Ask her to buy you a drink.', 0, 19831), -- 3587
+(3588, 'Let''s be honest. Since the end of the Third War, Night Elf girls have heard it all. In fact, they''d already heard it all long before you or I was born.
+
+If you want to engage the mind of a Night Elf girl, you''re going to have to stand out. Sure, we''ve all heard the tales of Night Elf lasses dancing on mailboxes and stripping to pay for Nightsaber training. True or not, if you want to light that lovely lady''s lips up with a smile, you gotta be unique, memorable and confident.
+
+Start off by showing that you''re looking for more than a gal with looks. Sure, she can bounce, she can dance, but can she hold a decent conversation? Does she even understand the proper use of a samophlange? Does she know how to have a fun time?
+
+There''s nothing worse than bringing a Night Elf to a party, only to watch her stand awkwardly by herself, breaking conversation only to lament the loss of her Highborne sister during the War of the Ancients.', 0, 19831), -- 3588
+(3589, 'There''s nothing like wooing the heart of a human girl. Infinitely forgiving, endlessly caring and fantastically fun, human girls have been the downfall of countless heroes throughout the ages. (See Chapter 3: "Jaina Proudmoore and the men who loved her")
+
+However, generation after generation has proven it takes something more than just money, looks or an epic suit of armor to attract the woman of your dreams. Not even the power of Gnomish invention can help you here.
+
+To truly charm the heart of another, you should possess these qualities.
+
+* Be Fun & Friendly
+* Be a Challenge
+* Be a Man
+
+', 3590, 19831), -- 3589
+(3590, 'Be Fun & Friendly
+
+Ever have at friend who shows up at your house and brings everybody down? Yep. Everyone does. Does he get invited back to the parties? Not unless he''s bringing the ale. If you want to be an attractive person, live an attractive lifestyle.
+
+You''ll find that the more you enjoy socializing with others, the more they will enjoy socializing with you!
+
+There''s no faster way to ruin a girl''s night than bringing in that needy, apologetic vibe. Let it go, embrace the fun and your confidence will soar.', 3591, 19831), -- 3590
+(3591, 'Be a Challenge
+
+Too many Gnomes these days walk with their head slung low, shuffling along sadly from tavern to tavern, hopelessly holding on these limiting beliefs that no human girl would ever want them. They rush into the tavern, shower her with compliments and free drinks, then go home dejected.
+
+Well, let me be the first to tell you, friend, when you give your self away so cheaply, you diminsh the value of your unique, exquisite personality. You''ve been told by society that you are not the prize, that women will never acknowledge you, that you must beg for love and attention.
+
+They are wrong. Don''t give your affection away so freely. Instead of asking yourself, "Does she like me?" ask yourself instead, "Do I like her?"
+
+Challenge her - show her you''re looking for a girl who offers more than a pretty face. If she can''t keep up with your life, move on. If she shows she''s got something to offer, you''re at the beginning of a beautiful thing. ', 3592, 19831), -- 3591
+(3592, 'Be a Man
+
+In an age where we''ve been banished from our homes, forced to fight for our very survival and faced down horrors never before known to Azeroth, you would think that the nature of manhood would be better understood.
+
+Sadly, the art of masculinity has been lost, washed away in the glitz and glamor of battle. However, all is not lost! With practice and confidence, you can come back in touch with yourself.
+
+Once you''ve met the human girl of your dreams and she''s shown herself to be worthy of your affections:
+
+* Take the lead - show her everything that is beautiful about your world
+* Hold her hand - develop a close, affectionate relationship
+* Show respect - for yourself, for her and for the world around you
+
+Above all:
+
+* Be responsible
+', 3593, 19831), -- 3592
+(3593, 'Troubleshooting
+
+While everything doesn''t always go the way you expect, that''s what make life unpredictable and exciting. However, there''s a few tips to help you a long way in improving your life. Here''s some common blunders:
+
+* Don''t chase
+* Don''t be needy
+* Don''t get stuck on someone who dislikes you
+
+These all stem from a core belief that women you must have the woman you''re talking to right now. Break free - there''s many women out there in this beautiful world and if one doesn''t work out, let go. You''ll find you become more attractive the less clingy you are.
+', 0, 19831), -- 3593
+(3581, '"Roleplaying"
+
+Good roleplaying skills are essential. No Genius Gnomish gal wants a giant bore. Regale her with tales of your future cross-continental adventures:
+
+ "You and me, babe, we''re gonna fly to Kalimdor, etch our names into the side of Teldrassil and spend the rest of our lives swinging from the trees in Un''goro Crater."
+
+"Storytelling"
+
+Share stores of your exciting future together! The more implausible, the better. Nothing gets a Gnomish girl excited like an ambitious plan. It also makes for great conversation starters!
+
+ "With our brilliant minds combined, we could retake Gnomeregan. ... why haven''t we retaken Gnomeregan anyways?"', 3582, 19831), -- 3581
+(3582, '"Teasing"
+
+Teasing is the art of making fun of a woman in a humorous way. Be careful, you can easily go too far. Calling her a "Goblin Ganking Gnat" will leave you walking home wearing that Green Gordok Grog you just bought. Try something a bit more subtle.
+
+If she acts childish and refuses to stop jumping onto tables in the middle of the bar try:
+
+"I hear there''s an opening for star entertainer at the Stormwind orphanage."
+
+If she won''t stop talking about herself playfully try:
+
+"Where''s your off switch?"
+
+IMPORTANT NOTE: Gnomish girls do NOT have an off switch. Attempting to find it may result in the loss of life, limbs or wallet.', 0, 19831), -- 3582
+(3584, 'I''d just arrived off the boat to Azuremyst when I stopped a group of Draenei dames around the ripe young age of 230. They were laughing and having a great time. What luck, still on the docks and I''d found exactly the type of fun, energetic Draenei women I wanted to meet on this trip.
+
+At first a bit anxious, I breathed deeply and reminded myself, "they too are here in Azeroth on vacation, looking to meet new people and have a great time."
+
+Sure enough, they were delighted to see one devilishly charming Gnome like myself in the Exodar. It even turned out we were both staying near the Vault of Lights. We exchanged deep, penetrating glances into each others eyes, promising to meet again near A''dal later that night. ', 3585, 19831), -- 3584
+(3585, 'The next day, I met another beautiful Draenei woman - the gleam of her horns gave only the gentlest of glimpses into her refined tastes. I asked why she was visiting the Exodar, when in shock, she told me she wasn''t visiting - she lived here.
+
+The words I spoke to myself before returned to my mind:
+
+"She is on vacation, looking to meet amazing people and have a great time."
+
+I had it all wrong, she wasn''t on vacation at all! Then suddenly, the grinding gears of my mind clicked: I''d been claiming to myself that they were so receptive because they were on vacation. What a gnollish excuse!
+
+I''m a fun, interesting guy who any sensible minded girl would love to group with, on vacation or not! Now when I meet Draenei girls, I remind myself of the simple truth:
+
+"She too is looking to meet people and have a great time."', 3586, 19831), -- 3585
+(3586, 'The following 497 pages of this dictionary consistent entirely of oddly angled pictures taken from a Super Snapper FX 2000. ', 0, 19831), -- 3586
+(3583, 'Are your tastes more exotic?
+Do you desire someone a little out of this world?
+Are hooves your thing, but succubi a little too much for you?
+
+Read on, my friend...', 3584, 19831); -- 3583
+
+UPDATE `smart_scripts` SET `link`=0 WHERE `entryorguid` IN(20349,20345,20346,20347,20348) AND `source_type`=0 AND `id`=0 AND `link`=1;
+UPDATE `smart_scripts` SET `link`=0 WHERE `entryorguid`=4498 AND `source_type`=2 AND `id`=4 AND `link`=5;
diff --git a/sql/updates/world/2015_04_06_02_world.sql b/sql/updates/world/2015_04_06_02_world.sql
new file mode 100644
index 00000000000..3e04c2250bf
--- /dev/null
+++ b/sql/updates/world/2015_04_06_02_world.sql
@@ -0,0 +1,31 @@
+UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 16222;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` = 16222;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+-- Eye (Paladin's only)
+(16222,0,0,1,22,0,100,0,38,5000,5000,0,66,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Receive Emote Eye (Paladin Only) - Set Orientation Invoker'),
+(16222,0,1,15,61,0,100,0,0,0,0,0,67,1,1000,1000,0,0,100,1,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Event Link - Create Timed Event 1'),
+(16222,0,2,0,59,0,100,0,1,0,0,0,5,16,0,0,0,0,100,1,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Timed Event - Play Emote Kneel'),
+-- Kiss
+(16222,0,3,4,22,0,100,0,58,5000,5000,0,66,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Receive Emote Kiss - Set Orientation Invoker'),
+(16222,0,4,15,61,0,100,0,0,0,0,0,67,2,1000,1000,0,0,100,1,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Event Link - Create Timed Event 2'),
+(16222,0,5,0,59,0,100,0,2,0,0,0,5,2,0,0,0,0,100,1,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Timed Event - Play Emote Bow'),
+-- Salute
+(16222,0,6,7,22,0,100,0,78,5000,5000,0,66,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Receive Emote Salute - Set Orientation Invoker'),
+(16222,0,7,15,61,0,100,0,0,0,0,0,67,3,1000,1000,0,0,100,1,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Event Link - Create Timed Event 3'),
+(16222,0,8,0,59,0,100,0,3,0,0,0,5,66,0,0,0,0,100,1,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Timed Event - Play Emote Salute'),
+-- Rude
+(16222,0,9,10,22,0,100,0,77,5000,5000,0,66,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Receive Emote Rude - Set Orientation Invoker'),
+(16222,0,10,15,61,0,100,0,0,0,0,0,67,4,1000,1000,0,0,100,1,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Event Link - Create Timed Event 4'),
+(16222,0,11,0,59,0,100,0,4,0,0,0,5,25,0,0,0,0,100,1,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Timed Event - Play Emote Poinit'),
+-- Shy
+(16222,0,12,13,22,0,100,0,84,5000,5000,0,66,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Receive Emote Shy - Set Orientation Invoker'),
+(16222,0,13,15,61,0,100,0,0,0,0,0,67,5,1000,1000,0,0,100,1,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Event Link - Create Timed Event 5'),
+(16222,0,14,0,59,0,100,0,5,0,0,0,5,23,0,0,0,0,100,1,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Timed Event - Play Emote Flex'),
+-- Clean up
+(16222,0,15,0,61,0,100,0,0,0,0,0,67,6,5000,5000,0,0,100,1,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Event Link - Create Timed Event 6'),
+(16222,0,16,0,59,0,100,0,6,0,0,0,66,0,0,0,0,0,100,1,0,0,0,0,0,0,0,'Silvermoon City Guardian - On Timed Event - Reset Orientation');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 22 AND `SourceEntry` = 16222;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(22, 1, 16222, 0, 0, 15, 0, 2, 0, 0, 0, 0, 0, '', 'Silvermoon Guardian - Only Kneel to Paladins');
diff --git a/sql/updates/world/2015_04_06_03_world.sql b/sql/updates/world/2015_04_06_03_world.sql
new file mode 100644
index 00000000000..1241c231ec2
--- /dev/null
+++ b/sql/updates/world/2015_04_06_03_world.sql
@@ -0,0 +1,19 @@
+UPDATE `gameobject_template` SET `AIName`='', `ScriptName`='', `data2`=13685, `data3`=3000, `data5`=1 WHERE `entry`=184729;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=21319;
+
+DELETE FROM `event_scripts` WHERE id IN (13685);
+INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) VALUES
+(13685, 1, 10, 21319, 90000, 0, 1316.469, 6686.669, -18.59028, 1.072638);
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=184729 AND `source_type`=1;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=21319 AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(21319, 0, 0, 1, 63, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 21, 20, 0, 0, 0, 0, 0,0,'Gor Grimgut- Just Summoned - Talk'),
+(21319, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 21, 20, 0, 0, 0, 0, 0,0,'Gor Grimgut- Just Summoned - Attack'),
+(21319, 0, 2, 0, 0, 0, 100, 0, 3000, 5000, 7000, 10000, 75, 35492, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,0,'Gor Grimgut - In Combat - Cast Exhaustion'),
+(21319, 0, 3, 0, 0, 0, 100, 0, 10000, 12000, 12000, 15000, 11, 35491, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,0,'Gor Grimgut - In Combat - Cast Furious Rage');
+
+DELETE FROM `creature_text` WHERE `entry` IN (21319);
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
+(21319, 0, 0, 'Puny $r cannot lift spear. Gor lift spear!', 12, 0, 100, 0, 0, 0, 18980, 0, 'Gor Grimgut'),
+(21319, 0, 1, 'Hah! The Thunderspike is mine. Die!', 12, 0, 100, 0, 0, 0, 18979, 0, 'Gor Grimgut');
diff --git a/sql/updates/world/2015_04_06_04_world.sql b/sql/updates/world/2015_04_06_04_world.sql
new file mode 100644
index 00000000000..0b6adc4f550
--- /dev/null
+++ b/sql/updates/world/2015_04_06_04_world.sql
@@ -0,0 +1,4 @@
+UPDATE `gameobject_template` SET `data5`=1 WHERE `entry`=184867;
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 37639 AND `spell_effect` = 36326;
+INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES
+( 37639, 36326, 0, 'Nether Whelp');
diff --git a/sql/updates/world/2015_04_06_05_world.sql b/sql/updates/world/2015_04_06_05_world.sql
new file mode 100644
index 00000000000..d6e63790a36
--- /dev/null
+++ b/sql/updates/world/2015_04_06_05_world.sql
@@ -0,0 +1,117 @@
+SET @OGUID := 5596; -- 1 free guid set by TC
+SET @QUEST := 12326;
+SET @TANK := 27587; -- Alliance Steam Tank
+SET @ELITE := 27588; -- 7th Legion Elite
+SET @ENGI := 27163; -- 7th Legion Siege Engineer
+SET @SPELL_1 := 49315; -- Ice Cannon
+SET @SPELL_2 := 49333; -- Ice Prison
+SET @SPELL_3 := 49109; -- Drop Off Gnome
+SET @SPELL_4 := 49081; -- Drop Off Soldier
+
+DELETE FROM `gameobject` WHERE `guid` = @OGUID;
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(@OGUID+0, 189331, 571, 1, 1, 3707.753418, -1182.235840, 120.745689, 1.24532, 0, 0, 0, 1, 120, 0, 1);
+
+UPDATE `creature_template` SET `npcflag`=16777216, `unit_flags`=32768, `spell1`=49315, `spell2`=49333, `spell3`=49109, `spell4`=49081 WHERE `entry`=@TANK;
+UPDATE `creature_template` SET `faction` = 1975 WHERE `entry`=27335;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (@ENGI, 27607, @TANK);
+
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=@TANK;
+INSERT INTO `npc_spellclick_spells`(`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES
+(@TANK,49078,1,0), -- player
+(@TANK,46598,1,1); -- npc
+
+DELETE FROM `vehicle_template_accessory` WHERE `entry`=@TANK;
+INSERT INTO `vehicle_template_accessory`(`entry`,`accessory_entry`,`seat_id`,`minion`,`description`,`summontype`,`summontimer`) VALUES
+(@TANK,@ENGI,1,1,"7th Legion Siege Engineer Rides Alliance Steam Tank",5,0),
+(@TANK,@ELITE,2,1,"7th Legion Elite Rides Alliance Steam Tank",5,0),
+(@TANK,@ELITE,3,1,"7th Legion Elite Rides Alliance Steam Tank",5,0);
+DELETE FROM `creature` WHERE `id` IN (27163,27588);
+
+DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId`=16 AND `SourceEntry`=@TANK) OR (`SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (@SPELL_2,@SPELL_3)) OR (`SourceTypeOrReferenceId`=18 AND `SourceEntry` IN (46598,49078));
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(16,0,@TANK,0,0,23,0,4246,0,0,0,0,'','Dismount player when not in intended zone'),
+(16,0,@TANK,0,1,23,0,4190,0,0,0,0,'','Dismount player when not in intended zone'),
+(16,0,@TANK,0,2,23,0,4188,0,0,0,0,'','Dismount player when not in intended zone'),
+(13,1,@SPELL_2,0,0,31,0,3,27288,0,0,0,'','Ice Prison can target Death Knight Champion'),
+(13,1,@SPELL_2,0,1,31,0,3,27410,0,0,0,'','Ice Prison can target Scourge SeigeSmith'),
+(13,1,@SPELL_2,0,2,31,0,3,27286,0,0,0,'','Ice Prison can target Dreadbone Invader'),
+(13,1,@SPELL_2,0,3,31,0,3,27283,0,0,0,'','Ice Prison can target Risen Winterguarde Mage'),
+(13,2,@SPELL_3,0,0,31,0,3,@ENGI,0,0,0,'','Drop Off Gnome target 7th Legion Siege Engineer'),
+(18,@TANK,46598,0,0,31,0,3,0,0,0,0,'','Only npc for spellclick'),
+(18,@TANK,49078,0,0,9,0,@QUEST,0,0,0,0,'','Required quest active for spellclick');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceGroup`=3 AND `SourceEntry`=@TANK;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`, `ConditionTarget`, `ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`, `ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(22,3,@TANK,0,1,1,49078,0,0,0,'','event require aura 49078');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceGroup`=1 AND `SourceEntry`=@ENGI;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`, `ConditionTarget`, `ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`, `ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(22,1,@ENGI,0,1,29,27607,14,0,0,'','event require creature distance');
+
+DELETE FROM `creature_template_addon` WHERE `entry` IN (@ENGI,@ELITE);
+INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(@ENGI,0,0,0,257,133,NULL),
+(@ELITE,0,0,0,257,333,NULL);
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` = 27607 AND `source_type` = 0;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = 27607*100 AND `source_type` = 9;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = @TANK AND `source_type` = 0;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = @TANK*100 AND `source_type` = 9;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = @ENGI AND `source_type` = 0;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = @ENGI*100 AND `source_type` = 9;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = @ENGI*100+1 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
+(@ENGI, 0, 0, 0, 8, 0, 100, 0, @SPELL_3, 0, 0, 0, 80, @ENGI*100, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - On spell hit - action list'),
+(@ENGI*100, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - action list - Set visible off'),
+(@ENGI*100, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 12, @ENGI, 3, 18000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - action list - Summon'),
+(@ENGI*100, 9, 2, 0, 0, 0, 100, 0, 15000, 15000, 0, 0, 47, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - action list - Set visible on'),
+(@ENGI, 0, 1, 0, 23, 0, 100, 1, 46598, 0, 0, 0, 80, @ENGI*100+1, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - Has aura - action list'),
+(@ENGI*100+1, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - action list - Talk'),
+(@ENGI*100+1, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - action list - React passif'),
+(@ENGI*100+1, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 29, 3, 0, 0, 0, 0, 0, 19, 27607, 15, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - action list - follow'),
+(@ENGI*100+1, 9, 3, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 11, 49114, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - action list - Cast to summon a GO'),
+(@ENGI*100+1, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - action list - Talk'),
+(@ENGI*100+1, 9, 5, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 75, 49215, 0, 0, 0, 0, 0, 19, 27607, 15, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - action list - Add aura'),
+(@ENGI*100+1, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - action list - Talk'),
+(@ENGI*100+1, 9, 7, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 29, 1, 0, 0, 0, 0, 0, 19, @TANK, 15, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - action list - follow'),
+(@TANK,0,0,0,38,0,100,0,0,1,0,0,11,49122,0,0,0,0,0,23,0,0,0,0,0,0,0,"Tank - On data set- cast spell credit"),
+(@TANK,0,1,0,25,0,100,0,0,0,0,0,8,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tank - On reset- react passif"),
+(@TANK,0,2,0,1,0,100,0,30000,30000,50000,50000,1,1,0,0,0,0,0,19,@ELITE,10,0,0,0,0,0,'Tank - OOC - Talk'),
+(@TANK,0,4,0,25,0,100,0,0,0,0,0,59,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tank - On reset- Set Run on"),
+(@TANK, 0, 3, 0, 8, 0, 100, 0, @SPELL_4, 0, 0, 0, 80, @TANK*100, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - On spell hit - action list'),
+(@TANK*100, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 11, @ELITE, 10, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - action list - Set visible off'),
+(@TANK*100, 9, 1, 0, 0, 0, 100, 0, 4000, 4000, 0, 0, 1, 2, 0, 0, 0, 0, 0, 11, @ELITE, 10, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - action list - Summon'),
+(@TANK*100, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Siege Engineer - action list - Set visible on'),
+(27607, 0, 1, 0, 23, 0, 100, 1, 49215, 1, 0, 0, 80, 27607*100, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Plague Wagon - Has aura - action list'),
+(27607*100, 9, 0, 0, 0, 0, 100, 0, 11000, 11000, 0, 0, 45, 0, 1, 0, 0, 0, 0, 19, @TANK, 30, 0, 0, 0, 0, 0, 'Plague Wagon - action list - Set data'),
+(27607*100, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Plague Wagon - action list - despawn');
+
+DELETE FROM `creature_text` WHERE `entry` IN (@ELITE, @ENGI);
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
+(@ELITE, 0, 0, 'Without you we''d be lost. Thanks for the ride!', 12, 7, 100, 0, 0, 0, 26844, 0, '7th Legion Elite'),
+(@ELITE, 0, 1, 'For the Alliance and Lord Fordragon!', 12, 7, 100, 0, 0, 0, 26841, 0, '7th Legion Elite'),
+(@ELITE, 0, 2, 'HOO-WAH! The cavalry has arrived!', 12, 7, 100, 0, 0, 0, 26842, 0, '7th Legion Elite'),
+(@ELITE, 0, 3, 'Great driving, soldier! Not a scratch on us!', 12, 7, 100, 0, 0, 0, 26843, 0, '7th Legion Elite'),
+(@ELITE, 1, 0, 'I think I see one of their plague wagons!', 12, 0, 100, 0, 0, 0, 26971, 0, '7th Legion Elite'),
+(@ELITE, 1, 1, 'Did I ever tell you soldiers about the time I destroyed the Thandol Span? Yep, weren''t no dark irons destroyed that bridge! Was me!', 12, 7, 100, 0, 0, 0, 26972, 0, '7th Legion Elite'),
+(@ELITE, 1, 2, 'It doesn''t make any sense. Why don''t they just fly Naxxramas over Wintergarde Keep and blow it up? I mean, that''s what I would do if I were Kel''Thuzad.', 12, 7, 100, 0, 0, 0, 26973, 0, '7th Legion Elite'),
+(@ELITE, 1, 3, 'I wonder if we''ll ever solve the mystery of the strange ore. There''s gotta be some use for it!', 12, 0, 100, 0, 0, 0, 26974, 0, '7th Legion Elite'),
+(@ELITE, 1, 4, 'Hey, do any of you know McGoyver over at Valgarde? He''s my uncle. You know what his title is? Pro. Yea, just "Pro." I want to be a pro too.', 12, 0, 100, 0, 0, 0, 26975, 0, '7th Legion Elite'),
+(@ELITE, 1, 5, 'Something straight up stinks in here! It''s definitely not me. Gnomes smell like butter and sunshine. Not like those dwarves that smell like they were born from a trogg''s armpit! None of you are dwarves, are you?', 12, 0, 100, 0, 0, 0, 26976, 0, '7th Legion Elite'),
+(@ELITE, 1, 6, 'I used to know a dwarf that claimed gnomes evolved from beneath the earth. That we all started out as sand gnomes. What a load of nonsense! Sand gnomes? PUH-LEASE!', 12, 0, 100, 0, 0, 0, 26977, 0, '7th Legion Elite'),
+(@ELITE, 1, 7, 'I''ve never seen destruction like this...', 12, 0, 100, 0, 0, 0, 26978, 0, '7th Legion Elite'),
+(@ELITE, 1, 8, 'Keep the chatter down, people. We need to stay alert!', 12, 0, 100, 0, 0, 0, 26979, 0, '7th Legion Elite'),
+(@ELITE, 1, 9, 'The smell of death covers every inch of this place.', 12, 0, 100, 0, 0, 0, 26980, 0, '7th Legion Elite'),
+(@ELITE, 1, 10, 'Driver, I hear you single handedly airlifted our villagers out of this hell-hole. Is that true?', 12, 0, 100, 0, 0, 0, 26981, 0, '7th Legion Elite'),
+(@ELITE, 1, 11, 'So does anyone know anything about Thel''zan? Who is he? How did he come to leading the Scourge armies on the ground?', 12, 0, 100, 0, 0, 0, 26982, 0, '7th Legion Elite'),
+(@ELITE, 1, 12, 'Look at this mess... The Scourge will pay for this!', 12, 0, 100, 0, 0, 0, 26983, 0, '7th Legion Elite'),
+(@ELITE, 1, 13, 'Where are all the corpses? What have they done to our people?', 12, 0, 100, 0, 0, 0, 26984, 0, '7th Legion Elite'),
+(@ELITE, 1, 14, 'I hope I''m alive to see Arthas get what''s coming to him.', 12, 0, 100, 0, 0, 0, 26985, 0, '7th Legion Elite'),
+(@ELITE, 2, 0, 'Reporting for duty, sir!', 12, 7, 100, 0, 0, 0, 26954, 0, '7th Legion Elite'),
+(@ENGI, 0, 1, 'Keep ''em off me for about 15 seconds and this thing is as good as dead.', 12, 7, 100, 0, 0, 0, 26854, 0, '7th Legion Siege Engineer'),
+(@ENGI, 0, 2, 'Cover me!', 12, 7, 100, 0, 0, 0, 26852, 0, '7th Legion Siege Engineer'),
+(@ENGI, 0, 3, 'When I''m done with this plague wagon it''ll look like a goblin built it! Keep me safe!', 12, 7, 100, 0, 0, 0, 26855, 0, '7th Legion Siege Engineer'),
+(@ENGI, 0, 4, 'Keep the bad guys off me!', 12, 7, 100, 0, 0, 0, 26853, 0, '7th Legion Siege Engineer'),
+(@ENGI, 1, 0, '%s deftly assembles a strange machine.', 16, 7, 100, 0, 0, 0, 26856, 0, '7th Legion Siege Engineer'),
+(@ENGI, 2, 0, 'That oughta do it! Just a few more seconds now.', 12, 7, 100, 0, 0, 0, 26858, 0, '7th Legion Siege Engineer');
diff --git a/sql/updates/world/2015_04_07_00_world.sql b/sql/updates/world/2015_04_07_00_world.sql
new file mode 100644
index 00000000000..e5cec5e1812
--- /dev/null
+++ b/sql/updates/world/2015_04_07_00_world.sql
@@ -0,0 +1,21 @@
+UPDATE `creature_template` SET `gossip_menu_id`=5708, `npcflag`=1 WHERE `entry`=14353;
+UPDATE `creature_template` SET `gossip_menu_id`=5733, `npcflag`=1 WHERE `entry`=14323;
+UPDATE `creature_template` SET `gossip_menu_id`=5746, `npcflag`=1 WHERE `entry`=11441;
+UPDATE `creature_template` SET `gossip_menu_id`=5735, `npcflag`=1 WHERE `entry`=14326;
+
+DELETE FROM `gossip_menu` WHERE `entry` IN(5708,5715,5740,5733,5746,5735);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
+(5708, 6876),
+(5708, 6895),
+(5715, 6882),
+(5740, 6916),
+(5733, 6905),
+(5746, 6922),
+(5735, 6907);
+
+DELETE FROM `gossip_menu_option` WHERE `menu_id` IN(5708,5715,5740,5733,5746,5735);
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `OptionBroadcastTextID`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`, `BoxBroadcastTextID`) VALUES
+(5708, 0, 0, 'I''m the new king? What are you talking about?', 9365, 1, 1, 5715, 0, 0, 0, NULL, 0), -- Entry: 14353
+(5708, 1, 0, 'Henchmen? Tribute?', 9440, 1, 1, 5740, 0, 0, 0, NULL, 0), -- Entry: 14353
+(5715, 0, 0, 'It''s good to be the king! Now, let''s get back to what you were talking about before...', 9441, 1, 1, 0, 0, 0, 0, NULL, 0), -- Entry: 14353
+(5740, 0, 0, 'Well then... show me the tribute!', 9367, 1, 1, 0, 0, 0, 0, NULL, 0); -- Entry: 14353
diff --git a/sql/updates/world/2015_04_07_02_world.sql b/sql/updates/world/2015_04_07_02_world.sql
new file mode 100644
index 00000000000..f7df3a0fecc
--- /dev/null
+++ b/sql/updates/world/2015_04_07_02_world.sql
@@ -0,0 +1,358 @@
+-- Cleanup on Dragonmaw Ascendant!
+DELETE FROM `creature` WHERE `guid` IN (52283, 52284, 52285, 52286, 52287, 52288, 52289, 52290, 52291, 52292, 52293, 52294, 52295, 52296, 52297, 52298, 52299, 52300, 52301, 52302, 52303, 52304, 52305, 52306, 52307, 52308, 52309, 52310, 52311, 52312, 52313, 52314, 52315, 52316, 52317, 52318, 52319, 52320, 52321, 52322, 52323, 52324, 52325, 52326, 52327, 52328, 52329, 52332, 52333);
+
+-- Update Pos
+UPDATE `creature` SET `position_x`=-4932.889, `position_y`=22.40549, `position_z`=62.24448, `orientation`=3.612832, `MovementType`=0 WHERE `guid`=52330;
+UPDATE `creature` SET `position_x`=-4941.292, `position_y`=35.20237, `position_z`=62.73532, `orientation`=3.612832, `MovementType`=0 WHERE `guid`=52331;
+
+-- Pathing for Dragonmaw Ascendant Entry: 22253 'TDB FORMAT'
+SET @NPC := 52275;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5195.857,`position_y`=90.12917,`position_z`=70.22656 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,-5195.857,90.12917,70.22656,0,0,0,0,100,0), -- 20:28:25
+(@PATH,2,-5191.49,106.8146,71.93172,0,0,0,0,100,0), -- 20:28:37
+(@PATH,3,-5195.716,138.8907,71.36693,0,0,0,0,100,0), -- 20:28:39
+(@PATH,4,-5200.492,147.7713,70.40874,0,0,0,0,100,0), -- 20:28:47
+(@PATH,5,-5209.126,186.8668,72.33409,0,0,0,0,100,0), -- 20:28:51
+(@PATH,6,-5208.013,200.6249,73.10587,0,0,0,0,100,0), -- 20:28:59
+(@PATH,7,-5201.791,256.0194,71.98375,0,0,0,0,100,0), -- 20:29:08
+(@PATH,8,-5188.366,291.6975,73.16975,0,0,0,0,100,0), -- 20:29:12
+(@PATH,9,-5182.603,302.7376,73.64639,0,0,0,0,100,0), -- 20:29:21
+(@PATH,10,-5176.891,356.321,72.7616,0,0,0,0,100,0), -- 20:29:28
+(@PATH,11,-5182.551,367.8651,72.34415,0,0,0,0,100,0), -- 20:29:34
+(@PATH,12,-5180.885,365.6959,72.57543,0,0,0,0,100,0), -- 20:29:42
+(@PATH,13,-5179.66,364.4311,72.66841,0,0,0,0,100,0), -- 20:29:46
+(@PATH,14,-5174.673,325.8635,73.72121,0,0,0,0,100,0), -- 20:29:53
+(@PATH,15,-5198.33,272.533,72.0965,0,0,0,0,100,0), -- 20:30:00
+(@PATH,16,-5200.696,243.5709,72.67114,0,0,0,0,100,0), -- 20:30:07
+(@PATH,17,-5201.835,233.1574,73.37646,0,0,0,0,100,0), -- 20:30:13
+(@PATH,18,-5210.627,167.8349,70.08221,0,0,0,0,100,0), -- 20:30:20
+(@PATH,19,-5198.43,145.466,70.45454,0,0,0,0,100,0), -- 20:30:29
+(@PATH,20,-5195.288,134.2268,72.13242,0,0,0,0,100,0), -- 20:30:34
+(@PATH,21,-5195.829,90.17783,70.22305,0,0,0,0,100,0); -- 20:30:41
+-- 0x1C09FC424015BB4000001A00002191E8 .go -5195.857 90.12917 70.22656
+
+-- Pathing for Dragonmaw Ascendant Entry: 22253 'TDB FORMAT'
+SET @NPC := 52276;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5218.906,`position_y`=565.3663,`position_z`=50.85233 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,-5218.906,565.3663,50.85233,0,0,0,0,100,0), -- 06:57:51
+(@PATH,2,-5208.237,539.7261,64.97557,0,0,0,0,100,0), -- 06:58:07
+(@PATH,3,-5207.74,528.3329,71.45394,0,0,0,0,100,0), -- 06:58:12
+(@PATH,4,-5203.943,505.6842,74.86707,0,0,0,0,100,0), -- 06:58:15
+(@PATH,5,-5201.894,495.4175,74.75183,0,0,0,0,100,0), -- 06:58:22
+(@PATH,6,-5200.353,477.0113,74.51066,0,0,0,0,100,0), -- 06:58:25
+(@PATH,7,-5196.964,442.6382,74.37379,0,0,0,0,100,0), -- 06:58:31
+(@PATH,8,-5206.846,402.5792,75.1168,0,0,0,0,100,0), -- 06:58:37
+(@PATH,9,-5195.471,385.1235,72.39382,0,0,0,0,100,0), -- 06:58:41
+(@PATH,10,-5175.989,405.5393,74.1407,0,0,0,0,100,0), -- 06:58:46
+(@PATH,11,-5170.418,417.7219,75.94295,0,0,0,0,100,0), -- 06:58:52
+(@PATH,12,-5166.691,432.0739,76.86201,0,0,0,0,100,0), -- 06:58:55
+(@PATH,13,-5163.314,446.5266,77.07475,0,0,0,0,100,0), -- 06:59:00
+(@PATH,14,-5123.884,478.5325,80.71776,0,0,0,0,100,0), -- 06:59:04
+(@PATH,15,-5110.585,482.2175,83.02201,0,0,0,0,100,0), -- 06:59:11
+(@PATH,16,-5099.746,484.6776,83.24095,0,0,0,0,100,0), -- 06:59:16
+(@PATH,17,-5067.211,481.675,84.28523,0,0,0,0,100,0), -- 06:59:20
+(@PATH,18,-5042.09,468.0539,84.99848,0,0,0,0,100,0), -- 06:59:25
+(@PATH,19,-5020.597,458.8485,87.52278,0,0,0,0,100,0), -- 06:59:28
+(@PATH,20,-5014.573,456.4386,88.06664,0,0,0,0,100,0), -- 06:59:34
+(@PATH,21,-4981.055,419.6735,87.5862,0,0,0,0,100,0), -- 06:59:39
+(@PATH,22,-4971.752,413.9452,86.63638,0,0,0,0,100,0), -- 06:59:46
+(@PATH,23,-4981.293,436.6361,87.37029,0,0,0,0,100,0), -- 06:59:48
+(@PATH,24,-5000.16,465.5633,87.46753,0,0,0,0,100,0), -- 06:59:57
+(@PATH,25,-5003.161,469.669,87.71191,0,0,0,0,100,0), -- 07:00:01
+(@PATH,26,-5024.007,485.0092,86.62108,0,0,0,0,100,0), -- 07:00:05
+(@PATH,27,-5052.383,491.6175,85.6012,0,0,0,0,100,0), -- 07:00:10
+(@PATH,28,-5089.974,495.1535,84.65902,0,0,0,0,100,0), -- 07:00:15
+(@PATH,29,-5131.202,491.5916,82.67003,0,0,0,0,100,0), -- 07:00:23
+(@PATH,30,-5104.979,495.0316,84.09554,0,0,0,0,100,0), -- 07:00:24
+(@PATH,31,-5136.438,490.7238,82.10683,0,0,0,0,100,0), -- 07:00:32
+(@PATH,32,-5148.315,486.5536,80.46145,0,0,0,0,100,0), -- 07:00:36
+(@PATH,33,-5176.314,497.1033,78.8902,0,0,0,0,100,0), -- 07:00:40
+(@PATH,34,-5191.643,517.5717,76.7062,0,0,0,0,100,0), -- 07:00:46
+(@PATH,35,-5209.542,551.1528,59.1912,0,0,0,0,100,0), -- 07:00:52
+(@PATH,36,-5218.914,591.9361,58.3474,0,0,0,0,100,0), -- 07:01:01
+(@PATH,37,-5216.641,622.2191,67.05342,0,0,0,0,100,0), -- 07:01:09
+(@PATH,38,-5219.429,635.3921,68.57317,0,0,0,0,100,0), -- 07:01:16
+(@PATH,39,-5219.883,633.0313,68.81996,0,0,0,0,100,0), -- 07:01:19
+(@PATH,40,-5220.871,599.2662,61.02921,0,0,0,0,100,0), -- 07:01:21
+(@PATH,41,-5218.937,565.3672,50.85265,0,0,0,0,100,0); -- 07:01:27
+-- 0x1C09FC424015BB40000019000022140B .go -5218.906 565.3663 50.85233
+
+-- Pathing for Dragonmaw Ascendant Entry: 22253 'TDB FORMAT'
+SET @NPC := 52277;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-4898.732,`position_y`=216.78,`position_z`=54.74985 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,-4898.732,216.78,54.74985,0,0,0,0,100,0), -- 07:15:21
+(@PATH,2,-4885.031,236.3208,52.61034,0,0,0,0,100,0), -- 07:15:29
+(@PATH,3,-4889.695,229.7686,52.92027,0,0,0,0,100,0), -- 07:15:32
+(@PATH,4,-4887.056,233.156,52.68503,0,0,0,0,100,0), -- 07:15:40
+(@PATH,5,-4858.93,265.0389,48.16708,0,0,0,0,100,0), -- 07:15:41
+(@PATH,6,-4851.827,284.8839,47.34936,0,0,0,0,100,0), -- 07:15:48
+(@PATH,7,-4846.079,316.0757,55.46541,0,0,0,0,100,0), -- 07:15:54
+(@PATH,8,-4843.175,349.7769,58.46518,0,0,0,0,100,0), -- 07:16:01
+(@PATH,9,-4845.812,366.7672,60.97961,0,0,0,0,100,0), -- 07:16:07
+(@PATH,10,-4856.089,402.1339,59.56307,0,0,0,0,100,0), -- 07:16:12
+(@PATH,11,-4857.438,423.075,61.22576,0,0,0,0,100,0), -- 07:16:18
+(@PATH,12,-4859.081,457.2928,64.90662,0,0,0,0,100,0), -- 07:16:25
+(@PATH,13,-4846.12,505.6395,50.40051,0,0,0,0,100,0), -- 07:16:33
+(@PATH,14,-4851.98,549.8719,48.70653,0,0,0,0,100,0), -- 07:16:40
+(@PATH,15,-4878.309,576.0837,60.99225,0,0,0,0,100,0), -- 07:16:54
+(@PATH,16,-4877.338,605.8702,68.93106,0,0,0,0,100,0), -- 07:17:02
+(@PATH,17,-4879.686,577.7703,61.86221,0,0,0,0,100,0), -- 07:17:09
+(@PATH,18,-4853.525,555.9883,49.47371,0,0,0,0,100,0), -- 07:17:14
+(@PATH,19,-4845.978,509.1451,49.54256,0,0,0,0,100,0), -- 07:17:22
+(@PATH,20,-4846.321,510.5673,48.53417,0,0,0,0,100,0), -- 07:17:35
+(@PATH,21,-4846,508.4746,49.31151,0,0,0,0,100,0), -- 07:17:42
+(@PATH,22,-4859.021,476.5473,64.16699,0,0,0,0,100,0), -- 07:17:43
+(@PATH,23,-4857.8,436.0128,60.95083,0,0,0,0,100,0), -- 07:17:50
+(@PATH,24,-4857.147,413.6607,60.26784,0,0,0,0,100,0), -- 07:17:58
+(@PATH,25,-4848.22,378.149,60.79633,0,0,0,0,100,0), -- 07:18:04
+(@PATH,26,-4843.683,354.1476,59.12819,0,0,0,0,100,0), -- 07:18:10
+(@PATH,27,-4844.921,324.3129,56.56282,0,0,0,0,100,0), -- 07:18:15
+(@PATH,28,-4848.563,297.3202,46.17633,0,0,0,0,100,0), -- 07:18:21
+(@PATH,29,-4856.53,270.7361,47.4738,0,0,0,0,100,0), -- 07:18:28
+(@PATH,30,-4881.715,240.4737,51.88027,0,0,0,0,100,0); -- 07:18:34
+-- 0x1C09FC424015BB4000001900002230F5 .go -4898.732 216.78 54.74985
+
+-- Pathing for Dragonmaw Ascendant Entry: 22253 'TDB FORMAT'
+SET @NPC := 52278;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5004.888,`position_y`=702.8807,`position_z`=82.04395 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,-5004.888,702.8807,82.04395,0,0,0,0,100,0), -- 07:09:09
+(@PATH,2,-5011.663,699.3098,81.89692,0,0,0,0,100,0), -- 07:09:11
+(@PATH,3,-5015.312,687.5909,82.03319,0,0,0,0,100,0), -- 07:09:13
+(@PATH,4,-4996.903,700.0056,82.65056,0,0,0,0,100,0), -- 07:09:17
+(@PATH,5,-4992.215,702.6887,83.10714,0,0,0,0,100,0), -- 07:09:19
+(@PATH,6,-4969.132,707.9535,83.95985,0,0,0,0,100,0), -- 07:09:23
+(@PATH,7,-4964.693,690.9923,83.32875,0,0,0,0,100,0), -- 07:09:25
+(@PATH,8,-4954.07,677.088,77.76302,0,0,0,0,100,0), -- 07:09:29
+(@PATH,9,-4949.576,659.408,77.40804,0,0,0,0,100,0), -- 07:09:34
+(@PATH,10,-4960.746,641.1125,76.67274,0,0,0,0,100,0), -- 07:09:37
+(@PATH,11,-4961.855,639.7071,77.21989,0,0,0,0,100,0), -- 07:09:43
+(@PATH,12,-4956.266,612.0739,75.91876,0,0,0,0,100,0), -- 07:09:47
+(@PATH,13,-4954.515,605.1003,75.18854,0,0,0,0,100,0), -- 07:09:51
+(@PATH,14,-4956.737,589.0807,74.53506,0,0,0,0,100,0), -- 07:09:54
+(@PATH,15,-4969.977,557.0493,76.5106,0,0,0,0,100,0), -- 07:09:59
+(@PATH,16,-4988.75,549.4487,83.39151,0,0,0,0,100,0), -- 07:10:01
+(@PATH,17,-4988.618,539.1655,83.00819,0,0,0,0,100,0), -- 07:10:05
+(@PATH,18,-4981.907,532.507,78.12585,0,0,0,0,100,0), -- 07:10:07
+(@PATH,19,-4959.939,531.2402,73.84925,0,0,0,0,100,0), -- 07:10:10
+(@PATH,20,-4946.729,533.6745,66.42971,0,0,0,0,100,0), -- 07:10:15
+(@PATH,21,-4926.818,538.8672,65.0467,0,0,0,0,100,0), -- 07:10:18
+(@PATH,22,-4911.734,530.0341,55.14276,0,0,0,0,100,0), -- 07:10:22
+(@PATH,23,-4898.571,547.2958,47.75196,0,0,0,0,100,0), -- 07:10:27
+(@PATH,24,-4890.054,557.7857,57.1432,0,0,0,0,100,0), -- 07:10:33
+(@PATH,25,-4876.696,566.1863,57.93503,0,0,0,0,100,0), -- 07:10:38
+(@PATH,26,-4862.715,575.6901,52.22014,0,0,0,0,100,0), -- 07:10:40
+(@PATH,27,-4858.512,594.1106,60.68968,0,0,0,0,100,0), -- 07:10:45
+(@PATH,28,-4856.906,612.0919,65.71946,0,0,0,0,100,0), -- 07:10:49
+(@PATH,29,-4854.059,628.2389,66.45804,0,0,0,0,100,0), -- 07:10:53
+(@PATH,30,-4849.357,642.4513,59.23316,0,0,0,0,100,0), -- 07:10:56
+(@PATH,31,-4839.23,658.6438,54.41743,0,0,0,0,100,0), -- 07:11:01
+(@PATH,32,-4840.304,673.9675,51.38053,0,0,0,0,100,0), -- 07:11:05
+(@PATH,33,-4849.471,676.6252,54.26706,0,0,0,0,100,0), -- 07:11:08
+(@PATH,34,-4862.514,682.0897,59.79738,0,0,0,0,100,0), -- 07:11:10
+(@PATH,35,-4880.908,688.1571,66.10199,0,0,0,0,100,0), -- 07:11:13
+(@PATH,36,-4863.878,682.674,59.87488,0,0,0,0,100,0), -- 07:11:15
+(@PATH,37,-4880.722,688.0911,66.16837,0,0,0,0,100,0), -- 07:11:22
+(@PATH,38,-4896.763,688.6787,70.71627,0,0,0,0,100,0), -- 07:11:24
+(@PATH,39,-4905.12,669.2037,74.99036,0,0,0,0,100,0), -- 07:11:28
+(@PATH,40,-4907.025,659.6029,77.51676,0,0,0,0,100,0), -- 07:11:33
+(@PATH,41,-4917.011,663.6454,73.60014,0,0,0,0,100,0), -- 07:11:35
+(@PATH,42,-4927.575,673.5298,75.48451,0,0,0,0,100,0), -- 07:11:38
+(@PATH,43,-4938.423,682.1601,78.2296,0,0,0,0,100,0), -- 07:11:41
+(@PATH,44,-4954.518,695.4416,84.32332,0,0,0,0,100,0), -- 07:11:45
+(@PATH,45,-4969.985,709.3942,83.46222,0,0,0,0,100,0), -- 07:11:51
+(@PATH,46,-4971.432,710.7948,83.43773,0,0,0,0,100,0), -- 07:11:55
+(@PATH,47,-4986.938,716.7153,82.9008,0,0,0,0,100,0); -- 07:11:58
+-- 0x1C09FC424015BB4000001900002230F7 .go -5004.888 702.8807 82.04395
+
+-- Pathing for Dragonmaw Ascendant Entry: 22253 'TDB FORMAT'
+SET @NPC := 52279;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5022.057,`position_y`=479.9312,`position_z`=87.00283 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,-5022.057,479.9312,87.00283,0,0,0,0,100,0), -- 20:22:29
+(@PATH,2,-5014.553,472.7912,88.03943,0,0,0,0,100,0), -- 20:22:39
+(@PATH,3,-4999.62,456.4922,87.46286,0,0,0,0,100,0), -- 20:22:47
+(@PATH,4,-4967.545,406.6447,86.09462,0,0,0,0,100,0), -- 20:22:56
+(@PATH,5,-4963.545,398.6447,85.84462,0,0,0,0,100,0), -- 20:22:56
+(@PATH,6,-4966.199,380.3893,84.58515,0,0,0,0,100,0), -- 20:23:05
+(@PATH,7,-4969.449,369.8893,84.33515,0,0,0,0,100,0), -- 20:23:05
+(@PATH,8,-4971.571,363.7757,84.01563,0,0,0,0,100,0), -- 20:23:11
+(@PATH,9,-4981.193,315.1064,82.50433,0,0,0,0,100,0), -- 20:23:18
+(@PATH,10,-4982.943,308.6064,82.00433,0,0,0,0,100,0), -- 20:23:18
+(@PATH,11,-4985.527,270.3568,80.93662,0,0,0,0,100,0), -- 20:23:31
+(@PATH,12,-4984.912,261.6664,80.87724,0,0,0,0,100,0), -- 20:23:39
+(@PATH,13,-4984.194,254.0232,80.98643,0,0,0,0,100,0), -- 20:23:41
+(@PATH,14,-4983.671,226.0687,80.50131,0,0,0,0,100,0), -- 20:23:46
+(@PATH,15,-5002.183,198.7367,80.73076,0,0,0,0,100,0), -- 20:23:54
+(@PATH,16,-4997.445,147.227,79.09719,0,0,0,0,100,0), -- 20:24:01
+(@PATH,17,-4996.195,142.477,78.59719,0,0,0,0,100,0), -- 20:24:01
+(@PATH,18,-4996.078,134.5595,77.47847,0,0,0,0,100,0), -- 20:24:06
+(@PATH,19,-4996.328,129.5595,76.97847,0,0,0,0,100,0), -- 20:24:06
+(@PATH,20,-4996.578,121.8095,76.72847,0,0,0,0,100,0), -- 20:24:06
+(@PATH,21,-4997.078,112.0595,75.97847,0,0,0,0,100,0), -- 20:24:06
+(@PATH,22,-5003.599,85.19402,76.17677,0,0,0,0,100,0), -- 20:24:13
+(@PATH,23,-5000.918,93.57802,75.89561,0,0,0,0,100,0), -- 20:24:18
+(@PATH,24,-4996.32,127.891,76.83911,0,0,0,0,100,0), -- 20:24:21
+(@PATH,25,-4996.07,133.891,77.33911,0,0,0,0,100,0), -- 20:24:21
+(@PATH,26,-4995.82,139.891,78.08911,0,0,0,0,100,0), -- 20:24:21
+(@PATH,27,-4997.385,146.7997,78.94779,0,0,0,0,100,0), -- 20:24:29
+(@PATH,28,-4998.385,151.2997,79.44779,0,0,0,0,100,0), -- 20:24:29
+(@PATH,29,-4999.885,157.0497,79.94779,0,0,0,0,100,0), -- 20:24:29
+(@PATH,30,-5000.678,159.7069,80.21076,0,0,0,0,100,0), -- 20:24:32
+(@PATH,31,-5002.248,199.0518,80.65829,0,0,0,0,100,0), -- 20:24:41
+(@PATH,32,-4983.636,226.4841,80.61127,0,0,0,0,100,0), -- 20:24:47
+(@PATH,33,-4986.27,283.0035,81.57057,0,0,0,0,100,0), -- 20:24:53
+(@PATH,34,-4980.688,317.2732,82.73731,0,0,0,0,100,0), -- 20:25:02
+(@PATH,35,-4979.188,322.0232,83.23731,0,0,0,0,100,0), -- 20:25:02
+(@PATH,36,-4976.569,330.6879,83.80838,0,0,0,0,100,0), -- 20:25:09
+(@PATH,37,-4964.715,384.6398,85.10558,0,0,0,0,100,0), -- 20:25:15
+(@PATH,38,-4969.031,409.8725,86.30847,0,0,0,0,100,0), -- 20:25:22
+(@PATH,39,-4975.031,422.3725,87.05847,0,0,0,0,100,0), -- 20:25:22
+(@PATH,40,-5003.537,460.994,88.00166,0,0,0,0,100,0), -- 20:25:31
+(@PATH,41,-5022.101,479.8282,87.23804,0,0,0,0,100,0), -- 20:25:39
+(@PATH,42,-5029.75,486.7083,86.9541,0,0,0,0,100,0); -- 20:25:54
+-- 0x1C09FC424015BB4000001A0000219932 .go -5022.057 479.9312 87.00283
+
+-- Pathing for Dragonmaw Ascendant Entry: 22253 'TDB FORMAT'
+SET @NPC := 52280;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5210.222,`position_y`=418.9368,`position_z`=73.92104 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,-5210.222,418.9368,73.92104,0,0,0,0,100,0), -- 07:02:01
+(@PATH,2,-5194.546,459.6038,74.90173,0,0,0,0,100,0), -- 07:02:06
+(@PATH,3,-5198.185,476.6735,74.56579,0,0,0,0,100,0), -- 07:02:16
+(@PATH,4,-5205.193,489.9176,74.52521,0,0,0,0,100,0), -- 07:02:20
+(@PATH,5,-5205.922,514.9041,74.24827,0,0,0,0,100,0), -- 07:02:25
+(@PATH,6,-5197.391,548.4199,71.05492,0,0,0,0,100,0), -- 07:02:30
+(@PATH,7,-5202.769,580.7711,57.59827,0,0,0,0,100,0), -- 07:02:35
+(@PATH,8,-5207.66,619.1582,66.18312,0,0,0,0,100,0), -- 07:02:42
+(@PATH,9,-5203.323,643.3531,69.50911,0,0,0,0,100,0), -- 07:02:50
+(@PATH,10,-5209.102,642.1717,68.62796,0,0,0,0,100,0), -- 07:02:54
+(@PATH,11,-5223.636,616.6403,64.28975,0,0,0,0,100,0), -- 07:02:59
+(@PATH,12,-5236.8,572.5868,43.20554,0,0,0,0,100,0), -- 07:03:04
+(@PATH,13,-5230.435,558.9042,52.97427,0,0,0,0,100,0), -- 07:03:14
+(@PATH,14,-5236.423,533.6864,54.42358,0,0,0,0,100,0), -- 07:03:25
+(@PATH,15,-5257.124,507.9855,45.40817,0,0,0,0,100,0), -- 07:03:31
+(@PATH,16,-5275.066,487.7511,39.84113,0,0,0,0,100,0), -- 07:03:38
+(@PATH,17,-5276.403,465.4868,50.2813,0,0,0,0,100,0), -- 07:03:44
+(@PATH,18,-5260.017,431.7862,58.83994,0,0,0,0,100,0), -- 07:03:49
+(@PATH,19,-5264.36,398.4801,59.6331,0,0,0,0,100,0), -- 07:03:58
+(@PATH,20,-5247.507,387.5706,65.87028,0,0,0,0,100,0), -- 07:04:05
+(@PATH,21,-5218.22,394.0266,74.48222,0,0,0,0,100,0), -- 07:04:10
+(@PATH,22,-5197.534,385.7352,72.49537,0,0,0,0,100,0), -- 07:04:17
+(@PATH,23,-5194.736,383.3604,72.18273,0,0,0,0,100,0), -- 07:04:22
+(@PATH,24,-5180.763,356.1179,72.43773,0,0,0,0,100,0), -- 07:04:28
+(@PATH,25,-5175.956,317.8983,74.14841,0,0,0,0,100,0), -- 07:04:33
+(@PATH,26,-5192.369,287.6161,72.80084,0,0,0,0,100,0), -- 07:04:36
+(@PATH,27,-5215.688,268.9493,70.65274,0,0,0,0,100,0), -- 07:04:43
+(@PATH,28,-5234.928,266.7101,71.72028,0,0,0,0,100,0), -- 07:04:50
+(@PATH,29,-5261.104,267.6116,66.5541,0,0,0,0,100,0), -- 07:04:53
+(@PATH,30,-5269.087,272.336,70.12495,0,0,0,0,100,0), -- 07:04:59
+(@PATH,31,-5286.044,309.7126,70.90472,0,0,0,0,100,0), -- 07:05:03
+(@PATH,32,-5281.2,352.0699,63.69888,0,0,0,0,100,0), -- 07:05:09
+(@PATH,33,-5272.806,362.6875,62.99657,0,0,0,0,100,0), -- 07:05:19
+(@PATH,34,-5246.281,400.4454,59.19219,0,0,0,0,100,0), -- 07:05:23
+(@PATH,35,-5225.892,410.2588,65.93465,0,0,0,0,100,0); -- 07:05:31
+-- 0x1C09FC424015BB4000001A0000216370 .go -5210.222 418.9368 73.92104
+
+-- Pathing for Dragonmaw Ascendant Entry: 22253 'TDB FORMAT'
+SET @NPC := 52281;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5285.737,`position_y`=354.3048,`position_z`=58.63031 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,-5285.737,354.3048,58.63031,0,0,0,0,100,0), -- 19:31:06
+(@PATH,2,-5294.725,316.1119,67.75787,0,0,0,0,100,0), -- 19:31:14
+(@PATH,3,-5301.147,281.1097,59.07014,0,0,0,0,100,0), -- 19:31:23
+(@PATH,4,-5304.806,249.8802,62.29091,0,0,0,0,100,0), -- 19:31:30
+(@PATH,5,-5314.573,202.0623,63.99271,0,0,0,0,100,0), -- 19:31:37
+(@PATH,6,-5314.016,154.8896,48.03545,0,0,0,0,100,0), -- 19:31:47
+(@PATH,7,-5299.288,117.1861,34.29665,0,0,0,0,100,0), -- 19:31:57
+(@PATH,8,-5306.702,135.3764,38.50175,0,0,0,0,100,0), -- 19:32:03
+(@PATH,9,-5299.126,117.1948,34.29574,0,0,0,0,100,0), -- 19:32:10
+(@PATH,10,-5283.754,81.68874,36.04304,0,0,0,0,100,0), -- 19:32:14
+(@PATH,11,-5272.062,57.64223,42.34082,0,0,0,0,100,0), -- 19:32:21
+(@PATH,12,-5264.497,27.00165,48.20856,0,0,0,0,100,0), -- 19:32:27
+(@PATH,13,-5250.226,-6.593673,46.53293,0,0,0,0,100,0), -- 19:32:36
+(@PATH,14,-5242.217,-36.79307,41.91159,0,0,0,0,100,0), -- 19:32:43
+(@PATH,15,-5227.656,-66.75511,59.73492,0,0,0,0,100,0), -- 19:32:49
+(@PATH,16,-5240.584,-40.47152,44.62254,0,0,0,0,100,0), -- 19:32:58
+(@PATH,17,-5247.443,-12.82116,46.7327,0,0,0,0,100,0), -- 19:33:05
+(@PATH,18,-5261.27,18.16552,48.98127,0,0,0,0,100,0), -- 19:33:12
+(@PATH,19,-5270.131,51.50296,42.63126,0,0,0,0,100,0), -- 19:33:19
+(@PATH,20,-5282.171,78.36816,34.01592,0,0,0,0,100,0), -- 19:33:27
+(@PATH,21,-5295.439,108.8647,33.0154,0,0,0,0,100,0), -- 19:33:33
+(@PATH,22,-5313.281,152.3893,47.28299,0,0,0,0,100,0), -- 19:33:41
+(@PATH,23,-5315.114,198.1515,63.51984,0,0,0,0,100,0), -- 19:33:50
+(@PATH,24,-5307.13,236.8966,62.42439,0,0,0,0,100,0), -- 19:34:00
+(@PATH,25,-5301.88,277.6213,59.22523,0,0,0,0,100,0), -- 19:34:11
+(@PATH,26,-5295.718,311.9755,66.89128,0,0,0,0,100,0), -- 19:34:18
+(@PATH,27,-5300.28,287.5018,64.20296,0,0,0,0,100,0), -- 19:34:20
+(@PATH,28,-5295.666,312.1795,67.10269,0,0,0,0,100,0), -- 19:34:28
+(@PATH,29,-5286.51,351.3247,58.38956,0,0,0,0,100,0), -- 19:34:31
+(@PATH,30,-5281.85,390.6465,55.83143,0,0,0,0,100,0), -- 19:34:41
+(@PATH,31,-5273.968,437.0849,54.09414,0,0,0,0,100,0), -- 19:34:48
+(@PATH,32,-5280.505,398.1873,55.13199,0,0,0,0,100,0); -- 19:35:01
+-- 0x1C09FC424015BB4000001A0000240362 .go -5285.737 354.3048 58.63031
+
+-- Pathing for Dragonmaw Ascendant Entry: 22253 'TDB FORMAT'
+SET @NPC := 52282;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5026.082,`position_y`=30.3253,`position_z`=78.81156 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,-5026.082,30.3253,78.81156,0,0,0,0,100,0), -- 19:59:18
+(@PATH,2,-5044.674,33.37571,80.91895,0,0,0,0,100,0), -- 19:59:19
+(@PATH,3,-5100.418,46.22721,80.36517,0,0,0,0,100,0), -- 19:59:25
+(@PATH,4,-5120.707,43.68564,79.09943,0,0,0,0,100,0), -- 19:59:35
+(@PATH,5,-5168.205,29.74817,77.34432,0,0,0,0,100,0), -- 19:59:41
+(@PATH,6,-5187.383,4.068243,74.23724,0,0,0,0,100,0), -- 19:59:48
+(@PATH,7,-5192.171,-27.60443,74.06621,0,0,0,0,100,0), -- 19:59:54
+(@PATH,8,-5187.181,-39.73703,74.54796,0,0,0,0,100,0), -- 20:00:02
+(@PATH,9,-5162.415,-82.17906,72.73651,0,0,0,0,100,0), -- 20:00:09
+(@PATH,10,-5132.202,-120.9739,65.05319,0,0,0,0,100,0), -- 20:00:16
+(@PATH,11,-5108.869,-123.2847,60.21478,0,0,0,0,100,0), -- 20:00:23
+(@PATH,12,-5065.221,-116.5905,61.09086,0,0,0,0,100,0), -- 20:00:31
+(@PATH,13,-5032.96,-83.59184,63.18661,0,0,0,0,100,0), -- 20:00:39
+(@PATH,14,-5018.273,-72.75426,67.76162,0,0,0,0,100,0), -- 20:00:48
+(@PATH,15,-5003.304,-38.36306,73.39491,0,0,0,0,100,0), -- 20:00:51
+(@PATH,16,-4982.256,-5.512026,72.68662,0,0,0,0,100,0), -- 20:01:01
+(@PATH,17,-4970.602,8.782578,71.2607,0,0,0,0,100,0), -- 20:01:08
+(@PATH,18,-4956.99,19.62778,67.81738,0,0,0,0,100,0), -- 20:01:12
+(@PATH,19,-4965.795,7.546585,69.8514,0,0,0,0,100,0), -- 20:01:16
+(@PATH,20,-4973.835,-2.793668,71.32764,0,0,0,0,100,0), -- 20:01:19
+(@PATH,21,-4995.399,-29.66144,72.97089,0,0,0,0,100,0), -- 20:01:23
+(@PATH,22,-5000.069,-61.59894,66.50253,0,0,0,0,100,0), -- 20:01:30
+(@PATH,23,-5007.126,-33.22968,75.18976,0,0,0,0,100,0), -- 20:01:36
+(@PATH,24,-5014.227,5.722984,77.4781,0,0,0,0,100,0); -- 20:01:44
+-- 0x1C09FC424015BB4000001A0000241AC7 .go -5026.082 30.3253 78.81156
diff --git a/sql/updates/world/2015_04_08_00_world.sql b/sql/updates/world/2015_04_08_00_world.sql
new file mode 100644
index 00000000000..f2e13c01bd8
--- /dev/null
+++ b/sql/updates/world/2015_04_08_00_world.sql
@@ -0,0 +1,7 @@
+-- Kill some database errors
+DELETE FROM `creature_addon` WHERE `guid` IN (52306, 52317, 52312, 52303, 52296, 127436, 127437);
+UPDATE `creature` SET `spawndist`=0 WHERE `guid`=52331;
+UPDATE `creature` SET `spawndist`=0 WHERE `guid`=52330;
+UPDATE `creature` SET `spawndist`=0 WHERE `guid`=120692;
+DELETE FROM `linked_respawn` WHERE `guid`=127436 AND `linkType`=0;
+DELETE FROM `linked_respawn` WHERE `guid`=127437 AND `linkType`=0;
diff --git a/sql/updates/world/2015_04_08_01_world.sql b/sql/updates/world/2015_04_08_01_world.sql
new file mode 100644
index 00000000000..b96621a1fd7
--- /dev/null
+++ b/sql/updates/world/2015_04_08_01_world.sql
@@ -0,0 +1,16 @@
+-- Dragonmaw Tower Controller
+-- Actionlist SAI
+SET @ENTRY := 23370;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (@ENTRY);
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_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,10,0,100,0,1,20,15000,15000,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Tower Controller - ooc los - Say Line 0");
+
+-- Add text
+DELETE FROM `creature_text` WHERE `entry`=23370;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
+(23370, 0, 0, 'MULVERICK!', 14, 0, 100, 22, 0, 0, 'Dragonmaw Tower Controller', 21429);
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceGroup`=1 AND `SourceEntry`=@ENTRY;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`, `ConditionTarget`, `ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`, `ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(22,1,@ENTRY,0,0,31,3,22274,0,0,'','event require creature 22274');
diff --git a/sql/updates/world/2015_04_09_00_world.sql b/sql/updates/world/2015_04_09_00_world.sql
new file mode 100644
index 00000000000..75b342ffd00
--- /dev/null
+++ b/sql/updates/world/2015_04_09_00_world.sql
@@ -0,0 +1,2 @@
+--
+UPDATE `smart_scripts` SET `action_type`=85 WHERE `entryorguid` IN (27226, 27224, 27225, 27229) AND `source_type`=0 AND `id`=0;
diff --git a/sql/updates/world/2015_04_09_01_world.sql b/sql/updates/world/2015_04_09_01_world.sql
new file mode 100644
index 00000000000..55da6309cbc
--- /dev/null
+++ b/sql/updates/world/2015_04_09_01_world.sql
@@ -0,0 +1,3 @@
+--
+UPDATE `creature` SET `position_x`=3592.494, `position_y`=191.1563, `position_z`=-113.6729, `orientation`=1.22173, `VerifiedBuild`=12340 WHERE `guid`=131056;
+UPDATE `creature` SET `position_x`=3611.361, `position_y`=204.7483, `position_z`=-113.6808, `orientation`=3.665191, `VerifiedBuild`=12340 WHERE `guid`=131059;
diff --git a/sql/updates/world/2015_04_09_02_world.sql b/sql/updates/world/2015_04_09_02_world.sql
new file mode 100644
index 00000000000..e6951cbef50
--- /dev/null
+++ b/sql/updates/world/2015_04_09_02_world.sql
@@ -0,0 +1,2 @@
+-- Deathbound Wards should be taunt immune
+UPDATE `creature_template` SET `flags_extra` = `flags_extra` | 256 WHERE `entry` IN (37007, 38031);
diff --git a/sql/updates/world/2015_04_09_03_world.sql b/sql/updates/world/2015_04_09_03_world.sql
new file mode 100644
index 00000000000..041c517b861
--- /dev/null
+++ b/sql/updates/world/2015_04_09_03_world.sql
@@ -0,0 +1,14 @@
+
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=19380;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=19380 AND `source_type`=0;
+DELETE FROM `creature_text` WHERE `entry` IN(19380,19383);
+
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `BroadcastTextID`, `comment`) VALUES
+(19383, 0, 0, 'I don''t understand you!', 12, 7, 100, 18, 0, 0, 16540, 'Captured Gnome to Guard Untula'),
+(19383, 0, 1, 'Please don''t beat me!', 12, 7, 100, 33, 0, 0, 16541, 'Captured Gnome to Guard Untula'),
+(19380, 0, 0, 'Hurry up with that axe, you! I want it sharp enough to cut the wind!', 12, 1, 100, 60, 0, 1040, 16532, 'Guard Untula to 0'),
+(19380, 0, 1, 'If you''re no good at fixing, we''ll see if you''re good for eating. Now WORK!', 12, 1, 100, 5, 0, 0, 16538, 'Guard Untula to 0');
+
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(19380, 0, 0, 1, 1, 0, 100, 0, 15000, 45000, 120000, 180000, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,0,'Guard Untula - OOC - Say Line 0'),
+(19380, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 19383, 0, 0, 0, 0, 0,0,'Guard Untula - OOC - Say Line 0 on Captured Gnome');
diff --git a/sql/updates/world/2015_04_10_00_world.sql b/sql/updates/world/2015_04_10_00_world.sql
new file mode 100644
index 00000000000..9ca98f0f428
--- /dev/null
+++ b/sql/updates/world/2015_04_10_00_world.sql
@@ -0,0 +1,2 @@
+--
+UPDATE `smart_scripts` SET `event_flags`=1 WHERE `entryorguid` IN (23625,23626,23624,23623) AND `source_type`=0 AND `id`=1 AND `link`=0;
diff --git a/sql/updates/world/2015_04_10_01_world.sql b/sql/updates/world/2015_04_10_01_world.sql
new file mode 100644
index 00000000000..7ef397fd6cc
--- /dev/null
+++ b/sql/updates/world/2015_04_10_01_world.sql
@@ -0,0 +1,46 @@
+DELETE FROM `smart_scripts` WHERE `entryorguid`=19995 AND `source_type`=0 AND `id`IN(3,4,5,6);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN(1999500,1999501) AND `source_type`=9;
+
+UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`='' WHERE `entry` IN(21241);
+DELETE FROM `smart_scripts` WHERE `entryorguid`=21241 AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(19995, 0, 4, 5, 75, 1, 100, 0, 0, 21241, 5, 5000, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - On Creature Range - Set Phase 2'),
+(19995, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 80, 1999500, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - On Creature Range - Run Script'),
+(19995, 0, 6, 0, 38, 0, 100, 0, 1, 1, 0, 0, 80, 1999501, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - On Data Set 1 1 - Run Script 2'),
+(21241, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Bloodmaul Brutebane Stout Trigger - On Just Summoned - Store Targetlist'),
+(21241, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 100, 1, 0, 0, 0, 0, 0, 19, 19995, 0, 0, 0, 0, 0, 0, 'Bloodmaul Brutebane Stout Trigger - On Just Summoned - Send Target List to Bladespire Brute'),
+(21241, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 19, 19995, 0, 0, 0, 0, 0, 0, 'Bloodmaul Brutebane Stout Trigger - On Just Summoned - Set Data to Bladespire Brute'),
+(1999500, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 19, 21241, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Despawn Trigger'),
+(1999500, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 5, 16, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Play Emote OneShotKneel (16)'),
+(1999500, 9, 2, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 70, 300, 0, 0, 0, 0, 0, 20, 184315, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Despawn GO'),
+(1999500, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 71, 0, 0, 2703, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Update Virtual Item Slot ID 1'),
+(1999500, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Say Line 4'),
+(1999500, 9, 5, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 5, 92, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Play Emote OneShotEatNoSheathe'),
+(1999500, 9, 6, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 5, 92, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Play Emote OneShotEatNoSheathe'),
+(1999500, 9, 7, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 5, 92, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Play Emote OneShotEatNoSheathe'),
+(1999500, 9, 8, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 5, 92, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Play Emote OneShotEatNoSheathe'),
+(1999500, 9, 9, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 5, 92, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Play Emote OneShotEatNoSheathe'),
+(1999500, 9, 10, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 5, 92, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Play Emote OneShotEatNoSheathe'),
+(1999500, 9, 11, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 5, 92, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Play Emote OneShotEatNoSheathe'),
+(1999500, 9, 12, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 5, 92, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Play Emote OneShotEatNoSheathe'),
+(1999500, 9, 13, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 5, 92, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Play Emote OneShotEatNoSheathe'),
+(1999500, 9, 14, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 11, 35240, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Cast Bloodmaul Intoxication'),
+(1999500, 9, 15, 0, 0, 0, 100, 0, 0, 0, 0, 0, 71, 0, 0, 14874, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Update Virtual Item Slot ID 1'),
+(1999500, 9, 16, 0, 0, 0, 100, 0, 0, 0, 0, 0, 17, 93, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Set Emote State 93'),
+(1999500, 9, 17, 0, 0, 0, 100, 0, 0, 0, 0, 0, 33, 21241, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Kill Credit'),
+(1999500, 9, 18, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Say Line 5'),
+(1999500, 9, 19, 0, 0, 0, 100, 0, 30000, 30000, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Set Emote State 93'),
+(1999500, 9, 20, 0, 0, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Set Phase 1'),
+(1999500, 9, 21, 0, 0, 0, 100, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Set Aggresive'),
+(1999500, 9, 22, 0, 0, 0, 100, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script - Evade'),
+(1999501, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script 2 - Set Defensive'),
+(1999501, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script 2 - Set Set Phase 1'),
+(1999501, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 19, 21241, 0, 0, 0, 0, 0, 0, 'Bladespire Brute - Script 2 - Move to Position');
+
+DELETE FROM `creature_text` WHERE `entry`=19995 AND `groupid` IN(4,5);
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `BroadcastTextID`, `comment`) VALUES
+(19995, 4, 0, 'Ohh, look! Bloodmaul Brew! Mmmm...', 12, 0, 100, 16, 0, 0, 18170, 'Bladespire Brute to 21241'),
+(19995, 4, 1, 'Bloodmaul Brew? Me favorite!', 12, 0, 100, 16, 0, 0, 18171, 'Bladespire Brute to 21241'),
+(19995, 4, 2, 'Ohh, look! Bloodmaul Brew! Mmmm...', 12, 0, 100, 16, 0, 398, 18170, 'Bladespire Brute to 21241'),
+(19995, 4, 3, 'Mmmm, Bloodmaul Brew!', 12, 0, 100, 16, 0, 0, 17844, 'Bladespire Brute to 21241'),
+(19995, 5, 0, 'Ugh... Me not feel so guud.', 12, 0, 100, 92, 0, 0, 18197, 'Bladespire Brute to 21241');
diff --git a/sql/updates/world/2015_04_11_00_world.sql b/sql/updates/world/2015_04_11_00_world.sql
new file mode 100644
index 00000000000..b5f9dcc48db
--- /dev/null
+++ b/sql/updates/world/2015_04_11_00_world.sql
@@ -0,0 +1,23 @@
+DELETE FROM `creature` WHERE `guid` IN (52283, 52284, 52285, 52286, 69717, 69718, 69719, 69720);
+
+SET @GUID := 69717; -- 4 creature guid Set by TC
+SET @OGUID := 5510; -- 1 GOB guid set by TC
+DELETE FROM `creature` WHERE `id`=23142;
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`,`curhealth`) VALUES
+(@GUID+0, 23142, 530, 1, 1, -5121.06, 598.424, 84.7603, 0.0581088, 600, 6542),
+(@GUID+1, 23142, 530, 1, 1, -5119.60, 601.834, 84.8180, 5.1726200, 600, 6542),
+(@GUID+2, 23142, 530, 1, 1, -5115.02, 601.537, 85.0292, 4.0204400, 600, 6542),
+(@GUID+3, 23142, 530, 1, 1, -5114.25, 597.062, 85.1574, 2.7049000, 600, 6542);
+
+DELETE FROM `gameobject` WHERE `guid` IN (@OGUID);
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(@OGUID,50983,530,1,1, -5116.788574, 631.188660, 85.055522,0.949811,0,0,0.457254, 0.889336, 300, 0, 1);
+
+DELETE FROM `creature_equip_template` WHERE `entry`=23146;
+INSERT INTO `creature_equip_template` (`entry`, `id`, `itemEntry1`, `itemEntry2`, `itemEntry3`, `VerifiedBuild`) VALUES (23146, 1, 31603, 0, 0, 0);
+UPDATE `creature` SET `position_x`= -5158.237305, `position_y`= 584.302612, `position_z`= 81.074142, `orientation`= 5.954358 WHERE `guid`= 78136;
+UPDATE `creature` SET `position_x`= -5156.172363, `position_y`= 590.695251, `position_z`= 80.769630, `orientation`= 5.502757 WHERE `guid`= 78135;
+UPDATE `creature` SET `position_x`= -5152.365723, `position_y`= 592.303040, `position_z`= 81.361931, `orientation`= 4.705578 WHERE `guid`= 78137;
+UPDATE `creature` SET `position_x`= -5113.345703, `position_y`= 623.850159, `position_z`= 86.736343, `orientation`= 1.033840 WHERE `guid`= 78160;
+UPDATE `creature` SET `position_x`= -5123.593750, `position_y`= 626.638916, `position_z`= 86.629669, `orientation`= 1.395123 WHERE `guid`= 78159;
+UPDATE `creature` SET `position_x`= -5165.503418, `position_y`= 568.109131, `position_z`= 80.523895, `orientation`= 2.707489 WHERE `guid`= 52107;
diff --git a/sql/updates/world/2015_04_11_01_world.sql b/sql/updates/world/2015_04_11_01_world.sql
new file mode 100644
index 00000000000..cf227f03976
--- /dev/null
+++ b/sql/updates/world/2015_04_11_01_world.sql
@@ -0,0 +1,1126 @@
+-- Add Gug
+SET @ENTRY := 23144;
+SET @GUID := 23428;
+DELETE FROM `creature` WHERE `guid`=@GUID;
+INSERT INTO `creature` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `curhealth`) VALUES
+(@GUID, @ENTRY, 530, -5119.803, 624.7665, 86.82748, 1.256637, 300, 3858);
+DELETE FROM `creature_template_addon` WHERE `entry`=@ENTRY;
+INSERT INTO `creature_template_addon` (`entry`, `bytes2`, `emote`) VALUES (@ENTRY, 4097, 133);
+
+-- Add spawns
+SET @CGUID := 143596;
+DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+297;
+INSERT INTO `creature` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `curhealth`) VALUES
+(@CGUID+0, 23146, 530, -5143.491, 515.507, 84.50488, 4.834562, 300, 88860), -- Dragonmaw Enforcer
+(@CGUID+1, 23146, 530, -5162.25, 534.2803, 82.78862, 5.183628, 300, 88860),
+(@CGUID+2, 23146, 530, -5160.024, 561.3785, 82.47646, 0.05235988, 300, 88860),
+(@CGUID+3, 23289, 530, -5141.078, 637.8817, 36.18917, 0, 300, 4299), -- 143599 -- Mine Car
+(@CGUID+4, 23289, 530, -5158.637, 727.454, 45.57201, 0, 300, 4299), -- 143600
+(@CGUID+5, 23287, 530, -5229.827, 626.3266, 48.93023, 4.223697, 300, 4299), -- 23287 (Area: 3965) -- Murkblood Miner
+(@CGUID+6, 23287, 530, -5160.776, 616.7452, 36.24147, 5.044002, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+7, 23287, 530, -5160.416, 658.8326, 38.73607, 3.106686, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+8, 23287, 530, -5163.108, 651.5301, 37.39709, 2.460914, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+9, 23287, 530, -5160.553, 678.9923, 41.02322, 2.792527, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+10, 23287, 530, -5161.212, 668.8508, 40.50122, 3.281219, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+11, 23287, 530, -5152.85, 621.4561, 35.87352, 5.166174, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+12, 23287, 530, -5157.459, 707.9813, 42.97822, 2.75762, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+13, 23287, 530, -5156.376, 687.0754, 41.27747, 2.80998, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+14, 23287, 530, -5138.036, 646.6555, 36.65028, 0.2443461, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+15, 23287, 530, -5144.963, 630.1486, 35.9286, 5.61996, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+16, 23287, 530, -5158.104, 699.1263, 42.52824, 3.473205, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+17, 23287, 530, -5139.44, 637.2499, 36.16368, 5.689773, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+18, 23287, 530, -5131.758, 701.3122, 41.26741, 0.5235988, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+19, 23287, 530, -5156.701, 715.8916, 43.45729, 3.106686, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+20, 23287, 530, -5121.366, 693.678, 38.92881, 1.361357, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+21, 23287, 530, -5097.448, 680.2379, 32.88943, 3.001966, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+22, 23287, 530, -5135.893, 721.6864, 44.35764, 0.08726646, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+23, 23287, 530, -5159.912, 725.4135, 45.55035, 3.333579, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+24, 23287, 530, -5140.923, 729.5199, 45.31025, 0.8726646, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+25, 23287, 530, -5079.597, 669.6569, 33.3003, 3.124139, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+26, 23287, 530, -5133.994, 712.6088, 42.61035, 0.2268928, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+27, 23287, 530, -5063.482, 624.7257, 27.56281, 2.338741, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+28, 23287, 530, -5080.878, 644.967, 32.68097, 2.426008, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+29, 23287, 530, -5100.418, 654.4422, 33.49445, 2.303835, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+30, 23287, 530, -5164.475, 734.2371, 47.03968, 3.438299, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+31, 23287, 530, -5058.134, 647.3507, 29.36781, 2.80998, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+32, 23287, 530, -5219.054, 621.868, 47.97065, 4.310963, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+33, 23287, 530, -5040.079, 627.7264, 19.75634, 2.373648, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+34, 23287, 530, -5018.824, 584.2097, 22.70727, 2.059489, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+35, 23287, 530, -4983.617, 632.3187, 20.58379, 3.054326, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+36, 23287, 530, -5019.396, 638.6277, 23.41907, 3.281219, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+37, 23287, 530, -5043.952, 595.3922, 18.24016, 2.094395, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+38, 23287, 530, -4969.858, 654.9359, 20.92751, 3.420845, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+39, 23287, 530, -4959.944, 591.9269, 12.99098, 1.989675, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+40, 23287, 530, -4968.715, 620.0629, 16.17488, 2.670354, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+41, 23287, 530, -4942.414, 582.1096, 9.914608, 2.129302, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+42, 23287, 530, -4959.944, 591.9269, 12.99098, 1.989675, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+43, 23287, 530, -4944.878, 561.5024, 7.636816, 2.094395, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+44, 23287, 530, -4921.915, 547.6068, 6.501626, 2.042035, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+45, 23287, 530, -4940.023, 535.2883, 7.127902, 1.675516, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+46, 23287, 530, -4904.557, 530.2072, 4.563097, 2.129302, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+47, 23287, 530, -4921.108, 528.4734, 6.568361, 2.042035, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+48, 23287, 530, -4887.938, 531.7214, 0.6247723, 3.054326, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+49, 23287, 530, -4965.987, 483.2187, 4.143906, 0.03490658, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+50, 23287, 530, -4918.072, 502.0591, 2.48006, 1.570796, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+51, 23287, 530, -4926.752, 455.5083, 1.527722, 1.396263, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+52, 23287, 530, -4981.036, 460.0726, 4.207428, 0.1745329, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+53, 23287, 530, -4937.384, 438.7227, 2.34031, 1.291544, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+54, 23287, 530, -4907.827, 475.5659, 0.8901013, 2.042035, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+55, 23287, 530, -4882.042, 472.4888, -3.117535, 3.228859, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+56, 23287, 530, -4941.028, 469.1831, 0.2023413, 1.064651, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+57, 23287, 530, -4950.465, 451.1373, 0.7255403, 0.9424778, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+58, 23287, 530, -4904.538, 420.0294, -5.088545, 2.443461, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+59, 23287, 530, -4959.418, 393.7061, -0.9294897, 4.520403, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+60, 23287, 530, -4956.983, 356.4414, -2.264346, 4.468043, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+61, 23287, 530, -4919.892, 307.3166, -13.13219, 3.403392, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+62, 23287, 530, -4970.338, 322.2038, -2.636889, 3.909538, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+63, 23287, 530, -4969.645, 298.882, -3.503148, 3.420845, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+64, 23287, 530, -4941.545, 294.6626, -8.814796, 3.263766, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+65, 23287, 530, -4994.479, 281.7764, -3.49516, 2.687807, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+66, 23287, 530, -5014.456, 279.3217, 0.06473933, 2.356194, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+67, 23287, 530, -4981.001, 267.0449, -6.299074, 2.565634, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+68, 23287, 530, -4966.653, 279.1325, -5.876964, 2.844887, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+69, 23287, 530, -4991.896, 300.7972, -1.304715, 3.281219, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+70, 23287, 530, -5009.957, 296.281, 2.063254, 2.792527, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+71, 23287, 530, -4973.297, 220.8183, -10.63328, 2.216568, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+72, 23287, 530, -4977.839, 252.8167, -8.2034, 2.408554, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+73, 23287, 530, -5011.099, 222.092, -10.51172, 1.815142, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+74, 23287, 530, -4995.983, 254.4959, -4.699264, 2.216568, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+75, 23287, 530, -5023.841, 241.114, -4.392029, 1.32645, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+76, 23287, 530, -5044.643, 201.4753, -11.86366, 0.8726646, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+77, 23287, 530, -5069.865, 170.6837, -9.401138, 0.8203048, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+78, 23287, 530, -5009.812, 160.8324, -14.7209, 2.75762, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+79, 23287, 530, -5067.464, 192.5109, -8.89424, 0.6457718, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+80, 23287, 530, -5041.76, 179.2009, -14.23692, 0.9599311, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+81, 23287, 530, -5051.51, 155.655, -12.63313, 1.396263, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+82, 23287, 530, -5090.02, 180.6597, -8.299232, 0.3490658, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+83, 23287, 530, -5085.621, 154.5083, -10.88531, 0.9075712, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+84, 23287, 530, -5056.444, 120.8188, -17.15018, 2.059489, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+85, 23287, 530, -5068.56, 141.5665, -13.4759, 1.082104, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+86, 23287, 530, -5115.295, 147.5993, -11.40529, 0.6457718, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+87, 23287, 530, -5109.351, 129.4899, -13.61424, 0.6283185, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+88, 23287, 530, -5107.625, 169.4426, -8.387082, 0.3490658, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+89, 23287, 530, -5118.663, 105.1847, -12.59805, 1.256637, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+90, 23287, 530, -5149.458, 152.029, -12.39146, 6.178465, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+91, 23287, 530, -5174.084, 155.2752, -12.23319, 6.021386, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+92, 23287, 530, -5198.479, 157.0766, -13.41456, 0.4712389, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+93, 23287, 530, -5178.485, 174.8304, -11.48918, 5.340707, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+94, 23287, 530, -5198.593, 202.2049, -13.6357, 5.113815, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+95, 23287, 530, -5189.779, 135.4848, -12.0408, 0.6806784, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+96, 23287, 530, -5229.695, 136.8613, -13.63386, 0.5585054, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+97, 23287, 530, -5218.991, 222.2088, -11.34154, 5.218534, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+98, 23287, 530, -5220.694, 199.7151, -12.80523, 5.951573, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+99, 23287, 530, -5247.149, 212.4612, -13.82043, 5.637414, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+100, 23287, 530, -5241.209, 231.7721, -11.93106, 5.51524, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+101, 23287, 530, -5023.841, 241.114, -4.392029, 1.32645, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+102, 23287, 530, -4937.384, 438.7227, 2.34031, 1.291544, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+103, 23287, 530, -4940.023, 535.2883, 7.127902, 1.675516, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+104, 23287, 530, -4959.944, 591.9269, 12.99098, 1.989675, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+105, 23287, 530, -4950.465, 451.1373, 0.7255403, 0.9424778, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+106, 23287, 530, -4991.896, 300.7972, -1.304715, 3.281219, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+107, 23287, 530, -4970.338, 322.2038, -2.636889, 3.909538, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+108, 23287, 530, -4969.645, 298.882, -3.503148, 3.420845, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+109, 23287, 530, -5069.865, 170.6837, -9.401138, 0.8203048, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+110, 23287, 530, -4959.418, 393.7061, -0.9294897, 4.520403, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+111, 23287, 530, -4926.752, 455.5083, 1.527722, 1.396263, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+112, 23287, 530, -4940.023, 535.2883, 7.127902, 1.675516, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+113, 23287, 530, -4921.108, 528.4734, 6.568361, 2.042035, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+114, 23287, 530, -4904.557, 530.2072, 4.563097, 2.129302, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+115, 23287, 530, -4983.617, 632.3187, 20.58379, 3.054326, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+116, 23287, 530, -4956.983, 356.4414, -2.264346, 4.468043, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+117, 23287, 530, -4965.987, 483.2187, 4.143906, 0.03490658, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+118, 23287, 530, -4941.028, 469.1831, 0.2023413, 1.064651, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+119, 23287, 530, -4940.023, 535.2883, 7.127902, 1.675516, 300, 4299), -- 23287 (Area: 3965) (Auras: 31261 - 31261)
+(@CGUID+120, 23287, 530, -5178.181, 642.9128, 39.79438, 1.919862, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+121, 23287, 530, -5187.549, 638.7712, 41.74369, 1.954769, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+122, 23287, 530, -5170.539, 614.4111, 37.59125, 4.921828, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+123, 23287, 530, -5186.184, 617.5848, 42.23409, 4.34587, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+124, 23287, 530, -5219.594, 636.9407, 48.11805, 1.605703, 300, 4299), -- 23287 (Area: 3965
+(@CGUID+125, 23287, 530, -5209.468, 636.0561, 45.94989, 1.780236, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+126, 23287, 530, -5209.135, 619.5105, 46.42957, 4.502949, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+127, 23287, 530, -5197.959, 636.2016, 44.08671, 1.64061, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+128, 23287, 530, -5195.912, 618.5502, 44.35371, 4.555309, 300, 4299), -- 23287 (Area: 3965)
+(@CGUID+129, 23169, 530, -5009.558, 687.8375, 18.86654, 1.480325, 300, 4299), -- 23169 (Area: 3965) -- Nethermine Flayer
+(@CGUID+130, 23169, 530, -4967.988, 620.9315, 15.97108, 4.676374, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+131, 23169, 530, -4958.076, 598.2208, 13.32545, 5.52459, 300, 4299), -- 23169 (Area: 3965) (Auras: )
+(@CGUID+132, 23169, 530, -4979.914, 633.551, 20.30668, 2.572264, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+133, 23169, 530, -5013.305, 639.0559, 23.55437, 1.450203, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+134, 23169, 530, -4966.186, 655.6455, 20.22517, 2.583087, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+135, 23169, 530, -5010.128, 689.9114, 18.92688, 5.894914, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+136, 23169, 530, -4979.914, 633.551, 20.30668, 2.465721, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+137, 23169, 530, -5013.305, 639.0559, 23.55437, 1.212913, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+138, 23169, 530, -4958.076, 598.2208, 13.32545, 5.791277, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+139, 23169, 530, -4979.914, 633.551, 20.30668, 5.372581, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+140, 23169, 530, -5010.128, 689.9114, 18.92688, 6.151822, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+141, 23169, 530, -4966.186, 655.6455, 20.22517, 5.770682, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+142, 23169, 530, -4958.076, 598.2208, 13.32545, 5.80118, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+143, 23169, 530, -5013.305, 639.0559, 23.55437, 1.466077, 300, 4299), -- 23169 (Area: 3965
+(@CGUID+144, 23169, 530, -4919.305, 584.1595, 5.835848, 5.860526, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+145, 23169, 530, -4945.825, 567.2396, 8.357429, 4.963535, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+146, 23169, 530, -4920.444, 554.3483, 6.81108, 1.592739, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+147, 23169, 530, -4885.112, 529.7742, -0.07188316, 3.104875, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+148, 23169, 530, -4905.904, 531.3935, 4.766143, 4.255386, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+149, 23169, 530, -4958.076, 598.2208, 13.32545, 2.345144, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+150, 23169, 530, -4946.532, 565.8182, 8.39564, 2.171958, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+151, 23169, 530, -4971.019, 481.9048, 4.255131, 5.742048, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+152, 23169, 530, -4978.048, 461.4908, 3.580604, 1.284639, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+153, 23169, 530, -4910.448, 466.246, 1.150314, 4.61044, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+154, 23169, 530, -4922.486, 452.6082, 1.741542, 1.848747, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+155, 23169, 530, -4883.248, 474.9959, -2.790574, 0.4947965, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+156, 23169, 530, -4954.734, 439.9607, 2.19193, 0.7067229, 300, 4299), -- 23169 (Area: 3965) (Auras: )
+(@CGUID+157, 23169, 530, -4917.937, 430.3383, -1.619577, 5.612211, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+158, 23169, 530, -4958.768, 351.7107, -2.247269, 1.772254, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+159, 23169, 530, -5038.031, 350.875, 2.62308, 3.72062, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+160, 23169, 530, -4973.916, 319.2121, -2.417306, 1.525316, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+161, 23169, 530, -4931.086, 298.9532, -11.71306, 3.185381, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+162, 23169, 530, -5005.922, 290.7715, 0.05161196, 0.369805, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+163, 23169, 530, -5039.163, 319.1835, -3.561619, 3.754901, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+164, 23169, 530, -5010.779, 274.0312, -1.596922, 4.01841, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+165, 23169, 530, -4954.379, 295.0413, -5.898067, 2.82695, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+166, 23169, 530, -4991.504, 250.8047, -5.723885, 4.988063, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+167, 23169, 530, -5062.854, 293.8755, -8.149835, 3.967818, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+168, 23169, 530, -5018.055, 224.3272, -10.22529, 0.6886171, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+169, 23169, 530, -4976.179, 227.3799, -10.6006, 0.5956746, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+170, 23169, 530, -4935.262, 463.8304, 0.3223694, 0.1625037, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+171, 23169, 530, -4922.94, 501.7582, 2.849531, 5.342018, 300, 4299), -- 23169 (Area: 3965) (Auras: )
+(@CGUID+172, 23169, 530, -4975.554, 269.0946, -6.799523, 5.499429, 300, 4299), -- 23169 (Area: 3965) (Auras: )
+(@CGUID+173, 23169, 530, -4960.398, 355.0888, -1.787407, 5.133213, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+174, 23169, 530, -5016.044, 224.2127, -10.37248, 2.795499, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+175, 23169, 530, -5060.153, 197.7174, -9.609101, 3.258459, 300, 4299), -- 23169 (Area: 3965) (Auras: )
+(@CGUID+176, 23169, 530, -5049.03, 166.6831, -12.72408, 2.162152, 300, 4299), -- 23169 (Area: 3965) (Auras: )
+(@CGUID+177, 23169, 530, -4991.019, 249.8632, -5.817747, 2.753308, 300, 4299), -- 23169 (Area: 3965) (Auras: )
+(@CGUID+178, 23169, 530, -4977.148, 226.7941, -10.30185, 2.419013, 300, 4299), -- 23169 (Area: 3965) (Auras: )
+(@CGUID+179, 23169, 530, -5002.327, 291.3423, -0.9251177, 3.278219, 300, 4299), -- 23169 (Area: 3965) (Auras: )
+(@CGUID+180, 23169, 530, -5074.881, 159.3353, -10.2591, 1.89717, 300, 4299), -- 23169 (Area: 3965) (Auras: )
+(@CGUID+181, 23169, 530, -5094.841, 177.7091, -8.408723, 4.038786, 300, 4299), -- 23169 (Area: 3965) (Auras: )
+(@CGUID+182, 23169, 530, -5059.071, 126.2977, -16.5597, 5.170018, 300, 4299), -- 23169 (Area: 3965) (Auras: )
+(@CGUID+183, 23169, 530, -5109.454, 127.173, -13.81656, 1.71806, 300, 4299), -- 23169 (Area: 3965) (Auras: )
+(@CGUID+184, 23169, 530, -4954.41, 294.5933, -5.898048, 0.8626862, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+185, 23169, 530, -5116.198, 103.0558, -12.65989, 4.638427, 300, 4299), -- 23169 (Area: 3965) (Auras: )
+(@CGUID+186, 23169, 530, -5143.03, 145.8997, -12.47764, 2.741143, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+187, 23169, 530, -5110.538, 154.916, -10.57434, 1.115047, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+188, 23169, 530, -5047.887, 169.4041, -12.75727, 4.620065, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+189, 23169, 530, -5003.257, 159.8983, -14.73863, 0.2256795, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+190, 23169, 530, -5009.199, 275.662, -1.798863, 0.7142927, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+191, 23169, 530, -4975.545, 227.9456, -10.74416, 0.6228198, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+192, 23169, 530, -4991.768, 250.8438, -5.681248, 2.223132, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+193, 23169, 530, -5062.847, 293.5673, -8.190778, 4.098309, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+194, 23169, 530, -5001.911, 292.2764, -0.9095231, 1.151772, 300, 4299), -- 23169 (Area: 3965
+(@CGUID+195, 23169, 530, -4971.963, 318.408, -2.593545, 1.286586, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+196, 23169, 530, -5037.165, 349.7794, 2.602906, 3.60786, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+197, 23169, 530, -4932.7, 299.3089, -11.32172, 1.003917, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+198, 23169, 530, -5040.047, 317.9085, -4.035919, 4.635794, 300, 4299), -- 23169 (Area: 396
+(@CGUID+199, 23169, 530, -4957.847, 405.2784, 0.9240213, 3.046554, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+200, 23169, 530, -4948.438, 460.1876, 0.1027715, 0.9935466, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+201, 23169, 530, -4917.532, 431.2552, -1.466718, 2.644402, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+202, 23169, 530, -4955.563, 438.1111, 2.453238, 3.585394, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+203, 23169, 530, -4924.495, 453.2117, 1.67316, 0.4023848, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+204, 23169, 530, -4978.226, 457.8618, 3.579613, 5.989014, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+205, 23169, 530, -4910.379, 470.4026, 0.8641118, 1.141848, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+206, 23169, 530, -4970.949, 480.7429, 4.06482, 5.434553, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+207, 23169, 530, -4885.628, 472.7194, -2.342252, 6.117043, 300, 4299), -- 23169 (Area: 396
+(@CGUID+208, 23169, 530, -4919.86, 502.4582, 2.580096, 3.676699, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+209, 23169, 530, -4919.363, 552.8414, 6.88634, 6.262745, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+210, 23169, 530, -4946.429, 566.189, 8.320451, 0.8319092, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+211, 23169, 530, -4884.078, 530.2368, -0.2521183, 4.288206, 300, 4299), -- 23169 (Area: 396
+(@CGUID+212, 23169, 530, -4934.582, 535.1161, 6.564591, 4.536118, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+213, 23169, 530, -4906.604, 532.5593, 4.957226, 1.968214, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+214, 23169, 530, -4920.163, 587.0939, 6.468598, 2.24315, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+215, 23169, 530, -4959.686, 596.4736, 13.12449, 5.048675, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+216, 23169, 530, -4978.36, 633.9875, 19.98329, 0.7612703, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+217, 23169, 530, -4962.661, 656.2208, 19.60664, 2.322476, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+218, 23169, 530, -5015.241, 641.3285, 23.3768, 3.365274, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+219, 23169, 530, -5010.128, 689.9114, 18.78944, 2.978981, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+220, 23169, 530, -5077.739, 333.02, 5.179652, 2.509581, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+221, 23169, 530, -5019.065, 222.1603, -10.62667, 4.953171, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+222, 23169, 530, -4979.019, 269.4832, -6.478584, 3.350721, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+223, 23169, 530, -5058.351, 196.9229, -9.941554, 5.702285, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+224, 23169, 530, -5092.194, 181.7484, -8.519144, 6.063996, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+225, 23169, 530, -5071.979, 158.8044, -10.67218, 0.01778779, 300, 4299), -- 23169 (Area: 3965)
+(@CGUID+226, 23326, 530, -5001.687, 643.4487, 22.84591, 5.311926, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732) -- nethermine ravager
+(@CGUID+227, 23326, 530, -5016.762, 689.4977, 18.98941, 4.254198, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+228, 23326, 530, -4948.338, 574.87, 9.780287, 5.182978, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+229, 23326, 530, -4978.119, 622.5638, 18.00215, 2.614223, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+230, 23326, 530, -4967.506, 658.9974, 20.74481, 3.170801, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+231, 23326, 530, -4957.431, 584.6068, 12.20244, 1.852743, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+232, 23326, 530, -5005.486, 644.3996, 22.76456, 1.884956, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+233, 23326, 530, -5015.393, 692.0869, 18.86917, 2.075273, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+234, 23326, 530, -4967.506, 658.9974, 20.74481, 0.5888432, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+235, 23326, 530, -4978.119, 622.5638, 18.00215, 1.621879, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+236, 23326, 530, -5005.486, 644.3996, 22.76456, 1.646531, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+237, 23326, 530, -5015.393, 692.0869, 18.86917, 3.379317, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+238, 23326, 530, -4951.823, 581.4465, 11.22198, 2.676563, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+239, 23326, 530, -4946.557, 579.6539, 10.15224, 1.13619, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+240, 23326, 530, -4928.474, 480.4054, -0.1783632, 0.9677349, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+241, 23326, 530, -4918.411, 483.8331, 0.07626688, 2.36952, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+242, 23326, 530, -4921.181, 439.6729, 0.8384005, 0.5438383, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+243, 23326, 530, -4952.597, 401.4749, -0.3538051, 3.418738, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+244, 23326, 530, -4868.084, 531.6934, -1.683346, 3.018919, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+245, 23326, 530, -4965.881, 349.554, -1.536497, 4.615863, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+246, 23326, 530, -4971.478, 304.6561, -3.048606, 5.414115, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+247, 23326, 530, -4953.476, 284.0535, -6.819366, 4.314682, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+248, 23326, 530, -5014.135, 288.1924, 1.793531, 5.620615, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+249, 23326, 530, -4962.295, 381.2368, -1.744818, 4.602769, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+250, 23326, 530, -4995.37, 236.0123, -7.475551, 5.915942, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+251, 23326, 530, -5046.238, 204.7434, -11.17455, 0.3013434, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+252, 23326, 530, -5015.046, 264.2135, -0.9630037, 4.380797, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+253, 23326, 530, -5054.073, 191.3642, -11.12945, 4.913056, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+254, 23326, 530, -5068.295, 161.4686, -10.65775, 3.185342, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+255, 23326, 530, -5084.805, 170.5898, -8.363562, 2.470629, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+256, 23326, 530, -5118.899, 113.8509, -12.95813, 1.053266, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+257, 23326, 530, -5121.38, 140.2108, -12.24173, 4.717645, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+258, 23326, 530, -5028.928, 162.4327, -14.69674, 4.598915, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+259, 23326, 530, -5013.326, 287.5868, 1.554583, 2.353504, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+260, 23326, 530, -5162.3, 147.2595, -13.68486, 2.213196, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+261, 23326, 530, -5195.16, 185.9774, -12.47411, 2.135337, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+262, 23326, 530, -5185.331, 154.8984, -12.49722, 5.532097, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+263, 23326, 530, -5028.03, 163.2786, -14.87766, 0.7552983, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+264, 23326, 530, -5055.308, 191.3719, -10.81202, 0.5039104, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+265, 23326, 530, -4995.011, 236.3476, -7.462594, 6.063029, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+266, 23326, 530, -5037.676, 207.097, -11.84669, 3.400416, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+267, 23326, 530, -5038.441, 207.0967, -11.75817, 3.849093, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732
+(@CGUID+268, 23326, 530, -4949.182, 294.4462, -6.966339, 0.678574, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+269, 23326, 530, -4973.03, 308.0056, -2.714836, 1.892263, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+270, 23326, 530, -4967.495, 349.8932, -1.395857, 2.333905, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+271, 23326, 530, -4950.731, 403.7043, -0.1075567, 0.8233353, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+272, 23326, 530, -4921.817, 439.4337, 0.8760551, 3.996498, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+273, 23326, 530, -4906.549, 472.265, 0.7405176, 2.369046, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+274, 23326, 530, -4942.342, 455.2948, 0.785726, 3.048413, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+275, 23326, 530, -4927.634, 480.4459, -0.2140773, 3.812036, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+276, 23326, 530, -4917.617, 533.3819, 6.377127, 4.497816, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+277, 23326, 530, -4947.289, 577.6053, 9.956731, 4.047926, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+278, 23326, 530, -4916.31, 586.3352, 5.467452, 0.6311421, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+279, 23326, 530, -4979.853, 626.7228, 18.89969, 2.537099, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+280, 23326, 530, -4968.971, 659.8459, 20.95211, 0.4729249, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+281, 23326, 530, -5002.798, 646.2766, 22.85282, 0.4368325, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+282, 23326, 530, -5084.679, 170.6154, -8.364773, 2.919591, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+283, 23326, 530, -5069.651, 161.7928, -10.45241, 3.358221, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+284, 23326, 530, -5122.319, 139.8094, -12.27753, 4.208749, 300, 3224), -- 23326 (Area: 3965) (Auras: 32732 - 32732)
+(@CGUID+285, 23309, 530, -4860.765, 468.7788, -5.74204, 4.24115, 300, 4299), -- 23309 (Area: 3965) -- murkblood overseer
+(@CGUID+286, 23324, 530, -5196.179, 166.8186, -12.59387, 4.930552, 300, 4299), -- 23324 (Area: 3965) (Auras: 40743 - 40743) Crazed Murkblood Miner
+(@CGUID+287, 23324, 530, -5210.658, 146.5081, -14.06982, 3.909939, 300, 4299), -- 23324 (Area: 3965) (Auras: 40743 - 40743)
+(@CGUID+288, 23324, 530, -5178.911, 173.927, -11.54059, 1.130439, 300, 4299), -- 23324 (Area: 3965) (Auras: 40743 - 40743) (possible waypoints or random movement)
+(@CGUID+289, 23324, 530, -5192.216, 133.6122, -12.00781, 2.232028, 300, 4299), -- 23324 (Area: 3965) (possible waypoints or random movement)
+(@CGUID+290, 23324, 530, -5179.031, 152.351, -12.46348, 4.376995, 300, 4299), -- 23324 (Area: 3965) (possible waypoints or random movement)
+(@CGUID+291, 23324, 530, -5236.018, 198.761, -13.93909, 1.100167, 300, 4299), -- 23324 (Area: 3965) (Auras: 40743 - 40743)
+(@CGUID+292, 23324, 530, -5210.276, 207.8238, -12.79146, 1.512519, 300, 4299), -- 23324 (Area: 3965) (Auras: 40743 - 40743) (possible waypoints or random movement)
+(@CGUID+293, 23324, 530, -5230.436, 213.0719, -12.7647, 4.868175, 300, 4299), -- 23324 (Area: 3965) (Auras: 40743 - 40743) (possible waypoints or random movement)
+(@CGUID+294, 23324, 530, -5254.496, 210.4873, -13.75615, 5.228326, 300, 4299), -- 23324 (Area: 3965) (Auras: 40743 - 40743) (possible waypoints or random movement)
+(@CGUID+295, 23324, 530, -5224.815, 227.1456, -10.97935, 5.068825, 300, 4299), -- 23324 (Area: 3965) (possible waypoints or random movement)
+(@CGUID+296, 23305, 530, -5223.799, 139.1362, -13.6459, 5.91905, 300, 4299), -- 23305 (Area: 3965) (Auras: 40743 - 40743) (possible waypoints or random movement) Crazed Murkblood Foreman
+(@CGUID+297, 23305, 530, -5247.993, 226.5564, -12.5696, 3.970754, 300, 4299); -- 23305 (Area: 3965) (Auras: 40743 - 40743)
+
+-- Remove dubble spawns
+DELETE FROM `creature` WHERE `guid` IN (143638, 143631, 143641, 143643, 143642, 143714, 143707, 143701, 143649, 143706, 143656, 143658, 143659, 143665, 48234, 48235, 48236, 48237, 48241, 48240, 48239, 48238, 48242, 48243, 48229, 48232, 48233, 48231, 48230, 48245, 48244, 48251, 48246, 48248, 48247, 48253, 48252, 48256, 48255, 48254, 48249, 48250, 143880, 143820, 143878, 143820, 143776, 143820, 143847, 143860, 143784, 143771, 143862, 143817, 143770, 143774, 143765, 143773, 143772, 143786, 143855, 143758, 143775, 143818, 143761, 143793, 143842, 143791, 143866, 143754, 143867, 143752, 143797, 143868, 143750, 143749, 143803, 143836, 143748, 143747, 143804, 143744, 143807, 143805, 143740, 143741, 143806, 143824, 143873, 143835, 143727, 143738, 143734, 143825, 143831, 143728, 143812, 143835, 143730, 143813, 143826, 143828, 143739, 143814, 143729, 143823, 143829, 143725, 143736, 143815, 143832, 143830, 143732, 143811, 52032, 143792, 143759, 143789, 52021, 52023, 52022, 52020, 52024, 52016, 52017, 52018, 52015, 52014,52019, 48257, 52013, 52011, 52012, 48258, 52030, 52031, 143762, 143846);
+
+-- update spawn distance
+UPDATE `creature` SET `spawndist`=4 WHERE `id` IN (23326, 23169);
+UPDATE `creature` SET `MovementType`=1 WHERE `id` IN (23326, 23169);
+
+-- Change weapons are sheathed for 23376
+SET @ENTRY := 23376;
+DELETE FROM `creature_template_addon` WHERE `entry`=@ENTRY;
+INSERT INTO `creature_template_addon` (`entry`) VALUES (@ENTRY);
+
+-- Remove existing mine cars
+DELETE FROM `creature` WHERE `guid` IN (370643, 52334, 52335);
+
+-- Make Murkblood Miner spawn dead
+DELETE FROM `creature_template_addon` WHERE `entry`=23287;
+INSERT INTO `creature_template_addon` (`entry`, `bytes1`, `bytes2`, `auras`) VALUES (23287, 0, 1, 31261);
+
+-- Add aura to nethermine ravager
+DELETE FROM `creature_template_addon` WHERE `entry`=23326;
+INSERT INTO `creature_template_addon` (`entry`, `bytes1`, `bytes2`, `auras`) VALUES (23326, 0, 0, 32732);
+
+-- Mine Car SAI
+SET @ENTRY := 23289;
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,0,25,0,100,0,0,0,0,0,11,40684,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mine Car - On Reset - Cast 'Mine Cart'"),
+(@ENTRY,0,1,0,38,0,100,0,1,1,0,0,103,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mine Car - On Data Set 1 1 - Set Rooted On"),
+(@ENTRY,0,2,0,38,0,100,0,1,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Mine Car - On Data Set 1 0 - Resume Waypoint");
+
+-- Dragonmaw Foreman SAI
+SET @ENTRY := 23376;
+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,0,0,45,1,1,0,0,0,0,10,143599,23289,0,0,0,0,0,"Dragonmaw Foreman - In Combat - Set Data 1 1"),
+(@ENTRY,0,1,0,25,0,100,0,0,0,0,0,45,1,0,0,0,0,0,10,143599,23289,0,0,0,0,0,"Dragonmaw Foreman - On Reset - Set Data 1 0"),
+(@ENTRY,0,2,0,25,0,100,0,0,0,0,0,45,1,0,0,0,0,0,10,143600,23289,0,0,0,0,0,"Dragonmaw Foreman - On Reset - Set Data 1 0"),
+(@ENTRY,0,3,0,0,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,143600,23289,0,0,0,0,0,"Dragonmaw Foreman - In Combat - Set Data 1 1");
+
+-- Crazed Murkblood Miner SAI
+SET @ENTRY := 23324;
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,0,1,0,100,0,60000,120000,60000,120000,11,40743,0,0,0,0,0,1,0,0,0,0,0,0,0,"Crazed Murkblood Miner - Out of Combat - Cast 'Frenzy'");
+
+-- Crazed Murkblood Foreman SAI
+SET @ENTRY := 23305;
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,0,1,0,100,0,60000,120000,60000,120000,11,40743,0,0,0,0,0,1,0,0,0,0,0,0,0,"Crazed Murkblood Foreman - Out of Combat - Cast 'Frenzy'");
+
+-- Add creature addon
+DELETE FROM `creature_addon` WHERE `guid` IN (143601, 143628, 143720, 143721, 143724, 143719, 143718, 143602, 143607, 143611, 143613, 143610, 143616, 143614, 143622, 143618, 143620, 143626, 143619, 143615, 143612, 143609, 1436058, 143606, 143603, 143604, 143716, 143717, 143723, 143605, 143722);
+INSERT INTO `creature_addon` (`guid`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(143601, 0, 1, 233, NULL),
+(143628, 0, 1, 233, NULL),
+(143720, 0, 1, 233, NULL),
+(143721, 0, 1, 233, NULL),
+(143724, 0, 1, 233, NULL),
+(143719, 0, 1, 233, NULL),
+(143718, 0, 1, 233, NULL),
+(143602, 0, 1, 233, NULL),
+(143607, 0, 1, 233, NULL),
+(143611, 0, 1, 233, NULL),
+(143613, 0, 1, 233, NULL),
+(143610, 0, 1, 233, NULL),
+(143616, 0, 1, 233, NULL),
+(143614, 0, 1, 233, NULL),
+(143622, 0, 1, 233, NULL),
+(143618, 0, 1, 233, NULL),
+(143620, 0, 1, 233, NULL),
+(143626, 0, 1, 233, NULL),
+(143619, 0, 1, 233, NULL),
+(143615, 0, 1, 233, NULL),
+(143612, 0, 1, 233, NULL),
+(143609, 0, 1, 233, NULL),
+(143605, 0, 1, 233, NULL),
+(143606, 0, 1, 233, NULL),
+(143603, 0, 1, 233, NULL),
+(143604, 0, 1, 233, NULL),
+(143716, 0, 1, 233, NULL),
+(143717, 0, 1, 233, NULL),
+(143723, 0, 1, 233, NULL),
+(143722, 0, 1, 233, NULL);
+
+-- Update position
+UPDATE `creature` SET `position_x`=-5165.002, `position_y`=534.0313, `position_z`=82.90166, `orientation`=3.857178 WHERE `guid`=52106;
+UPDATE `creature` SET `position_x`=-5146.481, `position_y`=517.6528, `position_z`=85.1688, `orientation`=3.351032 WHERE `guid`=52109;
+UPDATE `creature` SET `position_x`=-5166.383, `position_y`=563.9937, `position_z`=80.58907, `orientation`=3.211406 WHERE `guid`=52107;
+UPDATE `creature` SET `position_x`=-5128.689, `position_y`=579.8379, `position_z`=85.25567, `orientation`=0.2617994 WHERE `guid`=52112;
+UPDATE `creature` SET `position_x`=-5133.728, `position_y`=591.6107, `position_z`=84.34083, `orientation`=0.08726646 WHERE `guid`=52111;
+UPDATE `creature` SET `position_x`=-5103.687, `position_y`=585.6875, `position_z`=85.79736, `orientation`=2.111848 WHERE `guid`=52114;
+UPDATE `creature` SET `position_x`=-5079.457, `position_y`=538.1425, `position_z`=86.41579, `orientation`=5.5676 WHERE `guid`=52231;
+UPDATE `creature` SET `position_x`=-5094.562, `position_y`=596.6859, `position_z`=86.2102, `orientation`=2.617994 WHERE `guid`=52115;
+UPDATE `creature` SET `position_x`=-5102.299, `position_y`=623.4721, `position_z`=86.07585, `orientation`=1.413717 WHERE `guid`=52113;
+UPDATE `creature` SET `position_x`=-5089.073, `position_y`=616.179, `position_z`=85.79301, `orientation`=1.082104 WHERE `guid`=52230;
+UPDATE `creature` SET `position_x`=-5162.11, `position_y`=629.679, `position_z`=79.66261, `orientation`=2.199115 WHERE `guid`=52108;
+UPDATE `creature` SET `position_x`=-5146.516, `position_y`=639.3836, `position_z`=81.87501, `orientation`=2.321288 WHERE `guid`=52110;
+
+-- Update position Ronag the slave driver
+UPDATE `creature` SET `position_x`=-5161.059, `position_y`=288.1674, `position_z`=-27.11326, `orientation`=5.078908 WHERE `guid`=40729;
+
+-- Update mistress of the mine positions
+UPDATE `creature` SET `position_x`=-5254.184, `position_y`=628.4734, `position_z`=48.99072, `orientation`=2.617994 WHERE `guid`=88898;
+
+-- Update toranaku position
+UPDATE `creature` SET `position_x`=-5133.719, `position_y`=227.1979, `position_z`=-26.26821, `orientation`=2.059489 WHERE `guid`=40740;
+
+-- Update murkblood overseer positions
+UPDATE `creature` SET `position_x`=-4898.184, `position_y`=411.9311, `position_z`=-5.810406, `orientation`=3.368485 WHERE `guid`=43919;
+UPDATE `creature` SET `position_x`=-4907.272, `position_y`=314.5579, `position_z`=-12.17146, `orientation`=1.518436 WHERE `guid`=40742;
+UPDATE `creature` SET `position_x`=-4961.051, `position_y`=211.6252, `position_z`=-10.97874, `orientation`=4.031711 WHERE `guid`=42566;
+UPDATE `creature` SET `position_x`=-4979.739, `position_y`=161.6144, `position_z`=-15.42497, `orientation`=2.670354 WHERE `guid`=48228;
+
+-- Add missing mistress of the mine
+SET @ENTRY := 23149;
+SET @GUID := 23430;
+DELETE FROM `creature` WHERE `guid`=@GUID;
+INSERT INTO `creature` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `curhealth`) VALUES
+(@GUID, @ENTRY, 530, -5165.22, 757.3012, 49.79086, 2.932153, 25, 104790);
+
+DELETE FROM `creature_addon` WHERE `guid` IN (143846, 143847, 52283, 23144);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=143599;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES
+(143599, 143599, 0, 0, 1),
+(143599, 52345, 2, 0, 2);
+
+-- Pathing for Mine Car Entry: 23289 'TDB FORMAT'
+SET @NPC := 143599;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5141.078,`position_y`=637.8817,`position_z`=36.18917 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,-5141.078,637.8817,36.18917,0,0,0,0,100,0), -- 17:08:25
+(@PATH,2,-5140.013,643.7603,36.68985,0,0,0,0,100,0), -- 17:08:26
+(@PATH,3,-5139.763,645.5103,36.93985,0,0,0,0,100,0), -- 17:08:26
+(@PATH,4,-5139.761,650.6669,37.334,0,0,0,0,100,0), -- 17:08:30
+(@PATH,5,-5140.261,653.6669,37.834,0,0,0,0,100,0), -- 17:08:30
+(@PATH,6,-5140.511,657.9169,38.084,0,0,0,0,100,0), -- 17:08:30
+(@PATH,7,-5147.932,667.6057,41.11486,0,0,0,0,100,0), -- 17:08:36
+(@PATH,8,-5151.682,670.6057,41.36486,0,0,0,0,100,0), -- 17:08:36
+(@PATH,9,-5154.71,670.9447,41.20504,0,0,0,0,100,0), -- 17:08:42
+(@PATH,10,-5157.904,664.1409,40.12909,0,0,0,0,100,0), -- 17:08:44
+(@PATH,11,-5157.904,660.6409,39.87909,0,0,0,0,100,0), -- 17:08:44
+(@PATH,12,-5161.058,651.3033,37.78137,0,0,0,0,100,0), -- 17:08:49
+(@PATH,13,-5164.057,648.1979,37.81743,0,0,0,0,100,0), -- 17:08:51
+(@PATH,14,-5165.057,647.4479,37.56743,0,0,0,0,100,0), -- 17:08:51
+(@PATH,15,-5167.557,645.1979,37.81743,0,0,0,0,100,0), -- 17:08:51
+(@PATH,16,-5170.843,644.0839,38.46222,0,0,0,0,100,0), -- 17:08:55
+(@PATH,17,-5172.093,643.3339,38.71222,0,0,0,0,100,0), -- 17:08:55
+(@PATH,18,-5173.593,642.8339,38.96222,0,0,0,0,100,0), -- 17:08:55
+(@PATH,19,-5186.051,637.8183,41.7608,0,0,0,0,100,0), -- 17:09:00
+(@PATH,20,-5189.714,636.5399,42.51512,0,0,0,0,100,0), -- 17:09:04
+(@PATH,21,-5191.214,636.2899,42.76512,0,0,0,0,100,0), -- 17:09:04
+(@PATH,22,-5197.214,634.7899,44.26512,0,0,0,0,100,0), -- 17:09:04
+(@PATH,23,-5203.103,634.7686,45.08968,0,0,0,0,100,0), -- 17:09:09
+(@PATH,24,-5206.103,634.7686,45.58968,0,0,0,0,100,0), -- 17:09:09
+(@PATH,25,-5209.806,634.6367,46.42096,0,0,0,0,100,0), -- 17:09:13
+(@PATH,26,-5213.186,634.7311,46.78786,0,0,0,0,100,0), -- 17:09:16
+(@PATH,27,-5213.186,634.7311,46.78786,3.057303,13000,0,0,100,0), -- 17:09:16
+(@PATH,28,-5220.281,635.3306,48.28771,0,0,0,0,100,0), -- 17:09:23
+(@PATH,29,-5225.046,631.6472,48.62878,0,0,0,0,100,0), -- 17:09:24
+(@PATH,30,-5226.796,630.3972,48.62878,0,0,0,0,100,0), -- 17:09:24
+(@PATH,31,-5228.296,629.1472,48.87878,0,0,0,0,100,0), -- 17:09:24
+(@PATH,32,-5229.272,628.4141,49.11567,0,0,0,0,100,0), -- 17:09:29
+(@PATH,33,-5212.051,622.3498,47.22783,0,0,0,0,100,0), -- 17:09:34
+(@PATH,34,-5206.287,621.1569,46.21485,0,0,0,0,100,0), -- 17:09:39
+(@PATH,35,-5186.77,619.8926,42.72266,0,0,0,0,100,0), -- 17:09:44
+(@PATH,36,-5183.428,619.211,41.72144,0,0,0,0,100,0), -- 17:09:47
+(@PATH,37,-5180.678,618.461,40.97144,0,0,0,0,100,0), -- 17:09:47
+(@PATH,38,-5177.428,617.961,39.97144,0,0,0,0,100,0), -- 17:09:47
+(@PATH,39,-5163.798,617.6891,36.96609,0,0,0,0,100,0), -- 17:09:53
+(@PATH,40,-5157.38,620.9669,36.305,0,0,0,0,100,0), -- 17:09:58
+(@PATH,41,-5155.63,622.2169,36.305,0,0,0,0,100,0), -- 17:09:58
+(@PATH,42,-5151.773,625.8492,36.2674,0,0,0,0,100,0), -- 17:10:02
+(@PATH,43,-5147.023,630.5992,36.0174,0,0,0,0,100,0), -- 17:10:02
+(@PATH,44,-5151.613,626.0107,36.01761,0,0,0,0,100,0), -- 17:10:04
+(@PATH,45,-5151.613,626.0107,36.01761,0.7864318,13000,0,0,100,0), -- 17:10:04
+(@PATH,46,-5147.015,630.6146,36.24972,0,0,0,0,100,0), -- 17:10:12
+(@PATH,47,-5146.276,631.5181,36.09008,0,0,0,0,100,0), -- 17:10:13
+(@PATH,48,-5139.943,643.661,36.66342,0,0,0,0,100,0), -- 17:10:17
+(@PATH,49,-5139.693,645.661,36.91342,0,0,0,0,100,0), -- 17:10:17
+(@PATH,50,-5139.456,647.1063,37.25185,0,0,0,0,100,0), -- 17:10:20
+(@PATH,51,-5139.706,650.6063,37.25185,0,0,0,0,100,0), -- 17:10:20
+(@PATH,52,-5140.206,653.6063,37.75185,0,0,0,0,100,0), -- 17:10:20
+(@PATH,53,-5140.706,657.8563,38.25185,0,0,0,0,100,0), -- 17:10:20
+(@PATH,54,-5148.056,667.8259,41.13531,0,0,0,0,100,0), -- 17:10:26
+(@PATH,55,-5151.806,670.5759,41.38531,0,0,0,0,100,0), -- 17:10:26
+(@PATH,56,-5154.813,670.973,41.23766,0,0,0,0,100,0), -- 17:10:34
+(@PATH,57,-5157.935,667.3557,40.72045,0,0,0,0,100,0), -- 17:10:35
+(@PATH,58,-5157.935,664.1057,40.22045,0,0,0,0,100,0), -- 17:10:35
+(@PATH,59,-5157.935,660.6057,39.72045,0,0,0,0,100,0), -- 17:10:35
+(@PATH,60,-5158.109,661.8198,39.61253,0,0,0,0,100,0), -- 17:10:40
+(@PATH,61,-5158.109,661.8198,39.61253,4.732054,13000,0,0,100,0), -- 17:10:40
+(@PATH,62,-5158.071,660.382,39.43446,0,0,0,0,100,0), -- 17:10:47
+(@PATH,63,-5161.05,651.4003,37.68608,0,0,0,0,100,0), -- 17:10:48
+(@PATH,64,-5164.23,648.3284,37.75933,0,0,0,0,100,0), -- 17:10:51
+(@PATH,65,-5164.98,647.5784,37.75933,0,0,0,0,100,0), -- 17:10:51
+(@PATH,66,-5167.73,645.3284,37.75933,0,0,0,0,100,0), -- 17:10:51
+(@PATH,67,-5170.907,644.0687,38.51237,0,0,0,0,100,0), -- 17:10:54
+(@PATH,68,-5172.157,643.5687,38.76237,0,0,0,0,100,0), -- 17:10:54
+(@PATH,69,-5173.657,642.8187,39.01237,0,0,0,0,100,0), -- 17:10:54
+(@PATH,70,-5186.038,637.9409,41.76183,0,0,0,0,100,0), -- 17:10:58
+(@PATH,71,-5189.85,636.6265,42.57893,0,0,0,0,100,0), -- 17:11:03
+(@PATH,72,-5191.35,636.3765,42.82893,0,0,0,0,100,0), -- 17:11:03
+(@PATH,73,-5197.35,634.8765,44.32893,0,0,0,0,100,0), -- 17:11:03
+(@PATH,74,-5202.985,634.672,45.20214,0,0,0,0,100,0), -- 17:11:07
+(@PATH,75,-5206.235,634.672,45.45214,0,0,0,0,100,0), -- 17:11:07
+(@PATH,76,-5209.681,634.6359,46.49954,0,0,0,0,100,0), -- 17:11:12
+(@PATH,77,-5225.227,631.6835,48.47477,0,0,0,0,100,0), -- 17:11:16
+(@PATH,78,-5226.727,630.4335,48.72477,0,0,0,0,100,0), -- 17:11:16
+(@PATH,79,-5228.477,629.1835,48.97477,0,0,0,0,100,0), -- 17:11:16
+(@PATH,80,-5229.123,628.397,49.13941,0,0,0,0,100,0), -- 17:11:21
+(@PATH,81,-5212.127,622.4219,47.1857,0,0,0,0,100,0), -- 17:11:26
+(@PATH,82,-5206.309,621.397,46.11539,0,0,0,0,100,0), -- 17:11:29
+(@PATH,83,-5200.812,620.8071,45.10049,0,0,0,0,100,0), -- 17:11:34
+(@PATH,84,-5200.812,620.8071,45.10049,6.201494,13000,0,0,100,0), -- 17:11:34
+(@PATH,85,-5196.44,620.4492,44.38279,0,0,0,0,100,0), -- 17:11:42
+(@PATH,86,-5186.816,619.8555,42.8981,0,0,0,0,100,0), -- 17:11:43
+(@PATH,87,-5183.516,619.1785,41.63834,0,0,0,0,100,0), -- 17:11:46
+(@PATH,88,-5180.766,618.4285,40.88834,0,0,0,0,100,0), -- 17:11:46
+(@PATH,89,-5177.516,617.9285,39.88834,0,0,0,0,100,0), -- 17:11:46
+(@PATH,90,-5163.909,617.6057,37.10681,0,0,0,0,100,0), -- 17:11:53
+(@PATH,91,-5157.449,621.0334,36.26365,0,0,0,0,100,0), -- 17:11:57
+(@PATH,92,-5155.699,622.2834,36.26365,0,0,0,0,100,0), -- 17:11:57
+(@PATH,93,-5154.149,623.4669,36.08303,0,0,0,0,100,0), -- 17:12:00
+(@PATH,94,-5152.149,625.7169,36.08303,0,0,0,0,100,0), -- 17:12:00
+(@PATH,95,-5146.899,630.7169,36.08303,0,0,0,0,100,0), -- 17:12:00
+(@PATH,96,-5146.199,631.3462,36.08583,0,0,0,0,100,0), -- 17:12:05
+(@PATH,97,-5139.907,643.7687,36.67455,0,0,0,0,100,0), -- 17:12:08
+(@PATH,98,-5139.657,645.5187,36.92455,0,0,0,0,100,0), -- 17:12:08
+(@PATH,99,-5139.875,650.5488,37.28083,0,0,0,0,100,0), -- 17:12:12
+(@PATH,100,-5140.125,653.5488,37.78083,0,0,0,0,100,0), -- 17:12:12
+(@PATH,101,-5140.625,657.7988,38.28083,0,0,0,0,100,0), -- 17:12:12
+(@PATH,102,-5148.108,667.7523,40.98037,0,0,0,0,100,0), -- 17:12:18
+(@PATH,103,-5151.608,670.7523,41.48037,0,0,0,0,100,0), -- 17:12:18
+(@PATH,104,-5141.205,661.6332,38.87123,0,0,0,0,100,0), -- 17:12:19
+(@PATH,105,-5141.205,661.6332,38.87123,1.692706,13000,0,0,100,0), -- 17:12:19
+(@PATH,106,-5151.783,670.6835,41.29935,0,0,0,0,100,0), -- 17:12:27
+(@PATH,107,-5154.538,671.0463,41.41257,0,0,0,0,100,0), -- 17:12:31
+(@PATH,108,-5157.866,664.149,40.19033,0,0,0,0,100,0), -- 17:12:34
+(@PATH,109,-5157.866,660.649,39.69033,0,0,0,0,100,0), -- 17:12:34
+(@PATH,110,-5159.319,655.634,38.41046,0,0,0,0,100,0), -- 17:12:39
+(@PATH,111,-5161.069,651.384,37.91046,0,0,0,0,100,0), -- 17:12:39
+(@PATH,112,-5164.453,648.3511,37.68428,0,0,0,0,100,0), -- 17:12:42
+(@PATH,113,-5164.953,647.6011,37.68428,0,0,0,0,100,0), -- 17:12:42
+(@PATH,114,-5167.703,645.3511,37.93428,0,0,0,0,100,0), -- 17:12:42
+(@PATH,115,-5171.067,643.7227,38.57786,0,0,0,0,100,0), -- 17:12:46
+(@PATH,116,-5172.317,643.4727,38.57786,0,0,0,0,100,0), -- 17:12:46
+(@PATH,117,-5173.567,642.9727,39.07786,0,0,0,0,100,0), -- 17:12:46
+(@PATH,118,-5186.047,637.7537,41.88425,0,0,0,0,100,0), -- 17:12:50
+(@PATH,119,-5177.467,641.3476,39.69143,0,0,0,0,100,0), -- 17:12:51
+(@PATH,120,-5177.467,641.3476,39.69143,3.542526,13000,0,0,100,0), -- 17:12:51
+(@PATH,121,-5186.172,637.7469,41.72967,0,0,0,0,100,0), -- 17:12:58
+(@PATH,122,-5189.829,636.4236,42.40816,0,0,0,0,100,0), -- 17:13:02
+(@PATH,123,-5191.579,636.1736,42.90816,0,0,0,0,100,0), -- 17:13:02
+(@PATH,124,-5197.329,634.9236,44.40816,0,0,0,0,100,0), -- 17:13:02
+(@PATH,125,-5203.01,634.6678,45.16574,0,0,0,0,100,0), -- 17:13:05
+(@PATH,126,-5206.01,634.6678,45.41574,0,0,0,0,100,0), -- 17:13:05
+(@PATH,127,-5209.636,634.6382,46.55074,0,0,0,0,100,0), -- 17:13:10
+(@PATH,128,-5225.139,631.7184,48.56197,0,0,0,0,100,0), -- 17:13:15
+(@PATH,129,-5226.889,630.4684,48.56197,0,0,0,0,100,0), -- 17:13:15
+(@PATH,130,-5228.389,629.2184,48.81197,0,0,0,0,100,0), -- 17:13:15
+(@PATH,131,-5229.226,628.3779,48.93416,0,0,0,0,100,0), -- 17:13:20
+(@PATH,132,-5212.188,622.4875,47.14201,0,0,0,0,100,0), -- 17:13:25
+(@PATH,133,-5206.112,621.292,46.29193,0,0,0,0,100,0), -- 17:13:28
+(@PATH,134,-5186.827,619.9382,42.81411,0,0,0,0,100,0), -- 17:13:33
+(@PATH,135,-5193.917,620.2497,43.88791,0,0,0,0,100,0), -- 17:13:36
+(@PATH,136,-5193.917,620.2497,43.88791,6.204306,13000,0,0,100,0), -- 17:13:36
+(@PATH,137,-5186.842,619.9473,42.7837,0,0,0,0,100,0), -- 17:13:43
+(@PATH,138,-5183.527,619.1399,41.53972,0,0,0,0,100,0), -- 17:13:46
+(@PATH,139,-5180.777,618.3899,40.78972,0,0,0,0,100,0), -- 17:13:46
+(@PATH,140,-5177.527,617.8899,40.03972,0,0,0,0,100,0), -- 17:13:46
+(@PATH,141,-5163.918,617.7509,36.96921,0,0,0,0,100,0), -- 17:13:51
+(@PATH,142,-5158.669,620.3835,36.38764,0,0,0,0,100,0), -- 17:13:55
+(@PATH,143,-5157.419,621.1335,36.38764,0,0,0,0,100,0), -- 17:13:55
+(@PATH,144,-5155.669,622.3835,36.38764,0,0,0,0,100,0), -- 17:13:55
+(@PATH,145,-5151.717,625.7791,36.29499,0,0,0,0,100,0), -- 17:13:59
+(@PATH,146,-5146.967,630.5291,36.04499,0,0,0,0,100,0), -- 17:13:59
+(@PATH,147,-5146.07,631.4751,36.08121,0,0,0,0,100,0), -- 17:14:04
+(@PATH,148,-5140.069,643.69,36.68766,0,0,0,0,100,0), -- 17:14:07
+(@PATH,149,-5139.569,645.69,36.93766,0,0,0,0,100,0), -- 17:14:07
+(@PATH,150,-5139.775,650.586,37.32704,0,0,0,0,100,0), -- 17:14:11
+(@PATH,151,-5140.275,653.586,37.82704,0,0,0,0,100,0), -- 17:14:11
+(@PATH,152,-5140.525,657.836,38.07704,0,0,0,0,100,0), -- 17:14:11
+(@PATH,153,-5139.893,650.9125,36.97102,0,0,0,0,100,0), -- 17:14:13
+(@PATH,154,-5139.893,650.9125,36.97102,1.692638,13000,0,0,100,0), -- 17:14:13
+(@PATH,155,-5140.585,657.8174,38.23678,0,0,0,0,100,0), -- 17:14:21
+(@PATH,156,-5147.919,667.7463,41.09047,0,0,0,0,100,0), -- 17:14:24
+(@PATH,157,-5151.669,670.7463,41.34047,0,0,0,0,100,0), -- 17:14:24
+(@PATH,158,-5154.635,670.886,41.44817,0,0,0,0,100,0), -- 17:14:30
+(@PATH,159,-5157.795,664.1933,40.14152,0,0,0,0,100,0), -- 17:14:33
+(@PATH,160,-5157.795,660.6933,39.89152,0,0,0,0,100,0), -- 17:14:33
+(@PATH,161,-5161.06,651.3977,37.80369,0,0,0,0,100,0), -- 17:14:38
+(@PATH,162,-5164.019,648.2813,37.58054,0,0,0,0,100,0), -- 17:14:40
+(@PATH,163,-5165.019,647.5313,37.58054,0,0,0,0,100,0), -- 17:14:40
+(@PATH,164,-5167.769,645.2813,37.83054,0,0,0,0,100,0), -- 17:14:40
+(@PATH,165,-5171.026,643.8893,38.4648,0,0,0,0,100,0), -- 17:14:44
+(@PATH,166,-5172.276,643.3893,38.7148,0,0,0,0,100,0), -- 17:14:44
+(@PATH,167,-5173.776,642.8893,38.9648,0,0,0,0,100,0), -- 17:14:44
+(@PATH,168,-5185.981,637.8439,41.74332,0,0,0,0,100,0), -- 17:14:49
+(@PATH,169,-5189.904,636.5654,42.50515,0,0,0,0,100,0), -- 17:14:52
+(@PATH,170,-5191.154,636.3154,42.75515,0,0,0,0,100,0), -- 17:14:52
+(@PATH,171,-5197.154,634.8154,44.50515,0,0,0,0,100,0), -- 17:14:52
+(@PATH,172,-5186.579,637.4847,41.6531,0,0,0,0,100,0), -- 17:14:54
+(@PATH,173,-5186.579,637.4847,41.6531,3.542525,13000,0,0,100,0), -- 17:14:54
+(@PATH,174,-5197.299,634.7244,44.4835,0,0,0,0,100,0), -- 17:15:01
+(@PATH,175,-5203.041,634.7999,45.31844,0,0,0,0,100,0), -- 17:15:04
+(@PATH,176,-5206.041,634.7999,45.56844,0,0,0,0,100,0), -- 17:15:04
+(@PATH,177,-5209.731,634.6368,46.40524,0,0,0,0,100,0), -- 17:15:09
+(@PATH,178,-5225.014,631.6444,48.62695,0,0,0,0,100,0), -- 17:15:13
+(@PATH,179,-5226.764,630.3944,48.62695,0,0,0,0,100,0), -- 17:15:13
+(@PATH,180,-5228.514,629.1444,48.87695,0,0,0,0,100,0), -- 17:15:13
+(@PATH,181,-5229.223,628.2013,49.11297,0,0,0,0,100,0), -- 17:15:18
+(@PATH,182,-5212.107,622.3733,47.2334,0,0,0,0,100,0), -- 17:15:23
+(@PATH,183,-5210.747,621.8912,46.56211,0,0,0,0,100,0), -- 17:15:28
+(@PATH,184,-5210.747,621.8912,46.56211,6.052472,13000,0,0,100,0), -- 17:15:28
+(@PATH,185,-5208.978,621.4757,46.32497,0,0,0,0,100,0), -- 17:15:35
+(@PATH,186,-5206.209,621.2124,46.10388,0,0,0,0,100,0), -- 17:15:36
+(@PATH,187,-5186.642,619.9025,42.74264,0,0,0,0,100,0), -- 17:15:40
+(@PATH,188,-5183.583,619.2233,41.50294,0,0,0,0,100,0), -- 17:15:43
+(@PATH,189,-5180.833,618.4733,41.00294,0,0,0,0,100,0), -- 17:15:43
+(@PATH,190,-5177.333,617.9733,40.00294,0,0,0,0,100,0), -- 17:15:43
+(@PATH,191,-5164.016,617.6649,37.10645,0,0,0,0,100,0), -- 17:15:51
+(@PATH,192,-5157.269,621.1954,36.32607,0,0,0,0,100,0), -- 17:15:54
+(@PATH,193,-5155.769,622.1954,36.32607,0,0,0,0,100,0), -- 17:15:54
+(@PATH,194,-5151.916,625.7462,36.27628,0,0,0,0,100,0), -- 17:15:58
+(@PATH,195,-5146.916,630.4962,36.02628,0,0,0,0,100,0), -- 17:15:58
+(@PATH,196,-5146.043,631.5037,36.0778,0,0,0,0,100,0), -- 17:16:03
+(@PATH,197,-5143.677,634.6373,36.08821,0,0,0,0,100,0), -- 17:16:05
+(@PATH,198,-5143.677,634.6373,36.08821,0.8953364,13000,0,0,100,0); -- 17:16:05
+-- 0x1C09FC424016BE4000001900001FD78F .go -5141.078 637.8817 36.18917
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=143600;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES
+(143600, 143600, 0, 0, 1),
+(143600, 52344, 2, 0, 2);
+
+-- Pathing for Mine Car Entry: 23289 'TDB FORMAT'
+SET @NPC := 143600;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5158.637,`position_y`=727.454,`position_z`=45.57201 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,-5158.637,727.454,45.57201,0,0,0,0,100,0), -- 17:09:07
+(@PATH,2,-5155.599,718.3636,44.29898,0,0,0,0,100,0), -- 17:09:09
+(@PATH,3,-5154.974,714.7401,43.48943,0,0,0,0,100,0), -- 17:09:11
+(@PATH,4,-5155.224,712.9901,43.48943,0,0,0,0,100,0), -- 17:09:11
+(@PATH,5,-5155.724,705.7401,43.23943,0,0,0,0,100,0), -- 17:09:11
+(@PATH,6,-5155.974,700.4901,42.98943,0,0,0,0,100,0), -- 17:09:11
+(@PATH,7,-5155.34,696.4957,42.45358,0,0,0,0,100,0), -- 17:09:18
+(@PATH,8,-5154.84,693.2457,42.20358,0,0,0,0,100,0), -- 17:09:18
+(@PATH,9,-5157.657,679.5804,41.46281,0,0,0,0,100,0), -- 17:09:23
+(@PATH,10,-5156.473,678.8619,41.37924,0,0,0,0,100,0), -- 17:09:27
+(@PATH,11,-5153.473,678.8619,41.62924,0,0,0,0,100,0), -- 17:09:27
+(@PATH,12,-5149.723,678.6119,41.37924,0,0,0,0,100,0), -- 17:09:27
+(@PATH,13,-5146.723,678.6119,41.62924,0,0,0,0,100,0), -- 17:09:27
+(@PATH,14,-5142.223,678.3619,41.37924,0,0,0,0,100,0), -- 17:09:27
+(@PATH,15,-5139.723,678.3619,41.37924,0,0,0,0,100,0), -- 17:09:27
+(@PATH,16,-5129.718,680.8803,40.1742,0,0,0,0,100,0), -- 17:09:38
+(@PATH,17,-5123.968,688.6303,39.4242,0,0,0,0,100,0), -- 17:09:38
+(@PATH,18,-5122.718,690.3803,39.4242,0,0,0,0,100,0), -- 17:09:38
+(@PATH,19,-5123.011,691.2361,39.35996,0,0,0,0,100,0), -- 17:09:45
+(@PATH,20,-5124.511,690.9861,39.60996,0,0,0,0,100,0), -- 17:09:45
+(@PATH,21,-5127.261,690.4861,40.35996,0,0,0,0,100,0), -- 17:09:45
+(@PATH,22,-5129.767,692.5929,40.48572,2.039433,13000,0,0,100,0), -- 17:09:50
+(@PATH,23,-5132.671,699.1042,41.48306,0,0,0,0,100,0), -- 17:09:57
+(@PATH,24,-5134.28,703.5355,41.8651,0,0,0,0,100,0), -- 17:10:00
+(@PATH,25,-5134.28,705.0355,42.1151,0,0,0,0,100,0), -- 17:10:00
+(@PATH,26,-5135.78,711.5355,42.6151,0,0,0,0,100,0), -- 17:10:00
+(@PATH,27,-5136.954,718.392,44.09182,0,0,0,0,100,0), -- 17:10:04
+(@PATH,28,-5140.083,725.0063,45.31725,0,0,0,0,100,0), -- 17:10:08
+(@PATH,29,-5146.963,732.4551,46.1476,0,0,0,0,100,0), -- 17:10:12
+(@PATH,30,-5151.213,736.2051,46.3976,0,0,0,0,100,0), -- 17:10:12
+(@PATH,31,-5156.23,735.8439,46.26311,0,0,0,0,100,0), -- 17:10:17
+(@PATH,32,-5159.73,735.3439,46.26311,0,0,0,0,100,0), -- 17:10:17
+(@PATH,33,-5161.024,735.1243,46.05744,3.305536,13000,0,0,100,0), -- 17:10:21
+(@PATH,34,-5162.643,734.8564,46.45791,0,0,0,0,100,0), -- 17:10:29
+(@PATH,35,-5158.645,727.4257,45.9726,0,0,0,0,100,0), -- 17:10:30
+(@PATH,36,-5157.451,725.0515,45.61901,0,0,0,0,100,0), -- 17:10:32
+(@PATH,37,-5156.701,722.0515,44.86901,0,0,0,0,100,0), -- 17:10:32
+(@PATH,38,-5155.451,718.5515,44.36901,0,0,0,0,100,0), -- 17:10:32
+(@PATH,39,-5155.159,714.8245,43.45316,0,0,0,0,100,0), -- 17:10:36
+(@PATH,40,-5155.159,712.8245,43.45316,0,0,0,0,100,0), -- 17:10:36
+(@PATH,41,-5155.659,705.8245,43.20316,0,0,0,0,100,0), -- 17:10:36
+(@PATH,42,-5156.159,700.5745,43.20316,0,0,0,0,100,0), -- 17:10:36
+(@PATH,43,-5155.351,696.5886,42.4476,0,0,0,0,100,0), -- 17:10:43
+(@PATH,44,-5154.851,693.3386,42.1976,0,0,0,0,100,0), -- 17:10:43
+(@PATH,45,-5157.878,679.6798,41.45091,0,0,0,0,100,0), -- 17:10:48
+(@PATH,46,-5156.542,678.974,41.3766,0,0,0,0,100,0), -- 17:10:52
+(@PATH,47,-5153.542,678.724,41.6266,0,0,0,0,100,0), -- 17:10:52
+(@PATH,48,-5150.326,678.3993,41.2695,6.244667,13000,0,0,100,0), -- 17:10:57
+(@PATH,49,-5139.679,678.0468,41.18186,0,0,0,0,100,0), -- 17:11:04
+(@PATH,50,-5129.634,680.8771,40.41336,0,0,0,0,100,0), -- 17:11:10
+(@PATH,51,-5124.134,688.6271,39.66336,0,0,0,0,100,0), -- 17:11:10
+(@PATH,52,-5122.634,690.3771,39.41336,0,0,0,0,100,0), -- 17:11:10
+(@PATH,53,-5123.205,691.313,39.34991,0,0,0,0,100,0), -- 17:11:17
+(@PATH,54,-5124.455,691.063,39.59991,0,0,0,0,100,0), -- 17:11:17
+(@PATH,55,-5127.455,690.563,40.34991,0,0,0,0,100,0), -- 17:11:17
+(@PATH,56,-5132.663,698.9817,41.54927,0,0,0,0,100,0), -- 17:11:20
+(@PATH,57,-5134.165,703.3019,41.89793,0,0,0,0,100,0), -- 17:11:25
+(@PATH,58,-5134.415,705.0519,42.14793,0,0,0,0,100,0), -- 17:11:25
+(@PATH,59,-5135.665,711.5519,42.64793,0,0,0,0,100,0), -- 17:11:25
+(@PATH,60,-5137.015,718.4344,44.11918,0,0,0,0,100,0), -- 17:11:29
+(@PATH,61,-5140.138,725.0566,45.36108,0,0,0,0,100,0), -- 17:11:33
+(@PATH,62,-5146.898,732.4678,46.15642,0,0,0,0,100,0), -- 17:11:37
+(@PATH,63,-5151.148,736.2178,46.40642,0,0,0,0,100,0), -- 17:11:37
+(@PATH,64,-5156.207,735.7999,46.2761,0,0,0,0,100,0), -- 17:11:42
+(@PATH,65,-5159.707,735.2999,46.2761,0,0,0,0,100,0), -- 17:11:42
+(@PATH,66,-5161.614,733.5115,46.41948,0,0,0,0,100,0), -- 17:11:45
+(@PATH,67,-5159.614,729.7615,45.91948,0,0,0,0,100,0), -- 17:11:45
+(@PATH,68,-5158.364,727.2615,45.66948,0,0,0,0,100,0), -- 17:11:45
+(@PATH,69,-5157.527,724.9576,45.59089,0,0,0,0,100,0), -- 17:11:50
+(@PATH,70,-5156.777,721.9576,44.84089,0,0,0,0,100,0), -- 17:11:50
+(@PATH,71,-5155.527,718.4576,44.34089,0,0,0,0,100,0), -- 17:11:50
+(@PATH,72,-5155.046,714.7384,43.62848,0,0,0,0,100,0), -- 17:11:54
+(@PATH,73,-5155.11,713.8632,43.32977,4.644619,13000,0,0,100,0), -- 17:11:56
+(@PATH,74,-5155.853,700.3505,42.94897,0,0,0,0,100,0), -- 17:12:03
+(@PATH,75,-5155.375,696.4696,42.43354,0,0,0,0,100,0), -- 17:12:08
+(@PATH,76,-5154.875,693.2196,42.18354,0,0,0,0,100,0), -- 17:12:08
+(@PATH,77,-5157.808,679.5703,41.4225,0,0,0,0,100,0), -- 17:12:13
+(@PATH,78,-5156.457,678.8987,41.37038,0,0,0,0,100,0), -- 17:12:17
+(@PATH,79,-5153.457,678.8987,41.62038,0,0,0,0,100,0), -- 17:12:17
+(@PATH,80,-5149.707,678.6487,41.37038,0,0,0,0,100,0), -- 17:12:17
+(@PATH,81,-5146.707,678.3987,41.62038,0,0,0,0,100,0), -- 17:12:17
+(@PATH,82,-5142.207,678.3987,41.37038,0,0,0,0,100,0), -- 17:12:17
+(@PATH,83,-5139.707,678.1487,41.37038,0,0,0,0,100,0), -- 17:12:17
+(@PATH,84,-5129.718,680.8611,40.35927,0,0,0,0,100,0), -- 17:12:28
+(@PATH,85,-5123.968,688.6111,39.60927,0,0,0,0,100,0), -- 17:12:28
+(@PATH,86,-5122.117,691.4048,39.21569,0,0,0,0,100,0), -- 17:12:34
+(@PATH,87,-5124.367,691.1548,39.71569,0,0,0,0,100,0), -- 17:12:34
+(@PATH,88,-5127.367,690.6548,40.21569,0,0,0,0,100,0), -- 17:12:34
+(@PATH,89,-5132.795,699.1715,41.39445,0,0,0,0,100,0), -- 17:12:37
+(@PATH,90,-5133.877,703.4885,42.01696,0,0,0,0,100,0), -- 17:12:41
+(@PATH,91,-5134.377,704.7385,42.01696,0,0,0,0,100,0), -- 17:12:41
+(@PATH,92,-5135.627,711.4885,42.76696,0,0,0,0,100,0), -- 17:12:41
+(@PATH,93,-5136.911,716.5974,43.53514,1.753501,13000,0,0,100,0), -- 17:12:50
+(@PATH,94,-5137.376,718.6188,44.1994,0,0,0,0,100,0), -- 17:12:57
+(@PATH,95,-5139.936,725.0667,45.3965,0,0,0,0,100,0), -- 17:12:58
+(@PATH,96,-5145.418,730.9333,45.83433,0,0,0,0,100,0), -- 17:13:01
+(@PATH,97,-5146.918,732.4333,46.08433,0,0,0,0,100,0), -- 17:13:01
+(@PATH,98,-5151.168,736.1833,46.33433,0,0,0,0,100,0), -- 17:13:01
+(@PATH,99,-5156.112,735.9399,46.28493,0,0,0,0,100,0), -- 17:13:06
+(@PATH,100,-5159.612,735.1899,46.28493,0,0,0,0,100,0), -- 17:13:06
+(@PATH,101,-5161.833,733.4753,46.65749,0,0,0,0,100,0), -- 17:13:10
+(@PATH,102,-5159.583,729.7253,45.90749,0,0,0,0,100,0), -- 17:13:10
+(@PATH,103,-5158.583,727.2253,45.65749,0,0,0,0,100,0), -- 17:13:10
+(@PATH,104,-5161.203,732.0187,46.14994,5.182036,13000,0,0,100,0); -- 17:13:31
+-- 0x1C09FC424016BE4000001900009FD78F .go -5158.637 727.454 45.57201
+
+-- Pathing for Nethermine Burster Entry: 23285 'TDB FORMAT'
+SET @NPC := 52061;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5041.84,`position_y`=389.8085,`position_z`=-12.50461 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,-5041.84,389.8085,-12.50461,0,0,0,0,100,0), -- 18:10:14
+(@PATH,2,-5030.222,418.1729,-10.5541,0,0,0,0,100,0), -- 18:10:30
+(@PATH,3,-5025.323,437.285,-9.860763,0,0,0,0,100,0), -- 18:10:42
+(@PATH,4,-5018.703,470.1522,-7.756811,0,0,0,0,100,0), -- 18:10:53
+(@PATH,5,-5001.123,509.9958,-5.460767,0,0,0,0,100,0), -- 18:11:05
+(@PATH,6,-4988.681,532.6278,-6.128869,0,0,0,0,100,0), -- 18:11:20
+(@PATH,7,-5005.017,551.2161,-4.296617,0,0,0,0,100,0), -- 18:11:31
+(@PATH,8,-4989.901,535.1989,-5.819852,0,0,0,0,100,0), -- 18:11:45
+(@PATH,9,-4997.614,515.9099,-5.108593,0,0,0,0,100,0), -- 18:11:55
+(@PATH,10,-5015.447,481.5337,-7.364,0,0,0,0,100,0), -- 18:12:06
+(@PATH,11,-5022.034,451.5206,-8.870285,0,0,0,0,100,0), -- 18:12:21
+(@PATH,12,-5027.991,425.6957,-10.12456,0,0,0,0,100,0); -- 18:12:33
+-- 0x1C09FC424016BD4000001A000024139A .go -5041.84 389.8085 -12.50461
+
+-- Pathing for Nethermine Burster Entry: 23285 'TDB FORMAT'
+SET @NPC := 52086;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5145.625,`position_y`=491.5528,`position_z`=-13.89787 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,-5145.625,491.5528,-13.89787,0,0,0,0,100,0), -- 18:23:20
+(@PATH,2,-5132.041,468.5541,-13.29704,0,0,0,0,100,0), -- 18:23:25
+(@PATH,3,-5110.197,448.1371,-10.01901,0,0,0,0,100,0), -- 18:23:38
+(@PATH,4,-5126.933,460.5002,-11.57316,0,0,0,0,100,0), -- 18:23:49
+(@PATH,5,-5145.124,490.6877,-13.89787,0,0,0,0,100,0); -- 18:25:03
+-- 0x1C09FC424016BD4000001A00002414A1 .go -5145.625 491.5528 -13.89787
+
+-- Pathing for Nethermine Burster Entry: 23285 'TDB FORMAT'
+SET @NPC := 52084;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5012.641,`position_y`=527.0723,`position_z`=-4.429356 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,-5012.641,527.0723,-4.429356,0,0,0,0,100,0), -- 17:53:03
+(@PATH,2,-5013.526,533.334,-4.454225,0,0,0,0,100,0), -- 17:53:03
+(@PATH,3,-5016.438,541.4922,-4.275333,0,0,0,0,100,0), -- 17:53:03
+(@PATH,4,-5017.101,543.3494,-4.186446,0,0,0,0,100,0), -- 17:53:03
+(@PATH,5,-5019.346,549.6407,-3.932599,0,0,0,0,100,0), -- 17:53:03
+(@PATH,6,-5019.346,549.6407,-3.932599,0,0,0,0,100,0), -- 17:53:03
+(@PATH,7,-5013.449,533.623,-4.201852,0,0,0,0,100,0), -- 17:53:08
+(@PATH,8,-5013.044,507.5332,-5.770618,0,0,0,0,100,0), -- 17:53:15
+(@PATH,9,-5013.313,503.3087,-6.890712,0,0,0,0,100,0), -- 17:53:38
+(@PATH,10,-5013.553,499.3347,-7.32141,0,0,0,0,100,0), -- 17:55:36
+(@PATH,11,-5013.988,492.2674,-7.856032,0,0,0,0,100,0), -- 17:55:36
+(@PATH,12,-5014.288,487.3993,-7.717823,0,0,0,0,100,0), -- 17:55:36
+(@PATH,13,-5014.653,481.4716,-7.740697,0,0,0,0,100,0), -- 17:55:36
+(@PATH,14,-5014.934,476.9202,-7.658531,0,0,0,0,100,0); -- 17:55:36
+-- 0x1C09FC424016BD4000001A000024163A .go -5012.641 527.0723 -4.429356
+
+-- Pathing for Nethermine Burster Entry: 23285 'TDB FORMAT'
+SET @NPC := 52054;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5097.479,`position_y`=383.4904,`position_z`=-13.35386 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,-5097.479,383.4904,-13.35386,0,0,0,0,100,0), -- 18:09:28
+(@PATH,2,-5105.978,382.3359,-12.87995,0,0,0,0,100,0), -- 18:09:33
+(@PATH,3,-5140.72,361.3568,-18.36172,0,0,0,0,100,0), -- 18:09:39
+(@PATH,4,-5153.877,344.0262,-19.23454,0,0,0,0,100,0), -- 18:09:54
+(@PATH,5,-5146.007,355.4137,-18.91095,0,0,0,0,100,0), -- 18:12:22
+(@PATH,6,-5145.439,356.2371,-18.91095,0,0,0,0,100,0), -- 18:12:22
+(@PATH,7,-5144.646,357.3877,-18.79898,0,0,0,0,100,0), -- 18:12:22
+(@PATH,8,-5143.475,359.0869,-18.80667,0,0,0,0,100,0), -- 18:12:22
+(@PATH,9,-5141.084,360.9994,-18.86554,0,0,0,0,100,0), -- 18:12:22
+(@PATH,10,-5138.581,363.001,-18.69712,0,0,0,0,100,0), -- 18:12:22
+(@PATH,11,-5134.565,366.2131,-17.01051,0,0,0,0,100,0), -- 18:12:22
+(@PATH,12,-5131.742,368.4709,-16.21124,0,0,0,0,100,0), -- 18:12:22
+(@PATH,13,-5130.425,369.5245,-15.74924,0,0,0,0,100,0), -- 18:12:22
+(@PATH,14,-5127.633,371.7576,-15.0621,0,0,0,0,100,0), -- 18:12:22
+(@PATH,15,-5124.102,374.582,-14.24547,0,0,0,0,100,0), -- 18:12:22
+(@PATH,16,-5117.077,380.2002,-12.9527,0,0,0,0,100,0); -- 18:12:22
+-- 0x1C09FC424016BD4000001A0000241848 .go -5097.479 383.4904 -13.35386
+
+-- Pathing for Nethermine Burster Entry: 23285 'TDB FORMAT'
+SET @NPC := 52083;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5142.954,`position_y`=424.2722,`position_z`=-10.0708 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,-5142.954,424.2722,-10.0708,0,0,0,0,100,0), -- 18:09:46
+(@PATH,2,-5166.739,417.5524,-10.24546,0,0,0,0,100,0), -- 18:09:57
+(@PATH,3,-5174.002,422.4801,-10.30893,0,0,0,0,100,0), -- 18:10:04
+(@PATH,4,-5170.584,419.3948,-10.41781,0,0,0,0,100,0), -- 18:12:22
+(@PATH,5,-5169.813,418.7582,-10.41781,0,0,0,0,100,0), -- 18:12:22
+(@PATH,6,-5168.172,417.4039,-10.38332,0,0,0,0,100,0), -- 18:12:22
+(@PATH,7,-5167.688,417.0048,-10.36478,0,0,0,0,100,0), -- 18:12:22
+(@PATH,8,-5159.976,420.4402,-10.22841,0,0,0,0,100,0), -- 18:12:22
+(@PATH,9,-5157.938,421.3475,-10.24158,0,0,0,0,100,0), -- 18:12:22
+(@PATH,10,-5154.572,422.8471,-10.04827,0,0,0,0,100,0), -- 18:12:22
+(@PATH,11,-5151.838,424.0645,-10.09287,0,0,0,0,100,0), -- 18:12:22
+(@PATH,12,-5123.059,424.4661,-11.98086,3.589592,6000,0,0,100,0); -- 18:12:39
+-- 0x1C09FC424016BD4000001A0000241877 .go -5142.954 424.2722 -10.0708
+
+-- Pathing for Nethermine Burster Entry: 23285 'TDB FORMAT'
+SET @NPC := 52086;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5100.122,`position_y`=472.3237,`position_z`=-8.886364 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,-5100.122,472.3237,-8.886364,0,0,0,0,100,0), -- 18:10:53
+(@PATH,2,-5117.763,467.3499,-11.16238,0,0,0,0,100,0), -- 18:11:04
+(@PATH,3,-5131.067,444.1735,-10.89796,0,0,0,0,100,0), -- 18:11:35
+(@PATH,4,-5132.473,440.0923,-10.73675,0,0,0,0,100,0), -- 18:11:35
+(@PATH,5,-5130.348,437.1649,-10.71613,0,0,0,0,100,0), -- 18:11:35
+(@PATH,6,-5127.024,432.5856,-11.19165,0,0,0,0,100,0), -- 18:11:35
+(@PATH,7,-5118.549,420.9109,-12.51914,0,0,0,0,100,0), -- 18:11:35
+(@PATH,8,-5088.664,403.9553,-12.69664,0,0,0,0,100,0), -- 18:11:36
+(@PATH,9,-5070.439,406.9981,-11.93173,0,0,0,0,100,0), -- 18:11:49
+(@PATH,10,-5062.364,426.8455,-11.17576,0,0,0,0,100,0), -- 18:11:58
+(@PATH,11,-5063.076,458.8389,-11.47571,0,0,0,0,100,0), -- 18:12:09
+(@PATH,12,-5067.343,465.1718,-10.02644,0,0,0,0,100,0), -- 18:12:18
+(@PATH,13,-5100.08,472.3515,-8.843109,0,0,0,0,100,0); -- 18:12:26
+-- 0x1C09FC424016BD4000001A00002418CF .go -5100.122 472.3237 -8.886364
+
+-- Pathing for Nethermine Burster Entry: 23285 'TDB FORMAT'
+SET @NPC := 52085;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5082.33,`position_y`=474.2946,`position_z`=-7.784039 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,-5082.33,474.2946,-7.784039,0,0,0,0,100,0), -- 18:09:27
+(@PATH,2,-5091.409,496.4387,-10.14975,0,0,0,0,100,0), -- 18:09:40
+(@PATH,3,-5094.309,513.0909,-11.32626,0,0,0,0,100,0), -- 18:09:50
+(@PATH,4,-5105.632,522.7634,-10.2628,0,0,0,0,100,0), -- 18:09:56
+(@PATH,5,-5107.463,534.7469,-10.20918,0,0,0,0,100,0), -- 18:10:04
+(@PATH,6,-5108.773,528.9429,-10.17007,0,0,0,0,100,0), -- 18:10:10
+(@PATH,7,-5103.452,521.2954,-10.52877,0,0,0,0,100,0), -- 18:10:12
+(@PATH,8,-5093.061,503.7095,-11.10897,0,0,0,0,100,0); -- 18:10:21
+-- 0x1C09FC424016BD4000001A0000241940 .go -5082.33 474.2946 -7.784039
+
+-- Pathing for Nethermine Burster Entry: 23285 'TDB FORMAT'
+SET @NPC := 52061;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5015.721,`position_y`=393.4803,`position_z`=-13.56352 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,-5015.721,393.4803,-13.56352,0,0,0,0,100,0), -- 17:55:20
+(@PATH,2,-5014.953,396.891,-13.21174,0,0,0,0,100,0), -- 17:55:20
+(@PATH,3,-5013.08,405.213,-12.17083,0,0,0,0,100,0), -- 17:55:20
+(@PATH,4,-5012.828,406.3322,-11.95596,0,0,0,0,100,0), -- 17:55:20
+(@PATH,5,-5010.532,416.5321,-10.48194,0,0,0,0,100,0), -- 17:55:20
+(@PATH,6,-5008.649,424.8955,-9.222077,0,0,0,0,100,0), -- 17:55:20
+(@PATH,7,-5002.781,442.213,-7.196595,0,0,0,0,100,0), -- 17:55:28
+(@PATH,8,-5001.61,460.2058,-6.495255,0,0,0,0,100,0), -- 17:55:37
+(@PATH,9,-5001.797,445.3661,-6.927022,0,0,0,0,100,0), -- 17:55:47
+(@PATH,10,-5008.122,426.1274,-8.655727,0,0,0,0,100,0), -- 17:55:55
+(@PATH,11,-5014.418,397.9655,-12.76799,0,0,0,0,100,0); -- 17:56:03
+-- 0x1C09FC424016BD4000001A00002419A9 .go -5015.721 393.4803 -13.56352
+
+-- Pathing for Nethermine Burster Entry: 23285 'TDB FORMAT'
+SET @NPC := 52046;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5153.807,`position_y`=343.9828,`position_z`=-19.23604 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,-5153.807,343.9828,-19.23604,0,0,0,0,100,0), -- 18:17:49
+(@PATH,2,-5144.604,357.4449,-18.70733,0,0,0,0,100,0), -- 18:17:59
+(@PATH,3,-5116.975,380.3215,-12.69622,0,0,0,0,100,0), -- 18:18:06
+(@PATH,4,-5102.355,382.6835,-13.05555,0,0,0,0,100,0), -- 18:18:21
+(@PATH,5,-5105.978,382.3359,-12.87995,0,0,0,0,100,0), -- 18:18:30
+(@PATH,6,-5140.741,361.2797,-18.35986,0,0,0,0,100,0); -- 18:18:37
+-- 0x1C09FC424016BD4000001A0000241F37 .go -5153.807 343.9828 -19.23604
+
+-- Pathing for Nethermine Ravager Entry: 23326 'TDB FORMAT'
+SET @NPC := 143827;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-4963.239,`position_y`=605.275,`position_z`=15.15399 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,-4963.239,605.275,15.15399,0,0,1,0,100,0), -- 17:52:17
+(@PATH,2,-4975.903,623.7806,17.61637,0,0,1,0,100,0), -- 17:52:20
+(@PATH,3,-4992.053,634.3859,22.33038,0,0,1,0,100,0), -- 17:52:23
+(@PATH,4,-5011.415,637.7054,23.62663,0,0,1,0,100,0), -- 17:52:26
+(@PATH,5,-4998.898,635.9115,22.77191,0,0,1,0,100,0), -- 17:52:31
+(@PATH,6,-4979.864,627.016,19.21811,0,0,1,0,100,0), -- 17:52:34
+(@PATH,7,-4965.36,609.7169,16.62768,0,0,1,0,100,0), -- 17:52:37
+(@PATH,8,-4958.603,589.0837,12.97569,0,0,1,0,100,0), -- 17:52:40
+(@PATH,9,-4936.146,573.9352,7.7713,0,0,1,0,100,0), -- 17:52:44
+(@PATH,10,-4913.703,588.2379,5.505109,0,0,1,0,100,0), -- 17:52:48
+(@PATH,11,-4930.457,576.1113,6.944055,0,0,1,0,100,0), -- 17:52:53
+(@PATH,12,-4955.026,583.3227,12.02873,0,0,1,0,100,0); -- 17:52:55
+-- 0x1C09FC424016C78000001A0000241948 .go -4963.239 605.275 15.15399
+
+-- Pathing for Nethermine Ravager Entry: 23326 'TDB FORMAT'
+SET @NPC := 143837;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-4926.302,`position_y`=510.8232,`position_z`=5.912571 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,-4926.302,510.8232,5.912571,0,0,1,0,100,0), -- 17:52:59
+(@PATH,2,-4928.601,533.3176,6.820917,0,0,1,0,100,0), -- 17:53:03
+(@PATH,3,-4939.765,552.8948,6.603627,0,0,1,0,100,0), -- 17:53:05
+(@PATH,4,-4955.232,575.6724,11.41519,0,0,1,0,100,0), -- 17:53:09
+(@PATH,5,-4946.245,562.309,8.260891,0,0,1,0,100,0), -- 17:53:14
+(@PATH,6,-4933.914,544.2485,6.190574,0,0,1,0,100,0), -- 17:53:16
+(@PATH,7,-4927.376,523.0281,7.014862,0,0,1,0,100,0), -- 17:53:20
+(@PATH,8,-4926.589,498.706,3.313521,0,0,1,0,100,0), -- 17:53:23
+(@PATH,9,-4907.33,473.4201,1.108172,0,0,1,0,100,0), -- 17:53:27
+(@PATH,10,-4885.657,466.1158,-2.15189,0,0,1,0,100,0), -- 17:53:31
+(@PATH,11,-4898.996,472.0482,0.2873805,0,0,1,0,100,0), -- 17:53:36
+(@PATH,12,-4925.863,491.4807,1.155461,0,0,1,0,100,0); -- 17:53:39
+-- 0x1C09FC424016C78000001A0000241973 .go -4926.302 510.8232 5.912571
+
+-- Pathing for Nethermine Ravager Entry: 23326 'TDB FORMAT'
+SET @NPC := 143848;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5009.851,`position_y`=293.1676,`position_z`=1.581649 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,-5009.851,293.1676,1.581649,0,0,1,0,100,0), -- 17:55:04
+(@PATH,2,-4985.909,303.3185,-1.474064,0,0,1,0,100,0), -- 17:55:10
+(@PATH,3,-4977.48,319.7932,-1.799831,0,0,1,0,100,0), -- 17:55:14
+(@PATH,4,-4965.886,351.0247,-1.16063,0,0,1,0,100,0), -- 17:55:16
+(@PATH,5,-4961.489,388.3174,-1.142369,0,0,1,0,100,0), -- 17:55:21
+(@PATH,6,-4955.736,422.718,3.013297,0,0,1,0,100,0), -- 17:55:25
+(@PATH,7,-4943.146,446.6736,1.949694,0,0,1,0,100,0), -- 17:55:32
+(@PATH,8,-4918.688,445.8087,1.470013,0,0,1,0,100,0), -- 17:55:36
+(@PATH,9,-4907.826,422.7741,-4.288939,0,0,1,0,100,0), -- 17:55:39
+(@PATH,10,-4914.044,443.4701,0.7917011,0,0,1,0,100,0), -- 17:55:45
+(@PATH,11,-4940.444,449.0392,1.663293,0,0,1,0,100,0), -- 17:55:48
+(@PATH,12,-4953.445,428.6053,3.195693,0,0,1,0,100,0), -- 17:55:51
+(@PATH,13,-4959.889,397.1684,-0.2070236,0,0,1,0,100,0), -- 17:55:55
+(@PATH,14,-4965.057,353.1042,-1.062231,0,0,1,0,100,0), -- 17:56:01
+(@PATH,15,-4974.901,325.7972,-1.889486,0,0,1,0,100,0), -- 17:56:06
+(@PATH,16,-4983.667,306.4418,-1.94701,0,0,1,0,100,0); -- 17:56:10
+-- 0x1C09FC424016C78000001A00002419DB .go -5009.851 293.1676 1.581649
+
+-- Pathing for Nethermine Ravager Entry: 23326 'TDB FORMAT'
+SET @NPC := 143840;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-4869.946,`position_y`=530.6263,`position_z`=-1.553467 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,-4869.946,530.6263,-1.553467,0,0,1,0,100,0), -- 18:06:45
+(@PATH,2,-4893.954,534.9226,2.516688,0,0,1,0,100,0), -- 18:06:50
+(@PATH,3,-4909.314,518.1718,4.493078,0,0,1,0,100,0), -- 18:06:54
+(@PATH,4,-4901.04,531.7859,4.01936,0,0,1,0,100,0), -- 18:06:55
+(@PATH,5,-4909.218,518.321,4.623864,0,0,1,0,100,0), -- 18:07:02
+(@PATH,6,-4915.15,493.46,1.49952,0,0,1,0,100,0), -- 18:07:03
+(@PATH,7,-4928.039,454.6728,1.627107,0,0,1,0,100,0), -- 18:07:07
+(@PATH,8,-4947.842,455.957,0.743868,0,0,1,0,100,0), -- 18:07:13
+(@PATH,9,-4970.903,473.2809,3.325165,0,0,1,0,100,0), -- 18:07:16
+(@PATH,10,-4956.071,459.8573,0.461098,0,0,1,0,100,0), -- 18:07:22
+(@PATH,11,-4930.157,454.3083,1.40765,0,0,1,0,100,0), -- 18:07:25
+(@PATH,12,-4917.665,485.7419,0.5451692,0,0,1,0,100,0), -- 18:07:29
+(@PATH,13,-4910.57,514.0978,4.176438,0,0,1,0,100,0), -- 18:07:34
+(@PATH,14,-4898.185,533.2109,3.269632,0,0,1,0,100,0); -- 18:07:39
+-- 0x1C09FC424016C78000001A0000241B47 .go -4869.946 530.6263 -1.553467
+
+-- Pathing for Nethermine Ravager Entry: 23326 'TDB FORMAT'
+SET @NPC := 143843;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-4922.489,`position_y`=300.9247,`position_z`=-12.97113 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,-4922.489,300.9247,-12.97113,0,0,1,0,100,0), -- 18:05:49
+(@PATH,2,-4940.971,300.3912,-8.783532,0,0,1,0,100,0), -- 18:05:52
+(@PATH,3,-4955.332,289.6572,-5.669093,0,0,1,0,100,0), -- 18:05:55
+(@PATH,4,-4966.683,308.9685,-3.354346,0,0,1,0,100,0), -- 18:05:57
+(@PATH,5,-4964.716,331.7885,-2.618268,0,0,1,0,100,0), -- 18:06:01
+(@PATH,6,-4955.161,358.4415,-2.649262,0,0,1,0,100,0), -- 18:06:04
+(@PATH,7,-4951.747,387.423,-2.672494,0,0,1,0,100,0), -- 18:06:08
+(@PATH,8,-4960.425,414.4815,2.96782,0,0,1,0,100,0), -- 18:06:13
+(@PATH,9,-4964.489,436.2759,3.192766,0,0,1,0,100,0), -- 18:06:16
+(@PATH,10,-4961.489,417.7344,3.296109,0,0,1,0,100,0), -- 18:06:22
+(@PATH,11,-4952.684,397.0981,-0.8431122,0,0,1,0,100,0), -- 18:06:25
+(@PATH,12,-4953.893,364.0373,-2.409762,0,0,1,0,100,0), -- 18:06:28
+(@PATH,13,-4962.485,340.8231,-2.176575,0,0,1,0,100,0), -- 18:06:33
+(@PATH,14,-4966.377,318.3596,-2.773224,0,0,1,0,100,0), -- 18:06:37
+(@PATH,15,-4960.039,292.8176,-4.731999,0,0,1,0,100,0), -- 18:13:52
+(@PATH,16,-4942.955,299.4413,-8.193456,0,0,1,0,100,0); -- 18:13:54
+-- 0x1C09FC424016C78000001A0000241B51 .go -4922.489 300.9247 -12.97113
+
+-- Pathing for Nethermine Ravager Entry: 23326 'TDB FORMAT'
+SET @NPC := 143850;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5061.087,`position_y`=118.9844,`position_z`=-16.32363 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,-5061.087,118.9844,-16.32363,0,0,1,0,100,0), -- 18:05:17
+(@PATH,2,-5067.978,134.1589,-14.4941,0,0,1,0,100,0), -- 18:05:24
+(@PATH,3,-5078.728,174.4905,-8.200466,0,0,1,0,100,0), -- 18:05:27
+(@PATH,4,-5070.809,196.4065,-8.396107,0,0,1,0,100,0), -- 18:05:32
+(@PATH,5,-5051.048,203.3381,-10.27266,0,0,1,0,100,0), -- 18:05:36
+(@PATH,6,-5030.57,208.88,-11.94103,0,0,1,0,100,0), -- 18:05:39
+(@PATH,7,-4996.729,232.7692,-7.642292,0,0,1,0,100,0), -- 18:05:43
+(@PATH,8,-4983.488,232.4408,-8.859201,0,0,1,0,100,0), -- 18:05:48
+(@PATH,9,-4990.174,233.7981,-7.773879,0,0,1,0,100,0), -- 18:05:52
+(@PATH,10,-5009.648,220.7942,-10.2113,0,0,1,0,100,0), -- 18:05:55
+(@PATH,11,-5009.046,223.3424,-9.788197,0,0,1,0,100,0), -- 18:05:58
+(@PATH,12,-5018.983,212.046,-11.68377,0,0,1,0,100,0), -- 18:06:06
+(@PATH,13,-5031.654,208.8046,-11.78926,0,0,1,0,100,0), -- 18:06:07
+(@PATH,14,-5076.621,183.3736,-8.145866,0,0,1,0,100,0), -- 18:13:57
+(@PATH,15,-5072.223,144.1562,-12.73046,0,0,1,0,100,0), -- 18:13:58
+(@PATH,16,-5061.066,119.1013,-16.51242,0,0,1,0,100,0); -- 18:14:04
+-- 0x1C09FC424016C78000001A0000241C27 .go -5061.087 118.9844 -16.32363
+
+-- Pathing for Nethermine Ravager Entry: 23326 'TDB FORMAT'
+SET @NPC := 143859;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5052.252,`position_y`=176.8827,`position_z`=-11.95231 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,-5052.252,176.8827,-11.95231,0,0,1,0,100,0), -- 18:05:07
+(@PATH,2,-5021.2,157.3062,-14.11822,0,0,1,0,100,0), -- 18:05:11
+(@PATH,3,-5001.049,161.8789,-14.45323,0,0,1,0,100,0), -- 18:05:15
+(@PATH,4,-5016.269,157.2713,-14.45587,0,0,1,0,100,0), -- 18:05:21
+(@PATH,5,-5046.272,166.7962,-12.9523,0,0,1,0,100,0), -- 18:05:23
+(@PATH,6,-5051.284,187.3221,-11.84302,0,0,1,0,100,0), -- 18:05:29
+(@PATH,7,-5035.34,209.7333,-11.41766,0,0,1,0,100,0), -- 18:05:32
+(@PATH,8,-5024.802,236.1987,-6.399595,0,0,1,0,100,0), -- 18:05:35
+(@PATH,9,-5015.809,258.2852,-1.012123,0,0,1,0,100,0), -- 18:05:40
+(@PATH,10,-5023.006,240.032,-4.77902,0,0,1,0,100,0), -- 18:05:45
+(@PATH,11,-5030.113,221.3788,-9.224751,0,0,1,0,100,0), -- 18:05:47
+(@PATH,12,-5049.056,197.9744,-11.1133,0,0,1,0,100,0); -- 18:05:52
+-- 0x1C09FC424016C78000001A0000241C47 .go -5052.252 176.8827 -11.95231
diff --git a/sql/updates/world/2015_04_11_02_world.sql b/sql/updates/world/2015_04_11_02_world.sql
new file mode 100644
index 00000000000..8e8d850bb17
--- /dev/null
+++ b/sql/updates/world/2015_04_11_02_world.sql
@@ -0,0 +1,2 @@
+UPDATE `smart_scripts` SET `event_flags`=0 WHERE `entryorguid`=25310 AND `source_type`=0 AND `id`=0;
+UPDATE `smart_scripts` SET `target_type`=1 WHERE `entryorguid` IN (24009, 24010) AND `source_type`=0 AND `id`=1;
diff --git a/src/server/collision/Management/VMapManager2.cpp b/src/server/collision/Management/VMapManager2.cpp
index f85fceb7b39..f9fcff96ad2 100644
--- a/src/server/collision/Management/VMapManager2.cpp
+++ b/src/server/collision/Management/VMapManager2.cpp
@@ -236,9 +236,11 @@ namespace VMAP
{
floor = info.ground_Z;
ASSERT(floor < std::numeric_limits<float>::max());
+ ASSERT(info.hitModel);
type = info.hitModel->GetLiquidType(); // entry from LiquidType.dbc
if (reqLiquidType && !(GetLiquidFlagsPtr(type) & reqLiquidType))
return false;
+ ASSERT(info.hitInstance);
if (info.hitInstance->GetLiquidLevel(pos, info, level))
return true;
}
diff --git a/src/server/game/DataStores/DBCStores.cpp b/src/server/game/DataStores/DBCStores.cpp
index 4dd38face72..6586c5035ec 100644
--- a/src/server/game/DataStores/DBCStores.cpp
+++ b/src/server/game/DataStores/DBCStores.cpp
@@ -48,6 +48,7 @@ struct WMOAreaTableTripple
};
typedef std::map<WMOAreaTableTripple, WMOAreaTableEntry const*> WMOAreaInfoByTripple;
+typedef std::multimap<uint32, CharSectionsEntry const*> CharSectionsMap;
DBCStorage <AreaTableEntry> sAreaStore(AreaTableEntryfmt);
DBCStorage <AreaGroupEntry> sAreaGroupStore(AreaGroupEntryfmt);
@@ -67,6 +68,8 @@ DBCStorage <BattlemasterListEntry> sBattlemasterListStore(BattlemasterListEntryf
DBCStorage <BarberShopStyleEntry> sBarberShopStyleStore(BarberShopStyleEntryfmt);
DBCStorage <CharStartOutfitEntry> sCharStartOutfitStore(CharStartOutfitEntryfmt);
std::map<uint32, CharStartOutfitEntry const*> sCharStartOutfitMap;
+DBCStorage <CharSectionsEntry> sCharSectionsStore(CharSectionsEntryfmt);
+CharSectionsMap sCharSectionMap;
DBCStorage <CharTitlesEntry> sCharTitlesStore(CharTitlesEntryfmt);
DBCStorage <ChatChannelsEntry> sChatChannelsStore(ChatChannelsEntryfmt);
DBCStorage <ChrClassesEntry> sChrClassesStore(ChrClassesEntryfmt);
@@ -305,6 +308,12 @@ void LoadDBCStores(const std::string& dataPath)
if (CharStartOutfitEntry const* outfit = sCharStartOutfitStore.LookupEntry(i))
sCharStartOutfitMap[outfit->Race | (outfit->Class << 8) | (outfit->Gender << 16)] = outfit;
+ LoadDBC(availableDbcLocales, bad_dbc_files, sCharSectionsStore, dbcPath, "CharSections.dbc");
+ for (uint32 i = 0; i < sCharSectionsStore.GetNumRows(); ++i)
+ if (CharSectionsEntry const* entry = sCharSectionsStore.LookupEntry(i))
+ if (entry->Race && ((1 << (entry->Race - 1)) & RACEMASK_ALL_PLAYABLE) != 0) //ignore Nonplayable races
+ sCharSectionMap.insert({ entry->GenType | (entry->Gender << 8) | (entry->Race << 16), entry });
+
LoadDBC(availableDbcLocales, bad_dbc_files, sCharTitlesStore, dbcPath, "CharTitles.dbc");
LoadDBC(availableDbcLocales, bad_dbc_files, sChatChannelsStore, dbcPath, "ChatChannels.dbc");
LoadDBC(availableDbcLocales, bad_dbc_files, sChrClassesStore, dbcPath, "ChrClasses.dbc");
@@ -945,6 +954,18 @@ CharStartOutfitEntry const* GetCharStartOutfitEntry(uint8 race, uint8 class_, ui
return itr->second;
}
+CharSectionsEntry const* GetCharSectionEntry(uint8 race, CharSectionType genType, uint8 gender, uint8 type, uint8 color)
+{
+ std::pair<CharSectionsMap::const_iterator, CharSectionsMap::const_iterator> eqr = sCharSectionMap.equal_range(uint32(genType) | uint32(gender << 8) | uint32(race << 16));
+ for (CharSectionsMap::const_iterator itr = eqr.first; itr != eqr.second; ++itr)
+ {
+ if (itr->second->Type == type && itr->second->Color == color)
+ return itr->second;
+ }
+
+ return NULL;
+}
+
/// Returns LFGDungeonEntry for a specific map and difficulty. Will return first found entry if multiple dungeons use the same map (such as Scarlet Monastery)
LFGDungeonEntry const* GetLFGDungeon(uint32 mapId, Difficulty difficulty)
{
diff --git a/src/server/game/DataStores/DBCStores.h b/src/server/game/DataStores/DBCStores.h
index 655de86b7e1..d955e9581ab 100644
--- a/src/server/game/DataStores/DBCStores.h
+++ b/src/server/game/DataStores/DBCStores.h
@@ -69,6 +69,7 @@ PvPDifficultyEntry const* GetBattlegroundBracketByLevel(uint32 mapid, uint32 lev
PvPDifficultyEntry const* GetBattlegroundBracketById(uint32 mapid, BattlegroundBracketId id);
CharStartOutfitEntry const* GetCharStartOutfitEntry(uint8 race, uint8 class_, uint8 gender);
+CharSectionsEntry const* GetCharSectionEntry(uint8 race, CharSectionType genType, uint8 gender, uint8 type, uint8 color);
LFGDungeonEntry const* GetLFGDungeon(uint32 mapId, Difficulty difficulty);
@@ -91,6 +92,7 @@ extern DBCStorage <BarberShopStyleEntry> sBarberShopStyleStore;
extern DBCStorage <BattlemasterListEntry> sBattlemasterListStore;
extern DBCStorage <ChatChannelsEntry> sChatChannelsStore;
extern DBCStorage <CharStartOutfitEntry> sCharStartOutfitStore;
+extern DBCStorage <CharSectionsEntry> sCharSectionsStore;
extern DBCStorage <CharTitlesEntry> sCharTitlesStore;
extern DBCStorage <ChrClassesEntry> sChrClassesStore;
extern DBCStorage <ChrRacesEntry> sChrRacesStore;
diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h
index a6bddc7bd5e..5c784f3fe69 100644
--- a/src/server/game/DataStores/DBCStructure.h
+++ b/src/server/game/DataStores/DBCStructure.h
@@ -647,6 +647,33 @@ struct CharStartOutfitEntry
//int32 ItemInventorySlot[MAX_OUTFIT_ITEMS]; // 53-76 not required at server side
};
+enum CharSectionFlags
+{
+ SECTION_FLAG_PLAYER = 0x01,
+ SECTION_FLAG_DEATH_KNIGHT = 0x04
+};
+
+enum CharSectionType
+{
+ SECTION_TYPE_SKIN = 0,
+ SECTION_TYPE_FACE = 1,
+ SECTION_TYPE_FACIAL_HAIR = 2,
+ SECTION_TYPE_HAIR = 3,
+ SECTION_TYPE_UNDERWEAR = 4
+};
+
+struct CharSectionsEntry
+{
+ //uint32 Id;
+ uint32 Race;
+ uint32 Gender;
+ uint32 GenType;
+ //char* TexturePath[3];
+ uint32 Flags;
+ uint32 Type;
+ uint32 Color;
+};
+
struct CharTitlesEntry
{
uint32 ID; // 0, title ids, for example in Quest::GetCharTitleId()
@@ -1521,7 +1548,7 @@ struct ScalingStatValuesEntry
return 0;
}
- uint32 getFeralBonus(uint32 mask) const // removed in 3.2.x?
+ uint32 getFeralBonus(uint32 /*mask*/) const // removed in 3.2.x?
{
//if (mask & 0x00010000) return 0; // not used?
return 0;
diff --git a/src/server/game/DataStores/DBCfmt.h b/src/server/game/DataStores/DBCfmt.h
index 44db2a35d73..5c24e6f938a 100644
--- a/src/server/game/DataStores/DBCfmt.h
+++ b/src/server/game/DataStores/DBCfmt.h
@@ -33,6 +33,7 @@ char const BannedAddOnsfmt[] = "nxxxxxxxxxx";
char const BarberShopStyleEntryfmt[] = "nixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxiii";
char const BattlemasterListEntryfmt[] = "niiiiiiiiixssssssssssssssssxiixx";
char const CharStartOutfitEntryfmt[] = "dbbbXiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
+char const CharSectionsEntryfmt[] = "diiixxxiii";
char const CharTitlesEntryfmt[] = "nxssssssssssssssssxssssssssssssssssxi";
char const ChatChannelsEntryfmt[] = "nixssssssssssssssssxxxxxxxxxxxxxxxxxx";
char const ChrClassesEntryfmt[] = "nxixssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxixii";
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp
index a2058fffeed..024002ab88f 100644
--- a/src/server/game/DungeonFinding/LFGMgr.cpp
+++ b/src/server/game/DungeonFinding/LFGMgr.cpp
@@ -780,10 +780,10 @@ void LFGMgr::GetCompatibleDungeons(LfgDungeonSet& dungeons, GuidSet const& playe
}
}
}
-
+
if (eraseDungeon)
dungeons.erase(itDungeon);
-
+
lockMap[guid][dungeonId] = it2->second;
}
}
@@ -1266,6 +1266,14 @@ void LFGMgr::TeleportPlayer(Player* player, bool out, bool fromOpcode /*= false*
if (player->GetMapId() == uint32(dungeon->map))
player->TeleportToBGEntryPoint();
+ // in the case were we are the last in lfggroup then we must disband when porting out of the instance
+ if (group && group->GetMembersCount() == 1)
+ {
+ group->Disband();
+ TC_LOG_DEBUG("lfg.teleport", "Player %s is last in lfggroup so we disband the group.",
+ player->GetName().c_str());
+ }
+
return;
}
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 60cadab39fd..32fd5c53803 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -964,8 +964,6 @@ bool Player::Create(uint32 guidlow, CharacterCreateInfo* createInfo)
{
//FIXME: outfitId not used in player creating
/// @todo need more checks against packet modifications
- // should check that skin, face, hair* are valid via DBC per race/class
- // also do it in Player::BuildEnumData, Player::LoadFromDB
Object::_Create(guidlow, 0, HIGHGUID_PLAYER);
@@ -1007,6 +1005,13 @@ bool Player::Create(uint32 guidlow, CharacterCreateInfo* createInfo)
return false;
}
+ if (!ValidateAppearance(createInfo->Race, createInfo->Class, createInfo->Gender, createInfo->HairStyle, createInfo->HairColor, createInfo->Face, createInfo->FacialHair, createInfo->Skin, true))
+ {
+ TC_LOG_ERROR("entities.player", "Player::Create: Possible hacking-attempt: Account %u tried creating a character named '%s' with invalid appearance attributes - refusing to do so",
+ GetSession()->GetAccountId(), m_name.c_str());
+ return false;
+ }
+
uint32 RaceClassGender = (createInfo->Race) | (createInfo->Class << 8) | (createInfo->Gender << 16);
SetUInt32Value(UNIT_FIELD_BYTES_0, (RaceClassGender | (powertype << 24)));
@@ -1979,12 +1984,29 @@ bool Player::BuildEnumData(PreparedQueryResult result, WorldPacket* data)
*data << uint8(gender); // gender
uint32 playerBytes = fields[5].GetUInt32();
+ uint32 playerBytes2 = fields[6].GetUInt32();
+
+ uint16 atLoginFlags = fields[15].GetUInt16();
+
+ if (!ValidateAppearance(uint8(plrRace), uint8(plrClass), gender, uint8(playerBytes >> 16), uint8(playerBytes >> 24), uint8(playerBytes >> 8), uint8(playerBytes2), uint8(playerBytes)))
+ {
+ TC_LOG_ERROR("entities.player.loading", "Player %u has wrong Appearance values (Hair/Skin/Color), forcing recustomize", guid);
+
+ if (!(atLoginFlags & AT_LOGIN_CUSTOMIZE))
+ {
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG);
+ stmt->setUInt16(0, uint16(AT_LOGIN_CUSTOMIZE));
+ stmt->setUInt32(1, guid);
+ CharacterDatabase.Execute(stmt);
+ atLoginFlags |= AT_LOGIN_CUSTOMIZE;
+ }
+ }
+
*data << uint8(playerBytes); // skin
*data << uint8(playerBytes >> 8); // face
*data << uint8(playerBytes >> 16); // hair style
*data << uint8(playerBytes >> 24); // hair color
- uint32 playerBytes2 = fields[6].GetUInt32();
*data << uint8(playerBytes2 & 0xFF); // facial hair
*data << uint8(fields[7].GetUInt8()); // level
@@ -1999,7 +2021,6 @@ bool Player::BuildEnumData(PreparedQueryResult result, WorldPacket* data)
uint32 charFlags = 0;
uint32 playerFlags = fields[14].GetUInt32();
- uint16 atLoginFlags = fields[15].GetUInt16();
if (playerFlags & PLAYER_FLAGS_HIDE_HELM)
charFlags |= CHARACTER_FLAG_HIDE_HELM;
if (playerFlags & PLAYER_FLAGS_HIDE_CLOAK)
@@ -17292,6 +17313,20 @@ bool Player::LoadFromDB(ObjectGuid guid, SQLQueryHolder *holder)
SetUInt32Value(PLAYER_BYTES_2, fields[10].GetUInt32());
SetByteValue(PLAYER_BYTES_3, 0, fields[5].GetUInt8());
SetByteValue(PLAYER_BYTES_3, 1, fields[49].GetUInt8());
+
+ if (!ValidateAppearance(
+ fields[3].GetUInt8(), // race
+ fields[4].GetUInt8(), // class
+ gender, GetByteValue(PLAYER_BYTES, 2), // hair type
+ GetByteValue(PLAYER_BYTES, 3), //hair color
+ uint8(fields[9].GetUInt32() >> 8), // face
+ GetByteValue(PLAYER_BYTES_2, 0), // facial hair
+ GetByteValue(PLAYER_BYTES, 0))) // skin color
+ {
+ TC_LOG_ERROR("entities.player", "Player %s has wrong Appearance values (Hair/Skin/Color), can't be loaded.", guid.ToString().c_str());
+ return false;
+ }
+
SetUInt32Value(PLAYER_FLAGS, fields[11].GetUInt32());
SetInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, fields[48].GetUInt32());
@@ -21962,9 +21997,9 @@ void Player::SetPvP(bool state)
(*itr)->SetPvP(state);
}
-void Player::UpdatePvP(bool state, bool override)
+void Player::UpdatePvP(bool state, bool _override)
{
- if (!state || override)
+ if (!state || _override)
{
SetPvP(state);
pvpInfo.EndTimer = 0;
@@ -25050,11 +25085,11 @@ uint32 Player::CalculateTalentsPoints() const
return uint32(talentPointsForLevel * sWorld->getRate(RATE_TALENT));
}
-bool Player::IsKnowHowFlyIn(uint32 mapid, uint32 zone) const
+bool Player::CanFlyInZone(uint32 mapid, uint32 zone) const
{
// continent checked in SpellInfo::CheckLocation at cast and area update
uint32 v_map = GetVirtualMapForMapAndZone(mapid, zone);
- return v_map != 571 || HasSpell(54197); // Cold Weather Flying
+ return v_map != 571 || HasSpell(54197); // 54197 = Cold Weather Flying
}
void Player::LearnSpellHighestRank(uint32 spellid)
@@ -26947,3 +26982,57 @@ void Player::SendSupercededSpell(uint32 oldSpell, uint32 newSpell)
GetSession()->SendPacket(&data);
}
+bool Player::ValidateAppearance(uint8 race, uint8 class_, uint8 gender, uint8 hairID, uint8 hairColor, uint8 faceID, uint8 facialHair, uint8 skinColor, bool create /*=false*/)
+{
+ // Check skin color
+ // For Skin type is always 0
+ if (CharSectionsEntry const* entry = GetCharSectionEntry(race, SECTION_TYPE_SKIN, gender, 0, skinColor))
+ { // Skin Color defined as Face color, too, we check skin & face in one pass
+ if (CharSectionsEntry const* entry2 = GetCharSectionEntry(race, SECTION_TYPE_FACE, gender, faceID, skinColor))
+ {
+ // Check DeathKnight exclusive
+ if (((entry->Flags & SECTION_FLAG_DEATH_KNIGHT) || (entry2->Flags & SECTION_FLAG_DEATH_KNIGHT)) && class_ != CLASS_DEATH_KNIGHT)
+ return false;
+ if (create && !((entry->Flags & SECTION_FLAG_PLAYER) && (entry2->Flags & SECTION_FLAG_PLAYER)))
+ return false;
+ }
+ else
+ return false;
+ }
+ else
+ return false;
+
+ // These combinations don't have an entry of Type SECTION_TYPE_FACIAL_HAIR, exclude them from that check
+ bool excludeCheck = (race == RACE_TAUREN) || (race == RACE_DRAENEI) || (gender == GENDER_FEMALE && race != RACE_NIGHTELF && race != RACE_UNDEAD_PLAYER);
+
+ // Check Hair
+ if (CharSectionsEntry const* entry = GetCharSectionEntry(race, SECTION_TYPE_HAIR, gender, hairID, hairColor))
+ {
+ if ((entry->Flags & SECTION_FLAG_DEATH_KNIGHT) && class_ != CLASS_DEATH_KNIGHT)
+ return false;
+ if (create && !(entry->Flags & SECTION_FLAG_PLAYER))
+ return false;
+
+ if (!excludeCheck)
+ {
+ if (CharSectionsEntry const* entry2 = GetCharSectionEntry(race, SECTION_TYPE_FACIAL_HAIR, gender, facialHair, hairColor))
+ {
+ if ((entry2->Flags & SECTION_FLAG_DEATH_KNIGHT) && class_ != CLASS_DEATH_KNIGHT)
+ return false;
+ if (create && !(entry2->Flags & SECTION_FLAG_PLAYER))
+ return false;
+ }
+ else
+ return false;
+ }
+ else
+ {
+ // @TODO: Bound checking for facialHair ID (used clientside for markings, tauren beard, etc.)
+ // Not present in DBC
+ }
+ }
+ else
+ return false;
+
+ return true;
+}
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 1e928c80f3c..e3a7f39b2ba 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1499,6 +1499,7 @@ class Player : public Unit, public GridObject<Player>
static bool LoadPositionFromDB(uint32& mapid, float& x, float& y, float& z, float& o, bool& in_flight, ObjectGuid guid);
static bool IsValidGender(uint8 Gender) { return Gender <= GENDER_FEMALE; }
+ static bool ValidateAppearance(uint8 race, uint8 class_, uint8 gender, uint8 hairID, uint8 hairColor, uint8 faceID, uint8 facialHair, uint8 skinColor, bool create = false);
/*********************************************************/
/*** SAVE SYSTEM ***/
@@ -2135,7 +2136,7 @@ class Player : public Unit, public GridObject<Player>
void SetFallInformation(uint32 time, float z);
void HandleFall(MovementInfo const& movementInfo);
- bool IsKnowHowFlyIn(uint32 mapid, uint32 zone) const;
+ bool CanFlyInZone(uint32 mapid, uint32 zone) const;
void SetClientControl(Unit* target, bool allowMove);
diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp
index a3ed1209ce3..7b219e4dc15 100644
--- a/src/server/game/Entities/Transport/Transport.cpp
+++ b/src/server/game/Entities/Transport/Transport.cpp
@@ -331,6 +331,8 @@ GameObject* Transport::CreateGOPassenger(uint32 guid, GameObjectData const* data
return NULL;
}
+ ASSERT(data);
+
float x = data->posX;
float y = data->posY;
float z = data->posZ;
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 3e4953a188c..5f864210e8f 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -5484,7 +5484,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
if (RandomSpells.empty()) // shouldn't happen
return false;
- uint8 rand_spell = irand(0, (RandomSpells.size() - 1));
+ uint8 rand_spell = urand(0, (RandomSpells.size() - 1));
CastSpell(target, RandomSpells[rand_spell], true, castItem, triggeredByAura, originalCaster);
for (std::vector<uint32>::iterator itr = RandomSpells.begin(); itr != RandomSpells.end(); ++itr)
{
@@ -5530,7 +5530,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
if (RandomSpells.empty()) // shouldn't happen
return false;
- uint8 rand_spell = irand(0, (RandomSpells.size() - 1));
+ uint8 rand_spell = urand(0, (RandomSpells.size() - 1));
CastSpell(target, RandomSpells[rand_spell], true, castItem, triggeredByAura, originalCaster);
for (std::vector<uint32>::iterator itr = RandomSpells.begin(); itr != RandomSpells.end(); ++itr)
{
@@ -5880,7 +5880,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
if (dummySpell->SpellIconID == 2218)
{
// Proc only from Abolish desease on self cast
- if (procSpell->Id != 552 || victim != this || !roll_chance_i(triggerAmount))
+ if (!procSpell || procSpell->Id != 552 || victim != this || !roll_chance_i(triggerAmount))
return false;
triggered_spell_id = 64136;
target = this;
@@ -14173,6 +14173,7 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* target, uint32 procFlag, u
uint32 Id = i->aura->GetId();
AuraApplication* aurApp = i->aura->GetApplicationOfTarget(GetGUID());
+ ASSERT(aurApp);
bool prepare = i->aura->CallScriptPrepareProcHandlers(aurApp, eventInfo);
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index f103537710f..e30a9601bdb 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -1253,6 +1253,9 @@ void WorldSession::HandleAlterAppearance(WorldPacket& recvData)
if (bs_skinColor && (bs_skinColor->type != 3 || bs_skinColor->race != _player->getRace() || bs_skinColor->gender != _player->getGender()))
return;
+ if (!Player::ValidateAppearance(_player->getRace(), _player->getClass(), _player->getGender(), bs_hair->hair_id, Color, uint8(_player->GetUInt32Value(PLAYER_FLAGS) >> 8), bs_facialHair->hair_id, bs_skinColor ? bs_skinColor->hair_id : 0))
+ return;
+
GameObject* go = _player->FindNearestGameObjectOfType(GAMEOBJECT_TYPE_BARBER_CHAIR, 5.0f);
if (!go)
{
@@ -1337,10 +1340,8 @@ void WorldSession::HandleCharCustomize(WorldPacket& recvData)
>> customizeInfo.FacialHair
>> customizeInfo.Face;
- PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_AT_LOGIN);
-
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_NAME_DATA);
stmt->setUInt32(0, customizeInfo.Guid.GetCounter());
- // TODO: Make async with callback
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (!result)
@@ -1350,6 +1351,29 @@ void WorldSession::HandleCharCustomize(WorldPacket& recvData)
}
Field* fields = result->Fetch();
+ uint8 plrRace = fields[0].GetUInt8();
+ uint8 plrClass = fields[1].GetUInt8();
+ uint8 plrGender = fields[2].GetUInt8();
+
+ if (!Player::ValidateAppearance(plrRace, plrClass, plrGender, customizeInfo.HairStyle, customizeInfo.HairColor, customizeInfo.Face, customizeInfo.FacialHair, customizeInfo.Skin, true))
+ {
+ SendCharCustomize(CHAR_CREATE_ERROR, customizeInfo);
+ return;
+ }
+
+ stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_AT_LOGIN);
+
+ stmt->setUInt32(0, customizeInfo.Guid.GetCounter());
+ // TODO: Make async with callback
+ result = CharacterDatabase.Query(stmt);
+
+ if (!result)
+ {
+ SendCharCustomize(CHAR_CREATE_ERROR, customizeInfo);
+ return;
+ }
+
+ fields = result->Fetch();
uint32 at_loginFlags = fields[0].GetUInt16();
if (!(at_loginFlags & AT_LOGIN_CUSTOMIZE))
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index 1ff82aa7bf7..d79392177e4 100644
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -225,6 +225,7 @@ void WorldSession::SendPacket(WorldPacket* packet)
sScriptMgr->OnPacketSend(this, *packet);
+ TC_LOG_TRACE("network.opcode", "S->C: %s %s", GetPlayerInfo().c_str(), GetOpcodeNameForLogging(packet->GetOpcode()).c_str());
m_Socket->SendPacket(*packet);
}
diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp
index 0bb864de0ed..cff423c71c6 100644
--- a/src/server/game/Server/WorldSocket.cpp
+++ b/src/server/game/Server/WorldSocket.cpp
@@ -28,7 +28,7 @@
using boost::asio::ip::tcp;
WorldSocket::WorldSocket(tcp::socket&& socket)
- : Socket(std::move(socket)), _authSeed(rand32()), _OverSpeedPings(0), _worldSession(nullptr)
+ : Socket(std::move(socket)), _authSeed(rand32()), _OverSpeedPings(0), _worldSession(nullptr), _authed(false)
{
_headerBuffer.Resize(sizeof(ClientPktHeader));
}
@@ -53,7 +53,15 @@ void WorldSocket::HandleSendAuthSession()
seed2.SetRand(16 * 8);
packet.append(seed2.AsByteArray(16).get(), 16); // new encryption seeds
- SendPacket(packet);
+ SendPacketAndLogOpcode(packet);
+}
+
+void WorldSocket::OnClose()
+{
+ {
+ std::lock_guard<std::mutex> sessionGuard(_worldSessionLock);
+ _worldSession = nullptr;
+ }
}
void WorldSocket::ReadHandler()
@@ -80,7 +88,10 @@ void WorldSocket::ReadHandler()
// We just received nice new header
if (!ReadHeaderHandler())
+ {
+ CloseSocket();
return;
+ }
}
// We have full read header, now check the data payload
@@ -101,7 +112,10 @@ void WorldSocket::ReadHandler()
// just received fresh new payload
if (!ReadDataHandler())
+ {
+ CloseSocket();
return;
+ }
_headerBuffer.Reset();
}
@@ -121,17 +135,8 @@ bool WorldSocket::ReadHeaderHandler()
if (!header->IsValidSize() || !header->IsValidOpcode())
{
- if (_worldSession)
- {
- Player* player = _worldSession->GetPlayer();
- TC_LOG_ERROR("network", "WorldSocket::ReadHeaderHandler(): client (account: %u, char [GUID: %u, name: %s]) sent malformed packet (size: %hu, cmd: %u)",
- _worldSession->GetAccountId(), player ? player->GetGUIDLow() : 0, player ? player->GetName().c_str() : "<none>", header->size, header->cmd);
- }
- else
- TC_LOG_ERROR("network", "WorldSocket::ReadHeaderHandler(): client %s sent malformed packet (size: %hu, cmd: %u)",
- GetRemoteIpAddress().to_string().c_str(), header->size, header->cmd);
-
- CloseSocket();
+ TC_LOG_ERROR("network", "WorldSocket::ReadHeaderHandler(): client %s sent malformed packet (size: %hu, cmd: %u)",
+ GetRemoteIpAddress().to_string().c_str(), header->size, header->cmd);
return false;
}
@@ -151,28 +156,32 @@ bool WorldSocket::ReadDataHandler()
if (sPacketLog->CanLogPacket())
sPacketLog->LogPacket(packet, CLIENT_TO_SERVER, GetRemoteIpAddress(), GetRemotePort());
- TC_LOG_TRACE("network.opcode", "C->S: %s %s", (_worldSession ? _worldSession->GetPlayerInfo() : GetRemoteIpAddress().to_string()).c_str(), GetOpcodeNameForLogging(opcode).c_str());
+ std::unique_lock<std::mutex> sessionGuard(_worldSessionLock, std::defer_lock);
switch (opcode)
{
case CMSG_PING:
- HandlePing(packet);
- break;
+ LogOpcodeText(opcode, sessionGuard);
+ return HandlePing(packet);
case CMSG_AUTH_SESSION:
- if (_worldSession)
+ LogOpcodeText(opcode, sessionGuard);
+ if (_authed)
{
- TC_LOG_ERROR("network", "WorldSocket::ProcessIncoming: received duplicate CMSG_AUTH_SESSION from %s", _worldSession->GetPlayerInfo().c_str());
- break;
+ // locking just to safely log offending user is probably overkill but we are disconnecting him anyway
+ if (sessionGuard.try_lock())
+ TC_LOG_ERROR("network", "WorldSocket::ProcessIncoming: received duplicate CMSG_AUTH_SESSION from %s", _worldSession->GetPlayerInfo().c_str());
+ return false;
}
HandleAuthSession(packet);
break;
case CMSG_KEEP_ALIVE:
- TC_LOG_DEBUG("network", "%s", GetOpcodeNameForLogging(opcode).c_str());
- sScriptMgr->OnPacketReceive(_worldSession, packet);
+ LogOpcodeText(opcode, sessionGuard);
break;
default:
{
+ sessionGuard.lock();
+ LogOpcodeText(opcode, sessionGuard);
if (!_worldSession)
{
TC_LOG_ERROR("network.opcode", "ProcessIncoming: Client not authed opcode = %u", uint32(opcode));
@@ -193,7 +202,26 @@ bool WorldSocket::ReadDataHandler()
return true;
}
-void WorldSocket::SendPacket(WorldPacket& packet)
+void WorldSocket::LogOpcodeText(uint16 opcode, std::unique_lock<std::mutex> const& guard) const
+{
+ if (!guard)
+ {
+ TC_LOG_TRACE("network.opcode", "C->S: %s %s", GetRemoteIpAddress().to_string().c_str(), GetOpcodeNameForLogging(opcode).c_str());
+ }
+ else
+ {
+ TC_LOG_TRACE("network.opcode", "C->S: %s %s", (_worldSession ? _worldSession->GetPlayerInfo() : GetRemoteIpAddress().to_string()).c_str(),
+ GetOpcodeNameForLogging(opcode).c_str());
+ }
+}
+
+void WorldSocket::SendPacketAndLogOpcode(WorldPacket const& packet)
+{
+ TC_LOG_TRACE("network.opcode", "S->C: %s %s", GetRemoteIpAddress().to_string().c_str(), GetOpcodeNameForLogging(packet.GetOpcode()).c_str());
+ SendPacket(packet);
+}
+
+void WorldSocket::SendPacket(WorldPacket const& packet)
{
if (!IsOpen())
return;
@@ -201,8 +229,6 @@ void WorldSocket::SendPacket(WorldPacket& packet)
if (sPacketLog->CanLogPacket())
sPacketLog->LogPacket(packet, SERVER_TO_CLIENT, GetRemoteIpAddress(), GetRemotePort());
- TC_LOG_TRACE("network.opcode", "S->C: %s %s", (_worldSession ? _worldSession->GetPlayerInfo() : GetRemoteIpAddress().to_string()).c_str(), GetOpcodeNameForLogging(packet.GetOpcode()).c_str());
-
ServerPktHeader header(packet.size() + 2, packet.GetOpcode());
std::unique_lock<std::mutex> guard(_writeLock);
@@ -459,6 +485,7 @@ void WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
// At this point, we can safely hook a successful login
sScriptMgr->OnAccountLogin(id);
+ _authed = true;
_worldSession = new WorldSession(id, shared_from_this(), AccountTypes(security), expansion, mutetime, locale, recruiter, isRecruiter);
_worldSession->LoadGlobalAccountData();
_worldSession->LoadTutorialsData();
@@ -477,10 +504,10 @@ void WorldSocket::SendAuthResponseError(uint8 code)
WorldPacket packet(SMSG_AUTH_RESPONSE, 1);
packet << uint8(code);
- SendPacket(packet);
+ SendPacketAndLogOpcode(packet);
}
-void WorldSocket::HandlePing(WorldPacket& recvPacket)
+bool WorldSocket::HandlePing(WorldPacket& recvPacket)
{
uint32 ping;
uint32 latency;
@@ -509,13 +536,14 @@ void WorldSocket::HandlePing(WorldPacket& recvPacket)
if (maxAllowed && _OverSpeedPings > maxAllowed)
{
+ std::unique_lock<std::mutex> sessionGuard(_worldSessionLock);
+
if (_worldSession && !_worldSession->HasPermission(rbac::RBAC_PERM_SKIP_CHECK_OVERSPEED_PING))
{
TC_LOG_ERROR("network", "WorldSocket::HandlePing: %s kicked for over-speed pings (address: %s)",
_worldSession->GetPlayerInfo().c_str(), GetRemoteIpAddress().to_string().c_str());
- CloseSocket();
- return;
+ return false;
}
}
}
@@ -523,20 +551,23 @@ void WorldSocket::HandlePing(WorldPacket& recvPacket)
_OverSpeedPings = 0;
}
- if (_worldSession)
{
- _worldSession->SetLatency(latency);
- _worldSession->ResetClientTimeDelay();
- }
- else
- {
- TC_LOG_ERROR("network", "WorldSocket::HandlePing: peer sent CMSG_PING, but is not authenticated or got recently kicked, address = %s", GetRemoteIpAddress().to_string().c_str());
+ std::lock_guard<std::mutex> sessionGuard(_worldSessionLock);
- CloseSocket();
- return;
+ if (_worldSession)
+ {
+ _worldSession->SetLatency(latency);
+ _worldSession->ResetClientTimeDelay();
+ }
+ else
+ {
+ TC_LOG_ERROR("network", "WorldSocket::HandlePing: peer sent CMSG_PING, but is not authenticated or got recently kicked, address = %s", GetRemoteIpAddress().to_string().c_str());
+ return false;
+ }
}
WorldPacket packet(SMSG_PONG, 4);
packet << ping;
- return SendPacket(packet);
+ SendPacketAndLogOpcode(packet);
+ return true;
}
diff --git a/src/server/game/Server/WorldSocket.h b/src/server/game/Server/WorldSocket.h
index 89c335662a8..0f6acd0d72c 100644
--- a/src/server/game/Server/WorldSocket.h
+++ b/src/server/game/Server/WorldSocket.h
@@ -55,19 +55,25 @@ public:
void Start() override;
- void SendPacket(WorldPacket& packet);
+ void SendPacket(WorldPacket const& packet);
protected:
+ void OnClose() override;
void ReadHandler() override;
bool ReadHeaderHandler();
bool ReadDataHandler();
private:
+ /// writes network.opcode log
+ /// accessing WorldSession is not threadsafe, only do it when holding _worldSessionLock
+ void LogOpcodeText(uint16 opcode, std::unique_lock<std::mutex> const& guard) const;
+ /// sends and logs network.opcode without accessing WorldSession
+ void SendPacketAndLogOpcode(WorldPacket const& packet);
void HandleSendAuthSession();
void HandleAuthSession(WorldPacket& recvPacket);
void SendAuthResponseError(uint8 code);
- void HandlePing(WorldPacket& recvPacket);
+ bool HandlePing(WorldPacket& recvPacket);
uint32 _authSeed;
AuthCrypt _authCrypt;
@@ -75,7 +81,9 @@ private:
std::chrono::steady_clock::time_point _LastPingTime;
uint32 _OverSpeedPings;
+ std::mutex _worldSessionLock;
WorldSession* _worldSession;
+ bool _authed;
MessageBuffer _headerBuffer;
MessageBuffer _packetBuffer;
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index b1cb7d51b35..7651278346f 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -5977,7 +5977,7 @@ void AuraEffect::HandlePeriodicHealthLeechAuraTick(Unit* target, Unit* caster) c
if (isAreaAura)
damage = caster->SpellDamageBonusDone(target, GetSpellInfo(), damage, DOT, GetBase()->GetStackAmount()) * caster->SpellDamagePctDone(target, m_spellInfo, DOT);
else
- damage = std::max(int32(damage * GetDonePct()), 0);
+ damage = std::max(int32(damage * GetDonePct()), 0);
damage = target->SpellDamageBonusTaken(caster, GetSpellInfo(), damage, DOT, GetBase()->GetStackAmount());
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index 862521a068c..75a48e36ded 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -1482,12 +1482,16 @@ SpellCastResult SpellInfo::CheckLocation(uint32 map_id, uint32 zone_id, uint32 a
case SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED:
case SPELL_AURA_FLY:
{
- if (player && !player->IsKnowHowFlyIn(map_id, zone_id))
- return SPELL_FAILED_INCORRECT_AREA;
+ SkillLineAbilityMapBounds bounds = sSpellMgr->GetSkillLineAbilityMapBounds(Id);
+ for (SkillLineAbilityMap::const_iterator skillIter = bounds.first; skillIter != bounds.second; ++skillIter)
+ {
+ if (skillIter->second->skillId == SKILL_MOUNTS)
+ if (player && !player->CanFlyInZone(map_id, zone_id))
+ return SPELL_FAILED_INCORRECT_AREA;
+ }
}
}
}
-
return SPELL_CAST_OK;
}
diff --git a/src/server/scripts/Commands/cs_account.cpp b/src/server/scripts/Commands/cs_account.cpp
index c6ddd73addd..5668c20d6b0 100644
--- a/src/server/scripts/Commands/cs_account.cpp
+++ b/src/server/scripts/Commands/cs_account.cpp
@@ -667,7 +667,7 @@ public:
if (isAccountNameGiven)
{
targetAccountName = arg1;
- if (!AccountMgr::normalizeString(targetAccountName))
+ if (!AccountMgr::normalizeString(targetAccountName) || !AccountMgr::GetId(targetAccountName))
{
handler->PSendSysMessage(LANG_ACCOUNT_NOT_EXIST, targetAccountName.c_str());
handler->SetSentErrorMessage(true);
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp
index 52cc20b9d3b..0b74eb6bee7 100644
--- a/src/server/scripts/Commands/cs_misc.cpp
+++ b/src/server/scripts/Commands/cs_misc.cpp
@@ -1980,7 +1980,7 @@ public:
PreparedStatement *stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_MUTE_INFO);
stmt->setUInt32(0, accountId);
PreparedQueryResult result = LoginDatabase.Query(stmt);
-
+
if (!result)
{
handler->PSendSysMessage(LANG_COMMAND_MUTEHISTORY_EMPTY, accountName);
@@ -1991,16 +1991,16 @@ public:
do
{
Field* fields = result->Fetch();
-
+
// we have to manually set the string for mutedate
time_t sqlTime = fields[0].GetUInt32();
tm timeinfo;
char buffer[80];
-
+
// set it to string
localtime_r(&sqlTime, &timeinfo);
strftime(buffer, sizeof(buffer),"%Y-%m-%d %I:%M%p", &timeinfo);
-
+
handler->PSendSysMessage(LANG_COMMAND_MUTEHISTORY_OUTPUT, buffer, fields[1].GetUInt32(), fields[2].GetCString(), fields[3].GetCString());
} while (result->NextRow());
return true;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
index 5e83c0c8653..8965b64767a 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
@@ -126,7 +126,7 @@ public:
if (dist(xn, yn, xh, yh) >= dist(xn, yn, xp, yp) || dist(xp, yp, xh, yh) >= dist(xn, yn, xp, yp))
return false;
// check distance from the beam
- return (abs((xn-xp)*yh+(yp-yn)*xh-xn*yp+xp*yn)/dist(xn, yn, xp, yp) < 1.5f);
+ return (std::abs((xn-xp)*yh+(yp-yn)*xh-xn*yp+xp*yn)/dist(xn, yn, xp, yp) < 1.5f);
}
float dist(float xa, float ya, float xb, float yb) // auxiliary method for distance
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp
index 1302c618e6f..e3ab206ac21 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp
@@ -268,7 +268,7 @@ public:
return ObjectGuid::Empty;
}
- void Load(char const* chrIn)
+ void Load(char const* chrIn) override
{
if (!chrIn)
{
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
index b21b2f8a73c..3df07562d50 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
@@ -1657,7 +1657,7 @@ public:
{
npc_the_lich_king_tirion_dawnAI(Creature* creature) : ScriptedAI(creature) { Reset(); }
void Reset() override { }
- void AttackStart(Unit* /*who*/) { } // very sample, just don't make them aggreesive override
+ void AttackStart(Unit* /*who*/) override { } // very sample, just don't make them aggreesive
void UpdateAI(uint32 /*diff*/) override { }
void JustDied(Unit* /*killer*/) override { }
};
diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
index be544449b67..a085463f7ce 100644
--- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
+++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
@@ -236,7 +236,7 @@ public:
OUT_LOAD_INST_DATA_COMPLETE;
}
- void Update(uint32 uiDiff)
+ void Update(uint32 uiDiff) override
{
if (GetData(TYPE_FENRUS) != DONE)
return;
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
index 1a98c081570..a9abb2c045d 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
@@ -694,7 +694,7 @@ class boss_gazakroth : public CreatureScript
public:
boss_gazakroth() : CreatureScript("boss_gazakroth") { }
-
+
struct boss_gazakrothAI : public boss_hexlord_addAI
{
boss_gazakrothAI(Creature* creature) : boss_hexlord_addAI(creature)
@@ -706,7 +706,7 @@ class boss_gazakroth : public CreatureScript
{
firebolt_timer = 2 * IN_MILLISECONDS;
}
-
+
void Reset() override
{
Initialize();
diff --git a/src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp b/src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp
index 7c4190a648d..ac261f29287 100644
--- a/src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp
@@ -114,7 +114,7 @@ class npc_professor_phizzlethorpe : public CreatureScript
Talk(SAY_AGGRO);
}
- void sQuestAccept(Player* player, Quest const* quest)
+ void sQuestAccept(Player* player, Quest const* quest) override
{
if (quest->GetQuestId() == QUEST_SUNKEN_TREASURE)
{
diff --git a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp
index a29bb9b75b3..5b63c509eaa 100644
--- a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp
@@ -75,7 +75,7 @@ public:
summoned->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
}
- void sQuestAccept(Player* player, Quest const* quest)
+ void sQuestAccept(Player* player, Quest const* quest) override
{
if (quest->GetQuestId() == QUEST_RESQUE_OOX_09)
{
diff --git a/src/server/scripts/EasternKingdoms/zone_undercity.cpp b/src/server/scripts/EasternKingdoms/zone_undercity.cpp
index ca281bab60a..d7d06a2e3ab 100644
--- a/src/server/scripts/EasternKingdoms/zone_undercity.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_undercity.cpp
@@ -50,7 +50,7 @@ enum Sylvanas
SAY_SUNSORROW_WHISPER = 0,
SOUND_CREDIT = 10896,
-
+
NPC_HIGHBORNE_LAMENTER = 21628,
NPC_HIGHBORNE_BUNNY = 21641,
NPC_AMBASSADOR_SUNSORROW = 16287,
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
index f672871922a..b5d2931377f 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
@@ -421,7 +421,7 @@ public:
gossipStep = 0;
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) override
{
if (who && !who->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC))
npc_escortAI::AttackStart(who);
diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp
index 2b00254167d..d8966ec76c1 100644
--- a/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp
@@ -76,7 +76,7 @@ public:
}
}
- void Update(uint32 /*diff*/)
+ void Update(uint32 /*diff*/) override
{
if (WardKeeperDeath == WARD_KEEPERS_NR)
if (GameObject* go = instance->GetGameObject(DoorWardGUID))
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp
index f8873b06a75..d16a86f350f 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp
@@ -57,7 +57,7 @@ class instance_ruins_of_ahnqiraj : public InstanceMapScript
}
}
- bool SetBossState(uint32 bossId, EncounterState state)
+ bool SetBossState(uint32 bossId, EncounterState state) override
{
if (!InstanceScript::SetBossState(bossId, state))
return false;
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
index 50fd94e66ee..65ffb7fd696 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
@@ -99,7 +99,7 @@ struct boss_twinemperorsAI : public ScriptedAI
uint32 EnrageTimer;
virtual bool IAmVeklor() = 0;
- virtual void Reset() = 0;
+ virtual void Reset() override = 0;
virtual void CastSpellOnBug(Creature* target) = 0;
void TwinReset()
@@ -400,7 +400,7 @@ public:
struct boss_veknilashAI : public boss_twinemperorsAI
{
- bool IAmVeklor() {return false;}
+ bool IAmVeklor() override {return false;}
boss_veknilashAI(Creature* creature) : boss_twinemperorsAI(creature)
{
Initialize();
@@ -425,7 +425,7 @@ public:
me->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_MAGIC, true);
}
- void CastSpellOnBug(Creature* target)
+ void CastSpellOnBug(Creature* target) override
{
target->setFaction(14);
target->AI()->AttackStart(me->getThreatManager().getHostilTarget());
@@ -488,7 +488,7 @@ public:
struct boss_veklorAI : public boss_twinemperorsAI
{
- bool IAmVeklor() {return true;}
+ bool IAmVeklor() override {return true;}
boss_veklorAI(Creature* creature) : boss_twinemperorsAI(creature)
{
Initialize();
@@ -516,7 +516,7 @@ public:
me->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, true);
}
- void CastSpellOnBug(Creature* target)
+ void CastSpellOnBug(Creature* target) override
{
target->setFaction(14);
target->AddAura(SPELL_EXPLODEBUG, target);
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
index 244261a86c1..46e831b0f83 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
@@ -220,7 +220,7 @@ public:
};
}
- virtual void Update(uint32 diff)
+ virtual void Update(uint32 diff) override
{
switch (PyramidPhase)
{
diff --git a/src/server/scripts/Kalimdor/zone_ashenvale.cpp b/src/server/scripts/Kalimdor/zone_ashenvale.cpp
index 76b43729517..b8e6bfb85e8 100644
--- a/src/server/scripts/Kalimdor/zone_ashenvale.cpp
+++ b/src/server/scripts/Kalimdor/zone_ashenvale.cpp
@@ -24,7 +24,6 @@ SDCategory: Ashenvale Forest
EndScriptData */
/* ContentData
-npc_torek
npc_ruul_snowhoof
EndContentData */
@@ -34,132 +33,6 @@ EndContentData */
#include "Player.h"
/*####
-# npc_torek
-####*/
-
-enum Torek
-{
- SAY_READY = 0,
- SAY_MOVE = 1,
- SAY_PREPARE = 2,
- SAY_WIN = 3,
- SAY_END = 4,
- SPELL_REND = 11977,
- SPELL_THUNDERCLAP = 8078,
- QUEST_TOREK_ASSULT = 6544,
- NPC_SPLINTERTREE_RAIDER = 12859,
- NPC_DURIEL = 12860,
- NPC_SILVERWING_SENTINEL = 12896,
- NPC_SILVERWING_WARRIOR = 12897,
- FACTION_QUEST = 113
-};
-
-class npc_torek : public CreatureScript
-{
-public:
- npc_torek() : CreatureScript("npc_torek") { }
-
- struct npc_torekAI : public npc_escortAI
- {
- npc_torekAI(Creature* creature) : npc_escortAI(creature)
- {
- Initialize();
- }
-
- void Initialize()
- {
- rend_Timer = 5000;
- thunderclap_Timer = 8000;
- _completed = false;
- }
-
- void Reset() override
- {
- Initialize();
- }
-
- void EnterCombat(Unit* /*who*/) override { }
-
- void JustSummoned(Creature* summoned) override
- {
- summoned->AI()->AttackStart(me);
- }
-
- void sQuestAccept(Player* player, Quest const* quest)
- {
- if (quest->GetQuestId() == QUEST_TOREK_ASSULT)
- {
- /// @todo find companions, make them follow Torek, at any time (possibly done by core/database in future?)
- Talk(SAY_READY, player);
- me->setFaction(FACTION_QUEST);
- npc_escortAI::Start(true, true, player->GetGUID());
- }
- }
-
- void WaypointReached(uint32 waypointId) override
- {
- if (Player* player = GetPlayerForEscort())
- {
- switch (waypointId)
- {
- case 1:
- Talk(SAY_MOVE, player);
- break;
- case 8:
- Talk(SAY_PREPARE, player);
- break;
- case 19:
- /// @todo verify location and creatures amount.
- me->SummonCreature(NPC_DURIEL, 1776.73f, -2049.06f, 109.83f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- me->SummonCreature(NPC_SILVERWING_SENTINEL, 1774.64f, -2049.41f, 109.83f, 1.40f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- me->SummonCreature(NPC_SILVERWING_WARRIOR, 1778.73f, -2049.50f, 109.83f, 1.67f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- break;
- case 20:
- Talk(SAY_WIN, player);
- _completed = true;
- player->GroupEventHappens(QUEST_TOREK_ASSULT, me);
- break;
- case 21:
- Talk(SAY_END, player);
- break;
- }
- }
- }
-
- void UpdateAI(uint32 diff) override
- {
- npc_escortAI::UpdateAI(diff);
-
- if (!UpdateVictim())
- return;
-
- if (rend_Timer <= diff)
- {
- DoCastVictim(SPELL_REND);
- rend_Timer = 20000;
- } else rend_Timer -= diff;
-
- if (thunderclap_Timer <= diff)
- {
- DoCast(me, SPELL_THUNDERCLAP);
- thunderclap_Timer = 30000;
- } else thunderclap_Timer -= diff;
- }
-
- private:
- uint32 rend_Timer;
- uint32 thunderclap_Timer;
- bool _completed;
-
- };
-
- CreatureAI* GetAI(Creature* creature) const override
- {
- return new npc_torekAI(creature);
- }
-};
-
-/*####
# npc_ruul_snowhoof
####*/
@@ -169,6 +42,7 @@ enum RuulSnowhoof
NPC_THISTLEFUR_TOTEMIC = 3922,
NPC_THISTLEFUR_PATHFINDER = 3926,
QUEST_FREEDOM_TO_RUUL = 6482,
+ FACTION_QUEST = 113,
GO_CAGE = 178147
};
@@ -204,7 +78,7 @@ public:
summoned->AI()->AttackStart(me);
}
- void sQuestAccept(Player* player, Quest const* quest)
+ void sQuestAccept(Player* player, Quest const* quest) override
{
if (quest->GetQuestId() == QUEST_FREEDOM_TO_RUUL)
{
@@ -346,7 +220,7 @@ public:
summoned->AI()->AttackStart(me);
}
- void sQuestAccept(Player* player, Quest const* quest)
+ void sQuestAccept(Player* player, Quest const* quest) override
{
if (quest->GetQuestId() == QUEST_VORSHA)
{
@@ -472,7 +346,6 @@ class go_naga_brazier : public GameObjectScript
void AddSC_ashenvale()
{
- new npc_torek();
new npc_ruul_snowhoof();
new npc_muglash();
new go_naga_brazier();
diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
index 1eb600cce99..5c9a57acec7 100644
--- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
@@ -351,7 +351,7 @@ public:
Talk(SAY_AGGRO, who);
}
- void sQuestAccept(Player* player, Quest const* quest)
+ void sQuestAccept(Player* player, Quest const* quest) override
{
if (quest->GetQuestId() == QUEST_A_CRY_FOR_SAY_HELP)
{
diff --git a/src/server/scripts/Kalimdor/zone_winterspring.cpp b/src/server/scripts/Kalimdor/zone_winterspring.cpp
index 194daf21807..ec1291c6d18 100644
--- a/src/server/scripts/Kalimdor/zone_winterspring.cpp
+++ b/src/server/scripts/Kalimdor/zone_winterspring.cpp
@@ -451,7 +451,7 @@ public:
}
}
- void JustDidDialogueStep(int32 entry)
+ void JustDidDialogueStep(int32 entry) override
{
switch (entry)
{
@@ -550,7 +550,7 @@ public:
}
}
- Creature* GetSpeakerByEntry(int32 entry)
+ Creature* GetSpeakerByEntry(int32 entry) override
{
switch (entry)
{
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
index 1482e884614..bb190e94cc8 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
@@ -108,7 +108,7 @@ class boss_prince_taldaram : public CreatureScript
events.ScheduleEvent(EVENT_CONJURE_FLAME_SPHERES, 5000);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) override
{
BossAI::JustSummoned(summon);
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
index ec668952a68..3130bf20a0c 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
@@ -44,7 +44,7 @@ class instance_ruby_sanctum : public InstanceMapScript
BaltharusSharedHealth = 0;
}
- void OnPlayerEnter(Player* /*player*/)
+ void OnPlayerEnter(Player* /*player*/) override
{
if (!GetGuidData(DATA_HALION_CONTROLLER) && GetBossState(DATA_HALION) != DONE && GetBossState(DATA_GENERAL_ZARITHRIAN) == DONE)
{
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 927ebfbc55c..12a745a34bc 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
@@ -2412,14 +2412,14 @@ enum QuelDelarMisc
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 }
};
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
index 5f27830fd07..15bdedc75db 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
@@ -1873,7 +1873,7 @@ class spell_igb_rocket_pack_useable : public SpellScriptLoader
{
PrepareAuraScript(spell_igb_rocket_pack_useable_AuraScript);
- bool Load()
+ bool Load() override
{
return GetOwner()->GetInstanceScript() != nullptr;
}
@@ -2001,7 +2001,7 @@ class spell_igb_cannon_blast : public SpellScriptLoader
{
PrepareSpellScript(spell_igb_cannon_blast_SpellScript);
- bool Load()
+ bool Load() override
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
@@ -2343,7 +2343,7 @@ class spell_igb_gunship_fall_teleport : public SpellScriptLoader
{
PrepareSpellScript(spell_igb_gunship_fall_teleport_SpellScript);
- bool Load()
+ bool Load() override
{
return GetCaster()->GetInstanceScript() != nullptr;
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
index f2236061f88..61848070170 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
@@ -317,7 +317,7 @@ class instance_icecrown_citadel : public InstanceMapScript
}
// Weekly quest spawn prevention
- uint32 GetCreatureEntry(uint32 /*guidLow*/, CreatureData const* data)
+ uint32 GetCreatureEntry(uint32 /*guidLow*/, CreatureData const* data) override
{
uint32 entry = data->id;
switch (entry)
diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
index 173c6618cb0..3a431ab3ac0 100644
--- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
@@ -564,7 +564,7 @@ class instance_naxxramas : public InstanceMapScript
return true;
}
- bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* /*source*/, Unit const* /*target = NULL*/, uint32 /*miscvalue1 = 0*/)
+ bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* /*source*/, Unit const* /*target = NULL*/, uint32 /*miscvalue1 = 0*/) override
{
switch (criteria_id)
{
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
index 74be65c62c2..41645a6ebb8 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
@@ -78,7 +78,7 @@ public:
frenzy = false;
}
- void Reset()
+ void Reset() override
{
BossAI::Reset();
Initialize();
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp
index 384694cdd40..453423bd287 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp
@@ -197,7 +197,7 @@ public:
++_healthAmountModifier;
}
}
-
+
private:
uint32 _healthAmountModifier;
bool _isIntroDone;
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
index 536cae08483..3853b0aedfc 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
@@ -89,7 +89,7 @@ class boss_volkhan : public CreatureScript
{
public:
boss_volkhan() : CreatureScript("boss_volkhan") { }
-
+
struct boss_volkhanAI : public BossAI
{
boss_volkhanAI(Creature* creature) : BossAI(creature, DATA_VOLKHAN)
@@ -104,7 +104,7 @@ public:
m_bCanShatterGolem = false;
m_uiDelay_Timer = 1000;
m_uiSummonPhase = 0;
- GolemsShattered = 0;
+ GolemsShattered = 0;
m_uiHealthAmountModifier = 1;
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
index 4841950d9d3..64403ad40ca 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
@@ -458,7 +458,7 @@ class spell_general_vezax_mark_of_the_faceless : public SpellScriptLoader
{
PrepareAuraScript(spell_general_vezax_mark_of_the_faceless_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) override
{
if (!sSpellMgr->GetSpellInfo(SPELL_MARK_OF_THE_FACELESS_DAMAGE))
return false;
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
index 49ed9609a03..ca3ea3a60ed 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
@@ -448,7 +448,7 @@ class instance_ulduar : public InstanceMapScript
}
}
- void OnGameObjectCreate(GameObject* gameObject)
+ void OnGameObjectCreate(GameObject* gameObject) override
{
switch (gameObject->GetEntry())
{
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
index 571f73ea628..483beda43ee 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
@@ -141,7 +141,7 @@ class boss_ingvar_the_plunderer : public CreatureScript
damage = 0;
}
- void DoAction(int32 actionId)
+ void DoAction(int32 actionId) override
{
if (actionId == ACTION_START_PHASE_2)
StartZombiePhase();
diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
index a462c68e084..ea50969ecb8 100644
--- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
@@ -802,7 +802,7 @@ public:
}
}
- void ProcessEvent(WorldObject* /*go*/, uint32 uiEventId)
+ void ProcessEvent(WorldObject* /*go*/, uint32 uiEventId) override
{
switch (uiEventId)
{
diff --git a/src/server/scripts/Northrend/zone_grizzly_hills.cpp b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
index 15fa6d836cd..83fd3859716 100644
--- a/src/server/scripts/Northrend/zone_grizzly_hills.cpp
+++ b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
@@ -826,11 +826,11 @@ class spell_infected_worgen_bite : public SpellScriptLoader
{
public:
spell_infected_worgen_bite() : SpellScriptLoader("spell_infected_worgen_bite") { }
-
+
class spell_infected_worgen_bite_AuraScript : public AuraScript
{
PrepareAuraScript(spell_infected_worgen_bite_AuraScript);
-
+
void HandleAfterEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
Unit* target = GetTarget();
@@ -841,7 +841,7 @@ class spell_infected_worgen_bite : public SpellScriptLoader
target->CastSpell(target, SPELL_WORGENS_CALL, true);
}
}
-
+
void Register() override
{
AfterEffectApply += AuraEffectApplyFn(spell_infected_worgen_bite_AuraScript::HandleAfterEffectApply, EFFECT_1, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAPPLY);
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h
index a08e141294d..9c76b35937e 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h
@@ -184,9 +184,9 @@ class OPvPCapturePointZM_GraveYard : public OPvPCapturePoint
public:
OPvPCapturePointZM_GraveYard(OutdoorPvP* pvp);
- bool Update(uint32 diff);
+ bool Update(uint32 diff) override;
- void ChangeState() { }
+ void ChangeState() override { }
void FillInitialWorldStates(WorldPacket & data);
@@ -196,11 +196,11 @@ class OPvPCapturePointZM_GraveYard : public OPvPCapturePoint
void SetBeaconState(uint32 controlling_team); // not good atm
- bool HandleGossipOption(Player* player, ObjectGuid guid, uint32 gossipid);
+ bool HandleGossipOption(Player* player, ObjectGuid guid, uint32 gossipid) override;
- bool HandleDropFlag(Player* player, uint32 spellId);
+ bool HandleDropFlag(Player* player, uint32 spellId) override;
- bool CanTalkTo(Player* player, Creature* creature, GossipMenuItems const& gso);
+ bool CanTalkTo(Player* player, Creature* creature, GossipMenuItems const& gso) override;
uint32 GetGraveYardState() const;
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp
index 2b5ad18022a..9667b4e3bb0 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp
@@ -93,7 +93,7 @@ class boss_ambassador_hellmaw : public CreatureScript
{
}
- void DoAction(int32 actionId)
+ void DoAction(int32 actionId) override
{
if (actionId == ACTION_AMBASSADOR_HELLMAW_INTRO)
DoIntro();
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp
index 9d2737c8ba5..f984272f4d5 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp
@@ -92,7 +92,7 @@ class instance_shadow_labyrinth : public InstanceMapScript
}
}
- void OnUnitDeath(Unit* unit)
+ void OnUnitDeath(Unit* unit) override
{
Creature* creature = unit->ToCreature();
if (!creature)
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
index 2750476db76..096777163a6 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
@@ -280,7 +280,7 @@ public:
Map::PlayerList const &PlayerList = map->GetPlayers();
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if (i->GetSource() && i->GetSource()->IsAlive() && me->HasInArc(float(diff/20000*M_PI*2), i->GetSource()) && me->IsWithinDist(i->GetSource(), SPOUT_DIST) && !i->GetSource()->IsInWater())
+ if (i->GetSource() && i->GetSource()->IsAlive() && me->HasInArc(diff/20000.f*float(M_PI)*2.f, i->GetSource()) && me->IsWithinDist(i->GetSource(), SPOUT_DIST) && !i->GetSource()->IsInWater())
DoCast(i->GetSource(), SPELL_SPOUT, true); // only knock back players in arc, in 100yards, not in water
}
}
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp
index 30444caa496..4cc522c7523 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp
@@ -43,7 +43,7 @@ class go_main_chambers_access_panel : public GameObjectScript
}
};
-ObjectData const gameObjectData[] =
+ObjectData const gameObjectData[] =
{
{ GO_ACCESS_PANEL_HYDRO, DATA_ACCESS_PANEL_HYDRO },
{ GO_ACCESS_PANEL_MEK, DATA_ACCESS_PANEL_MEK },
diff --git a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp
index 374ce3cd957..88dbeff09f5 100644
--- a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp
+++ b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp
@@ -123,7 +123,7 @@ public:
instance->SetBossState(DATA_MAULGAR, DONE);
}
- void DoAction(int32 actionId)
+ void DoAction(int32 actionId) override
{
if (actionId == ACTION_ADD_DEATH)
Talk(SAY_OGRE_DEATH);
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp
index 0d7fe11956b..7d00cd97126 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp
@@ -416,7 +416,7 @@ class npc_omrogg_heads : public CreatureScript
void EnterCombat(Unit* /*who*/) override { }
- void SetData(uint32 data, uint32 value)
+ void SetData(uint32 data, uint32 value) override
{
if (data == SETDATA_DATA && value == SETDATA_YELL)
{
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp
index ee12d8c4d0d..6021e38d3cf 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp
@@ -316,10 +316,10 @@ class boss_high_astromancer_solarian : public CreatureScript
Portals[i][2] = PORTAL_Z;
}
}
- if ((abs(Portals[2][0] - Portals[1][0]) < 7) && (abs(Portals[2][1] - Portals[1][1]) < 7))
+ if ((std::abs(Portals[2][0] - Portals[1][0]) < 7) && (std::abs(Portals[2][1] - Portals[1][1]) < 7))
{
int i=1;
- if (abs(CENTER_X + 26.0f - Portals[2][0]) < 7)
+ if (std::abs(CENTER_X + 26.0f - Portals[2][0]) < 7)
i = -1;
Portals[2][0] = Portals[2][0]+7*i;
Portals[2][1] = Portal_Y(Portals[2][0], LARGE_PORTAL_RADIUS);
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp
index 4955a2201e5..b2d63315029 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp
@@ -42,7 +42,7 @@ class instance_mechanar : public InstanceMapScript
LoadDoorData(doorData);
}
- void OnGameObjectCreate(GameObject* gameObject)
+ void OnGameObjectCreate(GameObject* gameObject) override
{
switch (gameObject->GetEntry())
{
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
index 213f31b280f..03e2154792b 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
@@ -283,7 +283,7 @@ class boss_harbinger_skyriss_illusion : public CreatureScript
{
boss_harbinger_skyriss_illusionAI(Creature* creature) : ScriptedAI(creature) { }
- void Reset() override
+ void Reset() override
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
index 72355b05ec1..aaf006f6c5f 100644
--- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
+++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
@@ -24,12 +24,9 @@ SDCategory: Blade's Edge Mountains
EndScriptData */
/* ContentData
-npc_bloodmaul_brutebane
-npc_bloodmaul_brute
npc_nether_drake
npc_daranelle
go_legion_obelisk
-go_thunderspike
EndContentData */
#include "ScriptMgr.h"
@@ -45,171 +42,6 @@ EndContentData */
#include "SpellAuraEffects.h"
/*######
-## npc_bloodmaul_brutebane
-######*/
-
-enum Bloodmaul
-{
- NPC_OGRE_BRUTE = 19995,
- NPC_QUEST_CREDIT = 21241,
- GO_KEG = 184315,
- QUEST_GETTING_THE_BLADESPIRE_TANKED = 10512,
- QUEST_BLADESPIRE_KEGGER = 10545
-};
-
-class npc_bloodmaul_brutebane : public CreatureScript
-{
-public:
- npc_bloodmaul_brutebane() : CreatureScript("npc_bloodmaul_brutebane") { }
-
- struct npc_bloodmaul_brutebaneAI : public ScriptedAI
- {
- npc_bloodmaul_brutebaneAI(Creature* creature) : ScriptedAI(creature)
- {
- if (Creature* Ogre = me->FindNearestCreature(NPC_OGRE_BRUTE, 50, true))
- {
- Ogre->SetReactState(REACT_DEFENSIVE);
- Ogre->GetMotionMaster()->MovePoint(1, me->GetPositionX()-1, me->GetPositionY()+1, me->GetPositionZ());
- }
- }
-
- void UpdateAI(uint32 /*diff*/) override { }
- };
-
- CreatureAI* GetAI(Creature* creature) const override
- {
- return new npc_bloodmaul_brutebaneAI(creature);
- }
-};
-
-/*######
-## npc_bloodmaul_brute
-######*/
-
-enum BloodmaulBrute
-{
- EVENT_CLEAVE = 1,
- EVENT_DEBILITATING_STRIKE = 2,
- SAY_AGGRO = 0,
- SAY_DEATH = 1,
- SAY_ENRAGE = 2,
- SPELL_CLEAVE = 15496,
- SPELL_DEBILITATING_STRIKE = 37577,
- SPELL_ENRAGE = 8599,
- QUEST_INTO_THE_SOULGRINDER = 11000
-};
-
-class npc_bloodmaul_brute : public CreatureScript
-{
-public:
- npc_bloodmaul_brute() : CreatureScript("npc_bloodmaul_brute") { }
-
- struct npc_bloodmaul_bruteAI : public ScriptedAI
- {
- npc_bloodmaul_bruteAI(Creature* creature) : ScriptedAI(creature)
- {
- hp30 = false;
- }
-
- void Reset() override
- {
- PlayerGUID.Clear();
- hp30 = false;
- }
-
- void EnterCombat(Unit* /*who*/) override
- {
- if (urand (0, 100) < 35)
- Talk(SAY_AGGRO);
-
- events.ScheduleEvent(EVENT_CLEAVE, urand(9000,12000));
- events.ScheduleEvent(EVENT_DEBILITATING_STRIKE, 15000);
- }
-
- void JustDied(Unit* killer) override
- {
- if (killer->GetTypeId() == TYPEID_PLAYER)
- if (killer->ToPlayer()->GetQuestRewardStatus(QUEST_INTO_THE_SOULGRINDER))
- Talk(SAY_DEATH);
- }
-
- void MoveInLineOfSight(Unit* who) override
- {
- if (!who || (!who->IsAlive()))
- return;
-
- if (me->IsWithinDistInMap(who, 50.0f))
- {
- if (who->GetTypeId() == TYPEID_PLAYER)
- if (who->ToPlayer()->GetQuestStatus(QUEST_GETTING_THE_BLADESPIRE_TANKED) == QUEST_STATUS_INCOMPLETE
- || who->ToPlayer()->GetQuestStatus(QUEST_BLADESPIRE_KEGGER) == QUEST_STATUS_INCOMPLETE)
- PlayerGUID = who->GetGUID();
- }
- }
-
- void MovementInform(uint32 /*type*/, uint32 id) override
- {
- if (id == 1)
- {
- if (GameObject* Keg = me->FindNearestGameObject(GO_KEG, 20))
- Keg->Delete();
-
- me->HandleEmoteCommand(7);
- me->SetReactState(REACT_AGGRESSIVE);
- me->GetMotionMaster()->MoveTargetedHome();
-
- Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID);
- Creature* Credit = me->FindNearestCreature(NPC_QUEST_CREDIT, 50, true);
- if (player && Credit)
- player->KilledMonster(Credit->GetCreatureTemplate(), Credit->GetGUID());
- }
- }
-
- void UpdateAI(uint32 diff) override
- {
- if (!UpdateVictim())
- return;
-
- events.Update(diff);
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_CLEAVE:
- DoCast(me, SPELL_CLEAVE);
- events.ScheduleEvent(EVENT_CLEAVE, urand(9000,12000));
- break;
- case EVENT_DEBILITATING_STRIKE:
- DoCastVictim(SPELL_DEBILITATING_STRIKE);
- events.ScheduleEvent(EVENT_DEBILITATING_STRIKE, urand(18000,22000));
- break;
- }
- }
-
- if (!hp30 && HealthBelowPct(30))
- {
- hp30 = true;
- Talk(SAY_ENRAGE);
- DoCast(me, SPELL_ENRAGE);
- }
-
- DoMeleeAttackIfReady();
- }
-
- private:
- EventMap events;
- ObjectGuid PlayerGUID;
- bool hp30;
- };
-
- CreatureAI* GetAI(Creature* creature) const override
- {
- return new npc_bloodmaul_bruteAI(creature);
- }
-};
-
-/*######
## npc_nether_drake
######*/
@@ -507,31 +339,6 @@ public:
}
};
-/*######
-## go_thunderspike
-######*/
-
-enum TheThunderspike
-{
- NPC_GOR_GRIMGUT = 21319,
- QUEST_THUNDERSPIKE = 10526,
-};
-
-class go_thunderspike : public GameObjectScript
-{
- public:
- go_thunderspike() : GameObjectScript("go_thunderspike") { }
-
- bool OnGossipHello(Player* player, GameObject* go) override
- {
- if (player->GetQuestStatus(QUEST_THUNDERSPIKE) == QUEST_STATUS_INCOMPLETE && !go->FindNearestCreature(NPC_GOR_GRIMGUT, 25.0f, true))
- if (Creature* gorGrimgut = go->SummonCreature(NPC_GOR_GRIMGUT, -2413.4f, 6914.48f, 25.01f, 3.67f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 300000))
- gorGrimgut->AI()->AttackStart(player);
-
- return true;
- }
-};
-
enum SimonGame
{
NPC_SIMON_BUNNY = 22923,
@@ -1219,12 +1026,9 @@ class spell_oscillating_field : public SpellScriptLoader
void AddSC_blades_edge_mountains()
{
- new npc_bloodmaul_brutebane();
- new npc_bloodmaul_brute();
new npc_nether_drake();
new npc_daranelle();
new go_legion_obelisk();
- new go_thunderspike();
new npc_simon_bunny();
new go_simon_cluster();
new go_apexis_relic();
diff --git a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
index 97777cd5f6e..2a568a84a7c 100644
--- a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
+++ b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
@@ -289,7 +289,7 @@ public:
summoned->AI()->AttackStart(me);
}
- void sQuestAccept(Player* player, Quest const* quest)
+ void sQuestAccept(Player* player, Quest const* quest) override
{
if (quest->GetQuestId() == QUEST_ROAD_TO_FALCON_WATCH)
{
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp
index 9843a472971..b290cb75a2b 100644
--- a/src/server/scripts/Spells/spell_item.cpp
+++ b/src/server/scripts/Spells/spell_item.cpp
@@ -477,7 +477,7 @@ class spell_item_flask_of_the_north : public SpellScriptLoader
break;
}
- caster->CastSpell(caster, possibleSpells[irand(0, (possibleSpells.size() - 1))], true, NULL);
+ caster->CastSpell(caster, possibleSpells[urand(0, (possibleSpells.size() - 1))], true, NULL);
}
void Register() override
diff --git a/src/server/shared/Dynamic/ObjectRegistry.h b/src/server/shared/Dynamic/ObjectRegistry.h
index be253f947a7..1eb9368be61 100644
--- a/src/server/shared/Dynamic/ObjectRegistry.h
+++ b/src/server/shared/Dynamic/ObjectRegistry.h
@@ -47,12 +47,12 @@ class ObjectRegistry
}
/// Inserts a registry item
- bool InsertItem(T *obj, Key key, bool override = false)
+ bool InsertItem(T *obj, Key key, bool _override = false)
{
typename RegistryMapType::iterator iter = i_registeredObjects.find(key);
if ( iter != i_registeredObjects.end() )
{
- if ( !override )
+ if ( !_override )
return false;
delete iter->second;
i_registeredObjects.erase(iter);
diff --git a/src/server/shared/Logging/Log.h b/src/server/shared/Logging/Log.h
index d4653960b15..e22a06e635e 100644
--- a/src/server/shared/Logging/Log.h
+++ b/src/server/shared/Logging/Log.h
@@ -64,7 +64,7 @@ class Log
template<typename... Args>
inline void outMessage(std::string const& filter, LogLevel const level, const char* fmt, Args const&... args)
{
- write(std::move(std::unique_ptr<LogMessage>(new LogMessage(level, filter, std::move(Trinity::StringFormat(fmt, args...))))));
+ write(std::unique_ptr<LogMessage>(new LogMessage(level, filter, Trinity::StringFormat(fmt, args...))));
}
template<typename... Args>
diff --git a/src/server/shared/Networking/Socket.h b/src/server/shared/Networking/Socket.h
index f7a1b954cb0..396d4bb3aab 100644
--- a/src/server/shared/Networking/Socket.h
+++ b/src/server/shared/Networking/Socket.h
@@ -62,7 +62,7 @@ public:
return false;
#ifndef TC_SOCKET_USE_IOCP
- std::unique_lock<std::mutex> guard(_writeLock, std::try_to_lock);
+ std::unique_lock<std::mutex> guard(_writeLock);
if (!guard)
return true;
@@ -140,6 +140,8 @@ public:
if (shutdownError)
TC_LOG_DEBUG("network", "Socket::CloseSocket: %s errored when shutting down socket: %i (%s)", GetRemoteIpAddress().to_string().c_str(),
shutdownError.value(), shutdownError.message().c_str());
+
+ OnClose();
}
/// Marks the socket for closing after write buffer becomes empty
@@ -148,6 +150,8 @@ public:
MessageBuffer& GetReadBuffer() { return _readBuffer; }
protected:
+ virtual void OnClose() { }
+
virtual void ReadHandler() = 0;
bool AsyncProcessQueue(std::unique_lock<std::mutex>&)
diff --git a/src/server/shared/Updater/DBUpdater.cpp b/src/server/shared/Updater/DBUpdater.cpp
index 5918fe06b55..e5c571e4517 100644
--- a/src/server/shared/Updater/DBUpdater.cpp
+++ b/src/server/shared/Updater/DBUpdater.cpp
@@ -239,11 +239,19 @@ bool DBUpdater<T>::Update(DatabaseWorkerPool<T>& pool)
[&](Path const& file) { DBUpdater<T>::ApplyFile(pool, file); },
[&](std::string const& query) -> QueryResult { return DBUpdater<T>::Retrieve(pool, query); });
- uint32 const count = updateFetcher.Update(
- sConfigMgr->GetBoolDefault("Updates.Redundancy", true),
- sConfigMgr->GetBoolDefault("Updates.AllowRehash", true),
- sConfigMgr->GetBoolDefault("Updates.ArchivedRedundancy", false),
- sConfigMgr->GetIntDefault("Updates.CleanDeadRefMaxCount", 3));
+ uint32 count;
+ try
+ {
+ count = updateFetcher.Update(
+ sConfigMgr->GetBoolDefault("Updates.Redundancy", true),
+ sConfigMgr->GetBoolDefault("Updates.AllowRehash", true),
+ sConfigMgr->GetBoolDefault("Updates.ArchivedRedundancy", false),
+ sConfigMgr->GetIntDefault("Updates.CleanDeadRefMaxCount", 3));
+ }
+ catch (UpdateException&)
+ {
+ return false;
+ }
if (!count)
TC_LOG_INFO("sql.updates", ">> %s database is up-to-date!", DBUpdater<T>::GetTableName().c_str());
@@ -298,7 +306,14 @@ bool DBUpdater<T>::Populate(DatabaseWorkerPool<T>& pool)
// Update database
TC_LOG_INFO("sql.updates", ">> Applying \'%s\'...", base.generic_string().c_str());
- ApplyFile(pool, base);
+ try
+ {
+ ApplyFile(pool, base);
+ }
+ catch (UpdateException&)
+ {
+ return false;
+ }
TC_LOG_INFO("sql.updates", ">> Done!");
return true;
diff --git a/src/server/shared/Updater/UpdateFetcher.cpp b/src/server/shared/Updater/UpdateFetcher.cpp
index 2b12f39780c..a4bdd193743 100644
--- a/src/server/shared/Updater/UpdateFetcher.cpp
+++ b/src/server/shared/Updater/UpdateFetcher.cpp
@@ -158,7 +158,7 @@ uint32 UpdateFetcher::Update(bool const redundancyChecks, bool const allowRehash
{
LocaleFileStorage const available = GetFileList();
AppliedFileStorage applied = ReceiveAppliedFiles();
-
+
// Fill hash to name cache
HashToFileNameStorage hashToName;
for (auto entry : applied)
diff --git a/src/server/shared/Updater/UpdateFetcher.h b/src/server/shared/Updater/UpdateFetcher.h
index 094e353f274..fa142547873 100644
--- a/src/server/shared/Updater/UpdateFetcher.h
+++ b/src/server/shared/Updater/UpdateFetcher.h
@@ -27,7 +27,7 @@
class UpdateFetcher
{
- using Path = boost::filesystem::path;
+ typedef boost::filesystem::path Path;
public:
UpdateFetcher(Path const& updateDirectory,
@@ -53,6 +53,9 @@ private:
struct AppliedFileEntry
{
+ AppliedFileEntry(std::string const& name_, std::string const& hash_, State state_, uint64 timestamp_)
+ : name(name_), hash(hash_), state(state_), timestamp(timestamp_) { }
+
std::string const name;
std::string const hash;
@@ -79,12 +82,14 @@ private:
struct DirectoryEntry
{
+ DirectoryEntry(Path const& path_, State state_) : path(path_), state(state_) { }
+
Path const path;
State const state;
};
- using LocaleFileEntry = std::pair<Path, State>;
+ typedef std::pair<Path, State> LocaleFileEntry;
struct PathCompare
{
@@ -94,11 +99,11 @@ private:
}
};
- using LocaleFileStorage = std::set<LocaleFileEntry, PathCompare>;
- using HashToFileNameStorage = std::unordered_map<std::string, std::string>;
- using AppliedFileStorage = std::unordered_map<std::string, AppliedFileEntry>;
- using DirectoryStorage = std::vector<UpdateFetcher::DirectoryEntry>;
- using SQLUpdate = std::shared_ptr<std::string>;
+ typedef std::set<LocaleFileEntry, PathCompare> LocaleFileStorage;
+ typedef std::unordered_map<std::string, std::string> HashToFileNameStorage;
+ typedef std::unordered_map<std::string, AppliedFileEntry> AppliedFileStorage;
+ typedef std::vector<UpdateFetcher::DirectoryEntry> DirectoryStorage;
+ typedef std::shared_ptr<std::string> SQLUpdate;
LocaleFileStorage GetFileList() const;
void FillFileListRecursively(Path const& path, LocaleFileStorage& storage, State const state, uint32 const depth) const;
diff --git a/src/server/shared/Utilities/ServiceWin32.cpp b/src/server/shared/Utilities/ServiceWin32.cpp
index c73949fc6a3..3e5e416b1a3 100644
--- a/src/server/shared/Utilities/ServiceWin32.cpp
+++ b/src/server/shared/Utilities/ServiceWin32.cpp
@@ -255,7 +255,7 @@ bool WinServiceRun()
if (!StartServiceCtrlDispatcher(serviceTable))
{
- TC_LOG_ERROR("server.worldserver", "StartService Failed. Error [%u]", ::GetLastError());
+ TC_LOG_ERROR("server.worldserver", "StartService Failed. Error [%u]", uint32(::GetLastError()));
return false;
}
return true;
diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp
index fbf2c74ac0b..430c3ce4d73 100644
--- a/src/server/worldserver/Main.cpp
+++ b/src/server/worldserver/Main.cpp
@@ -308,7 +308,7 @@ void ShutdownCLIThread(std::thread* cliThread)
errorBuffer = "Unknown error";
TC_LOG_DEBUG("server.worldserver", "Error cancelling I/O of CliThread, error code %u, detail: %s",
- errorCode, errorBuffer);
+ uint32(errorCode), errorBuffer);
LocalFree(errorBuffer);
// send keyboard input to safely unblock the CLI thread
diff --git a/src/tools/map_extractor/System.cpp b/src/tools/map_extractor/System.cpp
index a573f9fecc8..dcaa3ba0a76 100644
--- a/src/tools/map_extractor/System.cpp
+++ b/src/tools/map_extractor/System.cpp
@@ -63,8 +63,9 @@ typedef struct
map_id *map_ids;
uint16 *areas;
uint16 *LiqType;
-char output_path[128] = ".";
-char input_path[128] = ".";
+#define MAX_PATH_LENGTH 128
+char output_path[MAX_PATH_LENGTH] = ".";
+char input_path[MAX_PATH_LENGTH] = ".";
uint32 maxAreaId = 0;
// **************************************************
@@ -143,11 +144,11 @@ void Usage(char* prg)
printf(
"Usage:\n"\
"%s -[var] [value]\n"\
- "-i set input path\n"\
- "-o set output path\n"\
+ "-i set input path (max %d characters)\n"\
+ "-o set output path (max %d characters)\n"\
"-e extract only MAP(1)/DBC(2) - standard: both(3)\n"\
"-f height stored as int (less map size but lost some accuracy) 1 by default\n"\
- "Example: %s -f 0 -i \"c:\\games\\game\"", prg, prg);
+ "Example: %s -f 0 -i \"c:\\games\\game\"", prg, MAX_PATH_LENGTH - 1, MAX_PATH_LENGTH - 1, prg);
exit(1);
}
@@ -166,14 +167,20 @@ void HandleArgs(int argc, char * arg[])
switch(arg[c][1])
{
case 'i':
- if(c + 1 < argc) // all ok
- strcpy(input_path, arg[(c++) + 1]);
+ if (c + 1 < argc && strlen(arg[c + 1]) < MAX_PATH_LENGTH) // all ok
+ {
+ strncpy(input_path, arg[c++ + 1], MAX_PATH_LENGTH);
+ input_path[MAX_PATH_LENGTH - 1] = '\0';
+ }
else
Usage(arg[0]);
break;
case 'o':
- if(c + 1 < argc) // all ok
- strcpy(output_path, arg[(c++) + 1]);
+ if (c + 1 < argc && strlen(arg[c + 1]) < MAX_PATH_LENGTH) // all ok
+ {
+ strncpy(output_path, arg[c++ + 1], MAX_PATH_LENGTH);
+ output_path[MAX_PATH_LENGTH - 1] = '\0';
+ }
else
Usage(arg[0]);
break;
@@ -250,7 +257,17 @@ uint32 ReadMapDBC()
for(uint32 x = 0; x < map_count; ++x)
{
map_ids[x].id = dbc.getRecord(x).getUInt(0);
- strcpy(map_ids[x].name, dbc.getRecord(x).getString(1));
+
+ const char* map_name = dbc.getRecord(x).getString(1);
+ size_t max_map_name_length = sizeof(map_ids[x].name);
+ if (strlen(map_name) >= max_map_name_length)
+ {
+ printf("Fatal error: Map name too long!\n");
+ exit(1);
+ }
+
+ strncpy(map_ids[x].name, map_name, max_map_name_length);
+ map_ids[x].name[max_map_name_length - 1] = '\0';
}
printf("Done! (%u maps loaded)\n", (uint32)map_count);
return map_count;
diff --git a/src/tools/vmap4_assembler/CMakeLists.txt b/src/tools/vmap4_assembler/CMakeLists.txt
index c0ff9e9a153..dfd6c7d4dd4 100644
--- a/src/tools/vmap4_assembler/CMakeLists.txt
+++ b/src/tools/vmap4_assembler/CMakeLists.txt
@@ -16,7 +16,6 @@ include_directories(
${CMAKE_SOURCE_DIR}/src/server/collision
${CMAKE_SOURCE_DIR}/src/server/collision/Maps
${CMAKE_SOURCE_DIR}/src/server/collision/Models
- ${ACE_INCLUDE_DIR}
${ZLIB_INCLUDE_DIR}
)
diff --git a/src/tools/vmap4_extractor/vmapexport.cpp b/src/tools/vmap4_extractor/vmapexport.cpp
index 4cec49ef333..7a12897563e 100644
--- a/src/tools/vmap4_extractor/vmapexport.cpp
+++ b/src/tools/vmap4_extractor/vmapexport.cpp
@@ -197,7 +197,7 @@ bool ExtractSingleWmo(std::string& fname)
for (uint32 i = 0; i < froot.nGroups; ++i)
{
char temp[1024];
- strcpy(temp, fname.c_str());
+ strncpy(temp, fname.c_str(), 1024);
temp[fname.length()-4] = 0;
char groupFileName[1024];
sprintf(groupFileName, "%s_%03u.wmo", temp, i);
@@ -395,7 +395,9 @@ bool processArgv(int argc, char ** argv, const char *versionString)
if((i+1)<argc)
{
hasInputPathParam = true;
- strcpy(input_path, argv[i+1]);
+ strncpy(input_path, argv[i + 1], sizeof(input_path));
+ input_path[sizeof(input_path) - 1] = '\0';
+
if (input_path[strlen(input_path) - 1] != '\\' && input_path[strlen(input_path) - 1] != '/')
strcat(input_path, "/");
++i;
@@ -511,11 +513,22 @@ int main(int argc, char ** argv)
map_ids=new map_id[map_count];
for (unsigned int x=0;x<map_count;++x)
{
- map_ids[x].id=dbc->getRecord (x).getUInt(0);
- strcpy(map_ids[x].name,dbc->getRecord(x).getString(1));
- printf("Map - %s\n",map_ids[x].name);
- }
+ map_ids[x].id = dbc->getRecord(x).getUInt(0);
+
+ const char* map_name = dbc->getRecord(x).getString(1);
+ size_t max_map_name_length = sizeof(map_ids[x].name);
+ if (strlen(map_name) >= max_map_name_length)
+ {
+ delete dbc;
+ delete[] map_ids;
+ printf("FATAL ERROR: Map name too long.\n");
+ return 1;
+ }
+ strncpy(map_ids[x].name, map_name, max_map_name_length);
+ map_ids[x].name[max_map_name_length - 1] = '\0';
+ printf("Map - %s\n", map_ids[x].name);
+ }
delete dbc;
ParsMapFiles();