diff --git a/data/sql/updates/db_world/2023_03_16_01.sql b/data/sql/updates/db_world/2023_03_16_01.sql new file mode 100644 index 000000000..681adf2a2 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_16_01.sql @@ -0,0 +1,564 @@ +-- DB update 2023_03_16_00 -> 2023_03_16_01 +/* Dark Iron Agent - GUID 30132 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30132; +DELETE FROM `creature_addon` WHERE `guid` = 30132; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30132, 301320); + +DELETE FROM `waypoint_data` WHERE `id` = 301320; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(301320, 1, -698.351, 559.918, -282.06, 6.01478, 0), +(301320, 2, -736.867, 569.914, -291.06, 4.36542, 0), +(301320, 3, -743.754, 581.403, -291.06, 2.05638, 0), +(301320, 4, -734.431, 619.357, -300.06, 1.31614, 0), +(301320, 5, -726.929, 649.513, -309.06, 1.34361, 0), +(301320, 6, -717.134, 687.832, -318.06, 1.26506, 0), +(301320, 7, -705.253, 694.829, -318.06, 0.471789, 0), +(301320, 8, -717.059, 687.506, -318.06, 4.36151, 0), +(301320, 9, -726.776, 650.171, -309.06, 4.389, 0), +(301320, 10, -734.225, 619.203, -300.06, 1.31416, 0), +(301320, 11, -743.649, 581.74, -291.06, 4.92503, 0), +(301320, 12, -736.919, 569.825, -291.06, 5.79487, 0); + +/* Mobile Alert System - GUID 30141 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30141; +DELETE FROM `creature_addon` WHERE `guid` = 30141; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30141, 301410); + +DELETE FROM `waypoint_data` WHERE `id` = 301410; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(301410, 1, -758.616, 389.631, -272.579, 1.40256, 0), +(301410, 2, -761.637, 372.061, -272.579, 4.54219, 0), +(301410, 3, -768.061, 323.265, -272.596, 4.58146, 0), +(301410, 4, -772.365, 295.195, -272.596, 1.37703, 0), +(301410, 5, -790.13, 282.946, -272.596, 3.7882, 0), +(301410, 6, -819.345, 286.603, -272.598, 6.16794, 0), +(301410, 7, -864.567, 292.906, -272.597, 6.12867, 0), +(301410, 8, -895.449, 297.227, -272.597, 2.26648, 0), +(301410, 9, -906.447, 310.256, -272.597, 5.90485, 0), +(301410, 10, -902.59, 343.969, -272.597, 4.61681, 0), +(301410, 11, -896.84, 389.165, -272.597, 1.42415, 0), +(301410, 12, -890.901, 423.192, -272.597, 0.456167, 0), +(301410, 13, -876.089, 431.872, -272.597, 6.08354, 0), +(301410, 14, -845.913, 427.768, -272.597, 2.98517, 0), +(301410, 15, -798.441, 421.119, -272.579, 3.01071, 0), +(301410, 16, -769.864, 417.263, -272.579, 3.07357, 0), +(301410, 17, -759.135, 400.802, -272.579, 4.76022, 0); + +/* Mobile Alert System - GUID 30144 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30144; +DELETE FROM `creature_addon` WHERE `guid` = 30144; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30144, 301440); + +DELETE FROM `waypoint_data` WHERE `id` = 301440; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(301440, 1, -772.734, 555.942, -291.118, 3.81156, 0), +(301440, 2, -797.767, 536.739, -295.577, 3.81156, 0), +(301440, 3, -819.414, 520.05, -301.901, 3.79782, 0), +(301440, 4, -830.148, 505.313, -303.937, 4.42418, 0), +(301440, 5, -828.69, 489.572, -303.937, 1.93055, 0), +(301440, 6, -814.887, 467.254, -308.104, 3.8116, 0), +(301440, 7, -820.513, 451.342, -308.104, 1.04307, 0), +(301440, 8, -864.515, 417.469, -316.155, 3.79396, 0), +(301440, 9, -869.029, 407.392, -316.437, 0.931181, 0), +(301440, 10, -861.123, 397.329, -316.427, 5.34115, 0), +(301440, 11, -868.891, 407.119, -316.437, 4.69518, 0), +(301440, 12, -864.446, 417.22, -316.179, 3.77824, 0), +(301440, 13, -820.258, 451.175, -308.104, 0.677901, 0), +(301440, 14, -814.775, 466.905, -308.104, 1.41029, 0), +(301440, 15, -828.675, 489.496, -303.937, 1.16682, 0), +(301440, 16, -829.898, 505.228, -303.937, 0.929236, 0), +(301440, 17, -819.117, 519.824, -301.871, 0.65042, 0); + +/* Peacekeeper Security Suit - GUID 30186 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30186; +DELETE FROM `creature_addon` WHERE `guid` = 30186; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30186, 301860); + +DELETE FROM `waypoint_data` WHERE `id` = 301860; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(301860, 1, -492.41, 575.988, -230.601, 5.57692, 0), +(301860, 2, -474.637, 560.585, -230.601, 5.56121, 0), +(301860, 3, -458.518, 528.807, -230.601, 2.2056, 0), +(301860, 4, -459.51, 487.275, -230.601, 4.68156, 0), +(301860, 5, -465.722, 465.272, -230.601, 4.05913, 0), +(301860, 6, -486.533, 438.766, -230.601, 0.840967, 0), +(301860, 7, -506.852, 422.549, -230.601, 0.62501, 0), +(301860, 8, -534.764, 409.005, -230.601, 0.570046, 0), +(301860, 9, -567.88, 413.814, -230.601, 5.96181, 0), +(301860, 10, -590.905, 420.801, -230.601, 2.54139, 0), +(301860, 11, -617.793, 440.393, -230.601, 2.10944, 0), +(301860, 12, -631.982, 460.05, -230.601, 5.20979, 0), +(301860, 13, -646.919, 496.166, -230.601, 1.42025, 0), +(301860, 14, -641.023, 531.507, -230.601, 1.09236, 0), +(301860, 15, -619.368, 570.172, -230.601, 0.546519, 0), +(301860, 16, -583.276, 591.49, -230.601, 0.202924, 0), +(301860, 17, -556.396, 597.001, -230.601, 6.10714, 0), +(301860, 18, -530.129, 592.646, -230.601, 4.57562, 0), +(301860, 19, -503.517, 584.473, -230.601, 5.61628, 0); + +/* Mechano-Frostwalker - GUID 30193 */ + +UPDATE `creature` SET `position_x` = -814.733, `position_y` = 174.268, `position_z` = -273.079, `orientation` = 1.09651 WHERE `guid` = 30193; + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30193; +DELETE FROM `creature_addon` WHERE `guid` = 30193; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30193, 301930); + +DELETE FROM `waypoint_data` WHERE `id` = 301930; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(301930, 1, -814.733, 174.268, -273.079, 100.0, 0), +(301930, 2, -814.873, 139.446, -268.718, 100.0, 0), +(301930, 3, -813.763, 103.338, -264.732, 100.0, 0), +(301930, 4, -804.045, 95.6667, -264.732, 100.0, 0), +(301930, 5, -773.876, 95.1513, -260.566, 100.0, 0), +(301930, 6, -762.487, 83.9004, -260.566, 100.0, 0), +(301930, 7, -773.876, 95.1513, -260.566, 100.0, 0), +(301930, 8, -804.045, 95.6667, -264.732, 100.0, 0), +(301930, 9, -813.763, 103.338, -264.732, 100.0, 0), +(301930, 10, -814.873, 139.446, -268.718, 100.0, 0), +(301930, 11, -814.733, 174.268, -273.079, 100.0, 0), +(301930, 12, -809.044, 185.352, -273.079, 100.0, 0); + +/* Leprous Machinesmith - GUID 30205 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30205; +DELETE FROM `creature_addon` WHERE `guid` = 30205; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30205, 302050); + +DELETE FROM `waypoint_data` WHERE `id` = 302050; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(302050, 1, -802.467, 189.663, -273.081, 0.674371, 0), +(302050, 2, -747.77, 231.514, -273.081, 0.595828, 0); + +/* Caverndeep Ambusher - GUID 30213 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30213; +DELETE FROM `creature_addon` WHERE `guid` = 30213; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30213, 302130); + +DELETE FROM `waypoint_data` WHERE `id` = 302130; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(302130, 1, -374.979, 71.9299, -154.732, 3.96914, 0), +(302130, 2, -366.61, 79.9331, -154.743, 1.3675, 0), +(302130, 3, -366.909, 134.274, -154.743, 4.72115, 0), +(302130, 4, -366.947, 79.8181, -154.743, 4.70151, 0); + +/* Caverndeep Ambusher - GUID 30214 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30214; +DELETE FROM `creature_addon` WHERE `guid` = 30214; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30214, 302140); + +DELETE FROM `waypoint_data` WHERE `id` = 302140; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(302140, 1, -529.971, 201.526, -155.239, 2.34138, 0), +(302140, 2, -542.939, 214.096, -156.042, 2.37083, 0), +(302140, 3, -564.822, 232.708, -159.428, 3.83167, 0), +(302140, 4, -586.961, 213.366, -165.678, 3.90823, 0), +(302140, 5, -621.054, 179.285, -178.199, 3.92394, 0), +(302140, 6, -586.676, 213.41, -165.678, 0.805912, 0), +(302140, 7, -564.663, 232.493, -159.428, 5.42798, 0), +(302140, 8, -542.745, 213.89, -155.992, 5.49867, 0); + +/* Caverndeep Ambusher - GUID 30215 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30215; +DELETE FROM `creature_addon` WHERE `guid` = 30215; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30215, 302150); + +DELETE FROM `waypoint_data` WHERE `id` = 302150; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(302150, 1, -624.345, 125.145, -183.882, 0.000859, 0), +(302150, 2, -636.031, 139.795, -183.877, 1.47938, 0), +(302150, 3, -636.692, 161.618, -184.509, 4.66221, 0), +(302150, 4, -635.967, 140.212, -183.877, 1.46368, 0), +(302150, 5, -624.247, 125.5, -183.882, 0.368043, 0), +(302150, 6, -606.756, 125.234, -187.662, 0.000872, 0); + +/* Caverndeep Ambusher - GUID 30217 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30217; +DELETE FROM `creature_addon` WHERE `guid` = 30217; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30217, 302170); + +DELETE FROM `waypoint_data` WHERE `id` = 302170; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(302170, 1, -482.355, 53.012, -156.967, 3.92591, 0), +(302170, 2, -467.895, 39.7155, -154.741, 5.50653, 0), +(302170, 3, -452.591, 38.5776, -154.743, 6.27229, 0), +(302170, 4, -467.011, 39.6066, -154.741, 2.90688, 0), +(302170, 5, -481.715, 53.2954, -156.965, 3.93181, 0), +(302170, 6, -504.289, 37.0398, -156.489, 0.419126, 0), +(302170, 7, -521.251, 23.2046, -156.485, 3.87881, 0); + +/* Mechanized Sentry - GUID 30239 */ + +UPDATE `creature` SET `position_x` = -432.378, `position_y` = 240.297, `position_z` = -211.538, `orientation` = 4.7055 WHERE `guid` = 30239; + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30239; +DELETE FROM `creature_addon` WHERE `guid` = 30239; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30239, 302390); + +DELETE FROM `waypoint_data` WHERE `id` = 302390; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(302390, 1, -432.378, 240.297, -211.538, 100.0, 0), +(302390, 2, -443.052, 265.788, -211.541, 100.0, 0), +(302390, 3, -469.447, 277.197, -211.54, 100.0, 0), +(302390, 4, -491.541, 277.134, -211.53, 100.0, 0), +(302390, 5, -516.2, 277.284, -211.539, 100.0, 0), +(302390, 6, -538.292, 286.529, -211.538, 100.0, 0), +(302390, 7, -547.458, 309.004, -216.948, 100.0, 0), +(302390, 8, -546.906, 330.915, -223.711, 100.0, 0), +(302390, 9, -546.482, 351.907, -231.019, 100.0, 0), +(302390, 10, -546.906, 330.915, -223.711, 100.0, 0), +(302390, 11, -547.458, 309.004, -216.948, 100.0, 0), +(302390, 12, -538.292, 286.529, -211.538, 100.0, 0), +(302390, 13, -516.2, 277.284, -211.539, 100.0, 0), +(302390, 14, -491.541, 277.134, -211.53, 100.0, 0), +(302390, 15, -469.447, 277.197, -211.54, 100.0, 0), +(302390, 16, -443.052, 265.788, -211.541, 100.0, 0), +(302390, 17, -432.383, 240.496, -211.538, 100.0, 0), +(302390, 18, -432.523, 220.204, -211.538, 100.0, 0); + +/* Mechanized Sentry - GUID 30245 */ + +UPDATE `creature` SET `position_x` = -427.681, `position_y` = 228.466, `position_z` = -211.543, `orientation` = 4.71898 WHERE `guid` = 30245; + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30245; +DELETE FROM `creature_addon` WHERE `guid` = 30245; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30245, 302450); + +DELETE FROM `waypoint_data` WHERE `id` = 302450; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(302450, 1, -428.941, 240.286, -211.544, 1.83461, 0), +(302450, 2, -440.727, 268.58, -211.544, 4.66792, 0), +(302450, 3, -470.311, 280.709, -211.544, 5.81657, 0), +(302450, 4, -516.12, 281.221, -211.544, 6.23088, 0), +(302450, 5, -534.256, 289.264, -211.544, 5.67916, 0), +(302450, 6, -543.399, 309.441, -216.936, 5.05284, 0), +(302450, 7, -542.733, 365.248, -231.507, 4.75439, 0), +(302450, 8, -543.37, 309.461, -216.935, 4.77403, 0), +(302450, 9, -534.104, 288.731, -211.544, 5.62815, 0), +(302450, 10, -515.837, 281.125, -211.546, 0.136236, 0), +(302450, 11, -469.957, 280.637, -211.545, 5.98942, 0), +(302450, 12, -440.513, 268.381, -211.544, 5.23152, 0), +(302450, 13, -428.555, 240.324, -211.543, 4.60712, 0), +(302450, 14, -428.707, 234.476, -211.544, 1.60102, 0); + +/* Caverndeep Reaver - GUID 30271 */ + +UPDATE `creature` SET `position_x` = -561.427, `position_y` = 76.2373, `position_z` = -203.034, `orientation` = 1.83548 WHERE `guid` = 30271; + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30271; +DELETE FROM `creature_addon` WHERE `guid` = 30271; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30271, 302710); + +DELETE FROM `waypoint_data` WHERE `id` = 302710; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(302710, 1, -561.427, 76.2373, -203.034, 100.0, 0), +(302710, 2, -582.791, 73.7128, -203.104, 100.0, 0), +(302710, 3, -582.274, 94.3503, -202.999, 100.0, 0), +(302710, 4, -573.71, 111.221, -201.717, 100.0, 0), +(302710, 5, -583.401, 134.578, -202.134, 100.0, 0), +(302710, 6, -573.048, 151.098, -202.146, 100.0, 0), +(302710, 7, -541.047, 139.806, -202.151, 100.0, 0), +(302710, 8, -538.994, 107.757, -204.531, 100.0, 0), +(302710, 9, -538.809, 73.1746, -201.544, 100.0, 0); + +/* Peacekeeper Security Suit - GUID 30278 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30278; +DELETE FROM `creature_addon` WHERE `guid` = 30278; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30278, 302780); + +DELETE FROM `waypoint_data` WHERE `id` = 302780; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(302780, 1, -516.359, 504.355, -273.069, 1.47905, 0), +(302780, 2, -527.894, 529.571, -273.069, 2.00133, 0), +(302780, 3, -565.904, 542.708, -273.071, 3.76454, 0), +(302780, 4, -579.622, 531.967, -273.071, 0.683833, 0), +(302780, 5, -580.526, 492.073, -273.069, 5.26666, 0), +(302780, 6, -558.895, 472.93, -273.069, 2.31356, 0), +(302780, 7, -530.527, 478.087, -273.069, 3.38366, 0); + +/* Peacekeeper Security Suit - GUID 30279 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30279; +DELETE FROM `creature_addon` WHERE `guid` = 30279; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30279, 302790); + +DELETE FROM `waypoint_data` WHERE `id` = 302790; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(302790, 1, -626.307, 523.558, -273.063, 2.87491, 0), +(302790, 2, -596.255, 511.76, -273.074, 2.86903, 0), +(302790, 3, -589.815, 474.899, -273.077, 3.77421, 0), +(302790, 4, -646.191, 432.3, -273.063, 3.78796, 0), +(302790, 5, -679.516, 407.014, -273.063, 0.624733, 0), +(302790, 6, -689.248, 419.282, -273.063, 5.33517, 0), +(302790, 7, -679.703, 407.177, -273.063, 3.77421, 0), +(302790, 8, -646.316, 431.963, -273.063, 3.41293, 0), +(302790, 9, -590.223, 474.888, -273.078, 1.63597, 0), +(302790, 10, -596.733, 511.9, -273.076, 1.6772, 0); + +/* Mechano-Frostwalker - GUID 30305 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30305; +DELETE FROM `creature_addon` WHERE `guid` = 30305; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30305, 303050); + +DELETE FROM `waypoint_data` WHERE `id` = 303050; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(303050, 1, -819.404, 286.624, -272.596, 3.01658, 0), +(303050, 2, -864.792, 293.053, -272.597, 6.18174, 0), +(303050, 3, -895.964, 297.33, -272.597, 3.01854, 0), +(303050, 4, -906.587, 310.34, -272.597, 1.72264, 0), +(303050, 5, -902.773, 343.887, -272.597, 1.48112, 0), +(303050, 6, -896.98, 389.278, -272.597, 1.34368, 0), +(303050, 7, -891.064, 423.548, -272.597, 0.823358, 0), +(303050, 8, -876.317, 431.944, -272.597, 0.467969, 0), +(303050, 9, -846.229, 427.836, -272.597, 6.19941, 0), +(303050, 10, -798.593, 421.184, -272.579, 6.17978, 0), +(303050, 11, -770.105, 417.315, -272.579, 5.42188, 0), +(303050, 12, -759.266, 400.881, -272.579, 5.31389, 0), +(303050, 13, -758.95, 389.493, -272.579, 4.68754, 0), +(303050, 14, -762.012, 371.894, -272.579, 1.45565, 0), +(303050, 15, -768.327, 323.191, -272.596, 1.45566, 0), +(303050, 16, -772.662, 295.294, -272.596, 1.24557, 0), +(303050, 17, -790.419, 283.001, -272.596, 0.544608, 0); + +/* Mechanized Sentry - GUID 30331 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30331; +DELETE FROM `creature_addon` WHERE `guid` = 30331; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30331, 303310); + +DELETE FROM `waypoint_data` WHERE `id` = 303310; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(303310, 1, -645.307, 407.239, -230.625, 5.36468, 0), +(303310, 2, -654.78, 419.583, -230.625, 5.38236, 0), +(303310, 3, -622.559, 445.311, -230.6, 0.669968, 0), +(303310, 4, -654.917, 419.6, -230.625, 5.19584, 0), +(303310, 5, -644.873, 407.1, -230.625, 5.45698, 0), +(303310, 6, -634.388, 393.01, -238.959, 5.41575, 0), +(303310, 7, -617.641, 371.231, -247.271, 5.33133, 0), +(303310, 8, -639.759, 353.712, -255.604, 1.88541, 0), +(303310, 9, -679.271, 406.035, -273.063, 5.32938, 0), +(303310, 10, -639.871, 353.846, -255.604, 0.261605, 0), +(303310, 11, -618.001, 371.328, -247.27, 2.48034, 0), +(303310, 12, -634.419, 393.062, -238.959, 2.68651, 0); + +/* Dark Iron Agent - GUID 30341 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30341; +DELETE FROM `creature_addon` WHERE `guid` = 30341; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30341, 303410); + +DELETE FROM `waypoint_data` WHERE `id` = 303410; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(303410, 1, -700.681, 547.331, -294.783, 6.01648, 0), +(303410, 2, -730.945, 554.848, -303.783, 6.02829, 0), +(303410, 3, -744.975, 558.601, -303.783, 2.10523, 0), +(303410, 4, -755.189, 575.778, -303.783, 5.12905, 0), +(303410, 5, -756.461, 582.71, -303.783, 4.72653, 0), +(303410, 6, -753.495, 595.336, -303.783, 4.46931, 0), +(303410, 7, -756.446, 582.983, -303.783, 5.38823, 0), +(303410, 8, -755.138, 575.766, -303.783, 1.59083, 0), +(303410, 9, -745.269, 558.951, -303.783, 6.01066, 0), +(303410, 10, -731.175, 555.246, -303.783, 6.01459, 0); + +/* Leprous Technician - GUID 30365 */ + +UPDATE `creature` SET `position_x` = -622.269, `position_y` = 451.15, `position_z` = -273.062, `orientation` = 3.95292 WHERE `guid` = 30365; + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30365; +DELETE FROM `creature_addon` WHERE `guid` = 30365; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30365, 303650); + +DELETE FROM `waypoint_data` WHERE `id` = 303650; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(303650, 1, -624.229, 449.824, -273.062, 3.78799, 0), +(303650, 2, -666.455, 416.913, -273.063, 3.79194, 0); + +/* Leprous Assistant - GUID 30368 */ + +UPDATE `creature` SET `position_x` = -521.4, `position_y` = 539.471, `position_z` = -273.074, `orientation` = 5.12912 WHERE `guid` = 30368; + +DELETE FROM `creature_formations` WHERE `memberGUID` = 30368; +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES +(30369, 30368, 1.91798, 181.19675679453258, 519, 0, 0); + +/* Leprous Assistant - GUID 30369 */ + +UPDATE `creature` SET `position_x` = -520.587, `position_y` = 537.734, `position_z` = -273.074, `orientation` = 5.12912 WHERE `guid` = 30369; + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30369; +DELETE FROM `creature_addon` WHERE `guid` = 30369; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30369, 303690); + +DELETE FROM `waypoint_data` WHERE `id` = 303690; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(303690, 1, -509.634, 518.389, -273.074, 5.082, 0), +(303690, 2, -506.154, 503.229, -273.074, 4.91509, 0), +(303690, 3, -514.331, 486.942, -273.073, 4.17877, 0), +(303690, 4, -526.352, 469.8, -273.073, 4.01383, 0), +(303690, 5, -562.348, 462.477, -273.073, 0.179143, 0), +(303690, 6, -591.693, 488.522, -273.073, 5.54147, 0), +(303690, 7, -588.916, 532.764, -273.075, 5.38833, 0), +(303690, 8, -562.054, 552.939, -273.075, 3.33255, 0), +(303690, 9, -521.397, 539.801, -273.074, 2.77885, 0); +DELETE FROM `creature_formations` WHERE `memberGUID` = 30369; +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES +(30369, 30369, 0, 0, 519, 0, 0); + +/* Leprous Assistant - GUID 30370 */ + +UPDATE `creature` SET `position_x` = -519.507, `position_y` = 540.309, `position_z` = -273.074, `orientation` = 5.12912 WHERE `guid` = 30370; + +DELETE FROM `creature_formations` WHERE `memberGUID` = 30370; +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES +(30369, 30370, 2.79247, 133.36853188819197, 519, 0, 0); + +/* Leprous Assistant - GUID 30371 */ + +UPDATE `creature` SET `position_x` = -522.189, `position_y` = 541.254, `position_z` = -273.074, `orientation` = 5.12912 WHERE `guid` = 30371; + +DELETE FROM `creature_formations` WHERE `memberGUID` = 30371; +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES +(30369, 30371, 3.86772, 180.59285927846472, 519, 0, 0); + +/* Leprous Technician - GUID 30372 */ + +UPDATE `creature` SET `position_x` = -523.258, `position_y` = 538.648, `position_z` = -273.073, `orientation` = 5.12912 WHERE `guid` = 30372; + +DELETE FROM `creature_formations` WHERE `memberGUID` = 30372; +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES +(30369, 30372, 2.82354, 227.224175350777, 519, 0, 0); + +/* Mechano-Flamewalker - GUID 30385 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30385; +DELETE FROM `creature_addon` WHERE `guid` = 30385; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30385, 303850); + +DELETE FROM `waypoint_data` WHERE `id` = 303850; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(303850, 1, -872.044, 410.955, -316.445, 0.538671, 0), +(303850, 2, -853.375, 387.797, -316.431, 2.23513, 0), +(303850, 3, -872.014, 410.9, -316.447, 0.615248, 0), +(303850, 4, -819.755, 451.621, -308.104, 3.76861, 0), +(303850, 5, -815.285, 461.006, -308.104, 2.51786, 0), +(303850, 6, -818.2, 475.308, -308.104, 5.33744, 0), +(303850, 7, -815.428, 460.949, -308.104, 2.19586, 0), +(303850, 8, -819.768, 451.879, -308.104, 3.80985, 0); + +/* Mechano-Flamewalker - GUID 30391 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30391; +DELETE FROM `creature_addon` WHERE `guid` = 30391; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30391, 303910); + +DELETE FROM `waypoint_data` WHERE `id` = 303910; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(303910, 1, -798.785, 421.068, -272.579, 3.03823, 0), +(303910, 2, -823.488, 424.349, -272.596, 6.15626, 0), +(303910, 3, -846.166, 427.647, -272.596, 3.10304, 0), +(303910, 4, -876.55, 431.668, -272.596, 3.09518, 0), +(303910, 5, -891.0, 423.174, -272.596, 0.411067, 0), +(303910, 6, -897.105, 388.858, -272.596, 4.58939, 0), +(303910, 7, -902.819, 344.025, -272.596, 4.63062, 0), +(303910, 8, -906.653, 310.217, -272.596, 4.67186, 0), +(303910, 9, -895.759, 297.063, -272.596, 1.88172, 0), +(303910, 10, -864.728, 292.979, -272.596, 6.16606, 0), +(303910, 11, -819.5, 286.496, -272.598, 6.04039, 0), +(303910, 12, -790.575, 282.945, -272.598, 0.605424, 0), +(303910, 13, -772.582, 295.306, -272.598, 0.992225, 0), +(303910, 14, -768.344, 323.23, -272.598, 1.43009, 0), +(303910, 15, -761.891, 372.069, -272.578, 1.39083, 0), +(303910, 16, -758.837, 389.615, -272.578, 1.8542, 0), +(303910, 17, -759.38, 400.698, -272.578, 4.76212, 0), +(303910, 18, -770.1, 417.408, -272.578, 2.98122, 0); + +/* Mechano-Flamewalker - GUID 30392 */ + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 30392; +DELETE FROM `creature_addon` WHERE `guid` = 30392; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (30392, 303920); + +DELETE FROM `waypoint_data` WHERE `id` = 303920; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(303920, 1, -773.04, 555.82, -291.117, 0.530528, 0), +(303920, 2, -797.726, 536.739, -295.577, 3.79975, 0), +(303920, 3, -812.325, 525.774, -299.767, 3.79585, 0), +(303920, 4, -822.413, 515.006, -303.61, 3.8587, 0), +(303920, 5, -830.292, 503.28, -303.937, 1.00377, 0), +(303920, 6, -830.192, 490.937, -303.937, 5.09177, 0), +(303920, 7, -830.091, 503.568, -303.937, 4.68141, 0), +(303920, 8, -822.244, 515.104, -303.549, 0.744598, 0), +(303920, 9, -812.084, 525.769, -299.764, 0.640533, 0), +(303920, 10, -797.66, 536.566, -295.578, 0.648386, 0); + +/* Peacekeeper Security Suit - GUID 32013 */ + +UPDATE `creature` SET `position_x` = -474.714, `position_y` = 453.097, `position_z` = -230.601, `orientation` = 2.1193 WHERE `guid` = 32013; + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 32013; +DELETE FROM `creature_addon` WHERE `guid` = 32013; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (32013, 320130); + +DELETE FROM `waypoint_data` WHERE `id` = 320130; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(320130, 1, -465.514, 465.207, -230.601, 3.29151, 0), +(320130, 2, -459.382, 487.04, -230.601, 1.36728, 0), +(320130, 3, -458.485, 528.472, -230.601, 4.93691, 0), +(320130, 4, -474.767, 560.434, -230.601, 1.99168, 0), +(320130, 5, -492.59, 575.839, -230.601, 2.63766, 0), +(320130, 6, -503.872, 584.37, -230.601, 2.64551, 0), +(320130, 7, -530.252, 592.402, -230.601, 3.62333, 0), +(320130, 8, -556.663, 596.785, -230.601, 5.38459, 0), +(320130, 9, -583.461, 591.249, -230.601, 3.42305, 0), +(320130, 10, -619.444, 569.812, -230.601, 4.24968, 0), +(320130, 11, -641.116, 531.299, -230.601, 0.587759, 0), +(320130, 12, -646.919, 495.651, -230.601, 4.55992, 0), +(320130, 13, -632.026, 459.515, -230.601, 5.21179, 0), +(320130, 14, -617.69, 440.007, -230.601, 6.28191, 0), +(320130, 15, -590.993, 420.521, -230.601, 5.58095, 0), +(320130, 16, -567.625, 413.477, -230.601, 6.12483, 0), +(320130, 17, -534.567, 408.885, -230.601, 0.683983, 0), +(320130, 18, -506.797, 422.488, -230.601, 1.14344, 0), +(320130, 19, -486.527, 438.453, -230.601, 1.00403, 0); + +/* Arcane Nullifier X-21 - GUID 33496 */ + +UPDATE `creature` SET `position_x` = -663.308, `position_y` = 713.787, `position_z` = -327.06, `orientation` = 2.00713 WHERE `guid` = 33496; + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = 33496; +DELETE FROM `creature_addon` WHERE `guid` = 33496; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (33496, 334960); + +DELETE FROM `waypoint_data` WHERE `id` = 334960; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(334960, 1, -663.308, 713.787, -327.06, 100.0, 0), +(334960, 2, -692.062, 721.377, -318.06, 100.0, 0), +(334960, 3, -706.103, 723.074, -318.06, 100.0, 0), +(334960, 4, -720.18, 719.216, -318.06, 100.0, 0), +(334960, 5, -732.442, 712.068, -318.06, 100.0, 0), +(334960, 6, -743.691, 697.216, -318.06, 100.0, 0), +(334960, 7, -749.654, 677.455, -316.903, 100.0, 0), +(334960, 8, -752.935, 662.622, -310.343, 100.0, 0), +(334960, 9, -757.229, 647.8, -307.222, 100.0, 0), +(334960, 10, -759.794, 636.592, -302.256, 100.0, 0), +(334960, 11, -757.229, 647.8, -307.222, 100.0, 0), +(334960, 12, -752.935, 662.622, -310.343, 100.0, 0), +(334960, 13, -749.654, 677.455, -316.903, 100.0, 0), +(334960, 14, -743.691, 697.216, -318.06, 100.0, 0), +(334960, 15, -732.442, 712.068, -318.06, 100.0, 0), +(334960, 16, -720.18, 719.216, -318.06, 100.0, 0), +(334960, 17, -706.103, 723.074, -318.06, 100.0, 0), +(334960, 18, -692.062, 721.377, -318.06, 100.0, 0), +(334960, 19, -663.51, 713.837, -326.974, 100.0, 0), +(334960, 20, -636.836, 706.863, -327.056, 100.0, 0); + diff --git a/data/sql/updates/db_world/2023_03_16_02.sql b/data/sql/updates/db_world/2023_03_16_02.sql new file mode 100644 index 000000000..c755103a1 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_16_02.sql @@ -0,0 +1,24 @@ +-- DB update 2023_03_16_01 -> 2023_03_16_02 +-- Headless Horseman +DELETE FROM `creature_text` WHERE `CreatureID`=23682; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(23682, 0, 0, 'It is over, your search is done. Let fate choose now, the righteous one.', 14, 0, 100, 0, 0, 11961, 22261, 0, 'Headless Horseman - TALK_ENTRANCE'), +(23682, 1, 0, 'Here\'s my body, fit and pure! Now, your blackened souls I\'ll cure!', 14, 0, 100, 0, 0, 12567, 22271, 0, 'Headless Horseman - TALK_REJOINED'), +(23682, 2, 0, 'Harken, cur! Tis you I spurn! Now feel... the burn!', 12, 0, 100, 0, 0, 0, 22587, 0, 'Headless Horseman - TALK_CONFLAGRATION'), +(23682, 3, 0, 'Soldiers arise, stand and fight! Bring victory at last to this fallen knight!', 14, 0, 100, 0, 0, 11963, 23861, 0, 'Headless Horseman - TALK_SPROUTING_PUMPKINS'), +(23682, 4, 0, 'This end have I reached before. What new adventure lies in store?', 14, 0, 100, 0, 0, 11964, 23455, 0, 'Headless Horseman - TALK_DEATH'), +(23682, 5, 0, 'Your body lies beaten, battered and broken! Let my curse be your own, fate has spoken!', 14, 0, 100, 0, 0, 11962, 40546, 0, 'Headless Horseman - TALK_PLAYER_DEATH'); + +-- Head of the Horseman +DELETE FROM `creature_text` WHERE `CreatureID`=23775; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(23775, 0, 0, '% laughs.', 16, 0, 100, 0, 0, 11965, 37127, 0, 'Head of the Horseman - TALK_LAUGH'), +(23775, 0, 1, '% laughs.', 16, 0, 100, 0, 0, 11975, 37127, 0, 'Head of the Horseman - TALK_LAUGH'), +(23775, 0, 2, '% laughs.', 16, 0, 100, 0, 0, 11976, 37127, 0, 'Head of the Horseman - TALK_LAUGH'), +(23775, 1, 0, 'Get over here, you idiot!', 12, 0, 100, 0, 0, 0, 22415, 0, 'Head of the Horseman - TALK_LOST_HEAD'); + +-- Add ScriptName to Pumpkin Shrine +UPDATE `gameobject_template` SET `ScriptName`='go_pumpkin_shrine' WHERE `entry`=186267; + +-- Remove quest Call the Headless Horseman from Pumpkin Shrine +DELETE FROM `gameobject_queststarter` WHERE `id`=186267 AND `quest`=11405; diff --git a/data/sql/updates/db_world/2023_03_16_03.sql b/data/sql/updates/db_world/2023_03_16_03.sql new file mode 100644 index 000000000..bdf276019 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_16_03.sql @@ -0,0 +1,4 @@ +-- DB update 2023_03_16_02 -> 2023_03_16_03 +-- Warchief's blessing - Add NO_PVP_FLAG +DELETE FROM `spell_custom_attr` WHERE `spell_id`=16609; +INSERT INTO `spell_custom_attr` (`spell_id`, `attributes`) VALUES (16609, 128); diff --git a/data/sql/updates/db_world/2023_03_16_04.sql b/data/sql/updates/db_world/2023_03_16_04.sql new file mode 100644 index 000000000..e191c5f08 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_16_04.sql @@ -0,0 +1,3 @@ +-- DB update 2023_03_16_03 -> 2023_03_16_04 +-- +UPDATE `spell_dbc` SET `Effect_1` = 28, `EffectMiscValueB_1` = 64, `EffectBasePoints_1` = 1 WHERE `ID` IN (38888, 38889, 38890); diff --git a/data/sql/updates/db_world/2023_03_16_05.sql b/data/sql/updates/db_world/2023_03_16_05.sql new file mode 100644 index 000000000..d14b27e46 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_16_05.sql @@ -0,0 +1,7 @@ +-- DB update 2023_03_16_04 -> 2023_03_16_05 +-- +UPDATE `creature_template` SET `minlevel`=60, `maxlevel`=60 WHERE `entry` IN (18703,20700); +UPDATE `smart_scripts` SET `action_type`=49, `action_param1`=0, `target_type`=21, `target_param1`=30, `comment`='Sethekk Spirit - On Summon - Attack nearest player' WHERE `entryorguid`=18703 AND `source_type`=0 AND `id`=0; +DELETE FROM `creature_template_addon` WHERE `entry`=18703; +INSERT INTO `creature_template_addon` VALUES +(18703,0,0,0,1,0,0,'24051'); diff --git a/data/sql/updates/db_world/2023_03_16_06.sql b/data/sql/updates/db_world/2023_03_16_06.sql new file mode 100644 index 000000000..d8dd144d0 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_16_06.sql @@ -0,0 +1,10 @@ +-- DB update 2023_03_16_05 -> 2023_03_16_06 +-- +UPDATE `creature_template` SET `minlevel` = 63, `maxlevel` = 63 WHERE (`entry` = 20700); +UPDATE `creature_template` SET `AIName` = '' WHERE (`entry` = 18703); + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 18703) AND (`source_type` = 0); + +DELETE FROM `creature_template_addon` WHERE (`entry` = 20700); +INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES +(20700, 0, 0, 0, 1, 0, 0, '24051'); diff --git a/data/sql/updates/db_world/2023_03_17_00.sql b/data/sql/updates/db_world/2023_03_17_00.sql new file mode 100644 index 000000000..e254f153f --- /dev/null +++ b/data/sql/updates/db_world/2023_03_17_00.sql @@ -0,0 +1,18 @@ +-- DB update 2023_03_16_06 -> 2023_03_17_00 +-- +DELETE FROM `creature_addon` WHERE `guid` IN (98348, 102744); + +DELETE FROM `creature_template_addon` WHERE `entry` IN (29149, 29006, 28025, 28668, 28667, 29124, 28443, 28112, 28001, 28010, 29036, 28095); +INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES +(29149, 0, 0, 0, 1, 0, '50726'), -- 29149 - 50726 +(29006, 0, 0, 0, 1, 0, '50503'), -- 29006 - 50503 +(28025, 0, 0, 0, 1, 0, '50503'), -- 28025 - 50503 +(28668, 0, 0, 0, 1, 0, '54176'), -- 28668 - 54176 +(28667, 0, 0, 0, 1, 0, '50726 52119'), -- 28667 - 50726, 52119 +(29124, 0, 0, 0, 1, 0, '53213 54189'), -- 29124 - 53213, 54189 +(28443, 0, 0, 0, 1, 0, '51841'), -- 28443 - 51841 +(28112, 0, 0, 0, 1, 0, '50726'), -- 28112 - 50726 +(28001, 0, 0, 0, 1, 0, '44366'), -- 28001 - 44366 +(28010, 0, 0, 0, 1, 0, '54913'), -- 28010 - 54913 +(29036, 0, 0, 0, 1, 0, '52948 61750 61751'), -- 29036 - 52948, 61750, 61751 +(28095, 0, 0, 0, 1, 0, '52162'); diff --git a/data/sql/updates/db_world/2023_03_19_00.sql b/data/sql/updates/db_world/2023_03_19_00.sql new file mode 100644 index 000000000..0c85018b0 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_19_00.sql @@ -0,0 +1,5 @@ +-- DB update 2023_03_17_00 -> 2023_03_19_00 +-- [1] MovementFlags: 1536 (DisableGravity, Root) +DELETE FROM `creature_template_movement` WHERE `creatureId` = 20343; +INSERT INTO `creature_template_movement` (`CreatureId`, `Flight`, `Rooted`) VALUES +(20343, 1, 1); diff --git a/data/sql/updates/db_world/2023_03_19_01.sql b/data/sql/updates/db_world/2023_03_19_01.sql new file mode 100644 index 000000000..a798cb7f4 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_19_01.sql @@ -0,0 +1,11 @@ +-- DB update 2023_03_19_00 -> 2023_03_19_01 +-- +UPDATE `creature_template` SET `speed_walk`=2.4, `speed_run`=0.857143 WHERE `entry` IN (20405,21534); +UPDATE `creature_template_addon` SET `auras`='' WHERE `entry` IN (20405,21534); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (20405) 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 +(20405, 0, 0, 0, 60, 0, 100, 0, 1000, 1000, 2000, 2000, 11, 35151, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Nether Charge - IN Update - CAST \'Nether Charge Pulse\' (NO REPEAT)'), +(20405, 0, 1, 2, 25, 0, 100, 0, 0, 0, 0, 0, 75, 35150, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Nether Charge - IN Reset - Add aura Nether Charge Passive'), +(20405, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 11, 37670, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Nether Charge - IN Reset - Cast Nether Charge Timer'), +(20405, 0, 3, 4, 61, 0, 100, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Nether Charge - IN Reset - React passive'), +(20405, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 89, 20, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Nether Charge - IN Reset - Random movement'); diff --git a/data/sql/updates/db_world/2023_03_20_00.sql b/data/sql/updates/db_world/2023_03_20_00.sql new file mode 100644 index 000000000..9e40a4b0a --- /dev/null +++ b/data/sql/updates/db_world/2023_03_20_00.sql @@ -0,0 +1,11 @@ +-- DB update 2023_03_19_01 -> 2023_03_20_00 +-- +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 13 AND `SourceEntry` = 35277; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(13,1,35277,0,0,31,0,3,20481,0,0,0,0,'','Group 0: Spell \'Quell Raging Flames\' (Effect 0) targets creature \'Raging Flames\''); + +-- They're not immune even to fire, only to all mechanics +UPDATE `creature_template` SET `ScriptName` = 'npc_raging_flames' WHERE `entry` = 20481; +UPDATE `creature_template` SET `mechanic_immune_mask` = 617299803, `spell_school_immune_mask` = 0 WHERE `entry` IN (20481,21538); + +UPDATE `spell_dbc` SET `ProcTypeMask` = 20, `ProcChance` = 100, `BaseLevel` = 70, `SpellLevel` = 70, `Effect_1` = 6, `ImplicitTargetA_1` = 1, `EffectAura_1` = 42, `EffectTriggerSpell_1` = 45195 WHERE `Id` = 45196; diff --git a/data/sql/updates/db_world/2023_03_20_01.sql b/data/sql/updates/db_world/2023_03_20_01.sql new file mode 100644 index 000000000..25a5c5fc3 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_20_01.sql @@ -0,0 +1,42 @@ +-- DB update 2023_03_20_00 -> 2023_03_20_01 +-- +-- spell_gen_feign_death_no_dyn_flag +-- UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT, UNIT_FLAG2_FEIGN_DEATH +UPDATE `spell_script_names` SET `ScriptName` = 'spell_gen_feign_death_no_dyn_flag' WHERE `spell_id` = 35357 AND `ScriptName` = 'spell_gen_creature_permanent_feign_death'; + +DELETE FROM `spell_script_names` WHERE `spell_id` IN (51329) AND `ScriptName` = 'spell_gen_feign_death_no_dyn_flag'; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(51329,'spell_gen_feign_death_no_dyn_flag'); + +UPDATE `creature_template` SET `unit_flags` = `unit_flags` &~ 536870912 WHERE `entry` IN (31786); -- 35357 +DELETE FROM `creature_template_addon` WHERE `entry` IN (29811); +INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES +(29811,0,0,0,1,0,0,'51329'); +UPDATE `creature_template` SET `unit_flags` = `unit_flags` &~ (262144|536870912) WHERE `entry` IN (29811); -- 51329 + + +-- spell_gen_feign_death_no_prevent_emotes +-- UNIT_FLAG2_FEIGN_DEATH, UNIT_DYNFLAG_DEAD, used by 31281 +UPDATE `spell_script_names` SET `ScriptName` = 'spell_gen_feign_death_no_prevent_emotes' WHERE `spell_id` = 58951 AND `ScriptName` = 'spell_gen_creature_permanent_feign_death'; + + +-- spell_gen_feign_death_all_flags +-- All flags +UPDATE `spell_script_names` SET `ScriptName` = 'spell_gen_feign_death_all_flags' WHERE `ScriptName` = 'spell_gen_creature_permanent_feign_death'; + +UPDATE `creature_template` SET `unit_flags` = `unit_flags` &~ 536870912 WHERE `entry` IN (37970,37972,37973,38399,38400,38401,38769,38770,38771,38772,38784,38785); -- 71598 + + +-- spell_gen_prevent_emotes +-- UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT +DELETE FROM `spell_script_names` WHERE `spell_id` IN (33569,58540,70904,58806,58768) AND `ScriptName` = 'spell_gen_prevent_emotes'; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(33569,'spell_gen_prevent_emotes'), +(58540,'spell_gen_prevent_emotes'), +(70904,'spell_gen_prevent_emotes'), +(58806,'spell_gen_prevent_emotes'), +(58768,'spell_gen_prevent_emotes'); + +UPDATE `creature_template` SET `unit_flags` = `unit_flags` &~ 536870912 WHERE `entry` IN (18035,19224,20663); -- 33569 +UPDATE `creature_template` SET `unit_flags` = `unit_flags` &~ (262144|536870912) WHERE `entry` IN (30947); -- 58540 +UPDATE `creature_template` SET `unit_flags` = `unit_flags` &~ 536870912 WHERE `entry` IN (36789,38174); -- 70904 diff --git a/data/sql/updates/db_world/2023_03_20_02.sql b/data/sql/updates/db_world/2023_03_20_02.sql new file mode 100644 index 000000000..de3a5f0e7 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_20_02.sql @@ -0,0 +1,3 @@ +-- DB update 2023_03_20_01 -> 2023_03_20_02 +-- Fen Ray in Underbog +UPDATE `creature` SET `unit_flags`=`unit_flags`|64|256|512|33554432 WHERE `id1`=17731 AND `guid` IN (138322,138320,138319,138501,138507,138508,138513,138514,138515,138516,138518); diff --git a/data/sql/updates/db_world/2023_03_20_03.sql b/data/sql/updates/db_world/2023_03_20_03.sql new file mode 100644 index 000000000..eeee88da9 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_20_03.sql @@ -0,0 +1,308 @@ +-- DB update 2023_03_20_02 -> 2023_03_20_03 +-- +DELETE FROM `gameobject` WHERE `id`=186729; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `ScriptName`, `VerifiedBuild`) VALUES +(20463, 186729, 530, 3523, 3877, 1, 1, 3304.35, 2952.27, 141.742, 3.15906, 0, 0, -0.999962, 0.00873464, 180, 255, 1, '', 48526), +(20464, 186729, 530, 3523, 3877, 1, 1, 3311.84, 2959.4, 142.62, 1.37881, 0, 0, 0.636078, 0.771625, 180, 255, 1, '', 48526), +(20467, 186729, 530, 3523, 3877, 1, 1, 3315.77, 2873.66, 141.707, 4.04917, 0, 0, -0.898793, 0.438373, 180, 255, 1, '', 48526), +(20473, 186729, 530, 3523, 3877, 1, 1, 3316.67, 2933.76, 142.135, 5.48033, 0, 0, -0.390731, 0.920505, 180, 255, 1, '', 48526), +(20820, 186729, 530, 3523, 3877, 1, 1, 3319.28, 3010.68, 138.619, 2.54818, 0, 0, 0.956305, 0.292372, 180, 255, 1, '', NULL), +(20824, 186729, 530, 3523, 3877, 1, 1, 3322.33, 2973.16, 143.744, 0.858857, 0, 0, 0.416351, 0.909204, 180, 255, 1, '', NULL), +(20830, 186729, 530, 3523, 3877, 1, 1, 3327.92, 2890.38, 141.371, 4.81334, 0, 0, 0.67053, -0.741883, 180, 255, 1, '', NULL), +(20832, 186729, 530, 3523, 3877, 1, 1, 3328.41, 2923.37, 141.084, 2.11185, 0, 0, 0.870356, 0.492424, 180, 255, 1, '', 48526), +(20845, 186729, 530, 3523, 3877, 1, 1, 3329.86, 2978.19, 143.959, 4.11898, 0, 0, -0.882947, 0.469473, 180, 255, 1, '', 48526), +(20847, 186729, 530, 3523, 3877, 1, 1, 3337.97, 2982.07, 143.82, 2.9496, 0, 0, 0.995396, 0.0958512, 180, 255, 1, '', 48526), +(20849, 186729, 530, 3523, 3877, 1, 1, 3338.72, 3039.7, 139.869, 1.56964, 0, 0, 0.706698, 0.707515, 180, 255, 1, '', NULL), +(20858, 186729, 530, 3523, 3877, 1, 1, 3340.01, 2955.97, 140.823, 3.24635, 0, 0, -0.998629, 0.0523532, 180, 255, 1, '', 48526), +(20863, 186729, 530, 3523, 3877, 1, 1, 3343.23, 3037.09, 140.835, -1.44862, 0, 0, -0.662619, 0.748957, 180, 255, 1, '', NULL), +(20865, 186729, 530, 3523, 3877, 1, 1, 3357.5, 2837.36, 140.77, 5.46288, 0, 0, -0.398748, 0.91706, 180, 255, 1, '', 48526), +(20869, 186729, 530, 3523, 3877, 1, 1, 3366.51, 3049.9, 141.294, 3.71755, 0, 0, -0.958819, 0.284016, 180, 255, 1, '', 48526), +(20876, 186729, 530, 3523, 3877, 1, 1, 3370.01, 3057.48, 140.398, 0.0302625, 0, 0, 0.0151307, 0.999885, 180, 255, 1, '', NULL), +(20893, 186729, 530, 3523, 3877, 1, 1, 3372.23, 2834.84, 142.446, 4.57276, 0, 0, -0.754709, 0.656059, 180, 255, 1, '', 48526), +(20894, 186729, 530, 3523, 3877, 1, 1, 3384.66, 3036.55, 142.613, -0.942477, 0, 0, -0.45399, 0.891007, 180, 255, 1, '', NULL), +(20895, 186729, 530, 3523, 3877, 1, 1, 3393.41, 2813.17, 148.863, 3.52136, 0, 0, 0.982026, -0.188745, 180, 255, 1, '', NULL), +(20896, 186729, 530, 3523, 3877, 1, 1, 3401.27, 2946.31, 152.227, 0.90757, 0, 0, 0.438371, 0.898794, 180, 255, 1, '', 48526), +(20897, 186729, 530, 3523, 3877, 1, 1, 3402.4, 2895.72, 143.972, 2.07694, 0, 0, 0.861629, 0.507539, 180, 255, 1, '', 48526), +(20898, 186729, 530, 3523, 3877, 1, 1, 3408.25, 2891.47, 143.715, 1.32617, 0, 0, 0.615551, 0.788097, 180, 255, 1, '', NULL), +(20899, 186729, 530, 3523, 3877, 1, 1, 3409.46, 2797.32, 149.852, 3.68265, 0, 0, -0.96363, 0.267241, 180, 255, 1, '', 48526), +(20900, 186729, 530, 3523, 3877, 1, 1, 3411.2, 2776.82, 152.862, 3.49067, 0, 0, -0.984807, 0.173652, 180, 255, 1, '', 48526), +(20901, 186729, 530, 3523, 3877, 1, 1, 3418.08, 2869.34, 144.229, 1.74533, 0, 0, 0.766044, 0.642789, 180, 255, 1, '', 48526), +(20902, 186729, 530, 3523, 3877, 1, 1, 3426.58, 2783.14, 152.652, 0.523598, 0, 0, 0.258819, 0.965926, 180, 255, 1, '', 48526), +(20903, 186729, 530, 3523, 3877, 1, 1, 3426.74, 3037.45, 144.715, 2.35619, 0, 0, 0.923879, 0.382686, 180, 255, 1, '', NULL), +(20904, 186729, 530, 3523, 3877, 1, 1, 3431.89, 3073.4, 140.909, 4.99164, 0, 0, -0.601814, 0.798636, 180, 255, 1, '', 48526), +(20905, 186729, 530, 3523, 3877, 1, 1, 3435.22, 3103.67, 133.716, -1.8675, 0, 0, -0.803856, 0.594824, 180, 255, 1, '', NULL), +(20906, 186729, 530, 3523, 3877, 1, 1, 3439.93, 2778.39, 151.651, 2.23402, 0, 0, 0.898793, 0.438373, 180, 255, 1, '', 48526), +(20918, 186729, 530, 3523, 3877, 1, 1, 3440.33, 3069.53, 141.712, -0.95993, 0, 0, -0.461748, 0.887011, 180, 255, 1, '', NULL), +(20935, 186729, 530, 3523, 3877, 1, 1, 3442.94, 3107.05, 133.446, 2.61423, 0, 0, 0.965437, 0.260636, 180, 255, 1, '', NULL), +(20937, 186729, 530, 3523, 3877, 1, 1, 3447.23, 3108.36, 132.629, 3.26218, 0, 0, 0.998183, -0.0602572, 180, 255, 1, '', NULL), +(20941, 186729, 530, 3523, 3877, 1, 1, 3448.69, 2808.93, 148.901, 4.1379, 0, 0, 0.878466, -0.477804, 180, 255, 1, '', NULL), +(20943, 186729, 530, 3523, 3877, 1, 1, 3462.12, 3035.27, 144.913, 1.69297, 0, 0, 0.748956, 0.66262, 180, 255, 1, '', 48526), +(20946, 186729, 530, 3523, 3877, 1, 1, 3466.13, 3058.32, 143.641, 5.31207, 0, 0, 0.466702, -0.884415, 180, 255, 1, '', NULL), +(20948, 186729, 530, 3523, 3877, 1, 1, 3473.45, 3075.52, 141.411, 3.97935, 0, 0, -0.913545, 0.406738, 180, 255, 1, '', 48526), +(20950, 186729, 530, 3523, 3877, 1, 1, 3478.12, 2972.98, 143.246, 3.4034, 0, 0, -0.991445, 0.130528, 180, 255, 1, '', 48526), +(20954, 186729, 530, 3523, 3877, 1, 1, 3482.13, 2975.44, 143.236, 4.35781, 0, 0, 0.82073, -0.571316, 180, 255, 1, '', NULL), +(20961, 186729, 530, 3523, 3877, 1, 1, 3483.05, 2786.29, 148.904, 5.81195, 0, 0, -0.233445, 0.97237, 180, 255, 1, '', 48526), +(20962, 186729, 530, 3523, 3877, 1, 1, 3493.38, 2758.32, 150.965, 2.56563, 0, 0, 0.958819, 0.284016, 180, 255, 1, '', 48526), +(20972, 186729, 530, 3523, 3877, 1, 1, 3495.91, 3087.95, 138.525, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 255, 1, '', 48526), +(20973, 186729, 530, 3523, 3877, 1, 1, 3496.76, 3028.54, 146.915, 6.00393, 0, 0, -0.139173, 0.990268, 180, 255, 1, '', 48526), +(20976, 186729, 530, 3523, 3877, 1, 1, 3498.62, 2799.65, 148.269, 4.2237, 0, 0, -0.857167, 0.515038, 180, 255, 1, '', 48526), +(20977, 186729, 530, 3523, 3877, 1, 1, 3500.9, 3089.25, 137.409, 1.24371, 0, 0, 0.582544, 0.812799, 180, 255, 1, '', NULL), +(20980, 186729, 530, 3523, 3877, 1, 1, 3502.29, 2861.81, 146.519, 5.42988, 0, 0, 0.413826, -0.910356, 180, 255, 1, '', NULL), +(20981, 186729, 530, 3523, 3877, 1, 1, 3502.6, 2806.41, 146.557, 5.94038, 0, 0, 0.170565, -0.985346, 180, 255, 1, '', NULL), +(20983, 186729, 530, 3523, 3877, 1, 1, 3504.43, 2822.26, 145.366, 0.453785, 0, 0, 0.224951, 0.97437, 180, 255, 1, '', 48526), +(21003, 186729, 530, 3523, 3877, 1, 1, 3511.76, 2767.23, 151.103, 5.32326, 0, 0, -0.461748, 0.887011, 180, 255, 1, '', 48526), +(21004, 186729, 530, 3523, 3877, 1, 1, 3515.65, 2819.51, 144.86, 2.75761, 0, 0, 0.981627, 0.190812, 180, 255, 1, '', 48526), +(21005, 186729, 530, 3523, 3877, 1, 1, 3519.12, 2806.03, 147.365, 4.18879, 0, 0, -0.866025, 0.500001, 180, 255, 1, '', 48526), +(21006, 186729, 530, 3523, 3877, 1, 1, 3523.2, 2983.54, 144.494, 1.46608, 0, 0, 0.66913, 0.743145, 180, 255, 1, '', 48526), +(21007, 186729, 530, 3523, 3877, 1, 1, 3529.51, 2886.14, 146.376, 0.471238, 0, 0, 0.233445, 0.97237, 180, 255, 1, '', 48526), +(21008, 186729, 530, 3523, 3877, 1, 1, 3531.82, 2890.7, 145.889, 2.09979, 0, 0, 0.867371, 0.497662, 180, 255, 1, '', NULL), +(21010, 186729, 530, 3523, 3877, 1, 1, 3535.61, 2797.97, 146.756, 4.4855, 0, 0, -0.782608, 0.622515, 180, 255, 1, '', 48526), +(21011, 186729, 530, 3523, 3877, 1, 1, 3545.75, 2786.76, 148.826, 1.13446, 0, 0, 0.537299, 0.843392, 180, 255, 1, '', 48526), +(21012, 186729, 530, 3523, 3877, 1, 1, 3549.45, 2810.71, 145.608, 5.25709, 0, 0, 0.490835, -0.871253, 180, 255, 1, '', NULL), +(21013, 186729, 530, 3523, 3877, 1, 1, 3550.52, 2819.59, 144.806, 4.7473, 0, 0, -0.694658, 0.71934, 180, 255, 1, '', 48526), +(21014, 186729, 530, 3523, 3877, 1, 1, 3552.1, 2872.02, 148.234, 4.60767, 0, 0, -0.743144, 0.669131, 180, 255, 1, '', 48526), +(21015, 186729, 530, 3523, 3877, 1, 1, 3554.52, 2780.35, 151.418, 3.47321, 0, 0, -0.986285, 0.16505, 180, 255, 1, '', 48526), +(21017, 186729, 530, 3523, 3877, 1, 1, 3554.69, 2977.5, 145.693, 3.80482, 0, 0, -0.945518, 0.325568, 180, 255, 1, '', 48526), +(21018, 186729, 530, 3523, 3877, 1, 1, 3558.24, 3037.32, 136.088, 5.44543, 0, 0, -0.406736, 0.913546, 180, 255, 1, '', 48526), +(21019, 186729, 530, 3523, 3877, 1, 1, 3559.47, 3055.23, 133.945, 5.39307, 0, 0, -0.430511, 0.902586, 180, 255, 1, '', 48526), +(21020, 186729, 530, 3523, 3877, 1, 1, 3561.45, 2975.52, 146.345, 2.82235, 0, 0, 0.987288, 0.158944, 180, 255, 1, '', NULL), +(21021, 186729, 530, 3523, 3877, 1, 1, 3574.23, 2942.18, 145.511, 5.95157, 0, 0, -0.165047, 0.986286, 180, 255, 1, '', 48526), +(21022, 186729, 530, 3523, 3877, 1, 1, 3577.24, 2782.71, 150.005, 5.68977, 0, 0, -0.292372, 0.956305, 180, 255, 1, '', 48526), +(21023, 186729, 530, 3523, 3877, 1, 1, 3581.53, 3058.48, 129.189, 0.942477, 0, 0, 0.45399, 0.891007, 180, 255, 1, '', 48526), +(21024, 186729, 530, 3523, 3877, 1, 1, 3590.3, 3083.88, 126.576, 3.31614, 0, 0, -0.996194, 0.087165, 180, 255, 1, '', 48526), +(21025, 186729, 530, 3523, 3877, 1, 1, 3594.84, 3089.71, 124.591, 2.39824, 0, 0, 0.93172, 0.363178, 180, 255, 1, '', NULL), +(21026, 186729, 530, 3523, 3877, 1, 1, 3597.51, 2916.99, 145.117, 4.53786, 0, 0, -0.766044, 0.642789, 180, 255, 1, '', 48526), +(21027, 186729, 530, 3523, 3877, 1, 1, 3606.46, 2973.63, 145.171, 0.191985, 0, 0, 0.0958452, 0.995396, 180, 255, 1, '', 48526), +(21043, 186729, 530, 3523, 3877, 1, 1, 3609.42, 2912.12, 145.731, 0.541051, 0, 0, 0.267238, 0.963631, 180, 255, 1, '', 48526), +(21044, 186729, 530, 3523, 3877, 1, 1, 3611.13, 2826.85, 164.916, 0.314158, 0, 0, 0.156434, 0.987688, 180, 255, 1, '', 48526), +(21050, 186729, 530, 3523, 3877, 1, 1, 3612.24, 3033.11, 129.125, 5.68977, 0, 0, -0.292372, 0.956305, 180, 255, 1, '', 48526), +(21051, 186729, 530, 3523, 3877, 1, 1, 3613.47, 3059.31, 124.018, 2.94016, 0, 0, 0.994932, 0.100546, 180, 255, 1, '', NULL), +(21052, 186729, 530, 3523, 3877, 1, 1, 3618.13, 3021.18, 131.659, -0.226892, 0, 0, -0.113203, 0.993572, 180, 255, 1, '', NULL), +(21053, 186729, 530, 3523, 3877, 1, 1, 3627.07, 2972.94, 145.315, 1.12196, 0, 0, 0.532016, 0.846734, 180, 255, 1, '', NULL), +(21054, 186729, 530, 3523, 3877, 1, 1, 3628.51, 2882.9, 150.701, 1.95477, 0, 0, 0.829038, 0.559193, 180, 255, 1, '', 48526), +(21055, 186729, 530, 3523, 3877, 1, 1, 3631.96, 2893.58, 147.866, 4.80548, 0, 0, 0.67344, -0.739242, 180, 255, 1, '', NULL), +(21058, 186729, 530, 3523, 3877, 1, 1, 3636.09, 3034.6, 126.735, 1.37881, 0, 0, 0.636078, 0.771625, 180, 255, 1, '', 48526), +(21060, 186729, 530, 3523, 3877, 1, 1, 3638.96, 3039.23, 125.535, 1.64818, 0, 0, 0.73393, 0.679225, 180, 255, 1, '', NULL), +(21061, 186729, 530, 3523, 3877, 1, 1, 3641.5, 2939.38, 145.507, 0.925024, 0, 0, 0.446198, 0.894935, 180, 255, 1, '', 48526), +(21062, 186729, 530, 3523, 3874, 1, 1, 4893.89, 2961.31, 151.06, -0.244346, 0, 0, -0.121869, 0.992546, 180, 255, 1, '', NULL), +(21063, 186729, 530, 3523, 3874, 1, 1, 4899.62, 2959.02, 152.31, 2.18225, 0, 0, 0.887147, 0.461488, 180, 255, 1, '', NULL), +(21065, 186729, 530, 3523, 3874, 1, 1, 4919.54, 3042.53, 100.972, 0.977383, 0, 0, 0.469471, 0.882948, 180, 255, 1, '', NULL), +(21066, 186729, 530, 3523, 3874, 1, 1, 4922.62, 2952.33, 156.978, 3.24635, 0, 0, -0.998629, 0.0523532, 180, 255, 1, '', 48526), +(21067, 186729, 530, 3523, 3874, 1, 1, 4931.25, 2858.59, 87.7062, 0.837757, 0, 0, 0.406736, 0.913546, 180, 255, 1, '', NULL), +(21068, 186729, 530, 3523, 3874, 1, 1, 4936.23, 2818.91, 85.1874, -1.64061, 0, 0, -0.731354, 0.681998, 180, 255, 1, '', NULL), +(21069, 186729, 530, 3523, 3874, 1, 1, 4936.3, 2844.68, 88.2987, 2.56563, 0, 0, 0.958819, 0.284016, 180, 255, 1, '', 48526), +(21070, 186729, 530, 3523, 3874, 1, 1, 4937.06, 2985.37, 92.408, 0.942477, 0, 0, 0.45399, 0.891007, 180, 255, 1, '', 48526), +(21071, 186729, 530, 3523, 3874, 1, 1, 4946.38, 2978.13, 90.3425, 4.59343, 0, 0, 0.74789, -0.663823, 180, 255, 1, '', NULL), +(21072, 186729, 530, 3523, 3874, 1, 1, 4947.13, 2889.56, 126.967, 0.17553, 0, 0, 0.0876524, 0.996151, 180, 255, 1, '', NULL), +(21073, 186729, 530, 3523, 3874, 1, 1, 4947.31, 2967.66, 89.0501, 0.750491, 0, 0, 0.366501, 0.930418, 180, 255, 1, '', 48526), +(21074, 186729, 530, 3523, 3874, 1, 1, 4948.91, 2893.54, 126.355, 5.07891, 0, 0, -0.566406, 0.824126, 180, 255, 1, '', 48526), +(21075, 186729, 530, 3523, 3874, 1, 1, 4951.85, 3010.66, 94.6307, 2.07694, 0, 0, 0.861629, 0.507539, 180, 255, 1, '', 48526), +(21076, 186729, 530, 3523, 3874, 1, 1, 4952.71, 2829.69, 84.8307, 1.20428, 0, 0, 0.566406, 0.824126, 180, 255, 1, '', 48526), +(21077, 186729, 530, 3523, 3874, 1, 1, 4954.45, 3050.29, 99.2282, 6.26573, 0, 0, -0.00872612, 0.999962, 180, 255, 1, '', 48526), +(21078, 186729, 530, 3523, 3874, 1, 1, 4954.49, 3065.13, 99.2482, 0.977383, 0, 0, 0.469471, 0.882948, 180, 255, 1, '', 48526), +(21079, 186729, 530, 3523, 3874, 1, 1, 4954.57, 3072.46, 95.0206, 4.0947, 0, 0, 0.888581, -0.458719, 180, 255, 1, '', NULL), +(21080, 186729, 530, 3523, 3874, 1, 1, 4958.28, 2926.2, 126.859, -2.96704, 0, 0, -0.996194, 0.0871655, 180, 255, 1, '', NULL), +(21090, 186729, 530, 3523, 3874, 1, 1, 4961.22, 2903.14, 123.431, 1.3439, 0, 0, 0.622514, 0.782609, 180, 255, 1, '', 48526), +(21100, 186729, 530, 3523, 3874, 1, 1, 4966.2, 2831.9, 84.3354, 4.57276, 0, 0, -0.754709, 0.656059, 180, 255, 1, '', 48526), +(21101, 186729, 530, 3523, 3874, 1, 1, 4968.39, 3058.56, 101.978, 1.309, 0, 0, 0.608761, 0.793354, 180, 255, 1, '', 48526), +(21102, 186729, 530, 3523, 3874, 1, 1, 4974.35, 3002.33, 92.9613, 1.5708, 0, 0, 0.707108, 0.707106, 180, 255, 1, '', NULL), +(21113, 186729, 530, 3523, 3874, 1, 1, 4981.13, 2813.21, 79.2784, 4.88692, 0, 0, -0.642787, 0.766045, 180, 255, 1, '', 48526), +(21122, 186729, 530, 3523, 3874, 1, 1, 4985.32, 2808.74, 75.7325, 4.24393, 0, 0, 0.851913, -0.523683, 180, 255, 1, '', NULL), +(21123, 186729, 530, 3523, 3874, 1, 1, 4997.07, 2999.94, 94.7692, 0.383971, 0, 0, 0.190808, 0.981627, 180, 255, 1, '', 48526), +(21124, 186729, 530, 3523, 3874, 1, 1, 4998.03, 2942.46, 111.8, 3.54302, 0, 0, -0.979924, 0.19937, 180, 255, 1, '', 48526), +(21125, 186729, 530, 3523, 3874, 1, 1, 4999.62, 3088.82, 99.3288, 3.42085, 0, 0, -0.990268, 0.139175, 180, 255, 1, '', 48526), +(21126, 186729, 530, 3523, 3874, 1, 1, 5001.79, 3090.9, 98.5848, 1.86024, 0, 0, 0.801692, 0.597738, 180, 255, 1, '', NULL), +(21127, 186729, 530, 3523, 3874, 1, 1, 5009.92, 2972.42, 105.205, 0.984525, 0, 0, 0.472621, 0.881266, 180, 255, 1, '', NULL), +(21128, 186729, 530, 3523, 3874, 1, 1, 5010.41, 3051.98, 96.0948, 1.95841, 0, 0, 0.830054, 0.557683, 180, 255, 1, '', NULL), +(21129, 186729, 530, 3523, 3874, 1, 1, 5010.6, 2887.88, 88.1793, 6.16812, 0, 0, 0.057501, -0.998345, 180, 255, 1, '', NULL), +(21130, 186729, 530, 3523, 3874, 1, 1, 5012.83, 2881.24, 88.5173, 4.55531, 0, 0, -0.760406, 0.649449, 180, 255, 1, '', 48526), +(21131, 186729, 530, 3523, 3874, 1, 1, 5014.14, 2794.87, 53.5134, 0.942477, 0, 0, 0.45399, 0.891007, 180, 255, 1, '', 48526), +(21132, 186729, 530, 3523, 3874, 1, 1, 5016.19, 3033.3, 94.2519, 3.63029, 0, 0, -0.970295, 0.241925, 180, 255, 1, '', 48526), +(21133, 186729, 530, 3523, 3874, 1, 1, 5020.8, 2908.61, 93.906, -0.733038, 0, 0, -0.358368, 0.93358, 180, 255, 1, '', NULL), +(21134, 186729, 530, 3523, 3874, 1, 1, 5031.12, 2858.79, 72.2673, 4.67748, 0, 0, -0.719339, 0.694659, 180, 255, 1, '', 48526), +(21135, 186729, 530, 3523, 3874, 1, 1, 5032.24, 3004.35, 92.9764, 0, 0, 0, 0, 1, 180, 255, 1, '', 48526), +(21136, 186729, 530, 3523, 3874, 1, 1, 5034.61, 3075.49, 94.8813, 2.25687, 0, 0, 0.903743, 0.428075, 180, 255, 1, '', NULL), +(21137, 186729, 530, 3523, 3874, 1, 1, 5037.41, 2871.33, 73.6953, 0.0698117, 0, 0, 0.0348988, 0.999391, 180, 255, 1, '', 48526), +(21138, 186729, 530, 3523, 3874, 1, 1, 5042.08, 3014.05, 89.0902, 3.14159, 0, 0, -1, 0, 180, 255, 1, '', 48526), +(21139, 186729, 530, 3523, 3874, 1, 1, 5044.61, 2894.1, 83.7068, 2.23402, 0, 0, 0.898794, 0.438372, 180, 255, 1, '', NULL), +(21140, 186729, 530, 3523, 3874, 1, 1, 5051.23, 2891.96, 82.9909, 5.77151, 0, 0, 0.253056, -0.967452, 180, 255, 1, '', NULL), +(21141, 186729, 530, 3523, 3874, 1, 1, 5056.1, 2938.26, 88.2682, -0.244346, 0, 0, -0.121869, 0.992546, 180, 255, 1, '', NULL), +(21142, 186729, 530, 3523, 3874, 1, 1, 5058.54, 2979.55, 88.4921, 5.63741, 0, 0, -0.317305, 0.948324, 180, 255, 1, '', 48526), +(21143, 186729, 530, 3523, 3874, 1, 1, 5059.26, 2914.68, 85.6017, 5.2709, 0, 0, -0.484809, 0.87462, 180, 255, 1, '', 48526), +(21144, 186729, 530, 3523, 3874, 1, 1, 5060.04, 2977.01, 88.4138, 5.08038, 0, 0, 0.5658, -0.824543, 180, 255, 1, '', NULL), +(21145, 186729, 530, 3523, 3874, 1, 1, 5070.99, 2903.98, 80.9448, -1.02974, 0, 0, -0.492422, 0.870357, 180, 255, 1, '', NULL), +(21146, 186729, 530, 3523, 3874, 1, 1, 5080.69, 2855.06, 68.1485, 1.76278, 0, 0, 0.771625, 0.636078, 180, 255, 1, '', 48526), +(21147, 186729, 530, 3523, 3874, 1, 1, 5081.73, 2912.18, 81.0068, 3.21142, 0, 0, -0.999391, 0.0349061, 180, 255, 1, '', 48526), +(21148, 186729, 530, 3523, 3874, 1, 1, 5082.27, 2942.17, 84.0552, 0.767944, 0, 0, 0.374606, 0.927184, 180, 255, 1, '', NULL), +(21149, 186729, 530, 3523, 3874, 1, 1, 5085.85, 2972.51, 84.6841, 5.5676, 0, 0, -0.350207, 0.936672, 180, 255, 1, '', 48526), +(21150, 186729, 530, 3523, 3874, 1, 1, 5091.24, 2980.9, 81.0722, 2.97944, 0, 0, 0.996715, 0.0809875, 180, 255, 1, '', NULL), +(21151, 186729, 530, 3523, 3874, 1, 1, 5121.38, 2969.59, 81.5681, 3.94445, 0, 0, -0.920505, 0.390732, 180, 255, 1, '', 48526), +(21152, 186729, 530, 3523, 3874, 1, 1, 5121.69, 2879.28, 71.1756, 3.71755, 0, 0, -0.958819, 0.284016, 180, 255, 1, '', 48526), +(21153, 186729, 530, 3523, 3874, 1, 1, 5122.19, 2953.62, 80.1995, 0.122173, 0, 0, 0.0610485, 0.998135, 180, 255, 1, '', 48526), +(21154, 186729, 530, 3523, 3874, 1, 1, 5129.5, 2891.03, 73.9553, 2.65289, 0, 0, 0.970295, 0.241925, 180, 255, 1, '', 48526), +(21155, 186729, 530, 3523, 3874, 1, 1, 5135.47, 2898.83, 73.8903, 4.32638, 0, 0, 0.829607, -0.558348, 180, 255, 1, '', NULL), +(21167, 186729, 530, 3523, 3874, 1, 1, 5152.13, 2932.87, 75.4033, 0.785397, 0, 0, 0.382683, 0.92388, 180, 255, 1, '', NULL), +(21168, 186729, 530, 3523, 3874, 1, 1, 5156.58, 2959.1, 72.2546, 1.72787, 0, 0, 0.760406, 0.649449, 180, 255, 1, '', 48526), +(21169, 186729, 530, 3523, 3874, 1, 1, 5163.74, 2963.27, 71.5152, 5.66943, 0, 0, 0.302084, -0.953281, 180, 255, 1, '', NULL), +(21170, 186729, 530, 3523, 3874, 1, 1, 5172.16, 2948.4, 70.3243, 2.51327, 0, 0, 0.951056, 0.309017, 180, 255, 1, '', 48526), +(21171, 186729, 530, 3523, 3874, 1, 1, 3458, 3044.52, 145.45, 1.27409, 0, 0, 0.594822, 0.803857, 180, 255, 1, '', 48526), +(21172, 186729, 530, 3523, 3874, 1, 1, 3609, 3065.32, 124.452, 2.67035, 0, 0, 0.972369, 0.233448, 180, 255, 1, '', 48526), +(21173, 186729, 530, 3523, 3874, 1, 1, 5005, 3054.36, 97.3609, 4.88692, 0, 0, -0.642787, 0.766045, 180, 255, 1, '', 48526); + +SET @POOL := 110; + +DELETE FROM `pool_template` WHERE `entry` IN (@POOL+0, @POOL+1) AND `description` LIKE 'Mana Berry Bush%'; +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`) VALUES +(@POOL+0, 55, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(@POOL+1, 35, 'Mana Berry Bush (186729) - Eco-Dome Farfield'); + +DELETE FROM `pool_gameobject` WHERE `pool_entry` IN (@POOL+0, @POOL+1) AND `description` LIKE 'Mana Berry Bush%'; +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`) VALUES +-- Eco-Dome Midrealm +(20463, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20464, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20467, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20473, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20820, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20824, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20830, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20832, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20845, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20847, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20849, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20858, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20863, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20865, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20869, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20876, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20893, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20894, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20895, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20896, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20897, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20898, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20899, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20900, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20901, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20902, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20903, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20904, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20905, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20906, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20918, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20935, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20937, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20941, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20943, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20946, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20948, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20950, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20954, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20961, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20962, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20972, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20973, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20976, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20977, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20980, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20981, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(20983, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21003, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21004, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21005, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21006, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21007, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21008, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21010, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21011, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21012, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21013, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21014, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21015, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21017, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21018, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21019, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21020, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21021, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21022, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21023, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21024, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21025, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21026, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21027, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21043, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21044, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21050, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21051, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21052, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21053, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21054, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21055, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21058, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21060, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +(21061, @POOL+0, 0, 'Mana Berry Bush (186729) - Eco-Dome Midrealm'), +-- Eco-Dome Farfield +(21062, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21063, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21065, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21066, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21067, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21068, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21069, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21070, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21071, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21072, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21073, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21074, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21075, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21076, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21077, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21078, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21079, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21080, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21090, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21100, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21101, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21102, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21113, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21122, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21123, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21124, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21125, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21126, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21127, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21128, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21129, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21130, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21131, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21132, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21133, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21134, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21135, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21136, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21137, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21138, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21139, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21140, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21141, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21142, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21143, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21144, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21145, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21146, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21147, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21148, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21149, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21150, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21151, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21152, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21153, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21154, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21155, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21167, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21168, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21169, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21170, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21171, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21172, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'), +(21173, @POOL+1, 0, 'Mana Berry Bush (186729) - Eco-Dome Farfield'); diff --git a/data/sql/updates/db_world/2023_03_20_04.sql b/data/sql/updates/db_world/2023_03_20_04.sql new file mode 100644 index 000000000..300ca21ff --- /dev/null +++ b/data/sql/updates/db_world/2023_03_20_04.sql @@ -0,0 +1,46 @@ +-- DB update 2023_03_20_03 -> 2023_03_20_04 +-- +UPDATE `creature_template_addon` SET `auras` = '11838 31261 36716' WHERE (`entry` = 20869); +UPDATE `creature_template_addon` SET `auras` = '11838 31261 38828' WHERE (`entry` = 21586); + +DELETE FROM `spelldifficulty_dbc` WHERE `ID` IN (36719, 36716); +INSERT INTO `spelldifficulty_dbc` (`ID`, `DifficultySpellID_1`, `DifficultySpellID_2`) VALUES +(36719, 36719, 38830), +(36716, 36716, 38828); + +UPDATE `spell_dbc` SET `Effect_1` = 28, `EffectMiscValueB_1` = 64, `EffectBasePoints_1` = 0 WHERE `ID`=37394; + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` IN (20869, 21303, 21304)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20869, 0, 0, 0, 4, 0, 100, 512, 0, 0, 0, 0, 0, 142, 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Arcatraz Sentinel - On Aggro - Set Health 40%'), +(20869, 0, 1, 0, 25, 0, 100, 512, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Arcatraz Sentinel - On Reset - Set Reactstate Aggressive'), +(20869, 0, 2, 0, 4 , 0, 100, 512, 0, 0, 0, 0, 0, 28, 31261, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Arcatraz Sentinel - On Aggro - Remove Aura \'Permanent Feign Death (Root)\''), +(20869, 0, 3, 0, 2 , 0, 100, 1, 0, 10, 0, 0, 0, 11, 36719, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Arcatraz Sentinel - Between 0-10% Health - Cast \'Explode\' (No Repeat)'), +(20869, 0, 4, 0, 6 , 0, 100, 512, 0, 0, 0, 0, 0, 11, 37394, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Arcatraz Sentinel - On Death - Cast \'Summon Destroyed Sentinel\''), +(21303, 0, 0, 0, 4 , 0, 100, 0, 0, 0, 0, 0, 0, 80, 2130400, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Defender Corpse - On Aggro - Run Script'), +(21303, 0, 1, 0, 10, 0, 100, 1, 0, 8, 0, 0, 0, 80, 2130400, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Defender Corpse - Within 0-10 Range Out of Combat LoS - Run Script'), +(21304, 0, 0, 0, 4 , 0, 100, 0, 0, 0, 0, 0, 0, 80, 2130400, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Warder Corpse - On Aggro - Run Script'), +(21304, 0, 1, 0, 10, 0, 100, 1, 0, 8, 0, 0, 0, 80, 2130400, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Warder Corpse - Within 0-10 Range Out of Combat LoS - Run Script'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2130400); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(2130400, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 36599, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Warder/Defender Corpse - On Script - Cast \'Bloody Explosion\''), +(2130400, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 36593, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Warder/Defender Corpse - On Script - Cast \'Corpse Burst\''), +(2130400, 9, 2, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'WarderDefender Corpse - On Script - Despawn Instant'); + +-- Fix Templates - Sniffed unit flags +UPDATE `creature_template` SET `unit_flags` = 32832, `detection_range` = 10 WHERE (`entry` IN (21303, 21304, 21592, 21623)); +UPDATE `creature_template` SET `unit_flags` = 64, `RegenHealth` = 0, `flags_extra` = `flags_extra`|2097152 WHERE (`entry` IN (20869, 21586)); + +-- Corpses are rooted +DELETE FROM `creature_template_movement` WHERE (`CreatureId` IN (21303, 21304, 21592, 21623)); +INSERT INTO `creature_template_movement` (`CreatureId`, `Ground`, `Swim`, `Flight`, `Rooted`, `Chase`, `Random`, `InteractionPauseTimer`) VALUES +(21303, 0, 0, 0, 1, 0, 0, 0), +(21304, 0, 0, 0, 1, 0, 0, 0), +(21592, 0, 0, 0, 1, 0, 0, 0), +(21623, 0, 0, 0, 1, 0, 0, 0); + +-- Destroyed Sentinel +DELETE FROM `creature_template_movement` WHERE (`CreatureId` = 21761); +INSERT INTO `creature_template_movement` (`CreatureId`, `Ground`, `Swim`, `Flight`, `Rooted`, `Chase`, `Random`, `InteractionPauseTimer`) VALUES +(21761, 0, 0, 1, 1, 0, 0, 0); diff --git a/data/sql/updates/db_world/2023_03_20_05.sql b/data/sql/updates/db_world/2023_03_20_05.sql new file mode 100644 index 000000000..3a8133260 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_20_05.sql @@ -0,0 +1,143 @@ +-- DB update 2023_03_20_04 -> 2023_03_20_05 +-- +DELETE FROM `spelldifficulty_dbc` WHERE `ID` IN (35012,35243,35261,36340,36348,35265,35267,36345,35056,35057); +INSERT INTO `spelldifficulty_dbc` (`ID`, `DifficultySpellID_1`, `DifficultySpellID_2`) VALUES +(35012, 35012, 38941), +(35243, 35243, 38935), +(35261, 35261, 38936), +(36340, 36340, 38921), +(36348, 36348, 38919), +(35265, 35265, 38933), +(35267, 35267, 38930), +(36345, 36345, 39196), +(35056, 35056, 38923), +(35057, 35057, 38925); + +-- Tempest-Forge Patroller +DELETE FROM `smart_scripts` WHERE (`entryorguid` IN (19166, -138801, -138803)) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(19166, 0, 0, 0, 1, 0, 50, 0, 30000, 120000, 120000, 240000, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Patroller - Out of Combat - Say Line 0'), +(19166, 0, 1, 0, 0, 0, 100, 0, 6100, 10400, 6800, 16900, 0, 11, 35012, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Patroller - In Combat - Cast \'Charged Arcane Missile\''), +(19166, 0, 2, 0, 0, 0, 100, 0, 9700, 16400, 12500, 20500, 0, 11, 35011, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Patroller - In Combat - Cast \'Knockdown\''), +(19166, 0, 3, 0, 2, 0, 100, 1, 0, 50, 0, 0, 0, 39, 30, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Patroller - Between 0-50% Health - Call For Help (No Repeat)'), + +(-138801, 0, 0, 0, 1, 0, 50, 0, 30000, 120000, 120000, 240000, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Patroller - Out of Combat - Say Line 0'), +(-138801, 0, 1, 0, 0, 0, 100, 0, 6100, 10400, 6800, 16900, 0, 11, 35012, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Patroller - In Combat - Cast \'Charged Arcane Missile\''), +(-138801, 0, 2, 0, 0, 0, 100, 0, 9700, 16400, 12500, 20500, 0, 11, 35011, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Patroller - In Combat - Cast \'Knockdown\''), +(-138801, 0, 3, 0, 2, 0, 100, 1, 0, 50, 0, 0, 0, 39, 30, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Patroller - Between 0-50% Health - Call For Help (No Repeat)'), + +(-138803, 0, 0, 0, 1, 0, 50, 0, 30000, 120000, 120000, 240000, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Patroller - Out of Combat - Say Line 0'), +(-138803, 0, 1, 0, 0, 0, 100, 0, 6100, 10400, 6800, 16900, 0, 11, 35012, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Patroller - In Combat - Cast \'Charged Arcane Missile\''), +(-138803, 0, 2, 0, 0, 0, 100, 0, 9700, 16400, 12500, 20500, 0, 11, 35011, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Patroller - In Combat - Cast \'Knockdown\''), +(-138803, 0, 3, 0, 2, 0, 100, 1, 0, 50, 0, 0, 0, 39, 30, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Patroller - Between 0-50% Health - Call For Help (No Repeat)'); + +-- Tempest-Forge Destroyer +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 19735); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(19735, 0, 0, 0, 0, 0, 100, 0, 8400, 16900, 9600, 20500, 0, 11, 36582, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - In Combat - Cast \'Charged Fist\''), +(19735, 0, 1, 0, 0, 0, 100, 0, 9700, 10800, 10900, 22900, 0, 11, 35783, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - In Combat - Cast \'Knockdown\''); + +-- Sunseeker Netherbinder +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 20059) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3, 4, 5, 6)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20059, 0, 0, 0, 0, 0, 100, 0, 12100, 19300, 10800, 25300, 0, 11, 35243, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Netherbinder - In Combat - Cast \'Starfire\''), +(20059, 0, 1, 0, 9, 0, 100, 0, 0, 8, 10800, 25300, 0, 11, 35261, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Netherbinder - Within 0-8 Range - Cast \'Arcane Nova\''), +(20059, 0, 2, 0, 0, 0, 100, 0, 5000, 5000, 10000, 10000, 0, 11, 17201, 0, 0, 0, 0, 0, 26, 30, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Netherbinder - In Combat - Cast \'Dispel Magic\''), +(20059, 0, 3, 4, 0, 0, 100, 0, 14100, 18900, 63200, 68100, 0, 11, 35251, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Netherbinder - In Combat - Cast \'Summon Arcane Golem\''), +(20059, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 11, 35260, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Netherbinder - In Combat - Cast \'Summon Arcane Golem\''); + +-- Bloodwarder Centurion +DELETE FROM `smart_scripts` WHERE (`entryorguid` IN (1951000, 1951001, 1951002, 1951003)) AND (`source_type` = 9); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(1951000, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 71, 0, 1, 29403, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Centurion - On Script - Set Mainhand Item'), +(1951000, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 35186, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Centurion - On Script - Cast \'Melt Armor Proc\''), +(1951001, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 71, 0, 1, 29404, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Centurion - On Script - Set Mainhand Item'), +(1951001, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 35187, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Centurion - On Script - Cast \'Arcane Explosion Proc\''), +(1951002, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 71, 0, 1, 29405, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Centurion - On Script - Set Mainhand Item'), +(1951002, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 35188, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Centurion - On Script - Cast \'Chilling Touch\''), +(1951003, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 71, 0, 1, 29406, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Centurion - On Script - Set Mainhand Item'), +(1951003, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 35184, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Centurion - On Script - Cast \'Unstable Affliction Proc\''); + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 19510) 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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(19510, 0, 0, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 88, 1951000, 1951003, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Centurion - On Aggro - Run Random Script'), +(19510, 0, 1, 0, 0, 0, 100, 0, 6200, 19300, 12100, 16900, 0, 11, 35178, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Centurion - In Combat - Cast \'Shield Bash\''); + +UPDATE `creature_template_addon` SET `bytes2` = 1, `auras` = '' WHERE (`entry` IN (19510, 21522)); + +-- Bloodwarder Physician +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 20990) 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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20990, 0, 0, 0, 0, 0, 100, 0, 8400, 19300, 7200, 19300, 0, 11, 36340, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - In Combat - Cast \'Holy Shock\''), +(20990, 0, 1, 0, 74, 0, 100, 0, 0, 75, 10000, 16000, 15, 11, 36348, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - On Friendly Between 0-75% Health - Cast \'Bandage\''), +(20990, 0, 2, 0, 0, 0, 100, 0, 9000, 14000, 12000, 16000, 0, 11, 36333, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - In Combat - Cast \'Anesthetic\''); + +-- Bloodwarder Slayer +DELETE FROM `smart_scripts` WHERE (`entryorguid` IN (1916700, 1916701, 1916702, 1916703)) AND (`source_type` = 9); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(1916700, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - On Script - Set Event Phase 1'), +(1916700, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 71, 0, 1, 29407, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - On Script - Set Mainhand Item'), +(1916700, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 28, 35191, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - On Script - Remove Aura \'Arcane Explosion Proc\''), +(1916700, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 35192, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - On Script - Cast \'Melt Armor Proc\''), +(1916701, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - On Script - Set Event Phase 2'), +(1916701, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 71, 0, 1, 29408, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - On Script - Set Mainhand Item'), +(1916701, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 28, 35191, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - On Script - Remove Aura \'Arcane Explosion Proc\''), +(1916701, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 35193, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - On Script - Cast \'Seed of Corruption Proc\''), +(1916702, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - On Script - Set Event Phase 3'), +(1916702, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 71, 0, 1, 29409, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - On Script - Set Mainhand Item'), +(1916702, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 28, 35191, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - On Script - Remove Aura \'Arcane Explosion Proc\''), +(1916702, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 35188, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - On Script - Cast \'Chilling Touch\''), +(1916703, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - On Script - Set Event Phase 4'), +(1916703, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 71, 0, 1, 29410, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - On Script - Set Mainhand Item'); + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 19167) 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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(19167, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 11, 35191, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - On Spawn - Cast \'Arcane Explosion Proc\''), +(19167, 0, 1, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 88, 1916700, 1916703, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - On Aggro - Run Random Script'), +(19167, 0, 2, 0, 0, 3, 100, 0, 7200, 10600, 12100, 22900, 0, 11, 35189, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - In Combat - Cast \'Solar Strike\' (Phase 1, 2)'), +(19167, 0, 3, 0, 0, 12, 100, 0, 7700, 7700, 10900, 21700, 0, 11, 15708, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - In Combat - Cast \'Mortal Strike\' (Phase 3, 4)'), +(19167, 0, 4, 0, 0, 0, 100, 0, 9800, 22900, 10900, 26500, 0, 11, 13736, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Slayer - In Combat - Cast \'Whirlwind\''); + +-- Sunseeker Astromage +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 19168); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(19168, 0, 0, 0, 0, 0, 100, 0, 4800, 16100, 3000, 5000, 0, 11, 35265, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Fire Shield\''), +(19168, 0, 1, 0, 0, 0, 100, 2, 3100, 7600, 12100, 21700, 0, 11, 17195, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Scorch\' (Normal Dungeon)'), +(19168, 0, 2, 0, 0, 0, 100, 4, 3100, 7600, 12100, 21700, 0, 11, 36807, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Scorch\' (Heroic Dungeon)'), +(19168, 0, 3, 0, 0, 0, 100, 0, 4800, 26700, 13200, 27700, 0, 11, 35267, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Solarburn\''); + +-- Sunseeker Engineer +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 20988); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20988, 0, 0, 0, 0, 0, 100, 0, 1300, 9600, 21700, 30200, 0, 11, 36341, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - In Combat - Cast \'Super Shrink Ray\''), +(20988, 0, 1, 0, 0, 0, 100, 0, 5100, 16400, 12100, 22900, 0, 11, 36345, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - In Combat - Cast \'Death Ray\''), +(20988, 0, 2, 0, 16, 0, 100, 0, 36346, 15, 18100, 24100, 0, 11, 36346, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - On Friendly Unit Missing Buff \'Growth Ray\' - Cast \'Growth Ray\''); + +-- Mechanar Crusher +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 19231); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(19231, 0, 0, 0, 0, 0, 100, 0, 11100, 19300, 22900, 28900, 0, 11, 35056, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Crusher - In Combat - Cast \'Glob of Machine Fluid\''), +(19231, 0, 1, 0, 0, 0, 100, 0, 7800, 13200, 13300, 21200, 0, 11, 35055, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Crusher - In Combat - Cast \'The Claw\''); + +-- Mechanar Driller +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 19712); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(19712, 0, 0, 0, 0, 0, 100, 0, 13300, 37400, 21700, 33800, 0, 11, 35056, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Driller - In Combat - Cast \'Glob of Machine Fluid\''), +(19712, 0, 1, 0, 0, 0, 100, 0, 4700, 18100, 7200, 16900, 0, 11, 35047, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Driller - In Combat - Cast \'Drill Armor\''); + +-- Mechanar Tinkerer +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 19716); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(19716, 0, 0, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Tinkerer - On Reset - Set Phase 1'), +(19716, 0, 1, 0, 0, 1, 100, 0, 0, 0, 1200, 1200, 0, 11, 35057, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Tinkerer - In Combat CMC - Cast \'Netherbomb\' (Normal Dungeon) (Phase 1)'), +(19716, 0, 2, 3, 2, 0, 100, 1, 0, 50, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Tinkerer - Between 0-50% Health - Set Phase 2 (No Repeat)'), +(19716, 0, 3, 4, 61, 0, 100, 0, 0, 0, 0, 0, 0, 11, 35062, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Tinkerer - On Link - Cast \'Maniacal Charge\''), +(19716, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Tinkerer - On Link - Set Reactstate Passive'), +(19716, 0, 5, 6, 0, 2, 100, 1, 2000, 2000, 0, 0, 0, 11, 35058, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Tinkerer - In Combat - Cast \'Nether Explosion\' (No Repeat) (Phase 2)'), +(19716, 0, 6, 0, 61, 2, 100, 1, 0, 0, 0, 0, 0, 11, 29878, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Tinkerer - On Link - Cast \'Instakill Self\' (No Repeat) (Phase 2)'); + +-- Mechanar Wrecker +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 19713); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(19713, 0, 0, 0, 0, 0, 100, 0, 15200, 27700, 21700, 36800, 0, 11, 35056, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Wrecker - In Combat - Cast \'Glob of Machine Fluid\''), +(19713, 0, 1, 0, 0, 0, 100, 0, 15700, 22500, 17300, 26500, 0, 11, 35049, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Wrecker - In Combat - Cast \'Pound\''); diff --git a/data/sql/updates/db_world/2023_03_20_06.sql b/data/sql/updates/db_world/2023_03_20_06.sql new file mode 100644 index 000000000..2229bd0ac --- /dev/null +++ b/data/sql/updates/db_world/2023_03_20_06.sql @@ -0,0 +1,54 @@ +-- DB update 2023_03_20_05 -> 2023_03_20_06 +-- Delete wrong creature_text for Ashyen(17900) and Keleth(17901) and set as SAI. +DELETE FROM `creature_text` WHERE `CreatureID` IN (17900,17901); +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` IN (17900,17901); + +-- Ashyen +DELETE FROM `gossip_menu_option` WHERE `MenuID`=7559; +INSERT INTO `gossip_menu_option` (`MenuID`, `OptionID`, `OptionIcon`, `OptionText`, `OptionBroadcastTextID`, `OptionType`, `OptionNpcFlag`, `ActionMenuID`, `ActionPoiID`, `BoxCoded`, `BoxMoney`, `BoxText`, `BoxBroadcastTextID`, `VerifiedBuild`) VALUES +(7559, 0, 0, 'Grant me your mark, wise ancient.', 14739, 1, 1, 0, 0, 0, 0, '', 0, 0); + +DELETE FROM `smart_scripts` WHERE `entryorguid` = 17900 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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(17900, 0, 0, 5, 62, 0, 100, 0, 7559, 0, 0, 0, 0, 11, 31808, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Ashyen - On Gossip Option 0 Selected - Cast \'Mark of Lore\' (Friendly)'), +(17900, 0, 1, 5, 62, 0, 100, 0, 7559, 0, 0, 0, 0, 11, 31810, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Ashyen - On Gossip Option 0 Selected - Cast \'Mark of Lore\' (Honored)'), +(17900, 0, 2, 5, 62, 0, 100, 0, 7559, 0, 0, 0, 0, 11, 31811, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Ashyen - On Gossip Option 0 Selected - Cast \'Mark of Lore\' (Revered)'), +(17900, 0, 3, 5, 62, 0, 100, 0, 7559, 0, 0, 0, 0, 11, 31815, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Ashyen - On Gossip Option 0 Selected - Cast \'Mark of Lore\' (Exalted)'), +(17900, 0, 4, 5, 62, 0, 100, 0, 7559, 0, 0, 0, 0, 33, 17900, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Ashyen - On Gossip Option 0 Selected - Quest Credit \'Blessings of the Ancients\''), +(17900, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Ashyen - On Link - Close Gossip'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=17900; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22, 1, 17900, 0, 0, 5, 0, 942, 16, 0, 0, 0, 0, '', 'Execute SAI (Action 0) if player is Friendly with Cenarion Expedition'), +(22, 2, 17900, 0, 0, 5, 0, 942, 32, 0, 0, 0, 0, '', 'Execute SAI (Action 1) if player is Honored with Cenarion Expedition'), +(22, 3, 17900, 0, 0, 5, 0, 942, 64, 0, 0, 0, 0, '', 'Execute SAI (Action 2) if player is Revered with Cenarion Expedition'), +(22, 4, 17900, 0, 0, 5, 0, 942, 128, 0, 0, 0, 0, '', 'Execute SAI (Action 3) if player is Exalted with Cenarion Expedition'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=7559; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(15, 7559, 0, 0, 0, 5, 0, 942, 240, 0, 0, 0, 0, '', 'Show Gossip Option 0 if player is at least Friendly with Cenarion Expedition'); + +-- Keleth +DELETE FROM `gossip_menu_option` WHERE `MenuID`=7560; +INSERT INTO `gossip_menu_option` (`MenuID`, `OptionID`, `OptionIcon`, `OptionText`, `OptionBroadcastTextID`, `OptionType`, `OptionNpcFlag`, `ActionMenuID`, `ActionPoiID`, `BoxCoded`, `BoxMoney`, `BoxText`, `BoxBroadcastTextID`, `VerifiedBuild`) VALUES +(7560, 0, 0, 'Grant me your mark, mighty ancient.', 14741, 1, 1, 0, 0, 0, 0, '', 0, 0); + +DELETE FROM `smart_scripts` WHERE `entryorguid` = 17901 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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(17901, 0, 0, 5, 62, 0, 100, 0, 7560, 0, 0, 0, 0, 11, 31807, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Keleth - On Gossip Option 0 Selected - Cast \'Mark of War\' (Friendly'), +(17901, 0, 1, 5, 62, 0, 100, 0, 7560, 0, 0, 0, 0, 11, 31812, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Keleth - On Gossip Option 0 Selected - Cast \'Mark of War\' (Honored)'), +(17901, 0, 2, 5, 62, 0, 100, 0, 7560, 0, 0, 0, 0, 11, 31813, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Keleth - On Gossip Option 0 Selected - Cast \'Mark of War\' (Revered)'), +(17901, 0, 3, 5, 62, 0, 100, 0, 7560, 0, 0, 0, 0, 11, 31814, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Keleth - On Gossip Option 0 Selected - Cast \'Mark of War\' (Exalted)'), +(17901, 0, 4, 5, 62, 0, 100, 0, 7560, 0, 0, 0, 0, 33, 17901, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Keleth - On Gossip Option 0 Selected - Quest Credit \'Blessings of the Ancients\''), +(17901, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Keleth - On Link - Close Gossip'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=17901; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22, 1, 17901, 0, 0, 5, 0, 942, 16, 0, 0, 0, 0, '', 'Execute SAI (Action 0) if player is Friendly with Cenarion Expedition'), +(22, 2, 17901, 0, 0, 5, 0, 942, 32, 0, 0, 0, 0, '', 'Execute SAI (Action 1) if player is Honored with Cenarion Expedition'), +(22, 3, 17901, 0, 0, 5, 0, 942, 64, 0, 0, 0, 0, '', 'Execute SAI (Action 2) if player is Revered with Cenarion Expedition'), +(22, 4, 17901, 0, 0, 5, 0, 942, 128, 0, 0, 0, 0, '', 'Execute SAI (Action 3) if player is Exalted with Cenarion Expedition'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=7560; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(15, 7560, 0, 0, 0, 5, 0, 942, 240, 0, 0, 0, 0, '', 'Show Gossip Option 0 if player is at least Friendly with Cenarion Expedition'); diff --git a/data/sql/updates/db_world/2023_03_20_07.sql b/data/sql/updates/db_world/2023_03_20_07.sql new file mode 100644 index 000000000..174677381 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_20_07.sql @@ -0,0 +1,695 @@ +-- DB update 2023_03_20_06 -> 2023_03_20_07 +-- +DELETE FROM `creature` WHERE `map`=552 AND `id1` IN (15384, 20864, 20865, 20866, 20867, 20868, 20869, 20870, 20873, 20875, 20879, 20880, 20881, 20882, 20883, 20885, 20886, 20896, 20897, 20898, 20900, 20901, 20902, 20904, 20978, 21303, 21304, 21436, 21437, 21438, 21439, 21440, 21702, 21962) AND `guid` IN (10997,79391,79394,79398,79405,79406,79433,79444,79445,79451,79452,79453,79454,79455,79456,79457,79458,79465,79466,79467,79468,79474,79477,79478,79479,79480,79481,79485,79486,79511,79513,79520,79532,79534,79542,79549,79553,79562,79563,79564,79565,79566,79567,79568,79569,79575,79576,79577,79578,79579,79582,79583,79584,79585,79586,86053,86054,86055,86056,86057,86058,213212,213213,213214,213215,213216,213217,213218,213219,213220,213221,213222,213223,213224); +DELETE FROM `creature_addon` WHERE `guid` IN (79433,79458,79477,79485,79569,79579,86053); +DELETE FROM `linked_respawn` WHERE `linkedGuid` IN (79391, 79451, 79398) AND `guid` IN (10997,79391,79394,79398,79405,79406,79433,79444,79445,79451,79452,79453,79454,79455,79456,79457,79458,79465,79466,79467,79468,79474,79477,79478,79479,79480,79481,79485,79486,79511,79513,79520,79532,79534,79542,79549,79553,79562,79563,79564,79565,79566,79567,79568,79569,79575,79576,79577,79578,79579,79582,79583,79584,79585,79586,86053,86054,86055,86056,86057,86058,213212,213213,213214,213215,213216,213217,213218,213219,213220,213221,213222,213223,213224,79392,79393,79395,79396,79397,79399,79400); +DELETE FROM `creature_formations` WHERE `leaderGUID` IN (79452,79454,79458,79485,79569) AND `memberGUID` IN (79444,79445,79452,79453,79454,79455,79456,79457,79458,79478,79479,79480,79485,79566,79567,79568,79569); + +SET @CGUID := 138900; + +DELETE FROM `creature` WHERE `map`=552 AND `id1` IN (15384, 20864, 20865, 20866, 20867, 20868, 20869, 20870, 20873, 20875, 20879, 20880, 20881, 20882, 20883, 20885, 20886, 20896, 20897, 20898, 20900, 20901, 20902, 20904, 20978, 21303, 21304, 21436, 21437, 21438, 21439, 21440, 21702, 21962) AND `guid` BETWEEN @CGUID AND @CGUID+97; +INSERT INTO `creature` (`guid`, `id1`, `id2`, `id3`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `MovementType`, `VerifiedBuild`) VALUES +(@CGUID+0 , 15384, 0, 0, 552, 3848, 3848, 3, 1, 0, 466.582, -126.723, 43.1834, 3.7001, 86400, 0, 0, 48526), +(@CGUID+1 , 20864, 0, 0, 552, 3848, 3848, 3, 1, 0, 208.993, 6.98038, -7.38507, 4.14757, 86400, 3, 1, 48526), +(@CGUID+2 , 20864, 0, 0, 552, 3848, 3848, 3, 1, 0, 202.78, -41.4077, -10.0187, 5.84685, 86400, 0, 0, 48526), +(@CGUID+3 , 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 200.93, -116.517, -10.08, 3.51618, 86400, 0, 0, 48526), +(@CGUID+4 , 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 211.605, 22.3997, 48.2897, 6.27721, 86400, 0, 0, 48526), +(@CGUID+5 , 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 200.716, -60.7629, -10.0145, 0.159309, 86400, 0, 0, 48526), +(@CGUID+6 , 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 200.498, -118.427, -10.0377, 3.10863, 86400, 0, 0, 48526), +(@CGUID+7 , 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 224.424, -160.839, -10.059, 6.26747, 86400, 0, 0, 48526), +(@CGUID+8 , 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 202.519, -57.6077, -10.0842, 6.217, 86400, 0, 0, 48526), +(@CGUID+9 , 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 201.551, -36.3583, -10.0187, 4.85512, 86400, 0, 0, 48526), +(@CGUID+10, 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 284.425, 39.5287, 22.5245, 1.56625, 86400, 25, 1, 48526), -- Run ON +(@CGUID+11, 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 200.566, -55.4827, -10.0178, 6.0259, 86400, 0, 0, 48526), +(@CGUID+12, 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 203.982, -114.663, -10.0376, 3.58174, 86400, 0, 0, 48526), +(@CGUID+13, 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 203.65, -60.4947, -10.0155, 0.499034, 86400, 0, 0, 48526), +(@CGUID+14, 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 200.014, -115.796, -10.0399, 3.40614, 86400, 0, 0, 48526), +(@CGUID+15, 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 225.645, 146.931, 22.3816, 3.11106, 86400, 0, 0, 48526), +(@CGUID+16, 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 208.762, 11.0853, -7.38507, 5.43281, 86400, 0, 0, 48526), +(@CGUID+17, 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 198.804, -58.2479, -10.0106, 6.16678, 86400, 0, 0, 48526), +(@CGUID+18, 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 205.741, -44.8498, -10.0129, 3.5465, 86400, 0, 0, 48526), +(@CGUID+19, 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 201.692, -113.662, -10.0399, 3.59385, 86400, 0, 0, 48526), +(@CGUID+20, 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 212.919, 6.28938, -7.38507, 4.73786, 86400, 0, 0, 48526), +(@CGUID+21, 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 203.556, -117.874, -10.0371, 3.46516, 86400, 0, 0, 48526), +(@CGUID+22, 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 284.465, -5.35082, 22.5245, 2.31213, 86400, 27, 1, 48526), -- Run ON +(@CGUID+23, 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 203.914, -56.3795, -10.0144, 0.123065, 86400, 0, 0, 48526), +(@CGUID+24, 20865, 0, 0, 552, 3848, 3848, 3, 1, 0, 258.124, -151.125, -10.1104, 2.60235, 86400, 0, 0, 48526), +(@CGUID+25, 20866, 0, 0, 552, 3848, 3848, 3, 1, 0, 213.597, -151.353, -10.0397, 6.13628, 86400, 0, 0, 48526), +(@CGUID+26, 20866, 0, 0, 552, 3848, 3848, 3, 1, 0, 270.034, -144.989, -10.0953, 3.05795, 86400, 0, 0, 48526), +(@CGUID+27, 20867, 0, 0, 552, 3848, 3848, 3, 1, 0, 232.485, -138.726, -10.0292, 2.01374, 86400, 0, 0, 48526), +(@CGUID+28, 20867, 0, 0, 552, 3848, 3848, 3, 1, 0, 265.458, -183.927, -10.1049, 1.04301, 86400, 5, 1, 48526), +(@CGUID+29, 20868, 0, 0, 552, 3848, 3848, 3, 1, 0, 244.464, -156.903, -10.0211, 0.102379, 86400, 7.5, 1, 48526), +(@CGUID+30, 20868, 0, 0, 552, 3848, 3848, 3, 1, 0, 257.83, -125.837, -10.0399, 0.301955, 86400, 0, 0, 48526), +(@CGUID+31, 20869, 0, 0, 552, 3848, 3848, 3, 1, 0, 255.498, 158.914, 22.3619, 5.41052, 86400, 0, 0, 48526), +(@CGUID+32, 20869, 0, 0, 552, 3848, 3848, 3, 1, 0, 253.942, 131.881, 22.395, 0.767945, 86400, 0, 0, 48526), +(@CGUID+33, 20869, 0, 0, 552, 3848, 3848, 3, 1, 0, 264.287, -61.3211, 22.4534, 5.28835, 86400, 0, 0, 48526), +(@CGUID+34, 20869, 0, 0, 552, 3848, 3848, 3, 1, 0, 336.514, 27.4267, 48.426, 3.83972, 86400, 0, 0, 48526), +(@CGUID+35, 20869, 0, 0, 552, 3848, 3848, 3, 1, 0, 395.413, 18.1948, 48.296, 2.49582, 86400, 0, 0, 48526), +(@CGUID+36, 20870, 0, 0, 552, 3848, 3848, 3, 1, 0, 273.607, -122.98, -10.0399, 2.98738, 86400, 3, 1, 48526), +(@CGUID+37, 20873, 0, 0, 552, 3848, 3848, 3, 1, 0, 275.325, 37.1431, 22.5245, 5.29934, 86400, 0, 0, 48526), +(@CGUID+38, 20873, 0, 0, 552, 3848, 3848, 3, 1, 0, 291.263, 6.76101, 22.5245, 1.59431, 86400, 0, 0, 48526), +(@CGUID+39, 20875, 0, 0, 552, 3848, 3848, 3, 1, 0, 285.004, 23.033, 20.8982, 3.93757, 86400, 5, 1, 48526), +(@CGUID+40, 20875, 0, 0, 552, 3848, 3848, 3, 1, 0, 266.75, -17.8235, 22.5301, 1.74047, 86400, 0, 0, 48526), +(@CGUID+41, 20875, 0, 0, 552, 3848, 3848, 3, 1, 0, 298.612, 57.0632, 22.5251, 1.65806, 86400, 7, 1, 48526), -- Not confident if this is correct path +(@CGUID+42, 20879, 20880, 0, 552, 3848, 3848, 3, 1, 1, 305.736, 148.059, 24.8633, 3.97935, 86400, 0, 0, 48526), +(@CGUID+43, 20879, 20880, 0, 552, 3848, 3848, 3, 1, 1, 285.519, 146.155, 22.3118, 5.79449, 86400, 0, 0, 48526), +(@CGUID+44, 20879, 20880, 0, 552, 3848, 3848, 3, 1, 1, 301.797, 127.444, 22.3108, 1.309, 86400, 0, 0, 48526), +(@CGUID+45, 20881, 0, 0, 552, 3848, 3848, 3, 1, 1, 199.698, 143.018, 22.5007, 4.03355, 86400, 0, 0, 48526), +(@CGUID+46, 20881, 0, 0, 552, 3848, 3848, 3, 1, 1, 148.05, 146.994, 20.8982, 6.26573, 86400, 0, 0, 48526), +(@CGUID+47, 20882, 0, 0, 552, 3848, 3848, 3, 1, 0, 163.215, 165.66, 22.5245, 5.37561, 86400, 0, 0, 48526), +(@CGUID+48, 20882, 0, 0, 552, 3848, 3848, 3, 1, 0, 189.461, 147.73, 22.5148, 1.45315, 86400, 0, 0, 48526), +(@CGUID+49, 20883, 0, 0, 552, 3848, 3848, 3, 1, 0, 179.365, 152.537, 22.5245, 3.60076, 86400, 0, 0, 48526), +(@CGUID+50, 20885, 0, 0, 552, 3848, 3848, 3, 1, 0, 137.234, 128.506, 22.5245, 1.01229, 86400, 0, 0, 48526), +(@CGUID+51, 20886, 0, 0, 552, 3848, 3848, 3, 1, 1, 136.2, 168.31, 22.5245, 5.23599, 86400, 0, 0, 48526), +(@CGUID+52, 20896, 0, 0, 552, 3848, 3848, 3, 1, 1, 429.812, 12.0886, 48.2949, 5.20108, 86400, 0, 0, 48526), +(@CGUID+53, 20896, 0, 0, 552, 3848, 3848, 3, 1, 1, 442.455, -16.8151, 48.2128, 4.69741, 86400, 0, 0, 48526), +(@CGUID+54, 20896, 0, 0, 552, 3848, 3848, 3, 1, 1, 433.027, 6.10896, 48.2954, 2.87979, 86400, 0, 0, 48526), +(@CGUID+55, 20896, 0, 0, 552, 3848, 3848, 3, 1, 1, 443.965, -6.1839, 48.2128, 4.97249, 86400, 0, 0, 48526), +(@CGUID+56, 20897, 0, 0, 552, 3848, 3848, 3, 1, 1, 434.228, 9.77371, 48.2944, 3.57792, 86400, 0, 0, 48526), +(@CGUID+57, 20897, 0, 0, 552, 3848, 3848, 3, 1, 1, 440.773, -2.03931, 48.2128, 4.83059, 86400, 0, 0, 48526), +(@CGUID+58, 20898, 0, 0, 552, 3848, 3848, 3, 1, 0, 438.674, -138.424, 43.0828, 1.97497, 86400, 0, 0, 48526), +(@CGUID+59, 20898, 0, 0, 552, 3848, 3848, 3, 1, 0, 457.118, -137.569, 43.105, 5.92215, 86400, 5, 1, 48526), +(@CGUID+60, 20900, 0, 0, 552, 3848, 3848, 3, 1, 1, 432.257, -114.243, 43.1834, 1.13446, 86400, 0, 0, 48526), +(@CGUID+61, 20900, 0, 0, 552, 3848, 3848, 3, 1, 1, 429.592, -157.363, 43.077, 1.95317, 86400, 8.5, 1, 48526), +(@CGUID+62, 20901, 0, 0, 552, 3848, 3848, 3, 1, 1, 431.237, -72.8754, 48.4787, 0.174533, 86400, 0, 0, 48526), +(@CGUID+63, 20901, 0, 0, 552, 3848, 3848, 3, 1, 1, 460.864, -74.1793, 48.4787, 2.94961, 86400, 0, 0, 48526), +(@CGUID+64, 20902, 0, 0, 552, 3848, 3848, 3, 1, 0, 436.245, -76.3012, 48.4787, 1.74533, 86400, 0, 0, 48526), +(@CGUID+65, 20902, 0, 0, 552, 3848, 3848, 3, 1, 0, 457.611, -76.815, 48.4787, 1.09956, 86400, 0, 0, 48526), +(@CGUID+66, 20904, 0, 0, 552, 3848, 3848, 3, 1, 0, 445.803, -169.007, 43.6442, 4.7473, 86400, 0, 0, 48526), +(@CGUID+67, 20978, 0, 0, 552, 3848, 3848, 3, 1, 0, 117.75, 198.164, 22.5245, 3.735, 86400, 0, 0, 48526), +(@CGUID+68, 20978, 0, 0, 552, 3848, 3848, 3, 1, 0, 117.826, 198.081, 22.5245, 5.18363, 86400, 0, 0, 48526), +(@CGUID+69, 20978, 0, 0, 552, 3848, 3848, 3, 1, 0, 117.869, 198.278, 22.5245, 1.97222, 86400, 0, 0, 48526), +(@CGUID+70, 20978, 0, 0, 552, 3848, 3848, 3, 1, 0, 117.861, 198.068, 22.5245, 4.41568, 86400, 0, 0, 48526), +(@CGUID+71, 20978, 0, 0, 552, 3848, 3848, 3, 1, 0, 117.914, 198.068, 22.5245, 1.46608, 86400, 0, 0, 48526), +(@CGUID+72, 20978, 0, 0, 552, 3848, 3848, 3, 1, 0, 117.959, 198.308, 22.5245, 1.65806, 86400, 0, 0, 48526), +(@CGUID+73, 21303, 0, 0, 552, 3848, 3848, 3, 1, 1, 272.103, -59.0341, 22.4533, 0.506145, 86400, 0, 0, 48526), +(@CGUID+74, 21303, 0, 0, 552, 3848, 3848, 3, 1, 1, 206.342, -98.2784, -10.0262, 2.6529, 86400, 0, 0, 48526), +(@CGUID+75, 21303, 0, 0, 552, 3848, 3848, 3, 1, 1, 253.689, 139.868, 22.4121, 2.30383, 86400, 0, 0, 48526), +(@CGUID+76, 21303, 0, 0, 552, 3848, 3848, 3, 1, 1, 272.501, -40.1927, 22.509, 2.9147, 86400, 0, 0, 48526), +(@CGUID+77, 21303, 0, 0, 552, 3848, 3848, 3, 1, 1, 298.848, 151.748, 22.3105, 5.70723, 86400, 0, 0, 48526), +(@CGUID+78, 21303, 0, 0, 552, 3848, 3848, 3, 1, 1, 312.929, -7.19062, 22.5245, 4.03171, 86400, 0, 0, 48526), +(@CGUID+79, 21303, 0, 0, 552, 3848, 3848, 3, 1, 1, 276.173, -179.818, -10.0223, 1.43117, 86400, 0, 0, 48526), +(@CGUID+80, 21303, 0, 0, 552, 3848, 3848, 3, 1, 1, 311.119, -5.50369, 22.5245, 1.5708, 86400, 0, 0, 48526), +(@CGUID+81, 21303, 0, 0, 552, 3848, 3848, 3, 1, 1, 283.728, 130.245, 22.3065, 0.575959, 86400, 0, 0, 48526), +(@CGUID+82, 21303, 0, 0, 552, 3848, 3848, 3, 1, 1, 392.063, 24.8857, 48.296, 6.16101, 86400, 0, 0, 48526), +(@CGUID+83, 21303, 0, 0, 552, 3848, 3848, 3, 1, 1, 395.076, 27.5835, 48.296, 4.41568, 86400, 0, 0, 48526), +(@CGUID+84, 21304, 0, 0, 552, 3848, 3848, 3, 1, 1, 293.885, 70.9368, 22.5262, 1.55334, 86400, 0, 0, 48526), +(@CGUID+85, 21304, 0, 0, 552, 3848, 3848, 3, 1, 1, 257.344, 155.568, 22.3321, 4.71239, 86400, 0, 0, 48526), +(@CGUID+86, 21304, 0, 0, 552, 3848, 3848, 3, 1, 1, 226.184, -162.096, -10.0352, 0.349066, 86400, 0, 0, 48526), +(@CGUID+87, 21304, 0, 0, 552, 3848, 3848, 3, 1, 1, 291.632, 70.5809, 22.5269, 2.00713, 86400, 0, 0, 48526), +(@CGUID+88, 21304, 0, 0, 552, 3848, 3848, 3, 1, 1, 197.955, -86.8133, -10.0174, 5.8294, 86400, 0, 0, 48526), +(@CGUID+89, 21304, 0, 0, 552, 3848, 3848, 3, 1, 1, 253.951, 155.001, 22.3807, 4.93928, 86400, 0, 0, 48526), +(@CGUID+90, 21436, 0, 0, 552, 3848, 3848, 3, 1, 0, 478.326, -148.505, 55.2775, 2.54818, 86400, 0, 0, 48526), +(@CGUID+91, 21437, 0, 0, 552, 3848, 3848, 3, 1, 0, 413.292, -148.378, 54.8771, 0.296706, 86400, 0, 0, 48526), +(@CGUID+92, 21438, 0, 0, 552, 3848, 3848, 3, 1, 0, 420.179, -174.396, 54.8305, 0.0872665, 86400, 0, 0, 48526), +(@CGUID+93, 21439, 0, 0, 552, 3848, 3848, 3, 1, 0, 471.795, -174.58, 55.0008, 2.87979, 86400, 0, 0, 48526), +(@CGUID+94, 21440, 0, 0, 552, 3848, 3848, 3, 1, 0, 445.763, -191.639, 57.5766, 3.9619, 86400, 0, 0, 48526), +(@CGUID+95, 21702, 0, 0, 552, 3848, 3848, 3, 1, 1, 429.409, 7.09051, 48.2896, 1.23918, 86400, 0, 0, 48526), +(@CGUID+96, 21702, 0, 0, 552, 3848, 3848, 3, 1, 1, 444.836, -2.0454, 48.2128, 4.61222, 86400, 0, 0, 48526), +(@CGUID+97, 21962, 0, 0, 552, 3848, 3848, 3, 1, 0, 468.652, 12.2102, 49.3853, 1.29154, 86400, 0, 0, 48526); + +-- Pathing for Protean Horror Entry: 20865 +SET @NPC := @CGUID+8; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=202.3496,`position_y`=-61.534344,`position_z`=-10.108492 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,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,202.3496,-61.534344,-10.108492,NULL,0,0,0,100,0), +(@PATH,2,208.22867,-57.986126,-10.064104,NULL,0,0,0,100,0), +(@PATH,3,208.07149,-29.18059,-10.091507,NULL,0,0,0,100,0), +(@PATH,4,210.0403,-21.635162,-10.089756,NULL,0,0,0,100,0), +(@PATH,5,223.61438,-13.931542,-9.641647,NULL,0,0,0,100,0), +(@PATH,6,223.23763,3.027244,-7.9025264,NULL,0,0,0,100,0), +(@PATH,7,201.15181,21.944275,-8.097511,NULL,0,0,0,100,0), +(@PATH,8,183.84764,17.15893,-10.106732,NULL,0,0,0,100,0), +(@PATH,9,186.73946,2.564413,-10.102718,NULL,0,0,0,100,0), +(@PATH,10,197.93507,-17.824755,-10.097534,NULL,0,0,0,100,0), +(@PATH,11,197.42511,-56.04032,-10.106724,NULL,0,0,0,100,0); +-- 0x2042204500146040001E5D0005135613 .go xyz 202.3496 -61.534344 -10.108492 + +DELETE FROM `creature_formations` WHERE `leaderGUID` = @CGUID+8 AND `memberGUID` IN (@CGUID+8,@CGUID+23,@CGUID+11,@CGUID+17,@CGUID+5,@CGUID+13); +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES +(@CGUID+8, @CGUID+8 , 0, 0, 3), +(@CGUID+8, @CGUID+23, 3, 0, 515), +(@CGUID+8, @CGUID+11, 3, 72, 515), +(@CGUID+8, @CGUID+17, 3, 144, 515), +(@CGUID+8, @CGUID+5 , 3, 216, 515), +(@CGUID+8, @CGUID+13, 3, 288, 515); + +-- Pathing for Protean Horror Entry: 20865 +SET @NPC := @CGUID+3; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=202.52419,`position_y`=-114.3171,`position_z`=-10.123289 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,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,202.52419,-114.3171,-10.123289,NULL,0,0,0,100,0), +(@PATH,2,195.13905,-118.79325,-10.12332,NULL,0,0,0,100,0), +(@PATH,3,195.03548,-145.50099,-10.116196,NULL,0,0,0,100,0), +(@PATH,4,212.1964,-157.94833,-10.113149,NULL,0,0,0,100,0), +(@PATH,5,231.8269,-157.86928,-10.112798,NULL,0,0,0,100,0), +(@PATH,6,235.90848,-164.12933,-10.106403,NULL,0,0,0,100,0), +(@PATH,7,235.05792,-181.03023,-10.108897,NULL,0,0,0,100,0), +(@PATH,8,223.98999,-186.03038,-10.10672,NULL,0,0,0,100,0), +(@PATH,9,230.39694,-194.16634,-10.107081,NULL,0,0,0,100,0), +(@PATH,10,259.7843,-195.02864,-10.10507,NULL,0,0,0,100,0), +(@PATH,11,272.83566,-175.49477,-10.104804,NULL,0,0,0,100,0), +(@PATH,12,278.45392,-153.14717,-10.1086855,NULL,0,0,0,100,0), +(@PATH,13,280.5827,-136.87622,-10.121723,NULL,0,0,0,100,0), +(@PATH,14,261.5679,-119.71741,-10.123237,NULL,0,0,0,100,0), +(@PATH,15,245.82552,-122.29325,-10.123243,NULL,0,0,0,100,0), +(@PATH,16,220.30566,-121.72503,-10.117749,NULL,0,0,0,100,0); +-- 0x2042204500146040001E5D0009135613 .go xyz 202.52419 -114.3171 -10.123289 + +DELETE FROM `creature_formations` WHERE `leaderGUID` = @CGUID+3 AND `memberGUID` IN (@CGUID+3,@CGUID+6,@CGUID+21,@CGUID+12,@CGUID+19,@CGUID+14); +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES +(@CGUID+3, @CGUID+3 , 0, 0, 3), +(@CGUID+3, @CGUID+6 , 3, 0, 515), +(@CGUID+3, @CGUID+21, 3, 72, 515), +(@CGUID+3, @CGUID+12, 3, 144, 515), +(@CGUID+3, @CGUID+19, 3, 216, 515), +(@CGUID+3, @CGUID+14, 3, 288, 515); + +-- Pathing for Protean Horror Entry: 20865 +SET @NPC := @CGUID+15; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=301.12772,`position_y`=67.612755,`position_z`=22.438244 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,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,301.12772,67.612755,22.438244,NULL,0,1,0,100,0), +(@PATH,2,302.1253,107.05763,22.224653,NULL,0,1,0,100,0), +(@PATH,3,300.1723,132.34288,22.228413,NULL,0,1,0,100,0), +(@PATH,4,284.58438,144.91377,22.22117,NULL,0,1,0,100,0), +(@PATH,5,244.56267,147.19673,22.280977,NULL,0,1,0,100,0), +(@PATH,6,228.7991,147.2889,22.307953,NULL,0,1,0,100,0), +(@PATH,7,206.13211,147.52689,22.540571,NULL,0,1,0,100,0), +(@PATH,8,176.72488,163.51595,22.441147,NULL,0,1,0,100,0), +(@PATH,9,166.14273,146.77989,22.441147,NULL,0,1,0,100,0), +(@PATH,10,176.24336,130.70343,22.441147,NULL,0,1,0,100,0), +(@PATH,11,206.13625,147.05757,22.540552,NULL,0,1,0,100,0), +(@PATH,12,244.60933,146.82315,22.280828,NULL,0,1,0,100,0), +(@PATH,13,284.55133,144.52907,22.221207,NULL,0,1,0,100,0), +(@PATH,14,301.51114,107.04327,22.224653,NULL,0,1,0,100,0); +-- 0x2042204500146040001E5D000E135613 .go xyz 301.12772 67.612755 22.438244 + +-- Pathing for Protean Horror Entry: 20865 +SET @NPC := @CGUID+04; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=208.37445,`position_y`=22.330988,`position_z`=48.193367 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,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,208.37445,22.330988,48.193367,NULL,0,1,0,100,0), +(@PATH,2,233.10588,22.271296,48.33915,NULL,0,1,0,100,0), +(@PATH,3,280.1431,22.352139,48.35042,NULL,0,1,0,100,0), +(@PATH,4,327.02222,22.415138,48.35042,NULL,0,1,0,100,0), +(@PATH,5,365.33887,22.197266,48.212696,NULL,0,1,0,100,0), +(@PATH,6,414.51904,22.458496,48.214485,NULL,0,1,0,100,0), +(@PATH,7,458.984,1.867482,48.221653,NULL,0,1,0,100,0), +(@PATH,8,468.03598,14.782437,49.484177,NULL,0,1,0,100,0), +(@PATH,9,459.82727,37.411278,50.84645,NULL,0,1,0,100,0), +(@PATH,10,434.82935,44.72688,49.352238,NULL,0,1,0,100,0), +(@PATH,11,414.516,22.780737,48.215786,NULL,0,1,0,100,0), +(@PATH,12,365.25113,22.579336,48.212696,NULL,0,1,0,100,0), +(@PATH,13,326.98926,22.717283,48.35042,NULL,0,1,0,100,0), +(@PATH,14,280.14618,22.75021,48.35042,NULL,0,1,0,100,0), +(@PATH,15,233.10696,22.53368,48.33978,NULL,0,1,0,100,0); +-- 0x2042204500146040001E5D000E935613 .go xyz 208.37445 22.330988 48.193367 + +-- Pathing for Soul Devourer Entry: 20866 +SET @NPC := @CGUID+25; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=208.53522,`position_y`=-152.27895,`position_z`=-10.112484 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,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,208.53522,-152.27895,-10.112484,NULL,0,0,0,100,0), +(@PATH,2,221.87071,-152.57721,-10.11229,NULL,0,0,0,100,0), +(@PATH,3,237.18454,-152.618,-10.10515,NULL,0,0,0,100,0), +(@PATH,4,253.95305,-152.81169,-10.106597,NULL,0,0,0,100,0), +(@PATH,5,253.27829,-175.50299,-10.103562,NULL,0,0,0,100,0), +(@PATH,6,253.95305,-152.81169,-10.106597,NULL,0,0,0,100,0), +(@PATH,7,237.18454,-152.618,-10.10515,NULL,0,0,0,100,0), +(@PATH,8,221.87071,-152.57721,-10.11229,NULL,0,0,0,100,0); +-- 0x2042204500146080001E5D0000135613 .go xyz 208.53522 -152.27895 -10.112484 + +-- Pathing for Soul Devourer Entry: 20866 +SET @NPC := @CGUID+26; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=276.79434,`position_y`=-145.29054,`position_z`=-10.11652 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,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,276.79434,-145.29054,-10.11652,NULL,0,0,0,100,0), +(@PATH,2,256.17062,-143.82663,-10.110913,NULL,0,0,0,100,0), +(@PATH,3,245.10881,-143.02563,-10.110268,NULL,0,0,0,100,0), +(@PATH,4,245.43143,-128.669,-10.117723,NULL,0,0,0,100,0), +(@PATH,5,207.70795,-129.07368,-10.109515,NULL,0,0,0,100,0), +(@PATH,6,207.70795,-129.07368,-10.109515,NULL,0,0,0,100,0), +(@PATH,7,245.43143,-128.669,-10.117723,NULL,0,0,0,100,0), +(@PATH,8,245.10881,-143.02563,-10.110268,NULL,0,0,0,100,0), +(@PATH,9,256.17062,-143.82663,-10.110913,NULL,0,0,0,100,0); +-- 0x2042204500146080001E5D0000935613 .go xyz 276.79434 -145.29054 -10.11652 + +-- Pathing for Skulking Witch Entry: 20882 +SET @NPC := @CGUID+48; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=124.99534,`position_y`=147.42181,`position_z`=22.441147 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,0, '16380'); +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,124.99534,147.42181,22.441147,NULL,0,0,0,100,0), +(@PATH,2,155.76085,137.09187,20.814901,NULL,0,0,0,100,0), +(@PATH,3,172.89482,137.45894,22.441147,NULL,0,0,0,100,0), +(@PATH,4,190.26704,137.98639,22.441149,NULL,0,0,0,100,0), +(@PATH,5,190.19278,146.74756,22.441149,NULL,0,0,0,100,0), +(@PATH,6,190.34236,155.19014,22.44115,NULL,0,0,0,100,0), +(@PATH,7,172.85747,156.48407,22.441147,NULL,0,0,0,100,0), +(@PATH,8,156.17549,158.80054,20.814901,NULL,0,0,0,100,0); +-- 0x2042204500146480001E5D0000135613 .go xyz 124.99534 147.42181 22.441147 + +-- Pathing for Ethereum Slayer Entry: 20896 +SET @NPC := @CGUID+53; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=442.4002,`position_y`=-20.45843,`position_z`=48.212788 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,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,442.4002,-20.45843,48.212788,NULL,0,0,0,100,0), +(@PATH,2,449.3031,-20.429773,48.238365,NULL,0,0,0,100,0), +(@PATH,3,449.4046,1.538476,48.219746,NULL,0,0,0,100,0), +(@PATH,4,463.29834,5.452207,48.305122,NULL,0,0,0,100,0), +(@PATH,5,466.79602,19.510277,49.99231,NULL,0,0,0,100,0), +(@PATH,6,460.21735,36.802353,50.84645,NULL,0,0,0,100,0), +(@PATH,7,439.6564,44.632866,49.722843,NULL,0,0,0,100,0), +(@PATH,8,427.544,41.33546,48.411602,NULL,0,0,0,100,0), +(@PATH,9,426.6427,32.553425,48.206783,NULL,0,0,0,100,0), +(@PATH,10,436.76343,19.38034,48.21401,NULL,0,0,0,100,0), +(@PATH,11,442.88638,11.988906,48.23025,NULL,0,0,0,100,0); +-- 0x2042204500146800001E5D0001135613 .go xyz 442.4002 -20.45843 48.212788 + +DELETE FROM `creature_formations` WHERE `leaderGUID` = @CGUID+53 AND `memberGUID` IN (@CGUID+53,@CGUID+55,@CGUID+96,@CGUID+57); +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES +(@CGUID+53, @CGUID+53, 0, 0, 3), +(@CGUID+53, @CGUID+55, 3, 0, 515), +(@CGUID+53, @CGUID+96, 3, 120, 515), +(@CGUID+53, @CGUID+57, 3, 240, 515); + +-- Pathing for Gargantuan Abyssal Entry: 20898 +SET @NPC := @CGUID+58; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=456.1953,`position_y`=-162.02287,`position_z`=43.097973 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,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,456.1953,-162.02287,43.097973,NULL,0,0,0,100,0), +(@PATH,2,444.38632,-151.77869,43.037457,NULL,0,0,0,100,0), +(@PATH,3,437.77167,-136.3138,43.100117,NULL,0,0,0,100,0), +(@PATH,4,441.69543,-123.04215,43.10011,NULL,0,0,0,100,0), +(@PATH,5,445.06357,-105.65653,43.100105,NULL,0,0,0,100,0), +(@PATH,6,446.46475,-89.316284,43.100094,NULL,0,0,0,100,0), +(@PATH,7,446.41287,-65.38533,48.39542,NULL,0,0,0,100,0), +(@PATH,8,446.46475,-89.316284,43.100094,NULL,0,0,0,100,0), +(@PATH,9,445.06357,-105.65653,43.100105,NULL,0,0,0,100,0), +(@PATH,10,441.69543,-123.04215,43.10011,NULL,0,0,0,100,0), +(@PATH,11,437.77167,-136.3138,43.100117,NULL,0,0,0,100,0), +(@PATH,12,444.38632,-151.77869,43.037457,NULL,0,0,0,100,0); +-- 0x2042204500146880001E5D0000935613 .go xyz 456.1953 -162.02287 43.097973 + +/* + Scripted Pathing +*/ + +DELETE FROM `waypoints` WHERE `point_comment` LIKE 'Protean Horror%' AND `entry` BETWEEN 2086500 AND 2086505; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `orientation`, `point_comment`) VALUES +-- Pathing for Protean Horror Entry: 20865 GUID: +07 +-- Randomly Selected at the end +(2086500,1,237.77904,-161.02078,-9.86023,NULL,'Protean Horror - Random Path 1'), +(2086500,2,236.75801,-193.39262,-10.107179,NULL,'Protean Horror - Random Path 1'), +(2086500,3,260.3886,-194.68185,-10.105082,NULL,'Protean Horror - Random Path 1'), +(2086500,4,268.60522,-158.09924,-10.105517,NULL,'Protean Horror - Random Path 1'), +(2086500,5,237.7268,-160.15494,-10.101749,NULL,'Protean Horror - Random Path 1'), +(2086500,6,220.80006,-160.14894,-10.113282,NULL,'Protean Horror - Random Path 1'), + +(2086501,1,202.58867,-149.75804,-10.114253,NULL,'Protean Horror - Random Path 2'), +(2086501,2,202.54631,-119.9808,-10.119678,NULL,'Protean Horror - Random Path 2'), +(2086501,3,235.29565,-126.66605,-10.1168585,NULL,'Protean Horror - Random Path 2'), +(2086501,4,260.4425,-120.10798,-10.123238,NULL,'Protean Horror - Random Path 2'), +(2086501,5,261.34445,-148.69566,-10.109158,NULL,'Protean Horror - Random Path 2'), +(2086501,6,220.35661,-161.02452,-10.113402,NULL,'Protean Horror - Random Path 2'), + +(2086502,1 ,228.45674,-182.32353,-0.4047474,NULL,'Protean Horror - Random Path 3'), +(2086502,2 ,242.84274,-189.01254,6.2220397,NULL,'Protean Horror - Random Path 3'), +(2086502,3 ,258.3724,-185.33528,13.020767,NULL,'Protean Horror - Random Path 3'), +(2086502,4 ,267.94284,-170.10384,20.863707,NULL,'Protean Horror - Random Path 3'), +(2086502,5 ,267.90543,-139.87071,22.630386,NULL,'Protean Horror - Random Path 3'), +(2086502,6 ,267.39816,-90.36618,22.497723,NULL,'Protean Horror - Random Path 3'), +(2086502,7 ,267.34595,-139.87727,22.635983,NULL,'Protean Horror - Random Path 3'), +(2086502,8 ,267.20602,-169.32367,21.112097,NULL,'Protean Horror - Random Path 3'), +(2086502,9 ,258.33258,-183.84918,13.519743,NULL,'Protean Horror - Random Path 3'), +(2086502,10,243.24022,-187.99068,6.286567,NULL,'Protean Horror - Random Path 3'), +(2086502,11,229.67354,-182.05469,-0.16981333,NULL,'Protean Horror - Random Path 3'), +(2086502,12,220.87141,-168.25581,-7.4928436,NULL,'Protean Horror - Random Path 3'), +(2086502,13,220.35635,-160.70712,-10.113361,NULL,'Protean Horror - Random Path 3'), +-- Pathing for Protean Horror Entry: 20865 GUID: +24 +-- Randomly Selected at the end +(2086503,1,261.6127,-189.98672,-10.10487,NULL,'Protean Horror - Random Path 1'), +(2086503,2,227.53447,-192.88065,-10.105654,NULL,'Protean Horror - Random Path 1'), +(2086503,3,234.71745,-166.73166,-10.107577,NULL,'Protean Horror - Random Path 1'), +(2086503,4,273.68204,-161.13853,-10.110326,NULL,'Protean Horror - Random Path 1'), + +(2086504,1,230.67825,-159.68645,-10.113051,NULL,'Protean Horror - Random Path 2'), +(2086504,2,230.01398,-122.99717,-10.118055,NULL,'Protean Horror - Random Path 2'), +(2086504,3,260.8361,-119.30777,-10.123237,NULL,'Protean Horror - Random Path 2'), +(2086504,4,274.492,-160.3677,-10.11127,NULL,'Protean Horror - Random Path 2'), + +(2086505,1,246.39204,-144.1044,-10.109891,NULL,'Protean Horror - Random Path 3'), +(2086505,2,216.76047,-123.82127,-10.108683,NULL,'Protean Horror - Random Path 3'), +(2086505,3,202.98213,-110.55506,-10.123076,NULL,'Protean Horror - Random Path 3'), +(2086505,4,194.93211,-130.28767,-10.12011,NULL,'Protean Horror - Random Path 3'), +(2086505,5,194.4479,-140.82317,-10.118727,NULL,'Protean Horror - Random Path 3'), +(2086505,6,224.49347,-142.0825,-10.110895,NULL,'Protean Horror - Random Path 3'), +(2086505,7,253.40977,-160.71367,-10.1047535,NULL,'Protean Horror - Random Path 3'), +(2086505,8,274.55026,-161.28899,-10.110444,NULL,'Protean Horror - Random Path 3'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` IN (-(@CGUID+07), -(@CGUID+24))); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-(@CGUID+07), 0, 0, 0, 0, 0, 100, 0, 2000, 8000, 7000, 7000, 0, 11, 36612, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - In Combat - Cast \'Toothy Bite\''), +(-(@CGUID+07), 0, 1, 0, 8, 0, 50, 512, 36327, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Spellhit \'Shoot Arcane Explosion Arrow\' - Kill Target'), +(-(@CGUID+07), 0, 1001, 0, 11, 0, 100, 512, 0, 0, 0, 0, 0, 87, 2086500, 2086501, 2086502, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Respawn - Run Random Script'), +(-(@CGUID+07), 0, 1002, 0, 58, 0, 100, 0, 0, 0, 0, 0, 0, 87, 2086500, 2086501, 2086502, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Waypoint Finished - Run Random Script'), + +(-(@CGUID+24), 0, 0, 0, 0, 0, 100, 0, 2000, 8000, 7000, 7000, 0, 11, 36612, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - In Combat - Cast \'Toothy Bite\''), +(-(@CGUID+24), 0, 1, 0, 8, 0, 50, 512, 36327, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Spellhit \'Shoot Arcane Explosion Arrow\' - Kill Target'), +(-(@CGUID+24), 0, 1001, 0, 11, 0, 100, 512, 0, 0, 0, 0, 0, 87, 2086503, 2086504, 2086505, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Respawn - Run Random Script'), +(-(@CGUID+24), 0, 1002, 0, 58, 0, 100, 0, 0, 0, 0, 0, 0, 87, 2086503, 2086504, 2086505, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Waypoint Finished - Run Random Script'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` BETWEEN 2086500 AND 2086505); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(2086500, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 53, 1, 2086500, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - Actionlist - Start Waypoint'), +(2086501, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 53, 1, 2086501, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - Actionlist - Start Waypoint'), +(2086502, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 53, 1, 2086502, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - Actionlist - Start Waypoint'), +(2086503, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 53, 1, 2086503, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - Actionlist - Start Waypoint'), +(2086504, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 53, 1, 2086504, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - Actionlist - Start Waypoint'), +(2086505, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 53, 1, 2086505, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - Actionlist - Start Waypoint'); + +-- Pathing for Protean Nightmare Entry: 20864 +DELETE FROM `waypoints` WHERE `point_comment` LIKE 'Protean Nightmare%' AND `entry` BETWEEN 2086400 AND 2086403; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `orientation`, `point_comment`) VALUES +-- @CGUID+01 +(2086400,1,217.09438,9.082261,-7.4683995,NULL,'Protean Nightmare'), +(2086400,2,224.82596,-1.105318,-8.197451,NULL,'Protean Nightmare'), +(2086400,3,223.71288,-13.408787,-9.599378,NULL,'Protean Nightmare'), +(2086400,4,212.49054,-17.97817,-10.091022,NULL,'Protean Nightmare'), +(2086400,5,198.7105,-5.965413,-10.102091,NULL,'Protean Nightmare - Random Movement'), -- 20-30s of random movement (3y) +(2086401,1,192.63458,6.129091,-10.10528,NULL,'Protean Nightmare'), +(2086401,2,183.20636,12.026545,-10.096576,NULL,'Protean Nightmare'), +(2086401,3,187.25227,20.871046,-9.640596,NULL,'Protean Nightmare'), +(2086401,4,196.87997,22.969841,-8.600537,NULL,'Protean Nightmare'), +(2086401,5,205.79718,18.459171,-7.626488,NULL,'Protean Nightmare'), +(2086401,6,208.34787,9.844978,-7.4684005,NULL,'Protean Nightmare'), +(2086401,7,208.99312,6.980381,-7.4684,2.862339973449707031,'Protean Nightmare - Random Movement'), -- 20-30s of random movement (3y) +-- @CGUID+02 +(2086402,1,203.17947,-32.20689,-10.101378,NULL,'Protean Nightmare'), +(2086402,2,203.19337,-20.843853,-10.093281,NULL,'Protean Nightmare - Random Movement'), -- 20-30s of random movement (3y) +(2086403,1,203.17947,-32.20689,-10.101378,NULL,'Protean Nightmare'), +(2086403,2,202.77959,-41.40766,-10.095723,5.846852779388427734,'Protean Nightmare - Random Movement'); -- 20-30s of random movement (3y) + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` IN (-(@CGUID+01),-(@CGUID+02))); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-(@CGUID+01), 0, 0, 0, 0, 0, 100, 2, 2000, 2000, 20000, 20000, 0, 11, 36617, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Gaping Maw\' (Normal Dungeon)'), +(-(@CGUID+01), 0, 1, 0, 0, 0, 100, 4, 2000, 2000, 20000, 20000, 0, 11, 38810, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Gaping Maw\' (Heroic Dungeon)'), +(-(@CGUID+01), 0, 2, 0, 0, 0, 100, 2, 8000, 8000, 20000, 20000, 0, 11, 36619, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Infectious Poison\' (Normal Dungeon)'), +(-(@CGUID+01), 0, 3, 0, 0, 0, 100, 4, 8000, 8000, 20000, 20000, 0, 11, 38811, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Infectious Poison\' (Heroic Dungeon)'), +(-(@CGUID+01), 0, 4, 0, 0, 0, 100, 0, 12000, 12000, 30000, 30000, 0, 11, 36622, 0, 0, 0, 0, 0, 5, 30, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Incubation\''), +(-(@CGUID+01), 0, 5, 0, 8, 0, 50, 512, 36327, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - On Spellhit \'Shoot Arcane Explosion Arrow\' - Kill Target'), +(-(@CGUID+01), 0, 1001, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 80, 2086400, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - On Respawn - Run Script (Start Random Movement and Path 1)'), +(-(@CGUID+01), 0, 1002, 0, 58, 0, 100, 0, 0, 2086400, 0, 0, 0, 80, 2086401, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - On Waypoint Finished - Run Script (Start Random Movement and Path 2)'), +(-(@CGUID+01), 0, 1003, 0, 58, 0, 100, 0, 0, 2086401, 0, 0, 0, 80, 2086400, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - On Waypoint Finished - Run Script (Start Random Movement and Path 1)'), + +(-(@CGUID+02), 0, 0, 0, 0, 0, 100, 2, 2000, 2000, 20000, 20000, 0, 11, 36617, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Gaping Maw\' (Normal Dungeon)'), +(-(@CGUID+02), 0, 1, 0, 0, 0, 100, 4, 2000, 2000, 20000, 20000, 0, 11, 38810, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Gaping Maw\' (Heroic Dungeon)'), +(-(@CGUID+02), 0, 2, 0, 0, 0, 100, 2, 8000, 8000, 20000, 20000, 0, 11, 36619, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Infectious Poison\' (Normal Dungeon)'), +(-(@CGUID+02), 0, 3, 0, 0, 0, 100, 4, 8000, 8000, 20000, 20000, 0, 11, 38811, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Infectious Poison\' (Heroic Dungeon)'), +(-(@CGUID+02), 0, 4, 0, 0, 0, 100, 0, 12000, 12000, 30000, 30000, 0, 11, 36622, 0, 0, 0, 0, 0, 5, 30, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Incubation\''), +(-(@CGUID+02), 0, 5, 0, 8, 0, 50, 512, 36327, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - On Spellhit \'Shoot Arcane Explosion Arrow\' - Kill Target'), +(-(@CGUID+02), 0, 1001, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 80, 2086402, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - On Respawn - Run Script (Start Random Movement and Path 1)'), +(-(@CGUID+02), 0, 1002, 0, 58, 0, 100, 0, 0, 2086402, 0, 0, 0, 80, 2086403, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - On Waypoint Finished - Run Script (Start Random Movement and Path 2)'), +(-(@CGUID+02), 0, 1003, 0, 58, 0, 100, 0, 0, 2086403, 0, 0, 0, 80, 2086402, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - On Waypoint Finished - Run Script (Start Random Movement and Path 1)'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` IN (2086400, 2086401, 2086402, 2086403)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(2086400, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 9, 20865, 0, 10, 1, 0, 0, 0, 0, 'Protean Nightmare - Actionlist - Set Data 1 1 (Stop Follow and Start Random Movement)'), +(2086400, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 89, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - Actionlist - Start Random Movement'), +(2086400, 9, 2, 0, 0, 0, 100, 0, 20000, 40000, 0, 0, 0, 45, 2, 2, 0, 0, 0, 0, 9, 20865, 0, 10, 1, 0, 0, 0, 0, 'Protean Nightmare - Actionlist - Set Data 2 2 (Start Follow and Stop Random Movement)'), +(2086400, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 53, 0, 2086400, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - Actionlist - Start Waypoint'), + +(2086401, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 9, 20865, 0, 10, 1, 0, 0, 0, 0, 'Protean Nightmare - Actionlist - Set Data 1 1 (Stop Follow and Start Random Movement)'), +(2086401, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 89, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - Actionlist - Start Random Movement'), +(2086401, 9, 2, 0, 0, 0, 100, 0, 20000, 40000, 0, 0, 0, 45, 2, 2, 0, 0, 0, 0, 9, 20865, 0, 10, 1, 0, 0, 0, 0, 'Protean Nightmare - Actionlist - Set Data 2 2 (Start Follow and Stop Random Movement)'), +(2086401, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 53, 0, 2086401, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - Actionlist - Start Waypoint'), + +(2086402, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 9, 20865, 0, 10, 1, 0, 0, 0, 0, 'Protean Nightmare - Actionlist - Set Data 1 1 (Stop Follow and Start Random Movement)'), +(2086402, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 89, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - Actionlist - Start Random Movement'), +(2086402, 9, 2, 0, 0, 0, 100, 0, 20000, 40000, 0, 0, 0, 45, 2, 2, 0, 0, 0, 0, 9, 20865, 0, 10, 1, 0, 0, 0, 0, 'Protean Nightmare - Actionlist - Set Data 2 2 (Start Follow and Stop Random Movement)'), +(2086402, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 53, 0, 2086402, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - Actionlist - Start Waypoint'), + +(2086403, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 9, 20865, 0, 10, 1, 0, 0, 0, 0, 'Protean Nightmare - Actionlist - Set Data 1 1 (Stop Follow and Start Random Movement)'), +(2086403, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 89, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - Actionlist - Start Random Movement'), +(2086403, 9, 2, 0, 0, 0, 100, 0, 20000, 40000, 0, 0, 0, 45, 2, 2, 0, 0, 0, 0, 9, 20865, 0, 10, 1, 0, 0, 0, 0, 'Protean Nightmare - Actionlist - Set Data 2 2 (Start Follow and Stop Random Movement)'), +(2086403, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 53, 0, 2086403, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - Actionlist - Start Waypoint'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` IN (-(@CGUID+20),-(@CGUID+16),-(@CGUID+18),-(@CGUID+09))); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-(@CGUID+20), 0, 0, 0, 0, 0, 100, 0, 2000, 8000, 7000, 7000, 0, 11, 36612, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - In Combat - Cast \'Toothy Bite\''), +(-(@CGUID+20), 0, 1, 0, 8, 0, 50, 512, 36327, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Spellhit \'Shoot Arcane Explosion Arrow\' - Kill Target'), +(-(@CGUID+20), 0, 1001, 1002, 38, 0, 100, 0, 1, 1, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Data Set 1 1 (Protean Nightmare) - Start Follow Self'), +(-(@CGUID+20), 0, 1002, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 89, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Data Set 1 1 (Protean Nightmare) - Start Random Movement'), +(-(@CGUID+20), 0, 1003, 0, 38, 0, 100, 0, 2, 2, 0, 0, 0, 29, 1, 135, 0, 0, 0, 0, 10, (@CGUID+01), 20864, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Data Set 2 2 (Protean Nightmare) - Start Follow Closest Creature \'Protean Nightmare\''), + +(-(@CGUID+16), 0, 0, 0, 0, 0, 100, 0, 2000, 8000, 7000, 7000, 0, 11, 36612, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - In Combat - Cast \'Toothy Bite\''), +(-(@CGUID+16), 0, 1, 0, 8, 0, 50, 512, 36327, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Spellhit \'Shoot Arcane Explosion Arrow\' - Kill Target'), +(-(@CGUID+16), 0, 1001, 1002, 38, 0, 100, 0, 1, 1, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Data Set 1 1 (Protean Nightmare) - Start Follow Self'), +(-(@CGUID+16), 0, 1002, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 89, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Data Set 1 1 (Protean Nightmare) - Start Random Movement'), +(-(@CGUID+16), 0, 1003, 0, 38, 0, 100, 0, 2, 2, 0, 0, 0, 29, 1, 225, 0, 0, 0, 0, 10, (@CGUID+01), 20864, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Data Set 2 2 (Protean Nightmare) - Start Follow Closest Creature \'Protean Nightmare\''), + +(-(@CGUID+18), 0, 0, 0, 0, 0, 100, 0, 2000, 8000, 7000, 7000, 0, 11, 36612, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - In Combat - Cast \'Toothy Bite\''), +(-(@CGUID+18), 0, 1, 0, 8, 0, 50, 512, 36327, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Spellhit \'Shoot Arcane Explosion Arrow\' - Kill Target'), +(-(@CGUID+18), 0, 1001, 1002, 38, 0, 100, 0, 1, 1, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Data Set 1 1 (Protean Nightmare) - Start Follow Self'), +(-(@CGUID+18), 0, 1002, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 89, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Data Set 1 1 (Protean Nightmare) - Start Random Movement'), +(-(@CGUID+18), 0, 1003, 0, 38, 0, 100, 0, 2, 2, 0, 0, 0, 29, 1, 135, 0, 0, 0, 0, 10, (@CGUID+02), 20864, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Data Set 2 2 (Protean Nightmare) - Start Follow Closest Creature \'Protean Nightmare\''), + +(-(@CGUID+09), 0, 0, 0, 0, 0, 100, 0, 2000, 8000, 7000, 7000, 0, 11, 36612, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - In Combat - Cast \'Toothy Bite\''), +(-(@CGUID+09), 0, 1, 0, 8, 0, 50, 512, 36327, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Spellhit \'Shoot Arcane Explosion Arrow\' - Kill Target'), +(-(@CGUID+09), 0, 1001, 1002, 38, 0, 100, 0, 1, 1, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Data Set 1 1 (Protean Nightmare) - Start Follow Self'), +(-(@CGUID+09), 0, 1002, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 89, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Data Set 1 1 (Protean Nightmare) - Start Random Movement'), +(-(@CGUID+09), 0, 1003, 0, 38, 0, 100, 0, 2, 2, 0, 0, 0, 29, 1, 225, 0, 0, 0, 0, 10, (@CGUID+02), 20864, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Data Set 2 2 (Protean Nightmare) - Start Follow Closest Creature \'Protean Nightmare\''); + +-- Action 40 has trouble with short WPs, After it's fixed delete duplicated WPs +DELETE FROM `waypoints` WHERE `point_comment` LIKE 'Entropic Eye%' AND `entry`=2086800; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `orientation`, `point_comment`) VALUES +(2086800,1,257.83023,-125.83658,-10.123239,NULL,'Entropic Eye'), +(2086800,2,258.53995,-147.47809,-10.109458,NULL,'Entropic Eye'), +(2086800,3,257.83023,-125.83658,-10.123239,NULL,'Entropic Eye - Duplicated Waypoint, Delete Later'), +(2086800,4,258.53995,-147.47809,-10.109458,NULL,'Entropic Eye - Duplicated Waypoint, Delete Later'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -(@CGUID+30)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-(@CGUID+30), 0, 0, 0, 0, 0, 70, 6, 3000, 3000, 25000, 25000, 0, 11, 36677, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Entropic Eye - In Combat - Cast \'Chaos Breath\' (Dungeon)'), +(-(@CGUID+30), 0, 1, 0, 0, 0, 75, 2, 8000, 8000, 22000, 22000, 0, 11, 36664, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Entropic Eye - In Combat - Cast \'Tentacle Cleave\' (Normal Dungeon)'), +(-(@CGUID+30), 0, 2, 0, 0, 0, 75, 4, 8000, 8000, 22000, 22000, 0, 11, 38816, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Entropic Eye - In Combat - Cast \'Tentacle Cleave\' (Heroic Dungeon)'), +(-(@CGUID+30), 0, 1001, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 53, 0, 2086800, 1, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Entropic Eye - On Respawn - Start Waypoint'), +(-(@CGUID+30), 0, 1002, 0, 40, 0, 100, 0, 0, 2086800, 0, 0, 0, 80, 2086800, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Entropic Eye - On Waypoint Any Reached - Run Script'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2086800); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(2086800, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 54, 25000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Entropic Eye - Actionlist - Pause Waypoint'), +(2086800, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 89, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Entropic Eye - Actionlist - Start Random Movement'); + +-- Pathing for Death Watcher Entry: 20867 +DELETE FROM `waypoints` WHERE `point_comment` LIKE 'Death Watcher%' AND `entry`=2086700; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `orientation`, `point_comment`) VALUES +(2086700,1,232.48465,-138.72578,-10.11108,2.408554315567016601,'Death Watcher'), +(2086700,2,214.05183,-138.74442,-10.110648,NULL,'Death Watcher'), +(2086700,3,232.48465,-138.72578,-10.11108,2.408554315567016601,'Death Watcher - Duplicated Waypoint, Delete Later'), +(2086700,4,214.05183,-138.74442,-10.110648,NULL,'Death Watcher - Duplicated Waypoint, Delete Later'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -(@CGUID+27)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-(@CGUID+27), 0, 0, 0, 2, 0, 100, 3, 0, 50, 0, 0, 0, 11, 36657, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - Between 0-50% Health - Cast \'Death Count\' (No Repeat) (Normal Dungeon)'), +(-(@CGUID+27), 0, 1, 0, 2, 0, 100, 5, 0, 50, 0, 0, 0, 11, 38818, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - Between 0-50% Health - Cast \'Death Count\' (No Repeat) (Heroic Dungeon)'), +(-(@CGUID+27), 0, 2, 0, 0, 0, 100, 2, 7000, 10000, 20000, 23000, 0, 11, 36655, 0, 0, 0, 0, 0, 5, 20, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - In Combat - Cast \'Drain Life\' (Normal Dungeon)'), +(-(@CGUID+27), 0, 3, 0, 0, 0, 100, 4, 7000, 10000, 20000, 23000, 0, 11, 38817, 0, 0, 0, 0, 0, 5, 20, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - In Combat - Cast \'Drain Life\' (Heroic Dungeon)'), +(-(@CGUID+27), 0, 4, 0, 0, 0, 100, 2, 1000, 3000, 10000, 13000, 0, 11, 36664, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - In Combat - Cast \'Tentacle Cleave\' (Normal Dungeon)'), +(-(@CGUID+27), 0, 5, 0, 0, 0, 100, 4, 1000, 3000, 10000, 13000, 0, 11, 38816, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - In Combat - Cast \'Tentacle Cleave\' (Heroic Dungeon)'), +(-(@CGUID+27), 0, 6, 0, 6, 0, 100, 514, 0, 0, 0, 0, 0, 28, 36657, 0, 0, 0, 0, 0, 21, 50, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - On Just Died - Remove Aura \'Death Count\' (Normal Dungeon)'), +(-(@CGUID+27), 0, 7, 0, 6, 0, 100, 516, 0, 0, 0, 0, 0, 28, 38818, 0, 0, 0, 0, 0, 21, 50, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - On Just Died - Remove Aura \'Death Count\' (Heroic Dungeon)'), +(-(@CGUID+27), 0, 1001, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 53, 0, 2086700, 1, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - On Respawn - Start Waypoint'), +(-(@CGUID+27), 0, 1002, 0, 40, 0, 100, 0, 0, 2086700, 0, 0, 0, 80, 2086700, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - On Waypoint Any Reached - Run Script'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2086700); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(2086700, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 54, 25000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - Actionlist - Pause Waypoint'), +(2086700, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 89, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - Actionlist - Start Random Movement'); + +-- Pathing for Negaton Screamer Entry: 20875 +DELETE FROM `waypoints` WHERE `point_comment` LIKE 'Negaton Screamer%' AND `entry`=2087500; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `orientation`, `point_comment`) VALUES +(2087500,1,266.75012,-17.823483,22.449232,5.899212837219238281,'Negaton Screamer'), +(2087500,2,275.1938,4.183415,22.44412,NULL,'Negaton Screamer'), +(2087500,3,266.75012,-17.823483,22.449232,5.899212837219238281,'Negaton Screamer - Duplicated Waypoint, Delete Later'), +(2087500,4,275.1938,4.183415,22.44412,NULL,'Negaton Screamer - Duplicated Waypoint, Delete Later'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -(@CGUID+40)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-(@CGUID+40), 0, 0, 0, 25, 0, 100, 512, 0, 0, 0, 0, 0, 31, 1, 6, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Reset - Set Phase Random Between 1-6'), +(-(@CGUID+40), 0, 1, 0, 4, 1, 100, 1, 0, 0, 0, 0, 0, 11, 34331, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Aggro - Cast \'Damage Reduction: Arcane\' (Phase 1) (No Repeat)'), +(-(@CGUID+40), 0, 2, 0, 0, 1, 100, 2, 3000, 8000, 10000, 10000, 0, 11, 36738, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - In Combat - Cast \'Arcane Volley\' (Phase 1) (Normal Dungeon)'), +(-(@CGUID+40), 0, 3, 0, 0, 1, 100, 4, 3000, 8000, 10000, 10000, 0, 11, 38835, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - In Combat - Cast \'Arcane Volley\' (Phase 1) (Heroic Dungeon)'), +(-(@CGUID+40), 0, 4, 0, 4, 2, 100, 1, 0, 0, 0, 0, 0, 11, 34333, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Aggro - Cast \'Damage Reduction: Fire\' (Phase 2) (No Repeat)'), +(-(@CGUID+40), 0, 5, 0, 0, 2, 100, 2, 3000, 8000, 10000, 10000, 0, 11, 36742, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - In Combat - Cast \'Fireball Volley\' (Phase 2) (Normal Dungeon)'), +(-(@CGUID+40), 0, 6, 0, 0, 2, 100, 4, 3000, 8000, 10000, 10000, 0, 11, 38836, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - In Combat - Cast \'Fireball Volley\' (Phase 2) (Heroic Dungeon)'), +(-(@CGUID+40), 0, 7, 0, 4, 4, 100, 1, 0, 0, 0, 0, 0, 11, 34334, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Aggro - Cast \'Damage Reduction: Frost\' (Phase 4) (No Repeat)'), +(-(@CGUID+40), 0, 8, 0, 0, 4, 100, 2, 3000, 8000, 10000, 10000, 0, 11, 36741, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - In Combat - Cast \'Frostbolt Volley\' (Phase 4) (Normal Dungeon)'), +(-(@CGUID+40), 0, 9, 0, 0, 4, 100, 4, 3000, 8000, 10000, 10000, 0, 11, 38837, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - In Combat - Cast \'Frostbolt Volley\' (Phase 4) (Heroic Dungeon)'), +(-(@CGUID+40), 0, 10, 0, 4, 8, 100, 1, 0, 0, 0, 0, 0, 11, 34336, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Aggro - Cast \'Damage Reduction: Holy\' (Phase 8) (No Repeat)'), +(-(@CGUID+40), 0, 11, 0, 0, 8, 100, 2, 3000, 8000, 10000, 10000, 0, 11, 36743, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - In Combat - Cast \'Holy Bolt Volley\' (Phase 8) (Normal Dungeon)'), +(-(@CGUID+40), 0, 12, 0, 0, 8, 100, 4, 3000, 8000, 10000, 10000, 0, 11, 38838, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - In Combat - Cast \'Holy Bolt Volley\' (Phase 8) (Heroic Dungeon)'), +(-(@CGUID+40), 0, 13, 0, 4, 16, 100, 1, 0, 0, 0, 0, 0, 11, 34335, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Aggro - Cast \'Damage Reduction: Nature\' (Phase 16) (No Repeat)'), +(-(@CGUID+40), 0, 14, 0, 0, 16, 100, 2, 3000, 8000, 10000, 10000, 0, 11, 36740, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - In Combat - Cast \'Lightning Bolt Volley\' (Phase 16) (Normal Dungeon)'), +(-(@CGUID+40), 0, 15, 0, 0, 16, 100, 4, 3000, 8000, 10000, 10000, 0, 11, 38839, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - In Combat - Cast \'Lightning Bolt Volley\' (Phase 16) (Heroic Dungeon)'), +(-(@CGUID+40), 0, 16, 0, 4, 32, 100, 1, 0, 0, 0, 0, 0, 11, 34338, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Aggro - Cast \'Damage Reduction: Shadow\' (Phase 32) (No Repeat)'), +(-(@CGUID+40), 0, 17, 0, 0, 32, 100, 2, 3000, 8000, 10000, 10000, 0, 11, 36736, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - In Combat - Cast \'Shadow Bolt Volley\' (Phase 32) (Normal Dungeon)'), +(-(@CGUID+40), 0, 18, 0, 0, 32, 100, 4, 3000, 8000, 10000, 10000, 0, 11, 38840, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - In Combat - Cast \'Shadow Bolt Volley\' (Phase 32) (Heroic Dungeon)'), +(-(@CGUID+40), 0, 19, 0, 0, 0, 100, 0, 20000, 20000, 30000, 30000, 0, 11, 13704, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - In Combat - Cast \'Psychic Scream\''), +(-(@CGUID+40), 0, 1001, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 53, 0, 2087500, 1, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Respawn - Start Waypoint'), +(-(@CGUID+40), 0, 1002, 0, 40, 0, 100, 0, 0, 2087500, 0, 0, 0, 80, 2087500, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Waypoint Any Reached - Run Script'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2087500); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(2087500, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 54, 25000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Pause Waypoint'), +(2087500, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 89, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Start Random Movement'); + +-- Pathing for Negaton Warp-Master Entry: 20873 +DELETE FROM `waypoints` WHERE `point_comment` LIKE 'Negaton Warp-Master%' AND `entry` IN (2087300, 2087301); +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `orientation`, `point_comment`) VALUES +(2087300,1,275.32532,37.143127,22.441074,5.637413501739501953,'Negaton Warp-Master'), +(2087300,2,265.88467,55.07243,22.441204,NULL,'Negaton Warp-Master'), +(2087300,3,275.32532,37.143127,22.441074,5.637413501739501953,'Negaton Warp-Master - Duplicated Waypoint, Delete Later'), +(2087300,4,265.88467,55.07243,22.441204,NULL,'Negaton Warp-Master - Duplicated Waypoint, Delete Later'), + +(2087301,1,291.2633,6.761013,22.441162,NULL,'Negaton Warp-Master'), +(2087301,2,308.48526,-14.237305,22.443472,NULL,'Negaton Warp-Master'), +(2087301,3,291.2633,6.761013,22.441162,NULL,'Negaton Warp-Master - Duplicated Waypoint, Delete Later'), +(2087301,4,308.48526,-14.237305,22.443472,NULL,'Negaton Warp-Master - Duplicated Waypoint, Delete Later'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` IN (-(@CGUID+37),-(@CGUID+38))); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-(@CGUID+37), 0, 0, 0, 0, 0, 100, 0, 2000, 8000, 6000, 8000, 0, 11, 36813, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Warp-Master - In Combat - Cast \'Summon Negaton Field\''), +(-(@CGUID+37), 0, 1001, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 53, 0, 2087300, 1, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Respawn - Start Waypoint'), +(-(@CGUID+37), 0, 1002, 0, 40, 0, 100, 0, 0, 2087300, 0, 0, 0, 80, 2087300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Warp-Master - On Waypoint Any Reached - Run Script'), + +(-(@CGUID+38), 0, 0, 0, 0, 0, 100, 0, 2000, 8000, 6000, 8000, 0, 11, 36813, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Warp-Master - In Combat - Cast \'Summon Negaton Field\''), +(-(@CGUID+38), 0, 1001, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 53, 0, 2087301, 1, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Respawn - Start Waypoint'), +(-(@CGUID+38), 0, 1002, 0, 40, 0, 100, 0, 0, 2087301, 0, 0, 0, 80, 2087300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Warp-Master - On Waypoint Any Reached - Run Script'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2087300); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(2087300, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 54, 25000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Warp-Master - Actionlist - Pause Waypoint'), +(2087300, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 89, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Warp-Master - Actionlist - Start Random Movement'); + +-- Pathing for Unbound Devastator Entry: 20881 @CGUID+45 +DELETE FROM `waypoints` WHERE `point_comment` LIKE 'Unbound Devastator%' AND `entry`=2088100; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `orientation`, `point_comment`) VALUES +(2088100,1,199.71545,135.69438,22.45939,NULL,'Unbound Devastator'), +(2088100,2,188.94356,135.94778,22.441149,NULL,'Unbound Devastator'), +(2088100,3,178.95024,136.18616,22.441147,NULL,'Unbound Devastator - Random Movement'), -- 20-30s of random movement (5y) +(2088100,4,193.13338,134.66946,22.571707,NULL,'Unbound Devastator'), +(2088100,5,199.88423,134.85597,22.37441,NULL,'Unbound Devastator'), +(2088100,6,200.01999,143.80635,22.404247,NULL,'Unbound Devastator - Random Movement'); -- 20-30s of random movement (5y) + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -(@CGUID+45)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-(@CGUID+45), 0, 0, 0, 0, 0, 100, 2, 4000, 5000, 15000, 15000, 0, 11, 36887, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Unbound Devastator - In Combat - Cast \'Deafening Roar\' (Normal Dungeon)'), +(-(@CGUID+45), 0, 1, 0, 0, 0, 100, 4, 4000, 5000, 15000, 15000, 0, 11, 38850, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Unbound Devastator - In Combat - Cast \'Deafening Roar\' (Heroic Dungeon)'), +(-(@CGUID+45), 0, 2, 0, 0, 0, 100, 2, 9000, 10000, 15000, 15000, 0, 11, 36891, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Unbound Devastator - In Combat - Cast \'Devastate\' (Normal Dungeon)'), +(-(@CGUID+45), 0, 3, 0, 0, 0, 100, 4, 9000, 10000, 15000, 15000, 0, 11, 38849, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Unbound Devastator - In Combat - Cast \'Devastate\' (Heroic Dungeon)'), +(-(@CGUID+45), 0, 1001, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 53, 0, 2088100, 1, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Unbound Devastator - On Respawn - Start Waypoint'), +(-(@CGUID+45), 0, 1002, 0, 40, 0, 100, 0, 3, 2088100, 0, 0, 0, 80, 2088100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Unbound Devastator - On Waypoint 3 Reached - Run Script'), +(-(@CGUID+45), 0, 1003, 0, 40, 0, 100, 0, 6, 2088100, 0, 0, 0, 80, 2088100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Unbound Devastator - On Waypoint 6 Reached - Run Script'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2088100); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(2088100, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 54, 25000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Unbound Devastator - Actionlist - Pause Waypoint'), +(2088100, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 89, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Unbound Devastator - Actionlist - Start Random Movement'); + +-- Pathing for Spiteful Temptress Entry: 20883 @CGUID+49 +DELETE FROM `waypoints` WHERE `point_comment` LIKE 'Spiteful Temptress%' AND `entry`=2088300; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `orientation`, `point_comment`) VALUES +(2088300,1,189.48445,157.87857,22.44115,NULL,'Spiteful Temptress'), +(2088300,2,180.3669,158.23933,22.441147,NULL,'Spiteful Temptress'), +(2088300,3,180.26875,151.43074,22.441147,NULL,'Spiteful Temptress - Random Movement'), -- 20-40s of random movement (5y) +(2088300,4,179.83174,157.97197,22.441147,NULL,'Spiteful Temptress'), +(2088300,5,189.29553,157.5333,22.44115,NULL,'Spiteful Temptress'), +(2088300,6,198.717,156.83224,22.364504,NULL,'Spiteful Temptress - Random Movement'); -- 20-40s of random movement (5y) + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -(@CGUID+49)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-(@CGUID+49), 0, 0, 0, 0, 0, 100, 0, 4000, 10000, 20000, 20000, 0, 11, 36886, 0, 0, 0, 0, 0, 6, 50, 0, 0, 0, 0, 0, 0, 0, 'Spiteful Temptress - In Combat - Cast \'Spiteful Fury\''), +(-(@CGUID+49), 0, 1, 0, 0, 0, 100, 0, 14000, 15000, 25000, 25000, 0, 11, 36866, 0, 0, 0, 0, 0, 6, 50, 0, 0, 0, 0, 0, 0, 0, 'Spiteful Temptress - In Combat - Cast \'Domination\''), +(-(@CGUID+49), 0, 2, 0, 0, 0, 100, 2, 1000, 2000, 4000, 4000, 0, 11, 36868, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Spiteful Temptress - In Combat - Cast \'Shadow Bolt\' (Normal Dungeon)'), +(-(@CGUID+49), 0, 3, 0, 0, 0, 100, 4, 1000, 2000, 4000, 4000, 0, 11, 38892, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Spiteful Temptress - In Combat - Cast \'Shadow Bolt\' (Heroic Dungeon)'), +(-(@CGUID+49), 0, 1001, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 53, 0, 2088300, 1, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Spiteful Temptress - On Respawn - Start Waypoint'), +(-(@CGUID+49), 0, 1002, 0, 40, 0, 100, 0, 3, 2088300, 0, 0, 0, 80, 2088300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Spiteful Temptress - On Waypoint 3 Reached - Run Script'), +(-(@CGUID+49), 0, 1003, 0, 40, 0, 100, 0, 6, 2088300, 0, 0, 0, 80, 2088300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Spiteful Temptress - On Waypoint 6 Reached - Run Script'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2088300); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(2088300, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 54, 30000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Spiteful Temptress - Actionlist - Pause Waypoint'), +(2088300, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 89, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Spiteful Temptress - Actionlist - Start Random Movement'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` IN (-(@CGUID+10), -(@CGUID+22))); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-(@CGUID+10), 0, 0, 0, 0, 0, 100, 0, 2000, 8000, 7000, 7000, 0, 11, 36612, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - In Combat - Cast \'Toothy Bite\''), +(-(@CGUID+10), 0, 1, 0, 8, 0, 50, 512, 36327, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Spellhit \'Shoot Arcane Explosion Arrow\' - Kill Target'), +(-(@CGUID+10), 0, 1001, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Reset - Set Run On'), + +(-(@CGUID+22), 0, 0, 0, 0, 0, 100, 0, 2000, 8000, 7000, 7000, 0, 11, 36612, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - In Combat - Cast \'Toothy Bite\''), +(-(@CGUID+22), 0, 1, 0, 8, 0, 50, 512, 36327, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Spellhit \'Shoot Arcane Explosion Arrow\' - Kill Target'), +(-(@CGUID+22), 0, 1001, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Horror - On Reset - Set Run On'); + +-- Static Formations +DELETE FROM `creature_formations` WHERE `leaderGUID` IN (79392,79396,79400,@CGUID+01,@CGUID+02,@CGUID+52,@CGUID+62,@CGUID+63) AND `memberGUID` IN (79392,79393,79396,79397,79400,79399,79395,@CGUID+01,@CGUID+16,@CGUID+20,@CGUID+02,@CGUID+09,@CGUID+18,@CGUID+52,@CGUID+56,@CGUID+54,@CGUID+95,@CGUID+62,@CGUID+64,@CGUID+63,@CGUID+65); +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES +(79392, 79392, 0, 0, 3), +(79392, 79393, 0, 0, 3), +(79396, 79396, 0, 0, 3), +(79396, 79397, 0, 0, 3), +(79400, 79400, 0, 0, 3), +(79400, 79399, 0, 0, 3), +(79400, 79395, 0, 0, 3), +(@CGUID+01, @CGUID+01, 0, 0, 3), +(@CGUID+01, @CGUID+16, 0, 0, 3), +(@CGUID+01, @CGUID+20, 0, 0, 3), +(@CGUID+02, @CGUID+02, 0, 0, 3), +(@CGUID+02, @CGUID+09, 0, 0, 3), +(@CGUID+02, @CGUID+18, 0, 0, 3), +(@CGUID+52, @CGUID+52, 0, 0, 3), +(@CGUID+52, @CGUID+56, 0, 0, 3), +(@CGUID+52, @CGUID+54, 0, 0, 3), +(@CGUID+52, @CGUID+95, 0, 0, 3), +(@CGUID+62, @CGUID+62, 0, 0, 3), +(@CGUID+62, @CGUID+64, 0, 0, 3), +(@CGUID+63, @CGUID+63, 0, 0, 3), +(@CGUID+63, @CGUID+65, 0, 0, 3); diff --git a/data/sql/updates/db_world/2023_03_21_00.sql b/data/sql/updates/db_world/2023_03_21_00.sql new file mode 100644 index 000000000..19a924091 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_21_00.sql @@ -0,0 +1,284 @@ +-- DB update 2023_03_20_07 -> 2023_03_21_00 +-- +DELETE FROM `spelldifficulty_dbc` WHERE `ID` IN (36617,36619,36664,36655,36657,36660,36654,36738,36786,36787,36891,36887,36868,36742,36741,36743,36740,36736,36863,36864,36838,36840,37480,37479,36829,36832,36827,35964,35932,36984,36835,38855,36837); +INSERT INTO `spelldifficulty_dbc` (`ID`, `DifficultySpellID_1`, `DifficultySpellID_2`) VALUES +(36617, 36617, 38810), +(36619, 36619, 38811), +(36664, 36664, 38816), +(36655, 36655, 38817), +(36657, 36657, 38818), +(36660, 36660, 38820), +(36654, 36654, 38813), +(36738, 36738, 38835), +(36786, 36786, 38843), +(36787, 36787, 38846), +(36891, 36891, 38849), +(36887, 36887, 38850), +(36868, 36868, 38892), +(36742, 36742, 38836), -- Fireball Volley +(36741, 36741, 38837), -- Frostbolt Volley +(36743, 36743, 38838), -- Holy Bolt Volley +(36740, 36740, 38839), -- Lightning Bolt Volley +(36736, 36736, 38840), -- Spell Shadow Bolt Volley +(36863, 36863, 38851), +(36864, 36864, 38852), +(36838, 36838, 38894), +(36840, 36840, 38896), +(37480, 37480, 38900), +(37479, 37479, 38899), +(36829, 36829, 38917), +(36832, 36832, 38918), +(36827, 36827, 38912), +(35964, 35964, 38942), +(35932, 35932, 38943), +(36984, 36984, 38914), +(36835, 36835, 38911), +(38855, 38855, 38901), +(36837, 36837, 38903); + +-- Protean Nightmare +DELETE FROM `smart_scripts` WHERE (`entryorguid` IN (20864, -138901, -138902)) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3, 4, 5)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20864, 0, 0, 0, 0, 0, 100, 0, 16900, 17600, 19300, 26500, 0, 11, 36617, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Gaping Maw\''), +(20864, 0, 1, 0, 0, 0, 100, 0, 22900, 26300, 10800, 22900, 0, 11, 36619, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Infectious Poison\''), +(20864, 0, 2, 0, 0, 0, 100, 0, 15200, 21700, 10900, 22900, 0, 11, 36622, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Incubation\''), +(20864, 0, 3, 0, 8, 0, 50, 512, 36327, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - On Spellhit \'Shoot Arcane Explosion Arrow\' - Kill Target'), + +(-138901, 0, 0, 0, 0, 0, 100, 0, 16900, 17600, 19300, 26500, 0, 11, 36617, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Gaping Maw\''), +(-138901, 0, 1, 0, 0, 0, 100, 0, 22900, 26300, 10800, 22900, 0, 11, 36619, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Infectious Poison\''), +(-138901, 0, 2, 0, 0, 0, 100, 0, 15200, 21700, 10900, 22900, 0, 11, 36622, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Incubation\''), +(-138901, 0, 3, 0, 8, 0, 50, 512, 36327, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - On Spellhit \'Shoot Arcane Explosion Arrow\' - Kill Target'), + +(-138902, 0, 0, 0, 0, 0, 100, 0, 16900, 17600, 19300, 26500, 0, 11, 36617, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Gaping Maw\''), +(-138902, 0, 1, 0, 0, 0, 100, 0, 22900, 26300, 10800, 22900, 0, 11, 36619, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Infectious Poison\''), +(-138902, 0, 2, 0, 0, 0, 100, 0, 15200, 21700, 10900, 22900, 0, 11, 36622, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - In Combat - Cast \'Incubation\''), +(-138902, 0, 3, 0, 8, 0, 50, 512, 36327, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Protean Nightmare - On Spellhit \'Shoot Arcane Explosion Arrow\' - Kill Target'); + +-- Entropic Eye +DELETE FROM `smart_scripts` WHERE (`entryorguid` IN (20868, -138930)) AND (`source_type` = 0) AND (`id` IN (0, 1, 2)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20868, 0, 0, 0, 0, 0, 70, 0, 5000, 10000, 17000, 25000, 0, 11, 36677, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Entropic Eye - In Combat - Cast \'Chaos Breath\''), +(20868, 0, 1, 0, 0, 0, 75, 0, 4000, 7000, 6000, 8000, 0, 11, 36664, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Entropic Eye - In Combat - Cast \'Tentacle Cleave\''), + +(-138930, 0, 0, 0, 0, 0, 70, 0, 5000, 10000, 17000, 25000, 0, 11, 36677, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Entropic Eye - In Combat - Cast \'Chaos Breath\''), +(-138930, 0, 1, 0, 0, 0, 75, 0, 4000, 7000, 6000, 8000, 0, 11, 36664, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Entropic Eye - In Combat - Cast \'Tentacle Cleave\''); + +-- Death Watcher +DELETE FROM `smart_scripts` WHERE (`entryorguid` IN (20867, -138927)) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20867, 0, 0, 0, 0, 0, 100, 0, 5000, 10000, 10000, 15000, 0, 11, 36664, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - In Combat - Cast \'Tentacle Cleave\''), +(20867, 0, 1, 0, 2, 0, 100, 0, 0, 70, 15000, 15000, 0, 11, 36655, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - Between 0-70% Health - Cast \'Drain Life\''), +(20867, 0, 2, 0, 2, 0, 100, 1, 0, 50, 0, 0, 0, 11, 36657, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - Between 0-50% Health - Cast \'Death Count\' (No Repeat)'), +(20867, 0, 3, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 11, 36660, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - On Death - Cast \'Death Count\''), +(20867, 0, 4, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - On Death - Remove All Auras'), + +(-138927, 0, 0, 0, 0, 0, 100, 0, 5000, 10000, 10000, 15000, 0, 11, 36664, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - In Combat - Cast \'Tentacle Cleave\''), +(-138927, 0, 1, 0, 2, 0, 100, 0, 0, 70, 15000, 15000, 0, 11, 36655, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - Between 0-70% Health - Cast \'Drain Life\''), +(-138927, 0, 2, 0, 2, 0, 100, 1, 0, 50, 0, 0, 0, 11, 36657, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - Between 0-50% Health - Cast \'Death Count\' (No Repeat)'), +(-138927, 0, 3, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 11, 36660, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - On Death - Cast \'Death Count\''), +(-138927, 0, 4, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Watcher - On Death - Remove All Auras'); + +-- Soul Devourer +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 20866); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20866, 0, 0, 0, 2, 0, 100, 0, 0, 30, 14000, 21000, 0, 11, 33958, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Soul Devourer - Between 0-30% Health - Cast \'Enrage\''), +(20866, 0, 1, 0, 0, 0, 100, 0, 7000, 11000, 15000, 23000, 0, 11, 36654, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Soul Devourer - In Combat - Cast \'Fel Breath\''), +(20866, 0, 2, 0, 0, 0, 100, 0, 15000, 17000, 120000, 180000, 0, 11, 36644, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Soul Devourer - In Combat - Cast \'Sightless Eye\''); + +-- Negaton Screamer +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` IN (20875, -138940) AND `id` BETWEEN 0 AND 20); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20875, 0, 0, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Reset - Set Event Phase 0'), +(20875, 0, 1, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Aggro - Set Event Phase 1'), +(20875, 0, 2, 0, 0, 0, 100, 0, 17000, 25000, 17000, 25000, 0, 11, 13704, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - In Combat - Cast \'Psychic Scream\''), +(20875, 0, 3, 0, 8, 1, 100, 0, 0, 4, 0, 0, 0, 80, 2087501, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Spellhit \'Fire\' - Run Script Fire (Phase 1)'), +(20875, 0, 4, 0, 8, 1, 100, 0, 0, 16, 0, 0, 0, 80, 2087502, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Spellhit \'Frost\' - Run Script Frost (Phase 1)'), +(20875, 0, 5, 0, 8, 1, 100, 0, 0, 64, 0, 0, 0, 80, 2087503, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Spellhit \'Arcane\' - Run Script Arcane (Phase 1)'), +(20875, 0, 6, 0, 8, 1, 100, 0, 0, 8, 0, 0, 0, 80, 2087504, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Spellhit \'Nature\' - Run Script Nature (Phase 1)'), +(20875, 0, 7, 0, 8, 1, 100, 0, 0, 32, 0, 0, 0, 80, 2087505, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Spellhit \'Shadow\' - Run Script Shadow (Phase 1)'), +(20875, 0, 8, 0, 8, 1, 100, 0, 0, 2, 0, 0, 0, 80, 2087506, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Spellhit \'Holy\' - Run Script Holy (Phase 1)'), + +(-138940, 0, 0, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Reset - Set Event Phase 0'), +(-138940, 0, 1, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Aggro - Set Event Phase 1'), +(-138940, 0, 2, 0, 0, 0, 100, 0, 17000, 25000, 17000, 25000, 0, 11, 13704, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - In Combat - Cast \'Psychic Scream\''), +(-138940, 0, 3, 0, 8, 1, 100, 0, 0, 4, 0, 0, 0, 80, 2087501, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Spellhit \'Fire\' - Run Script Fire (Phase 1)'), +(-138940, 0, 4, 0, 8, 1, 100, 0, 0, 16, 0, 0, 0, 80, 2087502, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Spellhit \'Frost\' - Run Script Frost (Phase 1)'), +(-138940, 0, 5, 0, 8, 1, 100, 0, 0, 64, 0, 0, 0, 80, 2087503, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Spellhit \'Arcane\' - Run Script Arcane (Phase 1)'), +(-138940, 0, 6, 0, 8, 1, 100, 0, 0, 8, 0, 0, 0, 80, 2087504, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Spellhit \'Nature\' - Run Script Nature (Phase 1)'), +(-138940, 0, 7, 0, 8, 1, 100, 0, 0, 32, 0, 0, 0, 80, 2087505, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Spellhit \'Shadow\' - Run Script Shadow (Phase 1)'), +(-138940, 0, 8, 0, 8, 1, 100, 0, 0, 2, 0, 0, 0, 80, 2087506, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - On Spellhit \'Holy\' - Run Script Holy (Phase 1)'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` BETWEEN 2087501 AND 2087506); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(2087501, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Set Event Phase 2'), +(2087501, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 34333, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Damage Reduction: Fire\''), +-- (2087501, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 34398, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Flame Energy\''), +(2087501, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 36733, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Elemental Response\''), +(2087501, 9, 4, 0, 0, 0, 100, 0, 3000, 8000, 0, 0, 0, 11, 36742, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Fireball Volley\''), +(2087501, 9, 5, 0, 0, 0, 100, 0, 1500, 1500, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Remove All Auras'), +(2087501, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Set Event Phase 1'), + +(2087502, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Set Event Phase 2'), +(2087502, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 34334, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Damage Reduction: Frost\''), +-- (2087502, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 34404, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Frost Energy\''), +(2087502, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 36733, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Elemental Response\''), +(2087502, 9, 4, 0, 0, 0, 100, 0, 3000, 8000, 0, 0, 0, 11, 36741, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Frostbolt Volley\''), +(2087502, 9, 5, 0, 0, 0, 100, 0, 1500, 1500, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Remove All Auras'), +(2087502, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Set Event Phase 1'), + +(2087503, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Set Event Phase 2'), +(2087503, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 34331, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Damage Reduction: Arcane\''), +-- (2087503, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 34401, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Arcane Energy\''), +(2087503, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 36733, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Elemental Response\''), +(2087503, 9, 4, 0, 0, 0, 100, 0, 3000, 8000, 0, 0, 0, 11, 36738, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Arcane Volley\''), +(2087503, 9, 5, 0, 0, 0, 100, 0, 1500, 1500, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Remove All Auras'), +(2087503, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Set Event Phase 1'), + +(2087504, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Set Event Phase 2'), +(2087504, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 34335, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Damage Reduction: Nature\''), +-- (2087504, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 34402, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Nature Energy\''), +(2087504, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 36733, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Elemental Response\''), +(2087504, 9, 4, 0, 0, 0, 100, 0, 3000, 8000, 0, 0, 0, 11, 36740, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Lightning Bolt Volley\''), +(2087504, 9, 5, 0, 0, 0, 100, 0, 1500, 1500, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Remove All Auras'), +(2087504, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Set Event Phase 1'), + +(2087505, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Set Event Phase 2'), +(2087505, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 34338, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Damage Reduction: Shadow\''), +-- (2087505, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 34399, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Shadow Energy\''), +(2087505, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 36733, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Elemental Response\''), +(2087505, 9, 4, 0, 0, 0, 100, 0, 3000, 8000, 0, 0, 0, 11, 36736, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Shadow Bolt Volley\''), +(2087505, 9, 5, 0, 0, 0, 100, 0, 1500, 1500, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Remove All Auras'), +(2087505, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Set Event Phase 1'), + +(2087506, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Set Event Phase 2'), +(2087506, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 34336, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Damage Reduction: Holy\''), +-- (2087506, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 34403, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Holy Energy\''), +(2087506, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 36733, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Elemental Response\''), +(2087506, 9, 4, 0, 0, 0, 100, 0, 3000, 8000, 0, 0, 0, 11, 36743, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Cast \'Holy Bolt Volley\''), +(2087506, 9, 5, 0, 0, 0, 100, 0, 1500, 1500, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Remove All Auras'), +(2087506, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Screamer - Actionlist - Set Event Phase 1'); + +-- Negatron Warp-Master +DELETE FROM `creature_text` WHERE `CreatureID`=20873; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(20873, 0, 0, 'Void energy gathers at the base of the %s!', 16, 0, 100, 0, 0, 0, 19392, 0, 'Negaton Warp-Master'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` IN (20873, -138937, -138938) AND `id` IN (0, 1)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20873, 0, 0, 1, 0, 0, 100, 0, 15000, 22000, 15000, 22000, 0, 11, 36813, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Warp-Master - In Combat - Cast \'Summon Negaton Field\''), +(20873, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Warp-Master - On Link - Say Line 0'), + +(-138937, 0, 0, 1, 0, 0, 100, 0, 15000, 22000, 15000, 22000, 0, 11, 36813, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Warp-Master - In Combat - Cast \'Summon Negaton Field\''), +(-138937, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Warp-Master - On Link - Say Line 0'), + +(-138938, 0, 0, 1, 0, 0, 100, 0, 15000, 22000, 15000, 22000, 0, 11, 36813, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Warp-Master - In Combat - Cast \'Summon Negaton Field\''), +(-138938, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Negaton Warp-Master - On Link - Say Line 0'); + +-- Eredar Soul-Eater +DELETE FROM `creature_template_addon` WHERE (`entry` IN (21595, 20879)); +INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES +(20879, 0, 0, 0, 1, 0, 0, '36784'), +(21595, 0, 0, 0, 1, 0, 0, '36784'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 20879 AND `id` IN (0, 1, 2, 3)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20879, 0, 0, 0, 0, 0, 100, 0, 6000, 15000, 15000, 22000, 0, 11, 36786, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Eredar Soul-Eater - In Combat - Cast \'Soul Chill\''), +(20879, 0, 1, 0, 0, 0, 100, 0, 15000, 17000, 14000, 21000, 0, 11, 36778, 32, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Eredar Soul-Eater - In Combat - Cast \'Soul Steal\''), +(20879, 0, 2, 0, 31, 0, 100, 0, 36778, 0, 0, 0, 0, 11, 36782, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Eredar Soul-Eater - On Target Spellhit \'Soul Steal\' - Cast \'Soul Steal\''); + +-- Eredar Deathbringer +UPDATE `creature_template_addon` SET `bytes2` = 1, `auras` = '27987 36788' WHERE (`entry` = 20880); +UPDATE `creature_template_addon` SET `bytes2` = 1, `auras` = '38844 38847' WHERE (`entry` = 21594); + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 20880) AND (`source_type` = 0) AND (`id` IN (0, 1)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20880, 0, 0, 0, 0, 0, 100, 0, 6000, 12000, 8000, 14000, 0, 11, 36787, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Eredar Deathbringer - In Combat - Cast \'Forceful Cleave\''); + +-- Unbound Devastator +DELETE FROM `smart_scripts` WHERE (`entryorguid` IN (20881, -138945)) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20881, 0, 0, 0, 0, 0, 100, 0, 6000, 10000, 13000, 22000, 0, 11, 36887, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Unbound Devastator - In Combat - Cast \'Deafening Roar\''), +(20881, 0, 1, 0, 9, 0, 100, 0, 0, 8, 14000, 21000, 0, 11, 36891, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Unbound Devastator - Within 0-8 Range - Cast \'Devastate\''), + +(-138945, 0, 0, 0, 0, 0, 100, 0, 6000, 10000, 13000, 22000, 0, 11, 36887, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Unbound Devastator - In Combat - Cast \'Deafening Roar\''), +(-138945, 0, 1, 0, 9, 0, 100, 0, 0, 8, 14000, 21000, 0, 11, 36891, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Unbound Devastator - Within 0-8 Range - Cast \'Devastate\''); + +-- Spiteful Temptress +DELETE FROM `smart_scripts` WHERE (`entryorguid` IN (20883, -138949)) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20883, 0, 0, 0, 0, 0, 100, 0, 1000, 3000, 12000, 16000, 0, 11, 36886, 0, 0, 0, 0, 0, 6, 50, 0, 0, 0, 0, 0, 0, 0, 'Spiteful Temptress - In Combat - Cast \'Spiteful Fury\''), +(20883, 0, 1, 0, 0, 0, 100, 0, 14000, 15000, 25000, 25000, 0, 11, 36866, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Spiteful Temptress - In Combat - Cast \'Domination\''), +(20883, 0, 2, 0, 9, 0, 100, 0, 0, 40, 7000, 12000, 0, 11, 36868, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Spiteful Temptress - Within 0-40 Range - Cast \'Shadow Bolt\''), + +(-138949, 0, 0, 0, 0, 0, 100, 0, 1000, 3000, 12000, 16000, 0, 11, 36886, 0, 0, 0, 0, 0, 6, 50, 0, 0, 0, 0, 0, 0, 0, 'Spiteful Temptress - In Combat - Cast \'Spiteful Fury\''), +(-138949, 0, 1, 0, 0, 0, 100, 0, 14000, 15000, 25000, 25000, 0, 11, 36866, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Spiteful Temptress - In Combat - Cast \'Domination\''), +(-138949, 0, 2, 0, 9, 0, 100, 0, 0, 40, 7000, 12000, 0, 11, 36868, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Spiteful Temptress - Within 0-40 Range - Cast \'Shadow Bolt\''); + +-- Skulking Witch +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` IN (2088200, 2088201)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(2088200, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 36863, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Skulking Witch - Actionlist - Cast \'Chastise\''), +(2088201, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 36864, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Skulking Witch - Actionlist - Cast \'Lash of Pain\''); + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 20882) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3, 4)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20882, 0, 0, 0, 0, 0, 100, 0, 4000, 10000, 10000, 20000, 0, 11, 36862, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Skulking Witch - In Combat - Cast \'Gouge\''), +(20882, 0, 1, 0, 0, 0, 100, 0, 5000, 8000, 14000, 21000, 0, 87, 2088200, 2088201, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Skulking Witch - In Combat - Cast Random Spell'); + +-- Ethereum Slayer +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 20896) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20896, 0, 0, 0, 0, 0, 100, 0, 8000, 15000, 20000, 25000, 0, 11, 15087, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Slayer - In Combat - Cast \'Evasion\''), +(20896, 0, 1, 0, 0, 0, 100, 0, 5000, 10000, 8000, 13000, 0, 11, 36839, 32, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Slayer - In Combat - Cast \'Impairing Poison\''), +(20896, 0, 2, 0, 0, 0, 100, 0, 10000, 15000, 10000, 15000, 0, 11, 36838, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Slayer - In Combat - Cast \'Slaying Strike\''); + +-- Ethereum Wave-Caster +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 20897) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20897, 0, 0, 0, 0, 0, 100, 0, 10000, 15000, 19000, 25000, 0, 11, 36840, 32, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Wave-Caster - In Combat - Cast \'Polymorph\''), +(20897, 0, 1, 0, 0, 0, 100, 0, 10000, 20000, 10000, 20000, 0, 11, 32693, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Wave-Caster - In Combat - Cast \'Arcane Haste\''), +(20897, 0, 2, 0, 0, 0, 100, 0, 15000, 19000, 15000, 19000, 0, 11, 38897, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Wave-Caster - In Combat - Cast \'Sonic Boom\''); + +-- Ethereum Life-Binder +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 21702) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3, 4, 5, 6)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(21702, 0, 0, 0, 0, 0, 100, 0, 5000, 10000, 15000, 15000, 0, 11, 37480, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Life-Binder - In Combat - Cast \'Bind\''), +(21702, 0, 1, 0, 0, 0, 100, 2, 8000, 15000, 10000, 10000, 0, 11, 15654, 32, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Life-Binder - In Combat - Cast \'Shadow Word: Pain\' (Normal Dungeon)'), +(21702, 0, 2, 0, 0, 0, 100, 4, 8000, 15000, 10000, 10000, 0, 11, 34941, 32, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Life-Binder - In Combat - Cast \'Shadow Word: Pain\' (Heroic Dungeon)'), +(21702, 0, 3, 0, 74, 0, 100, 0, 0, 40, 5000, 10000, 40, 11, 37479, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Life-Binder - On Friendly Between 0-40% Health - Cast \'Shadow Mend\''); + +-- Sargeron Hellcaller +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 20902) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3, 4)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20902, 0, 0, 0, 0, 0, 100, 0, 7000, 10000, 13000, 20000, 0, 11, 36829, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Sargeron Hellcaller - In Combat - Cast \'Hell Rain\''), +(20902, 0, 1, 0, 0, 0, 100, 0, 8000, 13000, 11000, 15000, 0, 11, 36832, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Sargeron Hellcaller - In Combat - Cast \'Incinerate\''), +(20902, 0, 2, 0, 0, 0, 100, 0, 7000, 10000, 16000, 21000, 0, 11, 36831, 32, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Sargeron Hellcaller - In Combat - Cast \'Curse of the Elements\''); + +-- Sargeron Archer +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 20901) 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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20901, 0, 0, 0, 0, 0, 100, 2, 0, 0, 2400, 4800, 0, 11, 22907, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sargeron Archer - In Combat CMC - Cast \'Shoot\' (Normal Dungeon)'), +(20901, 0, 1, 0, 0, 0, 100, 4, 0, 0, 2400, 4800, 0, 11, 38940, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sargeron Archer - In Combat CMC - Cast \'Shoot\' (Heroic Dungeon)'), +(20901, 0, 2, 0, 0, 0, 100, 0, 12000, 18000, 15000, 20000, 0, 11, 36827, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sargeron Archer - In Combat - Cast \'Hooked Net\''), +(20901, 0, 3, 0, 0, 0, 100, 0, 12000, 15000, 17000, 23000, 0, 87, 2090100, 2090101, 2090102, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sargeron Archer - In Combat - Cast Random Spell'), +(20901, 0, 4, 0, 0, 0, 100, 0, 13000, 16000, 18000, 22000, 0, 11, 23601, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sargeron Archer - In Combat - Cast \'Scatter Shot\''), +(20901, 0, 5, 0, 2, 0, 100, 0, 0, 30, 23000, 30000, 0, 11, 36828, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sargeron Archer - Between 0-30% Health - Cast \'Rapid Fire\''); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` IN (2090100, 2090101, 2090102)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(2090100, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 35964, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Sargeron Archer - On Script - Cast \'Frost Arrow\''), +(2090101, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 35932, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Sargeron Archer - On Script - Cast \'Immolation Arrow\''), +(2090102, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 11, 36984, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Sargeron Archer - On Script - Cast \'Serpent Sting\''); + +-- Unchained Doombringer +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 20900) 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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20900, 0, 0, 0, 0, 0, 100, 0, 12000, 15000, 24000, 27000, 0, 11, 36835, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Unchained Doombringer - In Combat - Cast \'War Stomp\''), +(20900, 0, 1, 0, 0, 0, 100, 0, 10000, 13000, 23000, 30000, 0, 11, 36833, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Unchained Doombringer - In Combat - Cast \'Berserker Charge\''), +(20900, 0, 2, 0, 0, 0, 100, 0, 7000, 9000, 13000, 16000, 0, 11, 36836, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Unchained Doombringer - In Combat - Cast \'Agonizing Armor\''); + +-- Gargantuan Abyssal +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 20898) 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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(20898, 0, 0, 0, 0, 0, 100, 0, 4000, 6000, 10000, 12000, 0, 11, 38855, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Gargantuan Abyssal - In Combat - Cast \'Fire Shield\''), +(20898, 0, 1, 0, 0, 0, 100, 0, 7000, 9000, 12000, 17000, 0, 11, 36837, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Gargantuan Abyssal - In Combat - Cast \'Meteor\''); diff --git a/data/sql/updates/db_world/2023_03_21_01.sql b/data/sql/updates/db_world/2023_03_21_01.sql new file mode 100644 index 000000000..a08af786c --- /dev/null +++ b/data/sql/updates/db_world/2023_03_21_01.sql @@ -0,0 +1,155 @@ +-- DB update 2023_03_21_00 -> 2023_03_21_01 +-- +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` IN (1922000, 1922001, 1922002)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(1922000, 9, 0, 0, 0, 0, 100, 512, 0, 0, 0, 0, 0, 11, 34426, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Gauntlet On Spawn - Actionlist - Cast \'Greater Invisibility\''), +(1922000, 9, 1, 0, 0, 0, 100, 512, 0, 0, 0, 0, 0, 18, 33600, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Gauntlet On Spawn - Actionlist - Set Flags Immune To Players & Immune To NPC\'s'), + +(1922001, 9, 0, 0, 0, 0, 100, 512, 0, 0, 0, 0, 0, 19, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Gauntlet Engage - Actionlist - Remove Flags Immune To Players & Immune To NPC\'s'), +(1922001, 9, 1, 0, 0, 0, 100, 512, 0, 0, 0, 0, 0, 28, 34426, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Gauntlet Engage - Actionlist - Remove Aura \'Greater Invisibility\''), +(1922001, 9, 2, 0, 0, 0, 100, 512, 0, 0, 0, 0, 0, 11, 34427, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Gauntlet Engage - Actionlist - Cast \'Ethereal Teleport\''), +(1922001, 9, 3, 0, 0, 0, 100, 512, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 21, 100, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Gauntlet Engage - Actionlist - Start Attacking Closest Player'), + +(1922002, 9, 0, 0, 0, 0, 100, 512, 0, 0, 0, 0, 0, 28, 34426, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Gauntlet Engage 2 - Actionlist - Remove Aura \'Greater Invisibility\''), +(1922002, 9, 1, 0, 0, 0, 100, 512, 0, 0, 0, 0, 0, 11, 34427, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Gauntlet Engage 2 - Actionlist - Cast \'Ethereal Teleport\''), +(1922002, 9, 2, 0, 0, 0, 100, 512, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 21, 100, 0, 0, 0, 0, 0, 0, 0, 'Mechanar Gauntlet Engage 2 - Actionlist - Start Attacking Closest Player'); + +DELETE FROM `creature_text` WHERE `CreatureID` = 19510 AND `comment` = 'Bloodwarder Centurion - Gauntlet Event'; +INSERT INTO `creature_text` (`CreatureID`, `Text`, `Type`, `Probability`, `BroadcastTextId`, `comment`) VALUES +(19510, 'Intruders have breached the factory! Engage emergency defense protocol immediately!', 14, 100, 17366, 'Bloodwarder Centurion - Gauntlet Event'); + +-- Stage 1 +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` IN (-138817, -138818, -138890, -138831, -138863, -138891, -138876, -138877)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +-- Wave 1 + +(-138817, 0, 0, 0, 0, 0, 100, 0, 4800, 16100, 3000, 5000, 0, 11, 35265, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Fire Shield\''), +(-138817, 0, 1, 0, 0, 0, 100, 2, 3100, 7600, 12100, 21700, 0, 11, 17195, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Scorch\' (Normal Dungeon)'), +(-138817, 0, 2, 0, 0, 0, 100, 4, 3100, 7600, 12100, 21700, 0, 11, 36807, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Scorch\' (Heroic Dungeon)'), +(-138817, 0, 3, 0, 0, 0, 100, 0, 4800, 26700, 13200, 27700, 0, 11, 35267, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Solarburn\''), +(-138817, 0, 1001, 0, 11, 0, 100, 513, 0, 0, 0, 0, 0, 11, 34426, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - On Respawn - Cast \'Greater Invisibility\''), +(-138817, 0, 1002, 0, 10, 0, 100, 257, 0, 25, 0, 0, 1, 80, 1922002, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - Within 0-25 Range Out of Combat LoS - Run Script'), +(-138817, 0, 1003, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 63, 1, 1, 0, 0, 0, 0, 10, 138863, 19735, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - On Just Died - Set Counter for Next Wave'), + +(-138818, 0, 0, 0, 0, 0, 100, 0, 4800, 16100, 3000, 5000, 0, 11, 35265, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Fire Shield\''), +(-138818, 0, 1, 0, 0, 0, 100, 2, 3100, 7600, 12100, 21700, 0, 11, 17195, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Scorch\' (Normal Dungeon)'), +(-138818, 0, 2, 0, 0, 0, 100, 4, 3100, 7600, 12100, 21700, 0, 11, 36807, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Scorch\' (Heroic Dungeon)'), +(-138818, 0, 3, 0, 0, 0, 100, 0, 4800, 26700, 13200, 27700, 0, 11, 35267, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Solarburn\''), +(-138818, 0, 1001, 0, 11, 0, 100, 513, 0, 0, 0, 0, 0, 11, 34426, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - On Respawn - Cast \'Greater Invisibility\''), +(-138818, 0, 1002, 0, 4, 0, 100, 257, 0, 0, 0, 0, 0, 80, 1922002, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - On Aggro - Run Script'), +(-138818, 0, 1003, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 63, 1, 1, 0, 0, 0, 0, 10, 138863, 19735, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - On Just Died - Set Counter for Next Wave'), + +(-138890, 0, 0, 0, 0, 0, 100, 0, 8400, 19300, 7200, 19300, 0, 11, 36340, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - In Combat - Cast \'Holy Shock\''), +(-138890, 0, 1, 0, 74, 0, 100, 0, 0, 75, 10000, 16000, 15, 11, 36348, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - On Friendly Between 0-75% Health - Cast \'Bandage\''), +(-138890, 0, 2, 0, 0, 0, 100, 0, 9000, 14000, 12000, 16000, 0, 11, 36333, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - In Combat - Cast \'Anesthetic\''), +(-138890, 0, 1001, 0, 11, 0, 100, 513, 0, 0, 0, 0, 0, 11, 34426, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - On Respawn - Cast \'Greater Invisibility\''), +(-138890, 0, 1002, 0, 4, 0, 100, 257, 0, 0, 0, 0, 0, 80, 1922002, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - On Aggro - Run Script'), +(-138890, 0, 1003, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 63, 1, 1, 0, 0, 0, 0, 10, 138863, 19735, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - On Just Died - Set Counter for Next Wave'), + +(-138831, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 88, 1951000, 1951003, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Centurion - On Respawn - Run Random Script'), +(-138831, 0, 1, 0, 0, 0, 100, 0, 6200, 19300, 12100, 16900, 0, 11, 35178, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Centurion - In Combat - Cast \'Shield Bash\''), +(-138831, 0, 1001, 0, 1, 0, 100, 769, 1000, 1000, 0, 0, 0, 11, 34426, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Centurion - Out Of Combat - Cast \'Greater Invisibility\''), -- Delayed due to id 0 can *sometimes* cancel one another +(-138831, 0, 1002, 0, 4, 0, 100, 257, 0, 0, 0, 0, 0, 80, 1922002, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Centurion - On Aggro - Run Script'), +(-138831, 0, 1003, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 63, 1, 1, 0, 0, 0, 0, 10, 138863, 19735, 0, 0, 0, 0, 0, 0, 'Bloodwarder Centurion - On Just Died - Set Counter for Next Wave'), +(-138831, 0, 1004, 0, 0, 0, 100, 1, 1000, 1000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Centurion - In Combat - Say Line 0'), -- Intruders have breached the factory! Engage emergency defense protocol immediately! + +-- Wave 2 + +(-138863, 0, 0, 0, 0, 0, 100, 0, 8400, 16900, 9600, 20500, 0, 11, 36582, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - In Combat - Cast \'Charged Fist\''), +(-138863, 0, 1, 0, 0, 0, 100, 0, 9700, 10800, 10900, 22900, 0, 11, 35783, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - In Combat - Cast \'Knockdown\''), +(-138863, 0, 1001, 0, 11, 0, 100, 512, 0, 0, 0, 0, 0, 80, 1922000, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - On Respawn - Run Script'), +(-138863, 0, 1002, 0, 77, 0, 100, 512, 1, 4, 0, 0, 0, 80, 1922001, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - On Counter Set 4/4 - Run Script Engage'), +(-138863, 0, 1003, 1004, 6, 0, 100, 512, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 138891, 20990, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - On Just Died - Set Data for Next Wave'), +(-138863, 0, 1004, 1005, 61, 0, 100, 512, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 138876, 20988, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - On Just Died - Set Data for Next Wave'), +(-138863, 0, 1005, 0, 61, 0, 100, 512, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 138877, 20988, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - On Just Died - Set Data for Next Wave'), + +-- Wave 3 + +(-138891, 0, 0, 0, 0, 0, 100, 0, 8400, 19300, 7200, 19300, 0, 11, 36340, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - In Combat - Cast \'Holy Shock\''), +(-138891, 0, 1, 0, 74, 0, 100, 0, 0, 75, 10000, 16000, 15, 11, 36348, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - On Friendly Between 0-75% Health - Cast \'Bandage\''), +(-138891, 0, 2, 0, 0, 0, 100, 0, 9000, 14000, 12000, 16000, 0, 11, 36333, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - In Combat - Cast \'Anesthetic\''), +(-138891, 0, 1001, 0, 11, 0, 100, 512, 0, 0, 0, 0, 0, 80, 1922000, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - On Respawn - Run Script'), +(-138891, 0, 1002, 0, 38, 0, 100, 512, 1, 1, 0, 0, 0, 80, 1922001, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - On Data Set 1 1 - Run Script'), + +(-138876, 0, 0, 0, 0, 0, 100, 0, 1300, 9600, 21700, 30200, 0, 11, 36341, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - In Combat - Cast \'Super Shrink Ray\''), +(-138876, 0, 1, 0, 0, 0, 100, 0, 5100, 16400, 12100, 22900, 0, 11, 36345, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - In Combat - Cast \'Death Ray\''), +(-138876, 0, 2, 0, 0, 0, 100, 0, 18100, 24100, 18100, 24100, 0, 11, 36346, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - In Combat - Cast \'Growth Ray\''), +(-138876, 0, 1001, 0, 11, 0, 100, 512, 0, 0, 0, 0, 0, 80, 1922000, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - On Respawn - Run Script'), +(-138876, 0, 1002, 0, 38, 0, 100, 512, 1, 1, 0, 0, 0, 80, 1922001, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - On Data Set 1 1 - Run Script'), + +(-138877, 0, 0, 0, 0, 0, 100, 0, 1300, 9600, 21700, 30200, 0, 11, 36341, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - In Combat - Cast \'Super Shrink Ray\''), +(-138877, 0, 1, 0, 0, 0, 100, 0, 5100, 16400, 12100, 22900, 0, 11, 36345, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - In Combat - Cast \'Death Ray\''), +(-138877, 0, 2, 0, 0, 0, 100, 0, 18100, 24100, 18100, 24100, 0, 11, 36346, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - In Combat - Cast \'Growth Ray\''), +(-138877, 0, 1001, 0, 11, 0, 100, 512, 0, 0, 0, 0, 0, 80, 1922000, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - On Respawn - Run Script'), +(-138877, 0, 1002, 0, 38, 0, 100, 512, 1, 1, 0, 0, 0, 80, 1922001, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - On Data Set 1 1 - Run Script'); + +-- Stage 2 +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` IN (-138819, -138892, -138878, -138864, -138820, -138869, -138893, -138879)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +-- Wave 1 + +(-138819, 0, 0, 0, 0, 0, 100, 0, 4800, 16100, 3000, 5000, 0, 11, 35265, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Fire Shield\''), +(-138819, 0, 1, 0, 0, 0, 100, 2, 3100, 7600, 12100, 21700, 0, 11, 17195, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Scorch\' (Normal Dungeon)'), +(-138819, 0, 2, 0, 0, 0, 100, 4, 3100, 7600, 12100, 21700, 0, 11, 36807, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Scorch\' (Heroic Dungeon)'), +(-138819, 0, 3, 0, 0, 0, 100, 0, 4800, 26700, 13200, 27700, 0, 11, 35267, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Solarburn\''), +(-138819, 0, 1001, 0, 11, 0, 100, 513, 0, 0, 0, 0, 0, 11, 34426, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - On Respawn - Cast \'Greater Invisibility\''), +(-138819, 0, 1002, 0, 10, 0, 100, 257, 0, 35, 0, 0, 1, 80, 1922002, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - Within 0-35 Range Out of Combat LoS - Run Script'), +(-138819, 0, 1003, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 63, 1, 1, 0, 0, 0, 0, 10, 138864, 19735, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - On Just Died - Set Counter for Next Wave'), + +(-138892, 0, 0, 0, 0, 0, 100, 0, 8400, 19300, 7200, 19300, 0, 11, 36340, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - In Combat - Cast \'Holy Shock\''), +(-138892, 0, 1, 0, 74, 0, 100, 0, 0, 75, 10000, 16000, 15, 11, 36348, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - On Friendly Between 0-75% Health - Cast \'Bandage\''), +(-138892, 0, 2, 0, 0, 0, 100, 0, 9000, 14000, 12000, 16000, 0, 11, 36333, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - In Combat - Cast \'Anesthetic\''), +(-138892, 0, 1001, 0, 11, 0, 100, 513, 0, 0, 0, 0, 0, 11, 34426, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - On Respawn - Cast \'Greater Invisibility\''), +(-138892, 0, 1002, 0, 4, 0, 100, 257, 0, 0, 0, 0, 0, 80, 1922002, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - On Aggro - Run Script'), +(-138892, 0, 1003, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 63, 1, 1, 0, 0, 0, 0, 10, 138864, 19735, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - On Just Died - Set Counter for Next Wave'), + +(-138878, 0, 0, 0, 0, 0, 100, 0, 1300, 9600, 21700, 30200, 0, 11, 36341, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - In Combat - Cast \'Super Shrink Ray\''), +(-138878, 0, 1, 0, 0, 0, 100, 0, 5100, 16400, 12100, 22900, 0, 11, 36345, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - In Combat - Cast \'Death Ray\''), +(-138878, 0, 2, 0, 0, 0, 100, 0, 18100, 24100, 18100, 24100, 0, 11, 36346, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - In Combat - Cast \'Growth Ray\''), +(-138878, 0, 1001, 0, 11, 0, 100, 513, 0, 0, 0, 0, 0, 11, 34426, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - On Respawn - Cast \'Greater Invisibility\''), +(-138878, 0, 1002, 0, 4, 0, 100, 257, 0, 0, 0, 0, 0, 80, 1922002, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - On Aggro - Run Script'), +(-138878, 0, 1003, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 63, 1, 1, 0, 0, 0, 0, 10, 138864, 19735, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - On Just Died - Set Counter for Next Wave'), + +-- Wave 2 + +(-138864, 0, 0, 0, 0, 0, 100, 0, 8400, 16900, 9600, 20500, 0, 11, 36582, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - In Combat - Cast \'Charged Fist\''), +(-138864, 0, 1, 0, 0, 0, 100, 0, 9700, 10800, 10900, 22900, 0, 11, 35783, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - In Combat - Cast \'Knockdown\''), +(-138864, 0, 1001, 0, 11, 0, 100, 512, 0, 0, 0, 0, 0, 80, 1922000, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - On Respawn - Run Script'), +(-138864, 0, 1002, 0, 77, 0, 100, 512, 1, 3, 0, 0, 0, 80, 1922001, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - On Counter Set 3/3 - Run Script Engage'), +(-138864, 0, 1003, 1004, 6, 0, 100, 512, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 138820, 19168, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - On Just Died - Set Data for Next Wave'), +(-138864, 0, 1004, 1005, 61, 0, 100, 512, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 138869, 20059, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - On Just Died - Set Data for Next Wave'), +(-138864, 0, 1005, 1006, 61, 0, 100, 512, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 138893, 20990, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - On Just Died - Set Data for Next Wave'), +(-138864, 0, 1006, 0, 61, 0, 100, 512, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 138879, 20988, 0, 0, 0, 0, 0, 0, 'Tempest-Forge Destroyer - On Just Died - Set Data for Next Wave'), + +-- Wave 3 + +(-138820, 0, 0, 0, 0, 0, 100, 0, 4800, 16100, 3000, 5000, 0, 11, 35265, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Fire Shield\''), +(-138820, 0, 1, 0, 0, 0, 100, 2, 3100, 7600, 12100, 21700, 0, 11, 17195, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Scorch\' (Normal Dungeon)'), +(-138820, 0, 2, 0, 0, 0, 100, 4, 3100, 7600, 12100, 21700, 0, 11, 36807, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Scorch\' (Heroic Dungeon)'), +(-138820, 0, 3, 0, 0, 0, 100, 0, 4800, 26700, 13200, 27700, 0, 11, 35267, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - In Combat - Cast \'Solarburn\''), +(-138820, 0, 1001, 0, 11, 0, 100, 512, 0, 0, 0, 0, 0, 80, 1922000, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - On Respawn - Run Script'), +(-138820, 0, 1002, 0, 38, 0, 100, 512, 1, 1, 0, 0, 0, 80, 1922001, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - On Data Set 1 1 - Run Script'), +(-138820, 0, 1003, 0, 6, 0, 100, 512, 0, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 0, 10, 138823, 19220, 0, 0, 0, 0, 0, 0, 'Sunseeker Astromage - On Just Died - Do Action on Pathaleon'), + +(-138869, 0, 0, 0, 0, 0, 100, 0, 12100, 19300, 10800, 25300, 0, 11, 35243, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Netherbinder - In Combat - Cast \'Starfire\''), +(-138869, 0, 1, 0, 9, 0, 100, 0, 0, 8, 10800, 25300, 0, 11, 35261, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Netherbinder - Within 0-8 Range - Cast \'Arcane Nova\''), +(-138869, 0, 2, 0, 0, 0, 100, 0, 5000, 5000, 10000, 10000, 0, 11, 17201, 0, 0, 0, 0, 0, 26, 30, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Netherbinder - In Combat - Cast \'Dispel Magic\''), +(-138869, 0, 3, 4, 0, 0, 100, 0, 14100, 18900, 63200, 68100, 0, 11, 35251, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Netherbinder - In Combat - Cast \'Summon Arcane Golem\''), +(-138869, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 11, 35260, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Netherbinder - In Combat - Cast \'Summon Arcane Golem\''), +(-138869, 0, 1001, 0, 11, 0, 100, 512, 0, 0, 0, 0, 0, 80, 1922000, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Netherbinder - On Respawn - Run Script'), +(-138869, 0, 1002, 0, 38, 0, 100, 512, 1, 1, 0, 0, 0, 80, 1922001, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Netherbinder - On Data Set 1 1 - Run Script'), +(-138869, 0, 1003, 0, 6, 0, 100, 512, 0, 0, 0, 0, 0, 223, 2, 0, 0, 0, 0, 0, 10, 138823, 19220, 0, 0, 0, 0, 0, 0, 'Sunseeker Netherbinder - On Just Died - Do Action on Pathaleon'), + +(-138893, 0, 0, 0, 0, 0, 100, 0, 8400, 19300, 7200, 19300, 0, 11, 36340, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - In Combat - Cast \'Holy Shock\''), +(-138893, 0, 1, 0, 74, 0, 100, 0, 0, 75, 10000, 16000, 15, 11, 36348, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - On Friendly Between 0-75% Health - Cast \'Bandage\''), +(-138893, 0, 2, 0, 0, 0, 100, 0, 9000, 14000, 12000, 16000, 0, 11, 36333, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - In Combat - Cast \'Anesthetic\''), +(-138893, 0, 1001, 0, 11, 0, 100, 512, 0, 0, 0, 0, 0, 80, 1922000, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - On Respawn - Run Script'), +(-138893, 0, 1002, 0, 38, 0, 100, 512, 1, 1, 0, 0, 0, 80, 1922001, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - On Data Set 1 1 - Run Script'), +(-138893, 0, 1003, 0, 6, 0, 100, 512, 0, 0, 0, 0, 0, 223, 3, 0, 0, 0, 0, 0, 10, 138823, 19220, 0, 0, 0, 0, 0, 0, 'Bloodwarder Physician - On Just Died - Do Action on Pathaleon'), + +(-138879, 0, 0, 0, 0, 0, 100, 0, 1300, 9600, 21700, 30200, 0, 11, 36341, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - In Combat - Cast \'Super Shrink Ray\''), +(-138879, 0, 1, 0, 0, 0, 100, 0, 5100, 16400, 12100, 22900, 0, 11, 36345, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - In Combat - Cast \'Death Ray\''), +(-138879, 0, 2, 0, 0, 0, 100, 0, 18100, 24100, 18100, 24100, 0, 11, 36346, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - In Combat - Cast \'Growth Ray\''), +(-138879, 0, 1001, 0, 11, 0, 100, 512, 0, 0, 0, 0, 0, 80, 1922000, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - On Respawn - Run Script'), +(-138879, 0, 1002, 0, 38, 0, 100, 512, 1, 1, 0, 0, 0, 80, 1922001, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - On Data Set 1 1 - Run Script'), +(-138879, 0, 1003, 0, 6, 0, 100, 512, 0, 0, 0, 0, 0, 223, 4, 0, 0, 0, 0, 0, 10, 138823, 19220, 0, 0, 0, 0, 0, 0, 'Sunseeker Engineer - On Just Died - Do Action on Pathaleon'); diff --git a/src/common/Debugging/WheatyExceptionReport.cpp b/src/common/Debugging/WheatyExceptionReport.cpp index 4006e44f9..be5663002 100644 --- a/src/common/Debugging/WheatyExceptionReport.cpp +++ b/src/common/Debugging/WheatyExceptionReport.cpp @@ -674,8 +674,13 @@ void WheatyExceptionReport::GenerateExceptionReport( // Initialize DbgHelp if (!SymInitialize(GetCurrentProcess(), 0, TRUE)) { - Log(_T("\n\rCRITICAL ERROR.\n\r Couldn't initialize the symbol handler for process.\n\rError [%s].\n\r\n\r"), - ErrorMessage(GetLastError())); + Log(_T("\r\n")); + Log(_T("----\r\n")); + Log(_T("SYMBOL HANDLER ERROR (THIS IS NOT THE CRASH ERROR)\r\n\r\n")); + Log(_T("Couldn't initialize symbol handler for process when generating crash report\r\n")); + Log(_T("Error: %s\r\n"), ErrorMessage(GetLastError())); + Log(_T("THE BELOW CALL STACKS MIGHT HAVE MISSING OR INACCURATE FILE/FUNCTION NAMES\r\n\r\n")); + Log(_T("----\r\n")); } CONTEXT trashableContext = *pCtx; diff --git a/src/common/Utilities/Util.h b/src/common/Utilities/Util.h index f00c06930..a58f5ac70 100644 --- a/src/common/Utilities/Util.h +++ b/src/common/Utilities/Util.h @@ -211,6 +211,11 @@ inline bool isNumeric(char c) return (c >= '0' && c <= '9'); } +inline bool IsEvenNumber(int32 n) +{ + return n % 2 == 0; +} + inline bool isNumeric(char const* str) { for (char const* c = str; *c; ++c) diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index 3c3061058..4b2e18d08 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -2481,6 +2481,12 @@ void AchievementGlobalMgr::LoadAchievementCriteriaList() if (!criteria) continue; + if (!GetAchievement(criteria->referredAchievement)) + { + LOG_DEBUG("server.loading", "Achievement {} referenced by criteria {} doesn't exist, criteria not loaded.", criteria->referredAchievement, criteria->ID); + continue; + } + _achievementCriteriasByType[criteria->requiredType].push_back(criteria); _achievementCriteriaListByAchievement[criteria->referredAchievement].push_back(criteria); diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp index fe6544a23..254720eb5 100644 --- a/src/server/game/Battlefield/Battlefield.cpp +++ b/src/server/game/Battlefield/Battlefield.cpp @@ -917,10 +917,13 @@ void BfCapturePoint::SendChangePhase() } } -bool BfCapturePoint::SetCapturePointData(GameObject* capturePoint) +bool BfCapturePoint::SetCapturePointData(GameObject* capturePoint, TeamId team) { ASSERT(capturePoint); + //At first call using TEAM_NEUTRAL as a checker but never using it, after first call we reset the capturepoints to the new winner of the last WG war + if (team == TEAM_NEUTRAL) + team = m_team; LOG_DEBUG("bg.battlefield", "Creating capture point {}", capturePoint->GetEntry()); m_capturePoint = capturePoint->GetGUID(); @@ -939,7 +942,7 @@ bool BfCapturePoint::SetCapturePointData(GameObject* capturePoint) m_neutralValuePct = goinfo->capturePoint.neutralPercent; m_minValue = m_maxValue * goinfo->capturePoint.neutralPercent / 100; m_capturePointEntry = capturePoint->GetEntry(); - if (m_team == TEAM_ALLIANCE) + if (team == TEAM_ALLIANCE) { m_value = m_maxValue; m_State = BF_CAPTUREPOINT_OBJECTIVESTATE_ALLIANCE; diff --git a/src/server/game/Battlefield/Battlefield.h b/src/server/game/Battlefield/Battlefield.h index 308d3f281..12bae2338 100644 --- a/src/server/game/Battlefield/Battlefield.h +++ b/src/server/game/Battlefield/Battlefield.h @@ -104,7 +104,8 @@ public: virtual void ChangeTeam(TeamId /*oldTeam*/) {} virtual void SendChangePhase(); - bool SetCapturePointData(GameObject* capturePoint); + //Added team to reset capturepoints on sliders after warTime + bool SetCapturePointData(GameObject* capturePoint, TeamId team); GameObject* GetCapturePointGo(); GameObject* GetCapturePointGo(WorldObject* obj); diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp index 51a4fec74..6697ffe36 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp @@ -102,7 +102,7 @@ bool BattlefieldWG::SetupBattlefield() // When between games, the graveyard is controlled by the defending team if (WGGraveYard[i].startcontrol == TEAM_NEUTRAL) - graveyard->Initialize(m_DefenderTeam, WGGraveYard[i].gyid); + graveyard->Initialize(WGGraveYard[i].gyid == BATTLEFIELD_WG_GY_WORKSHOP_SE || WGGraveYard[i].gyid == BATTLEFIELD_WG_GY_WORKSHOP_SW ? GetAttackerTeam() : m_DefenderTeam, WGGraveYard[i].gyid); else graveyard->Initialize(WGGraveYard[i].startcontrol, WGGraveYard[i].gyid); @@ -114,7 +114,7 @@ bool BattlefieldWG::SetupBattlefield() for (uint8 i = 0; i < WG_MAX_WORKSHOP; i++) { WGWorkshop* workshop = new WGWorkshop(this, i); - if (i < BATTLEFIELD_WG_WORKSHOP_KEEP_WEST) + if (i == BATTLEFIELD_WG_WORKSHOP_SE || i == BATTLEFIELD_WG_WORKSHOP_SW) workshop->GiveControlTo(GetAttackerTeam(), true); else workshop->GiveControlTo(GetDefenderTeam(), true); @@ -262,6 +262,11 @@ void BattlefieldWG::OnBattleStart() if (*itr) (*itr)->UpdateGraveyardAndWorkshop(); + // Set Sliders capture points data to his owners when battle start + for (BfCapturePointVector::const_iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr) + (*itr)->SetCapturePointData((*itr)->GetCapturePointGo(), + (*itr)->GetCapturePointGo()->GetEntry() == GO_WINTERGRASP_FACTORY_BANNER_SE || (*itr)->GetCapturePointGo()->GetEntry() == GO_WINTERGRASP_FACTORY_BANNER_SW ? GetAttackerTeam() : GetDefenderTeam()); + for (uint8 team = 0; team < 2; ++team) for (GuidUnorderedSet::const_iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr) { @@ -375,7 +380,7 @@ void BattlefieldWG::OnBattleEnd(bool endByTimer) // Update all graveyard, control is to defender when no wartime for (uint8 i = 0; i < BATTLEFIELD_WG_GY_HORDE; i++) if (BfGraveyard* graveyard = GetGraveyardById(i)) - graveyard->GiveControlTo(GetDefenderTeam()); + graveyard->GiveControlTo(i == BATTLEFIELD_WG_GY_WORKSHOP_SE || i == BATTLEFIELD_WG_GY_WORKSHOP_SW ? GetAttackerTeam() : GetDefenderTeam()); for (GameObjectSet::const_iterator itr = m_KeepGameObject[GetDefenderTeam()].begin(); itr != m_KeepGameObject[GetDefenderTeam()].end(); ++itr) (*itr)->SetRespawnTime(RESPAWN_IMMEDIATELY); @@ -396,7 +401,10 @@ void BattlefieldWG::OnBattleEnd(bool endByTimer) } for (Workshop::const_iterator itr = WorkshopsList.begin(); itr != WorkshopsList.end(); ++itr) + { + (*itr)->GiveControlTo((*itr)->workshopId == BATTLEFIELD_WG_WORKSHOP_SE || (*itr)->workshopId == BATTLEFIELD_WG_WORKSHOP_SW ? GetAttackerTeam() : GetDefenderTeam(), true); (*itr)->Save(); + } for (uint8 team = 0; team < 2; ++team) { @@ -689,9 +697,9 @@ void BattlefieldWG::OnGameObjectCreate(GameObject* go) { if (workshop->workshopId == workshopId) { - WintergraspCapturePoint* capturePoint = new WintergraspCapturePoint(this, GetAttackerTeam()); - - capturePoint->SetCapturePointData(go); + WintergraspCapturePoint* capturePoint = new WintergraspCapturePoint(this, workshop->teamControl); + //Sending neutral team at start to set normal capture points by workshop->teamControl, TEAM_NEUTRAL is ignored at first call + capturePoint->SetCapturePointData(go, TEAM_NEUTRAL); capturePoint->LinkToWorkshop(workshop); AddCapturePoint(capturePoint); break; @@ -846,7 +854,7 @@ void BattlefieldWG::OnPlayerJoinWar(Player* player) if (player->GetTeamId() == TEAM_HORDE) player->TeleportTo(571, 5025.857422f, 3674.628906f, 362.737122f, 4.135169f); else - player->TeleportTo(571, 5101.284f, 2186.564f, 373.549f, 3.812f); + player->TeleportTo(571, 5101.284f, 2186.564f, 365.549f, 3.812f); } if (player->GetTeamId() == GetAttackerTeam()) diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.h b/src/server/game/Battlefield/Zones/BattlefieldWG.h index f603d2a35..89f8848ab 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.h +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.h @@ -1474,6 +1474,17 @@ struct WGWorkshop // Send warning message to all player to inform a faction attack to a workshop // alliance / horde attacking a workshop bf->SendWarning(teamControl ? WorkshopsData[workshopId].attackText : (WorkshopsData[workshopId].attackText + 2)); + + // Updating worldstate, update icon to neutral + state = BATTLEFIELD_WG_OBJECTSTATE_NEUTRAL_INTACT; + bf->SendUpdateWorldState(WorkshopsData[workshopId].worldstate, state); + + // Found associate graveyard and update it + if (workshopId < BATTLEFIELD_WG_WORKSHOP_KEEP_WEST) + if (bf->GetGraveyardById(workshopId)) + bf->GetGraveyardById(workshopId)->GiveControlTo(team); + + teamControl = team; break; } case TEAM_ALLIANCE: diff --git a/src/server/game/Battlegrounds/ArenaTeam.cpp b/src/server/game/Battlegrounds/ArenaTeam.cpp index 90455f469..d362277f4 100644 --- a/src/server/game/Battlegrounds/ArenaTeam.cpp +++ b/src/server/game/Battlegrounds/ArenaTeam.cpp @@ -927,7 +927,7 @@ void ArenaTeam::UpdateArenaPointsHelper(std::map& playerPoin } } -void ArenaTeam::SaveToDB() +void ArenaTeam::SaveToDB(bool forceMemberSave) { if (!sScriptMgr->CanSaveToDB(this)) return; @@ -949,6 +949,10 @@ void ArenaTeam::SaveToDB() for (MemberList::const_iterator itr = Members.begin(); itr != Members.end(); ++itr) { + // Save the effort and go + if (itr->WeekGames == 0 && !forceMemberSave) + continue; + stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ARENA_TEAM_MEMBER); stmt->SetData(0, itr->PersonalRating); stmt->SetData(1, itr->WeekGames); @@ -970,8 +974,12 @@ void ArenaTeam::SaveToDB() CharacterDatabase.CommitTransaction(trans); } -void ArenaTeam::FinishWeek() +bool ArenaTeam::FinishWeek() { + // No need to go further than this + if (Stats.WeekGames == 0) + return false; + // Reset team stats Stats.WeekGames = 0; Stats.WeekWins = 0; @@ -982,6 +990,8 @@ void ArenaTeam::FinishWeek() itr->WeekGames = 0; itr->WeekWins = 0; } + + return true; } bool ArenaTeam::IsFighting() const diff --git a/src/server/game/Battlegrounds/ArenaTeam.h b/src/server/game/Battlegrounds/ArenaTeam.h index 103647309..e5bc2ce3c 100644 --- a/src/server/game/Battlegrounds/ArenaTeam.h +++ b/src/server/game/Battlegrounds/ArenaTeam.h @@ -182,7 +182,7 @@ public: bool LoadArenaTeamFromDB(QueryResult arenaTeamDataResult); bool LoadMembersFromDB(QueryResult arenaTeamMembersResult); void LoadStatsFromDB(uint32 ArenaTeamId); - void SaveToDB(); + void SaveToDB(bool forceMemberSave = false); void BroadcastPacket(WorldPacket* packet); void BroadcastEvent(ArenaTeamEvents event, ObjectGuid guid, uint8 strCount, std::string const& str1, std::string const& str2, std::string const& str3); @@ -206,7 +206,7 @@ public: void UpdateArenaPointsHelper(std::map& PlayerPoints); - void FinishWeek(); + bool FinishWeek(); // returns true if arena team played this week void FinishGame(int32 mod, const Map* bgMap); void SetPreviousOpponents(uint32 arenaTeamId) { PreviousOpponents = arenaTeamId; } diff --git a/src/server/game/Battlegrounds/ArenaTeamMgr.cpp b/src/server/game/Battlegrounds/ArenaTeamMgr.cpp index 3ac05c425..629296d2e 100644 --- a/src/server/game/Battlegrounds/ArenaTeamMgr.cpp +++ b/src/server/game/Battlegrounds/ArenaTeamMgr.cpp @@ -239,8 +239,9 @@ void ArenaTeamMgr::DistributeArenaPoints() { if (ArenaTeam* at = titr->second) { - at->FinishWeek(); - at->SaveToDB(); + if (at->FinishWeek()) + at->SaveToDB(true); + at->NotifyStatsChanged(); } } diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 7d8f75a61..a4b218b36 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -1863,7 +1863,9 @@ bool WorldObject::CanSeeOrDetect(WorldObject const* obj, bool ignoreStealth, boo return false; if (!CanDetect(obj, ignoreStealth, !distanceCheck, checkAlert)) + { return false; + } return true; } @@ -1890,7 +1892,9 @@ bool WorldObject::CanDetect(WorldObject const* obj, bool ignoreStealth, bool che if (!ignoreStealth) { if (!seer->CanDetectInvisibilityOf(obj)) // xinef: added ignoreStealth, allow AoE spells to hit invisible targets! + { return false; + } if (!seer->CanDetectStealthOf(obj, checkAlert)) { @@ -1923,11 +1927,32 @@ bool WorldObject::CanDetectInvisibilityOf(WorldObject const* obj) const // It seems like that only Units are affected by this check (couldn't see arena doors with preparation invisibility) if (obj->ToUnit()) { - uint32 objMask = m_invisibility.GetFlags() & obj->m_invisibilityDetect.GetFlags(); - // xinef: include invisible flags of caster in the mask, 2 invisible objects should be able to detect eachother - objMask |= m_invisibility.GetFlags() & obj->m_invisibility.GetFlags(); - if (objMask != m_invisibility.GetFlags()) - return false; + // Permanently invisible creatures should be able to engage non-invisible targets. + // ex. Skulking Witch (20882) / Greater Invisibility (16380) + bool isPermInvisibleCreature = false; + if (Creature const* baseObj = ToCreature()) + { + auto auraEffects = baseObj->GetAuraEffectsByType(SPELL_AURA_MOD_INVISIBILITY); + for (auto const effect : auraEffects) + { + if (SpellInfo const* spell = effect->GetSpellInfo()) + { + if (spell->GetMaxDuration() == -1) + { + isPermInvisibleCreature = true; + } + } + } + } + + if (!isPermInvisibleCreature) + { + uint32 objMask = m_invisibility.GetFlags() & obj->m_invisibilityDetect.GetFlags(); + // xinef: include invisible flags of caster in the mask, 2 invisible objects should be able to detect eachother + objMask |= m_invisibility.GetFlags() & obj->m_invisibility.GetFlags(); + if (objMask != m_invisibility.GetFlags()) + return false; + } } for (uint32 i = 0; i < TOTAL_INVISIBILITY_TYPES; ++i) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 36d6a231e..bddc3cbe3 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -15144,7 +15144,7 @@ void Player::ActivateSpec(uint8 spec) for (AuraList::iterator iter = scAuras.begin(); iter != scAuras.end();) { Aura* aura = *iter; - if (!HasActiveSpell(aura->GetId()) && !HasTalent(aura->GetId(), GetActiveSpec())) + if (!HasActiveSpell(aura->GetId()) && !HasTalent(aura->GetId(), GetActiveSpec()) && !aura->GetCastItemGUID()) { aura->Remove(); iter = scAuras.begin(); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 0ea571ca6..0fe90fe50 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -13490,7 +13490,7 @@ void Unit::Dismount() if (Player* player = ToPlayer()) { sScriptMgr->AnticheatSetUnderACKmount(player); - + ToPlayer()->SetCanTeleport(true); if (Pet* pPet = player->GetPet()) { if (pPet->HasUnitFlag(UNIT_FLAG_STUNNED) && !pPet->HasUnitState(UNIT_STATE_STUNNED)) diff --git a/src/server/game/Grids/ObjectGridLoader.cpp b/src/server/game/Grids/ObjectGridLoader.cpp index 25ff2343b..ac1631caf 100644 --- a/src/server/game/Grids/ObjectGridLoader.cpp +++ b/src/server/game/Grids/ObjectGridLoader.cpp @@ -18,6 +18,7 @@ #include "ObjectGridLoader.h" #include "CellImpl.h" #include "Corpse.h" +#include "GridNotifiers.h" #include "Creature.h" #include "CreatureAI.h" #include "DynamicObject.h" @@ -97,13 +98,17 @@ void AddObjectHelper(CellCoord& cell, GameObjectMapType& m, uint32& count, Map* } template -void LoadHelper(CellGuidSet const& guid_set, CellCoord& cell, GridRefMgr& m, uint32& count, Map* map) +void LoadHelper(CellGuidSet const& /*guid_set*/, CellCoord& /*cell*/, GridRefMgr& /*m*/, uint32& /*count*/, Map* /*map*/) +{ +} + +template <> +void LoadHelper(CellGuidSet const& guid_set, CellCoord& cell, GridRefMgr& m, uint32& count, Map* map) { for (CellGuidSet::const_iterator i_guid = guid_set.begin(); i_guid != guid_set.end(); ++i_guid) { - T* obj = new T; + Creature* obj = new Creature(); ObjectGuid::LowType guid = *i_guid; - if (!obj->LoadFromDB(guid, map)) { delete obj; @@ -111,6 +116,16 @@ void LoadHelper(CellGuidSet const& guid_set, CellCoord& cell, GridRefMgr& m, } AddObjectHelper(cell, m, count, map, obj); + + if (!obj->IsMoveInLineOfSightDisabled() && obj->GetDefaultMovementType() == IDLE_MOTION_TYPE && !obj->isNeedNotify(NOTIFY_VISIBILITY_CHANGED | NOTIFY_AI_RELOCATION)) + { + if (obj->IsAlive() && !obj->HasUnitState(UNIT_STATE_SIGHTLESS) && obj->HasReactState(REACT_AGGRESSIVE) && !obj->IsImmuneToNPC()) + { + // call MoveInLineOfSight for nearby grid creatures + Acore::AIRelocationNotifier notifier(*obj); + Cell::VisitGridObjects(obj, notifier, 60.f); + } + } } } diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp index a2217dbfd..d09c1d816 100644 --- a/src/server/game/Handlers/MailHandler.cpp +++ b/src/server/game/Handlers/MailHandler.cpp @@ -237,6 +237,13 @@ void WorldSession::HandleSendMail(WorldPacket& recvData) return; } + // handle empty bag before CanBeTraded, since that func already has that check + if (item->IsNotEmptyBag()) + { + player->SendMailResult(0, MAIL_SEND, MAIL_ERR_EQUIP_ERROR, EQUIP_ERR_CAN_ONLY_DO_WITH_EMPTY_BAGS); + return; + } + if (!item->CanBeTraded(true)) { player->SendMailResult(0, MAIL_SEND, MAIL_ERR_EQUIP_ERROR, EQUIP_ERR_MAIL_BOUND_ITEM); @@ -261,12 +268,6 @@ void WorldSession::HandleSendMail(WorldPacket& recvData) return; } - if (item->IsNotEmptyBag()) - { - player->SendMailResult(0, MAIL_SEND, MAIL_ERR_EQUIP_ERROR, EQUIP_ERR_CAN_ONLY_DO_WITH_EMPTY_BAGS); - return; - } - if (!sScriptMgr->CanSendMail(player, receiverGuid, mailbox, subject, body, money, COD, item)) { player->SendMailResult(0, MAIL_SEND, MAIL_ERR_INTERNAL_ERROR); diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index 57a8b54e0..f2ce1d91b 100644 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -355,8 +355,12 @@ WorldSocket::ReadDataHandlerResult WorldSocket::ReadDataHandler() sessionGuard.lock(); LogOpcodeText(opcode, sessionGuard); if (_worldSession) + { _worldSession->ResetTimeOutTime(true); - return ReadDataHandlerResult::Ok; + return ReadDataHandlerResult::Ok; + } + LOG_ERROR("network", "WorldSocket::ReadDataHandler: client {} sent CMSG_KEEP_ALIVE without being authenticated", GetRemoteIpAddress().to_string()); + return ReadDataHandlerResult::Error; case CMSG_TIME_SYNC_RESP: packetToQueue = new WorldPacket(std::move(packet), GameTime::Now()); break; diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index e22e99eb6..d1bb58fca 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -6328,7 +6328,8 @@ SpellCastResult Spell::CheckCast(bool strict) // chance for fail at lockpicking attempt // second check prevent fail at rechecks - if (skillId != SKILL_NONE && (!m_selfContainer || ((*m_selfContainer) != this))) + // herbalism and mining cannot fail as of patch 3.1.0 + if (skillId != SKILL_NONE && skillId != SKILL_HERBALISM && skillId != SKILL_MINING && (!m_selfContainer || ((*m_selfContainer) != this))) { // chance for failure in orange lockpick if (skillId == SKILL_LOCKPICKING && reqSkillValue > irand(skillValue - 25, skillValue + 37)) diff --git a/src/server/game/Spells/SpellInfoCorrections.cpp b/src/server/game/Spells/SpellInfoCorrections.cpp index be47d6793..8d21dce2c 100644 --- a/src/server/game/Spells/SpellInfoCorrections.cpp +++ b/src/server/game/Spells/SpellInfoCorrections.cpp @@ -4483,6 +4483,18 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->AttributesEx5 |= SPELL_ATTR5_ALLOW_ACTION_DURING_CHANNEL; }); + // Buffeting Winds of Susurrus + ApplySpellFix({ 32474 }, [](SpellInfo* spellInfo) + { + spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(556); // 28 seconds + }); + + // Quest - Healing Salve + ApplySpellFix({ 29314 }, [](SpellInfo* spellInfo) + { + spellInfo->CastTimeEntry = sSpellCastTimesStore.LookupEntry(1); // 0s + }); + for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i) { SpellInfo* spellInfo = mSpellInfoMap[i]; diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 9b8aba867..552659a6c 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -1193,6 +1193,8 @@ bool SpellArea::IsFitToRequirements(Player const* player, uint32 newZone, uint32 return spellId == 56618; else if (team == TEAM_ALLIANCE) return spellId == 56617; + else + return false; break; } // Hellscream's Warsong diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp index 315eecb88..d0024de85 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp @@ -155,6 +155,9 @@ public: if (data == SPECIAL) encounter = SPECIAL; break; + case DATA_HORSEMAN_EVENT: + encounter = data; + break; } } @@ -177,6 +180,8 @@ public: { if (type == TYPE_MOGRAINE_AND_WHITE_EVENT) return encounter; + else if (type == DATA_HORSEMAN_EVENT) + return encounter; return 0; } private: diff --git a/src/server/scripts/Events/hallows_end.cpp b/src/server/scripts/Events/hallows_end.cpp index 65b569c32..412d71231 100644 --- a/src/server/scripts/Events/hallows_end.cpp +++ b/src/server/scripts/Events/hallows_end.cpp @@ -24,6 +24,7 @@ #include "PassiveAI.h" #include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "ScriptedGossip.h" #include "SpellAuraEffects.h" #include "SpellScript.h" #include "TaskScheduler.h" @@ -981,14 +982,29 @@ enum headlessHorseman EVENT_HORSEMAN_CONFLAGRATION = 5, EVENT_SUMMON_PUMPKIN = 6, EVENT_HORSEMAN_FOLLOW = 7, + + // Headless Horseman + TALK_ENTRANCE = 0, + TALK_REJOINED = 1, + TALK_CONFLAGRATION = 2, + TALK_SPROUTING_PUMPKINS = 3, + TALK_DEATH = 4, + TALK_PLAYER_DEATH = 5, + + // Head of the Horseman + TALK_LAUGH = 0, + TALK_LOST_HEAD = 1, + + // Player + TALK_PLAYER_RISE = 22695, + TALK_PLAYER_TIME_IS_NIGH = 22696, + TALK_PLAYER_FELT_DEATH = 22720, + TALK_PLAYER_KNOW_DEMISE = 22721, }; -enum hhSounds +enum hhMisc { - SOUND_AGGRO = 11961, - SOUND_SLAY = 11962, - SOUND_SPROUT = 11963, - SOUND_DEATH = 11964, + DATA_HORSEMAN_EVENT = 5, }; struct boss_headless_horseman : public ScriptedAI @@ -1006,8 +1022,7 @@ struct boss_headless_horseman : public ScriptedAI void JustDied(Unit* /*killer*/) override { summons.DespawnAll(); - me->Say("This end have I reached before. What new adventure lies in store?", LANG_UNIVERSAL); - me->PlayDirectSound(SOUND_DEATH); + Talk(TALK_DEATH); std::list unitList; me->GetCreaturesWithEntryInRange(unitList, 100.0f, NPC_PUMPKIN_FIEND); for (std::list::iterator itr = unitList.begin(); itr != unitList.end(); ++itr) @@ -1016,12 +1031,14 @@ struct boss_headless_horseman : public ScriptedAI Map::PlayerList const& players = me->GetMap()->GetPlayers(); if (!players.IsEmpty() && players.begin()->GetSource() && players.begin()->GetSource()->GetGroup()) sLFGMgr->FinishDungeon(players.begin()->GetSource()->GetGroup()->GetGUID(), lfg::LFG_DUNGEON_HEADLESS_HORSEMAN, me->FindMap()); + + if (InstanceScript* instance = me->GetInstanceScript()) + instance->SetData(DATA_HORSEMAN_EVENT, DONE); } void KilledUnit(Unit* /*who*/) override { - me->Yell("Your body lies beaten, battered and broken. Let my curse be your own, fate has spoken.", LANG_UNIVERSAL); - me->PlayDirectSound(SOUND_SLAY); + Talk(TALK_PLAYER_DEATH); } void DoAction(int32 param) override @@ -1052,7 +1069,7 @@ struct boss_headless_horseman : public ScriptedAI events.CancelEvent(EVENT_HORSEMAN_WHIRLWIND); events.CancelEvent(EVENT_HORSEMAN_CONFLAGRATION); events.CancelEvent(EVENT_SUMMON_PUMPKIN); - me->Yell("Here's my body, fit and pure! Now, your blackened souls I'll cure!", LANG_UNIVERSAL); + Talk(TALK_REJOINED); if (phase == 1) events.ScheduleEvent(EVENT_HORSEMAN_CONFLAGRATION, 6s); @@ -1131,6 +1148,14 @@ struct boss_headless_horseman : public ScriptedAI me->SetSpeed(MOVE_WALK, 5.0f, true); } + void JustReachedHome() override + { + if (InstanceScript* instance = me->GetInstanceScript()) + instance->SetData(DATA_HORSEMAN_EVENT, FAIL); + + me->DespawnOrUnsummon(); + } + void UpdateAI(uint32 diff) override { events.Update(diff); @@ -1152,23 +1177,22 @@ struct boss_headless_horseman : public ScriptedAI switch (talkCount) { case 1: - player->Say("Horseman rise...", LANG_UNIVERSAL); + player->Say(TALK_PLAYER_RISE); break; case 2: - player->Say("Your time is nigh...", LANG_UNIVERSAL); + player->Say(TALK_PLAYER_TIME_IS_NIGH); if (Creature* trigger = me->SummonTrigger(1765.28f, 1347.46f, 17.5514f, 0.0f, 15 * IN_MILLISECONDS)) trigger->CastSpell(trigger, SPELL_EARTH_EXPLOSION, true); break; case 3: me->GetMotionMaster()->MovePath(236820, false); me->CastSpell(me, SPELL_SHAKE_CAMERA_SMALL, true); - player->Say("You felt death once...", LANG_UNIVERSAL); - me->Say("It is over, your search is done. Let fate choose now, the righteous one.", LANG_UNIVERSAL); - me->PlayDirectSound(SOUND_AGGRO); + player->Say(TALK_PLAYER_FELT_DEATH); + Talk(TALK_ENTRANCE); break; case 4: me->CastSpell(me, SPELL_SHAKE_CAMERA_MEDIUM, true); - player->Say("Now, know demise!", LANG_UNIVERSAL); + player->Say(TALK_PLAYER_KNOW_DEMISE); talkCount = 0; return; // pop and return, skip repeat } @@ -1220,7 +1244,7 @@ struct boss_headless_horseman : public ScriptedAI { me->CastSpell(target, SPELL_HORSEMAN_CONFLAGRATION, false); target->CastSpell(target, SPELL_HORSEMAN_CONFLAGRATION_SOUND, true); - me->Say("Harken, cur! Tis you I spurn! Now feel... the burn!", LANG_UNIVERSAL, target); + Talk(TALK_CONFLAGRATION); } events.RepeatEvent(12500); @@ -1236,8 +1260,7 @@ struct boss_headless_horseman : public ScriptedAI } else { - me->Say("Soldiers arise, stand and fight! Bring victory at last to this fallen knight!", LANG_UNIVERSAL); - me->PlayDirectSound(SOUND_SPROUT); + Talk(TALK_SPROUTING_PUMPKINS); events.RepeatEvent(15000); talkCount = 0; } @@ -1334,6 +1357,8 @@ struct boss_headless_horseman_head : public ScriptedAI me->CastSpell(me, SPELL_THROW_HEAD_BACK, true); if (Unit* owner = GetOwner()) owner->RemoveAura(SPELL_HORSEMAN_IMMUNITY); + + Talk(TALK_LOST_HEAD); } } @@ -1351,20 +1376,8 @@ struct boss_headless_horseman_head : public ScriptedAI if (timer >= 30000) { timer = urand(0, 15000); - uint32 sound = 11965; - switch (urand(0, 2)) - { - case 1: - sound = 11975; - break; - case 2: - sound = 11976; - break; - } - me->CastSpell(me, SPELL_HORSEMAN_SPEAKS, true); - me->TextEmote("Headless Horseman laughs"); - me->PlayDirectSound(sound); + Talk(TALK_LAUGH); } } }; @@ -1450,6 +1463,33 @@ public: } }; +class go_pumpkin_shrine : public GameObjectScript +{ +public: + go_pumpkin_shrine() : GameObjectScript("go_pumpkin_shrine") {} + + bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 /*action*/) override + { + CloseGossipMenuFor(player); + + if (InstanceScript* instance = go->GetInstanceScript()) + { + if (instance->GetData(DATA_HORSEMAN_EVENT) == IN_PROGRESS || instance->GetData(DATA_HORSEMAN_EVENT) == DONE) + return true; + + if (player->FindNearestCreature(NPC_HEADLESS_HORSEMAN_MOUNTED, 100.0f)) + return true; + + if (Creature* horseman = go->SummonCreature(NPC_HEADLESS_HORSEMAN_MOUNTED, 1754.00f, 1346.00f, 17.50f, 0.0f, TEMPSUMMON_MANUAL_DESPAWN, 0)) + horseman->CastSpell(player, SPELL_SUMMONING_RHYME_TARGET, true); + + instance->SetData(DATA_HORSEMAN_EVENT, IN_PROGRESS); + } + + return true; + } +}; + void AddSC_event_hallows_end_scripts() { // Spells @@ -1475,6 +1515,7 @@ void AddSC_event_hallows_end_scripts() // Headless Horseman new go_loosely_turned_soil(); + new go_pumpkin_shrine(); RegisterCreatureAI(boss_headless_horseman); RegisterCreatureAI(boss_headless_horseman_head); RegisterCreatureAI(boss_headless_horseman_pumpkin); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp index a82410d0d..daef75def 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp @@ -203,7 +203,7 @@ public: events.ScheduleEvent(EVENT_SPELL_HAMMER, 30000); break; case EVENT_SPELL_HOLY_SHIELD: - me->CastSpell(me, SPELL_CLEANSE, false); + me->CastSpell(me, SPELL_HOLY_SHIELD, false); events.ScheduleEvent(SPELL_HOLY_SHIELD, 30000); break; case EVENT_SPELL_CONSECRATION: diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp index 57fa05fde..3301df8a4 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp @@ -130,7 +130,7 @@ public: case NPC_INFINITE_EXECUTIONER_2: case NPC_INFINITE_VANQUISHER: case NPC_INFINITE_VANQUISHER_2: - creature->DespawnOrUnsummon(); + creature->DespawnOrUnsummon(1); break; default: break; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp index a7b2be240..b9110e2e3 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp @@ -3051,95 +3051,110 @@ public: } }; -class npc_icc_spire_frostwyrm : public CreatureScript +enum SpireFrostwyrm { -public: - npc_icc_spire_frostwyrm() : CreatureScript("npc_icc_spire_frostwyrm") { } + SPELL_BLIZZARD = 70362, + SPELL_CLEAVE = 70361, + SPELL_FROSTBREATH = 70116, - struct npc_icc_spire_frostwyrmAI : public ScriptedAI + HORDE_AREATRIGGER = 5630 +}; + +struct npc_icc_spire_frostwyrm : public ScriptedAI +{ + npc_icc_spire_frostwyrm(Creature* creature) : ScriptedAI(creature) { - npc_icc_spire_frostwyrmAI(Creature* creature) : ScriptedAI(creature) + _scheduler.SetValidator([this] { - me->SetCanFly(true); - me->SetDisableGravity(true); - } + return !me->HasUnitState(UNIT_STATE_CASTING); + }); - EventMap events; - - void Reset() override - { - events.Reset(); - events.ScheduleEvent(1, 15s, 25s); // blizzard - events.ScheduleEvent(2, 5s); // cleave - events.ScheduleEvent(3, 10s, 15s); // frost breath - } - - void DoAction(int32 a) override - { - if (a != -1) - return; - if (me->GetHomePosition().GetPositionZ() < 225.0f) - return; - me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), 191.26f, me->GetOrientation()); - me->GetMotionMaster()->MoveLand(1, me->GetPositionX(), me->GetPositionY(), 191.26f, 2.5f * 7.0f); - Talk(0); - } - - void MovementInform(uint32 type, uint32 id) override - { - if (type == EFFECT_MOTION_TYPE && id == 1) - { - me->SetCanFly(false); - me->SetDisableGravity(false); - - if (Player* p = SelectTargetFromPlayerList(100.0f)) - { - Talk(p->GetTeamId() == TEAM_HORDE ? 1 : 2); - AttackStart(p); - } - } - } - - bool CanAIAttack(Unit const* target) const override - { - return me->GetPositionZ() < 225.0f && me->GetHomePosition().GetExactDist(target) < 200.0f; - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - events.Update(diff); - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - switch (events.ExecuteEvent()) - { - case 1: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true)) - me->CastSpell(target, 70362, false); - events.Repeat(25s, 35s); - break; - case 2: - me->CastSpell(me->GetVictim(), 70361, false); - events.Repeat(5s); - break; - case 3: - me->CastSpell(me->GetVictim(), 70116, false); - events.Repeat(10s, 15s); - break; - } - - DoMeleeAttackIfReady(); - } - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return GetIcecrownCitadelAI(creature); + _canResetFlyingEffects = true; } + + void Reset() override + { + if (!_canResetFlyingEffects) + { + me->SetCanFly(false); + me->SetDisableGravity(false); + me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER); + me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); + } + } + + void JustEngagedWith(Unit* /*victim*/) override + { + _scheduler.Schedule(15s, 25s, [this](TaskContext context) + { + DoCastRandomTarget(SPELL_BLIZZARD); + context.Repeat(25s, 35s); + }).Schedule(5s, [this](TaskContext context) + { + DoCastVictim(SPELL_CLEAVE); + context.Repeat(); + }).Schedule(10s, 15s, [this](TaskContext context) + { + DoCastVictim(SPELL_FROSTBREATH); + context.Repeat(); + }); + + _canResetFlyingEffects = false; + } + + void DoAction(int32 action) override + { + const Position posHordeMove = { -433.667084f, 2080.347412f, 191.253860f, 3.825093f }; + const Position posAllianceMove = { -433.589508f, 2344.564697f, 191.253616f, 2.543328f }; + + bool hordeSide = action == HORDE_AREATRIGGER || action == HORDE_AREATRIGGER + 1; + Position landingPosition = hordeSide ? posHordeMove : posAllianceMove; + + me->GetMotionMaster()->MovePoint(1, landingPosition); + me->SetHomePosition(landingPosition); + + Talk(0); + } + + void MovementInform(uint32 type, uint32 id) override + { + if (type == EFFECT_MOTION_TYPE && id == 1) + { + me->SetCanFly(false); + me->SetDisableGravity(false); + me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER); + _canResetFlyingEffects = false; + } + } + + void JustReachedHome() override + { + ScriptedAI::JustReachedHome(); + if (!_canResetFlyingEffects) + { + me->SetCanFly(false); + me->SetDisableGravity(false); + me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER); + } + } + + bool CanAIAttack(Unit const* target) const override + { + return me->GetPositionZ() < 225.0f && me->GetHomePosition().GetExactDist(target) < 200.0f; + } + + void UpdateAI(uint32 diff) override + { + if (!UpdateVictim()) + return; + + _scheduler.Update(diff, + std::bind(&ScriptedAI::DoMeleeAttackIfReady, this)); + } + + private: + TaskScheduler _scheduler; + bool _canResetFlyingEffects; }; #define VENGEFUL_WP_COUNT 6 @@ -3746,16 +3761,27 @@ public: } }; -class at_icc_spire_frostwyrm : public AreaTriggerScript +class at_icc_spire_frostwyrm : public OnlyOnceAreaTriggerScript { public: - at_icc_spire_frostwyrm() : AreaTriggerScript("at_icc_spire_frostwyrm") { } + at_icc_spire_frostwyrm() : OnlyOnceAreaTriggerScript("at_icc_spire_frostwyrm") { } - bool OnTrigger(Player* player, AreaTrigger const* /*areaTrigger*/) override + bool _OnTrigger(Player* player, AreaTrigger const* areaTrigger) override { - if (Creature* frostwyrm = player->FindNearestCreature(NPC_SPIRE_FROSTWYRM, 150.0f, true)) - if (frostwyrm->GetPositionZ() > 250.0f && frostwyrm->AI()) - frostwyrm->AI()->DoAction(-1); + if (player->GetInstanceScript()->GetPersistentData(DATA_SPIRE_FROSTWYRM) != DONE) + { + player->GetInstanceScript()->StorePersistentData(DATA_SPIRE_FROSTWYRM, DONE); + const Position posHordeWyrm = { -375.538879f, 2120.774658f, 242.256775f, 3.714352f }; + const Position posAllianceWyrm = { -361.154358f, 2305.821289f, 244.771713f, 2.704335f }; + + bool hordeSide = areaTrigger->entry == HORDE_AREATRIGGER || areaTrigger->entry == HORDE_AREATRIGGER + 1; + + if (Creature* frostwyrm = player->SummonCreature(NPC_SPIRE_FROSTWYRM, hordeSide ? posHordeWyrm : posAllianceWyrm)) + { + frostwyrm->AI()->DoAction(areaTrigger->entry); + } + } + return true; } }; @@ -3803,7 +3829,7 @@ void AddSC_icecrown_citadel() new npc_icc_skybreaker_luminary(); new npc_icc_valkyr_herald(); new npc_icc_severed_essence(); - new npc_icc_spire_frostwyrm(); + RegisterIcecrownCitadelCreatureAI(npc_icc_spire_frostwyrm); new npc_icc_vengeful_fleshreaper(); new npc_icc_buff_switcher(); new npc_icc_nerubar_broodkeeper(); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h index 73eac4e21..a76c44478 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h @@ -148,6 +148,12 @@ enum DataTypes DATA_BPC_TRASH_DIED = 300, }; +enum PersistentData +{ + DATA_SPIRE_FROSTWYRM = 0, + MAX_DATA_INDEXES +}; + enum CreaturesIds { // At Light's Hammer diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp index 09f4d47f8..7337551a2 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp @@ -199,6 +199,7 @@ public: SetHeaders(DataHeader); SetBossNumber(MAX_ENCOUNTERS); + SetPersistentDataCount(MAX_DATA_INDEXES); LoadBossBoundaries(boundaries); LoadDoorData(doorData); TeamIdInInstance = TEAM_NEUTRAL; diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp index 4a30cad15..6fb4e9078 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp @@ -34,81 +34,54 @@ enum Spells SPELL_SHADOW_POWER = 35322 }; -enum Events +struct boss_gatewatcher_gyrokill : public BossAI { - EVENT_STREAM_OF_MACHINE_FLUID = 1, - EVENT_SAW_BLADE = 2, - EVENT_SHADOW_POWER = 3 -}; - -class boss_gatewatcher_gyrokill : public CreatureScript -{ -public: - boss_gatewatcher_gyrokill() : CreatureScript("boss_gatewatcher_gyrokill") { } - - struct boss_gatewatcher_gyrokillAI : public BossAI + boss_gatewatcher_gyrokill(Creature* creature) : BossAI(creature, DATA_GATEWATCHER_GYROKILL) { - boss_gatewatcher_gyrokillAI(Creature* creature) : BossAI(creature, DATA_GATEWATCHER_GYROKILL) { } - - void JustDied(Unit* /*killer*/) override + scheduler.SetValidator([this] { - _JustDied(); - Talk(SAY_DEATH); - } + return !me->HasUnitState(UNIT_STATE_CASTING); + }); + } - void JustEngagedWith(Unit* /*who*/) override - { - _JustEngagedWith(); - events.ScheduleEvent(EVENT_STREAM_OF_MACHINE_FLUID, 10000); - events.ScheduleEvent(EVENT_SAW_BLADE, 20000); - events.ScheduleEvent(EVENT_SHADOW_POWER, 30000); - Talk(SAY_AGGRO); - } - - void KilledUnit(Unit* victim) override - { - if (victim->GetTypeId() == TYPEID_PLAYER) - Talk(SAY_SLAY); - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - switch (events.ExecuteEvent()) - { - case EVENT_STREAM_OF_MACHINE_FLUID: - me->CastSpell(me->GetVictim(), SPELL_STREAM_OF_MACHINE_FLUID, false); - events.ScheduleEvent(EVENT_STREAM_OF_MACHINE_FLUID, urand(12000, 14000)); - break; - case EVENT_SAW_BLADE: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f)) - me->CastSpell(target, SPELL_SAW_BLADE, false); - Talk(SAY_SAW_BLADE); - events.ScheduleEvent(EVENT_SAW_BLADE, 25000); - break; - case EVENT_SHADOW_POWER: - me->CastSpell(me, SPELL_SHADOW_POWER, false); - events.ScheduleEvent(EVENT_SAW_BLADE, 25000); - break; - } - - DoMeleeAttackIfReady(); - } - }; - - CreatureAI* GetAI(Creature* creature) const override + void JustDied(Unit* /*killer*/) override { - return GetMechanarAI(creature); + _JustDied(); + Talk(SAY_DEATH); + } + + void JustEngagedWith(Unit* /*who*/) override + { + _JustEngagedWith(); + + scheduler.Schedule(10s, [this](TaskContext context) + { + DoCastVictim(SPELL_STREAM_OF_MACHINE_FLUID); + context.Repeat(12s, 14s); + }).Schedule(20s, [this](TaskContext context) + { + DoCastRandomTarget(SPELL_SAW_BLADE, 0, 50.0f); + Talk(SAY_SAW_BLADE); + context.Repeat(25s); + }).Schedule(30s, [this](TaskContext context) + { + me->CastSpell(me, SPELL_SHADOW_POWER, false); + context.Repeat(25s); + }); + + Talk(SAY_AGGRO); + } + + void KilledUnit(Unit* victim) override + { + if (victim->IsPlayer()) + { + Talk(SAY_SLAY); + } } }; void AddSC_boss_gatewatcher_gyrokill() { - new boss_gatewatcher_gyrokill(); + RegisterMechanarCreatureAI(boss_gatewatcher_gyrokill); } diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp index fc2483722..4bb31d811 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp @@ -35,83 +35,55 @@ enum Spells SPELL_STREAM_OF_MACHINE_FLUID = 35311 }; -enum Events +struct boss_gatewatcher_iron_hand : public BossAI { - EVENT_STREAM_OF_MACHINE_FLUID = 1, - EVENT_JACKHAMMER = 2, - EVENT_SHADOW_POWER = 3 -}; - -class boss_gatewatcher_iron_hand : public CreatureScript -{ -public: - boss_gatewatcher_iron_hand(): CreatureScript("boss_gatewatcher_iron_hand") { } - - struct boss_gatewatcher_iron_handAI : public BossAI + boss_gatewatcher_iron_hand(Creature* creature) : BossAI(creature, DATA_GATEWATCHER_IRON_HAND) { - boss_gatewatcher_iron_handAI(Creature* creature) : BossAI(creature, DATA_GATEWATCHER_IRON_HAND) { } - - void JustEngagedWith(Unit* /*who*/) override + scheduler.SetValidator([this] { - _JustEngagedWith(); - events.ScheduleEvent(EVENT_STREAM_OF_MACHINE_FLUID, 15000); - events.ScheduleEvent(EVENT_JACKHAMMER, 35000); - events.ScheduleEvent(EVENT_SHADOW_POWER, 25000); - Talk(SAY_AGGRO); - } + return !me->HasUnitState(UNIT_STATE_CASTING); + }); + } - void KilledUnit(Unit* victim) override - { - if (victim->GetTypeId() == TYPEID_PLAYER) - Talk(SAY_SLAY); - } - - void JustDied(Unit* /*killer*/) override - { - _JustDied(); - Talk(SAY_DEATH); - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - switch (events.ExecuteEvent()) - { - case EVENT_STREAM_OF_MACHINE_FLUID: - me->CastSpell(me->GetVictim(), SPELL_STREAM_OF_MACHINE_FLUID, false); - events.ScheduleEvent(EVENT_STREAM_OF_MACHINE_FLUID, 20000); - break; - case EVENT_JACKHAMMER: - Talk(EMOTE_HAMMER); - Talk(SAY_HAMMER); - me->CastSpell(me, SPELL_JACKHAMMER, false); - events.ScheduleEvent(EVENT_JACKHAMMER, 40000); - break; - case EVENT_SHADOW_POWER: - me->CastSpell(me, SPELL_SHADOW_POWER, false); - events.ScheduleEvent(EVENT_SHADOW_POWER, 25000); - break; - default: - break; - } - - DoMeleeAttackIfReady(); - } - }; - - CreatureAI* GetAI(Creature* creature) const override + void JustEngagedWith(Unit* /*who*/) override { - return GetMechanarAI(creature); + _JustEngagedWith(); + + scheduler.Schedule(15s, [this](TaskContext context) + { + DoCastVictim(SPELL_STREAM_OF_MACHINE_FLUID); + context.Repeat(20s); + }).Schedule(35s, [this](TaskContext context) + { + Talk(EMOTE_HAMMER); + Talk(SAY_HAMMER); + DoCastSelf(SPELL_JACKHAMMER); + context.Repeat(40s); + }).Schedule(25s, [this](TaskContext context) + { + DoCastSelf(SPELL_SHADOW_POWER); + context.Repeat(25s); + }); + + Talk(SAY_AGGRO); + } + + void KilledUnit(Unit* victim) override + { + if (victim->IsPlayer()) + { + Talk(SAY_SLAY); + } + } + + void JustDied(Unit* /*killer*/) override + { + _JustDied(); + Talk(SAY_DEATH); } }; void AddSC_boss_gatewatcher_iron_hand() { - new boss_gatewatcher_iron_hand(); + RegisterMechanarCreatureAI(boss_gatewatcher_iron_hand); } diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp index c594931d1..0293b2804 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp @@ -27,16 +27,23 @@ enum Spells SPELL_REFLECTIVE_MAGIC_SHIELD = 35158, SPELL_REFLECTIVE_DAMAGE_SHIELD = 35159, SPELL_POLARITY_SHIFT = 39096, - SPELL_BERSERK = 26662 + SPELL_BERSERK = 26662, + + SPELL_NETHER_CHARGE_PASSIVE = 35150, + + SPELL_SUMMON_NETHER_CHARGE_NE = 35153, + SPELL_SUMMON_NETHER_CHARGE_NW = 35904, + SPELL_SUMMON_NETHER_CHARGE_SE = 35905, + SPELL_SUMMON_NETHER_CHARGE_SW = 35906, }; enum Yells { - YELL_AGGRO = 0, - YELL_REFLECTIVE_MAGIC_SHIELD = 1, - YELL_REFLECTIVE_DAMAGE_SHIELD = 2, - YELL_KILL = 3, - YELL_DEATH = 4 + SAY_AGGRO = 0, + SAY_REFLECTIVE_MAGIC_SHIELD = 1, + SAY_REFLECTIVE_DAMAGE_SHIELD = 2, + SAY_KILL = 3, + SAY_DEATH = 4 }; enum Creatures @@ -44,101 +51,84 @@ enum Creatures NPC_NETHER_CHARGE = 20405 }; -enum Events +struct boss_mechano_lord_capacitus : public BossAI { - EVENT_HEADCRACK = 1, - EVENT_REFLECTIVE_DAMAGE_SHIELD = 2, - EVENT_REFLECTIVE_MAGIE_SHIELD = 3, - EVENT_POSITIVE_SHIFT = 4, - EVENT_SUMMON_NETHER_CHARGE = 5, - EVENT_BERSERK = 6 -}; - -class boss_mechano_lord_capacitus : public CreatureScript -{ -public: - boss_mechano_lord_capacitus() : CreatureScript("boss_mechano_lord_capacitus") { } - - struct boss_mechano_lord_capacitusAI : public BossAI + boss_mechano_lord_capacitus(Creature* creature) : BossAI(creature, DATA_MECHANOLORD_CAPACITUS) { - boss_mechano_lord_capacitusAI(Creature* creature) : BossAI(creature, DATA_MECHANOLORD_CAPACITUS) { } - - void JustEngagedWith(Unit* /*who*/) override + scheduler.SetValidator([this] { - _JustEngagedWith(); - Talk(YELL_AGGRO); - events.ScheduleEvent(EVENT_HEADCRACK, 6000); - events.ScheduleEvent(EVENT_SUMMON_NETHER_CHARGE, 10000); - events.ScheduleEvent(EVENT_BERSERK, 180000); - events.ScheduleEvent(IsHeroic() ? EVENT_POSITIVE_SHIFT : EVENT_REFLECTIVE_DAMAGE_SHIELD, 15000); - } + return !me->HasUnitState(UNIT_STATE_CASTING); + }); + } - void KilledUnit(Unit* victim) override + void JustEngagedWith(Unit* /*who*/) override + { + _JustEngagedWith(); + Talk(SAY_AGGRO); + + scheduler.Schedule(6s, [this](TaskContext context) { - if (victim->GetTypeId() == TYPEID_PLAYER) - Talk(YELL_KILL); - } - - void JustDied(Unit* /*killer*/) override + DoCastVictim(SPELL_HEADCRACK); + context.Repeat(20s); + }).Schedule(10s, [this](TaskContext context) { - _JustDied(); - Talk(YELL_DEATH); - } - - void JustSummoned(Creature* summon) override + uint32 spellId = RAND(SPELL_SUMMON_NETHER_CHARGE_NE, + SPELL_SUMMON_NETHER_CHARGE_NW, + SPELL_SUMMON_NETHER_CHARGE_SE, + SPELL_SUMMON_NETHER_CHARGE_SW); + DoCastAOE(spellId); + IsHeroic() ? context.Repeat(2s, 5s) : context.Repeat(9s, 11s); + }).Schedule(3min, [this](TaskContext /*context*/) { - summons.Summon(summon); - summon->GetMotionMaster()->MoveRandom(30.0f); - } + DoCastSelf(SPELL_BERSERK, true); + }); - void UpdateAI(uint32 diff) override + if (IsHeroic()) { - if (!UpdateVictim()) - return; - - events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - switch (events.ExecuteEvent()) + scheduler.Schedule(15s, [this](TaskContext context) { - case EVENT_HEADCRACK: - me->CastSpell(me->GetVictim(), SPELL_HEADCRACK, false); - events.ScheduleEvent(EVENT_HEADCRACK, 20000); - break; - case EVENT_REFLECTIVE_DAMAGE_SHIELD: - Talk(YELL_REFLECTIVE_DAMAGE_SHIELD); - me->CastSpell(me, SPELL_REFLECTIVE_DAMAGE_SHIELD, false); - events.ScheduleEvent(EVENT_REFLECTIVE_MAGIE_SHIELD, 20000); - break; - case EVENT_REFLECTIVE_MAGIE_SHIELD: - Talk(YELL_REFLECTIVE_MAGIC_SHIELD); - me->CastSpell(me, SPELL_REFLECTIVE_MAGIC_SHIELD, false); - events.ScheduleEvent(EVENT_REFLECTIVE_DAMAGE_SHIELD, 20000); - break; - case EVENT_SUMMON_NETHER_CHARGE: - { - Position pos = me->GetRandomNearPosition(8.0f); - me->SummonCreature(NPC_NETHER_CHARGE, pos, TEMPSUMMON_TIMED_DESPAWN, 18000); - events.ScheduleEvent(EVENT_SUMMON_NETHER_CHARGE, 5000); - break; - } - case EVENT_POSITIVE_SHIFT: - me->CastSpell(me, SPELL_POLARITY_SHIFT, true); - events.ScheduleEvent(EVENT_POSITIVE_SHIFT, 30000); - break; - case EVENT_BERSERK: - me->CastSpell(me, SPELL_BERSERK, true); - break; - } - - DoMeleeAttackIfReady(); + DoCastSelf(SPELL_POLARITY_SHIFT, true); + context.Repeat(30s); + }); } - }; + else + { + scheduler.Schedule(15s, [this](TaskContext context) + { + if (IsEvenNumber(context.GetRepeatCounter())) + { + Talk(SAY_REFLECTIVE_DAMAGE_SHIELD); + DoCastSelf(SPELL_REFLECTIVE_DAMAGE_SHIELD); + } + else + { + Talk(SAY_REFLECTIVE_MAGIC_SHIELD); + DoCastSelf(SPELL_REFLECTIVE_MAGIC_SHIELD); + } - CreatureAI* GetAI(Creature* creature) const override + context.Repeat(20s); + }); + } + } + + void KilledUnit(Unit* victim) override { - return GetMechanarAI(creature); + if (victim->IsPlayer()) + { + Talk(SAY_KILL); + } + } + + void JustDied(Unit* /*killer*/) override + { + _JustDied(); + Talk(SAY_DEATH); + } + + void JustSummoned(Creature* summon) override + { + summons.Summon(summon); + summon->GetMotionMaster()->MoveRandom(30.0f); } }; @@ -153,84 +143,62 @@ enum polarityShift SPELL_NEGATIVE_CHARGE = 39093 }; -class spell_capacitus_polarity_charge : public SpellScriptLoader +class spell_capacitus_polarity_charge : public SpellScript { -public: - spell_capacitus_polarity_charge() : SpellScriptLoader("spell_capacitus_polarity_charge") { } + PrepareSpellScript(spell_capacitus_polarity_charge); - class spell_capacitus_polarity_charge_SpellScript : public SpellScript + void HandleTargets(std::list& targetList) { - PrepareSpellScript(spell_capacitus_polarity_charge_SpellScript); + uint8 count = 0; + for (std::list::iterator ihit = targetList.begin(); ihit != targetList.end(); ++ihit) + if ((*ihit)->GetGUID() != GetCaster()->GetGUID()) + if (Player* target = (*ihit)->ToPlayer()) + if (target->HasAura(GetTriggeringSpell()->Id)) + ++count; - void HandleTargets(std::list& targetList) + if (count) { - uint8 count = 0; - for (std::list::iterator ihit = targetList.begin(); ihit != targetList.end(); ++ihit) - if ((*ihit)->GetGUID() != GetCaster()->GetGUID()) - if (Player* target = (*ihit)->ToPlayer()) - if (target->HasAura(GetTriggeringSpell()->Id)) - ++count; - - if (count) - { - uint32 spellId = GetSpellInfo()->Id == SPELL_POSITIVE_CHARGE ? SPELL_POSITIVE_CHARGE_STACK : SPELL_NEGATIVE_CHARGE_STACK; - GetCaster()->SetAuraStack(spellId, GetCaster(), count); - } + uint32 spellId = GetSpellInfo()->Id == SPELL_POSITIVE_CHARGE ? SPELL_POSITIVE_CHARGE_STACK : SPELL_NEGATIVE_CHARGE_STACK; + GetCaster()->SetAuraStack(spellId, GetCaster(), count); } + } - void HandleDamage(SpellEffIndex /*effIndex*/) - { - if (!GetTriggeringSpell()) - return; - - Unit* target = GetHitUnit(); - if (target->HasAura(GetTriggeringSpell()->Id)) - SetHitDamage(0); - } - - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_capacitus_polarity_charge_SpellScript::HandleDamage, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); - OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_capacitus_polarity_charge_SpellScript::HandleTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY); - } - }; - - SpellScript* GetSpellScript() const override + void HandleDamage(SpellEffIndex /*effIndex*/) { - return new spell_capacitus_polarity_charge_SpellScript(); + if (!GetTriggeringSpell()) + return; + + Unit* target = GetHitUnit(); + if (target->HasAura(GetTriggeringSpell()->Id)) + SetHitDamage(0); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_capacitus_polarity_charge::HandleDamage, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); + OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_capacitus_polarity_charge::HandleTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY); } }; -class spell_capacitus_polarity_shift : public SpellScriptLoader +class spell_capacitus_polarity_shift : public SpellScript { -public: - spell_capacitus_polarity_shift() : SpellScriptLoader("spell_capacitus_polarity_shift") { } + PrepareSpellScript(spell_capacitus_polarity_shift); - class spell_capacitus_polarity_shift_SpellScript : public SpellScript + void HandleDummy(SpellEffIndex /*effIndex*/) { - PrepareSpellScript(spell_capacitus_polarity_shift_SpellScript); + if (Unit* target = GetHitUnit()) + target->CastSpell(target, roll_chance_i(50) ? SPELL_POSITIVE_POLARITY : SPELL_NEGATIVE_POLARITY, true, nullptr, nullptr, GetCaster()->GetGUID()); + } - void HandleDummy(SpellEffIndex /*effIndex*/) - { - if (Unit* target = GetHitUnit()) - target->CastSpell(target, roll_chance_i(50) ? SPELL_POSITIVE_POLARITY : SPELL_NEGATIVE_POLARITY, true, nullptr, nullptr, GetCaster()->GetGUID()); - } - - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_capacitus_polarity_shift_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); - } - }; - - SpellScript* GetSpellScript() const override + void Register() override { - return new spell_capacitus_polarity_shift_SpellScript(); + OnEffectHitTarget += SpellEffectFn(spell_capacitus_polarity_shift::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); } }; void AddSC_boss_mechano_lord_capacitus() { - new boss_mechano_lord_capacitus(); - new spell_capacitus_polarity_charge(); - new spell_capacitus_polarity_shift(); + RegisterMechanarCreatureAI(boss_mechano_lord_capacitus); + RegisterSpellScript(spell_capacitus_polarity_charge); + RegisterSpellScript(spell_capacitus_polarity_shift); } diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp index 2a6e19eaf..4a6fed919 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp @@ -30,201 +30,174 @@ enum Says enum Spells { - SPELL_SUMMON_RAGIN_FLAMES = 35275, - SPELL_FROST_ATTACK = 35263, + SPELL_FROST_ATTACK = 45196, // This is definitely spell added in TBC but did it replaced both 35264 and 39086 or only normal version? + SPELL_SUMMON_RAGING_FLAMES = 35275, + SPELL_QUELL_RAGING_FLAMES = 35277, SPELL_ARCANE_BLAST = 35314, SPELL_DRAGONS_BREATH = 35250, + + // Raging Flames + SPELL_RAGING_FLAMES_DUMMY = 35274, // NYI, no clue what it can do + SPELL_RAGING_FLAMES_AREA_AURA = 35281, + SPELL_INVIS_STEALTH_DETECTION = 18950, + SPELL_INFERNO = 35268, + SPELL_INFERNO_DAMAGE = 35283 }; -enum Events +struct boss_nethermancer_sepethrea : public BossAI { - EVENT_FROST_ATTACK = 1, - EVENT_ARCANE_BLAST = 2, - EVENT_DRAGONS_BREATH = 3, -}; - -class boss_nethermancer_sepethrea : public CreatureScript -{ -public: - boss_nethermancer_sepethrea(): CreatureScript("boss_nethermancer_sepethrea") { } - - struct boss_nethermancer_sepethreaAI : public BossAI + boss_nethermancer_sepethrea(Creature* creature) : BossAI(creature, DATA_NETHERMANCER_SEPRETHREA) { - boss_nethermancer_sepethreaAI(Creature* creature) : BossAI(creature, DATA_NETHERMANCER_SEPRETHREA) { } - - void JustEngagedWith(Unit* /*who*/) override + scheduler.SetValidator([this] { - _JustEngagedWith(); - events.ScheduleEvent(EVENT_FROST_ATTACK, 6000); - events.ScheduleEvent(EVENT_ARCANE_BLAST, 14000); - events.ScheduleEvent(EVENT_DRAGONS_BREATH, 18000); + return !me->HasUnitState(UNIT_STATE_CASTING); + }); + } - Talk(SAY_AGGRO); - me->CastSpell(me, SPELL_SUMMON_RAGIN_FLAMES, true); - } - - void JustSummoned(Creature* summon) override - { - summons.Summon(summon); - if (Unit* victim = me->GetVictim()) - { - summon->AI()->AttackStart(victim); - summon->AddThreat(victim, 1000.0f); - summon->SetInCombatWithZone(); - } - } - - void KilledUnit(Unit* victim) override - { - if (victim->GetTypeId() == TYPEID_PLAYER) - Talk(SAY_SLAY); - } - - void JustDied(Unit* /*killer*/) override - { - events.Reset(); - if (instance) - { - instance->SetBossState(DATA_NETHERMANCER_SEPRETHREA, DONE); - instance->SaveToDB(); - } - Talk(SAY_DEATH); - - for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr) - if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr)) - Unit::Kill(summon, summon); - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - switch (events.ExecuteEvent()) - { - case EVENT_FROST_ATTACK: - me->CastSpell(me->GetVictim(), SPELL_FROST_ATTACK, false); - events.ScheduleEvent(EVENT_FROST_ATTACK, 8000); - break; - case EVENT_ARCANE_BLAST: - me->CastSpell(me->GetVictim(), SPELL_ARCANE_BLAST, false); - events.ScheduleEvent(EVENT_ARCANE_BLAST, 12000); - break; - case EVENT_DRAGONS_BREATH: - me->CastSpell(me->GetVictim(), SPELL_DRAGONS_BREATH, true); - events.ScheduleEvent(EVENT_DRAGONS_BREATH, 16000); - if (roll_chance_i(50)) - Talk(SAY_DRAGONS_BREATH); - break; - } - - DoMeleeAttackIfReady(); - } - }; - - CreatureAI* GetAI(Creature* creature) const override + void JustEngagedWith(Unit* /*who*/) override { - return GetMechanarAI(creature); + _JustEngagedWith(); + + scheduler.Schedule(6s, [this](TaskContext context) + { + DoCastVictim(SPELL_FROST_ATTACK); + context.Repeat(8s); + }).Schedule(15s, 25s, [this](TaskContext context) + { + DoCastVictim(SPELL_ARCANE_BLAST); + if (me->GetVictim()) + { + DoModifyThreatByPercent(me->GetVictim(), -50); + } + context.Repeat(); + }).Schedule(20s, 30s, [this](TaskContext context) + { + DoCastVictim(SPELL_DRAGONS_BREATH); + context.Repeat(25s, 35s); + if (roll_chance_i(50)) + { + Talk(SAY_DRAGONS_BREATH); + } + }); + + Talk(SAY_AGGRO); + DoCastSelf(SPELL_SUMMON_RAGING_FLAMES, true); + } + + void EnterEvadeMode(EvadeReason why) override + { + // Fails probably because target is in evade mode (yes, she kills them on evade too). We'll kill them directly in their script for now + DoCastSelf(SPELL_QUELL_RAGING_FLAMES, true); + ScriptedAI::EnterEvadeMode(why); + } + + void JustSummoned(Creature* summon) override + { + summons.Summon(summon); + if (Unit* victim = me->GetVictim()) + { + summon->AI()->AttackStart(victim); + summon->AddThreat(victim, 1000.0f); + summon->SetInCombatWithZone(); + } + } + + void KilledUnit(Unit* victim) override + { + if (victim->IsPlayer()) + { + Talk(SAY_SLAY); + } + } + + void JustDied(Unit* /*killer*/) override + { + _JustDied(); + Talk(SAY_DEATH); + DoCastSelf(SPELL_QUELL_RAGING_FLAMES, true); } }; -enum raginFlames +struct npc_raging_flames : public ScriptedAI { - SPELL_INFERNO = 35268, - SPELL_FIRE_TAIL = 35278, - SPELL_INFERNO_DAMAGE = 35283, + npc_raging_flames(Creature* creature) : ScriptedAI(creature) { } - EVENT_SPELL_FIRE_TAIL = 1, - EVENT_SPELL_INFERNO = 2 -}; - -class npc_ragin_flames : public CreatureScript -{ -public: - npc_ragin_flames() : CreatureScript("npc_ragin_flames") { } - - struct npc_ragin_flamesAI : public ScriptedAI + void InitializeAI() override { - npc_ragin_flamesAI(Creature* creature) : ScriptedAI(creature) { } - - EventMap events; - - void Reset() override - { - me->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_ALL, true); - } - - void JustEngagedWith(Unit*) override - { - events.ScheduleEvent(EVENT_SPELL_FIRE_TAIL, 500); - events.ScheduleEvent(EVENT_SPELL_INFERNO, urand(10000, 20000)); - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - events.Update(diff); - switch (events.ExecuteEvent()) - { - case EVENT_SPELL_INFERNO: - if (me->IsWithinCombatRange(me->GetVictim(), 5.0f)) - { - me->CastSpell(me, SPELL_INFERNO, true); - events.ScheduleEvent(EVENT_SPELL_INFERNO, 20000); - } - else - events.ScheduleEvent(EVENT_SPELL_INFERNO, 1000); - break; - case EVENT_SPELL_FIRE_TAIL: - me->CastSpell(me, SPELL_FIRE_TAIL, true); - events.ScheduleEvent(EVENT_SPELL_FIRE_TAIL, 500); - break; - } - - DoMeleeAttackIfReady(); - } - }; - CreatureAI* GetAI(Creature* creature) const override - { - return GetMechanarAI(creature); + me->SetCorpseDelay(20); } + + // It's more tricky actually + void FixateRandomTarget() + { + me->GetThreatMgr().ClearAllThreat(); + + if (TempSummon* summon = me->ToTempSummon()) + if (Creature* summoner = summon->GetSummonerCreatureBase()) + if (summoner->IsAIEnabled) + if (Unit* target = summoner->AI()->SelectTarget(SelectTargetMethod::Random, 1, 100.0f, true, false)) + me->AddThreat(target, 1000000.0f); + } + + void IsSummonedBy(WorldObject* /*summoner*/) override + { + DoZoneInCombat(); + DoCastSelf(SPELL_RAGING_FLAMES_AREA_AURA); + DoCastSelf(SPELL_INVIS_STEALTH_DETECTION); + + FixateRandomTarget(); + + _scheduler.Schedule(15s, 25s, [this](TaskContext task) + { + DoCastSelf(SPELL_INFERNO); + FixateRandomTarget(); + + task.Repeat(20s, 30s); + }); + } + + void Reset() override + { + _scheduler.CancelAll(); + } + + void EnterEvadeMode(EvadeReason /*why*/) override + { + me->KillSelf(); + } + + void UpdateAI(uint32 diff) override + { + if (!UpdateVictim()) + return; + + _scheduler.Update(diff); + + DoMeleeAttackIfReady(); + } + +private: + TaskScheduler _scheduler; }; -class spell_ragin_flames_inferno : public SpellScriptLoader +class spell_ragin_flames_inferno : public AuraScript { -public: - spell_ragin_flames_inferno() : SpellScriptLoader("spell_ragin_flames_inferno") { } + PrepareAuraScript(spell_ragin_flames_inferno); - class spell_ragin_flames_inferno_AuraScript : public AuraScript + void HandlePeriodic(AuraEffect const* aurEff) { - PrepareAuraScript(spell_ragin_flames_inferno_AuraScript); + GetUnitOwner()->CastCustomSpell(SPELL_INFERNO_DAMAGE, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), GetUnitOwner(), TRIGGERED_FULL_MASK); + } - void HandlePeriodic(AuraEffect const* aurEff) - { - GetUnitOwner()->CastCustomSpell(SPELL_INFERNO_DAMAGE, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), GetUnitOwner(), TRIGGERED_FULL_MASK); - } - - void Register() override - { - OnEffectPeriodic += AuraEffectPeriodicFn(spell_ragin_flames_inferno_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL); - } - }; - - AuraScript* GetAuraScript() const override + void Register() override { - return new spell_ragin_flames_inferno_AuraScript(); + OnEffectPeriodic += AuraEffectPeriodicFn(spell_ragin_flames_inferno::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL); } }; void AddSC_boss_nethermancer_sepethrea() { - new boss_nethermancer_sepethrea(); - new npc_ragin_flames(); - new spell_ragin_flames_inferno(); + RegisterMechanarCreatureAI(boss_nethermancer_sepethrea); + RegisterMechanarCreatureAI(npc_raging_flames); + RegisterSpellScript(spell_ragin_flames_inferno); } diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp index 11d7d777b..66ed5c78b 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp @@ -43,116 +43,77 @@ enum Spells SPELL_SUMMON_NETHER_WRAITH_4 = 35288, }; -enum Events +struct boss_pathaleon_the_calculator : public BossAI { - EVENT_SUMMON = 1, - EVENT_MANA_TAP = 2, - EVENT_ARCANE_TORRENT = 3, - EVENT_DOMINATION = 4, - EVENT_ARCANE_EXPLOSION = 5, - EVENT_FRENZY = 6, -}; - -class boss_pathaleon_the_calculator : public CreatureScript -{ -public: - boss_pathaleon_the_calculator(): CreatureScript("boss_pathaleon_the_calculator") { } - - struct boss_pathaleon_the_calculatorAI : public BossAI + boss_pathaleon_the_calculator(Creature* creature) : BossAI(creature, DATA_PATHALEON_THE_CALCULATOR) { - boss_pathaleon_the_calculatorAI(Creature* creature) : BossAI(creature, DATA_PATHALEON_THE_CALCULATOR) { } - - void InitializeAI() override + scheduler.SetValidator([this] { - BossAI::InitializeAI(); - } + return !me->HasUnitState(UNIT_STATE_CASTING); + }); + } - void JustEngagedWith(Unit* /*who*/) override + void JustEngagedWith(Unit* /*who*/) override + { + _JustEngagedWith(); + + ScheduleHealthCheckEvent(20, [&]() { - _JustEngagedWith(); - events.ScheduleEvent(EVENT_SUMMON, 30000); - events.ScheduleEvent(EVENT_MANA_TAP, 12000); - events.ScheduleEvent(EVENT_ARCANE_TORRENT, 16000); - events.ScheduleEvent(EVENT_DOMINATION, 25000); - events.ScheduleEvent(EVENT_ARCANE_EXPLOSION, 8000); - events.ScheduleEvent(EVENT_FRENZY, 1000); - Talk(SAY_AGGRO); - } + summons.DespawnAll(); + DoCastSelf(SPELL_DISGRUNTLED_ANGER, true); + Talk(SAY_ENRAGE); + }); - void KilledUnit(Unit* victim) override + scheduler.Schedule(30s, [this](TaskContext context) { - if (victim->GetTypeId() == TYPEID_PLAYER) - Talk(SAY_SLAY); - } + for (uint8 i = 0; i < DUNGEON_MODE(3, 4); ++i) + me->CastSpell(me, SPELL_SUMMON_NETHER_WRAITH_1 + i, true); - void JustDied(Unit* /*killer*/) override + Talk(SAY_SUMMON); + context.Repeat(30s, 40s); + }).Schedule(12s, [this](TaskContext context) { - _JustDied(); - Talk(SAY_DEATH); - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - switch (events.ExecuteEvent()) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, PowerUsersSelector(me, POWER_MANA, 40.0f, false))) { - case EVENT_ARCANE_EXPLOSION: - me->CastSpell(me, SPELL_ARCANE_EXPLOSION, false); - events.ScheduleEvent(EVENT_ARCANE_EXPLOSION, 12000); - break; - case EVENT_ARCANE_TORRENT: - me->RemoveAurasDueToSpell(SPELL_MANA_TAP); - me->ModifyPower(POWER_MANA, 5000); - me->CastSpell(me, SPELL_ARCANE_TORRENT, false); - events.ScheduleEvent(EVENT_ARCANE_TORRENT, 15000); - break; - case EVENT_MANA_TAP: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, PowerUsersSelector(me, POWER_MANA, 40.0f, false))) - me->CastSpell(target, SPELL_MANA_TAP, false); - events.ScheduleEvent(EVENT_MANA_TAP, 18000); - break; - case EVENT_DOMINATION: - Talk(SAY_DOMINATION); - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 50.0f)) - me->CastSpell(target, SPELL_DOMINATION, false); - events.ScheduleEvent(EVENT_DOMINATION, 30000); - break; - case EVENT_FRENZY: - if (me->HealthBelowPct(20)) - { - summons.DespawnAll(); - me->CastSpell(me, SPELL_DISGRUNTLED_ANGER, true); - Talk(SAY_ENRAGE); - break; - } - events.ScheduleEvent(EVENT_FRENZY, 1000); - break; - case EVENT_SUMMON: - for (uint8 i = 0; i < DUNGEON_MODE(3, 4); ++i) - me->CastSpell(me, SPELL_SUMMON_NETHER_WRAITH_1 + i, true); - - Talk(SAY_SUMMON); - events.ScheduleEvent(EVENT_SUMMON, urand(30000, 45000)); - break; + DoCast(target, SPELL_MANA_TAP); } + context.Repeat(18s); + }).Schedule(16s, [this](TaskContext context) + { + me->RemoveAurasDueToSpell(SPELL_MANA_TAP); + me->ModifyPower(POWER_MANA, 5000); + DoCastSelf(SPELL_ARCANE_TORRENT); + context.Repeat(15s); + }).Schedule(25s, [this](TaskContext context) + { + Talk(SAY_DOMINATION); + DoCastRandomTarget(SPELL_DOMINATION, 1, 50.0f); + context.Repeat(30s); + }).Schedule(8s, [this](TaskContext context) + { + DoCastAOE(SPELL_ARCANE_EXPLOSION); + context.Repeat(12s); + }); - DoMeleeAttackIfReady(); - } - }; + Talk(SAY_AGGRO); + } - CreatureAI* GetAI(Creature* creature) const override + void KilledUnit(Unit* victim) override { - return GetMechanarAI(creature); + if (victim->IsPlayer()) + { + Talk(SAY_SLAY); + } + } + + void JustDied(Unit* /*killer*/) override + { + _JustDied(); + Talk(SAY_DEATH); } }; void AddSC_boss_pathaleon_the_calculator() { - new boss_pathaleon_the_calculator(); + RegisterMechanarCreatureAI(boss_pathaleon_the_calculator); } diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/mechanar.h b/src/server/scripts/Outland/TempestKeep/Mechanar/mechanar.h index c746be005..e41928705 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/mechanar.h +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/mechanar.h @@ -72,4 +72,6 @@ inline AI* GetMechanarAI(T* obj) return GetInstanceAI(obj, MechanarScriptName); } +#define RegisterMechanarCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetMechanarAI) + #endif diff --git a/src/server/scripts/Outland/zone_zangarmarsh.cpp b/src/server/scripts/Outland/zone_zangarmarsh.cpp index 8a5710cbe..f9bef01d0 100644 --- a/src/server/scripts/Outland/zone_zangarmarsh.cpp +++ b/src/server/scripts/Outland/zone_zangarmarsh.cpp @@ -15,146 +15,12 @@ * with this program. If not, see . */ -/* ScriptData -SDName: Zangarmarsh -SD%Complete: 100 -SDComment: Quest support: 9752, 9785, 9803, 10009. Mark Of ... buffs. -SDCategory: Zangarmarsh -EndScriptData */ - -/* ContentData -npcs_ashyen_and_keleth -npc_cooshcoosh -npc_elder_kuruti -npc_mortog_steamhead -npc_kayra_longmane -npc_timothy_daniels -EndContentData */ - #include "Player.h" #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "ScriptedEscortAI.h" #include "ScriptedGossip.h" -// Theirs -/*###### -## npcs_ashyen_and_keleth -######*/ - -#define GOSSIP_ITEM_BLESS_ASH "Grant me your mark, wise ancient." -#define GOSSIP_ITEM_BLESS_KEL "Grant me your mark, mighty ancient." - -enum AshyenAndKeleth -{ - GOSSIP_REWARD_BLESS = 0, - - NPC_ASHYEN = 17900, - NPC_KELETH = 17901, - - SPELL_BLESS_ASH_EXA = 31815, - SPELL_BLESS_ASH_REV = 31811, - SPELL_BLESS_ASH_HON = 31810, - SPELL_BLESS_ASH_FRI = 31808, - - SPELL_BLESS_KEL_EXA = 31814, - SPELL_BLESS_KEL_REV = 31813, - SPELL_BLESS_KEL_HON = 31812, - SPELL_BLESS_KEL_FRI = 31807 -}; - -class npcs_ashyen_and_keleth : public CreatureScript -{ -public: - npcs_ashyen_and_keleth() : CreatureScript("npcs_ashyen_and_keleth") { } - - bool OnGossipHello(Player* player, Creature* creature) override - { - if (player->GetReputationRank(942) > REP_NEUTRAL) - { - if (creature->GetEntry() == NPC_ASHYEN) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_BLESS_ASH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - - if (creature->GetEntry() == NPC_KELETH) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_BLESS_KEL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - } - SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID()); - - return true; - } - - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override - { - ClearGossipMenuFor(player); - if (action == GOSSIP_ACTION_INFO_DEF + 1) - { - creature->setPowerType(POWER_MANA); - creature->SetMaxPower(POWER_MANA, 200); //set a "fake" mana value, we can't depend on database doing it in this case - creature->SetPower(POWER_MANA, 200); - - if (creature->GetEntry() == NPC_ASHYEN) //check which Creature we are dealing with - { - uint32 spell = 0; - switch (player->GetReputationRank(942)) - { - //mark of lore - case REP_FRIENDLY: - spell = SPELL_BLESS_ASH_FRI; - break; - case REP_HONORED: - spell = SPELL_BLESS_ASH_HON; - break; - case REP_REVERED: - spell = SPELL_BLESS_ASH_REV; - break; - case REP_EXALTED: - spell = SPELL_BLESS_ASH_EXA; - break; - default: - break; - } - - if (spell) - { - creature->CastSpell(player, spell, true); - creature->AI()->Talk(GOSSIP_REWARD_BLESS); - } - } - - if (creature->GetEntry() == NPC_KELETH) - { - uint32 spell = 0; - switch (player->GetReputationRank(942)) //mark of war - { - case REP_FRIENDLY: - spell = SPELL_BLESS_KEL_FRI; - break; - case REP_HONORED: - spell = SPELL_BLESS_KEL_HON; - break; - case REP_REVERED: - spell = SPELL_BLESS_KEL_REV; - break; - case REP_EXALTED: - spell = SPELL_BLESS_KEL_EXA; - break; - default: - break; - } - - if (spell) - { - creature->CastSpell(player, spell, true); - creature->AI()->Talk(GOSSIP_REWARD_BLESS); - } - } - CloseGossipMenuFor(player); - player->TalkedToCreature(creature->GetEntry(), creature->GetGUID()); - } - return true; - } -}; - /*###### ## npc_cooshcoosh ######*/ @@ -451,7 +317,6 @@ public: void AddSC_zangarmarsh() { // Theirs - new npcs_ashyen_and_keleth(); new npc_cooshcoosh(); new npc_elder_kuruti(); new npc_mortog_steamhead(); diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 29591d858..d2e10afa2 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -1785,19 +1785,29 @@ class spell_gen_elune_candle : public SpellScript } }; -/* 29266, 57685, 58951, 70592, 70628, 74490 - Permanent Feign Death - 31261 - Permanent Feign Death (Root) - 35356, 35357 - Spawn Feign Death */ -class spell_gen_creature_permanent_feign_death : public AuraScript +/* +There are only 3 possible flags Feign Death auras can apply: UNIT_DYNFLAG_DEAD, UNIT_FLAG2_FEIGN_DEATH +and UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT. Some auras can apply only 2 flags + +spell_gen_feign_death_all_flags applies all 3 flags +spell_gen_feign_death_no_dyn_flag applies no UNIT_DYNFLAG_DEAD (does not make the creature appear dead) +spell_gen_feign_death_no_prevent_emotes applies no UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT + +REACT_PASSIVE should be handled directly in scripts since not all creatures should be passive. Otherwise +creature will be not able to aggro or execute MoveInLineOfSight events. Removing may cause more issues +than already exists +*/ + +class spell_gen_feign_death_all_flags : public AuraScript { - PrepareAuraScript(spell_gen_creature_permanent_feign_death); + PrepareAuraScript(spell_gen_feign_death_all_flags); void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); target->SetDynamicFlag(UNIT_DYNFLAG_DEAD); target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); - target->SetImmuneToAll(true); + target->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); if (target->GetTypeId() == TYPEID_UNIT) target->ToCreature()->SetReactState(REACT_PASSIVE); @@ -1808,16 +1818,83 @@ class spell_gen_creature_permanent_feign_death : public AuraScript Unit* target = GetTarget(); target->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD); target->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); - target->SetImmuneToAll(false); + target->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); if (target->GetTypeId() == TYPEID_UNIT) - target->ToCreature()->SetReactState(REACT_AGGRESSIVE); + target->ToCreature()->InitializeReactState(); } void Register() override { - OnEffectApply += AuraEffectApplyFn(spell_gen_creature_permanent_feign_death::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); - OnEffectRemove += AuraEffectApplyFn(spell_gen_creature_permanent_feign_death::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + OnEffectApply += AuraEffectApplyFn(spell_gen_feign_death_all_flags::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + OnEffectRemove += AuraEffectApplyFn(spell_gen_feign_death_all_flags::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + } +}; + +// 35357 - Spawn Feign Death +// 51329 - Feign Death + +class spell_gen_feign_death_no_dyn_flag : public AuraScript +{ + PrepareAuraScript(spell_gen_feign_death_no_dyn_flag); + + void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + Unit* target = GetTarget(); + target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); + target->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + + if (target->GetTypeId() == TYPEID_UNIT) + target->ToCreature()->SetReactState(REACT_PASSIVE); + } + + void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + Unit* target = GetTarget(); + target->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); + target->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + + if (target->GetTypeId() == TYPEID_UNIT) + target->ToCreature()->InitializeReactState(); + } + + void Register() override + { + OnEffectApply += AuraEffectApplyFn(spell_gen_feign_death_no_dyn_flag::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + OnEffectRemove += AuraEffectApplyFn(spell_gen_feign_death_no_dyn_flag::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + } +}; + +// 58951 - Permanent Feign Death + +class spell_gen_feign_death_no_prevent_emotes : public AuraScript +{ + PrepareAuraScript(spell_gen_feign_death_no_prevent_emotes); + + void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + Unit* target = GetTarget(); + target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); + target->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + + if (target->GetTypeId() == TYPEID_UNIT) + target->ToCreature()->SetReactState(REACT_PASSIVE); + } + + void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + Unit* target = GetTarget(); + target->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); + target->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + + if (target->GetTypeId() == TYPEID_UNIT) + target->ToCreature()->InitializeReactState(); + } + + void Register() override + { + OnEffectApply += AuraEffectApplyFn(spell_gen_feign_death_no_prevent_emotes::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + OnEffectRemove += AuraEffectApplyFn(spell_gen_feign_death_no_prevent_emotes::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); } }; @@ -3689,6 +3766,29 @@ class spell_gen_paralytic_poison : public AuraScript } }; +class spell_gen_prevent_emotes : public AuraScript +{ + PrepareAuraScript(spell_gen_prevent_emotes); + + void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + Unit* target = GetTarget(); + target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + } + + void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + Unit* target = GetTarget(); + target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + } + + void Register() override + { + OnEffectApply += AuraEffectApplyFn(spell_gen_prevent_emotes::HandleEffectApply, EFFECT_FIRST_FOUND, SPELL_AURA_ANY, AURA_EFFECT_HANDLE_REAL); + OnEffectRemove += AuraEffectRemoveFn(spell_gen_prevent_emotes::OnRemove, EFFECT_FIRST_FOUND, SPELL_AURA_ANY, AURA_EFFECT_HANDLE_REAL); + } +}; + enum BladeWarding { SPELL_GEN_BLADE_WARDING_TRIGGERED = 64442 @@ -4753,7 +4853,9 @@ void AddSC_generic_spell_scripts() RegisterSpellScript(spell_gen_parachute); RegisterSpellScript(spell_gen_pet_summoned); RegisterSpellScript(spell_gen_remove_flight_auras); - RegisterSpellScript(spell_gen_creature_permanent_feign_death); + RegisterSpellScript(spell_gen_feign_death_all_flags); + RegisterSpellScript(spell_gen_feign_death_no_dyn_flag); + RegisterSpellScript(spell_gen_feign_death_no_prevent_emotes); RegisterSpellScript(spell_pvp_trinket_wotf_shared_cd); RegisterSpellScript(spell_gen_animal_blood); RegisterSpellScript(spell_gen_divine_storm_cd_reset); @@ -4795,6 +4897,7 @@ void AddSC_generic_spell_scripts() RegisterSpellScript(spell_gen_despawn_self); RegisterSpellScript(spell_gen_bandage); RegisterSpellScript(spell_gen_paralytic_poison); + RegisterSpellScript(spell_gen_prevent_emotes); RegisterSpellScript(spell_gen_blade_warding); RegisterSpellScriptWithArgs(spell_gen_lifebloom, "spell_hexlord_lifebloom", SPELL_HEXLORD_MALACRASS_LIFEBLOOM_FINAL_HEAL); RegisterSpellScriptWithArgs(spell_gen_lifebloom, "spell_tur_ragepaw_lifebloom", SPELL_TUR_RAGEPAW_LIFEBLOOM_FINAL_HEAL); diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp index 35aec6db2..b430b0315 100644 --- a/src/server/scripts/Spells/spell_warrior.cpp +++ b/src/server/scripts/Spells/spell_warrior.cpp @@ -59,6 +59,7 @@ enum WarriorSpells SPELL_WARRIOR_UNRELENTING_ASSAULT_TRIGGER_2 = 64850, SPELL_WARRIOR_VIGILANCE_PROC = 50725, SPELL_WARRIOR_VIGILANCE_REDIRECT_THREAT = 59665, + SPELL_WARRIOR_WHIRLWIND_MAIN = 50622, SPELL_WARRIOR_WHIRLWIND_OFF = 44949 }; @@ -646,12 +647,18 @@ class spell_warr_sweeping_strikes : public AuraScript case SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_2: case SPELL_WARRIOR_WHIRLWIND_OFF: return false; + case SPELL_WARRIOR_WHIRLWIND_MAIN: + if (actor->HasSpellCooldown(SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_1)) + { + return false; + } + break; default: break; } } - _procTarget = eventInfo.GetActor()->SelectNearbyNoTotemTarget(eventInfo.GetProcTarget()); + _procTarget = actor->SelectNearbyNoTotemTarget(eventInfo.GetProcTarget()); return _procTarget != nullptr; } @@ -668,6 +675,11 @@ class spell_warr_sweeping_strikes : public AuraScript } else { + if (spellInfo && spellInfo->Id == SPELL_WARRIOR_WHIRLWIND_MAIN) + { + eventInfo.GetActor()->AddSpellCooldown(SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_1, 0, 500); + } + int32 damage = damageInfo->GetUnmitigatedDamage(); GetTarget()->CastCustomSpell(_procTarget, SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_1, &damage, 0, 0, true, nullptr, aurEff); } diff --git a/src/server/scripts/World/npc_taxi.cpp b/src/server/scripts/World/npc_taxi.cpp index 84636f22c..a32bb5c77 100644 --- a/src/server/scripts/World/npc_taxi.cpp +++ b/src/server/scripts/World/npc_taxi.cpp @@ -15,42 +15,57 @@ * with this program. If not, see . */ -/* ScriptData -SDName: Npc_Taxi -SD%Complete: 0% -SDComment: To be used for taxi NPCs that are located globally. -SDCategory: NPCs -EndScriptData -*/ - #include "Player.h" #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "ScriptedGossip.h" -#define GOSSIP_NETHER_DRAKE "I'm ready to fly! Take me up, dragon!" -#define GOSSIP_IRONWING "I'd like to take a flight around Stormwind Harbor." -#define GOSSIP_DABIREE1 "Fly me to Murketh and Shaadraz Gateways" -#define GOSSIP_DABIREE2 "Fly me to Shatter Point" -#define GOSSIP_BRACK1 "Fly me to Murketh and Shaadraz Gateways" -#define GOSSIP_BRACK2 "Fly me to The Abyssal Shelf" -#define GOSSIP_BRACK3 "Fly me to Spinebreaker Post" -#define GOSSIP_IRENA "Fly me to Skettis please" -#define GOSSIP_CLOUDBREAKER1 "Speaking of action, I've been ordered to undertake an air strike." -#define GOSSIP_CLOUDBREAKER2 "I need to intercept the Dawnblade reinforcements." -#define GOSSIP_DRAGONHAWK "" -#define GOSSIP_VERONIA "Fly me to Manaforge Coruu please" -#define GOSSIP_DEESAK "Fly me to Ogri'la please" -#define GOSSIP_AFRASASTRASZ1 "I would like to take a flight to the ground, Lord Of Afrasastrasz." -#define GOSSIP_AFRASASTRASZ2 "My Lord, I must go to the upper floor of the temple." -#define GOSSIP_TARIOLSTRASZ1 "My Lord, I must go to the upper floor of the temple." -#define GOSSIP_TARIOLSTRASZ2 "Can you spare a drake to travel to Lord Of Afrasastrasz, in the middle of the temple?" -#define GOSSIP_TORASTRASZA1 "I would like to see Lord Of Afrasastrasz, in the middle of the temple." -#define GOSSIP_TORASTRASZA2 "Yes, Please. I would like to return to the ground floor of the temple." -#define GOSSIP_CRIMSONWING "" -#define GOSSIP_WILLIAMKEILAR1 "Take me to Northpass Tower." -#define GOSSIP_WILLIAMKEILAR2 "Take me to Eastwall Tower." -#define GOSSIP_WILLIAMKEILAR3 "Take me to Crown Guard Tower." +enum Npcs +{ + NPC_NETHER_DRAKE = 20903, // Netherstorm - Protectorate Nether Drake + NPC_IRONWING = 29154, // Stormwind City - Thargold Ironwing + NPC_DABIR = 19409, // Hellfire Peninsula - Wing Commander Dabir'ee + NPC_BRACK = 19401, // Hellfire Peninsula - Wing Commander Brack + NPC_IRENA = 23413, // Blade's Edge Mountains - Skyguard Handler Irena + NPC_AYREN = 25059, // Isle of Quel'Danas - Ayren Cloudbreaker + NPC_DRAGONHAWK = 25236, // Isle of Quel'Danas - Unrestrained Dragonhawk + NPC_VERONIA = 20162, // Netherstorm - Veronia + NPC_DEESAK = 23415, // Terokkar Forest - Skyguard Handler Deesak + NPC_AFRASASTRASZ = 27575, // Dragonblight - Lord Afrasastrasz + NPC_TARIOLSTRASZ = 26443, // Dragonblight - Tariolstrasz + NPC_TORASTRASZA = 26949, // Dragonblight - Torastrasza + NPC_CESSA = 23704, // Dustwallow Marsh - Cassa Crimsonwing + NPC_KIELAR = 17209, // William Kielar - Eastern Plaguelands Towers +}; + +enum Misc +{ + REP_SKYGUARD = 1031, // Sha'tari Skyguard Reputation + + // Netherstorm + QUEST_NETHERY_WINGS = 10438, // On Nethery Wings + ITEM_DISRUPTOR = 29778, // Phase Disruptor (Needed for On Nethery Wings) + QUEST_BEHIND_ENEMY = 10652, // Behind Enemy Lines + + // Hellfire Peninsula - Alliance + QUEST_GATEWAYS_A = 10146, // Mission: The Murketh and Shaadraz Gateways + QUEST_SHATTER_POINT = 10340, // Shatter Point + + // Hellfire Peninsula - Horde + QUEST_GATEWAYS_H = 10129, // Mission: The Murketh and Shaadraz Gateways + QUEST_ABBYSAL = 10162, // Mission: The Abyssal Shelf + QUEST_ABBYSAL_DAILY = 10347, // Return to the Abyssal Shelf (Daily) + QUEST_SPINEBREAKER = 10242, // Spinebreaker Post + + // Isle of Quel'Danas (Daily) + QUEST_DEAD_SCAR = 11532, // Mission: Distraction at the Dead Scar + QUEST_AIR_STRIKE = 11533, // The Air Strikes Must Continue + QUEST_INTERCEPT = 11542, // Mission: Intercept the Reinforcements + QUEST_KEEP_AT_BEY = 11543, // Keeping the Enemy at Bay + + // Dustwallow Marsh + QUEST_SURVEY_ALCAZ = 11142, // Survey Alcaz Island +}; class npc_taxi : public CreatureScript { @@ -62,87 +77,84 @@ public: if (creature->IsQuestGiver()) player->PrepareQuestMenu(creature->GetGUID()); + uint32 gossipmenuid = 0; + gossipmenuid = creature->GetCreatureTemplate()->GossipMenuId; + switch (creature->GetEntry()) { - case 20903: // Netherstorm - Protectorate Nether Drake - if (player->GetQuestStatus(10438) == QUEST_STATUS_INCOMPLETE && player->HasItemCount(29778)) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_NETHER_DRAKE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + case NPC_NETHER_DRAKE: + if (player->GetQuestStatus(QUEST_NETHERY_WINGS) == QUEST_STATUS_INCOMPLETE && player->HasItemCount(ITEM_DISRUPTOR)) + AddGossipItemFor(player, gossipmenuid, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); break; - case 29154: // Stormwind City - Thargold Ironwing - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_IRONWING, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); + case NPC_IRONWING: + AddGossipItemFor(player, gossipmenuid, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); break; - case 19409: // Hellfire Peninsula - Wing Commander Dabir'ee - //Mission: The Murketh and Shaadraz Gateways - if (player->GetQuestStatus(10146) == QUEST_STATUS_INCOMPLETE) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_DABIREE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); + case NPC_DABIR: + if (player->GetQuestStatus(QUEST_GATEWAYS_A) == QUEST_STATUS_INCOMPLETE) + AddGossipItemFor(player, gossipmenuid, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); - //Shatter Point - if (!player->GetQuestRewardStatus(10340)) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_DABIREE2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5); + if (!player->GetQuestRewardStatus(QUEST_SHATTER_POINT)) + AddGossipItemFor(player, gossipmenuid, 1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5); break; - case 19401: // Hellfire Peninsula - Wing Commander Brack - //Mission: The Murketh and Shaadraz Gateways - if (player->GetQuestStatus(10129) == QUEST_STATUS_INCOMPLETE) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_BRACK1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8); + case NPC_BRACK: + if (player->GetQuestStatus(QUEST_GATEWAYS_H) == QUEST_STATUS_INCOMPLETE) + AddGossipItemFor(player, gossipmenuid, 5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8); - //Mission: The Abyssal Shelf || Return to the Abyssal Shelf - if (player->GetQuestStatus(10162) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(10347) == QUEST_STATUS_INCOMPLETE) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_BRACK2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9); + if (player->GetQuestStatus(QUEST_ABBYSAL) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(QUEST_ABBYSAL_DAILY) == QUEST_STATUS_INCOMPLETE) + AddGossipItemFor(player, gossipmenuid, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9); - //Spinebreaker Post - if (player->GetQuestStatus(10242) == QUEST_STATUS_COMPLETE) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_BRACK3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 10); + if (player->GetQuestStatus(QUEST_SPINEBREAKER) == QUEST_STATUS_COMPLETE) + AddGossipItemFor(player, gossipmenuid, 4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 10); break; - case 23413: // Blade's Edge Mountains - Skyguard Handler Irena - if (player->GetReputationRank(1031) >= REP_HONORED) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_IRENA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11); + case NPC_IRENA: + if (player->GetReputationRank(REP_SKYGUARD) >= REP_HONORED) + AddGossipItemFor(player, gossipmenuid, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11); break; - case 25059: // Isle of Quel'Danas - Ayren Cloudbreaker - if (player->GetQuestStatus(11532) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(11533) == QUEST_STATUS_INCOMPLETE) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_CLOUDBREAKER1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12); + case NPC_AYREN: + if (player->GetQuestStatus(QUEST_DEAD_SCAR) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(QUEST_AIR_STRIKE) == QUEST_STATUS_INCOMPLETE) + AddGossipItemFor(player, gossipmenuid, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12); - if (player->GetQuestStatus(11542) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(11543) == QUEST_STATUS_INCOMPLETE) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_CLOUDBREAKER2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13); + if (player->GetQuestStatus(QUEST_INTERCEPT) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(QUEST_KEEP_AT_BEY) == QUEST_STATUS_INCOMPLETE) + AddGossipItemFor(player, gossipmenuid, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13); break; - case 25236: // Isle of Quel'Danas - Unrestrained Dragonhawk - if (player->GetQuestStatus(11542) == QUEST_STATUS_COMPLETE || player->GetQuestStatus(11543) == QUEST_STATUS_COMPLETE) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_DRAGONHAWK, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14); + case NPC_DRAGONHAWK: + if (player->GetQuestStatus(QUEST_INTERCEPT) == QUEST_STATUS_COMPLETE || player->GetQuestStatus(QUEST_KEEP_AT_BEY) == QUEST_STATUS_COMPLETE) + AddGossipItemFor(player, gossipmenuid, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14); break; - case 20162: // Netherstorm - Veronia - //Behind Enemy Lines - if (player->GetQuestStatus(10652) != QUEST_STATUS_REWARDED) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_VERONIA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 15); + case NPC_VERONIA: + if (player->GetQuestStatus(QUEST_BEHIND_ENEMY) != QUEST_STATUS_REWARDED) + AddGossipItemFor(player, gossipmenuid, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 15); break; - case 23415: // Terokkar Forest - Skyguard Handler Deesak - if (player->GetReputationRank(1031) >= REP_HONORED) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_DEESAK, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 16); + case NPC_DEESAK: + if (player->GetReputationRank(REP_SKYGUARD) >= REP_HONORED) + AddGossipItemFor(player, gossipmenuid, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 16); break; - case 27575: // Dragonblight - Lord Afrasastrasz + case NPC_AFRASASTRASZ: // middle -> ground - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_AFRASASTRASZ1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 17); + AddGossipItemFor(player, gossipmenuid, 1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 17); // middle -> top - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_AFRASASTRASZ2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 18); + AddGossipItemFor(player, gossipmenuid, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 18); break; - case 26443: // Dragonblight - Tariolstrasz //need to check if quests are required before gossip available (12123, 12124) + case NPC_TARIOLSTRASZ: // ground -> top - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_TARIOLSTRASZ1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 19); + AddGossipItemFor(player, gossipmenuid, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 19); // ground -> middle - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_TARIOLSTRASZ2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 20); + AddGossipItemFor(player, gossipmenuid, 1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 20); break; - case 26949: // Dragonblight - Torastrasza + case NPC_TORASTRASZA: // top -> middle - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_TORASTRASZA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 21); + AddGossipItemFor(player, gossipmenuid, 1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 21); // top -> ground - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_TORASTRASZA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 22); + AddGossipItemFor(player, gossipmenuid, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 22); break; - case 23704: // Dustwallow Marsh - Cassa Crimsonwing - if (player->GetQuestStatus(11142) == QUEST_STATUS_INCOMPLETE) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_CRIMSONWING, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 25); + case NPC_CESSA: + if (player->GetQuestStatus(QUEST_SURVEY_ALCAZ) == QUEST_STATUS_INCOMPLETE) + AddGossipItemFor(player, gossipmenuid, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 25); break; - case 17209: - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_WILLIAMKEILAR1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 26); - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_WILLIAMKEILAR2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 27); - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_WILLIAMKEILAR3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 28); + case NPC_KIELAR: + AddGossipItemFor(player, gossipmenuid, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 26); // Northpass Tower. + AddGossipItemFor(player, gossipmenuid, 1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 27); // Eastwall Tower. + AddGossipItemFor(player, gossipmenuid, 2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 28); // Crown Guard Tower. break; } @@ -231,15 +243,6 @@ public: CloseGossipMenuFor(player); player->ActivateTaxiPathTo(879); break; - case GOSSIP_ACTION_INFO_DEF + 23: - CloseGossipMenuFor(player); - player->CastSpell(player, 43074, true); //TaxiPath 736 - break; - case GOSSIP_ACTION_INFO_DEF + 24: - CloseGossipMenuFor(player); - //player->ActivateTaxiPathTo(738); - player->CastSpell(player, 43136, false); - break; case GOSSIP_ACTION_INFO_DEF + 25: CloseGossipMenuFor(player); player->CastSpell(player, 42295, true);