aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/2014_10_22_00_world.sql740
-rw-r--r--sql/updates/world/2014_10_23_00_world.sql57
-rw-r--r--sql/updates/world/2014_10_23_01_world.sql44
-rw-r--r--sql/updates/world/2014_10_24_00_world.sql3
-rw-r--r--sql/updates/world/2014_10_24_01_world.sql73
-rw-r--r--src/server/game/AuctionHouse/AuctionHouseMgr.cpp21
-rw-r--r--src/server/game/AuctionHouseBot/AuctionHouseBot.cpp2
-rw-r--r--src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp10
-rw-r--r--src/server/game/Entities/Object/Object.cpp9
-rw-r--r--src/server/game/Entities/Object/Object.h1
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp105
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp9
-rw-r--r--src/server/scripts/EasternKingdoms/zone_hinterlands.cpp25
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp50
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp7
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp3
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp2
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_illidan.cpp19
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp7
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp7
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp9
-rw-r--r--src/server/scripts/Outland/zone_shadowmoon_valley.cpp14
-rw-r--r--src/server/scripts/World/npcs_special.cpp39
23 files changed, 1061 insertions, 195 deletions
diff --git a/sql/updates/world/2014_10_22_00_world.sql b/sql/updates/world/2014_10_22_00_world.sql
new file mode 100644
index 00000000000..d82916f71b8
--- /dev/null
+++ b/sql/updates/world/2014_10_22_00_world.sql
@@ -0,0 +1,740 @@
+DELETE FROM `creature_formations` WHERE `leaderGUID`=62078;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES
+(62078, 62078, 0, 0, 2),
+(62078, 62079, 3, 270, 2);
+-- Pathing for Falcon Watch Ranger Entry: 17282 'TDB FORMAT'
+SET @NPC := 62078;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-629.019,`position_y`=4192.389,`position_z`=57.64539 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,-629.019,4192.389,57.64539,0,0,0,0,100,0),
+(@PATH,2,-621.6304,4173.827,61.96607,0,0,0,0,100,0),
+(@PATH,3,-622.502,4158.439,63.49118,0,0,0,0,100,0),
+(@PATH,4,-626.5296,4154.957,63.95884,0,0,0,0,100,0),
+(@PATH,5,-651.3042,4148.643,64.13602,0,0,0,0,100,0),
+(@PATH,6,-675.8679,4147.251,64.25542,0,0,0,0,100,0),
+(@PATH,7,-681.183,4148.146,64.05803,0,0,0,0,100,0),
+(@PATH,8,-685.1898,4154.62,62.10221,0,0,0,0,100,0),
+(@PATH,9,-681.183,4148.146,64.05803,0,0,0,0,100,0),
+(@PATH,10,-675.8679,4147.251,64.25542,0,0,0,100,0,0),
+(@PATH,11,-651.3042,4148.643,64.13602,0,0,0,100,0,0),
+(@PATH,12,-626.5296,4154.957,63.95884,0,0,0,100,0,0),
+(@PATH,13,-622.502,4158.439,63.49118,0,0,0,0,100,0),
+(@PATH,14,-621.6304,4173.827,61.96607,0,0,0,0,100,0);
+-- 0xF1304382000001F6 .go -629.019 4192.389 57.64539
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=62071;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES
+(62071, 62071, 0, 0, 2),
+(62071, 62072, 3, 270, 2);
+-- Pathing for Falcon Watch Ranger Entry: 17282 'TDB FORMAT'
+SET @NPC := 62071;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-675.9752,`position_y`=4123.217,`position_z`=71.49055 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,-675.9752,4123.217,71.49055,0,0,0,0,100,0),
+(@PATH,2,-667.9762,4105.698,74.97163,0,0,0,0,100,0),
+(@PATH,3,-657.7415,4100.645,76.97929,0,0,0,0,100,0),
+(@PATH,4,-651.0581,4099.75,78.30082,0,0,0,0,100,0),
+(@PATH,5,-625.8835,4117.14,85.77901,0,0,0,0,100,0),
+(@PATH,6,-618.1641,4119.265,87.95321,0,0,0,0,100,0),
+(@PATH,7,-613.8455,4116.438,88.72933,0,0,0,0,100,0),
+(@PATH,8,-609.5286,4107.644,89.57821,0,0,0,0,100,0),
+(@PATH,9,-605.4523,4099.278,90.67792,0,0,0,0,100,0),
+(@PATH,10,-609.5286,4107.644,89.57821,0,0,0,0,100,0),
+(@PATH,11,-613.8455,4116.438,88.72933,0,0,0,0,100,0),
+(@PATH,12,-618.0453,4119.296,87.99764,0,0,0,0,100,0),
+(@PATH,13,-625.8835,4117.14,85.77901,0,0,0,0,100,0),
+(@PATH,14,-651.0581,4099.75,78.30082,0,0,0,0,100,0),
+(@PATH,15,-657.7415,4100.645,76.97929,0,0,0,0,100,0),
+(@PATH,16,-667.9762,4105.698,74.97163,0,0,0,0,100,0);
+-- 0xF130438200000203 .go -675.9752 4123.217 71.49055
+
+-- Pathing for Fel Reaver Sentry Entry: 19400 'TDB FORMAT'
+SET @NPC := 69269;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=841.6395,`position_y`=1689.614,`position_z`=90.07014 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,841.6395,1689.614,90.07014,0,0,0,0,100,0),
+(@PATH,2,867.4593,1703.877,93.98136,0,0,0,0,100,0),
+(@PATH,3,883.9453,1719.914,103.4624,0,0,0,0,100,0),
+(@PATH,4,901.7276,1737.668,108.8486,0,0,0,0,100,0),
+(@PATH,5,925.8362,1759.348,114.9691,0,0,0,0,100,0),
+(@PATH,6,949.9918,1786.468,116.046,0,0,0,0,100,0),
+(@PATH,7,949.2334,1807.447,122.9417,0,0,0,0,100,0),
+(@PATH,8,936.9502,1821.957,129.3167,0,0,0,0,100,0),
+(@PATH,9,913.5515,1845.213,135.3171,0,0,0,0,100,0),
+(@PATH,10,883.2,1836.917,134.6228,0,0,0,0,100,0),
+(@PATH,11,853.3008,1819.786,131.9458,0,0,0,0,100,0),
+(@PATH,12,836.468,1800.237,129.0998,0,0,0,0,100,0),
+(@PATH,13,814.9409,1779.049,122.9544,0,0,0,0,100,0),
+(@PATH,14,797.8151,1759.883,121.9306,0,0,0,0,100,0),
+(@PATH,15,853.3008,1819.786,131.9458,0,0,0,0,100,0),
+(@PATH,16,883.2,1836.917,134.6228,0,0,0,0,100,0),
+(@PATH,17,913.5515,1845.213,135.3171,0,0,0,0,100,0),
+(@PATH,18,936.7758,1822.166,129.2615,0,0,0,0,100,0),
+(@PATH,19,949.1699,1807.768,122.9417,0,0,0,0,100,0),
+(@PATH,20,949.9918,1786.468,116.046,0,0,0,0,100,0),
+(@PATH,21,925.8362,1759.348,114.9691,0,0,0,0,100,0),
+(@PATH,22,901.7276,1737.668,108.8486,0,0,0,0,100,0),
+(@PATH,23,884.1349,1720.105,103.6044,0,0,0,0,100,0),
+(@PATH,24,867.6484,1704.068,93.83744,0,0,0,0,100,0);
+-- 0xF1304BC80028E16A .go 841.6395 1689.614 90.07014
+
+-- Pathing for Fel Reaver Sentry Entry: 19400 'TDB FORMAT'
+SET @NPC := 69270;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=659.7363,`position_y`=1763.506,`position_z`=106.5907 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,659.7363,1763.506,106.5907,0,0,0,0,100,0),
+(@PATH,2,669.4771,1746.458,101.607,0,0,0,0,100,0),
+(@PATH,3,708.5544,1739.732,95.92836,0,0,0,0,100,0),
+(@PATH,4,734.1808,1734.606,105.1162,0,0,0,0,100,0),
+(@PATH,5,761.6609,1713.364,99.16853,0,0,0,0,100,0),
+(@PATH,6,774.5371,1705.658,99.41525,0,0,0,0,100,0),
+(@PATH,7,797.5067,1693.782,101.7913,0,0,0,0,100,0),
+(@PATH,8,836.5253,1693.207,89.73896,0,0,0,0,100,0),
+(@PATH,9,866.4222,1694.923,85.77412,0,0,0,0,100,0),
+(@PATH,10,883.9918,1697.324,92.16645,0,0,0,0,100,0),
+(@PATH,11,910.6517,1700.273,91.64384,0,0,0,0,100,0),
+(@PATH,12,953.0062,1715.017,94.01591,0,0,0,0,100,0),
+(@PATH,13,974.775,1725.138,98.3354,0,0,0,0,100,0),
+(@PATH,14,1005.147,1727.986,99.30927,0,0,0,0,100,0),
+(@PATH,15,1028.035,1734.651,99.20609,0,0,0,0,100,0),
+(@PATH,16,1050.97,1749.701,97.90122,0,0,0,0,100,0),
+(@PATH,17,1071.688,1760.824,108.7394,0,0,0,0,100,0),
+(@PATH,18,1110.738,1757.574,107.745,0,0,0,0,100,0),
+(@PATH,19,1123.154,1771.503,109.9211,0,0,0,0,100,0),
+(@PATH,20,1144.951,1802.16,117.535,0,0,0,0,100,0),
+(@PATH,21,1112.819,1818.768,122.2385,0,0,0,0,100,0),
+(@PATH,22,1097.934,1828.336,123.6704,0,0,0,0,100,0),
+(@PATH,23,1067.804,1849.203,128.4701,0,0,0,0,100,0),
+(@PATH,24,1042.273,1860.518,135.9951,0,0,0,0,100,0),
+(@PATH,25,1007.047,1865.235,138.383,0,0,0,0,100,0),
+(@PATH,26,961.6607,1871.546,137.3225,0,0,0,0,100,0),
+(@PATH,27,931.3427,1865.205,141.0557,0,0,0,0,100,0),
+(@PATH,28,908.8201,1856.518,139.9505,0,0,0,0,100,0),
+(@PATH,29,887.0521,1854.749,139.5275,0,0,0,0,100,0),
+(@PATH,30,861.2733,1852.889,138.8461,0,0,0,0,100,0),
+(@PATH,31,827.5533,1846.062,136.5966,0,0,0,0,100,0),
+(@PATH,32,798.132,1841.53,138.1245,0,0,0,0,100,0),
+(@PATH,33,774.5369,1842.917,139.7464,0,0,0,0,100,0),
+(@PATH,34,737.4844,1832.87,138.533,0,0,0,0,100,0),
+(@PATH,35,721.3911,1820.312,130.8882,0,0,0,0,100,0),
+(@PATH,36,699.2368,1807.127,127.6155,0,0,0,0,100,0),
+(@PATH,37,684.8922,1806.309,125.14,0,0,0,0,100,0),
+(@PATH,38,668.5555,1796.127,115.3672,0,0,0,0,100,0),
+(@PATH,39,659.9813,1788.506,111.5436,0,0,0,0,100,0);
+-- 0xF1304BC8002E44E3 .go 659.7363 1763.506 106.5907
+
+-- Pathing for Fel Reaver Sentry Entry: 19400 'TDB FORMAT'
+SET @NPC := 69268;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=646.6895,`position_y`=1839.964,`position_z`=125.4547 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,646.6895,1839.964,125.4547,0,0,0,0,100,0),
+(@PATH,2,677.3864,1853.214,136.5473,0,0,0,0,100,0),
+(@PATH,3,706.0801,1857.406,144.2836,0,0,0,0,100,0),
+(@PATH,4,743.8764,1858.599,143.2042,0,0,0,0,100,0),
+(@PATH,5,767.1149,1850.769,141.3968,0,0,0,0,100,0),
+(@PATH,6,785.2659,1849.53,140.8406,0,0,0,0,100,0),
+(@PATH,7,823.7284,1848.935,137.2863,0,0,0,0,100,0),
+(@PATH,8,844.7641,1840.815,135.6642,0,0,0,0,100,0),
+(@PATH,9,870.2305,1846.021,136.8876,0,0,0,0,100,0),
+(@PATH,10,901.0831,1843.449,135.5533,0,0,0,0,100,0),
+(@PATH,11,938.9086,1840.775,133.339,0,0,0,0,100,0),
+(@PATH,12,984.6356,1838.182,129.0019,0,0,0,0,100,0),
+(@PATH,13,1011.226,1833.54,126.6895,0,0,0,0,100,0),
+(@PATH,14,1057.635,1836.751,126.1518,0,0,0,0,100,0),
+(@PATH,15,1067.586,1822.081,123.4199,0,0,0,0,100,0),
+(@PATH,16,1094.639,1795.399,117.2115,0,0,0,0,100,0),
+(@PATH,17,1096.268,1774.917,115.0766,0,0,0,0,100,0),
+(@PATH,18,1092.254,1762.801,109.6618,0,0,0,0,100,0),
+(@PATH,19,1077.908,1741.648,99.1233,0,0,0,0,100,0),
+(@PATH,20,1052.085,1727.124,94.70787,0,0,0,0,100,0),
+(@PATH,21,1015.579,1719.41,93.81611,0,0,0,0,100,0),
+(@PATH,22,979.6028,1719.703,93.80976,0,0,0,0,100,0),
+(@PATH,23,960.0488,1718.792,96.3173,0,0,0,0,100,0),
+(@PATH,24,935.5402,1720.851,100.5271,0,0,0,0,100,0),
+(@PATH,25,911.3182,1725.566,104.1969,0,0,0,0,100,0),
+(@PATH,26,892.9175,1721.506,103.7674,0,0,0,0,100,0),
+(@PATH,27,876.0504,1709.732,98.63383,0,0,0,0,100,0),
+(@PATH,28,857.8802,1698.331,90.26447,0,0,0,0,100,0),
+(@PATH,29,845.8919,1687.898,90.8924,0,0,0,0,100,0),
+(@PATH,30,826.5896,1689.394,94.46696,0,0,0,0,100,0),
+(@PATH,31,810.4796,1691.432,98.81523,0,0,0,0,100,0),
+(@PATH,32,793.4018,1696.299,101.5982,0,0,0,0,100,0),
+(@PATH,33,777.6357,1693.611,100.1802,0,0,0,0,100,0),
+(@PATH,34,761.6689,1694.881,97.37639,0,0,0,0,100,0),
+(@PATH,35,746.3331,1704.227,97.91486,0,0,0,0,100,0),
+(@PATH,36,730.1412,1715.37,90.97038,0,0,0,0,100,0),
+(@PATH,37,697.9177,1718.721,81.87744,0,0,0,0,100,0),
+(@PATH,38,683.4454,1731.398,98.06165,0,0,0,0,100,0),
+(@PATH,39,672.7356,1743.954,101.0712,0,0,0,0,100,0),
+(@PATH,40,655.922,1748.035,100.8441,0,0,0,0,100,0),
+(@PATH,41,636.2448,1758.785,98.42323,0,0,0,0,100,0),
+(@PATH,42,619.8185,1774.388,105.8676,0,0,0,0,100,0),
+(@PATH,43,613.7397,1804.882,113.1822,0,0,0,0,100,0),
+(@PATH,44,624.4863,1822.929,116.8767,0,0,0,0,100,0);
+-- 0xF1304BC8001BE5EA .go 646.6895 1839.964 125.4547
+
+-- Pathing for Avruu Entry: 17084 'TDB FORMAT'
+SET @NPC := 59482;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-1144.656,`position_y`=4221.215,`position_z`=53.53335 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,-1144.656,4221.215,53.53335,0,0,0,0,100,0),
+(@PATH,2,-1149.899,4214.391,54.47545,0,0,0,0,100,0),
+(@PATH,3,-1148.989,4220.935,53.69381,0,0,0,0,100,0),
+(@PATH,4,-1132.481,4220.839,52.68293,0,0,0,0,100,0),
+(@PATH,5,-1131.276,4211.726,50.55313,0,0,0,0,100,0),
+(@PATH,6,-1132.461,4220.687,52.65585,0,0,0,0,100,0),
+(@PATH,7,-1148.989,4220.935,53.69381,0,0,0,0,100,0),
+(@PATH,8,-1149.899,4214.391,54.47545,0,0,0,0,100,0),
+(@PATH,9,-1144.656,4221.215,53.53335,0,0,0,0,100,0),
+(@PATH,10,-1113.755,4220.15,53.67657,0,0,0,0,100,0),
+(@PATH,11,-1106.38,4213.523,55.1924,0,0,0,0,100,0),
+(@PATH,12,-1113.792,4220.234,53.68396,0,0,0,0,100,0),
+(@PATH,13,-1132.25,4220.938,52.66562,0,0,0,0,100,0),
+(@PATH,14,-1131.511,4211.614,50.52601,0,0,0,0,100,0),
+(@PATH,15,-1132.25,4220.938,52.66562,0,0,0,0,100,0);
+-- 0xF13042BC002F4AB5 .go -1144.656 4221.215 53.53335
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=59461;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES
+(59461, 59461, 0, 0, 2),
+(59461, 58902, 3, 60, 2),
+(59461, 58903, 3, 300, 2);
+-- Pathing for Illidari Taskmaster Entry: 17058 'TDB FORMAT'
+SET @NPC := 59461;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-739.0243,`position_y`=4706.486,`position_z`=59.08763 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,-739.0243,4706.486,59.08763,0,0,0,0,100,0),
+(@PATH,2,-720.4598,4714.083,58.00349,0,0,0,0,100,0),
+(@PATH,3,-700.3239,4731.957,55.12849,0,0,0,0,100,0),
+(@PATH,4,-688.1065,4752.427,50.3562,0,0,0,0,100,0),
+(@PATH,5,-671.6681,4783.523,48.85718,0,0,0,0,100,0),
+(@PATH,6,-666.7562,4804.472,49.27185,0,0,0,0,100,0),
+(@PATH,7,-659.798,4809.12,49.37691,0,0,0,0,100,0),
+(@PATH,8,-628.5441,4808.44,41.65781,0,0,0,0,100,0),
+(@PATH,9,-606.4383,4807.069,37.6156,0,0,0,0,100,0),
+(@PATH,10,-600.5306,4809.674,36.55847,0,0,0,0,100,0),
+(@PATH,11,-601.5439,4825.514,36.89904,0,0,0,0,100,0),
+(@PATH,12,-599.8547,4836.65,37.78796,0,0,0,0,100,0),
+(@PATH,13,-587.3387,4850.032,38.78796,0,0,0,0,100,0),
+(@PATH,14,-574.3077,4857.394,38.76745,0,0,0,0,100,0),
+(@PATH,15,-553.303,4868.131,37.42022,0,0,0,0,100,0),
+(@PATH,16,-546.1716,4873.221,37.4395,0,0,0,0,100,0),
+(@PATH,17,-537.9453,4886.015,36.57769,0,0,0,0,100,0),
+(@PATH,18,-534.9305,4896.668,37.71563,0,0,0,0,100,0),
+(@PATH,19,-537.9453,4886.015,36.57769,0,0,0,0,100,0),
+(@PATH,20,-546.1716,4873.221,37.4395,0,0,0,0,100,0),
+(@PATH,21,-553.303,4868.131,37.42022,0,0,0,0,100,0),
+(@PATH,22,-574.3077,4857.394,38.76745,0,0,0,0,100,0),
+(@PATH,23,-587.3387,4850.032,38.78796,0,0,0,0,100,0),
+(@PATH,24,-599.8547,4836.65,37.78796,0,0,0,0,100,0),
+(@PATH,25,-601.5098,4825.779,36.90564,0,0,0,0,100,0),
+(@PATH,26,-600.5306,4809.674,36.55847,0,0,0,0,100,0),
+(@PATH,27,-606.4383,4807.069,37.6156,0,0,0,0,100,0),
+(@PATH,28,-628.5441,4808.44,41.65781,0,0,0,0,100,0),
+(@PATH,29,-659.798,4809.12,49.37691,0,0,0,0,100,0),
+(@PATH,30,-666.7562,4804.472,49.27185,0,0,0,0,100,0),
+(@PATH,31,-671.6681,4783.523,48.85718,0,0,0,0,100,0),
+(@PATH,32,-688.0059,4752.591,50.27185,0,0,0,0,100,0),
+(@PATH,33,-700.3239,4731.957,55.12849,0,0,0,0,100,0),
+(@PATH,34,-720.4598,4714.083,58.00349,0,0,0,0,100,0);
+-- 0xF13042A20038016F .go -739.0243 4706.486 59.08763
+
+-- Pathing for Mag'har Watcher Entry: 16911 'TDB FORMAT'
+SET @NPC := 58668;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=544.4113,`position_y`=3863.158,`position_z`=206.4794 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,544.4113,3863.158,206.4794,0,0,0,0,100,0),
+(@PATH,2,546.8116,3867.611,206.4329,0,0,0,0,100,0),
+(@PATH,3,551.9465,3876.498,205.2316,0,0,0,0,100,0),
+(@PATH,4,554.5156,3882.23,205.1167,0,0,0,0,100,0),
+(@PATH,5,556.8832,3885.992,206.5175,0,0,0,0,100,0),
+(@PATH,6,559.1604,3890.118,208.6536,0,0,0,0,100,0),
+(@PATH,7,560.1864,3892.583,210.294,0,0,0,0,100,0),
+(@PATH,8,562.0711,3895.741,212.2924,0,0,0,0,100,0),
+(@PATH,9,559.1604,3890.118,208.6536,0,0,0,0,100,0),
+(@PATH,10,556.8832,3885.992,206.5175,0,0,0,0,100,0),
+(@PATH,11,554.5156,3882.23,205.1167,0,0,0,0,100,0),
+(@PATH,12,551.9465,3876.498,205.2316,0,0,0,0,100,0),
+(@PATH,13,546.8116,3867.611,206.4329,0,0,0,0,100,0);
+-- 0xF130420F00000681 .go 544.4113 3863.158 206.4794
+
+-- Pathing for Mag'har Watcher Entry: 16911 'TDB FORMAT'
+SET @NPC := 58665;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=517.4471,`position_y`=3844.644,`position_z`=206.9812 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,517.4471,3844.644,206.9812,0,0,0,0,100,0),
+(@PATH,2,520.5403,3832.705,206.5191,0,0,0,0,100,0),
+(@PATH,3,529.7895,3827.019,206.5042,0,0,0,0,100,0),
+(@PATH,4,533.5421,3826.609,206.5398,0,0,0,0,100,0),
+(@PATH,5,547.4796,3832.629,206.5393,0,0,0,0,100,0),
+(@PATH,6,550.8764,3844.464,206.5215,0,0,0,0,100,0),
+(@PATH,7,547.1805,3853.744,206.5172,0,0,0,0,100,0),
+(@PATH,8,541.1375,3857.636,206.5186,0,0,0,0,100,0),
+(@PATH,9,534.0944,3859.733,206.2727,0,0,0,0,100,0),
+(@PATH,10,529.3141,3858.76,206.2927,0,0,0,0,100,0),
+(@PATH,11,523.7713,3855.4,206.7145,0,0,0,0,100,0),
+(@PATH,12,518.4979,3848.389,207.1368,0,0,0,0,100,0);
+-- 0xF130420F00000682 .go 517.4471 3844.644 206.9812
+
+-- Pathing for Honor Hold Scout Entry: 20238 'TDB FORMAT'
+SET @NPC := 96990;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=273.5557,`position_y`=1451.374,`position_z`=-13.17962 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,273.5557,1451.374,-13.17962,0,0,0,0,100,0),
+(@PATH,2,317.6477,1400.698,-3.460944,0,0,0,0,100,0),
+(@PATH,3,335.8789,1479.614,-5.462881,0,0,0,0,100,0),
+(@PATH,4,315.942,1491.847,-10.07765,0,0,0,0,100,0),
+(@PATH,5,293.1233,1485.149,-13.06351,0,0,0,0,100,0),
+(@PATH,6,288.7853,1482.748,-12.85769,0,0,0,0,100,0),
+(@PATH,7,284.0427,1479.701,-12.68358,0,0,0,0,100,0),
+(@PATH,8,279.2419,1471.795,-13.21379,0,0,0,0,100,0),
+(@PATH,9,276.009,1464.286,-13.35486,0,0,0,0,100,0),
+(@PATH,10,274.5031,1457.938,-13.28576,0,0,0,0,100,0),
+(@PATH,11,273.5557,1451.374,-13.17962,0,0,0,0,100,0),
+(@PATH,12,317.6477,1400.698,-3.460944,0,0,0,0,100,0),
+(@PATH,13,335.8789,1479.614,-5.462881,0,0,0,0,100,0),
+(@PATH,14,315.942,1491.847,-10.07765,0,0,0,0,100,0),
+(@PATH,15,293.1233,1485.149,-13.06351,0,0,0,0,100,0),
+(@PATH,16,288.7853,1482.748,-12.85769,0,0,0,0,100,0),
+(@PATH,17,284.0427,1479.701,-12.68358,0,0,0,0,100,0),
+(@PATH,18,279.2419,1471.795,-13.21379,0,0,0,0,100,0),
+(@PATH,19,276.009,1464.286,-13.35486,0,0,0,0,100,0),
+(@PATH,20,274.5031,1457.938,-13.28576,0,0,0,0,100,0);
+-- 0xF1304F0E00005863 .go 273.5557 1451.374 -13.17962
+
+-- Pathing for Scout Vanura Entry: 16797 'TDB FORMAT'
+SET @NPC := 57800;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=74.06347,`position_y`=4333.108,`position_z`=101.4732 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,74.06347,4333.108,101.4732,0,0,0,0,100,0),
+(@PATH,2,59.68077,4332.904,96.16065,0,0,0,0,100,0),
+(@PATH,3,73.1186,4333.158,101.0555,0,0,0,0,100,0),
+(@PATH,4,90.34354,4333.228,101.4834,0,0,0,0,100,0),
+(@PATH,5,122.9175,4333.386,104.8669,0,0,0,0,100,0),
+(@PATH,6,154.94,4333.245,107.505,0,0,0,0,100,0),
+(@PATH,7,122.9175,4333.386,104.8669,0,0,0,0,100,0),
+(@PATH,8,90.34354,4333.228,101.4834,0,0,0,0,100,0),
+(@PATH,9,74.06347,4333.108,101.4732,0,0,0,0,100,0),
+(@PATH,10,59.68077,4332.904,96.16065,0,0,0,0,100,0),
+(@PATH,11,73.1186,4333.158,101.0555,0,0,0,0,100,0),
+(@PATH,12,90.34354,4333.228,101.4834,0,0,0,0,100,0),
+(@PATH,13,122.9175,4333.386,104.8669,0,0,0,0,100,0),
+(@PATH,14,154.94,4333.245,107.505,0,0,0,0,100,0),
+(@PATH,15,192.0898,4333.342,116.4441,0,0,0,0,100,0),
+(@PATH,16,154.94,4333.245,107.505,0,0,0,0,100,0),
+(@PATH,17,122.9175,4333.386,104.8669,0,0,0,0,100,0),
+(@PATH,18,90.34354,4333.228,101.4834,0,0,0,0,100,0),
+(@PATH,19,74.06347,4333.108,101.4732,0,0,0,0,100,0),
+(@PATH,20,154.94,4333.245,107.505,0,0,0,0,100,0),
+(@PATH,21,192.0898,4333.342,116.4441,0,0,0,0,100,0),
+(@PATH,22,122.9175,4333.386,104.8669,0,0,0,0,100,0),
+(@PATH,23,90.34354,4333.228,101.4834,0,0,0,0,100,0),
+(@PATH,24,74.06347,4333.108,101.4732,0,0,0,0,100,0),
+(@PATH,25,59.68077,4332.904,96.16065,0,0,0,0,100,0),
+(@PATH,26,73.1186,4333.158,101.0555,0,0,0,0,100,0),
+(@PATH,27,90.34354,4333.228,101.4834,0,0,0,0,100,0),
+(@PATH,28,122.9175,4333.386,104.8669,0,0,0,0,100,0),
+(@PATH,29,154.94,4333.245,107.505,0,0,0,0,100,0),
+(@PATH,30,192.0898,4333.342,116.4441,0,0,0,0,100,0),
+(@PATH,31,90.34354,4333.228,101.4834,0,0,0,0,100,0);
+-- 0xF130419D0000219A .go 74.06347 4333.108 101.4732
+
+-- Should be 3 Mistress of Doom spawns not 6.
+DELETE FROM `creature` WHERE `guid` BETWEEN 68722 AND 68724;
+
+-- Pathing for Mistress of Doom Entry: 19192 'TDB FORMAT'
+SET @NPC := 68725;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=421.0149,`position_y`=3339.626,`position_z`=62.06211 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,421.0149,3339.626,62.06211,0,0,0,0,100,0),
+(@PATH,2,368.5956,3364.738,63.81692,0,0,0,0,100,0),
+(@PATH,3,344.4051,3344.649,67.40168,0,0,0,0,100,0),
+(@PATH,4,327.5585,3321.236,72.71063,0,0,0,0,100,0),
+(@PATH,5,400.1786,3349.047,62.79062,0,0,0,0,100,0),
+(@PATH,6,421.0149,3339.626,62.06211,0,0,0,0,100,0),
+(@PATH,7,344.4051,3344.649,67.40168,0,0,0,0,100,0),
+(@PATH,8,327.5585,3321.236,72.71063,0,0,0,0,100,0),
+(@PATH,9,344.4051,3344.649,67.40168,0,0,0,0,100,0),
+(@PATH,10,368.5956,3364.738,63.81692,0,0,0,0,100,0),
+(@PATH,11,400.1786,3349.047,62.79062,0,0,0,0,100,0),
+(@PATH,12,421.0149,3339.626,62.06211,0,0,0,0,100,0),
+(@PATH,13,449.1115,3343.667,65.47438,0,0,0,0,100,0),
+(@PATH,14,468.069,3360.591,77.34941,0,0,0,0,100,0),
+(@PATH,15,449.1115,3343.667,65.47438,0,0,0,0,100,0),
+(@PATH,16,421.0149,3339.626,62.06211,0,0,0,0,100,0),
+(@PATH,17,400.1786,3349.047,62.79062,0,0,0,0,100,0),
+(@PATH,18,368.5956,3364.738,63.81692,0,0,0,0,100,0),
+(@PATH,19,344.4051,3344.649,67.40168,0,0,0,0,100,0),
+(@PATH,20,327.5585,3321.236,72.71063,0,0,0,0,100,0),
+(@PATH,21,344.4051,3344.649,67.40168,0,0,0,0,100,0),
+(@PATH,22,368.5956,3364.738,63.81692,0,0,0,0,100,0),
+(@PATH,23,400.1786,3349.047,62.79062,0,0,0,0,100,0),
+(@PATH,24,421.0149,3339.626,62.06211,0,0,0,0,100,0),
+(@PATH,25,449.1115,3343.667,65.47438,0,0,0,0,100,0),
+(@PATH,26,468.069,3360.591,77.34941,0,0,0,0,100,0),
+(@PATH,27,449.1115,3343.667,65.47438,0,0,0,0,100,0);
+-- 0xF1304AF80038CC31 .go 421.0149 3339.626 62.06211
+
+-- Pathing for Mistress of Doom Entry: 19192 'TDB FORMAT'
+SET @NPC := 68726;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=384.5248,`position_y`=3256.693,`position_z`=74.51141 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,384.5248,3256.693,74.51141,0,0,0,0,100,0),
+(@PATH,2,372.4839,3266.02,74.55065,0,0,0,0,100,0),
+(@PATH,3,377.4411,3280.069,74.39575,0,0,0,0,100,0),
+(@PATH,4,378.1626,3299.152,74.52856,0,0,0,0,100,0),
+(@PATH,5,384.6801,3308.861,74.5426,0,0,0,0,100,0),
+(@PATH,6,402.9049,3304.486,74.55357,0,0,0,0,100,0),
+(@PATH,7,413.7969,3286.998,74.61218,0,0,0,0,100,0),
+(@PATH,8,421.3358,3276.941,74.55165,0,0,0,0,100,0),
+(@PATH,9,416.6131,3261.531,74.554,0,0,0,0,100,0),
+(@PATH,10,421.3358,3276.941,74.55165,0,0,0,0,100,0),
+(@PATH,11,413.7969,3286.998,74.61218,0,0,0,0,100,0),
+(@PATH,12,402.9049,3304.486,74.55357,0,0,0,0,100,0),
+(@PATH,13,384.6801,3308.861,74.5426,0,0,0,0,100,0),
+(@PATH,14,378.1626,3299.152,74.52856,0,0,0,0,100,0),
+(@PATH,15,377.4411,3280.069,74.39575,0,0,0,0,100,0),
+(@PATH,16,372.4839,3266.02,74.55065,0,0,0,0,100,0);
+-- 0xF1304AF80038BBB8 .go 384.5248 3256.693 74.51141
+
+-- Pathing for Mistress of Doom Entry: 19192 'TDB FORMAT'
+SET @NPC := 68727;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=407.5233,`position_y`=3263.597,`position_z`=74.55978 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,407.5233,3263.597,74.55978,0,0,0,0,100,0),
+(@PATH,2,411.5036,3274.989,74.68412,0,0,0,0,100,0),
+(@PATH,3,408.0285,3293.335,74.58907,0,0,0,0,100,0),
+(@PATH,4,393.1323,3301.217,74.58429,0,0,0,0,100,0),
+(@PATH,5,383.5548,3298.82,74.53128,0,0,0,0,100,0),
+(@PATH,6,376.8429,3288.129,74.32133,0,0,0,0,100,0),
+(@PATH,7,378.8334,3272.364,74.51328,0,0,0,0,100,0),
+(@PATH,8,387.7648,3258.965,74.60986,0,0,0,0,100,0),
+(@PATH,9,378.8334,3272.364,74.51328,0,0,0,0,100,0),
+(@PATH,10,376.8651,3287.953,74.34109,0,0,0,0,100,0),
+(@PATH,11,383.5548,3298.82,74.53128,0,0,0,0,100,0),
+(@PATH,12,393.1323,3301.217,74.58429,0,0,0,0,100,0),
+(@PATH,13,408.0285,3293.335,74.58907,0,0,0,0,100,0),
+(@PATH,14,411.5036,3274.989,74.68412,0,0,0,0,100,0);
+-- 0xF1304AF80038BEE8 .go 407.5233 3263.597 74.55978
+
+-- Pathing for Unyielding Knight Entry: 16906 'TDB FORMAT'
+SET @NPC := 58621;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-1094.606,`position_y`=2691.313,`position_z`=-0.5718141 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,-1094.606,2691.313,-0.5718141,0,0,0,0,100,0),
+(@PATH,2,-1101.713,2727.011,-10.54628,0,0,0,0,100,0),
+(@PATH,3,-1115.584,2762.751,-13.63931,0,0,0,0,100,0),
+(@PATH,4,-1135.107,2786.331,-29.13247,0,0,0,0,100,0),
+(@PATH,5,-1153.197,2808.646,-17.71369,0,0,0,0,100,0),
+(@PATH,6,-1190.575,2828.042,-16.47421,0,0,0,0,100,0),
+(@PATH,7,-1216.98,2838.043,-16.51846,0,0,0,0,100,0),
+(@PATH,8,-1246.225,2841.554,-16.1834,0,0,0,0,100,0),
+(@PATH,9,-1216.98,2838.043,-16.51846,0,0,0,0,100,0),
+(@PATH,10,-1190.575,2828.042,-16.47421,0,0,0,0,100,0),
+(@PATH,11,-1153.197,2808.646,-17.71369,0,0,0,0,100,0),
+(@PATH,12,-1135.107,2786.331,-29.13247,0,0,0,0,100,0),
+(@PATH,13,-1115.584,2762.751,-13.63931,0,0,0,0,100,0),
+(@PATH,14,-1101.713,2727.011,-10.54628,0,0,0,0,100,0),
+(@PATH,15,-1094.606,2691.313,-0.5718141,0,0,0,0,100,0);
+
+-- Pathing for Unyielding Knight Entry: 16906 'TDB FORMAT'
+SET @NPC := 58615;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-1154.349,`position_y`=2673.648,`position_z`=3.767312 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,-1154.349,2673.648,3.767312,0,0,0,0,100,0),
+(@PATH,2,-1130.748,2685.984,-0.1009769,0,0,0,0,100,0),
+(@PATH,3,-1101.372,2705.62,-5.162488,0,0,0,0,100,0),
+(@PATH,4,-1088.276,2732.212,-12.38731,0,0,0,0,100,0),
+(@PATH,5,-1088.584,2765,-9.172983,0,0,0,0,100,0),
+(@PATH,6,-1091.869,2786.115,-8.024483,0,0,0,0,100,0),
+(@PATH,7,-1108.186,2802.652,-15.7359,0,0,0,0,100,0),
+(@PATH,8,-1147.134,2816.302,-17.79132,0,0,0,0,100,0),
+(@PATH,9,-1179.198,2811.857,-20.95943,0,0,0,0,100,0),
+(@PATH,10,-1193.584,2773.023,-18.83023,0,0,0,0,100,0),
+(@PATH,11,-1214.371,2734.819,-12.88417,0,0,0,0,100,0),
+(@PATH,12,-1237.986,2717.969,-9.584949,0,0,0,0,100,0),
+(@PATH,13,-1228.331,2693.615,-2.615346,0,0,0,0,100,0),
+(@PATH,14,-1227.854,2670.797,4.303111,0,0,0,0,100,0),
+(@PATH,15,-1189.622,2664.75,7.12471,0,0,0,0,100,0);
+-- 0xF130420A0051C089 .go -1154.349 2673.648 3.767312
+
+-- Pathing for Unyielding Knight Entry: 16906 'TDB FORMAT'
+SET @NPC := 58621;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-1135.107,`position_y`=2786.331,`position_z`=-29.13247 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,-1094.606,2691.313,-0.5718141,0,0,0,0,100,0),
+(@PATH,2,-1101.713,2727.011,-10.54628,0,0,0,0,100,0),
+(@PATH,3,-1115.584,2762.751,-13.63931,0,0,0,0,100,0),
+(@PATH,4,-1135.107,2786.331,-29.13247,0,0,0,0,100,0),
+(@PATH,5,-1153.197,2808.646,-17.71369,0,0,0,0,100,0),
+(@PATH,6,-1190.575,2828.042,-16.47421,0,0,0,0,100,0),
+(@PATH,7,-1216.98,2838.043,-16.51846,0,0,0,0,100,0),
+(@PATH,8,-1246.225,2841.554,-16.1834,0,0,0,0,100,0),
+(@PATH,9,-1284.498,2853.048,-14.62445,0,0,0,0,100,0),
+(@PATH,10,-1246.225,2841.554,-16.1834,0,0,0,0,100,0),
+(@PATH,11,-1216.98,2838.043,-16.51846,0,0,0,0,100,0),
+(@PATH,12,-1190.575,2828.042,-16.47421,0,0,0,0,100,0),
+(@PATH,13,-1153.197,2808.646,-17.71369,0,0,0,0,100,0),
+(@PATH,14,-1135.107,2786.331,-29.13247,0,0,0,0,100,0),
+(@PATH,15,-1115.584,2762.751,-13.63931,0,0,0,0,100,0),
+(@PATH,16,-1101.713,2727.011,-10.54628,0,0,0,0,100,0),
+(@PATH,17,-1094.606,2691.313,-0.5718141,0,0,0,0,100,0);
+-- 0xF130420A004D70D0 .go -1135.107 2786.331 -29.13247
+
+-- Pathing for Unyielding Knight Entry: 16906 'TDB FORMAT'
+SET @NPC := 58616;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-1242.694,`position_y`=2847.193,`position_z`=-14.70488 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,-1242.694,2847.193,-14.70488,0,0,0,0,100,0),
+(@PATH,2,-1333.916,2843.581,-26.88158,0,0,0,0,100,0),
+(@PATH,3,-1373.451,2821.236,-38.77312,0,0,0,0,100,0),
+(@PATH,4,-1412.447,2797.512,-50.41302,0,0,0,0,100,0),
+(@PATH,5,-1443.701,2771.588,-52.18716,0,0,0,0,100,0),
+(@PATH,6,-1444.06,2737.759,-44.08505,0,0,0,0,100,0),
+(@PATH,7,-1448.392,2707.42,-40.20878,0,0,0,0,100,0),
+(@PATH,8,-1443.701,2771.588,-52.18716,0,0,0,0,100,0),
+(@PATH,9,-1412.447,2797.512,-50.41302,0,0,0,0,100,0),
+(@PATH,10,-1373.451,2821.236,-38.77312,0,0,0,0,100,0),
+(@PATH,11,-1334.068,2843.568,-26.86644,0,0,0,0,100,0),
+(@PATH,12,-1287.16,2846.185,-17.27875,0,0,0,0,100,0);
+-- 0xF130420A00516E60 .go -1242.694 2847.193 -14.70488
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=59379;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES
+(59379, 59379, 0, 0, 2),
+(59379, 59378, 1, 270, 2);
+-- Pathing for Ghostly Denizen Entry: 16976 'TDB FORMAT'
+SET @NPC := 59379;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-1314.826,`position_y`=2697.474,`position_z`=-10.63524 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,-1314.826,2697.474,-10.63524,0,0,0,0,100,0),
+(@PATH,2,-1302.509,2682.092,-4.465803,0,0,0,0,100,0),
+(@PATH,3,-1285.212,2673.274,0.324069,0,0,0,0,100,0),
+(@PATH,4,-1262.781,2666.778,4.161468,0,0,0,0,100,0),
+(@PATH,5,-1239.486,2668.24,4.636199,0,0,0,0,100,0),
+(@PATH,6,-1228.059,2678.768,1.697886,0,0,0,0,100,0),
+(@PATH,7,-1226.799,2691.145,-1.925649,0,0,0,0,100,0),
+(@PATH,8,-1231.047,2708.734,-6.77056,0,0,0,0,100,0),
+(@PATH,9,-1241.512,2719.076,-10.28185,0,0,0,0,100,0),
+(@PATH,10,-1258.358,2721.242,-12.72142,0,0,0,0,100,0),
+(@PATH,11,-1277.803,2722.124,-15.09074,0,0,0,0,100,0),
+(@PATH,12,-1297.916,2717.709,-15.91459,0,0,0,0,100,0),
+(@PATH,13,-1312.5,2710.416,-14.70897,0,0,0,0,100,0);
+-- 0xF130425000001C5C .go -1314.826 2697.474 -10.63524
+
+-- Pathing for Eye of Grillok Entry: 19440 'TDB FORMAT'
+SET @NPC := 69630;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-1133.545,`position_y`=1974.219,`position_z`=73.66801 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,-1133.545,1974.219,73.66801,0,0,0,0,100,0),
+(@PATH,2,-1139.647,1984.812,73.48808,0,0,0,0,100,0),
+(@PATH,3,-1153.481,1986.271,73.91801,0,0,0,0,100,0),
+(@PATH,4,-1176.863,1983.853,74.17966,0,0,0,0,100,0),
+(@PATH,5,-1193.333,2001.905,73.7545,0,0,0,0,100,0),
+(@PATH,6,-1189.884,2008.264,73.80833,0,0,0,0,100,0),
+(@PATH,7,-1162.244,2001.973,72.5789,0,0,0,0,100,0),
+(@PATH,8,-1137.158,1989.238,72.25078,0,0,0,0,100,0),
+(@PATH,9,-1123.422,1973.485,73.44966,0,0,0,0,100,0),
+(@PATH,10,-1118.553,1952.296,74.29433,0,0,0,0,100,0),
+(@PATH,11,-1101.236,1949.125,76.37685,0,0,0,0,100,0),
+(@PATH,12,-1097.989,1958.75,74.65789,0,0,0,0,100,0),
+(@PATH,13,-1113.206,1975.783,72.86079,0,0,0,0,100,0),
+(@PATH,14,-1130.415,1977.334,73.54243,0,0,0,0,100,0),
+(@PATH,15,-1133.53,1974.111,73.66801,0,0,0,0,100,0),
+(@PATH,16,-1139.474,1963.058,77.44243,0,0,0,0,100,0),
+(@PATH,17,-1153.622,1941.719,81.403,0,0,0,0,100,0),
+(@PATH,18,-1143.852,1934.362,81.42173,0,0,0,0,100,0),
+(@PATH,19,-1140.552,1924.993,81.37407,0,0,0,0,100,0),
+(@PATH,20,-1135.054,1914.743,81.40356,0,0,0,0,100,0),
+(@PATH,21,-1139.732,1900.652,81.34557,0,0,0,0,100,0),
+(@PATH,22,-1158.967,1910.94,81.54838,0,0,0,0,100,0),
+(@PATH,23,-1156.435,1918.194,81.54838,0,0,0,0,100,0),
+(@PATH,24,-1168.744,1929.098,81.54708,0,0,0,0,100,0),
+(@PATH,25,-1177.184,1923.736,80.29801,0,0,0,0,100,0),
+(@PATH,26,-1188.636,1930.298,81.37504,0,0,0,0,100,0),
+(@PATH,27,-1194.5,1933.201,81.3617,0,0,0,0,100,0),
+(@PATH,28,-1198.93,1925.219,81.35394,0,0,0,0,100,0),
+(@PATH,29,-1197.309,1911.631,81.41698,0,0,0,0,100,0),
+(@PATH,30,-1192.73,1901.408,81.41022,0,0,0,0,100,0),
+(@PATH,31,-1197.309,1911.631,81.41698,0,0,0,0,100,0),
+(@PATH,32,-1198.93,1925.219,81.35394,0,0,0,0,100,0),
+(@PATH,33,-1194.5,1933.201,81.3617,0,0,0,0,100,0),
+(@PATH,34,-1188.673,1930.316,81.37252,0,0,0,0,100,0),
+(@PATH,35,-1177.206,1923.749,80.29263,0,0,0,0,100,0),
+(@PATH,36,-1168.744,1929.098,81.54708,0,0,0,0,100,0),
+(@PATH,37,-1156.435,1918.194,81.54838,0,0,0,0,100,0),
+(@PATH,38,-1158.967,1910.94,81.54838,0,0,0,0,100,0),
+(@PATH,39,-1139.825,1900.374,81.35677,0,0,0,0,100,0),
+(@PATH,40,-1135.054,1914.743,81.40356,0,0,0,0,100,0),
+(@PATH,41,-1140.528,1924.947,81.36578,0,0,0,0,100,0),
+(@PATH,42,-1143.852,1934.362,81.42173,0,0,0,0,100,0),
+(@PATH,43,-1153.749,1941.527,81.40314,0,0,0,0,100,0),
+(@PATH,44,-1139.474,1963.058,77.44243,0,0,0,0,100,0),
+(@PATH,45,-1133.53,1974.111,73.66801,0,0,0,0,100,0),
+(@PATH,46,-1130.415,1977.334,73.54243,0,0,0,0,100,0),
+(@PATH,47,-1113.206,1975.783,72.86079,0,0,0,0,100,0),
+(@PATH,48,-1097.989,1958.75,74.65789,0,0,0,0,100,0),
+(@PATH,49,-1101.236,1949.125,76.37685,0,0,0,0,100,0),
+(@PATH,50,-1118.553,1952.296,74.29433,0,0,0,0,100,0),
+(@PATH,51,-1123.422,1973.485,73.44966,0,0,0,0,100,0),
+(@PATH,52,-1137.158,1989.238,72.25078,0,0,0,0,100,0),
+(@PATH,53,-1162.244,2001.973,72.5789,0,0,0,0,100,0),
+(@PATH,54,-1189.884,2008.264,73.80833,0,0,0,0,100,0),
+(@PATH,55,-1193.333,2001.905,73.7545,0,0,0,0,100,0),
+(@PATH,56,-1176.863,1983.853,74.17966,0,0,0,0,100,0),
+(@PATH,57,-1153.481,1986.271,73.91801,0,0,0,0,100,0),
+(@PATH,58,-1139.647,1984.812,73.48808,0,0,0,0,100,0);
+-- 0xF1304BF000608EC0 .go -1133.545 1974.219 73.66801
+
+-- Pathing for Eye of Grillok Entry: 19440 'TDB FORMAT'
+SET @NPC := 69632;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-1102.267,`position_y`=2066.633,`position_z`=67.68956 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,-1102.267,2066.633,67.68956,0,0,0,0,100,0),
+(@PATH,2,-1083.351,2080.714,65.12747,0,0,0,0,100,0),
+(@PATH,3,-1052.895,2094.359,61.0218,0,0,0,0,100,0),
+(@PATH,4,-1017.934,2079.23,68.33347,0,0,0,0,100,0),
+(@PATH,5,-1003.467,2046.212,67.2819,0,0,0,0,100,0),
+(@PATH,6,-995.76,2017.331,67.06455,0,0,0,0,100,0),
+(@PATH,7,-1002.273,2000.312,67.06455,0,0,0,0,100,0),
+(@PATH,8,-994.0292,1982.86,67.84361,0,0,0,0,100,0),
+(@PATH,9,-989.314,1952.273,70.44984,0,0,0,0,100,0),
+(@PATH,10,-960.0438,1951.905,67.81455,0,0,0,0,100,0);
+-- 0xF1304BF000612D24 .go -1102.267 2066.633 67.68956
+
+-- Pathing for Eye of Grillok Entry: 19440 'TDB FORMAT'
+SET @NPC := 69631;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-1014.376,`position_y`=2076.241,`position_z`=68.65146 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,-1014.376,2076.241,68.65146,0,0,0,0,100,0),
+(@PATH,2,-991.5126,2053.373,67.06454,0,0,0,0,100,0),
+(@PATH,3,-966.9857,2030.343,67.06455,0,0,0,0,100,0),
+(@PATH,4,-959.8001,2017.528,67.03322,0,0,0,0,100,0),
+(@PATH,5,-921.6862,2020.938,61.3862,0,0,0,0,100,0),
+(@PATH,6,-904.4248,2040.584,48.97299,0,0,0,0,100,0),
+(@PATH,7,-891.9199,2071.103,32.17977,0,0,0,0,100,0),
+(@PATH,8,-902.8315,2093.767,24.96597,0,0,0,0,100,0),
+(@PATH,9,-919.9766,2121.966,20.22781,0,0,0,0,100,0),
+(@PATH,10,-939.8874,2146.113,17.11834,0,0,0,0,100,0),
+(@PATH,11,-950.2776,2165.229,15.73687,0,0,0,0,100,0),
+(@PATH,12,-970.1002,2184.593,14.41798,0,0,0,0,100,0),
+(@PATH,13,-1000.677,2189.11,14.28434,0,0,0,0,100,0),
+(@PATH,14,-1038.272,2175.676,22.84645,0,0,0,0,100,0),
+(@PATH,15,-1055.283,2148.659,38.23811,0,0,0,0,100,0),
+(@PATH,16,-1059.658,2118.107,53.76555,0,0,0,0,100,0),
+(@PATH,17,-1045.689,2098.584,60.57795,0,0,0,0,100,0);
+-- 0xF1304BF000613548 .go -1014.376 2076.241 68.65146
+
+-- Pathing for Eye of Grillok Entry: 19440 'TDB FORMAT'
+SET @NPC := 69633;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-971.1483,`position_y`=2038.908,`position_z`=67.03989 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,-971.1483,2038.908,67.03989,0,0,0,0,100,0),
+(@PATH,2,-958.2822,2014.4,67.03322,0,0,0,0,100,0),
+(@PATH,3,-957.9716,1998.73,68.80885,0,0,0,0,100,0),
+(@PATH,4,-948.8636,1987.684,68.46583,0,0,0,0,100,0),
+(@PATH,5,-928.804,1988.219,66.7764,0,0,0,0,100,0),
+(@PATH,6,-920.0879,1955.257,67.56455,0,0,0,0,100,0),
+(@PATH,7,-928.804,1988.219,66.7764,0,0,0,0,100,0),
+(@PATH,8,-948.8636,1987.684,68.46583,0,0,0,0,100,0),
+(@PATH,9,-957.9716,1998.73,68.80885,0,0,0,0,100,0),
+(@PATH,10,-958.2822,2014.4,67.03322,0,0,0,0,100,0),
+(@PATH,11,-971.1483,2038.908,67.03989,0,0,0,0,100,0),
+(@PATH,12,-989.3309,2057.323,67.06454,0,0,0,0,100,0),
+(@PATH,13,-1024.213,2078.929,67.38486,0,0,0,0,100,0),
+(@PATH,14,-1046.714,2102.792,59.16204,0,0,0,0,100,0),
+(@PATH,15,-1024.213,2078.929,67.38486,0,0,0,0,100,0);
+-- 0xF1304BF00061F48A .go -971.1483 2038.908 67.03989
+
diff --git a/sql/updates/world/2014_10_23_00_world.sql b/sql/updates/world/2014_10_23_00_world.sql
new file mode 100644
index 00000000000..ae441b6bee5
--- /dev/null
+++ b/sql/updates/world/2014_10_23_00_world.sql
@@ -0,0 +1,57 @@
+
+
+DELETE FROM `creature_text` WHERE `entry`=29903;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`,`BroadcastTextID`) VALUES
+(29903, 0, 0, '%s sniffs and finds the trail.', 16, 0, 100, 0, 0, 0, 'Frostbite',30550),
+(29903, 1, 0, 'The iron dwarves followed you! Use the net and the ice slick to escape!', 42, 0, 100, 0, 0, 0, 'Frostbite',30548),
+(29903, 2, 0, '%s has tracked the scent to its source inside the cave.', 16, 0, 100, 377, 0, 0, 'Frostbite',30551),
+(29903, 3, 0, 'Frostbite has tracked the scent to its source. Investigate the cave!', 42, 0, 100, 377, 0, 0, 'Frostbite',30549);
+
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=29857;
+INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES
+(29857, 55460, 3, 0);
+
+UPDATE `creature_template` SET `spell1`=54997, `spell2`=54996,`ainame`='SmartAI', `scriptname`='' WHERE `entry`=29903;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=29903 AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=2990300 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
+(29903,0,0,1,54,0,100,0,0,0,0,0,11,54993,0,0,0,0,0,1,0,0,0,0,0,0,0,'Frost Bite - On Just Summoned - Cast Frosthound Periodic'),
+(29903,0,1,0,61,0,100,0,0,0,0,0,80,2990300,0,0,0,0,0,1,0,0,0,0,0,0,0,'Frost Bite - On Just Summoned - Run Script'),
+(29903,0,2,0,7,0,100,0,0,0,0,0,11,54993,0,0,0,0,0,1,0,0,0,0,0,0,0,'Frost Bite - On Evade - Cast Frosthound Periodic'),
+(29903,0,3,0,40,0,100,0,4,29903,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Frost Bite - On Reached WP3 - Say Line 1'),
+(29903,0,4,5,40,0,100,0,23,29903,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Frost Bite - On Reached WP3 - Say Line 2'),
+(29903,0,5,6,61,0,100,0,0,0,0,0,1,3,0,0,0,0,0,23,0,0,0,0,0,0,0,'Frost Bite - On Reached WP3 - Say Line 3'),
+(29903,0,6,7,61,0,100,0,0,0,0,0,33,29677,0,0,0,0,0,23,0,0,0,0,0,0,0,'Frost Bite - On Reached WP3 - Give Kill Credit'),
+(29903,0,7,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Frost Bite - On Reached WP3 - Despawn'),
+
+(2990300,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,'Frost Bite - Script - Say Line 0'),
+(2990300,9,1,0,0,0,100,0,0,0,0,0,11,55476,0,0,0,0,0,1,0,0,0,0,0,0,0,'Frost Bite - Script - Cast Frostbite Boss Emote'),
+(2990300,9,2,0,0,0,100,0,0,0,0,0,53,1,29903,0,0,0,0,1,0,0,0,0,0,0,0,'Frost Bite - Script - Start WP');
+
+DELETE FROM `waypoints` WHERE `entry`=29903;
+INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES
+(29903, 1, 7749.87 ,-1092.157 ,925.391, 'Frost Bite'),
+(29903, 2, 7730.882 ,-1117.335 ,923.5192, 'Frost Bite'),
+(29903, 3, 7709.588 ,-1138.151 ,923.0368, 'Frost Bite'),
+(29903, 4, 7684.467 ,-1156.5 ,926.3825, 'Frost Bite'),
+(29903, 5, 7667.916 ,-1167.89 ,925.6334, 'Frost Bite'),
+(29903, 6, 7644.327 ,-1188.346 ,924.3444, 'Frost Bite'),
+(29903, 7, 7626.495 ,-1208.446 ,928.0288, 'Frost Bite'),
+(29903, 8, 7616.337 ,-1225.497 ,931.144, 'Frost Bite'),
+(29903, 9, 7603.483 ,-1248.83 ,929.348, 'Frost Bite'),
+(29903, 10, 7587.603 ,-1277.074 ,930.1173, 'Frost Bite'),
+(29903, 11, 7579.03 ,-1288.508 ,930.7244, 'Frost Bite'),
+(29903, 12, 7562.141 ,-1316.05 ,930.8729, 'Frost Bite'),
+(29903, 13, 7534.76 ,-1348.399 ,931.9465, 'Frost Bite'),
+(29903, 14, 7511.374 ,-1368.219 ,933.2729, 'Frost Bite'),
+(29903, 15, 7476.767 ,-1399.918 ,934.6421, 'Frost Bite'),
+(29903, 16, 7453.468 ,-1419.903 ,935.6179, 'Frost Bite'),
+(29903, 17, 7422.59 ,-1443.929 ,934.3792, 'Frost Bite'),
+(29903, 18, 7390.717 ,-1473.35 ,930.7485, 'Frost Bite'),
+(29903, 19, 7366.973 ,-1493.927 ,930.0501, 'Frost Bite'),
+(29903, 20, 7341.166 ,-1526.338 ,932.729, 'Frost Bite'),
+(29903, 21, 7328.682 ,-1533.398 ,932.6253, 'Frost Bite'),
+(29903, 22, 7318.588 ,-1547.078 ,936.2808, 'Frost Bite'),
+(29903, 23, 7311.917 ,-1563.737 ,940.9844, 'Frost Bite');
diff --git a/sql/updates/world/2014_10_23_01_world.sql b/sql/updates/world/2014_10_23_01_world.sql
new file mode 100644
index 00000000000..a5070a473da
--- /dev/null
+++ b/sql/updates/world/2014_10_23_01_world.sql
@@ -0,0 +1,44 @@
+DELETE FROM `creature_formations` WHERE `leaderGUID`=38429;
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES
+(38429, 38429, 0, 0, 2),
+(38429, 38430, 3, 270, 2);
+
+-- Pathing for Mattie Alred Entry: 5668 'TDB FORMAT'
+SET @NPC := 38429;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1717.818,`position_y`=303.1138,`position_z`=-61.47988 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,1717.818,303.1138,-61.47988,0,0,0,0,100,0),
+(@PATH,2,1724.056,285.5189,-62.18394,0,0,0,0,100,0),
+(@PATH,3,1725.809,279.2398,-62.18219,0,0,0,0,100,0),
+(@PATH,4,1728.313,268.6199,-62.17767,0,0,0,0,100,0),
+(@PATH,5,1730.295,250.8002,-62.17767,0,0,0,0,100,0),
+(@PATH,6,1716.658,240.3017,-62.17767,0,0,0,0,100,0),
+(@PATH,7,1692.596,241.7838,-62.17767,0,0,0,0,100,0),
+(@PATH,8,1672.504,242.9413,-62.17767,0,0,0,0,100,0),
+(@PATH,9,1665.619,249.5088,-62.1778,0,0,0,0,100,0),
+(@PATH,10,1663.849,264.2947,-62.17823,0,0,0,0,100,0),
+(@PATH,11,1659.715,273.889,-62.17942,0,0,0,0,100,0),
+(@PATH,12,1652.447,286.605,-62.18125,0,0,0,0,100,0),
+(@PATH,13,1637.696,299.425,-62.17578,0,0,0,0,100,0),
+(@PATH,14,1621.363,308.3512,-62.17768,0,0,0,0,100,0),
+(@PATH,15,1605.388,311.2079,-62.17768,0,0,0,0,100,0),
+(@PATH,16,1598.25,318.9116,-62.17767,0,0,0,0,100,0),
+(@PATH,17,1598.482,334.9213,-62.17767,0,0,0,0,100,0),
+(@PATH,18,1599.09,358.2072,-62.17767,0,0,0,0,100,0),
+(@PATH,19,1598.418,367.1544,-62.22174,0,0,0,0,100,0),
+(@PATH,20,1610.374,374.7628,-62.17767,0,0,0,0,100,0),
+(@PATH,21,1627.031,371.8268,-62.17767,0,0,0,0,100,0),
+(@PATH,22,1637.79,368.5305,-62.16847,0,0,0,0,100,0),
+(@PATH,23,1655.578,358.9601,-60.74146,0,0,0,0,100,0),
+(@PATH,24,1657.84,352.9977,-60.72892,0,0,0,0,100,0),
+(@PATH,25,1654.79,342.4309,-62.17167,0,0,0,0,100,0),
+(@PATH,26,1668.162,325.3488,-62.15568,0,0,0,0,100,0),
+(@PATH,27,1680.751,314.6597,-62.15656,0,0,0,0,100,0),
+(@PATH,28,1694.482,302.0437,-62.16363,0,0,0,0,100,0);
+-- 0xF13016240000906A .go 1717.818 303.1138 -61.47988
+
+
diff --git a/sql/updates/world/2014_10_24_00_world.sql b/sql/updates/world/2014_10_24_00_world.sql
new file mode 100644
index 00000000000..b4a3087b89d
--- /dev/null
+++ b/sql/updates/world/2014_10_24_00_world.sql
@@ -0,0 +1,3 @@
+--
+UPDATE `creature_template` SET `npcflag`=16777216 WHERE `entry`=35427;
+UPDATE `smart_scripts` SET `link`=19 WHERE `entryorguid`=26670 AND `id`=18;
diff --git a/sql/updates/world/2014_10_24_01_world.sql b/sql/updates/world/2014_10_24_01_world.sql
new file mode 100644
index 00000000000..8a3a9c8be3d
--- /dev/null
+++ b/sql/updates/world/2014_10_24_01_world.sql
@@ -0,0 +1,73 @@
+UPDATE `creature_template` SET `InhabitType`=`InhabitType`|4 WHERE `entry`=38004;
+UPDATE `creature_template` SET `unit_flags`=32768 WHERE `entry` IN(38232,37665);
+
+-- Spire Gargoyle SAI
+SET @ENTRY := 37544;
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,0,0,0,100,0,2000,3000,2000,4000,11,70189,0,0,0,0,0,2,0,0,0,0,0,0,0,"Spire Gargoyle - In Combat - Cast 'Poison Spit'");
+
+-- Frenzied Abomination SAI
+SET @ENTRY := 37546;
+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,6000,6000,6000,6000,11,70191,0,0,0,0,0,0,0,0,0,0,0,0,0,"Frenzied Abomination - In Combat - Cast 'Cleave'"),
+(@ENTRY,0,1,0,0,0,100,0,30000,30000,60000,60000,11,70371,0,0,0,0,0,1,0,0,0,0,0,0,0,"Frenzied Abomination - In Combat - Cast 'Enrage'");
+
+-- Skybreaker Summoner SAI
+SET @ENTRY := 37148;
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,0,0,0,100,0,3000,3000,2000,6000,11,69969,0,0,0,0,0,5,0,0,0,0,0,0,0,"Skybreaker Summoner - In Combat - Cast 'Curse of Doom'"),
+(@ENTRY,0,1,0,0,0,100,0,3000,3000,6000,10000,11,69972,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skybreaker Summoner - In Combat - Cast 'Shadow Bolt'"),
+(@ENTRY,0,2,0,0,0,100,0,10000,10000,10000,15000,11,69973,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skybreaker Summoner - In Combat - Cast 'Incinerate'");
+
+-- Kor'kron Necrolyte SAI
+SET @ENTRY := 37149;
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,0,0,0,100,0,3000,3000,2000,6000,11,69969,0,0,0,0,0,5,0,0,0,0,0,0,0,"Kor'kron Necrolyte - In Combat - Cast 'Curse of Doom'"),
+(@ENTRY,0,1,0,0,0,100,0,3000,3000,6000,10000,11,69972,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kor'kron Necrolyte - In Combat - Cast 'Shadow Bolt'"),
+(@ENTRY,0,2,0,0,0,100,0,10000,10000,10000,15000,11,69973,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kor'kron Necrolyte - In Combat - Cast 'Incinerate'");
+
+-- Skybreaker Luminary SAI
+SET @ENTRY := 37016;
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,0,0,0,100,0,1000,1500,20000,25000,11,69926,0,0,0,0,0,26,40,0,0,0,0,0,0,"Skybreaker Luminary - In Combat - Cast 'Earth Shield'"),
+(@ENTRY,0,1,0,0,0,100,0,3000,3000,6000,7000,11,69958,0,0,0,0,0,26,40,0,0,0,0,0,0,"Skybreaker Luminary - In Combat - Cast 'Healing Wave'"),
+(@ENTRY,0,2,0,0,0,100,0,4000,6000,6000,7000,11,69923,0,0,0,0,0,26,40,0,0,0,0,0,0,"Skybreaker Luminary - In Combat - Cast 'Chain Heal'"),
+(@ENTRY,0,3,0,0,0,100,0,7000,8000,7000,8000,11,69970,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skybreaker Luminary - In Combat - Cast 'Lightning Bolt'");
+
+-- Kor'kron Oracle SAI
+SET @ENTRY := 37031;
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,0,0,0,100,0,1000,1500,20000,25000,11,69926,0,0,0,0,0,26,40,0,0,0,0,0,0,"Kor'kron Oracle - In Combat - Cast 'Earth Shield'"),
+(@ENTRY,0,1,0,0,0,100,0,3000,3000,6000,7000,11,69958,0,0,0,0,0,26,40,0,0,0,0,0,0,"Kor'kron Oracle - In Combat - Cast 'Healing Wave'"),
+(@ENTRY,0,2,0,0,0,100,0,4000,6000,6000,7000,11,69923,0,0,0,0,0,26,40,0,0,0,0,0,0,"Kor'kron Oracle - In Combat - Cast 'Chain Heal'"),
+(@ENTRY,0,3,0,0,0,100,0,7000,8000,7000,8000,11,69970,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kor'kron Oracle - In Combat - Cast 'Lightning Bolt'");
+
+-- Skybreaker Vindicator SAI
+SET @ENTRY := 37003;
+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,1,0,0,0,100,0,12000,12000,16000,20000,11,69927,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skybreaker Vindicator - In Combat - Cast 'Avenger's Shield'"),
+(@ENTRY,0,2,0,0,0,100,0,6000,6000,16000,18000,11,69930,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skybreaker Vindicator - In Combat - Cast 'Consecration'"),
+(@ENTRY,0,3,0,0,0,100,0,4000,4000,16000,20000,11,69934,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skybreaker Vindicator - In Combat - Cast 'Holy Wrath'");
+
+-- Kor'kron Vanquisher SAI
+SET @ENTRY := 37035;
+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,1,0,0,0,100,0,12000,12000,16000,20000,11,69927,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kor'kron Vanquisher - In Combat - Cast 'Avenger's Shield'"),
+(@ENTRY,0,2,0,0,0,100,0,6000,6000,16000,18000,11,69930,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kor'kron Vanquisher - In Combat - Cast 'Consecration'"),
+(@ENTRY,0,3,0,0,0,100,0,4000,4000,16000,20000,11,69934,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kor'kron Vanquisher - In Combat - Cast 'Holy Wrath'");
diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
index 0661c7ae2ea..822c5a2cf04 100644
--- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
+++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
@@ -447,23 +447,24 @@ bool AuctionHouseObject::RemoveAuction(AuctionEntry* auction, uint32 /*itemEntry
void AuctionHouseObject::Update()
{
+ time_t curTime = sWorld->GetGameTime();
///- Handle expired auctions
// If storage is empty, no need to update. next == NULL in this case.
if (AuctionsMap.empty())
return;
- time_t curTime = sWorld->GetGameTime();
+
SQLTransaction trans = CharacterDatabase.BeginTransaction();
for (AuctionEntryMap::iterator it = AuctionsMap.begin(); it != AuctionsMap.end();)
{
// from auctionhousehandler.cpp, creates auction pointer & player pointer
AuctionEntry* auction = it->second;
- // Increment iterator due to deletion
+ // Increment iterator due to AuctionEntry deletion
++it;
- ///- filter auctions exipred on next update
+ ///- filter auctions expired on next update
if (auction->expire_time > curTime + 60)
continue;
@@ -588,21 +589,21 @@ void AuctionHouseObject::BuildListAuctionItems(WorldPacket& data, Player* player
{
// Append the suffix to the name (ie: of the Monkey) if one exists
// These are found in ItemRandomSuffix.dbc and ItemRandomProperties.dbc
- // even though the DBC name seems misleading
+ // even though the DBC names seem misleading
char* const* suffix = nullptr;
if (propRefID < 0)
{
- const ItemRandomSuffixEntry* itemRandEntry = sItemRandomSuffixStore.LookupEntry(-item->GetItemRandomPropertyId());
- if (itemRandEntry)
- suffix = itemRandEntry->nameSuffix;
+ const ItemRandomSuffixEntry* itemRandSuffix = sItemRandomSuffixStore.LookupEntry(-propRefID);
+ if (itemRandSuffix)
+ suffix = itemRandSuffix->nameSuffix;
}
else
{
- const ItemRandomPropertiesEntry* itemRandEntry = sItemRandomPropertiesStore.LookupEntry(item->GetItemRandomPropertyId());
- if (itemRandEntry)
- suffix = itemRandEntry->nameSuffix;
+ const ItemRandomPropertiesEntry* itemRandProp = sItemRandomPropertiesStore.LookupEntry(propRefID);
+ if (itemRandProp)
+ suffix = itemRandProp->nameSuffix;
}
// dbc local name
diff --git a/src/server/game/AuctionHouseBot/AuctionHouseBot.cpp b/src/server/game/AuctionHouseBot/AuctionHouseBot.cpp
index 804a1508d3e..6bf5fa0aaa5 100644
--- a/src/server/game/AuctionHouseBot/AuctionHouseBot.cpp
+++ b/src/server/game/AuctionHouseBot/AuctionHouseBot.cpp
@@ -388,7 +388,7 @@ void AuctionHouseBot::Rebuild(bool all)
AuctionHouseObject* auctionHouse = sAuctionMgr->GetAuctionsMap(AuctionHouseType(i));
for (AuctionHouseObject::AuctionEntryMap::const_iterator itr = auctionHouse->GetAuctionsBegin(); itr != auctionHouse->GetAuctionsEnd(); ++itr)
if (!itr->second->owner) // ahbot auction
- if (all || itr->second->bidder == 0) // expire auction if forced or no bids
+ if (all || itr->second->bid == 0) // expire now auction if no bid or forced
itr->second->expire_time = sWorld->GetGameTime();
}
}
diff --git a/src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp b/src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp
index f7eac1a40dc..513b23afd70 100644
--- a/src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp
+++ b/src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp
@@ -18,7 +18,6 @@
#include "Log.h"
#include "DBCStores.h"
#include "ObjectMgr.h"
-#include "World.h"
#include "AuctionHouseMgr.h"
#include "AuctionHouseBotSeller.h"
@@ -615,20 +614,17 @@ uint32 AuctionBotSeller::SetStat(SellerConfiguration& config)
{
AllItemsArray itemsSaved(MAX_AUCTION_QUALITY, std::vector<uint32>(MAX_ITEM_CLASS));
- time_t curTime = sWorld->GetGameTime();
AuctionHouseObject* auctionHouse = sAuctionMgr->GetAuctionsMap(config.GetHouseType());
for (AuctionHouseObject::AuctionEntryMap::const_iterator itr = auctionHouse->GetAuctionsBegin(); itr != auctionHouse->GetAuctionsEnd(); ++itr)
{
AuctionEntry* auctionEntry = itr->second;
- if (auctionEntry->owner != 0) // Add only ahbot items
- continue;
- if (auctionEntry->expire_time > curTime) // Add only nonexpired items
- continue;
Item* item = sAuctionMgr->GetAItem(auctionEntry->itemGUIDLow);
if (item)
{
ItemTemplate const* prototype = item->GetTemplate();
- ++itemsSaved[prototype->Quality][prototype->Class];
+ if (prototype)
+ if (!auctionEntry->owner) // Add only ahbot items
+ ++itemsSaved[prototype->Quality][prototype->Class];
}
}
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index badf0d9271b..4ffddde021c 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -1449,6 +1449,13 @@ void Position::GetPositionOffsetTo(const Position & endPos, Position & retOffset
retOffset.SetOrientation(endPos.GetOrientation() - GetOrientation());
}
+Position Position::GetPositionWithOffset(Position const& offset) const
+{
+ Position ret(*this);
+ ret.RelocateOffset(offset);
+ return ret;
+}
+
float Position::GetAngle(const Position* obj) const
{
if (!obj)
@@ -2593,7 +2600,7 @@ void WorldObject::DestroyForNearbyPlayers()
if (!player->HaveAtClient(this))
continue;
- if (isType(TYPEMASK_UNIT) && ((Unit*)this)->GetCharmerGUID() == player->GetGUID()) /// @todo this is for puppet
+ if (isType(TYPEMASK_UNIT) && ToUnit()->GetCharmerGUID() == player->GetGUID()) /// @todo this is for puppet
continue;
DestroyForPlayer(player);
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index eb0bb92959f..98eb7989e5d 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -340,6 +340,7 @@ struct Position
{ return std::sqrt(GetExactDistSq(pos)); }
void GetPositionOffsetTo(Position const & endPos, Position & retOffset) const;
+ Position GetPositionWithOffset(Position const& offset) const;
float GetAngle(Position const* pos) const;
float GetAngle(float x, float y) const;
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
index d67c28a3552..d2c0ae88590 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
@@ -217,11 +217,6 @@ enum mograine
SPELL_THUNDER = 53630
};
-struct Location
-{
- float x, y, z, o;
-};
-
void UpdateWorldState(Map* map, uint32 id, uint32 state)
{
Map::PlayerList const& players = map->GetPlayers();
@@ -236,10 +231,10 @@ void UpdateWorldState(Map* map, uint32 id, uint32 state)
}
}
-static Location LightofDawnLoc[]=
+Position const LightofDawnLoc[] =
{
{2281.335f, -5300.409f, 85.170f, 0}, // 0 Tirion Fordring loc
- {2283.896f, -5287.914f, 83.066f, 1.55f}, // 1 Tirion Fordring loc2
+ {2283.896f, -5287.914f, 83.066f, 1.55f}, // 1 Tirion Fordring loc2
{2281.461f, -5263.014f, 81.164f, 0}, // 2 Tirion charges
{2262.277f, -5293.477f, 82.167f, 0}, // 3 Tirion run
{2270.286f, -5287.73f, 82.262f, 0}, // 4 Tirion relocate
@@ -540,30 +535,30 @@ public:
if (temp->HasAura(SPELL_THE_LIGHT_OF_DAWN))
temp->RemoveAurasDueToSpell(SPELL_THE_LIGHT_OF_DAWN);
temp->SetWalk(true);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[19].x, LightofDawnLoc[19].y, LightofDawnLoc[19].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[19]);
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiThassarianGUID))
{
if (temp->HasAura(SPELL_THE_LIGHT_OF_DAWN))
temp->RemoveAurasDueToSpell(SPELL_THE_LIGHT_OF_DAWN);
temp->SetWalk(true);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[21].x, LightofDawnLoc[21].y, LightofDawnLoc[21].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[21]);
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID))
{
temp->SetWalk(true);
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[10].x, LightofDawnLoc[10].y, LightofDawnLoc[10].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[10]);
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID))
{
temp->SetWalk(true);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[13].x, LightofDawnLoc[13].y, LightofDawnLoc[13].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[13]);
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEligorGUID))
{
temp->SetWalk(true);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[16].x, LightofDawnLoc[16].y, LightofDawnLoc[16].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[16]);
}
JumpToNextStep(10000);
}
@@ -729,30 +724,30 @@ public:
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKoltiraGUID))
{
temp->SetWalk(false);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }));
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiOrbazGUID))
{
temp->SetWalk(false);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }));
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiThassarianGUID))
{
temp->SetWalk(false);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }));
}
for (uint8 i = 0; i < ENCOUNTER_ABOMINATION_NUMBER; ++i)
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiAbominationGUID[i]))
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }));
for (uint8 i = 0; i < ENCOUNTER_BEHEMOTH_NUMBER; ++i)
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiBehemothGUID[i]))
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }));
for (uint8 i = 0; i < ENCOUNTER_GHOUL_NUMBER; ++i)
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiGhoulGUID[i]))
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }));
for (uint8 i = 0; i < ENCOUNTER_WARRIOR_NUMBER; ++i)
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiWarriorGUID[i]))
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }));
JumpToNextStep(5000);
break;
@@ -782,7 +777,7 @@ public:
break;
case 15: // summon gate
- if (Creature* temp = me->SummonCreature(NPC_HIGHLORD_ALEXANDROS_MOGRAINE, LightofDawnLoc[22].x, LightofDawnLoc[22].y, LightofDawnLoc[22].z, LightofDawnLoc[22].o, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000))
+ if (Creature* temp = me->SummonCreature(NPC_HIGHLORD_ALEXANDROS_MOGRAINE, LightofDawnLoc[22], TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000))
{
temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
temp->CastSpell(temp, SPELL_ALEXANDROS_MOGRAINE_SPAWN, true);
@@ -796,7 +791,7 @@ public:
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiAlexandrosGUID))
{
temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[23].x, LightofDawnLoc[23].y, LightofDawnLoc[23].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[23]);
temp->AI()->Talk(SAY_LIGHT_OF_DAWN32);
}
SetHoldState(false); // makes darion turns back
@@ -810,7 +805,7 @@ public:
break;
case 18: // Darion's spirit out
- if (Creature* temp = me->SummonCreature(NPC_DARION_MOGRAINE, LightofDawnLoc[24].x, LightofDawnLoc[24].y, LightofDawnLoc[24].z, LightofDawnLoc[24].o, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000))
+ if (Creature* temp = me->SummonCreature(NPC_DARION_MOGRAINE, LightofDawnLoc[24], TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000))
{
temp->AI()->Talk(SAY_LIGHT_OF_DAWN35);
temp->SetWalk(false);
@@ -823,7 +818,7 @@ public:
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiDarionGUID))
{
temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN07);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[25].x, LightofDawnLoc[25].y, LightofDawnLoc[25].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[25]);
}
JumpToNextStep(4000);
break;
@@ -857,7 +852,7 @@ public:
temp->AI()->Talk(SAY_LIGHT_OF_DAWN39);
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID)) // Tirion moves forward here
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[1].x, LightofDawnLoc[1].y, LightofDawnLoc[1].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[1]);
JumpToNextStep(15000);
break;
@@ -887,7 +882,7 @@ public:
break;
case 29: // lich king spawns
- if (Creature* temp = me->SummonCreature(NPC_THE_LICH_KING, LightofDawnLoc[26].x, LightofDawnLoc[26].y, LightofDawnLoc[26].z, LightofDawnLoc[26].o, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000))
+ if (Creature* temp = me->SummonCreature(NPC_THE_LICH_KING, LightofDawnLoc[26], TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000))
{
temp->AI()->Talk(SAY_LIGHT_OF_DAWN43);
uiLichKingGUID = temp->GetGUID();
@@ -920,7 +915,7 @@ public:
case 32:
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[27].x, LightofDawnLoc[27].y, LightofDawnLoc[27].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[27]);
JumpToNextStep(6000);
break;
@@ -999,7 +994,7 @@ public:
if (fLichPositionX && fLichPositionY)
{
- Unit* temp = me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, LightofDawnLoc[0].x + rand32() % 10, LightofDawnLoc[0].y + rand32() % 10, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
+ Unit* temp = me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 10), float(rand32() % 10), 0.0f, 0.0f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED);
temp->SetWalk(false);
temp->SetSpeed(MOVE_RUN, 2.0f);
@@ -1007,7 +1002,7 @@ public:
temp->GetMotionMaster()->MovePoint(0, fLichPositionX, fLichPositionY, fLichPositionZ);
uiDefenderGUID[0] = temp->GetGUID();
- temp = me->SummonCreature(NPC_RIMBLAT_EARTHSHATTER, LightofDawnLoc[0].x + rand32() % 10, LightofDawnLoc[0].y + rand32() % 10, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
+ temp = me->SummonCreature(NPC_RIMBLAT_EARTHSHATTER, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 10), float(rand32() % 10), 0.0f, 0.0f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED);
temp->SetWalk(false);
temp->SetSpeed(MOVE_RUN, 2.0f);
@@ -1051,33 +1046,33 @@ public:
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
temp->SetSpeed(MOVE_RUN, 6.0f);
temp->SetStandState(UNIT_STAND_STATE_DEAD);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[14].x, LightofDawnLoc[14].y, LightofDawnLoc[14].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[14]);
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID))
{
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
temp->SetSpeed(MOVE_RUN, 6.0f);
temp->SetStandState(UNIT_STAND_STATE_DEAD);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[11].x, LightofDawnLoc[11].y, LightofDawnLoc[11].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[11]);
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEligorGUID))
{
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
temp->SetSpeed(MOVE_RUN, 6.0f);
temp->SetStandState(UNIT_STAND_STATE_DEAD);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[17].x, LightofDawnLoc[17].y, LightofDawnLoc[17].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[17]);
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiDefenderGUID[0]))
{
temp->SetSpeed(MOVE_RUN, 6.0f);
temp->SetStandState(UNIT_STAND_STATE_DEAD);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x + rand32() % 10, LightofDawnLoc[0].y + rand32() % 10, LightofDawnLoc[0].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 10), float(rand32() % 10), 0.0f, 0.0f }));
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEarthshatterGUID[0]))
{
temp->SetSpeed(MOVE_RUN, 6.0f);
temp->SetStandState(UNIT_STAND_STATE_DEAD);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x + rand32() % 10, LightofDawnLoc[0].y + rand32() % 10, LightofDawnLoc[0].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 10), float(rand32() % 10), 0.0f, 0.0f }));
}
JumpToNextStep(3000);
break;
@@ -1160,9 +1155,9 @@ public:
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
temp->SetSpeed(MOVE_RUN, 3.0f); // workarounds, make Tirion still running
temp->SetWalk(false);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[2].x, LightofDawnLoc[2].y, LightofDawnLoc[2].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[2]);
if (Creature* lktemp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))
- lktemp->Relocate(LightofDawnLoc[28].x, LightofDawnLoc[28].y, LightofDawnLoc[28].z); // workarounds, he should kick back by Tirion, but here we relocate him
+ lktemp->Relocate(LightofDawnLoc[28]); // workarounds, he should kick back by Tirion, but here we relocate him
}
JumpToNextStep(1500);
break;
@@ -1178,7 +1173,7 @@ public:
{
temp->SetSpeed(MOVE_RUN, 1.0f);
me->SetWalk(true);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[29].x, LightofDawnLoc[29].y, LightofDawnLoc[29].z); // 26
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[29]); // 26
}
JumpToNextStep(4000);
break;
@@ -1214,7 +1209,7 @@ public:
{
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
temp->SetSpeed(MOVE_RUN, 1.0f);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[6].x, LightofDawnLoc[6].y, LightofDawnLoc[6].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[6]);
}
JumpToNextStep(2500);
break;
@@ -1238,7 +1233,7 @@ public:
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))
{
temp->SetWalk(true);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[7].x, LightofDawnLoc[7].y, LightofDawnLoc[7].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[7]);
}
JumpToNextStep(5500);
break;
@@ -1246,7 +1241,7 @@ public:
case 63:
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))
{
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[8].x, LightofDawnLoc[8].y, LightofDawnLoc[8].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[8]);
temp->AI()->Talk(SAY_LIGHT_OF_DAWN61);
}
JumpToNextStep(15000);
@@ -1401,7 +1396,7 @@ public:
if (uiFight_duration <= diff + 5000)
{
if (!uiTirionGUID)
- if (Creature* temp = me->SummonCreature(NPC_HIGHLORD_TIRION_FORDRING, LightofDawnLoc[0].x, LightofDawnLoc[0].y, LightofDawnLoc[0].z, 1.528f, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 600000))
+ if (Creature* temp = me->SummonCreature(NPC_HIGHLORD_TIRION_FORDRING, LightofDawnLoc[0].GetPositionWithOffset({ 0.0f, 0.0f, 0.0f, 1.528f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 600000))
{
temp->setFaction(me->getFaction());
temp->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(EQUIP_UNEQUIP));
@@ -1443,7 +1438,7 @@ public:
temp->AttackStop();
temp->setFaction(me->getFaction());
temp->SetWalk(false);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[9].x, LightofDawnLoc[9].y, LightofDawnLoc[9].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[9]);
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID))
@@ -1454,7 +1449,7 @@ public:
temp->AttackStop();
temp->setFaction(me->getFaction());
temp->SetWalk(false);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[12].x, LightofDawnLoc[12].y, LightofDawnLoc[12].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[12]);
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEligorGUID))
@@ -1465,7 +1460,7 @@ public:
temp->AttackStop();
temp->setFaction(me->getFaction());
temp->SetWalk(false);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[15].x, LightofDawnLoc[15].y, LightofDawnLoc[15].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[15]);
}
DespawnNPC(uiRayneGUID);
@@ -1477,7 +1472,7 @@ public:
temp->AttackStop();
temp->setFaction(me->getFaction());
temp->SetWalk(false);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[18].x, LightofDawnLoc[18].y, LightofDawnLoc[18].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[18]);
temp->CastSpell(temp, SPELL_THE_LIGHT_OF_DAWN, false);
}
@@ -1492,7 +1487,7 @@ public:
temp->AttackStop();
temp->setFaction(me->getFaction());
temp->SetWalk(false);
- temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[20].x, LightofDawnLoc[20].y, LightofDawnLoc[20].z);
+ temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[20]);
temp->CastSpell(temp, SPELL_THE_LIGHT_OF_DAWN, false);
}
@@ -1539,7 +1534,7 @@ public:
temp = ObjectAccessor::GetCreature(*me, uiGhoulGUID[i]);
if (!temp)
{
- temp = me->SummonCreature(NPC_ACHERUS_GHOUL, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
+ temp = me->SummonCreature(NPC_ACHERUS_GHOUL, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
temp->setFaction(2084);
uiGhoulGUID[i] = temp->GetGUID();
}
@@ -1549,7 +1544,7 @@ public:
temp = ObjectAccessor::GetCreature(*me, uiAbominationGUID[i]);
if (!temp)
{
- temp = me->SummonCreature(NPC_WARRIOR_OF_THE_FROZEN_WASTES, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
+ temp = me->SummonCreature(NPC_WARRIOR_OF_THE_FROZEN_WASTES, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
temp->setFaction(2084);
uiAbominationGUID[i] = temp->GetGUID();
}
@@ -1559,7 +1554,7 @@ public:
temp = ObjectAccessor::GetCreature(*me, uiWarriorGUID[i]);
if (!temp)
{
- temp = me->SummonCreature(NPC_RAMPAGING_ABOMINATION, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
+ temp = me->SummonCreature(NPC_RAMPAGING_ABOMINATION, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
temp->setFaction(2084);
uiWarriorGUID[i] = temp->GetGUID();
}
@@ -1569,7 +1564,7 @@ public:
temp = ObjectAccessor::GetCreature(*me, uiBehemothGUID[i]);
if (!temp)
{
- temp = me->SummonCreature(NPC_FLESH_BEHEMOTH, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
+ temp = me->SummonCreature(NPC_FLESH_BEHEMOTH, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
temp->setFaction(2084);
uiBehemothGUID[i] = temp->GetGUID();
}
@@ -1581,7 +1576,7 @@ public:
temp = ObjectAccessor::GetCreature(*me, uiDefenderGUID[i]);
if (!temp)
{
- temp = me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
+ temp = me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
temp->setFaction(2089);
me->AddThreat(temp, 0.0f);
uiDefenderGUID[i] = temp->GetGUID();
@@ -1592,7 +1587,7 @@ public:
temp = ObjectAccessor::GetCreature(*me, uiEarthshatterGUID[i]);
if (!temp)
{
- temp = me->SummonCreature(NPC_RIMBLAT_EARTHSHATTER, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
+ temp = me->SummonCreature(NPC_RIMBLAT_EARTHSHATTER, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
temp->setFaction(2089);
me->AddThreat(temp, 0.0f);
uiEarthshatterGUID[i] = temp->GetGUID();
@@ -1601,7 +1596,7 @@ public:
temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID);
if (!temp)
{
- temp = me->SummonCreature(NPC_KORFAX_CHAMPION_OF_THE_LIGHT, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 600000);
+ temp = me->SummonCreature(NPC_KORFAX_CHAMPION_OF_THE_LIGHT, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 600000);
temp->setFaction(2089);
me->AddThreat(temp, 0.0f);
uiKorfaxGUID = temp->GetGUID();
@@ -1609,7 +1604,7 @@ public:
temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID);
if (!temp)
{
- temp = me->SummonCreature(NPC_LORD_MAXWELL_TYROSUS, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 600000);
+ temp = me->SummonCreature(NPC_LORD_MAXWELL_TYROSUS, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 600000);
temp->setFaction(2089);
me->AddThreat(temp, 0.0f);
uiMaxwellGUID = temp->GetGUID();
@@ -1617,7 +1612,7 @@ public:
temp = ObjectAccessor::GetCreature(*me, uiEligorGUID);
if (!temp)
{
- temp = me->SummonCreature(NPC_COMMANDER_ELIGOR_DAWNBRINGER, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 600000);
+ temp = me->SummonCreature(NPC_COMMANDER_ELIGOR_DAWNBRINGER, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 600000);
temp->setFaction(2089);
me->AddThreat(temp, 0.0f);
uiEligorGUID = temp->GetGUID();
@@ -1625,7 +1620,7 @@ public:
temp = ObjectAccessor::GetCreature(*me, uiRayneGUID);
if (!temp)
{
- temp = me->SummonCreature(NPC_RAYNE, LightofDawnLoc[0].x + rand32() % 30, LightofDawnLoc[0].y + rand32() % 30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
+ temp = me->SummonCreature(NPC_RAYNE, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 30), float(rand32() % 30), 0.0f, 0.0f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
temp->setFaction(2089);
me->AddThreat(temp, 0.0f);
uiRayneGUID = temp->GetGUID();
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
index ac7f4c0aad4..5b154d9d6be 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
@@ -95,12 +95,7 @@ enum Spells
SPELL_DEATH = 42566 //not correct spell
};
-struct Locations
-{
- float x, y, z;
-};
-
-static Locations FlightPoint[]=
+G3D::Vector3 const FlightPoint[]=
{
{1754.00f, 1346.00f, 17.50f},
{1765.00f, 1347.00f, 19.00f},
@@ -125,7 +120,7 @@ static Locations FlightPoint[]=
{1758.00f, 1367.00f, 19.51f}
};
-static Locations Spawn[]=
+G3D::Vector3 const Spawn[]=
{
{1776.27f, 1348.74f, 19.20f}, //spawn point for pumpkin shrine mob
{1765.28f, 1347.46f, 17.55f} //spawn point for smoke
diff --git a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp
index 268a78bb491..98074a54408 100644
--- a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp
@@ -152,21 +152,16 @@ enum Rinji
GO_RINJI_CAGE = 142036
};
-struct Location
+Position const AmbushSpawn[] =
{
- float posX, posY, posZ;
+ { 191.296204f, -2839.329346f, 107.388f, 0.0f },
+ { 70.972466f, -2848.674805f, 109.459f, 0.0f }
};
-Location AmbushSpawn[] =
+Position const AmbushMoveTo[] =
{
- { 191.296204f, -2839.329346f, 107.388f },
- { 70.972466f, -2848.674805f, 109.459f }
-};
-
-Location AmbushMoveTo[] =
-{
- { 166.630386f, -2824.780273f, 108.153f },
- { 70.886589f, -2874.335449f, 116.675f }
+ { 166.630386f, -2824.780273f, 108.153f, 0.0f },
+ { 70.886589f, -2874.335449f, 116.675f, 0.0f }
};
class npc_rinji : public CreatureScript
@@ -226,20 +221,18 @@ public:
if (!_first)
spawnId = 1;
- me->SummonCreature(NPC_RANGER, AmbushSpawn[spawnId].posX, AmbushSpawn[spawnId].posY, AmbushSpawn[spawnId].posZ, 0.0f,
- TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000);
+ me->SummonCreature(NPC_RANGER, AmbushSpawn[spawnId], TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000);
for (int i = 0; i < 2; ++i)
{
- me->SummonCreature(NPC_OUTRUNNER, AmbushSpawn[spawnId].posX, AmbushSpawn[spawnId].posY, AmbushSpawn[spawnId].posZ, 0.0f,
- TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000);
+ me->SummonCreature(NPC_OUTRUNNER, AmbushSpawn[spawnId], TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000);
}
}
void JustSummoned(Creature* summoned) override
{
summoned->SetWalk(false);
- summoned->GetMotionMaster()->MovePoint(0, AmbushMoveTo[spawnId].posX, AmbushMoveTo[spawnId].posY, AmbushMoveTo[spawnId].posZ);
+ summoned->GetMotionMaster()->MovePoint(0, AmbushMoveTo[spawnId]);
}
void sQuestAccept(Player* player, Quest const* quest)
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
index 8d23cf0a3e4..19b91b75dd4 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
@@ -71,35 +71,27 @@ enum LieutenantDrake
SPELL_FRIGHTENING_SHOUT = 33789
};
-struct Location
+G3D::Vector3 const DrakeWP[]=
{
- uint32 wpId;
- float x;
- float y;
- float z;
-};
-
-static Location DrakeWP[]=
-{
- {0, 2125.84f, 88.2535f, 54.8830f},
- {1, 2111.01f, 93.8022f, 52.6356f},
- {2, 2106.70f, 114.753f, 53.1965f},
- {3, 2107.76f, 138.746f, 52.5109f},
- {4, 2114.83f, 160.142f, 52.4738f},
- {5, 2125.24f, 178.909f, 52.7283f},
- {6, 2151.02f, 208.901f, 53.1551f},
- {7, 2177.00f, 233.069f, 52.4409f},
- {8, 2190.71f, 227.831f, 53.2742f},
- {9, 2178.14f, 214.219f, 53.0779f},
- {10, 2154.99f, 202.795f, 52.6446f},
- {11, 2132.00f, 191.834f, 52.5709f},
- {12, 2117.59f, 166.708f, 52.7686f},
- {13, 2093.61f, 139.441f, 52.7616f},
- {14, 2086.29f, 104.950f, 52.9246f},
- {15, 2094.23f, 81.2788f, 52.6946f},
- {16, 2108.70f, 85.3075f, 53.3294f},
- {17, 2125.50f, 88.9481f, 54.7953f},
- {18, 2128.20f, 70.9763f, 64.4221f}
+ { 2125.84f, 88.2535f, 54.8830f },
+ { 2111.01f, 93.8022f, 52.6356f },
+ { 2106.70f, 114.753f, 53.1965f },
+ { 2107.76f, 138.746f, 52.5109f },
+ { 2114.83f, 160.142f, 52.4738f },
+ { 2125.24f, 178.909f, 52.7283f },
+ { 2151.02f, 208.901f, 53.1551f },
+ { 2177.00f, 233.069f, 52.4409f },
+ { 2190.71f, 227.831f, 53.2742f },
+ { 2178.14f, 214.219f, 53.0779f },
+ { 2154.99f, 202.795f, 52.6446f },
+ { 2132.00f, 191.834f, 52.5709f },
+ { 2117.59f, 166.708f, 52.7686f },
+ { 2093.61f, 139.441f, 52.7616f },
+ { 2086.29f, 104.950f, 52.9246f },
+ { 2094.23f, 81.2788f, 52.6946f },
+ { 2108.70f, 85.3075f, 53.3294f },
+ { 2125.50f, 88.9481f, 54.7953f },
+ { 2128.20f, 70.9763f, 64.4221f }
};
class boss_lieutenant_drake : public CreatureScript
@@ -163,7 +155,7 @@ public:
/// @todo make this work
if (CanPatrol && wpId == 0)
{
- me->GetMotionMaster()->MovePoint(DrakeWP[0].wpId, DrakeWP[0].x, DrakeWP[0].y, DrakeWP[0].z);
+ me->GetMotionMaster()->MovePoint(wpId, DrakeWP[wpId].x, DrakeWP[wpId].y, DrakeWP[wpId].z);
++wpId;
}
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
index 8a0921b604b..3f882e0b99e 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
@@ -31,6 +31,9 @@ enum GossipNPCs
GOSSIP_MENU_ETERNOS = 9574,
GOSSIP_MENU_BELGARISTRASZ = 9575,
+ SPELL_CREATE_EMERALD_ESSENCE = 49382, // no effects in spell_dbc
+ SPELL_CREATE_AMBER_ESSENCE = 49447, // no effects in spell_dbc
+ SPELL_CREATE_RUBY_ESSENCE = 49450, // no effects in spell_dbc
ITEM_EMERALD_ESSENCE = 37815,
ITEM_AMBER_ESSENCE = 37859,
ITEM_RUBY_ESSENCE = 37860
@@ -48,7 +51,7 @@ enum Drakes
SPELL_RUBY_EVASIVE_AURA = 50248, // Instant - Allows the Ruby Drake to generate Evasive Charges when hit by hostile attacks and spells.
SPELL_RUBY_EVASIVE_CHARGES = 50241,
SPELL_RUBY_EVASIVE_MANEUVERS = 50240, // Instant - 5 sec. cooldown - Allows your drake to dodge all incoming attacks and spells. Requires Evasive Charges to use. Each attack or spell dodged while this ability is active burns one Evasive Charge. Lasts 30 sec. or until all charges are exhausted.
- // you do not have acces to until you kill Mage-Lord Urom
+ // you do not have access to until you kill the Mage-Lord Urom
SPELL_RUBY_MARTYR = 50253, // Instant - 10 sec. cooldown - Redirect all harmful spells cast at friendly drakes to yourself for 10 sec.
/*
@@ -112,7 +115,7 @@ class npc_verdisa_beglaristrasz_eternos : public CreatureScript
void StoreEssence(Player* player, uint32 itemId)
{
- /// @todo: should be handled by spell, but not found in dbc (49450 and other?)
+ /// @todo: implement with spells
uint32 count = 1;
ItemPosCountVec dest;
uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, itemId, count);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
index d3a6bc9b5ff..14087ace975 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
@@ -50,6 +50,7 @@ enum Spells
SPELL_HEAT = 65667,
SPELL_MOLTEN = 62373,
SPELL_BRITTLE = 62382,
+ SPELL_BRITTLE_25 = 67114,
SPELL_SHATTER = 62383,
SPELL_GROUND = 62548,
};
@@ -320,7 +321,7 @@ class npc_iron_construct : public CreatureScript
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
{
- if (me->HasAura(SPELL_BRITTLE) && damage >= 5000)
+ if (me->HasAura(RAID_MODE(SPELL_BRITTLE, SPELL_BRITTLE_25)) && damage >= 5000)
{
DoCast(SPELL_SHATTER);
if (Creature* ignis = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(BOSS_IGNIS)))
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
index bacb63b73bc..c6e4f40ef58 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
@@ -58,7 +58,7 @@ enum Misc
MAX_TEMPEST_MINIONS = 4
};
-struct Position TempestMinions[MAX_TEMPEST_MINIONS] =
+Position const TempestMinions[MAX_TEMPEST_MINIONS] =
{
{-203.980103f, -281.287720f, 91.650223f, 1.598807f},
{-233.489410f, -281.139282f, 91.652412f, 1.598807f},
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
index aec4e982a49..64e9932c29b 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
@@ -298,12 +298,7 @@ static const Yells Conversation[22] =
{0, "", EMPTY, 1000, 0, false} // 21
};
-struct Locations
-{
- float x, y, z;
-};
-
-static const Locations HoverPosition[4]=
+G3D::Vector3 const HoverPosition[4]=
{
{657.0f, 340.0f, 355.0f},
{657.0f, 275.0f, 355.0f},
@@ -311,7 +306,7 @@ static const Locations HoverPosition[4]=
{705.0f, 340.0f, 355.0f}
};
-static const Locations GlaivePosition[4]=
+G3D::Vector3 const GlaivePosition[4]=
{
{695.105f, 305.303f, 354.256f},
{659.338f, 305.303f, 354.256f}, // the distance between two glaives is 36
@@ -319,13 +314,13 @@ static const Locations GlaivePosition[4]=
{664.338f, 305.303f, 354.256f}
};
-static const Locations EyeBlast[2]=
+G3D::Vector3 const EyeBlast[2]=
{
{677.0f, 350.0f, 354.0f}, // start point, pass through glaive point
{677.0f, 260.0f, 354.0f}
};
-static const Locations AkamaWP[13]=
+G3D::Vector3 const AkamaWP[13]=
{
{770.01f, 304.50f, 312.29f}, // Bottom of the first stairs, at the doors
{780.66f, 304.50f, 319.74f}, // Top of the first stairs
@@ -342,7 +337,7 @@ static const Locations AkamaWP[13]=
{782.01f, 304.55f, 319.76f} // Final location - back at the initial gates. This is where he will fight the minions! (12)
};
// 755.762f, 304.0747f, 312.1769f -- This is where Akama should be spawned
-static const Locations SpiritSpawns[2]=
+G3D::Vector3 const SpiritSpawns[2]=
{
{755.5426f, 309.9156f, 312.2129f},
{755.5426f, 298.7923f, 312.0834f}
@@ -734,14 +729,14 @@ public:
disty = EyeBlast[i].y - HoverPosition[HoverPoint].y;
dist[i] = distx * distx + disty * disty;
}
- Locations initial = EyeBlast[dist[0] < dist[1] ? 0 : 1];
+ G3D::Vector3 initial = EyeBlast[dist[0] < dist[1] ? 0 : 1];
for (uint8 i = 0; i < 2; ++i)
{
distx = GlaivePosition[i].x - HoverPosition[HoverPoint].x;
disty = GlaivePosition[i].y - HoverPosition[HoverPoint].y;
dist[i] = distx * distx + disty * disty;
}
- Locations final = GlaivePosition[dist[0] < dist[1] ? 0 : 1];
+ G3D::Vector3 final = GlaivePosition[dist[0] < dist[1] ? 0 : 1];
final.x = 2 * final.x - initial.x;
final.y = 2 * final.y - initial.y;
diff --git a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp
index 39aac706acc..a4e589cde90 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp
@@ -82,12 +82,7 @@ uint32 PrismaticAuras[]=
40897, // Holy
};
-struct Locations
-{
- float x, y, z;
-};
-
-static Locations TeleportPoint[]=
+G3D::Vector3 const TeleportPoint[]=
{
{959.996f, 212.576f, 193.843f},
{932.537f, 231.813f, 193.838f},
diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
index 23abf48233e..438816b7e10 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
@@ -84,12 +84,7 @@ enum ReliquaryOfSouls
NUMBER_ENSLAVED_SOUL = 8
};
-struct Position2d
-{
- float x, y;
-};
-
-static Position2d Coords[]=
+G3D::Vector2 const Coords[]=
{
{450.4f, 212.3f},
{542.1f, 212.3f},
diff --git a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
index ecc4457e454..6ff865cfcd0 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
@@ -141,14 +141,9 @@ enum Events
EVENT_SPIRIT_HEAL = 24
};
-struct Location
-{
- float x, y, z;
-};
-
-static Location ShadeWP = { 512.4877f, 400.7993f, 112.7837f };
+G3D::Vector3 const ShadeWP = { 512.4877f, 400.7993f, 112.7837f };
-static Location AkamaWP[] =
+G3D::Vector3 const AkamaWP[] =
{
{ 517.4877f, 400.7993f, 112.7837f },
{ 468.4435f, 401.1062f, 118.5379f }
diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
index e6f32a07538..031e877ffb0 100644
--- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
+++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
@@ -1213,13 +1213,8 @@ static TorlothCinematic TorlothAnim[]=
{0, 0}
};
-struct Location
-{
- float x, y, z, o;
-};
-
//Cordinates for Spawns
-static Location SpawnLocation[]=
+static Position SpawnLocation[]=
{
//Cords used for:
{-4615.8556f, 1342.2532f, 139.9f, 1.612f}, //Illidari Soldier
@@ -1727,12 +1722,7 @@ void npc_lord_illidan_stormrage::npc_lord_illidan_stormrageAI::SummonNextWave()
for (uint8 i = 0; i < count; ++i)
{
- Creature* Spawn = NULL;
- float X = SpawnLocation[locIndex + i].x;
- float Y = SpawnLocation[locIndex + i].y;
- float Z = SpawnLocation[locIndex + i].z;
- float O = SpawnLocation[locIndex + i].o;
- Spawn = me->SummonCreature(WavesInfo[WaveCount].CreatureId, X, Y, Z, O, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
+ Creature* Spawn = me->SummonCreature(WavesInfo[WaveCount].CreatureId, SpawnLocation[locIndex + i], TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
++LiveCount;
if (Spawn)
diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp
index f613704164e..c6b23101be2 100644
--- a/src/server/scripts/World/npcs_special.cpp
+++ b/src/server/scripts/World/npcs_special.cpp
@@ -530,12 +530,7 @@ enum Doctor
HORDE_COORDS = 6
};
-struct Location
-{
- float x, y, z, o;
-};
-
-static Location AllianceCoords[]=
+Position const AllianceCoords[]=
{
{-3757.38f, -4533.05f, 14.16f, 3.62f}, // Top-far-right bunk as seen from entrance
{-3754.36f, -4539.13f, 14.16f, 5.13f}, // Top-far-left bunk
@@ -551,7 +546,7 @@ static Location AllianceCoords[]=
#define A_RUNTOY -4531.52f
#define A_RUNTOZ 11.91f
-static Location HordeCoords[]=
+Position const HordeCoords[]=
{
{-1013.75f, -3492.59f, 62.62f, 4.34f}, // Left, Behind
{-1017.72f, -3490.92f, 62.62f, 4.34f}, // Right, Behind
@@ -620,7 +615,7 @@ public:
bool Event;
GuidList Patients;
- std::vector<Location*> Coordinates;
+ std::vector<Position const*> Coordinates;
void Reset() override
{
@@ -653,7 +648,7 @@ public:
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
- void PatientDied(Location* point)
+ void PatientDied(Position const* point)
{
Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID);
if (player && ((player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)))
@@ -678,7 +673,7 @@ public:
Reset();
}
- void PatientSaved(Creature* /*soldier*/, Player* player, Location* point)
+ void PatientSaved(Creature* /*soldier*/, Player* player, Position const* point)
{
if (player && PlayerGUID == player->GetGUID())
{
@@ -753,7 +748,7 @@ public:
}
ObjectGuid DoctorGUID;
- Location* Coord;
+ Position const* Coord;
void Reset() override
{
@@ -870,7 +865,6 @@ void npc_doctor::npc_doctorAI::UpdateAI(uint32 diff)
if (Coordinates.empty())
return;
- std::vector<Location*>::iterator itr = Coordinates.begin() + rand32() % Coordinates.size();
uint32 patientEntry = 0;
switch (me->GetEntry())
@@ -886,20 +880,21 @@ void npc_doctor::npc_doctorAI::UpdateAI(uint32 diff)
return;
}
- if (Location* point = *itr)
+ std::vector<Position const*>::iterator point = Coordinates.begin();
+ std::advance(point, urand(0, Coordinates.size() - 1));
+
+ if (Creature* Patient = me->SummonCreature(patientEntry, **point, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
{
- if (Creature* Patient = me->SummonCreature(patientEntry, point->x, point->y, point->z, point->o, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- //303, this flag appear to be required for client side item->spell to work (TARGET_SINGLE_FRIEND)
- Patient->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE);
+ //303, this flag appear to be required for client side item->spell to work (TARGET_SINGLE_FRIEND)
+ Patient->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE);
- Patients.push_back(Patient->GetGUID());
- ENSURE_AI(npc_injured_patient::npc_injured_patientAI, Patient->AI())->DoctorGUID = me->GetGUID();
- ENSURE_AI(npc_injured_patient::npc_injured_patientAI, Patient->AI())->Coord = point;
+ Patients.push_back(Patient->GetGUID());
+ ENSURE_AI(npc_injured_patient::npc_injured_patientAI, Patient->AI())->DoctorGUID = me->GetGUID();
+ ENSURE_AI(npc_injured_patient::npc_injured_patientAI, Patient->AI())->Coord = *point;
- Coordinates.erase(itr);
- }
+ Coordinates.erase(point);
}
+
SummonPatientTimer = 10000;
++SummonPatientCount;
}