diff options
| -rw-r--r-- | sql/updates/world/3.3.5/2018_01_12_02_world.sql | 338 | ||||
| -rw-r--r-- | src/server/scripts/Outland/zone_hellfire_peninsula.cpp | 207 |
2 files changed, 545 insertions, 0 deletions
diff --git a/sql/updates/world/3.3.5/2018_01_12_02_world.sql b/sql/updates/world/3.3.5/2018_01_12_02_world.sql new file mode 100644 index 00000000000..60aa81a5c67 --- /dev/null +++ b/sql/updates/world/3.3.5/2018_01_12_02_world.sql @@ -0,0 +1,338 @@ +UPDATE `creature_template` SET `ScriptName`='npc_watch_commander_leonus' WHERE `entry`=19392; +UPDATE `creature_template` SET `ScriptName`='npc_fear_controller' WHERE `entry`=19393; +UPDATE `creature_template` SET `InhabitType`=4, `unit_flags`=33554688, `unit_flags2`=2099200, `mechanic_immune_mask`=16, `ScriptName`='npc_infernal_rain_hellfire' WHERE `entry`=18729; + +SET @CGUID:=86515; + +DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+14; +INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`) VALUES +(@CGUID+0 , 18729, 530, 1, 1, 0, 0, -683.1428, 2622.864, 89.59037, 5.80891, 120, 0, 0, 0, 0, 0, 0, 0, 0), -- 18729 (Area: 3538) +(@CGUID+1 , 18729, 530, 1, 1, 0, 0, -713.3168, 2651.34, 93.92698, 5.471165, 120, 0, 0, 0, 0, 0, 0, 0, 0), -- 18729 (Area: 3538) +(@CGUID+2 , 18729, 530, 1, 1, 0, 0, -741.99, 2684.844, 102.0951, 4.382171, 120, 0, 0, 0, 0, 0, 0, 0, 0), -- 18729 (Area: 3538) +(@CGUID+3 , 18729, 530, 1, 1, 0, 0, -693.7301, 2633.678, 90.98701, 0.2279181, 120, 0, 0, 0, 0, 0, 0, 0, 0), -- 18729 (Area: 3538) +(@CGUID+4 , 18729, 530, 1, 1, 0, 0, -735.713, 2694.272, 104.4392, 0.5298103, 120, 0, 0, 0, 0, 0, 0, 0, 0), -- 18729 (Area: 3538) +(@CGUID+5 , 18729, 530, 1, 1, 0, 0, -681.5517, 2599.244, 87.77497, 0.3001323, 120, 0, 0, 0, 0, 0, 0, 0, 0), -- 18729 (Area: 3538) +(@CGUID+6 , 18729, 530, 1, 1, 0, 0, -642.3084, 2637.57, 86.72314, 0.4260551, 120, 0, 0, 0, 0, 0, 0, 0, 0), -- 18729 (Area: 3538) +(@CGUID+7 , 18729, 530, 1, 1, 0, 0, -659.7936, 2608.224, 86.08431, 2.401085, 120, 0, 0, 0, 0, 0, 0, 0, 0), -- 18729 (Area: 3538) +(@CGUID+8 , 18729, 530, 1, 1, 0, 0, -623.8005, 2710.563, 87.20694, 0.7798759, 120, 0, 0, 0, 0, 0, 0, 0, 0), -- 18729 (Area: 3538) +(@CGUID+9 , 18729, 530, 1, 1, 0, 0, -641.7952, 2562.457, 80.51072, 4.093502, 120, 0, 0, 0, 0, 0, 0, 0, 0), -- 18729 (Area: 3538) +(@CGUID+10, 18729, 530, 1, 1, 0, 0, -691.3125, 2778.354, 146.9783, 0.1396263, 120, 0, 0, 0, 0, 0, 0, 0, 0), -- 18729 (Area: 3538) +(@CGUID+11, 18729, 530, 1, 1, 0, 0, -722.2483, 2568.132, 143.0607, 1.291544, 120, 0, 0, 0, 0, 0, 0, 0, 0), -- 18729 (Area: 3538) +(@CGUID+12, 18729, 530, 1, 1, 0, 0, -649.1522, 2588.543, 125.6584, 6.195919, 120, 0, 0, 0, 0, 0, 0, 0, 0), -- 18729 (Area: 3538) +(@CGUID+13, 18729, 530, 1, 1, 0, 0, -774.342, 2746.167, 185.9423, 4.572762, 120, 0, 0, 0, 0, 0, 0, 0, 0), -- 18729 (Area: 3538) +(@CGUID+14, 18729, 530, 1, 1, 0, 0, -588.2762, 2632.034, 146.1269, 4.29351, 120, 0, 0, 0, 0, 0, 0, 0, 0); -- 18729 (Area: 3538) + +-- Pathing for INFERNAL RAIN (Hellfire) Entry: 18729 'TDB FORMAT' +SET @NPC := @CGUID+0; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-698.8525,`position_y`=2632.825,`position_z`=91.81726 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,-698.8525,2632.825,91.81726,0,0,0,0,100,0), -- 15:21:08 +(@PATH,2,-677.9506,2644.509,90.49536,0,0,0,0,100,0), -- 15:21:10 +(@PATH,3,-676.4061,2653.433,90.78812,0,0,0,0,100,0), -- 15:21:18 +(@PATH,4,-681.5089,2671.245,91.57988,0,0,0,0,100,0), -- 15:21:11 +(@PATH,5,-687.4851,2676.51,93.05498,0,0,0,0,100,0), -- 15:21:27 +(@PATH,6,-698.7255,2680.534,94.95392,0,0,0,0,100,0), -- 15:21:12 +(@PATH,7,-719.0013,2673.964,96.20638,0,0,0,0,100,0), -- 15:21:13 +(@PATH,8,-724.5556,2664.502,95.43507,0,0,0,0,100,0), -- 15:21:22 +(@PATH,9,-724.8938,2656.548,95.15915,0,0,0,0,100,0), -- 15:21:14 +(@PATH,10,-717.3865,2639.541,93.57843,0,0,0,0,100,0), -- 15:21:23 +(@PATH,11,-708.137,2634.875,92.46405,0,0,0,0,100,0); -- 15:21:16 +-- 0x203CC84240124A400000440000351C35 .go -698.8525 2632.825 91.81726 + +-- Pathing for Infernal Rain (Hellfire) Entry: 18729 'TDB FORMAT' +SET @NPC := @CGUID+1; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-656.7727,`position_y`=2602.906,`position_z`=85.797 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,-656.7727,2602.906,85.797,0,0,0,0,100,0), -- 15:22:43 +(@PATH,2,-678.8431,2618.197,88.64764,0,0,0,0,100,0), -- 15:22:44 +(@PATH,3,-675.5577,2630.384,88.95792,0,0,0,0,100,0), -- 15:22:46 +(@PATH,4,-656.4027,2644.927,87.55663,0,0,0,0,100,0), -- 15:22:47 +(@PATH,5,-648.3109,2634.846,86.95815,0,0,0,0,100,0), -- 15:22:48 +(@PATH,6,-647.9454,2635.122,87.21871,0,0,0,0,100,0), -- 15:22:49 +(@PATH,7,-636.1139,2640.37,86.79756,0,0,0,0,100,0), -- 15:22:49 +(@PATH,8,-626.1254,2626.464,85.096,0,0,0,0,100,0), -- 15:22:50 +(@PATH,9,-647.9573,2611.305,86.06158,0,0,0,0,100,0); -- 15:22:52 +-- 0x203CC84240124A400000440000B51C35 .go -656.7727 2602.906 85.797 + +-- Pathing for Infernal Rain (Hellfire) Entry: 18729 'TDB FORMAT' +SET @NPC := @CGUID+2; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-613.5233,`position_y`=2568.954,`position_z`=81.81258 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,-613.5233,2568.954,81.81258,0,0,0,0,100,0), -- 15:21:22 +(@PATH,2,-629.8984,2569.196,81.15677,0,0,0,0,100,0), -- 15:21:23 +(@PATH,3,-654.4181,2550.052,78.73563,0,0,0,0,100,0), -- 15:21:24 +(@PATH,4,-658.7616,2530.438,73.62208,0,0,0,0,100,0), -- 15:21:27 +(@PATH,5,-636.1871,2545.187,77.4874,0,0,0,0,100,0), -- 15:21:28 +(@PATH,6,-631.4529,2548.692,77.04776,0,0,0,0,100,0), -- 15:21:29 +(@PATH,7,-584.7521,2568.345,76.42328,0,0,0,0,100,0), -- 15:21:30 +(@PATH,8,-586.6555,2596.958,88.95888,0,0,0,0,100,0), -- 15:21:33 +(@PATH,9,-591.6433,2598.593,87.90211,0,0,0,0,100,0), -- 15:21:34 +(@PATH,10,-600.2521,2585.858,82.3437,0,0,0,0,100,0), -- 15:21:35 +(@PATH,11,-613.5173,2569.089,81.87325,0,0,0,0,100,0), -- 15:21:36 +(@PATH,12,-643.5018,2559.942,80.45127,0,0,0,0,100,0), -- 15:21:38 +(@PATH,13,-654.5405,2550.142,78.79336,0,0,0,0,100,0), -- 15:21:39 +(@PATH,14,-669.284,2539.369,74.70662,0,0,0,0,100,0), -- 15:21:40 +(@PATH,15,-658.7957,2530.59,73.66014,0,0,0,0,100,0), -- 15:21:41 +(@PATH,16,-636.2113,2545.337,77.37846,0,0,0,0,100,0), -- 15:21:42 +(@PATH,17,-631.4822,2548.737,76.93141,0,0,0,0,100,0), -- 15:21:44 +(@PATH,18,-584.7199,2568.445,76.33899,0,0,0,0,100,0), -- 15:21:45 +(@PATH,19,-582.5537,2571.944,76.96735,0,0,0,0,100,0), -- 15:21:46 +(@PATH,20,-586.6714,2596.896,88.93387,0,0,0,0,100,0), -- 15:21:47 +(@PATH,21,-600.2708,2585.577,82.16212,0,0,0,0,100,0), -- 15:21:48 +(@PATH,22,-613.3537,2569.01,81.93314,0,0,0,0,100,0), -- 15:21:50 +(@PATH,23,-615.0601,2567.808,81.13249,0,0,0,0,100,0), -- 15:21:51 +(@PATH,24,-643.3428,2559.926,80.59372,0,0,0,0,100,0), -- 15:21:52 +(@PATH,25,-654.5143,2549.978,78.61452,0,0,0,0,100,0), -- 15:21:53 +(@PATH,26,-669.2421,2538.915,74.92723,0,0,0,0,100,0), -- 15:21:55 +(@PATH,27,-658.9216,2530.562,73.78191,0,0,0,0,100,0), -- 15:21:56 +(@PATH,28,-636.2302,2545.251,77.44119,0,0,0,0,100,0), -- 15:21:57 +(@PATH,29,-631.1454,2548.875,76.91211,0,0,0,0,100,0), -- 15:21:58 +(@PATH,30,-584.6096,2568.467,76.48515,0,0,0,0,100,0), -- 15:21:59 +(@PATH,31,-582.5697,2571.928,76.96999,0,0,0,0,100,0), -- 15:22:01 +(@PATH,32,-591.4938,2598.523,88.00578,0,0,0,0,100,0), -- 15:22:02 +(@PATH,33,-600.2296,2585.605,82.09475,0,0,0,0,100,0), -- 15:22:03 +(@PATH,34,-613.3531,2569.051,81.79434,0,0,0,0,100,0); -- 15:22:04 +-- 0x203CC84240124A400000440001B51C35 .go -613.5233 2568.954 81.81258 + +-- Pathing for Infernal Rain (Hellfire) Entry: 18729 'TDB FORMAT' +SET @NPC := @CGUID+3; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-620.3628,`position_y`=2564.344,`position_z`=79.32322 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,-620.3628,2564.344,79.32322,0,0,0,0,100,0), -- 15:21:33 +(@PATH,2,-634.0519,2571.64,81.53027,0,0,0,0,100,0), -- 15:21:34 +(@PATH,3,-649.1782,2594.351,84.73848,0,0,0,0,100,0), -- 15:21:35 +(@PATH,4,-664.6262,2612.697,86.85725,0,0,0,0,100,0), -- 15:21:36 +(@PATH,5,-665.9905,2624.81,87.50397,0,0,0,0,100,0), -- 15:21:38 +(@PATH,6,-674.386,2625.81,88.74261,0,0,0,0,100,0), -- 15:21:39 +(@PATH,7,-660.9735,2608.719,86.27945,0,0,0,0,100,0), -- 15:21:40 +(@PATH,8,-645.7166,2575.045,83.09628,0,0,0,0,100,0), -- 15:21:41 +(@PATH,9,-632.8522,2543.363,77.10129,0,0,0,0,100,0), -- 15:21:42 +(@PATH,10,-610.8413,2554.551,75.4816,0,0,0,0,100,0), -- 15:21:44 +(@PATH,11,-600.859,2562.016,78.13591,0,0,0,0,100,0), -- 15:21:45 +(@PATH,12,-596.7775,2586.915,82.92734,0,0,0,0,100,0), -- 15:21:46 +(@PATH,13,-609.1469,2570.99,81.41309,0,0,0,0,100,0); -- 15:21:47 +-- 0x203CC84240124A400000440003351C35 .go -620.3628 2564.344 79.32322 + +-- Pathing for Infernal Rain (Hellfire) Entry: 18729 'TDB FORMAT' +SET @NPC := @CGUID+4; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-689.8017,`position_y`=2595.023,`position_z`=89.04801 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,-689.8017,2595.023,89.04801,0,0,0,0,100,0), -- 15:23:08 +(@PATH,2,-694.9512,2616.941,90.54378,0,0,0,0,100,0), -- 15:23:09 +(@PATH,3,-677.0544,2619.867,88.82404,0,0,0,0,100,0), -- 15:23:10 +(@PATH,4,-676.0784,2598.351,87.68272,0,0,0,0,100,0), -- 15:23:11 +(@PATH,5,-695.2137,2603.727,90.68155,0,0,0,0,100,0), -- 15:23:13 +(@PATH,6,-688.4651,2622.775,90.59154,0,0,0,0,100,0), -- 15:23:14 +(@PATH,7,-671.8881,2610.943,87.61096,0,0,0,0,100,0), -- 15:23:15 +(@PATH,8,-682.2012,2594.566,88.13221,0,0,0,0,100,0), -- 15:23:16 +(@PATH,9,-695.6737,2608.772,90.66994,0,0,0,0,100,0), -- 15:23:18 +(@PATH,10,-677.1846,2619.737,88.83925,0,0,0,0,100,0), -- 15:23:19 +(@PATH,11,-676.1918,2598.365,87.90189,0,0,0,0,100,0), -- 15:23:20 +(@PATH,12,-695.1645,2603.547,90.49475,0,0,0,0,100,0), -- 15:23:21 +(@PATH,13,-688.2673,2622.599,90.37753,0,0,0,0,100,0), -- 15:23:22 +(@PATH,14,-671.6782,2610.918,87.62653,0,0,0,0,100,0), -- 15:23:23 +(@PATH,15,-682.1849,2594.786,88.28103,0,0,0,0,100,0), -- 15:23:25 +(@PATH,16,-695.7292,2608.76,90.58568,0,0,0,0,100,0), -- 15:23:26 +(@PATH,17,-683.2664,2622.867,89.8029,0,0,0,0,100,0), -- 15:23:27 +(@PATH,18,-672.1084,2603.935,87.34198,0,0,0,0,100,0), -- 15:23:28 +(@PATH,19,-695.3795,2603.66,90.5396,0,0,0,0,100,0), -- 15:23:30 +(@PATH,20,-694.9478,2616.933,90.5663,0,0,0,0,100,0), -- 15:23:31 +(@PATH,21,-677.1843,2619.85,88.79141,0,0,0,0,100,0), -- 15:23:32 +(@PATH,22,-682.2476,2594.647,88.20087,0,0,0,0,100,0), -- 15:23:33 +(@PATH,23,-695.7581,2608.89,90.5127,0,0,0,0,100,0), -- 15:23:35 +(@PATH,24,-683.1781,2622.934,89.70201,0,0,0,0,100,0), -- 15:23:36 +(@PATH,25,-672.0298,2603.892,87.34035,0,0,0,0,100,0), -- 15:23:37 +(@PATH,26,-689.723,2595.061,88.93065,0,0,0,0,100,0), -- 15:23:38 +(@PATH,27,-694.8854,2616.875,90.43231,0,0,0,0,100,0), -- 15:23:39 +(@PATH,28,-677.0415,2619.769,88.80734,0,0,0,0,100,0), -- 15:23:40 +(@PATH,29,-682.0645,2594.695,88.17558,0,0,0,0,100,0), -- 15:23:42 +(@PATH,30,-695.1677,2603.533,90.49393,0,0,0,0,100,0), -- 15:23:43 +(@PATH,31,-683.2116,2622.866,89.75854,0,0,0,0,100,0), -- 15:23:44 +(@PATH,32,-671.9715,2603.812,87.33574,0,0,0,0,100,0); -- 15:23:46 +-- 0x203CC84240124A400000440003B51C35 .go -689.8017 2595.023 89.04801 + +-- Pathing for Infernal Rain (Hellfire) Entry: 18729 'TDB FORMAT' +SET @NPC := @CGUID+5; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-700.4591,`position_y`=2581.236,`position_z`=89.85777 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,-700.4591,2581.236,89.85777,0,0,0,0,100,0), -- 15:21:00 +(@PATH,2,-686.7537,2594.742,88.65184,0,0,0,0,100,0), -- 15:21:01 +(@PATH,3,-681.7879,2599.051,87.94156,0,0,0,0,100,0), -- 15:21:03 +(@PATH,4,-645.0184,2615.645,85.78815,0,0,0,0,100,0), -- 15:21:04 +(@PATH,5,-652.3442,2621.35,87.0186,0,0,0,0,100,0), -- 15:21:05 +(@PATH,6,-677.1797,2618.292,88.59647,0,0,0,0,100,0), -- 15:21:06 +(@PATH,7,-692.8289,2608.688,90.29023,0,0,0,0,100,0), -- 15:21:08 +(@PATH,8,-694.9995,2595.214,89.93396,0,0,0,0,100,0); -- 15:21:09 +-- 0x203CC84240124A400000440004351C35 .go -700.4591 2581.236 89.85777 + +-- Pathing for Infernal Rain (Hellfire) Entry: 18729 'TDB FORMAT' +SET @NPC := @CGUID+6; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-630.4395,`position_y`=2714.029,`position_z`=88.03479 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,-630.4395,2714.029,88.03479,0,0,0,0,100,0), -- 15:20:57 +(@PATH,2,-639.6129,2702.679,89.08209,0,0,0,0,100,0), -- 15:20:58 +(@PATH,3,-653.7972,2691.186,89.59717,0,0,0,0,100,0), -- 15:20:59 +(@PATH,4,-676.4966,2688.914,93.74294,0,0,0,0,100,0), -- 15:21:00 +(@PATH,5,-668.0986,2710.315,95.53355,0,0,0,0,100,0), -- 15:21:02 +(@PATH,6,-678.1981,2712.437,96.50993,0,0,0,0,100,0), -- 15:21:03 +(@PATH,7,-689.6499,2683.876,94.61096,0,0,0,0,100,0), -- 15:21:04 +(@PATH,8,-676.4872,2670.626,91.28802,0,0,0,0,100,0), -- 15:21:06 +(@PATH,9,-648.0355,2690.657,89.56966,0,0,0,0,100,0), -- 15:21:07 +(@PATH,10,-641.1539,2694.737,89.20296,0,0,0,0,100,0), -- 15:21:08 +(@PATH,11,-622.3976,2712.029,87.43461,0,0,0,0,100,0), -- 15:21:09 +(@PATH,12,-618.0607,2730.373,86.00659,0,0,0,0,100,0), -- 15:21:10 +(@PATH,13,-639.5991,2702.866,89.00571,0,0,0,0,100,0), -- 15:21:12 +(@PATH,14,-653.4491,2691.407,89.64917,0,0,0,0,100,0), -- 15:21:13 +(@PATH,15,-675.2776,2686.989,92.92959,0,0,0,0,100,0), -- 15:21:14 +(@PATH,16,-668.0339,2710.14,95.59471,0,0,0,0,100,0), -- 15:21:15 +(@PATH,17,-678.3527,2712.485,96.54314,0,0,0,0,100,0), -- 15:21:16 +(@PATH,18,-689.8736,2688.418,95.18272,0,0,0,0,100,0), -- 15:21:18 +(@PATH,19,-680.2233,2671.275,91.65306,0,0,0,0,100,0), -- 15:21:19 +(@PATH,20,-647.9753,2690.686,89.70755,0,0,0,0,100,0), -- 15:21:20 +(@PATH,21,-641.0308,2694.546,89.32167,0,0,0,0,100,0), -- 15:21:21 +(@PATH,22,-622.1934,2711.996,87.52415,0,0,0,0,100,0), -- 15:21:23 +(@PATH,23,-618.2394,2730.46,85.93001,0,0,0,0,100,0), -- 15:21:24 +(@PATH,24,-630.5289,2714.474,87.94388,0,0,0,0,100,0), -- 15:21:25 +(@PATH,25,-653.4489,2691.482,89.69986,0,0,0,0,100,0), -- 15:21:26 +(@PATH,26,-675.2495,2687.212,92.96544,0,0,0,0,100,0), -- 15:21:27 +(@PATH,27,-668.3044,2701.24,94.87445,0,0,0,0,100,0), -- 15:21:28 +(@PATH,28,-672.5935,2718.499,95.4474,0,0,0,0,100,0), -- 15:21:30 +(@PATH,29,-689.8506,2688.373,95.21011,0,0,0,0,100,0), -- 15:21:31 +(@PATH,30,-689.2906,2680.638,93.79676,0,0,0,0,100,0), -- 15:21:32 +(@PATH,31,-647.8615,2690.679,89.63545,0,0,0,0,100,0), -- 15:21:33 +(@PATH,32,-622.1901,2712.1,87.35561,0,0,0,0,100,0), -- 15:21:36 +(@PATH,33,-613.1973,2727.032,85.68462,0,0,0,0,100,0), -- 15:21:37 +(@PATH,34,-630.4551,2714.255,87.89551,0,0,0,0,100,0); -- 15:21:38 +-- 0x203CC84240124A400000440005351C34 .go -630.4395 2714.029 88.03479 + +-- Pathing for Infernal Rain (Hellfire) Entry: 18729 'TDB FORMAT' +SET @NPC := @CGUID+7; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-761.1827,`position_y`=2701.847,`position_z`=108.3081 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,-761.1827,2701.847,108.3081,0,0,0,0,100,0), -- 15:21:41 +(@PATH,2,-763.432,2721.831,117.5021,0,0,0,0,100,0), -- 15:21:42 +(@PATH,3,-773.3309,2720.005,117.13,0,0,0,0,100,0), -- 15:21:43 +(@PATH,4,-788.311,2733.121,117.8913,0,0,0,0,100,0), -- 15:21:44 +(@PATH,5,-758.8734,2722.237,116.7121,0,0,0,0,100,0), -- 15:21:46 +(@PATH,6,-750.6326,2715.539,113.1729,0,0,0,0,100,0), -- 15:21:47 +(@PATH,7,-740.0147,2690.306,104.178,0,0,0,0,100,0), -- 15:21:48 +(@PATH,8,-752.843,2679.486,101.8023,0,0,0,0,100,0), -- 15:21:49 +(@PATH,9,-784.1663,2686.454,104.5872,0,0,0,0,100,0), -- 15:21:50 +(@PATH,10,-795.9035,2686.967,105.288,0,0,0,0,100,0), -- 15:21:52 +(@PATH,11,-807.5844,2704.689,108.8084,0,0,0,0,100,0), -- 15:21:53 +(@PATH,12,-790.9392,2709.087,109.056,0,0,0,0,100,0), -- 15:21:54 +(@PATH,13,-783.5266,2701.725,107.6792,0,0,0,0,100,0), -- 15:21:55 +(@PATH,14,-762.7386,2720.122,116.8518,0,0,0,0,100,0), -- 15:21:57 +(@PATH,15,-773.3821,2719.644,116.9987,0,0,0,0,100,0), -- 15:21:58 +(@PATH,16,-797.9175,2733.678,117.4854,0,0,0,0,100,0), -- 15:21:59 +(@PATH,17,-758.7566,2722.274,116.7635,0,0,0,0,100,0), -- 15:22:00 +(@PATH,18,-750.7303,2715.479,113.2036,0,0,0,0,100,0), -- 15:22:01 +(@PATH,19,-742.5223,2706.447,109.2216,0,0,0,0,100,0), -- 15:22:03 +(@PATH,20,-753.0249,2679.495,101.9872,0,0,0,0,100,0), -- 15:22:04 +(@PATH,21,-767.0206,2684.747,103.4404,0,0,0,0,100,0), -- 15:22:05 +(@PATH,22,-795.8685,2687.028,105.4345,0,0,0,0,100,0), -- 15:22:06 +(@PATH,23,-807.5786,2704.569,108.8766,0,0,0,0,100,0), -- 15:22:08 +(@PATH,24,-806.0139,2706.778,109.1797,0,0,0,0,100,0), -- 15:22:09 +(@PATH,25,-783.2947,2701.656,107.6781,0,0,0,0,100,0), -- 15:22:10 +(@PATH,26,-762.7495,2720.095,116.9874,0,0,0,0,100,0), -- 15:22:11 +(@PATH,27,-773.2406,2719.672,116.9973,0,0,0,0,100,0), -- 15:22:12 +(@PATH,28,-795.0907,2729.675,117.6628,0,0,0,0,100,0), -- 15:22:14 +(@PATH,29,-788.4598,2733.199,117.8639,0,0,0,0,100,0), -- 15:22:15 +(@PATH,30,-754.7383,2719.982,115.1603,0,0,0,0,100,0), -- 15:22:16 +(@PATH,31,-742.5227,2706.411,109.1998,0,0,0,0,100,0), -- 15:22:17 +(@PATH,32,-740.782,2688.58,103.606,0,0,0,0,100,0), -- 15:22:18 +(@PATH,33,-767.0979,2684.736,103.8746,0,0,0,0,100,0), -- 15:22:20 +(@PATH,34,-784.1396,2686.581,104.4419,0,0,0,0,100,0), -- 15:22:21 +(@PATH,35,-802.2366,2687.199,105.5248,0,0,0,0,100,0), -- 15:22:22 +(@PATH,36,-805.9133,2706.766,109.1137,0,0,0,0,100,0), -- 15:22:23 +(@PATH,37,-783.6552,2701.552,107.567,0,0,0,0,100,0); -- 15:22:25 +-- 0x203CC84240124A400000440005B51C34 .go -761.1827 2701.847 108.3081 + +-- Pathing for Infernal Rain (Hellfire) Entry: 18729 'TDB FORMAT' +SET @NPC := @CGUID+8; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-696.4537,`position_y`=2672.248,`position_z`=94.02368 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,-696.4537,2672.248,94.02368,0,0,0,0,100,0), -- 15:22:22 +(@PATH,2,-715.4374,2665.521,94.87578,0,0,0,0,100,0), -- 15:22:23 +(@PATH,3,-691.6254,2645.292,93.06143,0,0,0,0,100,0), -- 15:22:25 +(@PATH,4,-687.4556,2661.372,93.48894,0,0,0,0,100,0), -- 15:22:26 +(@PATH,5,-696.2938,2672.279,94.02504,0,0,0,0,100,0), -- 15:22:27 +(@PATH,6,-715.679,2654.232,94.33944,0,0,0,0,100,0), -- 15:22:28 +(@PATH,7,-691.636,2645.265,93.06179,0,0,0,0,100,0), -- 15:22:29 +(@PATH,8,-687.5698,2661.478,93.46684,0,0,0,0,100,0), -- 15:22:31 +(@PATH,9,-706.7507,2672.399,94.58054,0,0,0,0,100,0), -- 15:22:32 +(@PATH,10,-715.6765,2654.364,94.39523,0,0,0,0,100,0), -- 15:22:33 +(@PATH,11,-691.6421,2645.341,93.04417,0,0,0,0,100,0), -- 15:22:34 +(@PATH,12,-687.571,2661.364,93.44951,0,0,0,0,100,0); -- 15:22:35 +-- 0x203CC84240124A400000440006351C34 .go -696.4537 2672.248 94.02368 + +-- Pathing for Infernal Rain (Hellfire) Entry: 18729 'TDB FORMAT' +SET @NPC := @CGUID+9; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-736.5909,`position_y`=2643.926,`position_z`=99.57889 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,-736.5909,2643.926,99.57889,0,0,0,0,100,0), -- 15:21:12 +(@PATH,2,-739.5054,2650.205,101.1051,0,0,0,0,100,0), -- 15:21:13 +(@PATH,3,-751.2732,2672.356,100.7091,0,0,0,0,100,0), -- 15:21:14 +(@PATH,4,-739.7455,2691.94,104.7795,0,0,0,0,100,0), -- 15:21:15 +(@PATH,5,-725.373,2704.028,98.12045,0,0,0,0,100,0), -- 15:21:31 +(@PATH,6,-719.1994,2702.7,96.82434,0,0,0,0,100,0), -- 15:21:16 +(@PATH,7,-704.6559,2687.181,95.32121,0,0,0,0,100,0), -- 15:21:18 +(@PATH,8,-725.9246,2683.021,99.72587,0,0,0,0,100,0), -- 15:21:19 +(@PATH,9,-741.8126,2673.67,98.87859,0,0,0,0,100,0), -- 15:21:20 +(@PATH,10,-734.7253,2659.843,97.42217,0,0,0,0,100,0), -- 15:21:21 +(@PATH,11,-720.5742,2666.832,95.61575,0,0,0,0,100,0), -- 15:21:23 +(@PATH,12,-731.9807,2650.673,97.47429,0,0,0,0,100,0), -- 15:21:24 +(@PATH,13,-715.4817,2625.815,91.41167,0,0,0,0,100,0); -- 15:21:25 +-- 0x203CC84240124A400000440007351C34 .go -736.5909 2643.926 99.57889 + +-- Add text for watch_commander_leonus +DELETE FROM `creature_text` WHERE `CreatureID`=19392; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(19392, 0, 0, 'WE''RE UNDER ATTACK! RUN FOR COVER!', 14, 0, 100, 0, 0, 0, 16575, 0, 'Watch Commander Leonus'), +(19392, 0, 1, 'INFERNALS! CLEAR THE COURTYARD!', 14, 0, 100, 0, 0, 0, 16574, 0, 'Watch Commander Leonus'), +(19392, 0, 2, 'INFERNAL RAIN ON THE RISE! TAKE COVER!', 14, 0, 100, 0, 0, 0, 16573, 0, 'Watch Commander Leonus'); + +-- Condition for source Spell implicit target condition type Near creature +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=2 AND `SourceEntry`=33814 AND `SourceId`=0; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13, 2, 33814, 0, 0, 29, 0, 18729, 1000, 0, 0, 0, 0, '', 'Spell SPELL_INFERNAL_RAIN (effect 1) will hit the potential target of the spell if target is unit NPC_INFERNAL_RAIN within 1000 yards.'); diff --git a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp index 50620eaaa37..e16206f5050 100644 --- a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp +++ b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp @@ -31,6 +31,8 @@ npc_fel_guard_hound EndContentData */ #include "ScriptMgr.h" +#include "CellImpl.h" +#include "GridNotifiersImpl.h" #include "Log.h" #include "MotionMaster.h" #include "ObjectAccessor.h" @@ -1039,6 +1041,208 @@ public: } }; +enum WatchCommanderLeonus +{ + SAY_COVER = 0, + EVENT_LEONUS_TALK = 1, + EVENT_INFERNAL_RAIN_ATTACK = 2, + EVENT_FEAR_CONTROLLER_CAST = 3, + EVENT_ACTIVE_FALSE = 4, + NPC_INFERNAL_RAIN = 18729, + SPELL_INFERNAL_RAIN = 33814, + NPC_FEAR_CONTROLLER = 19393, + DATA_ACTIVE = 1, +}; + +struct npc_watch_commander_leonus : public ScriptedAI +{ + npc_watch_commander_leonus(Creature* creature) : ScriptedAI(creature) { } + + void Reset() override + { + _events.Reset(); + _events.ScheduleEvent(EVENT_LEONUS_TALK, 2min, 10min); + _events.ScheduleEvent(EVENT_INFERNAL_RAIN_ATTACK, 2min, 10min); + _events.ScheduleEvent(EVENT_FEAR_CONTROLLER_CAST, 2min, 10min); + } + + void SetData(uint32 /*type*/, uint32 data) override + { + switch (data) + { + case DATA_ACTIVE: + _events.ScheduleEvent(EVENT_ACTIVE_FALSE, 1s); + break; + default: + break; + } + } + + void UpdateAI(uint32 diff) override + { + _events.Update(diff); + + while (uint32 eventId = _events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_LEONUS_TALK: + Talk(SAY_COVER); + me->HandleEmoteCommand(EMOTE_ONESHOT_SHOUT); + break; + case EVENT_INFERNAL_RAIN_ATTACK: + { + std::list<Creature*> infernalrainList; + Trinity::AllCreaturesOfEntryInRange checkerInfernalrain(me, NPC_INFERNAL_RAIN, 200.0f); + Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcherInfernal(me, infernalrainList, checkerInfernalrain); + Cell::VisitAllObjects(me, searcherInfernal, 200.0f); + + for (Creature* infernal : infernalrainList) + if (!infernal->isMoving() && infernal->GetPositionZ() > 118.0f) + infernal->AI()->SetData(DATA_ACTIVE, DATA_ACTIVE); + + break; + } + case EVENT_FEAR_CONTROLLER_CAST: + { + std::list<Creature*> fearcontrollerList; + Trinity::AllCreaturesOfEntryInRange checkerFear(me, NPC_FEAR_CONTROLLER, 200.0f); + Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcherFear(me, fearcontrollerList, checkerFear); + Cell::VisitAllObjects(me, searcherFear, 200.0f); + + for (Creature* fearController : fearcontrollerList) + fearController->AI()->SetData(DATA_ACTIVE, DATA_ACTIVE); + + break; + } + case EVENT_ACTIVE_FALSE: + _events.ScheduleEvent(EVENT_LEONUS_TALK, 1h); + _events.ScheduleEvent(EVENT_INFERNAL_RAIN_ATTACK, 1h); + _events.ScheduleEvent(EVENT_FEAR_CONTROLLER_CAST, 1h); + break; + } + } + + if (!UpdateVictim()) + return; + + DoMeleeAttackIfReady(); + } + +private: + EventMap _events; +}; + +enum InfernalRainHellfire +{ + EVENT_INFERNAL_RAIN_CAST = 1, + EVENT_INFERNAL_RAIN_STOP = 2, + NPC_WATCH_COMMANDER_LEONUS = 19392 +}; + +struct npc_infernal_rain_hellfire : public ScriptedAI +{ + npc_infernal_rain_hellfire(Creature* creature) : ScriptedAI(creature) { } + + void SetData(uint32 /*type*/, uint32 data) override + { + switch (data) + { + case DATA_ACTIVE: + _events.ScheduleEvent(EVENT_INFERNAL_RAIN_CAST, 1s, 2s); + _events.ScheduleEvent(EVENT_INFERNAL_RAIN_STOP, 60s); + break; + default: + break; + } + } + + void UpdateAI(uint32 diff) override + { + _events.Update(diff); + + while (uint32 eventId = _events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_INFERNAL_RAIN_CAST: + { + std::list<Creature*> infernalrainList; + Trinity::AllCreaturesOfEntryInRange checker(me, NPC_INFERNAL_RAIN, 200.0f); + Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(me, infernalrainList, checker); + Cell::VisitAllObjects(me, searcher, 200.0f); + + if (!infernalrainList.empty()) + { + Creature* random = Trinity::Containers::SelectRandomContainerElement(infernalrainList); + if (random->isMoving() && random->GetPositionZ() < 118.0f) + { + CastSpellExtraArgs args; + args.SpellValueOverrides.AddMod(SPELLVALUE_MAX_TARGETS, 1); + me->CastSpell(random, SPELL_INFERNAL_RAIN, args); + } + } + + _events.ScheduleEvent(EVENT_INFERNAL_RAIN_CAST, 1s, 2s); + break; + } + case EVENT_INFERNAL_RAIN_STOP: + _events.CancelEvent(EVENT_INFERNAL_RAIN_CAST); + if (Creature* watchcommanderLeonus = me->FindNearestCreature(NPC_WATCH_COMMANDER_LEONUS, 200)) + watchcommanderLeonus->AI()->SetData(DATA_ACTIVE, DATA_ACTIVE); + + break; + } + } + } + +private: + EventMap _events; +}; + +enum fear_controller +{ + EVENT_FEAR_CAST = 1, + EVENT_FEAR_STOP = 2, + SPELL_FEAR = 33815 // Serverside spell +}; + +struct npc_fear_controller : public ScriptedAI +{ + npc_fear_controller(Creature* creature) : ScriptedAI(creature) { } + + void SetData(uint32 /*type*/, uint32 data) override + { + if (data == DATA_ACTIVE) + { + _events.ScheduleEvent(EVENT_FEAR_CAST, 1s); + _events.ScheduleEvent(EVENT_FEAR_STOP, 60s); + } + } + + void UpdateAI(uint32 diff) override + { + _events.Update(diff); + + while (uint32 eventId = _events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_FEAR_CAST: + DoCastAOE(SPELL_FEAR); + _events.Repeat(10s); + break; + case EVENT_FEAR_STOP: + _events.CancelEvent(EVENT_FEAR_CAST); + break; + } + } + } + +private: + EventMap _events; +}; + void AddSC_hellfire_peninsula() { new npc_aeranas(); @@ -1048,4 +1252,7 @@ void AddSC_hellfire_peninsula() new npc_colonel_jules(); new npc_barada(); new npc_magister_aledis(); + RegisterCreatureAI(npc_watch_commander_leonus); + RegisterCreatureAI(npc_infernal_rain_hellfire); + RegisterCreatureAI(npc_fear_controller); } |
