diff options
24 files changed, 971 insertions, 453 deletions
diff --git a/sql/updates/world/3.3.5/2016_06_07_01_world.sql b/sql/updates/world/3.3.5/2016_06_07_01_world.sql new file mode 100644 index 00000000000..09e86bc0396 --- /dev/null +++ b/sql/updates/world/3.3.5/2016_06_07_01_world.sql @@ -0,0 +1,622 @@ +-- +-- Waypoints for Ghostlands +-- +-- Pathing for Deatholme Acolyte Entry: 16315 'TDB FORMAT' +SET @NPC := 82514; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=6980.597,`position_y`=-5898.018,`position_z`=28.76383 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,6980.597,-5898.018,28.76383,0,0,0,0,100,0), -- 23:05:14 +(@PATH,2,6980.413,-5864.207,38.00547,0,0,0,0,100,0), -- 23:05:31 +(@PATH,3,6985.412,-5841.971,49.12637,0,0,0,0,100,0), -- 23:05:46 +(@PATH,4,6996.224,-5824.525,58.95233,0,0,0,0,100,0), -- 23:05:56 +(@PATH,5,7008.987,-5810.714,68.33813,0,0,0,0,100,0), -- 23:06:05 +(@PATH,6,7018.887,-5796.988,77.02762,0,0,0,0,100,0), -- 23:06:14 +(@PATH,7,7023.633,-5785.236,83.22521,0,0,0,0,100,0), -- 23:06:21 +(@PATH,8,7025.083,-5767.624,91.65661,0,0,0,0,100,0), -- 23:06:27 +(@PATH,9,7023.818,-5754.515,99.82605,0,0,0,0,100,0), -- 23:06:35 +(@PATH,10,7021.463,-5739.864,105.2905,0,0,0,0,100,0), -- 23:06:42 +(@PATH,11,7023.037,-5750.744,102.3329,0,0,0,0,100,0), -- 23:06:50 +(@PATH,12,7024.833,-5765.023,93.1219,0,0,0,0,100,0), -- 23:06:54 +(@PATH,13,7024.46,-5781.898,84.79234,0,0,0,0,100,0), -- 23:07:01 +(@PATH,14,7021.089,-5792.683,79.57092,0,0,0,0,100,0), -- 23:07:09 +(@PATH,15,7010.271,-5809.296,69.25038,0,0,0,0,100,0), -- 23:07:14 +(@PATH,16,6998.258,-5822.302,60.71892,0,0,0,0,100,0), -- 23:07:23 +(@PATH,17,6986.333,-5840.401,49.7908,0,0,0,0,100,0), -- 23:07:31 +(@PATH,18,6980.666,-5861.458,39.13383,0,0,0,0,100,0); -- 23:07:40 + +-- Pathing for Deatholme Acolyte Entry: 16315 'TDB FORMAT' +SET @NPC := 82536; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=6997.067,`position_y`=-5687.621,`position_z`=102.8226 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,6997.067,-5687.621,102.8226,0,0,0,0,100,0), -- 23:06:27 +(@PATH,2,6990.939,-5688.242,101.8386,0,0,0,0,100,0), -- 23:06:32 +(@PATH,3,6976.603,-5693.576,96.38464,0,0,0,0,100,0), -- 23:06:36 +(@PATH,4,6970.503,-5700.29,92.63046,0,0,0,0,100,0), -- 23:06:41 +(@PATH,5,6967.743,-5712.647,88.57698,0,0,0,0,100,0), -- 23:06:45 +(@PATH,6,6970.009,-5720.242,85.64739,0,0,0,0,100,0), -- 23:06:50 +(@PATH,7,6971.563,-5723.634,84.75957,0,0,0,0,100,0), -- 23:06:55 +(@PATH,8,6979.354,-5724.356,84.26402,0,0,0,0,100,0), -- 23:06:57 +(@PATH,9,6979.47,-5714.573,84.58974,0,0,0,0,100,0), -- 23:07:00 +(@PATH,10,6979.149,-5705.578,84.45787,0,0,0,0,100,0), -- 23:07:05 +(@PATH,11,6979.545,-5714.578,84.56152,0,0,0,0,100,0), -- 23:09:00 +(@PATH,12,6979.16,-5705.374,84.45621,0,0,0,0,100,0), -- 23:09:04 +(@PATH,13,6980.682,-5682.834,82.93341,0,0,0,0,100,0), -- 23:09:11 +(@PATH,14,6985.518,-5671.094,82.00629,0,0,0,0,100,0), -- 23:09:17 +(@PATH,15,6990.438,-5665.75,81.61432,0,0,0,0,100,0), -- 23:09:22 +(@PATH,16,6995.886,-5661.015,81.00694,0,0,0,0,100,0), -- 23:09:26 +(@PATH,17,6995.958,-5660.979,80.95592,0,0,0,0,100,0), -- 23:09:29 +(@PATH,18,6990.574,-5665.602,81.49225,0,0,0,0,100,0), -- 23:09:30 +(@PATH,19,6985.71,-5671.139,81.79518,0,0,0,0,100,0), -- 23:09:33 +(@PATH,20,6979.59,-5690.713,83.48748,0,0,0,0,100,0), -- 23:09:38 +(@PATH,21,6979.259,-5705.457,84.32413,0,0,0,0,100,0), -- 23:09:44 +(@PATH,22,6980.716,-5719.662,84.53703,0,0,0,0,100,0), -- 23:09:52 +(@PATH,23,6978.376,-5725.388,84.53719,0,0,0,0,100,0), -- 23:09:56 +(@PATH,24,6977.495,-5726.067,84.54002,0,0,0,0,100,0), -- 23:09:58 +(@PATH,25,6968.405,-5716.007,87.3763,0,0,0,0,100,0), -- 23:10:01 +(@PATH,26,6967.94,-5709.555,89.84632,0,0,0,0,100,0), -- 23:10:06 +(@PATH,27,6974.01,-5696.171,94.75365,0,0,0,0,100,0), -- 23:10:09 +(@PATH,28,6984.721,-5690.32,99.80565,0,0,0,0,100,0); -- 23:10:14 + +-- Pathing for Deatholme Acolyte Entry: 16315 'TDB FORMAT' +SET @NPC := 82537; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7010.643,`position_y`=-5693.538,`position_z`=102.6286 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,7010.643,-5693.538,102.6286,0,0,0,0,100,0), -- 23:06:47 +(@PATH,2,7016.285,-5693.483,102.6231,0,0,0,0,100,0), -- 23:06:49 +(@PATH,3,7018.219,-5692.301,102.6074,0,0,0,0,100,0), -- 23:06:50 +(@PATH,4,7021.005,-5689.024,102.3725,0,0,0,0,100,0), -- 23:06:53 +(@PATH,5,7018.614,-5679.159,102.6098,0,0,0,0,100,0), -- 23:06:56 +(@PATH,6,7014.545,-5677.964,102.6143,0,0,0,0,100,0), -- 23:06:57 +(@PATH,7,7010.401,-5678.611,102.6134,0,0,0,0,100,0), -- 23:07:00 +(@PATH,8,7007.026,-5681.029,102.6129,0,0,0,0,100,0), -- 23:07:02 +(@PATH,9,7004.883,-5684.334,102.6098,0,0,0,0,100,0), -- 23:07:05 +(@PATH,10,7005.852,-5689.117,102.6089,0,0,0,0,100,0); -- 23:07:07 + +-- Pathing for Deatholme Acolyte Entry: 16315 'TDB FORMAT' +SET @NPC := 82540; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7029.595,`position_y`=-5682.818,`position_z`=102.658 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,7029.595,-5682.818,102.658,0,0,0,0,100,0), -- 23:06:56 +(@PATH,2,7035.782,-5681.29,102.0026,0,0,0,0,100,0), -- 23:07:01 +(@PATH,3,7045.729,-5681.199,98.82371,0,0,0,0,100,0), -- 23:07:03 +(@PATH,4,7056.35,-5684.523,93.90004,0,0,0,0,100,0), -- 23:07:07 +(@PATH,5,7045.667,-5681.057,98.76253,0,0,0,0,100,0), -- 23:09:05 +(@PATH,6,7056.332,-5684.539,93.80215,0,0,0,0,100,0), -- 23:09:09 +(@PATH,7,7060.951,-5689.726,91.59099,0,0,0,0,100,0), -- 23:09:13 +(@PATH,8,7064.874,-5703.865,86.7645,0,0,0,0,100,0), -- 23:09:17 +(@PATH,9,7063.655,-5709.466,84.63042,0,0,0,0,100,0), -- 23:09:22 +(@PATH,10,7058.803,-5714.256,84.48442,0,0,0,0,100,0), -- 23:09:27 +(@PATH,11,7057.9,-5714.272,84.27392,0,0,0,0,100,0), -- 23:09:28 +(@PATH,12,7054.177,-5703.301,84.48618,0,0,0,0,100,0), -- 23:09:30 +(@PATH,13,7052.994,-5694.213,84.35367,0,0,0,0,100,0), -- 23:09:37 +(@PATH,14,7043.341,-5673.357,82.8222,0,0,0,0,100,0), -- 23:09:43 +(@PATH,15,7035.741,-5663.536,81.92133,0,0,0,0,100,0), -- 23:09:49 +(@PATH,16,7029.659,-5659.765,81.63133,0,0,0,0,100,0), -- 23:09:52 +(@PATH,17,7022.754,-5657.553,81.0175,0,0,0,0,100,0), -- 23:09:56 +(@PATH,18,7022.701,-5657.519,80.93935,0,0,0,0,100,0), -- 23:10:00 +(@PATH,19,7029.343,-5659.941,81.43478,0,0,0,0,100,0), -- 23:10:01 +(@PATH,20,7038.872,-5666.699,82.0325,0,0,0,0,100,0), -- 23:10:05 +(@PATH,21,7047.313,-5680.742,83.38,0,0,0,0,100,0), -- 23:10:08 +(@PATH,22,7052.837,-5694.202,84.4315,0,0,0,0,100,0), -- 23:10:14 +(@PATH,23,7053.863,-5703.065,84.7151,0,0,0,0,100,0), -- 23:10:20 +(@PATH,24,7054.707,-5709.983,84.50665,0,0,0,0,100,0), -- 23:10:26 +(@PATH,25,7057.84,-5714.267,84.24426,0,0,0,0,100,0), -- 23:10:29 +(@PATH,26,7064.392,-5706.512,85.34109,0,0,0,0,100,0), -- 23:10:30 +(@PATH,27,7063.626,-5695.099,89.8451,0,0,0,0,100,0), -- 23:10:34 +(@PATH,28,7059.115,-5687.389,92.43468,0,0,0,0,100,0), -- 23:10:39 +(@PATH,29,7048.491,-5681.79,97.46969,0,0,0,0,100,0), -- 23:10:43 +(@PATH,30,7038.716,-5681.117,100.7739,0,0,0,0,100,0); -- 23:10:48 + +-- Pathing for Grimscale Oracle Entry: 15669 'TDB FORMAT' +SET @NPC := 56234; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8878.816,`position_y`=-5749.102,`position_z`=0.5971264 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,8878.816,-5749.102,0.5971264,0,0,0,0,100,0), -- 23:32:50 +(@PATH,2,8872.123,-5724.519,0.5082448,0,0,0,0,100,0), -- 23:33:17 +(@PATH,3,8858.525,-5719.116,0.797046,0,0,0,0,100,0), -- 23:33:23 +(@PATH,4,8820.211,-5718.883,-1.039287,0,0,0,0,100,0), -- 23:33:33 +(@PATH,5,8797.094,-5711.732,0.5297012,0,0,0,0,100,0), -- 23:33:43 +(@PATH,6,8789.655,-5709.307,0.9552886,0,0,0,0,100,0), -- 23:33:53 +(@PATH,7,8771.264,-5697.327,1.041862,0,0,0,0,100,0), -- 23:34:01 +(@PATH,8,8754.51,-5692.826,0.9234784,0,0,0,0,100,0), -- 23:34:08 +(@PATH,9,8754.548,-5692.86,0.8107796,0,0,0,0,100,0), -- 23:34:17 +(@PATH,10,8754.832,-5692.778,1.003729,0,0,0,0,100,0), -- 23:34:22 +(@PATH,11,8771.507,-5697.777,0.8035664,0,0,0,0,100,0), -- 23:34:29 +(@PATH,12,8806.005,-5714.252,-1.612888,0,0,0,0,100,0), -- 23:34:38 +(@PATH,13,8829.296,-5721.84,1.24645,0,0,0,0,100,0), -- 23:34:48 +(@PATH,14,8847.945,-5721.054,0.8082525,0,0,0,0,100,0), -- 23:34:57 +(@PATH,15,8858.877,-5719.242,0.7433279,0,0,0,0,100,0), -- 23:35:07 +(@PATH,16,8872.451,-5724.64,0.7027312,0,0,0,0,100,0); -- 23:35:13 + +-- Pathing for Grimscale Oracle Entry: 15669 'TDB FORMAT' +SET @NPC := 56221; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=8777.075,`position_y`=-5755.628,`position_z`=0.7944576 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,8777.075,-5755.628,0.7944576,0,0,0,0,100,0), -- 23:25:41 +(@PATH,2,8744.947,-5758.729,1.44137,0,0,0,0,100,0), -- 23:26:14 +(@PATH,3,8723.646,-5744.492,0.7795044,0,0,0,0,100,0), -- 23:26:24 +(@PATH,4,8711.309,-5729.942,1.035426,0,0,0,0,100,0), -- 23:26:32 +(@PATH,5,8691.229,-5710.955,0.2195589,0,0,0,0,100,0), -- 23:26:39 +(@PATH,6,8687.803,-5701.443,-0.1464095,0,0,0,0,100,0), -- 23:26:48 +(@PATH,7,8653.561,-5676.286,1.293998,0,0,0,0,100,0), -- 23:27:01 +(@PATH,8,8641.836,-5678.255,1.193712,0,0,0,0,100,0), -- 23:27:12 +(@PATH,9,8641.773,-5678.348,1.107449,0,0,0,0,100,0), -- 23:27:23 +(@PATH,10,8667.416,-5673.973,0.01454574,0,0,0,0,100,0), -- 23:27:32 +(@PATH,11,8675.772,-5684.51,0.2002553,0,0,0,0,100,0), -- 23:27:43 +(@PATH,12,8690.506,-5709.449,0.5053282,0,0,0,0,100,0), -- 23:27:56 +(@PATH,13,8694.455,-5720.396,0.996207,0,0,0,0,100,0), -- 23:28:04 +(@PATH,14,8711.694,-5730.25,0.9948567,0,0,0,0,100,0), -- 23:28:12 +(@PATH,15,8732.313,-5750.292,1.464421,0,0,0,0,100,0), -- 23:28:20 +(@PATH,16,8751.975,-5757.997,0.9221863,0,0,0,0,100,0), -- 23:28:30 +(@PATH,17,8777.087,-5755.516,0.800478,0,0,0,0,100,0); -- 23:28:43 + +-- Pathing for Grimscale Forager Entry: 15670 'TDB FORMAT' +SET @NPC := 56242; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=9071.955,`position_y`=-5877.383,`position_z`=0.6975139 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,9071.955,-5877.383,0.6975139,0,0,0,0,100,0), -- 23:37:45 +(@PATH,2,9059.324,-5868.073,-1.393102,0,0,0,0,100,0), -- 23:38:00 +(@PATH,3,9029.121,-5854.314,0.6379914,0,0,0,0,100,0), -- 23:38:11 +(@PATH,4,9026.947,-5821.172,1.145625,0,0,0,0,100,0), -- 23:38:21 +(@PATH,5,9027.102,-5820.248,1.393944,0,0,0,0,100,0), -- 23:38:35 +(@PATH,6,9032.799,-5775.275,0.952391,0,0,0,0,100,0), -- 23:38:44 +(@PATH,7,9031.125,-5767.591,0.8471048,0,0,0,0,100,0), -- 23:38:56 +(@PATH,8,9008.104,-5754.679,0.8015774,0,0,0,0,100,0), -- 23:39:07 +(@PATH,9,8966.937,-5741.705,1.29663,0,0,0,0,100,0), -- 23:39:17 +(@PATH,10,8962.295,-5740.867,1.235597,0,0,0,0,100,0), -- 23:39:27 +(@PATH,11,8927.979,-5767.035,0.04672858,0,0,0,0,100,0), -- 23:39:37 +(@PATH,12,8938.715,-5761.229,1.038244,0,0,0,0,100,0), -- 23:39:45 +(@PATH,13,8943.727,-5758.281,0.968925,0,0,0,0,100,0), -- 23:39:52 +(@PATH,14,8981.834,-5744.667,0.7889291,0,0,0,0,100,0), -- 23:40:02 +(@PATH,15,8986.465,-5746.015,0.8002989,0,0,0,0,100,0), -- 23:40:12 +(@PATH,16,9008.296,-5754.792,0.820213,0,0,0,0,100,0), -- 23:40:21 +(@PATH,17,9036.458,-5792.002,1.43752,0,0,0,0,100,0), -- 23:40:32 +(@PATH,18,9028.837,-5817.06,1.559729,0,0,0,0,100,0), -- 23:40:45 +(@PATH,19,9023.854,-5848.162,1.221549,0,0,0,0,100,0), -- 23:40:54 +(@PATH,20,9042.734,-5857.301,-2.073786,0,0,0,0,100,0); -- 23:41:08 + +-- Pathing for Grimscale Seer Entry: 15950 'TDB FORMAT' +SET @NPC := 56391; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=9037.592,`position_y`=-5766.527,`position_z`=0.5168767 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,9037.592,-5766.527,0.5168767,0,0,0,0,100,0), -- 23:42:42 +(@PATH,2,9048.254,-5784.458,0.9698197,0,0,0,0,100,0), -- 23:42:51 +(@PATH,3,9059.32,-5798.216,-0.9207587,0,0,0,0,100,0), -- 23:42:59 +(@PATH,4,9076.928,-5813.567,0.3946522,0,0,0,0,100,0), -- 23:43:10 +(@PATH,5,9080.393,-5815.896,0.6621327,0,0,0,0,100,0), -- 23:43:18 +(@PATH,6,9088.405,-5809.686,0.7750955,0,0,0,0,100,0), -- 23:43:21 +(@PATH,7,9106.832,-5804.949,0.821775,0,0,0,0,100,0), -- 23:43:28 +(@PATH,8,9123.148,-5807.707,0.8019806,0,0,0,0,100,0), -- 23:43:36 +(@PATH,9,9135.586,-5821.801,0.7773802,0,0,0,0,100,0), -- 23:43:43 +(@PATH,10,9149.662,-5822.438,0.7227378,0,0,0,0,100,0), -- 23:43:49 +(@PATH,11,9167.805,-5833.559,0.5458255,0,0,0,0,100,0), -- 23:43:58 +(@PATH,12,9167.66,-5833.448,0.4231594,0,0,0,0,100,0), -- 23:44:11 +(@PATH,13,9167.701,-5833.285,0.7127371,0,0,0,0,100,0), -- 23:44:23 +(@PATH,14,9149.432,-5822.394,0.7666007,0,0,0,0,100,0), -- 23:44:32 +(@PATH,15,9135.407,-5821.695,0.8019806,0,0,0,0,100,0), -- 23:44:38 +(@PATH,16,9123.027,-5807.496,0.8282324,0,0,0,0,100,0), -- 23:44:45 +(@PATH,17,9106.761,-5805.003,0.785993,0,0,0,0,100,0), -- 23:44:51 +(@PATH,18,9088.161,-5809.791,0.7095211,0,0,0,0,100,0), -- 23:45:00 +(@PATH,19,9071.598,-5809.765,-0.6348054,0,0,0,0,100,0), -- 23:45:03 +(@PATH,20,9050.107,-5787.132,0.9787122,0,0,0,0,100,0), -- 23:45:10 +(@PATH,21,9049.096,-5785.835,1.078146,0,0,0,0,100,0); -- 23:45:20 + +-- Pathing for Ghostlands Guardian Entry: 16541 'TDB FORMAT' +SET @NPC := 145414; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7150.675,`position_y`=-7072.731,`position_z`=55.28159 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,7150.675,-7072.731,55.28159,0,0,0,0,100,0), -- 11:51:25 +(@PATH,2,7140.165,-7095.667,56.32489,0,0,0,0,100,0), -- 11:51:41 +(@PATH,3,7134.295,-7111.137,58.849,0,0,0,0,100,0), -- 11:51:51 +(@PATH,4,7149.599,-7137.551,55.19991,0,0,0,0,100,0), -- 11:51:59 +(@PATH,5,7183.908,-7143.587,56.03042,0,0,0,0,100,0), -- 11:52:11 +(@PATH,6,7218.184,-7136.882,58.99335,0,0,0,0,100,0), -- 11:52:25 +(@PATH,7,7235.5,-7129.492,60.65919,0,0,0,0,100,0), -- 11:52:39 +(@PATH,8,7243.874,-7125.855,61.10926,0,30000,0,0,100,0), -- 11:52:51 +(@PATH,9,7243.135,-7095.02,61.9528,0,0,0,0,100,0), -- 11:53:38 +(@PATH,10,7224.584,-7078.627,58.69924,0,0,0,0,100,0), -- 11:54:28 +(@PATH,11,7189.417,-7063.731,58.10524,0,0,0,0,100,0); -- 11:54:29 + +-- Pathing for Ghostlands Guardian Entry: 16541 'TDB FORMAT' +SET @NPC := 81743; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7483.415,`position_y`=-6898.222,`position_z`=96.65485 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,7483.415,-6898.222,96.65485,0,0,0,0,100,0), -- 22:01:51 +(@PATH,2,7490.502,-6889.069,94.41743,0,0,0,0,100,0), -- 22:01:59 +(@PATH,3,7481.624,-6866.266,88.67288,0,0,0,0,100,0), -- 22:02:05 +(@PATH,4,7480.969,-6837.274,77.65476,0,0,0,0,100,0), -- 22:02:16 +(@PATH,5,7480.024,-6797.451,76.10669,0,0,0,0,100,0), -- 22:02:28 +(@PATH,6,7478.713,-6785.392,77.4765,0,0,0,0,100,0), -- 22:02:43 +(@PATH,7,7479.419,-6793.053,76.67186,0,0,0,0,100,0), -- 22:02:54 +(@PATH,8,7480.9,-6834.077,76.25935,0,0,0,0,100,0), -- 22:03:02 +(@PATH,9,7480.634,-6861.903,86.81428,0,0,0,0,100,0), -- 22:03:17 +(@PATH,10,7490.069,-6885.811,93.34169,0,0,0,0,100,0); -- 22:03:30 + +-- Pathing for Ghostlands Guardian Entry: 16541 'TDB FORMAT' +SET @NPC := 81737; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7546.458,`position_y`=-6726.992,`position_z`=80.78694 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,7546.458,-6726.992,80.78694,0,0,0,0,100,0), -- 22:05:54 +(@PATH,2,7527.194,-6732.486,80.58603,0,0,0,0,100,0), -- 22:06:08 +(@PATH,3,7604.331,-6767.942,85.9845,0,0,0,0,100,0), -- 22:09:49 +(@PATH,4,7593.505,-6753.936,89.24313,0,0,0,0,100,0), -- 22:09:59 +(@PATH,5,7575.111,-6734.221,84.59973,0,0,0,0,100,0); -- 22:10:07 + +-- Pathing for Ghostlands Guardian Entry: 16541 'TDB FORMAT' +SET @NPC := 81723; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7640.057,`position_y`=-6821.591,`position_z`=80.17661 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,7640.057,-6821.591,80.17661,0,0,0,0,100,0), -- 22:05:42 +(@PATH,2,7633.815,-6796.717,78.65404,0,0,0,0,100,0), -- 22:05:51 +(@PATH,3,7615.372,-6775.387,80.24687,0,0,0,0,100,0), -- 22:06:00 +(@PATH,4,7632.267,-6793.745,77.46573,0,0,0,0,100,0), -- 22:06:15 +(@PATH,5,7634.777,-6800.083,79.74638,0,0,0,0,100,0), -- 22:06:27 +(@PATH,6,7649.132,-6834.647,83.15082,0,0,0,0,100,0), -- 22:06:37 +(@PATH,7,7656.086,-6858.044,87.99471,0,0,0,0,100,0), -- 22:06:45 +(@PATH,8,7651.524,-6839.359,84.67632,0,0,0,0,100,0), -- 22:06:56 +(@PATH,9,7640.049,-6821.556,80.16749,0,0,0,0,100,0); -- 22:07:05 + +-- Pathing for Ghostlands Guardian Entry: 16541 'TDB FORMAT' +SET @NPC := 81719; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7563.64,`position_y`=-6881.709,`position_z`=112.1673 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,7563.64,-6881.709,112.1673,0,0,0,0,100,0), -- 18:53:33 +(@PATH,2,7551.659,-6901.236,112.1663,0,0,0,0,100,0), -- 18:53:38 +(@PATH,3,7555.867,-6910.663,111.9691,0,0,0,0,100,0), -- 18:56:12 +(@PATH,4,7565.996,-6914.735,108.4578,0,0,0,0,100,0), -- 18:53:51 +(@PATH,5,7579.56,-6906.405,103.1527,0,0,0,0,100,0), -- 18:54:00 +(@PATH,6,7591.544,-6890.522,95.51781,0,0,0,0,100,0), -- 18:54:08 +(@PATH,7,7595.471,-6871.276,94.72267,0,0,0,0,100,0), -- 18:54:18 +(@PATH,8,7586.251,-6861.987,93.77134,0,0,0,0,100,0), -- 18:54:24 +(@PATH,9,7577.42,-6854.581,93.04897,0,0,0,0,100,0), -- 18:55:26 +(@PATH,10,7578.87,-6826.335,87.31084,0,0,0,0,100,0), -- 18:54:34 +(@PATH,11,7578.864,-6821.618,86.92613,0,0,0,0,100,0), -- 18:54:47 +(@PATH,12,7561.332,-6803.103,87.30068,0,0,0,0,100,0), -- 18:55:15 +(@PATH,13,7560.291,-6799.682,87.58893,0,0,0,0,100,0), -- 18:55:08 +(@PATH,14,7556.946,-6782.622,89.82014,0,0,0,0,100,0), -- 18:54:58 +(@PATH,15,7560.291,-6799.682,87.58893,0,0,0,0,100,0), -- 18:55:08 +(@PATH,16,7561.332,-6803.103,87.30068,0,0,0,0,100,0), -- 18:55:15 +(@PATH,17,7578.864,-6821.618,86.92613,0,0,0,0,100,0), -- 18:54:47 +(@PATH,18,7578.87,-6826.335,87.31084,0,0,0,0,100,0), -- 18:54:34 +(@PATH,19,7577.42,-6854.581,93.04897,0,0,0,0,100,0), -- 18:55:26 +(@PATH,20,7588.399,-6863.539,93.97005,0,0,0,0,100,0), -- 18:55:39 +(@PATH,21,7593.956,-6877.988,95.42189,0,0,0,0,100,0), -- 18:55:48 +(@PATH,22,7583.048,-6903.001,101.4519,0,0,0,0,100,0), -- 18:55:55 +(@PATH,23,7570.524,-6913.488,106.4994,0,0,0,0,100,0), -- 18:56:05 +(@PATH,24,7555.867,-6910.663,111.9691,0,0,0,0,100,0), -- 18:56:12 +(@PATH,25,7551.659,-6901.236,112.1663,0,0,0,0,100,0), -- 18:53:38 +(@PATH,26,7563.374,-6882.594,112.1059,0,0,0,0,100,0); -- 18:56:20 + +-- Pathing for Ghostlands Guardian Entry: 16541 'TDB FORMAT' +SET @NPC := 81745; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7493.75,`position_y`=-6888.333,`position_z`=94.14599 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,7493.75,-6888.333,94.14599,0,0,0,0,100,0), -- 21:57:19 +(@PATH,2,7481.219,-6899.196,97.32906,0,0,0,0,100,0), -- 21:57:29 +(@PATH,3,7455.676,-6912.633,103.082,0,0,0,0,100,0), -- 21:57:36 +(@PATH,4,7435.434,-6934.373,107.2755,0,0,0,0,100,0), -- 21:57:49 +(@PATH,5,7429.151,-6957.596,112.5967,0,0,0,0,100,0), -- 21:58:00 +(@PATH,6,7409.229,-6988.246,112.3306,0,0,0,0,100,0), -- 21:58:16 +(@PATH,7,7398.064,-7006.403,105.4191,0,0,0,0,100,0), -- 21:58:24 +(@PATH,8,7379.978,-7023.313,98.34062,0,0,0,0,100,0), -- 21:58:33 +(@PATH,9,7368.91,-7048.285,91.6894,0,0,0,0,100,0), -- 21:58:44 +(@PATH,10,7362.03,-7076.459,81.8666,0,0,0,0,100,0), -- 21:58:55 +(@PATH,11,7335.145,-7098.242,66.09917,0,0,0,0,100,0), -- 21:59:07 +(@PATH,12,7304.179,-7104.348,54.56339,0,0,0,0,100,0), -- 21:59:23 +(@PATH,13,7332.545,-7099.682,64.96516,0,0,0,0,100,0), -- 21:59:41 +(@PATH,14,7360.992,-7078.073,81.13574,0,0,0,0,100,0), -- 21:59:57 +(@PATH,15,7367.925,-7051.186,90.94432,0,0,0,0,100,0), -- 22:00:12 +(@PATH,16,7376.316,-7028.957,96.4644,0,0,0,0,100,0), -- 22:00:25 +(@PATH,17,7397.015,-7007.736,104.9266,0,0,0,0,100,0), -- 22:00:35 +(@PATH,18,7408.008,-6990.256,111.4358,0,0,0,0,100,0), -- 22:00:46 +(@PATH,19,7411.379,-6986.646,112.7126,0,0,0,0,100,0), -- 22:00:56 +(@PATH,20,7429.151,-6957.596,112.5967,0,0,0,0,100,0), -- 21:58:00 +(@PATH,21,7433.051,-6937.843,108.0633,0,0,0,0,100,0), -- 22:01:05 +(@PATH,22,7445.005,-6922.467,103.7956,0,0,0,0,100,0), -- 22:01:28 +(@PATH,23,7450.903,-6915.155,103.3749,0,0,0,0,100,0), -- 22:01:28 +(@PATH,24,7450.903,-6915.155,103.3749,0,0,0,0,100,0), -- 22:01:28 +(@PATH,25,7477.773,-6901.932,98.37746,0,0,0,0,100,0), -- 22:01:33 +(@PATH,26,7493.729,-6888.343,94.15305,0,0,0,0,100,0); -- 22:01:45 + +-- Pathing for Blacksmith Frances Entry: 17655 'TDB FORMAT' +SET @NPC := 81724; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7604.855,`position_y`=-6905.621,`position_z`=93.76188 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,7604.855,-6905.621,93.76188,0.8203048,60000,0,0,100,0), -- 22:07:38 +(@PATH,2,7600.523,-6904.995,93.88599,0,0,0,0,100,0), -- 22:08:19 +(@PATH,3,7600.523,-6904.995,93.88599,1.780236,0,0,0,100,0), -- 22:08:21 +(@PATH,4,7600.064,-6907.846,93.76472,0,0,0,0,100,0), -- 22:09:30 +(@PATH,5,7600.523,-6904.995,93.88599,0,30000,0,0,100,0), -- 22:10:03 +(@PATH,6,7600.523,-6904.995,93.88599,1.780236,0,0,0,100,0), -- 22:10:04 +(@PATH,7,7598.409,-6904.81,94.34996,0,60000,0,0,100,0), -- 22:10:58 +(@PATH,8,7596.794,-6905.625,94.31394,3.996804,0,0,0,100,0), -- 22:10:59 +(@PATH,9,7600.523,-6904.995,93.88599,0,0,0,0,100,0), -- 22:11:26 +(@PATH,10,7600.523,-6904.995,93.88599,1.780236,0,0,0,100,0), -- 22:11:27 +(@PATH,11,7598.409,-6904.81,94.34996,0,60000,0,0,100,0), -- 22:12:20 +(@PATH,12,7596.794,-6905.625,94.31394,3.996804,0,0,0,100,0), -- 22:12:22 +(@PATH,13,7600.523,-6904.995,93.88599,0,0,0,0,100,0), -- 22:12:42 +(@PATH,14,7600.523,-6904.995,93.88599,1.780236,0,0,0,100,0), -- 22:12:44 +(@PATH,15,7604.855,-6905.621,93.76188,0,120000,0,0,100,0), -- 22:14:00 +(@PATH,16,7604.855,-6905.621,93.76188,0.8203048,0,0,0,100,0); -- 22:14:02 + +-- Pathing for Rathis Tomber Entry: 16224 'TDB FORMAT' +SET @NPC := 81720; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=7638.232,`position_y`=-6842.241,`position_z`=84.2546 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,7638.232,-6842.241,84.2546,2.076942,0,0,0,100,0), -- 22:09:02 +(@PATH,2,7636.98,-6839.962,83.24476,0,0,0,0,100,0), -- 22:09:36 +(@PATH,3,7637.41,-6837.574,82.88759,0,0,0,0,100,0), -- 22:09:38 +(@PATH,4,7639.8,-6835.542,82.59454,0,0,0,0,100,0), -- 22:09:39 +(@PATH,5,7643.04,-6835.119,82.58206,0,0,0,0,100,0), -- 22:09:40 +(@PATH,6,7644.657,-6837.574,83.20168,0,0,0,0,100,0), -- 22:09:41 +(@PATH,7,7644.05,-6838.9,83.9032,0,60000,0,0,100,0), +(@PATH,8,7645.192,-6836.052,83.1027,0,0,0,0,100,0), -- 22:09:50 +(@PATH,9,7642.421,-6834.729,82.59531,0,0,0,0,100,0), -- 22:09:51 +(@PATH,10,7639.884,-6835.1,82.53012,0,0,0,0,100,0), -- 22:09:52 +(@PATH,11,7637.52,-6837.243,82.75238,0,0,0,0,100,0), -- 22:09:53 +(@PATH,12,7636.066,-6839.554,82.94509,0,0,0,0,100,0), -- 22:09:55 +(@PATH,13,7637.412,-6842.98,83.70974,0,10000,0,0,100,0), -- 22:09:56 +(@PATH,14,7638.232,-6842.241,84.2546,0,0,0,0,100,0), -- 22:10:06 +(@PATH,15,7638.232,-6842.241,84.2546,2.076942,60000,0,0,100,0); -- 22:10:06 + +-- Pathing for Sentinel Infiltrator Entry: 16333 'TDB FORMAT' +SET @NPC := 85939; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=6826.52,`position_y`=-7216.635,`position_z`=26.2077 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,6826.52,-7216.635,26.2077,0,0,0,0,100,0), -- 18:25:44 +(@PATH,2,6840.17,-7215.392,27.32393,0,0,0,0,100,0), -- 18:25:48 +(@PATH,3,6842.315,-7214.781,27.5872,0,0,0,0,100,0), -- 18:25:52 +(@PATH,4,6847.95,-7208.919,27.60912,0,0,0,0,100,0), -- 18:25:54 +(@PATH,5,6846.517,-7200.238,27.39073,0,0,0,0,100,0), -- 18:25:58 +(@PATH,6,6836.5,-7187.716,26.55817,0,0,0,0,100,0), -- 18:26:01 +(@PATH,7,6829.814,-7187.942,25.16908,0,0,0,0,100,0), -- 18:26:05 +(@PATH,8,6828.214,-7188.198,24.70531,0,0,0,0,100,0), -- 18:26:08 +(@PATH,9,6820.545,-7191.426,24.19164,0,0,0,0,100,0), -- 18:26:11 +(@PATH,10,6816.887,-7196.539,24.25371,0,0,0,0,100,0), -- 18:26:15 +(@PATH,11,6816.825,-7206.355,24.66104,0,0,0,0,100,0), -- 18:26:18 +(@PATH,12,6824.003,-7215.546,25.92787,0,0,0,0,100,0); -- 18:26:22 + +-- Pathing for Sentinel Infiltrator Entry: 16333 'TDB FORMAT' +-- Needs SAI scripting +SET @NPC := 85810; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=6834.944,`position_y`=-7216.469,`position_z`=26.75792 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,6834.944,-7216.469,26.75792,0,0,0,0,100,0), -- 18:21:32 +(@PATH,2,6826.208,-7222.83,27.19634,0,0,0,0,100,0), -- 18:21:40 +(@PATH,3,6817.325,-7206.505,24.92965,0,0,0,0,100,0), -- 18:21:52 +(@PATH,4,6819.723,-7180.195,25.83248,0,0,0,0,100,0), -- 18:22:00 +(@PATH,5,6811.1,-7153.327,37.85592,0,0,0,0,100,0), -- 18:22:11 +(@PATH,6,6794.896,-7138.714,44.19709,0,0,0,0,100,0), -- 18:22:24 +(@PATH,7,6778.596,-7138.577,47.74215,0,0,0,0,100,0), -- 18:22:34 +(@PATH,8,6770.257,-7144.743,49.66928,0,0,0,0,100,0), -- 18:22:40 +(@PATH,9,6786.903,-7138.087,45.32982,0,0,0,0,100,0), -- 18:22:53 +(@PATH,10,6817.342,-7166.106,30.71012,0,0,0,0,100,0), -- 18:23:03 +(@PATH,11,6823.649,-7165.904,28.29505,0,0,0,0,100,0), -- 18:23:20 +(@PATH,12,6835.131,-7148.97,30.26661,0,0,0,0,100,0), -- 18:23:27 +(@PATH,13,6835.175,-7162.583,27.79875,0,0,0,0,100,0), -- 18:23:38 +(@PATH,14,6835.874,-7170.188,26.83617,0,0,0,0,100,0), -- 18:23:45 +(@PATH,15,6827.219,-7186.351,24.99562,0,0,0,0,100,0), -- 18:23:49 +(@PATH,16,6818.312,-7181.476,25.84511,0,0,0,0,100,0), -- 18:23:56 +(@PATH,17,6813.708,-7178.023,26.07334,0,0,0,0,100,0), -- 18:24:03 +(@PATH,18,6800.086,-7180.936,26.13367,0,0,0,0,100,0), -- 18:24:08 +(@PATH,19,6788.234,-7196.194,26.14623,0,0,0,0,100,0), -- 18:24:16 +(@PATH,20,6784.672,-7191.459,26.15236,0,0,0,0,100,0), -- 18:25:03 +(@PATH,21,6802.208,-7180.021,26.09461,0,0,0,0,100,0), -- 18:25:13 +(@PATH,22,6821.094,-7186.088,24.97617,0,0,0,0,100,0), -- 18:25:20 +(@PATH,23,6836.174,-7190.566,26.19097,0,0,0,0,100,0), -- 18:25:24 +(@PATH,24,6844.302,-7187.855,27.69562,0,0,0,0,100,0), -- 18:25:32 +(@PATH,25,6846.742,-7212.095,27.73918,0,0,0,0,100,0); -- 18:25:45 + +-- Pathing for Sentinel Infiltrator Entry: 16333 'TDB FORMAT' +-- Needs SAI scripting +SET @NPC := 85876; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=6814.882,`position_y`=-7163.52,`position_z`=33.06502 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,6814.882,-7163.52,33.06502,0,0,0,0,100,0), -- 18:26:55 +(@PATH,2,6796.829,-7138.427,44.13749,0,0,0,0,100,0), -- 18:27:03 +(@PATH,3,6778.327,-7138.773,48.00482,0,0,0,0,100,0), -- 18:27:16 +(@PATH,4,6776.107,-7139.004,48.73849,0,0,0,0,100,0), -- 18:27:24 +(@PATH,5,6783.224,-7137.825,46.49815,0,0,0,0,100,0), -- 18:27:51 +(@PATH,6,6794.398,-7137.108,44.60288,0,0,0,0,100,0), -- 18:27:56 +(@PATH,7,6800.035,-7146.845,40.49599,0,0,0,0,100,0), -- 18:28:01 +(@PATH,8,6795.779,-7165.81,32.8607,0,0,0,0,100,0), -- 18:28:05 +(@PATH,9,6794.719,-7181.562,26.63479,0,0,0,0,100,0), -- 18:28:14 +(@PATH,10,6794.198,-7190.434,25.95545,0,0,0,0,100,0), -- 18:28:24 +(@PATH,11,6789.857,-7191.004,25.8968,0,0,0,0,100,0), -- 18:28:38 +(@PATH,12,6789.924,-7190.855,26.1468,0,0,0,0,100,0), -- 18:28:41 +(@PATH,13,6801.363,-7179.81,25.90792,0,0,0,0,100,0), -- 18:28:54 +(@PATH,14,6801.586,-7179.51,26.09436,0,0,0,0,100,0), -- 18:29:01 +(@PATH,15,6817.118,-7187.298,24.99203,0,0,0,0,100,0), -- 18:29:06 +(@PATH,16,6818.806,-7191.954,24.44993,0,0,0,0,100,0), -- 18:29:13 +(@PATH,17,6819.498,-7215.1,25.45433,0,0,0,0,100,0), -- 18:29:18 +(@PATH,18,6817.387,-7217.657,26.22639,0,0,0,0,100,0), -- 18:29:24 +(@PATH,19,6815.59,-7207.964,25.15621,0,0,0,0,100,0), -- 18:29:35 +(@PATH,20,6816.641,-7195.688,24.46806,0,0,0,0,100,0), -- 18:29:44 +(@PATH,21,6830.292,-7179.979,26.3147,0,0,0,0,100,0), -- 18:29:50 +(@PATH,22,6823.895,-7177.721,26.77645,0,0,0,0,100,0); -- 18:30:03 + +-- Pathing for Shadowpine Catlord Entry: 16345 'TDB FORMAT' +SET @NPC := 85833; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=6825.845,`position_y`=-7407.999,`position_z`=47.05538 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,6825.845,-7407.999,47.05538,0,0,0,0,100,0), -- 18:03:11 +(@PATH,2,6819.822,-7407.742,47.8176,0,0,0,0,100,0), -- 18:03:23 +(@PATH,3,6797.965,-7395.941,47.85873,0,0,0,0,100,0), -- 18:03:32 +(@PATH,4,6790.372,-7391.337,48.14279,0,0,0,0,100,0), -- 18:05:27 +(@PATH,5,6785.934,-7382.063,48.67854,0,0,0,0,100,0), -- 18:05:12 +(@PATH,6,6780.216,-7369.419,49.53757,0,0,0,0,100,0), -- 18:03:44 +(@PATH,7,6762.875,-7356.745,49.3274,0,0,0,0,100,0), -- 18:03:59 +(@PATH,8,6757.482,-7359.899,49.68204,0,0,0,0,100,0), -- 18:04:51 +(@PATH,9,6752.945,-7365.431,51.41992,0,0,0,0,100,0), -- 18:04:05 +(@PATH,10,6736.967,-7385.644,51.58582,0,0,0,0,100,0), -- 18:04:20 +(@PATH,11,6707.192,-7407.871,51.19869,0,0,0,0,100,0), -- 18:04:48 +(@PATH,12,6706.392,-7408.471,51.19869,0,0,0,0,100,0), -- 18:04:48 +(@PATH,13,6736.911,-7385.608,51.53582,0,0,0,0,100,0), -- 18:04:48 +(@PATH,14,6752.945,-7365.431,51.41992,0,0,0,0,100,0), -- 18:04:05 +(@PATH,15,6757.482,-7359.899,49.68204,0,0,0,0,100,0), -- 18:04:51 +(@PATH,16,6765.563,-7357.226,49.71237,0,0,0,0,100,0), -- 18:05:06 +(@PATH,17,6780.216,-7369.419,49.53757,0,0,0,0,100,0), -- 18:03:44 +(@PATH,18,6785.934,-7382.063,48.67854,0,0,0,0,100,0), -- 18:05:12 +(@PATH,19,6790.372,-7391.337,48.14279,0,0,0,0,100,0), -- 18:05:27 +(@PATH,20,6797.965,-7395.941,47.85873,0,0,0,0,100,0), -- 18:03:32 +(@PATH,21,6819.822,-7407.742,47.8176,0,0,0,0,100,0); -- 18:03:23 + +-- Pathing for Shadowpine Catlord Entry: 16345 'TDB FORMAT' +SET @NPC := 85899; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=6642.614,`position_y`=-7403.334,`position_z`=65.37686 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,6642.614,-7403.334,65.37686,0,0,0,0,100,0), -- 18:12:02 +(@PATH,2,6655.589,-7402.668,65.25717,0,0,0,0,100,0), -- 18:12:07 +(@PATH,3,6659.145,-7404.814,64.66093,0,0,0,0,100,0), -- 18:12:13 +(@PATH,4,6666.81,-7405.762,59.45066,0,0,0,0,100,0), -- 18:12:16 +(@PATH,5,6670.078,-7400.617,57.92281,0,0,0,0,100,0), -- 18:12:19 +(@PATH,6,6683.644,-7387.567,57.7993,0,0,0,0,100,0), -- 18:12:25 +(@PATH,7,6694.211,-7385.182,53.51888,0,0,0,0,100,0), -- 18:12:30 +(@PATH,8,6701.323,-7375.21,53.19016,0,0,0,0,100,0), -- 18:12:39 +(@PATH,9,6706.042,-7306.476,52.34984,0,0,0,0,100,0), -- 18:12:56 +(@PATH,10,6698.629,-7306.6,52.3459,0,0,0,0,100,0), -- 18:13:09 +(@PATH,11,6658.128,-7346.422,53.5539,0,0,0,0,100,0), -- 18:13:25 +(@PATH,12,6663.863,-7357.194,55.34796,0,0,0,0,100,0), -- 18:13:40 +(@PATH,13,6687.574,-7370.823,53.74558,0,0,0,0,100,0), -- 18:13:48 +(@PATH,14,6692.782,-7383.596,54.75917,0,0,0,0,100,0), -- 18:14:00 +(@PATH,15,6679.604,-7389.391,57.81517,0,0,0,0,100,0), -- 18:14:09 +(@PATH,16,6668.09,-7405,57.93337,0,0,0,0,100,0), -- 18:14:14 +(@PATH,17,6663.221,-7406.32,61.86858,0,0,0,0,100,0), -- 18:14:20 +(@PATH,18,6657.667,-7403.231,64.99197,0,0,0,0,100,0), -- 18:14:23 +(@PATH,19,6646.945,-7407.651,65.2119,0,0,0,0,100,0), -- 18:14:27 +(@PATH,20,6642.138,-7401.195,67.02313,0,0,0,0,100,0), -- 18:14:32 +(@PATH,21,6643.672,-7393.591,70.57539,0,0,0,0,100,0), -- 18:14:37 +(@PATH,22,6648.191,-7390.153,70.75128,0,0,0,0,100,0), -- 18:14:41 +(@PATH,23,6655.95,-7390.098,70.72308,0,0,0,0,100,0), -- 18:14:45 +(@PATH,24,6672.11,-7389.826,70.80399,0,0,0,0,100,0), -- 18:14:49 +(@PATH,25,6674.516,-7400.391,70.78954,0,0,0,0,100,0), -- 18:14:54 +(@PATH,26,6670.333,-7405.347,70.74722,0,0,0,0,100,0), -- 18:14:58 +(@PATH,27,6655.763,-7405.991,70.77985,0,0,0,0,100,0), -- 18:15:03 +(@PATH,28,6652.884,-7398.17,70.53949,0,0,0,0,100,0), -- 18:15:08 +(@PATH,29,6648.519,-7390.229,70.74633,0,0,0,0,100,0), -- 18:15:14 +(@PATH,30,6643.527,-7393.528,70.72253,0,0,0,0,100,0), -- 18:15:17 +(@PATH,31,6642.74,-7403.402,65.47425,0,0,0,0,100,0); -- 18:15:22 + +-- Pathing for Shadowpine Hexxer Entry: 16346 'TDB FORMAT' +SET @NPC := 85922; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=6544.311,`position_y`=-7415.042,`position_z`=66.8414 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,6544.311,-7415.042,66.8414,0,0,0,0,100,0), -- 18:12:06 +(@PATH,2,6557.531,-7398.131,62.547,0,0,0,0,100,0), -- 18:12:18 +(@PATH,3,6584.465,-7368.215,56.64576,0,0,0,0,100,0), -- 18:12:52 +(@PATH,4,6589.184,-7361.762,55.35123,0,0,0,0,100,0), -- 18:12:52 +(@PATH,5,6593.902,-7355.309,54.72623,0,0,0,0,100,0), -- 18:12:52 +(@PATH,6,6598.534,-7348.974,54.28678,0,0,0,0,100,0), -- 18:12:52 +(@PATH,7,6603.207,-7346.335,54.47303,0,0,0,0,100,0), -- 18:15:13 +(@PATH,8,6609.078,-7343.148,54.03077,0,0,0,0,100,0), -- 18:12:53 +(@PATH,9,6619.535,-7340.988,53.94233,0,0,0,0,100,0), -- 18:15:00 +(@PATH,10,6636.512,-7345.48,53.38771,0,0,0,0,100,0), -- 18:13:02 +(@PATH,11,6650.978,-7350.788,53.67146,0,0,0,0,100,0), -- 18:14:42 +(@PATH,12,6679.457,-7366.645,54.62379,0,0,0,0,100,0), -- 18:13:15 +(@PATH,13,6688.482,-7368.755,53.68621,0,0,0,0,100,0), -- 18:13:31 +(@PATH,14,6707.076,-7373.765,53.0295,0,0,0,0,100,0), -- 18:14:20 +(@PATH,15,6724.337,-7391.231,52.32455,0,0,0,0,100,0), -- 18:13:40 +(@PATH,16,6742.169,-7407.499,51.53728,0,0,0,0,100,0), -- 18:13:54 +(@PATH,17,6740.595,-7406.18,51.4976,0,0,0,0,100,0), -- 18:14:08 +(@PATH,18,6724.337,-7391.231,52.32455,0,0,0,0,100,0), -- 18:13:40 +(@PATH,19,6707.076,-7373.765,53.0295,0,0,0,0,100,0), -- 18:14:20 +(@PATH,20,6686.671,-7368.761,53.71722,0,0,0,0,100,0), -- 18:14:34 +(@PATH,21,6679.457,-7366.645,54.62379,0,0,0,0,100,0), -- 18:13:15 +(@PATH,22,6650.978,-7350.788,53.67146,0,0,0,0,100,0), -- 18:14:42 +(@PATH,23,6636.512,-7345.48,53.38771,0,0,0,0,100,0), -- 18:13:02 +(@PATH,24,6619.535,-7340.988,53.94233,0,0,0,0,100,0), -- 18:15:00 +(@PATH,25,6609.078,-7343.148,54.03077,0,0,0,0,100,0), -- 18:12:53 +(@PATH,26,6603.207,-7346.335,54.47303,0,0,0,0,100,0), -- 18:15:13 +(@PATH,27,6598.534,-7348.974,54.28678,0,0,0,0,100,0), -- 18:12:52 +(@PATH,28,6593.902,-7355.309,54.72623,0,0,0,0,100,0), -- 18:12:52 +(@PATH,29,6586.425,-7365.703,56.44064,0,0,0,0,100,0), -- 18:15:20 +(@PATH,30,6560.438,-7394.56,61.59495,0,0,0,0,100,0), -- 18:15:30 +(@PATH,31,6544.499,-7415.031,66.93755,0,0,0,0,100,0); -- 18:15:45 diff --git a/sql/updates/world/3.3.5/2016_06_09_00_world.sql b/sql/updates/world/3.3.5/2016_06_09_00_world.sql new file mode 100644 index 00000000000..f3a8ec3d6e8 --- /dev/null +++ b/sql/updates/world/3.3.5/2016_06_09_00_world.sql @@ -0,0 +1,33 @@ +-- Mountaineer Pebblebitty (creature_template.entry 3836) +SET @ENTRY := 3836; + +UPDATE `creature_template` SET `AIName`= "SmartAI", `ScriptName`= '' WHERE `entry`= @ENTRY; + +-- Correct gossip_menu_options for Quest 3181 gossip +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (1201,1202,1203,1204,1205,1206) AND `id` = 0; +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`OptionBroadcastTextID`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`,`BoxBroadcastTextID`) VALUES +(1201, 0,0, "What's the worst that could happen?", 4266, 1,1, 1202, 0,0,0,'',0), +(1202, 0,0, "Another way? Do tell...", 4268, 1,1, 1203, 0,0,0,'',0), +(1203, 0,0, "Orcs? Badlands? I'm invulnerable!", 4270, 1,1, 1204, 0,0,0,'',0), +(1204, 0,0, "Absolutely!", 4272, 1,1, 1205, 0,0,0,'',0), +(1205, 0,0, "My apologies, Pebblebitty.", 4274, 1,1, 1206, 0,0,0,'',0), +(1206, 0,0, "Done, done, and done.", 4276, 1,1, 0, 0,0,0,'',0); + +-- Link gossip_menu_option.menu_id to npc_text.ID (1201,1833 already in TDB) +DELETE FROM `gossip_menu` WHERE `entry` IN (1202,1203,1204,1205,1206); +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES +(1202,1834), +(1203,1835), +(1204,1836), +(1205,1837), +(1206,1838); + +-- Mountaineer Pebblebitty gossip SAI for quest 3181 (gossip has to be closed) +DELETE FROM `smart_scripts` WHERE `entryorguid`= @ENTRY AND `source_type` = 0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_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,62,0,100,0,1206,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Mountaineer Pebblebitty - on Gossip Menu Option 1206 selected - Close Gossip"); + +-- Condition for gossip_menu_option 1201 and Quest 3181 (The Horn of the Beast) +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`= 15 AND `SourceGroup`= 1201; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(15, 1201,0, 0,0, 28,0, 3181,0,0, 0,0,0, '', 'Show gossip menu option 1201 only if Quest 3181 is completed'); diff --git a/sql/updates/world/3.3.5/2016_06_09_01_world.sql b/sql/updates/world/3.3.5/2016_06_09_01_world.sql new file mode 100644 index 00000000000..b29242b6038 --- /dev/null +++ b/sql/updates/world/3.3.5/2016_06_09_01_world.sql @@ -0,0 +1,14 @@ +-- Majordomo Executus' gossip when friendly (entry 12018 in 3.3.5) +UPDATE `creature_template` SET `gossip_menu_id` = 4093 WHERE `entry` = 12018; + +DELETE FROM `gossip_menu` WHERE `entry` IN (4108,4109,4093) AND `text_id` IN (4995,5011,5012); +INSERT INTO gossip_menu (`entry`,`text_id`) VALUES +(4093, 4995), -- 54404 (Majordomo Executus' DB entry ID from retail) +(4109, 5011), -- 54404 (Majordomo Executus' DB entry ID from retail) +(4108, 5012); -- 54404 (Majordomo Executus' DB entry ID from retail) + +DELETE FROM `gossip_menu_option` WHERE (`menu_id`=4108 AND `id`=0) OR (`menu_id`=4109 AND `id`=0) OR (`menu_id`=4093 AND `id`=0); +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`OptionBroadcastTextID`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`,`BoxBroadcastTextID`) VALUES +(4093,0,0, 'Tell me more.', 7675,1,1,4109,0,0,0,'',0), -- menu_id + text in TDB 6.04 +(4109,0,0, 'What else do you have to say?', 7673,1,1,4108,0,0,0,'',0), -- menu_id + text in TDB 6.04 +(4108,0,0, 'You challenged us and we have come. Where is this master you speak of?\n', 7646,1,1, 0,0,0,0,'',0); -- menu_id + text in TDB 6.04 diff --git a/sql/updates/world/3.3.5/2016_06_09_02_world.sql b/sql/updates/world/3.3.5/2016_06_09_02_world.sql new file mode 100644 index 00000000000..b2a7d985a9f --- /dev/null +++ b/sql/updates/world/3.3.5/2016_06_09_02_world.sql @@ -0,0 +1,21 @@ +-- Correct gossip menu option lines, text found in broadcast_text: +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (6186,6185,6187,6208,6209,6210,6211); +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`OptionBroadcastTextID`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`,`BoxBroadcastTextID`) VALUES +(6186, 0,0, "I am ready to discover where my fortune lies!",10047,1,1,6185,0,0,0,'',0), +(6185, 0,0, "I slay the man on the spot as my liege would expect me to do, as he is nothing more than a thief and a liar.", 10049,1,1,6187,0,0,0,'',0), +(6185, 1,0, "I turn over the man to my liege for punishment, as he has broken the law of the land and it is my sworn duty to enforce it.", 10050,1,1,6187,0,0,0,'',0), +(6185, 2,0, "I confiscate the corn he has stolen, warn him that stealing is a path towards doom and destruction, but I let him go to return to his family.", 10051,1,1,6187,0,0,0,'',0), +(6185, 3,0, "I allow the man to take enough corn to feed his family for a couple of days, encouraging him to leave the land.", 10052,1,1,6187,0,0,0,'',0), +(6187, 0,0, "I execute him as per my liege's instructions, and do it in such a manner that he suffers painfully before he dies as retribution for his crimes against my people.", 10075,1,1,6208,0,0,0,'',0), +(6187, 1,0, "I execute him as per my liege's instructions, but doing so in as painless of a way as possible. Justice must be served, but I can show some compassion.", 10076,1,1,6208,0,0,0,'',0), +(6187, 2,0, "I risk my own life and free him so that he may prove his innocence. If I can, I'll help him in any way.", 10077,1,1,6208,0,0,0,'',0), +(6208, 0,0, "I confront the ruler on his malicious behavior, upholding my liege's honor at the risk of any future diplomacy.", 10079,1,1,6209,0,0,0,'',0), +(6208, 1,0, "I not-so-quietly ignore the insult, hoping to instill a fear in the ruler that he may have gaffed. I then inform my liege of the insult when I return.", 10080,1,1,6209,0,0,0,'',0), +(6208, 2,0, "I quietly ignore the insult. I will not tell my liege, as I am to secure peace at all costs. It's only an insult - not a declaration of war.", 10081,1,1,6209,0,0,0,'',0), +(6209, 0,0, "I would speak against my brother joining the order, rushing a permanent breach in our relationship. He would be a danger to himself and those around him, and that is too great a risk hoping he would improve over time.", 10083,1,1,6210,0,0,0,'',0), +(6209, 1,0, "I would speak for my brother joining the order, potentially risking the safety of the order. I could help him with the order's regimens, and I'd have faith in his ability to adapt and learn.", 10084,1,1,6210,0,0,0,'',0), +(6209, 2,0, "I would create some surreptitious means to keep my brother out of the order. I can keep him out without him being any bit wiser, thereby saving our familial bonds.", 10085,1,1,6210,0,0,0,'',0), +(6210, 0,0, "I would show my liege the beast's ear and claim the beast's death as my own, taking the reward for my own use. It is wrong to claim a deed as your own that someone else in fact did.", 10086,1,1,6211,0,0,0,'',0), +(6210, 1,0, "I would show my liege the beast's ear and claim the beast's death as my own - after all, I did slay it. I would then offer some of the reward to the destitute knight to help his family.", 10088,1,1,6211,0,0,0,'',0), +(6210, 2,0, "I would remain silent about the kill and allow the knight to claim the reward to aid his family.", 10089,1,1,6211,0,0,0,'',0), +(6211, 0,0, "I'd love to get one of those written fortunes you mentioned! I've got the space in my inventory for it.", 10091,1,1,0,0,0,0,'',0); diff --git a/sql/updates/world/3.3.5/2016_06_09_03_world_335.sql b/sql/updates/world/3.3.5/2016_06_09_03_world_335.sql new file mode 100644 index 00000000000..c4be18500b9 --- /dev/null +++ b/sql/updates/world/3.3.5/2016_06_09_03_world_335.sql @@ -0,0 +1,23 @@ +-- Remove outdated ScriptName from NPC 7775 Gregan Brewspewer +UPDATE `creature_template` SET `ScriptName`= '' WHERE `entry`= 7775; + +-- Remove broadcast_text link from Gregan's default gossip "What can I do for ya?" +-- to enable npc_text.ID 2433 "Hi there! The name's Gregan. What can I do for ya?" +-- This mixup is caused by invalid duplicate use of BroadcastTextID0 = 8275, +-- duplicate of npc_text.ID 5695, used by NPC entry 5167 Fenthwick <Rogue Trainer> +-- Lookup queries to verify this information: +-- SELECT * FROM `npc_text` WHERE `BroadcastTextID0`= 8275; -- (ID 2433 + 5695) +-- SELECT * FROM `gossip_menu` WHERE `text_id`= 5695; -- (4561,5695) +-- SELECT * FROM `gossip_menu_option` WHERE `menu_id`= 4561; -- (id 0,1,2,4) "I'm lookin' for rogue trainin'." +-- SELECT * FROM `creature_template` WHERE `gossip_menu_id`= 4561; -- (5167 Fenthwick <Rogue Trainer>) + +UPDATE `npc_text` SET `BroadcastTextID0`= 0 WHERE `ID`= 2433; -- old (invalid) BroadcastTextID0 : 8275 + +-- Activate selection of the next gossip menus in the gossip dialogue +UPDATE `gossip_menu_option` SET `action_menu_id`= 1801 WHERE `menu_id`= 1802 AND `id`= 0; +UPDATE `gossip_menu_option` SET `action_menu_id`= 1915 WHERE `menu_id`= 1801 AND `id`= 0; + +-- Condition for gossip_menu_option.menu_id 1802, shown in Gregan Brewspewer's default gossip menu 2433 +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`= 15 AND `SourceGroup`= 1802 AND `SourceEntry`=0; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(15, 1802, 0, 0, 0, 9, 0, 3909, 0, 0, 0, 0, 0, "", "Show Gossip Menu Option menu_id 1802 id 0 if Quest 3909 is taken (active)"); diff --git a/sql/updates/world/3.3.5/2016_06_09_04_world.sql b/sql/updates/world/3.3.5/2016_06_09_04_world.sql new file mode 100644 index 00000000000..ecff9eb7ce6 --- /dev/null +++ b/sql/updates/world/3.3.5/2016_06_09_04_world.sql @@ -0,0 +1,6 @@ +-- NPC ID 17603 Grandmother gossip_menu_option (new rows) +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (7441,7442,7443); +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`OptionBroadcastTextID`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`,`BoxBroadcastTextID`) VALUES +(7441,0,0,"Oh, grandmother, what big ears you have.", 14217,0,0,7442,0,0,0,'',0), +(7442,0,0,"Oh, grandmother, what big eyes you have.", 14219,0,0,7443,0,0,0,'',0), +(7443,0,0,"Oh, grandmother, what phat lewts you have.",14221,0,0, 0,0,0,0,'',0); diff --git a/sql/updates/world/3.3.5/2016_06_09_05_world.sql b/sql/updates/world/3.3.5/2016_06_09_05_world.sql new file mode 100644 index 00000000000..50c99117c03 --- /dev/null +++ b/sql/updates/world/3.3.5/2016_06_09_05_world.sql @@ -0,0 +1,82 @@ +-- NPC entry 29665 (Pazik "The Pick" Prylock), 29725 (Benik Boltshear) and 29728 (Walter Soref) +SET @MENU_ID := 9823; +SET @Pazik := 29665; +SET @Benik := 29725; +SET @Walter := 29728; + +-- Corrected gossip menu options based on text found in broadcast_text: +DELETE FROM `gossip_menu_option` WHERE `menu_id` = @MENU_ID; +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`OptionBroadcastTextID`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`,`BoxBroadcastTextID`) VALUES +(@MENU_ID, 0,0, "I've lost my key to Scholomance.", 30315,1,1,0,0,0,0,'',0), +(@MENU_ID, 1,0, "I've lost my key to The Arcatraz.", 30316,1,1,0,0,0,0,'',0), +(@MENU_ID, 2,0, "I've lost my key to The Shattered Halls.", 30317,1,1,0,0,0,0,'',0), +(@MENU_ID, 3,0, "I've lost my key to Searing Gorge.", 30318,1,1,0,0,0,0,'',0), +(@MENU_ID, 4,0, "I've lost my Shadowforge Key.", 30319,1,1,0,0,0,0,'',0), +(@MENU_ID, 5,0, "I've lost The Eye of Haramad.", 30320,1,1,0,0,0,0,'',0), +(@MENU_ID, 6,0, "I've lost my key to Karazhan.", 30321,1,1,0,0,0,0,'',0), +(@MENU_ID, 7,0, "I've lost my key to the Violet Hold.", 35500,1,1,0,0,0,0,'',0), +(@MENU_ID, 8,0, "I've lost my Essence-Infused Moonstone. Can you replace it?", 20969,1,1,0,0,0,0,'',0); + +-- Walter Soref is missing his npcflag for gossip (the other 2 locksmiths are OK) +UPDATE `creature` SET `npcflag`=(`npcflag`|1) WHERE `id` = @Walter; + +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName`= '' WHERE `entry` IN (@Pazik,@Benik,@Walter); + +DELETE FROM `smart_scripts` WHERE `source_type` = 0 AND `entryorguid` IN (@Pazik,@Benik,@Walter); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@Pazik, 0,0,9,62,0,100,0,9823,0,0,0,11,54883,0,0,0,0,0,7,0,0,0,0,0,0,0,"Pazik \"The Pick\" Prylock - on Gossip Option 0 selected - cast 'Create Skeleton Key'"), +(@Pazik, 0,1,9,62,0,100,0,9823,1,0,0,11,54881,0,0,0,0,0,7,0,0,0,0,0,0,0,"Pazik \"The Pick\" Prylock - on Gossip Option 1 selected - cast 'Create Key to the Arcatraz'"), +(@Pazik, 0,2,9,62,0,100,0,9823,2,0,0,11,54884,0,0,0,0,0,7,0,0,0,0,0,0,0,"Pazik \"The Pick\" Prylock - on Gossip Option 2 selected - cast 'Create Shattered Halls Key'"), +(@Pazik, 0,3,9,62,0,100,0,9823,3,0,0,11,54880,0,0,0,0,0,7,0,0,0,0,0,0,0,"Pazik \"The Pick\" Prylock - on Gossip Option 3 selected - cast 'Create Key to Searing Gorge'"), +(@Pazik, 0,4,9,62,0,100,0,9823,4,0,0,11,54882,0,0,0,0,0,7,0,0,0,0,0,0,0,"Pazik \"The Pick\" Prylock - on Gossip Option 4 selected - cast 'Create Shadowforge Key'"), +(@Pazik, 0,5,9,62,0,100,0,9823,5,0,0,11,54887,0,0,0,0,0,7,0,0,0,0,0,0,0,"Pazik \"The Pick\" Prylock - on Gossip Option 5 selected - cast 'Create They Eye of Haramad'"), +(@Pazik, 0,6,9,62,0,100,0,9823,6,0,0,11,54885,0,0,0,0,0,7,0,0,0,0,0,0,0,"Pazik \"The Pick\" Prylock - on Gossip Option 6 selected - cast 'Create The Master's Key'"), +(@Pazik, 0,7,9,62,0,100,0,9823,7,0,0,11,67253,0,0,0,0,0,7,0,0,0,0,0,0,0,"Pazik \"The Pick\" Prylock - on Gossip Option 7 selected - cast 'Create The Violet Hold Key'"), +(@Pazik, 0,8,9,62,0,100,0,9823,8,0,0,11,40173,0,0,0,0,0,7,0,0,0,0,0,0,0,"Pazik \"The Pick\" Prylock - on Gossip Option 8 selected - cast 'Create Essence-Infused Moonstone'"), +(@Pazik, 0,9,0,61,0,100,0, 0,0,0,0,72, 0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Pazik \"The Pick\" Prylock - on Gossip Option * selected - close Gossip"), +(@Benik, 0,0,9,62,0,100,0,9823,0,0,0,11,54883,0,0,0,0,0,7,0,0,0,0,0,0,0,"Benik Boltshear - on Gossip Option 0 selected - cast 'Create Skeleton Key'"), +(@Benik, 0,1,9,62,0,100,0,9823,1,0,0,11,54881,0,0,0,0,0,7,0,0,0,0,0,0,0,"Benik Boltshear - on Gossip Option 1 selected - cast 'Create Key to the Arcatraz'"), +(@Benik, 0,2,9,62,0,100,0,9823,2,0,0,11,54884,0,0,0,0,0,7,0,0,0,0,0,0,0,"Benik Boltshear - on Gossip Option 2 selected - cast 'Create Shattered Halls Key'"), +(@Benik, 0,3,9,62,0,100,0,9823,3,0,0,11,54880,0,0,0,0,0,7,0,0,0,0,0,0,0,"Benik Boltshear - on Gossip Option 3 selected - cast 'Create Key to Searing Gorge'"), +(@Benik, 0,4,9,62,0,100,0,9823,4,0,0,11,54882,0,0,0,0,0,7,0,0,0,0,0,0,0,"Benik Boltshear - on Gossip Option 4 selected - cast 'Create Shadowforge Key'"), +(@Benik, 0,5,9,62,0,100,0,9823,5,0,0,11,54887,0,0,0,0,0,7,0,0,0,0,0,0,0,"Benik Boltshear - on Gossip Option 5 selected - cast 'Create They Eye of Haramad'"), +(@Benik, 0,6,9,62,0,100,0,9823,6,0,0,11,54885,0,0,0,0,0,7,0,0,0,0,0,0,0,"Benik Boltshear - on Gossip Option 6 selected - cast 'Create The Master's Key'"), +(@Benik, 0,7,9,62,0,100,0,9823,7,0,0,11,67253,0,0,0,0,0,7,0,0,0,0,0,0,0,"Benik Boltshear - on Gossip Option 7 selected - cast 'Create The Violet Hold Key'"), +(@Benik, 0,8,9,62,0,100,0,9823,8,0,0,11,40173,0,0,0,0,0,7,0,0,0,0,0,0,0,"Benik Boltshear - on Gossip Option 8 selected - cast 'Create Essence-Infused Moonstone'"), +(@Benik, 0,9,0,61,0,100,0, 0,0,0,0,72, 0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Benik Boltshear - on Gossip Option * selected - close Gossip"), +(@Walter,0,0,9,62,0,100,0,9823,0,0,0,11,54883,0,0,0,0,0,7,0,0,0,0,0,0,0,"Walter Soref - on Gossip Option 0 selected - cast 'Create Skeleton Key'"), +(@Walter,0,1,9,62,0,100,0,9823,1,0,0,11,54881,0,0,0,0,0,7,0,0,0,0,0,0,0,"Walter Soref - on Gossip Option 1 selected - cast 'Create Key to the Arcatraz'"), +(@Walter,0,2,9,62,0,100,0,9823,2,0,0,11,54884,0,0,0,0,0,7,0,0,0,0,0,0,0,"Walter Soref - on Gossip Option 2 selected - cast 'Create Shattered Halls Key'"), +(@Walter,0,3,9,62,0,100,0,9823,3,0,0,11,54880,0,0,0,0,0,7,0,0,0,0,0,0,0,"Walter Soref - on Gossip Option 3 selected - cast 'Create Key to Searing Gorge'"), +(@Walter,0,4,9,62,0,100,0,9823,4,0,0,11,54882,0,0,0,0,0,7,0,0,0,0,0,0,0,"Walter Soref - on Gossip Option 4 selected - cast 'Create Shadowforge Key'"), +(@Walter,0,5,9,62,0,100,0,9823,5,0,0,11,54887,0,0,0,0,0,7,0,0,0,0,0,0,0,"Walter Soref - on Gossip Option 5 selected - cast 'Create They Eye of Haramad'"), +(@Walter,0,6,9,62,0,100,0,9823,6,0,0,11,54885,0,0,0,0,0,7,0,0,0,0,0,0,0,"Walter Soref - on Gossip Option 6 selected - cast 'Create The Master's Key'"), +(@Walter,0,7,9,62,0,100,0,9823,7,0,0,11,67253,0,0,0,0,0,7,0,0,0,0,0,0,0,"Walter Soref - on Gossip Option 7 selected - cast 'Create The Violet Hold Key'"), +(@Walter,0,8,9,62,0,100,0,9823,8,0,0,11,40173,0,0,0,0,0,7,0,0,0,0,0,0,0,"Walter Soref - on Gossip Option 8 selected - cast 'Create Essence-Infused Moonstone'"), +(@Walter,0,9,0,61,0,100,0, 0,0,0,0,72, 0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Walter Soref - on Gossip Option * selected - close Gossip"); + +-- conditions for gossip_menu_option.menu_id 9823: +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`= 15 AND `SourceGroup`= @MENU_ID; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(15,@MENU_ID,0,0, 0, 8,0, 5505,0,0, 0,0,0,'',"Show gossip option 9823 id 0 if quest 5505 is rewarded AND player does NOT have item 13704."), +(15,@MENU_ID,0,0, 0, 2,0,13704,1,0, 1,0,0,'',"Show gossip option 9823 id 0 if player does NOT have item 13704 AND quest 5505 is rewarded."), +(15,@MENU_ID,0,0, 1, 8,0, 5511,0,0, 0,0,0,'',"Show gossip option 9823 id 0 if quest 5511 is rewarded AND player does NOT have item 13704."), +(15,@MENU_ID,0,0, 1, 2,0,13704,1,0, 1,0,0,'',"Show gossip option 9823 id 0 if player does NOT have item 13704 AND quest 5511 is rewarded."), +(15,@MENU_ID,1,0, 0, 8,0,10704,0,0, 0,0,0,'',"Show gossip option 9823 id 1 if quest 10704 is rewarded AND player does NOT have item 31084."), +(15,@MENU_ID,1,0, 0, 2,0,31084,1,0, 1,0,0,'',"Show gossip option 9823 id 1 if player does NOT have item 31084 AND quest 10704 is rewarded."), +(15,@MENU_ID,2,0, 0, 8,0,10758,0,0, 0,0,0,'',"Show gossip option 9823 id 2 if quest 10758 is rewarded AND player does NOT have item 28395."), +(15,@MENU_ID,2,0, 0, 2,0,28395,1,0, 1,0,0,'',"Show gossip option 9823 id 2 if player does NOT have item 28395 AND quest 10758 is rewarded."), +(15,@MENU_ID,2,0, 1, 8,0,10764,0,0, 0,0,0,'',"Show gossip option 9823 id 2 if quest 10764 is rewarded AND player does NOT have item 28395."), +(15,@MENU_ID,2,0, 1, 2,0,28395,1,0, 1,0,0,'',"Show gossip option 9823 id 2 if player does NOT have item 28395 AND quest 10764 is rewarded."), +(15,@MENU_ID,3,0, 0, 8,0, 3201,0,0, 0,0,0,'',"Show gossip option 9823 id 3 if quest 3201 is rewarded AND player does NOT have item 5396."), +(15,@MENU_ID,3,0, 0, 2,0, 5396,1,0, 1,0,0,'',"Show gossip option 9823 id 3 if player does NOT have item 5396 AND quest 3201 is rewarded."), +(15,@MENU_ID,4,0, 0, 8,0, 3802,0,0, 0,0,0,'',"Show gossip option 9823 id 4 if quest 3802 is rewarded AND player does NOT have item 11000."), +(15,@MENU_ID,4,0, 0, 2,0,11000,1,0, 1,0,0,'',"Show gossip option 9823 id 4 if player does NOT have item 11000 AND quest 3802 is rewarded."), +(15,@MENU_ID,5,0, 0, 8,0,10982,0,0, 0,0,0,'',"Show gossip option 9823 id 5 if quest 10982 is rewarded AND player does NOT have item 32092."), +(15,@MENU_ID,5,0, 0, 2,0,32092,1,0, 1,0,0,'',"Show gossip option 9823 id 5 if player does NOT have item 32092 AND quest 10982 is rewarded."), +(15,@MENU_ID,6,0, 0, 8,0, 9837,0,0, 0,0,0,'',"Show gossip option 9823 id 6 if quest 9837 is rewarded AND player does NOT have item 24490."), +(15,@MENU_ID,6,0, 0, 2,0,24490,1,0, 1,0,0,'',"Show gossip option 9823 id 6 if player does NOT have item 24490 AND quest 9837 is rewarded."), +(15,@MENU_ID,7,0, 0, 8,0,13159,0,0, 0,0,0,'',"Show gossip option 9823 id 7 if quest 13159 is rewarded AND player does NOT have item 42482."), +(15,@MENU_ID,7,0, 0, 2,0,42482,1,0, 1,0,0,'',"Show gossip option 9823 id 7 if player does NOT have item 42482 AND quest 13159 is rewarded."), +(15,@MENU_ID,8,0, 0, 8,0,11011,0,0, 0,0,0,'',"Show gossip option 9823 id 8 if quest 11011 is rewarded AND player does NOT have item 32449."), +(15,@MENU_ID,8,0, 0, 2,0,32449,1,0, 1,0,0,'',"Show gossip option 9823 id 8 if player does NOT have item 32449 AND quest 11011 is rewarded."); diff --git a/sql/updates/world/3.3.5/2016_06_09_06_world.sql b/sql/updates/world/3.3.5/2016_06_09_06_world.sql new file mode 100644 index 00000000000..9037a2a2fe5 --- /dev/null +++ b/sql/updates/world/3.3.5/2016_06_09_06_world.sql @@ -0,0 +1,3 @@ +-- Wrong respawntimer for Quest GameObjects +-- Bingles's Toolbucket, Bingles's Blastencapper +UPDATE `gameobject` SET `spawntimesecs` = 10 WHERE `id` IN (104564,104569,104574,104575); diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index a0a7651df13..c631874f18d 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -3356,6 +3356,16 @@ void SmartScript::UpdateTimer(SmartScriptHolder& e, uint32 const diff) } } + // Delay flee for assist event if stunned or rooted + if (e.GetActionType() == SMART_ACTION_FLEE_FOR_ASSIST) + { + if (me && me->HasUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED)) + { + e.timer = 1; + return; + } + } + e.active = true;//activate events with cooldown switch (e.GetEventType())//process ONLY timed events { diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index d7e478bb4e5..fed41f79b88 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -2004,7 +2004,7 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player* RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED); SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED); - uint32 modelId = m_goInfo->building.damagedDisplayId; + uint32 modelId = m_goInfo->displayId; if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->building.destructibleData)) if (modelData->DamagedDisplayId) modelId = modelData->DamagedDisplayId; @@ -2032,7 +2032,7 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player* RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED); SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED); - uint32 modelId = m_goInfo->building.destroyedDisplayId; + uint32 modelId = m_goInfo->displayId; if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->building.destructibleData)) if (modelData->DestroyedDisplayId) modelId = modelData->DestroyedDisplayId; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 60e482d9093..636f9b61019 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -12330,7 +12330,7 @@ void Player::DestroyItem(uint8 bag, uint8 slot, bool update) // Delete rolled money / loot from db. // MUST be done before RemoveFromWorld() or GetTemplate() fails if (ItemTemplate const* pTmp = pItem->GetTemplate()) - if (pTmp->Flags & ITEM_PROTO_FLAG_OPENABLE) + if (pTmp->Flags & ITEM_PROTO_FLAG_HAS_LOOT) pItem->ItemContainerDeleteLootMoneyAndLootItemsFromDB(); if (IsInWorld() && update) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 80004a017d3..fe8cb996135 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -17231,7 +17231,6 @@ bool Unit::SetWalk(bool enable) AddUnitMovementFlag(MOVEMENTFLAG_WALKING); else RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING); - return true; } @@ -17246,15 +17245,7 @@ bool Unit::SetDisableGravity(bool disable, bool /*packetOnly = false*/) RemoveUnitMovementFlag(MOVEMENTFLAG_FALLING); } else - { RemoveUnitMovementFlag(MOVEMENTFLAG_DISABLE_GRAVITY); - if (!HasUnitMovementFlag(MOVEMENTFLAG_CAN_FLY)) - { - m_movementInfo.SetFallTime(0); - AddUnitMovementFlag(MOVEMENTFLAG_FALLING); - } - } - return true; } @@ -17267,7 +17258,6 @@ bool Unit::SetSwim(bool enable) AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING); else RemoveUnitMovementFlag(MOVEMENTFLAG_SWIMMING); - return true; } @@ -17282,15 +17272,7 @@ bool Unit::SetCanFly(bool enable, bool /*packetOnly = false */) RemoveUnitMovementFlag(MOVEMENTFLAG_FALLING); } else - { RemoveUnitMovementFlag(MOVEMENTFLAG_CAN_FLY | MOVEMENTFLAG_MASK_MOVING_FLY); - if (!IsLevitating()) - { - m_movementInfo.SetFallTime(0); - AddUnitMovementFlag(MOVEMENTFLAG_FALLING); - } - } - return true; } @@ -17303,7 +17285,6 @@ bool Unit::SetWaterWalking(bool enable, bool /*packetOnly = false */) AddUnitMovementFlag(MOVEMENTFLAG_WATERWALKING); else RemoveUnitMovementFlag(MOVEMENTFLAG_WATERWALKING); - return true; } @@ -17316,7 +17297,6 @@ bool Unit::SetFeatherFall(bool enable, bool /*packetOnly = false */) AddUnitMovementFlag(MOVEMENTFLAG_FALLING_SLOW); else RemoveUnitMovementFlag(MOVEMENTFLAG_FALLING_SLOW); - return true; } @@ -17344,7 +17324,6 @@ bool Unit::SetHover(bool enable, bool /*packetOnly = false*/) UpdateHeight(newZ); } } - return true; } diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp index 7f5d882a912..42ce01708eb 100644 --- a/src/server/game/Handlers/ItemHandler.cpp +++ b/src/server/game/Handlers/ItemHandler.cpp @@ -1095,7 +1095,7 @@ void WorldSession::HandleWrapItemOpcode(WorldPacket& recvData) return; } - if (!(gift->GetTemplate()->Flags & ITEM_PROTO_FLAG_WRAPPER)) // cheating: non-wrapper wrapper + if (!(gift->GetTemplate()->Flags & ITEM_PROTO_FLAG_IS_WRAPPER)) // cheating: non-wrapper wrapper { _player->SendEquipError(EQUIP_ERR_ITEM_NOT_FOUND, gift, NULL); return; diff --git a/src/server/game/Handlers/LootHandler.cpp b/src/server/game/Handlers/LootHandler.cpp index 82fdc2e54c7..ad5d8259e15 100644 --- a/src/server/game/Handlers/LootHandler.cpp +++ b/src/server/game/Handlers/LootHandler.cpp @@ -338,7 +338,7 @@ void WorldSession::DoLootRelease(ObjectGuid lguid) else { // Only delete item if no loot or money (unlooted loot is saved to db) or if it isn't an openable item - if (pItem->loot.isLooted() || !(proto->Flags & ITEM_PROTO_FLAG_OPENABLE)) + if (pItem->loot.isLooted() || !(proto->Flags & ITEM_PROTO_FLAG_HAS_LOOT)) player->DestroyItem(pItem->GetBagSlot(), pItem->GetSlot(), true); } return; // item can be looted only single player diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp index e07e10ab00c..93e986b0339 100644 --- a/src/server/game/Handlers/SpellHandler.cpp +++ b/src/server/game/Handlers/SpellHandler.cpp @@ -196,7 +196,7 @@ void WorldSession::HandleOpenItemOpcode(WorldPacket& recvPacket) } // Verify that the bag is an actual bag or wrapped item that can be used "normally" - if (!(proto->Flags & ITEM_PROTO_FLAG_OPENABLE) && !item->HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAG_WRAPPED)) + if (!(proto->Flags & ITEM_PROTO_FLAG_HAS_LOOT) && !item->HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAG_WRAPPED)) { pUser->SendEquipError(EQUIP_ERR_CANT_DO_RIGHT_NOW, item, NULL); TC_LOG_ERROR("network", "Possible hacking attempt: Player %s [guid: %u] tried to open item [guid: %u, entry: %u] which is not openable!", diff --git a/src/server/game/Loot/LootMgr.cpp b/src/server/game/Loot/LootMgr.cpp index 390b636bb5e..ebdeb4016dd 100644 --- a/src/server/game/Loot/LootMgr.cpp +++ b/src/server/game/Loot/LootMgr.cpp @@ -353,7 +353,7 @@ LootItem::LootItem(LootStoreItem const& li) conditions = li.conditions; ItemTemplate const* proto = sObjectMgr->GetItemTemplate(itemid); - freeforall = proto && (proto->Flags & ITEM_PROTO_FLAG_PARTY_LOOT); + freeforall = proto && (proto->Flags & ITEM_PROTO_FLAG_MULTI_DROP); follow_loot_rules = proto && (proto->FlagsCu & ITEM_FLAGS_CU_FOLLOW_LOOT_RULES); needs_quest = li.needs_quest; @@ -429,7 +429,7 @@ void Loot::AddItem(LootStoreItem const& item) // non-conditional one-player only items are counted here, // free for all items are counted in FillFFALoot(), // non-ffa conditionals are counted in FillNonQuestNonFFAConditionalLoot() - if (!item.needs_quest && item.conditions.empty() && !(proto->Flags & ITEM_PROTO_FLAG_PARTY_LOOT)) + if (!item.needs_quest && item.conditions.empty() && !(proto->Flags & ITEM_PROTO_FLAG_MULTI_DROP)) ++unlootedCount; } } @@ -1640,7 +1640,7 @@ void LoadLootTemplates_Item() // remove real entries and check existence loot ItemTemplateContainer const* its = sObjectMgr->GetItemTemplateStore(); for (ItemTemplateContainer::const_iterator itr = its->begin(); itr != its->end(); ++itr) - if (lootIdSet.find(itr->second.ItemId) != lootIdSet.end() && itr->second.Flags & ITEM_PROTO_FLAG_OPENABLE) + if (lootIdSet.find(itr->second.ItemId) != lootIdSet.end() && itr->second.Flags & ITEM_PROTO_FLAG_HAS_LOOT) lootIdSet.erase(itr->second.ItemId); // output error for any still listed (not referenced from appropriate table) ids diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp index 6f7dae1d4f2..d2059886f40 100644 --- a/src/server/game/Movement/MotionMaster.cpp +++ b/src/server/game/Movement/MotionMaster.cpp @@ -479,11 +479,12 @@ void MotionMaster::MoveFall(uint32 id /*=0*/) if (std::fabs(_owner->GetPositionZ() - tz) < 0.1f) return; + _owner->AddUnitMovementFlag(MOVEMENTFLAG_FALLING); + _owner->m_movementInfo.SetFallTime(0); + + // don't run spline movement for players if (_owner->GetTypeId() == TYPEID_PLAYER) - { - _owner->AddUnitMovementFlag(MOVEMENTFLAG_FALLING); - _owner->m_movementInfo.SetFallTime(0); - } + return; Movement::MoveSplineInit init(_owner); init.MoveTo(_owner->GetPositionX(), _owner->GetPositionY(), tz, false); diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 9b23caef9ab..77757606aad 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -2535,10 +2535,9 @@ void AuraEffect::HandleAuraAllowFlight(AuraApplication const* aurApp, uint8 mode return; } - target->SetCanFly(apply); - - if (!apply && target->GetTypeId() == TYPEID_UNIT && !target->IsLevitating()) - target->GetMotionMaster()->MoveFall(); + if (target->SetCanFly(apply)) + if (!apply && !target->IsLevitating()) + target->GetMotionMaster()->MoveFall(); } void AuraEffect::HandleAuraWaterWalk(AuraApplication const* aurApp, uint8 mode, bool apply) const @@ -2928,10 +2927,9 @@ void AuraEffect::HandleAuraModIncreaseFlightSpeed(AuraApplication const* aurApp, // do not remove unit flag if there are more than this auraEffect of that kind on unit on unit if (mode & AURA_EFFECT_HANDLE_SEND_FOR_CLIENT_MASK && (apply || (!target->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED) && !target->HasAuraType(SPELL_AURA_FLY)))) { - target->SetCanFly(apply); - - if (!apply && target->GetTypeId() == TYPEID_UNIT && !target->IsLevitating()) - target->GetMotionMaster()->MoveFall(); + if (target->SetCanFly(apply)) + if (!apply && !target->IsLevitating()) + target->GetMotionMaster()->MoveFall(); } //! Someone should clean up these hacks and remove it from this function. It doesn't even belong here. diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp index 9b487f7b5f9..8cff67d9f28 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp @@ -44,16 +44,20 @@ enum Texts enum Spells { - SPELL_MAGIC_REFLECTION = 20619, - SPELL_DAMAGE_REFLECTION = 21075, + SPELL_SUMMON_RAGNAROS = 19774, SPELL_BLAST_WAVE = 20229, - SPELL_AEGIS_OF_RAGNAROS = 20620, SPELL_TELEPORT = 20618, - SPELL_SUMMON_RAGNAROS = 19774, + SPELL_MAGIC_REFLECTION = 20619, + SPELL_AEGIS_OF_RAGNAROS = 20620, + SPELL_DAMAGE_REFLECTION = 21075 }; -#define GOSSIP_HELLO 4995 -#define GOSSIP_SELECT "Tell me more." +enum Extras +{ + OPTION_ID_YOU_CHALLENGED_US = 0, + FACTION_FRIENDLY = 35, + MENU_OPTION_YOU_CHALLENGED_US = 4108 +}; enum Events { @@ -64,7 +68,7 @@ enum Events EVENT_OUTRO_1 = 5, EVENT_OUTRO_2 = 6, - EVENT_OUTRO_3 = 7, + EVENT_OUTRO_3 = 7 }; class boss_majordomo : public CreatureScript @@ -106,7 +110,7 @@ class boss_majordomo : public CreatureScript if (!me->FindNearestCreature(NPC_FLAMEWAKER_HEALER, 100.0f) && !me->FindNearestCreature(NPC_FLAMEWAKER_ELITE, 100.0f)) { instance->UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, me->GetEntry(), me); - me->setFaction(35); + me->setFaction(FACTION_FRIENDLY); EnterEvadeMode(); Talk(SAY_DEFEAT); _JustDied(); @@ -184,25 +188,20 @@ class boss_majordomo : public CreatureScript } else if (action == ACTION_START_RAGNAROS_ALT) { - me->setFaction(35); + me->setFaction(FACTION_FRIENDLY); me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); } } - }; - bool OnGossipHello(Player* player, Creature* creature) override - { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); - player->SEND_GOSSIP_MENU(GOSSIP_HELLO, creature->GetGUID()); - return true; - } - - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/) override - { - player->CLOSE_GOSSIP_MENU(); - creature->AI()->DoAction(ACTION_START_RAGNAROS); - return true; - } + void sGossipSelect(Player* player, uint32 menuId, uint32 gossipListId) override + { + if (menuId == MENU_OPTION_YOU_CHALLENGED_US && gossipListId == OPTION_ID_YOU_CHALLENGED_US) + { + player->CLOSE_GOSSIP_MENU(); + DoAction(ACTION_START_RAGNAROS); + } + } + }; CreatureAI* GetAI(Creature* creature) const override { diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp index 3f236c060d7..2e4ac11d3fa 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp @@ -797,46 +797,43 @@ enum RedRidingHood SAY_WOLF_AGGRO = 0, SAY_WOLF_SLAY = 1, SAY_WOLF_HOOD = 2, + OPTION_WHAT_PHAT_LEWTS_YOU_HAVE = 7443, SOUND_WOLF_DEATH = 9275, SPELL_LITTLE_RED_RIDING_HOOD = 30768, SPELL_TERRIFYING_HOWL = 30752, SPELL_WIDE_SWIPE = 30761, - CREATURE_BIG_BAD_WOLF = 17521, + CREATURE_BIG_BAD_WOLF = 17521 }; - -#define GOSSIP_GRANDMA "What phat lewtz you have grandmother?" - - - class npc_grandmother : public CreatureScript { -public: - npc_grandmother() : CreatureScript("npc_grandmother") { } + public: + npc_grandmother() : CreatureScript("npc_grandmother") { } - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override - { - player->PlayerTalkClass->ClearMenus(); - if (action == GOSSIP_ACTION_INFO_DEF) + struct npc_grandmotherAI : public ScriptedAI { - if (Creature* pBigBadWolf = creature->SummonCreature(CREATURE_BIG_BAD_WOLF, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, HOUR*2*IN_MILLISECONDS)) - pBigBadWolf->AI()->AttackStart(player); + npc_grandmotherAI(Creature* creature) : ScriptedAI(creature) { } - creature->DespawnOrUnsummon(); - } + void sGossipSelect(Player* player, uint32 menuId, uint32 gossipListId) override + { + if (menuId == OPTION_WHAT_PHAT_LEWTS_YOU_HAVE && gossipListId == 0) + { + player->CLOSE_GOSSIP_MENU(); - return true; - } + if (Creature* pBigBadWolf = me->SummonCreature(CREATURE_BIG_BAD_WOLF, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation(), TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, HOUR*2*IN_MILLISECONDS)) + pBigBadWolf->AI()->AttackStart(player); - bool OnGossipHello(Player* player, Creature* creature) override - { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_GRANDMA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - player->SEND_GOSSIP_MENU(8990, creature->GetGUID()); + me->DespawnOrUnsummon(); + } + } + }; - return true; - } + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_grandmotherAI(creature); + } }; class boss_bigbadwolf : public CreatureScript diff --git a/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp b/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp index b794a653791..adcb4f9fc9a 100644 --- a/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp +++ b/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp @@ -179,7 +179,6 @@ void AddSC_eastern_plaguelands(); void AddSC_ghostlands(); void AddSC_hinterlands(); void AddSC_isle_of_queldanas(); -void AddSC_loch_modan(); void AddSC_redridge_mountains(); void AddSC_silverpine_forest(); void AddSC_stormwind_city(); @@ -357,7 +356,6 @@ void AddEasternKingdomsScripts() AddSC_ghostlands(); AddSC_hinterlands(); AddSC_isle_of_queldanas(); - AddSC_loch_modan(); AddSC_redridge_mountains(); AddSC_silverpine_forest(); AddSC_stormwind_city(); diff --git a/src/server/scripts/EasternKingdoms/zone_loch_modan.cpp b/src/server/scripts/EasternKingdoms/zone_loch_modan.cpp deleted file mode 100644 index 151f8270c47..00000000000 --- a/src/server/scripts/EasternKingdoms/zone_loch_modan.cpp +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -/* ScriptData -SDName: Loch_Modan -SD%Complete: 100 -SDComment: Quest support: 3181 -SDCategory: Loch Modan -EndScriptData */ - -/* ContentData -npc_mountaineer_pebblebitty -EndContentData */ - -#include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedGossip.h" -#include "Player.h" - -/*###### -## npc_mountaineer_pebblebitty -######*/ - -#define GOSSIP_MP "Open the gate please, i need to get to Searing Gorge" - -#define GOSSIP_MP1 "But i need to get there, now open the gate!" -#define GOSSIP_MP2 "Ok, so what is this other way?" -#define GOSSIP_MP3 "Doesn't matter, i'm invulnerable." -#define GOSSIP_MP4 "Yes..." -#define GOSSIP_MP5 "Ok, i'll try to remember that." -#define GOSSIP_MP6 "A key? Ok!" - -class npc_mountaineer_pebblebitty : public CreatureScript -{ -public: - npc_mountaineer_pebblebitty() : CreatureScript("npc_mountaineer_pebblebitty") { } - - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override - { - player->PlayerTalkClass->ClearMenus(); - switch (action) - { - case GOSSIP_ACTION_INFO_DEF+1: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_MP1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - player->SEND_GOSSIP_MENU(1833, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+2: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_MP2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); - player->SEND_GOSSIP_MENU(1834, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+3: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_MP3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); - player->SEND_GOSSIP_MENU(1835, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+4: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_MP4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5); - player->SEND_GOSSIP_MENU(1836, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+5: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_MP5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6); - player->SEND_GOSSIP_MENU(1837, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+6: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_MP6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7); - player->SEND_GOSSIP_MENU(1838, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+7: - player->CLOSE_GOSSIP_MENU(); - break; - } - return true; - } - - bool OnGossipHello(Player* player, Creature* creature) override - { - if (creature->IsQuestGiver()) - player->PrepareQuestMenu(creature->GetGUID()); - - if (!player->GetQuestRewardStatus(3181) == 1) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_MP, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); - - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - - return true; - } -}; - -void AddSC_loch_modan() -{ - new npc_mountaineer_pebblebitty(); -} diff --git a/src/server/scripts/Kalimdor/zone_feralas.cpp b/src/server/scripts/Kalimdor/zone_feralas.cpp index 3e67a95b503..f366c3e2c19 100644 --- a/src/server/scripts/Kalimdor/zone_feralas.cpp +++ b/src/server/scripts/Kalimdor/zone_feralas.cpp @@ -19,10 +19,15 @@ /* ScriptData SDName: Feralas SD%Complete: 100 -SDComment: Quest support: 2767, Special vendor Gregan Brewspewer +SDComment: Quest support: 2767, 2987 SDCategory: Feralas EndScriptData */ +/* ContentData +npc_oox22fe +spell_gordunni_trap +EndContentData */ + #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "ScriptedEscortAI.h" @@ -32,44 +37,6 @@ EndScriptData */ #include "WorldSession.h" /*###### -## npc_gregan_brewspewer -######*/ - -#define GOSSIP_HELLO "Buy somethin', will ya?" - -class npc_gregan_brewspewer : public CreatureScript -{ -public: - npc_gregan_brewspewer() : CreatureScript("npc_gregan_brewspewer") { } - - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override - { - player->PlayerTalkClass->ClearMenus(); - if (action == GOSSIP_ACTION_INFO_DEF+1) - { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE); - player->SEND_GOSSIP_MENU(2434, creature->GetGUID()); - } - if (action == GOSSIP_ACTION_TRADE) - player->GetSession()->SendListInventory(creature->GetGUID()); - return true; - } - - bool OnGossipHello(Player* player, Creature* creature) override - { - if (creature->IsQuestGiver()) - player->PrepareQuestMenu(creature->GetGUID()); - - if (creature->IsVendor() && player->GetQuestStatus(3909) == QUEST_STATUS_INCOMPLETE) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HELLO, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); - - player->SEND_GOSSIP_MENU(2433, creature->GetGUID()); - return true; - } - -}; - -/*###### ## npc_oox22fe ######*/ @@ -183,6 +150,10 @@ public: }; +/*###### +## spell_gordunni_trap +######*/ + enum GordunniTrap { GO_GORDUNNI_DIRT_MOUND = 144064, @@ -225,7 +196,6 @@ class spell_gordunni_trap : public SpellScriptLoader void AddSC_feralas() { - new npc_gregan_brewspewer(); new npc_oox22fe(); new spell_gordunni_trap(); } diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index 159faa38c62..da753568ee0 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -36,7 +36,6 @@ npc_doctor 100% Gustaf Vanhowzen and Gregory Victor, quest 6622 npc_sayge 100% Darkmoon event fortune teller, buff player based on answers given npc_snake_trap_serpents 80% AI for snakes that summoned by Snake Trap npc_shadowfiend 100% restore 5% of owner's mana when shadowfiend die from damage -npc_locksmith 75% list of keys needs to be confirmed npc_firework 100% NPC's summoned by rockets and rocket clusters, for making them cast visual npc_train_wrecker 100% Wind-Up Train Wrecker that kills train set EndContentData */ @@ -1188,36 +1187,49 @@ public: enum Sayge { - SPELL_DMG = 23768, // dmg - SPELL_RES = 23769, // res - SPELL_ARM = 23767, // arm - SPELL_SPI = 23738, // spi - SPELL_INT = 23766, // int - SPELL_STM = 23737, // stm - SPELL_STR = 23735, // str - SPELL_AGI = 23736, // agi - SPELL_FORTUNE = 23765 // faire fortune + GOSSIP_MENU_OPTION_ID_ANSWER_1 = 0, + GOSSIP_MENU_OPTION_ID_ANSWER_2 = 1, + GOSSIP_MENU_OPTION_ID_ANSWER_3 = 2, + GOSSIP_MENU_OPTION_ID_ANSWER_4 = 3, + GOSSIP_I_AM_READY_TO_DISCOVER = 6186, + GOSSIP_MENU_OPTION_SAYGE1 = 6185, + GOSSIP_MENU_OPTION_SAYGE2 = 6185, + GOSSIP_MENU_OPTION_SAYGE3 = 6185, + GOSSIP_MENU_OPTION_SAYGE4 = 6185, + GOSSIP_MENU_OPTION_SAYGE5 = 6187, + GOSSIP_MENU_OPTION_SAYGE6 = 6187, + GOSSIP_MENU_OPTION_SAYGE7 = 6187, + GOSSIP_MENU_OPTION_SAYGE8 = 6208, + GOSSIP_MENU_OPTION_SAYGE9 = 6208, + GOSSIP_MENU_OPTION_SAYGE10 = 6208, + GOSSIP_MENU_OPTION_SAYGE11 = 6209, + GOSSIP_MENU_OPTION_SAYGE12 = 6209, + GOSSIP_MENU_OPTION_SAYGE13 = 6209, + GOSSIP_MENU_OPTION_SAYGE14 = 6210, + GOSSIP_MENU_OPTION_SAYGE15 = 6210, + GOSSIP_MENU_OPTION_SAYGE16 = 6210, + GOSSIP_MENU_OPTION_SAYGE17 = 6211, + GOSSIP_MENU_I_HAVE_LONG_KNOWN = 7339, + GOSSIP_MENU_YOU_HAVE_BEEN_TASKED = 7340, + GOSSIP_MENU_SWORN_EXECUTIONER = 7341, + GOSSIP_MENU_DIPLOMATIC_MISSION = 7361, + GOSSIP_MENU_YOUR_BROTHER_SEEKS = 7362, + GOSSIP_MENU_A_TERRIBLE_BEAST = 7363, + GOSSIP_MENU_YOUR_FORTUNE_IS_CAST = 7364, + GOSSIP_MENU_HERE_IS_YOUR_FORTUNE = 7365, + GOSSIP_MENU_CANT_GIVE_YOU_YOUR = 7393, + + SPELL_STRENGTH = 23735, // +10% Strength + SPELL_AGILITY = 23736, // +10% Agility + SPELL_STAMINA = 23737, // +10% Stamina + SPELL_SPIRIT = 23738, // +10% Spirit + SPELL_INTELLECT = 23766, // +10% Intellect + SPELL_ARMOR = 23767, // +10% Armor + SPELL_DAMAGE = 23768, // +10% Damage + SPELL_RESISTANCE = 23769, // +25 Magic Resistance (All) + SPELL_FORTUNE = 23765 // Darkmoon Faire Fortune }; -#define GOSSIP_HELLO_SAYGE "Yes" -#define GOSSIP_SENDACTION_SAYGE1 "Slay the Man" -#define GOSSIP_SENDACTION_SAYGE2 "Turn him over to liege" -#define GOSSIP_SENDACTION_SAYGE3 "Confiscate the corn" -#define GOSSIP_SENDACTION_SAYGE4 "Let him go and have the corn" -#define GOSSIP_SENDACTION_SAYGE5 "Execute your friend painfully" -#define GOSSIP_SENDACTION_SAYGE6 "Execute your friend painlessly" -#define GOSSIP_SENDACTION_SAYGE7 "Let your friend go" -#define GOSSIP_SENDACTION_SAYGE8 "Confront the diplomat" -#define GOSSIP_SENDACTION_SAYGE9 "Show not so quiet defiance" -#define GOSSIP_SENDACTION_SAYGE10 "Remain quiet" -#define GOSSIP_SENDACTION_SAYGE11 "Speak against your brother openly" -#define GOSSIP_SENDACTION_SAYGE12 "Help your brother in" -#define GOSSIP_SENDACTION_SAYGE13 "Keep your brother out without letting him know" -#define GOSSIP_SENDACTION_SAYGE14 "Take credit, keep gold" -#define GOSSIP_SENDACTION_SAYGE15 "Take credit, share the gold" -#define GOSSIP_SENDACTION_SAYGE16 "Let the knight take credit" -#define GOSSIP_SENDACTION_SAYGE17 "Thanks" - class npc_sayge : public CreatureScript { public: @@ -1228,19 +1240,19 @@ public: if (creature->IsQuestGiver()) player->PrepareQuestMenu(creature->GetGUID()); - if (player->GetSpellHistory()->HasCooldown(SPELL_INT) || - player->GetSpellHistory()->HasCooldown(SPELL_ARM) || - player->GetSpellHistory()->HasCooldown(SPELL_DMG) || - player->GetSpellHistory()->HasCooldown(SPELL_RES) || - player->GetSpellHistory()->HasCooldown(SPELL_STR) || - player->GetSpellHistory()->HasCooldown(SPELL_AGI) || - player->GetSpellHistory()->HasCooldown(SPELL_STM) || - player->GetSpellHistory()->HasCooldown(SPELL_SPI)) - player->SEND_GOSSIP_MENU(7393, creature->GetGUID()); + if (player->GetSpellHistory()->HasCooldown(SPELL_STRENGTH) || + player->GetSpellHistory()->HasCooldown(SPELL_AGILITY) || + player->GetSpellHistory()->HasCooldown(SPELL_STAMINA) || + player->GetSpellHistory()->HasCooldown(SPELL_SPIRIT) || + player->GetSpellHistory()->HasCooldown(SPELL_INTELLECT) || + player->GetSpellHistory()->HasCooldown(SPELL_ARMOR) || + player->GetSpellHistory()->HasCooldown(SPELL_DAMAGE) || + player->GetSpellHistory()->HasCooldown(SPELL_RESISTANCE)) + player->SEND_GOSSIP_MENU(GOSSIP_MENU_CANT_GIVE_YOU_YOUR, creature->GetGUID()); else { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HELLO_SAYGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - player->SEND_GOSSIP_MENU(7339, creature->GetGUID()); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_I_AM_READY_TO_DISCOVER, GOSSIP_MENU_OPTION_ID_ANSWER_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + player->SEND_GOSSIP_MENU(GOSSIP_MENU_I_HAVE_LONG_KNOWN, creature->GetGUID()); } return true; @@ -1251,43 +1263,43 @@ public: switch (action) { case GOSSIP_ACTION_INFO_DEF + 1: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5); - player->SEND_GOSSIP_MENU(7340, creature->GetGUID()); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE1, GOSSIP_MENU_OPTION_ID_ANSWER_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE2, GOSSIP_MENU_OPTION_ID_ANSWER_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE3, GOSSIP_MENU_OPTION_ID_ANSWER_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE4, GOSSIP_MENU_OPTION_ID_ANSWER_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5); + player->SEND_GOSSIP_MENU(GOSSIP_MENU_YOU_HAVE_BEEN_TASKED, creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 2: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE5, GOSSIP_SENDER_MAIN + 1, GOSSIP_ACTION_INFO_DEF); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE6, GOSSIP_SENDER_MAIN + 2, GOSSIP_ACTION_INFO_DEF); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE7, GOSSIP_SENDER_MAIN + 3, GOSSIP_ACTION_INFO_DEF); - player->SEND_GOSSIP_MENU(7341, creature->GetGUID()); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE5, GOSSIP_MENU_OPTION_ID_ANSWER_1, GOSSIP_SENDER_MAIN + 1, GOSSIP_ACTION_INFO_DEF); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE6, GOSSIP_MENU_OPTION_ID_ANSWER_2, GOSSIP_SENDER_MAIN + 2, GOSSIP_ACTION_INFO_DEF); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE7, GOSSIP_MENU_OPTION_ID_ANSWER_3, GOSSIP_SENDER_MAIN + 3, GOSSIP_ACTION_INFO_DEF); + player->SEND_GOSSIP_MENU(GOSSIP_MENU_SWORN_EXECUTIONER, creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 3: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE8, GOSSIP_SENDER_MAIN + 4, GOSSIP_ACTION_INFO_DEF); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE9, GOSSIP_SENDER_MAIN + 5, GOSSIP_ACTION_INFO_DEF); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE10, GOSSIP_SENDER_MAIN + 2, GOSSIP_ACTION_INFO_DEF); - player->SEND_GOSSIP_MENU(7361, creature->GetGUID()); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE8, GOSSIP_MENU_OPTION_ID_ANSWER_1, GOSSIP_SENDER_MAIN + 4, GOSSIP_ACTION_INFO_DEF); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE9, GOSSIP_MENU_OPTION_ID_ANSWER_2, GOSSIP_SENDER_MAIN + 5, GOSSIP_ACTION_INFO_DEF); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE10,GOSSIP_MENU_OPTION_ID_ANSWER_3, GOSSIP_SENDER_MAIN + 2, GOSSIP_ACTION_INFO_DEF); + player->SEND_GOSSIP_MENU(GOSSIP_MENU_DIPLOMATIC_MISSION, creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 4: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE11, GOSSIP_SENDER_MAIN + 6, GOSSIP_ACTION_INFO_DEF); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE12, GOSSIP_SENDER_MAIN + 7, GOSSIP_ACTION_INFO_DEF); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE13, GOSSIP_SENDER_MAIN + 8, GOSSIP_ACTION_INFO_DEF); - player->SEND_GOSSIP_MENU(7362, creature->GetGUID()); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE11, GOSSIP_MENU_OPTION_ID_ANSWER_1, GOSSIP_SENDER_MAIN + 6, GOSSIP_ACTION_INFO_DEF); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE12, GOSSIP_MENU_OPTION_ID_ANSWER_2, GOSSIP_SENDER_MAIN + 7, GOSSIP_ACTION_INFO_DEF); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE13, GOSSIP_MENU_OPTION_ID_ANSWER_3, GOSSIP_SENDER_MAIN + 8, GOSSIP_ACTION_INFO_DEF); + player->SEND_GOSSIP_MENU(GOSSIP_MENU_YOUR_BROTHER_SEEKS, creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 5: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE14, GOSSIP_SENDER_MAIN + 5, GOSSIP_ACTION_INFO_DEF); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE15, GOSSIP_SENDER_MAIN + 4, GOSSIP_ACTION_INFO_DEF); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE16, GOSSIP_SENDER_MAIN + 3, GOSSIP_ACTION_INFO_DEF); - player->SEND_GOSSIP_MENU(7363, creature->GetGUID()); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE14, GOSSIP_MENU_OPTION_ID_ANSWER_1, GOSSIP_SENDER_MAIN + 5, GOSSIP_ACTION_INFO_DEF); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE15, GOSSIP_MENU_OPTION_ID_ANSWER_2, GOSSIP_SENDER_MAIN + 4, GOSSIP_ACTION_INFO_DEF); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE16, GOSSIP_MENU_OPTION_ID_ANSWER_3, GOSSIP_SENDER_MAIN + 3, GOSSIP_ACTION_INFO_DEF); + player->SEND_GOSSIP_MENU(GOSSIP_MENU_A_TERRIBLE_BEAST, creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE17, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6); - player->SEND_GOSSIP_MENU(7364, creature->GetGUID()); + player->ADD_GOSSIP_ITEM_DB(GOSSIP_MENU_OPTION_SAYGE17, GOSSIP_MENU_OPTION_ID_ANSWER_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6); + player->SEND_GOSSIP_MENU(GOSSIP_MENU_YOUR_FORTUNE_IS_CAST, creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 6: creature->CastSpell(player, SPELL_FORTUNE, false); - player->SEND_GOSSIP_MENU(7365, creature->GetGUID()); + player->SEND_GOSSIP_MENU(GOSSIP_MENU_HERE_IS_YOUR_FORTUNE, creature->GetGUID()); break; } } @@ -1302,28 +1314,28 @@ public: SendAction(player, creature, action); break; case GOSSIP_SENDER_MAIN + 1: - spellId = SPELL_DMG; + spellId = SPELL_DAMAGE; break; case GOSSIP_SENDER_MAIN + 2: - spellId = SPELL_RES; + spellId = SPELL_RESISTANCE; break; case GOSSIP_SENDER_MAIN + 3: - spellId = SPELL_ARM; + spellId = SPELL_ARMOR; break; case GOSSIP_SENDER_MAIN + 4: - spellId = SPELL_SPI; + spellId = SPELL_SPIRIT; break; case GOSSIP_SENDER_MAIN + 5: - spellId = SPELL_INT; + spellId = SPELL_INTELLECT; break; case GOSSIP_SENDER_MAIN + 6: - spellId = SPELL_STM; + spellId = SPELL_STAMINA; break; case GOSSIP_SENDER_MAIN + 7: - spellId = SPELL_STR; + spellId = SPELL_STRENGTH; break; case GOSSIP_SENDER_MAIN + 8: - spellId = SPELL_AGI; + spellId = SPELL_AGILITY; break; } @@ -1743,149 +1755,6 @@ public: }; /*###### -## npc_locksmith -######*/ - -enum LockSmith -{ - QUEST_HOW_TO_BRAKE_IN_TO_THE_ARCATRAZ = 10704, - QUEST_DARK_IRON_LEGACY = 3802, - QUEST_THE_KEY_TO_SCHOLOMANCE_A = 5505, - QUEST_THE_KEY_TO_SCHOLOMANCE_H = 5511, - QUEST_HOTTER_THAN_HELL_A = 10758, - QUEST_HOTTER_THAN_HELL_H = 10764, - QUEST_RETURN_TO_KHAGDAR = 9837, - QUEST_CONTAINMENT = 13159, - QUEST_ETERNAL_VIGILANCE = 11011, - QUEST_KEY_TO_THE_FOCUSING_IRIS = 13372, - QUEST_HC_KEY_TO_THE_FOCUSING_IRIS = 13375, - - ITEM_ARCATRAZ_KEY = 31084, - ITEM_SHADOWFORGE_KEY = 11000, - ITEM_SKELETON_KEY = 13704, - ITEM_SHATTERED_HALLS_KEY = 28395, - ITEM_THE_MASTERS_KEY = 24490, - ITEM_VIOLET_HOLD_KEY = 42482, - ITEM_ESSENCE_INFUSED_MOONSTONE = 32449, - ITEM_KEY_TO_THE_FOCUSING_IRIS = 44582, - ITEM_HC_KEY_TO_THE_FOCUSING_IRIS = 44581, - - SPELL_ARCATRAZ_KEY = 54881, - SPELL_SHADOWFORGE_KEY = 54882, - SPELL_SKELETON_KEY = 54883, - SPELL_SHATTERED_HALLS_KEY = 54884, - SPELL_THE_MASTERS_KEY = 54885, - SPELL_VIOLET_HOLD_KEY = 67253, - SPELL_ESSENCE_INFUSED_MOONSTONE = 40173, -}; - -#define GOSSIP_LOST_ARCATRAZ_KEY "I've lost my key to the Arcatraz." -#define GOSSIP_LOST_SHADOWFORGE_KEY "I've lost my key to the Blackrock Depths." -#define GOSSIP_LOST_SKELETON_KEY "I've lost my key to the Scholomance." -#define GOSSIP_LOST_SHATTERED_HALLS_KEY "I've lost my key to the Shattered Halls." -#define GOSSIP_LOST_THE_MASTERS_KEY "I've lost my key to the Karazhan." -#define GOSSIP_LOST_VIOLET_HOLD_KEY "I've lost my key to the Violet Hold." -#define GOSSIP_LOST_ESSENCE_INFUSED_MOONSTONE "I've lost my Essence-Infused Moonstone." -#define GOSSIP_LOST_KEY_TO_THE_FOCUSING_IRIS "I've lost my Key to the Focusing Iris." -#define GOSSIP_LOST_HC_KEY_TO_THE_FOCUSING_IRIS "I've lost my Heroic Key to the Focusing Iris." - -class npc_locksmith : public CreatureScript -{ -public: - npc_locksmith() : CreatureScript("npc_locksmith") { } - - bool OnGossipHello(Player* player, Creature* creature) override - { - // Arcatraz Key - if (player->GetQuestRewardStatus(QUEST_HOW_TO_BRAKE_IN_TO_THE_ARCATRAZ) && !player->HasItemCount(ITEM_ARCATRAZ_KEY, 1, true)) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_ARCATRAZ_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - - // Shadowforge Key - if (player->GetQuestRewardStatus(QUEST_DARK_IRON_LEGACY) && !player->HasItemCount(ITEM_SHADOWFORGE_KEY, 1, true)) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_SHADOWFORGE_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - - // Skeleton Key - if ((player->GetQuestRewardStatus(QUEST_THE_KEY_TO_SCHOLOMANCE_A) || player->GetQuestRewardStatus(QUEST_THE_KEY_TO_SCHOLOMANCE_H)) && - !player->HasItemCount(ITEM_SKELETON_KEY, 1, true)) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_SKELETON_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); - - // Shatered Halls Key - if ((player->GetQuestRewardStatus(QUEST_HOTTER_THAN_HELL_A) || player->GetQuestRewardStatus(QUEST_HOTTER_THAN_HELL_H)) && - !player->HasItemCount(ITEM_SHATTERED_HALLS_KEY, 1, true)) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_SHATTERED_HALLS_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); - - // Master's Key - if (player->GetQuestRewardStatus(QUEST_RETURN_TO_KHAGDAR) && !player->HasItemCount(ITEM_THE_MASTERS_KEY, 1, true)) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_THE_MASTERS_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5); - - // Violet Hold Key - if (player->GetQuestRewardStatus(QUEST_CONTAINMENT) && !player->HasItemCount(ITEM_VIOLET_HOLD_KEY, 1, true)) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_VIOLET_HOLD_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6); - - // Essence-Infused Moonstone - if (player->GetQuestRewardStatus(QUEST_ETERNAL_VIGILANCE) && !player->HasItemCount(ITEM_ESSENCE_INFUSED_MOONSTONE, 1, true)) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_ESSENCE_INFUSED_MOONSTONE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7); - - // Key to the Focusing Iris - if (player->GetQuestRewardStatus(QUEST_KEY_TO_THE_FOCUSING_IRIS) && !player->HasItemCount(ITEM_KEY_TO_THE_FOCUSING_IRIS, 1, true)) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_KEY_TO_THE_FOCUSING_IRIS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8); - - // Heroic Key to the Focusing Iris - if (player->GetQuestRewardStatus(QUEST_HC_KEY_TO_THE_FOCUSING_IRIS) && !player->HasItemCount(ITEM_HC_KEY_TO_THE_FOCUSING_IRIS, 1, true)) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_HC_KEY_TO_THE_FOCUSING_IRIS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9); - - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - - return true; - } - - bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) override - { - player->PlayerTalkClass->ClearMenus(); - switch (action) - { - case GOSSIP_ACTION_INFO_DEF + 1: - player->CLOSE_GOSSIP_MENU(); - player->CastSpell(player, SPELL_ARCATRAZ_KEY, false); - break; - case GOSSIP_ACTION_INFO_DEF + 2: - player->CLOSE_GOSSIP_MENU(); - player->CastSpell(player, SPELL_SHADOWFORGE_KEY, false); - break; - case GOSSIP_ACTION_INFO_DEF + 3: - player->CLOSE_GOSSIP_MENU(); - player->CastSpell(player, SPELL_SKELETON_KEY, false); - break; - case GOSSIP_ACTION_INFO_DEF + 4: - player->CLOSE_GOSSIP_MENU(); - player->CastSpell(player, SPELL_SHATTERED_HALLS_KEY, false); - break; - case GOSSIP_ACTION_INFO_DEF + 5: - player->CLOSE_GOSSIP_MENU(); - player->CastSpell(player, SPELL_THE_MASTERS_KEY, false); - break; - case GOSSIP_ACTION_INFO_DEF + 6: - player->CLOSE_GOSSIP_MENU(); - player->CastSpell(player, SPELL_VIOLET_HOLD_KEY, false); - break; - case GOSSIP_ACTION_INFO_DEF + 7: - player->CLOSE_GOSSIP_MENU(); - player->CastSpell(player, SPELL_ESSENCE_INFUSED_MOONSTONE, false); - break; - case GOSSIP_ACTION_INFO_DEF + 8: - player->CLOSE_GOSSIP_MENU(); - player->AddItem(ITEM_KEY_TO_THE_FOCUSING_IRIS, 1); - break; - case GOSSIP_ACTION_INFO_DEF + 9: - player->CLOSE_GOSSIP_MENU(); - player->AddItem(ITEM_HC_KEY_TO_THE_FOCUSING_IRIS, 1); - break; - } - return true; - } -}; - -/*###### ## npc_experience ######*/ @@ -2589,7 +2458,6 @@ void AddSC_npcs_special() new npc_training_dummy(); new npc_wormhole(); new npc_pet_trainer(); - new npc_locksmith(); new npc_experience(); new npc_firework(); new npc_spring_rabbit(); |
