From 4d40e2babc55ad498055d1508080d0a7386a1b9c Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 23 Jun 2023 15:20:38 +0100 Subject: [PATCH 001/426] Add Missing Instance Herbs (#1963) --- sql/migrations/20230618081042_world.sql | 340 ++++++++++++++++++++++++ 1 file changed, 340 insertions(+) create mode 100644 sql/migrations/20230618081042_world.sql diff --git a/sql/migrations/20230618081042_world.sql b/sql/migrations/20230618081042_world.sql new file mode 100644 index 00000000000..2c594146636 --- /dev/null +++ b/sql/migrations/20230618081042_world.sql @@ -0,0 +1,340 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230618081042'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230618081042'); +-- Add your query below. + + +SET @OGUID = 67059; + +-- Maraudon +UPDATE `pool_gameobject` SET `description`='Ghost Mushroom' WHERE `guid`IN (32929, 32920, 32916, 32915, 32913, 32912, 32911); +UPDATE `pool_template` SET `description`='Herbs in Maraudon' WHERE `entry`=34902; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 2045, 349, -15.7328, -99.223, -207.312, 5.89921, 0, 0, -0.190808, 0.981627, 300, 300, 1, 100, 0, 10), +(@OGUID+2, 2045, 349, -7.92984, -153.744, -206.915, 2.00713, 0, 0, 0.843391, 0.5373, 300, 300, 1, 100, 0, 10), +(@OGUID+3, 2045, 349, 1.16174, -258.687, -208.415, 3.07177, 0, 0, 0.999391, 0.0349061, 300, 300, 1, 100, 0, 10), +(@OGUID+4, 2045, 349, 26.4207, -175.252, -208.4, 4.83456, 0, 0, -0.66262, 0.748956, 300, 300, 1, 100, 0, 10), +(@OGUID+5, 142144, 349, 163.341, -201.369, -171.862, 0.90757, 0, 0, 0.438371, 0.898794, 300, 300, 1, 100, 0, 10), +(@OGUID+6, 142144, 349, 189.277, -364.368, -160.313, 5.60251, 0, 0, -0.333807, 0.942641, 300, 300, 1, 100, 0, 10), +(@OGUID+7, 142144, 349, 281.733, -340.384, -117.223, 6.05629, 0, 0, -0.113203, 0.993572, 300, 300, 1, 100, 0, 10), +(@OGUID+8, 142144, 349, 329.721, -195.472, -59.8991, 3.38594, 0, 0, -0.992546, 0.12187, 300, 300, 1, 100, 0, 10), +(@OGUID+9, 142144, 349, 640.385, -101.812, -56.1699, 0.977383, 0, 0, 0.469471, 0.882948, 300, 300, 1, 100, 0, 10), +(@OGUID+10, 142144, 349, 675.109, -141.463, -48.794, 2.86234, 0, 0, 0.990268, 0.139175, 300, 300, 1, 100, 0, 10), +(@OGUID+11, 142144, 349, 782.738, -541.578, -33.9911, 1.74533, 0, 0, 0.766044, 0.642789, 300, 300, 1, 100, 0, 10), +(@OGUID+12, 142144, 349, 793.028, -402.078, -54.1393, 4.60767, 0, 0, -0.743144, 0.669131, 300, 300, 1, 100, 0, 10), +(@OGUID+13, 142144, 349, 813.16, -244.633, -60.6847, 2.16421, 0, 0, 0.882947, 0.469473, 300, 300, 1, 100, 0, 10), +(@OGUID+14, 142144, 349, 813.695, -151.817, -74.9203, 0.191985, 0, 0, 0.0958452, 0.995396, 300, 300, 1, 100, 0, 10), +(@OGUID+15, 142144, 349, 828.923, -370.214, -58.7417, 2.74016, 0, 0, 0.979924, 0.19937, 300, 300, 1, 100, 0, 10), +(@OGUID+16, 142144, 349, 854.992, -323.021, -51.5775, 3.07177, 0, 0, 0.999391, 0.0349061, 300, 300, 1, 100, 0, 10), +(@OGUID+17, 142144, 349, 907.205, -184.284, -52.7166, 5.13127, 0, 0, -0.544639, 0.838671, 300, 300, 1, 100, 0, 10), +(@OGUID+18, 142144, 349, 926.314, -292.831, -49.8022, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+19, 142144, 349, 937.457, -394.879, -50.2743, 1.5708, 0, 0, 0.707107, 0.707107, 300, 300, 1, 100, 0, 10), +(@OGUID+20, 142144, 349, 992.133, -1.21648, -62.5453, 5.93412, 0, 0, -0.173648, 0.984808, 300, 300, 1, 100, 0, 10), +(@OGUID+21, 142144, 349, 1038.12, -295.058, -71.9666, 5.61996, 0, 0, -0.325567, 0.945519, 300, 300, 1, 100, 0, 10), +(@OGUID+22, 142143, 349, -89.0383, -389.406, -189.896, 4.43314, 0, 0, -0.798635, 0.601815, 300, 300, 1, 100, 0, 10), +(@OGUID+23, 142143, 349, 132.467, -368.84, -175.489, 1.81514, 0, 0, 0.788011, 0.615662, 300, 300, 1, 100, 0, 10), +(@OGUID+24, 142143, 349, 209.111, -181.189, -131.517, 5.11382, 0, 0, -0.551936, 0.833886, 300, 300, 1, 100, 0, 10), +(@OGUID+25, 142143, 349, 227.885, -42.8283, -131.01, 1.85005, 0, 0, 0.798635, 0.601815, 300, 300, 1, 100, 0, 10), +(@OGUID+26, 142143, 349, 258.941, 54.6936, -131.01, 1.01229, 0, 0, 0.484809, 0.87462, 300, 300, 1, 100, 0, 10), +(@OGUID+27, 142143, 349, 277.265, -155.452, -111.292, 3.6652, 0, 0, -0.965925, 0.258821, 300, 300, 1, 100, 0, 10), +(@OGUID+28, 142143, 349, 308.052, -88.2435, -131.01, 0.942477, 0, 0, 0.45399, 0.891007, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 34902, 0, 'Stranglekelp', 0, 10), +(@OGUID+2, 34902, 0, 'Stranglekelp', 0, 10), +(@OGUID+3, 34902, 0, 'Stranglekelp', 0, 10), +(@OGUID+4, 34902, 0, 'Stranglekelp', 0, 10), +(@OGUID+5, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+6, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+7, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+8, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+9, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+10, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+11, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+12, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+13, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+14, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+15, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+16, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+17, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+18, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+19, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+20, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+21, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+22, 34902, 0, 'Blindweed', 0, 10), +(@OGUID+23, 34902, 0, 'Blindweed', 0, 10), +(@OGUID+24, 34902, 0, 'Blindweed', 0, 10), +(@OGUID+25, 34902, 0, 'Blindweed', 0, 10), +(@OGUID+26, 34902, 0, 'Blindweed', 0, 10), +(@OGUID+27, 34902, 0, 'Blindweed', 0, 10), +(@OGUID+28, 34902, 0, 'Blindweed', 0, 10); + +UPDATE `pool_template` SET `max_limit`=15 WHERE `entry`=34902; + +-- Blackfathom Deeps +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(1014, 4, 'Herbs in Blackfathom Deeps', 0, 10); +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+29, 2045, 48, -855.667, -98.7892, -36.3917, 2.91469, 0, 0, 0.993571, 0.113208, 300, 300, 1, 100, 0, 10), +(@OGUID+30, 2045, 48, -804.739, -142.515, -38.9533, 3.14159, 0, 0, -1, 0, 300, 300, 1, 100, 0, 10), +(@OGUID+31, 2045, 48, -517.099, 165.319, -75.165, 3.194, 0, 0, -0.999657, 0.0262016, 300, 300, 1, 100, 0, 10), +(@OGUID+32, 2045, 48, -430.732, 88.3405, -67.4654, 3.4383, 0, 0, -0.989016, 0.147811, 300, 300, 1, 100, 0, 10), +(@OGUID+33, 2045, 48, -330.049, 313.491, -58.8919, 4.24115, 0, 0, -0.85264, 0.522499, 300, 300, 1, 100, 0, 10), +(@OGUID+34, 1622, 48, -510.116, 34.3135, -44.7862, 6.03884, 0, 0, -0.121869, 0.992546, 300, 300, 1, 100, 0, 10), +(@OGUID+35, 1622, 48, -475.283, -89.9995, -38.4008, 2.23402, 0, 0, 0.898793, 0.438373, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+29, 1014, 0, 'Stranglekelp', 0, 10), +(@OGUID+30, 1014, 0, 'Stranglekelp', 0, 10), +(@OGUID+31, 1014, 0, 'Stranglekelp', 0, 10), +(@OGUID+32, 1014, 0, 'Stranglekelp', 0, 10), +(@OGUID+33, 1014, 0, 'Stranglekelp', 0, 10), +(@OGUID+34, 1014, 0, 'Bruiseweed', 0, 10), +(@OGUID+35, 1014, 0, 'Bruiseweed', 0, 10); + +UPDATE `pool_template` SET `max_limit`=5 WHERE `entry`=1014; + +-- Scarlet Monastery +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+36, 2042, 189, 1701.49, -346.695, 18.0501, 1.16937, 0, 0, 0.551936, 0.833886, 300, 300, 1, 100, 0, 10), +(@OGUID+37, 1628, 189, 1840.29, 1347.77, 18.0907, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+38, 1624, 189, 1756.58, 1345.03, 19.7123, 0.174532, 0, 0, 0.0871553, 0.996195, 300, 300, 1, 100, 0, 10), +(@OGUID+39, 1624, 189, 1813.73, 1274.33, 17.622, 4.41568, 0, 0, -0.803857, 0.594823, 300, 300, 1, 100, 0, 10), +(@OGUID+40, 1624, 189, 1839.61, 1377.49, 18.6989, 4.29351, 0, 0, -0.83867, 0.54464, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+36, 1054, 0, 'Fadeleaf', 0, 10), +(@OGUID+37, 1054, 0, 'Grave Moss', 0, 10), +(@OGUID+38, 1054, 0, 'Kingsblood', 0, 10), +(@OGUID+39, 1054, 0, 'Kingsblood', 0, 10), +(@OGUID+40, 1054, 0, 'Kingsblood', 0, 10); + +DELETE FROM `pool_gameobject` WHERE `guid` IN (29155, 29152, 29154, 29153, 29159, 29157, 29156, 29158); +DELETE FROM `pool_template` WHERE `entry` = 514; +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(29155, 1054, 0, 'Grave Moss', 0, 10), +(29152, 1054, 0, 'Grave Moss', 0, 10), +(29154, 1054, 0, 'Grave Moss', 0, 10), +(29153, 1054, 0, 'Grave Moss', 0, 10), +(29159, 1054, 0, 'Grave Moss', 0, 10), +(29157, 1054, 0, 'Grave Moss', 0, 10), +(29156, 1054, 0, 'Grave Moss', 0, 10), +(29158, 1054, 0, 'Grave Moss', 0, 10); + +UPDATE `pool_template` SET `max_limit`=13 WHERE `entry`=1054; + +-- Stratholme +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(1034, 4, 'Herbs in Stratholme', 0, 10); +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+41, 1628, 329, 3983.46, -3439.44, 121.421, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+42, 1628, 329, 4087.47, -3350.92, 117.728, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+43, 176587, 329, 3689.56, -3629.15, 139.286, 0.488691, 0, 0, 0.241921, 0.970296, 300, 300, 1, 100, 0, 10), +(@OGUID+44, 176587, 329, 3857.58, -3660.9, 144.896, 1.67551, 0, 0, 0.743144, 0.669131, 300, 300, 1, 100, 0, 10), +(@OGUID+45, 176587, 329, 3893.82, -3727.65, 142.534, 1.25664, 0, 0, 0.587785, 0.809017, 300, 300, 1, 100, 0, 10), +(@OGUID+46, 176587, 329, 3894.98, -3719.46, 142.919, 1.51844, 0, 0, 0.688354, 0.725374, 300, 300, 1, 100, 0, 10), +(@OGUID+47, 176587, 329, 4012.68, -3351.69, 115.051, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+48, 176587, 329, 4015.68, -3367.6, 115.057, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+49, 176587, 329, 4017.09, -3339.02, 115.056, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+50, 176587, 329, 4017.17, -3335.36, 115.058, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+51, 176587, 329, 4050.15, -3368.35, 115.056, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+52, 176587, 329, 4054.78, -3355.8, 115.058, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+53, 176587, 329, 4081.89, -3540.82, 124.622, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+54, 142141, 329, 3650.83, -3654.22, 138.605, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+55, 142141, 329, 3832.63, -3581.99, 144.835, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+56, 142141, 329, 4078.11, -3346.62, 117.704, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+41, 1034, 0, 'Grave Moss', 0, 10), +(@OGUID+42, 1034, 0, 'Grave Moss', 0, 10), +(@OGUID+43, 1034, 0, 'Plaguebloom', 0, 10), +(@OGUID+44, 1034, 0, 'Plaguebloom', 0, 10), +(@OGUID+45, 1034, 0, 'Plaguebloom', 0, 10), +(@OGUID+46, 1034, 0, 'Plaguebloom', 0, 10), +(@OGUID+47, 1034, 0, 'Plaguebloom', 0, 10), +(@OGUID+48, 1034, 0, 'Plaguebloom', 0, 10), +(@OGUID+49, 1034, 0, 'Plaguebloom', 0, 10), +(@OGUID+50, 1034, 0, 'Plaguebloom', 0, 10), +(@OGUID+51, 1034, 0, 'Plaguebloom', 0, 10), +(@OGUID+52, 1034, 0, 'Plaguebloom', 0, 10), +(@OGUID+53, 1034, 0, 'Plaguebloom', 0, 10), +(@OGUID+54, 1034, 0, 'Arthas Tears', 0, 10), +(@OGUID+55, 1034, 0, 'Arthas Tears', 0, 10), +(@OGUID+56, 1034, 0, 'Arthas Tears', 0, 10); + +UPDATE `pool_template` SET `max_limit`=6 WHERE `entry`=1034; + +-- Wailing Caverns +DELETE FROM `pool_gameobject` WHERE `guid` IN (3035, 2368, 2371, 4032, 4036, 10429, 10441); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(3035, 1036, 0, 'Bruiseweed', 0, 10), +(2368, 1032, 0, 'Mageroyal', 0, 10), +(2371, 1032, 0, 'Mageroyal', 0, 10), +(4032, 1038, 0, 'Kingsblood', 0, 10), +(4036, 1038, 0, 'Kingsblood', 0, 10), +(10429, 1038, 0, 'Kingsblood', 0, 10), +(10441, 1038, 0, 'Kingsblood', 0, 10); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+57, 2041, 43, -15.1086, 190.488, -105.497, 2.30383, 0, 0, 0.913545, 0.406738, 300, 300, 1, 100, 0, 10), +(@OGUID+58, 1624, 43, -107.223, 254.789, -90.8108, 0.541051, 0, 0, 0.267238, 0.963631, 300, 300, 1, 100, 0, 10), +(@OGUID+59, 1624, 43, -1.81569, -82.4278, -66.416, 0.680677, 0, 0, 0.333806, 0.942642, 300, 300, 1, 100, 0, 10), +(@OGUID+60, 1624, 43, 7.76115, 322.53, -90.0733, 3.05433, 0, 0, 0.999048, 0.0436193, 300, 300, 1, 100, 0, 10), +(@OGUID+61, 1622, 43, 2.20831, -257.665, -69.3465, 3.35105, 0, 0, -0.994521, 0.104536, 300, 300, 1, 100, 0, 10), +(@OGUID+62, 1622, 43, -163.906, -335.976, -68.879, 3.14159, 0, 0, -1, 0, 300, 300, 1, 100, 0, 10), +(@OGUID+63, 1619, 43, -130.708, -129.07, -66.8246, 4.64258, 0, 0, -0.731354, 0.681998, 300, 300, 1, 100, 0, 10), +(@OGUID+64, 1619, 43, -121.701, 462.537, -72.2603, 3.64774, 0, 0, -0.968147, 0.250381, 300, 300, 1, 100, 0, 10), +(@OGUID+65, 1619, 43, -88.9062, -261.777, -53.9114, 4.53786, 0, 0, -0.766044, 0.642789, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+57, 1053, 0, 'Liferoot', 0, 10), +(@OGUID+58, 1053, 0, 'Kingsblood', 0, 10), +(@OGUID+59, 1053, 0, 'Kingsblood', 0, 10), +(@OGUID+60, 1053, 0, 'Kingsblood', 0, 10), +(@OGUID+61, 1053, 0, 'Bruiseweed', 0, 10), +(@OGUID+62, 1053, 0, 'Bruiseweed', 0, 10), +(@OGUID+63, 1053, 0, 'Earthroot', 0, 10), +(@OGUID+64, 1053, 0, 'Earthroot', 0, 10), +(@OGUID+65, 1053, 0, 'Earthroot', 0, 10); + +UPDATE `pool_template` SET `max_limit`=5 WHERE `entry`=1053; + +-- Zul'Gurub +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(1035, 14, 'Herbs in Zul\'Gurub', 0, 10); +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+66, 180168, 309, -12236.5, -1472.11, 130.657, 4.50295, 0, 0, -0.777145, 0.629321, 300, 300, 1, 100, 0, 10), +(@OGUID+67, 180168, 309, -12159.4, -1956.99, 134.077, 6.16101, 0, 0, -0.0610485, 0.998135, 300, 300, 1, 100, 0, 10), +(@OGUID+68, 180168, 309, -12059.7, -1443.07, 130.177, 3.45576, 0, 0, -0.987688, 0.156436, 300, 300, 1, 100, 0, 10), +(@OGUID+69, 180168, 309, -11650, -1890.45, 57.2409, 5.46288, 0, 0, -0.398748, 0.91706, 300, 300, 1, 100, 0, 10), +(@OGUID+70, 180168, 309, -11595.5, -1227.25, 78.2645, 0.453785, 0, 0, 0.224951, 0.97437, 300, 300, 1, 100, 0, 10), +(@OGUID+71, 180168, 309, -11543.5, -1548.46, 51.7261, 5.02655, 0, 0, -0.587785, 0.809017, 300, 300, 1, 100, 0, 10), +(@OGUID+72, 180168, 309, -11539.7, -1244.56, 78.744, 1.29154, 0, 0, 0.601814, 0.798636, 300, 300, 1, 100, 0, 10), +(@OGUID+73, 180168, 309, -11517.2, -1688.41, 51.148, 3.49067, 0, 0, -0.984807, 0.173652, 300, 300, 1, 100, 0, 10), +(@OGUID+74, 180167, 309, -12288.3, -1625.12, 130.261, 1.309, 0, 0, 0.608761, 0.793354, 300, 300, 1, 100, 0, 10), +(@OGUID+75, 180167, 309, -12197.3, -1983.1, 132.6, 4.83456, 0, 0, -0.66262, 0.748956, 300, 300, 1, 100, 0, 10), +(@OGUID+76, 180167, 309, -12002.8, -1489.2, 80.3559, 0.331611, 0, 0, 0.165047, 0.986286, 300, 300, 1, 100, 0, 10), +(@OGUID+77, 180167, 309, -11985.6, -1717.95, 32.2836, 5.53269, 0, 0, -0.366501, 0.930418, 300, 300, 1, 100, 0, 10), +(@OGUID+78, 180167, 309, -11786.7, -1896.81, 48.9827, 3.31614, 0, 0, -0.996194, 0.087165, 300, 300, 1, 100, 0, 10), +(@OGUID+79, 180167, 309, -11656.2, -1572.16, 39.8062, 3.94445, 0, 0, -0.920505, 0.390732, 300, 300, 1, 100, 0, 10), +(@OGUID+80, 180167, 309, -11583.7, -1663.03, 50.6409, 5.21854, 0, 0, -0.507538, 0.861629, 300, 300, 1, 100, 0, 10), +(@OGUID+81, 180167, 309, -11558.2, -1739.45, 38.6247, 5.75959, 0, 0, -0.258819, 0.965926, 300, 300, 1, 100, 0, 10), +(@OGUID+82, 180167, 309, -11457, -1596.5, 49.6861, 5.53269, 0, 0, -0.366501, 0.930418, 300, 300, 1, 100, 0, 10), +(@OGUID+83, 180166, 309, -12346.8, -1965, 133.195, 0.453785, 0, 0, 0.224951, 0.97437, 300, 300, 1, 100, 0, 10), +(@OGUID+84, 180166, 309, -12298.3, -1464.21, 130.6, 2.02458, 0, 0, 0.848047, 0.529921, 300, 300, 1, 100, 0, 10), +(@OGUID+85, 180166, 309, -12255.3, -1963.61, 136.048, 0.610863, 0, 0, 0.300705, 0.953717, 300, 300, 1, 100, 0, 10), +(@OGUID+86, 180166, 309, -12062.2, -1433.83, 130.23, 3.49067, 0, 0, -0.984807, 0.173652, 300, 300, 1, 100, 0, 10), +(@OGUID+87, 180166, 309, -11804.4, -1902, 50.6509, 5.93412, 0, 0, -0.173648, 0.984808, 300, 300, 1, 100, 0, 10), +(@OGUID+88, 180166, 309, -11657, -1457.02, 61.0002, 4.53786, 0, 0, -0.766044, 0.642789, 300, 300, 1, 100, 0, 10), +(@OGUID+89, 180166, 309, -11561.3, -1805.51, 62.4128, 3.28124, 0, 0, -0.997563, 0.0697661, 300, 300, 1, 100, 0, 10), +(@OGUID+90, 180166, 309, -11526.8, -1493.28, 80.0608, 2.54818, 0, 0, 0.956305, 0.292372, 300, 300, 1, 100, 0, 10), +(@OGUID+91, 180165, 309, -11995.2, -1621.96, 33.2566, 4.32842, 0, 0, -0.829037, 0.559194, 300, 300, 1, 100, 0, 10), +(@OGUID+92, 180165, 309, -11972.8, -1553, 40.8403, 4.67748, 0, 0, -0.719339, 0.694659, 300, 300, 1, 100, 0, 10), +(@OGUID+93, 180165, 309, -11944.6, -1760.67, 53.5194, 4.39823, 0, 0, -0.809016, 0.587786, 300, 300, 1, 100, 0, 10), +(@OGUID+94, 180165, 309, -11688.1, -1941.78, 56.86, 4.36332, 0, 0, -0.819152, 0.573577, 300, 300, 1, 100, 0, 10), +(@OGUID+95, 180165, 309, -11657.7, -1565.71, 41.4168, 4.15388, 0, 0, -0.874619, 0.48481, 300, 300, 1, 100, 0, 10), +(@OGUID+96, 180164, 309, -12352.3, -1672.73, 131.178, 2.75761, 0, 0, 0.981627, 0.190812, 300, 300, 1, 100, 0, 10), +(@OGUID+97, 180164, 309, -12156, -1466.72, 131.101, 4.88692, 0, 0, -0.642787, 0.766045, 300, 300, 1, 100, 0, 10), +(@OGUID+98, 180164, 309, -11615, -1846.41, 41.4148, 3.07177, 0, 0, 0.999391, 0.0349061, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+66, 1035, 0, 'Dreamfoil', 0, 10), +(@OGUID+67, 1035, 0, 'Dreamfoil', 0, 10), +(@OGUID+68, 1035, 0, 'Dreamfoil', 0, 10), +(@OGUID+69, 1035, 0, 'Dreamfoil', 0, 10), +(@OGUID+70, 1035, 0, 'Dreamfoil', 0, 10), +(@OGUID+71, 1035, 0, 'Dreamfoil', 0, 10), +(@OGUID+72, 1035, 0, 'Dreamfoil', 0, 10), +(@OGUID+73, 1035, 0, 'Dreamfoil', 0, 10), +(@OGUID+74, 1035, 0, 'Golden Sansam', 0, 10), +(@OGUID+75, 1035, 0, 'Golden Sansam', 0, 10), +(@OGUID+76, 1035, 0, 'Golden Sansam', 0, 10), +(@OGUID+77, 1035, 0, 'Golden Sansam', 0, 10), +(@OGUID+78, 1035, 0, 'Golden Sansam', 0, 10), +(@OGUID+79, 1035, 0, 'Golden Sansam', 0, 10), +(@OGUID+80, 1035, 0, 'Golden Sansam', 0, 10), +(@OGUID+81, 1035, 0, 'Golden Sansam', 0, 10), +(@OGUID+82, 1035, 0, 'Golden Sansam', 0, 10), +(@OGUID+83, 1035, 0, 'Mountain Silversage', 0, 10), +(@OGUID+84, 1035, 0, 'Mountain Silversage', 0, 10), +(@OGUID+85, 1035, 0, 'Mountain Silversage', 0, 10), +(@OGUID+86, 1035, 0, 'Mountain Silversage', 0, 10), +(@OGUID+87, 1035, 0, 'Mountain Silversage', 0, 10), +(@OGUID+88, 1035, 0, 'Mountain Silversage', 0, 10), +(@OGUID+89, 1035, 0, 'Mountain Silversage', 0, 10), +(@OGUID+90, 1035, 0, 'Mountain Silversage', 0, 10), +(@OGUID+91, 1035, 0, 'Purple Lotus', 0, 10), +(@OGUID+92, 1035, 0, 'Purple Lotus', 0, 10), +(@OGUID+93, 1035, 0, 'Purple Lotus', 0, 10), +(@OGUID+94, 1035, 0, 'Purple Lotus', 0, 10), +(@OGUID+95, 1035, 0, 'Purple Lotus', 0, 10), +(@OGUID+96, 1035, 0, 'Sungrass', 0, 10), +(@OGUID+97, 1035, 0, 'Sungrass', 0, 10), +(@OGUID+98, 1035, 0, 'Sungrass', 0, 10); + +-- Scholomance +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(1092, 2, 'Herbs in Scholomance', 0, 10); +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+99, 176587, 289, 98.7014, 193.753, 93.0853, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+100, 176587, 289, 118.585, 139.12, 93.0853, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+101, 176587, 289, 159.849, 150.575, 93.0853, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+102, 1628, 289, 142.809, 195.995, 93.2345, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+99, 1092, 0, 'Plaguebloom', 0, 10), +(@OGUID+100, 1092, 0, 'Plaguebloom', 0, 10), +(@OGUID+101, 1092, 0, 'Plaguebloom', 0, 10), +(@OGUID+102, 1092, 0, 'Grave Moss', 0, 10); + +-- Dire Maul +DELETE FROM `pool_template` WHERE `entry` IN (4293, 4292); +UPDATE `pool_template` SET `description`='Herbs in Dire Maul East' WHERE `entry`=4291; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+103, 176584, 429, -76.5402, -246.546, -56.9004, 4.7473, 0, 0, -0.694658, 0.71934, 300, 300, 1, 100, 0, 10), +(@OGUID+104, 176584, 429, -36.5852, -319.271, -51.7758, 0.244346, 0, 0, 0.121869, 0.992546, 300, 300, 1, 100, 0, 10), +(@OGUID+105, 176584, 429, 19.51, -336.746, -52.4165, 4.66003, 0, 0, -0.725374, 0.688355, 300, 300, 1, 100, 0, 10), +(@OGUID+106, 142145, 429, -29.2692, -335.209, -51.8413, 0.767944, 0, 0, 0.374606, 0.927184, 300, 300, 1, 100, 0, 10), +(@OGUID+107, 142145, 429, -9.27483, -432.866, -4.22212, 0.750491, 0, 0, 0.366501, 0.930418, 300, 300, 1, 100, 0, 10), +(@OGUID+108, 142145, 429, -1.04103, -462.999, -58.6353, 1.58825, 0, 0, 0.71325, 0.70091, 300, 300, 1, 100, 0, 10), +(@OGUID+109, 142145, 429, 16.1705, -224.22, -51.974, 0.453785, 0, 0, 0.224951, 0.97437, 300, 300, 1, 100, 0, 10), +(@OGUID+110, 142145, 429, 38.4777, -391.213, -58.6108, 1.32645, 0, 0, 0.615661, 0.788011, 300, 300, 1, 100, 0, 10), +(@OGUID+111, 142145, 429, 74.0712, -312.948, -54.7951, 2.19911, 0, 0, 0.891006, 0.453991, 300, 300, 1, 100, 0, 10), +(@OGUID+112, 142145, 429, 76.7673, -396.059, -4.22162, 5.34071, 0, 0, -0.45399, 0.891007, 300, 300, 1, 100, 0, 10), +(@OGUID+113, 142144, 429, -110.419, -419.615, -58.6047, 3.80482, 0, 0, -0.945518, 0.325568, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+103, 4291, 0, 'Dreamfoil', 0, 10), +(@OGUID+104, 4291, 0, 'Dreamfoil', 0, 10), +(@OGUID+105, 4291, 0, 'Dreamfoil', 0, 10), +(@OGUID+106, 4291, 0, 'Gromsblood', 0, 10), +(@OGUID+107, 4291, 0, 'Gromsblood', 0, 10), +(@OGUID+108, 4291, 0, 'Gromsblood', 0, 10), +(@OGUID+109, 4291, 0, 'Gromsblood', 0, 10), +(@OGUID+110, 4291, 0, 'Gromsblood', 0, 10), +(@OGUID+111, 4291, 0, 'Gromsblood', 0, 10), +(@OGUID+112, 4291, 0, 'Gromsblood', 0, 10), +(@OGUID+113, 4291, 0, 'Ghost Mushroom', 0, 10); + +UPDATE `pool_template` SET `max_limit`=6 WHERE `entry`=4291; + +-- RFK +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+114, 1621, 47, 2096.4, 1593.94, 80.5041, 6.19592, 0, 0, -0.0436192, 0.999048, 300, 300, 1, 100, 0, 10); + +-- Remove Custom Spawns +DELETE FROM `gameobject` WHERE `guid` IN (12217, 12219, 12224, 12227, 12233, 12235, 12236, 12242, 12243, 12248, 12262, 12263, 12268, 12291, 12300, 12304, 12317, 12319, 12322, 12325, 12332, 12333, 12579, 13233, 1374, 1384, 1396, 1456, 1467, 1491, 1497, 15156, 1537, 15789, 15812, 15821, 15841, 15842, 15845, 15870, 15873, 15889, 15896, 15918, 15939, 15940, 16089, 1612, 16136, 16178, 16191, 16194, 16202, 16254, 16256, 16289, 16326, 16332, 16333, 16337, 16343, 16358, 16393, 16411, 16415, 16416, 16417, 16418, 16419, 16420, 16421, 16422, 16423, 16424, 16425, 16426, 16429, 16431, 16433, 16437, 16438, 16442, 16443, 16445, 16447, 16448, 16521, 1686, 1690, 1740, 18952, 18961, 18974, 19023, 19026, 19032, 19081, 19133, 19202, 1949, 19522, 19667, 19706, 19725, 19737, 19758, 19816, 1999, 2093, 2197, 2221, 2255, 2279, 2370, 2376, 2398, 2402, 2521, 2532, 2563, 2596, 2656, 2710, 27441, 2761, 2769, 27714, 2799, 2851, 29160, 29188, 2919, 2984, 3004, 30459, 3051, 3057, 3120, 3181, 32294, 3269, 32894, 3343, 3345, 3401, 34113, 3457, 3522, 3541, 3561, 3571, 3687, 3689, 3698, 374472, 3748, 3800, 4009, 40521, 42048, 4224, 4269, 4281, 4289, 429022, 429023, 429024, 429025, 429026, 429027, 429028, 429029, 4294, 4302, 4325, 4327, 43382, 4353, 4372, 4373, 4376, 4399, 4401, 4415, 4420, 4496, 45847, 46567, 50003, 52650, 55500, 56133, 56192, 57743, 57796, 57818, 7517, 7650, 7727, 7819, 7840, 7842, 7874, 7946, 8019, 8024, 8050, 8056, 8058, 8222, 8247, 8342, 8465, 8522, 8533, 8648, 8689, 8797, 8886, 8917, 9154, 9157, 9185, 997); +DELETE FROM `pool_gameobject` WHERE `guid` IN (12217, 12219, 12224, 12227, 12233, 12235, 12236, 12242, 12243, 12248, 12262, 12263, 12268, 12291, 12300, 12304, 12317, 12319, 12322, 12325, 12332, 12333, 12579, 13233, 1374, 1384, 1396, 1456, 1467, 1491, 1497, 15156, 1537, 15789, 15812, 15821, 15841, 15842, 15845, 15870, 15873, 15889, 15896, 15918, 15939, 15940, 16089, 1612, 16136, 16178, 16191, 16194, 16202, 16254, 16256, 16289, 16326, 16332, 16333, 16337, 16343, 16358, 16393, 16411, 16415, 16416, 16417, 16418, 16419, 16420, 16421, 16422, 16423, 16424, 16425, 16426, 16429, 16431, 16433, 16437, 16438, 16442, 16443, 16445, 16447, 16448, 16521, 1686, 1690, 1740, 18952, 18961, 18974, 19023, 19026, 19032, 19081, 19133, 19202, 1949, 19522, 19667, 19706, 19725, 19737, 19758, 19816, 1999, 2093, 2197, 2221, 2255, 2279, 2370, 2376, 2398, 2402, 2521, 2532, 2563, 2596, 2656, 2710, 27441, 2761, 2769, 27714, 2799, 2851, 29160, 29188, 2919, 2984, 3004, 30459, 3051, 3057, 3120, 3181, 32294, 3269, 32894, 3343, 3345, 3401, 34113, 3457, 3522, 3541, 3561, 3571, 3687, 3689, 3698, 374472, 3748, 3800, 4009, 40521, 42048, 4224, 4269, 4281, 4289, 429022, 429023, 429024, 429025, 429026, 429027, 429028, 429029, 4294, 4302, 4325, 4327, 43382, 4353, 4372, 4373, 4376, 4399, 4401, 4415, 4420, 4496, 45847, 46567, 50003, 52650, 55500, 56133, 56192, 57743, 57796, 57818, 7517, 7650, 7727, 7819, 7840, 7842, 7874, 7946, 8019, 8024, 8050, 8056, 8058, 8222, 8247, 8342, 8465, 8522, 8533, 8648, 8689, 8797, 8886, 8917, 9154, 9157, 9185, 997); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 867eb96f420ee4f1f1cf34f8c2a29774ab0bbd5c Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 23 Jun 2023 15:20:53 +0100 Subject: [PATCH 002/426] Add Missing Herbs (#1965) --- sql/migrations/20230619162057_world.sql | 1379 +++++++++++++++++++++++ 1 file changed, 1379 insertions(+) create mode 100644 sql/migrations/20230619162057_world.sql diff --git a/sql/migrations/20230619162057_world.sql b/sql/migrations/20230619162057_world.sql new file mode 100644 index 00000000000..39b3d5c1f68 --- /dev/null +++ b/sql/migrations/20230619162057_world.sql @@ -0,0 +1,1379 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230619162057'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230619162057'); +-- Add your query below. + + +SET @OGUID = 68326; + +-- Arthas Tears +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 142141, 0, 2878.18, -1533.28, 145.203, 4.57276, 0, 0, -0.754709, 0.656059, 300, 300, 1, 100, 0, 10), +(@OGUID+2, 142141, 0, 2701.97, -1895.5, 68.079, 0.715585, 0, 0, 0.350207, 0.936672, 300, 300, 1, 100, 0, 10), +(@OGUID+3, 142141, 0, 2422.45, -1717.29, 107.66, 5.44543, 0, 0, -0.406736, 0.913546, 300, 300, 1, 100, 0, 10), +(@OGUID+4, 142141, 0, 2760.27, -4987.55, 96.4517, 2.28638, 0, 0, 0.909961, 0.414694, 300, 300, 1, 100, 0, 10), +(@OGUID+5, 142141, 0, 2205.75, -4157.82, 85.6112, 4.64258, 0, 0, -0.731354, 0.681998, 300, 300, 1, 100, 0, 10), +(@OGUID+6, 142141, 0, 2947.29, -4250.03, 93.6013, 5.81195, 0, 0, -0.233445, 0.97237, 300, 300, 1, 100, 0, 10), +(@OGUID+7, 142141, 0, 1936.47, -3633.93, 121.777, 4.03171, 0, 0, -0.902585, 0.430512, 300, 300, 1, 100, 0, 10), +(@OGUID+8, 142141, 0, 2468.48, -4835.2, 73.8452, 5.96903, 0, 0, -0.156434, 0.987688, 300, 300, 1, 100, 0, 10), +(@OGUID+9, 142141, 129, 2366.41, 968.678, 40.2011, 4.29351, 0, 0, -0.83867, 0.54464, 300, 300, 1, 100, 0, 10), +(@OGUID+10, 142141, 129, 2532.19, 804.245, 46.0493, 1.95477, 0, 0, 0.829038, 0.559193, 300, 300, 1, 100, 0, 10), +(@OGUID+11, 142141, 129, 2401.64, 1105.04, 31.5187, 1.58825, 0, 0, 0.71325, 0.70091, 300, 300, 1, 100, 0, 10), +(@OGUID+12, 142141, 129, 2459.53, 661.903, 56.6654, 2.35619, 0, 0, 0.92388, 0.382683, 300, 300, 1, 100, 0, 10), +(@OGUID+13, 142141, 129, 2316.08, 969.579, 26.798, 1.62316, 0, 0, 0.725374, 0.688355, 300, 300, 1, 100, 0, 10), +(@OGUID+14, 142141, 129, 2485.72, 782.397, 46.0727, 0.872664, 0, 0, 0.422618, 0.906308, 300, 300, 1, 100, 0, 10), +(@OGUID+15, 142141, 129, 2370.48, 898.142, 28.9724, 5.60251, 0, 0, -0.333807, 0.942641, 300, 300, 1, 100, 0, 10), +(@OGUID+16, 176642, 1, 3679.17, -1603.24, 210.347, 5.65487, 0, 0, -0.309016, 0.951057, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 1259, 0, 'Arthas Tears', 0, 10), +(@OGUID+2, 1259, 0, 'Arthas Tears', 0, 10), +(@OGUID+3, 1259, 0, 'Arthas Tears', 0, 10), +(@OGUID+4, 1266, 0, 'Arthas Tears', 0, 10), +(@OGUID+5, 1266, 0, 'Arthas Tears', 0, 10), +(@OGUID+6, 1266, 0, 'Arthas Tears', 0, 10), +(@OGUID+7, 1266, 0, 'Arthas Tears', 0, 10), +(@OGUID+8, 1266, 0, 'Arthas Tears', 0, 10), +(@OGUID+9, 2003, 0, 'Arthas Tears', 0, 10), +(@OGUID+10, 2003, 0, 'Arthas Tears', 0, 10), +(@OGUID+11, 2003, 0, 'Arthas Tears', 0, 10), +(@OGUID+12, 2003, 0, 'Arthas Tears', 0, 10), +(@OGUID+13, 2003, 0, 'Arthas Tears', 0, 10), +(@OGUID+14, 2003, 0, 'Arthas Tears', 0, 10), +(@OGUID+15, 2003, 0, 'Arthas Tears', 0, 10), +(@OGUID+16, 1226, 0, 'Arthas Tears', 0, 10); + +-- Blindweed +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+17, 142143, 0, -10216, -3702.88, 20.221, 2.87979, 0, 0, 0.991445, 0.130528, 300, 300, 1, 100, 0, 10), +(@OGUID+18, 142143, 0, -9945.72, -3801.96, 20.2847, 2.00713, 0, 0, 0.843391, 0.5373, 300, 300, 1, 100, 0, 10), +(@OGUID+19, 142143, 0, -10167.8, -2569.86, 26.1081, 2.23402, 0, 0, 0.898793, 0.438373, 300, 300, 1, 100, 0, 10), +(@OGUID+20, 142143, 0, -10191.1, -3638.45, 21.0827, 4.36332, 0, 0, -0.819152, 0.573577, 300, 300, 1, 100, 0, 10), +(@OGUID+21, 142143, 0, -10227.1, -4056.44, 21.0506, 4.83456, 0, 0, -0.66262, 0.748956, 300, 300, 1, 100, 0, 10), +(@OGUID+22, 142143, 1, -6522.41, -1822.72, -272.638, 3.38594, 0, 0, -0.992546, 0.12187, 300, 300, 1, 100, 0, 10), +(@OGUID+23, 142143, 349, 236.682, -276.223, -131.595, 0.90757, 0, 0, 0.438371, 0.898794, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+17, 1307, 0, 'Blindweed', 0, 10), +(@OGUID+18, 1307, 0, 'Blindweed', 0, 10), +(@OGUID+19, 1307, 0, 'Blindweed', 0, 10), +(@OGUID+20, 1307, 0, 'Blindweed', 0, 10), +(@OGUID+21, 1307, 0, 'Blindweed', 0, 10), +(@OGUID+22, 1216, 0, 'Blindweed', 0, 10), +(@OGUID+23, 34902, 0, 'Blindweed', 0, 10); + +-- Briarthorn +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+24, 1621, 0, -10970.5, -1142.02, 39.3726, 6.21337, 0, 0, -0.0348988, 0.999391, 300, 300, 1, 100, 0, 10), +(@OGUID+25, 1621, 0, -3160.43, -1554.23, 8.60373, 1.53589, 0, 0, 0.694658, 0.71934, 300, 300, 1, 100, 0, 10), +(@OGUID+26, 1621, 0, -3061.8, -1794.88, 9.79671, 5.20108, 0, 0, -0.515038, 0.857168, 300, 300, 1, 100, 0, 10), +(@OGUID+27, 1621, 0, -3700.84, -3086.35, 17.833, 4.45059, 0, 0, -0.793353, 0.608762, 300, 300, 1, 100, 0, 10), +(@OGUID+28, 1621, 0, -2828.07, -2855.3, 33.8715, 0.331611, 0, 0, 0.165047, 0.986286, 300, 300, 1, 100, 0, 10), +(@OGUID+29, 1621, 0, -5819.77, -3940.05, 359.255, 1.44862, 0, 0, 0.66262, 0.748956, 300, 300, 1, 100, 0, 10), +(@OGUID+30, 1621, 0, -5062.79, -4125.87, 315.169, 4.7822, 0, 0, -0.681998, 0.731354, 300, 300, 1, 100, 0, 10), +(@OGUID+31, 1621, 0, -5835.6, -3869.92, 351.99, 0.471238, 0, 0, 0.233445, 0.97237, 300, 300, 1, 100, 0, 10), +(@OGUID+32, 1621, 0, -5265.03, -3812.03, 324.68, 0.506145, 0, 0, 0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+33, 1621, 0, -5171.14, -3996.56, 332.429, 1.8675, 0, 0, 0.803857, 0.594823, 300, 300, 1, 100, 0, 10), +(@OGUID+34, 1621, 0, -5029.07, -3697.82, 309.676, 1.74533, 0, 0, 0.766044, 0.642789, 300, 300, 1, 100, 0, 10), +(@OGUID+35, 1621, 0, -5438.85, -4059.13, 346.724, 2.30383, 0, 0, 0.913545, 0.406738, 300, 300, 1, 100, 0, 10), +(@OGUID+36, 1621, 0, -10319.7, 1886.76, 38.4418, 0.523598, 0, 0, 0.258819, 0.965926, 300, 300, 1, 100, 0, 10), +(@OGUID+37, 1621, 0, -10909.4, 979.189, 37.7388, 3.7001, 0, 0, -0.961261, 0.27564, 300, 300, 1, 100, 0, 10), +(@OGUID+38, 1621, 0, -10910.7, 821.588, 34.4983, 1.0821, 0, 0, 0.515038, 0.857168, 300, 300, 1, 100, 0, 10), +(@OGUID+39, 1621, 0, -11018.1, 1269.23, 42.2472, 0.331611, 0, 0, 0.165047, 0.986286, 300, 300, 1, 100, 0, 10), +(@OGUID+40, 1621, 0, -10013.3, 1805.8, 37.5367, 5.70723, 0, 0, -0.284015, 0.95882, 300, 300, 1, 100, 0, 10), +(@OGUID+41, 1621, 0, -10638.1, 1914.25, 45.682, 0.157079, 0, 0, 0.0784588, 0.996917, 300, 300, 1, 100, 0, 10), +(@OGUID+42, 1621, 0, -10294, 1812.6, 35.539, 4.45059, 0, 0, -0.793353, 0.608762, 300, 300, 1, 100, 0, 10), +(@OGUID+43, 1621, 0, -10683.4, 2137.09, 20.5049, 2.80998, 0, 0, 0.986285, 0.16505, 300, 300, 1, 100, 0, 10), +(@OGUID+44, 1621, 0, -10827.9, 1783.94, 35.4826, 3.73501, 0, 0, -0.956305, 0.292372, 300, 300, 1, 100, 0, 10), +(@OGUID+45, 1621, 0, -10692.1, 1524.59, 46.554, 5.42797, 0, 0, -0.414693, 0.909961, 300, 300, 1, 100, 0, 10), +(@OGUID+46, 1621, 0, -9691.59, -2978.1, 54.5243, 5.5676, 0, 0, -0.350207, 0.936672, 300, 300, 1, 100, 0, 10), +(@OGUID+47, 1621, 0, -9262.77, -1977.89, 75.5952, 3.29869, 0, 0, -0.996917, 0.0784664, 300, 300, 1, 100, 0, 10), +(@OGUID+48, 1621, 0, -9273.21, -2757.61, 88.8043, 4.31097, 0, 0, -0.833885, 0.551938, 300, 300, 1, 100, 0, 10), +(@OGUID+49, 1621, 0, -567.79, 1509, 10.7705, 1.71042, 0, 0, 0.754709, 0.656059, 300, 300, 1, 100, 0, 10), +(@OGUID+50, 1621, 0, 667.162, 1349.87, 76.6523, 0.349065, 0, 0, 0.173648, 0.984808, 300, 300, 1, 100, 0, 10), +(@OGUID+51, 1621, 0, -276.436, 1287.29, 42.8033, 6.16101, 0, 0, -0.0610485, 0.998135, 300, 300, 1, 100, 0, 10), +(@OGUID+52, 1621, 0, 79.1429, 1247.77, 65.5801, 4.36332, 0, 0, -0.819152, 0.573577, 300, 300, 1, 100, 0, 10), +(@OGUID+53, 1621, 0, -236.559, 1351.29, 37.4929, 1.93731, 0, 0, 0.824125, 0.566408, 300, 300, 1, 100, 0, 10), +(@OGUID+54, 1621, 0, 100.18, 1119.3, 69.4424, 6.02139, 0, 0, -0.130526, 0.991445, 300, 300, 1, 100, 0, 10), +(@OGUID+55, 1621, 0, -17.5433, 1120.78, 65.7508, 2.63544, 0, 0, 0.968147, 0.250381, 300, 300, 1, 100, 0, 10), +(@OGUID+56, 1621, 0, 531.694, 1428.71, 101.015, 6.12611, 0, 0, -0.0784588, 0.996917, 300, 300, 1, 100, 0, 10), +(@OGUID+57, 1621, 0, 118.519, 1264.66, 67.7052, 3.80482, 0, 0, -0.945518, 0.325568, 300, 300, 1, 100, 0, 10), +(@OGUID+58, 1621, 0, 209.027, 1541.03, 127.7, 4.2237, 0, 0, -0.857167, 0.515038, 300, 300, 1, 100, 0, 10), +(@OGUID+59, 1621, 0, -567.656, 963.195, 90.5271, 0.506145, 0, 0, 0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+60, 1621, 0, -125.76, 1213.41, 57.1699, 0.349065, 0, 0, 0.173648, 0.984808, 300, 300, 1, 100, 0, 10), +(@OGUID+61, 1621, 0, -549.923, 951.044, 88.9301, 3.00195, 0, 0, 0.997563, 0.0697661, 300, 300, 1, 100, 0, 10), +(@OGUID+62, 1621, 0, -491.957, 1211.93, 51.9617, 5.28835, 0, 0, -0.477159, 0.878817, 300, 300, 1, 100, 0, 10), +(@OGUID+63, 1621, 0, -468.996, 719.341, 89.6196, 5.18363, 0, 0, -0.522498, 0.85264, 300, 300, 1, 100, 0, 10), +(@OGUID+64, 1621, 1, 7865.63, -1134.73, 44.8264, 3.76991, 0, 0, -0.951056, 0.309017, 300, 300, 1, 100, 0, 10), +(@OGUID+65, 1621, 1, 6014.09, 54.5372, 34.765, 4.60767, 0, 0, -0.743144, 0.669131, 300, 300, 1, 100, 0, 10), +(@OGUID+66, 1621, 1, 4486.19, 92.1504, 62.6035, 5.5676, 0, 0, -0.350207, 0.936672, 300, 300, 1, 100, 0, 10), +(@OGUID+67, 1621, 1, 6837.69, -141.358, 36.968, 4.25861, 0, 0, -0.848047, 0.529921, 300, 300, 1, 100, 0, 10), +(@OGUID+68, 1621, 1, 7819.83, -946.505, 35.9376, 2.07694, 0, 0, 0.861629, 0.507539, 300, 300, 1, 100, 0, 10), +(@OGUID+69, 1621, 1, 5763.42, 370.55, 21.7698, 0.488691, 0, 0, 0.241921, 0.970296, 300, 300, 1, 100, 0, 10), +(@OGUID+70, 1621, 1, 6857.46, 152.159, 16.0916, 4.81711, 0, 0, -0.66913, 0.743145, 300, 300, 1, 100, 0, 10), +(@OGUID+71, 1621, 1, 5744.33, -18.3368, 41.4262, 5.46288, 0, 0, -0.398748, 0.91706, 300, 300, 1, 100, 0, 10), +(@OGUID+72, 1621, 1, 5284.13, 161.754, 38.9968, 6.0912, 0, 0, -0.0958452, 0.995396, 300, 300, 1, 100, 0, 10), +(@OGUID+73, 1621, 1, 5448.75, 112.714, 34.0046, 5.46288, 0, 0, -0.398748, 0.91706, 300, 300, 1, 100, 0, 10), +(@OGUID+74, 1621, 0, -364.846, -64.9066, 55.1068, 5.55015, 0, 0, -0.358368, 0.93358, 300, 300, 1, 100, 0, 10), +(@OGUID+75, 1621, 0, -1322.35, -1132.87, 35.3258, 3.47321, 0, 0, -0.986285, 0.16505, 300, 300, 1, 100, 0, 10), +(@OGUID+76, 1621, 1, 1978.94, -1482.91, 85.0327, 1.83259, 0, 0, 0.793353, 0.608762, 300, 300, 1, 100, 0, 10), +(@OGUID+77, 1621, 1, 2785.97, -3584.5, 111.56, 1.06465, 0, 0, 0.507538, 0.861629, 300, 300, 1, 100, 0, 10), +(@OGUID+78, 1621, 1, 2587.08, -2676.48, 138.087, 3.7001, 0, 0, -0.961261, 0.27564, 300, 300, 1, 100, 0, 10), +(@OGUID+79, 1621, 1, 1911.85, -3026.35, 100.551, 1.06465, 0, 0, 0.507538, 0.861629, 300, 300, 1, 100, 0, 10), +(@OGUID+80, 1621, 1, 2400.83, 403.72, 97.364, 5.14872, 0, 0, -0.537299, 0.843392, 300, 300, 1, 100, 0, 10), +(@OGUID+81, 1621, 1, 3032.72, -911.838, 194.145, 0.0174525, 0, 0, 0.00872612, 0.999962, 300, 300, 1, 100, 0, 10), +(@OGUID+82, 1621, 1, 3281.95, 405.828, 3.70566, 1.72787, 0, 0, 0.760406, 0.649449, 300, 300, 1, 100, 0, 10), +(@OGUID+83, 1621, 1, 2759.72, -3136.69, 168.858, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+84, 1621, 1, 1097.95, 275.59, 22.2294, 3.31614, 0, 0, -0.996194, 0.087165, 300, 300, 1, 100, 0, 10), +(@OGUID+85, 1621, 1, 2017.04, 990.664, 202.007, 1.20428, 0, 0, 0.566406, 0.824126, 300, 300, 1, 100, 0, 10), +(@OGUID+86, 1621, 1, 1124.86, -416.903, 13.9767, 2.3911, 0, 0, 0.930417, 0.366502, 300, 300, 1, 100, 0, 10), +(@OGUID+87, 1621, 1, 1413.85, 274.863, 15.0717, 5.32326, 0, 0, -0.461748, 0.887011, 300, 300, 1, 100, 0, 10), +(@OGUID+88, 1621, 47, 2055.53, 1735.47, 77.149, 3.94445, 0, 0, -0.920505, 0.390732, 300, 300, 1, 100, 0, 10), +(@OGUID+89, 1621, 47, 2139.11, 1704.63, 80.9588, 2.84488, 0, 0, 0.989016, 0.147811, 300, 300, 1, 100, 0, 10), +(@OGUID+90, 1621, 47, 2160.33, 1434.68, 73.8699, 5.98648, 0, 0, -0.147809, 0.989016, 300, 300, 1, 100, 0, 10), +(@OGUID+91, 1621, 47, 2030.7, 1554.61, 64.5662, 5.23599, 0, 0, -0.5, 0.866025, 300, 300, 1, 100, 0, 10), +(@OGUID+92, 1621, 47, 2179.82, 1819.19, 61.7061, 4.01426, 0, 0, -0.906307, 0.422619, 300, 300, 1, 100, 0, 10), +(@OGUID+93, 1621, 47, 2009.76, 1657.79, 80.9566, 6.0912, 0, 0, -0.0958452, 0.995396, 300, 300, 1, 100, 0, 10), +(@OGUID+94, 1621, 47, 2174.52, 1893.2, 71.3412, 6.26573, 0, 0, -0.00872612, 0.999962, 300, 300, 1, 100, 0, 10), +(@OGUID+95, 1621, 47, 2137.35, 1791.76, 48.6783, 5.98648, 0, 0, -0.147809, 0.989016, 300, 300, 1, 100, 0, 10), +(@OGUID+96, 1621, 47, 2122.31, 1497.27, 72.6324, 4.76475, 0, 0, -0.688354, 0.725374, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+24, 1113, 0, 'Briarthorn', 0, 10), +(@OGUID+25, 1151, 0, 'Briarthorn', 0, 10), +(@OGUID+26, 1151, 0, 'Briarthorn', 0, 10), +(@OGUID+27, 1151, 0, 'Briarthorn', 0, 10), +(@OGUID+28, 1151, 0, 'Briarthorn', 0, 10), +(@OGUID+29, 1165, 0, 'Briarthorn', 0, 10), +(@OGUID+30, 1165, 0, 'Briarthorn', 0, 10), +(@OGUID+31, 1165, 0, 'Briarthorn', 0, 10), +(@OGUID+32, 1165, 0, 'Briarthorn', 0, 10), +(@OGUID+33, 1165, 0, 'Briarthorn', 0, 10), +(@OGUID+34, 1165, 0, 'Briarthorn', 0, 10), +(@OGUID+35, 1165, 0, 'Briarthorn', 0, 10), +(@OGUID+36, 1109, 0, 'Briarthorn', 0, 10), +(@OGUID+37, 1109, 0, 'Briarthorn', 0, 10), +(@OGUID+38, 1109, 0, 'Briarthorn', 0, 10), +(@OGUID+39, 1109, 0, 'Briarthorn', 0, 10), +(@OGUID+40, 1109, 0, 'Briarthorn', 0, 10), +(@OGUID+41, 1109, 0, 'Briarthorn', 0, 10), +(@OGUID+42, 1109, 0, 'Briarthorn', 0, 10), +(@OGUID+43, 1109, 0, 'Briarthorn', 0, 10), +(@OGUID+44, 1109, 0, 'Briarthorn', 0, 10), +(@OGUID+45, 1109, 0, 'Briarthorn', 0, 10), +(@OGUID+46, 1127, 0, 'Briarthorn', 0, 10), +(@OGUID+47, 1127, 0, 'Briarthorn', 0, 10), +(@OGUID+48, 1127, 0, 'Briarthorn', 0, 10), +(@OGUID+49, 1046, 0, 'Briarthorn', 0, 10), +(@OGUID+50, 1046, 0, 'Briarthorn', 0, 10), +(@OGUID+51, 1046, 0, 'Briarthorn', 0, 10), +(@OGUID+52, 1046, 0, 'Briarthorn', 0, 10), +(@OGUID+53, 1046, 0, 'Briarthorn', 0, 10), +(@OGUID+54, 1046, 0, 'Briarthorn', 0, 10), +(@OGUID+55, 1046, 0, 'Briarthorn', 0, 10), +(@OGUID+56, 1046, 0, 'Briarthorn', 0, 10), +(@OGUID+57, 1046, 0, 'Briarthorn', 0, 10), +(@OGUID+58, 1046, 0, 'Briarthorn', 0, 10), +(@OGUID+59, 1046, 0, 'Briarthorn', 0, 10), +(@OGUID+60, 1046, 0, 'Briarthorn', 0, 10), +(@OGUID+61, 1046, 0, 'Briarthorn', 0, 10), +(@OGUID+62, 1046, 0, 'Briarthorn', 0, 10), +(@OGUID+63, 1046, 0, 'Briarthorn', 0, 10), +(@OGUID+64, 1100, 0, 'Briarthorn', 0, 10), +(@OGUID+65, 1100, 0, 'Briarthorn', 0, 10), +(@OGUID+66, 1100, 0, 'Briarthorn', 0, 10), +(@OGUID+67, 1100, 0, 'Briarthorn', 0, 10), +(@OGUID+68, 1100, 0, 'Briarthorn', 0, 10), +(@OGUID+69, 1100, 0, 'Briarthorn', 0, 10), +(@OGUID+70, 1100, 0, 'Briarthorn', 0, 10), +(@OGUID+71, 1100, 0, 'Briarthorn', 0, 10), +(@OGUID+72, 1100, 0, 'Briarthorn', 0, 10), +(@OGUID+73, 1100, 0, 'Briarthorn', 0, 10), +(@OGUID+74, 1050, 0, 'Briarthorn', 0, 10), +(@OGUID+75, 1050, 0, 'Briarthorn', 0, 10), +(@OGUID+76, 1073, 0, 'Briarthorn', 0, 10), +(@OGUID+77, 1073, 0, 'Briarthorn', 0, 10), +(@OGUID+78, 1073, 0, 'Briarthorn', 0, 10), +(@OGUID+79, 1073, 0, 'Briarthorn', 0, 10), +(@OGUID+80, 1073, 0, 'Briarthorn', 0, 10), +(@OGUID+81, 1073, 0, 'Briarthorn', 0, 10), +(@OGUID+82, 1073, 0, 'Briarthorn', 0, 10), +(@OGUID+83, 1073, 0, 'Briarthorn', 0, 10), +(@OGUID+84, 1087, 0, 'Briarthorn', 0, 10), +(@OGUID+85, 1087, 0, 'Briarthorn', 0, 10), +(@OGUID+86, 1087, 0, 'Briarthorn', 0, 10), +(@OGUID+87, 1087, 0, 'Briarthorn', 0, 10), +(@OGUID+88, 2002, 0, 'Briarthorn', 0, 10), +(@OGUID+89, 2002, 0, 'Briarthorn', 0, 10), +(@OGUID+90, 2002, 0, 'Briarthorn', 0, 10), +(@OGUID+91, 2002, 0, 'Briarthorn', 0, 10), +(@OGUID+92, 2002, 0, 'Briarthorn', 0, 10), +(@OGUID+93, 2002, 0, 'Briarthorn', 0, 10), +(@OGUID+94, 2002, 0, 'Briarthorn', 0, 10), +(@OGUID+95, 2002, 0, 'Briarthorn', 0, 10), +(@OGUID+96, 2002, 0, 'Briarthorn', 0, 10); + +-- Briarthorn +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+97, 3729, 1, -1228.26, -3077.2, 93.5712, 4.43314, 0, 0, -0.798635, 0.601815, 300, 300, 1, 100, 0, 10), +(@OGUID+98, 3729, 1, -928.639, -1740.88, 91.7356, 0.558504, 0, 0, 0.275637, 0.961262, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+97, 1113, 0, 'Briarthorn', 0, 10), +(@OGUID+98, 1151, 0, 'Briarthorn', 0, 10); + +-- Bruiseweed +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+99, 1622, 0, -11095.6, -944.019, 64.8161, 5.41052, 0, 0, -0.422618, 0.906308, 300, 300, 1, 100, 0, 10), +(@OGUID+100, 1622, 0, -10929.8, 447.35, 45.6105, 3.75246, 0, 0, -0.953716, 0.300708, 300, 300, 1, 100, 0, 10), +(@OGUID+101, 1622, 0, -2982.33, -3118.46, 79.896, 0.226892, 0, 0, 0.113203, 0.993572, 300, 300, 1, 100, 0, 10), +(@OGUID+102, 1622, 0, -3799.06, -3157.38, 30.3131, 1.48353, 0, 0, 0.67559, 0.737278, 300, 300, 1, 100, 0, 10), +(@OGUID+103, 1622, 0, -2963.95, -1722.28, 17.779, 4.46804, 0, 0, -0.788011, 0.615662, 300, 300, 1, 100, 0, 10), +(@OGUID+104, 1622, 0, -2645.56, -2372.5, 88.7125, 3.7001, 0, 0, -0.961261, 0.27564, 300, 300, 1, 100, 0, 10), +(@OGUID+105, 1622, 0, -5550.77, -4020.35, 375.629, 5.77704, 0, 0, -0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+106, 1622, 0, -5320.32, -4012.2, 335.879, 0.488691, 0, 0, 0.241921, 0.970296, 300, 300, 1, 100, 0, 10), +(@OGUID+107, 1622, 0, -5072.53, -3858.51, 331.517, 5.68977, 0, 0, -0.292372, 0.956305, 300, 300, 1, 100, 0, 10), +(@OGUID+108, 1622, 0, -11052.2, 1468.05, 43.2017, 0.523598, 0, 0, 0.258819, 0.965926, 300, 300, 1, 100, 0, 10), +(@OGUID+109, 1622, 0, -9837.36, 1289.3, 40.4505, 3.61284, 0, 0, -0.972369, 0.233448, 300, 300, 1, 100, 0, 10), +(@OGUID+110, 1622, 0, -11307.3, 1425.89, 94.0528, 4.71239, 0, 0, -0.707107, 0.707107, 300, 300, 1, 100, 0, 10), +(@OGUID+111, 1622, 0, -10349.4, 1565.17, 41.5073, 1.58825, 0, 0, 0.71325, 0.70091, 300, 300, 1, 100, 0, 10), +(@OGUID+112, 1622, 0, -11352.9, 1644.53, 73.2029, 0.820303, 0, 0, 0.398748, 0.91706, 300, 300, 1, 100, 0, 10), +(@OGUID+113, 1622, 0, -10508.1, 1579, 47.3024, 0.750491, 0, 0, 0.366501, 0.930418, 300, 300, 1, 100, 0, 10), +(@OGUID+114, 1622, 0, -10708.4, 1499.95, 48.1065, 4.72984, 0, 0, -0.700909, 0.713251, 300, 300, 1, 100, 0, 10), +(@OGUID+115, 1622, 0, -10632.6, 1791.33, 32.9158, 1.46608, 0, 0, 0.66913, 0.743145, 300, 300, 1, 100, 0, 10), +(@OGUID+116, 1622, 0, -9805.56, 1591.19, 39.9743, 3.59538, 0, 0, -0.97437, 0.224951, 300, 300, 1, 100, 0, 10), +(@OGUID+117, 1622, 0, -9718.87, -2906.79, 55.523, 0.942477, 0, 0, 0.45399, 0.891007, 300, 300, 1, 100, 0, 10), +(@OGUID+118, 1622, 0, -9678.27, -2176.02, 59.389, 3.4383, 0, 0, -0.989016, 0.147811, 300, 300, 1, 100, 0, 10), +(@OGUID+119, 1622, 0, -9624.92, -2803.02, 61.9546, 5.93412, 0, 0, -0.173648, 0.984808, 300, 300, 1, 100, 0, 10), +(@OGUID+120, 1622, 0, -253.461, 1531.9, 79.4661, 0.802851, 0, 0, 0.390731, 0.920505, 300, 300, 1, 100, 0, 10), +(@OGUID+121, 1622, 0, -61.4924, 1003.23, 66.5817, 3.68265, 0, 0, -0.96363, 0.267241, 300, 300, 1, 100, 0, 10), +(@OGUID+122, 1622, 0, -332.959, 1436.16, 30.1793, 3.01941, 0, 0, 0.998135, 0.0610518, 300, 300, 1, 100, 0, 10), +(@OGUID+123, 1622, 0, -269.905, 1487.58, 43.6381, 1.72787, 0, 0, 0.760406, 0.649449, 300, 300, 1, 100, 0, 10), +(@OGUID+124, 1622, 0, -241.761, 1474.43, 54.0086, 3.03684, 0, 0, 0.998629, 0.0523532, 300, 300, 1, 100, 0, 10), +(@OGUID+125, 1622, 0, -216.591, 993.739, 73.5286, 3.64774, 0, 0, -0.968147, 0.250381, 300, 300, 1, 100, 0, 10), +(@OGUID+126, 1622, 0, -117.804, 811.988, 63.7219, 1.02974, 0, 0, 0.492423, 0.870356, 300, 300, 1, 100, 0, 10), +(@OGUID+127, 1622, 0, 152.541, 1508.59, 114.532, 3.10665, 0, 0, 0.999847, 0.0174693, 300, 300, 1, 100, 0, 10), +(@OGUID+128, 1622, 1, 5831.54, 167.583, 33.0013, 4.85202, 0, 0, -0.656058, 0.75471, 300, 300, 1, 100, 0, 10), +(@OGUID+129, 1622, 1, 5588.6, 187.596, 29.6374, 3.52557, 0, 0, -0.981627, 0.190812, 300, 300, 1, 100, 0, 10), +(@OGUID+130, 1622, 1, 6698.34, -5.04503, 43.0984, 2.72271, 0, 0, 0.978148, 0.207912, 300, 300, 1, 100, 0, 10), +(@OGUID+131, 1622, 0, -54.3849, -1285.15, 91.4714, 2.53072, 0, 0, 0.953716, 0.300708, 300, 300, 1, 100, 0, 10), +(@OGUID+132, 1622, 0, -683.799, -484.578, 36.2408, 2.02458, 0, 0, 0.848047, 0.529921, 300, 300, 1, 100, 0, 10), +(@OGUID+133, 1622, 0, -1084.49, -1062.97, 53.508, 1.3439, 0, 0, 0.622514, 0.782609, 300, 300, 1, 100, 0, 10), +(@OGUID+134, 1622, 0, -741.32, 542.616, 103.995, 1.25664, 0, 0, 0.587785, 0.809017, 300, 300, 1, 100, 0, 10), +(@OGUID+135, 1622, 0, -625.142, 550.649, 93.5811, 3.45576, 0, 0, -0.987688, 0.156436, 300, 300, 1, 100, 0, 10), +(@OGUID+136, 1622, 0, -225.172, -626.859, 66.4655, 1.93731, 0, 0, 0.824125, 0.566408, 300, 300, 1, 100, 0, 10), +(@OGUID+137, 1622, 0, -704.38, 475.61, 86.0084, 4.20625, 0, 0, -0.861629, 0.507539, 300, 300, 1, 100, 0, 10), +(@OGUID+138, 1622, 0, -828.508, -804.159, 30.5714, 1.95477, 0, 0, 0.829038, 0.559193, 300, 300, 1, 100, 0, 10), +(@OGUID+139, 1622, 1, 1805.31, -2657.99, 117.38, 4.46804, 0, 0, -0.788011, 0.615662, 300, 300, 1, 100, 0, 10), +(@OGUID+140, 1622, 1, 2323.67, -1886.15, 71.568, 6.0912, 0, 0, -0.0958452, 0.995396, 300, 300, 1, 100, 0, 10), +(@OGUID+141, 1622, 1, 1659.3, -3184.9, 125.961, 5.79449, 0, 0, -0.241921, 0.970296, 300, 300, 1, 100, 0, 10), +(@OGUID+142, 1622, 1, 2212.52, -1440.8, 96.6546, 5.02655, 0, 0, -0.587785, 0.809017, 300, 300, 1, 100, 0, 10), +(@OGUID+143, 1622, 1, 3183.08, -102.823, 102.137, 4.10153, 0, 0, -0.887011, 0.461749, 300, 300, 1, 100, 0, 10), +(@OGUID+144, 1622, 1, 2799.64, -2971, 151.514, 5.95157, 0, 0, -0.165047, 0.986286, 300, 300, 1, 100, 0, 10), +(@OGUID+145, 1622, 1, 1850.7, -1795.73, 64.7547, 1.32645, 0, 0, 0.615661, 0.788011, 300, 300, 1, 100, 0, 10), +(@OGUID+146, 1622, 1, 1935.86, -1713.96, 73.5794, 0.191985, 0, 0, 0.0958452, 0.995396, 300, 300, 1, 100, 0, 10), +(@OGUID+147, 1622, 1, 2967.46, -2785.99, 214.948, 3.26377, 0, 0, -0.998135, 0.0610518, 300, 300, 1, 100, 0, 10), +(@OGUID+148, 1622, 1, 1903.51, -1367.19, 100.232, 5.67232, 0, 0, -0.300705, 0.953717, 300, 300, 1, 100, 0, 10), +(@OGUID+149, 1622, 1, -5557.21, -3558.39, -52.4231, 4.55531, 0, 0, -0.760406, 0.649449, 300, 300, 1, 100, 0, 10), +(@OGUID+150, 1622, 1, -5476.83, -3987.4, -55.9864, 5.32326, 0, 0, -0.461748, 0.887011, 300, 300, 1, 100, 0, 10), +(@OGUID+151, 1622, 1, -89.1418, 757.469, 126.798, 5.89921, 0, 0, -0.190808, 0.981627, 300, 300, 1, 100, 0, 10), +(@OGUID+152, 1622, 1, -459.495, 1750.9, 129.428, 3.68265, 0, 0, -0.96363, 0.267241, 300, 300, 1, 100, 0, 10), +(@OGUID+153, 1622, 1, 759.559, 1359.03, 0.63534, 1.27409, 0, 0, 0.594822, 0.803857, 300, 300, 1, 100, 0, 10), +(@OGUID+154, 1622, 1, 1498.62, 753.815, 147.145, 1.48353, 0, 0, 0.67559, 0.737278, 300, 300, 1, 100, 0, 10), +(@OGUID+155, 1622, 1, -64.7946, -743.726, 20.1473, 1.85005, 0, 0, 0.798635, 0.601815, 300, 300, 1, 100, 0, 10), +(@OGUID+156, 1622, 1, 1813.42, 629.741, 218.031, 0.191985, 0, 0, 0.0958452, 0.995396, 300, 300, 1, 100, 0, 10), +(@OGUID+157, 1622, 1, 1374.4, -281.961, 10.812, 5.46288, 0, 0, -0.398748, 0.91706, 300, 300, 1, 100, 0, 10), +(@OGUID+158, 1622, 1, -11.2203, -709.006, -16.4602, 2.3911, 0, 0, 0.930417, 0.366502, 300, 300, 1, 100, 0, 10), +(@OGUID+159, 1622, 1, 1229, -584.913, 23.2292, 2.00713, 0, 0, 0.843391, 0.5373, 300, 300, 1, 100, 0, 10), +(@OGUID+160, 1622, 1, 973.449, 310.96, 30.7131, 3.05433, 0, 0, 0.999048, 0.0436193, 300, 300, 1, 100, 0, 10), +(@OGUID+161, 1622, 1, 1185.07, -18.9997, 7.21808, 0.523598, 0, 0, 0.258819, 0.965926, 300, 300, 1, 100, 0, 10), +(@OGUID+162, 1622, 1, -651.835, -2012.49, 61.4656, 1.93731, 0, 0, 0.824125, 0.566408, 300, 300, 1, 100, 0, 10), +(@OGUID+163, 1622, 43, -234.413, -141.746, -62.541, 3.15906, 0, 0, -0.999962, 0.00873464, 300, 300, 1, 100, 0, 10), +(@OGUID+164, 1622, 1, 4242.56, 885.907, -8.37192, 0.087266, 0, 0, 0.0436192, 0.999048, 300, 300, 1, 100, 0, 10), +(@OGUID+165, 1622, 1, 4200.08, 717.59, -23.9814, 5.42797, 0, 0, -0.414693, 0.909961, 300, 300, 1, 100, 0, 10), +(@OGUID+166, 1622, 48, -523.867, 348.583, -51.0342, 2.05949, 0, 0, 0.857167, 0.515038, 300, 300, 1, 100, 0, 10), +(@OGUID+167, 1622, 48, -625.515, 249.482, -48.4293, 5.21854, 0, 0, -0.507538, 0.861629, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+99, 1115, 0, 'Bruiseweed', 0, 10), +(@OGUID+100, 1115, 0, 'Bruiseweed', 0, 10), +(@OGUID+101, 1150, 0, 'Bruiseweed', 0, 10), +(@OGUID+102, 1150, 0, 'Bruiseweed', 0, 10), +(@OGUID+103, 1150, 0, 'Bruiseweed', 0, 10), +(@OGUID+104, 1150, 0, 'Bruiseweed', 0, 10), +(@OGUID+105, 1164, 0, 'Bruiseweed', 0, 10), +(@OGUID+106, 1164, 0, 'Bruiseweed', 0, 10), +(@OGUID+107, 1164, 0, 'Bruiseweed', 0, 10), +(@OGUID+108, 1110, 0, 'Bruiseweed', 0, 10), +(@OGUID+109, 1110, 0, 'Bruiseweed', 0, 10), +(@OGUID+110, 1110, 0, 'Bruiseweed', 0, 10), +(@OGUID+111, 1110, 0, 'Bruiseweed', 0, 10), +(@OGUID+112, 1110, 0, 'Bruiseweed', 0, 10), +(@OGUID+113, 1110, 0, 'Bruiseweed', 0, 10), +(@OGUID+114, 1110, 0, 'Bruiseweed', 0, 10), +(@OGUID+115, 1110, 0, 'Bruiseweed', 0, 10), +(@OGUID+116, 1110, 0, 'Bruiseweed', 0, 10), +(@OGUID+117, 1126, 0, 'Bruiseweed', 0, 10), +(@OGUID+118, 1126, 0, 'Bruiseweed', 0, 10), +(@OGUID+119, 1126, 0, 'Bruiseweed', 0, 10), +(@OGUID+120, 1047, 0, 'Bruiseweed', 0, 10), +(@OGUID+121, 1047, 0, 'Bruiseweed', 0, 10), +(@OGUID+122, 1047, 0, 'Bruiseweed', 0, 10), +(@OGUID+123, 1047, 0, 'Bruiseweed', 0, 10), +(@OGUID+124, 1047, 0, 'Bruiseweed', 0, 10), +(@OGUID+125, 1047, 0, 'Bruiseweed', 0, 10), +(@OGUID+126, 1047, 0, 'Bruiseweed', 0, 10), +(@OGUID+127, 1047, 0, 'Bruiseweed', 0, 10), +(@OGUID+128, 1101, 0, 'Bruiseweed', 0, 10), +(@OGUID+129, 1101, 0, 'Bruiseweed', 0, 10), +(@OGUID+130, 1101, 0, 'Bruiseweed', 0, 10), +(@OGUID+131, 1048, 0, 'Bruiseweed', 0, 10), +(@OGUID+132, 1048, 0, 'Bruiseweed', 0, 10), +(@OGUID+133, 1048, 0, 'Bruiseweed', 0, 10), +(@OGUID+134, 1048, 0, 'Bruiseweed', 0, 10), +(@OGUID+135, 1048, 0, 'Bruiseweed', 0, 10), +(@OGUID+136, 1048, 0, 'Bruiseweed', 0, 10), +(@OGUID+137, 1048, 0, 'Bruiseweed', 0, 10), +(@OGUID+138, 1048, 0, 'Bruiseweed', 0, 10), +(@OGUID+139, 1072, 0, 'Bruiseweed', 0, 10), +(@OGUID+140, 1072, 0, 'Bruiseweed', 0, 10), +(@OGUID+141, 1072, 0, 'Bruiseweed', 0, 10), +(@OGUID+142, 1072, 0, 'Bruiseweed', 0, 10), +(@OGUID+143, 1072, 0, 'Bruiseweed', 0, 10), +(@OGUID+144, 1072, 0, 'Bruiseweed', 0, 10), +(@OGUID+145, 1072, 0, 'Bruiseweed', 0, 10), +(@OGUID+146, 1072, 0, 'Bruiseweed', 0, 10), +(@OGUID+147, 1072, 0, 'Bruiseweed', 0, 10), +(@OGUID+148, 1072, 0, 'Bruiseweed', 0, 10), +(@OGUID+149, 1133, 0, 'Bruiseweed', 0, 10), +(@OGUID+150, 1133, 0, 'Bruiseweed', 0, 10), +(@OGUID+151, 1137, 0, 'Bruiseweed', 0, 10), +(@OGUID+152, 1137, 0, 'Bruiseweed', 0, 10), +(@OGUID+153, 1086, 0, 'Bruiseweed', 0, 10), +(@OGUID+154, 1086, 0, 'Bruiseweed', 0, 10), +(@OGUID+155, 1086, 0, 'Bruiseweed', 0, 10), +(@OGUID+156, 1086, 0, 'Bruiseweed', 0, 10), +(@OGUID+157, 1086, 0, 'Bruiseweed', 0, 10), +(@OGUID+158, 1086, 0, 'Bruiseweed', 0, 10), +(@OGUID+159, 1086, 0, 'Bruiseweed', 0, 10), +(@OGUID+160, 1086, 0, 'Bruiseweed', 0, 10), +(@OGUID+161, 1086, 0, 'Bruiseweed', 0, 10), +(@OGUID+162, 1036, 0, 'Bruiseweed', 0, 10), +(@OGUID+163, 1053, 0, 'Bruiseweed', 0, 10), +(@OGUID+164, 1072, 0, 'Bruiseweed', 0, 10), +(@OGUID+165, 1072, 0, 'Bruiseweed', 0, 10), +(@OGUID+166, 1014, 0, 'Bruiseweed', 0, 10), +(@OGUID+167, 1014, 0, 'Bruiseweed', 0, 10); + +-- Bruiseweed +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+168, 3730, 1, -3827.92, -1475.28, 133.201, 4.64258, 0, 0, -0.731354, 0.681998, 300, 300, 1, 100, 0, 10), +(@OGUID+169, 3730, 1, -2284.34, -2718.75, 108.57, 0.506145, 0, 0, 0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+170, 3730, 1, 412.66, -2285.96, 209.252, 5.95157, 0, 0, -0.165047, 0.986286, 300, 300, 1, 100, 0, 10), +(@OGUID+171, 3730, 1, -1618.49, -3267.11, 188.204, 4.66003, 0, 0, -0.725374, 0.688355, 300, 300, 1, 100, 0, 10), +(@OGUID+172, 3730, 1, -2356.1, -2508.01, 109.095, 5.41052, 0, 0, -0.422618, 0.906308, 300, 300, 1, 100, 0, 10), +(@OGUID+173, 3730, 1, -1771.85, -1593.89, 119.66, 2.79252, 0, 0, 0.984807, 0.173652, 300, 300, 1, 100, 0, 10), +(@OGUID+174, 3730, 1, 300.831, -2144.56, 210.837, 2.44346, 0, 0, 0.939692, 0.34202, 300, 300, 1, 100, 0, 10), +(@OGUID+175, 3730, 1, -605.449, -2073.85, 170.753, 3.01941, 0, 0, 0.998135, 0.0610518, 300, 300, 1, 100, 0, 10), +(@OGUID+176, 3730, 1, -3066.26, -2387.56, 100.264, 0.837757, 0, 0, 0.406736, 0.913546, 300, 300, 1, 100, 0, 10), +(@OGUID+177, 3730, 1, -1501.9, -1538.17, 97.3193, 3.03684, 0, 0, 0.998629, 0.0523532, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+168, 1036, 0, 'Bruiseweed', 0, 10), +(@OGUID+169, 1036, 0, 'Bruiseweed', 0, 10), +(@OGUID+170, 1036, 0, 'Bruiseweed', 0, 10), +(@OGUID+171, 1036, 0, 'Bruiseweed', 0, 10), +(@OGUID+172, 1036, 0, 'Bruiseweed', 0, 10), +(@OGUID+173, 1036, 0, 'Bruiseweed', 0, 10), +(@OGUID+174, 1036, 0, 'Bruiseweed', 0, 10), +(@OGUID+175, 1036, 0, 'Bruiseweed', 0, 10), +(@OGUID+176, 1036, 0, 'Bruiseweed', 0, 10), +(@OGUID+177, 1036, 0, 'Bruiseweed', 0, 10); + +-- Dreamfoil +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+178, 176584, 1, 3381.95, -4565.39, 99.3129, 2.87979, 0, 0, 0.991445, 0.130528, 300, 300, 1, 100, 0, 10), +(@OGUID+179, 176584, 1, 3870.36, -5051.52, 131.018, 1.74533, 0, 0, 0.766044, 0.642789, 300, 300, 1, 100, 0, 10), +(@OGUID+180, 176584, 1, 4567.53, -7066.62, 99.0453, 6.17847, 0, 0, -0.0523357, 0.99863, 300, 300, 1, 100, 0, 10), +(@OGUID+181, 176584, 1, 2622.18, -4555.89, 130.298, 4.83456, 0, 0, -0.66262, 0.748956, 300, 300, 1, 100, 0, 10), +(@OGUID+182, 176584, 1, 2703.63, -4276.15, 110.155, 2.26893, 0, 0, 0.906307, 0.422619, 300, 300, 1, 100, 0, 10), +(@OGUID+183, 176584, 1, 3960.18, -5153.97, 119.902, 3.71755, 0, 0, -0.958819, 0.284016, 300, 300, 1, 100, 0, 10), +(@OGUID+184, 176584, 1, 3224.98, -4186.09, 103.697, 1.0821, 0, 0, 0.515038, 0.857168, 300, 300, 1, 100, 0, 10), +(@OGUID+185, 176584, 1, 4355.29, -7005.57, 122.437, 3.57793, 0, 0, -0.976295, 0.216442, 300, 300, 1, 100, 0, 10), +(@OGUID+186, 176584, 1, 4445.4, -5978.16, 98.3875, 4.31097, 0, 0, -0.833885, 0.551938, 300, 300, 1, 100, 0, 10), +(@OGUID+187, 176584, 1, 2671.19, -5787.57, 103.01, 0.506145, 0, 0, 0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+188, 176584, 0, 2155.74, -2417.66, 60.7121, 5.37562, 0, 0, -0.438371, 0.898794, 300, 300, 1, 100, 0, 10), +(@OGUID+189, 176584, 0, 2835.95, -1361.33, 146.251, 2.68781, 0, 0, 0.97437, 0.224951, 300, 300, 1, 100, 0, 10), +(@OGUID+190, 176584, 0, 2778.62, -1485.28, 145.787, 2.60054, 0, 0, 0.96363, 0.267241, 300, 300, 1, 100, 0, 10), +(@OGUID+191, 176584, 0, 2377.23, -4186.74, 79.7483, 2.46091, 0, 0, 0.942641, 0.333808, 300, 300, 1, 100, 0, 10), +(@OGUID+192, 176584, 0, 3196.79, -4217.91, 88.5221, 0.680677, 0, 0, 0.333806, 0.942642, 300, 300, 1, 100, 0, 10), +(@OGUID+193, 176584, 0, 2114.44, -3315.56, 120.031, 2.30383, 0, 0, 0.913545, 0.406738, 300, 300, 1, 100, 0, 10), +(@OGUID+194, 176584, 0, 1964.86, -3433.17, 102.166, 2.25147, 0, 0, 0.902585, 0.430512, 300, 300, 1, 100, 0, 10), +(@OGUID+195, 176584, 0, 2697.22, -4771.53, 78.5649, 4.81711, 0, 0, -0.66913, 0.743145, 300, 300, 1, 100, 0, 10), +(@OGUID+196, 176584, 0, 1933.72, -4775.07, 97.1779, 6.14356, 0, 0, -0.0697556, 0.997564, 300, 300, 1, 100, 0, 10), +(@OGUID+197, 176584, 1, -7888.29, -828.38, -273.185, 1.72787, 0, 0, 0.760406, 0.649449, 300, 300, 1, 100, 0, 10), +(@OGUID+198, 176584, 1, -7406.94, -1745.44, -278.346, 2.84488, 0, 0, 0.989016, 0.147811, 300, 300, 1, 100, 0, 10), +(@OGUID+199, 176584, 1, -7686.91, -1575.24, -271.265, 2.67035, 0, 0, 0.972369, 0.233448, 300, 300, 1, 100, 0, 10), +(@OGUID+200, 176584, 1, -7753.54, -887.398, -271.793, 4.15388, 0, 0, -0.874619, 0.48481, 300, 300, 1, 100, 0, 10), +(@OGUID+201, 176584, 1, -7119.91, -985.773, -271.046, 6.07375, 0, 0, -0.104528, 0.994522, 300, 300, 1, 100, 0, 10), +(@OGUID+202, 176584, 1, -7449.43, -2449.93, -199.286, 1.78023, 0, 0, 0.777145, 0.629321, 300, 300, 1, 100, 0, 10), +(@OGUID+203, 176584, 1, -7382.57, -1981.48, -270.47, 0.855211, 0, 0, 0.414693, 0.909961, 300, 300, 1, 100, 0, 10), +(@OGUID+204, 176584, 1, -7072.65, -450.123, -271.879, 3.49067, 0, 0, -0.984807, 0.173652, 300, 300, 1, 100, 0, 10), +(@OGUID+205, 176584, 1, -7614.26, -1602.36, -272.082, 5.14872, 0, 0, -0.537299, 0.843392, 300, 300, 1, 100, 0, 10), +(@OGUID+206, 176584, 1, -7446.77, 1342.78, 5.37541, 2.87979, 0, 0, 0.991445, 0.130528, 300, 300, 1, 100, 0, 10), +(@OGUID+207, 176584, 1, -6687.47, 1786.45, 4.0885, 0.750491, 0, 0, 0.366501, 0.930418, 300, 300, 1, 100, 0, 10), +(@OGUID+208, 176584, 1, -7712.37, 249.166, 3.08701, 3.927, 0, 0, -0.923879, 0.382686, 300, 300, 1, 100, 0, 10), +(@OGUID+209, 176584, 429, 105.158, -329.677, -55.291, 3.97935, 0, 0, -0.913545, 0.406738, 300, 300, 1, 100, 0, 10), +(@OGUID+210, 176584, 429, -121.613, -309.891, -57.1476, 5.044, 0, 0, -0.580703, 0.814116, 300, 300, 1, 100, 0, 10), +(@OGUID+211, 176584, 429, 96.7223, -238.863, -56.3808, 3.73501, 0, 0, -0.956305, 0.292372, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+178, 1242, 0, 'Dreamfoil', 0, 10), +(@OGUID+179, 1242, 0, 'Dreamfoil', 0, 10), +(@OGUID+180, 1242, 0, 'Dreamfoil', 0, 10), +(@OGUID+181, 1242, 0, 'Dreamfoil', 0, 10), +(@OGUID+182, 1242, 0, 'Dreamfoil', 0, 10), +(@OGUID+183, 1242, 0, 'Dreamfoil', 0, 10), +(@OGUID+184, 1242, 0, 'Dreamfoil', 0, 10), +(@OGUID+185, 1242, 0, 'Dreamfoil', 0, 10), +(@OGUID+186, 1242, 0, 'Dreamfoil', 0, 10), +(@OGUID+187, 1242, 0, 'Dreamfoil', 0, 10), +(@OGUID+188, 1260, 0, 'Dreamfoil', 0, 10), +(@OGUID+189, 1260, 0, 'Dreamfoil', 0, 10), +(@OGUID+190, 1260, 0, 'Dreamfoil', 0, 10), +(@OGUID+191, 1267, 0, 'Dreamfoil', 0, 10), +(@OGUID+192, 1267, 0, 'Dreamfoil', 0, 10), +(@OGUID+193, 1267, 0, 'Dreamfoil', 0, 10), +(@OGUID+194, 1267, 0, 'Dreamfoil', 0, 10), +(@OGUID+195, 1267, 0, 'Dreamfoil', 0, 10), +(@OGUID+196, 1267, 0, 'Dreamfoil', 0, 10), +(@OGUID+197, 1212, 0, 'Dreamfoil', 0, 10), +(@OGUID+198, 1212, 0, 'Dreamfoil', 0, 10), +(@OGUID+199, 1212, 0, 'Dreamfoil', 0, 10), +(@OGUID+200, 1212, 0, 'Dreamfoil', 0, 10), +(@OGUID+201, 1212, 0, 'Dreamfoil', 0, 10), +(@OGUID+202, 1212, 0, 'Dreamfoil', 0, 10), +(@OGUID+203, 1212, 0, 'Dreamfoil', 0, 10), +(@OGUID+204, 1212, 0, 'Dreamfoil', 0, 10), +(@OGUID+205, 1212, 0, 'Dreamfoil', 0, 10), +(@OGUID+206, 1221, 0, 'Dreamfoil', 0, 10), +(@OGUID+207, 1221, 0, 'Dreamfoil', 0, 10), +(@OGUID+208, 1221, 0, 'Dreamfoil', 0, 10), +(@OGUID+209, 4291, 0, 'Dreamfoil', 0, 10), +(@OGUID+210, 4291, 0, 'Dreamfoil', 0, 10), +(@OGUID+211, 4291, 0, 'Dreamfoil', 0, 10); + +-- Dreamfoil +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+212, 176639, 1, 6258.18, -1411.12, 370.846, 5.34071, 0, 0, -0.45399, 0.891007, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+212, 1228, 0, 'Dreamfoil', 0, 10); + +-- Dreamfoil +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+213, 180168, 309, -12396.8, -1835.81, 132.798, 5.88176, 0, 0, -0.199368, 0.979925, 300, 300, 1, 100, 0, 10), +(@OGUID+214, 180168, 309, -11748.7, -1906.19, 55.9028, 4.53786, 0, 0, -0.766044, 0.642789, 300, 300, 1, 100, 0, 10), +(@OGUID+215, 180168, 309, -11576.4, -1314.08, 80.0355, 0.610863, 0, 0, 0.300705, 0.953717, 300, 300, 1, 100, 0, 10), +(@OGUID+216, 180168, 309, -11857, -1854.94, 63.8638, 0.506145, 0, 0, 0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+217, 180168, 309, -12347.7, -1926.59, 133.29, 5.53269, 0, 0, -0.366501, 0.930418, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+213, 1035, 0, 'Dreamfoil', 0, 10), +(@OGUID+214, 1035, 0, 'Dreamfoil', 0, 10), +(@OGUID+215, 1035, 0, 'Dreamfoil', 0, 10), +(@OGUID+216, 1035, 0, 'Dreamfoil', 0, 10), +(@OGUID+217, 1035, 0, 'Dreamfoil', 0, 10); + +-- Earthroot +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+218, 1619, 0, -5706.91, -181.972, 369.122, 6.02139, 0, 0, -0.130526, 0.991445, 300, 300, 1, 100, 0, 10), +(@OGUID+219, 1619, 0, -5810.19, -1490.53, 365.411, 5.95157, 0, 0, -0.165047, 0.986286, 300, 300, 1, 100, 0, 10), +(@OGUID+220, 1619, 0, -5860.01, -1487.44, 364.024, 0.820303, 0, 0, 0.398748, 0.91706, 300, 300, 1, 100, 0, 10), +(@OGUID+221, 1619, 0, -9194.63, -1313.42, 94.5443, 4.38078, 0, 0, -0.814116, 0.580703, 300, 300, 1, 100, 0, 10), +(@OGUID+222, 1619, 0, -9160.7, -1406.01, 114.388, 4.46804, 0, 0, -0.788011, 0.615662, 300, 300, 1, 100, 0, 10), +(@OGUID+223, 1619, 0, -9834.25, -397.657, 38.5073, 4.95674, 0, 0, -0.615661, 0.788011, 300, 300, 1, 100, 0, 10), +(@OGUID+224, 1619, 0, -8728.46, -973.577, 99.7805, 3.28124, 0, 0, -0.997563, 0.0697661, 300, 300, 1, 100, 0, 10), +(@OGUID+225, 1619, 0, -9105.53, -1322.45, 109.184, 0.488691, 0, 0, 0.241921, 0.970296, 300, 300, 1, 100, 0, 10), +(@OGUID+226, 1619, 1, -1004.58, -4805.93, 12.8968, 4.93928, 0, 0, -0.622514, 0.782609, 300, 300, 1, 100, 0, 10), +(@OGUID+227, 1619, 0, -10133.7, 1875.3, 32.2117, 0.977383, 0, 0, 0.469471, 0.882948, 300, 300, 1, 100, 0, 10), +(@OGUID+228, 1619, 0, -9685, 1474.25, 44.0197, 4.06662, 0, 0, -0.894934, 0.446199, 300, 300, 1, 100, 0, 10), +(@OGUID+229, 1619, 0, -11451, 1469.53, 61.3521, 5.60251, 0, 0, -0.333807, 0.942641, 300, 300, 1, 100, 0, 10), +(@OGUID+230, 1619, 0, -11053.9, 1954.27, 30.9819, 3.63029, 0, 0, -0.970295, 0.241925, 300, 300, 1, 100, 0, 10), +(@OGUID+231, 1619, 0, 2740.84, 704.16, 150.026, 5.75959, 0, 0, -0.258819, 0.965926, 300, 300, 1, 100, 0, 10), +(@OGUID+232, 1619, 0, 2161.59, -892.117, 88.1149, 3.50812, 0, 0, -0.983254, 0.182238, 300, 300, 1, 100, 0, 10), +(@OGUID+233, 1619, 0, 2886.85, -528.093, 106.297, 5.5676, 0, 0, -0.350207, 0.936672, 300, 300, 1, 100, 0, 10), +(@OGUID+234, 1619, 0, 3009.98, 888.935, 106.799, 2.32129, 0, 0, 0.91706, 0.39875, 300, 300, 1, 100, 0, 10), +(@OGUID+235, 1619, 0, 2956.99, -344.778, 29.7578, 0.837757, 0, 0, 0.406736, 0.913546, 300, 300, 1, 100, 0, 10), +(@OGUID+236, 1619, 0, 2532.66, -1086.91, 110.813, 2.1293, 0, 0, 0.874619, 0.48481, 300, 300, 1, 100, 0, 10), +(@OGUID+237, 1619, 0, 2832.18, 737.49, 137.678, 1.76278, 0, 0, 0.771625, 0.636078, 300, 300, 1, 100, 0, 10), +(@OGUID+238, 1619, 0, 2577.63, 639.562, 31.2668, 1.64061, 0, 0, 0.731353, 0.681999, 300, 300, 1, 100, 0, 10), +(@OGUID+239, 1619, 0, 3028.4, 778.558, 90.9472, 4.32842, 0, 0, -0.829037, 0.559194, 300, 300, 1, 100, 0, 10), +(@OGUID+240, 1619, 0, 2482.47, 1623.29, 33.3793, 5.77704, 0, 0, -0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+241, 1619, 0, 2527.52, 721.967, 116.89, 5.07891, 0, 0, -0.566406, 0.824126, 300, 300, 1, 100, 0, 10), +(@OGUID+242, 1619, 0, 3101.21, -588.397, 124.331, 5.88176, 0, 0, -0.199368, 0.979925, 300, 300, 1, 100, 0, 10), +(@OGUID+243, 1619, 0, 1637.51, -293.452, 55.3764, 2.49582, 0, 0, 0.948323, 0.317306, 300, 300, 1, 100, 0, 10), +(@OGUID+244, 1619, 0, 2386.79, 822.591, 46.8164, 4.97419, 0, 0, -0.608761, 0.793354, 300, 300, 1, 100, 0, 10), +(@OGUID+245, 1619, 0, 1898.01, 1179.46, 60.1999, 5.60251, 0, 0, -0.333807, 0.942641, 300, 300, 1, 100, 0, 10), +(@OGUID+246, 1619, 0, -606.561, 899.656, 108.856, 3.64774, 0, 0, -0.968147, 0.250381, 300, 300, 1, 100, 0, 10), +(@OGUID+247, 1619, 0, -574.473, 995.328, 100.524, 6.14356, 0, 0, -0.0697556, 0.997564, 300, 300, 1, 100, 0, 10), +(@OGUID+248, 1619, 0, 451.209, 1105.42, 99.5097, 4.08407, 0, 0, -0.891006, 0.453991, 300, 300, 1, 100, 0, 10), +(@OGUID+249, 1619, 0, -744.931, 1409.78, 38.3789, 0.087266, 0, 0, 0.0436192, 0.999048, 300, 300, 1, 100, 0, 10), +(@OGUID+250, 1619, 1, 10906.4, 1902.09, 1338.26, 5.28835, 0, 0, -0.477159, 0.878817, 300, 300, 1, 100, 0, 10), +(@OGUID+251, 1619, 1, 9473.44, 1698.48, 1305.13, 1.8675, 0, 0, 0.803857, 0.594823, 300, 300, 1, 100, 0, 10), +(@OGUID+252, 1619, 1, 10566.2, 2027.43, 1338.76, 4.2237, 0, 0, -0.857167, 0.515038, 300, 300, 1, 100, 0, 10), +(@OGUID+253, 1619, 1, 10766.2, 1554.24, 1316.44, 5.44543, 0, 0, -0.406736, 0.913546, 300, 300, 1, 100, 0, 10), +(@OGUID+254, 1619, 1, 9832.11, 1345.91, 1326.74, 4.18879, 0, 0, -0.866025, 0.500001, 300, 300, 1, 100, 0, 10), +(@OGUID+255, 1619, 1, 10627.3, 1713.47, 1321.15, 4.24115, 0, 0, -0.85264, 0.522499, 300, 300, 1, 100, 0, 10), +(@OGUID+256, 1619, 1, 10568, 1458.81, 1333.83, 4.18879, 0, 0, -0.866025, 0.500001, 300, 300, 1, 100, 0, 10), +(@OGUID+257, 1619, 1, 9433.32, 1253.62, 1263.44, 4.20625, 0, 0, -0.861629, 0.507539, 300, 300, 1, 100, 0, 10), +(@OGUID+258, 1619, 1, 9396.75, 1073.82, 1274.12, 2.16421, 0, 0, 0.882947, 0.469473, 300, 300, 1, 100, 0, 10), +(@OGUID+259, 1619, 1, 4744.64, 22.2629, 71.805, 3.7001, 0, 0, -0.961261, 0.27564, 300, 300, 1, 100, 0, 10), +(@OGUID+260, 1619, 1, 5820.65, -32.6453, 47.8486, 2.04204, 0, 0, 0.85264, 0.522499, 300, 300, 1, 100, 0, 10), +(@OGUID+261, 1619, 1, 5787.29, 180.212, 41.4066, 1.0472, 0, 0, 0.5, 0.866025, 300, 300, 1, 100, 0, 10), +(@OGUID+262, 1619, 1, 4317.64, -46.5242, 90.2155, 2.32129, 0, 0, 0.91706, 0.39875, 300, 300, 1, 100, 0, 10), +(@OGUID+263, 1619, 1, -2704.47, -1359.96, 47.7075, 3.94445, 0, 0, -0.920505, 0.390732, 300, 300, 1, 100, 0, 10), +(@OGUID+264, 1619, 1, -1153.71, 585.361, 66.1363, 0.820303, 0, 0, 0.398748, 0.91706, 300, 300, 1, 100, 0, 10), +(@OGUID+265, 1619, 1, -441.69, 35.2632, 68.452, 0.104719, 0, 0, 0.0523357, 0.99863, 300, 300, 1, 100, 0, 10), +(@OGUID+266, 1619, 1, -604.636, 152.578, 54.8357, 2.86234, 0, 0, 0.990268, 0.139175, 300, 300, 1, 100, 0, 10), +(@OGUID+267, 1619, 1, -2007.54, -1138.83, 94.0194, 4.08407, 0, 0, -0.891006, 0.453991, 300, 300, 1, 100, 0, 10), +(@OGUID+268, 1619, 1, -502.542, -52.1891, 69.6604, 1.78023, 0, 0, 0.777145, 0.629321, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+218, 1016, 0, 'Earthroot', 0, 10), +(@OGUID+219, 1016, 0, 'Earthroot', 0, 10), +(@OGUID+220, 1016, 0, 'Earthroot', 0, 10), +(@OGUID+221, 1011, 0, 'Earthroot', 0, 10), +(@OGUID+222, 1011, 0, 'Earthroot', 0, 10), +(@OGUID+223, 1011, 0, 'Earthroot', 0, 10), +(@OGUID+224, 1011, 0, 'Earthroot', 0, 10), +(@OGUID+225, 1011, 0, 'Earthroot', 0, 10), +(@OGUID+226, 1021, 0, 'Earthroot', 0, 10), +(@OGUID+227, 1105, 0, 'Earthroot', 0, 10), +(@OGUID+228, 1105, 0, 'Earthroot', 0, 10), +(@OGUID+229, 1105, 0, 'Earthroot', 0, 10), +(@OGUID+230, 1105, 0, 'Earthroot', 0, 10), +(@OGUID+231, 1005, 0, 'Earthroot', 0, 10), +(@OGUID+232, 1005, 0, 'Earthroot', 0, 10), +(@OGUID+233, 1005, 0, 'Earthroot', 0, 10), +(@OGUID+234, 1005, 0, 'Earthroot', 0, 10), +(@OGUID+235, 1005, 0, 'Earthroot', 0, 10), +(@OGUID+236, 1005, 0, 'Earthroot', 0, 10), +(@OGUID+237, 1005, 0, 'Earthroot', 0, 10), +(@OGUID+238, 1005, 0, 'Earthroot', 0, 10), +(@OGUID+239, 1005, 0, 'Earthroot', 0, 10), +(@OGUID+240, 1005, 0, 'Earthroot', 0, 10), +(@OGUID+241, 1005, 0, 'Earthroot', 0, 10), +(@OGUID+242, 1005, 0, 'Earthroot', 0, 10), +(@OGUID+243, 1005, 0, 'Earthroot', 0, 10), +(@OGUID+244, 1005, 0, 'Earthroot', 0, 10), +(@OGUID+245, 1005, 0, 'Earthroot', 0, 10), +(@OGUID+246, 1040, 0, 'Earthroot', 0, 10), +(@OGUID+247, 1040, 0, 'Earthroot', 0, 10), +(@OGUID+248, 1040, 0, 'Earthroot', 0, 10), +(@OGUID+249, 1040, 0, 'Earthroot', 0, 10), +(@OGUID+250, 1001, 0, 'Earthroot', 0, 10), +(@OGUID+251, 1001, 0, 'Earthroot', 0, 10), +(@OGUID+252, 1001, 0, 'Earthroot', 0, 10), +(@OGUID+253, 1001, 0, 'Earthroot', 0, 10), +(@OGUID+254, 1001, 0, 'Earthroot', 0, 10), +(@OGUID+255, 1001, 0, 'Earthroot', 0, 10), +(@OGUID+256, 1001, 0, 'Earthroot', 0, 10), +(@OGUID+257, 1001, 0, 'Earthroot', 0, 10), +(@OGUID+258, 1001, 0, 'Earthroot', 0, 10), +(@OGUID+259, 1094, 0, 'Earthroot', 0, 10), +(@OGUID+260, 1094, 0, 'Earthroot', 0, 10), +(@OGUID+261, 1094, 0, 'Earthroot', 0, 10), +(@OGUID+262, 1094, 0, 'Earthroot', 0, 10), +(@OGUID+263, 1025, 0, 'Earthroot', 0, 10), +(@OGUID+264, 1025, 0, 'Earthroot', 0, 10), +(@OGUID+265, 1025, 0, 'Earthroot', 0, 10), +(@OGUID+266, 1025, 0, 'Earthroot', 0, 10), +(@OGUID+267, 1025, 0, 'Earthroot', 0, 10), +(@OGUID+268, 1025, 0, 'Earthroot', 0, 10); + +-- Earthroot +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+269, 3726, 1, -3992.42, -2315.7, 96.0613, 2.26893, 0, 0, 0.906307, 0.422619, 300, 300, 1, 100, 0, 10), +(@OGUID+270, 3726, 1, -863.505, -1595.69, 107.602, 5.07891, 0, 0, -0.566406, 0.824126, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+269, 1029, 0, 'Earthroot', 0, 10), +(@OGUID+270, 1029, 0, 'Earthroot', 0, 10); + +-- Fadeleaf +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+271, 2042, 1, -3240.05, -4140.46, 23.6236, 5.3058, 0, 0, -0.469471, 0.882948, 300, 300, 1, 100, 0, 10), +(@OGUID+272, 2042, 1, -4439, -3887.19, 38.0225, 1.43117, 0, 0, 0.656058, 0.75471, 300, 300, 1, 100, 0, 10), +(@OGUID+273, 2042, 1, -4530.16, -3594.8, 39.4492, 3.21142, 0, 0, -0.999391, 0.0349061, 300, 300, 1, 100, 0, 10), +(@OGUID+274, 2042, 1, -4142.04, -3188.56, 39.9911, 1.0821, 0, 0, 0.515038, 0.857168, 300, 300, 1, 100, 0, 10), +(@OGUID+275, 2042, 1, -2797.38, -3028.14, 35.6661, 2.61799, 0, 0, 0.965925, 0.258821, 300, 300, 1, 100, 0, 10), +(@OGUID+276, 2042, 1, -4508.95, -3034.78, 34.5104, 2.05949, 0, 0, 0.857167, 0.515038, 300, 300, 1, 100, 0, 10), +(@OGUID+277, 2042, 0, -14048, 54.3289, 22.4255, 1.90241, 0, 0, 0.814116, 0.580703, 300, 300, 1, 100, 0, 10), +(@OGUID+278, 2042, 0, -11759.6, -784.273, 33.6672, 5.42797, 0, 0, -0.414693, 0.909961, 300, 300, 1, 100, 0, 10), +(@OGUID+279, 2042, 0, -11663.9, -421.313, 18.04, 3.75246, 0, 0, -0.953716, 0.300708, 300, 300, 1, 100, 0, 10), +(@OGUID+280, 2042, 0, -13950.2, 62.6198, 15.2021, 3.28124, 0, 0, -0.997563, 0.0697661, 300, 300, 1, 100, 0, 10), +(@OGUID+281, 2042, 0, -13597.7, -111.13, 42.1737, 4.10153, 0, 0, -0.887011, 0.461749, 300, 300, 1, 100, 0, 10), +(@OGUID+282, 2042, 0, -11591, -798.644, 46.082, 5.48033, 0, 0, -0.390731, 0.920505, 300, 300, 1, 100, 0, 10), +(@OGUID+283, 2042, 0, 1096.76, -739.668, 72.5248, 1.0821, 0, 0, 0.515038, 0.857168, 300, 300, 1, 100, 0, 10), +(@OGUID+284, 2042, 0, 714.882, -988.094, 164.792, 4.88692, 0, 0, -0.642787, 0.766045, 300, 300, 1, 100, 0, 10), +(@OGUID+285, 2042, 0, 816.169, -971.641, 136.713, 2.67035, 0, 0, 0.972369, 0.233448, 300, 300, 1, 100, 0, 10), +(@OGUID+286, 2042, 0, 913.639, -785.561, 124.382, 4.46804, 0, 0, -0.788011, 0.615662, 300, 300, 1, 100, 0, 10), +(@OGUID+287, 2042, 0, 447.255, -812.137, 139.298, 5.18363, 0, 0, -0.522498, 0.85264, 300, 300, 1, 100, 0, 10), +(@OGUID+288, 2042, 0, -1738.53, -2889.54, 41.5868, 4.79966, 0, 0, -0.67559, 0.737278, 300, 300, 1, 100, 0, 10), +(@OGUID+289, 2042, 0, -771.258, -2188.94, 45.1676, 1.02974, 0, 0, 0.492423, 0.870356, 300, 300, 1, 100, 0, 10), +(@OGUID+290, 2042, 0, -1611.3, -2204.29, 32.2381, 1.97222, 0, 0, 0.833885, 0.551938, 300, 300, 1, 100, 0, 10), +(@OGUID+291, 2042, 0, -1740.71, -2982.65, 34.2299, 5.74214, 0, 0, -0.267238, 0.963631, 300, 300, 1, 100, 0, 10), +(@OGUID+292, 2042, 0, -996.4, -1638.04, 37.1822, 1.18682, 0, 0, 0.559193, 0.829038, 300, 300, 1, 100, 0, 10), +(@OGUID+293, 2042, 47, 2143.84, 1501.71, 72.8711, 3.10665, 0, 0, 0.999847, 0.0174693, 300, 300, 1, 100, 0, 10), +(@OGUID+294, 2042, 47, 2129.78, 1435.71, 65.4633, 0.715585, 0, 0, 0.350207, 0.936672, 300, 300, 1, 100, 0, 10), +(@OGUID+295, 2042, 47, 2207.17, 1846.86, 60.9423, 2.33874, 0, 0, 0.920505, 0.390732, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+271, 1328, 0, 'Fadeleaf', 0, 10), +(@OGUID+272, 1328, 0, 'Fadeleaf', 0, 10), +(@OGUID+273, 1328, 0, 'Fadeleaf', 0, 10), +(@OGUID+274, 1328, 0, 'Fadeleaf', 0, 10), +(@OGUID+275, 1328, 0, 'Fadeleaf', 0, 10), +(@OGUID+276, 1328, 0, 'Fadeleaf', 0, 10), +(@OGUID+277, 1172, 0, 'Fadeleaf', 0, 10), +(@OGUID+278, 1172, 0, 'Fadeleaf', 0, 10), +(@OGUID+279, 1172, 0, 'Fadeleaf', 0, 10), +(@OGUID+280, 1172, 0, 'Fadeleaf', 0, 10), +(@OGUID+281, 1172, 0, 'Fadeleaf', 0, 10), +(@OGUID+282, 1172, 0, 'Fadeleaf', 0, 10), +(@OGUID+283, 1071, 0, 'Fadeleaf', 0, 10), +(@OGUID+284, 1071, 0, 'Fadeleaf', 0, 10), +(@OGUID+285, 1071, 0, 'Fadeleaf', 0, 10), +(@OGUID+286, 1071, 0, 'Fadeleaf', 0, 10), +(@OGUID+287, 1071, 0, 'Fadeleaf', 0, 10), +(@OGUID+288, 1183, 0, 'Fadeleaf', 0, 10), +(@OGUID+289, 1183, 0, 'Fadeleaf', 0, 10), +(@OGUID+290, 1183, 0, 'Fadeleaf', 0, 10), +(@OGUID+291, 1183, 0, 'Fadeleaf', 0, 10), +(@OGUID+292, 1183, 0, 'Fadeleaf', 0, 10), +(@OGUID+293, 2002, 0, 'Fadeleaf', 0, 10), +(@OGUID+294, 2002, 0, 'Fadeleaf', 0, 10), +(@OGUID+295, 2002, 0, 'Fadeleaf', 0, 10); + +-- Firebloom +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+296, 2866, 0, -11623.8, -2791.01, 3.86406, 2.67035, 0, 0, 0.972369, 0.233448, 300, 300, 1, 100, 0, 10), +(@OGUID+297, 2866, 0, -6703.05, -1838.89, 257.024, 4.86947, 0, 0, -0.649447, 0.760406, 300, 300, 1, 100, 0, 10), +(@OGUID+298, 2866, 0, -6642.31, -1707.5, 264.949, 2.9496, 0, 0, 0.995396, 0.0958512, 300, 300, 1, 100, 0, 10), +(@OGUID+299, 2866, 1, -8912.57, -3181.47, 29.512, 2.26893, 0, 0, 0.906307, 0.422619, 300, 300, 1, 100, 0, 10), +(@OGUID+300, 2866, 1, -7913.51, -4049, 10.9174, 2.79252, 0, 0, 0.984807, 0.173652, 300, 300, 1, 100, 0, 10), +(@OGUID+301, 2866, 1, -7820.49, -3511.76, 57.9937, 2.3911, 0, 0, 0.930417, 0.366502, 300, 300, 1, 100, 0, 10), +(@OGUID+302, 2866, 1, -8740.01, -3636.5, 19.4466, 3.4034, 0, 0, -0.991445, 0.130528, 300, 300, 1, 100, 0, 10), +(@OGUID+303, 2866, 1, -8949.91, -3049.58, 50.458, 4.34587, 0, 0, -0.824126, 0.566406, 300, 300, 1, 100, 0, 10), +(@OGUID+304, 2866, 1, -7553.65, -3255.23, 34.7135, 3.07177, 0, 0, 0.999391, 0.0349061, 300, 300, 1, 100, 0, 10), +(@OGUID+305, 2866, 1, -7756.96, -4814.81, 10.5384, 3.68265, 0, 0, -0.96363, 0.267241, 300, 300, 1, 100, 0, 10), +(@OGUID+306, 2866, 1, -8951.16, -2547.56, 16.926, 0.0174525, 0, 0, 0.00872612, 0.999962, 300, 300, 1, 100, 0, 10), +(@OGUID+307, 2866, 1, -8655.95, -4414.97, 11.8215, 5.28835, 0, 0, -0.477159, 0.878817, 300, 300, 1, 100, 0, 10), +(@OGUID+308, 2866, 1, -7540.94, -3116.9, 17.5761, 0.314158, 0, 0, 0.156434, 0.987688, 300, 300, 1, 100, 0, 10), +(@OGUID+309, 2866, 1, -8554.17, -2385.21, 32.8707, 2.3911, 0, 0, 0.930417, 0.366502, 300, 300, 1, 100, 0, 10), +(@OGUID+310, 2866, 1, -8646.29, -2750.3, 14.1322, 3.194, 0, 0, -0.999657, 0.0262016, 300, 300, 1, 100, 0, 10), +(@OGUID+311, 2866, 1, -8176.72, -3642.02, 29.4972, 5.3058, 0, 0, -0.469471, 0.882948, 300, 300, 1, 100, 0, 10), +(@OGUID+312, 2866, 1, -8249.27, -3916.74, 10.1333, 3.22886, 0, 0, -0.999048, 0.0436193, 300, 300, 1, 100, 0, 10), +(@OGUID+313, 2866, 1, -8424.62, -2517.3, 49.5497, 6.17847, 0, 0, -0.0523357, 0.99863, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+296, 1276, 0, 'Firebloom', 0, 10), +(@OGUID+297, 1291, 0, 'Firebloom', 0, 10), +(@OGUID+298, 1291, 0, 'Firebloom', 0, 10), +(@OGUID+299, 1208, 0, 'Firebloom', 0, 10), +(@OGUID+300, 1208, 0, 'Firebloom', 0, 10), +(@OGUID+301, 1208, 0, 'Firebloom', 0, 10), +(@OGUID+302, 1208, 0, 'Firebloom', 0, 10), +(@OGUID+303, 1208, 0, 'Firebloom', 0, 10), +(@OGUID+304, 1208, 0, 'Firebloom', 0, 10), +(@OGUID+305, 1208, 0, 'Firebloom', 0, 10), +(@OGUID+306, 1208, 0, 'Firebloom', 0, 10), +(@OGUID+307, 1208, 0, 'Firebloom', 0, 10), +(@OGUID+308, 1208, 0, 'Firebloom', 0, 10), +(@OGUID+309, 1208, 0, 'Firebloom', 0, 10), +(@OGUID+310, 1208, 0, 'Firebloom', 0, 10), +(@OGUID+311, 1208, 0, 'Firebloom', 0, 10), +(@OGUID+312, 1208, 0, 'Firebloom', 0, 10), +(@OGUID+313, 1208, 0, 'Firebloom', 0, 10); + +-- Ghost Mushroom +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+314, 142144, 0, 394.02, -3754.01, 126.82, 1.0472, 0, 0, 0.5, 0.866025, 300, 300, 1, 100, 0, 10), +(@OGUID+315, 142144, 0, -611.874, -3735.32, 231.213, 1.65806, 0, 0, 0.737277, 0.675591, 300, 300, 1, 100, 0, 10), +(@OGUID+316, 142144, 0, -652.332, -3803.88, 226.839, 3.75246, 0, 0, -0.953716, 0.300708, 300, 300, 1, 100, 0, 10), +(@OGUID+317, 142144, 0, -686.187, -3667.2, 231.89, 4.83456, 0, 0, -0.66262, 0.748956, 300, 300, 1, 100, 0, 10), +(@OGUID+318, 142144, 0, -575.473, -3801.59, 234.936, 1.6057, 0, 0, 0.719339, 0.694659, 300, 300, 1, 100, 0, 10), +(@OGUID+319, 142144, 0, -613.293, -3768.72, 235.835, 4.72984, 0, 0, -0.700909, 0.713251, 300, 300, 1, 100, 0, 10), +(@OGUID+320, 142144, 0, -655.014, -3832.11, 227.47, 3.89209, 0, 0, -0.930417, 0.366502, 300, 300, 1, 100, 0, 10), +(@OGUID+321, 142144, 0, -627.495, -3810.34, 234.504, 6.12611, 0, 0, -0.0784588, 0.996917, 300, 300, 1, 100, 0, 10), +(@OGUID+322, 142144, 1, -1444.11, 2787, 93.5777, 1.41372, 0, 0, 0.649447, 0.760406, 300, 300, 1, 100, 0, 10), +(@OGUID+323, 142144, 1, -1434.23, 2980.08, 100.64, 5.93412, 0, 0, -0.173648, 0.984808, 300, 300, 1, 100, 0, 10), +(@OGUID+324, 142144, 349, 856.637, -36.9598, -86.4062, 5.20108, 0, 0, -0.515038, 0.857168, 300, 300, 1, 100, 0, 10), +(@OGUID+325, 142144, 349, 959.936, -231.943, -49.4211, 5.86431, 0, 0, -0.207911, 0.978148, 300, 300, 1, 100, 0, 10), +(@OGUID+326, 142144, 349, 753.844, -322.062, -51.5776, 1.13446, 0, 0, 0.537299, 0.843392, 300, 300, 1, 100, 0, 10), +(@OGUID+327, 142144, 349, 954.38, -157.657, -59.2653, 4.15388, 0, 0, -0.874619, 0.48481, 300, 300, 1, 100, 0, 10), +(@OGUID+328, 142144, 349, -48.6867, -416.627, -189.262, 5.35816, 0, 0, -0.446198, 0.894935, 300, 300, 1, 100, 0, 10), +(@OGUID+329, 142144, 429, -116.265, -422.035, -4.21215, 5.53269, 0, 0, -0.366501, 0.930418, 300, 300, 1, 100, 0, 10), +(@OGUID+330, 142144, 429, -46.1853, -432.413, 16.4136, 0.174532, 0, 0, 0.0871553, 0.996195, 300, 300, 1, 100, 0, 10), +(@OGUID+331, 142144, 429, 20.5345, -437.4, -37.9619, 4.95674, 0, 0, -0.615661, 0.788011, 300, 300, 1, 100, 0, 10), +(@OGUID+332, 142144, 429, 17.0344, -715.584, -25.1616, 2.61799, 0, 0, 0.965925, 0.258821, 300, 300, 1, 100, 0, 10), +(@OGUID+333, 142144, 429, 80.7843, -420.521, -4.21279, 2.89725, 0, 0, 0.992546, 0.12187, 300, 300, 1, 100, 0, 10), +(@OGUID+334, 142144, 429, 64.8343, -384.715, -58.6152, 0.750491, 0, 0, 0.366501, 0.930418, 300, 300, 1, 100, 0, 10), +(@OGUID+335, 142144, 429, 26.3927, -627.386, -25.1572, 0.331611, 0, 0, 0.165047, 0.986286, 300, 300, 1, 100, 0, 10), +(@OGUID+336, 142144, 429, 24.6571, -771.06, -25.1494, 2.33874, 0, 0, 0.920505, 0.390732, 300, 300, 1, 100, 0, 10), +(@OGUID+337, 142144, 429, 67.4486, -467.225, -58.6226, 4.32842, 0, 0, -0.829037, 0.559194, 300, 300, 1, 100, 0, 10), +(@OGUID+338, 142144, 429, 13.3515, -397.107, -4.22113, 4.95674, 0, 0, -0.615661, 0.788011, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+314, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+315, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+316, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+317, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+318, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+319, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+320, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+321, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+322, 2001, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+323, 2001, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+324, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+325, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+326, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+327, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+328, 34902, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+329, 4291, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+330, 4291, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+331, 4291, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+332, 4291, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+333, 4291, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+334, 4291, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+335, 4291, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+336, 4291, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+337, 4291, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+338, 4291, 0, 'Ghost Mushroom', 0, 10); + +-- Golden Sansam +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+339, 176583, 1, 3257.78, -5314.3, 89.2678, 2.35619, 0, 0, 0.92388, 0.382683, 300, 300, 1, 100, 0, 10), +(@OGUID+340, 176583, 1, 4473.74, -5586.33, 102.067, 0.418879, 0, 0, 0.207911, 0.978148, 300, 300, 1, 100, 0, 10), +(@OGUID+341, 176583, 1, 2439.36, -6990.09, 107.654, 0.977383, 0, 0, 0.469471, 0.882948, 300, 300, 1, 100, 0, 10), +(@OGUID+342, 176583, 1, 2785.12, -5800.42, 102.172, 1.79769, 0, 0, 0.782608, 0.622515, 300, 300, 1, 100, 0, 10), +(@OGUID+343, 176583, 1, 4303.01, -6212.02, 110.881, 5.98648, 0, 0, -0.147809, 0.989016, 300, 300, 1, 100, 0, 10), +(@OGUID+344, 176583, 1, 3353.8, -4400.79, 105.259, 5.79449, 0, 0, -0.241921, 0.970296, 300, 300, 1, 100, 0, 10), +(@OGUID+345, 176583, 1, 2313.11, -6354.48, 110.083, 2.63544, 0, 0, 0.968147, 0.250381, 300, 300, 1, 100, 0, 10), +(@OGUID+346, 176583, 1, 2234.07, -6630.78, 126.711, 5.28835, 0, 0, -0.477159, 0.878817, 300, 300, 1, 100, 0, 10), +(@OGUID+347, 176583, 1, 2670.54, -6080.84, 100.77, 0.698131, 0, 0, 0.34202, 0.939693, 300, 300, 1, 100, 0, 10), +(@OGUID+348, 176583, 1, 3628.78, -5083.95, 87.9922, 0.698131, 0, 0, 0.34202, 0.939693, 300, 300, 1, 100, 0, 10), +(@OGUID+349, 176583, 1, 2743.95, -6637.72, 101.547, 5.16618, 0, 0, -0.529919, 0.848048, 300, 300, 1, 100, 0, 10), +(@OGUID+350, 176583, 1, 2875.99, -5587.8, 131.995, 4.04917, 0, 0, -0.898793, 0.438373, 300, 300, 1, 100, 0, 10), +(@OGUID+351, 176583, 1, 4099.44, -5916.01, 97.5943, 1.44862, 0, 0, 0.66262, 0.748956, 300, 300, 1, 100, 0, 10), +(@OGUID+352, 176583, 0, 225.686, -4330.83, 117.633, 0.279252, 0, 0, 0.139173, 0.990268, 300, 300, 1, 100, 0, 10), +(@OGUID+353, 176583, 0, -95.1624, -3044.19, 122.068, 0.191985, 0, 0, 0.0958452, 0.995396, 300, 300, 1, 100, 0, 10), +(@OGUID+354, 176583, 0, -268.422, -2639.7, 120.26, 3.87463, 0, 0, -0.93358, 0.358368, 300, 300, 1, 100, 0, 10), +(@OGUID+355, 176583, 0, 694.815, -3869.34, 109.546, 4.25861, 0, 0, -0.848047, 0.529921, 300, 300, 1, 100, 0, 10), +(@OGUID+356, 176583, 0, 231.767, -4179.73, 117.157, 3.6652, 0, 0, -0.965925, 0.258821, 300, 300, 1, 100, 0, 10), +(@OGUID+357, 176583, 0, 3395.94, -4870.51, 159.395, 0.296705, 0, 0, 0.147809, 0.989016, 300, 300, 1, 100, 0, 10), +(@OGUID+358, 176583, 0, 2939, -3061.38, 111.555, 0.558504, 0, 0, 0.275637, 0.961262, 300, 300, 1, 100, 0, 10), +(@OGUID+359, 176583, 0, 1666.87, -5498.62, 100.598, 2.42601, 0, 0, 0.936672, 0.350207, 300, 300, 1, 100, 0, 10), +(@OGUID+360, 176583, 0, 1546.81, -5574.57, 100.773, 0.157079, 0, 0, 0.0784588, 0.996917, 300, 300, 1, 100, 0, 10), +(@OGUID+361, 176583, 1, -5335.2, 1423.61, 27.8609, 2.49582, 0, 0, 0.948323, 0.317306, 300, 300, 1, 100, 0, 10), +(@OGUID+362, 176583, 1, -8190.62, -1550.62, -220.719, 0.767944, 0, 0, 0.374606, 0.927184, 300, 300, 1, 100, 0, 10), +(@OGUID+363, 176583, 1, -7918.41, -2016.05, -272.222, 1.55334, 0, 0, 0.700909, 0.713251, 300, 300, 1, 100, 0, 10), +(@OGUID+364, 176583, 1, -6872.07, -1124.22, -271.023, 2.79252, 0, 0, 0.984807, 0.173652, 300, 300, 1, 100, 0, 10), +(@OGUID+365, 176583, 1, -6547.68, -1953.96, -268.222, 5.2709, 0, 0, -0.484809, 0.87462, 300, 300, 1, 100, 0, 10), +(@OGUID+366, 176583, 1, -7456.84, -268.541, -207.806, 5.5676, 0, 0, -0.350207, 0.936672, 300, 300, 1, 100, 0, 10), +(@OGUID+367, 176583, 1, -7549.81, -2080.21, -271.98, 4.92183, 0, 0, -0.62932, 0.777146, 300, 300, 1, 100, 0, 10), +(@OGUID+368, 176583, 1, -7947.82, -1716.3, -275.69, 2.3911, 0, 0, 0.930417, 0.366502, 300, 300, 1, 100, 0, 10), +(@OGUID+369, 176583, 1, -6957.03, 1437.78, 4.47975, 6.03884, 0, 0, -0.121869, 0.992546, 300, 300, 1, 100, 0, 10), +(@OGUID+370, 176583, 1, -7159.41, 634.703, 10.3727, 5.96903, 0, 0, -0.156434, 0.987688, 300, 300, 1, 100, 0, 10), +(@OGUID+371, 176583, 1, -6508.05, 934.351, -0.263528, 2.87979, 0, 0, 0.991445, 0.130528, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+339, 1241, 0, 'Golden Sansam', 0, 10), +(@OGUID+340, 1241, 0, 'Golden Sansam', 0, 10), +(@OGUID+341, 1241, 0, 'Golden Sansam', 0, 10), +(@OGUID+342, 1241, 0, 'Golden Sansam', 0, 10), +(@OGUID+343, 1241, 0, 'Golden Sansam', 0, 10), +(@OGUID+344, 1241, 0, 'Golden Sansam', 0, 10), +(@OGUID+345, 1241, 0, 'Golden Sansam', 0, 10), +(@OGUID+346, 1241, 0, 'Golden Sansam', 0, 10), +(@OGUID+347, 1241, 0, 'Golden Sansam', 0, 10), +(@OGUID+348, 1241, 0, 'Golden Sansam', 0, 10), +(@OGUID+349, 1241, 0, 'Golden Sansam', 0, 10), +(@OGUID+350, 1241, 0, 'Golden Sansam', 0, 10), +(@OGUID+351, 1241, 0, 'Golden Sansam', 0, 10), +(@OGUID+352, 1253, 0, 'Golden Sansam', 0, 10), +(@OGUID+353, 1253, 0, 'Golden Sansam', 0, 10), +(@OGUID+354, 1253, 0, 'Golden Sansam', 0, 10), +(@OGUID+355, 1253, 0, 'Golden Sansam', 0, 10), +(@OGUID+356, 1253, 0, 'Golden Sansam', 0, 10), +(@OGUID+357, 1300, 0, 'Golden Sansam', 0, 10), +(@OGUID+358, 1300, 0, 'Golden Sansam', 0, 10), +(@OGUID+359, 1300, 0, 'Golden Sansam', 0, 10), +(@OGUID+360, 1300, 0, 'Golden Sansam', 0, 10), +(@OGUID+361, 1194, 0, 'Golden Sansam', 0, 10), +(@OGUID+362, 1214, 0, 'Golden Sansam', 0, 10), +(@OGUID+363, 1214, 0, 'Golden Sansam', 0, 10), +(@OGUID+364, 1214, 0, 'Golden Sansam', 0, 10), +(@OGUID+365, 1214, 0, 'Golden Sansam', 0, 10), +(@OGUID+366, 1214, 0, 'Golden Sansam', 0, 10), +(@OGUID+367, 1214, 0, 'Golden Sansam', 0, 10), +(@OGUID+368, 1214, 0, 'Golden Sansam', 0, 10), +(@OGUID+369, 1224, 0, 'Golden Sansam', 0, 10), +(@OGUID+370, 1224, 0, 'Golden Sansam', 0, 10), +(@OGUID+371, 1224, 0, 'Golden Sansam', 0, 10); + +-- Golden Sansam +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+372, 180167, 309, -12367.3, -1615.61, 131.143, 1.81514, 0, 0, 0.788011, 0.615662, 300, 300, 1, 100, 0, 10), +(@OGUID+373, 180167, 309, -11742.1, -1337.24, 63.7299, 2.77507, 0, 0, 0.983254, 0.182238, 300, 300, 1, 100, 0, 10), +(@OGUID+374, 180167, 309, -12380.3, -1662.38, 131.983, 2.42601, 0, 0, 0.936672, 0.350207, 300, 300, 1, 100, 0, 10), +(@OGUID+375, 180167, 309, -12396.9, -1900.17, 130.847, 4.88692, 0, 0, -0.642787, 0.766045, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+372, 1035, 0, 'Golden Sansam', 0, 10), +(@OGUID+373, 1035, 0, 'Golden Sansam', 0, 10), +(@OGUID+374, 1035, 0, 'Golden Sansam', 0, 10), +(@OGUID+375, 1035, 0, 'Golden Sansam', 0, 10); + +-- Grave Moss +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+376, 1628, 0, -10565.1, 228.283, 29.469, 5.20108, 0, 0, -0.515038, 0.857168, 300, 300, 1, 100, 0, 10), +(@OGUID+377, 1628, 0, -10537.3, 399.749, 31.7543, 5.86431, 0, 0, -0.207911, 0.978148, 300, 300, 1, 100, 0, 10), +(@OGUID+378, 1628, 0, -2815.28, -2228.88, -0.927708, 2.9845, 0, 0, 0.996917, 0.0784664, 300, 300, 1, 100, 0, 10), +(@OGUID+379, 1628, 1, -3873.82, -1638.65, 91.755, 4.92183, 0, 0, -0.62932, 0.777146, 300, 300, 1, 100, 0, 10), +(@OGUID+380, 1628, 0, -1515.81, -1899.49, 68.2952, 1.95477, 0, 0, 0.829038, 0.559193, 300, 300, 1, 100, 0, 10), +(@OGUID+381, 1628, 0, -1527.81, -1921.94, 68.5282, 4.38078, 0, 0, -0.814116, 0.580703, 300, 300, 1, 100, 0, 10), +(@OGUID+382, 1628, 1, -763.89, 2160.5, 95.1904, 4.99164, 0, 0, -0.601814, 0.798636, 300, 300, 1, 100, 0, 10), +(@OGUID+383, 1628, 1, -2268.83, 1473.63, 63.5881, 1.88495, 0, 0, 0.809016, 0.587786, 300, 300, 1, 100, 0, 10), +(@OGUID+384, 1628, 129, 2378.14, 980.019, 55.0045, 6.14356, 0, 0, -0.0697556, 0.997564, 300, 300, 1, 100, 0, 10), +(@OGUID+385, 1628, 129, 2613.11, 732.626, 54.4634, 1.41372, 0, 0, 0.649447, 0.760406, 300, 300, 1, 100, 0, 10), +(@OGUID+386, 1628, 129, 2464.41, 674.253, 63.8792, 0.855211, 0, 0, 0.414693, 0.909961, 300, 300, 1, 100, 0, 10), +(@OGUID+387, 1628, 129, 2461.85, 641.773, 54.5307, 2.54818, 0, 0, 0.956305, 0.292372, 300, 300, 1, 100, 0, 10), +(@OGUID+388, 1628, 129, 2340.31, 968.294, 42.7686, 3.89209, 0, 0, -0.930417, 0.366502, 300, 300, 1, 100, 0, 10), +(@OGUID+389, 1628, 129, 2565.25, 770.484, 55.8443, 1.91986, 0, 0, 0.819152, 0.573577, 300, 300, 1, 100, 0, 10), +(@OGUID+390, 1628, 189, 1813.73, 1274.33, 17.622, 4.41568, 0, 0, -0.803857, 0.594823, 300, 300, 1, 100, 0, 10), +(@OGUID+391, 1628, 189, 1739.89, 1377.57, 17.521, 5.21854, 0, 0, -0.507538, 0.861629, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+376, 105, 0, 'Grave Moss', 0, 10), +(@OGUID+377, 105, 0, 'Grave Moss', 0, 10), +(@OGUID+378, 1148, 0, 'Grave Moss', 0, 10), +(@OGUID+379, 1083, 0, 'Grave Moss', 0, 10), +(@OGUID+380, 104, 0, 'Grave Moss', 0, 10), +(@OGUID+381, 104, 0, 'Grave Moss', 0, 10), +(@OGUID+382, 107, 0, 'Grave Moss', 0, 10), +(@OGUID+383, 107, 0, 'Grave Moss', 0, 10), +(@OGUID+384, 2003, 0, 'Grave Moss', 0, 10), +(@OGUID+385, 2003, 0, 'Grave Moss', 0, 10), +(@OGUID+386, 2003, 0, 'Grave Moss', 0, 10), +(@OGUID+387, 2003, 0, 'Grave Moss', 0, 10), +(@OGUID+388, 2003, 0, 'Grave Moss', 0, 10), +(@OGUID+389, 2003, 0, 'Grave Moss', 0, 10), +(@OGUID+390, 1054, 0, 'Grave Moss', 0, 10), +(@OGUID+391, 1054, 0, 'Grave Moss', 0, 10); + +-- Gromsblood +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+392, 142145, 0, -11403.9, -2774.71, 2.90857, 4.03171, 0, 0, -0.902585, 0.430512, 300, 300, 1, 100, 0, 10), +(@OGUID+393, 142145, 1, 1645.34, -3043.79, 88.4807, 0.314158, 0, 0, 0.156434, 0.987688, 300, 300, 1, 100, 0, 10), +(@OGUID+394, 142145, 1, 1773.66, -3194.27, 87.9747, 3.82227, 0, 0, -0.942641, 0.333808, 300, 300, 1, 100, 0, 10), +(@OGUID+395, 142145, 429, 39.6528, -322.045, -52.2932, 1.25664, 0, 0, 0.587785, 0.809017, 300, 300, 1, 100, 0, 10), +(@OGUID+396, 142145, 429, -27.8809, -392.48, -58.6137, 1.39626, 0, 0, 0.642787, 0.766045, 300, 300, 1, 100, 0, 10), +(@OGUID+397, 142145, 429, -66.198, -221.493, -57.1921, 0.174532, 0, 0, 0.0871553, 0.996195, 300, 300, 1, 100, 0, 10), +(@OGUID+398, 142145, 429, -77.444, -438.764, -58.612, 2.79252, 0, 0, 0.984807, 0.173652, 300, 300, 1, 100, 0, 10), +(@OGUID+399, 142145, 429, 73.1442, -234.595, -56.461, 5.77704, 0, 0, -0.25038, 0.968148, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+392, 1275, 0, 'Gromsblood', 0, 10), +(@OGUID+393, 1327, 0, 'Gromsblood', 0, 10), +(@OGUID+394, 1327, 0, 'Gromsblood', 0, 10), +(@OGUID+395, 4291, 0, 'Gromsblood', 0, 10), +(@OGUID+396, 4291, 0, 'Gromsblood', 0, 10), +(@OGUID+397, 4291, 0, 'Gromsblood', 0, 10), +(@OGUID+398, 4291, 0, 'Gromsblood', 0, 10), +(@OGUID+399, 4291, 0, 'Gromsblood', 0, 10); + +-- Gromsblood +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+400, 176637, 1, 6414.88, -783.236, 471.604, 4.24115, 0, 0, -0.85264, 0.522499, 300, 300, 1, 100, 0, 10), +(@OGUID+401, 176637, 1, 3656.49, -1614.84, 209.027, 5.21854, 0, 0, -0.507538, 0.861629, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+400, 1225, 0, 'Gromsblood', 0, 10), +(@OGUID+401, 1225, 0, 'Gromsblood', 0, 10); + +-- Icecap +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+402, 176588, 1, 6113.11, -4851.25, 748.034, 4.43314, 0, 0, -0.798635, 0.601815, 300, 300, 1, 100, 0, 10), +(@OGUID+403, 176588, 1, 5336.3, -4551.51, 694.994, 4.01426, 0, 0, -0.906307, 0.422619, 300, 300, 1, 100, 0, 10), +(@OGUID+404, 176588, 1, 7790.2, -4057.51, 687.732, 0.331611, 0, 0, 0.165047, 0.986286, 300, 300, 1, 100, 0, 10), +(@OGUID+405, 176588, 1, 5418.08, -4628.64, 803.636, 5.81195, 0, 0, -0.233445, 0.97237, 300, 300, 1, 100, 0, 10), +(@OGUID+406, 176588, 1, 6224.64, -4499.66, 691.576, 2.40855, 0, 0, 0.93358, 0.358368, 300, 300, 1, 100, 0, 10), +(@OGUID+407, 176588, 1, 5768.84, -4603.85, 764.253, 4.88692, 0, 0, -0.642787, 0.766045, 300, 300, 1, 100, 0, 10), +(@OGUID+408, 176588, 1, 5886.48, -4647.87, 742.395, 1.43117, 0, 0, 0.656058, 0.75471, 300, 300, 1, 100, 0, 10), +(@OGUID+409, 176588, 1, 7957.23, -3763.45, 710.267, 2.67035, 0, 0, 0.972369, 0.233448, 300, 300, 1, 100, 0, 10), +(@OGUID+410, 176588, 1, 5286.73, -4453.63, 841.45, 3.63029, 0, 0, -0.970295, 0.241925, 300, 300, 1, 100, 0, 10), +(@OGUID+411, 176588, 1, 6781.84, -3670.45, 732.095, 2.46091, 0, 0, 0.942641, 0.333808, 300, 300, 1, 100, 0, 10), +(@OGUID+412, 176588, 1, 6794.37, -2787.94, 575.907, 5.14872, 0, 0, -0.537299, 0.843392, 300, 300, 1, 100, 0, 10), +(@OGUID+413, 176588, 1, 6016.97, -5042.97, 785.529, 3.80482, 0, 0, -0.945518, 0.325568, 300, 300, 1, 100, 0, 10), +(@OGUID+414, 176588, 1, 7082.71, -4773.28, 744.619, 5.60251, 0, 0, -0.333807, 0.942641, 300, 300, 1, 100, 0, 10), +(@OGUID+415, 176588, 1, 7546.76, -4503.06, 605.375, 0.349065, 0, 0, 0.173648, 0.984808, 300, 300, 1, 100, 0, 10), +(@OGUID+416, 176588, 1, 5446.56, -4891.5, 868.237, 0.244346, 0, 0, 0.121869, 0.992546, 300, 300, 1, 100, 0, 10), +(@OGUID+417, 176588, 1, 6665.75, -4946.65, 720.42, 0.750491, 0, 0, 0.366501, 0.930418, 300, 300, 1, 100, 0, 10), +(@OGUID+418, 176588, 1, 7522.5, -4978.45, 701.71, 5.74214, 0, 0, -0.267238, 0.963631, 300, 300, 1, 100, 0, 10), +(@OGUID+419, 176588, 1, 7772.3, -4490.5, 657.702, 4.15388, 0, 0, -0.874619, 0.48481, 300, 300, 1, 100, 0, 10), +(@OGUID+420, 176588, 1, 7916.95, -4668.11, 755.466, 6.26573, 0, 0, -0.00872612, 0.999962, 300, 300, 1, 100, 0, 10), +(@OGUID+421, 176588, 1, 6441.45, -2488.86, 558.703, 1.58825, 0, 0, 0.71325, 0.70091, 300, 300, 1, 100, 0, 10), +(@OGUID+422, 176588, 1, 6842.4, -5141.07, 699.749, 3.73501, 0, 0, -0.956305, 0.292372, 300, 300, 1, 100, 0, 10), +(@OGUID+423, 176588, 1, 7714.49, -3782.88, 726.479, 2.56563, 0, 0, 0.958819, 0.284016, 300, 300, 1, 100, 0, 10), +(@OGUID+424, 176588, 1, 6450.69, -4424.92, 724.483, 3.194, 0, 0, -0.999657, 0.0262016, 300, 300, 1, 100, 0, 10), +(@OGUID+425, 176588, 1, 7211.6, -4714.55, 741.086, 1.81514, 0, 0, 0.788011, 0.615662, 300, 300, 1, 100, 0, 10), +(@OGUID+426, 176588, 1, 6874.46, -3068.54, 620.449, 3.61284, 0, 0, -0.972369, 0.233448, 300, 300, 1, 100, 0, 10), +(@OGUID+427, 176588, 1, 6705.65, -3951.55, 699.948, 2.02458, 0, 0, 0.848047, 0.529921, 300, 300, 1, 100, 0, 10), +(@OGUID+428, 176588, 1, 7386.59, -4044.35, 690.558, 3.50812, 0, 0, -0.983254, 0.182238, 300, 300, 1, 100, 0, 10), +(@OGUID+429, 176588, 1, 7202.93, -4495.66, 612.221, 3.21142, 0, 0, -0.999391, 0.0349061, 300, 300, 1, 100, 0, 10), +(@OGUID+430, 176588, 1, 6171.25, -4611, 715.869, 3.85718, 0, 0, -0.936671, 0.35021, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+402, 1236, 0, 'Icecap', 0, 10), +(@OGUID+403, 1236, 0, 'Icecap', 0, 10), +(@OGUID+404, 1236, 0, 'Icecap', 0, 10), +(@OGUID+405, 1236, 0, 'Icecap', 0, 10), +(@OGUID+406, 1236, 0, 'Icecap', 0, 10), +(@OGUID+407, 1236, 0, 'Icecap', 0, 10), +(@OGUID+408, 1236, 0, 'Icecap', 0, 10), +(@OGUID+409, 1236, 0, 'Icecap', 0, 10), +(@OGUID+410, 1236, 0, 'Icecap', 0, 10), +(@OGUID+411, 1236, 0, 'Icecap', 0, 10), +(@OGUID+412, 1236, 0, 'Icecap', 0, 10), +(@OGUID+413, 1236, 0, 'Icecap', 0, 10), +(@OGUID+414, 1236, 0, 'Icecap', 0, 10), +(@OGUID+415, 1236, 0, 'Icecap', 0, 10), +(@OGUID+416, 1236, 0, 'Icecap', 0, 10), +(@OGUID+417, 1236, 0, 'Icecap', 0, 10), +(@OGUID+418, 1236, 0, 'Icecap', 0, 10), +(@OGUID+419, 1236, 0, 'Icecap', 0, 10), +(@OGUID+420, 1236, 0, 'Icecap', 0, 10), +(@OGUID+421, 1236, 0, 'Icecap', 0, 10), +(@OGUID+422, 1236, 0, 'Icecap', 0, 10), +(@OGUID+423, 1236, 0, 'Icecap', 0, 10), +(@OGUID+424, 1236, 0, 'Icecap', 0, 10), +(@OGUID+425, 1236, 0, 'Icecap', 0, 10), +(@OGUID+426, 1236, 0, 'Icecap', 0, 10), +(@OGUID+427, 1236, 0, 'Icecap', 0, 10), +(@OGUID+428, 1236, 0, 'Icecap', 0, 10), +(@OGUID+429, 1236, 0, 'Icecap', 0, 10), +(@OGUID+430, 1236, 0, 'Icecap', 0, 10); + +-- Mountain Silversage +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+431, 176586, 1, 3293.82, -5082.93, 126.83, 5.23599, 0, 0, -0.5, 0.866025, 300, 300, 1, 100, 0, 10), +(@OGUID+432, 176586, 1, 4622.48, -7346.46, 122.532, 2.87979, 0, 0, 0.991445, 0.130528, 300, 300, 1, 100, 0, 10), +(@OGUID+433, 176586, 1, 3857.14, -5361.02, 140.887, 3.14159, 0, 0, -1, 0, 300, 300, 1, 100, 0, 10), +(@OGUID+434, 176586, 1, 3873.34, -4893.83, 173.628, 1.88495, 0, 0, 0.809016, 0.587786, 300, 300, 1, 100, 0, 10), +(@OGUID+435, 176586, 1, 2814.82, -6095.52, 126.134, 0.820303, 0, 0, 0.398748, 0.91706, 300, 300, 1, 100, 0, 10), +(@OGUID+436, 176586, 1, 2490.47, -6384.37, 127.474, 0.471238, 0, 0, 0.233445, 0.97237, 300, 300, 1, 100, 0, 10), +(@OGUID+437, 176586, 1, 2797.95, -6250.84, 112.059, 0.890117, 0, 0, 0.430511, 0.902586, 300, 300, 1, 100, 0, 10), +(@OGUID+438, 176586, 1, 2317.6, -6945.15, 141.784, 6.21337, 0, 0, -0.0348988, 0.999391, 300, 300, 1, 100, 0, 10), +(@OGUID+439, 176586, 1, 2924.38, -5483.52, 152.037, 0.453785, 0, 0, 0.224951, 0.97437, 300, 300, 1, 100, 0, 10), +(@OGUID+440, 176586, 1, 3197.91, -5175.12, 138.237, 5.53269, 0, 0, -0.366501, 0.930418, 300, 300, 1, 100, 0, 10), +(@OGUID+441, 176586, 0, 2320, -2046.68, 175.221, 1.11701, 0, 0, 0.529919, 0.848048, 300, 300, 1, 100, 0, 10), +(@OGUID+442, 176586, 0, 2225.33, -2463.55, 90.5105, 3.26377, 0, 0, -0.998135, 0.0610518, 300, 300, 1, 100, 0, 10), +(@OGUID+443, 176586, 0, 2693.49, -1661.42, 147.172, 5.75959, 0, 0, -0.258819, 0.965926, 300, 300, 1, 100, 0, 10), +(@OGUID+444, 176586, 0, 3000.36, -1661.52, 165.831, 5.53269, 0, 0, -0.366501, 0.930418, 300, 300, 1, 100, 0, 10), +(@OGUID+445, 176586, 0, 1980.19, -5361.09, 110.172, 5.72468, 0, 0, -0.275637, 0.961262, 300, 300, 1, 100, 0, 10), +(@OGUID+446, 176586, 0, 1858.99, -5468.61, 122.655, 5.72468, 0, 0, -0.275637, 0.961262, 300, 300, 1, 100, 0, 10), +(@OGUID+447, 176586, 1, -6440.92, -2034.6, -243.258, 2.58308, 0, 0, 0.961261, 0.27564, 300, 300, 1, 100, 0, 10), +(@OGUID+448, 176586, 1, -7944.49, -1863.99, -250.352, 5.2709, 0, 0, -0.484809, 0.87462, 300, 300, 1, 100, 0, 10), +(@OGUID+449, 176586, 1, -7147.22, -1173.04, -243.574, 4.46804, 0, 0, -0.788011, 0.615662, 300, 300, 1, 100, 0, 10), +(@OGUID+450, 176586, 1, -6327.72, -1763.85, -241.506, 1.20428, 0, 0, 0.566406, 0.824126, 300, 300, 1, 100, 0, 10), +(@OGUID+451, 176586, 1, -7095.59, -338.094, -246.144, 2.05949, 0, 0, 0.857167, 0.515038, 300, 300, 1, 100, 0, 10), +(@OGUID+452, 176586, 1, -6923.29, -214.662, -187.162, 3.94445, 0, 0, -0.920505, 0.390732, 300, 300, 1, 100, 0, 10), +(@OGUID+453, 176586, 1, -8116.11, -1333.86, -226.569, 2.02458, 0, 0, 0.848047, 0.529921, 300, 300, 1, 100, 0, 10), +(@OGUID+454, 176586, 1, -7165.65, -211.677, -211.176, 5.02655, 0, 0, -0.587785, 0.809017, 300, 300, 1, 100, 0, 10), +(@OGUID+455, 176586, 1, 6927.07, -5241.42, 756.484, 4.13643, 0, 0, -0.878817, 0.47716, 300, 300, 1, 100, 0, 10), +(@OGUID+456, 176586, 1, 6873.1, -3580.7, 740.155, 3.07177, 0, 0, 0.999391, 0.0349061, 300, 300, 1, 100, 0, 10), +(@OGUID+457, 176586, 1, 6298.71, -3947.35, 703.291, 3.73501, 0, 0, -0.956305, 0.292372, 300, 300, 1, 100, 0, 10), +(@OGUID+458, 176586, 1, 6940.44, -3354.29, 750.908, 3.94445, 0, 0, -0.920505, 0.390732, 300, 300, 1, 100, 0, 10), +(@OGUID+459, 176586, 1, 7592.79, -4782.64, 744.513, 5.34071, 0, 0, -0.45399, 0.891007, 300, 300, 1, 100, 0, 10), +(@OGUID+460, 176586, 1, 5355.13, -4446.39, 843.834, 2.28638, 0, 0, 0.909961, 0.414694, 300, 300, 1, 100, 0, 10), +(@OGUID+461, 176586, 1, 6389.4, -4629, 790.334, 2.67035, 0, 0, 0.972369, 0.233448, 300, 300, 1, 100, 0, 10), +(@OGUID+462, 176586, 1, 6879.12, -2544.69, 591.93, 4.10153, 0, 0, -0.887011, 0.461749, 300, 300, 1, 100, 0, 10), +(@OGUID+463, 176586, 1, 6021.43, -4708.45, 788.153, 5.46288, 0, 0, -0.398748, 0.91706, 300, 300, 1, 100, 0, 10), +(@OGUID+464, 176586, 1, 7526.94, -3923.2, 717.491, 2.70526, 0, 0, 0.976295, 0.216442, 300, 300, 1, 100, 0, 10), +(@OGUID+465, 176586, 1, 7253.81, -4350.75, 661.104, 4.20625, 0, 0, -0.861629, 0.507539, 300, 300, 1, 100, 0, 10), +(@OGUID+466, 176586, 1, 6852.75, -2989.41, 601.534, 3.56047, 0, 0, -0.978148, 0.207912, 300, 300, 1, 100, 0, 10), +(@OGUID+467, 176586, 1, 7312.41, -3931.46, 698.608, 1.71042, 0, 0, 0.754709, 0.656059, 300, 300, 1, 100, 0, 10), +(@OGUID+468, 176586, 1, -6202.41, 718.437, 34.3568, 5.51524, 0, 0, -0.374606, 0.927184, 300, 300, 1, 100, 0, 10), +(@OGUID+469, 176586, 1, -8111.55, 268.322, 13.9075, 2.30383, 0, 0, 0.913545, 0.406738, 300, 300, 1, 100, 0, 10), +(@OGUID+470, 176586, 1, -6986.64, 1898.2, 27.2394, 3.64774, 0, 0, -0.968147, 0.250381, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+431, 1243, 0, 'Mountain Silversage', 0, 10), +(@OGUID+432, 1243, 0, 'Mountain Silversage', 0, 10), +(@OGUID+433, 1243, 0, 'Mountain Silversage', 0, 10), +(@OGUID+434, 1243, 0, 'Mountain Silversage', 0, 10), +(@OGUID+435, 1243, 0, 'Mountain Silversage', 0, 10), +(@OGUID+436, 1243, 0, 'Mountain Silversage', 0, 10), +(@OGUID+437, 1243, 0, 'Mountain Silversage', 0, 10), +(@OGUID+438, 1243, 0, 'Mountain Silversage', 0, 10), +(@OGUID+439, 1243, 0, 'Mountain Silversage', 0, 10), +(@OGUID+440, 1243, 0, 'Mountain Silversage', 0, 10), +(@OGUID+441, 402, 0, 'Mountain Silversage', 0, 10), +(@OGUID+442, 402, 0, 'Mountain Silversage', 0, 10), +(@OGUID+443, 402, 0, 'Mountain Silversage', 0, 10), +(@OGUID+444, 402, 0, 'Mountain Silversage', 0, 10), +(@OGUID+445, 1269, 0, 'Mountain Silversage', 0, 10), +(@OGUID+446, 1269, 0, 'Mountain Silversage', 0, 10), +(@OGUID+447, 1218, 0, 'Mountain Silversage', 0, 10), +(@OGUID+448, 1218, 0, 'Mountain Silversage', 0, 10), +(@OGUID+449, 1218, 0, 'Mountain Silversage', 0, 10), +(@OGUID+450, 1218, 0, 'Mountain Silversage', 0, 10), +(@OGUID+451, 1218, 0, 'Mountain Silversage', 0, 10), +(@OGUID+452, 1218, 0, 'Mountain Silversage', 0, 10), +(@OGUID+453, 1218, 0, 'Mountain Silversage', 0, 10), +(@OGUID+454, 1218, 0, 'Mountain Silversage', 0, 10), +(@OGUID+455, 1237, 0, 'Mountain Silversage', 0, 10), +(@OGUID+456, 1237, 0, 'Mountain Silversage', 0, 10), +(@OGUID+457, 1237, 0, 'Mountain Silversage', 0, 10), +(@OGUID+458, 1237, 0, 'Mountain Silversage', 0, 10), +(@OGUID+459, 1237, 0, 'Mountain Silversage', 0, 10), +(@OGUID+460, 1237, 0, 'Mountain Silversage', 0, 10), +(@OGUID+461, 1237, 0, 'Mountain Silversage', 0, 10), +(@OGUID+462, 1237, 0, 'Mountain Silversage', 0, 10), +(@OGUID+463, 1237, 0, 'Mountain Silversage', 0, 10), +(@OGUID+464, 1237, 0, 'Mountain Silversage', 0, 10), +(@OGUID+465, 1237, 0, 'Mountain Silversage', 0, 10), +(@OGUID+466, 1237, 0, 'Mountain Silversage', 0, 10), +(@OGUID+467, 1237, 0, 'Mountain Silversage', 0, 10), +(@OGUID+468, 1222, 0, 'Mountain Silversage', 0, 10), +(@OGUID+469, 1222, 0, 'Mountain Silversage', 0, 10), +(@OGUID+470, 1222, 0, 'Mountain Silversage', 0, 10); + +-- Mountain Silversage +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+471, 176640, 1, 6347.34, -755.314, 486.933, 3.35105, 0, 0, -0.994521, 0.104536, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+471, 401, 0, 'Mountain Silversage', 0, 10); + +-- Plaguebloom +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+472, 176587, 0, 1928.95, -1570.68, 60.4229, 4.85202, 0, 0, -0.656058, 0.75471, 300, 300, 1, 100, 0, 10), +(@OGUID+473, 176587, 0, 1241.56, -2615.21, 90.9294, 1.74533, 0, 0, 0.766044, 0.642789, 300, 300, 1, 100, 0, 10), +(@OGUID+474, 176587, 0, 2368.39, -1456.07, 102.191, 0.157079, 0, 0, 0.0784588, 0.996917, 300, 300, 1, 100, 0, 10), +(@OGUID+475, 176587, 0, 1738.81, -1142.23, 60.915, 4.36332, 0, 0, -0.819152, 0.573577, 300, 300, 1, 100, 0, 10), +(@OGUID+476, 176587, 0, 1707.76, -2348.97, 60.3897, 4.67748, 0, 0, -0.719339, 0.694659, 300, 300, 1, 100, 0, 10), +(@OGUID+477, 176587, 0, 2665.35, -4087.51, 85.4097, 1.91986, 0, 0, 0.819152, 0.573577, 300, 300, 1, 100, 0, 10), +(@OGUID+478, 176587, 0, 1933.45, -3818.12, 131.68, 4.06662, 0, 0, -0.894934, 0.446199, 300, 300, 1, 100, 0, 10), +(@OGUID+479, 176587, 0, 1778.55, -2849.51, 68.2953, 3.31614, 0, 0, -0.996194, 0.087165, 300, 300, 1, 100, 0, 10), +(@OGUID+480, 176587, 0, 3183.07, -4570.98, 108.747, 2.21657, 0, 0, 0.894934, 0.446199, 300, 300, 1, 100, 0, 10), +(@OGUID+481, 176587, 0, 2011.32, -3304.11, 104.193, 5.75959, 0, 0, -0.258819, 0.965926, 300, 300, 1, 100, 0, 10), +(@OGUID+482, 176587, 0, 2815.12, -4047.62, 99.6001, 1.44862, 0, 0, 0.66262, 0.748956, 300, 300, 1, 100, 0, 10), +(@OGUID+483, 176587, 0, 2165.87, -3193.97, 104.805, 2.14675, 0, 0, 0.878817, 0.47716, 300, 300, 1, 100, 0, 10), +(@OGUID+484, 176587, 0, 3403.05, -4913.33, 159.709, 2.30383, 0, 0, 0.913545, 0.406738, 300, 300, 1, 100, 0, 10), +(@OGUID+485, 176587, 0, 2944.23, -3344.95, 113.78, 5.11382, 0, 0, -0.551936, 0.833886, 300, 300, 1, 100, 0, 10), +(@OGUID+486, 176587, 0, 1600.04, -3050.9, 79.4959, 5.32326, 0, 0, -0.461748, 0.887011, 300, 300, 1, 100, 0, 10), +(@OGUID+487, 176587, 0, 3136.98, -3255.85, 154.399, 5.34071, 0, 0, -0.45399, 0.891007, 300, 300, 1, 100, 0, 10), +(@OGUID+488, 176587, 0, 2970.9, -2821.2, 108.048, 5.21854, 0, 0, -0.507538, 0.861629, 300, 300, 1, 100, 0, 10), +(@OGUID+489, 176587, 0, 2350.54, -4982.48, 71.2999, 3.194, 0, 0, -0.999657, 0.0262016, 300, 300, 1, 100, 0, 10), +(@OGUID+490, 176587, 0, 1825.87, -5056.87, 84.4563, 2.32129, 0, 0, 0.91706, 0.39875, 300, 300, 1, 100, 0, 10), +(@OGUID+491, 176587, 0, 2803.09, -3926.93, 101.182, 0.890117, 0, 0, 0.430511, 0.902586, 300, 300, 1, 100, 0, 10), +(@OGUID+492, 176587, 0, 2793.07, -4211.21, 90.0861, 3.17653, 0, 0, -0.999847, 0.0174693, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+472, 1258, 0, 'Plaguebloom', 0, 10), +(@OGUID+473, 1258, 0, 'Plaguebloom', 0, 10), +(@OGUID+474, 1258, 0, 'Plaguebloom', 0, 10), +(@OGUID+475, 1258, 0, 'Plaguebloom', 0, 10), +(@OGUID+476, 1258, 0, 'Plaguebloom', 0, 10), +(@OGUID+477, 0000, 0, 'Plaguebloom', 0, 10), +(@OGUID+478, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+479, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+480, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+481, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+482, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+483, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+484, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+485, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+486, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+487, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+488, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+489, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+490, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+491, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+492, 1265, 0, 'Plaguebloom', 0, 10); + +-- Plaguebloom +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+493, 176641, 1, 3751.09, -1572.76, 215.054, 2.42601, 0, 0, 0.936672, 0.350207, 300, 300, 1, 100, 0, 10), +(@OGUID+494, 176641, 1, 6116.84, -1621.5, 483.045, 3.82227, 0, 0, -0.942641, 0.333808, 300, 300, 1, 100, 0, 10), +(@OGUID+495, 176641, 1, 3655.06, -1045.08, 220.595, 4.41568, 0, 0, -0.803857, 0.594823, 300, 300, 1, 100, 0, 10), +(@OGUID+496, 176641, 1, 6092.02, -1368.32, 393.398, 2.80998, 0, 0, 0.986285, 0.16505, 300, 300, 1, 100, 0, 10), +(@OGUID+497, 176641, 1, 3953.17, -1414.1, 238.544, 3.90954, 0, 0, -0.927183, 0.374608, 300, 300, 1, 100, 0, 10), +(@OGUID+498, 176641, 1, 3817.23, -1151.48, 239.388, 2.46091, 0, 0, 0.942641, 0.333808, 300, 300, 1, 100, 0, 10), +(@OGUID+499, 176641, 1, 6514.45, -784.188, 474.558, 1.51844, 0, 0, 0.688354, 0.725374, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+493, 1227, 0, 'Plaguebloom', 0, 10), +(@OGUID+494, 1227, 0, 'Plaguebloom', 0, 10), +(@OGUID+495, 1227, 0, 'Plaguebloom', 0, 10), +(@OGUID+496, 1227, 0, 'Plaguebloom', 0, 10), +(@OGUID+497, 1227, 0, 'Plaguebloom', 0, 10), +(@OGUID+498, 1227, 0, 'Plaguebloom', 0, 10), +(@OGUID+499, 1227, 0, 'Plaguebloom', 0, 10); + +-- Purple Lotus +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+500, 142140, 1, 4479.58, -6413.74, 125.704, 1.65806, 0, 0, 0.737277, 0.675591, 300, 300, 1, 100, 0, 10), +(@OGUID+501, 142140, 1, 3355.58, -5274.51, 90.7061, 4.92183, 0, 0, -0.62932, 0.777146, 300, 300, 1, 100, 0, 10), +(@OGUID+502, 142140, 1, 3413.71, -5365.9, 116.035, 3.47321, 0, 0, -0.986285, 0.16505, 300, 300, 1, 100, 0, 10), +(@OGUID+503, 142140, 1, 3602.83, -5394.75, 109.249, 3.54302, 0, 0, -0.979924, 0.19937, 300, 300, 1, 100, 0, 10), +(@OGUID+504, 142140, 1, 3484.41, -5216.15, 85.9837, 0.0174525, 0, 0, 0.00872612, 0.999962, 300, 300, 1, 100, 0, 10), +(@OGUID+505, 142140, 1, 3303.1, -4273.25, 126.064, 1.74533, 0, 0, 0.766044, 0.642789, 300, 300, 1, 100, 0, 10), +(@OGUID+506, 142140, 1, 2473.68, -5424.93, 136.958, 5.70723, 0, 0, -0.284015, 0.95882, 300, 300, 1, 100, 0, 10), +(@OGUID+507, 142140, 1, 3842.43, -5248.9, 100.666, 0.0349062, 0, 0, 0.0174522, 0.999848, 300, 300, 1, 100, 0, 10), +(@OGUID+508, 142140, 1, 3367.61, -5068.58, 93.467, 0.279252, 0, 0, 0.139173, 0.990268, 300, 300, 1, 100, 0, 10), +(@OGUID+509, 142140, 1, 3566.69, -5040.05, 84.6414, 4.62512, 0, 0, -0.737277, 0.675591, 300, 300, 1, 100, 0, 10), +(@OGUID+510, 142140, 0, -13873.7, 419.135, 93.5225, 2.9845, 0, 0, 0.996917, 0.0784664, 300, 300, 1, 100, 0, 10), +(@OGUID+511, 142140, 0, -11860.6, 70.7709, 16.6759, 6.10865, 0, 0, -0.0871553, 0.996195, 300, 300, 1, 100, 0, 10), +(@OGUID+512, 142140, 0, -13627.4, -333.377, 9.63133, 0.436332, 0, 0, 0.216439, 0.976296, 300, 300, 1, 100, 0, 10), +(@OGUID+513, 142140, 0, 126.473, -3501.29, 107.241, 1.25664, 0, 0, 0.587785, 0.809017, 300, 300, 1, 100, 0, 10), +(@OGUID+514, 142140, 0, -552.972, -4108.58, 217.702, 5.55015, 0, 0, -0.358368, 0.93358, 300, 300, 1, 100, 0, 10), +(@OGUID+515, 142140, 0, -376.088, -4090.41, 174.874, 3.42085, 0, 0, -0.990268, 0.139175, 300, 300, 1, 100, 0, 10), +(@OGUID+516, 142140, 0, -437.401, -4189.53, 195.066, 3.80482, 0, 0, -0.945518, 0.325568, 300, 300, 1, 100, 0, 10), +(@OGUID+517, 142140, 0, -572.205, -3857.28, 237.416, 2.9496, 0, 0, 0.995396, 0.0958512, 300, 300, 1, 100, 0, 10), +(@OGUID+518, 142140, 0, -576.069, -4000.63, 238.351, 5.68977, 0, 0, -0.292372, 0.956305, 300, 300, 1, 100, 0, 10), +(@OGUID+519, 142140, 0, 396.446, -3322.89, 122.586, 5.60251, 0, 0, -0.333807, 0.942641, 300, 300, 1, 100, 0, 10), +(@OGUID+520, 142140, 0, -661.092, -4066.43, 238.502, 2.25147, 0, 0, 0.902585, 0.430512, 300, 300, 1, 100, 0, 10), +(@OGUID+521, 142140, 1, 2973.27, -62.3183, 98.6058, 5.79449, 0, 0, -0.241921, 0.970296, 300, 300, 1, 100, 0, 10), +(@OGUID+522, 142140, 1, 3333.21, -492.065, 154.218, 0.977383, 0, 0, 0.469471, 0.882948, 300, 300, 1, 100, 0, 10), +(@OGUID+523, 142140, 1, 3157.48, -100.572, 102.735, 2.56563, 0, 0, 0.958819, 0.284016, 300, 300, 1, 100, 0, 10), +(@OGUID+524, 142140, 1, -5531.9, 1398.24, 29.6823, 5.89921, 0, 0, -0.190808, 0.981627, 300, 300, 1, 100, 0, 10), +(@OGUID+525, 142140, 1, -5788.35, 1395.18, 54.0277, 6.26573, 0, 0, -0.00872612, 0.999962, 300, 300, 1, 100, 0, 10), +(@OGUID+526, 142140, 1, -2803.22, 2565.98, 58.5688, 5.95157, 0, 0, -0.165047, 0.986286, 300, 300, 1, 100, 0, 10), +(@OGUID+527, 142140, 1, -2861.22, 2726.29, 73.9762, 5.11382, 0, 0, -0.551936, 0.833886, 300, 300, 1, 100, 0, 10), +(@OGUID+528, 142140, 1, -5727.67, 1476.7, 46.9227, 4.06662, 0, 0, -0.894934, 0.446199, 300, 300, 1, 100, 0, 10), +(@OGUID+529, 142140, 1, -5614.67, 1307.63, 35.5387, 0.296705, 0, 0, 0.147809, 0.989016, 300, 300, 1, 100, 0, 10), +(@OGUID+530, 142140, 1, -2938.85, 2588.07, 52.3408, 6.16101, 0, 0, -0.0610485, 0.998135, 300, 300, 1, 100, 0, 10), +(@OGUID+531, 142140, 1, -3081.09, 2734.34, 71.8853, 6.19592, 0, 0, -0.0436192, 0.999048, 300, 300, 1, 100, 0, 10), +(@OGUID+532, 142140, 1, -4724.32, 3656.13, 9.86938, 0.750491, 0, 0, 0.366501, 0.930418, 300, 300, 1, 100, 0, 10), +(@OGUID+533, 142140, 1, -3084.23, 2005.18, 33.8515, 5.75959, 0, 0, -0.258819, 0.965926, 300, 300, 1, 100, 0, 10), +(@OGUID+534, 142140, 1, -8274.79, -4711.89, 0.241838, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+535, 142140, 1, -8306.15, -4601.28, 8.87698, 4.86947, 0, 0, -0.649447, 0.760406, 300, 300, 1, 100, 0, 10), +(@OGUID+536, 142140, 1, -8839.33, -3354.38, 9.368, 4.90438, 0, 0, -0.636078, 0.771625, 300, 300, 1, 100, 0, 10), +(@OGUID+537, 142140, 1, -9632.66, -2808.55, 11.3467, 2.42601, 0, 0, 0.936672, 0.350207, 300, 300, 1, 100, 0, 10), +(@OGUID+538, 142140, 1, -8930.65, -3440.76, 14.1072, 3.15906, 0, 0, -0.999962, 0.00873464, 300, 300, 1, 100, 0, 10), +(@OGUID+539, 142140, 1, -8897.08, -3526.76, 14.5533, 5.48033, 0, 0, -0.390731, 0.920505, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+500, 1239, 0, 'Purple Lotus', 0, 10), +(@OGUID+501, 1239, 0, 'Purple Lotus', 0, 10), +(@OGUID+502, 1239, 0, 'Purple Lotus', 0, 10), +(@OGUID+503, 1239, 0, 'Purple Lotus', 0, 10), +(@OGUID+504, 1239, 0, 'Purple Lotus', 0, 10), +(@OGUID+505, 1239, 0, 'Purple Lotus', 0, 10), +(@OGUID+506, 1239, 0, 'Purple Lotus', 0, 10), +(@OGUID+507, 1239, 0, 'Purple Lotus', 0, 10), +(@OGUID+508, 1239, 0, 'Purple Lotus', 0, 10), +(@OGUID+509, 1239, 0, 'Purple Lotus', 0, 10), +(@OGUID+510, 1199, 0, 'Purple Lotus', 0, 10), +(@OGUID+511, 1199, 0, 'Purple Lotus', 0, 10), +(@OGUID+512, 1199, 0, 'Purple Lotus', 0, 10), +(@OGUID+513, 1254, 0, 'Purple Lotus', 0, 10), +(@OGUID+514, 1254, 0, 'Purple Lotus', 0, 10), +(@OGUID+515, 1254, 0, 'Purple Lotus', 0, 10), +(@OGUID+516, 1254, 0, 'Purple Lotus', 0, 10), +(@OGUID+517, 1254, 0, 'Purple Lotus', 0, 10), +(@OGUID+518, 1254, 0, 'Purple Lotus', 0, 10), +(@OGUID+519, 1254, 0, 'Purple Lotus', 0, 10), +(@OGUID+520, 1254, 0, 'Purple Lotus', 0, 10), +(@OGUID+521, 1305, 0, 'Purple Lotus', 0, 10), +(@OGUID+522, 1305, 0, 'Purple Lotus', 0, 10), +(@OGUID+523, 1305, 0, 'Purple Lotus', 0, 10), +(@OGUID+524, 1324, 0, 'Purple Lotus', 0, 10), +(@OGUID+525, 1324, 0, 'Purple Lotus', 0, 10), +(@OGUID+526, 1324, 0, 'Purple Lotus', 0, 10), +(@OGUID+527, 1324, 0, 'Purple Lotus', 0, 10), +(@OGUID+528, 1324, 0, 'Purple Lotus', 0, 10), +(@OGUID+529, 1324, 0, 'Purple Lotus', 0, 10), +(@OGUID+530, 1324, 0, 'Purple Lotus', 0, 10), +(@OGUID+531, 1324, 0, 'Purple Lotus', 0, 10), +(@OGUID+532, 1324, 0, 'Purple Lotus', 0, 10), +(@OGUID+533, 1324, 0, 'Purple Lotus', 0, 10), +(@OGUID+534, 1205, 0, 'Purple Lotus', 0, 10), +(@OGUID+535, 1205, 0, 'Purple Lotus', 0, 10), +(@OGUID+536, 1205, 0, 'Purple Lotus', 0, 10), +(@OGUID+537, 1205, 0, 'Purple Lotus', 0, 10), +(@OGUID+538, 1205, 0, 'Purple Lotus', 0, 10), +(@OGUID+539, 1205, 0, 'Purple Lotus', 0, 10); + +-- Purple Lotus +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+541, 180165, 309, -12074.7, -1696.28, 46.4935, 2.02458, 0, 0, 0.848047, 0.529921, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+541, 1035, 0, 'Purple Lotus', 0, 10); + +-- Sungrass +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+542, 142142, 0, -11689.1, -2784.81, 6.81024, 3.01941, 0, 0, 0.998135, 0.0610518, 300, 300, 1, 100, 0, 10), +(@OGUID+543, 142142, 1, 2567.29, -4812.77, 146.907, 0.209439, 0, 0, 0.104528, 0.994522, 300, 300, 1, 100, 0, 10), +(@OGUID+544, 142142, 1, 4567.38, -7043.32, 98.999, 2.35619, 0, 0, 0.92388, 0.382683, 300, 300, 1, 100, 0, 10), +(@OGUID+545, 142142, 1, 4773.87, -5952.3, 94.849, 1.29154, 0, 0, 0.601814, 0.798636, 300, 300, 1, 100, 0, 10), +(@OGUID+546, 142142, 1, 2384.05, -6489.01, 102.738, 1.71042, 0, 0, 0.754709, 0.656059, 300, 300, 1, 100, 0, 10), +(@OGUID+547, 142142, 1, 2463.71, -6881.77, 101.981, 5.61996, 0, 0, -0.325567, 0.945519, 300, 300, 1, 100, 0, 10), +(@OGUID+548, 142142, 1, 2294.25, -6857.62, 120.338, 6.24828, 0, 0, -0.0174522, 0.999848, 300, 300, 1, 100, 0, 10), +(@OGUID+549, 142142, 1, 2838.22, -6054.96, 109.6, 1.16937, 0, 0, 0.551936, 0.833886, 300, 300, 1, 100, 0, 10), +(@OGUID+550, 142142, 1, 2301.37, -6068.4, 106.79, 5.044, 0, 0, -0.580703, 0.814116, 300, 300, 1, 100, 0, 10), +(@OGUID+551, 142142, 1, 2346.2, -6221.83, 104.59, 0.418879, 0, 0, 0.207911, 0.978148, 300, 300, 1, 100, 0, 10), +(@OGUID+552, 142142, 1, 2602.36, -3968.21, 114.569, 4.39823, 0, 0, -0.809016, 0.587786, 300, 300, 1, 100, 0, 10), +(@OGUID+553, 142142, 1, 2587.47, -5770.75, 101.551, 5.41052, 0, 0, -0.422618, 0.906308, 300, 300, 1, 100, 0, 10), +(@OGUID+554, 142142, 0, 2232.51, -1598.6, 81.9782, 5.07891, 0, 0, -0.566406, 0.824126, 300, 300, 1, 100, 0, 10), +(@OGUID+555, 142142, 0, 2748.89, -1676.89, 130.522, 5.44543, 0, 0, -0.406736, 0.913546, 300, 300, 1, 100, 0, 10), +(@OGUID+556, 142142, 0, 2526.7, -1955.44, 99.2084, 3.52557, 0, 0, -0.981627, 0.190812, 300, 300, 1, 100, 0, 10), +(@OGUID+557, 142142, 0, 287.506, -4188.89, 120.249, 5.44543, 0, 0, -0.406736, 0.913546, 300, 300, 1, 100, 0, 10), +(@OGUID+558, 142142, 0, 153.413, -4587.04, 119.025, 3.31614, 0, 0, -0.996194, 0.087165, 300, 300, 1, 100, 0, 10), +(@OGUID+559, 142142, 0, 1596, -4032.47, 149.646, 3.08918, 0, 0, 0.999657, 0.0262016, 300, 300, 1, 100, 0, 10), +(@OGUID+560, 142142, 0, 2984.45, -4755.25, 96.862, 4.4855, 0, 0, -0.782608, 0.622515, 300, 300, 1, 100, 0, 10), +(@OGUID+561, 142142, 0, 2817.25, -4655.78, 88.8269, 4.83456, 0, 0, -0.66262, 0.748956, 300, 300, 1, 100, 0, 10), +(@OGUID+562, 142142, 1, -3318.46, 2785.15, 67.0699, 6.14356, 0, 0, -0.0697556, 0.997564, 300, 300, 1, 100, 0, 10), +(@OGUID+563, 142142, 1, -5784.26, 1567.32, 74.1529, 1.78023, 0, 0, 0.777145, 0.629321, 300, 300, 1, 100, 0, 10), +(@OGUID+564, 142142, 1, -4953.23, 1387.24, 50.3166, 1.02974, 0, 0, 0.492423, 0.870356, 300, 300, 1, 100, 0, 10), +(@OGUID+565, 142142, 1, -5289.55, 448.153, 47.3449, 5.67232, 0, 0, -0.300705, 0.953717, 300, 300, 1, 100, 0, 10), +(@OGUID+566, 142142, 1, -5483.07, 1589.38, 41.2128, 0.366518, 0, 0, 0.182235, 0.983255, 300, 300, 1, 100, 0, 10), +(@OGUID+567, 142142, 1, -5048.58, 380.655, 12.5009, 3.87463, 0, 0, -0.93358, 0.358368, 300, 300, 1, 100, 0, 10), +(@OGUID+568, 142142, 1, -5827.61, 1567.2, 78.7316, 1.29154, 0, 0, 0.601814, 0.798636, 300, 300, 1, 100, 0, 10), +(@OGUID+569, 142142, 1, -4911.99, 1540.06, 80.1796, 3.21142, 0, 0, -0.999391, 0.0349061, 300, 300, 1, 100, 0, 10), +(@OGUID+570, 142142, 1, -5168.84, 1370.13, 42.1852, 3.54302, 0, 0, -0.979924, 0.19937, 300, 300, 1, 100, 0, 10), +(@OGUID+571, 142142, 1, -5181.68, 278.14, 55.0489, 2.9496, 0, 0, 0.995396, 0.0958512, 300, 300, 1, 100, 0, 10), +(@OGUID+572, 142142, 1, -5050.48, 1405.52, 39.7238, 5.72468, 0, 0, -0.275637, 0.961262, 300, 300, 1, 100, 0, 10), +(@OGUID+573, 142142, 1, -3113.52, 2545.8, 49.0441, 4.41568, 0, 0, -0.803857, 0.594823, 300, 300, 1, 100, 0, 10), +(@OGUID+574, 142142, 1, -5204.04, 1462.39, 46.935, 6.14356, 0, 0, -0.0697556, 0.997564, 300, 300, 1, 100, 0, 10), +(@OGUID+575, 142142, 1, -3913.02, 1950.56, 80.0562, 3.54302, 0, 0, -0.979924, 0.19937, 300, 300, 1, 100, 0, 10), +(@OGUID+576, 142142, 1, -5380.1, 1480.28, 25.6769, 4.99164, 0, 0, -0.601814, 0.798636, 300, 300, 1, 100, 0, 10), +(@OGUID+577, 142142, 1, -5150.22, 644.62, 47.9096, 2.87979, 0, 0, 0.991445, 0.130528, 300, 300, 1, 100, 0, 10), +(@OGUID+578, 142142, 1, -5175.75, 1287.6, 49.8342, 5.88176, 0, 0, -0.199368, 0.979925, 300, 300, 1, 100, 0, 10), +(@OGUID+579, 142142, 1, -5210.45, 531.914, 53.0045, 6.26573, 0, 0, -0.00872612, 0.999962, 300, 300, 1, 100, 0, 10), +(@OGUID+580, 142142, 1, -2942.71, 2481.39, 33.4109, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+581, 142142, 1, -6743.27, -1978.47, -269.471, 2.25147, 0, 0, 0.902585, 0.430512, 300, 300, 1, 100, 0, 10), +(@OGUID+582, 142142, 1, -8039.56, -1250.82, -269.944, 1.76278, 0, 0, 0.771625, 0.636078, 300, 300, 1, 100, 0, 10), +(@OGUID+583, 142142, 1, -6872.32, -486.415, -270.232, 4.25861, 0, 0, -0.848047, 0.529921, 300, 300, 1, 100, 0, 10), +(@OGUID+584, 142142, 1, -7509.15, -1252.15, -269.691, 1.01229, 0, 0, 0.484809, 0.87462, 300, 300, 1, 100, 0, 10), +(@OGUID+585, 142142, 1, -7819.97, -854.831, -269.248, 4.32842, 0, 0, -0.829037, 0.559194, 300, 300, 1, 100, 0, 10), +(@OGUID+586, 142142, 1, -6899.5, 1683.76, 3.64683, 1.71042, 0, 0, 0.754709, 0.656059, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+542, 1277, 0, 'Sungrass', 0, 10), +(@OGUID+543, 1240, 0, 'Sungrass', 0, 10), +(@OGUID+544, 1240, 0, 'Sungrass', 0, 10), +(@OGUID+545, 1240, 0, 'Sungrass', 0, 10), +(@OGUID+546, 1240, 0, 'Sungrass', 0, 10), +(@OGUID+547, 1240, 0, 'Sungrass', 0, 10), +(@OGUID+548, 1240, 0, 'Sungrass', 0, 10), +(@OGUID+549, 1240, 0, 'Sungrass', 0, 10), +(@OGUID+550, 1240, 0, 'Sungrass', 0, 10), +(@OGUID+551, 1240, 0, 'Sungrass', 0, 10), +(@OGUID+552, 1240, 0, 'Sungrass', 0, 10), +(@OGUID+553, 1240, 0, 'Sungrass', 0, 10), +(@OGUID+554, 1261, 0, 'Sungrass', 0, 10), +(@OGUID+555, 1261, 0, 'Sungrass', 0, 10), +(@OGUID+556, 1261, 0, 'Sungrass', 0, 10), +(@OGUID+557, 1250, 0, 'Sungrass', 0, 10), +(@OGUID+558, 1250, 0, 'Sungrass', 0, 10), +(@OGUID+559, 1320, 0, 'Sungrass', 0, 10), +(@OGUID+560, 1320, 0, 'Sungrass', 0, 10), +(@OGUID+561, 1320, 0, 'Sungrass', 0, 10), +(@OGUID+562, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+563, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+564, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+565, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+566, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+567, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+568, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+569, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+570, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+571, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+572, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+573, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+574, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+575, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+576, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+577, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+578, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+579, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+580, 1192, 0, 'Sungrass', 0, 10), +(@OGUID+581, 1215, 0, 'Sungrass', 0, 10), +(@OGUID+582, 1215, 0, 'Sungrass', 0, 10), +(@OGUID+583, 1215, 0, 'Sungrass', 0, 10), +(@OGUID+584, 1215, 0, 'Sungrass', 0, 10), +(@OGUID+585, 1215, 0, 'Sungrass', 0, 10), +(@OGUID+586, 1223, 0, 'Sungrass', 0, 10); + +-- Sungrass +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+587, 180164, 309, -11556.2, -1480.03, 67.1307, 5.72468, 0, 0, -0.275637, 0.961262, 300, 300, 1, 100, 0, 10), +(@OGUID+588, 180164, 309, -11855.6, -1886.94, 64.4054, 0.157079, 0, 0, 0.0784588, 0.996917, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+587, 1035, 0, 'Sungrass', 0, 10), +(@OGUID+588, 1035, 0, 'Sungrass', 0, 10); + +-- Black Lotus +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+589, 176589, 0, -7955.56, -2506.87, 133.805, 3.42085, 0, 0, -0.990268, 0.139175, 300, 300, 1, 100, 0, 10), +(@OGUID+590, 176589, 0, -8238.41, -1756.23, 147.111, 1.5708, 0, 0, 0.707107, 0.707107, 300, 300, 1, 100, 0, 10), +(@OGUID+591, 176589, 0, -7743.69, -1867.76, 133.444, 2.88633, 0, 0, 0.991866, 0.127286, 300, 300, 1, 100, 0, 10), +(@OGUID+592, 176589, 0, -7762.16, -1518.31, 131.932, 4.02515, 0, 0, -0.903993, 0.427548, 300, 300, 1, 100, 0, 10), +(@OGUID+593, 176589, 0, -7776.3, -2699.34, 173.787, 4.5204, 0, 0, -0.771625, 0.636078, 300, 300, 1, 100, 0, 10), +(@OGUID+594, 176589, 0, -8093.14, -1762.91, 132.783, 4.0448, 0, 0, -0.899748, 0.43641, 300, 300, 1, 100, 0, 10), +(@OGUID+595, 176589, 0, -7983.33, -820.788, 129.457, 5.07369, 0, 0, -0.568554, 0.822646, 300, 300, 1, 100, 0, 10), +(@OGUID+596, 176589, 0, -7986.06, -1308.1, 133.428, 5.77704, 0, 0, -0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+597, 176589, 0, -7751.55, -2115.85, 133.439, 1.46608, 0, 0, 0.66913, 0.743145, 300, 300, 1, 100, 0, 10), +(@OGUID+598, 176589, 0, -7816.15, -2214.31, 133.439, 5.32657, 0, 0, -0.460277, 0.887776, 300, 300, 1, 100, 0, 10), +(@OGUID+599, 176589, 0, 3008.31, -4925.18, 102.372, 0.418879, 0, 0, 0.207911, 0.978148, 300, 300, 1, 100, 0, 10), +(@OGUID+600, 176589, 0, 1701.03, -4586.58, 77.4803, 0.00393295, 0, 0, 0.00196648, 0.999998, 300, 300, 1, 100, 0, 10), +(@OGUID+601, 176589, 0, 2007.52, -4295.16, 9.66871, 3.12187, 0, 0, 0.999951, 0.0098628, 300, 300, 1, 100, 0, 10), +(@OGUID+602, 176589, 1, 5487.68, -4936.53, 856.087, 4.45059, 0, 0, -0.793353, 0.608762, 300, 300, 1, 100, 0, 10), +(@OGUID+603, 176589, 1, 6442.66, -3168.65, 572.274, 2.9496, 0, 0, 0.995396, 0.0958512, 300, 300, 1, 100, 0, 10), +(@OGUID+604, 176589, 1, 6801.55, -5166.48, 734.073, 1.71042, 0, 0, 0.754709, 0.656059, 300, 300, 1, 100, 0, 10), +(@OGUID+605, 176589, 1, -6766.82, 1221.96, 2.61173, 3.49502, 0, 0, -0.984426, 0.175797, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+589, 303, 0, 'Black Lotus', 0, 10), +(@OGUID+590, 303, 0, 'Black Lotus', 0, 10), +(@OGUID+591, 303, 0, 'Black Lotus', 0, 10), +(@OGUID+592, 303, 0, 'Black Lotus', 0, 10), +(@OGUID+593, 303, 0, 'Black Lotus', 0, 10), +(@OGUID+594, 303, 0, 'Black Lotus', 0, 10), +(@OGUID+595, 303, 0, 'Black Lotus', 0, 10), +(@OGUID+596, 303, 0, 'Black Lotus', 0, 10), +(@OGUID+597, 303, 0, 'Black Lotus', 0, 10), +(@OGUID+598, 303, 0, 'Black Lotus', 0, 10), +(@OGUID+599, 301, 0, 'Black Lotus', 0, 10), +(@OGUID+600, 301, 0, 'Black Lotus', 0, 10), +(@OGUID+601, 301, 0, 'Black Lotus', 0, 10), +(@OGUID+602, 302, 0, 'Black Lotus', 0, 10), +(@OGUID+603, 302, 0, 'Black Lotus', 0, 10), +(@OGUID+604, 302, 0, 'Black Lotus', 0, 10), +(@OGUID+605, 300, 0, 'Black Lotus', 0, 10); + +UPDATE `gameobject` SET `spawntimesecsmin` = 3600, `spawntimesecsmax` = 3600, `spawn_flags` = 0 WHERE `id` = 176589; +UPDATE `pool_template` SET `description`='Black Lotus in Burning Steppes' WHERE `entry`=303; +UPDATE `pool_template` SET `description`='Black Lotus in Winterspring' WHERE `entry`=302; +UPDATE `pool_template` SET `description`='Black Lotus in Eastern Plaguelands' WHERE `entry`=301; +UPDATE `pool_template` SET `description`='Black Lotus in Silithus' WHERE `entry`=300; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 2a76c7325d7e8fb3cf8b30baab8db2027b8e0388 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 23 Jun 2023 15:21:07 +0100 Subject: [PATCH 003/426] Add Missing Herbs (#1966) --- sql/migrations/20230619180515_world.sql | 1312 +++++++++++++++++++++++ 1 file changed, 1312 insertions(+) create mode 100644 sql/migrations/20230619180515_world.sql diff --git a/sql/migrations/20230619180515_world.sql b/sql/migrations/20230619180515_world.sql new file mode 100644 index 00000000000..14c7698a1c1 --- /dev/null +++ b/sql/migrations/20230619180515_world.sql @@ -0,0 +1,1312 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230619180515'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230619180515'); +-- Add your query below. + + +SET @OGUID = 58193; + +-- Goldthorn +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 2046, 0, -10026.5, -3443.86, 31.5808, 5.79449, 0, 0, -0.241921, 0.970296, 300, 300, 1, 100, 0, 10), +(@OGUID+2, 2046, 0, -10107.6, -2924.88, 25.2096, 3.71755, 0, 0, -0.958819, 0.284016, 300, 300, 1, 100, 0, 10), +(@OGUID+3, 2046, 0, -9973.39, -3540.01, 28.4973, 5.25344, 0, 0, -0.492423, 0.870356, 300, 300, 1, 100, 0, 10), +(@OGUID+4, 2046, 0, -10981.4, -3892.65, 42.7011, 0.575957, 0, 0, 0.284015, 0.95882, 300, 300, 1, 100, 0, 10), +(@OGUID+5, 2046, 0, -11078.3, -3877.68, 19.3495, 3.4383, 0, 0, -0.989016, 0.147811, 300, 300, 1, 100, 0, 10), +(@OGUID+6, 2046, 0, -9749.54, -3846.09, 32.3932, 5.44543, 0, 0, -0.406736, 0.913546, 300, 300, 1, 100, 0, 10), +(@OGUID+7, 2046, 1, -3475.12, -3394.15, 54.3003, 1.58825, 0, 0, 0.71325, 0.70091, 300, 300, 1, 100, 0, 10), +(@OGUID+8, 2046, 1, -3516.12, -3373.27, 48.2468, 4.64258, 0, 0, -0.731354, 0.681998, 300, 300, 1, 100, 0, 10), +(@OGUID+9, 2046, 1, -4987.32, -3401.65, 59.1349, 3.07177, 0, 0, 0.999391, 0.0349061, 300, 300, 1, 100, 0, 10), +(@OGUID+10, 2046, 1, -4042.41, -3858.29, 49.0787, 2.53072, 0, 0, 0.953716, 0.300708, 300, 300, 1, 100, 0, 10), +(@OGUID+11, 2046, 1, -3927.61, -3896.96, 63.9424, 4.06662, 0, 0, -0.894934, 0.446199, 300, 300, 1, 100, 0, 10), +(@OGUID+12, 2046, 1, 3696.16, -4604.62, 126.081, 4.7822, 0, 0, -0.681998, 0.731354, 300, 300, 1, 100, 0, 10), +(@OGUID+13, 2046, 1, 2660.18, -4461.22, 107.136, 1.3439, 0, 0, 0.622514, 0.782609, 300, 300, 1, 100, 0, 10), +(@OGUID+14, 2046, 0, -13942.2, 15.2828, 20.7062, 5.98648, 0, 0, -0.147809, 0.989016, 300, 300, 1, 100, 0, 10), +(@OGUID+15, 2046, 0, -11684.7, 920.657, 4.31604, 3.73501, 0, 0, -0.956305, 0.292372, 300, 300, 1, 100, 0, 10), +(@OGUID+16, 2046, 0, -13496.1, 31.5033, 43.5787, 0.244346, 0, 0, 0.121869, 0.992546, 300, 300, 1, 100, 0, 10), +(@OGUID+17, 2046, 0, -12643.5, -792.082, 57.2894, 6.19592, 0, 0, -0.0436192, 0.999048, 300, 300, 1, 100, 0, 10), +(@OGUID+18, 2046, 0, -13374.7, 477.492, 24.861, 3.47321, 0, 0, -0.986285, 0.16505, 300, 300, 1, 100, 0, 10), +(@OGUID+19, 2046, 0, -13271.3, -420.135, 21.2608, 0.837757, 0, 0, 0.406736, 0.913546, 300, 300, 1, 100, 0, 10), +(@OGUID+20, 2046, 0, -12756.6, -642.138, 67.7099, 3.24635, 0, 0, -0.998629, 0.0523532, 300, 300, 1, 100, 0, 10), +(@OGUID+21, 2046, 0, -13669.2, -11.307, 46.4991, 3.85718, 0, 0, -0.936671, 0.35021, 300, 300, 1, 100, 0, 10), +(@OGUID+22, 2046, 0, -12828.1, -588.003, 77.0679, 1.0821, 0, 0, 0.515038, 0.857168, 300, 300, 1, 100, 0, 10), +(@OGUID+23, 2046, 0, -12232, -828.062, 37.6373, 1.20428, 0, 0, 0.566406, 0.824126, 300, 300, 1, 100, 0, 10), +(@OGUID+24, 2046, 0, -12422.6, -697.771, 33.9253, 1.41372, 0, 0, 0.649447, 0.760406, 300, 300, 1, 100, 0, 10), +(@OGUID+25, 2046, 0, -12608.8, -793.786, 56.192, 1.25664, 0, 0, 0.587785, 0.809017, 300, 300, 1, 100, 0, 10), +(@OGUID+26, 2046, 0, -13015, -847.127, 71.4595, 2.60054, 0, 0, 0.96363, 0.267241, 300, 300, 1, 100, 0, 10), +(@OGUID+27, 2046, 0, -12348.3, -559.049, 28.1487, 3.7001, 0, 0, -0.961261, 0.27564, 300, 300, 1, 100, 0, 10), +(@OGUID+28, 2046, 0, -12913.3, 89.1847, 32.6031, 1.23918, 0, 0, 0.580703, 0.814116, 300, 300, 1, 100, 0, 10), +(@OGUID+29, 2046, 0, -12266.6, -912.408, 50.1701, 5.21854, 0, 0, -0.507538, 0.861629, 300, 300, 1, 100, 0, 10), +(@OGUID+30, 2046, 0, -12887.6, -813.238, 54.6633, 3.47321, 0, 0, -0.986285, 0.16505, 300, 300, 1, 100, 0, 10), +(@OGUID+31, 2046, 0, 908.579, -400.396, 153.778, 1.18682, 0, 0, 0.559193, 0.829038, 300, 300, 1, 100, 0, 10), +(@OGUID+32, 2046, 0, 931.901, -513.277, 149.803, 0.872664, 0, 0, 0.422618, 0.906308, 300, 300, 1, 100, 0, 10), +(@OGUID+33, 2046, 0, 1227.19, -555.764, 74.0355, 3.73501, 0, 0, -0.956305, 0.292372, 300, 300, 1, 100, 0, 10), +(@OGUID+34, 2046, 0, 402.899, 7.86697, 129.892, 4.50295, 0, 0, -0.777145, 0.629321, 300, 300, 1, 100, 0, 10), +(@OGUID+35, 2046, 0, 998.437, -277.434, 59.6136, 2.16421, 0, 0, 0.882947, 0.469473, 300, 300, 1, 100, 0, 10), +(@OGUID+36, 2046, 0, 781.663, -164.077, 129.533, 0.855211, 0, 0, 0.414693, 0.909961, 300, 300, 1, 100, 0, 10), +(@OGUID+37, 2046, 0, 285.271, -579.124, 156.518, 2.54818, 0, 0, 0.956305, 0.292372, 300, 300, 1, 100, 0, 10), +(@OGUID+38, 2046, 0, 1155.47, -693.921, 83.8919, 0.767944, 0, 0, 0.374606, 0.927184, 300, 300, 1, 100, 0, 10), +(@OGUID+39, 2046, 0, 948.027, -609.01, 155.366, 4.95674, 0, 0, -0.615661, 0.788011, 300, 300, 1, 100, 0, 10), +(@OGUID+40, 2046, 0, 664.564, -67.5244, 119.826, 0.296705, 0, 0, 0.147809, 0.989016, 300, 300, 1, 100, 0, 10), +(@OGUID+41, 2046, 0, 619.542, -181.708, 151.73, 1.90241, 0, 0, 0.814116, 0.580703, 300, 300, 1, 100, 0, 10), +(@OGUID+42, 2046, 0, 765.66, -454.232, 161.759, 1.48353, 0, 0, 0.67559, 0.737278, 300, 300, 1, 100, 0, 10), +(@OGUID+43, 2046, 0, -1020.92, -2702.52, 51.9567, 2.35619, 0, 0, 0.92388, 0.382683, 300, 300, 1, 100, 0, 10), +(@OGUID+44, 2046, 0, -916.123, -3631.37, 86.0909, 1.74533, 0, 0, 0.766044, 0.642789, 300, 300, 1, 100, 0, 10), +(@OGUID+45, 2046, 0, -1108.3, -2353.25, 50.4907, 4.90438, 0, 0, -0.636078, 0.771625, 300, 300, 1, 100, 0, 10), +(@OGUID+46, 2046, 0, -1166.56, -2248.82, 55.3638, 3.14159, 0, 0, -1, 0, 300, 300, 1, 100, 0, 10), +(@OGUID+47, 2046, 0, -1871.93, -2893.33, 74.7472, 3.31614, 0, 0, -0.996194, 0.087165, 300, 300, 1, 100, 0, 10), +(@OGUID+48, 2046, 0, -1191, -2335.38, 61.453, 1.29154, 0, 0, 0.601814, 0.798636, 300, 300, 1, 100, 0, 10), +(@OGUID+49, 2046, 0, -1307.03, -3513.28, 54.3482, 1.25664, 0, 0, 0.587785, 0.809017, 300, 300, 1, 100, 0, 10), +(@OGUID+50, 2046, 0, -1960.76, -2669.37, 85.4559, 1.78023, 0, 0, 0.777145, 0.629321, 300, 300, 1, 100, 0, 10), +(@OGUID+51, 2046, 0, 455.576, -3751.14, 130.958, 4.66003, 0, 0, -0.725374, 0.688355, 300, 300, 1, 100, 0, 10), +(@OGUID+52, 2046, 0, -173.62, -2876.62, 116.342, 2.44346, 0, 0, 0.939692, 0.34202, 300, 300, 1, 100, 0, 10), +(@OGUID+53, 2046, 0, -758.931, -4435.09, 13.9278, 5.63741, 0, 0, -0.317305, 0.948324, 300, 300, 1, 100, 0, 10), +(@OGUID+54, 2046, 0, -304.315, -2628.02, 117.854, 2.96704, 0, 0, 0.996194, 0.087165, 300, 300, 1, 100, 0, 10), +(@OGUID+55, 2046, 0, 100.139, -3533.69, 119.1, 0.226892, 0, 0, 0.113203, 0.993572, 300, 300, 1, 100, 0, 10), +(@OGUID+56, 2046, 0, -15.1667, -2949.08, 120.501, 2.74016, 0, 0, 0.979924, 0.19937, 300, 300, 1, 100, 0, 10), +(@OGUID+57, 2046, 0, -928.493, -1555, 57.1926, 1.88495, 0, 0, 0.809016, 0.587786, 300, 300, 1, 100, 0, 10), +(@OGUID+58, 2046, 1, -4118.6, 642.715, 94.2422, 4.34587, 0, 0, -0.824126, 0.566406, 300, 300, 1, 100, 0, 10), +(@OGUID+59, 2046, 1, -3549.99, 1917.53, 72.6504, 3.68265, 0, 0, -0.96363, 0.267241, 300, 300, 1, 100, 0, 10), +(@OGUID+60, 2046, 1, -3543.01, 2837.01, 104.82, 2.84488, 0, 0, 0.989016, 0.147811, 300, 300, 1, 100, 0, 10), +(@OGUID+61, 2046, 1, -5369.96, 1716.61, 80.3186, 5.5676, 0, 0, -0.350207, 0.936672, 300, 300, 1, 100, 0, 10), +(@OGUID+62, 2046, 1, -3559.42, 2450.16, 69.5719, 6.23083, 0, 0, -0.0261765, 0.999657, 300, 300, 1, 100, 0, 10), +(@OGUID+63, 2046, 1, -5002.72, 1486.77, 57.9891, 0.663223, 0, 0, 0.325567, 0.945519, 300, 300, 1, 100, 0, 10), +(@OGUID+64, 2046, 1, -5302.05, 2153.63, 20.1139, 1.58825, 0, 0, 0.71325, 0.70091, 300, 300, 1, 100, 0, 10), +(@OGUID+65, 2046, 1, -5123.21, 756.29, 68.5902, 0.872664, 0, 0, 0.422618, 0.906308, 300, 300, 1, 100, 0, 10), +(@OGUID+66, 2046, 1, -5079.36, 1356.48, 51.8026, 4.5204, 0, 0, -0.771625, 0.636078, 300, 300, 1, 100, 0, 10), +(@OGUID+67, 2046, 1, -4477.3, -391.763, 51.7637, 0.855211, 0, 0, 0.414693, 0.909961, 300, 300, 1, 100, 0, 10), +(@OGUID+68, 2046, 1, -5590.67, 1535.51, 65.283, 3.42085, 0, 0, -0.990268, 0.139175, 300, 300, 1, 100, 0, 10), +(@OGUID+69, 2046, 1, -5751.39, 1687.3, 97.86, 0.226892, 0, 0, 0.113203, 0.993572, 300, 300, 1, 100, 0, 10), +(@OGUID+70, 2046, 1, -5247.32, 149.33, 72.8741, 5.35816, 0, 0, -0.446198, 0.894935, 300, 300, 1, 100, 0, 10), +(@OGUID+71, 2046, 1, -4022.94, 2508.74, 25.4089, 5.63741, 0, 0, -0.317305, 0.948324, 300, 300, 1, 100, 0, 10), +(@OGUID+72, 2046, 1, -3253, 2479.68, 63.973, 0.104719, 0, 0, 0.0523357, 0.99863, 300, 300, 1, 100, 0, 10), +(@OGUID+73, 2046, 1, -3764.7, 78.4056, 155.243, 0.191985, 0, 0, 0.0958452, 0.995396, 300, 300, 1, 100, 0, 10), +(@OGUID+74, 2046, 1, -3973.95, 473.301, 88.8204, 2.05949, 0, 0, 0.857167, 0.515038, 300, 300, 1, 100, 0, 10), +(@OGUID+75, 2046, 1, -2758.39, 2504.58, 73.6367, 0.855211, 0, 0, 0.414693, 0.909961, 300, 300, 1, 100, 0, 10), +(@OGUID+76, 2046, 1, -3315.73, 2820.58, 81.7052, 0.453785, 0, 0, 0.224951, 0.97437, 300, 300, 1, 100, 0, 10), +(@OGUID+77, 2046, 1, -4283.14, 2244.89, 23.307, 1.90241, 0, 0, 0.814116, 0.580703, 300, 300, 1, 100, 0, 10), +(@OGUID+78, 2046, 1, -3987.5, 1982.65, 98.1448, 0.820303, 0, 0, 0.398748, 0.91706, 300, 300, 1, 100, 0, 10), +(@OGUID+79, 2046, 129, 2596.79, 764.006, 53.793, 0.994837, 0, 0, 0.477159, 0.878817, 300, 300, 1, 100, 0, 10), +(@OGUID+80, 2046, 129, 2434.53, 988.045, 48.8065, 1.09956, 0, 0, 0.522498, 0.85264, 300, 300, 1, 100, 0, 10), +(@OGUID+81, 2046, 129, 2413.05, 978.766, 57.781, 3.99681, 0, 0, -0.909961, 0.414694, 300, 300, 1, 100, 0, 10), +(@OGUID+82, 2046, 129, 2515.1, 882.079, 46.5672, 4.34587, 0, 0, -0.824126, 0.566406, 300, 300, 1, 100, 0, 10), +(@OGUID+83, 2046, 129, 2492.93, 854.192, 49.0885, 5.06146, 0, 0, -0.573576, 0.819152, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 1313, 0, 'Goldthorn', 0, 10), +(@OGUID+2, 1313, 0, 'Goldthorn', 0, 10), +(@OGUID+3, 1313, 0, 'Goldthorn', 0, 10), +(@OGUID+4, 1313, 0, 'Goldthorn', 0, 10), +(@OGUID+5, 1313, 0, 'Goldthorn', 0, 10), +(@OGUID+6, 1313, 0, 'Goldthorn', 0, 10), +(@OGUID+7, 1103, 0, 'Goldthorn', 0, 10), +(@OGUID+8, 1103, 0, 'Goldthorn', 0, 10), +(@OGUID+9, 1103, 0, 'Goldthorn', 0, 10), +(@OGUID+10, 1103, 0, 'Goldthorn', 0, 10), +(@OGUID+11, 1103, 0, 'Goldthorn', 0, 10), +(@OGUID+12, 1308, 0, 'Goldthorn', 0, 10), +(@OGUID+13, 1308, 0, 'Goldthorn', 0, 10), +(@OGUID+14, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+15, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+16, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+17, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+18, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+19, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+20, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+21, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+22, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+23, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+24, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+25, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+26, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+27, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+28, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+29, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+30, 1174, 0, 'Goldthorn', 0, 10), +(@OGUID+31, 1058, 0, 'Goldthorn', 0, 10), +(@OGUID+32, 1058, 0, 'Goldthorn', 0, 10), +(@OGUID+33, 1058, 0, 'Goldthorn', 0, 10), +(@OGUID+34, 1058, 0, 'Goldthorn', 0, 10), +(@OGUID+35, 1058, 0, 'Goldthorn', 0, 10), +(@OGUID+36, 1058, 0, 'Goldthorn', 0, 10), +(@OGUID+37, 1058, 0, 'Goldthorn', 0, 10), +(@OGUID+38, 1058, 0, 'Goldthorn', 0, 10), +(@OGUID+39, 1058, 0, 'Goldthorn', 0, 10), +(@OGUID+40, 1058, 0, 'Goldthorn', 0, 10), +(@OGUID+41, 1058, 0, 'Goldthorn', 0, 10), +(@OGUID+42, 1058, 0, 'Goldthorn', 0, 10), +(@OGUID+43, 1181, 0, 'Goldthorn', 0, 10), +(@OGUID+44, 1181, 0, 'Goldthorn', 0, 10), +(@OGUID+45, 1181, 0, 'Goldthorn', 0, 10), +(@OGUID+46, 1181, 0, 'Goldthorn', 0, 10), +(@OGUID+47, 1181, 0, 'Goldthorn', 0, 10), +(@OGUID+48, 1181, 0, 'Goldthorn', 0, 10), +(@OGUID+49, 1181, 0, 'Goldthorn', 0, 10), +(@OGUID+50, 1181, 0, 'Goldthorn', 0, 10), +(@OGUID+51, 1249, 0, 'Goldthorn', 0, 10), +(@OGUID+52, 1249, 0, 'Goldthorn', 0, 10), +(@OGUID+53, 1249, 0, 'Goldthorn', 0, 10), +(@OGUID+54, 1249, 0, 'Goldthorn', 0, 10), +(@OGUID+55, 1249, 0, 'Goldthorn', 0, 10), +(@OGUID+56, 1249, 0, 'Goldthorn', 0, 10), +(@OGUID+57, 1058, 0, 'Goldthorn', 0, 10), +(@OGUID+58, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+59, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+60, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+61, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+62, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+63, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+64, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+65, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+66, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+67, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+68, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+69, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+70, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+71, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+72, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+73, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+74, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+75, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+76, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+77, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+78, 1191, 0, 'Goldthorn', 0, 10), +(@OGUID+79, 2003, 0, 'Goldthorn', 0, 10), +(@OGUID+80, 2003, 0, 'Goldthorn', 0, 10), +(@OGUID+81, 2003, 0, 'Goldthorn', 0, 10), +(@OGUID+82, 2003, 0, 'Goldthorn', 0, 10), +(@OGUID+83, 2003, 0, 'Goldthorn', 0, 10); + +-- Khadgars Whisker +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+84, 2043, 0, -10248.6, -3660.21, 22.2978, 0.645772, 0, 0, 0.317305, 0.948324, 300, 300, 1, 100, 0, 10), +(@OGUID+85, 2043, 0, -10823.6, -3968.77, 22.4891, 5.39307, 0, 0, -0.430511, 0.902586, 300, 300, 1, 100, 0, 10), +(@OGUID+86, 2043, 1, -2748.77, -3274.66, 32.2374, 1.41372, 0, 0, 0.649447, 0.760406, 300, 300, 1, 100, 0, 10), +(@OGUID+87, 2043, 1, -4699.26, -3510.67, 37.8139, 5.42797, 0, 0, -0.414693, 0.909961, 300, 300, 1, 100, 0, 10), +(@OGUID+88, 2043, 1, -4381.79, -2921.2, 45.2752, 5.67232, 0, 0, -0.300705, 0.953717, 300, 300, 1, 100, 0, 10), +(@OGUID+89, 2043, 1, -4602.39, -3513.01, 38.2337, 3.10665, 0, 0, 0.999847, 0.0174693, 300, 300, 1, 100, 0, 10), +(@OGUID+90, 2043, 1, -4001.19, -3699.22, 45.9126, 1.18682, 0, 0, 0.559193, 0.829038, 300, 300, 1, 100, 0, 10), +(@OGUID+91, 2043, 1, 4154.94, -5958.63, 100.695, 4.20625, 0, 0, -0.861629, 0.507539, 300, 300, 1, 100, 0, 10), +(@OGUID+92, 2043, 1, 2871.16, -5807.73, 112.42, 6.14356, 0, 0, -0.0697556, 0.997564, 300, 300, 1, 100, 0, 10), +(@OGUID+93, 2043, 1, 4491.81, -6124.93, 96.5828, 6.26573, 0, 0, -0.00872612, 0.999962, 300, 300, 1, 100, 0, 10), +(@OGUID+94, 2043, 1, 4358.94, -5418.67, 111.435, 5.51524, 0, 0, -0.374606, 0.927184, 300, 300, 1, 100, 0, 10), +(@OGUID+95, 2043, 1, 3482.29, -4117.89, 101.778, 5.34071, 0, 0, -0.45399, 0.891007, 300, 300, 1, 100, 0, 10), +(@OGUID+96, 2043, 1, 2304.78, -6388.19, 117.193, 3.194, 0, 0, -0.999657, 0.0262016, 300, 300, 1, 100, 0, 10), +(@OGUID+97, 2043, 0, -11571.1, 311.907, 45.0555, 2.07694, 0, 0, 0.861629, 0.507539, 300, 300, 1, 100, 0, 10), +(@OGUID+98, 2043, 0, -11956.2, 158.976, 17.6716, 3.03684, 0, 0, 0.998629, 0.0523532, 300, 300, 1, 100, 0, 10), +(@OGUID+99, 2043, 0, -11830.1, -701.637, 39.8281, 1.58825, 0, 0, 0.71325, 0.70091, 300, 300, 1, 100, 0, 10), +(@OGUID+100, 2043, 0, -13468.4, 345.16, 36.1291, 0.558504, 0, 0, 0.275637, 0.961262, 300, 300, 1, 100, 0, 10), +(@OGUID+101, 2043, 0, -14827.7, -311.77, 4.75048, 3.08918, 0, 0, 0.999657, 0.0262016, 300, 300, 1, 100, 0, 10), +(@OGUID+102, 2043, 0, -11516.3, -453.806, 41.2199, 2.74016, 0, 0, 0.979924, 0.19937, 300, 300, 1, 100, 0, 10), +(@OGUID+103, 2043, 0, -12958.8, -856.944, 71.5774, 4.7822, 0, 0, -0.681998, 0.731354, 300, 300, 1, 100, 0, 10), +(@OGUID+104, 2043, 0, -11739.3, -585.086, 40.9359, 5.67232, 0, 0, -0.300705, 0.953717, 300, 300, 1, 100, 0, 10), +(@OGUID+105, 2043, 0, -14619.4, -157.44, 5.70132, 1.72787, 0, 0, 0.760406, 0.649449, 300, 300, 1, 100, 0, 10), +(@OGUID+106, 2043, 0, -11607.1, -475.899, 24.474, 1.8675, 0, 0, 0.803857, 0.594823, 300, 300, 1, 100, 0, 10), +(@OGUID+107, 2043, 0, -13853.2, 541.307, 46.7172, 5.13127, 0, 0, -0.544639, 0.838671, 300, 300, 1, 100, 0, 10), +(@OGUID+108, 2043, 0, 952.389, -635.235, 122.236, 0.925024, 0, 0, 0.446198, 0.894935, 300, 300, 1, 100, 0, 10), +(@OGUID+109, 2043, 0, 557.427, -914.345, 168.127, 0.261798, 0, 0, 0.130526, 0.991445, 300, 300, 1, 100, 0, 10), +(@OGUID+110, 2043, 0, 687.838, -860.993, 158.683, 4.95674, 0, 0, -0.615661, 0.788011, 300, 300, 1, 100, 0, 10), +(@OGUID+111, 2043, 0, 366.359, -781.086, 137.581, 1.53589, 0, 0, 0.694658, 0.71934, 300, 300, 1, 100, 0, 10), +(@OGUID+112, 2043, 0, 999.779, -246.018, 48.918, 1.62316, 0, 0, 0.725374, 0.688355, 300, 300, 1, 100, 0, 10), +(@OGUID+113, 2043, 0, 965.782, -883.747, 114.281, 1.0821, 0, 0, 0.515038, 0.857168, 300, 300, 1, 100, 0, 10), +(@OGUID+114, 2043, 0, -1099.63, -3592.36, 41.9442, 5.79449, 0, 0, -0.241921, 0.970296, 300, 300, 1, 100, 0, 10), +(@OGUID+115, 2043, 0, -1631.01, -3255.72, 29.7153, 1.32645, 0, 0, 0.615661, 0.788011, 300, 300, 1, 100, 0, 10), +(@OGUID+116, 2043, 0, -1841.77, -3362.61, 49.3108, 0.453785, 0, 0, 0.224951, 0.97437, 300, 300, 1, 100, 0, 10), +(@OGUID+117, 2043, 0, -1712.81, -3476.88, 53.6383, 1.44862, 0, 0, 0.66262, 0.748956, 300, 300, 1, 100, 0, 10), +(@OGUID+118, 2043, 0, -1622.52, -3419.83, 43.3906, 6.16101, 0, 0, -0.0610485, 0.998135, 300, 300, 1, 100, 0, 10), +(@OGUID+119, 2043, 0, -1811.35, -3218.45, 33.4678, 1.91986, 0, 0, 0.819152, 0.573577, 300, 300, 1, 100, 0, 10), +(@OGUID+120, 2043, 0, -1802.22, -3083.24, 43.3628, 0.785397, 0, 0, 0.382683, 0.92388, 300, 300, 1, 100, 0, 10), +(@OGUID+121, 2043, 0, -1416.04, -3391.61, 48.8052, 3.7001, 0, 0, -0.961261, 0.27564, 300, 300, 1, 100, 0, 10), +(@OGUID+122, 2043, 0, 208.619, -4577.21, 120.027, 4.5204, 0, 0, -0.771625, 0.636078, 300, 300, 1, 100, 0, 10), +(@OGUID+123, 2043, 1, -5119.45, 1429.76, 44.7705, 4.25861, 0, 0, -0.848047, 0.529921, 300, 300, 1, 100, 0, 10), +(@OGUID+124, 2043, 1, -4217.28, 535.931, 58.3813, 5.60251, 0, 0, -0.333807, 0.942641, 300, 300, 1, 100, 0, 10), +(@OGUID+125, 2043, 1, -2963.82, 2135.15, 31.5666, 4.24115, 0, 0, -0.85264, 0.522499, 300, 300, 1, 100, 0, 10), +(@OGUID+126, 2043, 1, -5323.54, 1271.52, 48.2738, 2.32129, 0, 0, 0.91706, 0.39875, 300, 300, 1, 100, 0, 10), +(@OGUID+127, 2043, 1, -3112.54, 2055.94, 44.9863, 3.97935, 0, 0, -0.913545, 0.406738, 300, 300, 1, 100, 0, 10), +(@OGUID+128, 2043, 1, -5632.53, 1739.09, 88.0697, 4.15388, 0, 0, -0.874619, 0.48481, 300, 300, 1, 100, 0, 10), +(@OGUID+129, 2043, 1, -3993.18, 381.213, 64.4781, 4.88692, 0, 0, -0.642787, 0.766045, 300, 300, 1, 100, 0, 10), +(@OGUID+130, 2043, 1, -3493.21, 2878.77, 84.2815, 0.575957, 0, 0, 0.284015, 0.95882, 300, 300, 1, 100, 0, 10), +(@OGUID+131, 2043, 1, -4963.32, 334.988, 23.8516, 3.83973, 0, 0, -0.939692, 0.34202, 300, 300, 1, 100, 0, 10), +(@OGUID+132, 2043, 1, -5505.35, 1761.22, 91.0515, 0.174532, 0, 0, 0.0871553, 0.996195, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+84, 1309, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+85, 1309, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+86, 1102, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+87, 1102, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+88, 1102, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+89, 1102, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+90, 1102, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+91, 1055, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+92, 1055, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+93, 1055, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+94, 1055, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+95, 1055, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+96, 1055, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+97, 1173, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+98, 1173, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+99, 1173, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+100, 1173, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+101, 1173, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+102, 1173, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+103, 1173, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+104, 1173, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+105, 1173, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+106, 1173, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+107, 1173, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+108, 1059, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+109, 1059, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+110, 1059, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+111, 1059, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+112, 1059, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+113, 1059, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+114, 1182, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+115, 1182, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+116, 1182, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+117, 1182, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+118, 1182, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+119, 1182, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+120, 1182, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+121, 1182, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+122, 1248, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+123, 1189, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+124, 1189, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+125, 1189, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+126, 1189, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+127, 1189, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+128, 1189, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+129, 1189, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+130, 1189, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+131, 1189, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+132, 1189, 0, 'Khadgars Whisker', 0, 10); + +-- Kingsblood +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+133, 1624, 0, -10268.9, -4302.78, 22.4734, 1.16937, 0, 0, 0.551936, 0.833886, 300, 300, 1, 100, 0, 10), +(@OGUID+134, 1624, 0, -10825.6, -3934.51, 22.9429, 1.0821, 0, 0, 0.515038, 0.857168, 300, 300, 1, 100, 0, 10), +(@OGUID+135, 1624, 0, -10248.4, -885.075, 36.1875, 5.46288, 0, 0, -0.398748, 0.91706, 300, 300, 1, 100, 0, 10), +(@OGUID+136, 1624, 0, -3512.99, -3187.61, 22.3438, 1.0821, 0, 0, 0.515038, 0.857168, 300, 300, 1, 100, 0, 10), +(@OGUID+137, 1624, 0, -3584.33, -3114.69, 23.5435, 0.139624, 0, 0, 0.0697556, 0.997564, 300, 300, 1, 100, 0, 10), +(@OGUID+138, 1624, 0, -3146.33, -1690.84, 9.8015, 2.70526, 0, 0, 0.976295, 0.216442, 300, 300, 1, 100, 0, 10), +(@OGUID+139, 1624, 0, -2872.93, -2721.73, 33.9068, 3.61284, 0, 0, -0.972369, 0.233448, 300, 300, 1, 100, 0, 10), +(@OGUID+140, 1624, 0, -3232.35, -2969.56, 19.4451, 5.70723, 0, 0, -0.284015, 0.95882, 300, 300, 1, 100, 0, 10), +(@OGUID+141, 1624, 0, -3031.65, -1924.48, 9.94837, 1.09956, 0, 0, 0.522498, 0.85264, 300, 300, 1, 100, 0, 10), +(@OGUID+142, 1624, 0, -3113.44, -2782.12, 23.162, 3.08918, 0, 0, 0.999657, 0.0262016, 300, 300, 1, 100, 0, 10), +(@OGUID+143, 1624, 0, -4127.01, -2792.29, 21.1964, 1.95477, 0, 0, 0.829038, 0.559193, 300, 300, 1, 100, 0, 10), +(@OGUID+144, 1624, 0, -3498.12, -3038.59, 18.3996, 3.31614, 0, 0, -0.996194, 0.087165, 300, 300, 1, 100, 0, 10), +(@OGUID+145, 1624, 0, -2917.6, -1750.79, 9.29079, 3.94445, 0, 0, -0.920505, 0.390732, 300, 300, 1, 100, 0, 10), +(@OGUID+146, 1624, 0, -3804.33, -3087.27, 12.2866, 4.88692, 0, 0, -0.642787, 0.766045, 300, 300, 1, 100, 0, 10), +(@OGUID+147, 1624, 0, -3083.79, -2084.17, 9.2763, 2.28638, 0, 0, 0.909961, 0.414694, 300, 300, 1, 100, 0, 10), +(@OGUID+148, 1624, 1, -4628.61, -3736.39, 40.7212, 5.89921, 0, 0, -0.190808, 0.981627, 300, 300, 1, 100, 0, 10), +(@OGUID+149, 1624, 1, -3253.25, -3138.97, 38.0412, 1.50098, 0, 0, 0.681998, 0.731354, 300, 300, 1, 100, 0, 10), +(@OGUID+150, 1624, 1, -4815.61, -3193.33, 36.3355, 1.44862, 0, 0, 0.66262, 0.748956, 300, 300, 1, 100, 0, 10), +(@OGUID+151, 1624, 1, -3453.65, -1886.44, 95.3662, 2.37364, 0, 0, 0.927183, 0.374608, 300, 300, 1, 100, 0, 10), +(@OGUID+152, 1624, 1, -1662.1, -3086.84, 91.6679, 0.663223, 0, 0, 0.325567, 0.945519, 300, 300, 1, 100, 0, 10), +(@OGUID+153, 1624, 1, -3277.74, -2155.41, 93.6227, 2.40855, 0, 0, 0.93358, 0.358368, 300, 300, 1, 100, 0, 10), +(@OGUID+154, 1624, 0, -13621.2, -66.93, 35.9177, 2.60054, 0, 0, 0.96363, 0.267241, 300, 300, 1, 100, 0, 10), +(@OGUID+155, 1624, 0, -11893.3, -679.452, 16.3839, 4.06662, 0, 0, -0.894934, 0.446199, 300, 300, 1, 100, 0, 10), +(@OGUID+156, 1624, 0, -13728.7, 540.795, 39.8102, 0.628317, 0, 0, 0.309016, 0.951057, 300, 300, 1, 100, 0, 10), +(@OGUID+157, 1624, 0, -12582.7, -522.339, 34.8071, 3.194, 0, 0, -0.999657, 0.0262016, 300, 300, 1, 100, 0, 10), +(@OGUID+158, 1624, 0, -12929.2, -365.887, 10.9888, 0.785397, 0, 0, 0.382683, 0.92388, 300, 300, 1, 100, 0, 10), +(@OGUID+159, 1624, 0, -12756.2, -715.62, 64.4644, 0.506145, 0, 0, 0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+160, 1624, 0, -12520.6, -684.107, 39.6179, 3.99681, 0, 0, -0.909961, 0.414694, 300, 300, 1, 100, 0, 10), +(@OGUID+161, 1624, 0, -11674.1, -515.938, 20.3532, 5.96903, 0, 0, -0.156434, 0.987688, 300, 300, 1, 100, 0, 10), +(@OGUID+162, 1624, 0, -13028.1, 201.222, 21.7759, 4.83456, 0, 0, -0.66262, 0.748956, 300, 300, 1, 100, 0, 10), +(@OGUID+163, 1624, 0, -13609.8, -74.9127, 36.7877, 5.2709, 0, 0, -0.484809, 0.87462, 300, 300, 1, 100, 0, 10), +(@OGUID+164, 1624, 0, -14720.8, -193.339, 6.75088, 5.34071, 0, 0, -0.45399, 0.891007, 300, 300, 1, 100, 0, 10), +(@OGUID+165, 1624, 0, -13501.5, -99.2548, 42.4332, 2.04204, 0, 0, 0.85264, 0.522499, 300, 300, 1, 100, 0, 10), +(@OGUID+166, 1624, 0, -11618.9, 293.758, 41.9771, 4.64258, 0, 0, -0.731354, 0.681998, 300, 300, 1, 100, 0, 10), +(@OGUID+167, 1624, 0, 881.483, -855.771, 130.028, 4.69494, 0, 0, -0.71325, 0.70091, 300, 300, 1, 100, 0, 10), +(@OGUID+168, 1624, 0, 853.168, -646.492, 147.404, 5.32326, 0, 0, -0.461748, 0.887011, 300, 300, 1, 100, 0, 10), +(@OGUID+169, 1624, 0, 946.267, -710.657, 118.683, 4.62512, 0, 0, -0.737277, 0.675591, 300, 300, 1, 100, 0, 10), +(@OGUID+170, 1624, 0, 1029.87, -311.97, 54.6971, 3.82227, 0, 0, -0.942641, 0.333808, 300, 300, 1, 100, 0, 10), +(@OGUID+171, 1624, 0, -1264.63, -2279.34, 57.1287, 5.16618, 0, 0, -0.529919, 0.848048, 300, 300, 1, 100, 0, 10), +(@OGUID+172, 1624, 0, -1120.17, -2289.11, 50.1323, 4.15388, 0, 0, -0.874619, 0.48481, 300, 300, 1, 100, 0, 10), +(@OGUID+173, 1624, 0, -1257.3, -3514.04, 42.5837, 2.93214, 0, 0, 0.994521, 0.104536, 300, 300, 1, 100, 0, 10), +(@OGUID+174, 1624, 0, -1009.44, -1058.56, 43.1947, 0.575957, 0, 0, 0.284015, 0.95882, 300, 300, 1, 100, 0, 10), +(@OGUID+175, 1624, 0, -894.02, -85.7392, 23.4342, 3.00195, 0, 0, 0.997563, 0.0697661, 300, 300, 1, 100, 0, 10), +(@OGUID+176, 1624, 0, -718.412, 253.267, 49.5869, 5.41052, 0, 0, -0.422618, 0.906308, 300, 300, 1, 100, 0, 10), +(@OGUID+177, 1624, 0, -1029.63, -1325.95, 55.1042, 3.80482, 0, 0, -0.945518, 0.325568, 300, 300, 1, 100, 0, 10), +(@OGUID+178, 1624, 0, -771.982, -180.447, 37.0286, 5.2709, 0, 0, -0.484809, 0.87462, 300, 300, 1, 100, 0, 10), +(@OGUID+179, 1624, 0, -1178.73, -1213.54, 43.4503, 3.07177, 0, 0, 0.999391, 0.0349061, 300, 300, 1, 100, 0, 10), +(@OGUID+180, 1624, 1, 2628.16, -1032.22, 119.3, 0.139624, 0, 0, 0.0697556, 0.997564, 300, 300, 1, 100, 0, 10), +(@OGUID+181, 1624, 1, 2557.18, -1455.29, 159.707, 4.90438, 0, 0, -0.636078, 0.771625, 300, 300, 1, 100, 0, 10), +(@OGUID+182, 1624, 1, 2720.5, -2319.67, 202.394, 5.42797, 0, 0, -0.414693, 0.909961, 300, 300, 1, 100, 0, 10), +(@OGUID+183, 1624, 1, 3548.91, -144.068, 0.071218, 3.85718, 0, 0, -0.936671, 0.35021, 300, 300, 1, 100, 0, 10), +(@OGUID+184, 1624, 1, 2573.92, -1331.08, 151.27, 0.122173, 0, 0, 0.0610485, 0.998135, 300, 300, 1, 100, 0, 10), +(@OGUID+185, 1624, 1, 3151.14, -545.542, 147.4, 3.61284, 0, 0, -0.972369, 0.233448, 300, 300, 1, 100, 0, 10), +(@OGUID+186, 1624, 1, 2736.5, -2174.47, 195.609, 5.2709, 0, 0, -0.484809, 0.87462, 300, 300, 1, 100, 0, 10), +(@OGUID+187, 1624, 1, 3564.13, 384.652, 4.95166, 0.663223, 0, 0, 0.325567, 0.945519, 300, 300, 1, 100, 0, 10), +(@OGUID+188, 1624, 1, 3760.37, -73.1685, -1.08681, 5.21854, 0, 0, -0.507538, 0.861629, 300, 300, 1, 100, 0, 10), +(@OGUID+189, 1624, 1, 2289.08, -1279.43, 77.6134, 2.51327, 0, 0, 0.951056, 0.309017, 300, 300, 1, 100, 0, 10), +(@OGUID+190, 1624, 1, 3219.43, 479.263, -1.44214, 4.92183, 0, 0, -0.62932, 0.777146, 300, 300, 1, 100, 0, 10), +(@OGUID+191, 1624, 1, 3492.29, 34.0095, 2.15879, 5.77704, 0, 0, -0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+192, 1624, 1, 2233.06, -579.532, 102.944, 1.16937, 0, 0, 0.551936, 0.833886, 300, 300, 1, 100, 0, 10), +(@OGUID+193, 1624, 1, 1944.83, -1411.5, 91.4067, 5.28835, 0, 0, -0.477159, 0.878817, 300, 300, 1, 100, 0, 10), +(@OGUID+194, 1624, 1, 2521.64, 10.8116, 85.3443, 3.45576, 0, 0, -0.987688, 0.156436, 300, 300, 1, 100, 0, 10), +(@OGUID+195, 1624, 1, 2793.87, -3107.47, 176.18, 5.95157, 0, 0, -0.165047, 0.986286, 300, 300, 1, 100, 0, 10), +(@OGUID+196, 1624, 1, 2343.85, -1231.43, 86.3554, 2.96704, 0, 0, 0.996194, 0.087165, 300, 300, 1, 100, 0, 10), +(@OGUID+197, 1624, 1, 2220.6, 113.943, 110.248, 0.226892, 0, 0, 0.113203, 0.993572, 300, 300, 1, 100, 0, 10), +(@OGUID+198, 1624, 1, 2583.93, -1248.1, 145.21, 4.2237, 0, 0, -0.857167, 0.515038, 300, 300, 1, 100, 0, 10), +(@OGUID+199, 1624, 1, -5327.42, -1798.16, -53.9785, 1.20428, 0, 0, 0.566406, 0.824126, 300, 300, 1, 100, 0, 10), +(@OGUID+200, 1624, 1, -5052.68, -1181.93, -56.282, 5.63741, 0, 0, -0.317305, 0.948324, 300, 300, 1, 100, 0, 10), +(@OGUID+201, 1624, 1, -5916.38, -4289, -58.75, 0.680677, 0, 0, 0.333806, 0.942642, 300, 300, 1, 100, 0, 10), +(@OGUID+202, 1624, 1, -5179.31, -2579.16, -50.7496, 5.41052, 0, 0, -0.422618, 0.906308, 300, 300, 1, 100, 0, 10), +(@OGUID+203, 1624, 1, -2141.79, 2155.18, 65.9642, 4.67748, 0, 0, -0.719339, 0.694659, 300, 300, 1, 100, 0, 10), +(@OGUID+204, 1624, 1, -176.572, -660.562, 1.98774, 2.21657, 0, 0, 0.894934, 0.446199, 300, 300, 1, 100, 0, 10), +(@OGUID+205, 1624, 1, 1364.02, 880.856, 155.208, 2.96704, 0, 0, 0.996194, 0.087165, 300, 300, 1, 100, 0, 10), +(@OGUID+206, 1624, 1, 853.732, 1600.79, -24.0878, 2.9845, 0, 0, 0.996917, 0.0784664, 300, 300, 1, 100, 0, 10), +(@OGUID+207, 1624, 1, 1435.77, 102.037, 18.4269, 5.68977, 0, 0, -0.292372, 0.956305, 300, 300, 1, 100, 0, 10), +(@OGUID+208, 1624, 1, 932.678, 1562.38, -14.8017, 1.85005, 0, 0, 0.798635, 0.601815, 300, 300, 1, 100, 0, 10), +(@OGUID+209, 1624, 1, 894.337, 683.189, 98.3233, 5.07891, 0, 0, -0.566406, 0.824126, 300, 300, 1, 100, 0, 10), +(@OGUID+210, 1624, 43, -96.1374, 181.974, -78.5475, 3.57793, 0, 0, -0.976295, 0.216442, 300, 300, 1, 100, 0, 10), +(@OGUID+211, 1624, 43, -79.9096, 180.567, -91.5239, 0.767944, 0, 0, 0.374606, 0.927184, 300, 300, 1, 100, 0, 10), +(@OGUID+212, 1624, 43, -84.2777, 201.452, -92.3064, 3.99681, 0, 0, -0.909961, 0.414694, 300, 300, 1, 100, 0, 10), +(@OGUID+213, 1624, 43, -60.23, 298.535, -90.2058, 1.69297, 0, 0, 0.748956, 0.66262, 300, 300, 1, 100, 0, 10), +(@OGUID+214, 1624, 189, 1840.29, 1347.77, 18.0907, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+215, 1624, 189, 1833.85, 1318.35, 19.6896, 2.49582, 0, 0, 0.948323, 0.317306, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+133, 1326, 0, 'Kingsblood', 0, 10), +(@OGUID+134, 1326, 0, 'Kingsblood', 0, 10), +(@OGUID+135, 1117, 0, 'Kingsblood', 0, 10), +(@OGUID+136, 1155, 0, 'Kingsblood', 0, 10), +(@OGUID+137, 1155, 0, 'Kingsblood', 0, 10), +(@OGUID+138, 1155, 0, 'Kingsblood', 0, 10), +(@OGUID+139, 1155, 0, 'Kingsblood', 0, 10), +(@OGUID+140, 1155, 0, 'Kingsblood', 0, 10), +(@OGUID+141, 1155, 0, 'Kingsblood', 0, 10), +(@OGUID+142, 1155, 0, 'Kingsblood', 0, 10), +(@OGUID+143, 1155, 0, 'Kingsblood', 0, 10), +(@OGUID+144, 1155, 0, 'Kingsblood', 0, 10), +(@OGUID+145, 1155, 0, 'Kingsblood', 0, 10), +(@OGUID+146, 1155, 0, 'Kingsblood', 0, 10), +(@OGUID+147, 1155, 0, 'Kingsblood', 0, 10), +(@OGUID+148, 1039, 0, 'Kingsblood', 0, 10), +(@OGUID+149, 1039, 0, 'Kingsblood', 0, 10), +(@OGUID+150, 1039, 0, 'Kingsblood', 0, 10), +(@OGUID+151, 1038, 0, 'Kingsblood', 0, 10), +(@OGUID+152, 1038, 0, 'Kingsblood', 0, 10), +(@OGUID+153, 1038, 0, 'Kingsblood', 0, 10), +(@OGUID+154, 1170, 0, 'Kingsblood', 0, 10), +(@OGUID+155, 1170, 0, 'Kingsblood', 0, 10), +(@OGUID+156, 1170, 0, 'Kingsblood', 0, 10), +(@OGUID+157, 1170, 0, 'Kingsblood', 0, 10), +(@OGUID+158, 1170, 0, 'Kingsblood', 0, 10), +(@OGUID+159, 1170, 0, 'Kingsblood', 0, 10), +(@OGUID+160, 1170, 0, 'Kingsblood', 0, 10), +(@OGUID+161, 1170, 0, 'Kingsblood', 0, 10), +(@OGUID+162, 1170, 0, 'Kingsblood', 0, 10), +(@OGUID+163, 1170, 0, 'Kingsblood', 0, 10), +(@OGUID+164, 1170, 0, 'Kingsblood', 0, 10), +(@OGUID+165, 1170, 0, 'Kingsblood', 0, 10), +(@OGUID+166, 1170, 0, 'Kingsblood', 0, 10), +(@OGUID+167, 1057, 0, 'Kingsblood', 0, 10), +(@OGUID+168, 1057, 0, 'Kingsblood', 0, 10), +(@OGUID+169, 1057, 0, 'Kingsblood', 0, 10), +(@OGUID+170, 1057, 0, 'Kingsblood', 0, 10), +(@OGUID+171, 1180, 0, 'Kingsblood', 0, 10), +(@OGUID+172, 1180, 0, 'Kingsblood', 0, 10), +(@OGUID+173, 1180, 0, 'Kingsblood', 0, 10), +(@OGUID+174, 1051, 0, 'Kingsblood', 0, 10), +(@OGUID+175, 1051, 0, 'Kingsblood', 0, 10), +(@OGUID+176, 1051, 0, 'Kingsblood', 0, 10), +(@OGUID+177, 1051, 0, 'Kingsblood', 0, 10), +(@OGUID+178, 1051, 0, 'Kingsblood', 0, 10), +(@OGUID+179, 1051, 0, 'Kingsblood', 0, 10), +(@OGUID+180, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+181, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+182, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+183, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+184, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+185, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+186, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+187, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+188, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+189, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+190, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+191, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+192, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+193, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+194, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+195, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+196, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+197, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+198, 1078, 0, 'Kingsblood', 0, 10), +(@OGUID+199, 1136, 0, 'Kingsblood', 0, 10), +(@OGUID+200, 1136, 0, 'Kingsblood', 0, 10), +(@OGUID+201, 1136, 0, 'Kingsblood', 0, 10), +(@OGUID+202, 1136, 0, 'Kingsblood', 0, 10), +(@OGUID+203, 1138, 0, 'Kingsblood', 0, 10), +(@OGUID+204, 1088, 0, 'Kingsblood', 0, 10), +(@OGUID+205, 1088, 0, 'Kingsblood', 0, 10), +(@OGUID+206, 1088, 0, 'Kingsblood', 0, 10), +(@OGUID+207, 1088, 0, 'Kingsblood', 0, 10), +(@OGUID+208, 1088, 0, 'Kingsblood', 0, 10), +(@OGUID+209, 1088, 0, 'Kingsblood', 0, 10), +(@OGUID+210, 1053, 0, 'Kingsblood', 0, 10), +(@OGUID+211, 1053, 0, 'Kingsblood', 0, 10), +(@OGUID+212, 1053, 0, 'Kingsblood', 0, 10), +(@OGUID+213, 1053, 0, 'Kingsblood', 0, 10), +(@OGUID+214, 1054, 0, 'Kingsblood', 0, 10), +(@OGUID+215, 1054, 0, 'Kingsblood', 0, 10); + +-- Silverleaf +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+216, 1617, 0, -5685.17, -1872.09, 400.533, 3.4034, 0, 0, -0.991445, 0.130528, 300, 300, 1, 100, 0, 10), +(@OGUID+217, 1617, 0, -4936.79, -11.3983, 389.734, 6.0912, 0, 0, -0.0958452, 0.995396, 300, 300, 1, 100, 0, 10), +(@OGUID+218, 1617, 0, -4892.63, -285.781, 389.4, 4.86947, 0, 0, -0.649447, 0.760406, 300, 300, 1, 100, 0, 10), +(@OGUID+219, 1617, 0, -5432.75, 429.362, 387.492, 5.28835, 0, 0, -0.477159, 0.878817, 300, 300, 1, 100, 0, 10), +(@OGUID+220, 1617, 0, -5853.31, -1927.14, 408.209, 2.3911, 0, 0, 0.930417, 0.366502, 300, 300, 1, 100, 0, 10), +(@OGUID+221, 1617, 0, -5912.34, -127.995, 368.476, 0.331611, 0, 0, 0.165047, 0.986286, 300, 300, 1, 100, 0, 10), +(@OGUID+222, 1617, 0, -9400.2, -264.985, 64.0626, 2.02458, 0, 0, 0.848047, 0.529921, 300, 300, 1, 100, 0, 10), +(@OGUID+223, 1617, 0, -9854.16, -1225.37, 33.8129, 2.51327, 0, 0, 0.951056, 0.309017, 300, 300, 1, 100, 0, 10), +(@OGUID+224, 1617, 0, -9251, -1383.04, 81.9087, 3.47321, 0, 0, -0.986285, 0.16505, 300, 300, 1, 100, 0, 10), +(@OGUID+225, 1617, 1, -1390.36, -5156.88, 2.43886, 2.80998, 0, 0, 0.986285, 0.16505, 300, 300, 1, 100, 0, 10), +(@OGUID+226, 1617, 1, -783.005, -4813.38, 20.2239, 0.680677, 0, 0, 0.333806, 0.942642, 300, 300, 1, 100, 0, 10), +(@OGUID+227, 1617, 1, -168.535, -5166.67, 24.9761, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+228, 1617, 0, -5804.55, -2821.45, 376.758, 4.27606, 0, 0, -0.843391, 0.5373, 300, 300, 1, 100, 0, 10), +(@OGUID+229, 1617, 0, -9997.32, 1408.63, 40.7015, 4.62512, 0, 0, -0.737277, 0.675591, 300, 300, 1, 100, 0, 10), +(@OGUID+230, 1617, 0, -9815.15, 1293.21, 40.4487, 0.925024, 0, 0, 0.446198, 0.894935, 300, 300, 1, 100, 0, 10), +(@OGUID+231, 1617, 0, -10157.2, 1637.84, 40.3325, 5.75959, 0, 0, -0.258819, 0.965926, 300, 300, 1, 100, 0, 10), +(@OGUID+232, 1617, 0, 2991.91, 970.48, 113.702, 5.53269, 0, 0, -0.366501, 0.930418, 300, 300, 1, 100, 0, 10), +(@OGUID+233, 1617, 0, 2536.1, 846.162, 95.4236, 3.52557, 0, 0, -0.981627, 0.190812, 300, 300, 1, 100, 0, 10), +(@OGUID+234, 1617, 0, 2542.8, -78.9863, 32.2752, 0.890117, 0, 0, 0.430511, 0.902586, 300, 300, 1, 100, 0, 10), +(@OGUID+235, 1617, 0, 2387.22, 673.22, 34.8893, 2.74016, 0, 0, 0.979924, 0.19937, 300, 300, 1, 100, 0, 10), +(@OGUID+236, 1617, 0, 1808.61, 1146.43, 46.8974, 0.314158, 0, 0, 0.156434, 0.987688, 300, 300, 1, 100, 0, 10), +(@OGUID+237, 1617, 0, 2767.75, 777.982, 113.796, 4.71239, 0, 0, -0.707107, 0.707107, 300, 300, 1, 100, 0, 10), +(@OGUID+238, 1617, 0, 2877.75, -126.263, 32.5212, 4.62512, 0, 0, -0.737277, 0.675591, 300, 300, 1, 100, 0, 10), +(@OGUID+239, 1617, 0, 2364.69, -1006.98, 77.8143, 4.41568, 0, 0, -0.803857, 0.594823, 300, 300, 1, 100, 0, 10), +(@OGUID+240, 1617, 0, 2668.53, 505.615, 14.1414, 2.86234, 0, 0, 0.990268, 0.139175, 300, 300, 1, 100, 0, 10), +(@OGUID+241, 1617, 0, 2580.39, 398.45, 34.0243, 3.68265, 0, 0, -0.96363, 0.267241, 300, 300, 1, 100, 0, 10), +(@OGUID+242, 1617, 0, 3053.63, 672.822, 89.076, 0.645772, 0, 0, 0.317305, 0.948324, 300, 300, 1, 100, 0, 10), +(@OGUID+243, 1617, 0, 2532.51, 625.952, 33.2541, 0.977383, 0, 0, 0.469471, 0.882948, 300, 300, 1, 100, 0, 10), +(@OGUID+244, 1617, 0, 1771.11, 953.122, 54.2282, 3.14159, 0, 0, -1, 0, 300, 300, 1, 100, 0, 10), +(@OGUID+245, 1617, 0, 2363.91, 822.782, 47.6087, 5.14872, 0, 0, -0.537299, 0.843392, 300, 300, 1, 100, 0, 10), +(@OGUID+246, 1617, 0, 2374.54, 439.087, 34.2598, 3.03684, 0, 0, 0.998629, 0.0523532, 300, 300, 1, 100, 0, 10), +(@OGUID+247, 1617, 0, 1827.1, 988.982, 37.5701, 2.11185, 0, 0, 0.870356, 0.492424, 300, 300, 1, 100, 0, 10), +(@OGUID+248, 1617, 0, 2569.28, 1189.18, 71.0591, 0.209439, 0, 0, 0.104528, 0.994522, 300, 300, 1, 100, 0, 10), +(@OGUID+249, 1617, 0, 2738.83, 1033.54, 114.315, 3.927, 0, 0, -0.923879, 0.382686, 300, 300, 1, 100, 0, 10), +(@OGUID+250, 1617, 0, 2608.49, 158.729, 33.1405, 0.104719, 0, 0, 0.0523357, 0.99863, 300, 300, 1, 100, 0, 10), +(@OGUID+251, 1617, 0, 544.687, 1121.12, 89.5982, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+252, 1617, 0, 1211.28, 1570.68, 30.806, 1.43117, 0, 0, 0.656058, 0.75471, 300, 300, 1, 100, 0, 10), +(@OGUID+253, 1617, 0, 1009.82, 1645.02, 26.0037, 5.70723, 0, 0, -0.284015, 0.95882, 300, 300, 1, 100, 0, 10), +(@OGUID+254, 1617, 0, 1127.82, 1698.95, 27.4601, 6.16101, 0, 0, -0.0610485, 0.998135, 300, 300, 1, 100, 0, 10), +(@OGUID+255, 1617, 0, -268.337, 815.988, 76.8512, 5.51524, 0, 0, -0.374606, 0.927184, 300, 300, 1, 100, 0, 10), +(@OGUID+256, 1617, 0, 846, 1711.24, 18.8138, 3.68265, 0, 0, -0.96363, 0.267241, 300, 300, 1, 100, 0, 10), +(@OGUID+257, 1617, 0, -449.231, 1486.72, 16.985, 5.91667, 0, 0, -0.182235, 0.983255, 300, 300, 1, 100, 0, 10), +(@OGUID+258, 1617, 0, -408.202, 923.671, 121.549, 2.63544, 0, 0, 0.968147, 0.250381, 300, 300, 1, 100, 0, 10), +(@OGUID+259, 1617, 1, 9140.65, 1516.47, 1323.48, 2.61799, 0, 0, 0.965925, 0.258821, 300, 300, 1, 100, 0, 10), +(@OGUID+260, 1617, 1, 10285.8, 1553.27, 1302.61, 3.07177, 0, 0, 0.999391, 0.0349061, 300, 300, 1, 100, 0, 10), +(@OGUID+261, 1617, 1, 9665.76, 637.539, 1303.62, 3.59538, 0, 0, -0.97437, 0.224951, 300, 300, 1, 100, 0, 10), +(@OGUID+262, 1617, 1, 9320.73, 1109.5, 1254.49, 3.61284, 0, 0, -0.972369, 0.233448, 300, 300, 1, 100, 0, 10), +(@OGUID+263, 1617, 1, 9857.97, 267.933, 1326.47, 1.91986, 0, 0, 0.819152, 0.573577, 300, 300, 1, 100, 0, 10), +(@OGUID+264, 1617, 1, 10719.1, 1513.94, 1304.84, 0.0349062, 0, 0, 0.0174522, 0.999848, 300, 300, 1, 100, 0, 10), +(@OGUID+265, 1617, 1, 10910.6, 1759.3, 1323.85, 5.53269, 0, 0, -0.366501, 0.930418, 300, 300, 1, 100, 0, 10), +(@OGUID+266, 1617, 1, 10864.9, 2005.26, 1317.51, 4.86947, 0, 0, -0.649447, 0.760406, 300, 300, 1, 100, 0, 10), +(@OGUID+267, 1617, 1, 9813.51, 1854.15, 1313.87, 5.42797, 0, 0, -0.414693, 0.909961, 300, 300, 1, 100, 0, 10), +(@OGUID+268, 1617, 1, 10267.5, 1420.63, 1338.29, 1.06465, 0, 0, 0.507538, 0.861629, 300, 300, 1, 100, 0, 10), +(@OGUID+269, 1617, 1, 9181.52, 1573.84, 1313.08, 2.35619, 0, 0, 0.92388, 0.382683, 300, 300, 1, 100, 0, 10), +(@OGUID+270, 1617, 1, 10005.2, 391.584, 1311.96, 1.88495, 0, 0, 0.809016, 0.587786, 300, 300, 1, 100, 0, 10), +(@OGUID+271, 1617, 1, 9627.12, 1850.42, 1300.57, 3.73501, 0, 0, -0.956305, 0.292372, 300, 300, 1, 100, 0, 10), +(@OGUID+272, 1617, 1, 10287.3, 1901.04, 1325.12, 1.8675, 0, 0, 0.803857, 0.594823, 300, 300, 1, 100, 0, 10), +(@OGUID+273, 1617, 1, 10603, 1824.26, 1319.88, 0.349065, 0, 0, 0.173648, 0.984808, 300, 300, 1, 100, 0, 10), +(@OGUID+274, 1617, 1, 9678.45, 1734.94, 1300.44, 0.59341, 0, 0, 0.292371, 0.956305, 300, 300, 1, 100, 0, 10), +(@OGUID+275, 1617, 1, 9376.22, 675.459, 1306.64, 2.74016, 0, 0, 0.979924, 0.19937, 300, 300, 1, 100, 0, 10), +(@OGUID+276, 1617, 1, 9475.33, 1633.31, 1302.84, 4.04917, 0, 0, -0.898793, 0.438373, 300, 300, 1, 100, 0, 10), +(@OGUID+277, 1617, 1, 10890.8, 1502.11, 1289.87, 3.194, 0, 0, -0.999657, 0.0262016, 300, 300, 1, 100, 0, 10), +(@OGUID+278, 1617, 1, 10811.7, 1750.16, 1324.85, 0.90757, 0, 0, 0.438371, 0.898794, 300, 300, 1, 100, 0, 10), +(@OGUID+279, 1617, 1, 9265.93, 829.336, 1319.49, 4.18879, 0, 0, -0.866025, 0.500001, 300, 300, 1, 100, 0, 10), +(@OGUID+280, 1617, 1, 10819.7, 1454.48, 1316.14, 0.506145, 0, 0, 0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+281, 1617, 1, 9798.77, 556.072, 1299.6, 2.54818, 0, 0, 0.956305, 0.292372, 300, 300, 1, 100, 0, 10), +(@OGUID+282, 1617, 1, 10636.3, 1676.35, 1292.88, 6.0912, 0, 0, -0.0958452, 0.995396, 300, 300, 1, 100, 0, 10), +(@OGUID+283, 1617, 1, 6989.36, -435.627, 49.1007, 4.88692, 0, 0, -0.642787, 0.766045, 300, 300, 1, 100, 0, 10), +(@OGUID+284, 1617, 1, 5199.67, 283.565, 39.3069, 1.3439, 0, 0, 0.622514, 0.782609, 300, 300, 1, 100, 0, 10), +(@OGUID+285, 1617, 1, -658.385, 126.371, 16.079, 3.54302, 0, 0, -0.979924, 0.19937, 300, 300, 1, 100, 0, 10), +(@OGUID+286, 1617, 1, -1079.85, 553.439, 54.082, 4.13643, 0, 0, -0.878817, 0.47716, 300, 300, 1, 100, 0, 10), +(@OGUID+287, 1617, 1, -543.129, -73.7444, 26.5717, 0.401425, 0, 0, 0.199368, 0.979925, 300, 300, 1, 100, 0, 10), +(@OGUID+288, 1617, 1, -1143.94, 458.582, 12.3089, 2.47837, 0, 0, 0.945518, 0.325568, 300, 300, 1, 100, 0, 10), +(@OGUID+289, 1617, 1, -2555.19, -526.726, -4.26353, 5.07891, 0, 0, -0.566406, 0.824126, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+216, 1018, 0, 'Silverleaf', 0, 10), +(@OGUID+217, 1018, 0, 'Silverleaf', 0, 10), +(@OGUID+218, 1018, 0, 'Silverleaf', 0, 10), +(@OGUID+219, 1018, 0, 'Silverleaf', 0, 10), +(@OGUID+220, 1018, 0, 'Silverleaf', 0, 10), +(@OGUID+221, 1018, 0, 'Silverleaf', 0, 10), +(@OGUID+222, 1013, 0, 'Silverleaf', 0, 10), +(@OGUID+223, 1013, 0, 'Silverleaf', 0, 10), +(@OGUID+224, 1013, 0, 'Silverleaf', 0, 10), +(@OGUID+225, 1022, 0, 'Silverleaf', 0, 10), +(@OGUID+226, 1022, 0, 'Silverleaf', 0, 10), +(@OGUID+227, 1022, 0, 'Silverleaf', 0, 10), +(@OGUID+228, 1162, 0, 'Silverleaf', 0, 10), +(@OGUID+229, 1106, 0, 'Silverleaf', 0, 10), +(@OGUID+230, 1106, 0, 'Silverleaf', 0, 10), +(@OGUID+231, 1106, 0, 'Silverleaf', 0, 10), +(@OGUID+232, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+233, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+234, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+235, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+236, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+237, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+238, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+239, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+240, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+241, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+242, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+243, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+244, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+245, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+246, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+247, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+248, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+249, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+250, 1007, 0, 'Silverleaf', 0, 10), +(@OGUID+251, 1042, 0, 'Silverleaf', 0, 10), +(@OGUID+252, 1042, 0, 'Silverleaf', 0, 10), +(@OGUID+253, 1042, 0, 'Silverleaf', 0, 10), +(@OGUID+254, 1042, 0, 'Silverleaf', 0, 10), +(@OGUID+255, 1042, 0, 'Silverleaf', 0, 10), +(@OGUID+256, 1042, 0, 'Silverleaf', 0, 10), +(@OGUID+257, 1042, 0, 'Silverleaf', 0, 10), +(@OGUID+258, 1042, 0, 'Silverleaf', 0, 10), +(@OGUID+259, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+260, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+261, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+262, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+263, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+264, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+265, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+266, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+267, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+268, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+269, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+270, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+271, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+272, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+273, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+274, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+275, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+276, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+277, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+278, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+279, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+280, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+281, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+282, 1003, 0, 'Silverleaf', 0, 10), +(@OGUID+283, 1095, 0, 'Silverleaf', 0, 10), +(@OGUID+284, 1095, 0, 'Silverleaf', 0, 10), +(@OGUID+285, 1027, 0, 'Silverleaf', 0, 10), +(@OGUID+286, 1027, 0, 'Silverleaf', 0, 10), +(@OGUID+287, 1027, 0, 'Silverleaf', 0, 10), +(@OGUID+288, 1027, 0, 'Silverleaf', 0, 10), +(@OGUID+289, 1027, 0, 'Silverleaf', 0, 10); + +-- Peacebloom +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+290, 1618, 0, -5738.69, -1914.39, 401.659, 1.18682, 0, 0, 0.559193, 0.829038, 300, 300, 1, 100, 0, 10), +(@OGUID+291, 1618, 0, -5667.25, 443.202, 386.263, 4.53786, 0, 0, -0.766044, 0.642789, 300, 300, 1, 100, 0, 10), +(@OGUID+292, 1618, 0, -5804.12, -1266.16, 380.017, 6.10865, 0, 0, -0.0871553, 0.996195, 300, 300, 1, 100, 0, 10), +(@OGUID+293, 1618, 0, -5749.18, -2122.76, 400.714, 3.52557, 0, 0, -0.981627, 0.190812, 300, 300, 1, 100, 0, 10), +(@OGUID+294, 1618, 0, -5301.07, 366.328, 393.95, 6.24828, 0, 0, -0.0174522, 0.999848, 300, 300, 1, 100, 0, 10), +(@OGUID+295, 1618, 0, -5700.57, -340.036, 365.98, 1.74533, 0, 0, 0.766044, 0.642789, 300, 300, 1, 100, 0, 10), +(@OGUID+296, 1618, 0, -5135.66, 232.531, 398.578, 6.16101, 0, 0, -0.0610485, 0.998135, 300, 300, 1, 100, 0, 10), +(@OGUID+297, 1618, 0, -5588.98, -3679.32, 308.934, 2.25147, 0, 0, 0.902585, 0.430512, 300, 300, 1, 100, 0, 10), +(@OGUID+298, 1618, 0, -10038.2, 1397.22, 42.6272, 5.00909, 0, 0, -0.594823, 0.803857, 300, 300, 1, 100, 0, 10), +(@OGUID+299, 1618, 0, -9797.62, 1221.15, 40.8284, 0.785397, 0, 0, 0.382683, 0.92388, 300, 300, 1, 100, 0, 10), +(@OGUID+300, 1618, 0, -10727.8, 767.778, 40.7631, 3.47321, 0, 0, -0.986285, 0.16505, 300, 300, 1, 100, 0, 10), +(@OGUID+301, 1618, 0, 2782.88, 916.494, 115.77, 3.90954, 0, 0, -0.927183, 0.374608, 300, 300, 1, 100, 0, 10), +(@OGUID+302, 1618, 0, 2472.95, 1715.2, 27.5325, 1.0821, 0, 0, 0.515038, 0.857168, 300, 300, 1, 100, 0, 10), +(@OGUID+303, 1618, 0, 2361.43, 980.987, 59.7503, 0.680677, 0, 0, 0.333806, 0.942642, 300, 300, 1, 100, 0, 10), +(@OGUID+304, 1618, 0, 2869.45, 737.622, 124.591, 5.61996, 0, 0, -0.325567, 0.945519, 300, 300, 1, 100, 0, 10), +(@OGUID+305, 1618, 0, 2613.11, 1241.91, 60.8985, 2.53072, 0, 0, 0.953716, 0.300708, 300, 300, 1, 100, 0, 10), +(@OGUID+306, 1618, 0, 2912.84, -145.81, 33.0586, 6.24828, 0, 0, -0.0174522, 0.999848, 300, 300, 1, 100, 0, 10), +(@OGUID+307, 1618, 0, 2398.67, 1633.2, 33.5639, 0.994837, 0, 0, 0.477159, 0.878817, 300, 300, 1, 100, 0, 10), +(@OGUID+308, 1618, 0, 2837.35, 1042.8, 112.547, 6.21337, 0, 0, -0.0348988, 0.999391, 300, 300, 1, 100, 0, 10), +(@OGUID+309, 1618, 0, 2669.93, 462.099, 16.815, 4.03171, 0, 0, -0.902585, 0.430512, 300, 300, 1, 100, 0, 10), +(@OGUID+310, 1618, 0, 2384.2, 902.574, 64.0017, 3.63029, 0, 0, -0.970295, 0.241925, 300, 300, 1, 100, 0, 10), +(@OGUID+311, 1618, 0, 2447.2, -949.42, 69.1574, 2.72271, 0, 0, 0.978148, 0.207912, 300, 300, 1, 100, 0, 10), +(@OGUID+312, 1618, 0, 2371.46, 767.739, 38.41, 1.22173, 0, 0, 0.573576, 0.819152, 300, 300, 1, 100, 0, 10), +(@OGUID+313, 1618, 0, 2772.83, -35.5829, 33.8669, 2.21657, 0, 0, 0.894934, 0.446199, 300, 300, 1, 100, 0, 10), +(@OGUID+314, 1618, 0, 2958.79, -422.632, 80.5007, 5.79449, 0, 0, -0.241921, 0.970296, 300, 300, 1, 100, 0, 10), +(@OGUID+315, 1618, 0, 2767.95, -266.674, 61.6919, 5.63741, 0, 0, -0.317305, 0.948324, 300, 300, 1, 100, 0, 10), +(@OGUID+316, 1618, 0, 2446.31, 629.705, 31.671, 3.94445, 0, 0, -0.920505, 0.390732, 300, 300, 1, 100, 0, 10), +(@OGUID+317, 1618, 0, 2483.41, 1220.36, 53.728, 5.95157, 0, 0, -0.165047, 0.986286, 300, 300, 1, 100, 0, 10), +(@OGUID+318, 1618, 0, -366.046, 1367.42, 34.4271, 2.51327, 0, 0, 0.951056, 0.309017, 300, 300, 1, 100, 0, 10), +(@OGUID+319, 1618, 1, 9420.38, 1420.45, 1292.66, 3.12412, 0, 0, 0.999962, 0.00873464, 300, 300, 1, 100, 0, 10), +(@OGUID+320, 1618, 1, 10018.4, 1455.01, 1281.14, 2.33874, 0, 0, 0.920505, 0.390732, 300, 300, 1, 100, 0, 10), +(@OGUID+321, 1618, 1, 10833.4, 1563.93, 1282.5, 0.488691, 0, 0, 0.241921, 0.970296, 300, 300, 1, 100, 0, 10), +(@OGUID+322, 1618, 1, 10652.2, 1592.2, 1292.34, 0.314158, 0, 0, 0.156434, 0.987688, 300, 300, 1, 100, 0, 10), +(@OGUID+323, 1618, 1, 9993.04, 347.295, 1316.06, 3.50812, 0, 0, -0.983254, 0.182238, 300, 300, 1, 100, 0, 10), +(@OGUID+324, 1618, 1, 9380.39, 761.618, 1262.39, 1.88495, 0, 0, 0.809016, 0.587786, 300, 300, 1, 100, 0, 10), +(@OGUID+325, 1618, 1, 10963.3, 1386.68, 1317.4, 6.03884, 0, 0, -0.121869, 0.992546, 300, 300, 1, 100, 0, 10), +(@OGUID+326, 1618, 1, 9319.45, 1619.83, 1292.82, 5.25344, 0, 0, -0.492423, 0.870356, 300, 300, 1, 100, 0, 10), +(@OGUID+327, 1618, 1, 9377.83, 852.037, 1262.05, 3.80482, 0, 0, -0.945518, 0.325568, 300, 300, 1, 100, 0, 10), +(@OGUID+328, 1618, 1, 10362, 1568.6, 1297.37, 4.4855, 0, 0, -0.782608, 0.622515, 300, 300, 1, 100, 0, 10), +(@OGUID+329, 1618, 1, 9649.38, 791.62, 1270.94, 0.296705, 0, 0, 0.147809, 0.989016, 300, 300, 1, 100, 0, 10), +(@OGUID+330, 1618, 1, 9288.7, 1024.88, 1303.38, 5.77704, 0, 0, -0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+331, 1618, 1, 10875.8, 1875.41, 1337.42, 0.506145, 0, 0, 0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+332, 1618, 1, 10074.5, 355.456, 1323.17, 3.52557, 0, 0, -0.981627, 0.190812, 300, 300, 1, 100, 0, 10), +(@OGUID+333, 1618, 1, 10891.9, 1447.85, 1302.33, 0.349065, 0, 0, 0.173648, 0.984808, 300, 300, 1, 100, 0, 10), +(@OGUID+334, 1618, 1, 9722.8, 510.406, 1309.25, 2.93214, 0, 0, 0.994521, 0.104536, 300, 300, 1, 100, 0, 10), +(@OGUID+335, 1618, 1, 6264.63, 100.095, 33.8198, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+336, 1618, 1, 5956.14, 94.6589, 30.7965, 3.47321, 0, 0, -0.986285, 0.16505, 300, 300, 1, 100, 0, 10), +(@OGUID+337, 1618, 1, 7266.74, -772.24, 24.7552, 2.16421, 0, 0, 0.882947, 0.469473, 300, 300, 1, 100, 0, 10), +(@OGUID+338, 1618, 1, -624.308, -59.6952, -1.53514, 3.89209, 0, 0, -0.930417, 0.366502, 300, 300, 1, 100, 0, 10), +(@OGUID+339, 1618, 1, -1011.28, 483.548, 32.225, 1.71042, 0, 0, 0.754709, 0.656059, 300, 300, 1, 100, 0, 10), +(@OGUID+340, 1618, 1, -715.41, 90.4643, -6.07189, 5.63741, 0, 0, -0.317305, 0.948324, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+290, 1017, 0, 'Peacebloom', 0, 10), +(@OGUID+291, 1017, 0, 'Peacebloom', 0, 10), +(@OGUID+292, 1017, 0, 'Peacebloom', 0, 10), +(@OGUID+293, 1017, 0, 'Peacebloom', 0, 10), +(@OGUID+294, 1017, 0, 'Peacebloom', 0, 10), +(@OGUID+295, 1017, 0, 'Peacebloom', 0, 10), +(@OGUID+296, 1017, 0, 'Peacebloom', 0, 10), +(@OGUID+297, 1161, 0, 'Peacebloom', 0, 10), +(@OGUID+298, 1107, 0, 'Peacebloom', 0, 10), +(@OGUID+299, 1107, 0, 'Peacebloom', 0, 10), +(@OGUID+300, 1107, 0, 'Peacebloom', 0, 10), +(@OGUID+301, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+302, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+303, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+304, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+305, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+306, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+307, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+308, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+309, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+310, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+311, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+312, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+313, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+314, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+315, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+316, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+317, 1006, 0, 'Peacebloom', 0, 10), +(@OGUID+318, 1041, 0, 'Peacebloom', 0, 10), +(@OGUID+319, 1002, 0, 'Peacebloom', 0, 10), +(@OGUID+320, 1002, 0, 'Peacebloom', 0, 10), +(@OGUID+321, 1002, 0, 'Peacebloom', 0, 10), +(@OGUID+322, 1002, 0, 'Peacebloom', 0, 10), +(@OGUID+323, 1002, 0, 'Peacebloom', 0, 10), +(@OGUID+324, 1002, 0, 'Peacebloom', 0, 10), +(@OGUID+325, 1002, 0, 'Peacebloom', 0, 10), +(@OGUID+326, 1002, 0, 'Peacebloom', 0, 10), +(@OGUID+327, 1002, 0, 'Peacebloom', 0, 10), +(@OGUID+328, 1002, 0, 'Peacebloom', 0, 10), +(@OGUID+329, 1002, 0, 'Peacebloom', 0, 10), +(@OGUID+330, 1002, 0, 'Peacebloom', 0, 10), +(@OGUID+331, 1002, 0, 'Peacebloom', 0, 10), +(@OGUID+332, 1002, 0, 'Peacebloom', 0, 10), +(@OGUID+333, 1002, 0, 'Peacebloom', 0, 10), +(@OGUID+334, 1002, 0, 'Peacebloom', 0, 10), +(@OGUID+335, 1096, 0, 'Peacebloom', 0, 10), +(@OGUID+336, 1096, 0, 'Peacebloom', 0, 10), +(@OGUID+337, 1096, 0, 'Peacebloom', 0, 10), +(@OGUID+338, 1026, 0, 'Peacebloom', 0, 10), +(@OGUID+339, 1026, 0, 'Peacebloom', 0, 10), +(@OGUID+340, 1026, 0, 'Peacebloom', 0, 10); + +-- Mageroyal +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+341, 1620, 0, -3033.62, -2266.51, 9.402, 2.51327, 0, 0, 0.951056, 0.309017, 300, 300, 1, 100, 0, 10), +(@OGUID+342, 1620, 0, -2980.93, -1986.43, 9.31201, 1.62316, 0, 0, 0.725374, 0.688355, 300, 300, 1, 100, 0, 10), +(@OGUID+343, 1620, 0, -3572.57, -1839.99, 26.6164, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+344, 1620, 0, -3098.23, -2234.54, 10.1035, 6.19592, 0, 0, -0.0436192, 0.999048, 300, 300, 1, 100, 0, 10), +(@OGUID+345, 1620, 0, -4267.5, -2944.52, 11.8466, 5.49779, 0, 0, -0.382683, 0.92388, 300, 300, 1, 100, 0, 10), +(@OGUID+346, 1620, 1, 12.6286, -4112.04, 68.9858, 4.38078, 0, 0, -0.814116, 0.580703, 300, 300, 1, 100, 0, 10), +(@OGUID+347, 1620, 1, 969.203, -4704.17, 30.3343, 4.83456, 0, 0, -0.66262, 0.748956, 300, 300, 1, 100, 0, 10), +(@OGUID+348, 1620, 0, -4952.94, -3715.38, 311.465, 2.86234, 0, 0, 0.990268, 0.139175, 300, 300, 1, 100, 0, 10), +(@OGUID+349, 1620, 0, -5112.26, -3849.63, 320.659, 2.21657, 0, 0, 0.894934, 0.446199, 300, 300, 1, 100, 0, 10), +(@OGUID+350, 1620, 0, -5716.34, -3492.45, 300.084, 0.244346, 0, 0, 0.121869, 0.992546, 300, 300, 1, 100, 0, 10), +(@OGUID+351, 1620, 0, -4956.81, -3722.41, 311.323, 1.83259, 0, 0, 0.793353, 0.608762, 300, 300, 1, 100, 0, 10), +(@OGUID+352, 1620, 0, -5154.98, -4127.9, 327.783, 1.53589, 0, 0, 0.694658, 0.71934, 300, 300, 1, 100, 0, 10), +(@OGUID+353, 1620, 0, -5254.33, -4098.36, 325.712, 3.52557, 0, 0, -0.981627, 0.190812, 300, 300, 1, 100, 0, 10), +(@OGUID+354, 1620, 0, -10377.9, 2197.87, 20.4766, 3.90954, 0, 0, -0.927183, 0.374608, 300, 300, 1, 100, 0, 10), +(@OGUID+355, 1620, 0, -11344.2, 1812.11, 8.70332, 4.41568, 0, 0, -0.803857, 0.594823, 300, 300, 1, 100, 0, 10), +(@OGUID+356, 1620, 0, -10017.7, 1736.41, 33.7083, 0.261798, 0, 0, 0.130526, 0.991445, 300, 300, 1, 100, 0, 10), +(@OGUID+357, 1620, 0, -11235.3, 1952.39, 13.647, 5.75959, 0, 0, -0.258819, 0.965926, 300, 300, 1, 100, 0, 10), +(@OGUID+358, 1620, 0, -11048.7, 1784.49, 40.6809, 1.69297, 0, 0, 0.748956, 0.66262, 300, 300, 1, 100, 0, 10), +(@OGUID+359, 1620, 0, -10705.5, 1791.94, 35.1024, 2.19911, 0, 0, 0.891006, 0.453991, 300, 300, 1, 100, 0, 10), +(@OGUID+360, 1620, 0, -10994.1, 1686.26, 38.7371, 0.191985, 0, 0, 0.0958452, 0.995396, 300, 300, 1, 100, 0, 10), +(@OGUID+361, 1620, 0, -11221.6, 1750, 35.3995, 5.89921, 0, 0, -0.190808, 0.981627, 300, 300, 1, 100, 0, 10), +(@OGUID+362, 1620, 0, -9702.03, -2568.51, 59.5312, 5.67232, 0, 0, -0.300705, 0.953717, 300, 300, 1, 100, 0, 10), +(@OGUID+363, 1620, 0, -9381.91, -1962.83, 58.4079, 5.81195, 0, 0, -0.233445, 0.97237, 300, 300, 1, 100, 0, 10), +(@OGUID+364, 1620, 0, -8929.93, -2214.44, 136.017, 4.50295, 0, 0, -0.777145, 0.629321, 300, 300, 1, 100, 0, 10), +(@OGUID+365, 1620, 0, 1207.02, 2047.57, 4.10904, 2.56563, 0, 0, 0.958819, 0.284016, 300, 300, 1, 100, 0, 10), +(@OGUID+366, 1620, 0, 169.239, 1178.91, 64.7395, 4.08407, 0, 0, -0.891006, 0.453991, 300, 300, 1, 100, 0, 10), +(@OGUID+367, 1620, 0, 789.535, 1202.92, 49.9049, 0.453785, 0, 0, 0.224951, 0.97437, 300, 300, 1, 100, 0, 10), +(@OGUID+368, 1620, 0, -156.534, 1311.98, 46.4741, 4.06662, 0, 0, -0.894934, 0.446199, 300, 300, 1, 100, 0, 10), +(@OGUID+369, 1620, 0, -577.121, 1550.49, 10.0831, 4.55531, 0, 0, -0.760406, 0.649449, 300, 300, 1, 100, 0, 10), +(@OGUID+370, 1620, 0, -342.205, 1102.43, 81.0392, 1.58825, 0, 0, 0.71325, 0.70091, 300, 300, 1, 100, 0, 10), +(@OGUID+371, 1620, 1, 9359.21, 801.192, 1266.38, 1.90241, 0, 0, 0.814116, 0.580703, 300, 300, 1, 100, 0, 10), +(@OGUID+372, 1620, 1, 9339, 645.579, 1314.52, 6.02139, 0, 0, -0.130526, 0.991445, 300, 300, 1, 100, 0, 10), +(@OGUID+373, 1620, 1, 10862.3, 1653.28, 1279.33, 3.54302, 0, 0, -0.979924, 0.19937, 300, 300, 1, 100, 0, 10), +(@OGUID+374, 1620, 1, 7199.5, -782.221, 38.0074, 1.8675, 0, 0, 0.803857, 0.594823, 300, 300, 1, 100, 0, 10), +(@OGUID+375, 1620, 1, 6641.5, 110.693, 32.3672, 4.24115, 0, 0, -0.85264, 0.522499, 300, 300, 1, 100, 0, 10), +(@OGUID+376, 1620, 1, 6047.41, -41.0122, 41.9093, 4.88692, 0, 0, -0.642787, 0.766045, 300, 300, 1, 100, 0, 10), +(@OGUID+377, 1620, 1, 7541.31, -1084.87, 40.3663, 3.76991, 0, 0, -0.951056, 0.309017, 300, 300, 1, 100, 0, 10), +(@OGUID+378, 1620, 1, 4564.44, 555.019, 4.53556, 2.30383, 0, 0, 0.913545, 0.406738, 300, 300, 1, 100, 0, 10), +(@OGUID+379, 1620, 1, 6870.8, 286.995, 14.3307, 2.65289, 0, 0, 0.970295, 0.241925, 300, 300, 1, 100, 0, 10), +(@OGUID+380, 1620, 1, 6650.46, 257.779, 28.8064, 6.03884, 0, 0, -0.121869, 0.992546, 300, 300, 1, 100, 0, 10), +(@OGUID+381, 1620, 1, 5588.27, 368.517, 28.3201, 3.9619, 0, 0, -0.91706, 0.39875, 300, 300, 1, 100, 0, 10), +(@OGUID+382, 1620, 1, 7420.17, -600.08, 8.84017, 5.14872, 0, 0, -0.537299, 0.843392, 300, 300, 1, 100, 0, 10), +(@OGUID+383, 1620, 1, 5669.05, 474.506, 14.5995, 6.10865, 0, 0, -0.0871553, 0.996195, 300, 300, 1, 100, 0, 10), +(@OGUID+384, 1620, 0, -700.331, -299.668, 18.6688, 4.83456, 0, 0, -0.66262, 0.748956, 300, 300, 1, 100, 0, 10), +(@OGUID+385, 1620, 0, -800.534, -261.12, 17.7406, 0.767944, 0, 0, 0.374606, 0.927184, 300, 300, 1, 100, 0, 10), +(@OGUID+386, 1620, 1, 2274.27, -1884.55, 64.4087, 3.42085, 0, 0, -0.990268, 0.139175, 300, 300, 1, 100, 0, 10), +(@OGUID+387, 1620, 1, 3672.25, 633.266, 6.47519, 5.39307, 0, 0, -0.430511, 0.902586, 300, 300, 1, 100, 0, 10), +(@OGUID+388, 1620, 1, 3633.68, 770.675, 6.55052, 3.07177, 0, 0, 0.999391, 0.0349061, 300, 300, 1, 100, 0, 10), +(@OGUID+389, 1620, 1, 1894.98, -633.217, 112.254, 0.90757, 0, 0, 0.438371, 0.898794, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+341, 1154, 0, 'Mageroyal', 0, 10), +(@OGUID+342, 1154, 0, 'Mageroyal', 0, 10), +(@OGUID+343, 1154, 0, 'Mageroyal', 0, 10), +(@OGUID+344, 1154, 0, 'Mageroyal', 0, 10), +(@OGUID+345, 1154, 0, 'Mageroyal', 0, 10), +(@OGUID+346, 1023, 0, 'Mageroyal', 0, 10), +(@OGUID+347, 1023, 0, 'Mageroyal', 0, 10), +(@OGUID+348, 1163, 0, 'Mageroyal', 0, 10), +(@OGUID+349, 1163, 0, 'Mageroyal', 0, 10), +(@OGUID+350, 1163, 0, 'Mageroyal', 0, 10), +(@OGUID+351, 1163, 0, 'Mageroyal', 0, 10), +(@OGUID+352, 1163, 0, 'Mageroyal', 0, 10), +(@OGUID+353, 1163, 0, 'Mageroyal', 0, 10), +(@OGUID+354, 1108, 0, 'Mageroyal', 0, 10), +(@OGUID+355, 1108, 0, 'Mageroyal', 0, 10), +(@OGUID+356, 1108, 0, 'Mageroyal', 0, 10), +(@OGUID+357, 1108, 0, 'Mageroyal', 0, 10), +(@OGUID+358, 1108, 0, 'Mageroyal', 0, 10), +(@OGUID+359, 1108, 0, 'Mageroyal', 0, 10), +(@OGUID+360, 1108, 0, 'Mageroyal', 0, 10), +(@OGUID+361, 1108, 0, 'Mageroyal', 0, 10), +(@OGUID+362, 1306, 0, 'Mageroyal', 0, 10), +(@OGUID+363, 1306, 0, 'Mageroyal', 0, 10), +(@OGUID+364, 1306, 0, 'Mageroyal', 0, 10), +(@OGUID+365, 1043, 0, 'Mageroyal', 0, 10), +(@OGUID+366, 1043, 0, 'Mageroyal', 0, 10), +(@OGUID+367, 1043, 0, 'Mageroyal', 0, 10), +(@OGUID+368, 1043, 0, 'Mageroyal', 0, 10), +(@OGUID+369, 1043, 0, 'Mageroyal', 0, 10), +(@OGUID+370, 1043, 0, 'Mageroyal', 0, 10), +(@OGUID+371, 1004, 0, 'Mageroyal', 0, 10), +(@OGUID+372, 1004, 0, 'Mageroyal', 0, 10), +(@OGUID+373, 1004, 0, 'Mageroyal', 0, 10), +(@OGUID+374, 1097, 0, 'Mageroyal', 0, 10), +(@OGUID+375, 1097, 0, 'Mageroyal', 0, 10), +(@OGUID+376, 1097, 0, 'Mageroyal', 0, 10), +(@OGUID+377, 1097, 0, 'Mageroyal', 0, 10), +(@OGUID+378, 1097, 0, 'Mageroyal', 0, 10), +(@OGUID+379, 1097, 0, 'Mageroyal', 0, 10), +(@OGUID+380, 1097, 0, 'Mageroyal', 0, 10), +(@OGUID+381, 1097, 0, 'Mageroyal', 0, 10), +(@OGUID+382, 1097, 0, 'Mageroyal', 0, 10), +(@OGUID+383, 1097, 0, 'Mageroyal', 0, 10), +(@OGUID+384, 1049, 0, 'Mageroyal', 0, 10), +(@OGUID+385, 1049, 0, 'Mageroyal', 0, 10), +(@OGUID+386, 1077, 0, 'Mageroyal', 0, 10), +(@OGUID+387, 1077, 0, 'Mageroyal', 0, 10), +(@OGUID+388, 1077, 0, 'Mageroyal', 0, 10), +(@OGUID+389, 1077, 0, 'Mageroyal', 0, 10); + +-- Wild Steelbloom +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+390, 1623, 0, -7317.87, -3132.37, 323.213, 0.471238, 0, 0, 0.233445, 0.97237, 300, 300, 1, 100, 0, 10), +(@OGUID+391, 1623, 0, -7128.67, -2236.09, 296.517, 4.15388, 0, 0, -0.874619, 0.48481, 300, 300, 1, 100, 0, 10), +(@OGUID+392, 1623, 0, -10588.8, -702.674, 82.2466, 2.14675, 0, 0, 0.878817, 0.47716, 300, 300, 1, 100, 0, 10), +(@OGUID+393, 1623, 0, -3205.36, -3143.97, 70.3773, 5.18363, 0, 0, -0.522498, 0.85264, 300, 300, 1, 100, 0, 10), +(@OGUID+394, 1623, 0, -3280.68, -1943.98, 59.5733, 2.79252, 0, 0, 0.984807, 0.173652, 300, 300, 1, 100, 0, 10), +(@OGUID+395, 1623, 0, -3586.79, -1894.77, 99.0641, 2.79252, 0, 0, 0.984807, 0.173652, 300, 300, 1, 100, 0, 10), +(@OGUID+396, 1623, 0, -2765.35, -2947.41, 70.9175, 0.331611, 0, 0, 0.165047, 0.986286, 300, 300, 1, 100, 0, 10), +(@OGUID+397, 1623, 0, -3580.52, -1765.02, 86.6749, 1.53589, 0, 0, 0.694658, 0.71934, 300, 300, 1, 100, 0, 10), +(@OGUID+398, 1623, 1, -4012.77, -2373.4, 146.484, 4.24115, 0, 0, -0.85264, 0.522499, 300, 300, 1, 100, 0, 10), +(@OGUID+399, 1623, 1, -4101.3, -1787.22, 123.871, 4.66003, 0, 0, -0.725374, 0.688355, 300, 300, 1, 100, 0, 10), +(@OGUID+400, 1623, 1, -1533.31, -3397.03, 236.296, 1.74533, 0, 0, 0.766044, 0.642789, 300, 300, 1, 100, 0, 10), +(@OGUID+401, 1623, 1, -1988.81, -2904.01, 122.702, 5.21854, 0, 0, -0.507538, 0.861629, 300, 300, 1, 100, 0, 10), +(@OGUID+402, 1623, 1, -2203.32, -2816.14, 147.174, 3.94445, 0, 0, -0.920505, 0.390732, 300, 300, 1, 100, 0, 10), +(@OGUID+403, 1623, 0, -11842.5, -717.021, 42.0561, 5.96903, 0, 0, -0.156434, 0.987688, 300, 300, 1, 100, 0, 10), +(@OGUID+404, 1623, 0, -11589.2, 898.21, 39.7771, 0.314158, 0, 0, 0.156434, 0.987688, 300, 300, 1, 100, 0, 10), +(@OGUID+405, 1623, 0, -11412.1, -721.328, 84.9422, 0.0174525, 0, 0, 0.00872612, 0.999962, 300, 300, 1, 100, 0, 10), +(@OGUID+406, 1623, 0, -13781.5, 520.153, 64.6684, 5.46288, 0, 0, -0.398748, 0.91706, 300, 300, 1, 100, 0, 10), +(@OGUID+407, 1623, 0, -13787.4, 422.404, 89.6641, 1.71042, 0, 0, 0.754709, 0.656059, 300, 300, 1, 100, 0, 10), +(@OGUID+408, 1623, 0, -13899.4, 401.292, 105.074, 5.3058, 0, 0, -0.469471, 0.882948, 300, 300, 1, 100, 0, 10), +(@OGUID+409, 1623, 0, -305.205, 304.965, 134.944, 0.750491, 0, 0, 0.366501, 0.930418, 300, 300, 1, 100, 0, 10), +(@OGUID+410, 1623, 0, -890.756, -2848.04, 68.6959, 0.331611, 0, 0, 0.165047, 0.986286, 300, 300, 1, 100, 0, 10), +(@OGUID+411, 1623, 0, -755.853, -2290.78, 62.4308, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+412, 1623, 0, -1522.83, -3517.69, 67.2698, 0.733038, 0, 0, 0.358368, 0.93358, 300, 300, 1, 100, 0, 10), +(@OGUID+413, 1623, 0, -918.291, -2640.81, 91.7362, 0.890117, 0, 0, 0.430511, 0.902586, 300, 300, 1, 100, 0, 10), +(@OGUID+414, 1623, 0, -649.711, -2131.39, 79.6602, 3.61284, 0, 0, -0.972369, 0.233448, 300, 300, 1, 100, 0, 10), +(@OGUID+415, 1623, 0, -1815.8, -1959.13, 71.8475, 1.0821, 0, 0, 0.515038, 0.857168, 300, 300, 1, 100, 0, 10), +(@OGUID+416, 1623, 0, -805.965, -2409.28, 70.0148, 5.51524, 0, 0, -0.374606, 0.927184, 300, 300, 1, 100, 0, 10), +(@OGUID+417, 1623, 0, -749.011, -3410.89, 90.186, 5.72468, 0, 0, -0.275637, 0.961262, 300, 300, 1, 100, 0, 10), +(@OGUID+418, 1623, 0, -580.838, -2027.2, 68.5584, 1.44862, 0, 0, 0.66262, 0.748956, 300, 300, 1, 100, 0, 10), +(@OGUID+419, 1623, 0, -1946.28, -2989.11, 72.2344, 5.77704, 0, 0, -0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+420, 1623, 0, -1829.14, -2981.23, 69.3118, 2.40855, 0, 0, 0.93358, 0.358368, 300, 300, 1, 100, 0, 10), +(@OGUID+421, 1623, 0, -1853.31, -1739.57, 62.6701, 4.4855, 0, 0, -0.782608, 0.622515, 300, 300, 1, 100, 0, 10), +(@OGUID+422, 1623, 0, -1200.07, -2025, 65.1737, 1.43117, 0, 0, 0.656058, 0.75471, 300, 300, 1, 100, 0, 10), +(@OGUID+423, 1623, 0, -1026.27, -3804.79, 149.82, 5.18363, 0, 0, -0.522498, 0.85264, 300, 300, 1, 100, 0, 10), +(@OGUID+424, 1623, 0, -1956.44, -3362.97, 110.945, 2.23402, 0, 0, 0.898793, 0.438373, 300, 300, 1, 100, 0, 10), +(@OGUID+425, 1623, 0, -989.06, -3809.53, 140.694, 5.93412, 0, 0, -0.173648, 0.984808, 300, 300, 1, 100, 0, 10), +(@OGUID+426, 1623, 0, -1330.33, 503.018, 98.428, 2.77507, 0, 0, 0.983254, 0.182238, 300, 300, 1, 100, 0, 10), +(@OGUID+427, 1623, 0, -749.624, -980.945, 54.2288, 5.70723, 0, 0, -0.284015, 0.95882, 300, 300, 1, 100, 0, 10), +(@OGUID+428, 1623, 0, -389.719, -1771.66, 113.344, 4.15388, 0, 0, -0.874619, 0.48481, 300, 300, 1, 100, 0, 10), +(@OGUID+429, 1623, 0, -1164.79, -935.764, 66.79, 1.83259, 0, 0, 0.793353, 0.608762, 300, 300, 1, 100, 0, 10), +(@OGUID+430, 1623, 1, 2790.22, -2272.18, 207.985, 0.0349062, 0, 0, 0.0174522, 0.999848, 300, 300, 1, 100, 0, 10), +(@OGUID+431, 1623, 1, 2396.24, 656.306, 154.369, 2.21657, 0, 0, 0.894934, 0.446199, 300, 300, 1, 100, 0, 10), +(@OGUID+432, 1623, 1, 1719.1, -3041.58, 128.042, 3.78737, 0, 0, -0.948323, 0.317306, 300, 300, 1, 100, 0, 10), +(@OGUID+433, 1623, 1, 2945.81, -2888.21, 229.308, 2.23402, 0, 0, 0.898793, 0.438373, 300, 300, 1, 100, 0, 10), +(@OGUID+434, 1623, 1, -5498.4, -4090.68, -41.5324, 3.31614, 0, 0, -0.996194, 0.087165, 300, 300, 1, 100, 0, 10), +(@OGUID+435, 1623, 1, -5122.7, -870.483, -1.63124, 1.58825, 0, 0, 0.71325, 0.70091, 300, 300, 1, 100, 0, 10), +(@OGUID+436, 1623, 1, -5461, -3720.89, -43.6302, 6.14356, 0, 0, -0.0697556, 0.997564, 300, 300, 1, 100, 0, 10), +(@OGUID+437, 1623, 1, -4894.94, -1044.52, -33.3522, 1.20428, 0, 0, 0.566406, 0.824126, 300, 300, 1, 100, 0, 10), +(@OGUID+438, 1623, 1, -4896.06, -1251.02, -33.074, 1.02974, 0, 0, 0.492423, 0.870356, 300, 300, 1, 100, 0, 10), +(@OGUID+439, 1623, 1, -2327.95, 2674.28, 72.0143, 5.58505, 0, 0, -0.34202, 0.939693, 300, 300, 1, 100, 0, 10), +(@OGUID+440, 1623, 1, -1636.03, 2771.46, 111.509, 4.27606, 0, 0, -0.843391, 0.5373, 300, 300, 1, 100, 0, 10), +(@OGUID+441, 1623, 1, 1700.4, 1048.89, 148.108, 1.58825, 0, 0, 0.71325, 0.70091, 300, 300, 1, 100, 0, 10), +(@OGUID+442, 1623, 1, 604.472, 1986, 10.3845, 3.57793, 0, 0, -0.976295, 0.216442, 300, 300, 1, 100, 0, 10), +(@OGUID+443, 1623, 1, 26.811, -290.522, 47.188, 4.11898, 0, 0, -0.882947, 0.469473, 300, 300, 1, 100, 0, 10), +(@OGUID+444, 1623, 1, 726.615, 1363.71, 6.86047, 0.925024, 0, 0, 0.446198, 0.894935, 300, 300, 1, 100, 0, 10), +(@OGUID+445, 1623, 1, 1675.54, 1078.7, 168.939, 1.8675, 0, 0, 0.803857, 0.594823, 300, 300, 1, 100, 0, 10), +(@OGUID+446, 1623, 1, 545.1, 211.313, 85.3252, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+447, 1623, 1, 1293.84, 877.404, 201.712, 5.77704, 0, 0, -0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+448, 1623, 1, 2236.75, 1352.26, 313.724, 4.08407, 0, 0, -0.891006, 0.453991, 300, 300, 1, 100, 0, 10), +(@OGUID+449, 1623, 1, 924.429, 1419.15, 19.6699, 4.57276, 0, 0, -0.754709, 0.656059, 300, 300, 1, 100, 0, 10), +(@OGUID+450, 1623, 1, 1790.43, 1071.36, 176.55, 2.16421, 0, 0, 0.882947, 0.469473, 300, 300, 1, 100, 0, 10), +(@OGUID+451, 1623, 1, 2521.27, 1816.82, 373.208, 4.76475, 0, 0, -0.688354, 0.725374, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+390, 1084, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+391, 1084, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+392, 1114, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+393, 1152, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+394, 1152, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+395, 1152, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+396, 1152, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+397, 1152, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+398, 1168, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+399, 1168, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+400, 1168, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+401, 1168, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+402, 1168, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+403, 1169, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+404, 1169, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+405, 1169, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+406, 1169, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+407, 1169, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+408, 1169, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+409, 1061, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+410, 1185, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+411, 1185, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+412, 1185, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+413, 1185, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+414, 1185, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+415, 1185, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+416, 1185, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+417, 1185, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+418, 1185, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+419, 1185, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+420, 1185, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+421, 1185, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+422, 1185, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+423, 1185, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+424, 1185, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+425, 1185, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+426, 1209, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+427, 1209, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+428, 1209, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+429, 1209, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+430, 1081, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+431, 1081, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+432, 1081, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+433, 1081, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+434, 1134, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+435, 1134, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+436, 1134, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+437, 1134, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+438, 1134, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+439, 1142, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+440, 1142, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+441, 1085, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+442, 1085, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+443, 1085, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+444, 1085, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+445, 1085, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+446, 1085, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+447, 1085, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+448, 1085, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+449, 1085, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+450, 1085, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+451, 1085, 0, 'Wild Steelbloom', 0, 10); + +-- Liferoot +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+452, 2041, 0, -10713.3, -4055.1, 19.0057, 3.71755, 0, 0, -0.958819, 0.284016, 300, 300, 1, 100, 0, 10), +(@OGUID+453, 2041, 0, -10023.3, -3912.56, 20.2152, 0.104719, 0, 0, 0.0523357, 0.99863, 300, 300, 1, 100, 0, 10), +(@OGUID+454, 2041, 0, -10617.5, -3956.31, 20.4969, 0.558504, 0, 0, 0.275637, 0.961262, 300, 300, 1, 100, 0, 10), +(@OGUID+455, 2041, 0, -2954.39, -2235.25, 7.02462, 0.349065, 0, 0, 0.173648, 0.984808, 300, 300, 1, 100, 0, 10), +(@OGUID+456, 2041, 0, -2869.72, -1959.99, 7.58346, 1.85005, 0, 0, 0.798635, 0.601815, 300, 300, 1, 100, 0, 10), +(@OGUID+457, 2041, 0, -3023.52, -1608.5, 7.62549, 3.07177, 0, 0, 0.999391, 0.0349061, 300, 300, 1, 100, 0, 10), +(@OGUID+458, 2041, 0, -3071.98, -2200.16, 7.08711, 4.17134, 0, 0, -0.870356, 0.492424, 300, 300, 1, 100, 0, 10), +(@OGUID+459, 2041, 0, -2837.91, -1775.33, 7.82989, 0.331611, 0, 0, 0.165047, 0.986286, 300, 300, 1, 100, 0, 10), +(@OGUID+460, 2041, 1, -4243.45, -3142.83, 30.5253, 5.34071, 0, 0, -0.45399, 0.891007, 300, 300, 1, 100, 0, 10), +(@OGUID+461, 2041, 1, -2923.2, -2945.37, 30.5746, 3.94445, 0, 0, -0.920505, 0.390732, 300, 300, 1, 100, 0, 10), +(@OGUID+462, 2041, 1, -2808.46, -3957.06, 30.7865, 0.820303, 0, 0, 0.398748, 0.91706, 300, 300, 1, 100, 0, 10), +(@OGUID+463, 2041, 1, -3785.62, -3091.32, 30.7685, 3.83973, 0, 0, -0.939692, 0.34202, 300, 300, 1, 100, 0, 10), +(@OGUID+464, 2041, 0, -12056.7, 13.9767, 1.44792, 5.02655, 0, 0, -0.587785, 0.809017, 300, 300, 1, 100, 0, 10), +(@OGUID+465, 2041, 0, -11540.6, 690.957, 61.4121, 2.51327, 0, 0, 0.951056, 0.309017, 300, 300, 1, 100, 0, 10), +(@OGUID+466, 2041, 0, 473.583, 409.177, 33.1667, 5.11382, 0, 0, -0.551936, 0.833886, 300, 300, 1, 100, 0, 10), +(@OGUID+467, 2041, 0, 1042.13, -218.064, 32.7624, 5.67232, 0, 0, -0.300705, 0.953717, 300, 300, 1, 100, 0, 10), +(@OGUID+468, 2041, 0, 707.814, 39.4294, 32.5738, 5.18363, 0, 0, -0.522498, 0.85264, 300, 300, 1, 100, 0, 10), +(@OGUID+469, 2041, 0, 786.777, -47.2454, 32.3237, 2.3911, 0, 0, 0.930417, 0.366502, 300, 300, 1, 100, 0, 10), +(@OGUID+470, 2041, 0, -1777.67, -3250.41, 27.0759, 4.67748, 0, 0, -0.719339, 0.694659, 300, 300, 1, 100, 0, 10), +(@OGUID+471, 2041, 0, -1711.67, -3364.19, 29.0055, 3.89209, 0, 0, -0.930417, 0.366502, 300, 300, 1, 100, 0, 10), +(@OGUID+472, 2041, 0, 416.393, -4217.57, 102.39, 6.07375, 0, 0, -0.104528, 0.994522, 300, 300, 1, 100, 0, 10), +(@OGUID+473, 2041, 0, 500.766, -3791.9, 102.439, 0.314158, 0, 0, 0.156434, 0.987688, 300, 300, 1, 100, 0, 10), +(@OGUID+474, 2041, 1, 1623.1, -1760.67, 94.6082, 4.67748, 0, 0, -0.719339, 0.694659, 300, 300, 1, 100, 0, 10), +(@OGUID+475, 2041, 1, 2032.05, -3188.99, 91.7149, 2.07694, 0, 0, 0.861629, 0.507539, 300, 300, 1, 100, 0, 10), +(@OGUID+476, 2041, 1, 2607.98, -2495.74, 166.12, 3.35105, 0, 0, -0.994521, 0.104536, 300, 300, 1, 100, 0, 10), +(@OGUID+477, 2041, 1, -4633.45, -66.6649, 91.9696, 5.74214, 0, 0, -0.267238, 0.963631, 300, 300, 1, 100, 0, 10), +(@OGUID+478, 2041, 1, -4795.04, 414.182, 12.1817, 4.59022, 0, 0, -0.748956, 0.66262, 300, 300, 1, 100, 0, 10), +(@OGUID+479, 2041, 1, -1967.59, 1662.74, 61.1779, 4.24115, 0, 0, -0.85264, 0.522499, 300, 300, 1, 100, 0, 10), +(@OGUID+480, 2041, 43, -44.9962, 119.944, -105.828, 0.855211, 0, 0, 0.414693, 0.909961, 300, 300, 1, 100, 0, 10), +(@OGUID+481, 2041, 43, -167.482, 43.7933, -105.824, 2.87979, 0, 0, 0.991445, 0.130528, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+452, 1317, 0, 'Liferoot', 0, 10), +(@OGUID+453, 1317, 0, 'Liferoot', 0, 10), +(@OGUID+454, 1317, 0, 'Liferoot', 0, 10), +(@OGUID+455, 1153, 0, 'Liferoot', 0, 10), +(@OGUID+456, 1153, 0, 'Liferoot', 0, 10), +(@OGUID+457, 1153, 0, 'Liferoot', 0, 10), +(@OGUID+458, 1153, 0, 'Liferoot', 0, 10), +(@OGUID+459, 1153, 0, 'Liferoot', 0, 10), +(@OGUID+460, 1104, 0, 'Liferoot', 0, 10), +(@OGUID+461, 1104, 0, 'Liferoot', 0, 10), +(@OGUID+462, 1104, 0, 'Liferoot', 0, 10), +(@OGUID+463, 1104, 0, 'Liferoot', 0, 10), +(@OGUID+464, 1179, 0, 'Liferoot', 0, 10), +(@OGUID+465, 1179, 0, 'Liferoot', 0, 10), +(@OGUID+466, 1063, 0, 'Liferoot', 0, 10), +(@OGUID+467, 1063, 0, 'Liferoot', 0, 10), +(@OGUID+468, 1063, 0, 'Liferoot', 0, 10), +(@OGUID+469, 1063, 0, 'Liferoot', 0, 10), +(@OGUID+470, 1184, 0, 'Liferoot', 0, 10), +(@OGUID+471, 1184, 0, 'Liferoot', 0, 10), +(@OGUID+472, 1251, 0, 'Liferoot', 0, 10), +(@OGUID+473, 1251, 0, 'Liferoot', 0, 10), +(@OGUID+474, 1325, 0, 'Liferoot', 0, 10), +(@OGUID+475, 1325, 0, 'Liferoot', 0, 10), +(@OGUID+476, 1325, 0, 'Liferoot', 0, 10), +(@OGUID+477, 1193, 0, 'Liferoot', 0, 10), +(@OGUID+478, 1193, 0, 'Liferoot', 0, 10), +(@OGUID+479, 1144, 0, 'Liferoot', 0, 10), +(@OGUID+480, 1053, 0, 'Liferoot', 0, 10), +(@OGUID+481, 1053, 0, 'Liferoot', 0, 10); + +-- Wintersbite +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+482, 2044, 0, 708.759, -744.561, 163.241, 4.17134, 0, 0, -0.870356, 0.492424, 300, 300, 1, 100, 0, 10), +(@OGUID+483, 2044, 0, 519.231, -117.076, 145.335, 0.226892, 0, 0, 0.113203, 0.993572, 300, 300, 1, 100, 0, 10), +(@OGUID+484, 2044, 0, 606.742, -201.236, 144.531, 0.383971, 0, 0, 0.190808, 0.981627, 300, 300, 1, 100, 0, 10), +(@OGUID+485, 2044, 0, 842.553, -443.482, 135.009, 2.80998, 0, 0, 0.986285, 0.16505, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+482, 1062, 0, 'Wintersbite', 0, 10), +(@OGUID+483, 1062, 0, 'Wintersbite', 0, 10), +(@OGUID+484, 1062, 0, 'Wintersbite', 0, 10), +(@OGUID+485, 1062, 0, 'Wintersbite', 0, 10); + +-- Stranglekelp +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+486, 2045, 0, -10892, -4547.98, -45.3168, 5.70723, 0, 0, -0.284015, 0.95882, 300, 300, 1, 100, 0, 10), +(@OGUID+487, 2045, 0, -10662.2, -4414.67, -16.6424, 2.42601, 0, 0, 0.936672, 0.350207, 300, 300, 1, 100, 0, 10), +(@OGUID+488, 2045, 0, -11322.8, -4077.47, -36.8589, 3.64774, 0, 0, -0.968147, 0.250381, 300, 300, 1, 100, 0, 10), +(@OGUID+489, 2045, 0, -10040.5, -4401.72, -6.08208, 2.93214, 0, 0, 0.994521, 0.104536, 300, 300, 1, 100, 0, 10), +(@OGUID+490, 2045, 0, -10764.3, -4579.58, -38.5311, 4.2237, 0, 0, -0.857167, 0.515038, 300, 300, 1, 100, 0, 10), +(@OGUID+491, 2045, 0, -9634.79, -3966.4, -2.27751, 4.93928, 0, 0, -0.622514, 0.782609, 300, 300, 1, 100, 0, 10), +(@OGUID+492, 2045, 0, -10775.3, -4366.06, -17.1752, 2.02458, 0, 0, 0.848047, 0.529921, 300, 300, 1, 100, 0, 10), +(@OGUID+493, 2045, 0, -10011.6, -4517.98, -4.88942, 4.67748, 0, 0, -0.719339, 0.694659, 300, 300, 1, 100, 0, 10), +(@OGUID+494, 2045, 0, -9819.65, -4460.31, -3.11299, 2.58308, 0, 0, 0.961261, 0.27564, 300, 300, 1, 100, 0, 10), +(@OGUID+495, 2045, 0, -11285.7, -4225.59, -45.5267, 1.78023, 0, 0, 0.777145, 0.629321, 300, 300, 1, 100, 0, 10), +(@OGUID+496, 2045, 0, -9754.36, -4148.09, -4.68833, 6.17847, 0, 0, -0.0523357, 0.99863, 300, 300, 1, 100, 0, 10), +(@OGUID+497, 2045, 0, -10431.6, -4628.64, -44.0152, 1.72787, 0, 0, 0.760406, 0.649449, 300, 300, 1, 100, 0, 10), +(@OGUID+498, 2045, 0, -10874.6, -4365.94, -14.6958, 0.244346, 0, 0, 0.121869, 0.992546, 300, 300, 1, 100, 0, 10), +(@OGUID+499, 2045, 0, -10722.6, -4459.21, -19.5709, 2.42601, 0, 0, 0.936672, 0.350207, 300, 300, 1, 100, 0, 10), +(@OGUID+500, 2045, 0, -11114, -4229.84, -2.73586, 4.29351, 0, 0, -0.83867, 0.54464, 300, 300, 1, 100, 0, 10), +(@OGUID+501, 2045, 0, -11198.5, -4008.91, -20.6787, 1.74533, 0, 0, 0.766044, 0.642789, 300, 300, 1, 100, 0, 10), +(@OGUID+502, 2045, 0, -10407, -4484.25, -16.6857, 0.104719, 0, 0, 0.0523357, 0.99863, 300, 300, 1, 100, 0, 10), +(@OGUID+503, 2045, 0, -3585.93, -1118.09, -13.8144, 5.77704, 0, 0, -0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+504, 2045, 0, -3314.23, -776.427, -10.5382, 3.49067, 0, 0, -0.984807, 0.173652, 300, 300, 1, 100, 0, 10), +(@OGUID+505, 2045, 0, -3598.88, -487.426, -25.3836, 2.77507, 0, 0, 0.983254, 0.182238, 300, 300, 1, 100, 0, 10), +(@OGUID+506, 2045, 0, -3198.83, -830.584, -13.6571, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+507, 2045, 0, -3750.67, -1080.5, -45.1283, 4.86947, 0, 0, -0.649447, 0.760406, 300, 300, 1, 100, 0, 10), +(@OGUID+508, 2045, 0, -2614.64, -1128.85, -45.0666, 3.63029, 0, 0, -0.970295, 0.241925, 300, 300, 1, 100, 0, 10), +(@OGUID+509, 2045, 0, -2987.83, -812.003, -10.8781, 3.59538, 0, 0, -0.97437, 0.224951, 300, 300, 1, 100, 0, 10), +(@OGUID+510, 2045, 0, -2561.2, -1245.48, -42.077, 6.10865, 0, 0, -0.0871553, 0.996195, 300, 300, 1, 100, 0, 10), +(@OGUID+511, 2045, 1, -2533.26, -3833.33, -2.85303, 1.18682, 0, 0, 0.559193, 0.829038, 300, 300, 1, 100, 0, 10), +(@OGUID+512, 2045, 1, -2755.98, -4325.28, -8.25132, 1.29154, 0, 0, 0.601814, 0.798636, 300, 300, 1, 100, 0, 10), +(@OGUID+513, 2045, 1, -2379.33, -4270.28, -3.92532, 4.03171, 0, 0, -0.902585, 0.430512, 300, 300, 1, 100, 0, 10), +(@OGUID+514, 2045, 1, -4190.68, -3897.44, -4.99663, 1.23918, 0, 0, 0.580703, 0.814116, 300, 300, 1, 100, 0, 10), +(@OGUID+515, 2045, 1, -2945.71, -4393.6, -4.54836, 3.56047, 0, 0, -0.978148, 0.207912, 300, 300, 1, 100, 0, 10), +(@OGUID+516, 2045, 1, -4247.56, -3841.34, -7.14306, 1.67551, 0, 0, 0.743144, 0.669131, 300, 300, 1, 100, 0, 10), +(@OGUID+517, 2045, 1, 3217.64, -5867.11, -18.3805, 0.314158, 0, 0, 0.156434, 0.987688, 300, 300, 1, 100, 0, 10), +(@OGUID+518, 2045, 1, -1581.08, -4422.66, -13.0348, 6.17847, 0, 0, -0.0523357, 0.99863, 300, 300, 1, 100, 0, 10), +(@OGUID+519, 2045, 1, -1614.03, -4284.6, -15.0763, 3.52557, 0, 0, -0.981627, 0.190812, 300, 300, 1, 100, 0, 10), +(@OGUID+520, 2045, 0, -14993.6, 313.932, -32.7347, 4.90438, 0, 0, -0.636078, 0.771625, 300, 300, 1, 100, 0, 10), +(@OGUID+521, 2045, 0, -13984.5, -188.651, -13.6795, 4.72984, 0, 0, -0.700909, 0.713251, 300, 300, 1, 100, 0, 10), +(@OGUID+522, 2045, 0, -14156.2, -116.809, -10.5092, 5.75959, 0, 0, -0.258819, 0.965926, 300, 300, 1, 100, 0, 10), +(@OGUID+523, 2045, 0, -14866.2, 48.6583, -9.68805, 0.436332, 0, 0, 0.216439, 0.976296, 300, 300, 1, 100, 0, 10), +(@OGUID+524, 2045, 0, -12013.9, 945.362, -17.1093, 2.65289, 0, 0, 0.970295, 0.241925, 300, 300, 1, 100, 0, 10), +(@OGUID+525, 2045, 0, -14179.8, -177.994, -15.0466, 2.93214, 0, 0, 0.994521, 0.104536, 300, 300, 1, 100, 0, 10), +(@OGUID+526, 2045, 0, -12234.2, 875.091, -15.3099, 1.02974, 0, 0, 0.492423, 0.870356, 300, 300, 1, 100, 0, 10), +(@OGUID+527, 2045, 0, -11654, 1733.19, -38.1755, 5.07891, 0, 0, -0.566406, 0.824126, 300, 300, 1, 100, 0, 10), +(@OGUID+528, 2045, 0, -11342.9, 2052.11, -15.0582, 4.18879, 0, 0, -0.866025, 0.500001, 300, 300, 1, 100, 0, 10), +(@OGUID+529, 2045, 0, -9881.36, 2198.16, -41.1192, 2.40855, 0, 0, 0.93358, 0.358368, 300, 300, 1, 100, 0, 10), +(@OGUID+530, 2045, 0, -10316.1, 2124.53, -16.9549, 4.04917, 0, 0, -0.898793, 0.438373, 300, 300, 1, 100, 0, 10), +(@OGUID+531, 2045, 0, -9560.01, 1111.49, -9.92492, 4.92183, 0, 0, -0.62932, 0.777146, 300, 300, 1, 100, 0, 10), +(@OGUID+532, 2045, 0, -10050.3, 2157.3, -22.5455, 0.0349062, 0, 0, 0.0174522, 0.999848, 300, 300, 1, 100, 0, 10), +(@OGUID+533, 2045, 0, -10444.7, 2136.98, -9.59604, 5.34071, 0, 0, -0.45399, 0.891007, 300, 300, 1, 100, 0, 10), +(@OGUID+534, 2045, 0, -9853.24, 1976.96, -17.0215, 2.54818, 0, 0, 0.956305, 0.292372, 300, 300, 1, 100, 0, 10), +(@OGUID+535, 2045, 0, -9797.01, 2060.97, -17.2102, 4.83456, 0, 0, -0.66262, 0.748956, 300, 300, 1, 100, 0, 10), +(@OGUID+536, 2045, 0, -9613.96, 1755.91, -18.9281, 2.74016, 0, 0, 0.979924, 0.19937, 300, 300, 1, 100, 0, 10), +(@OGUID+537, 2045, 0, -11638.1, 1679.45, -21.165, 1.83259, 0, 0, 0.793353, 0.608762, 300, 300, 1, 100, 0, 10), +(@OGUID+538, 2045, 0, -9822.44, 1894.01, -16.4619, 1.50098, 0, 0, 0.681998, 0.731354, 300, 300, 1, 100, 0, 10), +(@OGUID+539, 2045, 0, -2517.58, -1485.82, -27.4875, 4.88692, 0, 0, -0.642787, 0.766045, 300, 300, 1, 100, 0, 10), +(@OGUID+540, 2045, 0, -151.148, -4909.86, -19.1006, 0.802851, 0, 0, 0.390731, 0.920505, 300, 300, 1, 100, 0, 10), +(@OGUID+541, 2045, 0, 171.69, -4821.57, -17.859, 2.67035, 0, 0, 0.972369, 0.233448, 300, 300, 1, 100, 0, 10), +(@OGUID+542, 2045, 0, 19.2655, -4890.57, -19.0195, 5.61996, 0, 0, -0.325567, 0.945519, 300, 300, 1, 100, 0, 10), +(@OGUID+543, 2045, 0, -250.644, -4651.93, -12.5148, 4.79966, 0, 0, -0.67559, 0.737278, 300, 300, 1, 100, 0, 10), +(@OGUID+544, 2045, 0, 106.92, -4827.25, -17.3767, 2.82743, 0, 0, 0.987688, 0.156436, 300, 300, 1, 100, 0, 10), +(@OGUID+545, 2045, 0, -144.687, -4860.1, -16.9362, 6.21337, 0, 0, -0.0348988, 0.999391, 300, 300, 1, 100, 0, 10), +(@OGUID+546, 2045, 0, -465.789, 1762.48, -2.58907, 4.53786, 0, 0, -0.766044, 0.642789, 300, 300, 1, 100, 0, 10), +(@OGUID+547, 2045, 0, -316.727, 1750.59, -8.40233, 4.45059, 0, 0, -0.793353, 0.608762, 300, 300, 1, 100, 0, 10), +(@OGUID+548, 2045, 0, 256.508, 1984.38, -38.7745, 4.20625, 0, 0, -0.861629, 0.507539, 300, 300, 1, 100, 0, 10), +(@OGUID+549, 2045, 0, -581.307, 1853.7, -7.9118, 0.541051, 0, 0, 0.267238, 0.963631, 300, 300, 1, 100, 0, 10), +(@OGUID+550, 2045, 0, 1241.9, 2150.4, -16.3049, 3.50812, 0, 0, -0.983254, 0.182238, 300, 300, 1, 100, 0, 10), +(@OGUID+551, 2045, 0, -153.996, 1883.65, -10.4675, 2.14675, 0, 0, 0.878817, 0.47716, 300, 300, 1, 100, 0, 10), +(@OGUID+552, 2045, 0, 971.115, 909.173, 9.89501, 4.39823, 0, 0, -0.809016, 0.587786, 300, 300, 1, 100, 0, 10), +(@OGUID+553, 2045, 0, 388.791, 1989.24, -26.9958, 4.69494, 0, 0, -0.71325, 0.70091, 300, 300, 1, 100, 0, 10), +(@OGUID+554, 2045, 0, 989.578, 2019.14, -9.41866, 3.15906, 0, 0, -0.999962, 0.00873464, 300, 300, 1, 100, 0, 10), +(@OGUID+555, 2045, 0, -83.7392, 1915.59, -10.0148, 1.6057, 0, 0, 0.719339, 0.694659, 300, 300, 1, 100, 0, 10), +(@OGUID+556, 2045, 0, 691.009, 1950.25, -17.4981, 5.60251, 0, 0, -0.333807, 0.942641, 300, 300, 1, 100, 0, 10), +(@OGUID+557, 2045, 0, 522.658, 1955.9, -18.9416, 5.48033, 0, 0, -0.390731, 0.920505, 300, 300, 1, 100, 0, 10), +(@OGUID+558, 2045, 1, 5018.68, 848.825, -28.2322, 1.11701, 0, 0, 0.529919, 0.848048, 300, 300, 1, 100, 0, 10), +(@OGUID+559, 2045, 1, 5411.04, 967.473, -53.3819, 3.82227, 0, 0, -0.942641, 0.333808, 300, 300, 1, 100, 0, 10), +(@OGUID+560, 2045, 1, 5553.85, 743.396, -14.222, 2.9496, 0, 0, 0.995396, 0.0958512, 300, 300, 1, 100, 0, 10), +(@OGUID+561, 2045, 1, 4917.32, 982.553, -20.7455, 6.12611, 0, 0, -0.0784588, 0.996917, 300, 300, 1, 100, 0, 10), +(@OGUID+562, 2045, 1, 7110.75, 426.176, -43.0759, 5.96903, 0, 0, -0.156434, 0.987688, 300, 300, 1, 100, 0, 10), +(@OGUID+563, 2045, 1, 7133.91, 249.912, -12.9205, 2.79252, 0, 0, 0.984807, 0.173652, 300, 300, 1, 100, 0, 10), +(@OGUID+564, 2045, 1, 7649.13, -442.55, -25.3444, 5.20108, 0, 0, -0.515038, 0.857168, 300, 300, 1, 100, 0, 10), +(@OGUID+565, 2045, 1, 7549.06, -76.5579, -19.7629, 2.05949, 0, 0, 0.857167, 0.515038, 300, 300, 1, 100, 0, 10), +(@OGUID+566, 2045, 1, 5249.74, 815.654, -12.2452, 1.43117, 0, 0, 0.656058, 0.75471, 300, 300, 1, 100, 0, 10), +(@OGUID+567, 2045, 1, 5763.34, 683.376, -34.9023, 0.349065, 0, 0, 0.173648, 0.984808, 300, 300, 1, 100, 0, 10), +(@OGUID+568, 2045, 0, -1352.69, 392.058, -48.9903, 2.40855, 0, 0, 0.93358, 0.358368, 300, 300, 1, 100, 0, 10), +(@OGUID+569, 2045, 0, -1189.21, 298.875, -46.0109, 4.11898, 0, 0, -0.882947, 0.469473, 300, 300, 1, 100, 0, 10), +(@OGUID+570, 2045, 0, -1217.24, -532.671, -90.8633, 4.15388, 0, 0, -0.874619, 0.48481, 300, 300, 1, 100, 0, 10), +(@OGUID+571, 2045, 0, -1298.7, 288.746, -46.8727, 5.91667, 0, 0, -0.182235, 0.983255, 300, 300, 1, 100, 0, 10), +(@OGUID+572, 2045, 0, -1571.21, -741.461, -21.853, 6.24828, 0, 0, -0.0174522, 0.999848, 300, 300, 1, 100, 0, 10), +(@OGUID+573, 2045, 0, -1141.87, 581.501, -45.7784, 6.23083, 0, 0, -0.0261765, 0.999657, 300, 300, 1, 100, 0, 10), +(@OGUID+574, 2045, 0, -1184.82, 512.931, -45.5282, 5.75959, 0, 0, -0.258819, 0.965926, 300, 300, 1, 100, 0, 10), +(@OGUID+575, 2045, 1, 2149.89, -2078.35, 93.0991, 6.10865, 0, 0, -0.0871553, 0.996195, 300, 300, 1, 100, 0, 10), +(@OGUID+576, 2045, 1, 4045.23, 1377.31, -11.2717, 0.366518, 0, 0, 0.182235, 0.983255, 300, 300, 1, 100, 0, 10), +(@OGUID+577, 2045, 1, 3007.8, 529.126, -5.22786, 5.58505, 0, 0, -0.34202, 0.939693, 300, 300, 1, 100, 0, 10), +(@OGUID+578, 2045, 1, 4147.58, 1212.44, -15.3628, 3.29869, 0, 0, -0.996917, 0.0784664, 300, 300, 1, 100, 0, 10), +(@OGUID+579, 2045, 1, 1879.47, -2910.53, 63.8233, 2.09439, 0, 0, 0.866025, 0.500001, 300, 300, 1, 100, 0, 10), +(@OGUID+580, 2045, 1, 1960.26, -963.65, 58.633, 1.79769, 0, 0, 0.782608, 0.622515, 300, 300, 1, 100, 0, 10), +(@OGUID+581, 2045, 1, 3477.34, 1199.82, -31.7853, 2.35619, 0, 0, 0.92388, 0.382683, 300, 300, 1, 100, 0, 10), +(@OGUID+582, 2045, 1, 2025.36, -1161.66, 77.8312, 2.02458, 0, 0, 0.848047, 0.529921, 300, 300, 1, 100, 0, 10), +(@OGUID+583, 2045, 1, 4004.76, 1042.3, -14.3909, 0.506145, 0, 0, 0.25038, 0.968148, 300, 300, 1, 100, 0, 10), +(@OGUID+584, 2045, 1, -5218.1, 2321.91, -41.3483, 0.820303, 0, 0, 0.398748, 0.91706, 300, 300, 1, 100, 0, 10), +(@OGUID+585, 2045, 1, -4651.65, 2486.65, -39.4714, 3.38594, 0, 0, -0.992546, 0.12187, 300, 300, 1, 100, 0, 10), +(@OGUID+586, 2045, 1, -5585.38, 2422.86, -41.3802, 0.0349062, 0, 0, 0.0174522, 0.999848, 300, 300, 1, 100, 0, 10), +(@OGUID+587, 2045, 1, -1422.18, 3287.27, -40.6472, 2.80998, 0, 0, 0.986285, 0.16505, 300, 300, 1, 100, 0, 10), +(@OGUID+588, 2045, 1, -1097.22, 3280.43, -45.6156, 2.89725, 0, 0, 0.992546, 0.12187, 300, 300, 1, 100, 0, 10), +(@OGUID+589, 2045, 1, -620.244, 2907.35, -38.408, 2.49582, 0, 0, 0.948323, 0.317306, 300, 300, 1, 100, 0, 10), +(@OGUID+590, 2045, 1, -730.961, 3025.9, -23.7659, 0.087266, 0, 0, 0.0436192, 0.999048, 300, 300, 1, 100, 0, 10), +(@OGUID+591, 2045, 1, -838.384, 3128.92, -22.3432, 3.78737, 0, 0, -0.948323, 0.317306, 300, 300, 1, 100, 0, 10), +(@OGUID+592, 2045, 1, 27.0329, 2919.57, -38.3743, 0.314158, 0, 0, 0.156434, 0.987688, 300, 300, 1, 100, 0, 10), +(@OGUID+593, 2045, 1, -1236.8, 3124.12, -39.7879, 5.61996, 0, 0, -0.325567, 0.945519, 300, 300, 1, 100, 0, 10), +(@OGUID+594, 2045, 1, -7128.21, -4967.81, -42.2755, 3.78737, 0, 0, -0.948323, 0.317306, 300, 300, 1, 100, 0, 10), +(@OGUID+595, 2045, 1, -7049.19, -4934.16, -11.7585, 3.82227, 0, 0, -0.942641, 0.333808, 300, 300, 1, 100, 0, 10), +(@OGUID+596, 2045, 1, -7770.63, -5169.9, -8.89128, 2.9845, 0, 0, 0.996917, 0.0784664, 300, 300, 1, 100, 0, 10), +(@OGUID+597, 2045, 1, -7655.13, -5106.79, -30.0753, 5.70723, 0, 0, -0.284015, 0.95882, 300, 300, 1, 100, 0, 10), +(@OGUID+598, 2045, 1, -7751.48, -5244.96, -21.1422, 5.70723, 0, 0, -0.284015, 0.95882, 300, 300, 1, 100, 0, 10), +(@OGUID+599, 2045, 1, -7289.61, -4952.4, -20.1355, 0.733038, 0, 0, 0.358368, 0.93358, 300, 300, 1, 100, 0, 10), +(@OGUID+600, 2045, 48, -481.444, 316.269, -63.7996, 3.54302, 0, 0, -0.979924, 0.19937, 300, 300, 1, 100, 0, 10), +(@OGUID+601, 2045, 48, -514.723, 271.829, -65.7819, 0.698131, 0, 0, 0.34202, 0.939693, 300, 300, 1, 100, 0, 10), +(@OGUID+602, 2045, 48, -805.265, -30.2197, -35.9841, 0.994837, 0, 0, 0.477159, 0.878817, 300, 300, 1, 100, 0, 10), +(@OGUID+603, 2045, 48, -327.896, 75.1296, -61.588, 2.68781, 0, 0, 0.97437, 0.224951, 300, 300, 1, 100, 0, 10), +(@OGUID+604, 2045, 349, 70.3658, -82.3886, -207.878, 4.7822, 0, 0, -0.681998, 0.731354, 300, 300, 1, 100, 0, 10), +(@OGUID+605, 2045, 349, 8.51018, -293.74, -207.107, 2.25147, 0, 0, 0.902585, 0.430512, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+486, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+487, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+488, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+489, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+490, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+491, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+492, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+493, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+494, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+495, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+496, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+497, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+498, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+499, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+500, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+501, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+502, 984, 0, 'Stranglekelp', 0, 10), +(@OGUID+503, 1149, 0, 'Stranglekelp', 0, 10), +(@OGUID+504, 1149, 0, 'Stranglekelp', 0, 10), +(@OGUID+505, 1149, 0, 'Stranglekelp', 0, 10), +(@OGUID+506, 1149, 0, 'Stranglekelp', 0, 10), +(@OGUID+507, 1149, 0, 'Stranglekelp', 0, 10), +(@OGUID+508, 1149, 0, 'Stranglekelp', 0, 10), +(@OGUID+509, 1149, 0, 'Stranglekelp', 0, 10), +(@OGUID+510, 1149, 0, 'Stranglekelp', 0, 10), +(@OGUID+511, 43522, 0, 'Stranglekelp', 0, 10), +(@OGUID+512, 43522, 0, 'Stranglekelp', 0, 10), +(@OGUID+513, 43522, 0, 'Stranglekelp', 0, 10), +(@OGUID+514, 43522, 0, 'Stranglekelp', 0, 10), +(@OGUID+515, 43522, 0, 'Stranglekelp', 0, 10), +(@OGUID+516, 43522, 0, 'Stranglekelp', 0, 10), +(@OGUID+517, 1321, 0, 'Stranglekelp', 0, 10), +(@OGUID+518, 1064, 0, 'Stranglekelp', 0, 10), +(@OGUID+519, 1064, 0, 'Stranglekelp', 0, 10), +(@OGUID+520, 1171, 0, 'Stranglekelp', 0, 10), +(@OGUID+521, 1171, 0, 'Stranglekelp', 0, 10), +(@OGUID+522, 1171, 0, 'Stranglekelp', 0, 10), +(@OGUID+523, 1171, 0, 'Stranglekelp', 0, 10), +(@OGUID+524, 1171, 0, 'Stranglekelp', 0, 10), +(@OGUID+525, 1171, 0, 'Stranglekelp', 0, 10), +(@OGUID+526, 1171, 0, 'Stranglekelp', 0, 10), +(@OGUID+527, 1122, 0, 'Stranglekelp', 0, 10), +(@OGUID+528, 1122, 0, 'Stranglekelp', 0, 10), +(@OGUID+529, 1122, 0, 'Stranglekelp', 0, 10), +(@OGUID+530, 1122, 0, 'Stranglekelp', 0, 10), +(@OGUID+531, 1122, 0, 'Stranglekelp', 0, 10), +(@OGUID+532, 1122, 0, 'Stranglekelp', 0, 10), +(@OGUID+533, 1122, 0, 'Stranglekelp', 0, 10), +(@OGUID+534, 1122, 0, 'Stranglekelp', 0, 10), +(@OGUID+535, 1122, 0, 'Stranglekelp', 0, 10), +(@OGUID+536, 1122, 0, 'Stranglekelp', 0, 10), +(@OGUID+537, 1122, 0, 'Stranglekelp', 0, 10), +(@OGUID+538, 1122, 0, 'Stranglekelp', 0, 10), +(@OGUID+539, 1149, 0, 'Stranglekelp', 0, 10), +(@OGUID+540, 1000, 0, 'Stranglekelp', 0, 10), +(@OGUID+541, 1000, 0, 'Stranglekelp', 0, 10), +(@OGUID+542, 1000, 0, 'Stranglekelp', 0, 10), +(@OGUID+543, 1000, 0, 'Stranglekelp', 0, 10), +(@OGUID+544, 1000, 0, 'Stranglekelp', 0, 10), +(@OGUID+545, 1000, 0, 'Stranglekelp', 0, 10), +(@OGUID+546, 1065, 0, 'Stranglekelp', 0, 10), +(@OGUID+547, 1065, 0, 'Stranglekelp', 0, 10), +(@OGUID+548, 1065, 0, 'Stranglekelp', 0, 10), +(@OGUID+549, 1065, 0, 'Stranglekelp', 0, 10), +(@OGUID+550, 1065, 0, 'Stranglekelp', 0, 10), +(@OGUID+551, 1065, 0, 'Stranglekelp', 0, 10), +(@OGUID+552, 1065, 0, 'Stranglekelp', 0, 10), +(@OGUID+553, 1065, 0, 'Stranglekelp', 0, 10), +(@OGUID+554, 1065, 0, 'Stranglekelp', 0, 10), +(@OGUID+555, 1065, 0, 'Stranglekelp', 0, 10), +(@OGUID+556, 1065, 0, 'Stranglekelp', 0, 10), +(@OGUID+557, 1065, 0, 'Stranglekelp', 0, 10), +(@OGUID+558, 1322, 0, 'Stranglekelp', 0, 10), +(@OGUID+559, 1322, 0, 'Stranglekelp', 0, 10), +(@OGUID+560, 1322, 0, 'Stranglekelp', 0, 10), +(@OGUID+561, 1322, 0, 'Stranglekelp', 0, 10), +(@OGUID+562, 1322, 0, 'Stranglekelp', 0, 10), +(@OGUID+563, 1322, 0, 'Stranglekelp', 0, 10), +(@OGUID+564, 1322, 0, 'Stranglekelp', 0, 10), +(@OGUID+565, 1322, 0, 'Stranglekelp', 0, 10), +(@OGUID+566, 1322, 0, 'Stranglekelp', 0, 10), +(@OGUID+567, 1322, 0, 'Stranglekelp', 0, 10), +(@OGUID+568, 1123, 0, 'Stranglekelp', 0, 10), +(@OGUID+569, 1123, 0, 'Stranglekelp', 0, 10), +(@OGUID+570, 1123, 0, 'Stranglekelp', 0, 10), +(@OGUID+571, 1123, 0, 'Stranglekelp', 0, 10), +(@OGUID+572, 1123, 0, 'Stranglekelp', 0, 10), +(@OGUID+573, 1123, 0, 'Stranglekelp', 0, 10), +(@OGUID+574, 1123, 0, 'Stranglekelp', 0, 10), +(@OGUID+575, 1076, 0, 'Stranglekelp', 0, 10), +(@OGUID+576, 1076, 0, 'Stranglekelp', 0, 10), +(@OGUID+577, 1076, 0, 'Stranglekelp', 0, 10), +(@OGUID+578, 1076, 0, 'Stranglekelp', 0, 10), +(@OGUID+579, 1076, 0, 'Stranglekelp', 0, 10), +(@OGUID+580, 1076, 0, 'Stranglekelp', 0, 10), +(@OGUID+581, 1076, 0, 'Stranglekelp', 0, 10), +(@OGUID+582, 1076, 0, 'Stranglekelp', 0, 10), +(@OGUID+583, 1076, 0, 'Stranglekelp', 0, 10), +(@OGUID+584, 1190, 0, 'Stranglekelp', 0, 10), +(@OGUID+585, 1190, 0, 'Stranglekelp', 0, 10), +(@OGUID+586, 1190, 0, 'Stranglekelp', 0, 10), +(@OGUID+587, 1145, 0, 'Stranglekelp', 0, 10), +(@OGUID+588, 1145, 0, 'Stranglekelp', 0, 10), +(@OGUID+589, 1145, 0, 'Stranglekelp', 0, 10), +(@OGUID+590, 1145, 0, 'Stranglekelp', 0, 10), +(@OGUID+591, 1145, 0, 'Stranglekelp', 0, 10), +(@OGUID+592, 1145, 0, 'Stranglekelp', 0, 10), +(@OGUID+593, 1145, 0, 'Stranglekelp', 0, 10), +(@OGUID+594, 996, 0, 'Stranglekelp', 0, 10), +(@OGUID+595, 996, 0, 'Stranglekelp', 0, 10), +(@OGUID+596, 996, 0, 'Stranglekelp', 0, 10), +(@OGUID+597, 996, 0, 'Stranglekelp', 0, 10), +(@OGUID+598, 996, 0, 'Stranglekelp', 0, 10), +(@OGUID+599, 996, 0, 'Stranglekelp', 0, 10), +(@OGUID+600, 1014, 0, 'Stranglekelp', 0, 10), +(@OGUID+601, 1014, 0, 'Stranglekelp', 0, 10), +(@OGUID+602, 1014, 0, 'Stranglekelp', 0, 10), +(@OGUID+603, 1014, 0, 'Stranglekelp', 0, 10), +(@OGUID+604, 34902, 0, 'Stranglekelp', 0, 10), +(@OGUID+605, 34902, 0, 'Stranglekelp', 0, 10); + +-- Peacebloom +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+606, 3724, 1, -1681.84, -1653.05, 93.6819, 1.02974, 0, 0, 0.492423, 0.870356, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+606, 1030, 0, 'Peacebloom', 0, 10); + +-- Mageroyal +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+607, 3727, 1, -1118.77, -3082.92, 93.9525, 2.84488, 0, 0, 0.989016, 0.147811, 300, 300, 1, 100, 0, 10), +(@OGUID+608, 3727, 1, -1576.3, -2287.67, 95.3247, 5.89921, 0, 0, -0.190808, 0.981627, 300, 300, 1, 100, 0, 10), +(@OGUID+609, 3727, 1, -1281.24, -2746, 92.5425, 3.07177, 0, 0, 0.999391, 0.0349061, 300, 300, 1, 100, 0, 10), +(@OGUID+610, 3727, 1, -1633.23, -1665.59, 91.6667, 3.12412, 0, 0, 0.999962, 0.00873464, 300, 300, 1, 100, 0, 10), +(@OGUID+611, 3727, 1, -1153.03, -2850.67, 94.4773, 0.802851, 0, 0, 0.390731, 0.920505, 300, 300, 1, 100, 0, 10), +(@OGUID+612, 3727, 1, -987.467, -1815.17, 94.1107, 0.418879, 0, 0, 0.207911, 0.978148, 300, 300, 1, 100, 0, 10), +(@OGUID+613, 3727, 1, -3848.42, -1685.23, 93.1453, 0.139624, 0, 0, 0.0697556, 0.997564, 300, 300, 1, 100, 0, 10), +(@OGUID+614, 3727, 1, -956.404, -1660.48, 93.9018, 1.74533, 0, 0, 0.766044, 0.642789, 300, 300, 1, 100, 0, 10), +(@OGUID+615, 3727, 1, 449.555, -2011.8, 91.7156, 2.82743, 0, 0, 0.987688, 0.156436, 300, 300, 1, 100, 0, 10), +(@OGUID+616, 3727, 1, -1655.9, -2783.18, 95.7777, 4.32842, 0, 0, -0.829037, 0.559194, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+607, 1032, 0, 'Mageroyal', 0, 10), +(@OGUID+608, 1032, 0, 'Mageroyal', 0, 10), +(@OGUID+609, 1032, 0, 'Mageroyal', 0, 10), +(@OGUID+610, 1032, 0, 'Mageroyal', 0, 10), +(@OGUID+611, 1032, 0, 'Mageroyal', 0, 10), +(@OGUID+612, 1032, 0, 'Mageroyal', 0, 10), +(@OGUID+613, 1032, 0, 'Mageroyal', 0, 10), +(@OGUID+614, 1032, 0, 'Mageroyal', 0, 10), +(@OGUID+615, 1032, 0, 'Mageroyal', 0, 10), +(@OGUID+616, 1032, 0, 'Mageroyal', 0, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 76df073e6d98ab5502da6e71a649a8fb2c9442e1 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 23 Jun 2023 15:28:36 +0100 Subject: [PATCH 004/426] Final Tidy and Additions to Herbs (#1968) --- sql/migrations/20230620161859_world.sql | 967 ++++++++++++++++++++++++ 1 file changed, 967 insertions(+) create mode 100644 sql/migrations/20230620161859_world.sql diff --git a/sql/migrations/20230620161859_world.sql b/sql/migrations/20230620161859_world.sql new file mode 100644 index 00000000000..f0ce5ce3c2d --- /dev/null +++ b/sql/migrations/20230620161859_world.sql @@ -0,0 +1,967 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230620161859'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230620161859'); +-- Add your query below. + +SET @OGUID = 66885; + +-- Barrens +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3729, 1, 530.586, -1449.89, 91.6667, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+2, 3727, 1, -2047.76, -2618.79, 91.6667, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+3, 3726, 1, -685.994, -3881.35, 41.5266, 1.64061, 0, 0, 0.731353, 0.681999, 300, 300, 1, 100, 0, 10), +(@OGUID+4, 3724, 1, -383.389, -3783.7, 29.3738, 0.628317, 0, 0, 0.309016, 0.951057, 300, 300, 1, 100, 0, 10), +(@OGUID+5, 1622, 1, -592.409, -2025.54, 58.5813, 1.69297, 0, 0, 0.748956, 0.66262, 300, 300, 1, 100, 0, 10), +(@OGUID+6, 1620, 1, -696.661, -2181.23, 30.172, 5.16618, 0, 0, -0.529919, 0.848048, 300, 300, 1, 100, 0, 10), +(@OGUID+7, 1620, 1, -688.772, -2010.5, 64.995, 5.13127, 0, 0, -0.544639, 0.838671, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 1037, 0, 'Briarthorn', 0, 10), +(@OGUID+2, 1032, 0, 'Mageroyal', 0, 10), +(@OGUID+3, 1029, 0, 'Earthroot', 0, 10), +(@OGUID+4, 1030, 0, 'Peacebloom', 0, 10), +(@OGUID+5, 1036, 0, 'Bruiseweed', 0, 10), +(@OGUID+6, 1032, 0, 'Mageroyal', 0, 10), +(@OGUID+7, 1032, 0, 'Mageroyal', 0, 10); + +-- Desolace +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(2001, 3, 'Ghost Mushroom in Desolace', 0, 10); +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+8, 2041, 1, -2015.13, 2275.88, 53.7174, 2.70526, 0, 0, 0.976295, 0.216442, 300, 300, 1, 100, 0, 10), +(@OGUID+9, 2041, 1, -1677.75, 852.175, 88.6948, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+10, 142144, 1, -1607.55, 2739.86, 93.7536, 5.81195, 0, 0, -0.233445, 0.97237, 300, 300, 1, 100, 0, 10), +(@OGUID+11, 142144, 1, -1513.54, 2890.08, 92.5331, 1.20428, 0, 0, 0.566406, 0.824126, 300, 300, 1, 100, 0, 10), +(@OGUID+12, 142144, 1, -1462.99, 2682.32, 92.618, 1.01229, 0, 0, 0.484809, 0.87462, 300, 300, 1, 100, 0, 10), +(@OGUID+13, 142144, 1, -1456.05, 2964.65, 123.402, 5.58505, 0, 0, -0.34202, 0.939693, 300, 300, 1, 100, 0, 10), +(@OGUID+14, 142144, 1, -1443.13, 2864.16, 87.9732, 5.02655, 0, 0, -0.587785, 0.809017, 300, 300, 1, 100, 0, 10), +(@OGUID+15, 142144, 1, -1370.94, 2878.47, 76.912, 4.15388, 0, 0, -0.874619, 0.48481, 300, 300, 1, 100, 0, 10), +(@OGUID+16, 142144, 1, -1339.14, 2667.2, 86.0024, 0.925024, 0, 0, 0.446198, 0.894935, 300, 300, 1, 100, 0, 10), +(@OGUID+17, 142144, 1, -1282.92, 3004.77, 88.6829, 4.06662, 0, 0, -0.894934, 0.446199, 300, 300, 1, 100, 0, 10), +(@OGUID+18, 142144, 1, -1255.65, 2933.59, 74.1313, 2.05949, 0, 0, 0.857167, 0.515038, 300, 300, 1, 100, 0, 10), +(@OGUID+19, 142144, 1, -1277.61, 2972.3, 72.428, 0.837757, 0, 0, 0.406736, 0.913546, 300, 300, 1, 100, 0, 10), +(@OGUID+20, 142144, 1, -1199.4, 2971.74, 64.6476, 5.34071, 0, 0, -0.45399, 0.891007, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+8, 1144, 0, 'Liferoot', 0, 10), +(@OGUID+9, 1144, 0, 'Liferoot', 0, 10), +(@OGUID+10, 2001, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+11, 2001, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+12, 2001, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+13, 2001, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+14, 2001, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+15, 2001, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+16, 2001, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+17, 2001, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+18, 2001, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+19, 2001, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+20, 2001, 0, 'Ghost Mushroom', 0, 10); + +-- Ashenvale +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+21, 1622, 1, 4275.72, 733.381, -27.2986, 3.52557, 0, 0, -0.981627, 0.190812, 300, 300, 1, 100, 0, 10), +(@OGUID+22, 2045, 1, 4243.06, 671.224, -28.5827, 2.9496, 0, 0, 0.995396, 0.0958512, 300, 300, 1, 100, 0, 10), +(@OGUID+23, 2045, 1, 4307.48, 947.234, -22.5774, 5.41052, 0, 0, -0.422618, 0.906308, 300, 300, 1, 100, 0, 10), +(@OGUID+24, 2046, 1, 2902.07, -3951.59, 113.538, 1.32645, 0, 0, 0.615661, 0.788011, 300, 300, 1, 100, 0, 10), +(@OGUID+25, 1621, 1, 2896.12, -3005.33, 201.691, 2.00713, 0, 0, 0.843391, 0.5373, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+21, 1072, 0, 'Bruiseweed', 0, 10), +(@OGUID+22, 1076, 0, 'Stranglekelp', 0, 10), +(@OGUID+23, 1076, 0, 'Stranglekelp', 0, 10), +(@OGUID+24, 1308, 0, 'Goldthorn', 0, 10), +(@OGUID+25, 1073, 0, 'Briarthorn', 0, 10); + +-- Durotar +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+26, 1620, 1, -157.146, -3992.43, 57.2922, 4.66003, 0, 0, -0.725374, 0.688355, 300, 300, 1, 100, 0, 10), +(@OGUID+27, 1619, 1, 34.8251, -4923.91, 13.5517, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+28, 1619, 1, 37.1113, -3984.51, 48.3673, 3.71755, 0, 0, -0.958819, 0.284016, 300, 300, 1, 100, 0, 10), +(@OGUID+29, 1619, 1, 432.176, -3955.29, 29.5882, 3.90954, 0, 0, -0.927183, 0.374608, 300, 300, 1, 100, 0, 10), +(@OGUID+30, 1619, 1, 765.453, -3869.99, 24.0596, 1.16937, 0, 0, 0.551936, 0.833886, 300, 300, 1, 100, 0, 10), +(@OGUID+31, 1618, 1, 41.6207, -3916.78, 44.4288, 4.7473, 0, 0, -0.694658, 0.71934, 300, 300, 1, 100, 0, 10), +(@OGUID+32, 1618, 1, 139.258, -3887.16, 39.8697, 3.75246, 0, 0, -0.953716, 0.300708, 300, 300, 1, 100, 0, 10), +(@OGUID+33, 1618, 1, 410.002, -3984.35, 30.2169, 2.86234, 0, 0, 0.990268, 0.139175, 300, 300, 1, 100, 0, 10), +(@OGUID+34, 1618, 1, 687.802, -3908.26, 15.4886, 5.95157, 0, 0, -0.165047, 0.986286, 300, 300, 1, 100, 0, 10), +(@OGUID+35, 1618, 1, 808.397, -3849.42, 18.2498, 0.610863, 0, 0, 0.300705, 0.953717, 300, 300, 1, 100, 0, 10), +(@OGUID+36, 1618, 1, 871.441, -3921.87, 20.8167, 4.79966, 0, 0, -0.67559, 0.737278, 300, 300, 1, 100, 0, 10), +(@OGUID+37, 1618, 1, 1351.06, -4764.11, 26.9909, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+38, 1617, 1, 763.727, -3959.34, 19.3767, 1.13446, 0, 0, 0.537299, 0.843392, 300, 300, 1, 100, 0, 10), +(@OGUID+39, 1617, 1, 1285.04, -4064.33, 33.2841, 4.2237, 0, 0, -0.857167, 0.515038, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+26, 1023, 0, 'Mageroyal', 0, 10), +(@OGUID+27, 1021, 0, 'Earthroot', 0, 10), +(@OGUID+28, 1021, 0, 'Earthroot', 0, 10), +(@OGUID+29, 1021, 0, 'Earthroot', 0, 10), +(@OGUID+30, 1021, 0, 'Earthroot', 0, 10), +(@OGUID+31, 1020, 0, 'Peacebloom', 0, 10), +(@OGUID+32, 1020, 0, 'Peacebloom', 0, 10), +(@OGUID+33, 1020, 0, 'Peacebloom', 0, 10), +(@OGUID+34, 1020, 0, 'Peacebloom', 0, 10), +(@OGUID+35, 1020, 0, 'Peacebloom', 0, 10), +(@OGUID+36, 1020, 0, 'Peacebloom', 0, 10), +(@OGUID+37, 1020, 0, 'Peacebloom', 0, 10), +(@OGUID+38, 1022, 0, 'Silverleaf', 0, 10), +(@OGUID+39, 1022, 0, 'Silverleaf', 0, 10); + +-- Hinterlands +UPDATE `pool_template` SET `description`='Ghost Mushroom in Hinterlands' WHERE `entry`=1247; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+40, 142144, 0, -726.138, -3786.03, 228.721, 5.84685, 0, 0, -0.216439, 0.976296, 300, 300, 1, 100, 0, 10), +(@OGUID+41, 142144, 0, -637.929, -3721.51, 235.289, 2.77507, 0, 0, 0.983254, 0.182238, 300, 300, 1, 100, 0, 10), +(@OGUID+42, 142144, 0, -627.208, -3836.7, 233.725, 5.16618, 0, 0, -0.529919, 0.848048, 300, 300, 1, 100, 0, 10), +(@OGUID+43, 142144, 0, -273.775, -3695.75, 241.68, 4.2237, 0, 0, -0.857167, 0.515038, 300, 300, 1, 100, 0, 10), +(@OGUID+44, 142144, 0, -265.643, -3708.77, 239.011, 2.16421, 0, 0, 0.882947, 0.469473, 300, 300, 1, 100, 0, 10), +(@OGUID+45, 142144, 0, 339.986, -3752.52, 107.354, 4.59022, 0, 0, -0.748956, 0.66262, 300, 300, 1, 100, 0, 10), +(@OGUID+46, 142144, 0, 357.638, -3789.23, 126.82, 1.41372, 0, 0, 0.649447, 0.760406, 300, 300, 1, 100, 0, 10), +(@OGUID+47, 142144, 0, 366.088, -3725.58, 105.882, 3.26377, 0, 0, -0.998135, 0.0610518, 300, 300, 1, 100, 0, 10), +(@OGUID+48, 142144, 0, 368.381, -3860.87, 106.184, 5.63741, 0, 0, -0.317305, 0.948324, 300, 300, 1, 100, 0, 10), +(@OGUID+49, 142144, 0, 369.478, -3901.46, 102.944, 1.74533, 0, 0, 0.766044, 0.642789, 300, 300, 1, 100, 0, 10), +(@OGUID+50, 142144, 0, 378.476, -3758.72, 103.351, 2.14675, 0, 0, 0.878817, 0.47716, 300, 300, 1, 100, 0, 10), +(@OGUID+51, 142144, 0, 405.047, -3807.52, 101.678, 3.85718, 0, 0, -0.936671, 0.35021, 300, 300, 1, 100, 0, 10), +(@OGUID+52, 142144, 0, 414.474, -3879.82, 98.0181, 5.16618, 0, 0, -0.529919, 0.848048, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+40, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+41, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+42, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+43, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+44, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+45, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+46, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+47, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+48, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+49, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+50, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+51, 1247, 0, 'Ghost Mushroom', 0, 10), +(@OGUID+52, 1247, 0, 'Ghost Mushroom', 0, 10); + +-- Feralas +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+53, 142140, 1, -3941.41, 1188.8, 149.715, 3.14159, 0, 0, -1, 0, 300, 300, 1, 100, 0, 10), +(@OGUID+54, 142140, 1, -3571.31, 1079.6, 149.463, 2.07694, 0, 0, 0.861629, 0.507539, 300, 300, 1, 100, 0, 10), +(@OGUID+55, 176583, 1, -3750.22, 1091.81, 131.942, 0.90757, 0, 0, 0.438371, 0.898794, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+53, 1324, 0, 'Purple Lotus', 0, 10), +(@OGUID+54, 1324, 0, 'Purple Lotus', 0, 10), +(@OGUID+55, 1194, 0, 'Golden Sansam', 0, 10); + +-- Eastern Plaguelands +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+56, 176587, 0, 2016.61, -4694.26, 91.7821, 5.44543, 0, 0, -0.406736, 0.913546, 300, 300, 1, 100, 0, 10), +(@OGUID+57, 176587, 0, 2200.33, -5280.47, 90.5324, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+58, 176587, 0, 1674.43, -3545.49, 126.405, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+59, 176584, 0, 2104.34, -3477.04, 115.704, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+56, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+57, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+58, 1265, 0, 'Plaguebloom', 0, 10), +(@OGUID+59, 1267, 0, 'Dreamfoil', 0, 10); + +-- Swamp of Sorrows +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+60, 142143, 0, -10139, -3363.5, 20.8903, 0.104719, 0, 0, 0.0523357, 0.99863, 300, 300, 1, 100, 0, 10), +(@OGUID+61, 2046, 0, -10588, -2737.17, 34.8652, 2.26893, 0, 0, 0.906307, 0.422619, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+60, 1307, 0, 'Blindweed', 0, 10), +(@OGUID+61, 1313, 0, 'Goldthorn', 0, 10); + +-- Stranglethorn Vale +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+62, 2043, 0, -11936, -181.676, 17.8796, 0.0698117, 0, 0, 0.0348988, 0.999391, 300, 300, 1, 100, 0, 10), +(@OGUID+63, 2041, 0, -12001.1, -349.351, 11.4441, 5.41052, 0, 0, -0.422618, 0.906308, 300, 300, 1, 100, 0, 10), +(@OGUID+64, 1624, 0, -11865, -549.116, 14.4704, 2.75761, 0, 0, 0.981627, 0.190812, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+62, 1173, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+63, 1179, 0, 'Liferoot', 0, 10), +(@OGUID+64, 1170, 0, 'Kingsblood', 0, 10); + +-- Wetlands +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+65, 1624, 0, -3190.35, -2841.49, 19.6929, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+66, 1624, 0, -2985.44, -2727.56, 12.5439, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+65, 1155, 0, 'Kingsblood', 0, 10), +(@OGUID+66, 1155, 0, 'Kingsblood', 0, 10); + +-- Duskwood +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+67, 1623, 0, -10556.8, -164.8, 75.6976, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+68, 1621, 0, -10705.2, -942.698, 76.341, 4.17134, 0, 0, -0.870356, 0.492424, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+67, 1114, 0, 'Wild Steelbloom', 0, 10), +(@OGUID+68, 1113, 0, 'Briarthorn', 0, 10); + +-- Elwynn Forest +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+69, 1622, 0, -9986.18, 852.699, 37.2665, 3.35105, 0, 0, -0.994521, 0.104536, 300, 300, 1, 100, 0, 10), +(@OGUID+70, 1617, 0, -9687.95, -463.91, 53.1311, 5.93412, 0, 0, -0.173648, 0.984808, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+69, 1110, 0, 'Bruiseweed', 0, 10), +(@OGUID+70, 1013, 0, 'Silverleaf', 0, 10); + +-- Redridge Mountains +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+71, 1621, 0, -9692.73, -2424.65, 58.8121, 3.82227, 0, 0, -0.942641, 0.333808, 300, 300, 1, 100, 0, 10), +(@OGUID+72, 1619, 0, -9190, -3239.01, 103.255, 4.72984, 0, 0, -0.700909, 0.713251, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+71, 1127, 0, 'Briarthorn', 0, 10), +(@OGUID+72, 1124, 0, 'Earthroot', 0, 10); + +-- Swamp of Sorrows +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+73, 2043, 0, -10296, -4092.72, 23.3151, 0.733038, 0, 0, 0.358368, 0.93358, 300, 300, 1, 100, 0, 10), +(@OGUID+74, 2041, 0, -10389.1, -4076, 19.9551, 0.261798, 0, 0, 0.130526, 0.991445, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+73, 1309, 0, 'Khadgars Whisker', 0, 10), +(@OGUID+74, 1317, 0, 'Liferoot', 0, 10); + +-- Misc +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+75, 2866, 1, -8950.79, -2918.7, 48.9025, 4.60767, 0, 0, -0.743144, 0.669131, 300, 300, 1, 100, 0, 10), +(@OGUID+76, 2866, 0, -6598.05, -1812.66, 251.337, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+77, 2041, 1, -3871.89, -3656.06, 31.251, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+78, 176587, 0, 1576.99, -1083.78, 71.2836, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+79, 176586, 1, -7972, -633.369, -218.124, 0.820303, 0, 0, 0.398748, 0.91706, 300, 300, 1, 100, 0, 10), +(@OGUID+80, 176583, 1, -7090.5, 1250.5, 4.69263, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+81, 142142, 0, -11209, -3315.33, 8.70227, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), +(@OGUID+82, 176636, 1, 6238.8, -707.594, 416.565, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+75, 1208, 0, 'Firebloom', 0, 10), +(@OGUID+76, 1291, 0, 'Firebloom', 0, 10), +(@OGUID+77, 1104, 0, 'Liferoot', 0, 10), +(@OGUID+78, 1258, 0, 'Plaguebloom', 0, 10), +(@OGUID+79, 1218, 0, 'Mountain Silversage', 0, 10), +(@OGUID+80, 1224, 0, 'Golden Sansam', 0, 10), +(@OGUID+81, 1229, 0, 'Sungrass', 0, 10), +(@OGUID+82, 1229, 0, 'Sungrass', 0, 10); + +-- Pool Orphaned Objects +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(33336, 106, 0, 'Grave Moss', 0, 10), +(7882, 1309, 0, 'Khadgars Whisker', 0, 10), +(30786, 984, 0, 'Stranglekelp', 0, 10), +(30645, 984, 0, 'Stranglekelp', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(32000, 1053, 0, 'Earthroot', 0, 10), +(35595, 1053, 0, 'Earthroot', 0, 10), +(35620, 1053, 0, 'Earthroot', 0, 10), +(35636, 1053, 0, 'Earthroot', 0, 10), +(35639, 1053, 0, 'Earthroot', 0, 10), +(35651, 1053, 0, 'Earthroot', 0, 10), +(35633, 1053, 0, 'Bruiseweed', 0, 10), +(35592, 1053, 0, 'Kingsblood', 0, 10), +(35642, 1053, 0, 'Kingsblood', 0, 10), +(31992, 1053, 0, 'Liferoot', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(2002, 5, 'Herbs in Razorfen Kraul', 0, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(35728, 2002, 0, 'Briarthorn', 0, 10), +(35748, 2002, 0, 'Briarthorn', 0, 10), +(35742, 2002, 0, 'Briarthorn', 0, 10), +(35738, 2002, 0, 'Briarthorn', 0, 10), +(35701, 2002, 0, 'Briarthorn', 0, 10), +(67173, 2002, 0, 'Briarthorn', 0, 10), +(35706, 2002, 0, 'Briarthorn', 0, 10), +(35695, 2002, 0, 'Fadeleaf', 0, 10), +(35702, 2002, 0, 'Fadeleaf', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(32683, 1014, 0, 'Bruiseweed', 0, 10), +(32620, 1014, 0, 'Bruiseweed', 0, 10), +(32608, 1014, 0, 'Stranglekelp', 0, 10), +(32613, 1014, 0, 'Stranglekelp', 0, 10), +(32616, 1014, 0, 'Stranglekelp', 0, 10), +(32690, 1014, 0, 'Stranglekelp', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(2003, 5, 'Herbs in Razorfen Downs', 0, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(32051, 2003, 0, 'Grave Moss', 0, 10), +(32060, 2003, 0, 'Grave Moss', 0, 10), +(32055, 2003, 0, 'Grave Moss', 0, 10), +(32053, 2003, 0, 'Grave Moss', 0, 10), +(32054, 2003, 0, 'Goldthorn', 0, 10), +(32050, 2003, 0, 'Goldthorn', 0, 10), +(32052, 2003, 0, 'Arthas Tears', 0, 10), +(35669, 2003, 0, 'Arthas Tears', 0, 10), +(32028, 2003, 0, 'Arthas Tears', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11871, 1054, 0, 'Kingsblood', 0, 10), +(11873, 1054, 0, 'Grave Moss', 0, 10), +(11880, 1054, 0, 'Liferoot', 0, 10), +(11904, 1054, 0, 'Liferoot', 0, 10), +(11900, 1054, 0, 'Fadeleaf', 0, 10), +(32251, 1054, 0, 'Fadeleaf', 0, 10), +(11878, 1054, 0, 'Goldthorn', 0, 10), +(11879, 1054, 0, 'Goldthorn', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(28715, 1035, 0, 'Sungrass', 0, 10), +(28712, 1035, 0, 'Sungrass', 0, 10), +(28763, 1035, 0, 'Purple Lotus', 0, 10), +(28757, 1035, 0, 'Purple Lotus', 0, 10), +(28761, 1035, 0, 'Purple Lotus', 0, 10), +(28711, 1035, 0, 'Mountain Silversage', 0, 10), +(28714, 1035, 0, 'Mountain Silversage', 0, 10), +(28756, 1035, 0, 'Mountain Silversage', 0, 10), +(28713, 1035, 0, 'Mountain Silversage', 0, 10), +(28718, 1035, 0, 'Golden Sansam', 0, 10), +(28758, 1035, 0, 'Golden Sansam', 0, 10), +(28755, 1035, 0, 'Golden Sansam', 0, 10), +(28716, 1035, 0, 'Golden Sansam', 0, 10), +(28717, 1035, 0, 'Golden Sansam', 0, 10), +(28759, 1035, 0, 'Dreamfoil', 0, 10), +(28760, 1035, 0, 'Dreamfoil', 0, 10), +(28762, 1035, 0, 'Dreamfoil', 0, 10), +(28710, 1035, 0, 'Dreamfoil', 0, 10), +(28709, 1035, 0, 'Dreamfoil', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(32924, 34902, 0, 'Stranglekelp', 0, 10), +(32926, 34902, 0, 'Stranglekelp', 0, 10), +(32925, 34902, 0, 'Stranglekelp', 0, 10), +(32923, 34902, 0, 'Blindweed', 0, 10), +(32919, 34902, 0, 'Blindweed', 0, 10), +(32927, 34902, 0, 'Blindweed', 0, 10); + +-- Correct Some Pools +UPDATE `pool_template` SET `description`='Mageroyal in Stonetalon' WHERE `entry`=1082; +DELETE FROM `pool_gameobject` WHERE `guid`=918; +DELETE FROM `pool_gameobject` WHERE `guid`=689; +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(918, 1031, 0, 'Silverleaf', 0, 10), +(689, 1031, 0, 'Silverleaf', 0, 10); + +-- Remove More Duplicates +DELETE FROM `gameobject` WHERE `guid` IN (22142, 66946, 374522, 3838, 46549, 84108, 84109, 84112, 84108, 84109, 84112, 7461, 7529, 7491, 8207, 8506, 8242, 8854, 8028, 7989, 4397, 4361, 4311, 4279, 4317, 46550, 1260, 971, 1189, 699, 1102, 999, 1164, 1050, 11007, 691, 1400, 1356, 1450, 1517, 1721, 1711, 1561, 1516, 1385, 1415, 1533, 1720, 2421, 2105, 2491, 2325, 2519, 2453, 2403, 2481, 65838, 65839, 65840, 65841, 65842, 65843, 65844, 65845, 65846, 65847, 65848, 65849, 65850, 65851, 65852, 65853, 65854, 65855, 65856, 65857, 65858, 65859, 65860, 65861, 65862, 65863, 65864, 45284, 45275, 55008, 45241, 65828, 65829, 65830, 65831, 65832, 65833, 65834, 65835, 65836, 65837, 2585, 2560, 2874, 2629, 2653, 2862, 2632, 2573, 3016, 3506, 3439, 3439, 3253, 3480, 3308, 3427, 3816, 3792, 1981, 1915, 2034, 7554, 7676, 4433, 42129, 20104, 19975, 15935, 15847, 16063, 3998253, 3998244, 3998254, 3998250, 3998252, 3998144, 3998205, 3998221, 3998194); +DELETE FROM `pool_gameobject` WHERE `guid` IN (22142, 66946, 374522, 3838, 46549, 84108, 84109, 84112, 84108, 84109, 84112, 7461, 7529, 7491, 8207, 8506, 8242, 8854, 8028, 7989, 4397, 4361, 4311, 4279, 4317, 46550, 1260, 971, 1189, 699, 1102, 999, 1164, 1050, 11007, 691, 1400, 1356, 1450, 1517, 1721, 1711, 1561, 1516, 1385, 1415, 1533, 1720, 2421, 2105, 2491, 2325, 2519, 2453, 2403, 2481, 65838, 65839, 65840, 65841, 65842, 65843, 65844, 65845, 65846, 65847, 65848, 65849, 65850, 65851, 65852, 65853, 65854, 65855, 65856, 65857, 65858, 65859, 65860, 65861, 65862, 65863, 65864, 45284, 45275, 55008, 45241, 65828, 65829, 65830, 65831, 65832, 65833, 65834, 65835, 65836, 65837, 2585, 2560, 2874, 2629, 2653, 2862, 2632, 2573, 3016, 3506, 3439, 3439, 3253, 3480, 3308, 3427, 3816, 3792, 1981, 1915, 2034, 7554, 7676, 4433, 42129, 20104, 19975, 15935, 15847, 16063, 3998253, 3998244, 3998254, 3998250, 3998252, 3998144, 3998205, 3998221, 3998194); + +-- Correct Some Descriptions +UPDATE `pool_gameobject` SET `description`='Peacebloom' WHERE `guid` IN (55751, 55880); +UPDATE `pool_gameobject` SET `description`='Briarthorn' WHERE `guid`=55891; +UPDATE `pool_gameobject` SET `description`='Kingsblood' WHERE `guid`=56016; +UPDATE `pool_gameobject` SET `description`='Stranglekelp' WHERE `guid` IN (56046, 55992, 55964, 55919, 55918, 55917); +UPDATE `pool_gameobject` SET `description`='Liferoot' WHERE `guid` IN (56031, 56030, 56007, 56005, 55959, 55956, 55953); +UPDATE `pool_template` SET `description`='Blindweed in Ungoro' WHERE `entry`=1216; +UPDATE `pool_template` SET `description`='Herbs in Dire Maul' WHERE `entry`=4291; +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` IN (176642, 180164, 180165, 180166, 180167, 180168, 1621, 3729); +DELETE FROM `pool_template` WHERE `entry`=1125; +UPDATE `pool_gameobject` SET `description` = 'Khadgars Whisker' WHERE `guid` IN ( +7065, +7078, +7103, +7115, +7162, +7163, +7185, +7201, +7205, +7226, +7244, +7283, +7327, +7332, +7333, +7346, +7347, +7839, +7843, +7852, +7863, +7864, +7876, +7882, +7883, +7888, +7889, +7897, +7903, +7907, +7918, +7920, +7935, +7950, +7952, +7963, +7964, +7965, +7973, +7978, +7987, +8007, +8008, +8011, +8016, +8023, +8025, +8027, +8052, +8088, +8093, +8099, +8105, +8115, +8121, +8124, +8129, +8134, +8163, +8173, +8185, +11443, +11446, +11452, +11490, +11639, +11674, +11681, +11682, +11699, +11760, +11807, +11971, +12056, +12717, +12846, +13630, +13693, +14601, +14613, +14943, +16793, +16797, +16798, +16905, +16907, +16916, +16939, +16942, +21227, +29246, +29251, +29269, +29527, +29535, +30610, +30624, +30808, +30830, +31141, +32068, +32198, +32200, +32210, +32211, +32503, +32840, +34961, +35029, +35030, +35031, +35032, +35033, +35034, +35035, +35036, +35037, +35038, +35039, +35040, +35041, +35042, +35043, +35044, +35045, +35046, +35047, +35048, +35049, +35050, +35051, +35052, +35053, +35054, +35055, +35056, +35057, +35058, +35059, +35060, +35061, +35062, +35063, +35064, +35065, +35066, +35067, +35068, +35069, +35070, +35071, +35072, +35073, +35074, +35075, +35076, +35077, +35078, +35079, +35080, +35081, +35082, +35083, +35084, +35085, +35086, +35087, +35088, +35089, +35090, +35091, +35092, +35093, +35094, +35095, +35096, +35097, +35098, +35099, +35100, +35101, +35102, +35103, +35104, +35105, +35106, +35107, +35108, +35109, +35110, +35111, +35112, +35113, +35114, +35115, +35116, +35117, +35118, +35119, +35120, +35121, +35122, +35123, +35124, +35125, +35126, +35127, +35128, +35129, +35130, +35131, +35132, +35133, +35134, +35135, +35136, +35137, +35138, +35139, +35140, +35141, +35142, +35143, +35144, +35145, +35146, +35147, +35148, +35149, +35150, +35151, +35152, +35153, +35154, +35155, +35156, +35157, +35158, +35159, +35160, +35161, +35162, +35163, +35574, +40828, +46253, +46281, +48476, +48477, +48478, +48479, +50216, +50217, +50218, +50219, +50220, +50221, +50222, +50223, +50225, +50226, +50227, +50228, +50229, +55934, +55958, +56008, +56014, +56019, +56029, +56060, +58277, +58278, +58279, +58280, +58281, +58282, +58283, +58284, +58285, +58286, +58287, +58288, +58289, +58290, +58291, +58292, +58293, +58294, +58295, +58296, +58297, +58298, +58299, +58300, +58301, +58302, +58303, +58304, +58305, +58306, +58307, +58308, +58309, +58310, +58311, +58312, +58313, +58314, +58315, +58316, +58317, +58318, +58319, +58320, +58321, +58322, +58323, +58324, +58325, +66947, +66958, +170107); + +-- Update Counters +UPDATE `pool_template` SET `max_limit`=15 WHERE `entry`=1259; +UPDATE `pool_template` SET `max_limit`=15 WHERE `entry`=1266; +UPDATE `pool_template` SET `max_limit`=7 WHERE `entry`=1226; +UPDATE `pool_template` SET `max_limit`=43 WHERE `entry`=1307; +UPDATE `pool_template` SET `max_limit`=28 WHERE `entry`=1113; +UPDATE `pool_template` SET `max_limit`=26 WHERE `entry`=1109; +UPDATE `pool_template` SET `max_limit`=18 WHERE `entry`=1100; +UPDATE `pool_template` SET `max_limit`=16 WHERE `entry`=1165; +UPDATE `pool_template` SET `max_limit`=25 WHERE `entry`=1151; +UPDATE `pool_template` SET `max_limit`=22 WHERE `entry`=1050; +UPDATE `pool_template` SET `max_limit`=28 WHERE `entry`=1046; +UPDATE `pool_template` SET `max_limit`=64 WHERE `entry`=1037; +UPDATE `pool_template` SET `max_limit`=19 WHERE `entry`=1073; +UPDATE `pool_template` SET `max_limit`=19 WHERE `entry`=1126; +UPDATE `pool_template` SET `max_limit`=16 WHERE `entry`=1115; +UPDATE `pool_template` SET `max_limit`=22 WHERE `entry`=1110; +UPDATE `pool_template` SET `max_limit`=7 WHERE `entry`=1101; +UPDATE `pool_template` SET `max_limit`=7 WHERE `entry`=1164; +UPDATE `pool_template` SET `max_limit`=19 WHERE `entry`=1150; +UPDATE `pool_template` SET `max_limit`=4 WHERE `entry`=1056; +UPDATE `pool_template` SET `max_limit`=20 WHERE `entry`=1048; +UPDATE `pool_template` SET `max_limit`=9 WHERE `entry`=1047; +UPDATE `pool_template` SET `max_limit`=36 WHERE `entry`=1036; +UPDATE `pool_template` SET `max_limit`=15 WHERE `entry`=1133; +UPDATE `pool_template` SET `max_limit`=22 WHERE `entry`=1072; +UPDATE `pool_template` SET `max_limit`=13 WHERE `entry`=1137; +UPDATE `pool_template` SET `max_limit`=34 WHERE `entry`=1086; +UPDATE `pool_template` SET `max_limit`=18 WHERE `entry`=1267; +UPDATE `pool_template` SET `max_limit`=13 WHERE `entry`=1228; +UPDATE `pool_template` SET `max_limit`=19 WHERE `entry`=1242; +UPDATE `pool_template` SET `max_limit`=9 WHERE `entry`=1301; +UPDATE `pool_template` SET `max_limit`=16 WHERE `entry`=1124; +UPDATE `pool_template` SET `max_limit`=15 WHERE `entry`=1105; +UPDATE `pool_template` SET `max_limit`=11 WHERE `entry`=1094; +UPDATE `pool_template` SET `max_limit`=3 WHERE `entry`=1160; +UPDATE `pool_template` SET `max_limit`=9 WHERE `entry`=1040; +UPDATE `pool_template` SET `max_limit`=25 WHERE `entry`=1029; +UPDATE `pool_template` SET `max_limit`=19 WHERE `entry`=1025; +UPDATE `pool_template` SET `max_limit`=18 WHERE `entry`=1021; +UPDATE `pool_template` SET `max_limit`=22 WHERE `entry`=1001; +UPDATE `pool_template` SET `max_limit`=25 WHERE `entry`=1005; +UPDATE `pool_template` SET `max_limit`=19 WHERE `entry`=1011; +UPDATE `pool_template` SET `max_limit`=21 WHERE `entry`=1016; +UPDATE `pool_template` SET `max_limit`=11 WHERE `entry`=1172; +UPDATE `pool_template` SET `max_limit`=9 WHERE `entry`=1183; +UPDATE `pool_template` SET `max_limit`=7 WHERE `entry`=1071; +UPDATE `pool_template` SET `max_limit`=7 WHERE `entry`=1311; +UPDATE `pool_template` SET `max_limit`=15 WHERE `entry`=1328; +UPDATE `pool_template` SET `max_limit`=8 WHERE `entry`=1276; +UPDATE `pool_template` SET `max_limit`=31 WHERE `entry`=1291; +UPDATE `pool_template` SET `max_limit`=6 WHERE `entry`=1281; +UPDATE `pool_template` SET `max_limit`=36 WHERE `entry`=1208; +UPDATE `pool_template` SET `max_limit`=12 WHERE `entry`=1247; +UPDATE `pool_template` SET `max_limit`=4 WHERE `entry`=2001; +UPDATE `pool_template` SET `max_limit`=7 WHERE `entry`=1253; +UPDATE `pool_template` SET `max_limit`=5 WHERE `entry`=1268; +UPDATE `pool_template` SET `max_limit`=6 WHERE `entry`=1230; +UPDATE `pool_template` SET `max_limit`=22 WHERE `entry`=1241; +UPDATE `pool_template` SET `max_limit`=18 WHERE `entry`=1214; +UPDATE `pool_template` SET `max_limit`=46 WHERE `entry`=1174; +UPDATE `pool_template` SET `max_limit`=36 WHERE `entry`=1191; +UPDATE `pool_template` SET `max_limit`=12 WHERE `entry`=1249; +UPDATE `pool_template` SET `max_limit`=22 WHERE `entry`=1181; +UPDATE `pool_template` SET `max_limit`=17 WHERE `entry`=1058; +UPDATE `pool_template` SET `max_limit`=21 WHERE `entry`=1103; +UPDATE `pool_template` SET `max_limit`=6 WHERE `entry`=1283; +UPDATE `pool_template` SET `max_limit`=15 WHERE `entry`=1313; +UPDATE `pool_template` SET `max_limit`=6 WHERE `entry`=105; +UPDATE `pool_template` SET `max_limit`=10 WHERE `entry`=107; +UPDATE `pool_template` SET `max_limit`=13 WHERE `entry`=1275; +UPDATE `pool_template` SET `max_limit`=12 WHERE `entry`=1225; +UPDATE `pool_template` SET `max_limit`=6 WHERE `entry`=1143; +UPDATE `pool_template` SET `max_limit`=2 WHERE `entry`=1327; +UPDATE `pool_template` SET `max_limit`=62 WHERE `entry`=1236; +UPDATE `pool_template` SET `max_limit`=38 WHERE `entry`=1173; +UPDATE `pool_template` SET `max_limit`=28 WHERE `entry`=1189; +UPDATE `pool_template` SET `max_limit`=16 WHERE `entry`=1182; +UPDATE `pool_template` SET `max_limit`=11 WHERE `entry`=1059; +UPDATE `pool_template` SET `max_limit`=19 WHERE `entry`=1102; +UPDATE `pool_template` SET `max_limit`=14 WHERE `entry`=1309; +UPDATE `pool_template` SET `max_limit`=5 WHERE `entry`=1055; +UPDATE `pool_template` SET `max_limit`=28 WHERE `entry`=1155; +UPDATE `pool_template` SET `max_limit`=40 WHERE `entry`=1170; +UPDATE `pool_template` SET `max_limit`=16 WHERE `entry`=1180; +UPDATE `pool_template` SET `max_limit`=12 WHERE `entry`=1057; +UPDATE `pool_template` SET `max_limit`=21 WHERE `entry`=1051; +UPDATE `pool_template` SET `max_limit`=11 WHERE `entry`=1039; +UPDATE `pool_template` SET `max_limit`=19 WHERE `entry`=1038; +UPDATE `pool_template` SET `max_limit`=23 WHERE `entry`=1078; +UPDATE `pool_template` SET `max_limit`=11 WHERE `entry`=1138; +UPDATE `pool_template` SET `max_limit`=26 WHERE `entry`=1088; +UPDATE `pool_template` SET `max_limit`=19 WHERE `entry`=1153; +UPDATE `pool_template` SET `max_limit`=33 WHERE `entry`=1179; +UPDATE `pool_template` SET `max_limit`=7 WHERE `entry`=1193; +UPDATE `pool_template` SET `max_limit`=5 WHERE `entry`=1251; +UPDATE `pool_template` SET `max_limit`=7 WHERE `entry`=1184; +UPDATE `pool_template` SET `max_limit`=7 WHERE `entry`=1063; +UPDATE `pool_template` SET `max_limit`=28 WHERE `entry`=1104; +UPDATE `pool_template` SET `max_limit`=8 WHERE `entry`=1144; +UPDATE `pool_template` SET `max_limit`=17 WHERE `entry`=1317; +UPDATE `pool_template` SET `max_limit`=10 WHERE `entry`=1325; +UPDATE `pool_template` SET `max_limit`=3 WHERE `entry`=998; +UPDATE `pool_template` SET `max_limit`=12 WHERE `entry`=1306; +UPDATE `pool_template` SET `max_limit`=9 WHERE `entry`=1116; +UPDATE `pool_template` SET `max_limit`=25 WHERE `entry`=1108; +UPDATE `pool_template` SET `max_limit`=24 WHERE `entry`=1097; +UPDATE `pool_template` SET `max_limit`=21 WHERE `entry`=1163; +UPDATE `pool_template` SET `max_limit`=17 WHERE `entry`=1154; +UPDATE `pool_template` SET `max_limit`=26 WHERE `entry`=1043; +UPDATE `pool_template` SET `max_limit`=73 WHERE `entry`=1032; +UPDATE `pool_template` SET `max_limit`=6 WHERE `entry`=1023; +UPDATE `pool_template` SET `max_limit`=11 WHERE `entry`=1077; +UPDATE `pool_template` SET `max_limit`=7 WHERE `entry`=1082; +UPDATE `pool_template` SET `max_limit`=8 WHERE `entry`=1004; +UPDATE `pool_template` SET `max_limit`=14 WHERE `entry`=1269; +UPDATE `pool_template` SET `max_limit`=5 WHERE `entry`=1222; +UPDATE `pool_template` SET `max_limit`=26 WHERE `entry`=1237; +UPDATE `pool_template` SET `max_limit`=13 WHERE `entry`=1243; +UPDATE `pool_template` SET `max_limit`=18 WHERE `entry`=1218; +UPDATE `pool_template` SET `max_limit`=11 WHERE `entry`=1302; +UPDATE `pool_template` SET `max_limit`=7 WHERE `entry`=401; +UPDATE `pool_template` SET `max_limit`=2 WHERE `entry`=402; +UPDATE `pool_template` SET `max_limit`=35 WHERE `entry`=1030; +UPDATE `pool_template` SET `max_limit`=33 WHERE `entry`=1020; +UPDATE `pool_template` SET `max_limit`=36 WHERE `entry`=1002; +UPDATE `pool_template` SET `max_limit`=36 WHERE `entry`=1006; +UPDATE `pool_template` SET `max_limit`=33 WHERE `entry`=1017; +UPDATE `pool_template` SET `max_limit`=37 WHERE `entry`=1258; +UPDATE `pool_template` SET `max_limit`=60 WHERE `entry`=1265; +UPDATE `pool_template` SET `max_limit`=20 WHERE `entry`=1227; +UPDATE `pool_template` SET `max_limit`=12 WHERE `entry`=1199; +UPDATE `pool_template` SET `max_limit`=26 WHERE `entry`=1254; +UPDATE `pool_template` SET `max_limit`=25 WHERE `entry`=1239; +UPDATE `pool_template` SET `max_limit`=3 WHERE `entry`=1305; +UPDATE `pool_template` SET `max_limit`=19 WHERE `entry`=1205; +UPDATE `pool_template` SET `max_limit`=23 WHERE `entry`=1324; +UPDATE `pool_template` SET `max_limit`=15 WHERE `entry`=1095; +UPDATE `pool_template` SET `max_limit`=26 WHERE `entry`=1042; +UPDATE `pool_template` SET `max_limit`=28 WHERE `entry`=1031; +UPDATE `pool_template` SET `max_limit`=39 WHERE `entry`=1027; +UPDATE `pool_template` SET `max_limit`=34 WHERE `entry`=1022; +UPDATE `pool_template` SET `max_limit`=41 WHERE `entry`=1003; +UPDATE `pool_template` SET `max_limit`=47 WHERE `entry`=1007; +UPDATE `pool_template` SET `max_limit`=39 WHERE `entry`=1018; +UPDATE `pool_template` SET `max_limit`=17 WHERE `entry`=1122; +UPDATE `pool_template` SET `max_limit`=38 WHERE `entry`=1149; +UPDATE `pool_template` SET `max_limit`=45 WHERE `entry`=1171; +UPDATE `pool_template` SET `max_limit`=8 WHERE `entry`=1190; +UPDATE `pool_template` SET `max_limit`=21 WHERE `entry`=1123; +UPDATE `pool_template` SET `max_limit`=9 WHERE `entry`=1065; +UPDATE `pool_template` SET `max_limit`=19 WHERE `entry`=1064; +UPDATE `pool_template` SET `max_limit`=22 WHERE `entry`=1076; +UPDATE `pool_template` SET `max_limit`=15 WHERE `entry`=1145; +UPDATE `pool_template` SET `max_limit`=26 WHERE `entry`=1322; +UPDATE `pool_template` SET `max_limit`=1 WHERE `entry`=1323; +UPDATE `pool_template` SET `max_limit`=5 WHERE `entry`=43522; +UPDATE `pool_template` SET `max_limit`=12 WHERE `entry`=1000; +UPDATE `pool_template` SET `max_limit`=14 WHERE `entry`=984; +UPDATE `pool_template` SET `max_limit`=3 WHERE `entry`=996; +UPDATE `pool_template` SET `max_limit`=42 WHERE `entry`=1192; +UPDATE `pool_template` SET `max_limit`=24 WHERE `entry`=1250; +UPDATE `pool_template` SET `max_limit`=9 WHERE `entry`=1261; +UPDATE `pool_template` SET `max_limit`=7 WHERE `entry`=1277; +UPDATE `pool_template` SET `max_limit`=4 WHERE `entry`=1229; +UPDATE `pool_template` SET `max_limit`=21 WHERE `entry`=1240; +UPDATE `pool_template` SET `max_limit`=15 WHERE `entry`=1215; +UPDATE `pool_template` SET `max_limit`=8 WHERE `entry`=1320; +UPDATE `pool_template` SET `max_limit`=4 WHERE `entry`=1223; +UPDATE `pool_template` SET `max_limit`=10 WHERE `entry`=1062; +UPDATE `pool_template` SET `max_limit`=13 WHERE `entry`=1152; +UPDATE `pool_template` SET `max_limit`=29 WHERE `entry`=1169; +UPDATE `pool_template` SET `max_limit`=22 WHERE `entry`=1185; +UPDATE `pool_template` SET `max_limit`=9 WHERE `entry`=1168; +UPDATE `pool_template` SET `max_limit`=13 WHERE `entry`=1134; +UPDATE `pool_template` SET `max_limit`=5 WHERE `entry`=1081; +UPDATE `pool_template` SET `max_limit`=2 WHERE `entry`=1142; +UPDATE `pool_template` SET `max_limit`=26 WHERE `entry`=1085; +UPDATE `pool_template` SET `max_limit`=6 WHERE `entry`=1084; +UPDATE `pool_template` SET `max_limit`=10 WHERE `entry`=1209; +UPDATE `pool_template` SET `max_limit`=13 WHERE `entry`=4291; +UPDATE `pool_template` SET `max_limit`=22 WHERE `entry`=34902; +UPDATE `pool_template` SET `max_limit`=8 WHERE `entry`=2002; +UPDATE `pool_template` SET `max_limit`=11 WHERE `entry`=1053; +UPDATE `pool_template` SET `max_limit`=19 WHERE `entry`=1054; +UPDATE `pool_template` SET `max_limit`=7 WHERE `entry`=1014; +UPDATE `pool_template` SET `max_limit`=30 WHERE `entry`=1035; +UPDATE `pool_template` SET `max_limit`=11 WHERE `entry`=2003; + +-- Correct Respawn Time For Instance Herbs +UPDATE `gameobject` SET `spawntimesecsmin` = 604800, `spawntimesecsmax` = 604800 WHERE `guid` IN (SELECT `guid` FROM `pool_gameobject` WHERE `pool_entry` IN (1014, 4291, 34902, 2003, 2002, 1054, 1092, 1034, 1053, 1035)); + +-- Correctly Pool Scarlet Monastery Herbs +UPDATE `pool_template` SET `description`='Herbs in Scarlet Monastery Cathedral', `max_limit`=5 WHERE `entry`=1054; + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`) VALUES +(1555, 2, 'Herbs in Scarlet Monastery Library'); +UPDATE `pool_gameobject` SET `pool_entry` = 1555 WHERE `guid` IN (6830, 6832, 11900, 11904); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`) VALUES +(1556, 2, 'Herbs in Scarlet Monastery Armory'); +UPDATE `pool_gameobject` SET `pool_entry` = 1556 WHERE `guid` IN (6838, 32251, 67095); + +SET @PTEMPLATE = 2249; + +DELETE FROM `pool_gameobject` WHERE `guid` IN (11871, 29154, 14459, 29156, 67098, 68716, 17730, 29153, 11873, 67097, 29159, 67099, 12679, 68717, 14457, 29158, 12027, 29152, 10445, 29155, 29157, 67096); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(1002, 1624, 189, 1833.85, 1318.35, 19.6896, 2.49582, 0, 0, 0.948323, 0.317306, 604800, 604800, 100, 1, 0, 0, 0, 10), +(1004, 1624, 189, 1840.29, 1347.77, 18.0907, 0, 0, 0, 0, 1, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Herbs in Scarlet Monastery Graveyard', 10), +(@PTEMPLATE+2, 1, 'Herbs in Scarlet Monastery Graveyard', 10), +(@PTEMPLATE+3, 1, 'Herbs in Scarlet Monastery Graveyard', 10), +(@PTEMPLATE+4, 1, 'Herbs in Scarlet Monastery Graveyard', 10), +(@PTEMPLATE+5, 1, 'Herbs in Scarlet Monastery Graveyard', 10), +(@PTEMPLATE+6, 1, 'Herbs in Scarlet Monastery Graveyard', 10), +(@PTEMPLATE+7, 1, 'Herbs in Scarlet Monastery Graveyard', 10), +(@PTEMPLATE+8, 1, 'Herbs in Scarlet Monastery Graveyard', 10), +(@PTEMPLATE+9, 1, 'Herbs in Scarlet Monastery Graveyard', 10), +(@PTEMPLATE+10, 1, 'Herbs in Scarlet Monastery Graveyard', 10), +(@PTEMPLATE+11, 1, 'Herbs in Scarlet Monastery Graveyard', 10), +(@PTEMPLATE+12, 1, 'Herbs in Scarlet Monastery Graveyard', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(11871, @PTEMPLATE+1, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(29154, @PTEMPLATE+1, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(14459, @PTEMPLATE+2, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(29156, @PTEMPLATE+2, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(67098, @PTEMPLATE+3, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(68716, @PTEMPLATE+3, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(17730, @PTEMPLATE+4, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(29153, @PTEMPLATE+4, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(11873, @PTEMPLATE+5, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(67097, @PTEMPLATE+5, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(29159, @PTEMPLATE+6, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(67099, @PTEMPLATE+6, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(12679, @PTEMPLATE+7, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(68717, @PTEMPLATE+7, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(14457, @PTEMPLATE+8, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(29158, @PTEMPLATE+8, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(12027, @PTEMPLATE+9, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(29152, @PTEMPLATE+9, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(10445, @PTEMPLATE+10, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(29155, @PTEMPLATE+10, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(29157, @PTEMPLATE+11, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(1002, @PTEMPLATE+11, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(67096, @PTEMPLATE+12, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10), +(1004, @PTEMPLATE+12, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+13, 6, 'Scarlet Monastery Graveyard - Kingsblood / Grave Moss (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+13, 0, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 0), +(@PTEMPLATE+2, @PTEMPLATE+13, 0, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 0), +(@PTEMPLATE+3, @PTEMPLATE+13, 0, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 0), +(@PTEMPLATE+4, @PTEMPLATE+13, 0, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 0), +(@PTEMPLATE+5, @PTEMPLATE+13, 0, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 0), +(@PTEMPLATE+6, @PTEMPLATE+13, 0, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 0), +(@PTEMPLATE+7, @PTEMPLATE+13, 0, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 0), +(@PTEMPLATE+8, @PTEMPLATE+13, 0, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 0), +(@PTEMPLATE+9, @PTEMPLATE+13, 0, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 0), +(@PTEMPLATE+10, @PTEMPLATE+13, 0, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 0), +(@PTEMPLATE+11, @PTEMPLATE+13, 0, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 0), +(@PTEMPLATE+12, @PTEMPLATE+13, 0, 'Kingsblood / Grave Moss - Scarlet Monastery Graveyard', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 1843b0201928608c8fad17f055196e9090498747 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 23 Jun 2023 16:17:13 +0100 Subject: [PATCH 005/426] Pool Remaining Mining Nodes (#1969) --- sql/migrations/20230623142542_world.sql | 849 ++++++++++++++++++++++++ 1 file changed, 849 insertions(+) create mode 100644 sql/migrations/20230623142542_world.sql diff --git a/sql/migrations/20230623142542_world.sql b/sql/migrations/20230623142542_world.sql new file mode 100644 index 00000000000..209952fbb5b --- /dev/null +++ b/sql/migrations/20230623142542_world.sql @@ -0,0 +1,849 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230623142542'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230623142542'); +-- Add your query below. + + +-- Azshara +SET @OGUID = 65864; +SET @PTEMPLATE = 9802; + +DELETE FROM `gameobject` WHERE `guid` IN (SELECT `guid` FROM `pool_gameobject` WHERE `pool_entry` IN (1246, 1329, 1244, 1352)); +DELETE FROM `pool_gameobject` WHERE `pool_entry` IN (1246, 1329, 1244, 1352); +DELETE FROM `pool_template` WHERE `entry` IN (1246, 1329, 1244, 1352); + +-- Rich Thorium / Truesilver +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 175404, 1, 3259.22, -5155.35, 94.4296, -2.25148, 0, 0, 0.902585, -0.430511, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 175404, 1, 4813.78, -7218.07, 101.907, -0.925024, 0, 0, 0.446198, -0.894934, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 175404, 1, 2419.03, -6999.06, 108.771, -2.02458, 0, 0, 0.848048, -0.529919, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 175404, 1, 4689.64, -5369.46, 118.006, -0.279253, 0, 0, 0.139173, -0.990268, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 175404, 1, 3827.91, -6155.92, 4.86859, 1.91986, 0, 0, 0.819152, 0.573576, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 175404, 1, 4451.39, -6452.65, 138.367, 1.8326, 0, 0, 0.793353, 0.608761, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 175404, 1, 4702.94, -6731.23, 131.381, -1.85005, 0, 0, 0.798635, -0.601815, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 175404, 1, 4382.33, -6121.17, 123.339, 2.96706, 0, 0, 0.996195, 0.087156, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 175404, 1, 3217.87, -5454.92, 103.901, 1.02974, 0, 0, 0.492424, 0.870356, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 175404, 1, 3648.63, -6378.19, -52.0457, 3.94445, 0, 0, -0.920505, 0.390732, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 175404, 1, 4210.82, -5213.95, 116.943, 4.67748, 0, 0, -0.719339, 0.694659, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 175404, 1, 3152.03, -6037.21, 4.75105, 1.98967, 0, 0, 0.83867, 0.54464, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 175404, 1, 2093.01, -5585.94, -7.77245, 4.29351, 0, 0, -0.83867, 0.54464, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 175404, 1, 4458.91, -5549.51, 111.424, 0.506145, 0, 0, 0.25038, 0.968148, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 175404, 1, 3413.1, -5354.91, 115.967, 2.53072, 0, 0, 0.953716, 0.300708, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 175404, 1, 3601.63, -5412.79, 118.231, 2.02458, 0, 0, 0.848047, 0.529921, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 175404, 1, 3741.3, -5366.5, 99.7494, 6.17847, 0, 0, -0.0523357, 0.99863, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 175404, 1, 3980.69, -6278.7, 8.60821, 5.67232, 0, 0, -0.300705, 0.953717, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 175404, 1, 3075.36, -5776.95, 25.3971, 0.139624, 0, 0, 0.0697556, 0.997564, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 175404, 1, 2236.38, -6675.25, 127.433, 1.29154, 0, 0, 0.601814, 0.798636, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 175404, 1, 4695.86, -5989.7, 117.796, 5.02655, 0, 0, -0.587785, 0.809017, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 175404, 1, 4614.32, -5556.65, 105.257, 3.94445, 0, 0, -0.920505, 0.390732, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 2047, 1, 3259.22, -5155.35, 94.4296, -2.25148, 0, 0, 0.902585, -0.430511, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 2047, 1, 4813.78, -7218.07, 101.907, -0.925024, 0, 0, 0.446198, -0.894934, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 2047, 1, 2419.03, -6999.06, 108.771, -2.02458, 0, 0, 0.848048, -0.529919, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 2047, 1, 4689.64, -5369.46, 118.006, -0.279253, 0, 0, 0.139173, -0.990268, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 2047, 1, 3827.91, -6155.92, 4.86859, 1.91986, 0, 0, 0.819152, 0.573576, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 2047, 1, 4451.39, -6452.65, 138.367, 1.8326, 0, 0, 0.793353, 0.608761, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 2047, 1, 4702.94, -6731.23, 131.381, -1.85005, 0, 0, 0.798635, -0.601815, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 2047, 1, 4382.33, -6121.17, 123.339, 2.96706, 0, 0, 0.996195, 0.087156, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 2047, 1, 3217.87, -5454.92, 103.901, 1.02974, 0, 0, 0.492424, 0.870356, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 2047, 1, 3648.63, -6378.19, -52.0457, 3.94445, 0, 0, -0.920505, 0.390732, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 2047, 1, 4210.82, -5213.95, 116.943, 4.67748, 0, 0, -0.719339, 0.694659, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 2047, 1, 3152.03, -6037.21, 4.75105, 1.98967, 0, 0, 0.83867, 0.54464, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 2047, 1, 2093.01, -5585.94, -7.77245, 4.29351, 0, 0, -0.83867, 0.54464, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 2047, 1, 4458.91, -5549.51, 111.424, 0.506145, 0, 0, 0.25038, 0.968148, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 2047, 1, 3413.1, -5354.91, 115.967, 2.53072, 0, 0, 0.953716, 0.300708, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 2047, 1, 3601.63, -5412.79, 118.231, 2.02458, 0, 0, 0.848047, 0.529921, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 2047, 1, 3741.3, -5366.5, 99.7494, 6.17847, 0, 0, -0.0523357, 0.99863, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 2047, 1, 3980.69, -6278.7, 8.60821, 5.67232, 0, 0, -0.300705, 0.953717, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 2047, 1, 3075.36, -5776.95, 25.3971, 0.139624, 0, 0, 0.0697556, 0.997564, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 2047, 1, 2236.38, -6675.25, 127.433, 1.29154, 0, 0, 0.601814, 0.798636, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 2047, 1, 4695.86, -5989.7, 117.796, 5.02655, 0, 0, -0.587785, 0.809017, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 2047, 1, 4614.32, -5556.65, 105.257, 3.94445, 0, 0, -0.920505, 0.390732, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+2, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+3, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+4, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+5, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+6, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+7, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+8, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+9, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+10, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+11, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+12, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+13, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+14, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+15, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+16, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+17, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+18, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+19, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+20, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+21, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@PTEMPLATE+22, 1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+2, @PTEMPLATE+2, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+3, @PTEMPLATE+3, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+4, @PTEMPLATE+4, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+5, @PTEMPLATE+5, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+6, @PTEMPLATE+6, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+7, @PTEMPLATE+7, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+8, @PTEMPLATE+8, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+9, @PTEMPLATE+9, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+10, @PTEMPLATE+10, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+11, @PTEMPLATE+11, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+12, @PTEMPLATE+12, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+13, @PTEMPLATE+13, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+14, @PTEMPLATE+14, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+15, @PTEMPLATE+15, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+16, @PTEMPLATE+16, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+17, @PTEMPLATE+17, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+18, @PTEMPLATE+18, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+19, @PTEMPLATE+19, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+20, @PTEMPLATE+20, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+21, @PTEMPLATE+21, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+22, @PTEMPLATE+22, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+23, @PTEMPLATE+1, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+24, @PTEMPLATE+2, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+25, @PTEMPLATE+3, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+26, @PTEMPLATE+4, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+27, @PTEMPLATE+5, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+28, @PTEMPLATE+6, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+29, @PTEMPLATE+7, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+30, @PTEMPLATE+8, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+31, @PTEMPLATE+9, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+32, @PTEMPLATE+10, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+33, @PTEMPLATE+11, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+34, @PTEMPLATE+12, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+35, @PTEMPLATE+13, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+36, @PTEMPLATE+14, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+37, @PTEMPLATE+15, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+38, @PTEMPLATE+16, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+39, @PTEMPLATE+17, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+40, @PTEMPLATE+18, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+41, @PTEMPLATE+19, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+42, @PTEMPLATE+20, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+43, @PTEMPLATE+21, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10), +(@OGUID+44, @PTEMPLATE+22, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(2337, 9, 'Azshara - Truesilver Deposits / Rich Thorium Veins (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+2, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+3, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+4, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+5, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+6, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+7, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+8, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+9, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+10, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+11, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+12, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+13, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+14, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+15, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+16, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+17, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+18, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+19, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+20, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+21, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0), +(@PTEMPLATE+22, 2337, 0, 'Truesilver Deposit / Rich Thorium Vein - Azshara', 0); + +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Truesilver Deposit / Rich Thorium Vein - Azshara" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 2047); +UPDATE `pool_gameobject` SET `chance` = 80 WHERE `description` = "Truesilver Deposit / Rich Thorium Vein - Azshara" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 175404); + +SET @OGUID = 66336; +SET @PTEMPLATE = 8803; + +-- Gold / Mithril / Truesilver +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 1734, 1, 2828.26, -3994.61, 117.324, 1.65806, 0, 0, 0.737277, 0.675591, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 1734, 1, 3973.14, -5413.5, 124.489, 3.31614, 0, 0, -0.996194, 0.087165, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 1734, 1, 4280.41, -7293.17, 17.8182, 1.51844, 0, 0, 0.688354, 0.725374, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 1734, 1, 4111.43, -5137.35, 146.158, 3.90954, 0, 0, -0.927183, 0.374608, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 1734, 1, 4004.27, -5020.26, 144.709, 3.14159, 0, 0, -1, 0, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 1734, 1, 4373.93, -6309.83, 96.4017, 2.18166, 0, 0, 0.887011, 0.461749, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 1734, 1, 3036.39, -4058.49, 123.179, 1.25664, 0, 0, 0.587785, 0.809017, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 1734, 1, 2930.96, -4063.48, 121.14, 4.01426, 0, 0, -0.906307, 0.422619, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 1734, 1, 3801.09, -4842.9, 158.188, 0.209439, 0, 0, 0.104528, 0.994522, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 1734, 1, 2407.6, -6540.76, 117.029, 3.08918, 0, 0, 0.999657, 0.0262016, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 1734, 1, 2484.39, -5401, 133.867, -1, 0, 0, -0.267238, 0.96363, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 1734, 1, 5025.34, -6505.18, -8.06637, 1.81514, 0, 0, 0.788011, 0.615662, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 1734, 1, 4588.05, -6850.55, 140.756, -2.40855, 0, 0, 0.93358, -0.358368, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 1734, 1, 3283.68, -4261.74, 128.746, 1.65806, 0, 0, 0.737277, 0.675591, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 1734, 1, 3681.92, -6041.19, 9.59359, 1.09956, 0, 0, 0.522499, 0.85264, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 1734, 1, 2350.47, -6026.23, 36.1732, -2.14675, 0, 0, 0.878817, -0.477159, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 1734, 1, 4815.63, -7439.1, 100.707, 2.75762, 0, 0, 0.981627, 0.190809, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 1734, 1, 2326.11, -6374.83, 107.362, 2.30383, 0, 0, 0.913545, 0.406737, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 1734, 1, 2439.83, -5194.75, 156.308, 2.25148, 0, 0, 0.902585, 0.430511, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 1734, 1, 2248.41, -5766.5, 6.41299, 2.82743, 0, 0, 0.987688, 0.156434, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 1734, 1, 4915.54, -7019, 108.375, 3.21142, 0, 0, -0.999391, 0.0349061, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 1734, 1, 2740.53, -6057.06, 52.9025, 2.25147, 0, 0, 0.902585, 0.430512, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 1734, 1, 3253.48, -4371.95, 126.518, 4.97419, 0, 0, -0.608761, 0.793354, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 1734, 1, 3805.53, -5566.64, 26.7421, 4.4855, 0, 0, -0.782608, 0.622515, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 1734, 1, 2241.44, -6389.57, 17.3552, 0.733038, 0, 0, 0.358368, 0.93358, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 1734, 1, 2691.49, -5241.29, 119.195, 5.68977, 0, 0, -0.292372, 0.956305, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 1734, 1, 3547.02, -5481.67, 53.6473, 4.71239, 0, 0, -0.707107, 0.707107, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 1734, 1, 3932.33, -4933.86, 159.605, 5.8294, 0, 0, -0.224951, 0.97437, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 1734, 1, 4269.99, -7110.64, 45.3157, 1.55334, 0, 0, 0.700909, 0.713251, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 1734, 1, 4653.78, -5907.58, 122.904, 2.84488, 0, 0, 0.989016, 0.147811, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 1734, 1, 4745.73, -5473.62, 110.335, 2.80998, 0, 0, 0.986285, 0.16505, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 1734, 1, 3319.4, -5781.67, 11.9572, 0.349065, 0, 0, 0.173648, 0.984808, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 1734, 1, 2809.74, -5501.43, 108.372, 4.59022, 0, 0, -0.748956, 0.66262, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 1734, 1, 4680.67, -7671.08, 56.161, 3.75246, 0, 0, -0.953716, 0.300708, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 1734, 1, 4684.03, -6503.64, 118.027, 2.28638, 0, 0, 0.909961, 0.414693, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 2040, 1, 2828.26, -3994.61, 117.324, 1.65806, 0, 0, 0.737277, 0.675591, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 2040, 1, 3973.14, -5413.5, 124.489, 3.31614, 0, 0, -0.996194, 0.087165, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 2040, 1, 4280.41, -7293.17, 17.8182, 1.51844, 0, 0, 0.688354, 0.725374, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 2040, 1, 4111.43, -5137.35, 146.158, 3.90954, 0, 0, -0.927183, 0.374608, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 2040, 1, 4004.27, -5020.26, 144.709, 3.14159, 0, 0, -1, 0, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 2040, 1, 4373.93, -6309.83, 96.4017, 2.18166, 0, 0, 0.887011, 0.461749, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 2040, 1, 3036.39, -4058.49, 123.179, 1.25664, 0, 0, 0.587785, 0.809017, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 2040, 1, 2930.96, -4063.48, 121.14, 4.01426, 0, 0, -0.906307, 0.422619, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 2040, 1, 3801.09, -4842.9, 158.188, 0.209439, 0, 0, 0.104528, 0.994522, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 2040, 1, 2407.6, -6540.76, 117.029, 3.08918, 0, 0, 0.999657, 0.0262016, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 2040, 1, 2484.39, -5401, 133.867, -1, 0, 0, -0.267238, 0.96363, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 2040, 1, 5025.34, -6505.18, -8.06637, 1.81514, 0, 0, 0.788011, 0.615662, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 2040, 1, 4588.05, -6850.55, 140.756, -2.40855, 0, 0, 0.93358, -0.358368, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 2040, 1, 3283.68, -4261.74, 128.746, 1.65806, 0, 0, 0.737277, 0.675591, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 2040, 1, 3681.92, -6041.19, 9.59359, 1.09956, 0, 0, 0.522499, 0.85264, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 2040, 1, 2350.47, -6026.23, 36.1732, -2.14675, 0, 0, 0.878817, -0.477159, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 2040, 1, 4815.63, -7439.1, 100.707, 2.75762, 0, 0, 0.981627, 0.190809, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 2040, 1, 2326.11, -6374.83, 107.362, 2.30383, 0, 0, 0.913545, 0.406737, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 2040, 1, 2439.83, -5194.75, 156.308, 2.25148, 0, 0, 0.902585, 0.430511, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 2040, 1, 2248.41, -5766.5, 6.41299, 2.82743, 0, 0, 0.987688, 0.156434, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 2040, 1, 4915.54, -7019, 108.375, 3.21142, 0, 0, -0.999391, 0.0349061, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 2040, 1, 2740.53, -6057.06, 52.9025, 2.25147, 0, 0, 0.902585, 0.430512, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 2040, 1, 3253.48, -4371.95, 126.518, 4.97419, 0, 0, -0.608761, 0.793354, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 2040, 1, 3805.53, -5566.64, 26.7421, 4.4855, 0, 0, -0.782608, 0.622515, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 2040, 1, 2241.44, -6389.57, 17.3552, 0.733038, 0, 0, 0.358368, 0.93358, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 2040, 1, 2691.49, -5241.29, 119.195, 5.68977, 0, 0, -0.292372, 0.956305, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 2040, 1, 3547.02, -5481.67, 53.6473, 4.71239, 0, 0, -0.707107, 0.707107, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 2040, 1, 3932.33, -4933.86, 159.605, 5.8294, 0, 0, -0.224951, 0.97437, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 2040, 1, 4269.99, -7110.64, 45.3157, 1.55334, 0, 0, 0.700909, 0.713251, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 2040, 1, 4653.78, -5907.58, 122.904, 2.84488, 0, 0, 0.989016, 0.147811, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 2040, 1, 4745.73, -5473.62, 110.335, 2.80998, 0, 0, 0.986285, 0.16505, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 2040, 1, 3319.4, -5781.67, 11.9572, 0.349065, 0, 0, 0.173648, 0.984808, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 2040, 1, 2809.74, -5501.43, 108.372, 4.59022, 0, 0, -0.748956, 0.66262, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 2040, 1, 4680.67, -7671.08, 56.161, 3.75246, 0, 0, -0.953716, 0.300708, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 2040, 1, 4684.03, -6503.64, 118.027, 2.28638, 0, 0, 0.909961, 0.414693, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 2047, 1, 2828.26, -3994.61, 117.324, 1.65806, 0, 0, 0.737277, 0.675591, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 2047, 1, 3973.14, -5413.5, 124.489, 3.31614, 0, 0, -0.996194, 0.087165, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+73, 2047, 1, 4280.41, -7293.17, 17.8182, 1.51844, 0, 0, 0.688354, 0.725374, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+74, 2047, 1, 4111.43, -5137.35, 146.158, 3.90954, 0, 0, -0.927183, 0.374608, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+75, 2047, 1, 4004.27, -5020.26, 144.709, 3.14159, 0, 0, -1, 0, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+76, 2047, 1, 4373.93, -6309.83, 96.4017, 2.18166, 0, 0, 0.887011, 0.461749, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+77, 2047, 1, 3036.39, -4058.49, 123.179, 1.25664, 0, 0, 0.587785, 0.809017, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+78, 2047, 1, 2930.96, -4063.48, 121.14, 4.01426, 0, 0, -0.906307, 0.422619, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+79, 2047, 1, 3801.09, -4842.9, 158.188, 0.209439, 0, 0, 0.104528, 0.994522, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+80, 2047, 1, 2407.6, -6540.76, 117.029, 3.08918, 0, 0, 0.999657, 0.0262016, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+81, 2047, 1, 2484.39, -5401, 133.867, -1, 0, 0, -0.267238, 0.96363, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+82, 2047, 1, 5025.34, -6505.18, -8.06637, 1.81514, 0, 0, 0.788011, 0.615662, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+83, 2047, 1, 4588.05, -6850.55, 140.756, -2.40855, 0, 0, 0.93358, -0.358368, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+84, 2047, 1, 3283.68, -4261.74, 128.746, 1.65806, 0, 0, 0.737277, 0.675591, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+85, 2047, 1, 3681.92, -6041.19, 9.59359, 1.09956, 0, 0, 0.522499, 0.85264, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+86, 2047, 1, 2350.47, -6026.23, 36.1732, -2.14675, 0, 0, 0.878817, -0.477159, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+87, 2047, 1, 4815.63, -7439.1, 100.707, 2.75762, 0, 0, 0.981627, 0.190809, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+88, 2047, 1, 2326.11, -6374.83, 107.362, 2.30383, 0, 0, 0.913545, 0.406737, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+89, 2047, 1, 2439.83, -5194.75, 156.308, 2.25148, 0, 0, 0.902585, 0.430511, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+90, 2047, 1, 2248.41, -5766.5, 6.41299, 2.82743, 0, 0, 0.987688, 0.156434, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+91, 2047, 1, 4915.54, -7019, 108.375, 3.21142, 0, 0, -0.999391, 0.0349061, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+92, 2047, 1, 2740.53, -6057.06, 52.9025, 2.25147, 0, 0, 0.902585, 0.430512, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+93, 2047, 1, 3253.48, -4371.95, 126.518, 4.97419, 0, 0, -0.608761, 0.793354, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+94, 2047, 1, 3805.53, -5566.64, 26.7421, 4.4855, 0, 0, -0.782608, 0.622515, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+95, 2047, 1, 2241.44, -6389.57, 17.3552, 0.733038, 0, 0, 0.358368, 0.93358, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+96, 2047, 1, 2691.49, -5241.29, 119.195, 5.68977, 0, 0, -0.292372, 0.956305, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+97, 2047, 1, 3547.02, -5481.67, 53.6473, 4.71239, 0, 0, -0.707107, 0.707107, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+98, 2047, 1, 3932.33, -4933.86, 159.605, 5.8294, 0, 0, -0.224951, 0.97437, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+99, 2047, 1, 4269.99, -7110.64, 45.3157, 1.55334, 0, 0, 0.700909, 0.713251, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+100, 2047, 1, 4653.78, -5907.58, 122.904, 2.84488, 0, 0, 0.989016, 0.147811, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+101, 2047, 1, 4745.73, -5473.62, 110.335, 2.80998, 0, 0, 0.986285, 0.16505, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+102, 2047, 1, 3319.4, -5781.67, 11.9572, 0.349065, 0, 0, 0.173648, 0.984808, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+103, 2047, 1, 2809.74, -5501.43, 108.372, 4.59022, 0, 0, -0.748956, 0.66262, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+104, 2047, 1, 4680.67, -7671.08, 56.161, 3.75246, 0, 0, -0.953716, 0.300708, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+105, 2047, 1, 4684.03, -6503.64, 118.027, 2.28638, 0, 0, 0.909961, 0.414693, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+2, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+3, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+4, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+5, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+6, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+7, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+8, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+9, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+10, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+11, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+12, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+13, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+14, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+15, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+16, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+17, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+18, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+19, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+20, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+21, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+22, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+23, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+24, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+25, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+26, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+27, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+28, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+29, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+30, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+31, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+32, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+33, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+34, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@PTEMPLATE+35, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+2, @PTEMPLATE+2, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+3, @PTEMPLATE+3, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+4, @PTEMPLATE+4, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+5, @PTEMPLATE+5, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+6, @PTEMPLATE+6, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+7, @PTEMPLATE+7, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+8, @PTEMPLATE+8, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+9, @PTEMPLATE+9, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+10, @PTEMPLATE+10, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+11, @PTEMPLATE+11, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+12, @PTEMPLATE+12, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+13, @PTEMPLATE+13, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+14, @PTEMPLATE+14, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+15, @PTEMPLATE+15, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+16, @PTEMPLATE+16, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+17, @PTEMPLATE+17, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+18, @PTEMPLATE+18, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+19, @PTEMPLATE+19, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+20, @PTEMPLATE+20, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+21, @PTEMPLATE+21, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+22, @PTEMPLATE+22, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+23, @PTEMPLATE+23, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+24, @PTEMPLATE+24, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+25, @PTEMPLATE+25, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+26, @PTEMPLATE+26, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+27, @PTEMPLATE+27, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+28, @PTEMPLATE+28, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+29, @PTEMPLATE+29, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+30, @PTEMPLATE+30, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+31, @PTEMPLATE+31, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+32, @PTEMPLATE+32, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+33, @PTEMPLATE+33, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+34, @PTEMPLATE+34, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+35, @PTEMPLATE+35, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+36, @PTEMPLATE+1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+37, @PTEMPLATE+2, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+38, @PTEMPLATE+3, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+39, @PTEMPLATE+4, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+40, @PTEMPLATE+5, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+41, @PTEMPLATE+6, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+42, @PTEMPLATE+7, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+43, @PTEMPLATE+8, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+44, @PTEMPLATE+9, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+45, @PTEMPLATE+10, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+46, @PTEMPLATE+11, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+47, @PTEMPLATE+12, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+48, @PTEMPLATE+13, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+49, @PTEMPLATE+14, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+50, @PTEMPLATE+15, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+51, @PTEMPLATE+16, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+52, @PTEMPLATE+17, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+53, @PTEMPLATE+18, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+54, @PTEMPLATE+19, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+55, @PTEMPLATE+20, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+56, @PTEMPLATE+21, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+57, @PTEMPLATE+22, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+58, @PTEMPLATE+23, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+59, @PTEMPLATE+24, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+60, @PTEMPLATE+25, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+61, @PTEMPLATE+26, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+62, @PTEMPLATE+27, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+63, @PTEMPLATE+28, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+64, @PTEMPLATE+29, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+65, @PTEMPLATE+30, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+66, @PTEMPLATE+31, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+67, @PTEMPLATE+32, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+68, @PTEMPLATE+33, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+69, @PTEMPLATE+34, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+70, @PTEMPLATE+35, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+71, @PTEMPLATE+1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+72, @PTEMPLATE+2, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+73, @PTEMPLATE+3, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+74, @PTEMPLATE+4, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+75, @PTEMPLATE+5, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+76, @PTEMPLATE+6, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+77, @PTEMPLATE+7, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+78, @PTEMPLATE+8, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+79, @PTEMPLATE+9, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+80, @PTEMPLATE+10, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+81, @PTEMPLATE+11, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+82, @PTEMPLATE+12, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+83, @PTEMPLATE+13, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+84, @PTEMPLATE+14, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+85, @PTEMPLATE+15, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+86, @PTEMPLATE+16, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+87, @PTEMPLATE+17, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+88, @PTEMPLATE+18, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+89, @PTEMPLATE+19, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+90, @PTEMPLATE+20, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+91, @PTEMPLATE+21, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+92, @PTEMPLATE+22, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+93, @PTEMPLATE+23, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+94, @PTEMPLATE+24, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+95, @PTEMPLATE+25, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+96, @PTEMPLATE+26, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+97, @PTEMPLATE+27, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+98, @PTEMPLATE+28, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+99, @PTEMPLATE+29, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+100, @PTEMPLATE+30, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+101, @PTEMPLATE+31, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+102, @PTEMPLATE+32, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+103, @PTEMPLATE+33, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+104, @PTEMPLATE+34, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10), +(@OGUID+105, @PTEMPLATE+35, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(2338, 15, 'Azshara - Gold Vein / Mithril Deposit / Truesilver Deposit (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+2, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+3, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+4, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+5, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+6, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+7, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+8, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+9, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+10, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+11, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+12, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+13, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+14, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+15, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+16, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+17, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+18, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+19, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+20, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+21, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+22, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+23, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+24, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+25, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+26, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+27, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+28, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+29, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+30, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+31, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+32, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+33, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+34, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0), +(@PTEMPLATE+35, 2338, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara', 0); + +UPDATE `pool_gameobject` SET `chance` = 10 WHERE `description` = "Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 1734); +UPDATE `pool_gameobject` SET `chance` = 10 WHERE `description` = "Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 2040); +UPDATE `pool_gameobject` SET `chance` = 80 WHERE `description` = "Gold Vein / Mithril Deposit / Truesilver Deposit - Azshara" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 2047); + +-- Desolace +SET @PTEMPLATE = 3660; + +DELETE FROM `pool_gameobject` WHERE `guid` IN (20862, 251511, 20863, 20753, 34167, 10280, 43817, 427057, 20815, 34188, 6366, 34200, 20849, 34189, 34196, 43808, 10249, 34190, 7293, 34191, 3996097, 27897, 34195, 20855, 20791, 34192, 20854, 10345, 10329, 34194, 20865, 34184, 20864, 10279, 20858, 43800, 6380, 427042, 6669, 34183, 14083, 387717, 29207, 14078, 7320, 220420, 34180, 220421, 13232, 13216, 29217, 27903, 427559, 7074, 14094, 14112, 13607, 427554, 220405, 14023, 220455, 220812, 14091, 34177, 14090); + +-- Tin Vein / Silver Vein +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Tin Vein / Silver Vein - Desolace', 10), +(@PTEMPLATE+2, 1, 'Tin Vein / Silver Vein - Desolace', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(20862, @PTEMPLATE+1, 'Tin Vein / Silver Vein - Desolace', 10), +(251511, @PTEMPLATE+1, 'Tin Vein / Silver Vein - Desolace', 10), +(20863, @PTEMPLATE+2, 'Tin Vein / Silver Vein - Desolace', 10), +(20753, @PTEMPLATE+2, 'Tin Vein / Silver Vein - Desolace', 10); + +-- Gold Vein / Iron Deposit +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+3, 1, 'Gold Vein / Iron Deposit - Desolace', 10), +(@PTEMPLATE+4, 1, 'Gold Vein / Iron Deposit - Desolace', 10), +(@PTEMPLATE+5, 1, 'Gold Vein / Iron Deposit - Desolace', 10), +(@PTEMPLATE+6, 1, 'Gold Vein / Iron Deposit - Desolace', 10), +(@PTEMPLATE+7, 1, 'Gold Vein / Iron Deposit - Desolace', 10), +(@PTEMPLATE+8, 1, 'Gold Vein / Iron Deposit - Desolace', 10), +(@PTEMPLATE+9, 1, 'Gold Vein / Iron Deposit - Desolace', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(34167, @PTEMPLATE+3, 'Gold Vein / Iron Deposit - Desolace', 10), +(10280, @PTEMPLATE+3, 'Gold Vein / Iron Deposit - Desolace', 10), +(43817, @PTEMPLATE+4, 'Gold Vein / Iron Deposit - Desolace', 10), +(427057, @PTEMPLATE+4, 'Gold Vein / Iron Deposit - Desolace', 10), +(20815, @PTEMPLATE+5, 'Gold Vein / Iron Deposit - Desolace', 10), +(34188, @PTEMPLATE+5, 'Gold Vein / Iron Deposit - Desolace', 10), +(6366, @PTEMPLATE+6, 'Gold Vein / Iron Deposit - Desolace', 10), +(34200, @PTEMPLATE+6, 'Gold Vein / Iron Deposit - Desolace', 10), +(20849, @PTEMPLATE+7, 'Gold Vein / Iron Deposit - Desolace', 10), +(34189, @PTEMPLATE+7, 'Gold Vein / Iron Deposit - Desolace', 10), +(34196, @PTEMPLATE+8, 'Gold Vein / Iron Deposit - Desolace', 10), +(43808, @PTEMPLATE+8, 'Gold Vein / Iron Deposit - Desolace', 10), +(10249, @PTEMPLATE+9, 'Gold Vein / Iron Deposit - Desolace', 10), +(34190, @PTEMPLATE+9, 'Gold Vein / Iron Deposit - Desolace', 10); + +-- Gold Vein / Mithril Deposit +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+10, 1, 'Gold Vein / Mithril Deposit - Desolace', 10), +(@PTEMPLATE+11, 1, 'Gold Vein / Mithril Deposit - Desolace', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(7293, @PTEMPLATE+10, 'Gold Vein / Mithril Deposit - Desolace', 10), +(34191, @PTEMPLATE+10, 'Gold Vein / Mithril Deposit - Desolace', 10), +(3996097, @PTEMPLATE+11, 'Gold Vein / Mithril Deposit - Desolace', 10), +(27897, @PTEMPLATE+11, 'Gold Vein / Mithril Deposit - Desolace', 10); + +-- Silver Vein / Gold Vein / Iron Deposit +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+12, 1, 'Silver Vein / Gold Vein / Iron Deposit - Desolace', 10), +(@PTEMPLATE+13, 1, 'Silver Vein / Gold Vein / Iron Deposit - Desolace', 10), +(@PTEMPLATE+14, 1, 'Silver Vein / Gold Vein / Iron Deposit - Desolace', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(34195, @PTEMPLATE+12, 'Silver Vein / Gold Vein / Iron Deposit - Desolace', 10), +(20855, @PTEMPLATE+12, 'Silver Vein / Gold Vein / Iron Deposit - Desolace', 10), +(20791, @PTEMPLATE+12, 'Silver Vein / Gold Vein / Iron Deposit - Desolace', 10), +(34192, @PTEMPLATE+13, 'Silver Vein / Gold Vein / Iron Deposit - Desolace', 10), +(20854, @PTEMPLATE+13, 'Silver Vein / Gold Vein / Iron Deposit - Desolace', 10), +(10345, @PTEMPLATE+13, 'Silver Vein / Gold Vein / Iron Deposit - Desolace', 10), +(10329, @PTEMPLATE+14, 'Silver Vein / Gold Vein / Iron Deposit - Desolace', 10), +(34194, @PTEMPLATE+14, 'Silver Vein / Gold Vein / Iron Deposit - Desolace', 10), +(20865, @PTEMPLATE+14, 'Silver Vein / Gold Vein / Iron Deposit - Desolace', 10); + +-- Silver Vein / Iron Deposit +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+15, 1, 'Silver Vein / Iron Deposit - Desolace', 10), +(@PTEMPLATE+16, 1, 'Silver Vein / Iron Deposit - Desolace', 10), +(@PTEMPLATE+17, 1, 'Silver Vein / Iron Deposit - Desolace', 10), +(@PTEMPLATE+18, 1, 'Silver Vein / Iron Deposit - Desolace', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(34184, @PTEMPLATE+15, 'Silver Vein / Iron Deposit - Desolace', 10), +(20864, @PTEMPLATE+15, 'Silver Vein / Iron Deposit - Desolace', 10), +(10279, @PTEMPLATE+16, 'Silver Vein / Iron Deposit - Desolace', 10), +(20858, @PTEMPLATE+16, 'Silver Vein / Iron Deposit - Desolace', 10), +(43800, @PTEMPLATE+17, 'Silver Vein / Iron Deposit - Desolace', 10), +(6380, @PTEMPLATE+17, 'Silver Vein / Iron Deposit - Desolace', 10), +(427042, @PTEMPLATE+18, 'Silver Vein / Iron Deposit - Desolace', 10), +(6669, @PTEMPLATE+18, 'Silver Vein / Iron Deposit - Desolace', 10); + +-- Mithril Deposit / Truesilver Deposit +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+19, 1, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(@PTEMPLATE+20, 1, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(@PTEMPLATE+21, 1, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(@PTEMPLATE+22, 1, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(@PTEMPLATE+23, 1, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(@PTEMPLATE+24, 1, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(@PTEMPLATE+25, 1, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(@PTEMPLATE+26, 1, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(@PTEMPLATE+27, 1, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(@PTEMPLATE+28, 1, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(@PTEMPLATE+29, 1, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(@PTEMPLATE+30, 1, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(@PTEMPLATE+31, 1, 'Mithril Deposit / Truesilver Deposit - Desolace', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(34183, @PTEMPLATE+19, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(14083, @PTEMPLATE+19, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(387717, @PTEMPLATE+20, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(29207, @PTEMPLATE+20, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(14078, @PTEMPLATE+21, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(7320, @PTEMPLATE+21, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(220420, @PTEMPLATE+22, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(34180, @PTEMPLATE+22, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(220421, @PTEMPLATE+23, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(13232, @PTEMPLATE+23, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(13216, @PTEMPLATE+24, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(29217, @PTEMPLATE+24, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(27903, @PTEMPLATE+25, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(427559, @PTEMPLATE+25, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(7074, @PTEMPLATE+26, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(14094, @PTEMPLATE+26, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(14112, @PTEMPLATE+27, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(13607, @PTEMPLATE+27, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(427554, @PTEMPLATE+28, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(220405, @PTEMPLATE+28, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(14023, @PTEMPLATE+29, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(220455, @PTEMPLATE+29, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(220812, @PTEMPLATE+30, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(14091, @PTEMPLATE+30, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(34177, @PTEMPLATE+31, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(14090, @PTEMPLATE+31, 'Mithril Deposit / Truesilver Deposit - Desolace', 10); + +SET @PTEMPLATE = 2870; + +-- Dustwallow Marsh +DELETE FROM `pool_gameobject` WHERE `guid` IN (220828, 56057, 40773, 56027, 40775, 13674, 40774, 55969, 40776, 427162); + +-- Iron Deposit / Mithril Deposit +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Iron Deposit / Mithril Deposit - Dustwallow Marsh', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(220828, @PTEMPLATE+1, 'Iron Deposit / Mithril Deposit - Dustwallow Marsh', 10), +(56057, @PTEMPLATE+1, 'Iron Deposit / Mithril Deposit - Dustwallow Marsh', 10); + +-- Gold Vein / Iron Deposit +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+2, 1, 'Gold Vein / Iron Deposit - Dustwallow Marsh', 10), +(@PTEMPLATE+3, 1, 'Gold Vein / Iron Deposit - Dustwallow Marsh', 10), +(@PTEMPLATE+4, 1, 'Gold Vein / Iron Deposit - Dustwallow Marsh', 10), +(@PTEMPLATE+5, 1, 'Gold Vein / Iron Deposit - Dustwallow Marsh', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(40773, @PTEMPLATE+2, 'Gold Vein / Iron Deposit - Dustwallow Marsh', 10), +(56027, @PTEMPLATE+2, 'Gold Vein / Iron Deposit - Dustwallow Marsh', 10), +(40775, @PTEMPLATE+3, 'Gold Vein / Iron Deposit - Dustwallow Marsh', 10), +(13674, @PTEMPLATE+3, 'Gold Vein / Iron Deposit - Dustwallow Marsh', 10), +(40774, @PTEMPLATE+4, 'Gold Vein / Iron Deposit - Dustwallow Marsh', 10), +(55969, @PTEMPLATE+4, 'Gold Vein / Iron Deposit - Dustwallow Marsh', 10), +(40776, @PTEMPLATE+5, 'Gold Vein / Iron Deposit - Dustwallow Marsh', 10), +(427162, @PTEMPLATE+5, 'Gold Vein / Iron Deposit - Dustwallow Marsh', 10); + +-- STV +DELETE FROM `pool_gameobject` WHERE `guid` IN (427007, 6550, 389463, 427010, 31518, 12168, 12173, 31532, 31531, 57638, 43245, 31528, 31519, 57644, 31529, 57640, 57642, 31520,6545, 6570, 6571, 389461, 10619, 5854, 6662, 12294, 43805, 43256, 32490, 5959, 43804, 32096, 12286, 389473, 43258, 6470, 220805, 43814, 34751, 11696, 220806, 43815, 7176, 43813, 43801, 31525, 32486, 31526, 11969, 5896, 43802, 7306); + +-- Silver Vein / Iron Deposit +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+6, 1, 'Silver Vein / Iron Deposit - Stranglethorn', 10), +(@PTEMPLATE+7, 1, 'Silver Vein / Iron Deposit - Stranglethorn', 10), +(@PTEMPLATE+8, 1, 'Silver Vein / Iron Deposit - Stranglethorn', 10), +(@PTEMPLATE+9, 1, 'Silver Vein / Iron Deposit - Stranglethorn', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(427007, @PTEMPLATE+6, 'Silver Vein / Iron Deposit - Stranglethorn', 10), +(6550, @PTEMPLATE+6, 'Silver Vein / Iron Deposit - Stranglethorn', 10), +(389463, @PTEMPLATE+7, 'Silver Vein / Iron Deposit - Stranglethorn', 10), +(427010, @PTEMPLATE+7, 'Silver Vein / Iron Deposit - Stranglethorn', 10), +(31518, @PTEMPLATE+8, 'Silver Vein / Iron Deposit - Stranglethorn', 10), +(12168, @PTEMPLATE+8, 'Silver Vein / Iron Deposit - Stranglethorn', 10), +(12173, @PTEMPLATE+9, 'Silver Vein / Iron Deposit - Stranglethorn', 10), +(31532, @PTEMPLATE+9, 'Silver Vein / Iron Deposit - Stranglethorn', 10); + +-- Tin Vein / Silver Vein +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+10, 1, 'Tin Vein / Silver Vein - Stranglethorn', 10), +(@PTEMPLATE+11, 1, 'Tin Vein / Silver Vein - Stranglethorn', 10), +(@PTEMPLATE+12, 1, 'Tin Vein / Silver Vein - Stranglethorn', 10), +(@PTEMPLATE+13, 1, 'Tin Vein / Silver Vein - Stranglethorn', 10), +(@PTEMPLATE+14, 1, 'Tin Vein / Silver Vein - Stranglethorn', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(31531, @PTEMPLATE+10, 'Tin Vein / Silver Vein - Stranglethorn', 10), +(57638, @PTEMPLATE+10, 'Tin Vein / Silver Vein - Stranglethorn', 10), +(43245, @PTEMPLATE+11, 'Tin Vein / Silver Vein - Stranglethorn', 10), +(31528, @PTEMPLATE+11, 'Tin Vein / Silver Vein - Stranglethorn', 10), +(31519, @PTEMPLATE+12, 'Tin Vein / Silver Vein - Stranglethorn', 10), +(57644, @PTEMPLATE+12, 'Tin Vein / Silver Vein - Stranglethorn', 10), +(31529, @PTEMPLATE+13, 'Tin Vein / Silver Vein - Stranglethorn', 10), +(57640, @PTEMPLATE+13, 'Tin Vein / Silver Vein - Stranglethorn', 10), +(57642, @PTEMPLATE+14, 'Tin Vein / Silver Vein - Stranglethorn', 10), +(31520, @PTEMPLATE+14, 'Tin Vein / Silver Vein - Stranglethorn', 10); + +-- Gold Vein / Iron Deposit +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+15, 1, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(@PTEMPLATE+16, 1, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(@PTEMPLATE+17, 1, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(@PTEMPLATE+18, 1, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(@PTEMPLATE+19, 1, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(@PTEMPLATE+20, 1, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(@PTEMPLATE+21, 1, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(@PTEMPLATE+22, 1, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(@PTEMPLATE+23, 1, 'Gold Vein / Iron Deposit - Stranglethorn', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(6545, @PTEMPLATE+15, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(6570, @PTEMPLATE+15, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(6571, @PTEMPLATE+16, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(389461, @PTEMPLATE+16, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(10619, @PTEMPLATE+17, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(5854, @PTEMPLATE+17, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(6662, @PTEMPLATE+18, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(12294, @PTEMPLATE+18, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(43805, @PTEMPLATE+19, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(43256, @PTEMPLATE+19, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(32490, @PTEMPLATE+20, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(5959, @PTEMPLATE+20, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(43804, @PTEMPLATE+21, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(32096, @PTEMPLATE+21, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(12286, @PTEMPLATE+22, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(389473, @PTEMPLATE+22, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(43258, @PTEMPLATE+23, 'Gold Vein / Iron Deposit - Stranglethorn', 10), +(6470, @PTEMPLATE+23, 'Gold Vein / Iron Deposit - Stranglethorn', 10); + +-- Mithril Deposit / Truesilver Deposit +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+24, 1, 'Mithril Deposit / Truesilver Deposit - Stranglethorn', 10), +(@PTEMPLATE+25, 1, 'Mithril Deposit / Truesilver Deposit - Stranglethorn', 10), +(@PTEMPLATE+26, 1, 'Mithril Deposit / Truesilver Deposit - Stranglethorn', 10), +(@PTEMPLATE+27, 1, 'Mithril Deposit / Truesilver Deposit - Stranglethorn', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(220805, @PTEMPLATE+24, 'Mithril Deposit / Truesilver Deposit - Stranglethorn', 10), +(43814, @PTEMPLATE+24, 'Mithril Deposit / Truesilver Deposit - Stranglethorn', 10), +(34751, @PTEMPLATE+25, 'Mithril Deposit / Truesilver Deposit - Stranglethorn', 10), +(11696, @PTEMPLATE+25, 'Mithril Deposit / Truesilver Deposit - Stranglethorn', 10), +(220806, @PTEMPLATE+26, 'Mithril Deposit / Truesilver Deposit - Stranglethorn', 10), +(43815, @PTEMPLATE+26, 'Mithril Deposit / Truesilver Deposit - Stranglethorn', 10), +(7176, @PTEMPLATE+27, 'Mithril Deposit / Truesilver Deposit - Stranglethorn', 10), +(43813, @PTEMPLATE+27, 'Mithril Deposit / Truesilver Deposit - Stranglethorn', 10); + +-- Silver Vein / Gold Vein / Iron Deposit +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+28, 1, 'Silver Vein / Gold Vein / Iron Deposit - Stranglethorn', 10), +(@PTEMPLATE+29, 1, 'Silver Vein / Gold Vein / Iron Deposit - Stranglethorn', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(43801, @PTEMPLATE+28, 'Silver Vein / Gold Vein / Iron Deposit - Stranglethorn', 10), +(31525, @PTEMPLATE+28, 'Silver Vein / Gold Vein / Iron Deposit - Stranglethorn', 10), +(32486, @PTEMPLATE+28, 'Silver Vein / Gold Vein / Iron Deposit - Stranglethorn', 10), +(31526, @PTEMPLATE+29, 'Silver Vein / Gold Vein / Iron Deposit - Stranglethorn', 10), +(11969, @PTEMPLATE+29, 'Silver Vein / Gold Vein / Iron Deposit - Stranglethorn', 10), +(5896, @PTEMPLATE+29, 'Silver Vein / Gold Vein / Iron Deposit - Stranglethorn', 10); + +-- Gold Vein / Mithril Deposit +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+30, 1, 'Gold Vein / Mithril Deposit - Stranglethorn', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(43802, @PTEMPLATE+30, 'Silver Vein / Gold Vein / Iron Deposit - Stranglethorn', 10), +(7306, @PTEMPLATE+30, 'Silver Vein / Gold Vein / Iron Deposit - Stranglethorn', 10); + +-- Alterac +DELETE FROM `pool_gameobject` WHERE `guid` IN (31521, 42201, 42202, 220423, 220424, 42204, 43254, 43806, 396411, 31523, 33198, 220425, 220426, 42203, 33196, 220427, 35403, 10622, 220428, 42200, 14483, 427184, 43803, 33185, 31530, 10238, 10572, 6575, 33134, 6489, 32314, 6487, 35374, 31524, 6488, 220429, 220431, 31527, 6460, 10341, 43807, 6494, 12261, 10573, 10571, 6420, 427019, 33290, 9907, 6517, 10583, 427013, 427153, 427002, 32196, 427004); +UPDATE `gameobject` SET `id` = 1735 WHERE `guid` = 396411; + +-- Tin Vein / Iron Deposit +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+31, 1, 'Tin Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+32, 1, 'Tin Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+33, 1, 'Tin Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+34, 1, 'Tin Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+35, 1, 'Tin Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+36, 1, 'Tin Vein / Iron Deposit - Alterac Mountains', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(42202, @PTEMPLATE+31, 'Tin Vein / Iron Deposit - Alterac Mountains', 10), +(220423, @PTEMPLATE+31, 'Tin Vein / Iron Deposit - Alterac Mountains', 10), +(220424, @PTEMPLATE+32, 'Tin Vein / Iron Deposit - Alterac Mountains', 10), +(42204, @PTEMPLATE+32, 'Tin Vein / Iron Deposit - Alterac Mountains', 10), +(33198, @PTEMPLATE+33, 'Tin Vein / Iron Deposit - Alterac Mountains', 10), +(220425, @PTEMPLATE+33, 'Tin Vein / Iron Deposit - Alterac Mountains', 10), +(220426, @PTEMPLATE+34, 'Tin Vein / Iron Deposit - Alterac Mountains', 10), +(42203, @PTEMPLATE+34, 'Tin Vein / Iron Deposit - Alterac Mountains', 10), +(33196, @PTEMPLATE+35, 'Tin Vein / Iron Deposit - Alterac Mountains', 10), +(220427, @PTEMPLATE+35, 'Tin Vein / Iron Deposit - Alterac Mountains', 10), +(220428, @PTEMPLATE+36, 'Tin Vein / Iron Deposit - Alterac Mountains', 10), +(42200, @PTEMPLATE+36, 'Tin Vein / Iron Deposit - Alterac Mountains', 10); + +-- Silver Vein / Iron Deposit +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+37, 1, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+38, 1, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+39, 1, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+40, 1, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+41, 1, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+42, 1, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+43, 1, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+44, 1, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+45, 1, 'Silver Vein / Iron Deposit - Alterac Mountains', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(10583, @PTEMPLATE+37, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(427013, @PTEMPLATE+37, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(427153, @PTEMPLATE+38, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(427002, @PTEMPLATE+38, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(32196, @PTEMPLATE+39, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(427004, @PTEMPLATE+39, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(427019, @PTEMPLATE+40, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(33290, @PTEMPLATE+40, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(35374, @PTEMPLATE+41, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(31524, @PTEMPLATE+41, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(31530, @PTEMPLATE+42, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(10238, @PTEMPLATE+42, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(220431, @PTEMPLATE+43, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(31527, @PTEMPLATE+43, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(43254, @PTEMPLATE+44, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(43806, @PTEMPLATE+44, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(396411, @PTEMPLATE+45, 'Silver Vein / Iron Deposit - Alterac Mountains', 10), +(31523, @PTEMPLATE+45, 'Silver Vein / Iron Deposit - Alterac Mountains', 10); + +-- Gold Vein / Iron Deposit +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+46, 1, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+47, 1, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+48, 1, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+49, 1, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+50, 1, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+51, 1, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+52, 1, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+53, 1, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+54, 1, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+55, 1, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+56, 1, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(@PTEMPLATE+57, 1, 'Gold Vein / Iron Deposit - Alterac Mountains', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(35403, @PTEMPLATE+46, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(10622, @PTEMPLATE+46, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(14483, @PTEMPLATE+47, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(427184, @PTEMPLATE+47, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(43803, @PTEMPLATE+48, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(33185, @PTEMPLATE+48, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(10572, @PTEMPLATE+49, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(6575, @PTEMPLATE+49, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(33134, @PTEMPLATE+50, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(6489, @PTEMPLATE+50, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(32314, @PTEMPLATE+51, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(6487, @PTEMPLATE+51, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(6488, @PTEMPLATE+52, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(220429, @PTEMPLATE+52, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(6460, @PTEMPLATE+53, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(10341, @PTEMPLATE+53, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(43807, @PTEMPLATE+54, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(6494, @PTEMPLATE+54, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(12261, @PTEMPLATE+55, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(10573, @PTEMPLATE+55, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(10571, @PTEMPLATE+56, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(6420, @PTEMPLATE+56, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(9907, @PTEMPLATE+57, 'Gold Vein / Iron Deposit - Alterac Mountains', 10), +(6517, @PTEMPLATE+57, 'Gold Vein / Iron Deposit - Alterac Mountains', 10); + +-- Tin Vein / Silver Vein +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+58, 1, 'Tin Vein / Silver Vein - Alterac Mountains', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(31521, @PTEMPLATE+58, 'Tin Vein / Silver Vein - Alterac Mountains', 10), +(42201, @PTEMPLATE+58, 'Tin Vein / Silver Vein - Alterac Mountains', 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 59bfcc87ea32e4ec91fde6dddca562a4d2c66e82 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 26 Jun 2023 09:10:01 +0300 Subject: [PATCH 006/426] Improve script and waypoints for Mercutio Filthgorger. --- sql/migrations/20230626060900_world.sql | 39 +++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 sql/migrations/20230626060900_world.sql diff --git a/sql/migrations/20230626060900_world.sql b/sql/migrations/20230626060900_world.sql new file mode 100644 index 00000000000..7a2f7bc2a37 --- /dev/null +++ b/sql/migrations/20230626060900_world.sql @@ -0,0 +1,39 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230626060900'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230626060900'); +-- Add your query below. + + +-- Events list for Mercutio Filthgorger +DELETE FROM `creature_ai_events` WHERE `creature_id`=11886; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1188601, 11886, 0, 4, 0, 100, 0, 0, 0, 0, 0, 1188601, 0, 0, 'Mercutio Filthgorger - Say Text on Aggro'); +DELETE FROM `creature_ai_scripts` WHERE `id`=1188601; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1188601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7261, 0, 0, 0, 0, 0, 0, 0, 0, 'Mercutio Filthgorger - Talk'); +DELETE FROM `creature_ai_scripts` WHERE `id` IN (1188602, 1188603, 1188604, 1188605, 1188606, 1188607); +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES (118860, 'Eastern Plaguelands - Mercutio Filthgorger', 11971, 100, 1, 0, 0, 0, 4, 12, 30, 50, 0, 12540, 100, 5, 0, 0, 0, 1, 12, 8, 16, 0, 14516, 100, 1, 0, 0, 0, 4, 8, 8, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +UPDATE `creature_template` SET `spell_list_id`=118860 WHERE `entry`=11886; + +-- Waypoints for Mercutio Filthgorger +DELETE FROM `creature_movement_template` WHERE `entry`=11886; +INSERT INTO `creature_movement_template` (`entry`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `wander_distance`, `script_id`) VALUES +(11886, 1, 1571.387451, -3257.973877, 86.885139, 100.000000, 0, 0.000000, 0), +(11886, 2, 1570.015137, -3260.671143, 87.059097, 100.000000, 0, 0.000000, 0), +(11886, 3, 1564.624756, -3270.439209, 87.371590, 100.000000, 0, 0.000000, 0), +(11886, 4, 1563.820801, -3280.993408, 88.099808, 100.000000, 600000, 0.000000, 1188604); +DELETE FROM `creature_movement_scripts` WHERE `id`=1188604; +INSERT INTO `creature_movement_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1188604, 0, 0, 20, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 'Mercutio Filthgorger - Move Random'); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From e3bfb32f4bab827f1ca168e8c53ac936b022966a Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 26 Jun 2023 10:18:38 +0300 Subject: [PATCH 007/426] Make battlebots activate nearby areatriggers. --- src/game/PlayerBots/BattleBotWaypoints.cpp | 14 ++----------- src/game/PlayerBots/CombatBotBaseAI.cpp | 23 ++++++++++++++++++++++ src/game/PlayerBots/CombatBotBaseAI.h | 2 ++ 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/game/PlayerBots/BattleBotWaypoints.cpp b/src/game/PlayerBots/BattleBotWaypoints.cpp index 951f119d6a4..86ed6cd8a74 100644 --- a/src/game/PlayerBots/BattleBotWaypoints.cpp +++ b/src/game/PlayerBots/BattleBotWaypoints.cpp @@ -106,12 +106,6 @@ void WSG_AtAllianceFlag(BattleBotAI* pAI) { pAI->ClearPath(); pAI->me->GetMotionMaster()->MovePoint(0, pFlag->GetPositionX(), pFlag->GetPositionY(), 353.0f); - pAI->me->m_Events.AddLambdaEventAtOffset([pAI] - { - WorldPacket data(CMSG_AREATRIGGER); - data << uint32(AT_SILVERWING_FLAG); - pAI->me->GetSession()->HandleAreaTriggerOpcode(data); - }, 2000); return; } } @@ -154,12 +148,6 @@ void WSG_AtHordeFlag(BattleBotAI* pAI) { pAI->ClearPath(); pAI->me->GetMotionMaster()->MovePoint(0, pFlag->GetPositionX(), pFlag->GetPositionY(), pFlag->GetPositionZ()); - pAI->me->m_Events.AddLambdaEventAtOffset([pAI] - { - WorldPacket data(CMSG_AREATRIGGER); - data << uint32(AT_WARSONG_FLAG); - pAI->me->GetSession()->HandleAreaTriggerOpcode(data); - }, 2000); return; } } @@ -1780,6 +1768,8 @@ void BattleBotAI::MovementInform(uint32 movementType, uint32 data) (*m_currentPath->at(data).pFunc)(this); else MoveToNextPoint(); + + ActivateNearbyAreaTrigger(); } } diff --git a/src/game/PlayerBots/CombatBotBaseAI.cpp b/src/game/PlayerBots/CombatBotBaseAI.cpp index 59bb616d04d..c529366a9f8 100644 --- a/src/game/PlayerBots/CombatBotBaseAI.cpp +++ b/src/game/PlayerBots/CombatBotBaseAI.cpp @@ -3200,6 +3200,29 @@ void CombatBotBaseAI::SendBattlemasterJoinPacket(uint8 battlegroundId) me->GetSession()->HandleBattlemasterJoinOpcode(data); } +void CombatBotBaseAI::SendAreaTriggerPacket(uint32 areaTriggerId) +{ + WorldPacket data(CMSG_AREATRIGGER); + data << uint32(areaTriggerId); + me->GetSession()->HandleAreaTriggerOpcode(data); +} + +void CombatBotBaseAI::ActivateNearbyAreaTrigger() +{ + for (auto const& itr : sObjectMgr.GetAreaTriggersMap()) + { + AreaTriggerEntry const* pTrigger = &itr.second; + if (!pTrigger) + continue; + + if (!IsPointInAreaTriggerZone(pTrigger, me->GetMapId(), me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 5.0f)) + continue; + + SendAreaTriggerPacket(pTrigger->id); + break; + } +} + void CombatBotBaseAI::OnPacketReceived(WorldPacket const* packet) { // Must always check "me" player pointer here! diff --git a/src/game/PlayerBots/CombatBotBaseAI.h b/src/game/PlayerBots/CombatBotBaseAI.h index fe21b0613ff..7dbe1d47064 100644 --- a/src/game/PlayerBots/CombatBotBaseAI.h +++ b/src/game/PlayerBots/CombatBotBaseAI.h @@ -84,6 +84,8 @@ class CombatBotBaseAI : public PlayerBotAI virtual void OnPacketReceived(WorldPacket const* packet) override; void SendBattlefieldPortPacket(); void SendBattlemasterJoinPacket(uint8 battlegroundId); + void SendAreaTriggerPacket(uint32 areaTriggerId); + void ActivateNearbyAreaTrigger(); void AutoAssignRole(); void PopulateSpellData(); From 5a883aeca58e294d28ad529cf7a63d9ef3693d66 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Wed, 28 Jun 2023 15:46:24 +0100 Subject: [PATCH 008/426] Add Missing Fish Pools - Wetlands (#1972) --- sql/migrations/20230625113607_world.sql | 248 ++++++++++++++++++++++++ 1 file changed, 248 insertions(+) create mode 100644 sql/migrations/20230625113607_world.sql diff --git a/sql/migrations/20230625113607_world.sql b/sql/migrations/20230625113607_world.sql new file mode 100644 index 00000000000..66bda3d5a5e --- /dev/null +++ b/sql/migrations/20230625113607_world.sql @@ -0,0 +1,248 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230625113607'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230625113607'); +-- Add your query below. + + +SET @OGUID = 35163; +SET @PTEMPLATE = 1944; + +-- Wetlands +DELETE FROM `gameobject` WHERE `guid` IN (808, 811, 822, 823, 898, 961, 964, 965, 973, 977, 985, 986, 988, 989, 1012, 4679, 4773, 4775, 4860, 4993, 5012, 5021, 5032, 5033, 5071, 5074, 5097, 5119, 10705, 10949, 14625, 14626, 14627, 14722, 14852, 14902, 14903, 16616, 16716, 16734, 16744, 16766, 16773, 18157, 18165, 18169, 18172, 20337, 47369, 47372, 47373, 47382, 47391, 47393, 47394, 47395, 47396, 47398, 47403, 47404, 47517, 47518, 47519, 47526, 50323, 50324, 50325, 50326, 50332); +DELETE FROM `pool_gameobject` WHERE `guid` IN (808, 811, 822, 823, 898, 961, 964, 965, 973, 977, 985, 986, 988, 989, 1012, 4679, 4773, 4775, 4860, 4993, 5012, 5021, 5032, 5033, 5071, 5074, 5097, 5119, 10705, 10949, 14625, 14626, 14627, 14722, 14852, 14902, 14903, 16616, 16716, 16734, 16744, 16766, 16773, 18157, 18165, 18169, 18172, 20337, 47369, 47372, 47373, 47382, 47391, 47393, 47394, 47395, 47396, 47398, 47403, 47404, 47517, 47518, 47519, 47526, 50323, 50324, 50325, 50326, 50332); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (808, 811, 822, 823, 898, 961, 964, 965, 973, 977, 985, 986, 988, 989, 1012, 4679, 4773, 4775, 4860, 4993, 5012, 5021, 5032, 5033, 5071, 5074, 5097, 5119, 10705, 10949, 14625, 14626, 14627, 14722, 14852, 14902, 14903, 16616, 16716, 16734, 16744, 16766, 16773, 18157, 18165, 18169, 18172, 20337, 47369, 47372, 47373, 47382, 47391, 47393, 47394, 47395, 47396, 47398, 47403, 47404, 47517, 47518, 47519, 47526, 50323, 50324, 50325, 50326, 50332)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180664, 0, -3887.51, -837.013, 0, 2.32129, 0, 0, 0.91706, 0.398749, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180664, 0, -3884.81, -712.804, 0, -0.10472, 0, 0, 0.052336, -0.99863, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180664, 0, -3873.45, -634.351, 0, -0.837758, 0, 0, 0.406737, -0.913545, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180664, 0, -3843.22, -918.727, 0, -2.89725, 0, 0, 0.992546, -0.121869, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180664, 0, -3758.88, -608.091, 0, 2.56563, 0, 0, 0.95882, 0.284015, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180664, 0, -3710.44, -673.205, 0, 2.51327, 0, 0, 0.951057, 0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180664, 0, -3707.95, -631.876, 0, -0.925024, 0, 0, 0.446198, -0.894934, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180664, 0, -3649.69, -665.087, 0, 0.191986, 0, 0, 0.095846, 0.995396, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180664, 0, -3353.9, -975.253, 0, -0.349066, 0, 0, 0.173648, -0.984808, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180664, 0, -3262.99, -889.309, 0, -0.610865, 0, 0, 0.300706, -0.953717, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180664, 0, -3142.66, -901.367, 0, -2.79253, 0, 0, 0.984808, -0.173648, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180664, 0, -3070.82, -916.696, 0, -0.715585, 0, 0, 0.350207, -0.936672, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180664, 0, -3018.44, -941.133, 0, 2.51327, 0, 0, 0.951057, 0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180664, 0, -2904.7, -1007.43, 0, -0.418879, 0, 0, 0.207912, -0.978148, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180664, 0, -2869.85, -1038.07, 0, 1.62316, 0, 0, 0.725374, 0.688355, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+16, 180664, 0, -2755.3, -1128.21, 0, 2.56563, 0, 0, 0.95882, 0.284015, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+17, 180664, 0, -2721.1, -1163.18, 0, 1.97222, 0, 0, 0.833886, 0.551937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+18, 180664, 0, -2704.53, -1210.83, 0, 2.14675, 0, 0, 0.878817, 0.477159, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+19, 180664, 0, -2681.61, -1279.36, 0, -2.46091, 0, 0, 0.942641, -0.333807, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+20, 180664, 0, -2672.18, -1451.32, 0, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+21, 180664, 0, -2625.05, -1536.17, 0, -3.12414, 0, 0, 0.999962, -0.008727, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+22, 180664, 0, -2576.34, -1586.48, 0, -1.72788, 0, 0, 0.760406, -0.649448, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+23, 180664, 0, -2460.01, -1757.19, 0, 2.51327, 0, 0, 0.951057, 0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+24, 180664, 0, -3359.63, -893.433, 0, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+25, 180664, 0, -3211.8, -891.612, 0, 2.74016, 0, 0, 0.979924, 0.19937, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+26, 180664, 0, -2489.85, -1712.92, 0, 2.40855, 0, 0, 0.93358, 0.358368, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+27, 180657, 0, -3887.51, -837.013, 0, 2.32129, 0, 0, 0.91706, 0.398749, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+28, 180657, 0, -3884.81, -712.804, 0, -0.10472, 0, 0, 0.052336, -0.99863, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+29, 180657, 0, -3873.45, -634.351, 0, -0.837758, 0, 0, 0.406737, -0.913545, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+30, 180657, 0, -3843.22, -918.727, 0, -2.89725, 0, 0, 0.992546, -0.121869, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+31, 180657, 0, -3758.88, -608.091, 0, 2.56563, 0, 0, 0.95882, 0.284015, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+32, 180657, 0, -3710.44, -673.205, 0, 2.51327, 0, 0, 0.951057, 0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+33, 180657, 0, -3707.95, -631.876, 0, -0.925024, 0, 0, 0.446198, -0.894934, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+34, 180657, 0, -3649.69, -665.087, 0, 0.191986, 0, 0, 0.095846, 0.995396, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+35, 180657, 0, -3353.9, -975.253, 0, -0.349066, 0, 0, 0.173648, -0.984808, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+36, 180657, 0, -3262.99, -889.309, 0, -0.610865, 0, 0, 0.300706, -0.953717, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+37, 180657, 0, -3142.66, -901.367, 0, -2.79253, 0, 0, 0.984808, -0.173648, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+38, 180657, 0, -3070.82, -916.696, 0, -0.715585, 0, 0, 0.350207, -0.936672, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+39, 180657, 0, -3018.44, -941.133, 0, 2.51327, 0, 0, 0.951057, 0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+40, 180657, 0, -2904.7, -1007.43, 0, -0.418879, 0, 0, 0.207912, -0.978148, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+41, 180657, 0, -2869.85, -1038.07, 0, 1.62316, 0, 0, 0.725374, 0.688355, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+42, 180657, 0, -2755.3, -1128.21, 0, 2.56563, 0, 0, 0.95882, 0.284015, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+43, 180657, 0, -2721.1, -1163.18, 0, 1.97222, 0, 0, 0.833886, 0.551937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+44, 180657, 0, -2704.53, -1210.83, 0, 2.14675, 0, 0, 0.878817, 0.477159, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+45, 180657, 0, -2681.61, -1279.36, 0, -2.46091, 0, 0, 0.942641, -0.333807, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+46, 180657, 0, -2672.18, -1451.32, 0, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+47, 180657, 0, -2625.05, -1536.17, 0, -3.12414, 0, 0, 0.999962, -0.008727, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+48, 180657, 0, -2576.34, -1586.48, 0, -1.72788, 0, 0, 0.760406, -0.649448, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+49, 180657, 0, -2460.01, -1757.19, 0, 2.51327, 0, 0, 0.951057, 0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+50, 180657, 0, -3359.63, -893.433, 0, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+51, 180657, 0, -3211.8, -891.612, 0, 2.74016, 0, 0, 0.979924, 0.19937, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+52, 180657, 0, -2489.85, -1712.92, 0, 2.40855, 0, 0, 0.93358, 0.358368, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+53, 180662, 0, -3887.51, -837.013, 0, 2.32129, 0, 0, 0.91706, 0.398749, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+54, 180662, 0, -3884.81, -712.804, 0, -0.10472, 0, 0, 0.052336, -0.99863, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+55, 180662, 0, -3873.45, -634.351, 0, -0.837758, 0, 0, 0.406737, -0.913545, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+56, 180662, 0, -3843.22, -918.727, 0, -2.89725, 0, 0, 0.992546, -0.121869, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+57, 180662, 0, -3758.88, -608.091, 0, 2.56563, 0, 0, 0.95882, 0.284015, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+58, 180662, 0, -3710.44, -673.205, 0, 2.51327, 0, 0, 0.951057, 0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+59, 180662, 0, -3707.95, -631.876, 0, -0.925024, 0, 0, 0.446198, -0.894934, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+60, 180662, 0, -3649.69, -665.087, 0, 0.191986, 0, 0, 0.095846, 0.995396, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+61, 180662, 0, -3353.9, -975.253, 0, -0.349066, 0, 0, 0.173648, -0.984808, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+62, 180662, 0, -3262.99, -889.309, 0, -0.610865, 0, 0, 0.300706, -0.953717, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+63, 180662, 0, -3142.66, -901.367, 0, -2.79253, 0, 0, 0.984808, -0.173648, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+64, 180662, 0, -3070.82, -916.696, 0, -0.715585, 0, 0, 0.350207, -0.936672, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+65, 180662, 0, -3018.44, -941.133, 0, 2.51327, 0, 0, 0.951057, 0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+66, 180662, 0, -2904.7, -1007.43, 0, -0.418879, 0, 0, 0.207912, -0.978148, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+67, 180662, 0, -2869.85, -1038.07, 0, 1.62316, 0, 0, 0.725374, 0.688355, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+68, 180662, 0, -2755.3, -1128.21, 0, 2.56563, 0, 0, 0.95882, 0.284015, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+69, 180662, 0, -2721.1, -1163.18, 0, 1.97222, 0, 0, 0.833886, 0.551937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+70, 180662, 0, -2704.53, -1210.83, 0, 2.14675, 0, 0, 0.878817, 0.477159, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+71, 180662, 0, -2681.61, -1279.36, 0, -2.46091, 0, 0, 0.942641, -0.333807, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+72, 180662, 0, -2672.18, -1451.32, 0, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+73, 180662, 0, -2625.05, -1536.17, 0, -3.12414, 0, 0, 0.999962, -0.008727, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+74, 180662, 0, -2576.34, -1586.48, 0, -1.72788, 0, 0, 0.760406, -0.649448, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+75, 180662, 0, -2460.01, -1757.19, 0, 2.51327, 0, 0, 0.951057, 0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+76, 180662, 0, -3359.63, -893.433, 0, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+77, 180662, 0, -3211.8, -891.612, 0, 2.74016, 0, 0, 0.979924, 0.19937, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+78, 180662, 0, -2489.85, -1712.92, 0, 2.40855, 0, 0, 0.93358, 0.358368, 180, 180, 100, 0, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+2, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+3, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+4, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+5, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+6, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+7, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+8, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+9, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+10, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+11, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+12, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+13, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+14, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+15, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+16, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+17, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+18, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+19, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+20, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+21, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+22, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+23, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+24, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+25, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@PTEMPLATE+26, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+6, @PTEMPLATE+6, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+7, @PTEMPLATE+7, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+8, @PTEMPLATE+8, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+9, @PTEMPLATE+9, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+10, @PTEMPLATE+10, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+11, @PTEMPLATE+11, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+12, @PTEMPLATE+12, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+13, @PTEMPLATE+13, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+14, @PTEMPLATE+14, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+15, @PTEMPLATE+15, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+16, @PTEMPLATE+16, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+17, @PTEMPLATE+17, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+18, @PTEMPLATE+18, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+19, @PTEMPLATE+19, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+20, @PTEMPLATE+20, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+21, @PTEMPLATE+21, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+22, @PTEMPLATE+22, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+23, @PTEMPLATE+23, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+24, @PTEMPLATE+24, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+25, @PTEMPLATE+25, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+26, @PTEMPLATE+26, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+27, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+28, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+29, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+30, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+31, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+32, @PTEMPLATE+6, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+33, @PTEMPLATE+7, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+34, @PTEMPLATE+8, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+35, @PTEMPLATE+9, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+36, @PTEMPLATE+10, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+37, @PTEMPLATE+11, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+38, @PTEMPLATE+12, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+39, @PTEMPLATE+13, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+40, @PTEMPLATE+14, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+41, @PTEMPLATE+15, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+42, @PTEMPLATE+16, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+43, @PTEMPLATE+17, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+44, @PTEMPLATE+18, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+45, @PTEMPLATE+19, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+46, @PTEMPLATE+20, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+47, @PTEMPLATE+21, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+48, @PTEMPLATE+22, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+49, @PTEMPLATE+23, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+50, @PTEMPLATE+24, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+51, @PTEMPLATE+25, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+52, @PTEMPLATE+26, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+53, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+54, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+55, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+56, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+57, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+58, @PTEMPLATE+6, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+59, @PTEMPLATE+7, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+60, @PTEMPLATE+8, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+61, @PTEMPLATE+9, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+62, @PTEMPLATE+10, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+63, @PTEMPLATE+11, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+64, @PTEMPLATE+12, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+65, @PTEMPLATE+13, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+66, @PTEMPLATE+14, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+67, @PTEMPLATE+15, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+68, @PTEMPLATE+16, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+69, @PTEMPLATE+17, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+70, @PTEMPLATE+18, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+71, @PTEMPLATE+19, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+72, @PTEMPLATE+20, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+73, @PTEMPLATE+21, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+74, @PTEMPLATE+22, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+75, @PTEMPLATE+23, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+76, @PTEMPLATE+24, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+77, @PTEMPLATE+25, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10), +(@OGUID+78, @PTEMPLATE+26, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+27, 11, 'Wetlands - Oily Blackmouth School / Firefin Snapper School / Floating Wreckage (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+2, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+3, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+4, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+5, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+6, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+7, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+8, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+9, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+10, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+11, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+12, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+13, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+14, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+15, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+16, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+17, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+18, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+19, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+20, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+21, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+22, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+23, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+24, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+25, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0), +(@PTEMPLATE+26, @PTEMPLATE+27, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands', 0); + +UPDATE `pool_gameobject` SET `chance` = 60 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180657); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180662); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Wetlands" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180664); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From ca0354bc22a8c2ba04b335fb2e1600cdc4b949a1 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Wed, 28 Jun 2023 15:47:17 +0100 Subject: [PATCH 009/426] Add Missing Fish Pools - Dustwallow Marsh (#1973) --- sql/migrations/20230625113756_world.sql | 240 ++++++++++++++++++++++++ 1 file changed, 240 insertions(+) create mode 100644 sql/migrations/20230625113756_world.sql diff --git a/sql/migrations/20230625113756_world.sql b/sql/migrations/20230625113756_world.sql new file mode 100644 index 00000000000..a433d414c31 --- /dev/null +++ b/sql/migrations/20230625113756_world.sql @@ -0,0 +1,240 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230625113756'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230625113756'); +-- Add your query below. + + +SET @OGUID = 21001; +SET @PTEMPLATE = 2003; + +-- Dustwallow Marsh +DELETE FROM `gameobject` WHERE `guid` IN (11166, 11167, 11168, 11169, 11170, 11171, 11172, 11173, 18181, 18185, 18189, 18193, 18195, 18213, 18223, 20339, 20354, 20377, 47417, 47418, 47423, 47424, 47473, 47527, 47533, 47534, 47535, 47538, 50334, 50336, 50339, 50340, 50341, 55931, 55965, 56074, 56075); +DELETE FROM `pool_gameobject` WHERE `guid` IN (11166, 11167, 11168, 11169, 11170, 11171, 11172, 11173, 18181, 18185, 18189, 18193, 18195, 18213, 18223, 20339, 20354, 20377, 47417, 47418, 47423, 47424, 47473, 47527, 47533, 47534, 47535, 47538, 50334, 50336, 50339, 50340, 50341, 55931, 55965, 56074, 56075); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (11166, 11167, 11168, 11169, 11170, 11171, 11172, 11173, 18181, 18185, 18189, 18193, 18195, 18213, 18223, 20339, 20354, 20377, 47417, 47418, 47423, 47424, 47473, 47527, 47533, 47534, 47535, 47538, 50334, 50336, 50339, 50340, 50341, 55931, 55965, 56074, 56075)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180682, 1, -3431.34, -4390.54, 0, -1.46608, 0, 0, 0.669131, -0.743145, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180682, 1, -3483.83, -4389.5, 0, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+3, 180682, 1, -3110.98, -4234.24, 0, 3.85718, 0, 0, -0.936671, 0.35021, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+4, 180682, 1, -2442.56, -3837.96, 0, 1.48353, 0, 0, 0.67559, 0.737278, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+5, 180682, 1, -3548.39, -4378.76, 0, 1.65806, 0, 0, 0.737277, 0.67559, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180682, 1, -3371.17, -4340.61, 0, 2.77507, 0, 0, 0.983255, 0.182236, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180682, 1, -3325.25, -4306.11, 0, 1.53589, 0, 0, 0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180682, 1, -3250.99, -4297.08, 0, 1.09956, 0, 0, 0.522499, 0.85264, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180682, 1, -3193.46, -4268.06, 0, 1.309, 0, 0, 0.608761, 0.793353, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180682, 1, -3153.37, -4241.55, 0, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180682, 1, -3053.86, -4229.58, 0, 0.541052, 0, 0, 0.267238, 0.96363, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180682, 1, -2994.52, -4235.53, 0, -1.51844, 0, 0, 0.688354, -0.725374, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180682, 1, -2937.83, -4248.67, 0, -0.977384, 0, 0, 0.469472, -0.882948, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180682, 1, -2871.48, -4241.04, 0, 0.314159, 0, 0, 0.156434, 0.987688, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180682, 1, -2818.83, -4238.49, 0, 3.35105, 0, 0, -0.994521, 0.104535, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+16, 180682, 1, -2752.89, -4213.23, 0, -2.75762, 0, 0, 0.981627, -0.190809, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+17, 180682, 1, -2693.47, -4182.76, 0, -2.79253, 0, 0, 0.984808, -0.173648, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+18, 180682, 1, -2653.76, -4136.18, 0, 1.43117, 0, 0, 0.656059, 0.75471, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+19, 180682, 1, -2636.08, -4058.32, 0, 0.593412, 0, 0, 0.292372, 0.956305, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+20, 180682, 1, -2604.44, -3913.01, 0, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+21, 180682, 1, -2592.63, -3865.09, 0, -0.436333, 0, 0, 0.21644, -0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+22, 180682, 1, -2591.33, -4100.78, 0, -2.89725, 0, 0, 0.992546, -0.121869, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+23, 180682, 1, -2533.09, -4059.57, 0, -2.49582, 0, 0, 0.948324, -0.317305, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+24, 180682, 1, -2526.77, -3842.35, 0, 1.51844, 0, 0, 0.688355, 0.725374, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+25, 180682, 1, -2526.34, -3965.8, 0, -1.13446, 0, 0, 0.5373, -0.843391, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+26, 180683, 1, -3431.34, -4390.54, 0, -1.46608, 0, 0, 0.669131, -0.743145, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+27, 180683, 1, -3483.83, -4389.5, 0, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+28, 180683, 1, -3110.98, -4234.24, 0, 3.85718, 0, 0, -0.936671, 0.35021, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+29, 180683, 1, -2442.56, -3837.96, 0, 1.48353, 0, 0, 0.67559, 0.737278, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+30, 180683, 1, -3548.39, -4378.76, 0, 1.65806, 0, 0, 0.737277, 0.67559, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+31, 180683, 1, -3371.17, -4340.61, 0, 2.77507, 0, 0, 0.983255, 0.182236, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+32, 180683, 1, -3325.25, -4306.11, 0, 1.53589, 0, 0, 0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+33, 180683, 1, -3250.99, -4297.08, 0, 1.09956, 0, 0, 0.522499, 0.85264, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+34, 180683, 1, -3193.46, -4268.06, 0, 1.309, 0, 0, 0.608761, 0.793353, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+35, 180683, 1, -3153.37, -4241.55, 0, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+36, 180683, 1, -3053.86, -4229.58, 0, 0.541052, 0, 0, 0.267238, 0.96363, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+37, 180683, 1, -2994.52, -4235.53, 0, -1.51844, 0, 0, 0.688354, -0.725374, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+38, 180683, 1, -2937.83, -4248.67, 0, -0.977384, 0, 0, 0.469472, -0.882948, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+39, 180683, 1, -2871.48, -4241.04, 0, 0.314159, 0, 0, 0.156434, 0.987688, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+40, 180683, 1, -2818.83, -4238.49, 0, 3.35105, 0, 0, -0.994521, 0.104535, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+41, 180683, 1, -2752.89, -4213.23, 0, -2.75762, 0, 0, 0.981627, -0.190809, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+42, 180683, 1, -2693.47, -4182.76, 0, -2.79253, 0, 0, 0.984808, -0.173648, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+43, 180683, 1, -2653.76, -4136.18, 0, 1.43117, 0, 0, 0.656059, 0.75471, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+44, 180683, 1, -2636.08, -4058.32, 0, 0.593412, 0, 0, 0.292372, 0.956305, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+45, 180683, 1, -2604.44, -3913.01, 0, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+46, 180683, 1, -2592.63, -3865.09, 0, -0.436333, 0, 0, 0.21644, -0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+47, 180683, 1, -2591.33, -4100.78, 0, -2.89725, 0, 0, 0.992546, -0.121869, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+48, 180683, 1, -2533.09, -4059.57, 0, -2.49582, 0, 0, 0.948324, -0.317305, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+49, 180683, 1, -2526.77, -3842.35, 0, 1.51844, 0, 0, 0.688355, 0.725374, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+50, 180683, 1, -2526.34, -3965.8, 0, -1.13446, 0, 0, 0.5373, -0.843391, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+51, 180685, 1, -3431.34, -4390.54, 0, -1.46608, 0, 0, 0.669131, -0.743145, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+52, 180685, 1, -3483.83, -4389.5, 0, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+53, 180685, 1, -3110.98, -4234.24, 0, 3.85718, 0, 0, -0.936671, 0.35021, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+54, 180685, 1, -2442.56, -3837.96, 0, 1.48353, 0, 0, 0.67559, 0.737278, 180, 180, 100, 0, 0, 0, 7, 10), +(@OGUID+55, 180685, 1, -3548.39, -4378.76, 0, 1.65806, 0, 0, 0.737277, 0.67559, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+56, 180685, 1, -3371.17, -4340.61, 0, 2.77507, 0, 0, 0.983255, 0.182236, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+57, 180685, 1, -3325.25, -4306.11, 0, 1.53589, 0, 0, 0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+58, 180685, 1, -3250.99, -4297.08, 0, 1.09956, 0, 0, 0.522499, 0.85264, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+59, 180685, 1, -3193.46, -4268.06, 0, 1.309, 0, 0, 0.608761, 0.793353, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+60, 180685, 1, -3153.37, -4241.55, 0, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+61, 180685, 1, -3053.86, -4229.58, 0, 0.541052, 0, 0, 0.267238, 0.96363, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+62, 180685, 1, -2994.52, -4235.53, 0, -1.51844, 0, 0, 0.688354, -0.725374, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+63, 180685, 1, -2937.83, -4248.67, 0, -0.977384, 0, 0, 0.469472, -0.882948, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+64, 180685, 1, -2871.48, -4241.04, 0, 0.314159, 0, 0, 0.156434, 0.987688, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+65, 180685, 1, -2818.83, -4238.49, 0, 3.35105, 0, 0, -0.994521, 0.104535, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+66, 180685, 1, -2752.89, -4213.23, 0, -2.75762, 0, 0, 0.981627, -0.190809, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+67, 180685, 1, -2693.47, -4182.76, 0, -2.79253, 0, 0, 0.984808, -0.173648, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+68, 180685, 1, -2653.76, -4136.18, 0, 1.43117, 0, 0, 0.656059, 0.75471, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+69, 180685, 1, -2636.08, -4058.32, 0, 0.593412, 0, 0, 0.292372, 0.956305, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+70, 180685, 1, -2604.44, -3913.01, 0, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+71, 180685, 1, -2592.63, -3865.09, 0, -0.436333, 0, 0, 0.21644, -0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+72, 180685, 1, -2591.33, -4100.78, 0, -2.89725, 0, 0, 0.992546, -0.121869, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+73, 180685, 1, -2533.09, -4059.57, 0, -2.49582, 0, 0, 0.948324, -0.317305, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+74, 180685, 1, -2526.77, -3842.35, 0, 1.51844, 0, 0, 0.688355, 0.725374, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+75, 180685, 1, -2526.34, -3965.8, 0, -1.13446, 0, 0, 0.5373, -0.843391, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+2, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+3, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+4, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+5, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+6, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+7, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+8, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+9, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+10, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+11, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+12, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+13, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+14, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+15, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+16, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+17, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+18, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+19, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+20, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+21, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+22, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+23, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+24, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@PTEMPLATE+25, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+6, @PTEMPLATE+6, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+7, @PTEMPLATE+7, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+8, @PTEMPLATE+8, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+9, @PTEMPLATE+9, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+10, @PTEMPLATE+10, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+11, @PTEMPLATE+11, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+12, @PTEMPLATE+12, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+13, @PTEMPLATE+13, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+14, @PTEMPLATE+14, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+15, @PTEMPLATE+15, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+16, @PTEMPLATE+16, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+17, @PTEMPLATE+17, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+18, @PTEMPLATE+18, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+19, @PTEMPLATE+19, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+20, @PTEMPLATE+20, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+21, @PTEMPLATE+21, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+22, @PTEMPLATE+22, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+23, @PTEMPLATE+23, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+24, @PTEMPLATE+24, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+25, @PTEMPLATE+25, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+26, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+27, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+28, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+29, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+30, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+31, @PTEMPLATE+6, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+32, @PTEMPLATE+7, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+33, @PTEMPLATE+8, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+34, @PTEMPLATE+9, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+35, @PTEMPLATE+10, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+36, @PTEMPLATE+11, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+37, @PTEMPLATE+12, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+38, @PTEMPLATE+13, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+39, @PTEMPLATE+14, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+40, @PTEMPLATE+15, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+41, @PTEMPLATE+16, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+42, @PTEMPLATE+17, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+43, @PTEMPLATE+18, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+44, @PTEMPLATE+19, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+45, @PTEMPLATE+20, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+46, @PTEMPLATE+21, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+47, @PTEMPLATE+22, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+48, @PTEMPLATE+23, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+49, @PTEMPLATE+24, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+50, @PTEMPLATE+25, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+51, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+52, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+53, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+54, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+55, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+56, @PTEMPLATE+6, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+57, @PTEMPLATE+7, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+58, @PTEMPLATE+8, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+59, @PTEMPLATE+9, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+60, @PTEMPLATE+10, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+61, @PTEMPLATE+11, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+62, @PTEMPLATE+12, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+63, @PTEMPLATE+13, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+64, @PTEMPLATE+14, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+65, @PTEMPLATE+15, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+66, @PTEMPLATE+16, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+67, @PTEMPLATE+17, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+68, @PTEMPLATE+18, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+69, @PTEMPLATE+19, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+70, @PTEMPLATE+20, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+71, @PTEMPLATE+21, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+72, @PTEMPLATE+22, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+73, @PTEMPLATE+23, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+74, @PTEMPLATE+24, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10), +(@OGUID+75, @PTEMPLATE+25, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+26, 11, 'Dustwallow Marsh - Oily Blackmouth School / Firefin Snapper School / Floating Wreckage (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+2, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+3, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+4, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+5, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+6, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+7, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+8, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+9, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+10, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+11, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+12, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+13, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+14, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+15, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+16, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+17, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+18, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+19, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+20, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+21, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+22, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+23, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+24, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0), +(@PTEMPLATE+25, @PTEMPLATE+26, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh', 0); + +UPDATE `pool_gameobject` SET `chance` = 30 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180682); +UPDATE `pool_gameobject` SET `chance` = 50 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180683); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Dustwallow Marsh" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180685); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 35e1f49c0cc850182f5dde14cc5509efcd234e69 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Wed, 28 Jun 2023 15:48:02 +0100 Subject: [PATCH 010/426] Add Missing Fish Pools - Azshara (#1974) --- sql/migrations/20230625113954_world.sql | 205 ++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 sql/migrations/20230625113954_world.sql diff --git a/sql/migrations/20230625113954_world.sql b/sql/migrations/20230625113954_world.sql new file mode 100644 index 00000000000..7da16bf3ddb --- /dev/null +++ b/sql/migrations/20230625113954_world.sql @@ -0,0 +1,205 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230625113954'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230625113954'); +-- Add your query below. + + +SET @OGUID = 19334; +SET @PTEMPLATE = 2416; + +-- Azshara +DELETE FROM `gameobject` WHERE `guid` IN (18086, 18284, 18067, 18084, 18122, 18284, 18293, 48230, 48231, 48232, 48233, 48451); +DELETE FROM `pool_gameobject` WHERE `pool_entry` IN (18086, 18284, 18067, 18084, 18122, 18284, 18293, 48230, 48231, 48232, 48233, 48451); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (18086, 18284, 18067, 18084, 18122, 18284, 18293, 48230, 48231, 48232, 48233, 48451)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180712, 1, 2959.22, -6004.52, 0, -1.53589, 0, 0, 0.694658, -0.71934, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+2, 180712, 1, 3612.69, -5743.88, 0, -2.93215, 0, 0, 0.994522, -0.104529, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+3, 180712, 1, 3875.84, -5796.33, 0, -0.087267, 0, 0, 0.04362, -0.999048, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+4, 180712, 1, 3333.88, -5834.96, 0, 0.15708, 0, 0, 0.078459, 0.996917, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+5, 180712, 1, 3960.55, -5921.98, 0, 1.97222, 0, 0, 0.833886, 0.551937, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+6, 180712, 1, 3254.9, -5812.65, 0, -2.58309, 0, 0, 0.961262, -0.275637, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+7, 180712, 1, 3453.5, -5820.57, 0, 1.64061, 0, 0, 0.731354, 0.681998, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+8, 180712, 1, 3638.11, -6042.03, 0, 1.91986, 0, 0, 0.819152, 0.573576, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+9, 180712, 1, 2969.99, -6115.76, 0, -0.017453, 0, 0, 0.008727, -0.999962, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+10, 180712, 1, 3165.24, -5838.86, 0, -1.64061, 0, 0, 0.731354, -0.681998, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+11, 180712, 1, 3011.61, -6056.23, 0, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+12, 180712, 1, 3372.06, -5999.89, 0, 1.09956, 0, 0, 0.522498, 0.85264, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+13, 180712, 1, 3530.68, -5894.45, 0, 5.81195, 0, 0, -0.233445, 0.97237, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+14, 180712, 1, 3665.53, -5933.02, 0, 2.61799, 0, 0, 0.965925, 0.258821, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+15, 180712, 1, 3727.71, -5777.92, 0, 3.03684, 0, 0, 0.998629, 0.0523532, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+16, 180712, 1, 3785.95, -5740.7, 0, 3.12412, 0, 0, 0.999962, 0.00873464, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+17, 180750, 1, 2959.22, -6004.52, 0, -1.53589, 0, 0, 0.694658, -0.71934, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+18, 180750, 1, 3612.69, -5743.88, 0, -2.93215, 0, 0, 0.994522, -0.104529, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+19, 180750, 1, 3875.84, -5796.33, 0, -0.087267, 0, 0, 0.04362, -0.999048, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+20, 180750, 1, 3333.88, -5834.96, 0, 0.15708, 0, 0, 0.078459, 0.996917, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+21, 180750, 1, 3960.55, -5921.98, 0, 1.97222, 0, 0, 0.833886, 0.551937, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+22, 180750, 1, 3254.9, -5812.65, 0, -2.58309, 0, 0, 0.961262, -0.275637, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+23, 180750, 1, 3453.5, -5820.57, 0, 1.64061, 0, 0, 0.731354, 0.681998, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+24, 180750, 1, 3638.11, -6042.03, 0, 1.91986, 0, 0, 0.819152, 0.573576, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+25, 180750, 1, 2969.99, -6115.76, 0, -0.017453, 0, 0, 0.008727, -0.999962, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+26, 180750, 1, 3165.24, -5838.86, 0, -1.64061, 0, 0, 0.731354, -0.681998, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+27, 180750, 1, 3011.61, -6056.23, 0, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+28, 180750, 1, 3372.06, -5999.89, 0, 1.09956, 0, 0, 0.522498, 0.85264, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+29, 180750, 1, 3530.68, -5894.45, 0, 5.81195, 0, 0, -0.233445, 0.97237, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+30, 180750, 1, 3665.53, -5933.02, 0, 2.61799, 0, 0, 0.965925, 0.258821, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+31, 180750, 1, 3727.71, -5777.92, 0, 3.03684, 0, 0, 0.998629, 0.0523532, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+32, 180750, 1, 3785.95, -5740.7, 0, 3.12412, 0, 0, 0.999962, 0.00873464, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+33, 180751, 1, 2959.22, -6004.52, 0, -1.53589, 0, 0, 0.694658, -0.71934, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+34, 180751, 1, 3612.69, -5743.88, 0, -2.93215, 0, 0, 0.994522, -0.104529, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+35, 180751, 1, 3875.84, -5796.33, 0, -0.087267, 0, 0, 0.04362, -0.999048, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+36, 180751, 1, 3333.88, -5834.96, 0, 0.15708, 0, 0, 0.078459, 0.996917, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+37, 180751, 1, 3960.55, -5921.98, 0, 1.97222, 0, 0, 0.833886, 0.551937, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+38, 180751, 1, 3254.9, -5812.65, 0, -2.58309, 0, 0, 0.961262, -0.275637, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+39, 180751, 1, 3453.5, -5820.57, 0, 1.64061, 0, 0, 0.731354, 0.681998, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+40, 180751, 1, 3638.11, -6042.03, 0, 1.91986, 0, 0, 0.819152, 0.573576, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+41, 180751, 1, 2969.99, -6115.76, 0, -0.017453, 0, 0, 0.008727, -0.999962, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+42, 180751, 1, 3165.24, -5838.86, 0, -1.64061, 0, 0, 0.731354, -0.681998, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+43, 180751, 1, 3011.61, -6056.23, 0, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+44, 180751, 1, 3372.06, -5999.89, 0, 1.09956, 0, 0, 0.522498, 0.85264, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+45, 180751, 1, 3530.68, -5894.45, 0, 5.81195, 0, 0, -0.233445, 0.97237, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+46, 180751, 1, 3665.53, -5933.02, 0, 2.61799, 0, 0, 0.965925, 0.258821, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+47, 180751, 1, 3727.71, -5777.92, 0, 3.03684, 0, 0, 0.998629, 0.0523532, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+48, 180751, 1, 3785.95, -5740.7, 0, 3.12412, 0, 0, 0.999962, 0.00873464, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+49, 180752, 1, 2959.22, -6004.52, 0, -1.53589, 0, 0, 0.694658, -0.71934, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+50, 180752, 1, 3612.69, -5743.88, 0, -2.93215, 0, 0, 0.994522, -0.104529, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+51, 180752, 1, 3875.84, -5796.33, 0, -0.087267, 0, 0, 0.04362, -0.999048, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+52, 180752, 1, 3333.88, -5834.96, 0, 0.15708, 0, 0, 0.078459, 0.996917, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+53, 180752, 1, 3960.55, -5921.98, 0, 1.97222, 0, 0, 0.833886, 0.551937, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+54, 180752, 1, 3254.9, -5812.65, 0, -2.58309, 0, 0, 0.961262, -0.275637, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+55, 180752, 1, 3453.5, -5820.57, 0, 1.64061, 0, 0, 0.731354, 0.681998, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+56, 180752, 1, 3638.11, -6042.03, 0, 1.91986, 0, 0, 0.819152, 0.573576, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+57, 180752, 1, 2969.99, -6115.76, 0, -0.017453, 0, 0, 0.008727, -0.999962, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+58, 180752, 1, 3165.24, -5838.86, 0, -1.64061, 0, 0, 0.731354, -0.681998, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+59, 180752, 1, 3011.61, -6056.23, 0, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+60, 180752, 1, 3372.06, -5999.89, 0, 1.09956, 0, 0, 0.522498, 0.85264, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+61, 180752, 1, 3530.68, -5894.45, 0, 5.81195, 0, 0, -0.233445, 0.97237, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+62, 180752, 1, 3665.53, -5933.02, 0, 2.61799, 0, 0, 0.965925, 0.258821, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+63, 180752, 1, 3727.71, -5777.92, 0, 3.03684, 0, 0, 0.998629, 0.0523532, 180, 180, 100, 0, 0, 0, 9, 10), +(@OGUID+64, 180752, 1, 3785.95, -5740.7, 0, 3.12412, 0, 0, 0.999962, 0.00873464, 180, 180, 100, 0, 0, 0, 9, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@PTEMPLATE+2, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@PTEMPLATE+3, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@PTEMPLATE+4, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@PTEMPLATE+5, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@PTEMPLATE+6, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@PTEMPLATE+7, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@PTEMPLATE+8, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@PTEMPLATE+9, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@PTEMPLATE+10, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@PTEMPLATE+11, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@PTEMPLATE+12, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@PTEMPLATE+13, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@PTEMPLATE+14, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@PTEMPLATE+15, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@PTEMPLATE+16, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+2, @PTEMPLATE+2, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+3, @PTEMPLATE+3, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+4, @PTEMPLATE+4, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+5, @PTEMPLATE+5, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+6, @PTEMPLATE+6, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+7, @PTEMPLATE+7, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+8, @PTEMPLATE+8, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+9, @PTEMPLATE+9, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+10, @PTEMPLATE+10, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+11, @PTEMPLATE+11, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+12, @PTEMPLATE+12, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+13, @PTEMPLATE+13, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+14, @PTEMPLATE+14, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+15, @PTEMPLATE+15, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+16, @PTEMPLATE+16, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+17, @PTEMPLATE+1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+18, @PTEMPLATE+2, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+19, @PTEMPLATE+3, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+20, @PTEMPLATE+4, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+21, @PTEMPLATE+5, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+22, @PTEMPLATE+6, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+23, @PTEMPLATE+7, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+24, @PTEMPLATE+8, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+25, @PTEMPLATE+9, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+26, @PTEMPLATE+10, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+27, @PTEMPLATE+11, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+28, @PTEMPLATE+12, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+29, @PTEMPLATE+13, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+30, @PTEMPLATE+14, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+31, @PTEMPLATE+15, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+32, @PTEMPLATE+16, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+33, @PTEMPLATE+1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+34, @PTEMPLATE+2, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+35, @PTEMPLATE+3, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+36, @PTEMPLATE+4, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+37, @PTEMPLATE+5, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+38, @PTEMPLATE+6, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+39, @PTEMPLATE+7, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+40, @PTEMPLATE+8, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+41, @PTEMPLATE+9, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+42, @PTEMPLATE+10, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+43, @PTEMPLATE+11, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+44, @PTEMPLATE+12, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+45, @PTEMPLATE+13, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+46, @PTEMPLATE+14, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+47, @PTEMPLATE+15, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+48, @PTEMPLATE+16, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+49, @PTEMPLATE+1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+50, @PTEMPLATE+2, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+51, @PTEMPLATE+3, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+52, @PTEMPLATE+4, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+53, @PTEMPLATE+5, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+54, @PTEMPLATE+6, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+55, @PTEMPLATE+7, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+56, @PTEMPLATE+8, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+57, @PTEMPLATE+9, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+58, @PTEMPLATE+10, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+59, @PTEMPLATE+11, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+60, @PTEMPLATE+12, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+61, @PTEMPLATE+13, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+62, @PTEMPLATE+14, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+63, @PTEMPLATE+15, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10), +(@OGUID+64, @PTEMPLATE+16, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 9, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+17, 6, 'Azshara - Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School (Master Pool)', 0, 0, 9, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+17, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 0), +(@PTEMPLATE+2, @PTEMPLATE+17, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 0), +(@PTEMPLATE+3, @PTEMPLATE+17, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 0), +(@PTEMPLATE+4, @PTEMPLATE+17, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 0), +(@PTEMPLATE+5, @PTEMPLATE+17, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 0), +(@PTEMPLATE+6, @PTEMPLATE+17, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 0), +(@PTEMPLATE+7, @PTEMPLATE+17, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 0), +(@PTEMPLATE+8, @PTEMPLATE+17, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 0), +(@PTEMPLATE+9, @PTEMPLATE+17, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 0), +(@PTEMPLATE+10, @PTEMPLATE+17, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 0), +(@PTEMPLATE+11, @PTEMPLATE+17, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 0), +(@PTEMPLATE+12, @PTEMPLATE+17, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 0), +(@PTEMPLATE+13, @PTEMPLATE+17, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 0), +(@PTEMPLATE+14, @PTEMPLATE+17, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 0), +(@PTEMPLATE+15, @PTEMPLATE+17, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 0), +(@PTEMPLATE+16, @PTEMPLATE+17, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara', 0); + +UPDATE `pool_gameobject` SET `chance` = 30 WHERE `description` = "Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180712); +UPDATE `pool_gameobject` SET `chance` = 10 WHERE `description` = "Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180750); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180751); +UPDATE `pool_gameobject` SET `chance` = 40 WHERE `description` = "Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Azshara" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180752); + +-- Patch of Elemental Water +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+65, 180753, 1, 4022.64, -6045.29, 0, 1.85005, 0, 0, 0.798635, 0.601815, 1800, 1800, 1, 100, 7, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From bbe71ef0b105e2e4057bcb98b9d11f73b861d6b5 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Wed, 28 Jun 2023 15:49:17 +0100 Subject: [PATCH 011/426] Add Missing Fish Pools - Barrens (#1975) --- sql/migrations/20230625114125_world.sql | 245 ++++++++++++++++++++++++ 1 file changed, 245 insertions(+) create mode 100644 sql/migrations/20230625114125_world.sql diff --git a/sql/migrations/20230625114125_world.sql b/sql/migrations/20230625114125_world.sql new file mode 100644 index 00000000000..c72b02e8309 --- /dev/null +++ b/sql/migrations/20230625114125_world.sql @@ -0,0 +1,245 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230625114125'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230625114125'); +-- Add your query below. + + +SET @OGUID = 138; +SET @PTEMPLATE = 1556; + +-- Barrens +DELETE FROM `gameobject` WHERE `guid` IN (899, 915, 919, 952, 1048, 1124, 1188, 1431, 1441, 1442, 1457, 1461, 5120, 10964, 13421, 13422, 13429, 13430, 13431, 13432, 14778, 15202, 15397, 15707, 15708, 16574, 16576, 16577, 16578, 16579, 16580, 18139, 18140, 18144, 18151, 18153, 18154, 50267, 50268, 50276, 50278, 50279, 50283, 50284, 50305, 50307, 50313, 50314, 50333, 50335, 50337); +DELETE FROM `pool_gameobject` WHERE `guid` IN (899, 915, 919, 952, 1048, 1124, 1188, 1431, 1441, 1442, 1457, 1461, 5120, 10964, 13421, 13422, 13429, 13430, 13431, 13432, 14778, 15202, 15397, 15707, 15708, 16574, 16576, 16577, 16578, 16579, 16580, 18139, 18140, 18144, 18151, 18153, 18154, 50267, 50268, 50276, 50278, 50279, 50283, 50284, 50305, 50307, 50313, 50314, 50333, 50335, 50337); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (899, 915, 919, 952, 1048, 1124, 1188, 1431, 1441, 1442, 1457, 1461, 5120, 10964, 13421, 13422, 13429, 13430, 13431, 13432, 14778, 15202, 15397, 15707, 15708, 16574, 16576, 16577, 16578, 16579, 16580, 18139, 18140, 18144, 18151, 18153, 18154, 50267, 50268, 50276, 50278, 50279, 50283, 50284, 50305, 50307, 50313, 50314, 50333, 50335, 50337)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180682, 1, -2359.54, -3854.49, 0, -1.29154, 0, 0, 0.601815, -0.798635, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180682, 1, -2295.38, -3893.07, 0, -0.994838, 0, 0, 0.477159, -0.878817, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180682, 1, -2229.07, -3910.16, 0, 2.87979, 0, 0, 0.991445, 0.130526, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180682, 1, -2179.12, -3912.34, 0, 2.3911, 0, 0, 0.930418, 0.366501, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180682, 1, -2396.59, -3798.74, 0, 5.68977, 0, 0, -0.292372, 0.956305, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180683, 1, -2359.54, -3854.49, 0, -1.29154, 0, 0, 0.601815, -0.798635, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180683, 1, -2295.38, -3893.07, 0, -0.994838, 0, 0, 0.477159, -0.878817, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180683, 1, -2229.07, -3910.16, 0, 2.87979, 0, 0, 0.991445, 0.130526, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180683, 1, -2179.12, -3912.34, 0, 2.3911, 0, 0, 0.930418, 0.366501, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180683, 1, -2396.59, -3798.74, 0, 5.68977, 0, 0, -0.292372, 0.956305, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180685, 1, -2359.54, -3854.49, 0, -1.29154, 0, 0, 0.601815, -0.798635, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180685, 1, -2295.38, -3893.07, 0, -0.994838, 0, 0, 0.477159, -0.878817, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180685, 1, -2229.07, -3910.16, 0, 2.87979, 0, 0, 0.991445, 0.130526, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180685, 1, -2179.12, -3912.34, 0, 2.3911, 0, 0, 0.930418, 0.366501, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180685, 1, -2396.59, -3798.74, 0, 5.68977, 0, 0, -0.292372, 0.956305, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+2, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+3, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+4, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+5, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+6, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+7, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+8, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+9, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+10, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+11, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+12, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+13, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+14, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+15, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+6, 2, 'Barrens - Oily Blackmouth School / Firefin Snapper School / Floating Wreckage (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+6, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+2, @PTEMPLATE+6, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+3, @PTEMPLATE+6, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+4, @PTEMPLATE+6, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+5, @PTEMPLATE+6, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens', 0); + +UPDATE `pool_gameobject` SET `chance` = 30 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180682); +UPDATE `pool_gameobject` SET `chance` = 40 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180683); +UPDATE `pool_gameobject` SET `chance` = 30 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Barrens" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180685); + +SET @OGUID = 19444; +SET @PTEMPLATE = 2606; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180582, 1, -1981.99, -3767.3, 0, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180582, 1, -1951.5, -3759.95, 0, 0.663225, 0, 0, 0.325568, 0.945519, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180582, 1, -1925.76, -3760.7, 0, 1.11701, 0, 0, 0.529919, 0.848048, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180582, 1, -1773.84, -3813.52, 0, -2.68781, 0, 0, 0.97437, -0.224951, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180582, 1, -1608.05, -3954.22, 0, 2.19912, 0, 0, 0.891007, 0.453991, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180582, 1, -1586.55, -3948.27, 0, -1.25664, 0, 0, 0.587785, -0.809017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180582, 1, -1476.99, -3924.05, 0, -3.05433, 0, 0, 0.999048, -0.043619, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180582, 1, -1321.56, -4052.38, 0, 2.02458, 0, 0, 0.848048, 0.529919, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180582, 1, -1302.54, -3916.2, 0, 1.06465, 0, 0, 0.507538, 0.861629, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180582, 1, -1199.29, -3823.79, 0, -1.32645, 0, 0, 0.615661, -0.788011, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180582, 1, -1011.95, -3808.33, 0, -2.3911, 0, 0, 0.930418, -0.366501, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180582, 1, -1001.69, -3733.47, 0, 2.37365, 0, 0, 0.927184, 0.374607, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180582, 1, -988.858, -3775.46, 0, -1.97222, 0, 0, 0.833886, -0.551937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180582, 1, -957.178, -3778.92, 0, -0.174533, 0, 0, 0.087156, -0.996195, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180582, 1, -872.794, -3814.69, 0, -2.86234, 0, 0, 0.990268, -0.139173, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+16, 180582, 1, -833.911, -3919.65, 0, 0.994838, 0, 0, 0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+17, 180582, 1, -1797.26, -3795.81, 0, 4.97419, 0, 0, -0.608761, 0.793354, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+18, 180582, 1, -1776.29, -3783.66, 0, 0.122173, 0, 0, 0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+19, 180582, 1, -1288.6, -3900.71, 0, 0.174532, 0, 0, 0.0871553, 0.996195, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+20, 180582, 1, -975.692, -3835.2, 0, 4.7473, 0, 0, -0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+21, 180582, 1, -969.846, -3805.12, 0, 5.68977, 0, 0, -0.292372, 0.956305, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+22, 180655, 1, -1981.99, -3767.3, 0, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+23, 180655, 1, -1951.5, -3759.95, 0, 0.663225, 0, 0, 0.325568, 0.945519, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+24, 180655, 1, -1925.76, -3760.7, 0, 1.11701, 0, 0, 0.529919, 0.848048, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+25, 180655, 1, -1773.84, -3813.52, 0, -2.68781, 0, 0, 0.97437, -0.224951, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+26, 180655, 1, -1608.05, -3954.22, 0, 2.19912, 0, 0, 0.891007, 0.453991, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+27, 180655, 1, -1586.55, -3948.27, 0, -1.25664, 0, 0, 0.587785, -0.809017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+28, 180655, 1, -1476.99, -3924.05, 0, -3.05433, 0, 0, 0.999048, -0.043619, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+29, 180655, 1, -1321.56, -4052.38, 0, 2.02458, 0, 0, 0.848048, 0.529919, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+30, 180655, 1, -1302.54, -3916.2, 0, 1.06465, 0, 0, 0.507538, 0.861629, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+31, 180655, 1, -1199.29, -3823.79, 0, -1.32645, 0, 0, 0.615661, -0.788011, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+32, 180655, 1, -1011.95, -3808.33, 0, -2.3911, 0, 0, 0.930418, -0.366501, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+33, 180655, 1, -1001.69, -3733.47, 0, 2.37365, 0, 0, 0.927184, 0.374607, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+34, 180655, 1, -988.858, -3775.46, 0, -1.97222, 0, 0, 0.833886, -0.551937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+35, 180655, 1, -957.178, -3778.92, 0, -0.174533, 0, 0, 0.087156, -0.996195, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+36, 180655, 1, -872.794, -3814.69, 0, -2.86234, 0, 0, 0.990268, -0.139173, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+37, 180655, 1, -833.911, -3919.65, 0, 0.994838, 0, 0, 0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+38, 180655, 1, -1797.26, -3795.81, 0, 4.97419, 0, 0, -0.608761, 0.793354, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+39, 180655, 1, -1776.29, -3783.66, 0, 0.122173, 0, 0, 0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+40, 180655, 1, -1288.6, -3900.71, 0, 0.174532, 0, 0, 0.0871553, 0.996195, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+41, 180655, 1, -975.692, -3835.2, 0, 4.7473, 0, 0, -0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+42, 180655, 1, -969.846, -3805.12, 0, 5.68977, 0, 0, -0.292372, 0.956305, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+2, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+3, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+4, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+5, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+6, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+7, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+8, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+9, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+10, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+11, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+12, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+13, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+14, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+15, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+16, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+17, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+18, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+19, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+20, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@PTEMPLATE+21, 1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+6, @PTEMPLATE+6, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+7, @PTEMPLATE+7, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+8, @PTEMPLATE+8, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+9, @PTEMPLATE+9, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+10, @PTEMPLATE+10, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+11, @PTEMPLATE+11, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+12, @PTEMPLATE+12, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+13, @PTEMPLATE+13, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+14, @PTEMPLATE+14, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+15, @PTEMPLATE+15, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+16, @PTEMPLATE+16, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+17, @PTEMPLATE+17, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+18, @PTEMPLATE+18, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+19, @PTEMPLATE+19, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+20, @PTEMPLATE+20, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+21, @PTEMPLATE+21, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+22, @PTEMPLATE+1, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+23, @PTEMPLATE+2, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+24, @PTEMPLATE+3, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+25, @PTEMPLATE+4, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+26, @PTEMPLATE+5, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+27, @PTEMPLATE+6, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+28, @PTEMPLATE+7, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+29, @PTEMPLATE+8, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+30, @PTEMPLATE+9, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+31, @PTEMPLATE+10, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+32, @PTEMPLATE+11, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+33, @PTEMPLATE+12, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+34, @PTEMPLATE+13, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+35, @PTEMPLATE+14, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+36, @PTEMPLATE+15, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+37, @PTEMPLATE+16, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+38, @PTEMPLATE+17, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+39, @PTEMPLATE+18, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+40, @PTEMPLATE+19, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+41, @PTEMPLATE+20, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10), +(@OGUID+42, @PTEMPLATE+21, 'Oily Blackmouth School / Floating Wreckage - Barrens', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+22, 8, 'Barrens - Oily Blackmouth School / Floating Wreckage (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+2, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+3, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+4, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+5, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+6, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+7, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+8, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+9, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+10, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+11, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+12, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+13, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+14, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+15, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+16, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+17, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+18, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+19, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+20, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0), +(@PTEMPLATE+21, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Floating Wreckage - Barrens', 0); + +UPDATE `pool_gameobject` SET `chance` = 50 WHERE `description` = "Oily Blackmouth School / Floating Wreckage - Barrens" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180582); +UPDATE `pool_gameobject` SET `chance` = 50 WHERE `description` = "Oily Blackmouth School / Floating Wreckage - Barrens" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180655); + +-- School of Deviate Fish +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+43, 180658, 1, 113.619, -1943.1, 89.6808, 6.12611, 0, 0, -0.0784588, 0.996917, 300, 300, 1, 100, 0, 10), +(@OGUID+44, 180658, 1, -1088.85, -2240.98, 80.1618, 2.04204, 0, 0, 0.85264, 0.522499, 300, 300, 1, 100, 0, 10), +(@OGUID+45, 180658, 1, 19.8286, -1903.19, 89.6808, 0.209439, 0, 0, 0.104528, 0.994522, 300, 300, 1, 100, 0, 10), +(@OGUID+46, 180658, 1, 15.2904, -1948.07, 89.6808, 1.37881, 0, 0, 0.636078, 0.771625, 300, 300, 1, 100, 0, 10), +(@OGUID+47, 180658, 1, -1074.97, -2025.14, 80.1618, 1.5708, 0, 0, 0.707107, 0.707107, 300, 300, 1, 100, 0, 10), +(@OGUID+48, 180658, 1, -1210.28, -2973.53, 87.7131, 3.97935, 0, 0, -0.913545, 0.406738, 300, 300, 1, 100, 0, 10), +(@OGUID+49, 180658, 1, -929.019, -2072.72, 80.1618, 3.61284, 0, 0, -0.972369, 0.233448, 300, 300, 1, 100, 0, 10), +(@OGUID+50, 180658, 1, -1294.98, -3056.88, 87.7131, 2.79252, 0, 0, 0.984807, 0.173652, 300, 300, 1, 100, 0, 10), +(@OGUID+51, 180658, 1, -935.247, -2043.59, 80.1618, 0.523598, 0, 0, 0.258819, 0.965926, 300, 300, 1, 100, 0, 10), +(@OGUID+52, 180658, 1, -1313.39, -3005.07, 87.7131, 4.67748, 0, 0, -0.719339, 0.694659, 300, 300, 1, 100, 0, 10), +(@OGUID+53, 180658, 1, -987.799, -2084.51, 80.1618, 4.71239, 0, 0, -0.707107, 0.707107, 300, 300, 1, 100, 0, 10), +(@OGUID+54, 180658, 1, -1279.27, -2975.28, 87.7131, 2.84488, 0, 0, 0.989016, 0.147811, 300, 300, 1, 100, 0, 10); + +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180, `patch_min` = 7 WHERE `id` = 180658; + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(3292, 6, 'Barrens - School of Deviate Fish', 0, 0, 7, 10); + +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `flags`, `patch_min`, `patch_max`) VALUES +(180658, 3292, 0, 'Barrens - School of Deviate Fish', 0, 7, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 1f0a107d3376dcc292c1f93988eb5133baaccd97 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Wed, 28 Jun 2023 15:50:54 +0100 Subject: [PATCH 012/426] Add Missing Fish Pools - Stranglethorn (#1976) --- sql/migrations/20230625114319_world.sql | 946 ++++++++++++++++++++++++ 1 file changed, 946 insertions(+) create mode 100644 sql/migrations/20230625114319_world.sql diff --git a/sql/migrations/20230625114319_world.sql b/sql/migrations/20230625114319_world.sql new file mode 100644 index 00000000000..9f47b4bd69c --- /dev/null +++ b/sql/migrations/20230625114319_world.sql @@ -0,0 +1,946 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230625114319'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230625114319'); +-- Add your query below. + + +SET @OGUID = 56274; +SET @PTEMPLATE = 2928; + +-- Stranglethorn Vale +DELETE FROM `gameobject` WHERE `guid` IN (11145, 11146, 11147, 11148, 11149, 11153, 11645, 11650, 11661, 11662, 11663, 11668, 11688, 11689, 11700, 11701, 11703, 11804, 11968, 11986, 12053, 12059, 12060, 12062, 12074, 12075, 12076, 12077, 18146, 18147, 18148, 18149, 32090, 32091, 47318, 47319, 47320, 47321, 47322, 47323, 47324, 47325, 47326, 47327, 47328, 47329, 47330, 47331, 47332, 47333, 47334, 47335, 47336, 47337, 47338, 47339, 47340, 47341, 47342, 47343, 47344, 47345, 47346, 47348, 47349, 47407, 47408, 47409, 47410, 47412, 47414, 47415, 47419, 47420, 47421, 47422, 47428, 47429, 47430, 47433, 47434, 47435, 47436, 47437, 47439, 47441, 47442, 47443, 47446, 47448, 47453, 47463, 47464, 47466, 47467, 47469, 47470, 47471, 47472, 47474, 47475, 47476, 47477, 47478, 47479, 47505, 47506, 47507, 47508, 47509, 47510, 47511, 47512, 47513, 47528, 47529, 47530, 47531, 47536, 47537, 47539, 47540, 47541, 47543, 47544, 47545, 47546, 47547, 47548, 47549, 47550, 47551, 50315, 50316, 50317, 50318, 50319, 50320, 50321, 50344, 50346, 64623, 64627); +DELETE FROM `pool_gameobject` WHERE `guid` IN (11145, 11146, 11147, 11148, 11149, 11153, 11645, 11650, 11661, 11662, 11663, 11668, 11688, 11689, 11700, 11701, 11703, 11804, 11968, 11986, 12053, 12059, 12060, 12062, 12074, 12075, 12076, 12077, 18146, 18147, 18148, 18149, 32090, 32091, 47318, 47319, 47320, 47321, 47322, 47323, 47324, 47325, 47326, 47327, 47328, 47329, 47330, 47331, 47332, 47333, 47334, 47335, 47336, 47337, 47338, 47339, 47340, 47341, 47342, 47343, 47344, 47345, 47346, 47348, 47349, 47407, 47408, 47409, 47410, 47412, 47414, 47415, 47419, 47420, 47421, 47422, 47428, 47429, 47430, 47433, 47434, 47435, 47436, 47437, 47439, 47441, 47442, 47443, 47446, 47448, 47453, 47463, 47464, 47466, 47467, 47469, 47470, 47471, 47472, 47474, 47475, 47476, 47477, 47478, 47479, 47505, 47506, 47507, 47508, 47509, 47510, 47511, 47512, 47513, 47528, 47529, 47530, 47531, 47536, 47537, 47539, 47540, 47541, 47543, 47544, 47545, 47546, 47547, 47548, 47549, 47550, 47551, 50315, 50316, 50317, 50318, 50319, 50320, 50321, 50344, 50346, 64623, 64627); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (11145, 11146, 11147, 11148, 11149, 11153, 11645, 11650, 11661, 11662, 11663, 11668, 11688, 11689, 11700, 11701, 11703, 11804, 11968, 11986, 12053, 12059, 12060, 12062, 12074, 12075, 12076, 12077, 18146, 18147, 18148, 18149, 32090, 32091, 47318, 47319, 47320, 47321, 47322, 47323, 47324, 47325, 47326, 47327, 47328, 47329, 47330, 47331, 47332, 47333, 47334, 47335, 47336, 47337, 47338, 47339, 47340, 47341, 47342, 47343, 47344, 47345, 47346, 47348, 47349, 47407, 47408, 47409, 47410, 47412, 47414, 47415, 47419, 47420, 47421, 47422, 47428, 47429, 47430, 47433, 47434, 47435, 47436, 47437, 47439, 47441, 47442, 47443, 47446, 47448, 47453, 47463, 47464, 47466, 47467, 47469, 47470, 47471, 47472, 47474, 47475, 47476, 47477, 47478, 47479, 47505, 47506, 47507, 47508, 47509, 47510, 47511, 47512, 47513, 47528, 47529, 47530, 47531, 47536, 47537, 47539, 47540, 47541, 47543, 47544, 47545, 47546, 47547, 47548, 47549, 47550, 47551, 50315, 50316, 50317, 50318, 50319, 50320, 50321, 50344, 50346, 64623, 64627)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180901, 0, -14773.3, 532.5, 0, 4.36332, 0, 0, -0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180901, 0, -14726, 353.928, 0, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180901, 0, -14708.2, 262.638, 0, 5.14872, 0, 0, -0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180901, 0, -14678.3, 553.845, 0, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180901, 0, -14659.1, 196.393, 0, 5.37562, 0, 0, -0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180901, 0, -14597.8, 143.019, 0, 1.46608, 0, 0, 0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180901, 0, -14488.5, 67.7705, 0, 2.70526, 0, 0, 0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180901, 0, -14424.6, 465.557, 0, 3.12412, 0, 0, 0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180901, 0, -14401.4, 438.454, 0, 4.99164, 0, 0, -0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180901, 0, -14347.4, 54.1188, 0, 6.03884, 0, 0, -0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180901, 0, -14345, 481.232, 0, 6.0912, 0, 0, -0.0958452, 0.995396, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180901, 0, -14320.4, 529.485, 0, 3.61284, 0, 0, -0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180901, 0, -14144.4, -102.984, 0, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180901, 0, -14141.9, 517.923, 0, 2.72271, 0, 0, 0.978148, 0.207912, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180901, 0, -14012.5, 599.186, 0, 3.07177, 0, 0, 0.999391, 0.0349061, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+16, 180901, 0, -13952.5, 695.664, 0, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+17, 180901, 0, -13853.3, 707.847, 0, 0.436332, 0, 0, 0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+18, 180901, 0, -13842.1, -236.72, 0, 3.97935, 0, 0, -0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+19, 180901, 0, -13779.9, 703.536, 0, 2.40855, 0, 0, 0.93358, 0.358368, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+20, 180901, 0, -13696, -419.378, 0, 2.74016, 0, 0, 0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+21, 180901, 0, -13693.8, 670.814, 0, 0.139624, 0, 0, 0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+22, 180901, 0, -13646.9, 547.157, 0, 1.95477, 0, 0, 0.829038, 0.559193, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+23, 180901, 0, -13629.8, -437.232, 0, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+24, 180901, 0, -13568.4, 766.911, 0, 5.88176, 0, 0, -0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+25, 180901, 0, -13516.4, 808.229, 0, 5.39307, 0, 0, -0.430511, 0.902586, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+26, 180901, 0, -13414.4, 783.912, 0, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+27, 180901, 0, -13341.5, 808.699, 0, 5.74214, 0, 0, -0.267238, 0.963631, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+28, 180901, 0, -13290.2, 651.097, 0, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+29, 180901, 0, -13244, 775.253, 0, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+30, 180901, 0, -13235.1, 558.615, 0, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+31, 180901, 0, -13185.8, 700.266, 0, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+32, 180901, 0, -13150, 482.661, 0, 4.29351, 0, 0, -0.83867, 0.54464, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+33, 180901, 0, -13059.8, 506.689, 0, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+34, 180901, 0, -12968.7, 489.778, 0, 5.14872, 0, 0, -0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+35, 180901, 0, -12909.3, 506.528, 0, 4.67748, 0, 0, -0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+36, 180901, 0, -12829.6, 440.834, 0, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+37, 180901, 0, -12771.4, 378.642, 0, 5.75959, 0, 0, -0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+38, 180901, 0, -12749.4, 343.818, 0, 3.7001, 0, 0, -0.961261, 0.27564, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+39, 180901, 0, -12727.5, 39.1558, 0, 5.95157, 0, 0, -0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+40, 180901, 0, -12722.4, 193.757, 0, 1.22173, 0, 0, 0.573576, 0.819152, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+41, 180901, 0, -12701.7, -21.263, 0, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+42, 180901, 0, -12679.1, 154.718, 0, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+43, 180901, 0, -12624.6, 7.92567, 0, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+44, 180901, 0, -13744.5, -402.947, 0, -1.76278, 0, 0, 0.771625, -0.636078, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+45, 180901, 0, -14720, 448.409, 0, 1.69297, 0, 0, 0.748956, 0.66262, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+46, 180712, 0, -14773.3, 532.5, 0, 4.36332, 0, 0, -0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+47, 180712, 0, -14726, 353.928, 0, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+48, 180712, 0, -14708.2, 262.638, 0, 5.14872, 0, 0, -0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+49, 180712, 0, -14678.3, 553.845, 0, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+50, 180712, 0, -14659.1, 196.393, 0, 5.37562, 0, 0, -0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+51, 180712, 0, -14597.8, 143.019, 0, 1.46608, 0, 0, 0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+52, 180712, 0, -14488.5, 67.7705, 0, 2.70526, 0, 0, 0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+53, 180712, 0, -14424.6, 465.557, 0, 3.12412, 0, 0, 0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+54, 180712, 0, -14401.4, 438.454, 0, 4.99164, 0, 0, -0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+55, 180712, 0, -14347.4, 54.1188, 0, 6.03884, 0, 0, -0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+56, 180712, 0, -14345, 481.232, 0, 6.0912, 0, 0, -0.0958452, 0.995396, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+57, 180712, 0, -14320.4, 529.485, 0, 3.61284, 0, 0, -0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+58, 180712, 0, -14144.4, -102.984, 0, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+59, 180712, 0, -14141.9, 517.923, 0, 2.72271, 0, 0, 0.978148, 0.207912, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+60, 180712, 0, -14012.5, 599.186, 0, 3.07177, 0, 0, 0.999391, 0.0349061, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+61, 180712, 0, -13952.5, 695.664, 0, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+62, 180712, 0, -13853.3, 707.847, 0, 0.436332, 0, 0, 0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+63, 180712, 0, -13842.1, -236.72, 0, 3.97935, 0, 0, -0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+64, 180712, 0, -13779.9, 703.536, 0, 2.40855, 0, 0, 0.93358, 0.358368, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+65, 180712, 0, -13696, -419.378, 0, 2.74016, 0, 0, 0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+66, 180712, 0, -13693.8, 670.814, 0, 0.139624, 0, 0, 0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+67, 180712, 0, -13646.9, 547.157, 0, 1.95477, 0, 0, 0.829038, 0.559193, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+68, 180712, 0, -13629.8, -437.232, 0, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+69, 180712, 0, -13568.4, 766.911, 0, 5.88176, 0, 0, -0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+70, 180712, 0, -13516.4, 808.229, 0, 5.39307, 0, 0, -0.430511, 0.902586, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+71, 180712, 0, -13414.4, 783.912, 0, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+72, 180712, 0, -13341.5, 808.699, 0, 5.74214, 0, 0, -0.267238, 0.963631, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+73, 180712, 0, -13290.2, 651.097, 0, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+74, 180712, 0, -13244, 775.253, 0, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+75, 180712, 0, -13235.1, 558.615, 0, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+76, 180712, 0, -13185.8, 700.266, 0, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+77, 180712, 0, -13150, 482.661, 0, 4.29351, 0, 0, -0.83867, 0.54464, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+78, 180712, 0, -13059.8, 506.689, 0, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+79, 180712, 0, -12968.7, 489.778, 0, 5.14872, 0, 0, -0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+80, 180712, 0, -12909.3, 506.528, 0, 4.67748, 0, 0, -0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+81, 180712, 0, -12829.6, 440.834, 0, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+82, 180712, 0, -12771.4, 378.642, 0, 5.75959, 0, 0, -0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+83, 180712, 0, -12749.4, 343.818, 0, 3.7001, 0, 0, -0.961261, 0.27564, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+84, 180712, 0, -12727.5, 39.1558, 0, 5.95157, 0, 0, -0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+85, 180712, 0, -12722.4, 193.757, 0, 1.22173, 0, 0, 0.573576, 0.819152, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+86, 180712, 0, -12701.7, -21.263, 0, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+87, 180712, 0, -12679.1, 154.718, 0, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+88, 180712, 0, -12624.6, 7.92567, 0, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+89, 180712, 0, -13744.5, -402.947, 0, -1.76278, 0, 0, 0.771625, -0.636078, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+90, 180712, 0, -14720, 448.409, 0, 1.69297, 0, 0, 0.748956, 0.66262, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+91, 180902, 0, -14773.3, 532.5, 0, 4.36332, 0, 0, -0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+92, 180902, 0, -14726, 353.928, 0, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+93, 180902, 0, -14708.2, 262.638, 0, 5.14872, 0, 0, -0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+94, 180902, 0, -14678.3, 553.845, 0, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+95, 180902, 0, -14659.1, 196.393, 0, 5.37562, 0, 0, -0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+96, 180902, 0, -14597.8, 143.019, 0, 1.46608, 0, 0, 0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+97, 180902, 0, -14488.5, 67.7705, 0, 2.70526, 0, 0, 0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+98, 180902, 0, -14424.6, 465.557, 0, 3.12412, 0, 0, 0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+99, 180902, 0, -14401.4, 438.454, 0, 4.99164, 0, 0, -0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+100, 180902, 0, -14347.4, 54.1188, 0, 6.03884, 0, 0, -0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+101, 180902, 0, -14345, 481.232, 0, 6.0912, 0, 0, -0.0958452, 0.995396, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+102, 180902, 0, -14320.4, 529.485, 0, 3.61284, 0, 0, -0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+103, 180902, 0, -14144.4, -102.984, 0, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+104, 180902, 0, -14141.9, 517.923, 0, 2.72271, 0, 0, 0.978148, 0.207912, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+105, 180902, 0, -14012.5, 599.186, 0, 3.07177, 0, 0, 0.999391, 0.0349061, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+106, 180902, 0, -13952.5, 695.664, 0, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+107, 180902, 0, -13853.3, 707.847, 0, 0.436332, 0, 0, 0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+108, 180902, 0, -13842.1, -236.72, 0, 3.97935, 0, 0, -0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+109, 180902, 0, -13779.9, 703.536, 0, 2.40855, 0, 0, 0.93358, 0.358368, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+110, 180902, 0, -13696, -419.378, 0, 2.74016, 0, 0, 0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+111, 180902, 0, -13693.8, 670.814, 0, 0.139624, 0, 0, 0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+112, 180902, 0, -13646.9, 547.157, 0, 1.95477, 0, 0, 0.829038, 0.559193, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+113, 180902, 0, -13629.8, -437.232, 0, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+114, 180902, 0, -13568.4, 766.911, 0, 5.88176, 0, 0, -0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+115, 180902, 0, -13516.4, 808.229, 0, 5.39307, 0, 0, -0.430511, 0.902586, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+116, 180902, 0, -13414.4, 783.912, 0, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+117, 180902, 0, -13341.5, 808.699, 0, 5.74214, 0, 0, -0.267238, 0.963631, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+118, 180902, 0, -13290.2, 651.097, 0, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+119, 180902, 0, -13244, 775.253, 0, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+120, 180902, 0, -13235.1, 558.615, 0, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+121, 180902, 0, -13185.8, 700.266, 0, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+122, 180902, 0, -13150, 482.661, 0, 4.29351, 0, 0, -0.83867, 0.54464, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+123, 180902, 0, -13059.8, 506.689, 0, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+124, 180902, 0, -12968.7, 489.778, 0, 5.14872, 0, 0, -0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+125, 180902, 0, -12909.3, 506.528, 0, 4.67748, 0, 0, -0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+126, 180902, 0, -12829.6, 440.834, 0, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+127, 180902, 0, -12771.4, 378.642, 0, 5.75959, 0, 0, -0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+128, 180902, 0, -12749.4, 343.818, 0, 3.7001, 0, 0, -0.961261, 0.27564, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+129, 180902, 0, -12727.5, 39.1558, 0, 5.95157, 0, 0, -0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+130, 180902, 0, -12722.4, 193.757, 0, 1.22173, 0, 0, 0.573576, 0.819152, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+131, 180902, 0, -12701.7, -21.263, 0, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+132, 180902, 0, -12679.1, 154.718, 0, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+133, 180902, 0, -12624.6, 7.92567, 0, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+134, 180902, 0, -13744.5, -402.947, 0, -1.76278, 0, 0, 0.771625, -0.636078, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+135, 180902, 0, -14720, 448.409, 0, 1.69297, 0, 0, 0.748956, 0.66262, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+136, 180900, 0, -14773.3, 532.5, 0, 4.36332, 0, 0, -0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+137, 180900, 0, -14726, 353.928, 0, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+138, 180900, 0, -14708.2, 262.638, 0, 5.14872, 0, 0, -0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+139, 180900, 0, -14678.3, 553.845, 0, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+140, 180900, 0, -14659.1, 196.393, 0, 5.37562, 0, 0, -0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+141, 180900, 0, -14597.8, 143.019, 0, 1.46608, 0, 0, 0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+142, 180900, 0, -14488.5, 67.7705, 0, 2.70526, 0, 0, 0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+143, 180900, 0, -14424.6, 465.557, 0, 3.12412, 0, 0, 0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+144, 180900, 0, -14401.4, 438.454, 0, 4.99164, 0, 0, -0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+145, 180900, 0, -14347.4, 54.1188, 0, 6.03884, 0, 0, -0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+146, 180900, 0, -14345, 481.232, 0, 6.0912, 0, 0, -0.0958452, 0.995396, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+147, 180900, 0, -14320.4, 529.485, 0, 3.61284, 0, 0, -0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+148, 180900, 0, -14144.4, -102.984, 0, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+149, 180900, 0, -14141.9, 517.923, 0, 2.72271, 0, 0, 0.978148, 0.207912, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+150, 180900, 0, -14012.5, 599.186, 0, 3.07177, 0, 0, 0.999391, 0.0349061, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+151, 180900, 0, -13952.5, 695.664, 0, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+152, 180900, 0, -13853.3, 707.847, 0, 0.436332, 0, 0, 0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+153, 180900, 0, -13842.1, -236.72, 0, 3.97935, 0, 0, -0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+154, 180900, 0, -13779.9, 703.536, 0, 2.40855, 0, 0, 0.93358, 0.358368, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+155, 180900, 0, -13696, -419.378, 0, 2.74016, 0, 0, 0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+156, 180900, 0, -13693.8, 670.814, 0, 0.139624, 0, 0, 0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+157, 180900, 0, -13646.9, 547.157, 0, 1.95477, 0, 0, 0.829038, 0.559193, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+158, 180900, 0, -13629.8, -437.232, 0, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+159, 180900, 0, -13568.4, 766.911, 0, 5.88176, 0, 0, -0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+160, 180900, 0, -13516.4, 808.229, 0, 5.39307, 0, 0, -0.430511, 0.902586, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+161, 180900, 0, -13414.4, 783.912, 0, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+162, 180900, 0, -13341.5, 808.699, 0, 5.74214, 0, 0, -0.267238, 0.963631, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+163, 180900, 0, -13290.2, 651.097, 0, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+164, 180900, 0, -13244, 775.253, 0, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+165, 180900, 0, -13235.1, 558.615, 0, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+166, 180900, 0, -13185.8, 700.266, 0, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+167, 180900, 0, -13150, 482.661, 0, 4.29351, 0, 0, -0.83867, 0.54464, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+168, 180900, 0, -13059.8, 506.689, 0, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+169, 180900, 0, -12968.7, 489.778, 0, 5.14872, 0, 0, -0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+170, 180900, 0, -12909.3, 506.528, 0, 4.67748, 0, 0, -0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+171, 180900, 0, -12829.6, 440.834, 0, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+172, 180900, 0, -12771.4, 378.642, 0, 5.75959, 0, 0, -0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+173, 180900, 0, -12749.4, 343.818, 0, 3.7001, 0, 0, -0.961261, 0.27564, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+174, 180900, 0, -12727.5, 39.1558, 0, 5.95157, 0, 0, -0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+175, 180900, 0, -12722.4, 193.757, 0, 1.22173, 0, 0, 0.573576, 0.819152, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+176, 180900, 0, -12701.7, -21.263, 0, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+177, 180900, 0, -12679.1, 154.718, 0, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+178, 180900, 0, -12624.6, 7.92567, 0, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+179, 180900, 0, -13744.5, -402.947, 0, -1.76278, 0, 0, 0.771625, -0.636078, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+180, 180900, 0, -14720, 448.409, 0, 1.69297, 0, 0, 0.748956, 0.66262, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+2, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+3, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+4, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+5, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+6, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+7, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+8, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+9, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+10, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+11, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+12, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+13, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+14, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+15, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+16, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+17, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+18, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+19, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+20, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+21, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+22, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+23, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+24, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+25, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+26, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+27, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+28, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+29, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+30, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+31, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+32, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+33, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+34, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+35, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+36, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+37, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+38, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+39, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+40, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+41, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+42, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+43, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+44, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@PTEMPLATE+45, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+6, @PTEMPLATE+6, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+7, @PTEMPLATE+7, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+8, @PTEMPLATE+8, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+9, @PTEMPLATE+9, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+10, @PTEMPLATE+10, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+11, @PTEMPLATE+11, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+12, @PTEMPLATE+12, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+13, @PTEMPLATE+13, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+14, @PTEMPLATE+14, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+15, @PTEMPLATE+15, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+16, @PTEMPLATE+16, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+17, @PTEMPLATE+17, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+18, @PTEMPLATE+18, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+19, @PTEMPLATE+19, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+20, @PTEMPLATE+20, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+21, @PTEMPLATE+21, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+22, @PTEMPLATE+22, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+23, @PTEMPLATE+23, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+24, @PTEMPLATE+24, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+25, @PTEMPLATE+25, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+26, @PTEMPLATE+26, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+27, @PTEMPLATE+27, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+28, @PTEMPLATE+28, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+29, @PTEMPLATE+29, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+30, @PTEMPLATE+30, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+31, @PTEMPLATE+31, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+32, @PTEMPLATE+32, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+33, @PTEMPLATE+33, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+34, @PTEMPLATE+34, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+35, @PTEMPLATE+35, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+36, @PTEMPLATE+36, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+37, @PTEMPLATE+37, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+38, @PTEMPLATE+38, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+39, @PTEMPLATE+39, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+40, @PTEMPLATE+40, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+41, @PTEMPLATE+41, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+42, @PTEMPLATE+42, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+43, @PTEMPLATE+43, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+44, @PTEMPLATE+44, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+45, @PTEMPLATE+45, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+46, @PTEMPLATE+1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+47, @PTEMPLATE+2, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+48, @PTEMPLATE+3, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+49, @PTEMPLATE+4, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+50, @PTEMPLATE+5, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+51, @PTEMPLATE+6, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+52, @PTEMPLATE+7, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+53, @PTEMPLATE+8, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+54, @PTEMPLATE+9, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+55, @PTEMPLATE+10, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+56, @PTEMPLATE+11, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+57, @PTEMPLATE+12, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+58, @PTEMPLATE+13, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+59, @PTEMPLATE+14, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+60, @PTEMPLATE+15, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+61, @PTEMPLATE+16, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+62, @PTEMPLATE+17, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+63, @PTEMPLATE+18, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+64, @PTEMPLATE+19, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+65, @PTEMPLATE+20, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+66, @PTEMPLATE+21, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+67, @PTEMPLATE+22, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+68, @PTEMPLATE+23, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+69, @PTEMPLATE+24, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+70, @PTEMPLATE+25, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+71, @PTEMPLATE+26, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+72, @PTEMPLATE+27, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+73, @PTEMPLATE+28, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+74, @PTEMPLATE+29, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+75, @PTEMPLATE+30, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+76, @PTEMPLATE+31, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+77, @PTEMPLATE+32, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+78, @PTEMPLATE+33, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+79, @PTEMPLATE+34, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+80, @PTEMPLATE+35, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+81, @PTEMPLATE+36, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+82, @PTEMPLATE+37, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+83, @PTEMPLATE+38, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+84, @PTEMPLATE+39, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+85, @PTEMPLATE+40, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+86, @PTEMPLATE+41, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+87, @PTEMPLATE+42, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+88, @PTEMPLATE+43, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+89, @PTEMPLATE+44, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+90, @PTEMPLATE+45, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 9, 10), +(@OGUID+91, @PTEMPLATE+1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+92, @PTEMPLATE+2, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+93, @PTEMPLATE+3, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+94, @PTEMPLATE+4, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+95, @PTEMPLATE+5, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+96, @PTEMPLATE+6, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+97, @PTEMPLATE+7, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+98, @PTEMPLATE+8, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+99, @PTEMPLATE+9, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+100, @PTEMPLATE+10, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+101, @PTEMPLATE+11, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+102, @PTEMPLATE+12, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+103, @PTEMPLATE+13, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+104, @PTEMPLATE+14, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+105, @PTEMPLATE+15, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+106, @PTEMPLATE+16, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+107, @PTEMPLATE+17, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+108, @PTEMPLATE+18, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+109, @PTEMPLATE+19, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+110, @PTEMPLATE+20, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+111, @PTEMPLATE+21, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+112, @PTEMPLATE+22, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+113, @PTEMPLATE+23, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+114, @PTEMPLATE+24, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+115, @PTEMPLATE+25, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+116, @PTEMPLATE+26, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+117, @PTEMPLATE+27, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+118, @PTEMPLATE+28, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+119, @PTEMPLATE+29, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+120, @PTEMPLATE+30, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+121, @PTEMPLATE+31, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+122, @PTEMPLATE+32, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+123, @PTEMPLATE+33, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+124, @PTEMPLATE+34, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+125, @PTEMPLATE+35, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+126, @PTEMPLATE+36, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+127, @PTEMPLATE+37, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+128, @PTEMPLATE+38, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+129, @PTEMPLATE+39, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+130, @PTEMPLATE+40, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+131, @PTEMPLATE+41, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+132, @PTEMPLATE+42, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+133, @PTEMPLATE+43, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+134, @PTEMPLATE+44, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+135, @PTEMPLATE+45, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+136, @PTEMPLATE+1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+137, @PTEMPLATE+2, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+138, @PTEMPLATE+3, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+139, @PTEMPLATE+4, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+140, @PTEMPLATE+5, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+141, @PTEMPLATE+6, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+142, @PTEMPLATE+7, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+143, @PTEMPLATE+8, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+144, @PTEMPLATE+9, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+145, @PTEMPLATE+10, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+146, @PTEMPLATE+11, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+147, @PTEMPLATE+12, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+148, @PTEMPLATE+13, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+149, @PTEMPLATE+14, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+150, @PTEMPLATE+15, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+151, @PTEMPLATE+16, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+152, @PTEMPLATE+17, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+153, @PTEMPLATE+18, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+154, @PTEMPLATE+19, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+155, @PTEMPLATE+20, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+156, @PTEMPLATE+21, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+157, @PTEMPLATE+22, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+158, @PTEMPLATE+23, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+159, @PTEMPLATE+24, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+160, @PTEMPLATE+25, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+161, @PTEMPLATE+26, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+162, @PTEMPLATE+27, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+163, @PTEMPLATE+28, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+164, @PTEMPLATE+29, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+165, @PTEMPLATE+30, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+166, @PTEMPLATE+31, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+167, @PTEMPLATE+32, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+168, @PTEMPLATE+33, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+169, @PTEMPLATE+34, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+170, @PTEMPLATE+35, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+171, @PTEMPLATE+36, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+172, @PTEMPLATE+37, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+173, @PTEMPLATE+38, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+174, @PTEMPLATE+39, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+175, @PTEMPLATE+40, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+176, @PTEMPLATE+41, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+177, @PTEMPLATE+42, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+178, @PTEMPLATE+43, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+179, @PTEMPLATE+44, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10), +(@OGUID+180, @PTEMPLATE+45, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+46, 20, 'Stranglethorn - Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+2, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+3, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+4, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+5, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+6, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+7, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+8, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+9, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+10, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+11, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+12, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+13, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+14, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+15, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+16, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+17, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+18, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+19, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+20, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+21, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+22, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+23, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+24, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+25, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+26, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+27, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+28, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+29, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+30, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+31, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+32, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+33, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+34, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+35, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+36, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+37, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+38, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+39, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+40, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+41, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+42, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+43, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+44, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0), +(@PTEMPLATE+45, @PTEMPLATE+46, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn', 0); + +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180712); +UPDATE `pool_gameobject` SET `chance` = 30 WHERE `description` = "Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180900); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180901); +UPDATE `pool_gameobject` SET `chance` = 30 WHERE `description` = "Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Stranglethorn" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180902); + +SET @OGUID = 50741; +SET @PTEMPLATE = 3165; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180682, 0, -12560.9, 47.653, 0, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180682, 0, -12508.2, 122.857, 0, 2.82743, 0, 0, 0.987688, 0.156436, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180682, 0, -12397.3, 290.482, 0, 1.15192, 0, 0, 0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180682, 0, -12349.4, 342.822, 0, 2.26893, 0, 0, 0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180682, 0, -12346, 304.463, 0, 2.05949, 0, 0, 0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180682, 0, -12259.6, 344.519, 0, 1.90241, 0, 0, 0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180682, 0, -12202.2, 351.023, 0, 4.60767, 0, 0, -0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180682, 0, -12131.3, 369.493, 0, 5.34071, 0, 0, -0.45399, 0.891007, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180682, 0, -12080.1, 459.363, 0, 2.14675, 0, 0, 0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180682, 0, -12067.7, 871.853, 0, 2.49582, 0, 0, 0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180682, 0, -12043.2, 541.762, 0, 3.03684, 0, 0, 0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180682, 0, -12035, 804.831, 0, 2.46091, 0, 0, 0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180682, 0, -12031.4, 593.977, 0, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180682, 0, -12015.2, 532.893, -0.255422, 3.03684, 0, 0, 0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180682, 0, -12011.6, 759.599, 0, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+16, 180682, 0, -12001.6, 651.077, 0, 4.11898, 0, 0, -0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+17, 180682, 0, -11993.8, 649.109, -0.949605, 4.11898, 0, 0, -0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+18, 180682, 0, -11975.9, 684.698, 0, 1.13446, 0, 0, 0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+19, 180682, 0, -11958.1, 738.97, 0, 2.9496, 0, 0, 0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+20, 180682, 0, -11950.8, 847.183, 0, 2.77507, 0, 0, 0.983254, 0.182238, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+21, 180682, 0, -11882, 876.11, 0, 1.53589, 0, 0, 0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+22, 180682, 0, -11844.9, 908.972, 0, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+23, 180682, 0, -11833.4, 1198.48, 0, 2.49582, 0, 0, 0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+24, 180682, 0, -11801.6, 961.14, 0, 5.84685, 0, 0, -0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+25, 180682, 0, -11749.2, 998.85, 0, 4.99164, 0, 0, -0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+26, 180682, 0, -11707.8, 1092.1, 0, 0.261798, 0, 0, 0.130526, 0.991445, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+27, 180682, 0, -11642.5, 1102.82, 0, 3.45576, 0, 0, -0.987688, 0.156436, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+28, 180683, 0, -12560.9, 47.653, 0, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+29, 180683, 0, -12508.2, 122.857, 0, 2.82743, 0, 0, 0.987688, 0.156436, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+30, 180683, 0, -12397.3, 290.482, 0, 1.15192, 0, 0, 0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+31, 180683, 0, -12349.4, 342.822, 0, 2.26893, 0, 0, 0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+32, 180683, 0, -12346, 304.463, 0, 2.05949, 0, 0, 0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+33, 180683, 0, -12259.6, 344.519, 0, 1.90241, 0, 0, 0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+34, 180683, 0, -12202.2, 351.023, 0, 4.60767, 0, 0, -0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+35, 180683, 0, -12131.3, 369.493, 0, 5.34071, 0, 0, -0.45399, 0.891007, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+36, 180683, 0, -12080.1, 459.363, 0, 2.14675, 0, 0, 0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+37, 180683, 0, -12067.7, 871.853, 0, 2.49582, 0, 0, 0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+38, 180683, 0, -12043.2, 541.762, 0, 3.03684, 0, 0, 0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+39, 180683, 0, -12035, 804.831, 0, 2.46091, 0, 0, 0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+40, 180683, 0, -12031.4, 593.977, 0, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+41, 180683, 0, -12015.2, 532.893, -0.255422, 3.03684, 0, 0, 0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+42, 180683, 0, -12011.6, 759.599, 0, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+43, 180683, 0, -12001.6, 651.077, 0, 4.11898, 0, 0, -0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+44, 180683, 0, -11993.8, 649.109, -0.949605, 4.11898, 0, 0, -0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+45, 180683, 0, -11975.9, 684.698, 0, 1.13446, 0, 0, 0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+46, 180683, 0, -11958.1, 738.97, 0, 2.9496, 0, 0, 0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+47, 180683, 0, -11950.8, 847.183, 0, 2.77507, 0, 0, 0.983254, 0.182238, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+48, 180683, 0, -11882, 876.11, 0, 1.53589, 0, 0, 0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+49, 180683, 0, -11844.9, 908.972, 0, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+50, 180683, 0, -11833.4, 1198.48, 0, 2.49582, 0, 0, 0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+51, 180683, 0, -11801.6, 961.14, 0, 5.84685, 0, 0, -0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+52, 180683, 0, -11749.2, 998.85, 0, 4.99164, 0, 0, -0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+53, 180683, 0, -11707.8, 1092.1, 0, 0.261798, 0, 0, 0.130526, 0.991445, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+54, 180683, 0, -11642.5, 1102.82, 0, 3.45576, 0, 0, -0.987688, 0.156436, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+55, 180685, 0, -12560.9, 47.653, 0, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+56, 180685, 0, -12508.2, 122.857, 0, 2.82743, 0, 0, 0.987688, 0.156436, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+57, 180685, 0, -12397.3, 290.482, 0, 1.15192, 0, 0, 0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+58, 180685, 0, -12349.4, 342.822, 0, 2.26893, 0, 0, 0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+59, 180685, 0, -12346, 304.463, 0, 2.05949, 0, 0, 0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+60, 180685, 0, -12259.6, 344.519, 0, 1.90241, 0, 0, 0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+61, 180685, 0, -12202.2, 351.023, 0, 4.60767, 0, 0, -0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+62, 180685, 0, -12131.3, 369.493, 0, 5.34071, 0, 0, -0.45399, 0.891007, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+63, 180685, 0, -12080.1, 459.363, 0, 2.14675, 0, 0, 0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+64, 180685, 0, -12067.7, 871.853, 0, 2.49582, 0, 0, 0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+65, 180685, 0, -12043.2, 541.762, 0, 3.03684, 0, 0, 0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+66, 180685, 0, -12035, 804.831, 0, 2.46091, 0, 0, 0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+67, 180685, 0, -12031.4, 593.977, 0, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+68, 180685, 0, -12015.2, 532.893, -0.255422, 3.03684, 0, 0, 0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+69, 180685, 0, -12011.6, 759.599, 0, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+70, 180685, 0, -12001.6, 651.077, 0, 4.11898, 0, 0, -0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+71, 180685, 0, -11993.8, 649.109, -0.949605, 4.11898, 0, 0, -0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+72, 180685, 0, -11975.9, 684.698, 0, 1.13446, 0, 0, 0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+73, 180685, 0, -11958.1, 738.97, 0, 2.9496, 0, 0, 0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+74, 180685, 0, -11950.8, 847.183, 0, 2.77507, 0, 0, 0.983254, 0.182238, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+75, 180685, 0, -11882, 876.11, 0, 1.53589, 0, 0, 0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+76, 180685, 0, -11844.9, 908.972, 0, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+77, 180685, 0, -11833.4, 1198.48, 0, 2.49582, 0, 0, 0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+78, 180685, 0, -11801.6, 961.14, 0, 5.84685, 0, 0, -0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+79, 180685, 0, -11749.2, 998.85, 0, 4.99164, 0, 0, -0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+80, 180685, 0, -11707.8, 1092.1, 0, 0.261798, 0, 0, 0.130526, 0.991445, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+81, 180685, 0, -11642.5, 1102.82, 0, 3.45576, 0, 0, -0.987688, 0.156436, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+2, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+3, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+4, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+5, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+6, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+7, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+8, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+9, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+10, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+11, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+12, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+13, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+14, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+15, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+16, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+17, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+18, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+19, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+20, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+21, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+22, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+23, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+24, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+25, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+26, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+27, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+6, @PTEMPLATE+6, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+7, @PTEMPLATE+7, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+8, @PTEMPLATE+8, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+9, @PTEMPLATE+9, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+10, @PTEMPLATE+10, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+11, @PTEMPLATE+11, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+12, @PTEMPLATE+12, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+13, @PTEMPLATE+13, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+14, @PTEMPLATE+14, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+15, @PTEMPLATE+15, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+16, @PTEMPLATE+16, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+17, @PTEMPLATE+17, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+18, @PTEMPLATE+18, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+19, @PTEMPLATE+19, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+20, @PTEMPLATE+20, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+21, @PTEMPLATE+21, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+22, @PTEMPLATE+22, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+23, @PTEMPLATE+23, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+24, @PTEMPLATE+24, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+25, @PTEMPLATE+25, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+26, @PTEMPLATE+26, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+27, @PTEMPLATE+27, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+28, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+29, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+30, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+31, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+32, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+33, @PTEMPLATE+6, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+34, @PTEMPLATE+7, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+35, @PTEMPLATE+8, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+36, @PTEMPLATE+9, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+37, @PTEMPLATE+10, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+38, @PTEMPLATE+11, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+39, @PTEMPLATE+12, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+40, @PTEMPLATE+13, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+41, @PTEMPLATE+14, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+42, @PTEMPLATE+15, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+43, @PTEMPLATE+16, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+44, @PTEMPLATE+17, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+45, @PTEMPLATE+18, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+46, @PTEMPLATE+19, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+47, @PTEMPLATE+20, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+48, @PTEMPLATE+21, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+49, @PTEMPLATE+22, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+50, @PTEMPLATE+23, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+51, @PTEMPLATE+24, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+52, @PTEMPLATE+25, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+53, @PTEMPLATE+26, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+54, @PTEMPLATE+27, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+55, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+56, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+57, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+58, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+59, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+60, @PTEMPLATE+6, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+61, @PTEMPLATE+7, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+62, @PTEMPLATE+8, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+63, @PTEMPLATE+9, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+64, @PTEMPLATE+10, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+65, @PTEMPLATE+11, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+66, @PTEMPLATE+12, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+67, @PTEMPLATE+13, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+68, @PTEMPLATE+14, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+69, @PTEMPLATE+15, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+70, @PTEMPLATE+16, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+71, @PTEMPLATE+17, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+72, @PTEMPLATE+18, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+73, @PTEMPLATE+19, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+74, @PTEMPLATE+20, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+75, @PTEMPLATE+21, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+76, @PTEMPLATE+22, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+77, @PTEMPLATE+23, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+78, @PTEMPLATE+24, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+79, @PTEMPLATE+25, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+80, @PTEMPLATE+26, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+81, @PTEMPLATE+27, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+28, 11, 'Stranglethorn - Oily Blackmouth School / Firefin Snapper School / Floating Wreckage (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+2, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+3, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+4, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+5, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+6, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+7, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+8, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+9, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+10, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+11, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+12, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+13, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+14, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+15, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+16, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+17, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+18, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+19, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+20, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+21, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+22, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+23, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+24, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+25, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+26, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+27, @PTEMPLATE+28, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn', 0); + +UPDATE `pool_gameobject` SET `chance` = 30 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180682); +UPDATE `pool_gameobject` SET `chance` = 40 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180683); +UPDATE `pool_gameobject` SET `chance` = 30 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Stranglethorn" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180685); + +SET @OGUID = 24463; +SET @PTEMPLATE = 3614; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180684, 0, -12578.5, -108.159, 10.0699, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180684, 0, -12508.8, -249.623, 10.0699, 4.32842, 0, 0, -0.829037, 0.559194, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180684, 0, -12477.8, -243.562, 10.0699, 5.70723, 0, 0, -0.284015, 0.95882, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180684, 0, -12472.4, -289.304, 10.1106, 3.63029, 0, 0, -0.970295, 0.241925, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180684, 0, -12424.2, -303.625, 10.1363, 3.63029, 0, 0, -0.970295, 0.241925, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180684, 0, -12365.6, -294.952, 10.0699, 2.37364, 0, 0, 0.927183, 0.374608, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180684, 0, -12313.4, -311.831, 10.0699, 1.79769, 0, 0, 0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180684, 0, -12298, -297.684, 10.0699, 2.16421, 0, 0, 0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180684, 0, -12239.5, -335.31, 10.0699, 0.698131, 0, 0, 0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180684, 0, -12120.5, -352.027, 10.0699, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180684, 0, -12110.8, -321.975, 10.0699, 2.91469, 0, 0, 0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180684, 0, -12067.4, -457.138, 10.0699, 2.30383, 0, 0, 0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180684, 0, -12036.6, -500.827, 10.0699, 1.15192, 0, 0, 0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180684, 0, -11925.3, -322.532, 10.085, 3.38594, 0, 0, -0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180684, 0, -11886.7, -455.329, 10.0699, 1.6057, 0, 0, 0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+16, 180684, 0, -11856.7, -427.904, 10.0699, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+17, 180684, 0, -11820.9, -347.99, 10.0699, 4.86947, 0, 0, -0.649447, 0.760406, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+18, 180684, 0, -11751.5, -359.684, 10.0699, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+19, 180684, 0, -11701.4, -331.587, 10.0699, 3.4034, 0, 0, -0.991445, 0.130528, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+20, 180684, 0, -11668.9, -262.907, 10.0699, 2.77507, 0, 0, 0.983254, 0.182238, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+21, 180684, 0, -11614.3, -192.641, 10.0699, 4.11898, 0, 0, -0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+22, 180684, 0, -11596.9, -3.87077, 10.0699, 1.48353, 0, 0, 0.67559, 0.737278, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+23, 180684, 0, -11595.8, -30.9914, 10.0699, 2.70526, 0, 0, 0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+24, 180684, 0, -11594.2, -161.316, 10.0699, 5.72468, 0, 0, -0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+25, 180684, 0, -11576.1, -28.4349, 10.0699, 2.14675, 0, 0, 0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+26, 180684, 0, -11568.2, -64.7165, 10.0699, 6.0912, 0, 0, -0.0958452, 0.995396, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+27, 180684, 0, -11542.9, 43.4788, 10.0699, 1.72787, 0, 0, 0.760406, 0.649449, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+28, 180684, 0, -11538.7, -52.8923, 10.0699, 4.53786, 0, 0, -0.766044, 0.642789, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+29, 180684, 0, -11517.9, 141.394, 10.0699, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+30, 180684, 0, -11498.4, 91.6261, 10.0699, 2.05949, 0, 0, 0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+31, 180684, 0, -11483.7, 187.406, 10.0699, 3.94445, 0, 0, -0.920505, 0.390732, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+32, 180684, 0, -11447.1, 254.103, 10.0699, 5.39307, 0, 0, -0.430511, 0.902586, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+33, 180685, 0, -12578.5, -108.159, 10.0699, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+34, 180685, 0, -12508.8, -249.623, 10.0699, 4.32842, 0, 0, -0.829037, 0.559194, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+35, 180685, 0, -12477.8, -243.562, 10.0699, 5.70723, 0, 0, -0.284015, 0.95882, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+36, 180685, 0, -12472.4, -289.304, 10.1106, 3.63029, 0, 0, -0.970295, 0.241925, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+37, 180685, 0, -12424.2, -303.625, 10.1363, 3.63029, 0, 0, -0.970295, 0.241925, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+38, 180685, 0, -12365.6, -294.952, 10.0699, 2.37364, 0, 0, 0.927183, 0.374608, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+39, 180685, 0, -12313.4, -311.831, 10.0699, 1.79769, 0, 0, 0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+40, 180685, 0, -12298, -297.684, 10.0699, 2.16421, 0, 0, 0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+41, 180685, 0, -12239.5, -335.31, 10.0699, 0.698131, 0, 0, 0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+42, 180685, 0, -12120.5, -352.027, 10.0699, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+43, 180685, 0, -12110.8, -321.975, 10.0699, 2.91469, 0, 0, 0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+44, 180685, 0, -12067.4, -457.138, 10.0699, 2.30383, 0, 0, 0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+45, 180685, 0, -12036.6, -500.827, 10.0699, 1.15192, 0, 0, 0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+46, 180685, 0, -11925.3, -322.532, 10.085, 3.38594, 0, 0, -0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+47, 180685, 0, -11886.7, -455.329, 10.0699, 1.6057, 0, 0, 0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+48, 180685, 0, -11856.7, -427.904, 10.0699, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+49, 180685, 0, -11820.9, -347.99, 10.0699, 4.86947, 0, 0, -0.649447, 0.760406, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+50, 180685, 0, -11751.5, -359.684, 10.0699, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+51, 180685, 0, -11701.4, -331.587, 10.0699, 3.4034, 0, 0, -0.991445, 0.130528, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+52, 180685, 0, -11668.9, -262.907, 10.0699, 2.77507, 0, 0, 0.983254, 0.182238, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+53, 180685, 0, -11614.3, -192.641, 10.0699, 4.11898, 0, 0, -0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+54, 180685, 0, -11596.9, -3.87077, 10.0699, 1.48353, 0, 0, 0.67559, 0.737278, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+55, 180685, 0, -11595.8, -30.9914, 10.0699, 2.70526, 0, 0, 0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+56, 180685, 0, -11594.2, -161.316, 10.0699, 5.72468, 0, 0, -0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+57, 180685, 0, -11576.1, -28.4349, 10.0699, 2.14675, 0, 0, 0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+58, 180685, 0, -11568.2, -64.7165, 10.0699, 6.0912, 0, 0, -0.0958452, 0.995396, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+59, 180685, 0, -11542.9, 43.4788, 10.0699, 1.72787, 0, 0, 0.760406, 0.649449, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+60, 180685, 0, -11538.7, -52.8923, 10.0699, 4.53786, 0, 0, -0.766044, 0.642789, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+61, 180685, 0, -11517.9, 141.394, 10.0699, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+62, 180685, 0, -11498.4, 91.6261, 10.0699, 2.05949, 0, 0, 0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+63, 180685, 0, -11483.7, 187.406, 10.0699, 3.94445, 0, 0, -0.920505, 0.390732, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+64, 180685, 0, -11447.1, 254.103, 10.0699, 5.39307, 0, 0, -0.430511, 0.902586, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+2, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+3, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+4, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+5, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+6, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+7, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+8, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+9, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+10, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+11, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+12, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+13, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+14, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+15, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+16, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+17, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+18, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+19, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+20, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+21, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+22, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+23, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+24, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+25, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+26, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+27, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+28, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+29, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+30, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+31, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@PTEMPLATE+32, 1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+6, @PTEMPLATE+6, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+7, @PTEMPLATE+7, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+8, @PTEMPLATE+8, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+9, @PTEMPLATE+9, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+10, @PTEMPLATE+10, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+11, @PTEMPLATE+11, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+12, @PTEMPLATE+12, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+13, @PTEMPLATE+13, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+14, @PTEMPLATE+14, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+15, @PTEMPLATE+15, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+16, @PTEMPLATE+16, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+17, @PTEMPLATE+17, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+18, @PTEMPLATE+18, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+19, @PTEMPLATE+19, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+20, @PTEMPLATE+20, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+21, @PTEMPLATE+21, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+22, @PTEMPLATE+22, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+23, @PTEMPLATE+23, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+24, @PTEMPLATE+24, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+25, @PTEMPLATE+25, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+26, @PTEMPLATE+26, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+27, @PTEMPLATE+27, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+28, @PTEMPLATE+28, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+29, @PTEMPLATE+29, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+30, @PTEMPLATE+30, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+31, @PTEMPLATE+31, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+32, @PTEMPLATE+32, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+33, @PTEMPLATE+1, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+34, @PTEMPLATE+2, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+35, @PTEMPLATE+3, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+36, @PTEMPLATE+4, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+37, @PTEMPLATE+5, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+38, @PTEMPLATE+6, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+39, @PTEMPLATE+7, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+40, @PTEMPLATE+8, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+41, @PTEMPLATE+9, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+42, @PTEMPLATE+10, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+43, @PTEMPLATE+11, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+44, @PTEMPLATE+12, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+45, @PTEMPLATE+13, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+46, @PTEMPLATE+14, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+47, @PTEMPLATE+15, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+48, @PTEMPLATE+16, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+49, @PTEMPLATE+17, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+50, @PTEMPLATE+18, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+51, @PTEMPLATE+19, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+52, @PTEMPLATE+20, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+53, @PTEMPLATE+21, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+54, @PTEMPLATE+22, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+55, @PTEMPLATE+23, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+56, @PTEMPLATE+24, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+57, @PTEMPLATE+25, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+58, @PTEMPLATE+26, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+59, @PTEMPLATE+27, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+60, @PTEMPLATE+28, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+61, @PTEMPLATE+29, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+62, @PTEMPLATE+30, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+63, @PTEMPLATE+31, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10), +(@OGUID+64, @PTEMPLATE+32, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+33, 14, 'Wetlands - Greater Sagefish School / Floating Wreckage (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+2, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+3, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+4, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+5, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+6, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+7, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+8, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+9, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+10, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+11, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+12, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+13, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+14, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+15, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+16, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+17, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+18, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+19, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+20, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+21, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+22, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+23, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+24, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+25, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+26, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+27, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+28, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+29, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+30, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+31, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0), +(@PTEMPLATE+32, @PTEMPLATE+33, 0, 'Greater Sagefish School / Floating Wreckage - Stranglethorn', 0); + +UPDATE `pool_gameobject` SET `chance` = 60 WHERE `description` = "Greater Sagefish School / Floating Wreckage - Stranglethorn" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180684); +UPDATE `pool_gameobject` SET `chance` = 40 WHERE `description` = "Greater Sagefish School / Floating Wreckage - Stranglethorn" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180685); + +-- School of Tastyfish +UPDATE `pool_template` SET `description`='School of Tastyfish in Strangelthorn' WHERE `entry`=4000; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+65, 180248, 0, -12366.6, 304.226, -0.764385, 5.41052, 0, 0, -0.422618, 0.906308, 180, 180, 1, 100, 5, 10), +(@OGUID+66, 180248, 0, -12333.7, 299.923, -1.18764, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 1, 100, 5, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `flags`, `patch_min`, `patch_max`) VALUES +(@OGUID+65, 4000, 0, 'School of Tastyfish', 0, 5, 10), +(@OGUID+66, 4000, 0, 'School of Tastyfish', 0, 5, 10); + +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+65, 15), +(@OGUID+66, 15); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 98082debb751e6cf19b1c62f07c2b905307bb861 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Wed, 28 Jun 2023 15:58:57 +0100 Subject: [PATCH 013/426] Add Missing Fish Pools - Alterac Mountains (#1977) --- sql/migrations/20230625170942_world.sql | 176 ++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 sql/migrations/20230625170942_world.sql diff --git a/sql/migrations/20230625170942_world.sql b/sql/migrations/20230625170942_world.sql new file mode 100644 index 00000000000..231bcc1d0de --- /dev/null +++ b/sql/migrations/20230625170942_world.sql @@ -0,0 +1,176 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230625170942'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230625170942'); +-- Add your query below. + + +SET @OGUID = 27473; +SET @PTEMPLATE = 3691; + +-- Alterac Mountains +DELETE FROM `gameobject` WHERE `guid` IN (35466, 33300, 33284, 33212, 33211, 33210, 33209, 32191, 47425, 47426, 47427, 47431, 47432, 47461, 47462, 50342, 50343, 50345); +DELETE FROM `pool_gameobject` WHERE `guid` IN (35466, 33300, 33284, 33212, 33211, 33210, 33209, 32191, 47425, 47426, 47427, 47431, 47432, 47461, 47462, 50342, 50343, 50345); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (35466, 33300, 33284, 33212, 33211, 33210, 33209, 32191, 47425, 47426, 47427, 47431, 47432, 47461, 47462, 50342, 50343, 50345)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180684, 0, 486.771, 409.1, 32.934, -0.575959, 0, 0, 0.284015, -0.95882, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180684, 0, 515.198, 365.689, 32.934, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180684, 0, 525.774, 296.498, 32.934, 1.79769, 0, 0, 0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180684, 0, 577.045, 227.188, 32.934, -2.74017, 0, 0, 0.979925, -0.199368, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180684, 0, 667.415, 130.111, 32.934, 2.49582, 0, 0, 0.948324, 0.317305, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180684, 0, 744.693, 8.48069, 32.934, -0.436333, 0, 0, 0.21644, -0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180684, 0, 794.327, -35.3443, 32.4959, -1.46608, 0, 0, 0.669131, -0.743145, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180684, 0, 843.119, -66.724, 32.9309, 1.48353, 0, 0, 0.67559, 0.737277, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180684, 0, 903.772, -82.2748, 32.9309, -2.51327, 0, 0, 0.951057, -0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180684, 0, 994.35, -169.237, 32.9309, -2.94961, 0, 0, 0.995396, -0.095846, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180684, 0, 1055.86, -208.246, 32.9309, 1.85005, 0, 0, 0.798636, 0.601815, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180684, 0, 1144.03, -244.238, 32.9309, -2.93215, 0, 0, 0.994522, -0.104529, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180684, 0, 1188.74, -247.037, 32.9309, -3.12414, 0, 0, 0.999962, -0.008727, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180684, 0, 1210.71, -235.344, 32.9309, -2.94961, 0, 0, 0.995396, -0.095846, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180684, 0, 1245.56, -204.805, 32.2924, 0.733038, 0, 0, 0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+16, 180684, 0, 534.866, 264.069, 32.934, 1.71042, 0, 0, 0.754709, 0.656059, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+17, 180684, 0, 903.546, -85.4035, 32.9309, 3.76991, 0, 0, -0.951056, 0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+18, 180684, 0, 916.189, -95.1171, 32.1471, 4.72984, 0, 0, -0.700909, 0.713251, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+19, 180684, 0, 943.365, -117.651, 32.4114, 2.96704, 0, 0, 0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+20, 180684, 0, 1308.22, -158.535, 32.9309, 0.872664, 0, 0, 0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+21, 180684, 0, 1319.81, -142.05, 32.9309, 3.75246, 0, 0, -0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+22, 180684, 0, 472.258, 465.116, 32.934, 0.488691, 0, 0, 0.241921, 0.970296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+23, 180685, 0, 486.771, 409.1, 32.934, -0.575959, 0, 0, 0.284015, -0.95882, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+24, 180685, 0, 515.198, 365.689, 32.934, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+25, 180685, 0, 525.774, 296.498, 32.934, 1.79769, 0, 0, 0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+26, 180685, 0, 577.045, 227.188, 32.934, -2.74017, 0, 0, 0.979925, -0.199368, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+27, 180685, 0, 667.415, 130.111, 32.934, 2.49582, 0, 0, 0.948324, 0.317305, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+28, 180685, 0, 744.693, 8.48069, 32.934, -0.436333, 0, 0, 0.21644, -0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+29, 180685, 0, 794.327, -35.3443, 32.4959, -1.46608, 0, 0, 0.669131, -0.743145, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+30, 180685, 0, 843.119, -66.724, 32.9309, 1.48353, 0, 0, 0.67559, 0.737277, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+31, 180685, 0, 903.772, -82.2748, 32.9309, -2.51327, 0, 0, 0.951057, -0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+32, 180685, 0, 994.35, -169.237, 32.9309, -2.94961, 0, 0, 0.995396, -0.095846, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+33, 180685, 0, 1055.86, -208.246, 32.9309, 1.85005, 0, 0, 0.798636, 0.601815, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+34, 180685, 0, 1144.03, -244.238, 32.9309, -2.93215, 0, 0, 0.994522, -0.104529, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+35, 180685, 0, 1188.74, -247.037, 32.9309, -3.12414, 0, 0, 0.999962, -0.008727, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+36, 180685, 0, 1210.71, -235.344, 32.9309, -2.94961, 0, 0, 0.995396, -0.095846, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+37, 180685, 0, 1245.56, -204.805, 32.2924, 0.733038, 0, 0, 0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+38, 180685, 0, 534.866, 264.069, 32.934, 1.71042, 0, 0, 0.754709, 0.656059, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+39, 180685, 0, 903.546, -85.4035, 32.9309, 3.76991, 0, 0, -0.951056, 0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+40, 180685, 0, 916.189, -95.1171, 32.1471, 4.72984, 0, 0, -0.700909, 0.713251, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+41, 180685, 0, 943.365, -117.651, 32.4114, 2.96704, 0, 0, 0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+42, 180685, 0, 1308.22, -158.535, 32.9309, 0.872664, 0, 0, 0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+43, 180685, 0, 1319.81, -142.05, 32.9309, 3.75246, 0, 0, -0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+44, 180685, 0, 472.258, 465.116, 32.934, 0.488691, 0, 0, 0.241921, 0.970296, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+2, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+3, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+4, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+5, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+6, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+7, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+8, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+9, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+10, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+11, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+12, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+13, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+14, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+15, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+16, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+17, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+18, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+19, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+20, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+21, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@PTEMPLATE+22, 1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+6, @PTEMPLATE+6, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+7, @PTEMPLATE+7, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+8, @PTEMPLATE+8, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+9, @PTEMPLATE+9, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+10, @PTEMPLATE+10, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+11, @PTEMPLATE+11, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+12, @PTEMPLATE+12, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+13, @PTEMPLATE+13, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+14, @PTEMPLATE+14, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+15, @PTEMPLATE+15, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+16, @PTEMPLATE+16, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+17, @PTEMPLATE+17, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+18, @PTEMPLATE+18, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+19, @PTEMPLATE+19, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+20, @PTEMPLATE+20, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+21, @PTEMPLATE+21, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+22, @PTEMPLATE+22, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+23, @PTEMPLATE+1, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+24, @PTEMPLATE+2, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+25, @PTEMPLATE+3, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+26, @PTEMPLATE+4, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+27, @PTEMPLATE+5, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+28, @PTEMPLATE+6, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+29, @PTEMPLATE+7, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+30, @PTEMPLATE+8, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+31, @PTEMPLATE+9, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+32, @PTEMPLATE+10, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+33, @PTEMPLATE+11, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+34, @PTEMPLATE+12, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+35, @PTEMPLATE+13, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+36, @PTEMPLATE+14, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+37, @PTEMPLATE+15, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+38, @PTEMPLATE+16, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+39, @PTEMPLATE+17, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+40, @PTEMPLATE+18, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+41, @PTEMPLATE+19, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+42, @PTEMPLATE+20, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+43, @PTEMPLATE+21, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10), +(@OGUID+44, @PTEMPLATE+22, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+23, 9, 'Alterac Mountains - Greater Sagefish School / Floating Wreckage (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+2, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+3, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+4, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+5, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+6, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+7, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+8, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+9, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+10, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+11, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+12, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+13, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+14, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+15, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+16, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+17, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+18, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+19, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+20, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+21, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0), +(@PTEMPLATE+22, @PTEMPLATE+23, 0, 'Greater Sagefish School / Floating Wreckage - Alterac Mountains', 0); + +UPDATE `pool_gameobject` SET `chance` = 80 WHERE `description` = "Greater Sagefish School / Floating Wreckage - Alterac Mountains" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180684); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Greater Sagefish School / Floating Wreckage - Alterac Mountains" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180685); + +DELETE FROM `gameobject` WHERE `guid` IN (27504, 27482); +DELETE FROM `pool_gameobject` WHERE `guid` IN (27504, 27482); +DELETE FROM `pool_template` WHERE `entry` = 3700; +DELETE FROM `pool_pool` WHERE `pool_id` = 3700; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 7de55b2f6cc8cb0beab162801a12e9eba934e050 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Wed, 28 Jun 2023 15:59:47 +0100 Subject: [PATCH 014/426] Add Missing Fish Pools - Loch Modan (#1978) --- sql/migrations/20230625171130_world.sql | 207 ++++++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 sql/migrations/20230625171130_world.sql diff --git a/sql/migrations/20230625171130_world.sql b/sql/migrations/20230625171130_world.sql new file mode 100644 index 00000000000..995675b051b --- /dev/null +++ b/sql/migrations/20230625171130_world.sql @@ -0,0 +1,207 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230625171130'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230625171130'); +-- Add your query below. + + +SET @OGUID = 29896; +SET @PTEMPLATE = 3310; + +-- Loch Modan +DELETE FROM `gameobject` WHERE `guid` IN (1465, 1466, 1477, 1489, 1492, 1526, 1604, 1605, 1611, 1617, 1618, 1619, 1624, 1635, 1770, 1771, 1773, 1784, 1791, 1805, 1839, 1851, 1858, 1895, 1912, 1929, 2001, 2026, 2031, 2045, 2051, 2208, 4561, 4562, 4583, 12770, 12773, 12774, 12775, 12778, 12780, 12782, 47351, 47352, 47353, 47354, 47355, 47356, 47358, 47359, 47360, 47361, 47363, 50322); +DELETE FROM `pool_gameobject` WHERE `guid` IN (1465, 1466, 1477, 1489, 1492, 1526, 1604, 1605, 1611, 1617, 1618, 1619, 1624, 1635, 1770, 1771, 1773, 1784, 1791, 1805, 1839, 1851, 1858, 1895, 1912, 1929, 2001, 2026, 2031, 2045, 2051, 2208, 4561, 4562, 4583, 12770, 12773, 12774, 12775, 12778, 12780, 12782, 47351, 47352, 47353, 47354, 47355, 47356, 47358, 47359, 47360, 47361, 47363, 50322); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (1465, 1466, 1477, 1489, 1492, 1526, 1604, 1605, 1611, 1617, 1618, 1619, 1624, 1635, 1770, 1771, 1773, 1784, 1791, 1805, 1839, 1851, 1858, 1895, 1912, 1929, 2001, 2026, 2031, 2045, 2051, 2208, 4561, 4562, 4583, 12770, 12773, 12774, 12775, 12778, 12780, 12782, 47351, 47352, 47353, 47354, 47355, 47356, 47358, 47359, 47360, 47361, 47363, 50322)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180655, 0, -5730.29, -3414.34, 297.605, -2.80998, 0, 0, 0.986286, -0.165048, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180655, 0, -5642.59, -3291.67, 297.605, 2.14675, 0, 0, 0.878817, 0.477159, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180655, 0, -5347.89, -3706.57, 297.605, -1.8326, 0, 0, 0.793353, -0.608761, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180655, 0, -5291.58, -3505.29, 297.605, 2.37365, 0, 0, 0.927184, 0.374607, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180655, 0, -5260.79, -3631.81, 297.605, 1.64061, 0, 0, 0.731354, 0.681998, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180655, 0, -5250.53, -3448.45, 297.605, -0.436333, 0, 0, 0.21644, -0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180655, 0, -5232.57, -3133.11, 297.605, -2.00713, 0, 0, 0.843391, -0.5373, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180655, 0, -5202.45, -3145.92, 297.605, 2.25148, 0, 0, 0.902585, 0.430511, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180655, 0, -5167.09, -3142.34, 297.605, -0.034907, 0, 0, 0.017452, -0.999848, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180655, 0, -5141.95, -3445.86, 297.025, 0.872665, 0, 0, 0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180655, 0, -5127.44, -3148.62, 297.605, -2.98451, 0, 0, 0.996917, -0.078459, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180655, 0, -5120.34, -3561.44, 297.615, 2.25148, 0, 0, 0.902585, 0.430511, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180655, 0, -5032.86, -3580.12, 297.605, -1.93731, 0, 0, 0.824126, -0.566406, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180655, 0, -4982.37, -3543.38, 297.605, 1.50098, 0, 0, 0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180655, 0, -4912.3, -3581.94, 297.605, -0.663225, 0, 0, 0.325568, -0.945519, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+16, 180655, 0, -4845.88, -3409.7, 297.605, 2.07694, 0, 0, 0.861629, 0.507538, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+17, 180655, 0, -4773.38, -3163.92, 297.605, -2.18166, 0, 0, 0.887011, -0.461749, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+18, 180655, 0, -4746.4, -3163.21, 297.605, 2.86234, 0, 0, 0.990268, 0.139173, 3600, 3600, 100, 1, 0, 0, 7, 10), +(@OGUID+19, 180655, 0, -5702.91, -3473.16, 297.605, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+20, 180655, 0, -5623.21, -3554.64, 297.618, 0.523598, 0, 0, 0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+21, 180655, 0, -5541.79, -3464.88, 297.605, 2.79252, 0, 0, 0.984807, 0.173652, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+22, 180655, 0, -5531.11, -3633.95, 297.605, 6.07375, 0, 0, -0.104528, 0.994522, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+23, 180655, 0, -5480.5, -3691.84, 297.605, 4.76475, 0, 0, -0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+24, 180655, 0, -5404.51, -3717.46, 297.605, 2.51327, 0, 0, 0.951056, 0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+25, 180655, 0, -5255.98, -3540.55, 297.605, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+26, 180655, 0, -5176.12, -3600.61, 297.605, 2.11185, 0, 0, 0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+27, 180655, 0, -4923, -3274.12, 297.605, 6.16101, 0, 0, -0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+28, 180655, 0, -4779.28, -3489.41, 297.62, 6.21337, 0, 0, -0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+29, 180656, 0, -5730.29, -3414.34, 297.605, -2.80998, 0, 0, 0.986286, -0.165048, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+30, 180656, 0, -5642.59, -3291.67, 297.605, 2.14675, 0, 0, 0.878817, 0.477159, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+31, 180656, 0, -5347.89, -3706.57, 297.605, -1.8326, 0, 0, 0.793353, -0.608761, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+32, 180656, 0, -5291.58, -3505.29, 297.605, 2.37365, 0, 0, 0.927184, 0.374607, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+33, 180656, 0, -5260.79, -3631.81, 297.605, 1.64061, 0, 0, 0.731354, 0.681998, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+34, 180656, 0, -5250.53, -3448.45, 297.605, -0.436333, 0, 0, 0.21644, -0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+35, 180656, 0, -5232.57, -3133.11, 297.605, -2.00713, 0, 0, 0.843391, -0.5373, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+36, 180656, 0, -5202.45, -3145.92, 297.605, 2.25148, 0, 0, 0.902585, 0.430511, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+37, 180656, 0, -5167.09, -3142.34, 297.605, -0.034907, 0, 0, 0.017452, -0.999848, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+38, 180656, 0, -5141.95, -3445.86, 297.025, 0.872665, 0, 0, 0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+39, 180656, 0, -5127.44, -3148.62, 297.605, -2.98451, 0, 0, 0.996917, -0.078459, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+40, 180656, 0, -5120.34, -3561.44, 297.615, 2.25148, 0, 0, 0.902585, 0.430511, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+41, 180656, 0, -5032.86, -3580.12, 297.605, -1.93731, 0, 0, 0.824126, -0.566406, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+42, 180656, 0, -4982.37, -3543.38, 297.605, 1.50098, 0, 0, 0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+43, 180656, 0, -4912.3, -3581.94, 297.605, -0.663225, 0, 0, 0.325568, -0.945519, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+44, 180656, 0, -4845.88, -3409.7, 297.605, 2.07694, 0, 0, 0.861629, 0.507538, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+45, 180656, 0, -4773.38, -3163.92, 297.605, -2.18166, 0, 0, 0.887011, -0.461749, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+46, 180656, 0, -4746.4, -3163.21, 297.605, 2.86234, 0, 0, 0.990268, 0.139173, 3600, 3600, 100, 1, 0, 0, 7, 10), +(@OGUID+47, 180656, 0, -5702.91, -3473.16, 297.605, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+48, 180656, 0, -5623.21, -3554.64, 297.618, 0.523598, 0, 0, 0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+49, 180656, 0, -5541.79, -3464.88, 297.605, 2.79252, 0, 0, 0.984807, 0.173652, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+50, 180656, 0, -5531.11, -3633.95, 297.605, 6.07375, 0, 0, -0.104528, 0.994522, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+51, 180656, 0, -5480.5, -3691.84, 297.605, 4.76475, 0, 0, -0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+52, 180656, 0, -5404.51, -3717.46, 297.605, 2.51327, 0, 0, 0.951056, 0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+53, 180656, 0, -5255.98, -3540.55, 297.605, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+54, 180656, 0, -5176.12, -3600.61, 297.605, 2.11185, 0, 0, 0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+55, 180656, 0, -4923, -3274.12, 297.605, 6.16101, 0, 0, -0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+56, 180656, 0, -4779.28, -3489.41, 297.62, 6.21337, 0, 0, -0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+2, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+3, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+4, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+5, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+6, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+7, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+8, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+9, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+10, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+11, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+12, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+13, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+14, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+15, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+16, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+17, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+18, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+19, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+20, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+21, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+22, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+23, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+24, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+25, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+26, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+27, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@PTEMPLATE+28, 1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+6, @PTEMPLATE+6, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+7, @PTEMPLATE+7, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+8, @PTEMPLATE+8, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+9, @PTEMPLATE+9, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+10, @PTEMPLATE+10, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+11, @PTEMPLATE+11, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+12, @PTEMPLATE+12, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+13, @PTEMPLATE+13, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+14, @PTEMPLATE+14, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+15, @PTEMPLATE+15, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+16, @PTEMPLATE+16, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+17, @PTEMPLATE+17, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+18, @PTEMPLATE+18, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+19, @PTEMPLATE+19, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+20, @PTEMPLATE+20, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+21, @PTEMPLATE+21, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+22, @PTEMPLATE+22, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+23, @PTEMPLATE+23, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+24, @PTEMPLATE+24, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+25, @PTEMPLATE+25, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+26, @PTEMPLATE+26, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+27, @PTEMPLATE+27, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+28, @PTEMPLATE+28, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+29, @PTEMPLATE+1, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+30, @PTEMPLATE+2, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+31, @PTEMPLATE+3, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+32, @PTEMPLATE+4, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+33, @PTEMPLATE+5, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+34, @PTEMPLATE+6, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+35, @PTEMPLATE+7, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+36, @PTEMPLATE+8, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+37, @PTEMPLATE+9, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+38, @PTEMPLATE+10, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+39, @PTEMPLATE+11, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+40, @PTEMPLATE+12, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+41, @PTEMPLATE+13, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+42, @PTEMPLATE+14, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+43, @PTEMPLATE+15, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+44, @PTEMPLATE+16, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+45, @PTEMPLATE+17, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+46, @PTEMPLATE+18, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+47, @PTEMPLATE+19, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+48, @PTEMPLATE+20, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+49, @PTEMPLATE+21, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+50, @PTEMPLATE+22, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+51, @PTEMPLATE+23, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+52, @PTEMPLATE+24, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+53, @PTEMPLATE+25, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+54, @PTEMPLATE+26, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+55, @PTEMPLATE+27, 'Floating Debris / Sagefish School - Loch Modan', 7, 10), +(@OGUID+56, @PTEMPLATE+28, 'Floating Debris / Sagefish School - Loch Modan', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+29, 12, 'Loch Modan - Floating Debris / Sagefish School (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+2, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+3, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+4, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+5, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+6, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+7, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+8, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+9, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+10, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+11, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+12, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+13, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+14, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+15, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+16, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+17, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+18, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+19, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+20, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+21, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+22, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+23, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+24, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+25, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+26, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+27, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0), +(@PTEMPLATE+28, @PTEMPLATE+29, 0, 'Floating Debris / Sagefish School - Loch Modan', 0); + +UPDATE `pool_gameobject` SET `chance` = 30 WHERE `description` = "Floating Debris / Sagefish School - Loch Modan" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180655); +UPDATE `pool_gameobject` SET `chance` = 70 WHERE `description` = "Floating Debris / Sagefish School - Loch Modan" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180656); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From bd71829f6c5fcc8fc444ca92f12a318fb623f9a7 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Wed, 28 Jun 2023 16:01:59 +0100 Subject: [PATCH 015/426] Add Missing Fish Pools - Westfall (#1980) --- sql/migrations/20230625190524_world.sql | 179 ++++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 sql/migrations/20230625190524_world.sql diff --git a/sql/migrations/20230625190524_world.sql b/sql/migrations/20230625190524_world.sql new file mode 100644 index 00000000000..d7364a79fd1 --- /dev/null +++ b/sql/migrations/20230625190524_world.sql @@ -0,0 +1,179 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230625190524'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230625190524'); +-- Add your query below. + + +SET @OGUID = 24529; +SET @PTEMPLATE = 1971; + +-- Westfall +DELETE FROM `gameobject` WHERE `guid` IN (1637, 1639, 1645, 1646, 1650, 1655, 1656, 1691, 1699, 1729, 1732, 1734, 1735, 1736, 1744, 1762, 1768, 1769, 27589, 42693, 42694, 42695, 42696, 42697, 42698, 47247, 47283); +DELETE FROM `pool_gameobject` WHERE `guid` IN (1637, 1639, 1645, 1646, 1650, 1655, 1656, 1691, 1699, 1729, 1732, 1734, 1735, 1736, 1744, 1762, 1768, 1769, 27589, 42693, 42694, 42695, 42696, 42697, 42698, 47247, 47283); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (1637, 1639, 1645, 1646, 1650, 1655, 1656, 1691, 1699, 1729, 1732, 1734, 1735, 1736, 1744, 1762, 1768, 1769, 27589, 42693, 42694, 42695, 42696, 42697, 42698, 47247, 47283)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180582, 0, -11243.9, 2021.24, 0, 2.23402, 0, 0, 0.898794, 0.438371, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180582, 0, -10790.8, 2126.85, 0, 1.27409, 0, 0, 0.594823, 0.803857, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180582, 0, -10549.4, 2127.94, 0, 1.91986, 0, 0, 0.819152, 0.573576, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180582, 0, -10411.3, 2116.25, 0, 0.506145, 0, 0, 0.25038, 0.968148, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180582, 0, -10326.1, 2091.91, 0, 2.96706, 0, 0, 0.996195, 0.087156, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180582, 0, -9882.07, 1833.48, 0, 1.11701, 0, 0, 0.529919, 0.848048, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180582, 0, -9808.47, 1813.63, 0, 1.53589, 0, 0, 0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180582, 0, -9801.39, 1766.6, 0, -0.087267, 0, 0, 0.04362, -0.999048, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180582, 0, -9574.33, 1392.54, 0, -0.122173, 0, 0, 0.061049, -0.998135, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180582, 0, -11450, 1801.7, 0, 4.01426, 0, 0, -0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180582, 0, -11372.5, 1953.38, 0, 2.74016, 0, 0, 0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180582, 0, -11117, 2055.51, 0, 0.942477, 0, 0, 0.45399, 0.891007, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180582, 0, -11077.3, 2115.66, 0, 1.50098, 0, 0, 0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180582, 0, -10942.5, 2133.54, 0, 4.39823, 0, 0, -0.809016, 0.587786, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180582, 0, -10699.8, 2163.26, 0, 3.85718, 0, 0, -0.936671, 0.35021, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+16, 180582, 0, -10182.1, 2063.74, 0, 5.41052, 0, 0, -0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+17, 180582, 0, -10106.6, 2022.43, 0, 0.453785, 0, 0, 0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+18, 180582, 0, -10025.7, 1948.16, 0, 2.47837, 0, 0, 0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+19, 180582, 0, -9803.17, 1767.27, 0, 0.785397, 0, 0, 0.382683, 0.92388, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+20, 180582, 0, -9619.89, 1573.21, 0, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+21, 180582, 0, -9607.81, 1098.14, 0, 5.16618, 0, 0, -0.529919, 0.848048, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+22, 180582, 0, -9577.72, 1480.38, 0, 5.28835, 0, 0, -0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+23, 180655, 0, -11243.9, 2021.24, 0, 2.23402, 0, 0, 0.898794, 0.438371, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+24, 180655, 0, -10790.8, 2126.85, 0, 1.27409, 0, 0, 0.594823, 0.803857, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+25, 180655, 0, -10549.4, 2127.94, 0, 1.91986, 0, 0, 0.819152, 0.573576, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+26, 180655, 0, -10411.3, 2116.25, 0, 0.506145, 0, 0, 0.25038, 0.968148, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+27, 180655, 0, -10326.1, 2091.91, 0, 2.96706, 0, 0, 0.996195, 0.087156, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+28, 180655, 0, -9882.07, 1833.48, 0, 1.11701, 0, 0, 0.529919, 0.848048, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+29, 180655, 0, -9808.47, 1813.63, 0, 1.53589, 0, 0, 0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+30, 180655, 0, -9801.39, 1766.6, 0, -0.087267, 0, 0, 0.04362, -0.999048, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+31, 180655, 0, -9574.33, 1392.54, 0, -0.122173, 0, 0, 0.061049, -0.998135, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+32, 180655, 0, -11450, 1801.7, 0, 4.01426, 0, 0, -0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+33, 180655, 0, -11372.5, 1953.38, 0, 2.74016, 0, 0, 0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+34, 180655, 0, -11117, 2055.51, 0, 0.942477, 0, 0, 0.45399, 0.891007, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+35, 180655, 0, -11077.3, 2115.66, 0, 1.50098, 0, 0, 0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+36, 180655, 0, -10942.5, 2133.54, 0, 4.39823, 0, 0, -0.809016, 0.587786, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+37, 180655, 0, -10699.8, 2163.26, 0, 3.85718, 0, 0, -0.936671, 0.35021, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+38, 180655, 0, -10182.1, 2063.74, 0, 5.41052, 0, 0, -0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+39, 180655, 0, -10106.6, 2022.43, 0, 0.453785, 0, 0, 0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+40, 180655, 0, -10025.7, 1948.16, 0, 2.47837, 0, 0, 0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+41, 180655, 0, -9803.17, 1767.27, 0, 0.785397, 0, 0, 0.382683, 0.92388, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+42, 180655, 0, -9619.89, 1573.21, 0, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+43, 180655, 0, -9607.81, 1098.14, 0, 5.16618, 0, 0, -0.529919, 0.848048, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+44, 180655, 0, -9577.72, 1480.38, 0, 5.28835, 0, 0, -0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+2, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+3, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+4, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+5, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+6, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+7, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+8, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+9, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+10, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+11, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+12, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+13, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+14, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+15, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+16, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+17, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+18, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+19, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+20, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+21, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@PTEMPLATE+22, 1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+6, @PTEMPLATE+6, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+7, @PTEMPLATE+7, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+8, @PTEMPLATE+8, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+9, @PTEMPLATE+9, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+10, @PTEMPLATE+10, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+11, @PTEMPLATE+11, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+12, @PTEMPLATE+12, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+13, @PTEMPLATE+13, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+14, @PTEMPLATE+14, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+15, @PTEMPLATE+15, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+16, @PTEMPLATE+16, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+17, @PTEMPLATE+17, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+18, @PTEMPLATE+18, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+19, @PTEMPLATE+19, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+20, @PTEMPLATE+20, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+21, @PTEMPLATE+21, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+22, @PTEMPLATE+22, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+23, @PTEMPLATE+1, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+24, @PTEMPLATE+2, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+25, @PTEMPLATE+3, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+26, @PTEMPLATE+4, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+27, @PTEMPLATE+5, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+28, @PTEMPLATE+6, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+29, @PTEMPLATE+7, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+30, @PTEMPLATE+8, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+31, @PTEMPLATE+9, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+32, @PTEMPLATE+10, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+33, @PTEMPLATE+11, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+34, @PTEMPLATE+12, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+35, @PTEMPLATE+13, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+36, @PTEMPLATE+14, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+37, @PTEMPLATE+15, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+38, @PTEMPLATE+16, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+39, @PTEMPLATE+17, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+40, @PTEMPLATE+18, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+41, @PTEMPLATE+19, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+42, @PTEMPLATE+20, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+43, @PTEMPLATE+21, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10), +(@OGUID+44, @PTEMPLATE+22, 'Oily Blackmouth School / Floating Debris - Westfall', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+23, 11, 'Westfall - Oily Blackmouth School / Floating Debris (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+2, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+3, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+4, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+5, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+6, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+7, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+8, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+9, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+10, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+11, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+12, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+13, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+14, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+15, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+16, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+17, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+18, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+19, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+20, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+21, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0), +(@PTEMPLATE+22, @PTEMPLATE+23, 0, 'Oily Blackmouth School / Floating Debris - Westfall', 0); + +UPDATE `pool_gameobject` SET `chance` = 60 WHERE `description` = "Oily Blackmouth School / Floating Debris - Westfall" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180582); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Oily Blackmouth School / Floating Debris - Westfall" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180655); + +-- Correct position of Stone Bench in Stormwind City (position is off by 0.00396729 yards). +UPDATE `gameobject` SET `position_x`=-8923.21, `position_y`=634.853, `position_z`=99.5682, `orientation`=5.21854, `rotation0`=0, `rotation1`=0, `rotation2`=-0.507538, `rotation3`=0.861629 WHERE `guid`=26672; + +DELETE FROM `gameobject` WHERE `guid` IN (24537, 24559); +DELETE FROM `pool_gameobject` WHERE `guid` IN (24537, 24559); +DELETE FROM `pool_template` WHERE `entry` = 1979; +DELETE FROM `pool_pool` WHERE `pool_id` = 1979; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From a4e59abffeff812c6da5c1096b3a7bd4e639aea6 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Wed, 28 Jun 2023 16:02:50 +0100 Subject: [PATCH 016/426] Add Missing Fish Pools - Arathi (#1981) --- sql/migrations/20230626135523_world.sql | 80 +++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 sql/migrations/20230626135523_world.sql diff --git a/sql/migrations/20230626135523_world.sql b/sql/migrations/20230626135523_world.sql new file mode 100644 index 00000000000..91030194790 --- /dev/null +++ b/sql/migrations/20230626135523_world.sql @@ -0,0 +1,80 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230626135523'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230626135523'); +-- Add your query below. + + +SET @OGUID = 263; +SET @PTEMPLATE = 4702; + +-- Arathi Highlands 45 +DELETE FROM `gameobject` WHERE `guid` IN (16645, 16644); +DELETE FROM `pool_gameobject` WHERE `guid` IN (16645, 16644); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (16645, 16644)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180682, 0, -2183.26, -1867.59, 0, 0.069813, 0, 0, 0.034899, 0.999391, 3600, 3600, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180682, 0, -2066.96, -2050.27, 0, -1.90241, 0, 0, 0.814116, -0.580703, 3600, 3600, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180682, 0, -2285.67, -1896.8, 0, 6.26573, 0, 0, -0.00872612, 0.999962, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180682, 0, -2226.57, -1850.21, 0, 5.84685, 0, 0, -0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180682, 0, -2098.93, -1977.7, 0, 3.15906, 0, 0, -0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180683, 0, -2183.26, -1867.59, 0, 0.069813, 0, 0, 0.034899, 0.999391, 3600, 3600, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180683, 0, -2066.96, -2050.27, 0, -1.90241, 0, 0, 0.814116, -0.580703, 3600, 3600, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180683, 0, -2285.67, -1896.8, 0, 6.26573, 0, 0, -0.00872612, 0.999962, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180683, 0, -2226.57, -1850.21, 0, 5.84685, 0, 0, -0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180683, 0, -2098.93, -1977.7, 0, 3.15906, 0, 0, -0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180685, 0, -2183.26, -1867.59, 0, 0.069813, 0, 0, 0.034899, 0.999391, 3600, 3600, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180685, 0, -2066.96, -2050.27, 0, -1.90241, 0, 0, 0.814116, -0.580703, 3600, 3600, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180685, 0, -2285.67, -1896.8, 0, 6.26573, 0, 0, -0.00872612, 0.999962, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180685, 0, -2226.57, -1850.21, 0, 5.84685, 0, 0, -0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180685, 0, -2098.93, -1977.7, 0, 3.15906, 0, 0, -0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@PTEMPLATE+2, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@PTEMPLATE+3, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@PTEMPLATE+4, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@PTEMPLATE+5, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@OGUID+6, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@OGUID+7, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@OGUID+8, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@OGUID+9, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@OGUID+10, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@OGUID+11, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@OGUID+12, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@OGUID+13, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@OGUID+14, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10), +(@OGUID+15, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+6, 3, 'Arathi Highlands - Oily Blackmouth School / Firefin Snapper School / Floating Wreckage (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+6, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 0), +(@PTEMPLATE+2, @PTEMPLATE+6, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 0), +(@PTEMPLATE+3, @PTEMPLATE+6, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 0), +(@PTEMPLATE+4, @PTEMPLATE+6, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 0), +(@PTEMPLATE+5, @PTEMPLATE+6, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands', 0); + +UPDATE `pool_gameobject` SET `chance` = 60 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180682); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180683); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Arathi Highlands" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180685); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 8353ba5fe1c52d3ecda5aab26db0b9cabb130328 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Thu, 29 Jun 2023 16:03:22 +0100 Subject: [PATCH 017/426] Add Missing Fish Pools - Silverpine (#1982) --- sql/migrations/20230626135702_world.sql | 271 ++++++++++++++++++++++++ 1 file changed, 271 insertions(+) create mode 100644 sql/migrations/20230626135702_world.sql diff --git a/sql/migrations/20230626135702_world.sql b/sql/migrations/20230626135702_world.sql new file mode 100644 index 00000000000..728ab0e52c4 --- /dev/null +++ b/sql/migrations/20230626135702_world.sql @@ -0,0 +1,271 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230626135702'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230626135702'); +-- Add your query below. + + +SET @OGUID = 9608; +SET @PTEMPLATE = 2029; + +-- Silverpine Forest +DELETE FROM `gameobject` WHERE `guid` IN (479, 485, 624, 639, 726, 732, 733, 738, 751, 767, 776, 807, 840, 841, 846, 854, 861, 865, 872, 873, 874, 875, 894, 897, 35423, 35424, 35425, 35426, 35428, 35429, 35438, 35439, 35441, 35453, 35482, 35505); +DELETE FROM `pool_gameobject` WHERE `guid` IN (479, 485, 624, 639, 726, 732, 733, 738, 751, 767, 776, 807, 840, 841, 846, 854, 861, 865, 872, 873, 874, 875, 894, 897, 35423, 35424, 35425, 35426, 35428, 35429, 35438, 35439, 35441, 35453, 35482, 35505); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (479, 485, 624, 639, 726, 732, 733, 738, 751, 767, 776, 807, 840, 841, 846, 854, 861, 865, 872, 873, 874, 875, 894, 897, 35423, 35424, 35425, 35426, 35428, 35429, 35438, 35439, 35441, 35453, 35482, 35505)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180582, 0, -494.957, 1687.07, 0, 0.698131, 0, 0, 0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180582, 0, -459.576, 1677.06, 0, 4.38078, 0, 0, -0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180582, 0, -335.832, 1723.09, 0, 4.45059, 0, 0, -0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180582, 0, 699.816, 1845.44, -0.446223, 3.83973, 0, 0, -0.939692, 0.34202, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180582, 0, 736.54, 1845.57, 0, 4.29351, 0, 0, -0.83867, 0.54464, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180582, 0, 771.161, 1861.35, 0, 5.81195, 0, 0, -0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180582, 0, 817.288, 1870.43, 0, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180582, 0, 866.832, 1899.76, 0, 1.06465, 0, 0, 0.507538, 0.861629, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180582, 0, 902.456, 1920.94, 0, 4.76475, 0, 0, -0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180582, 0, 1021.5, 1954.79, 0, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180582, 0, 1105.35, 1980.23, 0, 2.37364, 0, 0, 0.927183, 0.374608, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180582, 0, 1200.86, 2081.54, 0, 0.453785, 0, 0, 0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180582, 0, 1219.64, 2090.3, 0, 5.48033, 0, 0, -0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180582, 0, 817.672, 1896.21, 0, 2.60054, 0, 0, 0.96363, 0.267241, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180582, 0, 1154.32, 2096.54, 0, 0.820303, 0, 0, 0.398748, 0.91706, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+16, 180582, 0, 719.737, 978.174, 32.9329, -0.802851, 0, 0, 0.390731, -0.920505, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+17, 180582, 0, 992.979, 1958.68, 0, -2.9147, 0, 0, 0.993572, -0.113203, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+18, 180655, 0, -494.957, 1687.07, 0, 0.698131, 0, 0, 0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+19, 180655, 0, -459.576, 1677.06, 0, 4.38078, 0, 0, -0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+20, 180655, 0, -335.832, 1723.09, 0, 4.45059, 0, 0, -0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+21, 180655, 0, 699.816, 1845.44, -0.446223, 3.83973, 0, 0, -0.939692, 0.34202, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+22, 180655, 0, 736.54, 1845.57, 0, 4.29351, 0, 0, -0.83867, 0.54464, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+23, 180655, 0, 771.161, 1861.35, 0, 5.81195, 0, 0, -0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+24, 180655, 0, 817.288, 1870.43, 0, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+25, 180655, 0, 866.832, 1899.76, 0, 1.06465, 0, 0, 0.507538, 0.861629, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+26, 180655, 0, 902.456, 1920.94, 0, 4.76475, 0, 0, -0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+27, 180655, 0, 1021.5, 1954.79, 0, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+28, 180655, 0, 1105.35, 1980.23, 0, 2.37364, 0, 0, 0.927183, 0.374608, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+29, 180655, 0, 1200.86, 2081.54, 0, 0.453785, 0, 0, 0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+30, 180655, 0, 1219.64, 2090.3, 0, 5.48033, 0, 0, -0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+31, 180655, 0, 817.672, 1896.21, 0, 2.60054, 0, 0, 0.96363, 0.267241, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+32, 180655, 0, 1154.32, 2096.54, 0, 0.820303, 0, 0, 0.398748, 0.91706, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+33, 180655, 0, 719.737, 978.174, 32.9329, -0.802851, 0, 0, 0.390731, -0.920505, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+34, 180655, 0, 992.979, 1958.68, 0, -2.9147, 0, 0, 0.993572, -0.113203, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@PTEMPLATE+2, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@PTEMPLATE+3, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@PTEMPLATE+4, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@PTEMPLATE+5, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@PTEMPLATE+6, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@PTEMPLATE+7, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@PTEMPLATE+8, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@PTEMPLATE+9, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@PTEMPLATE+10, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@PTEMPLATE+11, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@PTEMPLATE+12, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@PTEMPLATE+13, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@PTEMPLATE+14, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@PTEMPLATE+15, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@PTEMPLATE+16, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@PTEMPLATE+17, 1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+6, @PTEMPLATE+6, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+7, @PTEMPLATE+7, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+8, @PTEMPLATE+8, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+9, @PTEMPLATE+9, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+10, @PTEMPLATE+10, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+11, @PTEMPLATE+11, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+12, @PTEMPLATE+12, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+13, @PTEMPLATE+13, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+14, @PTEMPLATE+14, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+15, @PTEMPLATE+15, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+16, @PTEMPLATE+16, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+17, @PTEMPLATE+17, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+18, @PTEMPLATE+1, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+19, @PTEMPLATE+2, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+20, @PTEMPLATE+3, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+21, @PTEMPLATE+4, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+22, @PTEMPLATE+5, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+23, @PTEMPLATE+6, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+24, @PTEMPLATE+7, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+25, @PTEMPLATE+8, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+26, @PTEMPLATE+9, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+27, @PTEMPLATE+10, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+28, @PTEMPLATE+11, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+29, @PTEMPLATE+12, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+30, @PTEMPLATE+13, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+31, @PTEMPLATE+14, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+32, @PTEMPLATE+15, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+33, @PTEMPLATE+16, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10), +(@OGUID+34, @PTEMPLATE+17, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+18, 6, 'Silverpine Forest - Oily Blackmouth School / Floating Debris (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0), +(@PTEMPLATE+2, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0), +(@PTEMPLATE+3, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0), +(@PTEMPLATE+4, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0), +(@PTEMPLATE+5, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0), +(@PTEMPLATE+6, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0), +(@PTEMPLATE+7, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0), +(@PTEMPLATE+8, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0), +(@PTEMPLATE+9, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0), +(@PTEMPLATE+10, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0), +(@PTEMPLATE+11, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0), +(@PTEMPLATE+12, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0), +(@PTEMPLATE+13, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0), +(@PTEMPLATE+14, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0), +(@PTEMPLATE+15, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0), +(@PTEMPLATE+16, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0), +(@PTEMPLATE+17, @PTEMPLATE+18, 0, 'Oily Blackmouth School / Floating Debris - Silverpine Forest', 0); + +UPDATE `pool_gameobject` SET `chance` = 40 WHERE `description` = "Oily Blackmouth School / Floating Debris - Silverpine Forest" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180582); +UPDATE `pool_gameobject` SET `chance` = 60 WHERE `description` = "Oily Blackmouth School / Floating Debris - Silverpine Forest" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180655); + +SET @OGUID = 19203; +SET @PTEMPLATE = 2628; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180656, 0, 643.843, 916.963, 32.9329, 3.14159, 0, 0, -1, 0, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180656, 0, 664.48, 728.523, 32.9329, 6.00393, 0, 0, -0.139173, 0.990268, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180656, 0, 678.563, 944.605, 32.9329, 1.79769, 0, 0, 0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180656, 0, 697.501, 756.158, 32.9329, 6.00393, 0, 0, -0.139173, 0.990268, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180656, 0, 697.509, 974.869, 32.9329, 5.48033, 0, 0, -0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180656, 0, 710.623, 927.133, 32.9329, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180656, 0, 721.065, 774.639, 32.9329, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180656, 0, 731.759, 945.118, 32.9329, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180656, 0, 795.908, 1026.9, 32.9309, 6.17847, 0, 0, -0.0523357, 0.99863, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180656, 0, 933.454, 1070.39, 32.9309, 3.14159, 0, 0, -1, 0, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180656, 0, 1067.24, 1049.39, 32.9309, 2.91469, 0, 0, 0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180656, 0, 1137.81, 1063.2, 32.9309, 0.628317, 0, 0, 0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180656, 0, 1180.77, 906.178, 32.9309, 5.09636, 0, 0, -0.559193, 0.829038, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180656, 0, 1262.39, 850.592, 32.9309, 0.506145, 0, 0, 0.25038, 0.968148, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180656, 0, 1321.13, 757.507, 32.9309, 4.15388, 0, 0, -0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+16, 180656, 0, 1366.96, 644.577, 32.9309, 5.72468, 0, 0, -0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+17, 180656, 0, 1411.55, 481.094, 32.9309, 6.24828, 0, 0, -0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+18, 180656, 0, 604.853, 644.405, 32.9334, 6.03884, 0, 0, -0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+19, 180655, 0, 643.843, 916.963, 32.9329, 3.14159, 0, 0, -1, 0, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+20, 180655, 0, 664.48, 728.523, 32.9329, 6.00393, 0, 0, -0.139173, 0.990268, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+21, 180655, 0, 678.563, 944.605, 32.9329, 1.79769, 0, 0, 0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+22, 180655, 0, 697.501, 756.158, 32.9329, 6.00393, 0, 0, -0.139173, 0.990268, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+23, 180655, 0, 697.509, 974.869, 32.9329, 5.48033, 0, 0, -0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+24, 180655, 0, 710.623, 927.133, 32.9329, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+25, 180655, 0, 721.065, 774.639, 32.9329, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+26, 180655, 0, 731.759, 945.118, 32.9329, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+27, 180655, 0, 795.908, 1026.9, 32.9309, 6.17847, 0, 0, -0.0523357, 0.99863, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+28, 180655, 0, 933.454, 1070.39, 32.9309, 3.14159, 0, 0, -1, 0, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+29, 180655, 0, 1067.24, 1049.39, 32.9309, 2.91469, 0, 0, 0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+30, 180655, 0, 1137.81, 1063.2, 32.9309, 0.628317, 0, 0, 0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+31, 180655, 0, 1180.77, 906.178, 32.9309, 5.09636, 0, 0, -0.559193, 0.829038, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+32, 180655, 0, 1262.39, 850.592, 32.9309, 0.506145, 0, 0, 0.25038, 0.968148, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+33, 180655, 0, 1321.13, 757.507, 32.9309, 4.15388, 0, 0, -0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+34, 180655, 0, 1366.96, 644.577, 32.9309, 5.72468, 0, 0, -0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+35, 180655, 0, 1411.55, 481.094, 32.9309, 6.24828, 0, 0, -0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+36, 180655, 0, 604.853, 644.405, 32.9334, 6.03884, 0, 0, -0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+2, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+3, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+4, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+5, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+6, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+7, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+8, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+9, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+10, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+11, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+12, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+13, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+14, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+15, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+16, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+17, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@PTEMPLATE+18, 1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+6, @PTEMPLATE+6, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+7, @PTEMPLATE+7, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+8, @PTEMPLATE+8, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+9, @PTEMPLATE+9, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+10, @PTEMPLATE+10, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+11, @PTEMPLATE+11, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+12, @PTEMPLATE+12, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+13, @PTEMPLATE+13, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+14, @PTEMPLATE+14, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+15, @PTEMPLATE+15, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+16, @PTEMPLATE+16, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+17, @PTEMPLATE+17, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+18, @PTEMPLATE+18, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+19, @PTEMPLATE+1, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+20, @PTEMPLATE+2, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+21, @PTEMPLATE+3, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+22, @PTEMPLATE+4, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+23, @PTEMPLATE+5, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+24, @PTEMPLATE+6, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+25, @PTEMPLATE+7, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+26, @PTEMPLATE+8, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+27, @PTEMPLATE+9, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+28, @PTEMPLATE+10, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+29, @PTEMPLATE+11, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+30, @PTEMPLATE+12, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+31, @PTEMPLATE+13, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+32, @PTEMPLATE+14, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+33, @PTEMPLATE+15, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+34, @PTEMPLATE+16, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+35, @PTEMPLATE+17, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10), +(@OGUID+36, @PTEMPLATE+18, 'Floating Debris / Sagefish School - Silverpine Forest', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+19, 7, 'Silverpine Forest - Floating Debris / Sagefish School (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+2, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+3, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+4, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+5, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+6, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+7, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+8, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+9, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+10, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+11, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+12, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+13, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+14, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+15, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+16, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+17, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0), +(@PTEMPLATE+18, @PTEMPLATE+19, 0, 'Floating Debris / Sagefish School - Silverpine Forest', 0); + +UPDATE `gameobject` SET `id` = 180656 WHERE `guid` = 9624; +UPDATE `pool_template` SET `description`='Floating Debris / Sagefish School - Silverpine Forest' WHERE `entry`=2045; +UPDATE `pool_gameobject` SET `description`='Floating Debris / Sagefish School - Silverpine Forest' WHERE `guid`=9624; +UPDATE `pool_gameobject` SET `description`='Floating Debris / Sagefish School - Silverpine Forest' WHERE `guid`=9641; +UPDATE `pool_pool` SET `description`='Floating Debris / Sagefish School - Silverpine Forest' WHERE `pool_id`=2045; + +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Floating Debris / Sagefish School - Silverpine Forest" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180655); +UPDATE `pool_gameobject` SET `chance` = 80 WHERE `description` = "Floating Debris / Sagefish School - Silverpine Forest" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180656); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 446d595dd66da5ad5973c7c2bd126acc4420b5fd Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Thu, 29 Jun 2023 16:03:59 +0100 Subject: [PATCH 018/426] Add Missing Fish Pools - Darkshore (#1984) --- sql/migrations/20230626160803_world.sql | 319 ++++++++++++++++++++++++ 1 file changed, 319 insertions(+) create mode 100644 sql/migrations/20230626160803_world.sql diff --git a/sql/migrations/20230626160803_world.sql b/sql/migrations/20230626160803_world.sql new file mode 100644 index 00000000000..db11bfcbf70 --- /dev/null +++ b/sql/migrations/20230626160803_world.sql @@ -0,0 +1,319 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230626160803'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230626160803'); +-- Add your query below. + + +SET @OGUID = 33019; +SET @PTEMPLATE = 3339; + +-- Darkshore +DELETE FROM `gameobject` WHERE `guid` IN (916, 5121, 5123, 5178, 5179, 5181, 5182, 5183, 5190, 5192, 5322, 5328, 5340, 5435, 5439, 5441, 5442, 5465, 5476, 6808, 6843, 6844, 6856, 6864, 10951, 10963, 10966, 10967, 10969, 14085, 14086, 14087, 14088, 14089, 14096, 14097, 15110, 15111, 15199, 15200, 15203, 15204, 15420, 15476, 15497, 15505, 15633, 15634, 15763, 15764, 15771, 15775, 15776, 15777, 15779, 15783, 16548, 18141, 18142, 18145, 48525, 48539, 48541, 48556, 48638, 48646, 48647, 48648, 48650, 48658, 48663, 48667, 50269, 50270, 50271, 50272, 50273, 50274, 50275, 50280, 50281, 50286, 50287, 50288, 50289, 50290, 50291, 50292, 50294, 50295, 50299, 50304, 50306); +DELETE FROM `pool_gameobject` WHERE `guid` IN (916, 5121, 5123, 5178, 5179, 5181, 5182, 5183, 5190, 5192, 5322, 5328, 5340, 5435, 5439, 5441, 5442, 5465, 5476, 6808, 6843, 6844, 6856, 6864, 10951, 10963, 10966, 10967, 10969, 14085, 14086, 14087, 14088, 14089, 14096, 14097, 15110, 15111, 15199, 15200, 15203, 15204, 15420, 15476, 15497, 15505, 15633, 15634, 15763, 15764, 15771, 15775, 15776, 15777, 15779, 15783, 16548, 18141, 18142, 18145, 48525, 48539, 48541, 48556, 48638, 48646, 48647, 48648, 48650, 48658, 48663, 48667, 50269, 50270, 50271, 50272, 50273, 50274, 50275, 50280, 50281, 50286, 50287, 50288, 50289, 50290, 50291, 50292, 50294, 50295, 50299, 50304, 50306); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (916, 5121, 5123, 5178, 5179, 5181, 5182, 5183, 5190, 5192, 5322, 5328, 5340, 5435, 5439, 5441, 5442, 5465, 5476, 6808, 6843, 6844, 6856, 6864, 10951, 10963, 10966, 10967, 10969, 14085, 14086, 14087, 14088, 14089, 14096, 14097, 15110, 15111, 15199, 15200, 15203, 15204, 15420, 15476, 15497, 15505, 15633, 15634, 15763, 15764, 15771, 15775, 15776, 15777, 15779, 15783, 16548, 18141, 18142, 18145, 48525, 48539, 48541, 48556, 48638, 48646, 48647, 48648, 48650, 48658, 48663, 48667, 50269, 50270, 50271, 50272, 50273, 50274, 50275, 50280, 50281, 50286, 50287, 50288, 50289, 50290, 50291, 50292, 50294, 50295, 50299, 50304, 50306)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180582, 1, 4674.38, 843.767, 0, -2.09439, 0, 0, 0.866025, -0.5, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180582, 1, 4723.29, 727.582, 0, -0.506145, 0, 0, 0.25038, -0.968148, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180582, 1, 4737.25, 851.432, -0.790674, 2.56563, 0, 0, 0.95882, 0.284015, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180582, 1, 4754.92, 781.582, 0, 1.88496, 0, 0, 0.809017, 0.587785, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180582, 1, 4838.6, 703.922, 0, -1.97222, 0, 0, 0.833886, -0.551937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180582, 1, 4969.75, 598.72, 0, 0.017453, 0, 0, 0.008727, 0.999962, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180582, 1, 5098.13, 591.153, -0.757871, 1.74533, 0, 0, 0.766044, 0.642788, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180582, 1, 5205.42, 646.524, 0, 0.401426, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180582, 1, 5286.93, 587.093, 0, -1.51844, 0, 0, 0.688354, -0.725374, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180582, 1, 5391.52, 547.168, 0, 0.20944, 0, 0, 0.104528, 0.994522, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180582, 1, 5530.88, 568.461, 0, 1.20428, 0, 0, 0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180582, 1, 5632.19, 551.868, 0, 2.80998, 0, 0, 0.986286, 0.165048, 3600, 3600, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180582, 1, 5721.1, 592.505, 0, -3.05433, 0, 0, 0.999048, -0.043619, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180582, 1, 5837.96, 548.35, 0, -0.977384, 0, 0, 0.469472, -0.882948, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180582, 1, 5881.34, 595.47, 0, -2.51327, 0, 0, 0.951057, -0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+16, 180582, 1, 6083.96, 587.658, 0, 0.488692, 0, 0, 0.241922, 0.970296, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+17, 180582, 1, 6293.92, 590.357, 0, -0.418879, 0, 0, 0.207912, -0.978148, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+18, 180582, 1, 6431.71, 667.197, 0, 1.44862, 0, 0, 0.66262, 0.748956, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+19, 180582, 1, 6485.99, 679.739, 0, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+20, 180582, 1, 6486.94, 822.047, 0, 0.994838, 0, 0, 0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+21, 180582, 1, 6502.51, 881.164, 0, -0.034907, 0, 0, 0.017452, -0.999848, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+22, 180582, 1, 6511.13, 757.642, 0, -1.44862, 0, 0, 0.66262, -0.748956, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+23, 180582, 1, 6528.03, 813.211, 0, 1.95477, 0, 0, 0.829038, 0.559193, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+24, 180582, 1, 6648.43, 540.152, 0, 0.802851, 0, 0, 0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+25, 180582, 1, 6756.7, 515.737, -0.700236, 2.80998, 0, 0, 0.986286, 0.165048, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+26, 180582, 1, 6845.35, 479.494, 0, 1.71042, 0, 0, 0.75471, 0.656059, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+27, 180582, 1, 6965.09, 434.654, 0, -1.43117, 0, 0, 0.656059, -0.75471, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+28, 180582, 1, 6967.07, 182.5, -0.538619, 1.25664, 0, 0, 0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+29, 180582, 1, 6981.46, 323.755, 0, -0.872665, 0, 0, 0.422618, -0.906308, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+30, 180582, 1, 7304.01, 224.661, -0.667236, 1.32645, 0, 0, 0.615662, 0.788011, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+31, 180582, 1, 7448.34, -246.666, 0, 3.03687, 0, 0, 0.99863, 0.052336, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+32, 180582, 1, 5919.53, 551.414, 0, 6.12611, 0, 0, -0.0784588, 0.996917, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+33, 180582, 1, 5991.17, 550.198, -0.871065, 6.14356, 0, 0, -0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+34, 180582, 1, 6200.13, 598.76, 0, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+35, 180582, 1, 7039.38, 211.546, 0, 3.3685, 0, 0, -0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+36, 180582, 1, 7102.92, 193.859, -0.631198, 3.87463, 0, 0, -0.93358, 0.358368, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+37, 180582, 1, 7171.02, 214.456, 0, 3.82227, 0, 0, -0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+38, 180582, 1, 7230.74, 224.249, 0, 4.04917, 0, 0, -0.898793, 0.438373, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+39, 180582, 1, 7399.99, 198.394, 0, 1.48353, 0, 0, 0.67559, 0.737278, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+40, 180582, 1, 7432.24, 178.167, 0, 1.78023, 0, 0, 0.777145, 0.629321, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+41, 180582, 1, 7432.66, -10.8868, -0.53997, 0.0523589, 0, 0, 0.0261765, 0.999657, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+42, 180582, 1, 7433.85, -326.411, -0.82227, 0.925024, 0, 0, 0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+43, 180582, 1, 7434.31, -455.418, -0.653612, 3.78737, 0, 0, -0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+44, 180582, 1, 7454.41, 95.944, 0, 1.97222, 0, 0, 0.833885, 0.551938, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+45, 180582, 1, 7460.47, -178.365, 0, 0.558504, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+46, 180582, 1, 7460.98, -77.1211, 0, 2.89725, 0, 0, 0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+47, 180655, 1, 4674.38, 843.767, 0, -2.09439, 0, 0, 0.866025, -0.5, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+48, 180655, 1, 4723.29, 727.582, 0, -0.506145, 0, 0, 0.25038, -0.968148, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+49, 180655, 1, 4737.25, 851.432, -0.790674, 2.56563, 0, 0, 0.95882, 0.284015, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+50, 180655, 1, 4754.92, 781.582, 0, 1.88496, 0, 0, 0.809017, 0.587785, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+51, 180655, 1, 4838.6, 703.922, 0, -1.97222, 0, 0, 0.833886, -0.551937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+52, 180655, 1, 4969.75, 598.72, 0, 0.017453, 0, 0, 0.008727, 0.999962, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+53, 180655, 1, 5098.13, 591.153, -0.757871, 1.74533, 0, 0, 0.766044, 0.642788, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+54, 180655, 1, 5205.42, 646.524, 0, 0.401426, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+55, 180655, 1, 5286.93, 587.093, 0, -1.51844, 0, 0, 0.688354, -0.725374, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+56, 180655, 1, 5391.52, 547.168, 0, 0.20944, 0, 0, 0.104528, 0.994522, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+57, 180655, 1, 5530.88, 568.461, 0, 1.20428, 0, 0, 0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+58, 180655, 1, 5632.19, 551.868, 0, 2.80998, 0, 0, 0.986286, 0.165048, 3600, 3600, 100, 1, 0, 0, 7, 10), +(@OGUID+59, 180655, 1, 5721.1, 592.505, 0, -3.05433, 0, 0, 0.999048, -0.043619, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+60, 180655, 1, 5837.96, 548.35, 0, -0.977384, 0, 0, 0.469472, -0.882948, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+61, 180655, 1, 5881.34, 595.47, 0, -2.51327, 0, 0, 0.951057, -0.309017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+62, 180655, 1, 6083.96, 587.658, 0, 0.488692, 0, 0, 0.241922, 0.970296, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+63, 180655, 1, 6293.92, 590.357, 0, -0.418879, 0, 0, 0.207912, -0.978148, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+64, 180655, 1, 6431.71, 667.197, 0, 1.44862, 0, 0, 0.66262, 0.748956, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+65, 180655, 1, 6485.99, 679.739, 0, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+66, 180655, 1, 6486.94, 822.047, 0, 0.994838, 0, 0, 0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+67, 180655, 1, 6502.51, 881.164, 0, -0.034907, 0, 0, 0.017452, -0.999848, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+68, 180655, 1, 6511.13, 757.642, 0, -1.44862, 0, 0, 0.66262, -0.748956, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+69, 180655, 1, 6528.03, 813.211, 0, 1.95477, 0, 0, 0.829038, 0.559193, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+70, 180655, 1, 6648.43, 540.152, 0, 0.802851, 0, 0, 0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+71, 180655, 1, 6756.7, 515.737, -0.700236, 2.80998, 0, 0, 0.986286, 0.165048, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+72, 180655, 1, 6845.35, 479.494, 0, 1.71042, 0, 0, 0.75471, 0.656059, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+73, 180655, 1, 6965.09, 434.654, 0, -1.43117, 0, 0, 0.656059, -0.75471, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+74, 180655, 1, 6967.07, 182.5, -0.538619, 1.25664, 0, 0, 0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+75, 180655, 1, 6981.46, 323.755, 0, -0.872665, 0, 0, 0.422618, -0.906308, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+76, 180655, 1, 7304.01, 224.661, -0.667236, 1.32645, 0, 0, 0.615662, 0.788011, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+77, 180655, 1, 7448.34, -246.666, 0, 3.03687, 0, 0, 0.99863, 0.052336, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+78, 180655, 1, 5919.53, 551.414, 0, 6.12611, 0, 0, -0.0784588, 0.996917, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+79, 180655, 1, 5991.17, 550.198, -0.871065, 6.14356, 0, 0, -0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+80, 180655, 1, 6200.13, 598.76, 0, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+81, 180655, 1, 7039.38, 211.546, 0, 3.3685, 0, 0, -0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+82, 180655, 1, 7102.92, 193.859, -0.631198, 3.87463, 0, 0, -0.93358, 0.358368, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+83, 180655, 1, 7171.02, 214.456, 0, 3.82227, 0, 0, -0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+84, 180655, 1, 7230.74, 224.249, 0, 4.04917, 0, 0, -0.898793, 0.438373, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+85, 180655, 1, 7399.99, 198.394, 0, 1.48353, 0, 0, 0.67559, 0.737278, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+86, 180655, 1, 7432.24, 178.167, 0, 1.78023, 0, 0, 0.777145, 0.629321, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+87, 180655, 1, 7432.66, -10.8868, -0.53997, 0.0523589, 0, 0, 0.0261765, 0.999657, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+88, 180655, 1, 7433.85, -326.411, -0.82227, 0.925024, 0, 0, 0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+89, 180655, 1, 7434.31, -455.418, -0.653612, 3.78737, 0, 0, -0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+90, 180655, 1, 7454.41, 95.944, 0, 1.97222, 0, 0, 0.833885, 0.551938, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+91, 180655, 1, 7460.47, -178.365, 0, 0.558504, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+92, 180655, 1, 7460.98, -77.1211, 0, 2.89725, 0, 0, 0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+2, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+3, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+4, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+5, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+6, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+7, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+8, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+9, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+10, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+11, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+12, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+13, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+14, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+15, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+16, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+17, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+18, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+19, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+20, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+21, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+22, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+23, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+24, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+25, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+26, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+27, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+28, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+29, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+30, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+31, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+32, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+33, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+34, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+35, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+36, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+37, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+38, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+39, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+40, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+41, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+42, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+43, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+44, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+45, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@PTEMPLATE+46, 1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+6, @PTEMPLATE+6, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+7, @PTEMPLATE+7, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+8, @PTEMPLATE+8, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+9, @PTEMPLATE+9, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+10, @PTEMPLATE+10, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+11, @PTEMPLATE+11, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+12, @PTEMPLATE+12, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+13, @PTEMPLATE+13, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+14, @PTEMPLATE+14, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+15, @PTEMPLATE+15, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+16, @PTEMPLATE+16, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+17, @PTEMPLATE+17, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+18, @PTEMPLATE+18, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+19, @PTEMPLATE+19, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+20, @PTEMPLATE+20, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+21, @PTEMPLATE+21, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+22, @PTEMPLATE+22, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+23, @PTEMPLATE+23, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+24, @PTEMPLATE+24, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+25, @PTEMPLATE+25, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+26, @PTEMPLATE+26, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+27, @PTEMPLATE+27, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+28, @PTEMPLATE+28, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+29, @PTEMPLATE+29, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+30, @PTEMPLATE+30, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+31, @PTEMPLATE+31, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+32, @PTEMPLATE+32, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+33, @PTEMPLATE+33, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+34, @PTEMPLATE+34, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+35, @PTEMPLATE+35, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+36, @PTEMPLATE+36, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+37, @PTEMPLATE+37, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+38, @PTEMPLATE+38, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+39, @PTEMPLATE+39, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+40, @PTEMPLATE+40, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+41, @PTEMPLATE+41, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+42, @PTEMPLATE+42, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+43, @PTEMPLATE+43, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+44, @PTEMPLATE+44, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+45, @PTEMPLATE+45, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+46, @PTEMPLATE+46, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+47, @PTEMPLATE+1, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+48, @PTEMPLATE+2, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+49, @PTEMPLATE+3, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+50, @PTEMPLATE+4, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+51, @PTEMPLATE+5, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+52, @PTEMPLATE+6, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+53, @PTEMPLATE+7, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+54, @PTEMPLATE+8, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+55, @PTEMPLATE+9, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+56, @PTEMPLATE+10, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+57, @PTEMPLATE+11, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+58, @PTEMPLATE+12, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+59, @PTEMPLATE+13, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+60, @PTEMPLATE+14, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+61, @PTEMPLATE+15, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+62, @PTEMPLATE+16, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+63, @PTEMPLATE+17, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+64, @PTEMPLATE+18, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+65, @PTEMPLATE+19, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+66, @PTEMPLATE+20, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+67, @PTEMPLATE+21, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+68, @PTEMPLATE+22, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+69, @PTEMPLATE+23, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+70, @PTEMPLATE+24, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+71, @PTEMPLATE+25, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+72, @PTEMPLATE+26, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+73, @PTEMPLATE+27, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+74, @PTEMPLATE+28, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+75, @PTEMPLATE+29, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+76, @PTEMPLATE+30, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+77, @PTEMPLATE+31, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+78, @PTEMPLATE+32, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+79, @PTEMPLATE+33, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+80, @PTEMPLATE+34, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+81, @PTEMPLATE+35, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+82, @PTEMPLATE+36, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+83, @PTEMPLATE+37, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+84, @PTEMPLATE+38, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+85, @PTEMPLATE+39, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+86, @PTEMPLATE+40, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+87, @PTEMPLATE+41, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+88, @PTEMPLATE+42, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+89, @PTEMPLATE+43, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+90, @PTEMPLATE+44, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+91, @PTEMPLATE+45, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10), +(@OGUID+92, @PTEMPLATE+46, 'Oily Blackmouth School / Floating Debris - Darkshore', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+47, 21, 'Darkshore - Oily Blackmouth School / Floating Debris (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+2, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+3, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+4, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+5, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+6, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+7, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+8, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+9, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+10, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+11, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+12, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+13, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+14, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+15, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+16, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+17, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+18, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+19, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+20, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+21, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+22, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+23, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+24, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+25, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+26, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+27, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+28, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+29, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+30, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+31, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+32, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+33, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+34, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+35, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+36, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+37, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+38, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+39, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+40, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+41, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+42, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+43, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+44, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+45, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0), +(@PTEMPLATE+46, @PTEMPLATE+47, 0, 'Oily Blackmouth School / Floating Debris - Darkshore', 0); + +UPDATE `pool_gameobject` SET `chance` = 80 WHERE `description` = "Oily Blackmouth School / Floating Debris - Darkshore" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180582); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Oily Blackmouth School / Floating Debris - Darkshore" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180655); + + +-- Correct position of Oily Blackmouth School in Darkshore (position is off by 1.12163 yards). +UPDATE `gameobject` SET `position_x`=4838.6, `position_y`=703.922, `position_z`=-1.12163, `orientation`=4.31097, `rotation0`=0, `rotation1`=0, `rotation2`=-0.833885, `rotation3`=0.551938 WHERE `guid` IN (33024, 33070); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 20a2627416cf21a464264ea65012595a373f78a5 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Thu, 29 Jun 2023 16:04:37 +0100 Subject: [PATCH 019/426] Add Missing Fish Pools - Hillsbrad (#1985) --- sql/migrations/20230627054342_world.sql | 273 ++++++++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 sql/migrations/20230627054342_world.sql diff --git a/sql/migrations/20230627054342_world.sql b/sql/migrations/20230627054342_world.sql new file mode 100644 index 00000000000..a3eb62debc5 --- /dev/null +++ b/sql/migrations/20230627054342_world.sql @@ -0,0 +1,273 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230627054342'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230627054342'); +-- Add your query below. + + +SET @OGUID = 38736; +SET @PTEMPLATE = 3735; + +-- Hillsbrad Foothills +DELETE FROM `gameobject` WHERE `guid` IN (96, 502, 536, 543, 553, 554, 559, 581, 618, 622, 649, 676, 698, 706, 708, 713, 722, 724, 725, 20803, 20804, 20805, 20819, 20821, 20823, 20826, 20827, 20857, 20877, 20879, 20915, 21221, 21222, 21223, 21224, 21225, 21226, 21228, 21229, 21230, 21231, 21232, 21234, 21236, 21238, 21241, 21242, 21243, 21244, 21245, 21246, 21247, 21260, 21261, 21262, 21264, 21268, 21269, 29977, 47366, 47367, 47368, 47371, 47375, 47379, 47380, 47381, 47383, 47384, 47385, 47387, 47390, 47392, 47397, 47400, 47401, 47405, 47406, 47516, 47520, 47521, 47522, 47523, 47524, 47525, 50327, 50328, 50329); +DELETE FROM `pool_gameobject` WHERE `guid` IN (96, 502, 536, 543, 553, 554, 559, 581, 618, 622, 649, 676, 698, 706, 708, 713, 722, 724, 725, 20803, 20804, 20805, 20819, 20821, 20823, 20826, 20827, 20857, 20877, 20879, 20915, 21221, 21222, 21223, 21224, 21225, 21226, 21228, 21229, 21230, 21231, 21232, 21234, 21236, 21238, 21241, 21242, 21243, 21244, 21245, 21246, 21247, 21260, 21261, 21262, 21264, 21268, 21269, 29977, 47366, 47367, 47368, 47371, 47375, 47379, 47380, 47381, 47383, 47384, 47385, 47387, 47390, 47392, 47397, 47400, 47401, 47405, 47406, 47516, 47520, 47521, 47522, 47523, 47524, 47525, 50327, 50328, 50329); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (96, 502, 536, 543, 553, 554, 559, 581, 618, 622, 649, 676, 698, 706, 708, 713, 722, 724, 725, 20803, 20804, 20805, 20819, 20821, 20823, 20826, 20827, 20857, 20877, 20879, 20915, 21221, 21222, 21223, 21224, 21225, 21226, 21228, 21229, 21230, 21231, 21232, 21234, 21236, 21238, 21241, 21242, 21243, 21244, 21245, 21246, 21247, 21260, 21261, 21262, 21264, 21268, 21269, 29977, 47366, 47367, 47368, 47371, 47375, 47379, 47380, 47381, 47383, 47384, 47385, 47387, 47390, 47392, 47397, 47400, 47401, 47405, 47406, 47516, 47520, 47521, 47522, 47523, 47524, 47525, 50327, 50328, 50329)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180657, 0, -1474.17, -1098.55, 0, 2.93215, 0, 0, 0.994522, 0.104528, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180657, 0, -1428.6, -1035.49, 0, -1.09956, 0, 0, 0.522499, -0.85264, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180657, 0, -1376.06, -1012.95, 0, 0.122173, 0, 0, 0.061049, 0.998135, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180657, 0, -1304.26, -991.073, 0, 0.558505, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180657, 0, -1263.25, -908.322, 0, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180657, 0, -1199.8, -833.747, 0, 2.46091, 0, 0, 0.942641, 0.333807, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180657, 0, -1176.62, 161.262, 0, -2.09439, 0, 0, 0.866025, -0.5, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180657, 0, -1169.1, -796.219, 0, 4.71239, 0, 0, 0.707107, -0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180657, 0, -1108.14, -216.96, 0, 2.07694, 0, 0, 0.861629, 0.507538, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180657, 0, -1107.49, -147.94, 0, -2.75762, 0, 0, 0.981627, -0.190809, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180657, 0, -1102.51, -83.557, 0, 0.069813, 0, 0, 0.034899, 0.999391, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180657, 0, -1101.77, -285.447, 0, 0.959931, 0, 0, 0.461749, 0.887011, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180657, 0, -1093.24, -33.4709, 0, -0.139626, 0, 0, 0.069756, -0.997564, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180657, 0, -1088.09, -773.98, 0, 2.37365, 0, 0, 0.927184, 0.374607, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180657, 0, -1068.16, -336.681, 0, 1.90241, 0, 0, 0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+16, 180657, 0, -1056.71, 288.538, 0, -2.93215, 0, 0, 0.994522, -0.104529, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+17, 180657, 0, -1037.98, -736.12, 0, -1.65806, 0, 0, 0.737277, -0.67559, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+18, 180657, 0, -1032.62, -405.506, 0, -0.174533, 0, 0, 0.087156, -0.996195, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+19, 180657, 0, -991.793, -708.385, 0, -2.75762, 0, 0, 0.981627, -0.190809, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+20, 180657, 0, -985.492, 335.767, 0, -1.36136, 0, 0, 0.629321, -0.777146, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+21, 180657, 0, -948.823, -523.381, 0, -1.62316, 0, 0, 0.725374, -0.688354, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+22, 180657, 0, -933.148, -568.908, 0, -0.05236, 0, 0, 0.026177, -0.999657, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+23, 180657, 0, -931.71, -554.852, 0, 2.84489, 0, 0, 0.989016, 0.147809, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+24, 180657, 0, -896.287, -696.348, 0, -2.68781, 0, 0, 0.97437, -0.224951, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+25, 180662, 0, -1474.17, -1098.55, 0, 2.93215, 0, 0, 0.994522, 0.104528, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+26, 180662, 0, -1428.6, -1035.49, 0, -1.09956, 0, 0, 0.522499, -0.85264, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+27, 180662, 0, -1376.06, -1012.95, 0, 0.122173, 0, 0, 0.061049, 0.998135, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+28, 180662, 0, -1304.26, -991.073, 0, 0.558505, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+29, 180662, 0, -1263.25, -908.322, 0, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+30, 180662, 0, -1199.8, -833.747, 0, 2.46091, 0, 0, 0.942641, 0.333807, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+31, 180662, 0, -1176.62, 161.262, 0, -2.09439, 0, 0, 0.866025, -0.5, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+32, 180662, 0, -1169.1, -796.219, 0, 4.71239, 0, 0, 0.707107, -0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+33, 180662, 0, -1108.14, -216.96, 0, 2.07694, 0, 0, 0.861629, 0.507538, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+34, 180662, 0, -1107.49, -147.94, 0, -2.75762, 0, 0, 0.981627, -0.190809, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+35, 180662, 0, -1102.51, -83.557, 0, 0.069813, 0, 0, 0.034899, 0.999391, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+36, 180662, 0, -1101.77, -285.447, 0, 0.959931, 0, 0, 0.461749, 0.887011, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+37, 180662, 0, -1093.24, -33.4709, 0, -0.139626, 0, 0, 0.069756, -0.997564, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+38, 180662, 0, -1088.09, -773.98, 0, 2.37365, 0, 0, 0.927184, 0.374607, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+39, 180662, 0, -1068.16, -336.681, 0, 1.90241, 0, 0, 0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+40, 180662, 0, -1056.71, 288.538, 0, -2.93215, 0, 0, 0.994522, -0.104529, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+41, 180662, 0, -1037.98, -736.12, 0, -1.65806, 0, 0, 0.737277, -0.67559, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+42, 180662, 0, -1032.62, -405.506, 0, -0.174533, 0, 0, 0.087156, -0.996195, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+43, 180662, 0, -991.793, -708.385, 0, -2.75762, 0, 0, 0.981627, -0.190809, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+44, 180662, 0, -985.492, 335.767, 0, -1.36136, 0, 0, 0.629321, -0.777146, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+45, 180662, 0, -948.823, -523.381, 0, -1.62316, 0, 0, 0.725374, -0.688354, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+46, 180662, 0, -933.148, -568.908, 0, -0.05236, 0, 0, 0.026177, -0.999657, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+47, 180662, 0, -931.71, -554.852, 0, 2.84489, 0, 0, 0.989016, 0.147809, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+48, 180662, 0, -896.287, -696.348, 0, -2.68781, 0, 0, 0.97437, -0.224951, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+49, 180664, 0, -1474.17, -1098.55, 0, 2.93215, 0, 0, 0.994522, 0.104528, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+50, 180664, 0, -1428.6, -1035.49, 0, -1.09956, 0, 0, 0.522499, -0.85264, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+51, 180664, 0, -1376.06, -1012.95, 0, 0.122173, 0, 0, 0.061049, 0.998135, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+52, 180664, 0, -1304.26, -991.073, 0, 0.558505, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+53, 180664, 0, -1263.25, -908.322, 0, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+54, 180664, 0, -1199.8, -833.747, 0, 2.46091, 0, 0, 0.942641, 0.333807, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+55, 180664, 0, -1176.62, 161.262, 0, -2.09439, 0, 0, 0.866025, -0.5, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+56, 180664, 0, -1169.1, -796.219, 0, 4.71239, 0, 0, 0.707107, -0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+57, 180664, 0, -1108.14, -216.96, 0, 2.07694, 0, 0, 0.861629, 0.507538, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+58, 180664, 0, -1107.49, -147.94, 0, -2.75762, 0, 0, 0.981627, -0.190809, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+59, 180664, 0, -1102.51, -83.557, 0, 0.069813, 0, 0, 0.034899, 0.999391, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+60, 180664, 0, -1101.77, -285.447, 0, 0.959931, 0, 0, 0.461749, 0.887011, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+61, 180664, 0, -1093.24, -33.4709, 0, -0.139626, 0, 0, 0.069756, -0.997564, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+62, 180664, 0, -1088.09, -773.98, 0, 2.37365, 0, 0, 0.927184, 0.374607, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+63, 180664, 0, -1068.16, -336.681, 0, 1.90241, 0, 0, 0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+64, 180664, 0, -1056.71, 288.538, 0, -2.93215, 0, 0, 0.994522, -0.104529, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+65, 180664, 0, -1037.98, -736.12, 0, -1.65806, 0, 0, 0.737277, -0.67559, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+66, 180664, 0, -1032.62, -405.506, 0, -0.174533, 0, 0, 0.087156, -0.996195, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+67, 180664, 0, -991.793, -708.385, 0, -2.75762, 0, 0, 0.981627, -0.190809, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+68, 180664, 0, -985.492, 335.767, 0, -1.36136, 0, 0, 0.629321, -0.777146, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+69, 180664, 0, -948.823, -523.381, 0, -1.62316, 0, 0, 0.725374, -0.688354, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+70, 180664, 0, -933.148, -568.908, 0, -0.05236, 0, 0, 0.026177, -0.999657, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+71, 180664, 0, -931.71, -554.852, 0, 2.84489, 0, 0, 0.989016, 0.147809, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+72, 180664, 0, -896.287, -696.348, 0, -2.68781, 0, 0, 0.97437, -0.224951, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+2, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+3, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+4, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+5, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+6, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+7, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+8, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+9, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+10, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+11, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+12, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+13, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+14, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+15, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+16, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+17, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+18, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+19, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+20, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+21, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+22, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+23, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@PTEMPLATE+24, 1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+6, @PTEMPLATE+6, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+7, @PTEMPLATE+7, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+8, @PTEMPLATE+8, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+9, @PTEMPLATE+9, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+10, @PTEMPLATE+10, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+11, @PTEMPLATE+11, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+12, @PTEMPLATE+12, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+13, @PTEMPLATE+13, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+14, @PTEMPLATE+14, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+15, @PTEMPLATE+15, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+16, @PTEMPLATE+16, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+17, @PTEMPLATE+17, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+18, @PTEMPLATE+18, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+19, @PTEMPLATE+19, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+20, @PTEMPLATE+20, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+21, @PTEMPLATE+21, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+22, @PTEMPLATE+22, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+23, @PTEMPLATE+23, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+24, @PTEMPLATE+24, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+25, @PTEMPLATE+1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+26, @PTEMPLATE+2, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+27, @PTEMPLATE+3, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+28, @PTEMPLATE+4, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+29, @PTEMPLATE+5, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+30, @PTEMPLATE+6, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+31, @PTEMPLATE+7, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+32, @PTEMPLATE+8, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+33, @PTEMPLATE+9, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+34, @PTEMPLATE+10, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+35, @PTEMPLATE+11, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+36, @PTEMPLATE+12, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+37, @PTEMPLATE+13, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+38, @PTEMPLATE+14, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+39, @PTEMPLATE+15, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+40, @PTEMPLATE+16, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+41, @PTEMPLATE+17, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+42, @PTEMPLATE+18, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+43, @PTEMPLATE+19, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+44, @PTEMPLATE+20, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+45, @PTEMPLATE+21, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+46, @PTEMPLATE+22, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+47, @PTEMPLATE+23, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+48, @PTEMPLATE+24, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+49, @PTEMPLATE+1, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+50, @PTEMPLATE+2, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+51, @PTEMPLATE+3, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+52, @PTEMPLATE+4, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+53, @PTEMPLATE+5, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+54, @PTEMPLATE+6, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+55, @PTEMPLATE+7, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+56, @PTEMPLATE+8, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+57, @PTEMPLATE+9, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+58, @PTEMPLATE+10, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+59, @PTEMPLATE+11, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+60, @PTEMPLATE+12, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+61, @PTEMPLATE+13, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+62, @PTEMPLATE+14, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+63, @PTEMPLATE+15, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+64, @PTEMPLATE+16, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+65, @PTEMPLATE+17, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+66, @PTEMPLATE+18, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+67, @PTEMPLATE+19, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+68, @PTEMPLATE+20, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+69, @PTEMPLATE+21, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+70, @PTEMPLATE+22, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+71, @PTEMPLATE+23, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10), +(@OGUID+72, @PTEMPLATE+24, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+25, 10, 'Hillsbrad Foothills - Firefin Snapper School / Floating Wreckage / Oily Blackmouth School (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+2, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+3, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+4, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+5, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+6, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+7, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+8, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+9, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+10, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+11, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+12, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+13, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+14, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+15, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+16, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+17, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+18, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+19, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+20, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+21, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+22, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+23, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0), +(@PTEMPLATE+24, @PTEMPLATE+25, 0, 'Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills', 0); + +UPDATE `pool_gameobject` SET `chance` = 50 WHERE `description` = "Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180657); +UPDATE `pool_gameobject` SET `chance` = 10 WHERE `description` = "Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180662); +UPDATE `pool_gameobject` SET `chance` = 40 WHERE `description` = "Firefin Snapper School / Floating Wreckage / Oily Blackmouth School - Hillsbrad Foothills" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180664); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+73, 180663, 0, -806.863, -715.487, 5.63574, 2.58309, 0, 0, 0.961262, 0.275637, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+74, 180663, 0, -686.795, -735.617, 6.30554, -2.25148, 0, 0, 0.902585, -0.430511, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+75, 180663, 0, -619.02, -769.87, 6.30652, -3.00197, 0, 0, 0.997564, -0.069756, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+76, 180663, 0, -507.251, -929.455, 29.6017, -0.820305, 0, 0, 0.398749, -0.91706, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+77, 180663, 0, -468.827, -955.067, 29.6017, 2.37365, 0, 0, 0.927184, 0.374607, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+78, 180663, 0, -437.862, -1020.62, 33.553, 0.383972, 0, 0, 0.190809, 0.981627, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+79, 180663, 0, -355.982, -1094.87, 34.9602, 2.00713, 0, 0, 0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+80, 180663, 0, -328.036, -878.957, 54.3358, 1.78024, 0, 0, 0.777146, 0.62932, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+81, 180663, 0, -286.699, -906.524, 54.3358, 2.61799, 0, 0, 0.965926, 0.258819, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+82, 180663, 0, -281.086, -860.915, 54.3358, -1.3439, 0, 0, 0.622515, -0.782608, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+83, 180663, 0, -246.458, -870.301, 54.3358, -2.96706, 0, 0, 0.996195, -0.087156, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+84, 180663, 0, -232.452, -1103.82, 37.0876, -0.872665, 0, 0, 0.422618, -0.906308, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+85, 180663, 0, -161.079, -1124.2, 37.0966, 2.23402, 0, 0, 0.898794, 0.438371, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+86, 180663, 0, -35.5541, -1115.41, 37.0966, 2.58309, 0, 0, 0.961262, 0.275637, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+87, 180663, 0, 42.8876, -1124.48, 37.0966, 1.39626, 0, 0, 0.642788, 0.766044, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+88, 180663, 0, 116.688, -1161.05, 37.0966, -2.54818, 0, 0, 0.956305, -0.292372, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+89, 180663, 0, 185.368, -1213.63, 37.0966, 2.67035, 0, 0, 0.97237, 0.233445, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+26, 6, 'Sagefish School - Hillsbrad Foothills', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+73, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10), +(@OGUID+74, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10), +(@OGUID+75, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10), +(@OGUID+76, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10), +(@OGUID+77, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10), +(@OGUID+78, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10), +(@OGUID+79, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10), +(@OGUID+80, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10), +(@OGUID+81, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10), +(@OGUID+82, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10), +(@OGUID+83, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10), +(@OGUID+84, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10), +(@OGUID+85, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10), +(@OGUID+86, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10), +(@OGUID+87, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10), +(@OGUID+88, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10), +(@OGUID+89, @PTEMPLATE+26, 'Sagefish School - Hillsbrad Foothills', 7, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 62a0fc066beb6df56dcb40d33f684e8afb630e1b Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Thu, 29 Jun 2023 16:05:02 +0100 Subject: [PATCH 020/426] Add Missing Fish Pools - Ashenvale (#1986) --- sql/migrations/20230627054541_world.sql | 62 +++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 sql/migrations/20230627054541_world.sql diff --git a/sql/migrations/20230627054541_world.sql b/sql/migrations/20230627054541_world.sql new file mode 100644 index 00000000000..20792b2c7fa --- /dev/null +++ b/sql/migrations/20230627054541_world.sql @@ -0,0 +1,62 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230627054541'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230627054541'); +-- Add your query below. + + +SET @OGUID = 161; +SET @PTEMPLATE = 2434; + +-- Ashenvale + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180663, 1, 1884.02, -2826.22, 94.9605, 3.15906, 0, 0, -0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180663, 1, 1919.61, -1346.88, 89.6561, 4.24115, 0, 0, -0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180663, 1, 1934.6, -1037.14, 89.6561, 2.18166, 0, 0, 0.887011, 0.461749, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180663, 1, 1955.51, -1094.91, 89.6561, 1.91986, 0, 0, 0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180663, 1, 1966.27, -1948.3, 94.7596, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180663, 1, 2016.36, -2869.93, 101.329, 1.62316, 0, 0, 0.725374, 0.688355, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180663, 1, 2054.52, -1098.46, 89.6561, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE, 10, 'Sagefish School - Ashenvale', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(@OGUID+2, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(@OGUID+3, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(@OGUID+4, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(@OGUID+5, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(@OGUID+6, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(@OGUID+7, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(18162, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(18161, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(18158, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(48059, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(48060, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(48061, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(48062, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(48063, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(48064, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(48065, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(48066, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(48067, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(50282, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(50285, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(50293, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(50300, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(50330, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10), +(50331, @PTEMPLATE, 'Sagefish School - Ashenvale', 7, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 276b6840a57146ca41eebec9bde14f80a49b0169 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Thu, 29 Jun 2023 16:05:45 +0100 Subject: [PATCH 021/426] Add Missing Fish Pools - Feralas (#1987) --- sql/migrations/20230627054740_world.sql | 281 ++++++++++++++++++++++++ 1 file changed, 281 insertions(+) create mode 100644 sql/migrations/20230627054740_world.sql diff --git a/sql/migrations/20230627054740_world.sql b/sql/migrations/20230627054740_world.sql new file mode 100644 index 00000000000..9838fc2bcde --- /dev/null +++ b/sql/migrations/20230627054740_world.sql @@ -0,0 +1,281 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230627054740'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230627054740'); +-- Add your query below. + + +SET @OGUID = 40021; +SET @PTEMPLATE = 4304; + +-- Feralas +DELETE FROM `gameobject` WHERE `guid` IN (17356, 17357, 17891, 18062, 18063, 18064, 18065, 18066, 18071, 18082, 18083, 18105, 18107, 18109, 18111, 18117, 18118, 18121, 18123, 18125, 18227, 18279, 18282, 30712, 33285, 42097, 49900, 49901, 49902, 49903, 49904, 49905, 49906, 49907, 49908, 49909, 49910, 49911, 49912, 49913, 49914, 49915, 49916, 50178, 50179, 50180, 50181, 50182, 50183, 50184, 50259, 50260, 50261, 50263, 50264, 50265, 50301, 50302, 50308, 50309, 50310, 50311, 50312, 170098, 170099, 170100, 170102, 170104); +DELETE FROM `pool_gameobject` WHERE `guid` IN (17356, 17357, 17891, 18062, 18063, 18064, 18065, 18066, 18071, 18082, 18083, 18105, 18107, 18109, 18111, 18117, 18118, 18121, 18123, 18125, 18227, 18279, 18282, 30712, 33285, 42097, 49900, 49901, 49902, 49903, 49904, 49905, 49906, 49907, 49908, 49909, 49910, 49911, 49912, 49913, 49914, 49915, 49916, 50178, 50179, 50180, 50181, 50182, 50183, 50184, 50259, 50260, 50261, 50263, 50264, 50265, 50301, 50302, 50308, 50309, 50310, 50311, 50312, 170098, 170099, 170100, 170102, 170104); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (17356, 17357, 17891, 18062, 18063, 18064, 18065, 18066, 18071, 18082, 18083, 18105, 18107, 18109, 18111, 18117, 18118, 18121, 18123, 18125, 18227, 18279, 18282, 30712, 33285, 42097, 49900, 49901, 49902, 49903, 49904, 49905, 49906, 49907, 49908, 49909, 49910, 49911, 49912, 49913, 49914, 49915, 49916, 50178, 50179, 50180, 50181, 50182, 50183, 50184, 50259, 50260, 50261, 50263, 50264, 50265, 50301, 50302, 50308, 50309, 50310, 50311, 50312, 170098, 170099, 170100, 170102, 170104)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180712, 1, -4859.53, 2239.23, 0, 0.05236, 0, 0, 0.026177, 0.999657, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+2, 180712, 1, -4844.58, 2018.63, 0, -0.401426, 0, 0, 0.199368, -0.979925, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+3, 180712, 1, -4825.53, 2112.97, 0, -0.349066, 0, 0, 0.173648, -0.984808, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+4, 180712, 1, -4798.63, 2316.71, 0, 0.034907, 0, 0, 0.017452, 0.999848, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+5, 180712, 1, -4791.43, 1995.79, 0, 1.15192, 0, 0, 0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+6, 180712, 1, -4731.54, 2379.84, 0, 0.15708, 0, 0, 0.078459, 0.996917, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+7, 180712, 1, -4722.65, 2106.9, 0, -0.05236, 0, 0, 0.026177, -0.999657, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+8, 180712, 1, -4652.45, 2377.74, 0, 3.08923, 0, 0, 0.999657, 0.026177, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+9, 180712, 1, -4582.54, 2354.77, 0, 0.750492, 0, 0, 0.366501, 0.930418, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+10, 180712, 1, -4520.65, 2367.78, 0, -1.37881, 0, 0, 0.636078, -0.771625, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+11, 180712, 1, -4456.79, 2379.52, 0, 2.82743, 0, 0, 0.987688, 0.156434, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+12, 180712, 1, -4379.91, 2368.7, 0, -2.68781, 0, 0, 0.97437, -0.224951, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+13, 180712, 1, -4295.15, 2371.78, 0, -2.53073, 0, 0, 0.953717, -0.300706, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+14, 180712, 1, -4236.73, 2361.38, 0, 2.67035, 0, 0, 0.97237, 0.233445, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+15, 180712, 1, -4230.19, 2460.48, 0, -0.314159, 0, 0, 0.156434, -0.987688, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+16, 180712, 1, -4223.67, 2385.48, 0, -2.30383, 0, 0, 0.913545, -0.406737, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+17, 180712, 1, -4210.63, 2542.91, 0, -1.55334, 0, 0, 0.700909, -0.71325, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+18, 180712, 1, -4153.15, 2618.2, 0, 2.74017, 0, 0, 0.979925, 0.199368, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+19, 180712, 1, -4091.41, 2695.04, 0, 2.00713, 0, 0, 0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+20, 180712, 1, -4046.58, 2884.38, 0, -1.78024, 0, 0, 0.777146, -0.62932, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+21, 180712, 1, -4001.04, 3001.31, 0, -0.767945, 0, 0, 0.374607, -0.927184, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+22, 180712, 1, -3950.56, 3053.76, 0, -0.680679, 0, 0, 0.333807, -0.942641, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+23, 180712, 1, -3931.2, 2746.97, 0, -0.680679, 0, 0, 0.333807, -0.942641, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+24, 180712, 1, -3868.3, 3103.87, 0, -1.23918, 0, 0, 0.580703, -0.814116, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+25, 180750, 1, -4859.53, 2239.23, 0, 0.05236, 0, 0, 0.026177, 0.999657, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+26, 180750, 1, -4844.58, 2018.63, 0, -0.401426, 0, 0, 0.199368, -0.979925, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+27, 180750, 1, -4825.53, 2112.97, 0, -0.349066, 0, 0, 0.173648, -0.984808, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+28, 180750, 1, -4798.63, 2316.71, 0, 0.034907, 0, 0, 0.017452, 0.999848, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+29, 180750, 1, -4791.43, 1995.79, 0, 1.15192, 0, 0, 0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+30, 180750, 1, -4731.54, 2379.84, 0, 0.15708, 0, 0, 0.078459, 0.996917, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+31, 180750, 1, -4722.65, 2106.9, 0, -0.05236, 0, 0, 0.026177, -0.999657, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+32, 180750, 1, -4652.45, 2377.74, 0, 3.08923, 0, 0, 0.999657, 0.026177, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+33, 180750, 1, -4582.54, 2354.77, 0, 0.750492, 0, 0, 0.366501, 0.930418, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+34, 180750, 1, -4520.65, 2367.78, 0, -1.37881, 0, 0, 0.636078, -0.771625, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+35, 180750, 1, -4456.79, 2379.52, 0, 2.82743, 0, 0, 0.987688, 0.156434, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+36, 180750, 1, -4379.91, 2368.7, 0, -2.68781, 0, 0, 0.97437, -0.224951, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+37, 180750, 1, -4295.15, 2371.78, 0, -2.53073, 0, 0, 0.953717, -0.300706, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+38, 180750, 1, -4236.73, 2361.38, 0, 2.67035, 0, 0, 0.97237, 0.233445, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+39, 180750, 1, -4230.19, 2460.48, 0, -0.314159, 0, 0, 0.156434, -0.987688, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+40, 180750, 1, -4223.67, 2385.48, 0, -2.30383, 0, 0, 0.913545, -0.406737, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+41, 180750, 1, -4210.63, 2542.91, 0, -1.55334, 0, 0, 0.700909, -0.71325, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+42, 180750, 1, -4153.15, 2618.2, 0, 2.74017, 0, 0, 0.979925, 0.199368, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+43, 180750, 1, -4091.41, 2695.04, 0, 2.00713, 0, 0, 0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+44, 180750, 1, -4046.58, 2884.38, 0, -1.78024, 0, 0, 0.777146, -0.62932, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+45, 180750, 1, -4001.04, 3001.31, 0, -0.767945, 0, 0, 0.374607, -0.927184, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+46, 180750, 1, -3950.56, 3053.76, 0, -0.680679, 0, 0, 0.333807, -0.942641, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+47, 180750, 1, -3931.2, 2746.97, 0, -0.680679, 0, 0, 0.333807, -0.942641, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+48, 180750, 1, -3868.3, 3103.87, 0, -1.23918, 0, 0, 0.580703, -0.814116, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+49, 180751, 1, -4859.53, 2239.23, 0, 0.05236, 0, 0, 0.026177, 0.999657, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+50, 180751, 1, -4844.58, 2018.63, 0, -0.401426, 0, 0, 0.199368, -0.979925, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+51, 180751, 1, -4825.53, 2112.97, 0, -0.349066, 0, 0, 0.173648, -0.984808, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+52, 180751, 1, -4798.63, 2316.71, 0, 0.034907, 0, 0, 0.017452, 0.999848, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+53, 180751, 1, -4791.43, 1995.79, 0, 1.15192, 0, 0, 0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+54, 180751, 1, -4731.54, 2379.84, 0, 0.15708, 0, 0, 0.078459, 0.996917, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+55, 180751, 1, -4722.65, 2106.9, 0, -0.05236, 0, 0, 0.026177, -0.999657, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+56, 180751, 1, -4652.45, 2377.74, 0, 3.08923, 0, 0, 0.999657, 0.026177, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+57, 180751, 1, -4582.54, 2354.77, 0, 0.750492, 0, 0, 0.366501, 0.930418, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+58, 180751, 1, -4520.65, 2367.78, 0, -1.37881, 0, 0, 0.636078, -0.771625, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+59, 180751, 1, -4456.79, 2379.52, 0, 2.82743, 0, 0, 0.987688, 0.156434, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+60, 180751, 1, -4379.91, 2368.7, 0, -2.68781, 0, 0, 0.97437, -0.224951, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+61, 180751, 1, -4295.15, 2371.78, 0, -2.53073, 0, 0, 0.953717, -0.300706, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+62, 180751, 1, -4236.73, 2361.38, 0, 2.67035, 0, 0, 0.97237, 0.233445, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+63, 180751, 1, -4230.19, 2460.48, 0, -0.314159, 0, 0, 0.156434, -0.987688, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+64, 180751, 1, -4223.67, 2385.48, 0, -2.30383, 0, 0, 0.913545, -0.406737, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+65, 180751, 1, -4210.63, 2542.91, 0, -1.55334, 0, 0, 0.700909, -0.71325, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+66, 180751, 1, -4153.15, 2618.2, 0, 2.74017, 0, 0, 0.979925, 0.199368, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+67, 180751, 1, -4091.41, 2695.04, 0, 2.00713, 0, 0, 0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+68, 180751, 1, -4046.58, 2884.38, 0, -1.78024, 0, 0, 0.777146, -0.62932, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+69, 180751, 1, -4001.04, 3001.31, 0, -0.767945, 0, 0, 0.374607, -0.927184, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+70, 180751, 1, -3950.56, 3053.76, 0, -0.680679, 0, 0, 0.333807, -0.942641, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+71, 180751, 1, -3931.2, 2746.97, 0, -0.680679, 0, 0, 0.333807, -0.942641, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+72, 180751, 1, -3868.3, 3103.87, 0, -1.23918, 0, 0, 0.580703, -0.814116, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+73, 180752, 1, -4859.53, 2239.23, 0, 0.05236, 0, 0, 0.026177, 0.999657, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+74, 180752, 1, -4844.58, 2018.63, 0, -0.401426, 0, 0, 0.199368, -0.979925, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+75, 180752, 1, -4825.53, 2112.97, 0, -0.349066, 0, 0, 0.173648, -0.984808, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+76, 180752, 1, -4798.63, 2316.71, 0, 0.034907, 0, 0, 0.017452, 0.999848, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+77, 180752, 1, -4791.43, 1995.79, 0, 1.15192, 0, 0, 0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+78, 180752, 1, -4731.54, 2379.84, 0, 0.15708, 0, 0, 0.078459, 0.996917, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+79, 180752, 1, -4722.65, 2106.9, 0, -0.05236, 0, 0, 0.026177, -0.999657, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+80, 180752, 1, -4652.45, 2377.74, 0, 3.08923, 0, 0, 0.999657, 0.026177, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+81, 180752, 1, -4582.54, 2354.77, 0, 0.750492, 0, 0, 0.366501, 0.930418, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+82, 180752, 1, -4520.65, 2367.78, 0, -1.37881, 0, 0, 0.636078, -0.771625, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+83, 180752, 1, -4456.79, 2379.52, 0, 2.82743, 0, 0, 0.987688, 0.156434, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+84, 180752, 1, -4379.91, 2368.7, 0, -2.68781, 0, 0, 0.97437, -0.224951, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+85, 180752, 1, -4295.15, 2371.78, 0, -2.53073, 0, 0, 0.953717, -0.300706, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+86, 180752, 1, -4236.73, 2361.38, 0, 2.67035, 0, 0, 0.97237, 0.233445, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+87, 180752, 1, -4230.19, 2460.48, 0, -0.314159, 0, 0, 0.156434, -0.987688, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+88, 180752, 1, -4223.67, 2385.48, 0, -2.30383, 0, 0, 0.913545, -0.406737, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+89, 180752, 1, -4210.63, 2542.91, 0, -1.55334, 0, 0, 0.700909, -0.71325, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+90, 180752, 1, -4153.15, 2618.2, 0, 2.74017, 0, 0, 0.979925, 0.199368, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+91, 180752, 1, -4091.41, 2695.04, 0, 2.00713, 0, 0, 0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+92, 180752, 1, -4046.58, 2884.38, 0, -1.78024, 0, 0, 0.777146, -0.62932, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+93, 180752, 1, -4001.04, 3001.31, 0, -0.767945, 0, 0, 0.374607, -0.927184, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+94, 180752, 1, -3950.56, 3053.76, 0, -0.680679, 0, 0, 0.333807, -0.942641, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+95, 180752, 1, -3931.2, 2746.97, 0, -0.680679, 0, 0, 0.333807, -0.942641, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+96, 180752, 1, -3868.3, 3103.87, 0, -1.23918, 0, 0, 0.580703, -0.814116, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+2, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+3, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+4, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+5, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+6, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+7, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+8, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+9, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+10, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+11, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+12, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+13, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+14, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+15, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+16, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+17, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+18, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+19, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+20, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+21, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+22, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+23, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@PTEMPLATE+24, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+2, @PTEMPLATE+2, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+3, @PTEMPLATE+3, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+4, @PTEMPLATE+4, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+5, @PTEMPLATE+5, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+6, @PTEMPLATE+6, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+7, @PTEMPLATE+7, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+8, @PTEMPLATE+8, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+9, @PTEMPLATE+9, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+10, @PTEMPLATE+10, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+11, @PTEMPLATE+11, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+12, @PTEMPLATE+12, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+13, @PTEMPLATE+13, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+14, @PTEMPLATE+14, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+15, @PTEMPLATE+15, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+16, @PTEMPLATE+16, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+17, @PTEMPLATE+17, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+18, @PTEMPLATE+18, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+19, @PTEMPLATE+19, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+20, @PTEMPLATE+20, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+21, @PTEMPLATE+21, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+22, @PTEMPLATE+22, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+23, @PTEMPLATE+23, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+24, @PTEMPLATE+24, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 9, 10), +(@OGUID+25, @PTEMPLATE+1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+26, @PTEMPLATE+2, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+27, @PTEMPLATE+3, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+28, @PTEMPLATE+4, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+29, @PTEMPLATE+5, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+30, @PTEMPLATE+6, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+31, @PTEMPLATE+7, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+32, @PTEMPLATE+8, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+33, @PTEMPLATE+9, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+34, @PTEMPLATE+10, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+35, @PTEMPLATE+11, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+36, @PTEMPLATE+12, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+37, @PTEMPLATE+13, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+38, @PTEMPLATE+14, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+39, @PTEMPLATE+15, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+40, @PTEMPLATE+16, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+41, @PTEMPLATE+17, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+42, @PTEMPLATE+18, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+43, @PTEMPLATE+19, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+44, @PTEMPLATE+20, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+45, @PTEMPLATE+21, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+46, @PTEMPLATE+22, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+47, @PTEMPLATE+23, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+48, @PTEMPLATE+24, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+49, @PTEMPLATE+1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+50, @PTEMPLATE+2, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+51, @PTEMPLATE+3, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+52, @PTEMPLATE+4, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+53, @PTEMPLATE+5, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+54, @PTEMPLATE+6, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+55, @PTEMPLATE+7, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+56, @PTEMPLATE+8, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+57, @PTEMPLATE+9, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+58, @PTEMPLATE+10, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+59, @PTEMPLATE+11, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+60, @PTEMPLATE+12, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+61, @PTEMPLATE+13, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+62, @PTEMPLATE+14, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+63, @PTEMPLATE+15, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+64, @PTEMPLATE+16, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+65, @PTEMPLATE+17, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+66, @PTEMPLATE+18, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+67, @PTEMPLATE+19, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+68, @PTEMPLATE+20, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+69, @PTEMPLATE+21, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+70, @PTEMPLATE+22, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+71, @PTEMPLATE+23, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+72, @PTEMPLATE+24, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+73, @PTEMPLATE+1, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+74, @PTEMPLATE+2, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+75, @PTEMPLATE+3, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+76, @PTEMPLATE+4, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+77, @PTEMPLATE+5, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+78, @PTEMPLATE+6, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+79, @PTEMPLATE+7, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+80, @PTEMPLATE+8, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+81, @PTEMPLATE+9, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+82, @PTEMPLATE+10, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+83, @PTEMPLATE+11, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+84, @PTEMPLATE+12, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+85, @PTEMPLATE+13, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+86, @PTEMPLATE+14, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+87, @PTEMPLATE+15, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+88, @PTEMPLATE+16, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+89, @PTEMPLATE+17, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+90, @PTEMPLATE+18, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+91, @PTEMPLATE+19, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+92, @PTEMPLATE+20, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+93, @PTEMPLATE+21, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+94, @PTEMPLATE+22, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+95, @PTEMPLATE+23, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10), +(@OGUID+96, @PTEMPLATE+24, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+25, 11, 'Feralas - Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+2, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+3, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+4, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+5, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+6, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+7, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+8, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+9, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+10, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+11, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+12, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+13, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+14, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+15, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+16, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+17, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+18, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+19, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+20, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+21, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+22, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+23, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0), +(@PTEMPLATE+24, @PTEMPLATE+25, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas', 0); + +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180712); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180750); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180751); +UPDATE `pool_gameobject` SET `chance` = 40 WHERE `description` = "Stonescale Eel Swarm / Oily Blackmouth School / Firefin Snapper School - Feralas" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180752); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 1e66761aaac9f29ae38f871a6757b28c466d7c70 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Thu, 29 Jun 2023 16:06:20 +0100 Subject: [PATCH 022/426] Add Missing Fish Pools - Desolace (#1988) --- sql/migrations/20230627054925_world.sql | 208 ++++++++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 sql/migrations/20230627054925_world.sql diff --git a/sql/migrations/20230627054925_world.sql b/sql/migrations/20230627054925_world.sql new file mode 100644 index 00000000000..5bc936d7c6e --- /dev/null +++ b/sql/migrations/20230627054925_world.sql @@ -0,0 +1,208 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230627054925'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230627054925'); +-- Add your query below. + + +SET @OGUID = 20127; +SET @PTEMPLATE = 4100; + +-- Desolace +DELETE FROM `gameobject` WHERE `guid` IN (32565, 32564, 32563, 32562, 32561, 32560, 32556, 18200, 18206, 18202, 18211, 18225, 50296, 50297); +DELETE FROM `pool_gameobject` WHERE `guid` IN (32565, 32564, 32563, 32562, 32561, 32560, 32556, 18200, 18206, 18202, 18211, 18225, 50296, 50297); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (32565, 32564, 32563, 32562, 32561, 32560, 32556, 18200, 18206, 18202, 18211, 18225, 50296, 50297)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180682, 1, -2019.94, 3154.51, 0, -1.64061, 0, 0, 0.731354, -0.681998, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180682, 1, -1967.56, 3075.03, 0, 0.890118, 0, 0, 0.430511, 0.902585, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180682, 1, -1932.85, 3071.6, 0, -1.23918, 0, 0, 0.580703, -0.814116, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180682, 1, -1890.94, 3079.53, 0, 1.55334, 0, 0, 0.700909, 0.71325, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180682, 1, -1849.59, 3071.28, 0, -1.20428, 0, 0, 0.566406, -0.824126, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180682, 1, -1819.44, 3065.4, 0, -2.70526, 0, 0, 0.976296, -0.21644, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180682, 1, -1773.08, 3283.3, 0, 0.645772, 0, 0, 0.317305, 0.948324, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180682, 1, -1753.47, 3150.17, 0, 1.20428, 0, 0, 0.566406, 0.824126, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180682, 1, -1746.44, 3268.02, 0, -2.79253, 0, 0, 0.984808, -0.173648, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180682, 1, -1726.92, 3240.38, 0, 0.541052, 0, 0, 0.267238, 0.96363, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180682, 1, -270.212, 2531.49, 0, -3.00197, 0, 0, 0.997564, -0.069756, 3600, 3600, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180682, 1, -232.931, 2502.31, 0, -0.872665, 0, 0, 0.422618, -0.906308, 3600, 3600, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180682, 1, -206.448, 2473.09, 0, -1.20428, 0, 0, 0.566406, -0.824126, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180682, 1, -1984.93, 3133.09, 0, 6.00393, 0, 0, -0.139173, 0.990268, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180682, 1, -1789.15, 3247.44, 0, 4.04917, 0, 0, -0.898793, 0.438373, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+16, 180682, 1, -1754.46, 3176.15, 0, 5.39307, 0, 0, -0.430511, 0.902586, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+17, 180682, 1, -480.88, 2627.41, 0, 0.541051, 0, 0, 0.267238, 0.963631, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+18, 180682, 1, -452.101, 2626.5, 0, 0.436332, 0, 0, 0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+19, 180682, 1, -391.816, 2625.05, 0, 5.96903, 0, 0, -0.156434, 0.987688, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+20, 180682, 1, -340.662, 2612.61, 0, 2.91469, 0, 0, 0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+21, 180682, 1, -300.034, 2568.28, 0, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+22, 180683, 1, -2019.94, 3154.51, 0, -1.64061, 0, 0, 0.731354, -0.681998, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+23, 180683, 1, -1967.56, 3075.03, 0, 0.890118, 0, 0, 0.430511, 0.902585, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+24, 180683, 1, -1932.85, 3071.6, 0, -1.23918, 0, 0, 0.580703, -0.814116, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+25, 180683, 1, -1890.94, 3079.53, 0, 1.55334, 0, 0, 0.700909, 0.71325, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+26, 180683, 1, -1849.59, 3071.28, 0, -1.20428, 0, 0, 0.566406, -0.824126, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+27, 180683, 1, -1819.44, 3065.4, 0, -2.70526, 0, 0, 0.976296, -0.21644, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+28, 180683, 1, -1773.08, 3283.3, 0, 0.645772, 0, 0, 0.317305, 0.948324, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+29, 180683, 1, -1753.47, 3150.17, 0, 1.20428, 0, 0, 0.566406, 0.824126, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+30, 180683, 1, -1746.44, 3268.02, 0, -2.79253, 0, 0, 0.984808, -0.173648, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+31, 180683, 1, -1726.92, 3240.38, 0, 0.541052, 0, 0, 0.267238, 0.96363, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+32, 180683, 1, -270.212, 2531.49, 0, -3.00197, 0, 0, 0.997564, -0.069756, 3600, 3600, 100, 1, 0, 0, 7, 10), +(@OGUID+33, 180683, 1, -232.931, 2502.31, 0, -0.872665, 0, 0, 0.422618, -0.906308, 3600, 3600, 100, 1, 0, 0, 7, 10), +(@OGUID+34, 180683, 1, -206.448, 2473.09, 0, -1.20428, 0, 0, 0.566406, -0.824126, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+35, 180683, 1, -1984.93, 3133.09, 0, 6.00393, 0, 0, -0.139173, 0.990268, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+36, 180683, 1, -1789.15, 3247.44, 0, 4.04917, 0, 0, -0.898793, 0.438373, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+37, 180683, 1, -1754.46, 3176.15, 0, 5.39307, 0, 0, -0.430511, 0.902586, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+38, 180683, 1, -480.88, 2627.41, 0, 0.541051, 0, 0, 0.267238, 0.963631, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+39, 180683, 1, -452.101, 2626.5, 0, 0.436332, 0, 0, 0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+40, 180683, 1, -391.816, 2625.05, 0, 5.96903, 0, 0, -0.156434, 0.987688, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+41, 180683, 1, -340.662, 2612.61, 0, 2.91469, 0, 0, 0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+42, 180683, 1, -300.034, 2568.28, 0, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+43, 180685, 1, -2019.94, 3154.51, 0, -1.64061, 0, 0, 0.731354, -0.681998, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+44, 180685, 1, -1967.56, 3075.03, 0, 0.890118, 0, 0, 0.430511, 0.902585, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+45, 180685, 1, -1932.85, 3071.6, 0, -1.23918, 0, 0, 0.580703, -0.814116, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+46, 180685, 1, -1890.94, 3079.53, 0, 1.55334, 0, 0, 0.700909, 0.71325, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+47, 180685, 1, -1849.59, 3071.28, 0, -1.20428, 0, 0, 0.566406, -0.824126, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+48, 180685, 1, -1819.44, 3065.4, 0, -2.70526, 0, 0, 0.976296, -0.21644, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+49, 180685, 1, -1773.08, 3283.3, 0, 0.645772, 0, 0, 0.317305, 0.948324, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+50, 180685, 1, -1753.47, 3150.17, 0, 1.20428, 0, 0, 0.566406, 0.824126, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+51, 180685, 1, -1746.44, 3268.02, 0, -2.79253, 0, 0, 0.984808, -0.173648, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+52, 180685, 1, -1726.92, 3240.38, 0, 0.541052, 0, 0, 0.267238, 0.96363, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+53, 180685, 1, -270.212, 2531.49, 0, -3.00197, 0, 0, 0.997564, -0.069756, 3600, 3600, 100, 1, 0, 0, 7, 10), +(@OGUID+54, 180685, 1, -232.931, 2502.31, 0, -0.872665, 0, 0, 0.422618, -0.906308, 3600, 3600, 100, 1, 0, 0, 7, 10), +(@OGUID+55, 180685, 1, -206.448, 2473.09, 0, -1.20428, 0, 0, 0.566406, -0.824126, 900, 900, 100, 1, 0, 0, 7, 10), +(@OGUID+56, 180685, 1, -1984.93, 3133.09, 0, 6.00393, 0, 0, -0.139173, 0.990268, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+57, 180685, 1, -1789.15, 3247.44, 0, 4.04917, 0, 0, -0.898793, 0.438373, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+58, 180685, 1, -1754.46, 3176.15, 0, 5.39307, 0, 0, -0.430511, 0.902586, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+59, 180685, 1, -480.88, 2627.41, 0, 0.541051, 0, 0, 0.267238, 0.963631, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+60, 180685, 1, -452.101, 2626.5, 0, 0.436332, 0, 0, 0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+61, 180685, 1, -391.816, 2625.05, 0, 5.96903, 0, 0, -0.156434, 0.987688, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+62, 180685, 1, -340.662, 2612.61, 0, 2.91469, 0, 0, 0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+63, 180685, 1, -300.034, 2568.28, 0, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+2, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+3, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+4, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+5, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+6, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+7, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+8, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+9, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+10, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+11, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+12, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+13, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+14, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+15, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+16, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+17, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+18, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+19, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+20, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@PTEMPLATE+21, 1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+6, @PTEMPLATE+6, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+7, @PTEMPLATE+7, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+8, @PTEMPLATE+8, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+9, @PTEMPLATE+9, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+10, @PTEMPLATE+10, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+11, @PTEMPLATE+11, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+12, @PTEMPLATE+12, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+13, @PTEMPLATE+13, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+14, @PTEMPLATE+14, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+15, @PTEMPLATE+15, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+16, @PTEMPLATE+16, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+17, @PTEMPLATE+17, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+18, @PTEMPLATE+18, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+19, @PTEMPLATE+19, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+20, @PTEMPLATE+20, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+21, @PTEMPLATE+21, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+22, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+23, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+24, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+25, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+26, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+27, @PTEMPLATE+6, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+28, @PTEMPLATE+7, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+29, @PTEMPLATE+8, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+30, @PTEMPLATE+9, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+31, @PTEMPLATE+10, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+32, @PTEMPLATE+11, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+33, @PTEMPLATE+12, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+34, @PTEMPLATE+13, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+35, @PTEMPLATE+14, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+36, @PTEMPLATE+15, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+37, @PTEMPLATE+16, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+38, @PTEMPLATE+17, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+39, @PTEMPLATE+18, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+40, @PTEMPLATE+19, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+41, @PTEMPLATE+20, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+42, @PTEMPLATE+21, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+43, @PTEMPLATE+1, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+44, @PTEMPLATE+2, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+45, @PTEMPLATE+3, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+46, @PTEMPLATE+4, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+47, @PTEMPLATE+5, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+48, @PTEMPLATE+6, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+49, @PTEMPLATE+7, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+50, @PTEMPLATE+8, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+51, @PTEMPLATE+9, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+52, @PTEMPLATE+10, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+53, @PTEMPLATE+11, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+54, @PTEMPLATE+12, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+55, @PTEMPLATE+13, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+56, @PTEMPLATE+14, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+57, @PTEMPLATE+15, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+58, @PTEMPLATE+16, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+59, @PTEMPLATE+17, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+60, @PTEMPLATE+18, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+61, @PTEMPLATE+19, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+62, @PTEMPLATE+20, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10), +(@OGUID+63, @PTEMPLATE+21, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+22, 11, 'Wetlands - Firefin Snapper School / Floating Wreckage / Oily Blackmouth School (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+2, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+3, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+4, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+5, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+6, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+7, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+8, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+9, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+10, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+11, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+12, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+13, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+14, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+15, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+16, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+17, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+18, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+19, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+20, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0), +(@PTEMPLATE+21, @PTEMPLATE+22, 0, 'Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace', 0); + +UPDATE `pool_gameobject` SET `chance` = 30 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180682); +UPDATE `pool_gameobject` SET `chance` = 60 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180683); +UPDATE `pool_gameobject` SET `chance` = 10 WHERE `description` = "Oily Blackmouth School / Firefin Snapper School / Floating Wreckage - Desolace" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180685); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 71f708c6abb54288a1d58dce6e93a70050667165 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Thu, 29 Jun 2023 16:06:53 +0100 Subject: [PATCH 023/426] Add Missing Fish Pools - Stonetalon (#1989) --- sql/migrations/20230627153714_world.sql | 175 ++++++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 sql/migrations/20230627153714_world.sql diff --git a/sql/migrations/20230627153714_world.sql b/sql/migrations/20230627153714_world.sql new file mode 100644 index 00000000000..d9fd48282bb --- /dev/null +++ b/sql/migrations/20230627153714_world.sql @@ -0,0 +1,175 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230627153714'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230627153714'); +-- Add your query below. + + +SET @OGUID = 3664; +SET @PTEMPLATE = 3714; + +-- Stonetalon Mountains +DELETE FROM `gameobject` WHERE `guid` IN (5124, 5169, 47618, 47619, 47620, 47621, 47622, 47623, 47624); +DELETE FROM `pool_gameobject` WHERE `guid` IN (5124, 5169, 47618, 47619, 47620, 47621, 47622, 47623, 47624); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (5124, 5169, 47618, 47619, 47620, 47621, 47622, 47623, 47624)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180661, 1, 1081.2, -333.738, -9.73216, 5.41052, 0, 0, -0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180661, 1, 1123.77, -314.828, -9.73216, 0.715585, 0, 0, 0.350207, 0.936672, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180661, 1, 1155.98, -50.0632, -9.73216, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180661, 1, 1198.36, -199.304, -9.73216, 6.10865, 0, 0, -0.0871553, 0.996195, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180661, 1, 1201.43, -256.563, -9.73216, 3.97935, 0, 0, -0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180661, 1, 1213.56, 39.9466, -8.67718, 6.14356, 0, 0, -0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180661, 1, 1241.08, -94.5104, -9.73216, 0.0698117, 0, 0, 0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180661, 1, 1271.78, -247.527, -9.73216, 1.23918, 0, 0, 0.580703, 0.814116, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180661, 1, 1475.97, 143.181, 11.2851, 5.28835, 0, 0, -0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180661, 1, 1483.95, 127.112, 11.2851, 3.35105, 0, 0, -0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180661, 1, 1485.93, 45.0885, 11.2851, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180661, 1, 1487.37, 0.364583, 11.2851, 2.96704, 0, 0, 0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+13, 180661, 1, 1574.21, -85.732, 11.2851, 5.42797, 0, 0, -0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+14, 180661, 1, 1434.25, 186.711, 11.2755, 0.122173, 0, 0, 0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180662, 1, 1081.2, -333.738, -9.73216, 5.41052, 0, 0, -0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+16, 180662, 1, 1123.77, -314.828, -9.73216, 0.715585, 0, 0, 0.350207, 0.936672, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+17, 180662, 1, 1155.98, -50.0632, -9.73216, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+18, 180662, 1, 1198.36, -199.304, -9.73216, 6.10865, 0, 0, -0.0871553, 0.996195, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+19, 180662, 1, 1201.43, -256.563, -9.73216, 3.97935, 0, 0, -0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+20, 180662, 1, 1213.56, 39.9466, -8.67718, 6.14356, 0, 0, -0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+21, 180662, 1, 1241.08, -94.5104, -9.73216, 0.0698117, 0, 0, 0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+22, 180662, 1, 1271.78, -247.527, -9.73216, 1.23918, 0, 0, 0.580703, 0.814116, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+23, 180662, 1, 1475.97, 143.181, 11.2851, 5.28835, 0, 0, -0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+24, 180662, 1, 1483.95, 127.112, 11.2851, 3.35105, 0, 0, -0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+25, 180662, 1, 1485.93, 45.0885, 11.2851, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+26, 180662, 1, 1487.37, 0.364583, 11.2851, 2.96704, 0, 0, 0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+27, 180662, 1, 1574.21, -85.732, 11.2851, 5.42797, 0, 0, -0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+28, 180662, 1, 1434.25, 186.711, 11.2755, 0.122173, 0, 0, 0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@PTEMPLATE+2, 1, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@PTEMPLATE+3, 1, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@PTEMPLATE+4, 1, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@PTEMPLATE+5, 1, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@PTEMPLATE+6, 1, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@PTEMPLATE+7, 1, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@PTEMPLATE+8, 1, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@PTEMPLATE+9, 1, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@PTEMPLATE+10, 1, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@PTEMPLATE+11, 1, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@PTEMPLATE+12, 1, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@PTEMPLATE+13, 1, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@PTEMPLATE+14, 1, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+6, @PTEMPLATE+6, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+7, @PTEMPLATE+7, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+8, @PTEMPLATE+8, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+9, @PTEMPLATE+9, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+10, @PTEMPLATE+10, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+11, @PTEMPLATE+11, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+12, @PTEMPLATE+12, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+13, @PTEMPLATE+13, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+14, @PTEMPLATE+14, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+15, @PTEMPLATE+1, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+16, @PTEMPLATE+2, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+17, @PTEMPLATE+3, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+18, @PTEMPLATE+4, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+19, @PTEMPLATE+5, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+20, @PTEMPLATE+6, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+21, @PTEMPLATE+7, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+22, @PTEMPLATE+8, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+23, @PTEMPLATE+9, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+24, @PTEMPLATE+10, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+25, @PTEMPLATE+11, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+26, @PTEMPLATE+12, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+27, @PTEMPLATE+13, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10), +(@OGUID+28, @PTEMPLATE+14, 'Oil Spill / Floating Wreckage - Stonetalon', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+15, 5, 'Stonetalon - Oil Spill / Floating Wreckage (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+15, 0, 'Oil Spill / Floating Wreckage - Stonetalon', 0), +(@PTEMPLATE+2, @PTEMPLATE+15, 0, 'Oil Spill / Floating Wreckage - Stonetalon', 0), +(@PTEMPLATE+3, @PTEMPLATE+15, 0, 'Oil Spill / Floating Wreckage - Stonetalon', 0), +(@PTEMPLATE+4, @PTEMPLATE+15, 0, 'Oil Spill / Floating Wreckage - Stonetalon', 0), +(@PTEMPLATE+5, @PTEMPLATE+15, 0, 'Oil Spill / Floating Wreckage - Stonetalon', 0), +(@PTEMPLATE+6, @PTEMPLATE+15, 0, 'Oil Spill / Floating Wreckage - Stonetalon', 0), +(@PTEMPLATE+7, @PTEMPLATE+15, 0, 'Oil Spill / Floating Wreckage - Stonetalon', 0), +(@PTEMPLATE+8, @PTEMPLATE+15, 0, 'Oil Spill / Floating Wreckage - Stonetalon', 0), +(@PTEMPLATE+9, @PTEMPLATE+15, 0, 'Oil Spill / Floating Wreckage - Stonetalon', 0), +(@PTEMPLATE+10, @PTEMPLATE+15, 0, 'Oil Spill / Floating Wreckage - Stonetalon', 0), +(@PTEMPLATE+11, @PTEMPLATE+15, 0, 'Oil Spill / Floating Wreckage - Stonetalon', 0), +(@PTEMPLATE+12, @PTEMPLATE+15, 0, 'Oil Spill / Floating Wreckage - Stonetalon', 0), +(@PTEMPLATE+13, @PTEMPLATE+15, 0, 'Oil Spill / Floating Wreckage - Stonetalon', 0), +(@PTEMPLATE+14, @PTEMPLATE+15, 0, 'Oil Spill / Floating Wreckage - Stonetalon', 0); + +UPDATE `pool_gameobject` SET `chance` = 60 WHERE `description` = "Oil Spill / Floating Wreckage - Stonetalon" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180661); +UPDATE `pool_gameobject` SET `chance` = 40 WHERE `description` = "Oil Spill / Floating Wreckage - Stonetalon" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180662); + +SET @OGUID = 371; +SET @PTEMPLATE = 2572; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180662, 1, 1517.18, 883.797, 122.101, 4.25861, 0, 0, -0.848047, 0.529921, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+2, 180662, 1, 1558.36, 955.16, 122.101, 4.85202, 0, 0, -0.656058, 0.75471, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180662, 1, 1585.51, 804.599, 122.101, 4.31097, 0, 0, -0.833885, 0.551938, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+4, 180662, 1, 1609.57, 919.34, 122.101, 2.42601, 0, 0, 0.936672, 0.350207, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+5, 180662, 1, 1670.89, 921.875, 122.101, 3.35105, 0, 0, -0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180662, 1, 1686.51, 833.11, 122.101, 3.61284, 0, 0, -0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+7, 180663, 1, 1517.18, 883.797, 122.101, 4.25861, 0, 0, -0.848047, 0.529921, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180663, 1, 1558.36, 955.16, 122.101, 4.85202, 0, 0, -0.656058, 0.75471, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+9, 180663, 1, 1585.51, 804.599, 122.101, 4.31097, 0, 0, -0.833885, 0.551938, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180663, 1, 1609.57, 919.34, 122.101, 2.42601, 0, 0, 0.936672, 0.350207, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+11, 180663, 1, 1670.89, 921.875, 122.101, 3.35105, 0, 0, -0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+12, 180663, 1, 1686.51, 833.11, 122.101, 3.61284, 0, 0, -0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10), +(@PTEMPLATE+2, 1, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10), +(@PTEMPLATE+3, 1, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10), +(@PTEMPLATE+4, 1, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10), +(@PTEMPLATE+5, 1, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10), +(@PTEMPLATE+6, 1, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10), +(@OGUID+2, @PTEMPLATE+2, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10), +(@OGUID+3, @PTEMPLATE+3, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10), +(@OGUID+4, @PTEMPLATE+4, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10), +(@OGUID+5, @PTEMPLATE+5, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10), +(@OGUID+6, @PTEMPLATE+6, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10), +(@OGUID+7, @PTEMPLATE+1, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10), +(@OGUID+8, @PTEMPLATE+2, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10), +(@OGUID+9, @PTEMPLATE+3, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10), +(@OGUID+10, @PTEMPLATE+4, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10), +(@OGUID+11, @PTEMPLATE+5, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10), +(@OGUID+12, @PTEMPLATE+6, 'Floating Wreckage / Sagefish School - Stonetalon', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+7, 3, 'Stonetalon - Floating Wreckage / Sagefish School (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+7, 0, 'Floating Wreckage / Sagefish School - Stonetalon', 0), +(@PTEMPLATE+2, @PTEMPLATE+7, 0, 'Floating Wreckage / Sagefish School - Stonetalon', 0), +(@PTEMPLATE+3, @PTEMPLATE+7, 0, 'Floating Wreckage / Sagefish School - Stonetalon', 0), +(@PTEMPLATE+4, @PTEMPLATE+7, 0, 'Floating Wreckage / Sagefish School - Stonetalon', 0), +(@PTEMPLATE+5, @PTEMPLATE+7, 0, 'Floating Wreckage / Sagefish School - Stonetalon', 0), +(@PTEMPLATE+6, @PTEMPLATE+7, 0, 'Floating Wreckage / Sagefish School - Stonetalon', 0); + +UPDATE `pool_gameobject` SET `chance` = 40 WHERE `description` = "Floating Wreckage / Sagefish School - Stonetalon" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180662); +UPDATE `pool_gameobject` SET `chance` = 60 WHERE `description` = "Floating Wreckage / Sagefish School - Stonetalon" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180663); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 3374aa131fa4652b81e6fa10cd80e63159e7bd0d Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Thu, 29 Jun 2023 16:07:47 +0100 Subject: [PATCH 024/426] Add Missing Fish Pools - Tanaris (#1990) --- sql/migrations/20230627153910_world.sql | 381 ++++++++++++++++++++++++ 1 file changed, 381 insertions(+) create mode 100644 sql/migrations/20230627153910_world.sql diff --git a/sql/migrations/20230627153910_world.sql b/sql/migrations/20230627153910_world.sql new file mode 100644 index 00000000000..fccbae8570d --- /dev/null +++ b/sql/migrations/20230627153910_world.sql @@ -0,0 +1,381 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230627153910'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230627153910'); +-- Add your query below. + + +SET @OGUID = 46710; +SET @PTEMPLATE = 4352; + +-- Tanaris +DELETE FROM `gameobject` WHERE `guid` IN (17241, 17242, 17245, 17246, 17247, 17250, 17251, 17466, 17467, 17468, 17469, 17470, 18069, 18070, 18085, 18119, 18120, 18127, 18128, 18232, 18629, 18631, 50262, 50266, 50277, 50298, 50303); +DELETE FROM `pool_gameobject` WHERE `guid` IN (17241, 17242, 17245, 17246, 17247, 17250, 17251, 17466, 17467, 17468, 17469, 17470, 18069, 18070, 18085, 18119, 18120, 18127, 18128, 18232, 18629, 18631, 50262, 50266, 50277, 50298, 50303); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (17241, 17242, 17245, 17246, 17247, 17250, 17251, 17466, 17467, 17468, 17469, 17470, 18069, 18070, 18085, 18119, 18120, 18127, 18128, 18232, 18629, 18631, 50262, 50266, 50277, 50298, 50303)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180712, 1, -8460.64, -5041.87, 0, -0.942478, 0, 0, 0.453991, -0.891006, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+2, 180712, 1, -8240.89, -5266.22, 0, -2.30383, 0, 0, 0.913545, -0.406737, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+3, 180712, 1, -7906.06, -5256.7, 0, -2.77507, 0, 0, 0.983255, -0.182235, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+4, 180712, 1, -7764.8, -5141.1, 0, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+5, 180712, 1, -7727.08, -5125.11, 0, 1.41372, 0, 0, 0.649448, 0.760406, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+6, 180712, 1, -7691.51, -4923.28, 0, -0.663225, 0, 0, 0.325568, -0.945519, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+7, 180712, 1, -7663.48, -4878.64, 0, -0.907571, 0, 0, 0.438371, -0.898794, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+8, 180712, 1, -7569.51, -4913.58, 0, -0.296706, 0, 0, 0.147809, -0.989016, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+9, 180712, 1, -7518.89, -4886.82, 0, -2.14675, 0, 0, 0.878817, -0.477159, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+10, 180712, 1, -7230.44, -4919.24, 0, 2.07694, 0, 0, 0.861629, 0.507538, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+11, 180712, 1, -7175.57, -4915.66, 0, 0.20944, 0, 0, 0.104528, 0.994522, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+12, 180712, 1, -7055.77, -4876.62, 0, -1.64061, 0, 0, 0.731354, -0.681998, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+13, 180712, 1, -7020.72, -4871.83, 0, 4.71239, 0, 0, 0.707107, -0.707107, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+14, 180712, 1, -6951.29, -4907.06, 0, -2.89725, 0, 0, 0.992546, -0.121869, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+15, 180712, 1, -6932.98, -4950.85, 0, -1.25664, 0, 0, 0.587785, -0.809017, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+16, 180712, 1, -6839.84, -4888.99, 0, -1.25664, 0, 0, 0.587785, -0.809017, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+17, 180712, 1, -6765.14, -4867.56, 0, -2.19912, 0, 0, 0.891007, -0.45399, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+18, 180712, 1, -6710.04, -4814.66, 0, -1.09956, 0, 0, 0.522499, -0.85264, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+19, 180712, 1, -8190.47, -5306.45, 0, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+20, 180712, 1, -8128.53, -5371.78, 0, 2.3911, 0, 0, 0.930417, 0.366502, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+21, 180712, 1, -7892.33, -5235.03, 0, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+22, 180712, 1, -7849.1, -5190.41, 0, 0.087266, 0, 0, 0.0436192, 0.999048, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+23, 180712, 1, -7795.85, -5143.96, 0, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+24, 180712, 1, -7614.26, -4877.65, 0, 1.0821, 0, 0, 0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+25, 180712, 1, -7467.02, -4942.85, 0, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+26, 180712, 1, -7124.77, -4901.12, 0, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+27, 180712, 1, -6912.69, -4902.32, 0, 1.27409, 0, 0, 0.594822, 0.803857, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+28, 180712, 1, -8689.85, -4709.58, 0, 1.13446, 0, 0, 0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+29, 180712, 1, -8647.87, -4785.49, 0, 2.30383, 0, 0, 0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+30, 180712, 1, -8645.18, -4734.6, 0, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+31, 180712, 1, -8158.17, -5332.1, 0, 4.71239, 0, 0, -0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+32, 180712, 1, -8040.62, -5427.37, 0, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 9, 10), +(@OGUID+33, 180750, 1, -8460.64, -5041.87, 0, -0.942478, 0, 0, 0.453991, -0.891006, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+34, 180750, 1, -8240.89, -5266.22, 0, -2.30383, 0, 0, 0.913545, -0.406737, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+35, 180750, 1, -7906.06, -5256.7, 0, -2.77507, 0, 0, 0.983255, -0.182235, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+36, 180750, 1, -7764.8, -5141.1, 0, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+37, 180750, 1, -7727.08, -5125.11, 0, 1.41372, 0, 0, 0.649448, 0.760406, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+38, 180750, 1, -7691.51, -4923.28, 0, -0.663225, 0, 0, 0.325568, -0.945519, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+39, 180750, 1, -7663.48, -4878.64, 0, -0.907571, 0, 0, 0.438371, -0.898794, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+40, 180750, 1, -7569.51, -4913.58, 0, -0.296706, 0, 0, 0.147809, -0.989016, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+41, 180750, 1, -7518.89, -4886.82, 0, -2.14675, 0, 0, 0.878817, -0.477159, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+42, 180750, 1, -7230.44, -4919.24, 0, 2.07694, 0, 0, 0.861629, 0.507538, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+43, 180750, 1, -7175.57, -4915.66, 0, 0.20944, 0, 0, 0.104528, 0.994522, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+44, 180750, 1, -7055.77, -4876.62, 0, -1.64061, 0, 0, 0.731354, -0.681998, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+45, 180750, 1, -7020.72, -4871.83, 0, 4.71239, 0, 0, 0.707107, -0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+46, 180750, 1, -6951.29, -4907.06, 0, -2.89725, 0, 0, 0.992546, -0.121869, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+47, 180750, 1, -6932.98, -4950.85, 0, -1.25664, 0, 0, 0.587785, -0.809017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+48, 180750, 1, -6839.84, -4888.99, 0, -1.25664, 0, 0, 0.587785, -0.809017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+49, 180750, 1, -6765.14, -4867.56, 0, -2.19912, 0, 0, 0.891007, -0.45399, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+50, 180750, 1, -6710.04, -4814.66, 0, -1.09956, 0, 0, 0.522499, -0.85264, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+51, 180750, 1, -8190.47, -5306.45, 0, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+52, 180750, 1, -8128.53, -5371.78, 0, 2.3911, 0, 0, 0.930417, 0.366502, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+53, 180750, 1, -7892.33, -5235.03, 0, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+54, 180750, 1, -7849.1, -5190.41, 0, 0.087266, 0, 0, 0.0436192, 0.999048, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+55, 180750, 1, -7795.85, -5143.96, 0, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+56, 180750, 1, -7614.26, -4877.65, 0, 1.0821, 0, 0, 0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+57, 180750, 1, -7467.02, -4942.85, 0, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+58, 180750, 1, -7124.77, -4901.12, 0, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+59, 180750, 1, -6912.69, -4902.32, 0, 1.27409, 0, 0, 0.594822, 0.803857, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+60, 180750, 1, -8689.85, -4709.58, 0, 1.13446, 0, 0, 0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+61, 180750, 1, -8647.87, -4785.49, 0, 2.30383, 0, 0, 0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+62, 180750, 1, -8645.18, -4734.6, 0, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+63, 180750, 1, -8158.17, -5332.1, 0, 4.71239, 0, 0, -0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+64, 180750, 1, -8040.62, -5427.37, 0, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+65, 180751, 1, -8460.64, -5041.87, 0, -0.942478, 0, 0, 0.453991, -0.891006, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+66, 180751, 1, -8240.89, -5266.22, 0, -2.30383, 0, 0, 0.913545, -0.406737, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+67, 180751, 1, -7906.06, -5256.7, 0, -2.77507, 0, 0, 0.983255, -0.182235, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+68, 180751, 1, -7764.8, -5141.1, 0, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+69, 180751, 1, -7727.08, -5125.11, 0, 1.41372, 0, 0, 0.649448, 0.760406, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+70, 180751, 1, -7691.51, -4923.28, 0, -0.663225, 0, 0, 0.325568, -0.945519, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+71, 180751, 1, -7663.48, -4878.64, 0, -0.907571, 0, 0, 0.438371, -0.898794, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+72, 180751, 1, -7569.51, -4913.58, 0, -0.296706, 0, 0, 0.147809, -0.989016, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+73, 180751, 1, -7518.89, -4886.82, 0, -2.14675, 0, 0, 0.878817, -0.477159, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+74, 180751, 1, -7230.44, -4919.24, 0, 2.07694, 0, 0, 0.861629, 0.507538, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+75, 180751, 1, -7175.57, -4915.66, 0, 0.20944, 0, 0, 0.104528, 0.994522, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+76, 180751, 1, -7055.77, -4876.62, 0, -1.64061, 0, 0, 0.731354, -0.681998, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+77, 180751, 1, -7020.72, -4871.83, 0, 4.71239, 0, 0, 0.707107, -0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+78, 180751, 1, -6951.29, -4907.06, 0, -2.89725, 0, 0, 0.992546, -0.121869, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+79, 180751, 1, -6932.98, -4950.85, 0, -1.25664, 0, 0, 0.587785, -0.809017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+80, 180751, 1, -6839.84, -4888.99, 0, -1.25664, 0, 0, 0.587785, -0.809017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+81, 180751, 1, -6765.14, -4867.56, 0, -2.19912, 0, 0, 0.891007, -0.45399, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+82, 180751, 1, -6710.04, -4814.66, 0, -1.09956, 0, 0, 0.522499, -0.85264, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+83, 180751, 1, -8190.47, -5306.45, 0, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+84, 180751, 1, -8128.53, -5371.78, 0, 2.3911, 0, 0, 0.930417, 0.366502, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+85, 180751, 1, -7892.33, -5235.03, 0, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+86, 180751, 1, -7849.1, -5190.41, 0, 0.087266, 0, 0, 0.0436192, 0.999048, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+87, 180751, 1, -7795.85, -5143.96, 0, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+88, 180751, 1, -7614.26, -4877.65, 0, 1.0821, 0, 0, 0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+89, 180751, 1, -7467.02, -4942.85, 0, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+90, 180751, 1, -7124.77, -4901.12, 0, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+91, 180751, 1, -6912.69, -4902.32, 0, 1.27409, 0, 0, 0.594822, 0.803857, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+92, 180751, 1, -8689.85, -4709.58, 0, 1.13446, 0, 0, 0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+93, 180751, 1, -8647.87, -4785.49, 0, 2.30383, 0, 0, 0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+94, 180751, 1, -8645.18, -4734.6, 0, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+95, 180751, 1, -8158.17, -5332.1, 0, 4.71239, 0, 0, -0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+96, 180751, 1, -8040.62, -5427.37, 0, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+97, 180752, 1, -8460.64, -5041.87, 0, -0.942478, 0, 0, 0.453991, -0.891006, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+98, 180752, 1, -8240.89, -5266.22, 0, -2.30383, 0, 0, 0.913545, -0.406737, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+99, 180752, 1, -7906.06, -5256.7, 0, -2.77507, 0, 0, 0.983255, -0.182235, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+100, 180752, 1, -7764.8, -5141.1, 0, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+101, 180752, 1, -7727.08, -5125.11, 0, 1.41372, 0, 0, 0.649448, 0.760406, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+102, 180752, 1, -7691.51, -4923.28, 0, -0.663225, 0, 0, 0.325568, -0.945519, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+103, 180752, 1, -7663.48, -4878.64, 0, -0.907571, 0, 0, 0.438371, -0.898794, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+104, 180752, 1, -7569.51, -4913.58, 0, -0.296706, 0, 0, 0.147809, -0.989016, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+105, 180752, 1, -7518.89, -4886.82, 0, -2.14675, 0, 0, 0.878817, -0.477159, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+106, 180752, 1, -7230.44, -4919.24, 0, 2.07694, 0, 0, 0.861629, 0.507538, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+107, 180752, 1, -7175.57, -4915.66, 0, 0.20944, 0, 0, 0.104528, 0.994522, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+108, 180752, 1, -7055.77, -4876.62, 0, -1.64061, 0, 0, 0.731354, -0.681998, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+109, 180752, 1, -7020.72, -4871.83, 0, 4.71239, 0, 0, 0.707107, -0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+110, 180752, 1, -6951.29, -4907.06, 0, -2.89725, 0, 0, 0.992546, -0.121869, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+111, 180752, 1, -6932.98, -4950.85, 0, -1.25664, 0, 0, 0.587785, -0.809017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+112, 180752, 1, -6839.84, -4888.99, 0, -1.25664, 0, 0, 0.587785, -0.809017, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+113, 180752, 1, -6765.14, -4867.56, 0, -2.19912, 0, 0, 0.891007, -0.45399, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+114, 180752, 1, -6710.04, -4814.66, 0, -1.09956, 0, 0, 0.522499, -0.85264, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+115, 180752, 1, -8190.47, -5306.45, 0, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+116, 180752, 1, -8128.53, -5371.78, 0, 2.3911, 0, 0, 0.930417, 0.366502, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+117, 180752, 1, -7892.33, -5235.03, 0, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+118, 180752, 1, -7849.1, -5190.41, 0, 0.087266, 0, 0, 0.0436192, 0.999048, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+119, 180752, 1, -7795.85, -5143.96, 0, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+120, 180752, 1, -7614.26, -4877.65, 0, 1.0821, 0, 0, 0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+121, 180752, 1, -7467.02, -4942.85, 0, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+122, 180752, 1, -7124.77, -4901.12, 0, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+123, 180752, 1, -6912.69, -4902.32, 0, 1.27409, 0, 0, 0.594822, 0.803857, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+124, 180752, 1, -8689.85, -4709.58, 0, 1.13446, 0, 0, 0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+125, 180752, 1, -8647.87, -4785.49, 0, 2.30383, 0, 0, 0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+126, 180752, 1, -8645.18, -4734.6, 0, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+127, 180752, 1, -8158.17, -5332.1, 0, 4.71239, 0, 0, -0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+128, 180752, 1, -8040.62, -5427.37, 0, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+2, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+3, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+4, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+5, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+6, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+7, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+8, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+9, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+10, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+11, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+12, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+13, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+14, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+15, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+16, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+17, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+18, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+19, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+20, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+21, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+22, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+23, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+24, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+25, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+26, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+27, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+28, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+29, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+30, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+31, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@PTEMPLATE+32, 1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+2, @PTEMPLATE+2, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+3, @PTEMPLATE+3, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+4, @PTEMPLATE+4, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+5, @PTEMPLATE+5, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+6, @PTEMPLATE+6, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+7, @PTEMPLATE+7, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+8, @PTEMPLATE+8, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+9, @PTEMPLATE+9, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+10, @PTEMPLATE+10, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+11, @PTEMPLATE+11, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+12, @PTEMPLATE+12, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+13, @PTEMPLATE+13, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+14, @PTEMPLATE+14, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+15, @PTEMPLATE+15, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+16, @PTEMPLATE+16, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+17, @PTEMPLATE+17, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+18, @PTEMPLATE+18, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+19, @PTEMPLATE+19, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+20, @PTEMPLATE+20, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+21, @PTEMPLATE+21, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+22, @PTEMPLATE+22, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+23, @PTEMPLATE+23, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+24, @PTEMPLATE+24, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+25, @PTEMPLATE+25, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+26, @PTEMPLATE+26, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+27, @PTEMPLATE+27, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+28, @PTEMPLATE+28, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+29, @PTEMPLATE+29, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+30, @PTEMPLATE+30, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+31, @PTEMPLATE+31, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+32, @PTEMPLATE+32, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 9, 10), +(@OGUID+33, @PTEMPLATE+1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+34, @PTEMPLATE+2, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+35, @PTEMPLATE+3, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+36, @PTEMPLATE+4, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+37, @PTEMPLATE+5, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+38, @PTEMPLATE+6, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+39, @PTEMPLATE+7, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+40, @PTEMPLATE+8, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+41, @PTEMPLATE+9, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+42, @PTEMPLATE+10, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+43, @PTEMPLATE+11, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+44, @PTEMPLATE+12, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+45, @PTEMPLATE+13, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+46, @PTEMPLATE+14, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+47, @PTEMPLATE+15, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+48, @PTEMPLATE+16, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+49, @PTEMPLATE+17, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+50, @PTEMPLATE+18, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+51, @PTEMPLATE+19, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+52, @PTEMPLATE+20, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+53, @PTEMPLATE+21, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+54, @PTEMPLATE+22, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+55, @PTEMPLATE+23, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+56, @PTEMPLATE+24, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+57, @PTEMPLATE+25, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+58, @PTEMPLATE+26, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+59, @PTEMPLATE+27, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+60, @PTEMPLATE+28, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+61, @PTEMPLATE+29, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+62, @PTEMPLATE+30, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+63, @PTEMPLATE+31, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+64, @PTEMPLATE+32, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+65, @PTEMPLATE+1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+66, @PTEMPLATE+2, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+67, @PTEMPLATE+3, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+68, @PTEMPLATE+4, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+69, @PTEMPLATE+5, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+70, @PTEMPLATE+6, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+71, @PTEMPLATE+7, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+72, @PTEMPLATE+8, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+73, @PTEMPLATE+9, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+74, @PTEMPLATE+10, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+75, @PTEMPLATE+11, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+76, @PTEMPLATE+12, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+77, @PTEMPLATE+13, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+78, @PTEMPLATE+14, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+79, @PTEMPLATE+15, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+80, @PTEMPLATE+16, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+81, @PTEMPLATE+17, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+82, @PTEMPLATE+18, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+83, @PTEMPLATE+19, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+84, @PTEMPLATE+20, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+85, @PTEMPLATE+21, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+86, @PTEMPLATE+22, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+87, @PTEMPLATE+23, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+88, @PTEMPLATE+24, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+89, @PTEMPLATE+25, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+90, @PTEMPLATE+26, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+91, @PTEMPLATE+27, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+92, @PTEMPLATE+28, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+93, @PTEMPLATE+29, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+94, @PTEMPLATE+30, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+95, @PTEMPLATE+31, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+96, @PTEMPLATE+32, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+97, @PTEMPLATE+1, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+98, @PTEMPLATE+2, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+99, @PTEMPLATE+3, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+100, @PTEMPLATE+4, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+101, @PTEMPLATE+5, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+102, @PTEMPLATE+6, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+103, @PTEMPLATE+7, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+104, @PTEMPLATE+8, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+105, @PTEMPLATE+9, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+106, @PTEMPLATE+10, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+107, @PTEMPLATE+11, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+108, @PTEMPLATE+12, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+109, @PTEMPLATE+13, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+110, @PTEMPLATE+14, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+111, @PTEMPLATE+15, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+112, @PTEMPLATE+16, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+113, @PTEMPLATE+17, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+114, @PTEMPLATE+18, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+115, @PTEMPLATE+19, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+116, @PTEMPLATE+20, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+117, @PTEMPLATE+21, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+118, @PTEMPLATE+22, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+119, @PTEMPLATE+23, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+120, @PTEMPLATE+24, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+121, @PTEMPLATE+25, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+122, @PTEMPLATE+26, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+123, @PTEMPLATE+27, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+124, @PTEMPLATE+28, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+125, @PTEMPLATE+29, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+126, @PTEMPLATE+30, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+127, @PTEMPLATE+31, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10), +(@OGUID+128, @PTEMPLATE+32, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+33, 14, 'Wetlands - Firefin Snapper School / Floating Wreckage / Oily Blackmouth School (Master Pool)', 0, 0, 7, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+2, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+3, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+4, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+5, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+6, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+7, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+8, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+9, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+10, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+11, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+12, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+13, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+14, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+15, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+16, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+17, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+18, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+19, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+20, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+21, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+22, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+23, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+24, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+25, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+26, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+27, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+28, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+29, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+30, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+31, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0), +(@PTEMPLATE+32, @PTEMPLATE+33, 0, 'Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris', 0); + +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180712); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180750); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180751); +UPDATE `pool_gameobject` SET `chance` = 40 WHERE `description` = "Stonescale Eel Swarm / Oily Blackmouth School / Floating Wreckage / Firefin Snapper School - Tanaris" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 180752); + +-- Tidy +SET @OGUID = 227; + +-- Muddy Churning Waters +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180369, 309, -11890.2, -1714.73, 10.4603, 2.96704, 0, 0, 0.996194, 0.087165, 600, 600, 1, 100, 5, 10), +(@OGUID+2, 180369, 309, -11887.7, -1643.9, 10.4603, 3.87463, 0, 0, -0.93358, 0.358368, 600, 600, 1, 100, 5, 10), +(@OGUID+3, 180369, 309, -11700.5, -1746.49, 10.4603, 3.56047, 0, 0, -0.978148, 0.207912, 600, 600, 1, 100, 5, 10), +(@OGUID+4, 180184, 0, -8306.6, -334.969, 143.974, 1.25664, 0, 0, 0.587785, 0.809017, 180, 180, 1, 100, 7, 10); + +-- Remove Redundant Pool Objects +DELETE FROM `pool_gameobject` WHERE `guid`=18086; +DELETE FROM `pool_gameobject` WHERE `guid`=18284; + +UPDATE `gameobject` SET `position_x`=-232.452, `position_y`=-1103.82, `position_z`=37.087, `orientation`=5.41052, `rotation0`=0, `rotation1`=0, `rotation2`=-0.422618, `rotation3`=0.906308 WHERE `guid`=38820; +UPDATE `gameobject` SET `position_x`=-619.02, `position_y`=-769.87, `position_z`=6.30651, `orientation`=3.28124, `rotation0`=0, `rotation1`=0, `rotation2`=-0.997563, `rotation3`=0.0697661 WHERE `guid`=38811; +UPDATE `gameobject` SET `position_x`=2509.32, `position_y`=-2855.59, `position_z`=150.072, `orientation`=3.89209, `rotation0`=0, `rotation1`=0, `rotation2`=-0.930417, `rotation3`=0.366502 WHERE `guid`=18162; +UPDATE `gameobject` SET `position_x`=-9801.39, `position_y`=1766.6, `position_z`=0, `orientation`=6.19592, `rotation0`=0, `rotation1`=0, `rotation2`=-0.0436192, `rotation3`=0.999048 WHERE `guid`=24548; +UPDATE `gameobject` SET `position_x`=-9801.39, `position_y`=1766.6, `position_z`=0, `orientation`=6.19592, `rotation0`=0, `rotation1`=0, `rotation2`=-0.0436192, `rotation3`=0.999048 WHERE `guid`=24570; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From ebf0849daafa1eec30a30ae84b3860e4e6ae3b9f Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Thu, 29 Jun 2023 16:08:18 +0100 Subject: [PATCH 025/426] Add Missing Weapon Crates (#1979) --- sql/migrations/20230625171757_world.sql | 72 +++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 sql/migrations/20230625171757_world.sql diff --git a/sql/migrations/20230625171757_world.sql b/sql/migrations/20230625171757_world.sql new file mode 100644 index 00000000000..3542ffb73b8 --- /dev/null +++ b/sql/migrations/20230625171757_world.sql @@ -0,0 +1,72 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230625171757'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230625171757'); +-- Add your query below. + + +SET @OGUID = 185; +SET @PTEMPLATE = 2509; + +-- Missing Weapon Crate spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3689, 1, -1035.84, -3986.77, -75.3307, 5.8294, 0, 0, -0.224951, 0.97437, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 55898 at 204.988693 yards. +(@OGUID+2, 3689, 1, -1778.77, -3946.77, -5.78729, 0.418879, 0, 0, 0.207911, 0.978148, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 55916 at 160.389771 yards. +(@OGUID+3, 3689, 1, -2120.48, -3896.26, -10.2095, 1.0472, 0, 0, 0.5, 0.866025, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 55916 at 505.426819 yards. +(@OGUID+4, 3689, 1, -1136.38, -4072.17, -87.6331, 5.21854, 0, 0, -0.507538, 0.861629, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 55898 at 301.884796 yards. +(@OGUID+5, 3689, 1, -2008.18, -3819.33, -9.58786, 2.49582, 0, 0, 0.948323, 0.317306, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 55916 at 413.046478 yards. +(@OGUID+6, 3689, 1, -1850.05, -3819.51, -6.28771, 5.02655, 0, 0, -0.587785, 0.809017, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 55916 at 269.005035 yards. +(@OGUID+7, 3689, 1, -1278.59, -3934.91, -10.439, 4.2237, 0, 0, -0.857167, 0.515038, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 55898 at 268.996582 yards. +(@OGUID+8, 3689, 1, -1476.84, -3908.77, -0.348957, 4.03171, 0, 0, -0.902585, 0.430512, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 55916 at 149.852463 yards. +(@OGUID+9, 3689, 1, -1037.3, -3923.91, -73.2812, 1.37881, 0, 0, 0.636078, 0.771625, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 55898 at 144.346252 yards. +(@OGUID+10, 3689, 1, -4049.89, -2390.31, 126.13, 3.00195, 0, 0, 0.997563, 0.0697661, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13438 at 30.856859 yards. +(@OGUID+11, 3689, 1, -4070.11, -2380.71, 110.297, 2.04204, 0, 0, 0.85264, 0.522499, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 13435 at 31.332472 yards. + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 6, 'Weapon Crate - Barrens', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Weapon Crate - Barrens', 0, 10), +(@OGUID+2, @PTEMPLATE+1, 'Weapon Crate - Barrens', 0, 10), +(@OGUID+3, @PTEMPLATE+1, 'Weapon Crate - Barrens', 0, 10), +(@OGUID+4, @PTEMPLATE+1, 'Weapon Crate - Barrens', 0, 10), +(@OGUID+5, @PTEMPLATE+1, 'Weapon Crate - Barrens', 0, 10), +(@OGUID+6, @PTEMPLATE+1, 'Weapon Crate - Barrens', 0, 10), +(@OGUID+7, @PTEMPLATE+1, 'Weapon Crate - Barrens', 0, 10), +(@OGUID+8, @PTEMPLATE+1, 'Weapon Crate - Barrens', 0, 10), +(@OGUID+9, @PTEMPLATE+1, 'Weapon Crate - Barrens', 0, 10), +(@OGUID+10, @PTEMPLATE+1, 'Weapon Crate - Barrens', 0, 10), +(@OGUID+11, @PTEMPLATE+1, 'Weapon Crate - Barrens', 0, 10), +(13439, @PTEMPLATE+1, 'Weapon Crate - Barrens', 0, 10), +(55898, @PTEMPLATE+1, 'Weapon Crate - Barrens', 0, 10), +(55916, @PTEMPLATE+1, 'Weapon Crate - Barrens', 0, 10), +(13438, @PTEMPLATE+1, 'Weapon Crate - Barrens', 0, 10), +(13435, @PTEMPLATE+1, 'Weapon Crate - Barrens', 0, 10); + +-- Missing Weapon Crate spawns in Ashenvale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+12, 3689, 1, 1831.57, -2754.73, 82.8331, 4.92183, 0, 0, -0.62932, 0.777146, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 47973 at 41.952713 yards. +(@OGUID+13, 3689, 1, 1817.35, -2628.76, 61.1289, 1.67551, 0, 0, 0.743144, 0.669131, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 47972 at 49.182247 yards. +(@OGUID+14, 3689, 1, 1914.78, -2641.69, 82.8735, 0.209439, 0, 0, 0.104528, 0.994522, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 47972 at 55.333958 yards. + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+2, 3, 'Weapon Crate - Ashenvale', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+12, @PTEMPLATE+2, 'Weapon Crate - Ashenvale', 0, 10), +(@OGUID+13, @PTEMPLATE+2, 'Weapon Crate - Ashenvale', 0, 10), +(@OGUID+14, @PTEMPLATE+2, 'Weapon Crate - Ashenvale', 0, 10), +(47972, @PTEMPLATE+2, 'Weapon Crate - Ashenvale', 0, 10), +(47973, @PTEMPLATE+2, 'Weapon Crate - Ashenvale', 0, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 8f7444992a507f013c98e37875b70940d73d939c Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 30 Jun 2023 17:00:47 +0100 Subject: [PATCH 026/426] Add Missing Battered Footlockers (#1993) --- sql/migrations/20230628163157_world.sql | 131 ++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 sql/migrations/20230628163157_world.sql diff --git a/sql/migrations/20230628163157_world.sql b/sql/migrations/20230628163157_world.sql new file mode 100644 index 00000000000..ea91dcc2350 --- /dev/null +++ b/sql/migrations/20230628163157_world.sql @@ -0,0 +1,131 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230628163157'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230628163157'); +-- Add your query below. + + +-- Create new pool to hold Battered Footlocker spawns in Wetlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(49, 9, 'Battered Footlockers in Wetlands', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(14910, 49, 0, 'Battered Footlocker', 1, 10), +(14911, 49, 0, 'Battered Footlocker', 1, 10), +(14912, 49, 0, 'Battered Footlocker', 1, 10), +(14913, 49, 0, 'Battered Footlocker', 1, 10), +(14963, 49, 0, 'Battered Footlocker', 1, 10); + +-- Create new pool to hold Battered Footlocker spawns in Hillsbrad Foothills. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(403, 9, 'Battered Footlockers in Hillsbrad Foothills', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(20807, 403, 0, 'Battered Footlocker', 1, 10), +(20880, 403, 0, 'Battered Footlocker', 1, 10), +(21265, 403, 0, 'Battered Footlocker', 1, 10), +(21266, 403, 0, 'Battered Footlocker', 1, 10), +(21267, 403, 0, 'Battered Footlocker', 1, 10); + +-- Create new pool to hold Battered Footlocker spawns in Stonetalon Mountains. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(404, 5, 'Battered Footlockers in Stonetalon Mountains', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(39943, 404, 0, 'Battered Footlocker', 1, 10), +(40703, 404, 0, 'Battered Footlocker', 1, 10), +(40704, 404, 0, 'Battered Footlocker', 1, 10), +(40705, 404, 0, 'Battered Footlocker', 1, 10), +(40706, 404, 0, 'Battered Footlocker', 1, 10); + +-- Missing Battered Footlocker spawns in Wetlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(14921, 179488, 0, -3221.37, -1020.48, 7.92467, 3.61284, 0, 0, -0.972369, 0.233448, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 14911 at 82.042282 yards. +(14922, 179488, 0, -3208.96, -1023, 10.0995, 0, 0, 0, 0, 1, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 14911 at 81.909317 yards. +(14966, 179488, 0, -3053.2, -988.194, 8.76575, 4.10153, 0, 0, -0.887011, 0.461749, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 14963 at 6.680152 yards. +(14923, 179488, 0, -3291.57, -953.24, 9.11977, 3.12412, 0, 0, 0.999962, 0.00873464, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 14913 at 10.754777 yards. +(14924, 179488, 0, -3287.25, -943.397, 8.92945, 2.05949, 0, 0, 0.857167, 0.515038, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 14913 at 14.625512 yards. +(14925, 179488, 0, -3235.09, -1148.29, 8.72373, 3.73501, 0, 0, -0.956305, 0.292372, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 14910 at 12.425591 yards. +(14929, 179488, 0, -3230.19, -1147.53, 7.79682, 0.122173, 0, 0, 0.0610485, 0.998135, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 14910 at 15.012830 yards. +(14933, 179488, 0, -3145.93, -1054.7, 8.56969, 2.60054, 0, 0, 0.96363, 0.267241, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 14912 at 15.066031 yards. +(14967, 179488, 0, -3048.99, -969.674, 9.01211, 2.00713, 0, 0, 0.843391, 0.5373, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 14963 at 12.383120 yards. +(14934, 179488, 0, -3201.64, -957.986, 8.90404, 5.13127, 0, 0, -0.544639, 0.838671, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 14911 at 16.561735 yards. +(14969, 179488, 0, -3104.77, -947.625, 8.90692, 2.51327, 0, 0, 0.951056, 0.309017, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 14963 at 63.779865 yards. +(14970, 179488, 0, -3106.28, -960.787, 8.48963, 2.65289, 0, 0, 0.970295, 0.241925, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 14963 at 59.193684 yards. +(14971, 179488, 0, -2987.6, -1062.95, 7.83829, 0.0698117, 0, 0, 0.0348988, 0.999391, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 14963 at 102.897888 yards. +(14980, 179488, 0, -2992.43, -1082.74, 8.07506, 0.0174525, 0, 0, 0.00872612, 0.999962, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 14963 at 116.612068 yards. +(14981, 179488, 0, -2996.25, -1067.17, 9.36874, 3.194, 0, 0, -0.999657, 0.0262016, 10, 10, 1, 100, 1, 10); -- Closest existing guid is 14963 at 101.327263 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(14921, 49, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14922, 49, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14966, 49, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14923, 49, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14924, 49, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14925, 49, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14929, 49, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14933, 49, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14967, 49, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14934, 49, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14969, 49, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14970, 49, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14971, 49, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14980, 49, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14981, 49, 0, 'Battered Footlocker', 1, 10); -- Battered Footlockers in Wetlands + +-- Missing Battered Footlocker spawns in Hillsbrad Foothills. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(20882, 179488, 0, -596.135, -1434.1, 65.0242, 2.1293, 0, 0, 0.874619, 0.48481, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 20880 at 67.314713 yards. +(20883, 179488, 0, -586.978, -1398.59, 64.8736, 0.767944, 0, 0, 0.374606, 0.927184, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 20880 at 70.561996 yards. +(21268, 179488, 0, -464.1, -1308.28, 64.7549, 4.46804, 0, 0, -0.788011, 0.615662, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 21265 at 114.089622 yards. +(21269, 179488, 0, -425.479, -1321.48, 64.8703, 5.16618, 0, 0, -0.529919, 0.848048, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 21265 at 97.504028 yards. +(20915, 179488, 0, -535.313, -1338.79, 64.8361, 5.55015, 0, 0, -0.358368, 0.93358, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 20880 at 100.194740 yards. +(21270, 179488, 0, -477.884, -1472.52, 87.8191, 2.70526, 0, 0, 0.976295, 0.216442, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 21267 at 40.382214 yards. +(21284, 179488, 0, -404.957, -1336.19, 64.8962, 3.21142, 0, 0, -0.999391, 0.0349061, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 21265 at 88.123703 yards. +(21285, 179488, 0, -538.906, -1586.92, 64.7883, 1.79769, 0, 0, 0.782608, 0.622515, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 21266 at 86.584160 yards. +(20817, 179488, 0, -480.84, -1444.27, 87.685, 1.8675, 0, 0, 0.803857, 0.594823, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 20807 at 51.925484 yards. +(21286, 179488, 0, -487.744, -1490.33, 87.7138, 3.80482, 0, 0, -0.945518, 0.325568, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 21267 at 30.835201 yards. +(21287, 179488, 0, -440.542, -1558.91, 64.9393, 3.15906, 0, 0, -0.999962, 0.00873464, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 21266 at 34.618484 yards. +(21288, 179488, 0, -479.151, -1529.03, 65.2002, 4.41568, 0, 0, -0.803857, 0.594823, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 21267 at 33.887054 yards. +(20918, 179488, 0, -617.808, -1554.5, 64.8736, 1.76278, 0, 0, 0.771625, 0.636078, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 20880 at 145.880142 yards. +(20956, 179488, 0, -544.347, -1379.27, 64.757, 3.10665, 0, 0, 0.999847, 0.0174693, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 20880 at 61.469379 yards. +(21289, 179488, 0, -464.953, -1614.66, 64.8736, 2.61799, 0, 0, 0.965925, 0.258821, 10, 10, 1, 100, 1, 10); -- Closest existing guid is 21266 at 26.395107 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(20882, 403, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(20883, 403, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(21268, 403, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(21269, 403, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(20915, 403, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(21270, 403, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(21284, 403, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(21285, 403, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(20817, 403, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(21286, 403, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(21287, 403, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(21288, 403, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(20918, 403, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(20956, 403, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(21289, 403, 0, 'Battered Footlocker', 1, 10); -- Battered Footlockers in Hillsbrad Foothills + +-- Missing Battered Footlocker spawns in Stonetalon Mountains. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(40721, 179488, 1, 981.934, -369.518, 16.1245, 2.21657, 0, 0, 0.894934, 0.446199, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 40704 at 12.835145 yards. +(40723, 179488, 1, 959.733, -323.349, -0.973847, 1.46608, 0, 0, 0.66913, 0.743145, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 40706 at 33.809834 yards. +(40724, 179488, 1, 957.002, -358.111, 5.45155, 0.314158, 0, 0, 0.156434, 0.987688, 10, 10, 1, 100, 1, 10); -- Closest existing guid is 40706 at 14.599030 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(40721, 404, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(40723, 404, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(40724, 404, 0, 'Battered Footlocker', 1, 10); -- Battered Footlockers in Stonetalon Mountains + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` = 179488; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From d215ec48f1a3e099acbe1e26ad5aec5b0458394f Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 30 Jun 2023 17:01:05 +0100 Subject: [PATCH 027/426] Add Missing Battered Footlockers (179486) (#1994) --- sql/migrations/20230628170044_world.sql | 243 ++++++++++++++++++++++++ 1 file changed, 243 insertions(+) create mode 100644 sql/migrations/20230628170044_world.sql diff --git a/sql/migrations/20230628170044_world.sql b/sql/migrations/20230628170044_world.sql new file mode 100644 index 00000000000..4e016b71f46 --- /dev/null +++ b/sql/migrations/20230628170044_world.sql @@ -0,0 +1,243 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230628170044'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230628170044'); +-- Add your query below. + + +-- Create new pool to hold Battered Footlocker spawns in Wetlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(408, 14, 'Battered Footlockers in Wetlands', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(14572, 408, 0, 'Battered Footlocker', 1, 10), +(14649, 408, 0, 'Battered Footlocker', 1, 10), +(14650, 408, 0, 'Battered Footlocker', 1, 10), +(14855, 408, 0, 'Battered Footlocker', 1, 10), +(14893, 408, 0, 'Battered Footlocker', 1, 10), +(14909, 408, 0, 'Battered Footlocker', 1, 10); + +-- Create new pool to hold Battered Footlocker spawns in Hillsbrad Foothills. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(409, 14, 'Battered Footlockers in Hillsbrad Foothills', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(20969, 409, 0, 'Battered Footlocker', 1, 10), +(21235, 409, 0, 'Battered Footlocker', 1, 10), +(21239, 409, 0, 'Battered Footlocker', 1, 10), +(30005, 409, 0, 'Battered Footlocker', 1, 10), +(30006, 409, 0, 'Battered Footlocker', 1, 10), +(30007, 409, 0, 'Battered Footlocker', 1, 10), +(30008, 409, 0, 'Battered Footlocker', 1, 10), +(30012, 409, 0, 'Battered Footlocker', 1, 10); + +-- Create new pool to hold Battered Footlocker spawns in Stonetalon Mountains. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(410, 20, 'Battered Footlockers in Stonetalon Mountains', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(34178, 410, 0, 'Battered Footlocker', 1, 10), +(34181, 410, 0, 'Battered Footlocker', 1, 10), +(34186, 410, 0, 'Battered Footlocker', 1, 10), +(35007, 410, 0, 'Battered Footlocker', 1, 10), +(35008, 410, 0, 'Battered Footlocker', 1, 10), +(35012, 410, 0, 'Battered Footlocker', 1, 10), +(35014, 410, 0, 'Battered Footlocker', 1, 10), +(35015, 410, 0, 'Battered Footlocker', 1, 10), +(35017, 410, 0, 'Battered Footlocker', 1, 10), +(35018, 410, 0, 'Battered Footlocker', 1, 10), +(35025, 410, 0, 'Battered Footlocker', 1, 10); + +-- Missing Battered Footlocker spawns in Wetlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(14896, 179486, 0, -3159.01, -1022.51, 7.19671, 5.00909, 0, 0, -0.594823, 0.803857, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14893 at 80.210014 yards. +(14899, 179486, 0, -3138.7, -981.94, 7.86911, 3.21142, 0, 0, -0.999391, 0.0349061, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14893 at 119.591263 yards. +(14663, 179486, 0, -3092.38, -1276.26, 7.68682, 0.191985, 0, 0, 0.0958452, 0.995396, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14649 at 47.623379 yards. +(14664, 179486, 0, -3139.77, -1226.99, 7.55713, 4.57276, 0, 0, -0.754709, 0.656059, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14649 at 21.812510 yards. +(14935, 179486, 0, -3260.83, -1094.46, 7.53431, 0.750491, 0, 0, 0.366501, 0.930418, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14909 at 110.105713 yards. +(14665, 179486, 0, -3050.55, -1210.72, 7.88541, 5.09636, 0, 0, -0.559193, 0.829038, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14649 at 79.480469 yards. +(14668, 179486, 0, -3175.31, -1339.34, 7.79502, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14649 at 111.190063 yards. +(14669, 179486, 0, -3230.34, -1403.67, 8.9191, 4.72984, 0, 0, -0.700909, 0.713251, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14649 at 194.598846 yards. +(14672, 179486, 0, -3243.73, -1312.03, 6.06156, 6.03884, 0, 0, -0.121869, 0.992546, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14649 at 139.430313 yards. +(14901, 179486, 0, -3091.55, -1133.3, 8.17147, 3.63029, 0, 0, -0.970295, 0.241925, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14893 at 61.821922 yards. +(14902, 179486, 0, -3083.1, -1062.89, 8.07908, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14893 at 72.472191 yards. +(14903, 179486, 0, -3009.9, -1150.78, 9.15748, 2.51327, 0, 0, 0.951056, 0.309017, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14893 at 143.378647 yards. +(14673, 179486, 0, -3028.16, -1249.71, 7.59117, 1.76278, 0, 0, 0.771625, 0.636078, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14650 at 52.495811 yards. +(14936, 179486, 0, -3239.02, -1042.47, 7.59312, 0.0523589, 0, 0, 0.0261765, 0.999657, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14893 at 111.382225 yards. +(14937, 179486, 0, -3204, -1087.91, 9.14602, 3.45576, 0, 0, -0.987688, 0.156436, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14893 at 61.014874 yards. +(14877, 179486, 0, -3310.85, -1004.25, 7.65514, 3.83973, 0, 0, -0.939692, 0.34202, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14855 at 97.019035 yards. +(14881, 179486, 0, -3223.31, -989.095, 5.42115, 2.56563, 0, 0, 0.958819, 0.284016, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14855 at 109.839447 yards. +(14603, 179486, 0, -3122.36, -1420.57, 11.2572, 5.02655, 0, 0, -0.587785, 0.809017, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14572 at 119.706886 yards. +(14938, 179486, 0, -3173.54, -924.95, 7.74012, 1.55334, 0, 0, 0.700909, 0.713251, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14855 at 125.413963 yards. +(14939, 179486, 0, -2953.72, -1035, 7.84795, 5.25344, 0, 0, -0.492423, 0.870356, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14893 at 202.001968 yards. +(14940, 179486, 0, -3031.18, -1100.91, 6.25554, 1.02974, 0, 0, 0.492423, 0.870356, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14893 at 113.338135 yards. +(14674, 179486, 0, -2966.98, -1147.13, 7.30024, 4.7473, 0, 0, -0.694658, 0.71934, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14650 at 155.709351 yards. +(14941, 179486, 0, -3234.56, -1227.86, 8.19779, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14909 at 69.685471 yards. +(14942, 179486, 0, -3250.55, -930.144, 8.67531, 1.88495, 0, 0, 0.809016, 0.587786, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14855 at 52.490597 yards. +(14944, 179486, 0, -3286.68, -1161.27, 8.09106, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14909 at 100.416359 yards. +(14957, 179486, 0, -3077.5, -934.708, 5.50814, 0.994837, 0, 0, 0.477159, 0.878817, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 14893 at 179.664276 yards. +(14958, 179486, 0, -3014.69, -1033.26, 7.44476, 1.93731, 0, 0, 0.824125, 0.566408, 180, 180, 1, 100, 1, 10); -- Closest existing guid is 14893 at 146.604752 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(14896, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14899, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14663, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14664, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14935, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14665, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14668, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14669, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14672, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14901, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14902, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14903, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14673, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14936, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14937, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14877, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14881, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14603, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14938, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14939, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14940, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14674, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14941, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14942, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14944, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14957, 408, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Wetlands +(14958, 408, 0, 'Battered Footlocker', 1, 10); -- Battered Footlockers in Wetlands + +-- Missing Battered Footlocker spawns in Hillsbrad Foothills. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(21236, 179486, 0, -583.034, -1517.14, 52.6381, 2.51327, 0, 0, 0.951056, 0.309017, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 21235 at 41.986523 yards. +(30010, 179486, 0, -590.016, -1460.08, 53.7956, 4.27606, 0, 0, -0.843391, 0.5373, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30007 at 9.769987 yards. +(30011, 179486, 0, -552.433, -1438.01, 52.4409, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30008 at 22.425257 yards. +(30034, 179486, 0, -531.949, -1420.86, 54.4529, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30006 at 15.581399 yards. +(30035, 179486, 0, -488.138, -1338.01, 53.637, 3.83973, 0, 0, -0.939692, 0.34202, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30006 at 94.412148 yards. +(30066, 179486, 0, -454.786, -1351.8, 53.604, 1.02974, 0, 0, 0.492423, 0.870356, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30006 at 109.389244 yards. +(30069, 179486, 0, -601.285, -1529.93, 53.66, 0.418879, 0, 0, 0.207911, 0.978148, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30012 at 58.273521 yards. +(21238, 179486, 0, -578.57, -1543.06, 53.5969, 5.79449, 0, 0, -0.241921, 0.970296, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 21235 at 46.476067 yards. +(21241, 179486, 0, -544.115, -1559.32, 52.5438, 5.86431, 0, 0, -0.207911, 0.978148, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 21235 at 43.842266 yards. +(30071, 179486, 0, -450.625, -1358.9, 52.4847, 4.11898, 0, 0, -0.882947, 0.469473, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30006 at 109.173042 yards. +(30074, 179486, 0, -496.88, -1396.31, 52.4617, 3.85718, 0, 0, -0.936671, 0.35021, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30006 at 51.348278 yards. +(30075, 179486, 0, -496.892, -1355.18, 53.6745, 2.30383, 0, 0, 0.913545, 0.406738, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30006 at 75.530777 yards. +(30098, 179486, 0, -590.885, -1479.43, 53.846, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30012 at 8.437509 yards. +(30103, 179486, 0, -598.473, -1502.89, 54.0429, 4.50295, 0, 0, -0.777145, 0.629321, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30012 at 32.020172 yards. +(21242, 179486, 0, -565.42, -1499.83, 52.5574, 2.00713, 0, 0, 0.843391, 0.5373, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 21235 at 29.005678 yards. +(30105, 179486, 0, -516.654, -1362.59, 52.4409, 3.87463, 0, 0, -0.93358, 0.358368, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30006 at 58.102730 yards. +(21243, 179486, 0, -548.937, -1544.72, 52.5503, 1.11701, 0, 0, 0.529919, 0.848048, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 21235 at 30.180832 yards. +(21244, 179486, 0, -570.178, -1555.09, 53.4028, 1.0821, 0, 0, 0.515038, 0.857168, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 21235 at 49.059471 yards. +(30106, 179486, 0, -490.905, -1365.88, 52.4414, 4.93928, 0, 0, -0.622514, 0.782609, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30006 at 72.099030 yards. +(30110, 179486, 0, -453.322, -1335.52, 53.8442, 4.13643, 0, 0, -0.878817, 0.47716, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30006 at 120.389412 yards. +(30114, 179486, 0, -474.349, -1331.79, 52.4409, 2.61799, 0, 0, 0.965925, 0.258821, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30006 at 107.965469 yards. +(30120, 179486, 0, -473.703, -1366.01, 52.4819, 4.25861, 0, 0, -0.848047, 0.529921, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30006 at 85.772362 yards. +(30125, 179486, 0, -468.091, -1383.6, 52.5109, 1.83259, 0, 0, 0.793353, 0.608762, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30006 at 82.746429 yards. +(21245, 179486, 0, -548.366, -1488.67, 52.4409, 3.45576, 0, 0, -0.987688, 0.156436, 180, 180, 1, 100, 1, 10); -- Closest existing guid is 21235 at 27.902477 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(21236, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30010, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30011, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30034, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30035, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30066, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30069, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(21238, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(21241, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30071, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30074, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30075, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30098, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30103, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(21242, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30105, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(21243, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(21244, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30106, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30110, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30114, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30120, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(30125, 409, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Hillsbrad Foothills +(21245, 409, 0, 'Battered Footlocker', 1, 10); -- Battered Footlockers in Hillsbrad Foothills + +-- Missing Battered Footlocker spawns in Stonetalon Mountains. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(34193, 179486, 1, 1219.48, -323.364, 4.34928, 1.16937, 0, 0, 0.551936, 0.833886, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 34181 at 89.118652 yards. +(35011, 179486, 1, 1120.22, -360.83, -0.368548, 2.19911, 0, 0, 0.891006, 0.453991, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35008 at 126.651596 yards. +(34201, 179486, 1, 1182.92, -416.675, 16.2559, 1.76278, 0, 0, 0.771625, 0.636078, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 34181 at 182.110413 yards. +(35027, 179486, 1, 1203.5, -31.3563, -2.82677, 3.45576, 0, 0, -0.987688, 0.156436, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35025 at 75.001717 yards. +(34202, 179486, 1, 1156.75, -181.654, 1.68444, 0.383971, 0, 0, 0.190808, 0.981627, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 34181 at 77.083549 yards. +(34203, 179486, 1, 1160.72, 191.981, 4.09873, 2.51327, 0, 0, 0.951056, 0.309017, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 34186 at 30.550817 yards. +(35013, 179486, 1, 1349.64, 225.174, 13.3361, 4.60767, 0, 0, -0.743144, 0.669131, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35012 at 110.224007 yards. +(35020, 179486, 1, 1087.92, -431.242, 0.979811, 1.16937, 0, 0, 0.551936, 0.833886, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35008 at 186.560577 yards. +(35021, 179486, 1, 1053.41, -434.463, 3.52878, 0.95993, 0, 0, 0.461748, 0.887011, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35008 at 189.123840 yards. +(35022, 179486, 1, 1123.68, 28.9255, 4.57795, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35017 at 108.203758 yards. +(35023, 179486, 1, 1269.38, -182.082, 5.46835, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35007 at 60.114716 yards. +(34204, 179486, 1, 1318.57, 99.8749, 3.27564, 3.68265, 0, 0, -0.96363, 0.267241, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 34178 at 88.347176 yards. +(35242, 179486, 1, 1247.54, 83.1062, -2.83286, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35025 at 65.779709 yards. +(35243, 179486, 1, 1368.76, 14.8609, 7.23989, 2.60054, 0, 0, 0.96363, 0.267241, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35025 at 110.168938 yards. +(35024, 179486, 1, 1430.5, -32.8395, 26.4264, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35007 at 180.886353 yards. +(35244, 179486, 1, 1360.1, -356.289, 14.8436, 2.14675, 0, 0, 0.878817, 0.47716, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35015 at 109.334213 yards. +(34205, 179486, 1, 1142.94, -258.566, -2.10636, 0.436332, 0, 0, 0.216439, 0.976296, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 34181 at 65.439873 yards. +(35245, 179486, 1, 1134.98, -98.4274, 2.25652, 6.12611, 0, 0, -0.0784588, 0.996917, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35017 at 68.748642 yards. +(35246, 179486, 1, 1027.94, 5.94765, 14.068, 0.994837, 0, 0, 0.477159, 0.878817, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35017 at 86.633781 yards. +(35247, 179486, 1, 1326.78, -31.8027, 7.5694, 2.00713, 0, 0, 0.843391, 0.5373, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35025 at 85.129242 yards. +(35248, 179486, 1, 1400.45, 79.8333, 16.0442, 2.25147, 0, 0, 0.902585, 0.430512, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35025 at 155.337830 yards. +(34206, 179486, 1, 1133.32, -158.61, 2.92415, 1.44862, 0, 0, 0.66262, 0.748956, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 34181 at 109.070412 yards. +(35249, 179486, 1, 1270.48, -90.5138, 2.7399, 2.3911, 0, 0, 0.930417, 0.366502, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35007 at 108.485313 yards. +(35250, 179486, 1, 1447.52, 90.7417, 19.8746, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35025 at 203.125656 yards. +(35251, 179486, 1, 1272.48, 208.63, 12.1666, 4.79966, 0, 0, -0.67559, 0.737278, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35012 at 36.076599 yards. +(34207, 179486, 1, 1196, 84.5773, -6.96745, 3.35105, 0, 0, -0.994521, 0.104536, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 34178 at 88.872475 yards. +(35252, 179486, 1, 1327.62, 46.2403, 13.1024, 3.83973, 0, 0, -0.939692, 0.34202, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35025 at 76.040192 yards. +(35253, 179486, 1, 1317.26, -326.386, 10.6947, 1.85005, 0, 0, 0.798635, 0.601815, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35015 at 64.972610 yards. +(35254, 179486, 1, 1363.94, -130.593, 0.77537, 2.49582, 0, 0, 0.948323, 0.317306, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35007 at 61.676022 yards. +(35255, 179486, 1, 1344.6, -221.029, -4.98569, 3.85718, 0, 0, -0.936671, 0.35021, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 35007 at 43.714046 yards. +(34208, 179486, 1, 1362.49, 121.718, 12.9175, 1.78023, 0, 0, 0.777145, 0.629321, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 34178 at 118.160507 yards. +(34209, 179486, 1, 1097.99, 145.711, 5.48243, 3.08918, 0, 0, 0.999657, 0.0262016, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 34186 at 91.396187 yards. +(35256, 179486, 1, 1417.42, -122.598, 17.4324, 5.044, 0, 0, -0.580703, 0.814116, 180, 180, 1, 100, 1, 10); -- Closest existing guid is 35007 at 106.452530 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(34193, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35011, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(34201, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35027, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(34202, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(34203, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35013, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35020, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35021, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35022, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35023, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(34204, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35242, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35243, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35024, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35244, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(34205, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35245, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35246, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35247, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35248, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(34206, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35249, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35250, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35251, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(34207, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35252, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35253, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35254, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35255, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(34208, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(34209, 410, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Stonetalon Mountains +(35256, 410, 0, 'Battered Footlocker', 1, 10); -- Battered Footlockers in Stonetalon Mountains + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` = 179486; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 36c3c0fdb9eeb4c11bda3d80da7856d9c330e4d7 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 30 Jun 2023 17:01:32 +0100 Subject: [PATCH 028/426] Add Missing Battered Footlocker (179490) (#1995) --- sql/migrations/20230628181319_world.sql | 56 +++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 sql/migrations/20230628181319_world.sql diff --git a/sql/migrations/20230628181319_world.sql b/sql/migrations/20230628181319_world.sql new file mode 100644 index 00000000000..be20280ec62 --- /dev/null +++ b/sql/migrations/20230628181319_world.sql @@ -0,0 +1,56 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230628181319'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230628181319'); +-- Add your query below. + + +-- Create new pool to hold Battered Footlocker spawns in Badlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(411, 6, 'Battered Footlockers in Badlands', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11454, 411, 0, 'Battered Footlocker', 1, 10), +(11470, 411, 0, 'Battered Footlocker', 1, 10), +(11471, 411, 0, 'Battered Footlocker', 1, 10), +(11472, 411, 0, 'Battered Footlocker', 1, 10), +(11474, 411, 0, 'Battered Footlocker', 1, 10), +(11475, 411, 0, 'Battered Footlocker', 1, 10); + +-- Missing Battered Footlocker spawns in Badlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(11457, 179490, 0, -6366.63, -3155.48, 302.5, 0.872664, 0, 0, 0.422618, 0.906308, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11454 at 20.817059 yards. +(11473, 179490, 0, -6377.31, -3097.08, 293.056, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11472 at 20.251705 yards. +(11481, 179490, 0, -6345.96, -3079.82, 310.834, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11470 at 10.440856 yards. +(11483, 179490, 0, -6380.58, -3131.48, 301.111, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11475 at 23.541855 yards. +(11488, 179490, 0, -6345.52, -3077.57, 301.389, 5.55015, 0, 0, -0.358368, 0.93358, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11470 at 15.524481 yards. +(11491, 179490, 0, -6326.67, -3093.85, 301.389, 2.44346, 0, 0, 0.939692, 0.34202, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11474 at 17.731228 yards. +(11492, 179490, 0, -6349.29, -3122.93, 301.111, 2.46091, 0, 0, 0.942641, 0.333808, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11474 at 31.215763 yards. +(11494, 179490, 0, -6333.51, -3095.75, 310.834, 0.872664, 0, 0, 0.422618, 0.906308, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11474 at 16.276421 yards. +(11495, 179490, 0, -6342.15, -3131.68, 310.836, 2.40855, 0, 0, 0.93358, 0.358368, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11474 at 29.834326 yards. +(11502, 179490, 0, -6343.21, -3094.27, 301.111, 4.03171, 0, 0, -0.902585, 0.430512, 180, 180, 1, 100, 1, 10); -- Closest existing guid is 11470 at 16.360876 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11457, 411, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Badlands +(11473, 411, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Badlands +(11481, 411, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Badlands +(11483, 411, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Badlands +(11488, 411, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Badlands +(11491, 411, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Badlands +(11492, 411, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Badlands +(11494, 411, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Badlands +(11495, 411, 0, 'Battered Footlocker', 1, 10), -- Battered Footlockers in Badlands +(11502, 411, 0, 'Battered Footlocker', 1, 10); -- Battered Footlockers in Badlands + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` = 179490; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 7124a2db74e701dbb942c2c9087f90dfa78ca6ac Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 30 Jun 2023 17:01:53 +0100 Subject: [PATCH 029/426] Add Missing Dented Footlockers (179496) (#1997) --- sql/migrations/20230628194325_world.sql | 121 ++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 sql/migrations/20230628194325_world.sql diff --git a/sql/migrations/20230628194325_world.sql b/sql/migrations/20230628194325_world.sql new file mode 100644 index 00000000000..5310e739a3a --- /dev/null +++ b/sql/migrations/20230628194325_world.sql @@ -0,0 +1,121 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230628194325'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230628194325'); +-- Add your query below. + + +-- Create new pool to hold Dented Footlocker spawns in Searing Gorge. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(414, 8, 'Dented Footlockers in Searing Gorge', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(7053, 414, 0, 'Dented Footlocker', 1, 10), +(7054, 414, 0, 'Dented Footlocker', 1, 10), +(7055, 414, 0, 'Dented Footlocker', 1, 10), +(7056, 414, 0, 'Dented Footlocker', 1, 10), +(9970, 414, 0, 'Dented Footlocker', 1, 10); + +-- Create new pool to hold Dented Footlocker spawns in Tanaris. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(415, 11, 'Dented Footlockers in Tanaris', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(17274, 415, 0, 'Dented Footlocker', 1, 10), +(17275, 415, 0, 'Dented Footlocker', 1, 10), +(17276, 415, 0, 'Dented Footlocker', 1, 10), +(17277, 415, 0, 'Dented Footlocker', 1, 10), +(17278, 415, 0, 'Dented Footlocker', 1, 10), +(17279, 415, 0, 'Dented Footlocker', 1, 10), +(17280, 415, 0, 'Dented Footlocker', 1, 10), +(17281, 415, 0, 'Dented Footlocker', 1, 10); + +-- Missing Dented Footlocker spawns in Searing Gorge. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(7059, 179496, 0, -6645.22, -1286.76, 208.616, 5.91667, 0, 0, -0.182235, 0.983255, 7200, 7200, 1, 100, 1, 10), -- Closest existing guid is 7056 at 81.857880 yards. +(7061, 179496, 0, -6621.68, -1228.86, 209.808, 3.94445, 0, 0, -0.920505, 0.390732, 7200, 7200, 1, 100, 1, 10), -- Closest existing guid is 7056 at 77.557053 yards. +(7062, 179496, 0, -6644.26, -1233.54, 209.81, 0.401425, 0, 0, 0.199368, 0.979925, 7200, 7200, 1, 100, 1, 10), -- Closest existing guid is 7056 at 93.207207 yards. +(9999, 179496, 0, -6563.71, -1338.32, 208.777, 0.174532, 0, 0, 0.0871553, 0.996195, 7200, 7200, 1, 100, 1, 10), -- Closest existing guid is 9970 at 35.414371 yards. +(10004, 179496, 0, -6526.39, -1292.38, 200.945, 5.61996, 0, 0, -0.325567, 0.945519, 7200, 7200, 1, 100, 1, 10), -- Closest existing guid is 9970 at 35.583958 yards. +(10007, 179496, 0, -6586.92, -1304, 208.743, 1.44862, 0, 0, 0.66262, 0.748956, 7200, 7200, 1, 100, 1, 10), -- Closest existing guid is 9970 at 27.542294 yards. +(10058, 179496, 0, -6616.51, -1303.85, 208.743, 2.18166, 0, 0, 0.887011, 0.461749, 7200, 7200, 1, 100, 1, 10), -- Closest existing guid is 9970 at 57.123676 yards. +(7063, 179496, 0, -6557.3, -1264.01, 208.674, 4.92183, 0, 0, -0.62932, 0.777146, 7200, 7200, 1, 100, 1, 10), -- Closest existing guid is 7056 at 17.445314 yards. +(7064, 179496, 0, -6750.8, -1386.84, 194.181, 2.49582, 0, 0, 0.948323, 0.317306, 7200, 7200, 1, 100, 1, 10), -- Closest existing guid is 7054 at 18.544992 yards. +(7066, 179496, 0, -6587.98, -1270.17, 208.743, 4.88692, 0, 0, -0.642787, 0.766045, 7200, 7200, 1, 100, 1, 10), -- Closest existing guid is 7056 at 26.370674 yards. +(7067, 179496, 0, -6491.73, -1345.37, 212.107, 5.23599, 0, 0, -0.5, 0.866025, 7200, 7200, 1, 100, 1, 10), -- Closest existing guid is 7055 at 25.613008 yards. +(7068, 179496, 0, -6535.62, -1359.2, 209.033, 1.15192, 0, 0, 0.544639, 0.838671, 7200, 7200, 1, 100, 1, 10), -- Closest existing guid is 7053 at 20.931141 yards. +(10060, 179496, 0, -6632.78, -1320.45, 208.743, 1.74533, 0, 0, 0.766044, 0.642789, 7200, 7200, 1, 100, 1, 10), -- Closest existing guid is 9970 at 75.396523 yards. +(7069, 179496, 0, -6739.9, -1408.06, 215.522, 1.50098, 0, 0, 0.681998, 0.731354, 7200, 7200, 1, 100, 1, 10), -- Closest existing guid is 7054 at 46.463131 yards. +(7070, 179496, 0, -6478.27, -1338.94, 212.107, 4.01426, 0, 0, -0.906307, 0.422619, 7200, 7200, 1, 100, 1, 10); -- Closest existing guid is 7055 at 30.453411 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(7059, 414, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7061, 414, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7062, 414, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(9999, 414, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10004, 414, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10007, 414, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10058, 414, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7063, 414, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7064, 414, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7066, 414, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7067, 414, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7068, 414, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10060, 414, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7069, 414, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7070, 414, 0, 'Dented Footlocker', 1, 10); -- Dented Footlockers in Searing Gorge + +-- Missing Dented Footlocker spawns in Tanaris. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(17312, 179496, 1, -7916.56, -5206.65, 0.708901, 6.0912, 0, 0, -0.0958452, 0.995396, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17280 at 78.967987 yards. +(17313, 179496, 1, -8041.49, -5207.45, 0.57482, 3.50812, 0, 0, -0.983254, 0.182238, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17280 at 69.065140 yards. +(17314, 179496, 1, -8091.85, -5225.95, 0.840984, 0.349065, 0, 0, 0.173648, 0.984808, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17274 at 90.441612 yards. +(17315, 179496, 1, -8071.07, -5244.25, 2.37394, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17280 at 86.463295 yards. +(17328, 179496, 1, -8023.18, -5388.44, 0.569156, 1.06465, 0, 0, 0.507538, 0.861629, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17281 at 18.676846 yards. +(17353, 179496, 1, -7963.17, -5235.39, 1.72257, 1.58825, 0, 0, 0.71325, 0.70091, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17280 at 24.241430 yards. +(17355, 179496, 1, -8048.72, -5326.68, 8.17487, 5.42797, 0, 0, -0.414693, 0.909961, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17278 at 19.572109 yards. +(17356, 179496, 1, -8081.23, -5284.02, 0.588573, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17278 at 71.535370 yards. +(17357, 179496, 1, -7892.96, -5163.64, 5.33995, 0.244346, 0, 0, 0.121869, 0.992546, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17280 at 123.713417 yards. +(17360, 179496, 1, -8058.73, -5153.32, 10.2032, 5.35816, 0, 0, -0.446198, 0.894935, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17274 at 44.738682 yards. +(17424, 179496, 1, -7972.73, -5292.55, 0.633841, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17280 at 47.450871 yards. +(17426, 179496, 1, -7865.37, -5116.27, 5.89815, 0.209439, 0, 0, 0.104528, 0.994522, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17280 at 176.738312 yards. +(17446, 179496, 1, -8108.45, -5270.5, 1.85173, 4.99164, 0, 0, -0.601814, 0.798636, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17278 at 100.183624 yards. +(17447, 179496, 1, -8089.51, -5340.05, 7.68573, 0.59341, 0, 0, 0.292371, 0.956305, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17277 at 49.123428 yards. +(17448, 179496, 1, -7990.16, -5424.76, 1.12043, 0.418879, 0, 0, 0.207911, 0.978148, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17279 at 45.383316 yards. +(17449, 179496, 1, -8087.64, -5305.57, 1.05312, 5.35816, 0, 0, -0.446198, 0.894935, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17278 at 62.177383 yards. +(17450, 179496, 1, -8117.3, -5227.89, 3.96554, 5.21854, 0, 0, -0.507538, 0.861629, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17274 at 93.188416 yards. +(17451, 179496, 1, -7971.1, -5404.14, 1.12043, 3.57793, 0, 0, -0.976295, 0.216442, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 17276 at 23.052532 yards. +(17452, 179496, 1, -7958.7, -5475.55, 12.945, 0.575957, 0, 0, 0.284015, 0.95882, 180, 180, 1, 100, 1, 10); -- Closest existing guid is 17279 at 39.349831 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(17312, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17313, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17314, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17315, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17328, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17353, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17355, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17356, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17357, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17360, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17424, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17426, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17446, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17447, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17448, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17449, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17450, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17451, 415, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Tanaris +(17452, 415, 0, 'Dented Footlocker', 1, 10); -- Dented Footlockers in Tanaris + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` = 179496; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 657567bb8de928237f3dfc29df7224863bd2ba4a Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 30 Jun 2023 19:33:02 +0100 Subject: [PATCH 030/426] Add Missing Dented Footlockers (179492) (#1998) --- sql/migrations/20230629152130_world.sql | 52 +++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 sql/migrations/20230629152130_world.sql diff --git a/sql/migrations/20230629152130_world.sql b/sql/migrations/20230629152130_world.sql new file mode 100644 index 00000000000..7e7805376b3 --- /dev/null +++ b/sql/migrations/20230629152130_world.sql @@ -0,0 +1,52 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230629152130'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230629152130'); +-- Add your query below. + + +-- Create new pool to hold Dented Footlocker spawns in Badlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(416, 5, 'Dented Footlockers in Badlands', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11496, 416, 0, 'Dented Footlocker', 1, 10), +(11497, 416, 0, 'Dented Footlocker', 1, 10), +(11498, 416, 0, 'Dented Footlocker', 1, 10), +(11499, 416, 0, 'Dented Footlocker', 1, 10); + +-- Missing Dented Footlocker spawns in Badlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(11505, 179492, 0, -6354.1, -3110.97, 285.278, 2.53072, 0, 0, 0.953716, 0.300708, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11497 at 16.270391 yards. +(11506, 179492, 0, -6341.45, -3112.8, 293.056, 2.49582, 0, 0, 0.948323, 0.317306, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11497 at 12.244774 yards. +(11507, 179492, 0, -6376.45, -3125.57, 283.889, 5.61996, 0, 0, -0.325567, 0.945519, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11499 at 16.878023 yards. +(11508, 179492, 0, -6368.76, -3132.49, 284.563, 1.29154, 0, 0, 0.601814, 0.798636, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11499 at 8.145582 yards. +(11509, 179492, 0, -6375.28, -3119.65, 283.889, 6.10865, 0, 0, -0.0871553, 0.996195, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11499 at 18.865578 yards. +(11511, 179492, 0, -6340.54, -3126.39, 293.057, 0.890117, 0, 0, 0.430511, 0.902586, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11499 at 22.744701 yards. +(11512, 179492, 0, -6349.47, -3066.05, 301.111, 5.89921, 0, 0, -0.190808, 0.981627, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11496 at 27.809978 yards. +(11513, 179492, 0, -6356.58, -3126.73, 283.889, 2.40855, 0, 0, 0.93358, 0.358368, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 11499 at 6.380174 yards. +(11514, 179492, 0, -6334.34, -3121.7, 293.057, 4.13643, 0, 0, -0.878817, 0.47716, 180, 180, 1, 100, 1, 10); -- Closest existing guid is 11497 at 23.009706 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11505, 416, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Badlands +(11506, 416, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Badlands +(11507, 416, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Badlands +(11508, 416, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Badlands +(11509, 416, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Badlands +(11511, 416, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Badlands +(11512, 416, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Badlands +(11513, 416, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Badlands +(11514, 416, 0, 'Dented Footlocker', 1, 10); -- Dented Footlockers in Badlands + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` = 179492; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 1c7729ce73bd9992403416ec398e845ee2d2eb93 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 30 Jun 2023 19:33:12 +0100 Subject: [PATCH 031/426] Add Missing Dented Footlockers (179494) (#1999) --- sql/migrations/20230629153420_world.sql | 85 +++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 sql/migrations/20230629153420_world.sql diff --git a/sql/migrations/20230629153420_world.sql b/sql/migrations/20230629153420_world.sql new file mode 100644 index 00000000000..5fea813900c --- /dev/null +++ b/sql/migrations/20230629153420_world.sql @@ -0,0 +1,85 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230629153420'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230629153420'); +-- Add your query below. + + +-- Create new pool to hold Dented Footlocker spawns in Searing Gorge. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(514, 14, 'Dented Footlockers in Searing Gorge', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(7040, 514, 0, 'Dented Footlocker', 1, 10), +(7052, 514, 0, 'Dented Footlocker', 1, 10), +(7057, 514, 0, 'Dented Footlocker', 1, 10), +(7058, 514, 0, 'Dented Footlocker', 1, 10), +(9928, 514, 0, 'Dented Footlocker', 1, 10), +(9951, 514, 0, 'Dented Footlocker', 1, 10), +(9960, 514, 0, 'Dented Footlocker', 1, 10), +(9976, 514, 0, 'Dented Footlocker', 1, 10); + +-- Missing Dented Footlocker spawns in Searing Gorge. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(7072, 179494, 0, -6512.53, -1226.73, 180.906, 4.92183, 0, 0, -0.62932, 0.777146, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 7052 at 47.373394 yards. +(10062, 179494, 0, -6755.83, -1268.04, 184.093, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 9928 at 98.255157 yards. +(10067, 179494, 0, -6693.35, -1146.22, 185.553, 4.38078, 0, 0, -0.814116, 0.580703, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 9928 at 82.431602 yards. +(7073, 179494, 0, -6714.52, -1106.64, 185.57, 4.81711, 0, 0, -0.66913, 0.743145, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 7040 at 64.176201 yards. +(10070, 179494, 0, -6904.37, -1266.76, 178.367, 2.51327, 0, 0, 0.951056, 0.309017, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 9951 at 55.943066 yards. +(10092, 179494, 0, -6905.48, -1317.65, 214.202, 3.94445, 0, 0, -0.920505, 0.390732, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 9951 at 90.644028 yards. +(10103, 179494, 0, -6901.59, -1332.98, 178.026, 3.35105, 0, 0, -0.994521, 0.104536, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 9951 at 111.494835 yards. +(7075, 179494, 0, -6487.51, -1216.39, 179.769, 4.93928, 0, 0, -0.622514, 0.782609, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 7057 at 32.579067 yards. +(10124, 179494, 0, -6564.79, -1161.19, 185.533, 4.43314, 0, 0, -0.798635, 0.601815, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 9976 at 70.522041 yards. +(10165, 179494, 0, -6588.27, -1239.27, 187.742, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 9976 at 25.816418 yards. +(10229, 179494, 0, -6734.04, -1249.45, 182.805, 2.58308, 0, 0, 0.961261, 0.27564, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 9928 at 70.786957 yards. +(7076, 179494, 0, -6433.15, -1239.85, 180.939, 3.89209, 0, 0, -0.930417, 0.366502, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 7057 at 54.476345 yards. +(10231, 179494, 0, -6634.95, -1184.97, 184.052, 4.83456, 0, 0, -0.66262, 0.748956, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 9928 at 51.571617 yards. +(10233, 179494, 0, -6725.11, -1213.18, 181.36, 4.27606, 0, 0, -0.843391, 0.5373, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 9928 at 58.323711 yards. +(10235, 179494, 0, -6708.36, -1171.31, 185.451, 0.349065, 0, 0, 0.173648, 0.984808, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 9928 at 67.000107 yards. +(7077, 179494, 0, -6891.97, -1185.27, 195.852, 2.86234, 0, 0, 0.990268, 0.139175, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 7058 at 37.689632 yards. +(10236, 179494, 0, -6758.77, -1183.21, 185.659, 3.10665, 0, 0, 0.999847, 0.0174693, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 9960 at 27.085808 yards. +(10237, 179494, 0, -6855.45, -1233.14, 177.142, 1.79769, 0, 0, 0.782608, 0.622515, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 9951 at 49.225571 yards. +(7079, 179494, 0, -6748.54, -1135.91, 185.602, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 7040 at 33.837051 yards. +(10239, 179494, 0, -6655.63, -1235.18, 179.888, 1.76278, 0, 0, 0.771625, 0.636078, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 9928 at 16.326767 yards. +(7080, 179494, 0, -6428.35, -1278.58, 180.939, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 7057 at 91.042252 yards. +(7081, 179494, 0, -6736.37, -1103.68, 185.529, 4.76475, 0, 0, -0.688354, 0.725374, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 7040 at 46.533806 yards. +(10240, 179494, 0, -6656.28, -1162.41, 185.47, 3.49067, 0, 0, -0.984807, 0.173652, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 9928 at 63.337528 yards. +(7082, 179494, 0, -6480.9, -1303.11, 180.933, 1.43117, 0, 0, 0.656058, 0.75471, 180, 180, 1, 100, 1, 10); -- Closest existing guid is 7052 at 68.294716 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(7072, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10062, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10067, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7073, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10070, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10092, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10103, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7075, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10124, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10165, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10229, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7076, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10231, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10233, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10235, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7077, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10236, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10237, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7079, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10239, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7080, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7081, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(10240, 514, 0, 'Dented Footlocker', 1, 10), -- Dented Footlockers in Searing Gorge +(7082, 514, 0, 'Dented Footlocker', 1, 10); -- Dented Footlockers in Searing Gorge + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` = 179494; + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 0c9f82ff0af4541b0c06adfcda387bcc38519c65 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 30 Jun 2023 19:33:25 +0100 Subject: [PATCH 032/426] Add Missing Mossy Footlockers (179493) (#2000) --- sql/migrations/20230629155159_world.sql | 116 ++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 sql/migrations/20230629155159_world.sql diff --git a/sql/migrations/20230629155159_world.sql b/sql/migrations/20230629155159_world.sql new file mode 100644 index 00000000000..d2910c083ca --- /dev/null +++ b/sql/migrations/20230629155159_world.sql @@ -0,0 +1,116 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230629155159'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230629155159'); +-- Add your query below. + + +-- Create new pool to hold Mossy Footlocker spawns in Swamp of Sorrows. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(457, 7, 'Mossy Footlockers in Swamp of Sorrows', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30567, 457, 0, 'Mossy Footlocker', 1, 10), +(30568, 457, 0, 'Mossy Footlocker', 1, 10), +(30570, 457, 0, 'Mossy Footlocker', 1, 10), +(30572, 457, 0, 'Mossy Footlocker', 1, 10), +(30573, 457, 0, 'Mossy Footlocker', 1, 10), +(30576, 457, 0, 'Mossy Footlocker', 1, 10); + +-- Create new pool to hold Mossy Footlocker spawns in Desolace. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(455, 5, 'Mossy Footlockers in Desolace', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30163, 455, 0, 'Mossy Footlocker', 1, 10), +(30164, 455, 0, 'Mossy Footlocker', 1, 10), +(30165, 455, 0, 'Mossy Footlocker', 1, 10); + +-- Create new pool to hold Mossy Footlocker spawns in Sunken Temple +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(456, 4, 'Mossy Footlockers in Sunken Temple', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30566, 456, 0, 'Mossy Footlocker', 1, 10), +(30580, 456, 0, 'Mossy Footlocker', 1, 10), +(30582, 456, 0, 'Mossy Footlocker', 1, 10); + +-- Missing Mossy Footlocker spawns in Swamp of Sorrows. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(30569, 179493, 0, -10482.1, -3701.74, -19.4023, 2.19911, 0, 0, 0.891006, 0.453991, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30567 at 51.654026 yards. +(30575, 179493, 0, -10521.1, -3779.46, -16.6978, 2.40855, 0, 0, 0.93358, 0.358368, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30567 at 37.523335 yards. +(30593, 179493, 0, -10467.2, -3905.3, -15.7276, 5.81195, 0, 0, -0.233445, 0.97237, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30576 at 52.244759 yards. +(30595, 179493, 0, -10302.7, -3810.34, -13.1259, 2.32129, 0, 0, 0.91706, 0.39875, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30570 at 79.810295 yards. +(30596, 179493, 0, -10574, -3917.21, -19.01, 2.9845, 0, 0, 0.996917, 0.0784664, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30573 at 48.485054 yards. +(30620, 179493, 0, -10477.1, -3717.89, -19.6291, 0.453785, 0, 0, 0.224951, 0.97437, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30567 at 44.043659 yards. +(30621, 179493, 0, -10550.3, -3840.56, -19.2394, 2.09439, 0, 0, 0.866025, 0.500001, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30568 at 20.259188 yards. +(30623, 179493, 0, -10536.3, -3882.09, -19.6291, 0.0523589, 0, 0, 0.0261765, 0.999657, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30573 at 29.017849 yards. +(30625, 179493, 0, -10322.3, -3827.63, -8.78169, 2.3911, 0, 0, 0.930417, 0.366502, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30570 at 53.880108 yards. +(30626, 179493, 0, -10314.5, -3887.94, -12.7077, 3.50812, 0, 0, -0.983254, 0.182238, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30570 at 48.433655 yards. +(30627, 179493, 0, -10318.8, -3835.39, -8.1594, 5.14872, 0, 0, -0.537299, 0.843392, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30570 at 51.128468 yards. +(30634, 179493, 0, -10549, -3922.14, -19.1219, 0.802851, 0, 0, 0.390731, 0.920505, 600, 600, 1, 100, 1, 10); -- Closest existing guid is 30576 at 33.611668 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30569, 457, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Swamp of Sorrows +(30575, 457, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Swamp of Sorrows +(30593, 457, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Swamp of Sorrows +(30595, 457, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Swamp of Sorrows +(30596, 457, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Swamp of Sorrows +(30620, 457, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Swamp of Sorrows +(30621, 457, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Swamp of Sorrows +(30623, 457, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Swamp of Sorrows +(30625, 457, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Swamp of Sorrows +(30626, 457, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Swamp of Sorrows +(30627, 457, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Swamp of Sorrows +(30634, 457, 0, 'Mossy Footlocker', 1, 10); -- Mossy Footlockers in Swamp of Sorrows + +-- Missing Mossy Footlocker spawns in Desolace. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(30179, 179493, 1, -64.3885, 2595.78, -85.2495, 0.418879, 0, 0, 0.207911, 0.978148, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30164 at 94.667030 yards. +(30180, 179493, 1, 22.3544, 2755.5, -21.9691, 4.50295, 0, 0, -0.777145, 0.629321, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30163 at 113.030151 yards. +(30194, 179493, 1, 143.776, 2750.75, -70.1861, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30163 at 104.736702 yards. +(30195, 179493, 1, -23.0186, 2883.63, -24.2955, 2.93214, 0, 0, 0.994521, 0.104536, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30164 at 212.185608 yards. +(30198, 179493, 1, -66.8945, 2662.57, -101.944, 2.28638, 0, 0, 0.909961, 0.414694, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30164 at 28.269732 yards. +(30205, 179493, 1, -33.1207, 2803.82, -28.6924, 1.69297, 0, 0, 0.748956, 0.66262, 180, 180, 1, 100, 1, 10); -- Closest existing guid is 30164 at 138.036453 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30179, 455, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Desolace +(30180, 455, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Desolace +(30194, 455, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Desolace +(30195, 455, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Desolace +(30198, 455, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Desolace +(30205, 455, 0, 'Mossy Footlocker', 1, 10); -- Mossy Footlockers in Desolace + +-- Missing Mossy Footlocker spawns in Sunken Temple. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(30571, 179493, 0, -10476.1, -3779.97, 8.15162, 4.50295, 0, 0, -0.777145, 0.629321, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30566 at 108.843536 yards. +(30574, 179493, 0, -10493.1, -3788.77, -2.88936, 2.16421, 0, 0, 0.882947, 0.469473, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30566 at 125.475525 yards. +(30581, 179493, 0, -10462.9, -3879.23, 10.2241, 3.82227, 0, 0, -0.942641, 0.333808, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30580 at 68.122574 yards. +(30587, 179493, 0, -10497.2, -3881.17, -11.1845, 3.50812, 0, 0, -0.983254, 0.182238, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30580 at 98.513741 yards. +(30591, 179493, 0, -10391.1, -3852.76, 17.7112, 5.2709, 0, 0, -0.484809, 0.87462, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30580 at 59.121109 yards. +(30579, 179493, 0, -10438.5, -3750.29, -2.10462, 1.23918, 0, 0, 0.580703, 0.814116, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30566 at 74.626846 yards. +(30594, 179493, 0, -10366.6, -3791.72, 13.7301, 6.07375, 0, 0, -0.104528, 0.994522, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30582 at 24.102236 yards. +(30613, 179493, 0, -10511.8, -3791.45, -5.88725, 2.87979, 0, 0, 0.991445, 0.130528, 600, 600, 1, 100, 1, 10), -- Closest existing guid is 30566 at 144.295197 yards. +(30614, 179493, 0, -10496.7, -3850.98, 9.46467, 2.04204, 0, 0, 0.85264, 0.522499, 600, 600, 1, 100, 1, 10); -- Closest existing guid is 30580 at 110.440681 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30571, 456, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Sunken Temple +(30574, 456, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Sunken Temple +(30581, 456, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Sunken Temple +(30587, 456, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Sunken Temple +(30591, 456, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Sunken Temple +(30579, 456, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Sunken Temple +(30594, 456, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Sunken Temple +(30613, 456, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Sunken Temple +(30614, 456, 0, 'Mossy Footlocker', 1, 10); -- Mossy Footlockers in Sunken Temple + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` = 179493; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From d4ffd70418d8a4a26058baac63569335bc9497d5 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 30 Jun 2023 19:36:40 +0100 Subject: [PATCH 033/426] Add Missing Mossy Footlockers (179497) (#2001) --- sql/migrations/20230629155628_world.sql | 96 +++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 sql/migrations/20230629155628_world.sql diff --git a/sql/migrations/20230629155628_world.sql b/sql/migrations/20230629155628_world.sql new file mode 100644 index 00000000000..1a5f79e87a9 --- /dev/null +++ b/sql/migrations/20230629155628_world.sql @@ -0,0 +1,96 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230629155628'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230629155628'); +-- Add your query below. + + +-- Create new pool to hold Mossy Footlocker spawns in Azshara. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(458, 19, 'Mossy Footlockers in Azshara', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48265, 458, 0, 'Mossy Footlocker', 1, 10), +(48266, 458, 0, 'Mossy Footlocker', 1, 10), +(48267, 458, 0, 'Mossy Footlocker', 1, 10), +(48268, 458, 0, 'Mossy Footlocker', 1, 10), +(48269, 458, 0, 'Mossy Footlocker', 1, 10), +(48270, 458, 0, 'Mossy Footlocker', 1, 10), +(48271, 458, 0, 'Mossy Footlocker', 1, 10), +(48272, 458, 0, 'Mossy Footlocker', 1, 10), +(48273, 458, 0, 'Mossy Footlocker', 1, 10), +(48274, 458, 0, 'Mossy Footlocker', 1, 10), +(48275, 458, 0, 'Mossy Footlocker', 1, 10), +(48276, 458, 0, 'Mossy Footlocker', 1, 10), +(48277, 458, 0, 'Mossy Footlocker', 1, 10), +(48278, 458, 0, 'Mossy Footlocker', 1, 10), +(48279, 458, 0, 'Mossy Footlocker', 1, 10), +(48280, 458, 0, 'Mossy Footlocker', 1, 10), +(48281, 458, 0, 'Mossy Footlocker', 1, 10), +(48282, 458, 0, 'Mossy Footlocker', 1, 10); + +-- Missing Mossy Footlocker spawns in Azshara. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(48285, 179497, 1, 3779.31, -5682.83, -6.04934, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48278 at 140.613693 yards. +(48286, 179497, 1, 4237.11, -6625.9, -14.4877, 2.46091, 0, 0, 0.942641, 0.333808, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48274 at 453.705139 yards. +(48287, 179497, 1, 3800.04, -7206.78, 26.4807, 3.45576, 0, 0, -0.987688, 0.156436, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48267 at 33.188381 yards. +(48288, 179497, 1, 3277.67, -5710.71, -6.61303, 2.19911, 0, 0, 0.891006, 0.453991, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48271 at 127.626930 yards. +(48289, 179497, 1, 3527.06, -5890.35, -1.50365, 5.53269, 0, 0, -0.366501, 0.930418, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48281 at 205.239044 yards. +(48290, 179497, 1, 3706.3, -6187.47, -23.4849, 0.925024, 0, 0, 0.446198, 0.894935, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48273 at 117.762405 yards. +(48296, 179497, 1, 3598.47, -6287.37, -33.6655, 5.2709, 0, 0, -0.484809, 0.87462, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48270 at 78.070686 yards. +(48297, 179497, 1, 3219.52, -6446.21, -9.1047, 3.78737, 0, 0, -0.948323, 0.317306, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48268 at 290.509552 yards. +(48298, 179497, 1, 3498.3, -6620.76, -62.1338, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48270 at 297.558990 yards. +(48415, 179497, 1, 4133.9, -7152.86, 21.1571, 3.99681, 0, 0, -0.909961, 0.414694, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48279 at 163.198013 yards. +(48447, 179497, 1, 3935.17, -6444.64, -19.422, 1.11701, 0, 0, 0.529919, 0.848048, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48269 at 174.710251 yards. +(48451, 179497, 1, 3913.49, -6737.45, -22.0292, 1.51844, 0, 0, 0.688354, 0.725374, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48274 at 250.832184 yards. +(48456, 179497, 1, 3037.61, -6043.01, -9.86239, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48282 at 233.577972 yards. +(48463, 179497, 1, 3649.37, -5779.98, 6.49878, 3.21142, 0, 0, -0.999391, 0.0349061, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48276 at 283.738556 yards. +(48464, 179497, 1, 4306.7, -7214.35, 27.3252, 3.63029, 0, 0, -0.970295, 0.241925, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48280 at 249.664932 yards. +(48465, 179497, 1, 3764.99, -5758.16, -4.60572, 5.68977, 0, 0, -0.292372, 0.956305, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48276 at 171.962708 yards. +(48466, 179497, 1, 3744, -5524.04, 19.9333, 1.58825, 0, 0, 0.71325, 0.70091, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48278 at 195.658447 yards. +(48467, 179497, 1, 3504.52, -5616.66, 7.6661, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48271 at 364.187592 yards. +(48468, 179497, 1, 2857.96, -6209.07, 3.10567, 3.85718, 0, 0, -0.936671, 0.35021, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48268 at 191.500458 yards. +(48469, 179497, 1, 2689.44, -7127.38, -16.6372, 3.75246, 0, 0, -0.953716, 0.300708, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48266 at 273.387207 yards. +(48470, 179497, 1, 3618.68, -5471.57, 43.614, 5.49779, 0, 0, -0.382683, 0.92388, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48278 at 330.649506 yards. +(48471, 179497, 1, 3568.31, -6028.93, -14.8908, 4.41568, 0, 0, -0.803857, 0.594823, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48273 at 148.160782 yards. +(48472, 179497, 1, 3876.6, -6504.14, -10.9378, 2.37364, 0, 0, 0.927183, 0.374608, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 48269 at 226.600647 yards. +(48484, 179497, 1, 3969.65, -6947.92, -35.0491, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 1, 100, 1, 10); -- Closest existing guid is 48274 at 39.810982 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48285, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48286, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48287, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48288, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48289, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48290, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48296, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48297, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48298, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48415, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48447, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48451, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48456, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48463, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48464, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48465, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48466, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48467, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48468, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48469, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48470, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48471, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48472, 458, 0, 'Mossy Footlocker', 1, 10), -- Mossy Footlockers in Azshara +(48484, 458, 0, 'Mossy Footlocker', 1, 10); -- Mossy Footlockers in Azshara + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` = 179497; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 2275b2730c425975dd2c12fa8904e532bd94df96 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 30 Jun 2023 19:48:30 +0100 Subject: [PATCH 034/426] Add Missing Waterlogged Footlockers (179487) (#2002) --- sql/migrations/20230629163920_world.sql | 141 ++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 sql/migrations/20230629163920_world.sql diff --git a/sql/migrations/20230629163920_world.sql b/sql/migrations/20230629163920_world.sql new file mode 100644 index 00000000000..073e430080b --- /dev/null +++ b/sql/migrations/20230629163920_world.sql @@ -0,0 +1,141 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230629163920'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230629163920'); +-- Add your query below. + + +-- Create new pool to hold Waterlogged Footlocker spawns in Redridge Mountains. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(459, 12, 'Waterlogged Footlockers in Redridge Mountains', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(18897, 459, 0, 'Waterlogged Footlocker', 1, 10), +(20483, 459, 0, 'Waterlogged Footlocker', 1, 10), +(20484, 459, 0, 'Waterlogged Footlocker', 1, 10), +(20485, 459, 0, 'Waterlogged Footlocker', 1, 10), +(20486, 459, 0, 'Waterlogged Footlocker', 1, 10), +(20487, 459, 0, 'Waterlogged Footlocker', 1, 10), +(20488, 459, 0, 'Waterlogged Footlocker', 1, 10), +(20489, 459, 0, 'Waterlogged Footlocker', 1, 10); + +-- Create new pool to hold Waterlogged Footlocker spawns in Ashenvale. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(460, 12, 'Waterlogged Footlockers in Ashenvale', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(47803, 460, 0, 'Waterlogged Footlocker', 1, 10), +(47804, 460, 0, 'Waterlogged Footlocker', 1, 10), +(47805, 460, 0, 'Waterlogged Footlocker', 1, 10), +(47806, 460, 0, 'Waterlogged Footlocker', 1, 10), +(47807, 460, 0, 'Waterlogged Footlocker', 1, 10), +(47808, 460, 0, 'Waterlogged Footlocker', 1, 10), +(47809, 460, 0, 'Waterlogged Footlocker', 1, 10); + +-- Missing Waterlogged Footlocker spawns in Redridge Mountains. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(20492, 179487, 0, -9451.81, -2573.72, 37.0704, 3.07177, 0, 0, 0.999391, 0.0349061, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20485 at 36.283298 yards. +(20493, 179487, 0, -9369.86, -2570.58, 36.8449, 0.575957, 0, 0, 0.284015, 0.95882, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20486 at 33.924129 yards. +(20494, 179487, 0, -9404.34, -2575.55, 47.9735, 2.37364, 0, 0, 0.927183, 0.374608, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20485 at 42.059761 yards. +(20495, 179487, 0, -9398.21, -2524.62, 24.717, 3.33359, 0, 0, -0.995396, 0.0958512, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20486 at 21.550997 yards. +(20496, 179487, 0, -9482.21, -2474.54, 39.2688, 4.64258, 0, 0, -0.731354, 0.681998, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20489 at 46.920361 yards. +(20499, 179487, 0, -9451.42, -2521.37, 32.5952, 0.331611, 0, 0, 0.165047, 0.986286, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20485 at 31.905325 yards. +(18899, 179487, 0, -9447.61, -2466.74, 41.1327, 4.76475, 0, 0, -0.688354, 0.725374, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 18897 at 49.336674 yards. +(20505, 179487, 0, -9535.76, -2469.39, 39.6929, 5.79449, 0, 0, -0.241921, 0.970296, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20489 at 51.954193 yards. +(20506, 179487, 0, -9417.94, -2486.43, 32.0577, 5.25344, 0, 0, -0.492423, 0.870356, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20485 at 59.707157 yards. +(18900, 179487, 0, -9431.91, -2438.22, 49.7343, 5.25344, 0, 0, -0.492423, 0.870356, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 18897 at 41.843636 yards. +(18902, 179487, 0, -9507.71, -2422.95, 53.7339, 5.5676, 0, 0, -0.350207, 0.936672, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 18897 at 36.223572 yards. +(20507, 179487, 0, -9387.96, -2626.23, 37.9692, 1.69297, 0, 0, 0.748956, 0.66262, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20488 at 32.827477 yards. +(20508, 179487, 0, -9478.94, -2538.47, 46.8134, 6.16101, 0, 0, -0.0610485, 0.998135, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20489 at 38.773190 yards. +(20509, 179487, 0, -9507.08, -2696.54, 43.0157, 0.645772, 0, 0, 0.317305, 0.948324, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20487 at 45.297058 yards. +(20510, 179487, 0, -9452.85, -2625.65, 41.1664, 2.87979, 0, 0, 0.991445, 0.130528, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20487 at 78.357224 yards. +(20513, 179487, 0, -9464.15, -2597.7, 42.5076, 0.767944, 0, 0, 0.374606, 0.927184, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20485 at 63.414806 yards. +(20515, 179487, 0, -9495.78, -2562.44, 50.6315, 0.680677, 0, 0, 0.333806, 0.942642, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20489 at 51.160946 yards. +(20516, 179487, 0, -9409.14, -2700.31, 49.0647, 2.44346, 0, 0, 0.939692, 0.34202, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20484 at 53.139156 yards. +(20520, 179487, 0, -9436.4, -2736.28, 42.7393, 1.8675, 0, 0, 0.803857, 0.594823, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20487 at 42.203209 yards. +(20522, 179487, 0, -9431.7, -2605.68, 43.5151, 3.01941, 0, 0, 0.998135, 0.0610518, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 20485 at 61.463299 yards. +(20523, 179487, 0, -9484.73, -2616.82, 45.5676, 2.44346, 0, 0, 0.939692, 0.34202, 480, 540, 1, 100, 1, 10); -- Closest existing guid is 20487 at 89.620819 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(20492, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20493, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20494, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20495, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20496, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20499, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(18899, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20505, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20506, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(18900, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(18902, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20507, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20508, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20509, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20510, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20513, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20515, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20516, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20520, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20522, 459, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Redridge Mountains +(20523, 459, 0, 'Waterlogged Footlocker', 1, 10); -- Waterlogged Footlockers in Redridge Mountains + +-- Missing Waterlogged Footlocker spawns in Ashenvale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(47829, 179487, 1, 3595.42, 1129.77, 1.17463, 5.00909, 0, 0, -0.594823, 0.803857, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47808 at 205.183517 yards. +(48037, 179487, 1, 3516.24, 1073.22, 12.6221, 4.50295, 0, 0, -0.777145, 0.629321, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47804 at 162.567383 yards. +(48038, 179487, 1, 3557.53, 1023.29, -1.39948, 5.044, 0, 0, -0.580703, 0.814116, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47808 at 121.158485 yards. +(48048, 179487, 1, 3535.29, 948.418, 3.52732, 4.97419, 0, 0, -0.608761, 0.793354, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47804 at 62.156399 yards. +(48049, 179487, 1, 3570.23, 937.069, 2.06354, 0.645772, 0, 0, 0.317305, 0.948324, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47808 at 62.568523 yards. +(48050, 179487, 1, 4097.43, 924.64, 5.39245, 2.63544, 0, 0, 0.968147, 0.250381, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47809 at 85.476517 yards. +(48051, 179487, 1, 4049.47, 883.908, -0.795611, 1.62316, 0, 0, 0.725374, 0.688355, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47807 at 63.580658 yards. +(48052, 179487, 1, 3786.11, 867.023, 0.436485, 3.78737, 0, 0, -0.948323, 0.317306, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47808 at 165.602173 yards. +(48053, 179487, 1, 4191.96, 1288.67, 0.907915, 5.25344, 0, 0, -0.492423, 0.870356, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47803 at 64.166489 yards. +(48054, 179487, 1, 3616.25, 878.275, -2.91687, 0.488691, 0, 0, 0.241921, 0.970296, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47808 at 52.401531 yards. +(48055, 179487, 1, 3514.91, 1013.07, 2.22407, 0.0174525, 0, 0, 0.00872612, 0.999962, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47804 at 103.838509 yards. +(48056, 179487, 1, 3694.63, 985.968, 2.10302, 4.4855, 0, 0, -0.782608, 0.622515, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47808 at 85.320465 yards. +(48057, 179487, 1, 3667.76, 943.347, 3.40273, 4.15388, 0, 0, -0.874619, 0.48481, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47808 at 38.849751 yards. +(48058, 179487, 1, 3909.48, 892.834, -4.36562, 4.38078, 0, 0, -0.814116, 0.580703, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47806 at 100.364594 yards. +(48068, 179487, 1, 3905.87, 955.496, 1.75919, 2.28638, 0, 0, 0.909961, 0.414694, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47806 at 160.699738 yards. +(48069, 179487, 1, 3686.23, 896.725, 1.30081, 2.70526, 0, 0, 0.976295, 0.216442, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47808 at 62.463776 yards. +(48070, 179487, 1, 3822.12, 815.942, 2.11093, 0.802851, 0, 0, 0.390731, 0.920505, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47806 at 123.191643 yards. +(48071, 179487, 1, 3635.48, 1058.9, 1.27651, 4.36332, 0, 0, -0.819152, 0.573577, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47808 at 131.049622 yards. +(48072, 179487, 1, 3897.08, 848.288, 4.98377, 3.45576, 0, 0, -0.987688, 0.156436, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47806 at 67.781120 yards. +(48073, 179487, 1, 3667.58, 842.233, 5.34729, 6.17847, 0, 0, -0.0523357, 0.99863, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47808 at 92.755241 yards. +(48074, 179487, 1, 3538.53, 915.577, 4.53245, 6.23083, 0, 0, -0.0261765, 0.999657, 480, 540, 1, 100, 1, 10), -- Closest existing guid is 47804 at 55.094376 yards. +(48075, 179487, 1, 3722.14, 904.603, 0.96701, 2.02458, 0, 0, 0.848047, 0.529921, 480, 540, 1, 100, 1, 10); -- Closest existing guid is 47808 at 93.001556 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(47829, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48037, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48038, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48048, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48049, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48050, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48051, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48052, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48053, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48054, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48055, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48056, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48057, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48058, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48068, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48069, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48070, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48071, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48072, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48073, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48074, 460, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48075, 460, 0, 'Waterlogged Footlocker', 1, 10); -- Waterlogged Footlockers in Ashenvale + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` = 179487; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From cd090fa3d78472a9776268958c86ca0a60d920b5 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 30 Jun 2023 19:48:38 +0100 Subject: [PATCH 035/426] Add Missing Waterlogged Footlocker (179491) (#2003) --- sql/migrations/20230629164240_world.sql | 55 +++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 sql/migrations/20230629164240_world.sql diff --git a/sql/migrations/20230629164240_world.sql b/sql/migrations/20230629164240_world.sql new file mode 100644 index 00000000000..a76cc7b8740 --- /dev/null +++ b/sql/migrations/20230629164240_world.sql @@ -0,0 +1,55 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230629164240'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230629164240'); +-- Add your query below. + + +-- Create new pool to hold Waterlogged Footlocker spawns in Desolace. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(461, 6, 'Waterlogged Footlockers in Desolace', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30152, 461, 0, 'Waterlogged Footlocker', 1, 10), +(30153, 461, 0, 'Waterlogged Footlocker', 1, 10), +(30155, 461, 0, 'Waterlogged Footlocker', 1, 10), +(30156, 461, 0, 'Waterlogged Footlocker', 1, 10), +(30157, 461, 0, 'Waterlogged Footlocker', 1, 10), +(30158, 461, 0, 'Waterlogged Footlocker', 1, 10), +(30159, 461, 0, 'Waterlogged Footlocker', 1, 10); + +-- Missing Waterlogged Footlocker spawns in Desolace. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(30160, 179491, 1, -213.577, 2509.56, -18.2651, 0.191985, 0, 0, 0.0958452, 0.995396, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30157 at 38.195759 yards. +(30215, 179491, 1, -204.397, 2678.29, -46.1863, 0.418879, 0, 0, 0.207911, 0.978148, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30158 at 48.600788 yards. +(30216, 179491, 1, -333.115, 2659.91, -21.4116, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30153 at 141.714478 yards. +(30217, 179491, 1, -278.164, 2651.21, -22.2244, 3.76991, 0, 0, -0.951056, 0.309017, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30153 at 92.062836 yards. +(30218, 179491, 1, -246.346, 2691.61, -36.5265, 4.81711, 0, 0, -0.66913, 0.743145, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30158 at 84.716812 yards. +(30219, 179491, 1, -146.758, 2667.33, -67.9032, 0.872664, 0, 0, 0.422618, 0.906308, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30159 at 39.694176 yards. +(30220, 179491, 1, -155.009, 2517.72, -33.9085, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30156 at 44.074993 yards. +(30221, 179491, 1, -301.695, 2686.36, -21.6071, 1.69297, 0, 0, 0.748956, 0.66262, 180, 180, 1, 100, 1, 10), -- Closest existing guid is 30153 at 133.382843 yards. +(30222, 179491, 1, -143.389, 2474.55, -35.9769, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 1, 100, 1, 10); -- Closest existing guid is 30156 at 85.724800 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30160, 461, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Desolace +(30215, 461, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Desolace +(30216, 461, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Desolace +(30217, 461, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Desolace +(30218, 461, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Desolace +(30219, 461, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Desolace +(30220, 461, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Desolace +(30221, 461, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Desolace +(30222, 461, 0, 'Waterlogged Footlocker', 1, 10); -- Waterlogged Footlockers in Desolace + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` = 179491; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From dd8dff06a6ce923fa8bba305a258adb278b38657 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 30 Jun 2023 19:48:55 +0100 Subject: [PATCH 036/426] Add Missing Waterlogged Footlockers (179489) (#2004) --- sql/migrations/20230629164524_world.sql | 59 +++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 sql/migrations/20230629164524_world.sql diff --git a/sql/migrations/20230629164524_world.sql b/sql/migrations/20230629164524_world.sql new file mode 100644 index 00000000000..885048e857d --- /dev/null +++ b/sql/migrations/20230629164524_world.sql @@ -0,0 +1,59 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230629164524'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230629164524'); +-- Add your query below. + + +-- Create new pool to hold Waterlogged Footlocker spawns in Ashenvale. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(515, 6, 'Waterlogged Footlockers in Ashenvale', 1, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(47812, 515, 0, 'Waterlogged Footlocker', 1, 10); + +-- Missing Waterlogged Footlocker spawns in Ashenvale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(48076, 179489, 1, 3835.16, 1193.29, -50.3636, 1.62316, 0, 0, 0.725374, 0.688355, 540, 540, 1, 100, 1, 10), -- Closest existing guid is 47812 at 208.364777 yards. +(48077, 179489, 1, 3719.96, 1252.63, -58.0381, 1.13446, 0, 0, 0.537299, 0.843392, 540, 540, 1, 100, 1, 10), -- Closest existing guid is 47812 at 337.598969 yards. +(48078, 179489, 1, 4028.78, 1178.43, -21.5397, 2.21657, 0, 0, 0.894934, 0.446199, 540, 540, 1, 100, 1, 10), -- Closest existing guid is 47812 at 96.535812 yards. +(48079, 179489, 1, 3994.74, 1327.9, -26.2946, 5.60251, 0, 0, -0.333807, 0.942641, 540, 540, 1, 100, 1, 10), -- Closest existing guid is 47812 at 244.662643 yards. +(48080, 179489, 1, 3521.32, 1236.32, -47.8199, 0.855211, 0, 0, 0.414693, 0.909961, 540, 540, 1, 100, 1, 10), -- Closest existing guid is 47812 at 512.526611 yards. +(48081, 179489, 1, 3510.62, 1146.26, -9.0148, 1.78023, 0, 0, 0.777145, 0.629321, 540, 540, 1, 100, 1, 10), -- Closest existing guid is 47812 at 503.238800 yards. +(48082, 179489, 1, 3874.98, 1152.07, -34.3129, 3.12412, 0, 0, 0.999962, 0.00873464, 540, 540, 1, 100, 1, 10), -- Closest existing guid is 47812 at 151.822723 yards. +(48083, 179489, 1, 4015.19, 1242.51, -34.1204, 2.93214, 0, 0, 0.994521, 0.104536, 540, 540, 1, 100, 1, 10), -- Closest existing guid is 47812 at 159.429626 yards. +(48084, 179489, 1, 4062.42, 1247.23, -27.3153, 3.83973, 0, 0, -0.939692, 0.34202, 540, 540, 1, 100, 1, 10), -- Closest existing guid is 47812 at 171.846603 yards. +(48085, 179489, 1, 3574.67, 1274.13, -71.0363, 5.00909, 0, 0, -0.594823, 0.803857, 540, 540, 1, 100, 1, 10), -- Closest existing guid is 47812 at 477.693665 yards. +(48086, 179489, 1, 4102.22, 1216.48, -22.2307, 3.05433, 0, 0, 0.999048, 0.0436193, 540, 540, 1, 100, 1, 10), -- Closest existing guid is 47812 at 161.701935 yards. +(48087, 179489, 1, 3884.94, 1023.95, -19.8452, 2.1293, 0, 0, 0.874619, 0.48481, 540, 540, 1, 100, 1, 10), -- Closest existing guid is 47812 at 138.491150 yards. +(48088, 179489, 1, 3784.83, 1106.24, -35.5465, 1.58825, 0, 0, 0.71325, 0.70091, 540, 540, 1, 100, 1, 10), -- Closest existing guid is 47812 at 226.648819 yards. +(48089, 179489, 1, 3924.88, 1199.25, -47.6976, 3.08918, 0, 0, 0.999657, 0.0262016, 540, 540, 1, 100, 1, 10); -- Closest existing guid is 47812 at 145.972824 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48076, 515, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48077, 515, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48078, 515, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48079, 515, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48080, 515, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48081, 515, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48082, 515, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48083, 515, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48084, 515, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48085, 515, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48086, 515, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48087, 515, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48088, 515, 0, 'Waterlogged Footlocker', 1, 10), -- Waterlogged Footlockers in Ashenvale +(48089, 515, 0, 'Waterlogged Footlocker', 1, 10); -- Waterlogged Footlockers in Ashenvale + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` = 179489; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 85fb3bbc2817a9911cbeb4ec32188c53fe3e207a Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 30 Jun 2023 19:51:59 +0100 Subject: [PATCH 037/426] Final Tidy - Footlockers (#2005) --- sql/migrations/20230629175522_world.sql | 85 +++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 sql/migrations/20230629175522_world.sql diff --git a/sql/migrations/20230629175522_world.sql b/sql/migrations/20230629175522_world.sql new file mode 100644 index 00000000000..63a85c8f738 --- /dev/null +++ b/sql/migrations/20230629175522_world.sql @@ -0,0 +1,85 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230629175522'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230629175522'); +-- Add your query below. + + +-- Misc +UPDATE `pool_template` SET `instance` = 0 WHERE `entry`=4000; +UPDATE `pool_template` SET `instance` = 0 WHERE `entry`=14006; + +DELETE FROM `pool_template` WHERE `entry` IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 145, 146, 147, 148, 149, 153, 154, 155, 156, 157, 158, 159, 160, 161, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 330, 331, 333, 334, 1347, 34931, 43519, 43523); + +-- Correct position of Large Mithril Bound Chest in Western Plaguelands (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=2939.02, `position_y`=-1376.04, `position_z`=167.237, `orientation`=5.09636, `rotation0`=0, `rotation1`=0, `rotation2`=-0.559193, `rotation3`=0.829038 WHERE `guid`=45493; + +-- Correct position of Large Mithril Bound Chest in Western Plaguelands (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=2851.74, `position_y`=-1403.16, `position_z`=148.907, `orientation`=0.523598, `rotation0`=0, `rotation1`=0, `rotation2`=0.258819, `rotation3`=0.965926 WHERE `guid`=45553; + +-- Missing Scarlet Footlocker spawns in Eastern Plaguelands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(45751, 179498, 0, 1712.16, -5212.28, 95.6143, 5.42797, 0, 0, -0.414693, 0.909961, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 45741 at 38.074177 yards. +(45752, 179498, 0, 1726.13, -5329.35, 73.8507, 3.31614, 0, 0, -0.996194, 0.087165, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 45747 at 32.008621 yards. +(45783, 179498, 0, 1589.12, -5312.56, 68.7325, 1.22173, 0, 0, 0.573576, 0.819152, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 45748 at 38.508904 yards. +(45792, 179498, 0, 1705.79, -5393.54, 73.7189, 2.9845, 0, 0, 0.996917, 0.0784664, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 45747 at 45.560032 yards. +(45832, 179498, 0, 1620.92, -5389.97, 73.6975, 1.37881, 0, 0, 0.636078, 0.771625, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 45742 at 23.235523 yards. +(45837, 179498, 0, 1579.43, -5495.92, 100.959, 2.16421, 0, 0, 0.882947, 0.469473, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 45744 at 92.398315 yards. +(45843, 179498, 0, 1651.6, -5541.67, 100.761, 0.401425, 0, 0, 0.199368, 0.979925, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 45745 at 51.971249 yards. +(45846, 179498, 0, 1752.45, -5428.04, 113.526, 1.41372, 0, 0, 0.649447, 0.760406, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 45749 at 43.867523 yards. +(45847, 179498, 0, 1598.2, -5276.86, 88.9153, 5.84685, 0, 0, -0.216439, 0.976296, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 45748 at 35.697124 yards. +(45854, 179498, 0, 1777.93, -5310.02, 106.816, 3.97935, 0, 0, -0.913545, 0.406738, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 45747 at 72.523460 yards. +(45863, 179498, 0, 1619.86, -5356.99, 74.204, 5.55015, 0, 0, -0.358368, 0.93358, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 45742 at 44.134396 yards. +(45864, 179498, 0, 1616.11, -5395.36, 75.7045, 4.81711, 0, 0, -0.66913, 0.743145, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 45742 at 27.732952 yards. +(45869, 179498, 0, 1599.63, -5407.32, 76.3989, 0.610863, 0, 0, 0.300705, 0.953717, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 45742 at 46.138191 yards. +(45880, 179498, 0, 1552.42, -5384.27, 80.0347, 3.97935, 0, 0, -0.913545, 0.406738, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 45742 at 92.061134 yards. +(45882, 179498, 0, 1536.36, -5390.14, 79.886, 3.97935, 0, 0, -0.913545, 0.406738, 10, 10, 1, 100, 1, 10), -- Closest existing guid is 45742 at 107.634979 yards. +(45883, 179498, 0, 1774.65, -5406.2, 80.9366, 1.36136, 0, 0, 0.62932, 0.777146, 10, 10, 1, 100, 1, 10); -- Closest existing guid is 45747 at 60.645321 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(45751, 3011, 0, 'Scarlet Footlocker', 1, 10), -- Scarlet Footlocker (EPL - Tyr) +(45752, 3011, 0, 'Scarlet Footlocker', 1, 10), -- Scarlet Footlocker (EPL - Tyr) +(45783, 3011, 0, 'Scarlet Footlocker', 1, 10), -- Scarlet Footlocker (EPL - Tyr) +(45792, 3011, 0, 'Scarlet Footlocker', 1, 10), -- Scarlet Footlocker (EPL - Tyr) +(45832, 3011, 0, 'Scarlet Footlocker', 1, 10), -- Scarlet Footlocker (EPL - Tyr) +(45837, 3011, 0, 'Scarlet Footlocker', 1, 10), -- Scarlet Footlocker (EPL - Tyr) +(45843, 3011, 0, 'Scarlet Footlocker', 1, 10), -- Scarlet Footlocker (EPL - Tyr) +(45846, 3011, 0, 'Scarlet Footlocker', 1, 10), -- Scarlet Footlocker (EPL - Tyr) +(45847, 3011, 0, 'Scarlet Footlocker', 1, 10), -- Scarlet Footlocker (EPL - Tyr) +(45854, 3011, 0, 'Scarlet Footlocker', 1, 10), -- Scarlet Footlocker (EPL - Tyr) +(45863, 3011, 0, 'Scarlet Footlocker', 1, 10), -- Scarlet Footlocker (EPL - Tyr) +(45864, 3011, 0, 'Scarlet Footlocker', 1, 10), -- Scarlet Footlocker (EPL - Tyr) +(45869, 3011, 0, 'Scarlet Footlocker', 1, 10), -- Scarlet Footlocker (EPL - Tyr) +(45880, 3011, 0, 'Scarlet Footlocker', 1, 10), -- Scarlet Footlocker (EPL - Tyr) +(45882, 3011, 0, 'Scarlet Footlocker', 1, 10), -- Scarlet Footlocker (EPL - Tyr) +(45883, 3011, 0, 'Scarlet Footlocker', 1, 10); -- Scarlet Footlocker (EPL - Tyr) + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` = 179498; + +UPDATE `pool_template` SET `max_limit` = 9, `description`='Scarlet Footlockers In Eastern Plaguelands' WHERE `entry`=3011; + +-- Correct position of Blood of Heroes in Tirisfal Glades (position is off by 9.91821e-05 yards). +UPDATE `gameobject` SET `position_x`=1645.17, `position_y`=-710.922, `position_z`=55.3112, `orientation`=0.471238, `rotation0`=0, `rotation1`=0, `rotation2`=0.233445, `rotation3`=0.97237 WHERE `guid`=25931; + +-- Correct position of Blood of Heroes in Eastern Plaguelands (position is off by 0.00976563 yards). +UPDATE `gameobject` SET `position_x`=1832.91, `position_y`=-4374.05, `position_z`=98.3339, `orientation`=5.75959, `rotation0`=0, `rotation1`=0, `rotation2`=-0.258819, `rotation3`=0.965926 WHERE `guid`=25956; + +-- Correct position of Blood of Heroes in Eastern Plaguelands (position is off by 0.0102539 yards). +UPDATE `gameobject` SET `position_x`=2494.31, `position_y`=-5134.03, `position_z`=75.2775, `orientation`=3.9619, `rotation0`=0, `rotation1`=0, `rotation2`=-0.91706, `rotation3`=0.39875 WHERE `guid`=25995; + +-- Correct position of Blood of Heroes in Eastern Plaguelands (position is off by 0.000100136 yards). +UPDATE `gameobject` SET `position_x`=1987.43, `position_y`=-4193.23, `position_z`=11.9174, `orientation`=2.11185, `rotation0`=0, `rotation1`=0, `rotation2`=0.870356, `rotation3`=0.492424 WHERE `guid`=25973; + +-- Correct position of Blood of Heroes in Eastern Plaguelands (position is off by 0.0102539 yards). +UPDATE `gameobject` SET `position_x`=1748.16, `position_y`=-4453.14, `position_z`=74.2627, `orientation`=4.2237, `rotation0`=0, `rotation1`=0, `rotation2`=-0.857167, `rotation3`=0.515038 WHERE `guid`=25944; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 941c159deaabc19149fc7a6657ec418a63a032e0 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 30 Jun 2023 20:00:30 +0100 Subject: [PATCH 038/426] Add Missing Clam Objects (#2006) --- sql/migrations/20230629193625_world.sql | 168 ++++++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 sql/migrations/20230629193625_world.sql diff --git a/sql/migrations/20230629193625_world.sql b/sql/migrations/20230629193625_world.sql new file mode 100644 index 00000000000..600faf36e53 --- /dev/null +++ b/sql/migrations/20230629193625_world.sql @@ -0,0 +1,168 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230629193625'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230629193625'); +-- Add your query below. + + +-- Correct position of Giant Clam in Wetlands (position is off by 0.0098882 yards). +UPDATE `gameobject` SET `position_x`=-2646.41, `position_y`=-1246.57, `position_z`=-14.4196, `orientation`=0.0698117, `rotation0`=0, `rotation1`=0, `rotation2`=0.0348988, `rotation3`=0.999391 WHERE `guid`=48045; + +-- Correct position of Giant Clam in Wetlands (position is off by 9.91821e-05 yards). +UPDATE `gameobject` SET `position_x`=-3276.94, `position_y`=-618.367, `position_z`=-19.3886, `orientation`=2.63544, `rotation0`=0, `rotation1`=0, `rotation2`=0.968147, `rotation3`=0.250381 WHERE `guid`=48027; + +-- Correct position of Giant Clam in Wetlands (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=-2561.04, `position_y`=-1548.83, `position_z`=-13.6165, `orientation`=2.67035, `rotation0`=0, `rotation1`=0, `rotation2`=0.972369, `rotation3`=0.233448 WHERE `guid`=48029; + +-- Missing Giant Clam spawns in Wetlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(48090, 19018, 0, -3154.08, -878.175, -10.8228, 0.767944, 0, 0, 0.374606, 0.927184, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48028 at 102.037331 yards. +(48091, 19018, 0, -3229.4, -774.949, -17.9715, 2.42601, 0, 0, 0.936672, 0.350207, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48030 at 82.083229 yards. +(48092, 19018, 0, -2526.52, -1371.19, -40.446, 0.261798, 0, 0, 0.130526, 0.991445, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48042 at 64.627235 yards. +(48093, 19018, 0, -2973.35, -804.22, -12.3123, 0.226892, 0, 0, 0.113203, 0.993572, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48028 at 97.349396 yards. +(48094, 19018, 0, -2787.67, -1068.84, -11.7275, 6.21337, 0, 0, -0.0348988, 0.999391, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48025 at 110.302834 yards. +(48095, 19018, 0, -3431.91, -719.763, -10.6347, 1.90241, 0, 0, 0.814116, 0.580703, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48023 at 122.618011 yards. +(48096, 19018, 0, -2879.62, -975.779, -13.6782, 1.18682, 0, 0, 0.559193, 0.829038, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48020 at 92.997696 yards. +(48097, 19018, 0, -4132.01, -667.777, -13.1537, 2.72271, 0, 0, 0.978148, 0.207912, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 48022 at 226.133957 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48090, 1340, 0, 'Giant Clam', 0, 10), -- Wetlands - Giant Clam +(48091, 1340, 0, 'Giant Clam', 0, 10), -- Wetlands - Giant Clam +(48092, 1340, 0, 'Giant Clam', 0, 10), -- Wetlands - Giant Clam +(48093, 1340, 0, 'Giant Clam', 0, 10), -- Wetlands - Giant Clam +(48094, 1340, 0, 'Giant Clam', 0, 10), -- Wetlands - Giant Clam +(48095, 1340, 0, 'Giant Clam', 0, 10), -- Wetlands - Giant Clam +(48096, 1340, 0, 'Giant Clam', 0, 10), -- Wetlands - Giant Clam +(48097, 1340, 0, 'Giant Clam', 0, 10); -- Wetlands - Giant Clam + +UPDATE `pool_template` SET `max_limit`=12 WHERE `entry`=1340; + +-- Correct position of Giant Clam in Stranglethorn Vale (position is off by 0.0996094 yards). +UPDATE `gameobject` SET `position_x`=-12357.3, `position_y`=576.18, `position_z`=-71.4579, `orientation`=5.23599, `rotation0`=0, `rotation1`=0, `rotation2`=-0.5, `rotation3`=0.866025 WHERE `guid`=32142; + +-- Correct position of Giant Clam in Stranglethorn Vale (position is off by 9.91821e-05 yards). +UPDATE `gameobject` SET `position_x`=-12410.5, `position_y`=455.937, `position_z`=-63.8844, `orientation`=6.02139, `rotation0`=0, `rotation1`=0, `rotation2`=-0.130526, `rotation3`=0.991445 WHERE `guid`=32147; + +-- Correct position of Giant Clam in Stranglethorn Vale (position is off by 0.0996094 yards). +UPDATE `gameobject` SET `position_x`=-12390.3, `position_y`=608.607, `position_z`=-106.115, `orientation`=5.2709, `rotation0`=0, `rotation1`=0, `rotation2`=-0.484809, `rotation3`=0.87462 WHERE `guid`=32140; + +-- Correct position of Giant Clam in Stranglethorn Vale (position is off by 0.0996148 yards). +UPDATE `gameobject` SET `position_x`=-12472.3, `position_y`=554.97, `position_z`=-60.85, `orientation`=0.0698117, `rotation0`=0, `rotation1`=0, `rotation2`=0.0348988, `rotation3`=0.999391 WHERE `guid`=32137; + +-- Correct position of Giant Clam in Stranglethorn Vale (position is off by 0.0996094 yards). +UPDATE `gameobject` SET `position_x`=-12387.9, `position_y`=685.329, `position_z`=-53.2183, `orientation`=0.0174525, `rotation0`=0, `rotation1`=0, `rotation2`=0.00872612, `rotation3`=0.999962 WHERE `guid`=32180; + +-- Correct position of Giant Clam in Stranglethorn Vale (position is off by 0.0010376 yards). +UPDATE `gameobject` SET `position_x`=-12244.3, `position_y`=581.704, `position_z`=-74.9789, `orientation`=6.10865, `rotation0`=0, `rotation1`=0, `rotation2`=-0.0871553, `rotation3`=0.996195 WHERE `guid`=32167; + +-- Correct position of Giant Clam in Stranglethorn Vale (position is off by 0.0996094 yards). +UPDATE `gameobject` SET `position_x`=-12328.4, `position_y`=572.81, `position_z`=-65.9415, `orientation`=3.87463, `rotation0`=0, `rotation1`=0, `rotation2`=-0.93358, `rotation3`=0.358368 WHERE `guid`=32276; + +-- Correct position of Giant Clam in Stranglethorn Vale (position is off by 0.100586 yards). +UPDATE `gameobject` SET `position_x`=-12409.4, `position_y`=503.58, `position_z`=-75.63, `orientation`=3.38594, `rotation0`=0, `rotation1`=0, `rotation2`=-0.992546, `rotation3`=0.12187 WHERE `guid`=32108; + +-- Missing Giant Clam spawns in Stranglethorn Vale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(32285, 2744, 0, -12249.8, 607.121, -101.612, 1.5708, 0, 0, 0.707107, 0.707107, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32281 at 31.506830 yards. +(32279, 2744, 0, -12313.8, 601.927, -59.0802, 1.53589, 0, 0, 0.694658, 0.71934, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32278 at 21.587067 yards. +(32132, 2744, 0, -12432, 487.499, -69.9343, 1.97222, 0, 0, 0.833885, 0.551938, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32108 at 28.396093 yards. +(32161, 2744, 0, -12406.4, 706.82, -33.0999, 1.29154, 0, 0, 0.601814, 0.798636, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32151 at 33.818466 yards. +(32175, 2744, 0, -12453.3, 688.567, -67.7992, 2.02458, 0, 0, 0.848047, 0.529921, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32151 at 32.617836 yards. +(32148, 2744, 0, -12355.4, 544.91, -84.1713, 2.77507, 0, 0, 0.983254, 0.182238, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32142 at 33.803612 yards. +(32181, 2744, 0, -12166.4, 715.301, -49.3524, 0.820303, 0, 0, 0.398748, 0.91706, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32172 at 44.607346 yards. +(32101, 2744, 0, -12247.7, 688.154, -71.0501, 2.58308, 0, 0, 0.961261, 0.27564, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32097 at 36.440540 yards. +(32191, 2744, 0, -12252.9, 483.681, -72.6024, 5.60251, 0, 0, -0.333807, 0.942641, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32109 at 37.752686 yards. +(32207, 2744, 0, -12328.4, 709.544, -45.4184, 4.50295, 0, 0, -0.777145, 0.629321, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32121 at 37.356556 yards. +(32294, 2744, 0, -12329.6, 650.565, -42.0247, 1.18682, 0, 0, 0.559193, 0.829038, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32277 at 33.683971 yards. +(11145, 2744, 0, -12120, 499.054, -55.3, 1.76278, 0, 0, 0.771625, 0.636078, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 11030 at 28.506937 yards. +(32295, 2744, 0, -12133, 598.654, -35.3211, 3.28124, 0, 0, -0.997563, 0.0697661, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32170 at 21.318832 yards. +(32302, 2744, 0, -12208.9, 571.424, -36.9531, 3.75246, 0, 0, -0.953716, 0.300708, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32119 at 32.601215 yards. +(32305, 2744, 0, -12234.6, 604.072, -65.1342, 6.24828, 0, 0, -0.0174522, 0.999848, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32167 at 26.292484 yards. +(32306, 2744, 0, -12248.4, 443.024, -32.4327, 4.71239, 0, 0, -0.707107, 0.707107, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32163 at 20.724970 yards. +(11146, 2744, 0, -12223.9, 441.447, -88.088, 5.8294, 0, 0, -0.224951, 0.97437, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 11029 at 21.194731 yards. +(32307, 2744, 0, -12293, 607.82, -79.2216, 4.36332, 0, 0, -0.819152, 0.573577, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32281 at 27.970482 yards. +(32316, 2744, 0, -12261.4, 650.359, -91.6953, 4.25861, 0, 0, -0.848047, 0.529921, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 32120 at 33.871021 yards. +(32317, 2744, 0, -12277, 694.413, -98.2944, 4.20625, 0, 0, -0.861629, 0.507539, 900, 900, 1, 100, 0, 10); -- Closest existing guid is 32120 at 49.306431 yards. + +UPDATE `pool_template` SET `max_limit`=20 WHERE `entry`=1342; + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` = 2744; + +-- Correct position of Giant Clam in The Barrens (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=-967.786, `position_y`=-3883.59, `position_z`=-65.0734, `orientation`=2.37364, `rotation0`=0, `rotation1`=0, `rotation2`=0.927183, `rotation3`=0.374608 WHERE `guid`=48884; + +-- Correct position of Giant Clam in The Barrens (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=-1480.74, `position_y`=-4023.45, `position_z`=-11.2201, `orientation`=2.89725, `rotation0`=0, `rotation1`=0, `rotation2`=0.992546, `rotation3`=0.12187 WHERE `guid`=48887; + +-- Correct position of Giant Clam in Ashenvale (position is off by 9.91821e-05 yards). +UPDATE `gameobject` SET `position_x`=3521.09, `position_y`=1214.8, `position_z`=-36.0347, `orientation`=4.66003, `rotation0`=0, `rotation1`=0, `rotation2`=-0.725374, `rotation3`=0.688355 WHERE `guid`=48941; + +-- Correct position of Giant Clam in Darkshore (position is off by 0.000100136 yards). +UPDATE `gameobject` SET `position_x`=6933.87, `position_y`=554.736, `position_z`=-13.9661, `orientation`=5.25344, `rotation0`=0, `rotation1`=0, `rotation2`=-0.492423, `rotation3`=0.870356 WHERE `guid`=48889; + +-- Correct position of Giant Clam in Ashenvale (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=4004.71, `position_y`=1252.38, `position_z`=-35.3004, `orientation`=3.24635, `rotation0`=0, `rotation1`=0, `rotation2`=-0.998629, `rotation3`=0.0523532 WHERE `guid`=48940; + +-- Correct position of Giant Clam in Darkshore (position is off by 0.0010376 yards). +UPDATE `gameobject` SET `position_x`=6194.85, `position_y`=755.306, `position_z`=-10.3836, `orientation`=0.453785, `rotation0`=0, `rotation1`=0, `rotation2`=0.224951, `rotation3`=0.97437 WHERE `guid`=48911; + +-- Correct position of Giant Clam in The Barrens (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=-1612.91, `position_y`=-4012.49, `position_z`=-2.79534, `orientation`=6.12611, `rotation0`=0, `rotation1`=0, `rotation2`=-0.0784588, `rotation3`=0.996917 WHERE `guid`=48886; + +-- Missing Giant Clam spawns in Westfall. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(42753, 19017, 0, -9520.8, 1787.71, -25.2666, 4.29351, 0, 0, -0.83867, 0.54464, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 42751 at 1977.849731 yards. + +-- Missing Giant Clam spawns in Darkshore. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(48901, 19017, 1, 5923.81, 801.439, -10.6119, 2.40855, 0, 0, 0.93358, 0.358368, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 48898 at 111.344826 yards. +(48770, 19017, 1, 7665.99, -599.783, -4.42674, 6.03884, 0, 0, -0.121869, 0.992546, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 48769 at 201.646149 yards. +(48930, 19017, 1, 4988.46, 942.989, -29.1446, 4.72984, 0, 0, -0.700909, 0.713251, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 48927 at 98.395699 yards. +(48771, 19017, 1, 7882.73, -799.367, -16.621, 2.70526, 0, 0, 0.976295, 0.216442, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 48769 at 100.429901 yards. +(48931, 19017, 1, 5820.37, 815.294, -31.9575, 2.40855, 0, 0, 0.93358, 0.358368, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 48920 at 93.569145 yards. +(48950, 19017, 1, 4644.36, 764.898, -2.83767, 2.40855, 0, 0, 0.93358, 0.358368, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 48937 at 116.243607 yards. +(48909, 19017, 1, 7847.24, -476.462, -34.017, 2.86234, 0, 0, 0.990268, 0.139175, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 48897 at 183.379822 yards. +(48917, 19017, 1, 4575.14, 1033.33, -18.1061, 2.18166, 0, 0, 0.887011, 0.461749, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 48913 at 140.015320 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48901, 1344, 0, 'Giant Clam', 0, 10), -- Darkshore - Giant Clam +(48770, 1344, 0, 'Giant Clam', 0, 10), -- Darkshore - Giant Clam +(48930, 1344, 0, 'Giant Clam', 0, 10), -- Darkshore - Giant Clam +(48771, 1344, 0, 'Giant Clam', 0, 10), -- Darkshore - Giant Clam +(48931, 1344, 0, 'Giant Clam', 0, 10), -- Darkshore - Giant Clam +(48950, 1344, 0, 'Giant Clam', 0, 10), -- Darkshore - Giant Clam +(48909, 1344, 0, 'Giant Clam', 0, 10), -- Darkshore - Giant Clam +(48917, 1344, 0, 'Giant Clam', 0, 10); -- Darkshore - Giant Clam + +-- Missing Giant Clam spawns in Ashenvale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(48949, 19017, 1, 3691.17, 1009.16, -3.05448, 0.541051, 0, 0, 0.267238, 0.963631, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 48941 at 268.891571 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48949, 1345, 0, 'Giant Clam', 0, 10); -- Ashenvale - Giant Clam + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` = 19017; + +-- Correct position of Giant Softshell Clam in Desolace (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=-673.472, `position_y`=2976.09, `position_z`=-22.2912, `orientation`=2.3911, `rotation0`=0, `rotation1`=0, `rotation2`=0.930417, `rotation3`=0.366502 WHERE `guid`=8981; + +-- Missing Giant Softshell Clam spawns in Desolace. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(31980, 177784, 1, -505.958, 2860.44, -65.4643, 4.10153, 0, 0, -0.887011, 0.461749, 120, 120, 1, 100, 0, 10), -- Closest existing guid is 31979 at 73.707977 yards. +(31990, 177784, 1, -329.93, 2886.15, -47.7774, 4.08407, 0, 0, -0.891006, 0.453991, 120, 120, 1, 100, 0, 10), -- Closest existing guid is 31988 at 73.188118 yards. +(31991, 177784, 1, -367.808, 2851.08, -20.9613, 3.75246, 0, 0, -0.953716, 0.300708, 120, 120, 1, 100, 0, 10), -- Closest existing guid is 31988 at 90.703789 yards. +(31986, 177784, 1, -421.403, 2883.82, -26.2859, 4.81711, 0, 0, -0.66913, 0.743145, 120, 120, 1, 100, 0, 10); -- Closest existing guid is 31982 at 96.392052 yards. + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` IN (177784, 19018, 2744); +UPDATE `pool_template` SET `max_limit`=6 WHERE `entry`=1343; +UPDATE `pool_template` SET `max_limit`=18 WHERE `entry`=1344; +UPDATE `pool_template` SET `max_limit`=2 WHERE `entry`=1345; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 2169f820757217aaab1926cfcf415b592e56e67d Mon Sep 17 00:00:00 2001 From: coolzoom Date: Sat, 1 Jul 2023 14:45:38 +0800 Subject: [PATCH 039/426] Fix GeoLocking config check (#2010) --- src/realmd/AuthSocket.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/realmd/AuthSocket.cpp b/src/realmd/AuthSocket.cpp index 0d0524fbfb0..89105df73be 100644 --- a/src/realmd/AuthSocket.cpp +++ b/src/realmd/AuthSocket.cpp @@ -1321,7 +1321,7 @@ void AuthSocket::LoadAccountSecurityLevels(uint32 accountId) bool AuthSocket::GeographicalLockCheck() { - if (!sConfig.GetBoolDefault("GeoLocking"), false) + if (!sConfig.GetBoolDefault("GeoLocking", false)) { return false; } From 14db47ae1dbecddda676dd5a460485543ef907cf Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 2 Jul 2023 08:48:56 +0300 Subject: [PATCH 040/426] Fix Stoneskin Gargoyle not facing its target in combat. --- src/game/Spells/SpellAuras.cpp | 14 +++-- .../naxxramas/instance_naxxramas.cpp | 59 +++++++++++-------- 2 files changed, 43 insertions(+), 30 deletions(-) diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index dab21b7dfe4..0020ac459e2 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -1808,11 +1808,11 @@ void Aura::HandleAuraDummy(bool apply, bool Real) } return; } - case 29154: + case 29153: // Gargoyle Stoneform Visual { - Unit* caster = GetCaster(); - if (!caster) break; - caster->HandleEmote(EMOTE_STATE_SUBMERGED); + // using stand state 9 in sniff + target->SetStandState(MAX_UNIT_STAND_STATE); + target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); break; } case 29705: // Midsummer Pole Dancing @@ -2064,6 +2064,12 @@ void Aura::HandleAuraDummy(bool apply, bool Real) target->RemoveAurasDueToSpell(29660); break; } + case 29153: // Gargoyle Stoneform Visual + { + target->SetStandState(UNIT_STAND_STATE_STAND); + target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); + break; + } } /*if (m_removeMode == AURA_REMOVE_BY_DEATH) // redundant, AM is cancelled in aura holder removal diff --git a/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/instance_naxxramas.cpp b/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/instance_naxxramas.cpp index 0e5d7d73f5e..1bcc7b0fcf9 100644 --- a/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/instance_naxxramas.cpp +++ b/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/instance_naxxramas.cpp @@ -1495,47 +1495,56 @@ struct mob_spiritOfNaxxramasAI : public ScriptedAI } }; +enum +{ + SPELL_INVISIBILITY_AND_STEALTH_DETECTION = 18950, + SPELL_STONESKIN = 28995, // Periodic Heal and Damage Immunity + SPELL_GARGOYLE_STONEFORM_VISUAL = 29153, // Dummy Aura + SPELL_ACID_VOLLEY = 29325, + + BCT_STRANGE_NOISE = 10755, // %s emits a strange noise. +}; + struct mob_naxxramasGarboyleAI : public ScriptedAI { - mob_naxxramasGarboyleAI(Creature* pCreature) : ScriptedAI(pCreature) + mob_naxxramasGarboyleAI(Creature* pCreature) + : ScriptedAI(pCreature) { Reset(); - goStoneform(); + EnterStoneform(); if (m_creature->GetDefaultMovementType() == IDLE_MOTION_TYPE && m_creature->GetEntry() == 16168) - m_creature->CastSpell(m_creature, 18950, true); // stealth detection + m_creature->CastSpell(m_creature, SPELL_INVISIBILITY_AND_STEALTH_DETECTION, true); } - void goStoneform() + void EnterStoneform() { if (m_creature->GetDefaultMovementType() == IDLE_MOTION_TYPE && m_creature->GetEntry() == 16168) - { - m_creature->CastSpell(m_creature, 29154, true); - m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_SPAWNING); - } + m_creature->CastSpell(m_creature, SPELL_GARGOYLE_STONEFORM_VISUAL, true); } - uint32 acidVolleyTimer; + uint32 m_uiAcidVolleyTimer; void Reset() override { - acidVolleyTimer = 4000; + m_uiAcidVolleyTimer = urand(2800, 6500); } void JustReachedHome() override { - goStoneform(); + EnterStoneform(); } void MoveInLineOfSight(Unit* pWho) override { - if (m_creature->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_SPAWNING)) + if (m_creature->HasAura(SPELL_GARGOYLE_STONEFORM_VISUAL)) { if (pWho->GetTypeId() == TYPEID_PLAYER && !m_creature->IsInCombat() && m_creature->IsWithinDistInMap(pWho, 17.0f) + && m_creature->IsWithinLOSInMap(pWho) && !pWho->HasAuraType(SPELL_AURA_FEIGN_DEATH) - && m_creature->IsWithinLOSInMap(pWho)) + && !pWho->HasAuraType(SPELL_AURA_MOD_UNATTACKABLE)) { AttackStart(pWho); } @@ -1548,38 +1557,36 @@ struct mob_naxxramasGarboyleAI : public ScriptedAI void Aggro(Unit*) override { - if (m_creature->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_SPAWNING)) - { - m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_SPAWNING); - } + if (m_creature->HasAura(SPELL_GARGOYLE_STONEFORM_VISUAL)) + m_creature->RemoveAurasDueToSpellByCancel(SPELL_GARGOYLE_STONEFORM_VISUAL); } - void UpdateAI(uint32 const diff) override + void UpdateAI(const uint32 diff) override { if (!m_creature->SelectHostileTarget() || !m_creature->GetVictim()) return; - if (m_creature->GetHealthPercent() < 30.0f && !m_creature->IsNonMeleeSpellCasted() && !m_creature->HasAura(28995)) + if (m_creature->GetHealthPercent() < 30.0f && !m_creature->IsNonMeleeSpellCasted() && !m_creature->HasAura(SPELL_STONESKIN)) { - if (DoCastSpellIfCan(m_creature, 28995) == CAST_OK) + if (DoCastSpellIfCan(m_creature, SPELL_STONESKIN) == CAST_OK) { - m_creature->CastSpell(m_creature, 28995, true); // Stoneskin - DoScriptText(10755, m_creature); // %s emits a strange noise. + m_creature->CastSpell(m_creature, SPELL_STONESKIN, true); + DoScriptText(BCT_STRANGE_NOISE, m_creature); } } - if (acidVolleyTimer < diff && !m_creature->IsNonMeleeSpellCasted()) + if (m_uiAcidVolleyTimer < diff && !m_creature->IsNonMeleeSpellCasted()) { // supposedly the first gargoyle in plague wing did not do the acid volley, so // hackfix here to skip him if (m_creature->GetDBTableGUIDLow() != 88095) { - if (DoCastSpellIfCan(m_creature, 29325) == CAST_OK) // acid volley - acidVolleyTimer = 8000; + if (DoCastSpellIfCan(m_creature, SPELL_ACID_VOLLEY) == CAST_OK) // acid volley + m_uiAcidVolleyTimer = 8000; } } else - acidVolleyTimer -= diff; + m_uiAcidVolleyTimer -= diff; DoMeleeAttackIfReady(); } From c8319a6ea4f9281d8f117cb01c2a4b572f77f8f6 Mon Sep 17 00:00:00 2001 From: ratkosrb <35845488+ratkosrb@users.noreply.github.com> Date: Sun, 2 Jul 2023 11:35:15 +0300 Subject: [PATCH 041/426] East const! --- .../eastern_plaguelands/naxxramas/instance_naxxramas.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/instance_naxxramas.cpp b/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/instance_naxxramas.cpp index 1bcc7b0fcf9..642c5ead39e 100644 --- a/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/instance_naxxramas.cpp +++ b/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/instance_naxxramas.cpp @@ -1561,7 +1561,7 @@ struct mob_naxxramasGarboyleAI : public ScriptedAI m_creature->RemoveAurasDueToSpellByCancel(SPELL_GARGOYLE_STONEFORM_VISUAL); } - void UpdateAI(const uint32 diff) override + void UpdateAI(uint32 const diff) override { if (!m_creature->SelectHostileTarget() || !m_creature->GetVictim()) return; From 99eb86b16cce1ea25bf1240b3edc64eccbf964ef Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 2 Jul 2023 15:22:22 +0100 Subject: [PATCH 042/426] Add Missing Solid Chests (2850) (#2008) --- sql/migrations/20230630192207_world.sql | 277 ++++++++++++++++++++++++ 1 file changed, 277 insertions(+) create mode 100644 sql/migrations/20230630192207_world.sql diff --git a/sql/migrations/20230630192207_world.sql b/sql/migrations/20230630192207_world.sql new file mode 100644 index 00000000000..12ea7abb439 --- /dev/null +++ b/sql/migrations/20230630192207_world.sql @@ -0,0 +1,277 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230630192207'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230630192207'); +-- Add your query below. + + +-- Create new pool to hold Solid Chest spawns in Duskwood. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(4, 7, 'Solid Chests in Duskwood', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(16983, 4, 0, 'Solid Chest', 0, 10), +(17033, 4, 0, 'Solid Chest', 0, 10), +(18565, 4, 0, 'Solid Chest', 0, 10), +(18572, 4, 0, 'Solid Chest', 0, 10), +(18577, 4, 0, 'Solid Chest', 0, 10), +(33475, 4, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Wetlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(3, 13, 'Solid Chests in Wetlands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(15050, 3, 0, 'Solid Chest', 0, 10), +(15084, 3, 0, 'Solid Chest', 0, 10), +(15142, 3, 0, 'Solid Chest', 0, 10), +(15146, 3, 0, 'Solid Chest', 0, 10), +(15147, 3, 0, 'Solid Chest', 0, 10), +(15149, 3, 0, 'Solid Chest', 0, 10), +(15207, 3, 0, 'Solid Chest', 0, 10), +(15212, 3, 0, 'Solid Chest', 0, 10), +(15213, 3, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in The Barrens. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(2, 2, 'Solid Chests in The Barrens', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(13079, 2, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Redridge Mountains. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(5, 9, 'Solid Chests in Redridge Mountains', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(18583, 5, 0, 'Solid Chest', 0, 10), +(18917, 5, 0, 'Solid Chest', 0, 10), +(20765, 5, 0, 'Solid Chest', 0, 10), +(20771, 5, 0, 'Solid Chest', 0, 10), +(20793, 5, 0, 'Solid Chest', 0, 10), +(29240, 5, 0, 'Solid Chest', 0, 10), +(31132, 5, 0, 'Solid Chest', 0, 10), +(42621, 5, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Hillsbrad Foothills. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(6, 2, 'Solid Chests in Hillsbrad Foothills', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30018, 6, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Ashenvale. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(8, 5, 'Solid Chests in Ashenvale', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(47816, 8, 0, 'Solid Chest', 0, 10), +(47817, 8, 0, 'Solid Chest', 0, 10), +(47818, 8, 0, 'Solid Chest', 0, 10), +(47819, 8, 0, 'Solid Chest', 0, 10), +(47820, 8, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Stonetalon Mountains. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(7, 2, 'Solid Chests in Stonetalon Mountains', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(40712, 7, 0, 'Solid Chest', 0, 10), +(40713, 7, 0, 'Solid Chest', 0, 10); + +-- Missing Solid Chest spawns in Duskwood. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(16984, 2850, 0, -11015.3, 240.348, 27.0152, 1.309, 0, 0, 0.608761, 0.793354, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 16983 at 29.275505 yards. +(18581, 2850, 0, -10205.7, 170.329, 27.2421, 2.89725, 0, 0, 0.992546, 0.12187, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 18572 at 212.125732 yards. +(33482, 2850, 0, -10759.3, -587.221, 36.8814, 1.01229, 0, 0, 0.484809, 0.87462, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 33475 at 78.713707 yards. +(33484, 2850, 0, -10784.6, -586.092, 37.9249, 4.43314, 0, 0, -0.798635, 0.601815, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 33475 at 54.132896 yards. +(18584, 2850, 0, -10698, -104.122, 37.9923, 5.74214, 0, 0, -0.267238, 0.963631, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 18572 at 406.715179 yards. +(17034, 2850, 0, -10819.8, -1384.35, 44.2552, 5.32326, 0, 0, -0.461748, 0.887011, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 17033 at 46.517521 yards. +(18589, 2850, 0, -10431.6, -22.1773, 47.5033, 4.62512, 0, 0, -0.737277, 0.675591, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 18572 at 131.285599 yards. +(18592, 2850, 0, -10222.7, -49.3107, 31.8578, 5.51524, 0, 0, -0.374606, 0.927184, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 18572 at 84.414818 yards. +(18606, 2850, 0, -10178.6, -1023.05, 27.6378, 4.13643, 0, 0, -0.878817, 0.47716, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 18577 at 259.647522 yards. +(18608, 2850, 0, -10173.1, -831.417, 41.9193, 5.48033, 0, 0, -0.390731, 0.920505, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 18577 at 67.558693 yards. +(18609, 2850, 0, -10516.3, 437.68, 37.7729, 5.84685, 0, 0, -0.216439, 0.976296, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 18572 at 504.933807 yards. +(18612, 2850, 0, -10205.6, 476.661, 27.0559, 5.35816, 0, 0, -0.446198, 0.894935, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 18572 at 504.665802 yards. +(17085, 2850, 0, -10792.3, -1377.22, 39.027, 1.5708, 0, 0, 0.707107, 0.707107, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 17033 at 18.482624 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(16984, 4, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(18581, 4, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(33482, 4, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(33484, 4, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(18584, 4, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(17034, 4, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(18589, 4, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(18592, 4, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(18606, 4, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(18608, 4, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(18609, 4, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(18612, 4, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(17085, 4, 0, 'Solid Chest', 0, 10); -- Solid Chests in Duskwood + +-- Missing Solid Chest spawns in Wetlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(15208, 2850, 0, -3145.96, -1059.43, 8.08108, 0.575957, 0, 0, 0.284015, 0.95882, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15207 at 180.764481 yards. +(15209, 2850, 0, -3212.39, -1022.89, 9.32691, 1.20428, 0, 0, 0.566406, 0.824126, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15207 at 106.872597 yards. +(15150, 2850, 0, -3751.49, -2922.89, 12.0202, 3.73501, 0, 0, -0.956305, 0.292372, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15149 at 161.463638 yards. +(15143, 2850, 0, -2995.48, -2525.18, 11.3921, 0.541051, 0, 0, 0.267238, 0.963631, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15142 at 353.336548 yards. +(15210, 2850, 0, -3199.67, -950.395, 8.9407, 4.29351, 0, 0, -0.83867, 0.54464, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15207 at 87.432243 yards. +(15151, 2850, 0, -3107.93, -963.956, 8.52378, 5.13127, 0, 0, -0.544639, 0.838671, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15147 at 126.429352 yards. +(15085, 2850, 0, -4141.16, -2950.04, 11.5826, 5.88176, 0, 0, -0.199368, 0.979925, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15084 at 84.651718 yards. +(15155, 2850, 0, -3778.29, -3009.95, 11.5863, 4.7473, 0, 0, -0.694658, 0.71934, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15149 at 108.387543 yards. +(15225, 2850, 0, -4307.18, -2399.89, 209.588, 2.72271, 0, 0, 0.978148, 0.207912, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15213 at 114.657211 yards. +(15226, 2850, 0, -3969.95, -2338.92, 18.2082, 0.0523589, 0, 0, 0.0261765, 0.999657, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15212 at 202.458878 yards. +(15156, 2850, 0, -3050.79, -973.153, 9.12081, 0.837757, 0, 0, 0.406736, 0.913546, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15147 at 70.838905 yards. +(15157, 2850, 0, -2800.48, -1002.4, -13.2592, 3.49067, 0, 0, -0.984807, 0.173652, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15147 at 186.138901 yards. +(15158, 2850, 0, -2977.38, -1955.39, 9.45823, 3.76991, 0, 0, -0.951056, 0.309017, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15146 at 125.002953 yards. +(15059, 2850, 0, -2970.03, -1697.64, 9.53065, 3.9619, 0, 0, -0.91706, 0.39875, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15050 at 156.507217 yards. +(15160, 2850, 0, -3036.7, -2156.59, 9.97567, 4.85202, 0, 0, -0.656058, 0.75471, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15142 at 79.391701 yards. +(15161, 2850, 0, -2991.62, -1058.62, 8.82124, 4.04917, 0, 0, -0.898793, 0.438373, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15147 at 96.575203 yards. +(15162, 2850, 0, -2898.26, -2577.74, 33.8699, 3.29869, 0, 0, -0.996917, 0.0784664, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15142 at 441.395508 yards. +(15211, 2850, 0, -3240.3, -1146.19, 9.08437, 2.67035, 0, 0, 0.972369, 0.233448, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15207 at 205.195114 yards. +(15163, 2850, 0, -3104.2, -2267.92, 10.0134, 3.71755, 0, 0, -0.958819, 0.284016, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15142 at 77.623634 yards. +(15227, 2850, 0, -4245.12, -2329.4, 206.53, 3.57793, 0, 0, -0.976295, 0.216442, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15213 at 78.188194 yards. +(15086, 2850, 0, -3886.19, -3029.93, 11.0323, 2.70526, 0, 0, 0.976295, 0.216442, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15084 at 185.719772 yards. +(15228, 2850, 0, -3790.94, -2454.6, 24.1786, 2.21657, 0, 0, 0.894934, 0.446199, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 15212 at 89.356567 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(15208, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15209, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15150, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15143, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15210, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15151, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15085, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15155, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15225, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15226, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15156, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15157, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15158, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15059, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15160, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15161, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15162, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15211, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15163, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15227, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15086, 3, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15228, 3, 0, 'Solid Chest', 0, 10); -- Solid Chests in Wetlands + +-- Missing Solid Chest spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(13100, 2850, 1, -4010.15, -1747.43, 97.6985, 0.191985, 0, 0, 0.0958452, 0.995396, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13079 at 344.523529 yards. +(13102, 2850, 1, -3908.19, -1627.89, 91.6667, 3.21142, 0, 0, -0.999391, 0.0349061, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13079 at 209.458755 yards. +(13103, 2850, 1, -3984.97, -1867.27, 92.1764, 1.41372, 0, 0, 0.649447, 0.760406, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 13079 at 393.370087 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(13100, 2, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Barrens +(13102, 2, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Barrens +(13103, 2, 0, 'Solid Chest', 0, 10); -- Solid Chests in The Barrens + +-- Missing Solid Chest spawns in Redridge Mountains. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(20794, 2850, 0, -8694.73, -2143.48, 158.255, 4.76475, 0, 0, -0.688354, 0.725374, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 20793 at 101.656555 yards. +(29245, 2850, 0, -8720.19, -2338.02, 155.916, 5.63741, 0, 0, -0.317305, 0.948324, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 29240 at 42.684891 yards. +(20799, 2850, 0, -9355.05, -3053.42, 136.687, 5.75959, 0, 0, -0.258819, 0.965926, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 20771 at 29.429087 yards. +(18588, 2850, 0, -9542.22, -3255.59, 48.8464, 3.57793, 0, 0, -0.976295, 0.216442, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 18583 at 130.444580 yards. +(20803, 2850, 0, -9246.9, -3418.03, 109.538, 4.01426, 0, 0, -0.906307, 0.422619, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 20765 at 156.804184 yards. +(20804, 2850, 0, -9373.07, -3168.83, 83.5116, 1.79769, 0, 0, 0.782608, 0.622515, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 20771 at 141.920609 yards. +(31149, 2850, 0, -9324.92, -2830.86, 69.0098, 5.02655, 0, 0, -0.587785, 0.809017, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 31132 at 139.969437 yards. +(20805, 2850, 0, -9223.85, -3300.4, 101.32, 6.26573, 0, 0, -0.00872612, 0.999962, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 20765 at 66.575356 yards. +(20806, 2850, 0, -9406.75, -3008.83, 136.687, 0.087266, 0, 0, 0.0436192, 0.999048, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 20771 at 67.547089 yards. +(29247, 2850, 0, -8686.61, -2301.04, 156.814, 4.38078, 0, 0, -0.814116, 0.580703, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 29240 at 63.455814 yards. +(20819, 2850, 0, -8792.6, -2175.8, 146.436, 1.01229, 0, 0, 0.484809, 0.87462, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 20793 at 46.614536 yards. +(20821, 2850, 0, -9117.6, -3225.17, 100.786, 3.68265, 0, 0, -0.96363, 0.267241, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 20765 at 75.608330 yards. +(20823, 2850, 0, -9373.04, -3079.24, 158.072, 3.78737, 0, 0, -0.948323, 0.317306, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 20771 at 28.744741 yards. +(20826, 2850, 0, -8831.21, -2198.59, 139.95, 1.88495, 0, 0, 0.809016, 0.587786, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 20793 at 78.744133 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(20794, 5, 0, 'Solid Chest', 0, 10), -- Solid Chests in Redridge Mountains +(29245, 5, 0, 'Solid Chest', 0, 10), -- Solid Chests in Redridge Mountains +(20799, 5, 0, 'Solid Chest', 0, 10), -- Solid Chests in Redridge Mountains +(18588, 5, 0, 'Solid Chest', 0, 10), -- Solid Chests in Redridge Mountains +(20803, 5, 0, 'Solid Chest', 0, 10), -- Solid Chests in Redridge Mountains +(20804, 5, 0, 'Solid Chest', 0, 10), -- Solid Chests in Redridge Mountains +(31149, 5, 0, 'Solid Chest', 0, 10), -- Solid Chests in Redridge Mountains +(20805, 5, 0, 'Solid Chest', 0, 10), -- Solid Chests in Redridge Mountains +(20806, 5, 0, 'Solid Chest', 0, 10), -- Solid Chests in Redridge Mountains +(29247, 5, 0, 'Solid Chest', 0, 10), -- Solid Chests in Redridge Mountains +(20819, 5, 0, 'Solid Chest', 0, 10), -- Solid Chests in Redridge Mountains +(20821, 5, 0, 'Solid Chest', 0, 10), -- Solid Chests in Redridge Mountains +(20823, 5, 0, 'Solid Chest', 0, 10), -- Solid Chests in Redridge Mountains +(20826, 5, 0, 'Solid Chest', 0, 10); -- Solid Chests in Redridge Mountains + +-- Missing Solid Chest spawns in Hillsbrad Foothills. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(30147, 2850, 0, -427.76, -1408.39, 99.0212, 3.07177, 0, 0, 0.999391, 0.0349061, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 30018 at 61.431728 yards. +(30148, 2850, 0, -404.319, -1339.46, 64.8823, 2.9845, 0, 0, 0.996917, 0.0784664, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 30018 at 136.736298 yards. +(30227, 2850, 0, -483.284, -1343.46, 53.6968, 2.09439, 0, 0, 0.866025, 0.500001, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 30018 at 136.551422 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30147, 6, 0, 'Solid Chest', 0, 10), -- Solid Chests in Hillsbrad Foothills +(30148, 6, 0, 'Solid Chest', 0, 10), -- Solid Chests in Hillsbrad Foothills +(30227, 6, 0, 'Solid Chest', 0, 10); -- Solid Chests in Hillsbrad Foothills + +-- Missing Solid Chest spawns in Ashenvale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(48098, 2850, 1, 1994.6, -1234.64, 57.3724, 0.523598, 0, 0, 0.258819, 0.965926, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 47816 at 274.035919 yards. +(48099, 2850, 1, 3288.89, -586.277, 156.085, 0.680677, 0, 0, 0.333806, 0.942642, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 47818 at 168.868256 yards. +(48100, 2850, 1, 2380.96, -1179.1, 91.4765, 3.47321, 0, 0, -0.986285, 0.16505, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 47819 at 247.790970 yards. +(48101, 2850, 1, 2203.02, -1432.82, 90.4306, 0.872664, 0, 0, 0.422618, 0.906308, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 47819 at 120.557076 yards. +(48102, 2850, 1, 3374.5, -485.57, 154.218, 1.16937, 0, 0, 0.551936, 0.833886, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 47818 at 168.386780 yards. +(48103, 2850, 1, 3334.05, -738.619, 165.437, 4.46804, 0, 0, -0.788011, 0.615662, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 47818 at 156.256973 yards. +(48104, 2850, 1, 3198.29, -273.749, 122.521, 1.51844, 0, 0, 0.688354, 0.725374, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 47817 at 105.092422 yards. +(48108, 2850, 1, 2241.25, -1544.39, 88.66, 0.820303, 0, 0, 0.398748, 0.91706, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 47819 at 148.825958 yards. +(48109, 2850, 1, 2343.71, 261.446, 153.828, 4.55531, 0, 0, -0.760406, 0.649449, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 47820 at 561.195984 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48098, 8, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48099, 8, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48100, 8, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48101, 8, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48102, 8, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48103, 8, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48104, 8, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48108, 8, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48109, 8, 0, 'Solid Chest', 0, 10); -- Solid Chests in Ashenvale + +-- Missing Solid Chest spawns in Stonetalon Mountains. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(40725, 2850, 1, 676.759, 1439.35, -7.96637, 5.51524, 0, 0, -0.374606, 0.927184, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 40713 at 96.934174 yards. +(40726, 2850, 1, 1001.33, 1698.48, -5.53388, 0.087266, 0, 0, 0.0436192, 0.999048, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 40712 at 240.185837 yards. +(40727, 2850, 1, 898.908, 1559.58, -16.3545, 2.51327, 0, 0, 0.951056, 0.309017, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 40713 at 226.259995 yards. +(40728, 2850, 1, 628.739, 1822.79, -10.3557, 3.9619, 0, 0, -0.91706, 0.39875, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 40712 at 200.433624 yards. +(40729, 2850, 1, 767.892, 1653.52, -32.6456, 4.10153, 0, 0, -0.887011, 0.461749, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 40713 at 151.382767 yards. +(40730, 2850, 1, 651.431, 1917.55, -5.88195, 3.42085, 0, 0, -0.990268, 0.139175, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 40712 at 182.611237 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(40725, 7, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stonetalon Mountains +(40726, 7, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stonetalon Mountains +(40727, 7, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stonetalon Mountains +(40728, 7, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stonetalon Mountains +(40729, 7, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stonetalon Mountains +(40730, 7, 0, 'Solid Chest', 0, 10); -- Solid Chests in Stonetalon Mountains + +-- Guid 60046 should be part of pool Battered Chests (106318) - Teldrassil - The Oracle Glade (20028). +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES (60046, 20028, 0, 'Battered Chest', 0, 10); + +-- Missing Battered Chest spawns in Elwynn Forest. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(60053, 106318, 0, -9913.4, -1086.03, 25.0252, 1.0821, 0, 0, 0.515038, 0.857168, 300, 900, 1, 100, 0, 10); -- Closest existing guid is 60030 at 30.910257 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(60053, 20019, 0, 'Battered Chest', 0, 10); -- Battered Chests (106318) - Elwyn Forest - Southcoast (Murlocs) + +-- Missing Battered Chest spawns in Teldrassil. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(49631, 106318, 1, 10652.6, 2016.06, 1326.44, 3.61284, 0, 0, -0.972369, 0.233448, 300, 900, 1, 100, 0, 10); -- Closest existing guid is 49623 at 58.145363 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(49631, 20028, 0, 'Battered Chest', 0, 10); -- Battered Chests (106318) - Teldrassil - The Oracle Glade + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` = 2850; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From a1b5ee1ac1a12b17cb6986eb40a36490e8dd51a4 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 2 Jul 2023 15:22:33 +0100 Subject: [PATCH 043/426] Add Missing Hidden Strongbox (2039) (#2009) --- sql/migrations/20230630194151_world.sql | 39 +++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 sql/migrations/20230630194151_world.sql diff --git a/sql/migrations/20230630194151_world.sql b/sql/migrations/20230630194151_world.sql new file mode 100644 index 00000000000..c40cc4ab787 --- /dev/null +++ b/sql/migrations/20230630194151_world.sql @@ -0,0 +1,39 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230630194151'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230630194151'); +-- Add your query below. + +-- Missing Hidden Strongbox spawns in Alterac Mountains. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(32346, 2039, 0, 475.848, 258.451, 43.3263, 2.58308, 0, 0, 0.961261, 0.27564, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 32184 at 139.037186 yards. +(32361, 2039, 0, 416.75, 238.28, 43.3589, 4.60767, 0, 0, -0.743144, 0.669131, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 32184 at 82.526695 yards. +(32362, 2039, 0, 97.6637, 461.808, 41.9076, 6.21337, 0, 0, -0.0348988, 0.999391, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 32183 at 344.504639 yards. +(32454, 2039, 0, 73.9381, 351.445, 42.0666, 5.96903, 0, 0, -0.156434, 0.987688, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 32183 at 288.853699 yards. +(32455, 2039, 0, 52.725, 484.512, 41.9076, 5.18363, 0, 0, -0.522498, 0.85264, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 32183 at 391.215179 yards. +(32459, 2039, 0, 496.922, 190.678, 41.9056, 5.91667, 0, 0, -0.182235, 0.983255, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 32184 at 132.060974 yards. +(32460, 2039, 0, 423.812, 178.545, 43.0778, 3.68265, 0, 0, -0.96363, 0.267241, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 32184 at 58.032925 yards. +(32470, 2039, 0, 109.063, 263.748, 43.2449, 5.49779, 0, 0, -0.382683, 0.92388, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 32183 at 219.380905 yards. +(32471, 2039, 0, 375.222, 203.855, 43.0311, 4.99164, 0, 0, -0.601814, 0.798636, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 32184 at 32.021175 yards. +(32479, 2039, 0, 90.2206, 237.015, 43.2842, 0.0349062, 0, 0, 0.0174522, 0.999848, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 32183 at 231.311691 yards. +(32485, 2039, 0, 72.1165, 424.798, 43.0758, 3.38594, 0, 0, -0.992546, 0.12187, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 32183 at 335.212189 yards. +(32492, 2039, 0, 63.5124, 268.543, 43.1233, 0.331611, 0, 0, 0.165047, 0.986286, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 32183 at 264.393341 yards. +(32493, 2039, 0, 298.736, 186.098, 42.6336, 2.30383, 0, 0, 0.913545, 0.406738, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 32183 at 22.190643 yards. +(32509, 2039, 0, 444.879, 196.229, 43.7402, 3.38594, 0, 0, -0.992546, 0.12187, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 32184 at 82.155258 yards. + +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(2039, 6, 'Alterac Mountains - Hidden Strongbox'); + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` = 2039; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From a1d8b653ac2d7ed3ae1ff10648b57651a6bdb49d Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 2 Jul 2023 15:22:44 +0100 Subject: [PATCH 044/426] Add Missing Battered Chests (106319) (#2011) --- sql/migrations/20230701063001_world.sql | 264 ++++++++++++++++++++++++ 1 file changed, 264 insertions(+) create mode 100644 sql/migrations/20230701063001_world.sql diff --git a/sql/migrations/20230701063001_world.sql b/sql/migrations/20230701063001_world.sql new file mode 100644 index 00000000000..5b2eca637e8 --- /dev/null +++ b/sql/migrations/20230701063001_world.sql @@ -0,0 +1,264 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230701063001'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230701063001'); +-- Add your query below. + + +-- Create new pool to hold Battered Chest spawns in The Barrens. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(11, 10, 'Battered Chests in The Barrens', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(13327, 11, 0, 'Battered Chest', 0, 10), +(13338, 11, 0, 'Battered Chest', 0, 10), +(13339, 11, 0, 'Battered Chest', 0, 10), +(13345, 11, 0, 'Battered Chest', 0, 10), +(13346, 11, 0, 'Battered Chest', 0, 10), +(13347, 11, 0, 'Battered Chest', 0, 10), +(13348, 11, 0, 'Battered Chest', 0, 10), +(13349, 11, 0, 'Battered Chest', 0, 10); + +-- Create new pool to hold Battered Chest spawns in Loch Modan. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(10, 9, 'Battered Chests in Loch Modan', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(12796, 10, 0, 'Battered Chest', 0, 10), +(12877, 10, 0, 'Battered Chest', 0, 10), +(12998, 10, 0, 'Battered Chest', 0, 10), +(13209, 10, 0, 'Battered Chest', 0, 10), +(13246, 10, 0, 'Battered Chest', 0, 10), +(13248, 10, 0, 'Battered Chest', 0, 10), +(13426, 10, 0, 'Battered Chest', 0, 10); + +-- Create new pool to hold Battered Chest spawns in Westfall. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(13, 13, 'Battered Chests in Westfall', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(42680, 13, 0, 'Battered Chest', 0, 10), +(42718, 13, 0, 'Battered Chest', 0, 10), +(42719, 13, 0, 'Battered Chest', 0, 10), +(42736, 13, 0, 'Battered Chest', 0, 10), +(42738, 13, 0, 'Battered Chest', 0, 10), +(42739, 13, 0, 'Battered Chest', 0, 10), +(42749, 13, 0, 'Battered Chest', 0, 10), +(42681, 13, 0, 'Battered Chest', 0, 10), +(42788, 13, 0, 'Battered Chest', 0, 10); + +-- Create new pool to hold Battered Chest spawns in Silverpine Forest. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(12, 10, 'Battered Chests in Silverpine Forest', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(35483, 12, 0, 'Battered Chest', 0, 10), +(35569, 12, 0, 'Battered Chest', 0, 10), +(42067, 12, 0, 'Battered Chest', 0, 10), +(42068, 12, 0, 'Battered Chest', 0, 10), +(42069, 12, 0, 'Battered Chest', 0, 10), +(42077, 12, 0, 'Battered Chest', 0, 10), +(42957, 12, 0, 'Battered Chest', 0, 10); + +-- Create new pool to hold Battered Chest spawns in Darkshore. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(15, 5, 'Battered Chests in Darkshore', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48537, 15, 0, 'Battered Chest', 0, 10), +(48602, 15, 0, 'Battered Chest', 0, 10), +(48623, 15, 0, 'Battered Chest', 0, 10), +(48695, 15, 0, 'Battered Chest', 0, 10); + +-- Missing Battered Chest spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(13340, 106319, 1, 1019.25, -3119.55, 80.7686, 2.09439, 0, 0, 0.866025, 0.500001, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13339 at 466.756683 yards. +(13341, 106319, 1, 1021.24, -3091.91, 91.7103, 2.61799, 0, 0, 0.965925, 0.258821, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13339 at 442.354797 yards. +(13355, 106319, 1, -1581.39, -3894.96, 13.6611, 0.994837, 0, 0, 0.477159, 0.878817, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13349 at 225.193863 yards. +(13357, 106319, 1, -1385.64, -2732.88, 91.6845, 4.03171, 0, 0, -0.902585, 0.430512, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13346 at 410.420380 yards. +(13358, 106319, 1, -1505.74, -3811.72, 23.4231, 5.65487, 0, 0, -0.309016, 0.951057, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13349 at 247.420792 yards. +(13362, 106319, 1, -175.803, -1799.15, 91.6667, 6.0912, 0, 0, -0.0958452, 0.995396, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13347 at 357.259064 yards. +(13363, 106319, 1, -1010.49, -2335.26, 91.6865, 1.44862, 0, 0, 0.66262, 0.748956, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13345 at 291.411865 yards. +(13367, 106319, 1, -52.4683, -1644.27, 91.6667, 0, 0, 0, 0, 1, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13347 at 282.208160 yards. +(13342, 106319, 1, -1123.9, -2786.77, 91.6816, 0.0698117, 0, 0, 0.0348988, 0.999391, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13338 at 380.174103 yards. +(13421, 106319, 1, -1296.6, -2839.76, 93.7541, 0.872664, 0, 0, 0.422618, 0.906308, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13346 at 300.979309 yards. +(13422, 106319, 1, -1710.46, -3836.71, 11.2646, 0.558504, 0, 0, 0.275637, 0.961262, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13349 at 105.062050 yards. +(13430, 106319, 1, -1051.13, -2027.63, 64.2893, 0.977383, 0, 0, 0.469471, 0.882948, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13345 at 114.527359 yards. +(13431, 106319, 1, -245.361, -3332.41, 92.4171, 4.08407, 0, 0, -0.891006, 0.453991, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13348 at 213.802231 yards. +(13432, 106319, 1, -1485.27, -3045.18, 91.6731, 1.58825, 0, 0, 0.71325, 0.70091, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13346 at 183.703476 yards. +(13343, 106319, 1, 892.032, -2694.98, 100.275, 3.26377, 0, 0, -0.998135, 0.0610518, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13339 at 62.391731 yards. +(13484, 106319, 1, 72.5329, -2089.05, 91.696, 1.11701, 0, 0, 0.529919, 0.848048, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13347 at 306.878326 yards. +(13334, 106319, 1, 533.871, -2135.81, 92.5965, 2.80998, 0, 0, 0.986285, 0.16505, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 13327 at 188.598953 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(13340, 11, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13341, 11, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13355, 11, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13357, 11, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13358, 11, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13362, 11, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13363, 11, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13367, 11, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13342, 11, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13421, 11, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13422, 11, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13430, 11, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13431, 11, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13432, 11, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13343, 11, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13484, 11, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13334, 11, 0, 'Battered Chest', 0, 10); -- Battered Chests in The Barrens + +-- Missing Battered Chest spawns in Loch Modan. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(12905, 106319, 0, -4965.29, -3494.63, 305.484, 3.9619, 0, 0, -0.91706, 0.39875, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 12877 at 163.856018 yards. +(13249, 106319, 0, -5545.99, -2735.77, 366.15, 0.523598, 0, 0, 0.258819, 0.965926, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 13246 at 245.235519 yards. +(13290, 106319, 0, -5395.51, -2709.64, 366.297, 5.44543, 0, 0, -0.406736, 0.913546, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 13246 at 97.180969 yards. +(13328, 106319, 0, -4781.68, -3033.98, 301.639, 2.37364, 0, 0, 0.927183, 0.374608, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 13248 at 147.854706 yards. +(13329, 106319, 0, -4717.31, -3088.1, 306.458, 3.00195, 0, 0, 0.997563, 0.0697661, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 13248 at 225.693665 yards. +(13011, 106319, 0, -4868.91, -3318.01, 305.733, 0.925024, 0, 0, 0.446198, 0.894935, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 12877 at 169.354797 yards. +(13429, 106319, 0, -4978.75, -2963.04, 316.422, 1.62316, 0, 0, 0.725374, 0.688355, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 13426 at 20.925613 yards. +(13330, 106319, 0, -4786.32, -2979.21, 323.459, 2.63544, 0, 0, 0.968147, 0.250381, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 13248 at 135.123459 yards. +(13212, 106319, 0, -5876.54, -2857.96, 366.134, 5.2709, 0, 0, -0.484809, 0.87462, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 13209 at 167.410919 yards. +(13107, 106319, 0, -6094.4, -2773.77, 415.758, 0, 0, 0, 0, 1, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 12998 at 76.417015 yards. +(13213, 106319, 0, -6043.68, -2985.55, 402.241, 6.26573, 0, 0, -0.00872612, 0.999962, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 13209 at 46.307205 yards. +(13331, 106319, 0, -4935.93, -2963.61, 317.672, 5.74214, 0, 0, -0.267238, 0.963631, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 13248 at 36.503899 yards. +(13217, 106319, 0, -6075.44, -3031.93, 401.729, 2.14675, 0, 0, 0.878817, 0.47716, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 13209 at 101.232735 yards. +(12873, 106319, 0, -6145.14, -2943.76, 397.839, 5.044, 0, 0, -0.580703, 0.814116, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 12796 at 21.659779 yards. +(13332, 106319, 0, -4946.25, -2975.34, 321.752, 0.95993, 0, 0, 0.461748, 0.887011, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 13248 at 33.156040 yards. +(13333, 106319, 0, -5053.31, -2681.58, 320.147, 0.733038, 0, 0, 0.358368, 0.93358, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 13246 at 253.380997 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(12905, 10, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13249, 10, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13290, 10, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13328, 10, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13329, 10, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13011, 10, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13429, 10, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13330, 10, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13212, 10, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13107, 10, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13213, 10, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13331, 10, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13217, 10, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(12873, 10, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13332, 10, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13333, 10, 0, 'Battered Chest', 0, 10); -- Battered Chests in Loch Modan + +-- Missing Battered Chest spawns in Westfall. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(42882, 106319, 0, -10646.8, 1381, 41.2197, 5.00909, 0, 0, -0.594823, 0.803857, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42788 at 368.571930 yards. +(42740, 106319, 0, -10853.5, 1158.33, 37.1684, 3.71755, 0, 0, -0.958819, 0.284016, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42736 at 278.076843 yards. +(42883, 106319, 0, -10500, 1330.48, 42.5685, 5.65487, 0, 0, -0.309016, 0.951057, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42788 at 214.593933 yards. +(42754, 106319, 0, -9579.93, 1445.71, 0.427918, 4.66003, 0, 0, -0.725374, 0.688355, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42749 at 63.144806 yards. +(42693, 106319, 0, -10504.4, 1980.73, 10.7782, 5.13127, 0, 0, -0.544639, 0.838671, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42680 at 54.837120 yards. +(42755, 106319, 0, -9845.5, 1040.19, 34.0109, 3.94445, 0, 0, -0.920505, 0.390732, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42739 at 438.000153 yards. +(42720, 106319, 0, -9884.88, 1423.31, 39.9257, 3.05433, 0, 0, 0.999048, 0.0436193, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42718 at 82.034904 yards. +(42694, 106319, 0, -10430.5, 1929.75, 9.43948, 0.087266, 0, 0, 0.0436192, 0.999048, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42680 at 48.693802 yards. +(42732, 106319, 0, -10355.7, 1563.4, 41.7598, 1.09956, 0, 0, 0.522498, 0.85264, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42719 at 279.409668 yards. +(42764, 106319, 0, -11039.1, 1460.17, 45.3211, 3.7001, 0, 0, -0.961261, 0.27564, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42738 at 201.445038 yards. +(42767, 106319, 0, -11006.6, 1538.17, 44.07, 4.7473, 0, 0, -0.694658, 0.71934, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42738 at 124.773384 yards. +(42884, 106319, 0, -10204.2, 1181.17, 37.5443, 0.645772, 0, 0, 0.317305, 0.948324, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42788 at 117.074852 yards. +(42783, 106319, 0, -9576.99, 1069.09, 1.29648, 1.71042, 0, 0, 0.754709, 0.656059, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42749 at 439.611328 yards. +(42695, 106319, 0, -10720.5, 1851.11, 34.3774, 1.18682, 0, 0, 0.559193, 0.829038, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42680 at 256.050201 yards. +(42696, 106319, 0, -10537.5, 1995.89, -8.45719, 1.72787, 0, 0, 0.760406, 0.649449, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42680 at 87.911873 yards. +(42784, 106319, 0, -10995, 1477.86, 50.5872, 0.610863, 0, 0, 0.300705, 0.953717, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42738 at 186.336121 yards. +(42885, 106319, 0, -10820.5, 1320.3, 34.2893, 2.9496, 0, 0, 0.995396, 0.0958512, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42738 at 398.740295 yards. +(42886, 106319, 0, -9847.33, 1409.7, 38.8322, 5.91667, 0, 0, -0.182235, 0.983255, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42718 at 120.171921 yards. +(42887, 106319, 0, -9872.5, 1327.28, 43.0347, 4.41568, 0, 0, -0.803857, 0.594823, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42718 at 167.275681 yards. +(42697, 106319, 0, -10469.7, 1997.04, 8.38445, 4.67748, 0, 0, -0.719339, 0.694659, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42680 at 65.541817 yards. +(42889, 106319, 0, -11043.9, 1426.59, 44.3597, 6.23083, 0, 0, -0.0261765, 0.999657, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42738 at 235.256714 yards. +(42898, 106319, 0, -10300.4, 1402.69, 40.1549, 0.087266, 0, 0, 0.0436192, 0.999048, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42788 at 174.826538 yards. +(42925, 106319, 0, -9909, 1443.03, 38.9455, 3.21142, 0, 0, -0.999391, 0.0349061, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 42718 at 50.909740 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(42882, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42740, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42883, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42754, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42693, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42755, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42720, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42694, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42732, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42764, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42767, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42884, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42783, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42695, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42696, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42784, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42885, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42886, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42887, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42697, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42889, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42898, 13, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42925, 13, 0, 'Battered Chest', 0, 10); -- Battered Chests in Westfall + +-- Missing Battered Chest spawns in Silverpine Forest. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(35573, 106319, 0, 1298.63, 665.104, 32.3069, 0.855211, 0, 0, 0.414693, 0.909961, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 35569 at 68.963860 yards. +(42097, 106319, 0, 1007.36, 1566.84, 28.9856, 1.32645, 0, 0, 0.615661, 0.788011, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 42069 at 86.944069 yards. +(42129, 106319, 0, 983.86, 1199.85, 48.4682, 0.680677, 0, 0, 0.333806, 0.942642, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 42068 at 29.424250 yards. +(42174, 106319, 0, 981.954, 1425.01, 38.3619, 0.226892, 0, 0, 0.113203, 0.993572, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 42069 at 187.650620 yards. +(35505, 106319, 0, -338.33, 1597.92, 17.0153, 5.68977, 0, 0, -0.292372, 0.956305, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 35483 at 145.120895 yards. +(42175, 106319, 0, 1054.63, 1601.91, 29.0636, 5.02655, 0, 0, -0.587785, 0.809017, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 42069 at 47.454609 yards. +(42176, 106319, 0, 1036.52, 1620.64, 25.1019, 0.820303, 0, 0, 0.398748, 0.91706, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 42069 at 73.204010 yards. +(42177, 106319, 0, 1115.22, 1107.16, 41.4903, 4.38078, 0, 0, -0.814116, 0.580703, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 42068 at 187.907303 yards. +(42178, 106319, 0, 875.372, 1241.4, 46.9581, 5.63741, 0, 0, -0.317305, 0.948324, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 42068 at 95.352806 yards. +(35590, 106319, 0, 1208.59, 896.665, 33.4174, 2.61799, 0, 0, 0.965925, 0.258821, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 35569 at 203.411636 yards. +(35591, 106319, 0, 1175.96, 931.949, 33.0883, 3.89209, 0, 0, -0.930417, 0.366502, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 35569 at 251.073822 yards. +(35597, 106319, 0, 1158.05, 965.709, 32.3014, 3.07177, 0, 0, 0.999391, 0.0349061, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 35569 at 288.949890 yards. +(42179, 106319, 0, 996.038, 1571.19, 28.7842, 1.11701, 0, 0, 0.529919, 0.848048, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 42069 at 97.939308 yards. +(42961, 106319, 0, 110.101, 1446.49, 114.696, 4.86947, 0, 0, -0.649447, 0.760406, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 42957 at 101.871544 yards. +(35519, 106319, 0, -336.079, 1516.02, 16.8309, 5.07891, 0, 0, -0.566406, 0.824126, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 35483 at 81.993172 yards. +(42966, 106319, 0, 134.839, 1506.64, 114.412, 3.76991, 0, 0, -0.951056, 0.309017, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 42957 at 36.940536 yards. +(42180, 106319, 0, 844.727, 1920.26, -4.62497, 2.44346, 0, 0, 0.939692, 0.34202, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 42067 at 309.361847 yards. +(42181, 106319, 0, 874.681, 1237.96, 52.6016, 6.00393, 0, 0, -0.139173, 0.990268, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 42068 at 95.621971 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(35573, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(42097, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(42129, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(42174, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(35505, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(42175, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(42176, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(42177, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(42178, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(35590, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(35591, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(35597, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(42179, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(42961, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(35519, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(42966, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(42180, 12, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(42181, 12, 0, 'Battered Chest', 0, 10); -- Battered Chests in Silverpine Forest + +-- Missing Battered Chest spawns in Darkshore. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(48629, 106319, 1, 7137.15, 537.865, 0.242076, 2.30383, 0, 0, 0.913545, 0.406738, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48623 at 804.497437 yards. +(48697, 106319, 1, 6750.87, -694.535, 89.5886, 5.3058, 0, 0, -0.469471, 0.882948, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48695 at 87.766159 yards. +(48604, 106319, 1, 5792.47, 214.896, 30.0395, 3.03684, 0, 0, 0.998629, 0.0523532, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48602 at 94.872337 yards. +(48638, 106319, 1, 5627.37, 163.007, 32.416, 4.79966, 0, 0, -0.67559, 0.737278, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48602 at 148.545975 yards. +(48646, 106319, 1, 6744.83, -207.431, 33.7675, 3.15906, 0, 0, -0.999962, 0.00873464, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48623 at 65.830460 yards. +(48704, 106319, 1, 6719.12, -642.526, 69.5251, 5.68977, 0, 0, -0.292372, 0.956305, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 48695 at 146.405090 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48629, 15, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48697, 15, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48604, 15, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48638, 15, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48646, 15, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48704, 15, 0, 'Battered Chest', 0, 10); -- Battered Chests in Darkshore +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 106319; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 955dbd2c544bcb671a8d59fff0455fe521903e1f Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 2 Jul 2023 15:22:53 +0100 Subject: [PATCH 045/426] Add Missing Cat Figurines (#2012) --- sql/migrations/20230701084715_world.sql | 200 ++++++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 sql/migrations/20230701084715_world.sql diff --git a/sql/migrations/20230701084715_world.sql b/sql/migrations/20230701084715_world.sql new file mode 100644 index 00000000000..24e85a63849 --- /dev/null +++ b/sql/migrations/20230701084715_world.sql @@ -0,0 +1,200 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230701084715'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230701084715'); +-- Add your query below. + + +SET @OGUID = 31532; +SET @PTEMPLATE = 16965; + +DELETE FROM `gameobject` WHERE `guid` IN (13546, 13547, 13548, 13549, 13550, 13551, 13552, 13553, 13554, 13555, 13556, 13557, 13558, 13559, 13560, 13561, 13562, 13563, 13564, 13565, 399301, 399302, 399303, 399304, 399305, 399306, 399307, 399308, 399309, 399310, 399311, 399312, 399313, 399314, 399315, 399316, 399317, 399318, 399319, 399320); +DELETE FROM `pool_gameobject` WHERE `guid` IN (13546, 13547, 13548, 13549, 13550, 13551, 13552, 13553, 13554, 13555, 13556, 13557, 13558, 13559, 13560, 13561, 13562, 13563, 13564, 13565, 399301, 399302, 399303, 399304, 399305, 399306, 399307, 399308, 399309, 399310, 399311, 399312, 399313, 399314, 399315, 399316, 399317, 399318, 399319, 399320); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (13546, 13547, 13548, 13549, 13550, 13551, 13552, 13553, 13554, 13555, 13556, 13557, 13558, 13559, 13560, 13561, 13562, 13563, 13564, 13565, 399301, 399302, 399303, 399304, 399305, 399306, 399307, 399308, 399309, 399310, 399311, 399312, 399313, 399314, 399315, 399316, 399317, 399318, 399319, 399320)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 13359, 1, 7312.25, -954.66, 32.2666, 1.78024, 0, 0, 0.777146, 0.62932, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 13359, 1, 7354.62, -785.463, 7.84792, 4.48903, 0, 0, 0.781507, -0.623897, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 13359, 1, 7388.81, -1064.92, 38.5052, -0.750491, 0, 0, 0.366501, -0.930418, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 13359, 1, 7408.95, -919.086, 13.3903, 3.97936, 0, 0, -0.913545, 0.406738, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 13359, 1, 7433.07, -842.923, 16.0331, 0.620163, 0, 0, 0.305136, 0.952309, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 13359, 1, 7445, -1029.63, 17.3113, 2.12421, 0, 0, 0.873383, 0.487034, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 13359, 1, 7452.75, -842.502, 1.44652, 2.33874, 0, 0, 0.920505, 0.390732, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 13359, 1, 7456.14, -1012.32, -9.80946, 0, 0, 0, 0, 1, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 13359, 1, 7474.54, -1069.02, 34.7748, 3.14159, 0, 0, -1, 0, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 13359, 1, 7491.87, -822.89, 15.6482, 1.00502, 0, 0, 0.481625, 0.876378, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 13359, 1, 7532.89, -967.223, -9.72233, 0.0177932, 0, 0, 0.00889647, 0.99996, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 13359, 1, 7537.63, -820.435, 16.0756, 2.1293, 0, 0, 0.874619, 0.48481, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 13359, 1, 7542.35, -968.103, -9.35254, 0.349065, 0, 0, 0.173648, 0.984808, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 13359, 1, 7568.98, -874.125, 16.1728, 1.27409, 0, 0, 0.594822, 0.803857, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 13359, 1, 7586.13, -1053.09, 37.5463, 1.78023, 0, 0, 0.777145, 0.629321, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 13359, 1, 7667.91, -994.121, 35.5219, -3.01942, 0, 0, 0.998135, -0.061048, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 13359, 1, 7697.81, -912.961, 20.5101, 2.72507, 0, 0, 0.978392, 0.206759, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 13359, 1, 7248.35, -864.333, 30.7869, 4.41568, 0, 0, -0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+19, 13359, 1, 7257.43, -913.109, 35.7167, 0.925024, 0, 0, 0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+20, 13359, 1, 7273.1, -955.21, 34.433, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+21, 13359, 1, 7338.47, -990.344, 32.0613, 0.837757, 0, 0, 0.406736, 0.913546, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+22, 13359, 1, 7357.98, -802.943, 8.16762, 3.29869, 0, 0, -0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+23, 13359, 1, 7416.46, -1061.46, 38.1164, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+24, 13359, 1, 7490.07, -818.734, 15.1527, 5.13127, 0, 0, -0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+25, 13359, 1, 7610.89, -1008.14, 37.8612, 0.785397, 0, 0, 0.382683, 0.92388, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+26, 13359, 1, 7693.61, -915.8, 20.8482, 0.59341, 0, 0, 0.292371, 0.956305, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+27, 13359, 1, 7417.99, -851.028, 17.6296, 0.628317, 0, 0, 0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+28, 13873, 1, 7312.25, -954.66, 32.2666, 1.78024, 0, 0, 0.777146, 0.62932, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 13873, 1, 7354.62, -785.463, 7.84792, 4.48903, 0, 0, 0.781507, -0.623897, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 13873, 1, 7388.81, -1064.92, 38.5052, -0.750491, 0, 0, 0.366501, -0.930418, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 13873, 1, 7408.95, -919.086, 13.3903, 3.97936, 0, 0, -0.913545, 0.406738, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 13873, 1, 7433.07, -842.923, 16.0331, 0.620163, 0, 0, 0.305136, 0.952309, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 13873, 1, 7445, -1029.63, 17.3113, 2.12421, 0, 0, 0.873383, 0.487034, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 13873, 1, 7452.75, -842.502, 1.44652, 2.33874, 0, 0, 0.920505, 0.390732, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 13873, 1, 7456.14, -1012.32, -9.80946, 0, 0, 0, 0, 1, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 13873, 1, 7474.54, -1069.02, 34.7748, 3.14159, 0, 0, -1, 0, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 13873, 1, 7491.87, -822.89, 15.6482, 1.00502, 0, 0, 0.481625, 0.876378, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 13873, 1, 7532.89, -967.223, -9.72233, 0.0177932, 0, 0, 0.00889647, 0.99996, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 13873, 1, 7537.63, -820.435, 16.0756, 2.1293, 0, 0, 0.874619, 0.48481, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 13873, 1, 7542.35, -968.103, -9.35254, 0.349065, 0, 0, 0.173648, 0.984808, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 13873, 1, 7568.98, -874.125, 16.1728, 1.27409, 0, 0, 0.594822, 0.803857, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 13873, 1, 7586.13, -1053.09, 37.5463, 1.78023, 0, 0, 0.777145, 0.629321, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 13873, 1, 7667.91, -994.121, 35.5219, -3.01942, 0, 0, 0.998135, -0.061048, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 13873, 1, 7697.81, -912.961, 20.5101, 2.72507, 0, 0, 0.978392, 0.206759, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 13873, 1, 7248.35, -864.333, 30.7869, 4.41568, 0, 0, -0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+46, 13873, 1, 7257.43, -913.109, 35.7167, 0.925024, 0, 0, 0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+47, 13873, 1, 7273.1, -955.21, 34.433, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+48, 13873, 1, 7338.47, -990.344, 32.0613, 0.837757, 0, 0, 0.406736, 0.913546, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+49, 13873, 1, 7357.98, -802.943, 8.16762, 3.29869, 0, 0, -0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+50, 13873, 1, 7416.46, -1061.46, 38.1164, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+51, 13873, 1, 7490.07, -818.734, 15.1527, 5.13127, 0, 0, -0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+52, 13873, 1, 7610.89, -1008.14, 37.8612, 0.785397, 0, 0, 0.382683, 0.92388, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+53, 13873, 1, 7693.61, -915.8, 20.8482, 0.59341, 0, 0, 0.292371, 0.956305, 180, 180, 100, 1, 0, 0, 7, 10), +(@OGUID+54, 13873, 1, 7417.99, -851.028, 17.6296, 0.628317, 0, 0, 0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 7, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+2, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+3, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+4, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+5, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+6, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+7, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+8, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+9, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+10, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+11, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+12, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+13, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+14, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+15, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+16, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+17, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+18, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+19, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+20, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+21, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+22, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+23, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+24, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+25, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+26, 1, 'Cat Figurine - Darkshore', 0, 10), +(@PTEMPLATE+27, 1, 'Cat Figurine - Darkshore', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+28, @PTEMPLATE+1, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+29, @PTEMPLATE+2, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+30, @PTEMPLATE+3, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+31, @PTEMPLATE+4, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+32, @PTEMPLATE+5, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+33, @PTEMPLATE+6, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+34, @PTEMPLATE+7, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+35, @PTEMPLATE+8, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+36, @PTEMPLATE+9, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+37, @PTEMPLATE+10, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+38, @PTEMPLATE+11, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+39, @PTEMPLATE+12, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+40, @PTEMPLATE+13, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+41, @PTEMPLATE+14, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+42, @PTEMPLATE+15, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+43, @PTEMPLATE+16, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+44, @PTEMPLATE+17, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+45, @PTEMPLATE+18, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+46, @PTEMPLATE+19, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+47, @PTEMPLATE+20, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+48, @PTEMPLATE+21, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+49, @PTEMPLATE+22, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+50, @PTEMPLATE+23, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+51, @PTEMPLATE+24, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+52, @PTEMPLATE+25, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+53, @PTEMPLATE+26, 'Cat Figurine - Darkshore', 0, 10), +(@OGUID+54, @PTEMPLATE+27, 'Cat Figurine - Darkshore', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+28, 11, 'Darkshore - Cat Figurine (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+2, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+3, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+4, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+5, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+6, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+7, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+8, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+9, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+10, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+11, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+12, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+13, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+14, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+15, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+16, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+17, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+18, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+19, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+20, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+21, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+22, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+23, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+24, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+25, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+26, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0), +(@PTEMPLATE+27, @PTEMPLATE+28, 0, 'Cat Figurine - Darkshore', 0); + +UPDATE `pool_gameobject` SET `chance` = 90 WHERE `description` = "Cat Figurine - Darkshore" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 13359); +UPDATE `pool_gameobject` SET `chance` = 10 WHERE `description` = "Cat Figurine - Darkshore" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 13873); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 686bcff7108782c7da740129be29402eac1a29d5 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 2 Jul 2023 16:21:47 +0100 Subject: [PATCH 046/426] Add Missing Solid Chests (153453) (#2013) --- sql/migrations/20230701092538_world.sql | 151 ++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 sql/migrations/20230701092538_world.sql diff --git a/sql/migrations/20230701092538_world.sql b/sql/migrations/20230701092538_world.sql new file mode 100644 index 00000000000..68bf52156ff --- /dev/null +++ b/sql/migrations/20230701092538_world.sql @@ -0,0 +1,151 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230701092538'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230701092538'); +-- Add your query below. + + +-- Create new pool to hold Solid Chest spawns in Azshara. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(19, 5, 'Solid Chests in Azshara', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48366, 19, 0, 'Solid Chest', 0, 10), +(48367, 19, 0, 'Solid Chest', 0, 10), +(48368, 19, 0, 'Solid Chest', 0, 10), +(48369, 19, 0, 'Solid Chest', 0, 10), +(48370, 19, 0, 'Solid Chest', 0, 10), +(48371, 19, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Western Plaguelands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(17, 5, 'Solid Chests in Western Plaguelands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(45484, 17, 0, 'Solid Chest', 0, 10), +(45485, 17, 0, 'Solid Chest', 0, 10), +(45488, 17, 0, 'Solid Chest', 0, 10), +(45492, 17, 0, 'Solid Chest', 0, 10), +(45548, 17, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Burning Steppes. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(16, 5, 'Solid Chests in Burning Steppes', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(6827, 16, 0, 'Solid Chest', 0, 10), +(6835, 16, 0, 'Solid Chest', 0, 10), +(6837, 16, 0, 'Solid Chest', 0, 10), +(6868, 16, 0, 'Solid Chest', 0, 10), +(6871, 16, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Eastern Plaguelands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(18, 5, 'Solid Chests in Eastern Plaguelands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(45735, 18, 0, 'Solid Chest', 0, 10), +(45949, 18, 0, 'Solid Chest', 0, 10), +(45950, 18, 0, 'Solid Chest', 0, 10); + +-- Missing Solid Chest spawns in Azshara. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(48485, 153453, 1, 3137.52, -5671.9, 34.3905, 4.55531, 0, 0, -0.760406, 0.649449, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48368 at 695.513611 yards. +(48486, 153453, 1, 2957.74, -6046.32, -0.102492, 5.13127, 0, 0, -0.544639, 0.838671, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48366 at 622.576538 yards. +(48487, 153453, 1, 4376.94, -6132.56, 122.385, 1.8675, 0, 0, 0.803857, 0.594823, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48371 at 294.473602 yards. +(48488, 153453, 1, 4301.38, -7222.64, 24.7146, 1.27409, 0, 0, 0.594822, 0.803857, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48367 at 515.022156 yards. +(48493, 153453, 1, 2754.88, -5400.19, 116.273, 5.81195, 0, 0, -0.233445, 0.97237, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48368 at 232.919357 yards. +(48494, 153453, 1, 4459.83, -5529.17, 109.138, 4.57276, 0, 0, -0.754709, 0.656059, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48370 at 246.611710 yards. +(48499, 153453, 1, 2316.16, -6893.69, 123.094, 3.05433, 0, 0, 0.999048, 0.0436193, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48369 at 499.735626 yards. +(48500, 153453, 1, 4703.36, -5873.57, 110.646, 2.74016, 0, 0, 0.979924, 0.19937, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 48370 at 497.952484 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48485, 19, 0, 'Solid Chest', 0, 10), -- Solid Chests in Azshara +(48486, 19, 0, 'Solid Chest', 0, 10), -- Solid Chests in Azshara +(48487, 19, 0, 'Solid Chest', 0, 10), -- Solid Chests in Azshara +(48488, 19, 0, 'Solid Chest', 0, 10), -- Solid Chests in Azshara +(48493, 19, 0, 'Solid Chest', 0, 10), -- Solid Chests in Azshara +(48494, 19, 0, 'Solid Chest', 0, 10), -- Solid Chests in Azshara +(48499, 19, 0, 'Solid Chest', 0, 10), -- Solid Chests in Azshara +(48500, 19, 0, 'Solid Chest', 0, 10); -- Solid Chests in Azshara + +-- Missing Solid Chest spawns in Western Plaguelands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(45496, 153453, 0, 1459.34, -1589.07, 67.8359, 3.10665, 0, 0, 0.999847, 0.0174693, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45484 at 236.859848 yards. +(45497, 153453, 0, 1271.73, -1386.66, 49.8822, 3.49067, 0, 0, -0.984807, 0.173652, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45484 at 52.758896 yards. +(45498, 153453, 0, 1497.01, -1522.51, 56.3196, 2.07694, 0, 0, 0.861629, 0.507539, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45484 at 235.734650 yards. +(45499, 153453, 0, 1425.59, -1697.22, 69.0793, 0.820303, 0, 0, 0.398748, 0.91706, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45484 at 298.500427 yards. +(45551, 153453, 0, 2704.41, -1942.55, 72.15, 3.82227, 0, 0, -0.942641, 0.333808, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45548 at 534.267883 yards. +(45500, 153453, 0, 1877.16, -1337.25, 60.108, 3.47321, 0, 0, -0.986285, 0.16505, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45488 at 290.217651 yards. +(45501, 153453, 0, 1808.6, -1214.38, 60.3427, 3.9619, 0, 0, -0.91706, 0.39875, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45492 at 360.258423 yards. +(45552, 153453, 0, 2389.43, -1526.34, 102.669, 1.27409, 0, 0, 0.594822, 0.803857, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45548 at 309.359253 yards. +(45502, 153453, 0, 1501.24, -1896.6, 60.9601, 2.35619, 0, 0, 0.92388, 0.382683, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 45485 at 493.355072 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(45496, 17, 0, 'Solid Chest', 0, 10), -- Solid Chests in Western Plaguelands +(45497, 17, 0, 'Solid Chest', 0, 10), -- Solid Chests in Western Plaguelands +(45498, 17, 0, 'Solid Chest', 0, 10), -- Solid Chests in Western Plaguelands +(45499, 17, 0, 'Solid Chest', 0, 10), -- Solid Chests in Western Plaguelands +(45551, 17, 0, 'Solid Chest', 0, 10), -- Solid Chests in Western Plaguelands +(45500, 17, 0, 'Solid Chest', 0, 10), -- Solid Chests in Western Plaguelands +(45501, 17, 0, 'Solid Chest', 0, 10), -- Solid Chests in Western Plaguelands +(45552, 17, 0, 'Solid Chest', 0, 10), -- Solid Chests in Western Plaguelands +(45502, 17, 0, 'Solid Chest', 0, 10); -- Solid Chests in Western Plaguelands + +-- Missing Solid Chest spawns in Burning Steppes. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(6843, 153453, 0, -7985.18, -2630.35, 166.192, 1.309, 0, 0, 0.608761, 0.793354, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 6837 at 86.289696 yards. +(6844, 153453, 0, -8122.53, -2498.15, 139.938, 2.42601, 0, 0, 0.936672, 0.350207, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 6835 at 119.421928 yards. +(6850, 153453, 0, -7763.62, -1524.23, 131.932, 0.401425, 0, 0, 0.199368, 0.979925, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 6827 at 69.573997 yards. +(6869, 153453, 0, -7971.75, -1322.26, 132.953, 4.2237, 0, 0, -0.857167, 0.515038, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 6868 at 311.260773 yards. +(6873, 153453, 0, -8080.28, -1891.26, 147.863, 4.7473, 0, 0, -0.694658, 0.71934, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 6871 at 329.153107 yards. +(6856, 153453, 0, -7932.06, -2693.91, 146.367, 3.10665, 0, 0, 0.999847, 0.0174693, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 6837 at 45.039658 yards. +(7013, 153453, 0, -8092.34, -1403.27, 130.926, 4.41568, 0, 0, -0.803857, 0.594823, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 6871 at 188.487137 yards. +(6870, 153453, 0, -7956.8, -904.648, 131.554, 0.383971, 0, 0, 0.190808, 0.981627, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 6868 at 402.463318 yards. +(6858, 153453, 0, -7769.91, -2852.65, 133.439, 6.07375, 0, 0, -0.104528, 0.994522, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 6837 at 234.802902 yards. +(7083, 153453, 0, -8225.17, -1954.8, 142.569, 0.645772, 0, 0, 0.317305, 0.948324, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 6871 at 384.025665 yards. +(6864, 153453, 0, -7550.28, -2740.63, 136.647, 3.21142, 0, 0, -0.999391, 0.0349061, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 6837 at 365.105927 yards. +(7084, 153453, 0, -8073.49, -2968.62, 134.251, 4.01426, 0, 0, -0.906307, 0.422619, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 6837 at 348.905273 yards. +(7085, 153453, 0, -7702.62, -1460.46, 140.932, 1.29154, 0, 0, 0.601814, 0.798636, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 6827 at 74.965042 yards. +(7086, 153453, 0, -8068.42, -1762.72, 138.351, 1.88495, 0, 0, 0.809016, 0.587786, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 6871 at 213.747787 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(6843, 16, 0, 'Solid Chest', 0, 10), -- Solid Chests in Burning Steppes +(6844, 16, 0, 'Solid Chest', 0, 10), -- Solid Chests in Burning Steppes +(6850, 16, 0, 'Solid Chest', 0, 10), -- Solid Chests in Burning Steppes +(6869, 16, 0, 'Solid Chest', 0, 10), -- Solid Chests in Burning Steppes +(6873, 16, 0, 'Solid Chest', 0, 10), -- Solid Chests in Burning Steppes +(6856, 16, 0, 'Solid Chest', 0, 10), -- Solid Chests in Burning Steppes +(7013, 16, 0, 'Solid Chest', 0, 10), -- Solid Chests in Burning Steppes +(6870, 16, 0, 'Solid Chest', 0, 10), -- Solid Chests in Burning Steppes +(6858, 16, 0, 'Solid Chest', 0, 10), -- Solid Chests in Burning Steppes +(7083, 16, 0, 'Solid Chest', 0, 10), -- Solid Chests in Burning Steppes +(6864, 16, 0, 'Solid Chest', 0, 10), -- Solid Chests in Burning Steppes +(7084, 16, 0, 'Solid Chest', 0, 10), -- Solid Chests in Burning Steppes +(7085, 16, 0, 'Solid Chest', 0, 10), -- Solid Chests in Burning Steppes +(7086, 16, 0, 'Solid Chest', 0, 10); -- Solid Chests in Burning Steppes + +-- Missing Solid Chest spawns in Eastern Plaguelands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(45951, 153453, 0, 2068.44, -4474.16, 75.8982, 0.506145, 0, 0, 0.25038, 0.968148, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45950 at 86.721245 yards. +(45952, 153453, 0, 1964.44, -4475.61, 74.2907, 4.13643, 0, 0, -0.878817, 0.47716, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45950 at 97.605690 yards. +(45737, 153453, 0, 3027.25, -3230.02, 146.529, 0.209439, 0, 0, 0.104528, 0.994522, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45735 at 508.946869 yards. +(45953, 153453, 0, 1602.33, -3233.98, 67.0181, 3.927, 0, 0, -0.923879, 0.382686, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45949 at 550.787842 yards. +(45956, 153453, 0, 1418.05, -3662, 77.246, 6.00393, 0, 0, -0.139173, 0.990268, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 45949 at 439.072510 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(45951, 18, 0, 'Solid Chest', 0, 10), -- Solid Chests in Eastern Plaguelands +(45952, 18, 0, 'Solid Chest', 0, 10), -- Solid Chests in Eastern Plaguelands +(45737, 18, 0, 'Solid Chest', 0, 10), -- Solid Chests in Eastern Plaguelands +(45953, 18, 0, 'Solid Chest', 0, 10), -- Solid Chests in Eastern Plaguelands +(45956, 18, 0, 'Solid Chest', 0, 10); -- Solid Chests in Eastern Plaguelands + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 153453; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From c5292f7aedc7629d927000c1b0c9ab7dc8ce6bde Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 2 Jul 2023 16:21:55 +0100 Subject: [PATCH 047/426] Add Missing Solid Chests (2852) (#2014) --- sql/migrations/20230701093815_world.sql | 195 ++++++++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 sql/migrations/20230701093815_world.sql diff --git a/sql/migrations/20230701093815_world.sql b/sql/migrations/20230701093815_world.sql new file mode 100644 index 00000000000..3ab9bac9013 --- /dev/null +++ b/sql/migrations/20230701093815_world.sql @@ -0,0 +1,195 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230701093815'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230701093815'); +-- Add your query below. + + +-- Create new pool to hold Solid Chest spawns in Duskwood. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(21, 11, 'Solid Chests in Duskwood', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(15672, 21, 0, 'Solid Chest', 0, 10), +(16763, 21, 0, 'Solid Chest', 0, 10), +(16989, 21, 0, 'Solid Chest', 0, 10), +(17134, 21, 0, 'Solid Chest', 0, 10), +(18547, 21, 0, 'Solid Chest', 0, 10), +(18562, 21, 0, 'Solid Chest', 0, 10), +(33431, 21, 0, 'Solid Chest', 0, 10), +(33434, 21, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Wetlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(20, 5, 'Solid Chests in Wetlands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(14653, 20, 0, 'Solid Chest', 0, 10), +(14660, 20, 0, 'Solid Chest', 0, 10), +(14861, 20, 0, 'Solid Chest', 0, 10), +(15098, 20, 0, 'Solid Chest', 0, 10), +(15153, 20, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Hillsbrad Foothills. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(23, 2, 'Solid Chests in Hillsbrad Foothills', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(29292, 23, 0, 'Solid Chest', 0, 10), +(29647, 23, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Ashenvale. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(24, 5, 'Solid Chests in Ashenvale', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(47824, 24, 0, 'Solid Chest', 0, 10), +(47825, 24, 0, 'Solid Chest', 0, 10), +(47826, 24, 0, 'Solid Chest', 0, 10), +(47827, 24, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Thousand Needles. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(22, 5, 'Solid Chests in Thousand Needles', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(16715, 22, 0, 'Solid Chest', 0, 10), +(16718, 22, 0, 'Solid Chest', 0, 10), +(16719, 22, 0, 'Solid Chest', 0, 10), +(16720, 22, 0, 'Solid Chest', 0, 10), +(16721, 22, 0, 'Solid Chest', 0, 10), +(170117, 22, 0, 'Solid Chest', 0, 10); + +-- Missing Solid Chest spawns in Duskwood. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(17135, 2852, 0, -10931.8, -943.108, 76.8906, 1.01229, 0, 0, 0.484809, 0.87462, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 17134 at 173.781982 yards. +(33432, 2852, 0, -10299.7, -1291.57, 43.431, 4.06662, 0, 0, -0.894934, 0.446199, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 33431 at 515.062256 yards. +(16993, 2852, 0, -11089.2, -951.572, 65.3283, 3.75246, 0, 0, -0.953716, 0.300708, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 16989 at 143.365906 yards. +(16765, 2852, 0, -11110.8, -498.81, 32.8518, 2.26893, 0, 0, 0.906307, 0.422619, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 16763 at 34.517822 yards. +(33433, 2852, 0, -10358.1, -1243.02, 35.4821, 6.17847, 0, 0, -0.0523357, 0.99863, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 33431 at 452.539612 yards. +(33435, 2852, 0, -10647.3, -903.599, 50.2875, 3.7001, 0, 0, -0.961261, 0.27564, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 33431 at 210.316223 yards. +(33439, 2852, 0, -10374.7, -1254.46, 35.8818, 6.26573, 0, 0, -0.00872612, 0.999962, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 33431 at 460.198944 yards. +(17136, 2852, 0, -10962, -945.145, 71.1925, 2.26893, 0, 0, 0.906307, 0.422619, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 17134 at 157.722305 yards. +(17137, 2852, 0, -11012.3, -1101.52, 41.8718, 0.122173, 0, 0, 0.0610485, 0.998135, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 17134 at 14.131103 yards. +(18563, 2852, 0, -11082.7, -97.2737, 16.9502, 5.84685, 0, 0, -0.216439, 0.976296, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 18562 at 30.915913 yards. +(18553, 2852, 0, -11165.6, -163.196, 9.35385, 1.41372, 0, 0, 0.649447, 0.760406, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 18547 at 37.931393 yards. +(15673, 2852, 0, -10373.4, 130.12, 1.71372, 0.139624, 0, 0, 0.0697556, 0.997564, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15672 at 228.941345 yards. +(33440, 2852, 0, -10270.2, -727.604, 46.2897, 0.401425, 0, 0, 0.199368, 0.979925, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 33431 at 206.732361 yards. +(15674, 2852, 0, -10324.5, 489.261, 12.8491, 5.8294, 0, 0, -0.224951, 0.97437, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15672 at 138.368591 yards. +(17138, 2852, 0, -11013.9, -1141.27, 39.8619, 3.99681, 0, 0, -0.909961, 0.414694, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 17134 at 52.355450 yards. +(18555, 2852, 0, -11076.6, -253.918, 16.1559, 5.46288, 0, 0, -0.398748, 0.91706, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 18547 at 153.602798 yards. +(18566, 2852, 0, -10966.5, -65.8315, 15.5488, 5.67232, 0, 0, -0.300705, 0.953717, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 18562 at 120.305855 yards. +(15675, 2852, 0, -10235.8, 392.371, 10.4135, 4.50295, 0, 0, -0.777145, 0.629321, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15672 at 138.401718 yards. +(17022, 2852, 0, -11030.6, -901.201, 63.9518, 4.04917, 0, 0, -0.898793, 0.438373, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 16989 at 102.722427 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(17135, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(33432, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(16993, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(16765, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(33433, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(33435, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(33439, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(17136, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(17137, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(18563, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(18553, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(15673, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(33440, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(15674, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(17138, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(18555, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(18566, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(15675, 21, 0, 'Solid Chest', 0, 10), -- Solid Chests in Duskwood +(17022, 21, 0, 'Solid Chest', 0, 10); -- Solid Chests in Duskwood + +-- Missing Solid Chest spawns in Wetlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(15101, 2852, 0, -2586.38, -2383.61, 79.8838, 4.62512, 0, 0, -0.737277, 0.675591, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 15098 at 34.033504 yards. +(15102, 2852, 0, -2636.96, -2397.31, 89.1529, 3.00195, 0, 0, 0.997563, 0.0697661, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 15098 at 83.116226 yards. +(14680, 2852, 0, -3416.58, -2428.37, 51.9087, 4.64258, 0, 0, -0.731354, 0.681998, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 14653 at 112.901825 yards. +(14682, 2852, 0, -3418.88, -2505.52, 27.1158, 3.10665, 0, 0, 0.999847, 0.0174693, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 14653 at 191.006531 yards. +(15164, 2852, 0, -3321.84, -2279.77, 51.8986, 1.0472, 0, 0, 0.5, 0.866025, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 15153 at 98.134041 yards. +(14684, 2852, 0, -3656.05, -2609.74, 51.9026, 0.488691, 0, 0, 0.241921, 0.970296, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 14653 at 368.144257 yards. +(15165, 2852, 0, -3413.19, -1982.01, 115.444, 3.29869, 0, 0, -0.996917, 0.0784664, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 15153 at 302.008057 yards. +(14960, 2852, 0, -2939.76, -2976.83, 30.5666, 0.366518, 0, 0, 0.182235, 0.983255, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 14861 at 164.143692 yards. +(14685, 2852, 0, -3033.15, -3234.4, 54.2858, 6.10865, 0, 0, -0.0871553, 0.996195, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 14660 at 114.369263 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(15101, 20, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15102, 20, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(14680, 20, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(14682, 20, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15164, 20, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(14684, 20, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(15165, 20, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(14960, 20, 0, 'Solid Chest', 0, 10), -- Solid Chests in Wetlands +(14685, 20, 0, 'Solid Chest', 0, 10); -- Solid Chests in Wetlands + +-- Missing Solid Chest spawns in Hillsbrad Foothills. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(29294, 2852, 0, -1171.09, 110.701, 0.876851, 1.71042, 0, 0, 0.754709, 0.656059, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 29292 at 66.373192 yards. +(29651, 2852, 0, -890.011, -1052.25, 31.2693, 4.69494, 0, 0, -0.71325, 0.70091, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 29647 at 132.233566 yards. +(29654, 2852, 0, -917.275, -1003.38, 30.3479, 0.715585, 0, 0, 0.350207, 0.936672, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 29647 at 76.370758 yards. +(29295, 2852, 0, -966.952, 323.832, 3.57871, 2.58308, 0, 0, 0.961261, 0.27564, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 29292 at 238.436584 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(29294, 23, 0, 'Solid Chest', 0, 10), -- Solid Chests in Hillsbrad Foothills +(29651, 23, 0, 'Solid Chest', 0, 10), -- Solid Chests in Hillsbrad Foothills +(29654, 23, 0, 'Solid Chest', 0, 10), -- Solid Chests in Hillsbrad Foothills +(29295, 23, 0, 'Solid Chest', 0, 10); -- Solid Chests in Hillsbrad Foothills + +-- Missing Solid Chest spawns in Ashenvale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(48110, 2852, 1, 1799.25, -2696.54, 41.0134, 0.226892, 0, 0, 0.113203, 0.993572, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 47826 at 86.231506 yards. +(48111, 2852, 1, 2747.48, -2982.93, 140.794, 5.11382, 0, 0, -0.551936, 0.833886, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 47827 at 105.931145 yards. +(48112, 2852, 1, 2934.9, -2841.09, 212.852, 1.85005, 0, 0, 0.798635, 0.601815, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 47827 at 183.927948 yards. +(48113, 2852, 1, 2500.62, -2121.34, 201.213, 1.93731, 0, 0, 0.824125, 0.566408, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 47824 at 302.593903 yards. +(48114, 2852, 1, 2603.36, -2135.84, 194.963, 2.30383, 0, 0, 0.913545, 0.406738, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 47824 at 208.673294 yards. +(48115, 2852, 1, 1872.33, -2765.32, 62.6937, 2.65289, 0, 0, 0.970295, 0.241925, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 47826 at 163.350632 yards. +(48116, 2852, 1, 2774.58, -3016.76, 154.125, 0.855211, 0, 0, 0.414693, 0.909961, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 47827 at 138.014252 yards. +(48117, 2852, 1, 2762.61, -2939.74, 143.158, 2.32129, 0, 0, 0.91706, 0.39875, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 47827 at 61.081028 yards. +(48118, 2852, 1, 1876.36, -2794.27, 37.592, 4.62512, 0, 0, -0.737277, 0.675591, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 47826 at 193.386826 yards. +(48119, 2852, 1, 2890.25, -2827.92, 208.831, 3.4383, 0, 0, -0.989016, 0.147811, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 47827 at 146.545227 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48110, 24, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48111, 24, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48112, 24, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48113, 24, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48114, 24, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48115, 24, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48116, 24, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48117, 24, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48118, 24, 0, 'Solid Chest', 0, 10), -- Solid Chests in Ashenvale +(48119, 24, 0, 'Solid Chest', 0, 10); -- Solid Chests in Ashenvale + +-- Missing Solid Chest spawns in Thousand Needles. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(170118, 2852, 1, -4648.06, -1265.94, -52.0322, 3.75246, 0, 0, -0.953716, 0.300708, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 170117 at 47.575432 yards. +(16723, 2852, 1, -4896.51, -2290.6, -59.8061, 6.17847, 0, 0, -0.0523357, 0.99863, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16720 at 120.298523 yards. +(16724, 2852, 1, -5046.39, -2326.3, -52.8083, 6.0912, 0, 0, -0.0958452, 0.995396, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16721 at 73.583000 yards. +(16725, 2852, 1, -4591.11, -1218.49, -54.842, 3.49067, 0, 0, -0.984807, 0.173652, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16718 at 33.577488 yards. +(16716, 2852, 1, -5508.08, -1629.43, 25.3012, 0.855211, 0, 0, 0.414693, 0.909961, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16715 at 50.882717 yards. +(16726, 2852, 1, -5192.65, -1209.24, 49.3863, 2.09439, 0, 0, 0.866025, 0.500001, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16719 at 192.445618 yards. +(16727, 2852, 1, -4952.89, -2295.17, -64.6408, 5.21854, 0, 0, -0.507538, 0.861629, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16720 at 121.615189 yards. +(16728, 2852, 1, -5063.35, -2291.98, -53.2819, 1.48353, 0, 0, 0.67559, 0.737278, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 16721 at 64.336845 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(170118, 22, 0, 'Solid Chest', 0, 10), -- Solid Chests in Thousand Needles +(16723, 22, 0, 'Solid Chest', 0, 10), -- Solid Chests in Thousand Needles +(16724, 22, 0, 'Solid Chest', 0, 10), -- Solid Chests in Thousand Needles +(16725, 22, 0, 'Solid Chest', 0, 10), -- Solid Chests in Thousand Needles +(16716, 22, 0, 'Solid Chest', 0, 10), -- Solid Chests in Thousand Needles +(16726, 22, 0, 'Solid Chest', 0, 10), -- Solid Chests in Thousand Needles +(16727, 22, 0, 'Solid Chest', 0, 10), -- Solid Chests in Thousand Needles +(16728, 22, 0, 'Solid Chest', 0, 10); -- Solid Chests in Thousand Needles + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 2852; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 020942612676ea0ec72498d6b62613d955a8ac85 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 2 Jul 2023 16:22:04 +0100 Subject: [PATCH 048/426] Add Missing Solid Chests (4149) (#2015) --- sql/migrations/20230701111928_world.sql | 246 ++++++++++++++++++++++++ 1 file changed, 246 insertions(+) create mode 100644 sql/migrations/20230701111928_world.sql diff --git a/sql/migrations/20230701111928_world.sql b/sql/migrations/20230701111928_world.sql new file mode 100644 index 00000000000..7c40cef41fc --- /dev/null +++ b/sql/migrations/20230701111928_world.sql @@ -0,0 +1,246 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230701111928'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230701111928'); +-- Add your query below. + + +-- Create new pool to hold Solid Chest spawns in Badlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(26, 1, 'Solid Chests in Badlands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11479, 26, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Swamp of Sorrows. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(28, 5, 'Solid Chests in Swamp of Sorrows', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(13978, 28, 0, 'Solid Chest', 0, 10), +(13979, 28, 0, 'Solid Chest', 0, 10), +(31044, 28, 0, 'Solid Chest', 0, 10), +(31045, 28, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Dustwallow Marsh. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(29, 5, 'Solid Chests in Dustwallow Marsh', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(14619, 29, 0, 'Solid Chest', 0, 10), +(14931, 29, 0, 'Solid Chest', 0, 10), +(40758, 29, 0, 'Solid Chest', 0, 10), +(40772, 29, 0, 'Solid Chest', 0, 10), +(40796, 29, 0, 'Solid Chest', 0, 10), +(55993, 29, 0, 'Solid Chest', 0, 10), +(56049, 29, 0, 'Solid Chest', 0, 10), +(56062, 29, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Stranglethorn Vale. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(27, 11, 'Solid Chests in Stranglethorn Vale', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11651, 27, 0, 'Solid Chest', 0, 10), +(11676, 27, 0, 'Solid Chest', 0, 10), +(11693, 27, 0, 'Solid Chest', 0, 10), +(11695, 27, 0, 'Solid Chest', 0, 10), +(11704, 27, 0, 'Solid Chest', 0, 10), +(11806, 27, 0, 'Solid Chest', 0, 10), +(12157, 27, 0, 'Solid Chest', 0, 10), +(12185, 27, 0, 'Solid Chest', 0, 10), +(29256, 27, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in The Hinterlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(31, 5, 'Solid Chests in The Hinterlands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(46268, 31, 0, 'Solid Chest', 0, 10), +(46316, 31, 0, 'Solid Chest', 0, 10), +(46387, 31, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Searing Gorge. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(25, 5, 'Solid Chests in Searing Gorge', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(10031, 25, 0, 'Solid Chest', 0, 10), +(10093, 25, 0, 'Solid Chest', 0, 10), +(10157, 25, 0, 'Solid Chest', 0, 10), +(10163, 25, 0, 'Solid Chest', 0, 10), +(10204, 25, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Tanaris. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(30, 5, 'Solid Chests in Tanaris', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(17298, 30, 0, 'Solid Chest', 0, 10), +(17299, 30, 0, 'Solid Chest', 0, 10), +(17300, 30, 0, 'Solid Chest', 0, 10); + +-- Correct position of Solid Chest in Dustwallow Marsh (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=-4470.82, `position_y`=-2962.09, `position_z`=26.4969, `orientation`=5.37562, `rotation0`=0, `rotation1`=0, `rotation2`=-0.438371, `rotation3`=0.898794 WHERE `guid`=56062; + +-- Missing Solid Chest spawns in Badlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(11515, 4149, 0, -7483.71, -2268.2, 233.716, 0.0698117, 0, 0, 0.0348988, 0.999391, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 11479 at 67.058205 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11515, 26, 0, 'Solid Chest', 0, 10); -- Solid Chests in Badlands + +-- Missing Solid Chest spawns in Swamp of Sorrows. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(31048, 4149, 0, -10819.5, -4266.54, -4.39961, 2.05949, 0, 0, 0.857167, 0.515038, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 31044 at 172.105881 yards. +(31050, 4149, 0, -10550.7, -4400.34, 0.416397, 3.6652, 0, 0, -0.965925, 0.258821, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 31044 at 128.499298 yards. +(31057, 4149, 0, -10426.7, -4390.78, 5.12247, 0.890117, 0, 0, 0.430511, 0.902586, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 31045 at 31.234758 yards. +(13980, 4149, 0, -10874.4, -3681.49, 18.1765, 3.90954, 0, 0, -0.927183, 0.374608, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13978 at 51.946568 yards. +(31090, 4149, 0, -10906.6, -4208.03, 1.01048, 0.802851, 0, 0, 0.390731, 0.920505, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 31044 at 276.054901 yards. +(31170, 4149, 0, -11054.1, -4122.13, 0.538078, 5.5676, 0, 0, -0.350207, 0.936672, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 31044 at 446.667755 yards. +(14020, 4149, 0, -10897.3, -3712.66, 8.76335, 2.86234, 0, 0, 0.990268, 0.139175, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13978 at 88.446930 yards. +(14021, 4149, 0, -10862.7, -3631.31, 24.4419, 3.45576, 0, 0, -0.987688, 0.156436, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13978 at 12.862801 yards. +(31185, 4149, 0, -10037.5, -4313.46, 0.254656, 4.4855, 0, 0, -0.782608, 0.622515, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 31045 at 369.641205 yards. +(14031, 4149, 0, -11101.2, -3831.97, 3.0087, 3.14159, 0, 0, -1, 0, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 13978 at 311.801392 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(31048, 28, 0, 'Solid Chest', 0, 10), -- Solid Chests in Swamp of Sorrows +(31050, 28, 0, 'Solid Chest', 0, 10), -- Solid Chests in Swamp of Sorrows +(31057, 28, 0, 'Solid Chest', 0, 10), -- Solid Chests in Swamp of Sorrows +(13980, 28, 0, 'Solid Chest', 0, 10), -- Solid Chests in Swamp of Sorrows +(31090, 28, 0, 'Solid Chest', 0, 10), -- Solid Chests in Swamp of Sorrows +(31170, 28, 0, 'Solid Chest', 0, 10), -- Solid Chests in Swamp of Sorrows +(14020, 28, 0, 'Solid Chest', 0, 10), -- Solid Chests in Swamp of Sorrows +(14021, 28, 0, 'Solid Chest', 0, 10), -- Solid Chests in Swamp of Sorrows +(31185, 28, 0, 'Solid Chest', 0, 10), -- Solid Chests in Swamp of Sorrows +(14031, 28, 0, 'Solid Chest', 0, 10); -- Solid Chests in Swamp of Sorrows + +-- Missing Solid Chest spawns in Dustwallow Marsh. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(14982, 4149, 1, -4606.16, -3779.07, 34.7463, 3.14159, 0, 0, -1, 0, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 14931 at 380.073334 yards. +(14620, 4149, 1, -4246.86, -3914.45, -10.1359, 4.93928, 0, 0, -0.622514, 0.782609, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 14619 at 32.957531 yards. +(14621, 4149, 1, -4232.95, -3921.11, -15.8423, 5.91667, 0, 0, -0.182235, 0.983255, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 14619 at 32.364059 yards. +(40797, 4149, 1, -4294.95, -3006.75, 34.6152, 1.29154, 0, 0, 0.601814, 0.798636, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 40796 at 117.173164 yards. +(55995, 4149, 1, -3651.22, -4063.5, -17.7203, 2.79252, 0, 0, 0.984807, 0.173652, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 55993 at 21.194960 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(14982, 29, 0, 'Solid Chest', 0, 10), -- Solid Chests in Dustwallow Marsh +(14620, 29, 0, 'Solid Chest', 0, 10), -- Solid Chests in Dustwallow Marsh +(14621, 29, 0, 'Solid Chest', 0, 10), -- Solid Chests in Dustwallow Marsh +(40797, 29, 0, 'Solid Chest', 0, 10), -- Solid Chests in Dustwallow Marsh +(55995, 29, 0, 'Solid Chest', 0, 10); -- Solid Chests in Dustwallow Marsh + +-- Missing Solid Chest spawns in Stranglethorn Vale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(11824, 4149, 0, -13328, -26.3568, 21.8891, 1.88495, 0, 0, 0.809016, 0.587786, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 11806 at 49.458157 yards. +(11804, 4149, 0, -12991.2, -701.092, 54.6397, 4.69494, 0, 0, -0.71325, 0.70091, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 11704 at 121.940269 yards. +(11700, 4149, 0, -13062.8, -466.432, 44.7542, 1.5708, 0, 0, 0.707107, 0.707107, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 11695 at 210.011307 yards. +(11701, 4149, 0, -13180.3, -545.59, 4.64249, 3.29869, 0, 0, -0.996917, 0.0784664, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 11695 at 75.206451 yards. +(11688, 4149, 0, -14610.4, -363.52, 7.1323, 0.0523589, 0, 0, 0.0261765, 0.999657, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 11676 at 169.301086 yards. +(11661, 4149, 0, -14920.7, 68.7844, 0.245401, 1.5708, 0, 0, 0.707107, 0.707107, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 11651 at 21.039986 yards. +(12189, 4149, 0, -14126.5, 477.396, 1.27591, 3.94445, 0, 0, -0.920505, 0.390732, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 12185 at 318.077240 yards. +(12208, 4149, 0, -13876.5, 430.319, 92.1166, 5.16618, 0, 0, -0.529919, 0.848048, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 12185 at 57.820797 yards. +(29260, 4149, 0, -13664.5, -280.413, 8.12, 4.43314, 0, 0, -0.798635, 0.601815, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 29256 at 412.945679 yards. +(11703, 4149, 0, -13141.3, -471.359, 53.0697, 0.733038, 0, 0, 0.358368, 0.93358, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 11695 at 141.184753 yards. +(11968, 4149, 0, -12938.7, -636.273, 53.2873, 2.68781, 0, 0, 0.97437, 0.224951, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 11704 at 188.540222 yards. +(11662, 4149, 0, -14874.5, 304.62, 0.425162, 0.174532, 0, 0, 0.0871553, 0.996195, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 11651 at 219.450073 yards. +(11663, 4149, 0, -14977.5, 262.128, 0.234813, 1.53589, 0, 0, 0.694658, 0.71934, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 11651 at 181.950180 yards. +(11668, 4149, 0, -14855.5, 71.8133, 1.16342, 1.01229, 0, 0, 0.484809, 0.87462, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 11651 at 66.189995 yards. +(29272, 4149, 0, -13624.2, -323.034, 9.13148, 2.49582, 0, 0, 0.948323, 0.317306, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 29256 at 360.885315 yards. +(11689, 4149, 0, -14812.9, -373.351, 6.51484, 1.13446, 0, 0, 0.537299, 0.843392, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 11676 at 221.801590 yards. +(11986, 4149, 0, -12345.7, -1082.26, 5.56533, 2.60054, 0, 0, 0.96363, 0.267241, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 11693 at 159.145309 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11824, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(11804, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(11700, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(11701, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(11688, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(11661, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12189, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12208, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(29260, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(11703, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(11968, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(11662, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(11663, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(11668, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(29272, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(11689, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(11986, 27, 0, 'Solid Chest', 0, 10); -- Solid Chests in Stranglethorn Vale + +-- Missing Solid Chest spawns in The Hinterlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(46397, 4149, 0, -305.712, -3402.4, 165.572, 6.16101, 0, 0, -0.0610485, 0.998135, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46387 at 74.875694 yards. +(46320, 4149, 0, -477.565, -2814.38, 110.539, 3.4383, 0, 0, -0.989016, 0.147811, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46316 at 348.093842 yards. +(46269, 4149, 0, -57.3702, -3162.79, 95.2744, 4.46804, 0, 0, -0.788011, 0.615662, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46268 at 183.520065 yards. +(46350, 4149, 0, -41.2321, -2810.77, 122.291, 3.50812, 0, 0, -0.983254, 0.182238, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46316 at 332.547119 yards. +(46359, 4149, 0, -268.738, -2792.09, 111.674, 1.16937, 0, 0, 0.551936, 0.833886, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46316 at 241.396881 yards. +(46270, 4149, 0, -382.985, -3008.53, 109.563, 1.09956, 0, 0, 0.522498, 0.85264, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 46268 at 187.699722 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(46397, 31, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46320, 31, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46269, 31, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46350, 31, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46359, 31, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46270, 31, 0, 'Solid Chest', 0, 10); -- Solid Chests in The Hinterlands + +-- Missing Solid Chest spawns in Searing Gorge. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(10241, 4149, 0, -6873.67, -1321.84, 243.05, 2.68781, 0, 0, 0.97437, 0.224951, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 10163 at 160.803070 yards. +(10242, 4149, 0, -6918.89, -1412.95, 256.107, 3.54302, 0, 0, -0.979924, 0.19937, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 10163 at 153.230560 yards. +(10243, 4149, 0, -6602.92, -1312.25, 208.743, 5.42797, 0, 0, -0.414693, 0.909961, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 10031 at 87.370415 yards. +(10244, 4149, 0, -6679.84, -1169.02, 240.224, 2.87979, 0, 0, 0.991445, 0.130528, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 10157 at 85.366425 yards. +(10245, 4149, 0, -7031.12, -1712.23, 241.667, 0.436332, 0, 0, 0.216439, 0.976296, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 10163 at 401.245239 yards. +(10246, 4149, 0, -6469.35, -962.396, 335.602, 2.72271, 0, 0, 0.978148, 0.207912, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 10204 at 63.211365 yards. +(10247, 4149, 0, -6414.12, -1253.51, 180.939, 1.43117, 0, 0, 0.656058, 0.75471, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 10031 at 283.811859 yards. +(10250, 4149, 0, -6666.43, -716.584, 238.184, 5.2709, 0, 0, -0.484809, 0.87462, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 10204 at 284.204803 yards. +(10277, 4149, 0, -6831.52, -1161.4, 241.089, 2.65289, 0, 0, 0.970295, 0.241925, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 10157 at 140.726761 yards. +(10281, 4149, 0, -6469.97, -1368.05, 212.107, 6.24828, 0, 0, -0.0174522, 0.999848, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 10031 at 212.266663 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(10241, 25, 0, 'Solid Chest', 0, 10), -- Solid Chests in Searing Gorge +(10242, 25, 0, 'Solid Chest', 0, 10), -- Solid Chests in Searing Gorge +(10243, 25, 0, 'Solid Chest', 0, 10), -- Solid Chests in Searing Gorge +(10244, 25, 0, 'Solid Chest', 0, 10), -- Solid Chests in Searing Gorge +(10245, 25, 0, 'Solid Chest', 0, 10), -- Solid Chests in Searing Gorge +(10246, 25, 0, 'Solid Chest', 0, 10), -- Solid Chests in Searing Gorge +(10247, 25, 0, 'Solid Chest', 0, 10), -- Solid Chests in Searing Gorge +(10250, 25, 0, 'Solid Chest', 0, 10), -- Solid Chests in Searing Gorge +(10277, 25, 0, 'Solid Chest', 0, 10), -- Solid Chests in Searing Gorge +(10281, 25, 0, 'Solid Chest', 0, 10); -- Solid Chests in Searing Gorge + +-- Missing Solid Chest spawns in Tanaris. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(17453, 4149, 1, -7414.26, -4583.68, 8.77651, 5.20108, 0, 0, -0.515038, 0.857168, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17298 at 140.132492 yards. +(17454, 4149, 1, -7675.42, -4410.94, 8.95528, 1.0472, 0, 0, 0.5, 0.866025, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17299 at 142.117966 yards. +(17455, 4149, 1, -7720.31, -4632.25, 8.8768, 0.383971, 0, 0, 0.190808, 0.981627, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17299 at 364.576843 yards. +(17456, 4149, 1, -6912.34, -3128.72, 8.79548, 3.42085, 0, 0, -0.990268, 0.139175, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17300 at 1357.606079 yards. +(17457, 4149, 1, -7193.02, -2980.91, 8.79554, 3.64774, 0, 0, -0.968147, 0.250381, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17299 at 1379.595459 yards. +(17458, 4149, 1, -7384.69, -4731.94, 9.16363, 2.35619, 0, 0, 0.92388, 0.382683, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17298 at 216.232697 yards. +(17459, 4149, 1, -7212.92, -4623.56, 8.8849, 3.05433, 0, 0, 0.999048, 0.0436193, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17298 at 105.339882 yards. +(17461, 4149, 1, -7549.1, -4266.47, 8.87937, 2.1293, 0, 0, 0.874619, 0.48481, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17299 at 137.368240 yards. +(17462, 4149, 1, -6992.11, -2808.41, 10.7516, 5.32326, 0, 0, -0.461748, 0.887011, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17299 at 1617.451904 yards. +(17463, 4149, 1, -7706.76, -4706.06, 8.87676, 4.67748, 0, 0, -0.719339, 0.694659, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17299 at 437.282532 yards. +(17466, 4149, 1, -7550.48, -4734.68, 9.45221, 1.79769, 0, 0, 0.782608, 0.622515, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 17298 at 331.519806 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(17453, 30, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17454, 30, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17455, 30, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17456, 30, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17457, 30, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17458, 30, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17459, 30, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17461, 30, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17462, 30, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17463, 30, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17466, 30, 0, 'Solid Chest', 0, 10); -- Solid Chests in Tanaris + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 4149; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From e5fffaa4ca1e15a945c58c043c2e5d65a2a0ed3f Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 2 Jul 2023 16:22:13 +0100 Subject: [PATCH 049/426] Add Missing Battered Chests (2849) (#2017) --- sql/migrations/20230701160230_world.sql | 269 ++++++++++++++++++++++++ 1 file changed, 269 insertions(+) create mode 100644 sql/migrations/20230701160230_world.sql diff --git a/sql/migrations/20230701160230_world.sql b/sql/migrations/20230701160230_world.sql new file mode 100644 index 00000000000..bbdfd2780f5 --- /dev/null +++ b/sql/migrations/20230701160230_world.sql @@ -0,0 +1,269 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230701160230'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230701160230'); +-- Add your query below. + + +-- Create new pool to hold Battered Chest spawns in The Barrens. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(33, 5, 'Battered Chests in The Barrens', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(13066, 33, 0, 'Battered Chest', 0, 10), +(13068, 33, 0, 'Battered Chest', 0, 10), +(13071, 33, 0, 'Battered Chest', 0, 10), +(13073, 33, 0, 'Battered Chest', 0, 10), +(13074, 33, 0, 'Battered Chest', 0, 10); + +-- Create new pool to hold Battered Chest spawns in Loch Modan. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(32, 3, 'Battered Chests in Loch Modan', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(12909, 32, 0, 'Battered Chest', 0, 10), +(12926, 32, 0, 'Battered Chest', 0, 10), +(13197, 32, 0, 'Battered Chest', 0, 10), +(13437, 32, 0, 'Battered Chest', 0, 10); + +-- Create new pool to hold Battered Chest spawns in Westfall. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(37, 5, 'Battered Chests in Westfall', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(42684, 37, 0, 'Battered Chest', 0, 10), +(42734, 37, 0, 'Battered Chest', 0, 10); + +-- Create new pool to hold Battered Chest spawns in Redridge Mountains. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(34, 5, 'Battered Chests in Redridge Mountains', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(20651, 34, 0, 'Battered Chest', 0, 10), +(20798, 34, 0, 'Battered Chest', 0, 10), +(28632, 34, 0, 'Battered Chest', 0, 10), +(31122, 34, 0, 'Battered Chest', 0, 10), +(31127, 34, 0, 'Battered Chest', 0, 10), +(31130, 34, 0, 'Battered Chest', 0, 10); + +-- Create new pool to hold Battered Chest spawns in Silverpine Forest. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(35, 5, 'Battered Chests in Silverpine Forest', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(35436, 35, 0, 'Battered Chest', 0, 10), +(35447, 35, 0, 'Battered Chest', 0, 10), +(35484, 35, 0, 'Battered Chest', 0, 10), +(35487, 35, 0, 'Battered Chest', 0, 10); + +-- Create new pool to hold Battered Chest spawns in Darkshore. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(40, 8, 'Battered Chests in Darkshore', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48492, 40, 0, 'Battered Chest', 0, 10), +(48531, 40, 0, 'Battered Chest', 0, 10), +(48727, 40, 0, 'Battered Chest', 0, 10), +(48756, 40, 0, 'Battered Chest', 0, 10); + +-- Create new pool to hold Battered Chest spawns in Ashenvale. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(39, 3, 'Battered Chests in Ashenvale', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(47813, 39, 0, 'Battered Chest', 0, 10), +(47814, 39, 0, 'Battered Chest', 0, 10); + +-- Create new pool to hold Battered Chest spawns in Stonetalon Mountains. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(36, 5, 'Battered Chests in Stonetalon Mountains', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(40707, 36, 0, 'Battered Chest', 0, 10), +(40708, 36, 0, 'Battered Chest', 0, 10), +(40709, 36, 0, 'Battered Chest', 0, 10), +(40710, 36, 0, 'Battered Chest', 0, 10), +(40711, 36, 0, 'Battered Chest', 0, 10); + +-- Missing Battered Chest spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(13114, 2849, 1, -2009.46, -2134.78, 91.6725, 0.314158, 0, 0, 0.156434, 0.987688, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13068 at 175.961288 yards. +(13116, 2849, 1, -2030.24, -1970.71, 91.6668, 0.383971, 0, 0, 0.190808, 0.981627, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13068 at 29.068947 yards. +(13120, 2849, 1, -2035.27, -2811.45, 91.6679, 6.03884, 0, 0, -0.121869, 0.992546, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13073 at 242.928513 yards. +(13121, 2849, 1, -1921.44, -2706.81, 92.7856, 2.00713, 0, 0, 0.843391, 0.5373, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13073 at 217.782578 yards. +(13131, 2849, 1, -2270.67, -2549.13, 91.8283, 2.9496, 0, 0, 0.995396, 0.0958512, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13073 at 177.073685 yards. +(13132, 2849, 1, -1855.86, -1936.17, 92.8053, 3.4383, 0, 0, -0.989016, 0.147811, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13071 at 185.006332 yards. +(13139, 2849, 1, 1427.23, -3411.86, 91.7705, 1.37881, 0, 0, 0.636078, 0.771625, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13074 at 271.669373 yards. +(13143, 2849, 1, 532.814, -1432.29, 91.6667, 4.95674, 0, 0, -0.615661, 0.788011, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13066 at 291.984406 yards. +(13188, 2849, 1, -2109.41, -1719.49, 91.7509, 2.9496, 0, 0, 0.995396, 0.0958512, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13071 at 199.484039 yards. +(13189, 2849, 1, 731, -1265.59, 91.6732, 4.39823, 0, 0, -0.809016, 0.587786, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 13066 at 118.421127 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(13114, 33, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13116, 33, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13120, 33, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13121, 33, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13131, 33, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13132, 33, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13139, 33, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13143, 33, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13188, 33, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Barrens +(13189, 33, 0, 'Battered Chest', 0, 10); -- Battered Chests in The Barrens + +-- Missing Battered Chest spawns in Loch Modan. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(13115, 2849, 0, -5485.15, -3341.43, 261.019, 1.27409, 0, 0, 0.594822, 0.803857, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 12909 at 271.099670 yards. +(13117, 2849, 0, -5700.12, -3867.4, 331.614, 5.00909, 0, 0, -0.594823, 0.803857, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 12926 at 52.799145 yards. +(13133, 2849, 0, -5284.79, -3250.97, 235.57, 1.97222, 0, 0, 0.833885, 0.551938, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 12909 at 98.994720 yards. +(13148, 2849, 0, -5117.36, -3315.32, 250.467, 5.09636, 0, 0, -0.559193, 0.829038, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 12909 at 99.116028 yards. +(13182, 2849, 0, -5636.4, -3893.67, 329.955, 2.63544, 0, 0, 0.968147, 0.250381, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 12926 at 78.784203 yards. +(13208, 2849, 0, -4826.65, -3878.17, 303.603, 3.08918, 0, 0, 0.999657, 0.0262016, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 13197 at 234.171921 yards. +(13485, 2849, 0, -4734.88, -3626.14, 305.354, 3.38594, 0, 0, -0.992546, 0.12187, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 13437 at 494.598907 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(13115, 32, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13117, 32, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13133, 32, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13148, 32, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13182, 32, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13208, 32, 0, 'Battered Chest', 0, 10), -- Battered Chests in Loch Modan +(13485, 32, 0, 'Battered Chest', 0, 10); -- Battered Chests in Loch Modan + +-- Missing Battered Chest spawns in Westfall. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(42926, 2849, 0, -11138.8, 1047.61, 34.5638, 4.29351, 0, 0, -0.83867, 0.54464, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42734 at 317.586060 yards. +(42698, 2849, 0, -11398.6, 1801.28, 7.46052, 0, 0, 0, 0, 1, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42684 at 101.432053 yards. +(42930, 2849, 0, -11243.3, 1160.75, 89.0316, 2.02458, 0, 0, 0.848047, 0.529921, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42734 at 443.757111 yards. +(42927, 2849, 0, -11325.4, 1566.37, 26.491, 3.194, 0, 0, -0.999657, 0.0262016, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42748 at 132.631699 yards. +(42928, 2849, 0, -11186.5, 1471.16, 15.011, 3.15906, 0, 0, -0.999962, 0.00873464, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42748 at 123.962891 yards. +(42929, 2849, 0, -11281.2, 1515.82, 37.9021, 1.309, 0, 0, 0.608761, 0.793354, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 42748 at 116.191750 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(42926, 37, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42698, 37, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42930, 37, 0, 'Battered Chest', 0, 10), -- Battered Chests in Westfall +(42927, 37, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Deadmines +(42928, 37, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Deadmines +(42929, 37, 0, 'Battered Chest', 0, 10), -- Battered Chests in The Deadmines +(42748, 37, 0, 'Battered Chest', 0, 10); + +-- Missing Battered Chest spawns in Redridge Mountains. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(20660, 2849, 0, -9251.55, -2707.21, 88.8043, 1.93731, 0, 0, 0.824125, 0.566408, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 20651 at 180.408035 yards. +(31206, 2849, 0, -9503.47, -1896.73, 79.2749, 0.174532, 0, 0, 0.0871553, 0.996195, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 31127 at 34.121746 yards. +(31221, 2849, 0, -9494.6, -1939.51, 79.0554, 5.32326, 0, 0, -0.461748, 0.887011, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 31127 at 57.633659 yards. +(20720, 2849, 0, -9602.7, -2524.01, 60.5327, 0.610863, 0, 0, 0.300705, 0.953717, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 20651 at 328.928711 yards. +(31242, 2849, 0, -8884.3, -2160.68, 132.445, 6.23083, 0, 0, -0.0261765, 0.999657, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 31122 at 222.445831 yards. +(31252, 2849, 0, -8883.47, -2002.71, 134.528, 2.07694, 0, 0, 0.861629, 0.507539, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 31122 at 74.463432 yards. +(20827, 2849, 0, -9779.8, -2270.56, 59.3705, 2.65289, 0, 0, 0.970295, 0.241925, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 20798 at 95.372963 yards. +(28674, 2849, 0, -8949.61, -2309.69, 132.443, 2.72271, 0, 0, 0.978148, 0.207912, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 28632 at 140.726456 yards. +(31253, 2849, 0, -8985.03, -2179.1, 132.621, 5.34071, 0, 0, -0.45399, 0.891007, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 31130 at 190.993195 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(20660, 34, 0, 'Battered Chest', 0, 10), -- Battered Chests in Redridge Mountains +(31206, 34, 0, 'Battered Chest', 0, 10), -- Battered Chests in Redridge Mountains +(31221, 34, 0, 'Battered Chest', 0, 10), -- Battered Chests in Redridge Mountains +(20720, 34, 0, 'Battered Chest', 0, 10), -- Battered Chests in Redridge Mountains +(31242, 34, 0, 'Battered Chest', 0, 10), -- Battered Chests in Redridge Mountains +(31252, 34, 0, 'Battered Chest', 0, 10), -- Battered Chests in Redridge Mountains +(20827, 34, 0, 'Battered Chest', 0, 10), -- Battered Chests in Redridge Mountains +(28674, 34, 0, 'Battered Chest', 0, 10), -- Battered Chests in Redridge Mountains +(31253, 34, 0, 'Battered Chest', 0, 10); -- Battered Chests in Redridge Mountains + +-- Missing Battered Chest spawns in Silverpine Forest. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(35437, 2849, 0, 805.334, 165.878, 33.9496, 1.85005, 0, 0, 0.798635, 0.601815, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 35436 at 105.272926 yards. +(35547, 2849, 0, 1007.49, 686.36, 53.8181, 0.977383, 0, 0, 0.469471, 0.882948, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 35487 at 31.269142 yards. +(35453, 2849, 0, 389.709, 645.387, 35.1687, 3.89209, 0, 0, -0.930417, 0.366502, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 35447 at 125.757706 yards. +(35466, 2849, 0, 273.66, 741.958, 45.9023, 5.044, 0, 0, -0.580703, 0.814116, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 35447 at 216.930359 yards. +(35558, 2849, 0, 999.366, 699.265, 53.8207, 1.02974, 0, 0, 0.492423, 0.870356, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 35484 at 26.999895 yards. +(35560, 2849, 0, 1024, 727.992, 59.3686, 0.733038, 0, 0, 0.358368, 0.93358, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 35484 at 11.926972 yards. +(35562, 2849, 0, 987.957, 600.792, 54.9516, 2.56563, 0, 0, 0.958819, 0.284016, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 35487 at 112.952118 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(35437, 35, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(35547, 35, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(35453, 35, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(35466, 35, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(35558, 35, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(35560, 35, 0, 'Battered Chest', 0, 10), -- Battered Chests in Silverpine Forest +(35562, 35, 0, 'Battered Chest', 0, 10); -- Battered Chests in Silverpine Forest + +-- Missing Battered Chest spawns in Darkshore. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(48757, 2849, 1, 7357.42, -1019.19, 32.0403, 1.81514, 0, 0, 0.788011, 0.615662, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48756 at 178.885239 yards. +(48758, 2849, 1, 7461.66, -861.202, 1.05914, 2.11185, 0, 0, 0.870356, 0.492424, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48756 at 163.566818 yards. +(48759, 2849, 1, 7487.28, -1088.5, 36.0964, 0.767944, 0, 0, 0.374606, 0.927184, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48756 at 101.778259 yards. +(48760, 2849, 1, 7562.19, -879.454, 17.5976, 2.84488, 0, 0, 0.989016, 0.147811, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48756 at 135.981079 yards. +(48742, 2849, 1, 7050.3, 426.994, -5.42405, 5.96903, 0, 0, -0.156434, 0.987688, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48727 at 1200.132935 yards. +(48502, 2849, 1, 4547.06, 153.554, 59.6614, 1.81514, 0, 0, 0.788011, 0.615662, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48492 at 147.142014 yards. +(48761, 2849, 1, 7644.49, -909.221, 18.4929, 5.16618, 0, 0, -0.529919, 0.848048, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48756 at 153.696564 yards. +(48505, 2849, 1, 4643.39, 139.273, 58.357, 0.366518, 0, 0, 0.182235, 0.983255, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48492 at 169.227982 yards. +(48748, 2849, 1, 7443.65, 49.5524, 1.6797, 4.01426, 0, 0, -0.906307, 0.422619, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48727 at 856.372803 yards. +(48752, 2849, 1, 7186.1, -746.374, 69.9667, 5.98648, 0, 0, -0.147809, 0.989016, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48727 at 22.542004 yards. +(48762, 2849, 1, 7389.93, -1117.46, 41.8591, 0.541051, 0, 0, 0.267238, 0.963631, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48756 at 185.371170 yards. +(48533, 2849, 1, 4617.29, 662.068, 14.514, 4.2237, 0, 0, -0.857167, 0.515038, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48531 at 248.522446 yards. +(48763, 2849, 1, 7194.43, -718.407, 94.1232, 4.76475, 0, 0, -0.688354, 0.725374, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48727 at 60.360100 yards. +(48539, 2849, 1, 4626.42, 624.678, 6.1055, 5.96903, 0, 0, -0.156434, 0.987688, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48531 at 217.373917 yards. +(48541, 2849, 1, 4552.87, 566.422, 1.35074, 0.994837, 0, 0, 0.477159, 0.878817, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48531 at 145.129364 yards. +(48764, 2849, 1, 7355.87, -799.53, 8.23917, 6.24828, 0, 0, -0.0174522, 0.999848, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 48727 at 183.335678 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48757, 40, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48758, 40, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48759, 40, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48760, 40, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48742, 40, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48502, 40, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48761, 40, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48505, 40, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48748, 40, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48752, 40, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48762, 40, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48533, 40, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48763, 40, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48539, 40, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48541, 40, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48764, 40, 0, 'Battered Chest', 0, 10); -- Battered Chests in Darkshore + +-- Missing Battered Chest spawns in Ashenvale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(48120, 2849, 1, 3276.38, 406.608, 3.4269, 1.91986, 0, 0, 0.819152, 0.573577, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 47814 at 290.776367 yards. +(48121, 2849, 1, 3469.9, -141.078, 6.74421, 0.715585, 0, 0, 0.350207, 0.936672, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 47814 at 774.110107 yards. +(48122, 2849, 1, 3450.3, 1033.85, 0.674683, 3.03684, 0, 0, 0.998629, 0.0523532, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 47814 at 401.089233 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48120, 39, 0, 'Battered Chest', 0, 10), -- Battered Chests in Ashenvale +(48121, 39, 0, 'Battered Chest', 0, 10), -- Battered Chests in Ashenvale +(48122, 39, 0, 'Battered Chest', 0, 10); -- Battered Chests in Ashenvale + +-- Missing Battered Chest spawns in Stonetalon Mountains. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(40731, 2849, 1, -66.701, -517.713, -46.1329, 1.48353, 0, 0, 0.67559, 0.737278, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 40707 at 431.891449 yards. +(40732, 2849, 1, 132.013, -349.798, 3.59643, 2.1293, 0, 0, 0.874619, 0.48481, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 40707 at 523.912231 yards. +(40733, 2849, 1, 1262.87, -5.11133, -5.45986, 4.31097, 0, 0, -0.833885, 0.551938, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 40709 at 414.036163 yards. +(40734, 2849, 1, 998.705, -333.697, 0.770707, 4.72984, 0, 0, -0.700909, 0.713251, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 40708 at 36.718708 yards. +(40735, 2849, 1, 1434.8, 3.8839, 25.138, 6.14356, 0, 0, -0.0697556, 0.997564, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 40709 at 559.594055 yards. +(40736, 2849, 1, 5.11241, -692.71, -19.1304, 3.03684, 0, 0, 0.998629, 0.0523532, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 40707 at 248.202286 yards. +(40737, 2849, 1, 1608.78, 141.983, 104.847, 5.3058, 0, 0, -0.469471, 0.882948, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 40709 at 786.657898 yards. +(40738, 2849, 1, 1489.94, 756.841, 143.941, 1.76278, 0, 0, 0.771625, 0.636078, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 40710 at 411.243622 yards. +(40741, 2849, 1, 1751.6, 623.222, 194.972, 5.41052, 0, 0, -0.422618, 0.906308, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 40710 at 521.337219 yards. +(40744, 2849, 1, 1415.53, 1044.07, 157.556, 0.331611, 0, 0, 0.165047, 0.986286, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 40710 at 256.840607 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(40731, 36, 0, 'Battered Chest', 0, 10), -- Battered Chests in Stonetalon Mountains +(40732, 36, 0, 'Battered Chest', 0, 10), -- Battered Chests in Stonetalon Mountains +(40733, 36, 0, 'Battered Chest', 0, 10), -- Battered Chests in Stonetalon Mountains +(40734, 36, 0, 'Battered Chest', 0, 10), -- Battered Chests in Stonetalon Mountains +(40735, 36, 0, 'Battered Chest', 0, 10), -- Battered Chests in Stonetalon Mountains +(40736, 36, 0, 'Battered Chest', 0, 10), -- Battered Chests in Stonetalon Mountains +(40737, 36, 0, 'Battered Chest', 0, 10), -- Battered Chests in Stonetalon Mountains +(40738, 36, 0, 'Battered Chest', 0, 10), -- Battered Chests in Stonetalon Mountains +(40741, 36, 0, 'Battered Chest', 0, 10), -- Battered Chests in Stonetalon Mountains +(40744, 36, 0, 'Battered Chest', 0, 10); -- Battered Chests in Stonetalon Mountains + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 2849; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 0313b908cc142a6adf2e400093aa86d90245f7ce Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 2 Jul 2023 16:46:57 +0100 Subject: [PATCH 050/426] Add Missing Solid Chests (2855) (#2018) --- sql/migrations/20230701192416_world.sql | 189 ++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 sql/migrations/20230701192416_world.sql diff --git a/sql/migrations/20230701192416_world.sql b/sql/migrations/20230701192416_world.sql new file mode 100644 index 00000000000..3864993c916 --- /dev/null +++ b/sql/migrations/20230701192416_world.sql @@ -0,0 +1,189 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230701192416'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230701192416'); +-- Add your query below. + + +-- Create new pool to hold Solid Chest spawns in Stranglethorn Vale. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(42, 5, 'Solid Chests in Stranglethorn Vale', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11970, 42, 0, 'Solid Chest', 0, 10), +(12048, 42, 0, 'Solid Chest', 0, 10), +(12054, 42, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Alterac Mountains. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(47, 5, 'Solid Chests in Alterac Mountains', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(33206, 47, 0, 'Solid Chest', 0, 10), +(33207, 47, 0, 'Solid Chest', 0, 10), +(33304, 47, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Arathi Highlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(43, 5, 'Solid Chests in Arathi Highlands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(16648, 43, 0, 'Solid Chest', 0, 10), +(16946, 43, 0, 'Solid Chest', 0, 10), +(16950, 43, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Hillsbrad Foothills. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(45, 3, 'Solid Chests in Hillsbrad Foothills', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(29653, 45, 0, 'Solid Chest', 0, 10), +(30033, 45, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Thousand Needles. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(44, 1, 'Solid Chests in Thousand Needles', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(16722, 44, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Desolace. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(46, 5, 'Solid Chests in Desolace', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30169, 46, 0, 'Solid Chest', 0, 10), +(30170, 46, 0, 'Solid Chest', 0, 10), +(30171, 46, 0, 'Solid Chest', 0, 10); + +-- Missing Solid Chest spawns in Stranglethorn Vale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(12059, 2855, 0, -12423.7, 580.5, -104.112, 3.927, 0, 0, -0.923879, 0.382686, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 12054 at 738.545105 yards. +(12060, 2855, 0, -12432.5, 613.969, -100.412, 3.89209, 0, 0, -0.930417, 0.366502, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 12054 at 743.132935 yards. +(11993, 2855, 0, -11966.2, -501.725, 17.0796, 5.96903, 0, 0, -0.156434, 0.987688, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 11970 at 80.642982 yards. +(12053, 2855, 0, -11567.4, -574.548, 28.9122, 2.42601, 0, 0, 0.936672, 0.350207, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 12048 at 118.644333 yards. +(11999, 2855, 0, -11993.8, -521.213, 11.9682, 4.17134, 0, 0, -0.870356, 0.492424, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 11970 at 74.448578 yards. +(12062, 2855, 0, -11640.3, -628.344, 31.4617, 4.46804, 0, 0, -0.788011, 0.615662, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 12048 at 84.680046 yards. +(12074, 2855, 0, -11596.3, -614.14, 28.3598, 5.49779, 0, 0, -0.382683, 0.92388, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 12048 at 78.757935 yards. +(12075, 2855, 0, -12012.6, 309.553, 4.12253, 1.27409, 0, 0, 0.594822, 0.803857, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 12054 at 473.693329 yards. +(12076, 2855, 0, -11828.7, 86.4582, 17.4597, 3.76991, 0, 0, -0.951056, 0.309017, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 12054 at 595.481079 yards. +(12077, 2855, 0, -12223.7, 665.631, -70.0086, 4.41568, 0, 0, -0.803857, 0.594823, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 12054 at 530.681519 yards. +(12183, 2855, 0, -12148.2, 626.385, -70.0408, 2.86234, 0, 0, 0.990268, 0.139175, 900, 900, 1, 100, 0, 10); -- Closest existing guid is 12054 at 459.404510 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(12059, 42, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12060, 42, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(11993, 42, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12053, 42, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(11999, 42, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12062, 42, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12074, 42, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12075, 42, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12076, 42, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12077, 42, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12183, 42, 0, 'Solid Chest', 0, 10); -- Solid Chests in Stranglethorn Vale + +-- Missing Solid Chest spawns in Alterac Mountains. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(33339, 2855, 0, 752.184, -377.159, 141.791, 1.79769, 0, 0, 0.782608, 0.622515, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 33304 at 151.383667 yards. +(33209, 2855, 0, 689.118, -998.653, 170.362, 2.26893, 0, 0, 0.906307, 0.422619, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 33207 at 15.441476 yards. +(33340, 2855, 0, 623.352, -295.892, 152.887, 3.85718, 0, 0, -0.936671, 0.35021, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 33304 at 112.844078 yards. +(33345, 2855, 0, 511.342, -333.542, 153.674, 0.925024, 0, 0, 0.446198, 0.894935, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 33304 at 119.135582 yards. +(33210, 2855, 0, 677.372, -926.412, 171.805, 5.55015, 0, 0, -0.358368, 0.93358, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 33207 at 64.863930 yards. +(33211, 2855, 0, 739.793, -972.271, 167.587, 1.53589, 0, 0, 0.694658, 0.71934, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 33207 at 67.017105 yards. +(33212, 2855, 0, 692.648, -981.781, 165.594, 3.4383, 0, 0, -0.989016, 0.147811, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 33207 at 20.090010 yards. +(33213, 2855, 0, 647.083, -943.691, 166.408, 2.09439, 0, 0, 0.866025, 0.500001, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 33206 at 52.546780 yards. +(33284, 2855, 0, 697.147, -930.974, 171.805, 4.46804, 0, 0, -0.788011, 0.615662, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 33207 at 64.021988 yards. +(33285, 2855, 0, 746.14, -938.872, 166.228, 4.57276, 0, 0, -0.754709, 0.656059, 900, 900, 1, 100, 0, 10); -- Closest existing guid is 33207 at 87.968170 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(33339, 47, 0, 'Solid Chest', 0, 10), -- Solid Chests in Alterac Mountains +(33209, 47, 0, 'Solid Chest', 0, 10), -- Solid Chests in Alterac Mountains +(33340, 47, 0, 'Solid Chest', 0, 10), -- Solid Chests in Alterac Mountains +(33345, 47, 0, 'Solid Chest', 0, 10), -- Solid Chests in Alterac Mountains +(33210, 47, 0, 'Solid Chest', 0, 10), -- Solid Chests in Alterac Mountains +(33211, 47, 0, 'Solid Chest', 0, 10), -- Solid Chests in Alterac Mountains +(33212, 47, 0, 'Solid Chest', 0, 10), -- Solid Chests in Alterac Mountains +(33213, 47, 0, 'Solid Chest', 0, 10), -- Solid Chests in Alterac Mountains +(33284, 47, 0, 'Solid Chest', 0, 10), -- Solid Chests in Alterac Mountains +(33285, 47, 0, 'Solid Chest', 0, 10); -- Solid Chests in Alterac Mountains + +-- Missing Solid Chest spawns in Arathi Highlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(16652, 2855, 0, -2062.35, -3330.59, 38.5965, 3.00195, 0, 0, 0.997563, 0.0697661, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 16648 at 19.920498 yards. +(16948, 2855, 0, -793.025, -2082.12, 34.9696, 2.28638, 0, 0, 0.909961, 0.414694, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 16946 at 103.265152 yards. +(16951, 2855, 0, -776.629, -2028.77, 34.105, 1.06465, 0, 0, 0.507538, 0.861629, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 16946 at 47.811516 yards. +(16954, 2855, 0, -878.108, -2069.24, 35.637, 0.383971, 0, 0, 0.190808, 0.981627, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 16946 at 148.424332 yards. +(16955, 2855, 0, -1813.15, -3409.62, 45.5308, 1.01229, 0, 0, 0.484809, 0.87462, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 16950 at 223.670380 yards. +(16958, 2855, 0, -1883.55, -3068.64, 57.881, 4.34587, 0, 0, -0.824126, 0.566406, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 16950 at 282.820862 yards. +(16964, 2855, 0, -1697.28, -3524.51, 61.3946, 0.541051, 0, 0, 0.267238, 0.963631, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 16950 at 284.640991 yards. +(16965, 2855, 0, -1762.35, -3156.06, 31.0001, 0.087266, 0, 0, 0.0436192, 0.999048, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 16950 at 132.045746 yards. +(16675, 2855, 0, -2011.8, -3318.34, 54.4797, 0.925024, 0, 0, 0.446198, 0.894935, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 16648 at 52.169624 yards. +(16676, 2855, 0, -1906.28, -3194.22, 56.5897, 5.74214, 0, 0, -0.267238, 0.963631, 900, 900, 1, 100, 0, 10); -- Closest existing guid is 16648 at 207.264053 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(16652, 43, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16948, 43, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16951, 43, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16954, 43, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16955, 43, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16958, 43, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16964, 43, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16965, 43, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16675, 43, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16676, 43, 0, 'Solid Chest', 0, 10); -- Solid Chests in Arathi Highlands + +-- Missing Solid Chest spawns in Hillsbrad Foothills. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(29655, 2855, 0, -1036.14, -370.85, 2.56879, 5.13127, 0, 0, -0.544639, 0.838671, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 29653 at 415.907715 yards. +(29656, 2855, 0, -1068.21, -78.6024, 1.3575, 1.43117, 0, 0, 0.656058, 0.75471, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 29653 at 133.119858 yards. +(29659, 2855, 0, -1072.23, -236.136, 2.41571, 0.610863, 0, 0, 0.300705, 0.953717, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 29653 at 276.443298 yards. +(30243, 2855, 0, -191.322, -330.404, 53.1275, 5.93412, 0, 0, -0.173648, 0.984808, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 30033 at 24.081617 yards. +(30247, 2855, 0, -243.951, -378.061, 47.6736, 1.62316, 0, 0, 0.725374, 0.688355, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 30033 at 62.558270 yards. +(30248, 2855, 0, -274.94, -293.013, 51.4281, 1.65806, 0, 0, 0.737277, 0.675591, 900, 900, 1, 100, 0, 10); -- Closest existing guid is 30033 at 88.813950 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(29655, 45, 0, 'Solid Chest', 0, 10), -- Solid Chests in Hillsbrad Foothills +(29656, 45, 0, 'Solid Chest', 0, 10), -- Solid Chests in Hillsbrad Foothills +(29659, 45, 0, 'Solid Chest', 0, 10), -- Solid Chests in Hillsbrad Foothills +(30243, 45, 0, 'Solid Chest', 0, 10), -- Solid Chests in Hillsbrad Foothills +(30247, 45, 0, 'Solid Chest', 0, 10), -- Solid Chests in Hillsbrad Foothills +(30248, 45, 0, 'Solid Chest', 0, 10); -- Solid Chests in Hillsbrad Foothills + +-- Missing Solid Chest spawns in Thousand Needles. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(16729, 2855, 1, -6399.73, -3446.07, -77.6406, 0.541051, 0, 0, 0.267238, 0.963631, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 16722 at 138.131989 yards. +(16730, 2855, 1, -6484.66, -3499.6, -70.0346, 6.10865, 0, 0, -0.0871553, 0.996195, 900, 900, 1, 100, 0, 10); -- Closest existing guid is 16722 at 69.979378 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(16729, 44, 0, 'Solid Chest', 0, 10), -- Solid Chests in Thousand Needles +(16730, 44, 0, 'Solid Chest', 0, 10); -- Solid Chests in Thousand Needles + +-- Missing Solid Chest spawns in Desolace. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(30240, 2855, 1, -84.2788, 762.965, 132.892, 3.08918, 0, 0, 0.999657, 0.0262016, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 30171 at 182.883804 yards. +(30241, 2855, 1, -794.729, 930.161, 90.7574, 2.16421, 0, 0, 0.882947, 0.469473, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 30169 at 231.378525 yards. +(30242, 2855, 1, -961.253, 880.802, 91.5103, 2.16421, 0, 0, 0.882947, 0.469473, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 30169 at 59.036720 yards. +(30244, 2855, 1, -403.13, 1876.43, 128.41, 4.83456, 0, 0, -0.66262, 0.748956, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 30170 at 87.383583 yards. +(30245, 2855, 1, -330.01, 1768.85, 139.514, 3.54302, 0, 0, -0.979924, 0.19937, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 30170 at 65.541611 yards. +(30246, 2855, 1, -447.218, 1754.23, 153.488, 3.71755, 0, 0, -0.958819, 0.284016, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 30170 at 71.396606 yards. +(30249, 2855, 1, -127.378, 869.742, 119.095, 2.47837, 0, 0, 0.945518, 0.325568, 900, 900, 1, 100, 0, 10), -- Closest existing guid is 30171 at 219.378937 yards. +(30250, 2855, 1, -339.986, 838.234, 99.0587, 3.85718, 0, 0, -0.936671, 0.35021, 900, 900, 1, 100, 0, 10); -- Closest existing guid is 30171 at 177.108765 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30240, 46, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30241, 46, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30242, 46, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30244, 46, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30245, 46, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30246, 46, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30249, 46, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30250, 46, 0, 'Solid Chest', 0, 10); -- Solid Chests in Desolace + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 2855; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From f82343998c047dd988e985fc40d34b1abbc25e30 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 2 Jul 2023 16:47:19 +0100 Subject: [PATCH 051/426] Add Missing Solid Chests (2857) (#2019) --- sql/migrations/20230701201101_world.sql | 242 ++++++++++++++++++++++++ 1 file changed, 242 insertions(+) create mode 100644 sql/migrations/20230701201101_world.sql diff --git a/sql/migrations/20230701201101_world.sql b/sql/migrations/20230701201101_world.sql new file mode 100644 index 00000000000..46847bfd991 --- /dev/null +++ b/sql/migrations/20230701201101_world.sql @@ -0,0 +1,242 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230701201101'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230701201101'); +-- Add your query below. + + +-- Create new pool to hold Solid Chest spawns in Badlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(50, 3, 'Solid Chests in Badlands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11440, 50, 0, 'Solid Chest', 0, 10), +(11501, 50, 0, 'Solid Chest', 0, 10), +(11503, 50, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Swamp of Sorrows. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(54, 3, 'Solid Chests in Swamp of Sorrows', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30992, 54, 0, 'Solid Chest', 0, 10), +(31014, 54, 0, 'Solid Chest', 0, 10), +(31016, 54, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Dustwallow Marsh. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(48, 4, 'Solid Chests in Dustwallow Marsh', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(9096, 48, 0, 'Solid Chest', 0, 10), +(13632, 48, 0, 'Solid Chest', 0, 10), +(14618, 48, 0, 'Solid Chest', 0, 10), +(55967, 48, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Stranglethorn Vale. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(51, 4, 'Solid Chests in Stranglethorn Vale', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11691, 51, 0, 'Solid Chest', 0, 10), +(12049, 51, 0, 'Solid Chest', 0, 10), +(12119, 51, 0, 'Solid Chest', 0, 10), +(12169, 51, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Alterac Mountains. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(55, 3, 'Solid Chests in Alterac Mountains', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(33193, 55, 0, 'Solid Chest', 0, 10), +(33200, 55, 0, 'Solid Chest', 0, 10), +(33208, 55, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Arathi Highlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(52, 8, 'Solid Chests in Arathi Highlands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(16789, 52, 0, 'Solid Chest', 0, 10), +(16794, 52, 0, 'Solid Chest', 0, 10), +(16949, 52, 0, 'Solid Chest', 0, 10), +(16977, 52, 0, 'Solid Chest', 0, 10), +(16978, 52, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Desolace. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(53, 5, 'Solid Chests in Desolace', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30178, 53, 0, 'Solid Chest', 0, 10), +(30182, 53, 0, 'Solid Chest', 0, 10), +(30183, 53, 0, 'Solid Chest', 0, 10), +(30184, 53, 0, 'Solid Chest', 0, 10); + +-- Missing Solid Chest spawns in Badlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(11516, 2857, 0, -6368.06, -3135.1, 283.889, 1.46608, 0, 0, 0.66913, 0.743145, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 11501 at 47.945583 yards. +(11442, 2857, 0, -7018.64, -3341.54, 241.667, 6.19592, 0, 0, -0.0436192, 0.999048, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 11440 at 552.857544 yards. +(11517, 2857, 0, -6823.49, -2813.37, 242.632, 2.84488, 0, 0, 0.989016, 0.147811, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 11503 at 496.787292 yards. +(11458, 2857, 0, -6381.32, -3413.04, 241.666, 3.00195, 0, 0, 0.997563, 0.0697661, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 11440 at 88.510536 yards. +(11518, 2857, 0, -6321.2, -3088.82, 301.113, 5.65487, 0, 0, -0.309016, 0.951057, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 11501 at 36.241318 yards. +(11519, 2857, 0, -6324.55, -3111.33, 300.279, 3.49067, 0, 0, -0.984807, 0.173652, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 11501 at 38.238125 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11516, 50, 0, 'Solid Chest', 0, 10), -- Solid Chests in Badlands +(11442, 50, 0, 'Solid Chest', 0, 10), -- Solid Chests in Badlands +(11517, 50, 0, 'Solid Chest', 0, 10), -- Solid Chests in Badlands +(11458, 50, 0, 'Solid Chest', 0, 10), -- Solid Chests in Badlands +(11518, 50, 0, 'Solid Chest', 0, 10), -- Solid Chests in Badlands +(11519, 50, 0, 'Solid Chest', 0, 10); -- Solid Chests in Badlands + +-- Missing Solid Chest spawns in Swamp of Sorrows. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(31019, 2857, 0, -10477.4, -2541.66, 19.6449, 4.01426, 0, 0, -0.906307, 0.422619, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 31016 at 234.161453 yards. +(30993, 2857, 0, -9985.92, -3625.97, 22.379, 4.38078, 0, 0, -0.814116, 0.580703, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 30992 at 72.803703 yards. +(30999, 2857, 0, -9977.39, -3658.88, 21.8357, 1.36136, 0, 0, 0.62932, 0.777146, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 30992 at 38.951431 yards. +(31024, 2857, 0, -10143.9, -2490.89, 24.6832, 3.90954, 0, 0, -0.927183, 0.374608, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 31016 at 569.906677 yards. +(31010, 2857, 0, -9942.67, -3645.36, 23.6189, 1.51844, 0, 0, 0.688354, 0.725374, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 30992 at 53.673172 yards. +(31015, 2857, 0, -10002, -3529.93, 22.3611, 2.72271, 0, 0, 0.978148, 0.207912, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 31014 at 87.629051 yards. +(31013, 2857, 0, -9957.83, -3600.77, 22.7541, 3.31614, 0, 0, -0.996194, 0.087165, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 30992 at 94.410912 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(31019, 54, 0, 'Solid Chest', 0, 10), -- Solid Chests in Swamp of Sorrows +(30993, 54, 0, 'Solid Chest', 0, 10), -- Solid Chests in Swamp of Sorrows +(30999, 54, 0, 'Solid Chest', 0, 10), -- Solid Chests in Swamp of Sorrows +(31024, 54, 0, 'Solid Chest', 0, 10), -- Solid Chests in Swamp of Sorrows +(31010, 54, 0, 'Solid Chest', 0, 10), -- Solid Chests in Swamp of Sorrows +(31015, 54, 0, 'Solid Chest', 0, 10), -- Solid Chests in Swamp of Sorrows +(31013, 54, 0, 'Solid Chest', 0, 10); -- Solid Chests in Swamp of Sorrows + +-- Missing Solid Chest spawns in Dustwallow Marsh. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(55972, 2857, 1, -2987.63, -4292.42, 0.062737, 6.10865, 0, 0, -0.0871553, 0.996195, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 55967 at 67.159653 yards. +(13633, 2857, 1, -2668.7, -4211.17, 0.174256, 3.01941, 0, 0, 0.998135, 0.0610518, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 13632 at 254.883499 yards. +(55973, 2857, 1, -2699.24, -4286.74, 5.33991, 0.610863, 0, 0, 0.300705, 0.953717, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 55967 at 284.348083 yards. +(13637, 2857, 1, -2562.67, -3982.02, 8.77391, 1.41372, 0, 0, 0.649447, 0.760406, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 13632 at 74.184601 yards. +(13638, 2857, 1, -2372.9, -4076.46, 6.72439, 4.11898, 0, 0, -0.882947, 0.469473, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 13632 at 140.627121 yards. +(13639, 2857, 1, -2609.92, -4002.35, 4.1186, 0.0523589, 0, 0, 0.0261765, 0.999657, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 13632 at 111.109161 yards. +(14622, 2857, 1, -2817.19, -2582.32, 33.2436, 5.79449, 0, 0, -0.241921, 0.970296, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 14618 at 52.997810 yards. +(14623, 2857, 1, -2757.04, -2596.21, 28.899, 5.81195, 0, 0, -0.233445, 0.97237, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 14618 at 41.448399 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(55972, 48, 0, 'Solid Chest', 0, 10), -- Solid Chests in Dustwallow Marsh +(13633, 48, 0, 'Solid Chest', 0, 10), -- Solid Chests in Dustwallow Marsh +(55973, 48, 0, 'Solid Chest', 0, 10), -- Solid Chests in Dustwallow Marsh +(13637, 48, 0, 'Solid Chest', 0, 10), -- Solid Chests in Dustwallow Marsh +(13638, 48, 0, 'Solid Chest', 0, 10), -- Solid Chests in Dustwallow Marsh +(13639, 48, 0, 'Solid Chest', 0, 10), -- Solid Chests in Dustwallow Marsh +(14622, 48, 0, 'Solid Chest', 0, 10), -- Solid Chests in Dustwallow Marsh +(14623, 48, 0, 'Solid Chest', 0, 10); -- Solid Chests in Dustwallow Marsh + +-- Missing Solid Chest spawns in Stranglethorn Vale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(12213, 2857, 0, -12140.4, -187.807, 31.6856, 2.04204, 0, 0, 0.85264, 0.522499, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 12119 at 154.290222 yards. +(12002, 2857, 0, -11667.2, 919.916, 3.42246, 1.88495, 0, 0, 0.809016, 0.587786, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 11691 at 333.149780 yards. +(12214, 2857, 0, -11401.3, -788.461, 15.1698, 3.52557, 0, 0, -0.981627, 0.190812, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 12049 at 99.885208 yards. +(12005, 2857, 0, -11535.5, 547.522, 50.7442, 1.81514, 0, 0, 0.788011, 0.615662, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 11691 at 69.257172 yards. +(12215, 2857, 0, -11504.7, -945.71, 29.2273, 1.13446, 0, 0, 0.537299, 0.843392, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 12049 at 100.901634 yards. +(12217, 2857, 0, -12520.1, -729.142, 39.9971, 2.89725, 0, 0, 0.992546, 0.12187, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 12169 at 359.458832 yards. +(12219, 2857, 0, -12479.1, -178.103, 14.1062, 2.04204, 0, 0, 0.85264, 0.522499, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 12119 at 326.131195 yards. +(12220, 2857, 0, -12682.9, -446.287, 32.5956, 3.89209, 0, 0, -0.930417, 0.366502, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 12169 at 401.411804 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(12213, 51, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12002, 51, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12214, 51, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12005, 51, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12215, 51, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12217, 51, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12219, 51, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(12220, 51, 0, 'Solid Chest', 0, 10); -- Solid Chests in Stranglethorn Vale + +-- Missing Solid Chest spawns in Alterac Mountains. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(33202, 2857, 0, 457.387, -219.749, 152.522, 0.488691, 0, 0, 0.241921, 0.970296, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 33200 at 48.214565 yards. +(33204, 2857, 0, 512.952, -213.591, 176.603, 2.51327, 0, 0, 0.951056, 0.309017, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 33200 at 27.407286 yards. +(33286, 2857, 0, 1215.36, -326.468, 48.3828, 0.942477, 0, 0, 0.45399, 0.891007, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 33208 at 24.083048 yards. +(33287, 2857, 0, 1115.39, -344.917, 43.6731, 5.51524, 0, 0, -0.374606, 0.927184, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 33208 at 115.622452 yards. +(33195, 2857, 0, 1108.17, -719.517, 71.5193, 3.99681, 0, 0, -0.909961, 0.414694, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 33193 at 139.736832 yards. +(33288, 2857, 0, 1218.23, -266.605, 34.6575, 5.14872, 0, 0, -0.537299, 0.843392, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 33208 at 39.262211 yards. +(33205, 2857, 0, 491.948, -202.401, 167.739, 4.83456, 0, 0, -0.66262, 0.748956, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 33200 at 19.100042 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(33202, 55, 0, 'Solid Chest', 0, 10), -- Solid Chests in Alterac Mountains +(33204, 55, 0, 'Solid Chest', 0, 10), -- Solid Chests in Alterac Mountains +(33286, 55, 0, 'Solid Chest', 0, 10), -- Solid Chests in Alterac Mountains +(33287, 55, 0, 'Solid Chest', 0, 10), -- Solid Chests in Alterac Mountains +(33195, 55, 0, 'Solid Chest', 0, 10), -- Solid Chests in Alterac Mountains +(33288, 55, 0, 'Solid Chest', 0, 10), -- Solid Chests in Alterac Mountains +(33205, 55, 0, 'Solid Chest', 0, 10); -- Solid Chests in Alterac Mountains + +-- Missing Solid Chest spawns in Arathi Highlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(16979, 2857, 0, -1712.67, -1793.71, 101.708, 3.85718, 0, 0, -0.936671, 0.35021, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16978 at 94.287552 yards. +(16858, 2857, 0, -1749.69, -1682.1, 52.7428, 4.7473, 0, 0, -0.694658, 0.71934, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16789 at 153.391525 yards. +(16859, 2857, 0, -2230.21, -1469.4, -46.3219, 3.85718, 0, 0, -0.936671, 0.35021, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16794 at 163.797531 yards. +(16870, 2857, 0, -1789.1, -1580.76, 52.8563, 0.314158, 0, 0, 0.156434, 0.987688, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16789 at 104.803162 yards. +(16980, 2857, 0, -1677.67, -1769.35, 81.2149, 4.59022, 0, 0, -0.748956, 0.66262, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16978 at 121.858360 yards. +(16871, 2857, 0, -1732.96, -1522.51, 55.1346, 4.32842, 0, 0, -0.829037, 0.559194, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16789 at 43.780312 yards. +(16880, 2857, 0, -2169.96, -1708.87, -46.6102, 1.18682, 0, 0, 0.559193, 0.829038, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16794 at 87.750122 yards. +(16903, 2857, 0, -1690.85, -1662.12, 59.7234, 1.44862, 0, 0, 0.66262, 0.748956, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16789 at 122.506477 yards. +(16904, 2857, 0, -2283.33, -1611.53, -66.2569, 6.21337, 0, 0, -0.0348988, 0.999391, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16794 at 116.510132 yards. +(16966, 2857, 0, -2051.7, -2796.66, 72.4766, 5.20108, 0, 0, -0.515038, 0.857168, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16949 at 133.562668 yards. +(16981, 2857, 0, -1641.21, -1894.65, 81.4397, 3.00195, 0, 0, 0.997563, 0.0697661, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16978 at 73.033188 yards. +(16967, 2857, 0, -2092.36, -2817.31, 81.4316, 0.174532, 0, 0, 0.0871553, 0.996195, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16949 at 176.432556 yards. +(16982, 2857, 0, -934.741, -3846.92, 147.729, 5.93412, 0, 0, -0.173648, 0.984808, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16977 at 105.658112 yards. +(16968, 2857, 0, -1986.08, -2782.04, 81.5256, 0.925024, 0, 0, 0.446198, 0.894935, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16949 at 69.068619 yards. +(16969, 2857, 0, -1950.47, -2803.63, 80.7643, 3.83973, 0, 0, -0.939692, 0.34202, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16949 at 36.070541 yards. +(16988, 2857, 0, -862.458, -3948.8, 152.344, 6.26573, 0, 0, -0.00872612, 0.999962, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 16977 at 45.698059 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(16979, 52, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16858, 52, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16859, 52, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16870, 52, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16980, 52, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16871, 52, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16880, 52, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16903, 52, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16904, 52, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16966, 52, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16981, 52, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16967, 52, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16982, 52, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16968, 52, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16969, 52, 0, 'Solid Chest', 0, 10), -- Solid Chests in Arathi Highlands +(16988, 52, 0, 'Solid Chest', 0, 10); -- Solid Chests in Arathi Highlands + +-- Missing Solid Chest spawns in Desolace. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(30251, 2857, 1, -1757.97, 911.563, 92.4926, 2.49582, 0, 0, 0.948323, 0.317306, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 30183 at 414.788879 yards. +(30252, 2857, 1, -1191.4, 2860.78, 139.005, 5.5676, 0, 0, -0.350207, 0.936672, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 30184 at 212.587509 yards. +(30253, 2857, 1, -1364.17, 2916.2, 127.253, 4.4855, 0, 0, -0.782608, 0.622515, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 30184 at 151.205841 yards. +(30254, 2857, 1, -1333.23, 2760.84, 113.199, 2.44346, 0, 0, 0.939692, 0.34202, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 30184 at 47.242317 yards. +(30255, 2857, 1, -1696.59, 1021.16, 89.2987, 3.6652, 0, 0, -0.965925, 0.258821, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 30183 at 367.927338 yards. +(30256, 2857, 1, -1905.2, 998.873, 90.611, 5.67232, 0, 0, -0.300705, 0.953717, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 30183 at 277.356689 yards. +(30257, 2857, 1, -2384.47, 2408.75, 76.4762, 3.75246, 0, 0, -0.953716, 0.300708, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 30178 at 36.092865 yards. +(30258, 2857, 1, -1200.01, 2761.32, 111.421, 1.50098, 0, 0, 0.681998, 0.731354, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 30184 at 180.189621 yards. +(30259, 2857, 1, -1133.85, 2694.59, 111.414, 2.93214, 0, 0, 0.994521, 0.104536, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 30184 at 256.573273 yards. +(30260, 2857, 1, -1287.23, 2903.94, 113.557, 4.4855, 0, 0, -0.782608, 0.622515, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 30184 at 165.839798 yards. +(30261, 2857, 1, -1902.34, 1107.68, 92.3415, 0.122173, 0, 0, 0.0610485, 0.998135, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 30183 at 174.296082 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30251, 53, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30252, 53, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30253, 53, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30254, 53, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30255, 53, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30256, 53, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30257, 53, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30258, 53, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30259, 53, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30260, 53, 0, 'Solid Chest', 0, 10), -- Solid Chests in Desolace +(30261, 53, 0, 'Solid Chest', 0, 10); -- Solid Chests in Desolace + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 2857; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From e85b69e4b9e29da4582a498e231ff1f4c9700763 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 2 Jul 2023 16:47:28 +0100 Subject: [PATCH 052/426] Add Missing Solid Chests (153451) (#2020) --- sql/migrations/20230701202354_world.sql | 148 ++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 sql/migrations/20230701202354_world.sql diff --git a/sql/migrations/20230701202354_world.sql b/sql/migrations/20230701202354_world.sql new file mode 100644 index 00000000000..fb3d00e98ef --- /dev/null +++ b/sql/migrations/20230701202354_world.sql @@ -0,0 +1,148 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230701202354'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230701202354'); +-- Add your query below. + + +-- Create new pool to hold Solid Chest spawns in Blasted Lands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(57, 2, 'Solid Chests in Blasted Lands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(32134, 57, 0, 'Solid Chest', 0, 10), +(42439, 57, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Azshara. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(59, 5, 'Solid Chests in Azshara', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48362, 59, 0, 'Solid Chest', 0, 10), +(48363, 59, 0, 'Solid Chest', 0, 10), +(48364, 59, 0, 'Solid Chest', 0, 10), +(48365, 59, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in The Hinterlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(58, 7, 'Solid Chests in The Hinterlands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(46292, 58, 0, 'Solid Chest', 0, 10), +(46345, 58, 0, 'Solid Chest', 0, 10), +(46346, 58, 0, 'Solid Chest', 0, 10), +(46370, 58, 0, 'Solid Chest', 0, 10), +(46430, 58, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Tanaris. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(56, 4, 'Solid Chests in Tanaris', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(17329, 56, 0, 'Solid Chest', 0, 10), +(17330, 56, 0, 'Solid Chest', 0, 10), +(17331, 56, 0, 'Solid Chest', 0, 10); + +-- Missing Solid Chest spawns in Blasted Lands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(32510, 153451, 0, -11331.9, -3332.5, 8.61777, 2.54818, 0, 0, 0.956305, 0.292372, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 32134 at 104.096306 yards. +(42444, 153451, 0, -10834.8, -2728.32, 7.77758, 2.09439, 0, 0, 0.866025, 0.500001, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 42439 at 81.545799 yards. +(42445, 153451, 0, -10858.3, -2645.97, 8.7453, 4.15388, 0, 0, -0.874619, 0.48481, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 42439 at 34.311974 yards. +(32514, 153451, 0, -11227.9, -3480.42, 8.41118, 5.39307, 0, 0, -0.430511, 0.902586, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 32134 at 95.742867 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(32510, 57, 0, 'Solid Chest', 0, 10), -- Solid Chests in Blasted Lands +(42444, 57, 0, 'Solid Chest', 0, 10), -- Solid Chests in Blasted Lands +(42445, 57, 0, 'Solid Chest', 0, 10), -- Solid Chests in Blasted Lands +(32514, 57, 0, 'Solid Chest', 0, 10); -- Solid Chests in Blasted Lands + +-- Missing Solid Chest spawns in Azshara. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(48509, 153451, 1, 3448.36, -4623.76, 103.711, 2.26893, 0, 0, 0.906307, 0.422619, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48365 at 316.035919 yards. +(48525, 153451, 1, 3653.14, -5367.08, 111.546, 2.47837, 0, 0, 0.945518, 0.325568, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48363 at 160.257553 yards. +(48554, 153451, 1, 4129.42, -5078.69, 144.178, 3.26377, 0, 0, -0.998135, 0.0610518, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48364 at 356.703186 yards. +(48556, 153451, 1, 3231.76, -4316.57, 131.014, 2.54818, 0, 0, 0.956305, 0.292372, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48362 at 266.518524 yards. +(48570, 153451, 1, 3969.52, -5034.33, 136.582, 1.95477, 0, 0, 0.829038, 0.559193, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48364 at 196.714645 yards. +(48575, 153451, 1, 2869.88, -4038.23, 142.5, 0.122173, 0, 0, 0.0610485, 0.998135, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48362 at 197.403336 yards. +(48578, 153451, 1, 3570.11, -5089.52, 84.794, 3.82227, 0, 0, -0.942641, 0.333808, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48365 at 195.928894 yards. +(48581, 153451, 1, 3264.44, -4590.36, 98.1213, 6.02139, 0, 0, -0.130526, 0.991445, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48365 at 457.536194 yards. +(48585, 153451, 1, 3328.43, -5143.73, 87.2847, 4.41568, 0, 0, -0.803857, 0.594823, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 48365 at 366.762665 yards. +(48587, 153451, 1, 3549.59, -4760.24, 110.663, 0.698131, 0, 0, 0.34202, 0.939693, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 48365 at 149.479965 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48509, 59, 0, 'Solid Chest', 0, 10), -- Solid Chests in Azshara +(48525, 59, 0, 'Solid Chest', 0, 10), -- Solid Chests in Azshara +(48554, 59, 0, 'Solid Chest', 0, 10), -- Solid Chests in Azshara +(48556, 59, 0, 'Solid Chest', 0, 10), -- Solid Chests in Azshara +(48570, 59, 0, 'Solid Chest', 0, 10), -- Solid Chests in Azshara +(48575, 59, 0, 'Solid Chest', 0, 10), -- Solid Chests in Azshara +(48578, 59, 0, 'Solid Chest', 0, 10), -- Solid Chests in Azshara +(48581, 59, 0, 'Solid Chest', 0, 10), -- Solid Chests in Azshara +(48585, 59, 0, 'Solid Chest', 0, 10), -- Solid Chests in Azshara +(48587, 59, 0, 'Solid Chest', 0, 10); -- Solid Chests in Azshara + +-- Missing Solid Chest spawns in The Hinterlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(46373, 153451, 0, -355.508, -4077.57, 177.515, 6.23083, 0, 0, -0.0261765, 0.999657, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46370 at 139.091461 yards. +(46377, 153451, 0, -417.437, -4015.41, 195.178, 4.08407, 0, 0, -0.891006, 0.453991, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46370 at 188.431992 yards. +(46431, 153451, 0, 445.376, -3321.57, 120.824, 1.01229, 0, 0, 0.484809, 0.87462, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46430 at 299.945862 yards. +(46360, 153451, 0, 213.652, -4312.45, 117.838, 4.90438, 0, 0, -0.636078, 0.771625, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46345 at 553.450867 yards. +(46299, 153451, 0, -200.11, -4048.97, 177.774, 1.27409, 0, 0, 0.594822, 0.803857, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46292 at 135.615860 yards. +(46300, 153451, 0, -161.006, -3784.68, 239.553, 1.13446, 0, 0, 0.537299, 0.843392, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46292 at 139.598694 yards. +(46380, 153451, 0, -245.525, -4179.18, 121.946, 6.21337, 0, 0, -0.0348988, 0.999391, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46370 at 180.047089 yards. +(46301, 153451, 0, -204.854, -3964.76, 195.571, 5.39307, 0, 0, -0.430511, 0.902586, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46292 at 52.101963 yards. +(46303, 153451, 0, -402.939, -3824.5, 238.351, 2.56563, 0, 0, 0.958819, 0.284016, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46292 at 234.424194 yards. +(46361, 153451, 0, 322.28, -4134.71, 120.035, 0.523598, 0, 0, 0.258819, 0.965926, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46345 at 355.477722 yards. +(46432, 153451, 0, 98.6047, -3510.1, 108.363, 3.03684, 0, 0, 0.998629, 0.0523532, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46430 at 393.970856 yards. +(46362, 153451, 0, -517.781, -4180.18, 215.861, 1.36136, 0, 0, 0.62932, 0.777146, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46346 at 70.637856 yards. +(46363, 153451, 0, -678.642, -4035.07, 238.373, 4.57276, 0, 0, -0.754709, 0.656059, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46346 at 168.407593 yards. +(46382, 153451, 0, -343.456, -4220.94, 152.02, 6.14356, 0, 0, -0.0697556, 0.997564, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 46370 at 78.230591 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(46373, 58, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46377, 58, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46431, 58, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46360, 58, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46299, 58, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46300, 58, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46380, 58, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46301, 58, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46303, 58, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46361, 58, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46432, 58, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46362, 58, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46363, 58, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46382, 58, 0, 'Solid Chest', 0, 10); -- Solid Chests in The Hinterlands + +-- Missing Solid Chest spawns in Tanaris. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(17467, 153451, 1, -7901.72, -5206.91, 0.792425, 2.93214, 0, 0, 0.994521, 0.104536, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17330 at 50.682072 yards. +(17468, 153451, 1, -7960.2, -5245.88, 1.51478, 5.61996, 0, 0, -0.325567, 0.945519, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17330 at 110.848846 yards. +(17469, 153451, 1, -8497.94, -3061.38, 9.52853, 0.994837, 0, 0, 0.477159, 0.878817, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17331 at 150.379807 yards. +(17470, 153451, 1, -8490.85, -2888.62, 8.66692, 0.331611, 0, 0, 0.165047, 0.986286, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17331 at 145.324249 yards. +(17477, 153451, 1, -7977.4, -5127, 5.78821, 0.0698117, 0, 0, 0.0348988, 0.999391, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17330 at 88.629700 yards. +(17478, 153451, 1, -8383.04, -3083.96, 8.62471, 2.23402, 0, 0, 0.898793, 0.438373, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17331 at 108.701469 yards. +(17479, 153451, 1, -8092.79, -5307.67, 0.861935, 3.4383, 0, 0, -0.989016, 0.147811, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17329 at 146.620819 yards. +(17480, 153451, 1, -8079.38, -5251.62, 0.680218, 0, 0, 0, 0, 1, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 17329 at 185.402115 yards. +(17481, 153451, 1, -8023.66, -5228.58, 0.592669, 5.58505, 0, 0, -0.34202, 0.939693, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 17330 at 148.150055 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(17467, 56, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17468, 56, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17469, 56, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17470, 56, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17477, 56, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17478, 56, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17479, 56, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17480, 56, 0, 'Solid Chest', 0, 10), -- Solid Chests in Tanaris +(17481, 56, 0, 'Solid Chest', 0, 10); -- Solid Chests in Tanaris + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 153451; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 9ef1bb99e5d5b2e3f09369db92506069459e8921 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 2 Jul 2023 17:38:38 +0100 Subject: [PATCH 053/426] Add Missing Alliance / Horde Chests (3715, 105578, 111095, 105581, 105579) (#2021) --- sql/migrations/20230702060959_world.sql | 225 ++++++++++++++++++++++++ 1 file changed, 225 insertions(+) create mode 100644 sql/migrations/20230702060959_world.sql diff --git a/sql/migrations/20230702060959_world.sql b/sql/migrations/20230702060959_world.sql new file mode 100644 index 00000000000..d89c78123d7 --- /dev/null +++ b/sql/migrations/20230702060959_world.sql @@ -0,0 +1,225 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230702060959'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230702060959'); +-- Add your query below. + + +-- Create new pool to hold Alliance Chest spawns in The Barrens. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(60, 1, 'Alliance Chests in The Barrens', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(13528, 60, 0, 'Alliance Chest', 0, 10); + +-- Create new pool to hold Alliance Chest spawns in Hillsbrad Foothills. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(61, 2, 'Alliance Chests in Hillsbrad Foothills', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(20885, 61, 0, 'Alliance Chest', 0, 10), +(30036, 61, 0, 'Alliance Chest', 0, 10); + +-- Create new pool to hold Alliance Chest spawns in Stonetalon Mountains. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(62, 2, 'Alliance Chests in Stonetalon Mountains', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(47589, 62, 0, 'Alliance Chest', 0, 10), +(47590, 62, 0, 'Alliance Chest', 0, 10); + +-- Missing Alliance Chest spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(13539, 3715, 1, -4113.86, -2302.24, 126.262, 5.61996, 0, 0, -0.325567, 0.945519, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13528 at 129.830124 yards. +(13545, 3715, 1, -4065.35, -2417.5, 126.133, 3.57793, 0, 0, -0.976295, 0.216442, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 13528 at 34.388451 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(13539, 60, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in The Barrens +(13545, 60, 0, 'Alliance Chest', 0, 10); -- Alliance Chests in The Barrens + +-- Missing Alliance Chest spawns in Hillsbrad Foothills. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(20957, 3715, 0, -336.64, 32.6983, 55.4212, 2.63544, 0, 0, 0.968147, 0.250381, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 20885 at 141.648819 yards. +(20958, 3715, 0, -488.521, 109.981, 60.4183, 6.23083, 0, 0, -0.0261765, 0.999657, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 20885 at 52.787895 yards. +(30262, 3715, 0, -396.274, -61.4486, 54.4769, 3.24635, 0, 0, -0.998629, 0.0523532, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 30036 at 67.082222 yards. +(20959, 3715, 0, -526.998, 100.357, 56.8403, 4.2237, 0, 0, -0.857167, 0.515038, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 20885 at 92.103302 yards. +(20960, 3715, 0, -566.732, 32.3075, 49.8843, 2.53072, 0, 0, 0.953716, 0.300708, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 20885 at 160.268631 yards. +(30263, 3715, 0, -553.312, -101.599, 45.8161, 2.96704, 0, 0, 0.996194, 0.087165, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 30036 at 106.931511 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(20957, 61, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Hillsbrad Foothills +(20958, 61, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Hillsbrad Foothills +(30262, 61, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Hillsbrad Foothills +(20959, 61, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Hillsbrad Foothills +(20960, 61, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Hillsbrad Foothills +(30263, 61, 0, 'Alliance Chest', 0, 10); -- Alliance Chests in Hillsbrad Foothills + +-- Missing Alliance Chest spawns in Stonetalon Mountains. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(47618, 3715, 1, 2416.15, 1760.86, 347.275, 1.11701, 0, 0, 0.529919, 0.848048, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 47589 at 142.485703 yards. +(47619, 3715, 1, 2518.13, 1982.36, 348.044, 2.28638, 0, 0, 0.909961, 0.414694, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 47590 at 26.936926 yards. +(47620, 3715, 1, 2493.49, 1856.61, 365.885, 2.86234, 0, 0, 0.990268, 0.139175, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 47589 at 23.358732 yards. +(47621, 3715, 1, 2419.41, 1791.47, 349.38, 3.17653, 0, 0, -0.999847, 0.0174693, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 47589 at 120.184952 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(47618, 62, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Stonetalon Mountains +(47619, 62, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Stonetalon Mountains +(47620, 62, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Stonetalon Mountains +(47621, 62, 0, 'Alliance Chest', 0, 10); -- Alliance Chests in Stonetalon Mountains + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 3715; + +-- Create new pool to hold Horde Chest spawns in Arathi Highlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(65, 2, 'Horde Chests in Arathi Highlands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(16947, 65, 0, 'Horde Chest', 0, 10); + +-- Missing Horde Chest spawns in Arathi Highlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(16970, 105578, 0, -1487.69, -3124.46, 13.3643, 5.48033, 0, 0, -0.390731, 0.920505, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16947 at 94.587196 yards. +(16971, 105578, 0, -1542.43, -3033.22, 12.9804, 6.23083, 0, 0, -0.0261765, 0.999657, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16947 at 67.309319 yards. +(16972, 105578, 0, -1466.3, -3081.7, 13.2939, 2.89725, 0, 0, 0.992546, 0.12187, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 16947 at 51.763432 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(16970, 65, 0, 'Horde Chest', 0, 10), -- Horde Chests in Arathi Highlands +(16971, 65, 0, 'Horde Chest', 0, 10), -- Horde Chests in Arathi Highlands +(16972, 65, 0, 'Horde Chest', 0, 10); -- Horde Chests in Arathi Highlands + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 105578; + +-- Create new pool to hold Alliance Chest spawns in The Barrens. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(66, 2, 'Alliance Chests in The Barrens', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(15748, 66, 0, 'Alliance Chest', 0, 10); + +-- Create new pool to hold Alliance Chest spawns in Silverpine Forest. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(67, 3, 'Alliance Chests in Silverpine Forest', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(35449, 67, 0, 'Alliance Chest', 0, 10), +(35481, 67, 0, 'Alliance Chest', 0, 10), +(35489, 67, 0, 'Alliance Chest', 0, 10); + +-- Missing Alliance Chest spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(15752, 111095, 1, -2009.53, -3600.92, 21.7593, 3.56047, 0, 0, -0.978148, 0.207912, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15748 at 156.407181 yards. +(15763, 111095, 1, -2214.52, -3689.79, 93.4471, 5.49779, 0, 0, -0.382683, 0.92388, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 15748 at 128.947769 yards. +(15764, 111095, 1, -2101.53, -3646.35, 61.716, 0.0523589, 0, 0, 0.0261765, 0.999657, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 15748 at 86.649811 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(15752, 66, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in The Barrens +(15763, 66, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in The Barrens +(15764, 66, 0, 'Alliance Chest', 0, 10); -- Alliance Chests in The Barrens + +-- Missing Alliance Chest spawns in Silverpine Forest. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(35563, 111095, 0, -83.4207, 802.136, 63.7815, 5.32326, 0, 0, -0.461748, 0.887011, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 35489 at 56.640015 yards. +(35482, 111095, 0, -470.033, 826.422, 96.8248, 5.67232, 0, 0, -0.300705, 0.953717, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 35481 at 245.915451 yards. +(35565, 111095, 0, -71.4637, 808.973, 64.8878, 3.14159, 0, 0, -1, 0, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 35489 at 70.286011 yards. +(35568, 111095, 0, -348.764, 949.185, 129.781, 0.767944, 0, 0, 0.374606, 0.927184, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 35481 at 195.435898 yards. +(35475, 111095, 0, 73.6614, 767.879, 63.6439, 4.88692, 0, 0, -0.642787, 0.766045, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 35449 at 56.494854 yards. +(35601, 111095, 0, 62.7082, 789.352, 64.0437, 2.42601, 0, 0, 0.936672, 0.350207, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 35449 at 39.882446 yards. +(35607, 111095, 0, 38.3443, 792.112, 64.9459, 6.16101, 0, 0, -0.0610485, 0.998135, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 35449 at 15.406877 yards. +(35613, 111095, 0, -105.879, 810.486, 63.712, 0.087266, 0, 0, 0.0436192, 0.999048, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 35489 at 42.950706 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(35563, 67, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Silverpine Forest +(35482, 67, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Silverpine Forest +(35565, 67, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Silverpine Forest +(35568, 67, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Silverpine Forest +(35475, 67, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Silverpine Forest +(35601, 67, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Silverpine Forest +(35607, 67, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Silverpine Forest +(35613, 67, 0, 'Alliance Chest', 0, 10); -- Alliance Chests in Silverpine Forest + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 111095; + +-- Create new pool to hold Alliance Chest spawns in Hillsbrad Foothills. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(70, 2, 'Alliance Chests in Hillsbrad Foothills', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(29650, 70, 0, 'Alliance Chest', 0, 10), +(30032, 70, 0, 'Alliance Chest', 0, 10); + +-- Missing Alliance Chest spawns in Hillsbrad Foothills. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(30264, 4096, 0, -1290.25, -1224.9, 22.957, 5.00909, 0, 0, -0.594823, 0.803857, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 30032 at 73.315445 yards. +(29663, 4096, 0, -801.115, 65.3181, 8.89202, 0.785397, 0, 0, 0.382683, 0.92388, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 29650 at 42.744179 yards. +(29664, 4096, 0, -722.055, 131.321, 21.1245, 4.31097, 0, 0, -0.833885, 0.551938, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 29650 at 142.692291 yards. +(30265, 4096, 0, -1296.34, -1172.98, 38.0041, 1.5708, 0, 0, 0.707107, 0.707107, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 30032 at 95.762459 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30264, 70, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Hillsbrad Foothills +(29663, 70, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Hillsbrad Foothills +(29664, 70, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Hillsbrad Foothills +(30265, 70, 0, 'Alliance Chest', 0, 10); -- Alliance Chests in Hillsbrad Foothills + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 4096; + +-- Create new pool to hold Alliance Chest spawns in Arathi Highlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(74, 1, 'Alliance Chests in Arathi Highlands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(16992, 74, 0, 'Alliance Chest', 0, 10); + +-- Missing Alliance Chest spawns in Arathi Highlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(55400, 105581, 0, -1544.81, -1751.48, 68.1662, 1.11701, 0, 0, 0.529919, 0.848048, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16992 at 134.963043 yards. +(55401, 105581, 0, -1601.2, -1645, 68.1097, 2.9845, 0, 0, 0.996917, 0.0784664, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16992 at 69.362106 yards. +(55402, 105581, 0, -1509.78, -1689.98, 68.8217, 4.90438, 0, 0, -0.636078, 0.771625, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 16992 at 150.650986 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(55400, 74, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Arathi Highlands +(55401, 74, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Arathi Highlands +(55402, 74, 0, 'Alliance Chest', 0, 10); -- Alliance Chests in Arathi Highlands + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 105581; + +-- Create new pool to hold Alliance Chest spawns in Alterac Mountains. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(76, 2, 'Alliance Chests in Alterac Mountains', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(32213, 76, 0, 'Alliance Chest', 0, 10), +(33181, 76, 0, 'Alliance Chest', 0, 10); + +-- Create new pool to hold Alliance Chest spawns in Arathi Highlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(75, 1, 'Alliance Chests in Arathi Highlands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(16787, 75, 0, 'Alliance Chest', 0, 10); + +-- Missing Alliance Chest spawns in Alterac Mountains. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(33188, 105579, 0, 424.828, 221.755, 42.888, 0.663223, 0, 0, 0.325567, 0.945519, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 33181 at 56.035671 yards. +(32515, 105579, 0, 96.9252, 367.759, 43.922, 3.97935, 0, 0, -0.913545, 0.406738, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 32213 at 89.992744 yards. +(32516, 105579, 0, 58.7195, 276.344, 41.9076, 5.13127, 0, 0, -0.544639, 0.838671, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 32213 at 188.771606 yards. +(33191, 105579, 0, 335.954, 185.797, 42.9273, 4.69494, 0, 0, -0.71325, 0.70091, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 33181 at 54.145618 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(33188, 76, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Alterac Mountains +(32515, 76, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Alterac Mountains +(32516, 76, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Alterac Mountains +(33191, 76, 0, 'Alliance Chest', 0, 10); -- Alliance Chests in Alterac Mountains + +-- Missing Alliance Chest spawns in Arathi Highlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(16906, 105579, 0, -1047.6, -2811.98, 42.197, 3.85718, 0, 0, -0.936671, 0.35021, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16787 at 125.762589 yards. +(16912, 105579, 0, -1106.34, -2921.2, 42.197, 4.66003, 0, 0, -0.725374, 0.688355, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 16787 at 22.387850 yards. +(16919, 105579, 0, -1007.02, -2896.23, 62.8136, 3.38594, 0, 0, -0.992546, 0.12187, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 16787 at 89.249290 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(16906, 75, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Arathi Highlands +(16912, 75, 0, 'Alliance Chest', 0, 10), -- Alliance Chests in Arathi Highlands +(16919, 75, 0, 'Alliance Chest', 0, 10); -- Alliance Chests in Arathi Highlands + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 105579; + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 86e135f195c6c82df2c21a79dc71087a1846ee42 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 2 Jul 2023 17:38:49 +0100 Subject: [PATCH 054/426] Add Missing Box of Assorted Parts (19019) (#2023) --- sql/migrations/20230702080910_world.sql | 83 +++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 sql/migrations/20230702080910_world.sql diff --git a/sql/migrations/20230702080910_world.sql b/sql/migrations/20230702080910_world.sql new file mode 100644 index 00000000000..a88596556fb --- /dev/null +++ b/sql/migrations/20230702080910_world.sql @@ -0,0 +1,83 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230702080910'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230702080910'); +-- Add your query below. + + +-- Create new pool to hold Box of Assorted Parts spawns in The Barrens. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(68, 1, 'Box of Assorted Partss in The Barrens', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(13300, 68, 0, 'Box of Assorted Parts', 0, 10); + +-- Create new pool to hold Box of Assorted Parts spawns in Westfall. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(69, 3, 'Box of Assorted Partss in Westfall', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(42685, 69, 0, 'Box of Assorted Parts', 0, 10), +(42752, 69, 0, 'Box of Assorted Parts', 0, 10); + +-- Missing Box of Assorted Parts spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(13490, 19019, 1, 1326.78, -3639.1, 91.7399, 3.38594, 0, 0, -0.992546, 0.12187, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13300 at 56.625462 yards. +(13546, 19019, 1, 1367.9, -3651.88, 97.2595, 3.01941, 0, 0, 0.998135, 0.0610518, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 13300 at 94.467255 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(13490, 68, 0, 'Box of Assorted Parts', 0, 10), -- Box of Assorted Partss in The Barrens +(13546, 68, 0, 'Box of Assorted Parts', 0, 10); -- Box of Assorted Partss in The Barrens + +-- Missing Box of Assorted Parts spawns in Westfall. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(42707, 19019, 0, -10543.9, 2119.12, 0.081357, 1.85005, 0, 0, 0.798635, 0.601815, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42685 at 536.684692 yards. +(42932, 19019, 0, -11013.9, 1528.84, 43.7747, 0.174532, 0, 0, 0.0871553, 0.996195, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42752 at 77.803619 yards. +(42933, 19019, 0, -11059, 1445.25, 43.3236, 2.49582, 0, 0, 0.948323, 0.317306, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42752 at 167.826218 yards. +(42937, 19019, 0, -10981.8, 1477.53, 50.6081, 4.71239, 0, 0, -0.707107, 0.707107, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 42752 at 100.264534 yards. +(42939, 19019, 0, -11098.1, 2090.4, -0.057365, 2.46091, 0, 0, 0.942641, 0.333808, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 42752 at 540.960938 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(42707, 69, 0, 'Box of Assorted Parts', 0, 10), -- Box of Assorted Partss in Westfall +(42932, 69, 0, 'Box of Assorted Parts', 0, 10), -- Box of Assorted Partss in Westfall +(42933, 69, 0, 'Box of Assorted Parts', 0, 10), -- Box of Assorted Partss in Westfall +(42937, 69, 0, 'Box of Assorted Parts', 0, 10), -- Box of Assorted Partss in Westfall +(42939, 69, 0, 'Box of Assorted Parts', 0, 10); -- Box of Assorted Partss in Westfall + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 19019; + +-- Create new pool to hold Box of Assorted Parts spawns in The Barrens. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(73, 3, 'Box of Assorted Partss in The Barrens', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(13303, 73, 0, 'Box of Assorted Parts', 0, 10), +(13304, 73, 0, 'Box of Assorted Parts', 0, 10); + +-- Missing Box of Assorted Parts spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(13547, 19020, 1, -4144.57, -2178.27, 50.4043, 4.7473, 0, 0, -0.694658, 0.71934, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13303 at 47.903759 yards. +(13548, 19020, 1, -4168.89, -2187.92, 50.2294, 0.174532, 0, 0, 0.0871553, 0.996195, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13303 at 55.239307 yards. +(13549, 19020, 1, -4187.06, -2192.49, 50.1852, 2.72271, 0, 0, 0.978148, 0.207912, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13303 at 68.267975 yards. +(13550, 19020, 1, -4163.62, -2197.79, 50.1831, 3.26377, 0, 0, -0.998135, 0.0610518, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13303 at 45.194328 yards. +(13551, 19020, 1, -4071.55, -2166.92, 50.6379, 3.28124, 0, 0, -0.997563, 0.0697661, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13303 at 77.385201 yards. +(13552, 19020, 1, -4111.56, -2305.06, 125.464, 4.90438, 0, 0, -0.636078, 0.771625, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 13304 at 36.490269 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(13547, 73, 0, 'Box of Assorted Parts', 0, 10), -- Box of Assorted Partss in The Barrens +(13548, 73, 0, 'Box of Assorted Parts', 0, 10), -- Box of Assorted Partss in The Barrens +(13549, 73, 0, 'Box of Assorted Parts', 0, 10), -- Box of Assorted Partss in The Barrens +(13550, 73, 0, 'Box of Assorted Parts', 0, 10), -- Box of Assorted Partss in The Barrens +(13551, 73, 0, 'Box of Assorted Parts', 0, 10), -- Box of Assorted Partss in The Barrens +(13552, 73, 0, 'Box of Assorted Parts', 0, 10); -- Box of Assorted Partss in The Barrens + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 19020; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 3f87a20adb765ca0c2d94da8152c30bb1cc7171d Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 2 Jul 2023 17:38:59 +0100 Subject: [PATCH 055/426] Add Missing Rocket Car Parts (#2024) --- sql/migrations/20230702093803_world.sql | 1491 +++++++++++++++++++++++ 1 file changed, 1491 insertions(+) create mode 100644 sql/migrations/20230702093803_world.sql diff --git a/sql/migrations/20230702093803_world.sql b/sql/migrations/20230702093803_world.sql new file mode 100644 index 00000000000..a3b32dbe995 --- /dev/null +++ b/sql/migrations/20230702093803_world.sql @@ -0,0 +1,1491 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230702093803'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230702093803'); +-- Add your query below. + + +SET @OGUID = 362149; +SET @PTEMPLATE = 17206; + +DELETE FROM `gameobject` WHERE `guid` IN (16962, 16963, 16990, 16991, 17031, 17032, 17035, 17036, 17037, 17038, 17039, 17040, 17041, 17042, 17043, 17044, 17045, 17046, 17047, 17048, 17049, 17050, 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 17063, 17064, 17065, 17066, 17067, 17068, 17069, 17070, 17071, 17072, 17073, 17074, 17075, 17076, 17077, 17078, 17079, 170089, 170090, 170091, 170092, 170093, 170094, 170110, 170111, 170112, 170113, 170114, 170115, 170116); +DELETE FROM `pool_gameobject` WHERE `guid` IN (16962, 16963, 16990, 16991, 17031, 17032, 17035, 17036, 17037, 17038, 17039, 17040, 17041, 17042, 17043, 17044, 17045, 17046, 17047, 17048, 17049, 17050, 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 17063, 17064, 17065, 17066, 17067, 17068, 17069, 17070, 17071, 17072, 17073, 17074, 17075, 17076, 17077, 17078, 17079, 170089, 170090, 170091, 170092, 170093, 170094, 170110, 170111, 170112, 170113, 170114, 170115, 170116); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (16962, 16963, 16990, 16991, 17031, 17032, 17035, 17036, 17037, 17038, 17039, 17040, 17041, 17042, 17043, 17044, 17045, 17046, 17047, 17048, 17049, 17050, 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 17063, 17064, 17065, 17066, 17067, 17068, 17069, 17070, 17071, 17072, 17073, 17074, 17075, 17076, 17077, 17078, 17079, 170089, 170090, 170091, 170092, 170093, 170094, 170110, 170111, 170112, 170113, 170114, 170115, 170116)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 19868, 1, -6621.1, -3842.26, -58.7496, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 19868, 1, -6609.77, -4053.91, -49.7022, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 19868, 1, -6605.92, -3882.93, -58.5154, 3.00195, 0, 0, 0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 19868, 1, -6592.22, -3791.08, -58.7499, 0.680677, 0, 0, 0.333806, 0.942642, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 19868, 1, -6581.3, -3983.66, -58.7496, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 19868, 1, -6549.04, -3952.73, -58.75, 0.523598, 0, 0, 0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 19868, 1, -6546.79, -4078.38, -58.7282, 2.93214, 0, 0, 0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 19868, 1, -6528.55, -4037.68, -58.75, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 19868, 1, -6517.26, -3784.58, -58.7499, 4.27606, 0, 0, -0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 19868, 1, -6508.61, -4118.54, -58.643, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 19868, 1, -6508.21, -3924.26, -58.75, 3.33359, 0, 0, -0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 19868, 1, -6504.16, -3836.44, -58.7499, 1.20428, 0, 0, 0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 19868, 1, -6496.94, -4018.07, -58.75, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 19868, 1, -6473.56, -4074.88, -58.7484, 4.25861, 0, 0, -0.848047, 0.529921, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 19868, 1, -6472, -3925.88, -58.75, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 19868, 1, -6471.51, -3863.75, -58.7499, 3.75246, 0, 0, -0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 19868, 1, -6466.63, -3812.62, -58.7499, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 19868, 1, -6436.92, -3811.53, -58.75, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 19868, 1, -6435.11, -3856.64, -58.7501, 5.02655, 0, 0, -0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 19868, 1, -6343.72, -4323.64, -57.9108, 5.35816, 0, 0, -0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 19868, 1, -6335.95, -3624.94, -58.7499, 5.53269, 0, 0, -0.366501, 0.930418, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 19868, 1, -6315.38, -3584.66, -58.7499, 0.733038, 0, 0, 0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 19868, 1, -6309.95, -4305.28, -58.75, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 19868, 1, -6287.19, -3548.27, -58.7499, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 19868, 1, -6266.4, -3509.89, -58.6511, 0.628317, 0, 0, 0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 19868, 1, -6258, -3585.24, -58.75, 1.83259, 0, 0, 0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 19868, 1, -6256.65, -4294.49, -58.75, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 19868, 1, -6224.45, -3541.54, -58.75, 2.79252, 0, 0, 0.984807, 0.173652, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 19868, 1, -6221.4, -4334.12, -58.75, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 19868, 1, -6218.67, -3616.03, -58.7499, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 19868, 1, -6213.42, -4299.3, -58.75, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 19868, 1, -6179.37, -4264.89, -58.75, 5.07891, 0, 0, -0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 19868, 1, -6165.32, -4317.76, -58.7499, 5.37562, 0, 0, -0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 19868, 1, -6153.35, -3555.84, -58.7499, 5.61996, 0, 0, -0.325567, 0.945519, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 19868, 1, -6151.79, -3616.54, -58.7499, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 19868, 1, -6151, -4225, -58.75, 2.16421, 0, 0, 0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 19868, 1, -6121.64, -4273.04, -58.75, 2.05949, 0, 0, 0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 19868, 1, -6088.56, -3624.16, -58.7499, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 19868, 1, -6085.44, -4257.02, -58.75, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 19868, 1, -6077.33, -3557.8, -58.75, 0.872664, 0, 0, 0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 19868, 1, -6055.15, -4286.29, -58.75, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 19868, 1, -6024.62, -3615.31, -58.75, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 19868, 1, -6020.15, -4256.3, -58.75, 0.436332, 0, 0, 0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 19868, 1, -5980.43, -3654.72, -58.75, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 19868, 1, -5979.16, -4221.54, -58.7947, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 19868, 1, -5978.75, -3587.31, -58.75, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 19868, 1, -5956.97, -4255.75, -58.75, 2.28638, 0, 0, 0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 19868, 1, -5953.83, -4313.34, -58.75, 0.994837, 0, 0, 0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 19868, 1, -5926.45, -4275.83, -58.75, 4.7473, 0, 0, -0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 19868, 1, -5920.24, -3585.75, -58.75, 0.0698117, 0, 0, 0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 19868, 1, -5910.95, -3523.16, -58.7422, 5.3058, 0, 0, -0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 19868, 1, -5890.01, -4314.93, -58.75, 4.90438, 0, 0, -0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 19868, 1, -5878.87, -4259.38, -58.75, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 19868, 1, -5863.7, -4240.98, -58.75, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 19868, 1, -5861.5, -4082.2, -58.75, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 19868, 1, -5857.97, -3578.88, -58.75, 4.13643, 0, 0, -0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 19868, 1, -5853.08, -3517.4, -58.5231, 4.5204, 0, 0, -0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 19868, 1, -5834.83, -3694.4, -58.75, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 19868, 1, -5825.84, -4244.03, -58.75, 5.07891, 0, 0, -0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 19868, 1, -5819.38, -3514.21, -58.357, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 19868, 1, -5809.63, -4291.42, -58.75, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 19868, 1, -5807.53, -3616.33, -59.8394, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 19868, 1, -5797.98, -4205.42, -61.004, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 19868, 1, -5782.94, -3520.04, -58.5792, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 19868, 1, -5770.62, -4201.37, -60.1041, 3.82227, 0, 0, -0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 19868, 1, -5761.22, -3496.09, -57.7949, 0.383971, 0, 0, 0.190808, 0.981627, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 19868, 1, -5761.04, -3687.94, -58.75, 4.15388, 0, 0, -0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 19868, 1, -5750.76, -4248.65, -58.75, 0.471238, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 19868, 1, -5750.73, -4303.22, -58.2133, 5.23599, 0, 0, -0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 19868, 1, -5731.72, -3522.13, -58.536, 3.927, 0, 0, -0.923879, 0.382686, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 19868, 1, -5719.12, -3718.8, -58.75, 5.2709, 0, 0, -0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 19868, 1, -5716.72, -3648.16, -58.75, 1.29154, 0, 0, 0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+73, 19868, 1, -5716.12, -4215.74, -58.7391, 5.25344, 0, 0, -0.492423, 0.870356, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+74, 19868, 1, -5701.28, -3539.57, -59.8559, 0.925024, 0, 0, 0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+75, 19868, 1, -5700.76, -3933.39, -60.1479, 5.42797, 0, 0, -0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+76, 19868, 1, -5695.18, -3507.52, -58.0676, 2.23402, 0, 0, 0.898793, 0.438373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+77, 19868, 1, -5680.74, -4249.23, -58.7125, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+78, 19868, 1, -5680.68, -4183.57, -58.7442, 3.08918, 0, 0, 0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+79, 19868, 1, -5666.72, -3526.66, -58.6655, 0.331611, 0, 0, 0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+80, 19868, 1, -5661.89, -3664.85, -60.384, 4.5204, 0, 0, -0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+81, 19868, 1, -5647.92, -4211.51, -58.75, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+82, 19868, 1, -5642.04, -3523.45, -58.4868, 4.90438, 0, 0, -0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+83, 19868, 1, -5640.92, -3576.67, -58.75, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+84, 19868, 1, -5624.88, -3616, -58.75, 1.93731, 0, 0, 0.824125, 0.566408, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+85, 19868, 1, -5620.04, -3750.41, -58.75, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+86, 19868, 1, -5619.27, -3557.65, -58.75, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+87, 19868, 1, -5617.13, -4047.84, -58.75, 4.81711, 0, 0, -0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+88, 19868, 1, -5617.07, -3981.65, -58.75, 1.91986, 0, 0, 0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+89, 19868, 1, -5616.24, -3920.02, -58.75, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+90, 19868, 1, -5615.87, -4112.12, -58.75, 4.20625, 0, 0, -0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+91, 19868, 1, -5595.53, -3650.55, -58.7498, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+92, 19868, 1, -5589.43, -3711.44, -58.75, 1.95477, 0, 0, 0.829038, 0.559193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+93, 19868, 1, -5586.72, -3776.49, -58.75, 1.51844, 0, 0, 0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+94, 19868, 1, -5585.6, -3944.59, -58.75, 3.33359, 0, 0, -0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+95, 19868, 1, -5585.29, -4077.77, -58.75, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+96, 19868, 1, -5584.51, -3880.64, -58.75, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+97, 19868, 1, -5554.58, -3983.38, -58.75, 2.68781, 0, 0, 0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+98, 19868, 1, -5552.85, -3912.84, -58.75, 6.19592, 0, 0, -0.0436192, 0.999048, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+99, 19868, 1, -5552.72, -3845.19, -58.75, 4.27606, 0, 0, -0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+100, 19868, 1, -5548.86, -3750.82, -58.75, 4.01426, 0, 0, -0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+101, 19868, 1, -5524.14, -3818.48, -58.75, 5.79449, 0, 0, -0.241921, 0.970296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+102, 19868, 1, -5519.01, -3879.54, -58.75, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+103, 19868, 1, -5484.85, -3850.43, -58.75, 6.23083, 0, 0, -0.0261765, 0.999657, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+104, 19868, 1, -5917.3, -4343.04, -58.7499, 2.37365, 0, 0, 0.927184, 0.374607, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+105, 19869, 1, -6621.1, -3842.26, -58.7496, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+106, 19869, 1, -6609.77, -4053.91, -49.7022, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+107, 19869, 1, -6605.92, -3882.93, -58.5154, 3.00195, 0, 0, 0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+108, 19869, 1, -6592.22, -3791.08, -58.7499, 0.680677, 0, 0, 0.333806, 0.942642, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+109, 19869, 1, -6581.3, -3983.66, -58.7496, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+110, 19869, 1, -6549.04, -3952.73, -58.75, 0.523598, 0, 0, 0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+111, 19869, 1, -6546.79, -4078.38, -58.7282, 2.93214, 0, 0, 0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+112, 19869, 1, -6528.55, -4037.68, -58.75, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+113, 19869, 1, -6517.26, -3784.58, -58.7499, 4.27606, 0, 0, -0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+114, 19869, 1, -6508.61, -4118.54, -58.643, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+115, 19869, 1, -6508.21, -3924.26, -58.75, 3.33359, 0, 0, -0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+116, 19869, 1, -6504.16, -3836.44, -58.7499, 1.20428, 0, 0, 0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+117, 19869, 1, -6496.94, -4018.07, -58.75, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+118, 19869, 1, -6473.56, -4074.88, -58.7484, 4.25861, 0, 0, -0.848047, 0.529921, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+119, 19869, 1, -6472, -3925.88, -58.75, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+120, 19869, 1, -6471.51, -3863.75, -58.7499, 3.75246, 0, 0, -0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+121, 19869, 1, -6466.63, -3812.62, -58.7499, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+122, 19869, 1, -6436.92, -3811.53, -58.75, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+123, 19869, 1, -6435.11, -3856.64, -58.7501, 5.02655, 0, 0, -0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+124, 19869, 1, -6343.72, -4323.64, -57.9108, 5.35816, 0, 0, -0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+125, 19869, 1, -6335.95, -3624.94, -58.7499, 5.53269, 0, 0, -0.366501, 0.930418, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+126, 19869, 1, -6315.38, -3584.66, -58.7499, 0.733038, 0, 0, 0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+127, 19869, 1, -6309.95, -4305.28, -58.75, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+128, 19869, 1, -6287.19, -3548.27, -58.7499, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+129, 19869, 1, -6266.4, -3509.89, -58.6511, 0.628317, 0, 0, 0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+130, 19869, 1, -6258, -3585.24, -58.75, 1.83259, 0, 0, 0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+131, 19869, 1, -6256.65, -4294.49, -58.75, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+132, 19869, 1, -6224.45, -3541.54, -58.75, 2.79252, 0, 0, 0.984807, 0.173652, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+133, 19869, 1, -6221.4, -4334.12, -58.75, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+134, 19869, 1, -6218.67, -3616.03, -58.7499, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+135, 19869, 1, -6213.42, -4299.3, -58.75, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+136, 19869, 1, -6179.37, -4264.89, -58.75, 5.07891, 0, 0, -0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+137, 19869, 1, -6165.32, -4317.76, -58.7499, 5.37562, 0, 0, -0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+138, 19869, 1, -6153.35, -3555.84, -58.7499, 5.61996, 0, 0, -0.325567, 0.945519, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+139, 19869, 1, -6151.79, -3616.54, -58.7499, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+140, 19869, 1, -6151, -4225, -58.75, 2.16421, 0, 0, 0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+141, 19869, 1, -6121.64, -4273.04, -58.75, 2.05949, 0, 0, 0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+142, 19869, 1, -6088.56, -3624.16, -58.7499, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+143, 19869, 1, -6085.44, -4257.02, -58.75, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+144, 19869, 1, -6077.33, -3557.8, -58.75, 0.872664, 0, 0, 0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+145, 19869, 1, -6055.15, -4286.29, -58.75, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+146, 19869, 1, -6024.62, -3615.31, -58.75, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+147, 19869, 1, -6020.15, -4256.3, -58.75, 0.436332, 0, 0, 0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+148, 19869, 1, -5980.43, -3654.72, -58.75, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+149, 19869, 1, -5979.16, -4221.54, -58.7947, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+150, 19869, 1, -5978.75, -3587.31, -58.75, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+151, 19869, 1, -5956.97, -4255.75, -58.75, 2.28638, 0, 0, 0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+152, 19869, 1, -5953.83, -4313.34, -58.75, 0.994837, 0, 0, 0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+153, 19869, 1, -5926.45, -4275.83, -58.75, 4.7473, 0, 0, -0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+154, 19869, 1, -5920.24, -3585.75, -58.75, 0.0698117, 0, 0, 0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+155, 19869, 1, -5910.95, -3523.16, -58.7422, 5.3058, 0, 0, -0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+156, 19869, 1, -5890.01, -4314.93, -58.75, 4.90438, 0, 0, -0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+157, 19869, 1, -5878.87, -4259.38, -58.75, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+158, 19869, 1, -5863.7, -4240.98, -58.75, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+159, 19869, 1, -5861.5, -4082.2, -58.75, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+160, 19869, 1, -5857.97, -3578.88, -58.75, 4.13643, 0, 0, -0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+161, 19869, 1, -5853.08, -3517.4, -58.5231, 4.5204, 0, 0, -0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+162, 19869, 1, -5834.83, -3694.4, -58.75, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+163, 19869, 1, -5825.84, -4244.03, -58.75, 5.07891, 0, 0, -0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+164, 19869, 1, -5819.38, -3514.21, -58.357, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+165, 19869, 1, -5809.63, -4291.42, -58.75, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+166, 19869, 1, -5807.53, -3616.33, -59.8394, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+167, 19869, 1, -5797.98, -4205.42, -61.004, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+168, 19869, 1, -5782.94, -3520.04, -58.5792, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+169, 19869, 1, -5770.62, -4201.37, -60.1041, 3.82227, 0, 0, -0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+170, 19869, 1, -5761.22, -3496.09, -57.7949, 0.383971, 0, 0, 0.190808, 0.981627, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+171, 19869, 1, -5761.04, -3687.94, -58.75, 4.15388, 0, 0, -0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+172, 19869, 1, -5750.76, -4248.65, -58.75, 0.471238, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+173, 19869, 1, -5750.73, -4303.22, -58.2133, 5.23599, 0, 0, -0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+174, 19869, 1, -5731.72, -3522.13, -58.536, 3.927, 0, 0, -0.923879, 0.382686, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+175, 19869, 1, -5719.12, -3718.8, -58.75, 5.2709, 0, 0, -0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+176, 19869, 1, -5716.72, -3648.16, -58.75, 1.29154, 0, 0, 0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+177, 19869, 1, -5716.12, -4215.74, -58.7391, 5.25344, 0, 0, -0.492423, 0.870356, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+178, 19869, 1, -5701.28, -3539.57, -59.8559, 0.925024, 0, 0, 0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+179, 19869, 1, -5700.76, -3933.39, -60.1479, 5.42797, 0, 0, -0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+180, 19869, 1, -5695.18, -3507.52, -58.0676, 2.23402, 0, 0, 0.898793, 0.438373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+181, 19869, 1, -5680.74, -4249.23, -58.7125, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+182, 19869, 1, -5680.68, -4183.57, -58.7442, 3.08918, 0, 0, 0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+183, 19869, 1, -5666.72, -3526.66, -58.6655, 0.331611, 0, 0, 0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+184, 19869, 1, -5661.89, -3664.85, -60.384, 4.5204, 0, 0, -0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+185, 19869, 1, -5647.92, -4211.51, -58.75, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+186, 19869, 1, -5642.04, -3523.45, -58.4868, 4.90438, 0, 0, -0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+187, 19869, 1, -5640.92, -3576.67, -58.75, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+188, 19869, 1, -5624.88, -3616, -58.75, 1.93731, 0, 0, 0.824125, 0.566408, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+189, 19869, 1, -5620.04, -3750.41, -58.75, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+190, 19869, 1, -5619.27, -3557.65, -58.75, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+191, 19869, 1, -5617.13, -4047.84, -58.75, 4.81711, 0, 0, -0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+192, 19869, 1, -5617.07, -3981.65, -58.75, 1.91986, 0, 0, 0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+193, 19869, 1, -5616.24, -3920.02, -58.75, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+194, 19869, 1, -5615.87, -4112.12, -58.75, 4.20625, 0, 0, -0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+195, 19869, 1, -5595.53, -3650.55, -58.7498, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+196, 19869, 1, -5589.43, -3711.44, -58.75, 1.95477, 0, 0, 0.829038, 0.559193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+197, 19869, 1, -5586.72, -3776.49, -58.75, 1.51844, 0, 0, 0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+198, 19869, 1, -5585.6, -3944.59, -58.75, 3.33359, 0, 0, -0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+199, 19869, 1, -5585.29, -4077.77, -58.75, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+200, 19869, 1, -5584.51, -3880.64, -58.75, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+201, 19869, 1, -5554.58, -3983.38, -58.75, 2.68781, 0, 0, 0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+202, 19869, 1, -5552.85, -3912.84, -58.75, 6.19592, 0, 0, -0.0436192, 0.999048, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+203, 19869, 1, -5552.72, -3845.19, -58.75, 4.27606, 0, 0, -0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+204, 19869, 1, -5548.86, -3750.82, -58.75, 4.01426, 0, 0, -0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+205, 19869, 1, -5524.14, -3818.48, -58.75, 5.79449, 0, 0, -0.241921, 0.970296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+206, 19869, 1, -5519.01, -3879.54, -58.75, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+207, 19869, 1, -5484.85, -3850.43, -58.75, 6.23083, 0, 0, -0.0261765, 0.999657, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+208, 19869, 1, -5917.3, -4343.04, -58.7499, 2.37365, 0, 0, 0.927184, 0.374607, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+209, 19870, 1, -6621.1, -3842.26, -58.7496, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+210, 19870, 1, -6609.77, -4053.91, -49.7022, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+211, 19870, 1, -6605.92, -3882.93, -58.5154, 3.00195, 0, 0, 0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+212, 19870, 1, -6592.22, -3791.08, -58.7499, 0.680677, 0, 0, 0.333806, 0.942642, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+213, 19870, 1, -6581.3, -3983.66, -58.7496, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+214, 19870, 1, -6549.04, -3952.73, -58.75, 0.523598, 0, 0, 0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+215, 19870, 1, -6546.79, -4078.38, -58.7282, 2.93214, 0, 0, 0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+216, 19870, 1, -6528.55, -4037.68, -58.75, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+217, 19870, 1, -6517.26, -3784.58, -58.7499, 4.27606, 0, 0, -0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+218, 19870, 1, -6508.61, -4118.54, -58.643, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+219, 19870, 1, -6508.21, -3924.26, -58.75, 3.33359, 0, 0, -0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+220, 19870, 1, -6504.16, -3836.44, -58.7499, 1.20428, 0, 0, 0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+221, 19870, 1, -6496.94, -4018.07, -58.75, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+222, 19870, 1, -6473.56, -4074.88, -58.7484, 4.25861, 0, 0, -0.848047, 0.529921, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+223, 19870, 1, -6472, -3925.88, -58.75, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+224, 19870, 1, -6471.51, -3863.75, -58.7499, 3.75246, 0, 0, -0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+225, 19870, 1, -6466.63, -3812.62, -58.7499, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+226, 19870, 1, -6436.92, -3811.53, -58.75, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+227, 19870, 1, -6435.11, -3856.64, -58.7501, 5.02655, 0, 0, -0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+228, 19870, 1, -6343.72, -4323.64, -57.9108, 5.35816, 0, 0, -0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+229, 19870, 1, -6335.95, -3624.94, -58.7499, 5.53269, 0, 0, -0.366501, 0.930418, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+230, 19870, 1, -6315.38, -3584.66, -58.7499, 0.733038, 0, 0, 0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+231, 19870, 1, -6309.95, -4305.28, -58.75, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+232, 19870, 1, -6287.19, -3548.27, -58.7499, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+233, 19870, 1, -6266.4, -3509.89, -58.6511, 0.628317, 0, 0, 0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+234, 19870, 1, -6258, -3585.24, -58.75, 1.83259, 0, 0, 0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+235, 19870, 1, -6256.65, -4294.49, -58.75, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+236, 19870, 1, -6224.45, -3541.54, -58.75, 2.79252, 0, 0, 0.984807, 0.173652, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+237, 19870, 1, -6221.4, -4334.12, -58.75, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+238, 19870, 1, -6218.67, -3616.03, -58.7499, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+239, 19870, 1, -6213.42, -4299.3, -58.75, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+240, 19870, 1, -6179.37, -4264.89, -58.75, 5.07891, 0, 0, -0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+241, 19870, 1, -6165.32, -4317.76, -58.7499, 5.37562, 0, 0, -0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+242, 19870, 1, -6153.35, -3555.84, -58.7499, 5.61996, 0, 0, -0.325567, 0.945519, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+243, 19870, 1, -6151.79, -3616.54, -58.7499, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+244, 19870, 1, -6151, -4225, -58.75, 2.16421, 0, 0, 0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+245, 19870, 1, -6121.64, -4273.04, -58.75, 2.05949, 0, 0, 0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+246, 19870, 1, -6088.56, -3624.16, -58.7499, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+247, 19870, 1, -6085.44, -4257.02, -58.75, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+248, 19870, 1, -6077.33, -3557.8, -58.75, 0.872664, 0, 0, 0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+249, 19870, 1, -6055.15, -4286.29, -58.75, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+250, 19870, 1, -6024.62, -3615.31, -58.75, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+251, 19870, 1, -6020.15, -4256.3, -58.75, 0.436332, 0, 0, 0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+252, 19870, 1, -5980.43, -3654.72, -58.75, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+253, 19870, 1, -5979.16, -4221.54, -58.7947, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+254, 19870, 1, -5978.75, -3587.31, -58.75, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+255, 19870, 1, -5956.97, -4255.75, -58.75, 2.28638, 0, 0, 0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+256, 19870, 1, -5953.83, -4313.34, -58.75, 0.994837, 0, 0, 0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+257, 19870, 1, -5926.45, -4275.83, -58.75, 4.7473, 0, 0, -0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+258, 19870, 1, -5920.24, -3585.75, -58.75, 0.0698117, 0, 0, 0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+259, 19870, 1, -5910.95, -3523.16, -58.7422, 5.3058, 0, 0, -0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+260, 19870, 1, -5890.01, -4314.93, -58.75, 4.90438, 0, 0, -0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+261, 19870, 1, -5878.87, -4259.38, -58.75, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+262, 19870, 1, -5863.7, -4240.98, -58.75, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+263, 19870, 1, -5861.5, -4082.2, -58.75, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+264, 19870, 1, -5857.97, -3578.88, -58.75, 4.13643, 0, 0, -0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+265, 19870, 1, -5853.08, -3517.4, -58.5231, 4.5204, 0, 0, -0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+266, 19870, 1, -5834.83, -3694.4, -58.75, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+267, 19870, 1, -5825.84, -4244.03, -58.75, 5.07891, 0, 0, -0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+268, 19870, 1, -5819.38, -3514.21, -58.357, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+269, 19870, 1, -5809.63, -4291.42, -58.75, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+270, 19870, 1, -5807.53, -3616.33, -59.8394, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+271, 19870, 1, -5797.98, -4205.42, -61.004, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+272, 19870, 1, -5782.94, -3520.04, -58.5792, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+273, 19870, 1, -5770.62, -4201.37, -60.1041, 3.82227, 0, 0, -0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+274, 19870, 1, -5761.22, -3496.09, -57.7949, 0.383971, 0, 0, 0.190808, 0.981627, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+275, 19870, 1, -5761.04, -3687.94, -58.75, 4.15388, 0, 0, -0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+276, 19870, 1, -5750.76, -4248.65, -58.75, 0.471238, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+277, 19870, 1, -5750.73, -4303.22, -58.2133, 5.23599, 0, 0, -0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+278, 19870, 1, -5731.72, -3522.13, -58.536, 3.927, 0, 0, -0.923879, 0.382686, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+279, 19870, 1, -5719.12, -3718.8, -58.75, 5.2709, 0, 0, -0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+280, 19870, 1, -5716.72, -3648.16, -58.75, 1.29154, 0, 0, 0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+281, 19870, 1, -5716.12, -4215.74, -58.7391, 5.25344, 0, 0, -0.492423, 0.870356, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+282, 19870, 1, -5701.28, -3539.57, -59.8559, 0.925024, 0, 0, 0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+283, 19870, 1, -5700.76, -3933.39, -60.1479, 5.42797, 0, 0, -0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+284, 19870, 1, -5695.18, -3507.52, -58.0676, 2.23402, 0, 0, 0.898793, 0.438373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+285, 19870, 1, -5680.74, -4249.23, -58.7125, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+286, 19870, 1, -5680.68, -4183.57, -58.7442, 3.08918, 0, 0, 0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+287, 19870, 1, -5666.72, -3526.66, -58.6655, 0.331611, 0, 0, 0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+288, 19870, 1, -5661.89, -3664.85, -60.384, 4.5204, 0, 0, -0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+289, 19870, 1, -5647.92, -4211.51, -58.75, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+290, 19870, 1, -5642.04, -3523.45, -58.4868, 4.90438, 0, 0, -0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+291, 19870, 1, -5640.92, -3576.67, -58.75, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+292, 19870, 1, -5624.88, -3616, -58.75, 1.93731, 0, 0, 0.824125, 0.566408, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+293, 19870, 1, -5620.04, -3750.41, -58.75, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+294, 19870, 1, -5619.27, -3557.65, -58.75, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+295, 19870, 1, -5617.13, -4047.84, -58.75, 4.81711, 0, 0, -0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+296, 19870, 1, -5617.07, -3981.65, -58.75, 1.91986, 0, 0, 0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+297, 19870, 1, -5616.24, -3920.02, -58.75, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+298, 19870, 1, -5615.87, -4112.12, -58.75, 4.20625, 0, 0, -0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+299, 19870, 1, -5595.53, -3650.55, -58.7498, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+300, 19870, 1, -5589.43, -3711.44, -58.75, 1.95477, 0, 0, 0.829038, 0.559193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+301, 19870, 1, -5586.72, -3776.49, -58.75, 1.51844, 0, 0, 0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+302, 19870, 1, -5585.6, -3944.59, -58.75, 3.33359, 0, 0, -0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+303, 19870, 1, -5585.29, -4077.77, -58.75, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+304, 19870, 1, -5584.51, -3880.64, -58.75, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+305, 19870, 1, -5554.58, -3983.38, -58.75, 2.68781, 0, 0, 0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+306, 19870, 1, -5552.85, -3912.84, -58.75, 6.19592, 0, 0, -0.0436192, 0.999048, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+307, 19870, 1, -5552.72, -3845.19, -58.75, 4.27606, 0, 0, -0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+308, 19870, 1, -5548.86, -3750.82, -58.75, 4.01426, 0, 0, -0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+309, 19870, 1, -5524.14, -3818.48, -58.75, 5.79449, 0, 0, -0.241921, 0.970296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+310, 19870, 1, -5519.01, -3879.54, -58.75, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+311, 19870, 1, -5484.85, -3850.43, -58.75, 6.23083, 0, 0, -0.0261765, 0.999657, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+312, 19870, 1, -5917.3, -4343.04, -58.7499, 2.37365, 0, 0, 0.927184, 0.374607, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+313, 19871, 1, -6621.1, -3842.26, -58.7496, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+314, 19871, 1, -6609.77, -4053.91, -49.7022, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+315, 19871, 1, -6605.92, -3882.93, -58.5154, 3.00195, 0, 0, 0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+316, 19871, 1, -6592.22, -3791.08, -58.7499, 0.680677, 0, 0, 0.333806, 0.942642, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+317, 19871, 1, -6581.3, -3983.66, -58.7496, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+318, 19871, 1, -6549.04, -3952.73, -58.75, 0.523598, 0, 0, 0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+319, 19871, 1, -6546.79, -4078.38, -58.7282, 2.93214, 0, 0, 0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+320, 19871, 1, -6528.55, -4037.68, -58.75, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+321, 19871, 1, -6517.26, -3784.58, -58.7499, 4.27606, 0, 0, -0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+322, 19871, 1, -6508.61, -4118.54, -58.643, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+323, 19871, 1, -6508.21, -3924.26, -58.75, 3.33359, 0, 0, -0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+324, 19871, 1, -6504.16, -3836.44, -58.7499, 1.20428, 0, 0, 0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+325, 19871, 1, -6496.94, -4018.07, -58.75, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+326, 19871, 1, -6473.56, -4074.88, -58.7484, 4.25861, 0, 0, -0.848047, 0.529921, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+327, 19871, 1, -6472, -3925.88, -58.75, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+328, 19871, 1, -6471.51, -3863.75, -58.7499, 3.75246, 0, 0, -0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+329, 19871, 1, -6466.63, -3812.62, -58.7499, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+330, 19871, 1, -6436.92, -3811.53, -58.75, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+331, 19871, 1, -6435.11, -3856.64, -58.7501, 5.02655, 0, 0, -0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+332, 19871, 1, -6343.72, -4323.64, -57.9108, 5.35816, 0, 0, -0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+333, 19871, 1, -6335.95, -3624.94, -58.7499, 5.53269, 0, 0, -0.366501, 0.930418, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+334, 19871, 1, -6315.38, -3584.66, -58.7499, 0.733038, 0, 0, 0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+335, 19871, 1, -6309.95, -4305.28, -58.75, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+336, 19871, 1, -6287.19, -3548.27, -58.7499, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+337, 19871, 1, -6266.4, -3509.89, -58.6511, 0.628317, 0, 0, 0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+338, 19871, 1, -6258, -3585.24, -58.75, 1.83259, 0, 0, 0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+339, 19871, 1, -6256.65, -4294.49, -58.75, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+340, 19871, 1, -6224.45, -3541.54, -58.75, 2.79252, 0, 0, 0.984807, 0.173652, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+341, 19871, 1, -6221.4, -4334.12, -58.75, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+342, 19871, 1, -6218.67, -3616.03, -58.7499, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+343, 19871, 1, -6213.42, -4299.3, -58.75, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+344, 19871, 1, -6179.37, -4264.89, -58.75, 5.07891, 0, 0, -0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+345, 19871, 1, -6165.32, -4317.76, -58.7499, 5.37562, 0, 0, -0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+346, 19871, 1, -6153.35, -3555.84, -58.7499, 5.61996, 0, 0, -0.325567, 0.945519, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+347, 19871, 1, -6151.79, -3616.54, -58.7499, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+348, 19871, 1, -6151, -4225, -58.75, 2.16421, 0, 0, 0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+349, 19871, 1, -6121.64, -4273.04, -58.75, 2.05949, 0, 0, 0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+350, 19871, 1, -6088.56, -3624.16, -58.7499, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+351, 19871, 1, -6085.44, -4257.02, -58.75, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+352, 19871, 1, -6077.33, -3557.8, -58.75, 0.872664, 0, 0, 0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+353, 19871, 1, -6055.15, -4286.29, -58.75, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+354, 19871, 1, -6024.62, -3615.31, -58.75, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+355, 19871, 1, -6020.15, -4256.3, -58.75, 0.436332, 0, 0, 0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+356, 19871, 1, -5980.43, -3654.72, -58.75, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+357, 19871, 1, -5979.16, -4221.54, -58.7947, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+358, 19871, 1, -5978.75, -3587.31, -58.75, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+359, 19871, 1, -5956.97, -4255.75, -58.75, 2.28638, 0, 0, 0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+360, 19871, 1, -5953.83, -4313.34, -58.75, 0.994837, 0, 0, 0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+361, 19871, 1, -5926.45, -4275.83, -58.75, 4.7473, 0, 0, -0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+362, 19871, 1, -5920.24, -3585.75, -58.75, 0.0698117, 0, 0, 0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+363, 19871, 1, -5910.95, -3523.16, -58.7422, 5.3058, 0, 0, -0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+364, 19871, 1, -5890.01, -4314.93, -58.75, 4.90438, 0, 0, -0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+365, 19871, 1, -5878.87, -4259.38, -58.75, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+366, 19871, 1, -5863.7, -4240.98, -58.75, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+367, 19871, 1, -5861.5, -4082.2, -58.75, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+368, 19871, 1, -5857.97, -3578.88, -58.75, 4.13643, 0, 0, -0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+369, 19871, 1, -5853.08, -3517.4, -58.5231, 4.5204, 0, 0, -0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+370, 19871, 1, -5834.83, -3694.4, -58.75, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+371, 19871, 1, -5825.84, -4244.03, -58.75, 5.07891, 0, 0, -0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+372, 19871, 1, -5819.38, -3514.21, -58.357, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+373, 19871, 1, -5809.63, -4291.42, -58.75, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+374, 19871, 1, -5807.53, -3616.33, -59.8394, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+375, 19871, 1, -5797.98, -4205.42, -61.004, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+376, 19871, 1, -5782.94, -3520.04, -58.5792, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+377, 19871, 1, -5770.62, -4201.37, -60.1041, 3.82227, 0, 0, -0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+378, 19871, 1, -5761.22, -3496.09, -57.7949, 0.383971, 0, 0, 0.190808, 0.981627, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+379, 19871, 1, -5761.04, -3687.94, -58.75, 4.15388, 0, 0, -0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+380, 19871, 1, -5750.76, -4248.65, -58.75, 0.471238, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+381, 19871, 1, -5750.73, -4303.22, -58.2133, 5.23599, 0, 0, -0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+382, 19871, 1, -5731.72, -3522.13, -58.536, 3.927, 0, 0, -0.923879, 0.382686, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+383, 19871, 1, -5719.12, -3718.8, -58.75, 5.2709, 0, 0, -0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+384, 19871, 1, -5716.72, -3648.16, -58.75, 1.29154, 0, 0, 0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+385, 19871, 1, -5716.12, -4215.74, -58.7391, 5.25344, 0, 0, -0.492423, 0.870356, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+386, 19871, 1, -5701.28, -3539.57, -59.8559, 0.925024, 0, 0, 0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+387, 19871, 1, -5700.76, -3933.39, -60.1479, 5.42797, 0, 0, -0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+388, 19871, 1, -5695.18, -3507.52, -58.0676, 2.23402, 0, 0, 0.898793, 0.438373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+389, 19871, 1, -5680.74, -4249.23, -58.7125, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+390, 19871, 1, -5680.68, -4183.57, -58.7442, 3.08918, 0, 0, 0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+391, 19871, 1, -5666.72, -3526.66, -58.6655, 0.331611, 0, 0, 0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+392, 19871, 1, -5661.89, -3664.85, -60.384, 4.5204, 0, 0, -0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+393, 19871, 1, -5647.92, -4211.51, -58.75, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+394, 19871, 1, -5642.04, -3523.45, -58.4868, 4.90438, 0, 0, -0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+395, 19871, 1, -5640.92, -3576.67, -58.75, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+396, 19871, 1, -5624.88, -3616, -58.75, 1.93731, 0, 0, 0.824125, 0.566408, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+397, 19871, 1, -5620.04, -3750.41, -58.75, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+398, 19871, 1, -5619.27, -3557.65, -58.75, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+399, 19871, 1, -5617.13, -4047.84, -58.75, 4.81711, 0, 0, -0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+400, 19871, 1, -5617.07, -3981.65, -58.75, 1.91986, 0, 0, 0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+401, 19871, 1, -5616.24, -3920.02, -58.75, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+402, 19871, 1, -5615.87, -4112.12, -58.75, 4.20625, 0, 0, -0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+403, 19871, 1, -5595.53, -3650.55, -58.7498, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+404, 19871, 1, -5589.43, -3711.44, -58.75, 1.95477, 0, 0, 0.829038, 0.559193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+405, 19871, 1, -5586.72, -3776.49, -58.75, 1.51844, 0, 0, 0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+406, 19871, 1, -5585.6, -3944.59, -58.75, 3.33359, 0, 0, -0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+407, 19871, 1, -5585.29, -4077.77, -58.75, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+408, 19871, 1, -5584.51, -3880.64, -58.75, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+409, 19871, 1, -5554.58, -3983.38, -58.75, 2.68781, 0, 0, 0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+410, 19871, 1, -5552.85, -3912.84, -58.75, 6.19592, 0, 0, -0.0436192, 0.999048, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+411, 19871, 1, -5552.72, -3845.19, -58.75, 4.27606, 0, 0, -0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+412, 19871, 1, -5548.86, -3750.82, -58.75, 4.01426, 0, 0, -0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+413, 19871, 1, -5524.14, -3818.48, -58.75, 5.79449, 0, 0, -0.241921, 0.970296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+414, 19871, 1, -5519.01, -3879.54, -58.75, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+415, 19871, 1, -5484.85, -3850.43, -58.75, 6.23083, 0, 0, -0.0261765, 0.999657, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+416, 19871, 1, -5917.3, -4343.04, -58.7499, 2.37365, 0, 0, 0.927184, 0.374607, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+417, 19872, 1, -6621.1, -3842.26, -58.7496, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+418, 19872, 1, -6609.77, -4053.91, -49.7022, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+419, 19872, 1, -6605.92, -3882.93, -58.5154, 3.00195, 0, 0, 0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+420, 19872, 1, -6592.22, -3791.08, -58.7499, 0.680677, 0, 0, 0.333806, 0.942642, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+421, 19872, 1, -6581.3, -3983.66, -58.7496, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+422, 19872, 1, -6549.04, -3952.73, -58.75, 0.523598, 0, 0, 0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+423, 19872, 1, -6546.79, -4078.38, -58.7282, 2.93214, 0, 0, 0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+424, 19872, 1, -6528.55, -4037.68, -58.75, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+425, 19872, 1, -6517.26, -3784.58, -58.7499, 4.27606, 0, 0, -0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+426, 19872, 1, -6508.61, -4118.54, -58.643, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+427, 19872, 1, -6508.21, -3924.26, -58.75, 3.33359, 0, 0, -0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+428, 19872, 1, -6504.16, -3836.44, -58.7499, 1.20428, 0, 0, 0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+429, 19872, 1, -6496.94, -4018.07, -58.75, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+430, 19872, 1, -6473.56, -4074.88, -58.7484, 4.25861, 0, 0, -0.848047, 0.529921, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+431, 19872, 1, -6472, -3925.88, -58.75, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+432, 19872, 1, -6471.51, -3863.75, -58.7499, 3.75246, 0, 0, -0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+433, 19872, 1, -6466.63, -3812.62, -58.7499, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+434, 19872, 1, -6436.92, -3811.53, -58.75, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+435, 19872, 1, -6435.11, -3856.64, -58.7501, 5.02655, 0, 0, -0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+436, 19872, 1, -6343.72, -4323.64, -57.9108, 5.35816, 0, 0, -0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+437, 19872, 1, -6335.95, -3624.94, -58.7499, 5.53269, 0, 0, -0.366501, 0.930418, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+438, 19872, 1, -6315.38, -3584.66, -58.7499, 0.733038, 0, 0, 0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+439, 19872, 1, -6309.95, -4305.28, -58.75, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+440, 19872, 1, -6287.19, -3548.27, -58.7499, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+441, 19872, 1, -6266.4, -3509.89, -58.6511, 0.628317, 0, 0, 0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+442, 19872, 1, -6258, -3585.24, -58.75, 1.83259, 0, 0, 0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+443, 19872, 1, -6256.65, -4294.49, -58.75, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+444, 19872, 1, -6224.45, -3541.54, -58.75, 2.79252, 0, 0, 0.984807, 0.173652, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+445, 19872, 1, -6221.4, -4334.12, -58.75, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+446, 19872, 1, -6218.67, -3616.03, -58.7499, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+447, 19872, 1, -6213.42, -4299.3, -58.75, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+448, 19872, 1, -6179.37, -4264.89, -58.75, 5.07891, 0, 0, -0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+449, 19872, 1, -6165.32, -4317.76, -58.7499, 5.37562, 0, 0, -0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+450, 19872, 1, -6153.35, -3555.84, -58.7499, 5.61996, 0, 0, -0.325567, 0.945519, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+451, 19872, 1, -6151.79, -3616.54, -58.7499, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+452, 19872, 1, -6151, -4225, -58.75, 2.16421, 0, 0, 0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+453, 19872, 1, -6121.64, -4273.04, -58.75, 2.05949, 0, 0, 0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+454, 19872, 1, -6088.56, -3624.16, -58.7499, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+455, 19872, 1, -6085.44, -4257.02, -58.75, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+456, 19872, 1, -6077.33, -3557.8, -58.75, 0.872664, 0, 0, 0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+457, 19872, 1, -6055.15, -4286.29, -58.75, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+458, 19872, 1, -6024.62, -3615.31, -58.75, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+459, 19872, 1, -6020.15, -4256.3, -58.75, 0.436332, 0, 0, 0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+460, 19872, 1, -5980.43, -3654.72, -58.75, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+461, 19872, 1, -5979.16, -4221.54, -58.7947, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+462, 19872, 1, -5978.75, -3587.31, -58.75, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+463, 19872, 1, -5956.97, -4255.75, -58.75, 2.28638, 0, 0, 0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+464, 19872, 1, -5953.83, -4313.34, -58.75, 0.994837, 0, 0, 0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+465, 19872, 1, -5926.45, -4275.83, -58.75, 4.7473, 0, 0, -0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+466, 19872, 1, -5920.24, -3585.75, -58.75, 0.0698117, 0, 0, 0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+467, 19872, 1, -5910.95, -3523.16, -58.7422, 5.3058, 0, 0, -0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+468, 19872, 1, -5890.01, -4314.93, -58.75, 4.90438, 0, 0, -0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+469, 19872, 1, -5878.87, -4259.38, -58.75, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+470, 19872, 1, -5863.7, -4240.98, -58.75, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+471, 19872, 1, -5861.5, -4082.2, -58.75, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+472, 19872, 1, -5857.97, -3578.88, -58.75, 4.13643, 0, 0, -0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+473, 19872, 1, -5853.08, -3517.4, -58.5231, 4.5204, 0, 0, -0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+474, 19872, 1, -5834.83, -3694.4, -58.75, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+475, 19872, 1, -5825.84, -4244.03, -58.75, 5.07891, 0, 0, -0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+476, 19872, 1, -5819.38, -3514.21, -58.357, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+477, 19872, 1, -5809.63, -4291.42, -58.75, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+478, 19872, 1, -5807.53, -3616.33, -59.8394, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+479, 19872, 1, -5797.98, -4205.42, -61.004, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+480, 19872, 1, -5782.94, -3520.04, -58.5792, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+481, 19872, 1, -5770.62, -4201.37, -60.1041, 3.82227, 0, 0, -0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+482, 19872, 1, -5761.22, -3496.09, -57.7949, 0.383971, 0, 0, 0.190808, 0.981627, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+483, 19872, 1, -5761.04, -3687.94, -58.75, 4.15388, 0, 0, -0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+484, 19872, 1, -5750.76, -4248.65, -58.75, 0.471238, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+485, 19872, 1, -5750.73, -4303.22, -58.2133, 5.23599, 0, 0, -0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+486, 19872, 1, -5731.72, -3522.13, -58.536, 3.927, 0, 0, -0.923879, 0.382686, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+487, 19872, 1, -5719.12, -3718.8, -58.75, 5.2709, 0, 0, -0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+488, 19872, 1, -5716.72, -3648.16, -58.75, 1.29154, 0, 0, 0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+489, 19872, 1, -5716.12, -4215.74, -58.7391, 5.25344, 0, 0, -0.492423, 0.870356, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+490, 19872, 1, -5701.28, -3539.57, -59.8559, 0.925024, 0, 0, 0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+491, 19872, 1, -5700.76, -3933.39, -60.1479, 5.42797, 0, 0, -0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+492, 19872, 1, -5695.18, -3507.52, -58.0676, 2.23402, 0, 0, 0.898793, 0.438373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+493, 19872, 1, -5680.74, -4249.23, -58.7125, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+494, 19872, 1, -5680.68, -4183.57, -58.7442, 3.08918, 0, 0, 0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+495, 19872, 1, -5666.72, -3526.66, -58.6655, 0.331611, 0, 0, 0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+496, 19872, 1, -5661.89, -3664.85, -60.384, 4.5204, 0, 0, -0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+497, 19872, 1, -5647.92, -4211.51, -58.75, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+498, 19872, 1, -5642.04, -3523.45, -58.4868, 4.90438, 0, 0, -0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+499, 19872, 1, -5640.92, -3576.67, -58.75, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+500, 19872, 1, -5624.88, -3616, -58.75, 1.93731, 0, 0, 0.824125, 0.566408, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+501, 19872, 1, -5620.04, -3750.41, -58.75, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+502, 19872, 1, -5619.27, -3557.65, -58.75, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+503, 19872, 1, -5617.13, -4047.84, -58.75, 4.81711, 0, 0, -0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+504, 19872, 1, -5617.07, -3981.65, -58.75, 1.91986, 0, 0, 0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+505, 19872, 1, -5616.24, -3920.02, -58.75, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+506, 19872, 1, -5615.87, -4112.12, -58.75, 4.20625, 0, 0, -0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+507, 19872, 1, -5595.53, -3650.55, -58.7498, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+508, 19872, 1, -5589.43, -3711.44, -58.75, 1.95477, 0, 0, 0.829038, 0.559193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+509, 19872, 1, -5586.72, -3776.49, -58.75, 1.51844, 0, 0, 0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+510, 19872, 1, -5585.6, -3944.59, -58.75, 3.33359, 0, 0, -0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+511, 19872, 1, -5585.29, -4077.77, -58.75, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+512, 19872, 1, -5584.51, -3880.64, -58.75, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+513, 19872, 1, -5554.58, -3983.38, -58.75, 2.68781, 0, 0, 0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+514, 19872, 1, -5552.85, -3912.84, -58.75, 6.19592, 0, 0, -0.0436192, 0.999048, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+515, 19872, 1, -5552.72, -3845.19, -58.75, 4.27606, 0, 0, -0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+516, 19872, 1, -5548.86, -3750.82, -58.75, 4.01426, 0, 0, -0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+517, 19872, 1, -5524.14, -3818.48, -58.75, 5.79449, 0, 0, -0.241921, 0.970296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+518, 19872, 1, -5519.01, -3879.54, -58.75, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+519, 19872, 1, -5484.85, -3850.43, -58.75, 6.23083, 0, 0, -0.0261765, 0.999657, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+520, 19872, 1, -5917.3, -4343.04, -58.7499, 2.37365, 0, 0, 0.927184, 0.374607, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+521, 19873, 1, -6621.1, -3842.26, -58.7496, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+522, 19873, 1, -6609.77, -4053.91, -49.7022, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+523, 19873, 1, -6605.92, -3882.93, -58.5154, 3.00195, 0, 0, 0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+524, 19873, 1, -6592.22, -3791.08, -58.7499, 0.680677, 0, 0, 0.333806, 0.942642, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+525, 19873, 1, -6581.3, -3983.66, -58.7496, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+526, 19873, 1, -6549.04, -3952.73, -58.75, 0.523598, 0, 0, 0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+527, 19873, 1, -6546.79, -4078.38, -58.7282, 2.93214, 0, 0, 0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+528, 19873, 1, -6528.55, -4037.68, -58.75, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+529, 19873, 1, -6517.26, -3784.58, -58.7499, 4.27606, 0, 0, -0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+530, 19873, 1, -6508.61, -4118.54, -58.643, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+531, 19873, 1, -6508.21, -3924.26, -58.75, 3.33359, 0, 0, -0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+532, 19873, 1, -6504.16, -3836.44, -58.7499, 1.20428, 0, 0, 0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+533, 19873, 1, -6496.94, -4018.07, -58.75, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+534, 19873, 1, -6473.56, -4074.88, -58.7484, 4.25861, 0, 0, -0.848047, 0.529921, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+535, 19873, 1, -6472, -3925.88, -58.75, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+536, 19873, 1, -6471.51, -3863.75, -58.7499, 3.75246, 0, 0, -0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+537, 19873, 1, -6466.63, -3812.62, -58.7499, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+538, 19873, 1, -6436.92, -3811.53, -58.75, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+539, 19873, 1, -6435.11, -3856.64, -58.7501, 5.02655, 0, 0, -0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+540, 19873, 1, -6343.72, -4323.64, -57.9108, 5.35816, 0, 0, -0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+541, 19873, 1, -6335.95, -3624.94, -58.7499, 5.53269, 0, 0, -0.366501, 0.930418, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+542, 19873, 1, -6315.38, -3584.66, -58.7499, 0.733038, 0, 0, 0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+543, 19873, 1, -6309.95, -4305.28, -58.75, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+544, 19873, 1, -6287.19, -3548.27, -58.7499, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+545, 19873, 1, -6266.4, -3509.89, -58.6511, 0.628317, 0, 0, 0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+546, 19873, 1, -6258, -3585.24, -58.75, 1.83259, 0, 0, 0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+547, 19873, 1, -6256.65, -4294.49, -58.75, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+548, 19873, 1, -6224.45, -3541.54, -58.75, 2.79252, 0, 0, 0.984807, 0.173652, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+549, 19873, 1, -6221.4, -4334.12, -58.75, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+550, 19873, 1, -6218.67, -3616.03, -58.7499, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+551, 19873, 1, -6213.42, -4299.3, -58.75, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+552, 19873, 1, -6179.37, -4264.89, -58.75, 5.07891, 0, 0, -0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+553, 19873, 1, -6165.32, -4317.76, -58.7499, 5.37562, 0, 0, -0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+554, 19873, 1, -6153.35, -3555.84, -58.7499, 5.61996, 0, 0, -0.325567, 0.945519, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+555, 19873, 1, -6151.79, -3616.54, -58.7499, 2.63544, 0, 0, 0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+556, 19873, 1, -6151, -4225, -58.75, 2.16421, 0, 0, 0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+557, 19873, 1, -6121.64, -4273.04, -58.75, 2.05949, 0, 0, 0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+558, 19873, 1, -6088.56, -3624.16, -58.7499, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+559, 19873, 1, -6085.44, -4257.02, -58.75, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+560, 19873, 1, -6077.33, -3557.8, -58.75, 0.872664, 0, 0, 0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+561, 19873, 1, -6055.15, -4286.29, -58.75, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+562, 19873, 1, -6024.62, -3615.31, -58.75, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+563, 19873, 1, -6020.15, -4256.3, -58.75, 0.436332, 0, 0, 0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+564, 19873, 1, -5980.43, -3654.72, -58.75, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+565, 19873, 1, -5979.16, -4221.54, -58.7947, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+566, 19873, 1, -5978.75, -3587.31, -58.75, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+567, 19873, 1, -5956.97, -4255.75, -58.75, 2.28638, 0, 0, 0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+568, 19873, 1, -5953.83, -4313.34, -58.75, 0.994837, 0, 0, 0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+569, 19873, 1, -5926.45, -4275.83, -58.75, 4.7473, 0, 0, -0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+570, 19873, 1, -5920.24, -3585.75, -58.75, 0.0698117, 0, 0, 0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+571, 19873, 1, -5910.95, -3523.16, -58.7422, 5.3058, 0, 0, -0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+572, 19873, 1, -5890.01, -4314.93, -58.75, 4.90438, 0, 0, -0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+573, 19873, 1, -5878.87, -4259.38, -58.75, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+574, 19873, 1, -5863.7, -4240.98, -58.75, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+575, 19873, 1, -5861.5, -4082.2, -58.75, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+576, 19873, 1, -5857.97, -3578.88, -58.75, 4.13643, 0, 0, -0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+577, 19873, 1, -5853.08, -3517.4, -58.5231, 4.5204, 0, 0, -0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+578, 19873, 1, -5834.83, -3694.4, -58.75, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+579, 19873, 1, -5825.84, -4244.03, -58.75, 5.07891, 0, 0, -0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+580, 19873, 1, -5819.38, -3514.21, -58.357, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+581, 19873, 1, -5809.63, -4291.42, -58.75, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+582, 19873, 1, -5807.53, -3616.33, -59.8394, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+583, 19873, 1, -5797.98, -4205.42, -61.004, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+584, 19873, 1, -5782.94, -3520.04, -58.5792, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+585, 19873, 1, -5770.62, -4201.37, -60.1041, 3.82227, 0, 0, -0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+586, 19873, 1, -5761.22, -3496.09, -57.7949, 0.383971, 0, 0, 0.190808, 0.981627, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+587, 19873, 1, -5761.04, -3687.94, -58.75, 4.15388, 0, 0, -0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+588, 19873, 1, -5750.76, -4248.65, -58.75, 0.471238, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+589, 19873, 1, -5750.73, -4303.22, -58.2133, 5.23599, 0, 0, -0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+590, 19873, 1, -5731.72, -3522.13, -58.536, 3.927, 0, 0, -0.923879, 0.382686, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+591, 19873, 1, -5719.12, -3718.8, -58.75, 5.2709, 0, 0, -0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+592, 19873, 1, -5716.72, -3648.16, -58.75, 1.29154, 0, 0, 0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+593, 19873, 1, -5716.12, -4215.74, -58.7391, 5.25344, 0, 0, -0.492423, 0.870356, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+594, 19873, 1, -5701.28, -3539.57, -59.8559, 0.925024, 0, 0, 0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+595, 19873, 1, -5700.76, -3933.39, -60.1479, 5.42797, 0, 0, -0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+596, 19873, 1, -5695.18, -3507.52, -58.0676, 2.23402, 0, 0, 0.898793, 0.438373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+597, 19873, 1, -5680.74, -4249.23, -58.7125, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+598, 19873, 1, -5680.68, -4183.57, -58.7442, 3.08918, 0, 0, 0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+599, 19873, 1, -5666.72, -3526.66, -58.6655, 0.331611, 0, 0, 0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+600, 19873, 1, -5661.89, -3664.85, -60.384, 4.5204, 0, 0, -0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+601, 19873, 1, -5647.92, -4211.51, -58.75, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+602, 19873, 1, -5642.04, -3523.45, -58.4868, 4.90438, 0, 0, -0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+603, 19873, 1, -5640.92, -3576.67, -58.75, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+604, 19873, 1, -5624.88, -3616, -58.75, 1.93731, 0, 0, 0.824125, 0.566408, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+605, 19873, 1, -5620.04, -3750.41, -58.75, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+606, 19873, 1, -5619.27, -3557.65, -58.75, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+607, 19873, 1, -5617.13, -4047.84, -58.75, 4.81711, 0, 0, -0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+608, 19873, 1, -5617.07, -3981.65, -58.75, 1.91986, 0, 0, 0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+609, 19873, 1, -5616.24, -3920.02, -58.75, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+610, 19873, 1, -5615.87, -4112.12, -58.75, 4.20625, 0, 0, -0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+611, 19873, 1, -5595.53, -3650.55, -58.7498, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+612, 19873, 1, -5589.43, -3711.44, -58.75, 1.95477, 0, 0, 0.829038, 0.559193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+613, 19873, 1, -5586.72, -3776.49, -58.75, 1.51844, 0, 0, 0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+614, 19873, 1, -5585.6, -3944.59, -58.75, 3.33359, 0, 0, -0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+615, 19873, 1, -5585.29, -4077.77, -58.75, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+616, 19873, 1, -5584.51, -3880.64, -58.75, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+617, 19873, 1, -5554.58, -3983.38, -58.75, 2.68781, 0, 0, 0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+618, 19873, 1, -5552.85, -3912.84, -58.75, 6.19592, 0, 0, -0.0436192, 0.999048, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+619, 19873, 1, -5552.72, -3845.19, -58.75, 4.27606, 0, 0, -0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+620, 19873, 1, -5548.86, -3750.82, -58.75, 4.01426, 0, 0, -0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+621, 19873, 1, -5524.14, -3818.48, -58.75, 5.79449, 0, 0, -0.241921, 0.970296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+622, 19873, 1, -5519.01, -3879.54, -58.75, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+623, 19873, 1, -5484.85, -3850.43, -58.75, 6.23083, 0, 0, -0.0261765, 0.999657, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+624, 19873, 1, -5917.3, -4343.04, -58.7499, 2.37365, 0, 0, 0.927184, 0.374607, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+2, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+3, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+4, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+5, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+6, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+7, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+8, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+9, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+10, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+11, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+12, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+13, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+14, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+15, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+16, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+17, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+18, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+19, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+20, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+21, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+22, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+23, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+24, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+25, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+26, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+27, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+28, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+29, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+30, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+31, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+32, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+33, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+34, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+35, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+36, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+37, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+38, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+39, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+40, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+41, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+42, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+43, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+44, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+45, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+46, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+47, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+48, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+49, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+50, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+51, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+52, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+53, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+54, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+55, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+56, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+57, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+58, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+59, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+60, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+61, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+62, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+63, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+64, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+65, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+66, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+67, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+68, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+69, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+70, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+71, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+72, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+73, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+74, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+75, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+76, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+77, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+78, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+79, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+80, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+81, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+82, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+83, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+84, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+85, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+86, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+87, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+88, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+89, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+90, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+91, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+92, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+93, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+94, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+95, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+96, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+97, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+98, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+99, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+100, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+101, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+102, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+103, 1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@PTEMPLATE+104, 1, 'Rocket Car Parts - Thousand Needles', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+32, @PTEMPLATE+32, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+33, @PTEMPLATE+33, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+34, @PTEMPLATE+34, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+35, @PTEMPLATE+35, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+36, @PTEMPLATE+36, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+37, @PTEMPLATE+37, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+38, @PTEMPLATE+38, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+39, @PTEMPLATE+39, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+40, @PTEMPLATE+40, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+41, @PTEMPLATE+41, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+42, @PTEMPLATE+42, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+43, @PTEMPLATE+43, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+44, @PTEMPLATE+44, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+45, @PTEMPLATE+45, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+46, @PTEMPLATE+46, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+47, @PTEMPLATE+47, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+48, @PTEMPLATE+48, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+49, @PTEMPLATE+49, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+50, @PTEMPLATE+50, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+51, @PTEMPLATE+51, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+52, @PTEMPLATE+52, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+53, @PTEMPLATE+53, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+54, @PTEMPLATE+54, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+55, @PTEMPLATE+55, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+56, @PTEMPLATE+56, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+57, @PTEMPLATE+57, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+58, @PTEMPLATE+58, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+59, @PTEMPLATE+59, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+60, @PTEMPLATE+60, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+61, @PTEMPLATE+61, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+62, @PTEMPLATE+62, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+63, @PTEMPLATE+63, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+64, @PTEMPLATE+64, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+65, @PTEMPLATE+65, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+66, @PTEMPLATE+66, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+67, @PTEMPLATE+67, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+68, @PTEMPLATE+68, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+69, @PTEMPLATE+69, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+70, @PTEMPLATE+70, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+71, @PTEMPLATE+71, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+72, @PTEMPLATE+72, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+73, @PTEMPLATE+73, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+74, @PTEMPLATE+74, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+75, @PTEMPLATE+75, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+76, @PTEMPLATE+76, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+77, @PTEMPLATE+77, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+78, @PTEMPLATE+78, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+79, @PTEMPLATE+79, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+80, @PTEMPLATE+80, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+81, @PTEMPLATE+81, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+82, @PTEMPLATE+82, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+83, @PTEMPLATE+83, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+84, @PTEMPLATE+84, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+85, @PTEMPLATE+85, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+86, @PTEMPLATE+86, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+87, @PTEMPLATE+87, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+88, @PTEMPLATE+88, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+89, @PTEMPLATE+89, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+90, @PTEMPLATE+90, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+91, @PTEMPLATE+91, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+92, @PTEMPLATE+92, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+93, @PTEMPLATE+93, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+94, @PTEMPLATE+94, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+95, @PTEMPLATE+95, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+96, @PTEMPLATE+96, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+97, @PTEMPLATE+97, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+98, @PTEMPLATE+98, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+99, @PTEMPLATE+99, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+100, @PTEMPLATE+100, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+101, @PTEMPLATE+101, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+102, @PTEMPLATE+102, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+103, @PTEMPLATE+103, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+104, @PTEMPLATE+104, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+105, @PTEMPLATE+1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+106, @PTEMPLATE+2, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+107, @PTEMPLATE+3, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+108, @PTEMPLATE+4, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+109, @PTEMPLATE+5, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+110, @PTEMPLATE+6, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+111, @PTEMPLATE+7, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+112, @PTEMPLATE+8, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+113, @PTEMPLATE+9, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+114, @PTEMPLATE+10, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+115, @PTEMPLATE+11, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+116, @PTEMPLATE+12, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+117, @PTEMPLATE+13, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+118, @PTEMPLATE+14, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+119, @PTEMPLATE+15, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+120, @PTEMPLATE+16, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+121, @PTEMPLATE+17, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+122, @PTEMPLATE+18, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+123, @PTEMPLATE+19, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+124, @PTEMPLATE+20, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+125, @PTEMPLATE+21, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+126, @PTEMPLATE+22, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+127, @PTEMPLATE+23, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+128, @PTEMPLATE+24, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+129, @PTEMPLATE+25, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+130, @PTEMPLATE+26, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+131, @PTEMPLATE+27, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+132, @PTEMPLATE+28, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+133, @PTEMPLATE+29, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+134, @PTEMPLATE+30, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+135, @PTEMPLATE+31, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+136, @PTEMPLATE+32, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+137, @PTEMPLATE+33, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+138, @PTEMPLATE+34, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+139, @PTEMPLATE+35, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+140, @PTEMPLATE+36, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+141, @PTEMPLATE+37, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+142, @PTEMPLATE+38, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+143, @PTEMPLATE+39, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+144, @PTEMPLATE+40, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+145, @PTEMPLATE+41, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+146, @PTEMPLATE+42, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+147, @PTEMPLATE+43, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+148, @PTEMPLATE+44, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+149, @PTEMPLATE+45, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+150, @PTEMPLATE+46, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+151, @PTEMPLATE+47, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+152, @PTEMPLATE+48, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+153, @PTEMPLATE+49, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+154, @PTEMPLATE+50, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+155, @PTEMPLATE+51, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+156, @PTEMPLATE+52, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+157, @PTEMPLATE+53, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+158, @PTEMPLATE+54, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+159, @PTEMPLATE+55, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+160, @PTEMPLATE+56, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+161, @PTEMPLATE+57, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+162, @PTEMPLATE+58, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+163, @PTEMPLATE+59, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+164, @PTEMPLATE+60, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+165, @PTEMPLATE+61, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+166, @PTEMPLATE+62, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+167, @PTEMPLATE+63, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+168, @PTEMPLATE+64, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+169, @PTEMPLATE+65, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+170, @PTEMPLATE+66, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+171, @PTEMPLATE+67, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+172, @PTEMPLATE+68, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+173, @PTEMPLATE+69, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+174, @PTEMPLATE+70, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+175, @PTEMPLATE+71, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+176, @PTEMPLATE+72, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+177, @PTEMPLATE+73, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+178, @PTEMPLATE+74, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+179, @PTEMPLATE+75, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+180, @PTEMPLATE+76, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+181, @PTEMPLATE+77, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+182, @PTEMPLATE+78, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+183, @PTEMPLATE+79, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+184, @PTEMPLATE+80, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+185, @PTEMPLATE+81, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+186, @PTEMPLATE+82, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+187, @PTEMPLATE+83, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+188, @PTEMPLATE+84, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+189, @PTEMPLATE+85, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+190, @PTEMPLATE+86, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+191, @PTEMPLATE+87, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+192, @PTEMPLATE+88, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+193, @PTEMPLATE+89, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+194, @PTEMPLATE+90, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+195, @PTEMPLATE+91, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+196, @PTEMPLATE+92, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+197, @PTEMPLATE+93, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+198, @PTEMPLATE+94, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+199, @PTEMPLATE+95, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+200, @PTEMPLATE+96, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+201, @PTEMPLATE+97, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+202, @PTEMPLATE+98, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+203, @PTEMPLATE+99, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+204, @PTEMPLATE+100, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+205, @PTEMPLATE+101, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+206, @PTEMPLATE+102, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+207, @PTEMPLATE+103, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+208, @PTEMPLATE+104, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+209, @PTEMPLATE+1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+210, @PTEMPLATE+2, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+211, @PTEMPLATE+3, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+212, @PTEMPLATE+4, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+213, @PTEMPLATE+5, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+214, @PTEMPLATE+6, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+215, @PTEMPLATE+7, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+216, @PTEMPLATE+8, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+217, @PTEMPLATE+9, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+218, @PTEMPLATE+10, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+219, @PTEMPLATE+11, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+220, @PTEMPLATE+12, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+221, @PTEMPLATE+13, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+222, @PTEMPLATE+14, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+223, @PTEMPLATE+15, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+224, @PTEMPLATE+16, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+225, @PTEMPLATE+17, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+226, @PTEMPLATE+18, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+227, @PTEMPLATE+19, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+228, @PTEMPLATE+20, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+229, @PTEMPLATE+21, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+230, @PTEMPLATE+22, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+231, @PTEMPLATE+23, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+232, @PTEMPLATE+24, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+233, @PTEMPLATE+25, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+234, @PTEMPLATE+26, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+235, @PTEMPLATE+27, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+236, @PTEMPLATE+28, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+237, @PTEMPLATE+29, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+238, @PTEMPLATE+30, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+239, @PTEMPLATE+31, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+240, @PTEMPLATE+32, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+241, @PTEMPLATE+33, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+242, @PTEMPLATE+34, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+243, @PTEMPLATE+35, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+244, @PTEMPLATE+36, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+245, @PTEMPLATE+37, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+246, @PTEMPLATE+38, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+247, @PTEMPLATE+39, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+248, @PTEMPLATE+40, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+249, @PTEMPLATE+41, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+250, @PTEMPLATE+42, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+251, @PTEMPLATE+43, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+252, @PTEMPLATE+44, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+253, @PTEMPLATE+45, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+254, @PTEMPLATE+46, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+255, @PTEMPLATE+47, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+256, @PTEMPLATE+48, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+257, @PTEMPLATE+49, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+258, @PTEMPLATE+50, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+259, @PTEMPLATE+51, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+260, @PTEMPLATE+52, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+261, @PTEMPLATE+53, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+262, @PTEMPLATE+54, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+263, @PTEMPLATE+55, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+264, @PTEMPLATE+56, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+265, @PTEMPLATE+57, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+266, @PTEMPLATE+58, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+267, @PTEMPLATE+59, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+268, @PTEMPLATE+60, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+269, @PTEMPLATE+61, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+270, @PTEMPLATE+62, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+271, @PTEMPLATE+63, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+272, @PTEMPLATE+64, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+273, @PTEMPLATE+65, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+274, @PTEMPLATE+66, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+275, @PTEMPLATE+67, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+276, @PTEMPLATE+68, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+277, @PTEMPLATE+69, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+278, @PTEMPLATE+70, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+279, @PTEMPLATE+71, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+280, @PTEMPLATE+72, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+281, @PTEMPLATE+73, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+282, @PTEMPLATE+74, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+283, @PTEMPLATE+75, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+284, @PTEMPLATE+76, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+285, @PTEMPLATE+77, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+286, @PTEMPLATE+78, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+287, @PTEMPLATE+79, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+288, @PTEMPLATE+80, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+289, @PTEMPLATE+81, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+290, @PTEMPLATE+82, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+291, @PTEMPLATE+83, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+292, @PTEMPLATE+84, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+293, @PTEMPLATE+85, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+294, @PTEMPLATE+86, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+295, @PTEMPLATE+87, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+296, @PTEMPLATE+88, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+297, @PTEMPLATE+89, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+298, @PTEMPLATE+90, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+299, @PTEMPLATE+91, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+300, @PTEMPLATE+92, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+301, @PTEMPLATE+93, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+302, @PTEMPLATE+94, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+303, @PTEMPLATE+95, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+304, @PTEMPLATE+96, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+305, @PTEMPLATE+97, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+306, @PTEMPLATE+98, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+307, @PTEMPLATE+99, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+308, @PTEMPLATE+100, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+309, @PTEMPLATE+101, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+310, @PTEMPLATE+102, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+311, @PTEMPLATE+103, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+312, @PTEMPLATE+104, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+313, @PTEMPLATE+1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+314, @PTEMPLATE+2, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+315, @PTEMPLATE+3, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+316, @PTEMPLATE+4, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+317, @PTEMPLATE+5, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+318, @PTEMPLATE+6, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+319, @PTEMPLATE+7, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+320, @PTEMPLATE+8, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+321, @PTEMPLATE+9, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+322, @PTEMPLATE+10, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+323, @PTEMPLATE+11, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+324, @PTEMPLATE+12, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+325, @PTEMPLATE+13, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+326, @PTEMPLATE+14, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+327, @PTEMPLATE+15, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+328, @PTEMPLATE+16, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+329, @PTEMPLATE+17, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+330, @PTEMPLATE+18, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+331, @PTEMPLATE+19, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+332, @PTEMPLATE+20, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+333, @PTEMPLATE+21, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+334, @PTEMPLATE+22, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+335, @PTEMPLATE+23, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+336, @PTEMPLATE+24, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+337, @PTEMPLATE+25, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+338, @PTEMPLATE+26, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+339, @PTEMPLATE+27, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+340, @PTEMPLATE+28, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+341, @PTEMPLATE+29, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+342, @PTEMPLATE+30, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+343, @PTEMPLATE+31, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+344, @PTEMPLATE+32, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+345, @PTEMPLATE+33, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+346, @PTEMPLATE+34, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+347, @PTEMPLATE+35, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+348, @PTEMPLATE+36, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+349, @PTEMPLATE+37, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+350, @PTEMPLATE+38, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+351, @PTEMPLATE+39, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+352, @PTEMPLATE+40, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+353, @PTEMPLATE+41, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+354, @PTEMPLATE+42, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+355, @PTEMPLATE+43, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+356, @PTEMPLATE+44, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+357, @PTEMPLATE+45, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+358, @PTEMPLATE+46, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+359, @PTEMPLATE+47, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+360, @PTEMPLATE+48, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+361, @PTEMPLATE+49, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+362, @PTEMPLATE+50, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+363, @PTEMPLATE+51, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+364, @PTEMPLATE+52, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+365, @PTEMPLATE+53, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+366, @PTEMPLATE+54, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+367, @PTEMPLATE+55, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+368, @PTEMPLATE+56, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+369, @PTEMPLATE+57, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+370, @PTEMPLATE+58, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+371, @PTEMPLATE+59, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+372, @PTEMPLATE+60, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+373, @PTEMPLATE+61, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+374, @PTEMPLATE+62, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+375, @PTEMPLATE+63, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+376, @PTEMPLATE+64, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+377, @PTEMPLATE+65, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+378, @PTEMPLATE+66, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+379, @PTEMPLATE+67, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+380, @PTEMPLATE+68, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+381, @PTEMPLATE+69, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+382, @PTEMPLATE+70, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+383, @PTEMPLATE+71, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+384, @PTEMPLATE+72, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+385, @PTEMPLATE+73, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+386, @PTEMPLATE+74, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+387, @PTEMPLATE+75, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+388, @PTEMPLATE+76, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+389, @PTEMPLATE+77, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+390, @PTEMPLATE+78, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+391, @PTEMPLATE+79, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+392, @PTEMPLATE+80, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+393, @PTEMPLATE+81, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+394, @PTEMPLATE+82, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+395, @PTEMPLATE+83, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+396, @PTEMPLATE+84, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+397, @PTEMPLATE+85, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+398, @PTEMPLATE+86, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+399, @PTEMPLATE+87, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+400, @PTEMPLATE+88, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+401, @PTEMPLATE+89, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+402, @PTEMPLATE+90, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+403, @PTEMPLATE+91, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+404, @PTEMPLATE+92, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+405, @PTEMPLATE+93, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+406, @PTEMPLATE+94, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+407, @PTEMPLATE+95, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+408, @PTEMPLATE+96, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+409, @PTEMPLATE+97, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+410, @PTEMPLATE+98, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+411, @PTEMPLATE+99, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+412, @PTEMPLATE+100, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+413, @PTEMPLATE+101, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+414, @PTEMPLATE+102, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+415, @PTEMPLATE+103, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+416, @PTEMPLATE+104, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+417, @PTEMPLATE+1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+418, @PTEMPLATE+2, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+419, @PTEMPLATE+3, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+420, @PTEMPLATE+4, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+421, @PTEMPLATE+5, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+422, @PTEMPLATE+6, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+423, @PTEMPLATE+7, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+424, @PTEMPLATE+8, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+425, @PTEMPLATE+9, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+426, @PTEMPLATE+10, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+427, @PTEMPLATE+11, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+428, @PTEMPLATE+12, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+429, @PTEMPLATE+13, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+430, @PTEMPLATE+14, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+431, @PTEMPLATE+15, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+432, @PTEMPLATE+16, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+433, @PTEMPLATE+17, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+434, @PTEMPLATE+18, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+435, @PTEMPLATE+19, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+436, @PTEMPLATE+20, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+437, @PTEMPLATE+21, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+438, @PTEMPLATE+22, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+439, @PTEMPLATE+23, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+440, @PTEMPLATE+24, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+441, @PTEMPLATE+25, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+442, @PTEMPLATE+26, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+443, @PTEMPLATE+27, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+444, @PTEMPLATE+28, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+445, @PTEMPLATE+29, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+446, @PTEMPLATE+30, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+447, @PTEMPLATE+31, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+448, @PTEMPLATE+32, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+449, @PTEMPLATE+33, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+450, @PTEMPLATE+34, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+451, @PTEMPLATE+35, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+452, @PTEMPLATE+36, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+453, @PTEMPLATE+37, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+454, @PTEMPLATE+38, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+455, @PTEMPLATE+39, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+456, @PTEMPLATE+40, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+457, @PTEMPLATE+41, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+458, @PTEMPLATE+42, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+459, @PTEMPLATE+43, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+460, @PTEMPLATE+44, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+461, @PTEMPLATE+45, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+462, @PTEMPLATE+46, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+463, @PTEMPLATE+47, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+464, @PTEMPLATE+48, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+465, @PTEMPLATE+49, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+466, @PTEMPLATE+50, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+467, @PTEMPLATE+51, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+468, @PTEMPLATE+52, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+469, @PTEMPLATE+53, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+470, @PTEMPLATE+54, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+471, @PTEMPLATE+55, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+472, @PTEMPLATE+56, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+473, @PTEMPLATE+57, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+474, @PTEMPLATE+58, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+475, @PTEMPLATE+59, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+476, @PTEMPLATE+60, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+477, @PTEMPLATE+61, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+478, @PTEMPLATE+62, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+479, @PTEMPLATE+63, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+480, @PTEMPLATE+64, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+481, @PTEMPLATE+65, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+482, @PTEMPLATE+66, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+483, @PTEMPLATE+67, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+484, @PTEMPLATE+68, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+485, @PTEMPLATE+69, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+486, @PTEMPLATE+70, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+487, @PTEMPLATE+71, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+488, @PTEMPLATE+72, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+489, @PTEMPLATE+73, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+490, @PTEMPLATE+74, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+491, @PTEMPLATE+75, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+492, @PTEMPLATE+76, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+493, @PTEMPLATE+77, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+494, @PTEMPLATE+78, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+495, @PTEMPLATE+79, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+496, @PTEMPLATE+80, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+497, @PTEMPLATE+81, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+498, @PTEMPLATE+82, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+499, @PTEMPLATE+83, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+500, @PTEMPLATE+84, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+501, @PTEMPLATE+85, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+502, @PTEMPLATE+86, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+503, @PTEMPLATE+87, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+504, @PTEMPLATE+88, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+505, @PTEMPLATE+89, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+506, @PTEMPLATE+90, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+507, @PTEMPLATE+91, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+508, @PTEMPLATE+92, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+509, @PTEMPLATE+93, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+510, @PTEMPLATE+94, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+511, @PTEMPLATE+95, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+512, @PTEMPLATE+96, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+513, @PTEMPLATE+97, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+514, @PTEMPLATE+98, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+515, @PTEMPLATE+99, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+516, @PTEMPLATE+100, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+517, @PTEMPLATE+101, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+518, @PTEMPLATE+102, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+519, @PTEMPLATE+103, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+520, @PTEMPLATE+104, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+521, @PTEMPLATE+1, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+522, @PTEMPLATE+2, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+523, @PTEMPLATE+3, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+524, @PTEMPLATE+4, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+525, @PTEMPLATE+5, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+526, @PTEMPLATE+6, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+527, @PTEMPLATE+7, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+528, @PTEMPLATE+8, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+529, @PTEMPLATE+9, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+530, @PTEMPLATE+10, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+531, @PTEMPLATE+11, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+532, @PTEMPLATE+12, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+533, @PTEMPLATE+13, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+534, @PTEMPLATE+14, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+535, @PTEMPLATE+15, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+536, @PTEMPLATE+16, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+537, @PTEMPLATE+17, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+538, @PTEMPLATE+18, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+539, @PTEMPLATE+19, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+540, @PTEMPLATE+20, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+541, @PTEMPLATE+21, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+542, @PTEMPLATE+22, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+543, @PTEMPLATE+23, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+544, @PTEMPLATE+24, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+545, @PTEMPLATE+25, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+546, @PTEMPLATE+26, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+547, @PTEMPLATE+27, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+548, @PTEMPLATE+28, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+549, @PTEMPLATE+29, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+550, @PTEMPLATE+30, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+551, @PTEMPLATE+31, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+552, @PTEMPLATE+32, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+553, @PTEMPLATE+33, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+554, @PTEMPLATE+34, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+555, @PTEMPLATE+35, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+556, @PTEMPLATE+36, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+557, @PTEMPLATE+37, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+558, @PTEMPLATE+38, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+559, @PTEMPLATE+39, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+560, @PTEMPLATE+40, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+561, @PTEMPLATE+41, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+562, @PTEMPLATE+42, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+563, @PTEMPLATE+43, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+564, @PTEMPLATE+44, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+565, @PTEMPLATE+45, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+566, @PTEMPLATE+46, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+567, @PTEMPLATE+47, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+568, @PTEMPLATE+48, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+569, @PTEMPLATE+49, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+570, @PTEMPLATE+50, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+571, @PTEMPLATE+51, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+572, @PTEMPLATE+52, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+573, @PTEMPLATE+53, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+574, @PTEMPLATE+54, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+575, @PTEMPLATE+55, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+576, @PTEMPLATE+56, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+577, @PTEMPLATE+57, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+578, @PTEMPLATE+58, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+579, @PTEMPLATE+59, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+580, @PTEMPLATE+60, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+581, @PTEMPLATE+61, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+582, @PTEMPLATE+62, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+583, @PTEMPLATE+63, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+584, @PTEMPLATE+64, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+585, @PTEMPLATE+65, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+586, @PTEMPLATE+66, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+587, @PTEMPLATE+67, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+588, @PTEMPLATE+68, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+589, @PTEMPLATE+69, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+590, @PTEMPLATE+70, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+591, @PTEMPLATE+71, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+592, @PTEMPLATE+72, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+593, @PTEMPLATE+73, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+594, @PTEMPLATE+74, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+595, @PTEMPLATE+75, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+596, @PTEMPLATE+76, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+597, @PTEMPLATE+77, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+598, @PTEMPLATE+78, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+599, @PTEMPLATE+79, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+600, @PTEMPLATE+80, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+601, @PTEMPLATE+81, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+602, @PTEMPLATE+82, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+603, @PTEMPLATE+83, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+604, @PTEMPLATE+84, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+605, @PTEMPLATE+85, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+606, @PTEMPLATE+86, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+607, @PTEMPLATE+87, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+608, @PTEMPLATE+88, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+609, @PTEMPLATE+89, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+610, @PTEMPLATE+90, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+611, @PTEMPLATE+91, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+612, @PTEMPLATE+92, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+613, @PTEMPLATE+93, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+614, @PTEMPLATE+94, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+615, @PTEMPLATE+95, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+616, @PTEMPLATE+96, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+617, @PTEMPLATE+97, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+618, @PTEMPLATE+98, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+619, @PTEMPLATE+99, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+620, @PTEMPLATE+100, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+621, @PTEMPLATE+101, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+622, @PTEMPLATE+102, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+623, @PTEMPLATE+103, 'Rocket Car Parts - Thousand Needles', 0, 10), +(@OGUID+624, @PTEMPLATE+104, 'Rocket Car Parts - Thousand Needles', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+105, 52, 'Thousand Needles - Rocket Car Parts (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+2, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+3, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+4, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+5, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+6, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+7, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+8, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+9, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+10, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+11, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+12, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+13, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+14, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+15, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+16, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+17, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+18, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+19, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+20, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+21, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+22, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+23, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+24, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+25, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+26, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+27, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+28, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+29, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+30, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+31, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+32, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+33, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+34, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+35, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+36, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+37, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+38, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+39, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+40, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+41, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+42, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+43, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+44, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+45, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+46, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+47, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+48, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+49, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+50, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+51, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+52, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+53, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+54, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+55, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+56, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+57, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+58, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+59, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+60, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+61, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+62, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+63, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+64, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+65, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+66, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+67, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+68, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+69, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+70, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+71, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+72, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+73, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+74, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+75, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+76, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+77, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+78, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+79, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+80, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+81, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+82, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+83, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+84, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+85, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+86, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+87, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+88, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+89, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+90, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+91, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+92, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+93, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+94, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+95, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+96, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+97, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+98, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+99, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+100, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+101, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+102, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+103, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0), +(@PTEMPLATE+104, @PTEMPLATE+105, 0, 'Rocket Car Parts - Thousand Needles', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 3ee1945cd0d4a40f7492efc52f95dc293a45dadc Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 2 Jul 2023 17:39:07 +0100 Subject: [PATCH 056/426] Add Missing Solid Chests (153454) (#2025) --- sql/migrations/20230702103706_world.sql | 86 +++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 sql/migrations/20230702103706_world.sql diff --git a/sql/migrations/20230702103706_world.sql b/sql/migrations/20230702103706_world.sql new file mode 100644 index 00000000000..22b2f0d59fa --- /dev/null +++ b/sql/migrations/20230702103706_world.sql @@ -0,0 +1,86 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230702103706'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230702103706'); +-- Add your query below. + + +-- Create new pool to hold Solid Chest spawns in Eastern Plaguelands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(71, 6, 'Solid Chests in Eastern Plaguelands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(45734, 71, 0, 'Solid Chest', 0, 10), +(45910, 71, 0, 'Solid Chest', 0, 10), +(45915, 71, 0, 'Solid Chest', 0, 10), +(45931, 71, 0, 'Solid Chest', 0, 10), +(45933, 71, 0, 'Solid Chest', 0, 10), +(45938, 71, 0, 'Solid Chest', 0, 10); + +-- Create new pool to hold Solid Chest spawns in Winterspring. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(72, 5, 'Solid Chests in Winterspring', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(49088, 72, 0, 'Solid Chest', 0, 10), +(49089, 72, 0, 'Solid Chest', 0, 10), +(49090, 72, 0, 'Solid Chest', 0, 10), +(49091, 72, 0, 'Solid Chest', 0, 10); + +-- Missing Solid Chest spawns in Eastern Plaguelands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(45884, 153454, 0, 3333.82, -5000.1, 168.712, 4.36332, 0, 0, -0.819152, 0.573577, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45734 at 354.426331 yards. +(45885, 153454, 0, 2560.83, -4806.04, 114.984, 0.261798, 0, 0, 0.130526, 0.991445, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45734 at 450.065887 yards. +(45916, 153454, 0, 2506.89, -3804.47, 177.654, 1.62316, 0, 0, 0.725374, 0.688355, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45915 at 106.708992 yards. +(45935, 153454, 0, 2796.36, -5403.23, 162.927, 2.56563, 0, 0, 0.958819, 0.284016, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45931 at 223.274673 yards. +(45937, 153454, 0, 2780.84, -5550.98, 160.7, 0.698131, 0, 0, 0.34202, 0.939693, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45931 at 183.384506 yards. +(45917, 153454, 0, 2416.02, -3709.41, 177.675, 4.46804, 0, 0, -0.788011, 0.615662, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45915 at 128.692413 yards. +(45893, 153454, 0, 3021.77, -4980.58, 106.656, 1.83259, 0, 0, 0.793353, 0.608762, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45734 at 96.062523 yards. +(45940, 153454, 0, 1555.62, -5595.14, 111.171, 6.24828, 0, 0, -0.0174522, 0.999848, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45933 at 270.582367 yards. +(45929, 153454, 0, 3459.3, -4918.52, 170.455, 4.59022, 0, 0, -0.748956, 0.66262, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45910 at 389.943695 yards. +(45958, 153454, 0, 1599.41, -5315.48, 91.1041, 2.23402, 0, 0, 0.898793, 0.438373, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 45933 at 182.147690 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(45884, 71, 0, 'Solid Chest', 0, 10), -- Solid Chests in Eastern Plaguelands +(45885, 71, 0, 'Solid Chest', 0, 10), -- Solid Chests in Eastern Plaguelands +(45916, 71, 0, 'Solid Chest', 0, 10), -- Solid Chests in Eastern Plaguelands +(45935, 71, 0, 'Solid Chest', 0, 10), -- Solid Chests in Eastern Plaguelands +(45937, 71, 0, 'Solid Chest', 0, 10), -- Solid Chests in Eastern Plaguelands +(45917, 71, 0, 'Solid Chest', 0, 10), -- Solid Chests in Eastern Plaguelands +(45893, 71, 0, 'Solid Chest', 0, 10), -- Solid Chests in Eastern Plaguelands +(45940, 71, 0, 'Solid Chest', 0, 10), -- Solid Chests in Eastern Plaguelands +(45929, 71, 0, 'Solid Chest', 0, 10), -- Solid Chests in Eastern Plaguelands +(45958, 71, 0, 'Solid Chest', 0, 10); -- Solid Chests in Eastern Plaguelands + +-- Missing Solid Chest spawns in Winterspring. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(49095, 153454, 1, 6491.73, -3132.61, 570.651, 5.11382, 0, 0, -0.551936, 0.833886, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 49089 at 134.646790 yards. +(49139, 153454, 1, 6617.37, -4081.4, 662.525, 1.50098, 0, 0, 0.681998, 0.731354, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 49088 at 282.631958 yards. +(49175, 153454, 1, 6313.62, -2395.12, 556.702, 3.52557, 0, 0, -0.981627, 0.190812, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 49090 at 554.158752 yards. +(49176, 153454, 1, 6830.53, -3584.34, 718.537, 0.95993, 0, 0, 0.461748, 0.887011, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 49089 at 468.214447 yards. +(49177, 153454, 1, 6863.55, -5118.35, 695.735, 3.94445, 0, 0, -0.920505, 0.390732, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 49091 at 82.700089 yards. +(49186, 153454, 1, 6779, -5047.81, 722.833, 5.37562, 0, 0, -0.438371, 0.898794, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 49091 at 104.119934 yards. +(49187, 153454, 1, 6834.71, -5028.53, 691.339, 4.60767, 0, 0, -0.743144, 0.669131, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 49091 at 133.783478 yards. +(49188, 153454, 1, 6843.18, -2482.17, 561.01, 4.29351, 0, 0, -0.83867, 0.54464, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 49090 at 190.344040 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(49095, 72, 0, 'Solid Chest', 0, 10), -- Solid Chests in Winterspring +(49139, 72, 0, 'Solid Chest', 0, 10), -- Solid Chests in Winterspring +(49175, 72, 0, 'Solid Chest', 0, 10), -- Solid Chests in Winterspring +(49176, 72, 0, 'Solid Chest', 0, 10), -- Solid Chests in Winterspring +(49177, 72, 0, 'Solid Chest', 0, 10), -- Solid Chests in Winterspring +(49186, 72, 0, 'Solid Chest', 0, 10), -- Solid Chests in Winterspring +(49187, 72, 0, 'Solid Chest', 0, 10), -- Solid Chests in Winterspring +(49188, 72, 0, 'Solid Chest', 0, 10); -- Solid Chests in Winterspring + +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id`= 153454; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From a27f97d2baf351bb95f31bed2a196e50d70c104b Mon Sep 17 00:00:00 2001 From: Wall <90075138+Wall-core@users.noreply.github.com> Date: Tue, 4 Jul 2023 05:56:09 -0400 Subject: [PATCH 057/426] Fix XML Whitespace & Comments (#1996) --- src/framework/Dynamic/FactoryHolder.h | 2 +- src/framework/Dynamic/ObjectRegistry.h | 12 +- src/framework/GameSystem/TypeContainer.h | 4 +- src/framework/Network/MangosSocket.h | 96 +++++----- src/framework/Network/MangosSocketMgr.h | 8 +- src/framework/Utilities/Callback.h | 10 +- src/game/AI/CreatureAI.h | 12 +- src/game/AI/PlayerAI.h | 6 +- src/game/AI/ScriptedInstance.cpp | 10 +- src/game/AI/ScriptedInstance.h | 36 ++-- src/game/AccountMgr.h | 4 +- src/game/AuctionHouse/AuctionHouseMgr.cpp | 10 +- src/game/Battlegrounds/BattleGroundAV.cpp | 6 +- src/game/Camera.h | 4 +- src/game/Chat/AsyncCommandHandlers.cpp | 6 +- src/game/Chat/Chat.cpp | 12 +- src/game/Chat/Chat.h | 10 +- src/game/Commands/AccountCommands.cpp | 48 ++--- src/game/Commands/CreatureCommands.cpp | 12 +- src/game/Commands/MiscCommands.cpp | 24 +-- src/game/Commands/ServerCommands.cpp | 12 +- src/game/GMTicketMgr.h | 2 +- src/game/Group/Group.cpp | 4 +- src/game/Handlers/CharacterHandler.cpp | 2 +- src/game/Handlers/MailHandler.cpp | 2 +- src/game/Handlers/PetitionsHandler.cpp | 6 +- src/game/Handlers/QueryHandler.cpp | 4 +- src/game/Mail/Mail.h | 94 +++++----- src/game/Mail/MassMailMgr.h | 6 +- src/game/Maps/Map.cpp | 30 ++-- src/game/Maps/MapManager.cpp | 4 +- src/game/Movement/WaypointManager.cpp | 4 +- src/game/Movement/WaypointManager.h | 2 +- src/game/Movement/spline/util.cpp | 2 +- src/game/ObjectAccessor.cpp | 4 +- src/game/Objects/Corpse.cpp | 4 +- src/game/Objects/Creature.cpp | 6 +- src/game/Objects/Creature.h | 8 +- src/game/Objects/DynamicObject.cpp | 4 +- src/game/Objects/GameObject.cpp | 6 +- src/game/Objects/Object.cpp | 2 +- src/game/Objects/Pet.cpp | 6 +- src/game/Objects/Player.cpp | 42 ++--- src/game/Objects/Player.h | 16 +- src/game/Objects/Unit.cpp | 10 +- src/game/Objects/UnitDefines.h | 2 +- src/game/PlayerBots/PlayerBotAI.cpp | 10 +- src/game/Protocol/Opcodes.cpp | 6 +- src/game/Protocol/Opcodes.h | 30 ++-- src/game/Protocol/WorldSocket.h | 6 +- src/game/Protocol/WorldSocketMgr.h | 4 +- src/game/SharedDefines.h | 4 +- src/game/SocialMgr.h | 2 +- src/game/Spells/Spell.cpp | 10 +- src/game/Spells/SpellEntry.h | 4 +- src/game/Spells/SpellMgr.cpp | 2 +- src/game/Transports/Transport.h | 4 +- src/game/UnitAuraProcHandler.cpp | 4 +- src/game/Weather.cpp | 58 +++--- src/game/Weather.h | 18 +- src/game/World.cpp | 166 +++++++++--------- src/game/World.h | 74 ++++---- src/game/WorldSession.cpp | 63 ++++--- src/mangosd/ChatSocket.cpp | 12 +- src/mangosd/ChatSocket.h | 22 +-- src/mangosd/CliRunnable.cpp | 18 +- src/mangosd/CliRunnable.h | 10 +- src/mangosd/Main.cpp | 30 ++-- src/mangosd/Master.cpp | 62 +++---- src/mangosd/Master.h | 10 +- src/mangosd/RASocket.cpp | 32 ++-- src/mangosd/RASocket.h | 32 ++-- src/mangosd/WorldRunnable.h | 10 +- src/realmd/AuthCodes.h | 56 +++--- src/realmd/AuthSocket.cpp | 98 +++++------ src/realmd/AuthSocket.h | 10 +- src/realmd/Main.cpp | 48 ++--- src/realmd/RealmList.cpp | 10 +- src/realmd/RealmList.h | 14 +- .../blackrock_spire/boss_urok.cpp | 2 +- .../naxxramas/boss_kelthuzad.cpp | 2 +- .../naxxramas/instance_naxxramas.cpp | 2 +- .../searing_gorge/searing_gorge.cpp | 2 +- .../zulgurub/boss_venoxis.cpp | 2 +- src/scripts/kalimdor/silithus/silithus.cpp | 10 +- src/shared/Database/DBCFileLoader.h | 2 +- src/shared/Database/Database.h | 20 +-- src/shared/Database/DatabaseImpl.h | 2 +- src/shared/Database/SqlDelayThread.h | 12 +- src/shared/Database/SqlOperations.cpp | 40 ++--- src/shared/Database/SqlOperations.h | 16 +- src/shared/Duration.h | 10 +- src/shared/LockedQueue.h | 2 +- src/shared/Log.cpp | 4 +- src/shared/Util.cpp | 4 +- 95 files changed, 843 insertions(+), 844 deletions(-) diff --git a/src/framework/Dynamic/FactoryHolder.h b/src/framework/Dynamic/FactoryHolder.h index 8d452f9d727..c3176330f88 100644 --- a/src/framework/Dynamic/FactoryHolder.h +++ b/src/framework/Dynamic/FactoryHolder.h @@ -43,7 +43,7 @@ class FactoryHolder void RegisterSelf(void) { FactoryHolderRepository::Instance().InsertItem(this, i_key); } void DeregisterSelf(void) { FactoryHolderRepository::Instance().RemoveItem(this, false); } - /// Abstract Factory create method + // Abstract Factory create method virtual T* Create(void *data = nullptr) const = 0; private: Key i_key; diff --git a/src/framework/Dynamic/ObjectRegistry.h b/src/framework/Dynamic/ObjectRegistry.h index 230fb7cbe93..736dd8a56a2 100644 --- a/src/framework/Dynamic/ObjectRegistry.h +++ b/src/framework/Dynamic/ObjectRegistry.h @@ -38,14 +38,14 @@ class ObjectRegistry public: typedef std::map RegistryMapType; - /// Returns a registry item + // Returns a registry item const T* GetRegistryItem(Key key) const { typename RegistryMapType::const_iterator iter = i_registeredObjects.find(key); return (iter == i_registeredObjects.end() ? nullptr : iter->second); } - /// Inserts a registry item + // Inserts a registry item bool InsertItem(T *obj, Key key, bool replace = false) { typename RegistryMapType::iterator iter = i_registeredObjects.find(key); @@ -61,7 +61,7 @@ class ObjectRegistry return true; } - /// Removes a registry item + // Removes a registry item void RemoveItem(Key key, bool delete_object = true) { typename RegistryMapType::iterator iter = i_registeredObjects.find(key); @@ -73,13 +73,13 @@ class ObjectRegistry } } - /// Returns true if registry contains an item + // Returns true if registry contains an item bool HasItem(Key key) const { return (i_registeredObjects.find(key) != i_registeredObjects.end()); } - /// Inefficiently return a vector of registered items + // Inefficiently return a vector of registered items unsigned int GetRegisteredItems(std::vector &l) const { unsigned int sz = l.size(); @@ -89,7 +89,7 @@ class ObjectRegistry return i_registeredObjects.size(); } - /// Return the map of registered items + // Return the map of registered items RegistryMapType const &GetRegisteredItems() const { return i_registeredObjects; diff --git a/src/framework/GameSystem/TypeContainer.h b/src/framework/GameSystem/TypeContainer.h index 654c298a60f..e3e723dfb54 100644 --- a/src/framework/GameSystem/TypeContainer.h +++ b/src/framework/GameSystem/TypeContainer.h @@ -216,7 +216,7 @@ class TypeMapContainer template size_t Count() const { return MaNGOS::Count(i_elements, (SPECIFIC_TYPE*)nullptr); } - /// inserts a specific object into the container + // inserts a specific object into the container template bool insert(SPECIFIC_TYPE *obj) { @@ -224,7 +224,7 @@ class TypeMapContainer return (t != nullptr); } - /// Removes the object from the container, and returns the removed object + // Removes the object from the container, and returns the removed object template bool remove(SPECIFIC_TYPE* obj) { diff --git a/src/framework/Network/MangosSocket.h b/src/framework/Network/MangosSocket.h index f1409ec3079..fc969398c48 100644 --- a/src/framework/Network/MangosSocket.h +++ b/src/framework/Network/MangosSocket.h @@ -48,7 +48,7 @@ struct ClientPktHeader #pragma pack(pop) #endif -/// Handler that can communicate over stream sockets. +// Handler that can communicate over stream sockets. typedef ACE_Svc_Handler WorldHandler; /** @@ -91,47 +91,47 @@ template class MangosSocket : public WorldHandler { public: - /// things called by ACE framework. + // things called by ACE framework. MangosSocket(); virtual ~MangosSocket(void); - /// Declare the acceptor for this class + // Declare the acceptor for this class typedef ACE_Connector Connector; - /// Declare some friends + // Declare some friends friend class ACE_Connector; friend class ACE_NonBlocking_Connect_Handler; - /// Mutex type used for various synchronizations. + // Mutex type used for various synchronizations. using LockType = std::mutex; typedef std::unique_lock GuardType; - /// Queue for storing packets for which there is no space. + // Queue for storing packets for which there is no space. typedef ACE_Unbounded_Queue PacketQueueT; - /// Check if socket is closed. + // Check if socket is closed. bool IsClosed() const { return closing_; } - /// Close the socket. + // Close the socket. void CloseSocket (void); - /// Called on open ,the void* is the acceptor. + // Called on open ,the void* is the acceptor. virtual int open(void *); - /// Called on failures inside of the acceptor, don't call from your code. + // Called on failures inside of the acceptor, don't call from your code. virtual int close(int); - /// Get address of connected peer. + // Get address of connected peer. const std::string& GetRemoteAddress () const { return m_Address; } - /// Send A packet on the socket, this function is reentrant. - /// @param pct packet to send - /// @return -1 of failure + // Send A packet on the socket, this function is reentrant. + // @param pct packet to send + // @return -1 of failure int SendPacket (const WorldPacket& pct); - /// Add reference to this object. + // Add reference to this object. long AddReference() { return static_cast(add_reference()); } - /// Remove reference to this object. + // Remove reference to this object. long RemoveReference() { return static_cast(remove_reference()); } void SetSession(SessionType* t) { m_Session = t; } @@ -141,87 +141,87 @@ class MangosSocket : public WorldHandler */ bool IsServerSide() { return m_isServerSocket; } protected: - /// process one incoming packet. - /// @param new_pct received packet ,note that you need to delete it. + // process one incoming packet. + // @param new_pct received packet ,note that you need to delete it. int ProcessIncoming (WorldPacket* new_pct) { delete new_pct; return 0; } int OnSocketOpen() { return 0; } - /// Called when we can read from the socket. + // Called when we can read from the socket. virtual int handle_input (ACE_HANDLE = ACE_INVALID_HANDLE); - /// Called when the socket can write. + // Called when the socket can write. virtual int handle_output (ACE_HANDLE = ACE_INVALID_HANDLE); - /// Called when connection is closed or error happens. + // Called when connection is closed or error happens. virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK); - /// Called by WorldSocketMgr/ReactorRunnable. + // Called by WorldSocketMgr/ReactorRunnable. int Update (void); - /// Helper functions for processing incoming data. + // Helper functions for processing incoming data. int handle_input_header (void); int handle_input_payload (void); int handle_input_missing_data (void); - /// Help functions to mark/unmark the socket for output. - /// @param g the guard is for m_OutBufferLock, the function will release it + // Help functions to mark/unmark the socket for output. + // @param g the guard is for m_OutBufferLock, the function will release it int cancel_wakeup_output (GuardType& g); int schedule_wakeup_output (GuardType& g); - /// Try to write WorldPacket to m_OutBuffer ,return -1 if no space - /// Need to be called with m_OutBufferLock lock held + // Try to write WorldPacket to m_OutBuffer ,return -1 if no space + // Need to be called with m_OutBufferLock lock held int iSendPacket (const WorldPacket& pct); - /// Flush m_PacketQueue if there are packets in it - /// Need to be called with m_OutBufferLock lock held - /// @return true if it wrote to the buffer ( AKA you need - /// to mark the socket for output ). + // Flush m_PacketQueue if there are packets in it + // Need to be called with m_OutBufferLock lock held + // @return true if it wrote to the buffer ( AKA you need + // to mark the socket for output ). bool iFlushPacketQueue (); - /// Time in which the last ping was received + // Time in which the last ping was received ACE_Time_Value m_LastPingTime; - /// Keep track of over-speed pings ,to prevent ping flood. + // Keep track of over-speed pings ,to prevent ping flood. uint32 m_OverSpeedPings; - /// Address of the remote peer + // Address of the remote peer std::string m_Address; - /// Class used for managing encryption of the headers + // Class used for managing encryption of the headers Crypt m_Crypt; - /// Mutex lock to protect m_Session + // Mutex lock to protect m_Session LockType m_SessionLock; - /// Session to which received packets are routed + // Session to which received packets are routed SessionType* m_Session; - /// here are stored the fragments of the received data + // here are stored the fragments of the received data WorldPacket* m_RecvWPct; - /// This block actually refers to m_RecvWPct contents, - /// which allows easy and safe writing to it. - /// It wont free memory when its deleted. m_RecvWPct takes care of freeing. + // This block actually refers to m_RecvWPct contents, + // which allows easy and safe writing to it. + // It wont free memory when its deleted. m_RecvWPct takes care of freeing. ACE_Message_Block m_RecvPct; - /// Fragment of the received header. + // Fragment of the received header. ACE_Message_Block m_Header; - /// Mutex for protecting output related data. + // Mutex for protecting output related data. LockType m_OutBufferLock; - /// Buffer used for writing output. + // Buffer used for writing output. ACE_Message_Block *m_OutBuffer; - /// Size of the m_OutBuffer. + // Size of the m_OutBuffer. size_t m_OutBufferSize; - /// Here are stored packets for which there was no space on m_OutBuffer, - /// this allows not-to kick player if its buffer is overflowed. + // Here are stored packets for which there was no space on m_OutBuffer, + // this allows not-to kick player if its buffer is overflowed. PacketQueueT m_PacketQueue; - /// True if the socket is registered with the reactor for output + // True if the socket is registered with the reactor for output bool m_OutActive; uint32 m_Seed; diff --git a/src/framework/Network/MangosSocketMgr.h b/src/framework/Network/MangosSocketMgr.h index a533226d40d..b90fbb85a36 100644 --- a/src/framework/Network/MangosSocketMgr.h +++ b/src/framework/Network/MangosSocketMgr.h @@ -11,19 +11,19 @@ template class ReactorRunnable; class ACE_Event_Handler; -/// Manages all sockets connected to peers and network threads +// Manages all sockets connected to peers and network threads template class MangosSocketMgr { public: - /// Start network, listen at address:port . + // Start network, listen at address:port . int StartNetwork(ACE_UINT16 port, std::string& address); - /// Stops all network threads, It will wait for all running threads . + // Stops all network threads, It will wait for all running threads . void StopNetwork(); - /// Wait untill all network threads have "joined" . + // Wait untill all network threads have "joined" . void Wait(); void SetOutKBuff(int v) { m_SockOutKBuff = v; } diff --git a/src/framework/Utilities/Callback.h b/src/framework/Utilities/Callback.h index 386fa6d996c..378d709030d 100644 --- a/src/framework/Utilities/Callback.h +++ b/src/framework/Utilities/Callback.h @@ -47,7 +47,7 @@ //empty struct to use in templates instead of void type struct null { null() {} }; -/// ------------ BASE CLASSES ------------ +// ------------ BASE CLASSES ------------ namespace MaNGOS { @@ -181,7 +181,7 @@ namespace MaNGOS } }; - /// ---- Statics ---- + // ---- Statics ---- template class _SCallback @@ -308,7 +308,7 @@ namespace MaNGOS }; } -/// --------- GENERIC CALLBACKS ---------- +// --------- GENERIC CALLBACKS ---------- namespace MaNGOS { @@ -405,7 +405,7 @@ namespace MaNGOS }; } -/// ---------- QUERY CALLBACKS ----------- +// ---------- QUERY CALLBACKS ----------- class QueryResult; @@ -496,7 +496,7 @@ namespace MaNGOS } }; - /// ---- Statics ---- + // ---- Statics ---- template class SQueryCallback : public _IQueryCallback<_SCallback > diff --git a/src/game/AI/CreatureAI.h b/src/game/AI/CreatureAI.h index 6be84a1e384..a556d187ef5 100644 --- a/src/game/AI/CreatureAI.h +++ b/src/game/AI/CreatureAI.h @@ -54,13 +54,13 @@ class CreatureAI virtual ~CreatureAI(); - ///== Information about AI ======================== + // == Information about AI ======================== virtual void GetAIInformation(ChatHandler& /*reader*/) {} virtual uint32 GetData(uint32 /*type*/) { return 0; } - ///== Reactions At ================================= + // == Reactions At ================================= // Called when an unit moves within visibility distance virtual void MoveInLineOfSight(Unit*) {} @@ -146,7 +146,7 @@ class CreatureAI // called when the corpse of this creature gets removed virtual void CorpseRemoved(uint32& /*respawnDelay*/) {} - ///== Triggered Actions Requested ================== + // == Triggered Actions Requested ================== // Called when creature attack expected (if creature can and no have current victim) // Note: for reaction at hostile action must be called AttackedBy function. @@ -164,7 +164,7 @@ class CreatureAI // Will auto attack if the swing timer is ready. bool DoMeleeAttackIfReady(); - ///== State checks ================================= + // == State checks ================================= // Is corpse looting allowed ? virtual bool CanBeLooted() const { return true; } @@ -178,7 +178,7 @@ class CreatureAI // Does the creature melee attack. bool IsMeleeAttackEnabled() const { return m_bMeleeAttack; } - ///== Helper functions ============================= + // == Helper functions ============================= // Attempts to cast a spell and returns the result. SpellCastResult DoCastSpellIfCan(Unit* pTarget, uint32 uiSpell, uint32 uiCastFlags = 0); @@ -211,7 +211,7 @@ class CreatureAI protected: bool CanTriggerAlert(Unit const* who); void TriggerAlertDirect(Unit const* who); - ///== Fields ======================================= + // == Fields ======================================= bool m_bUseAiAtControl; bool m_bMeleeAttack; // If we allow melee auto attack bool m_bCombatMovement; // If we allow targeted movement gen (chasing target) diff --git a/src/game/AI/PlayerAI.h b/src/game/AI/PlayerAI.h index 7b31380f6cd..d6b22157f53 100644 --- a/src/game/AI/PlayerAI.h +++ b/src/game/AI/PlayerAI.h @@ -41,10 +41,10 @@ class PlayerAI virtual void UpdateAI(uint32 const /*diff*/); virtual void MovementInform(uint32 MovementType, uint32 Data = 0) {} - ///== Helpers ===================================== + // == Helpers ===================================== bool CanCastSpell(Unit* pTarget, SpellEntry const* pSpell, bool isTriggered, bool checkControlled = true); - ///== Fields ======================================= + // == Fields ======================================= // Pointer to controlled by AI player Player* me; @@ -63,7 +63,7 @@ class PlayerControlledAI: public PlayerAI Unit* FindController(); void UpdateTarget(Unit* victim); - ///== Fields ======================================= + // == Fields ======================================= ObjectGuid controllerGuid; uint32 uiGlobalCD; std::vector usableSpells; diff --git a/src/game/AI/ScriptedInstance.cpp b/src/game/AI/ScriptedInstance.cpp index 8feab388f75..b1b8a357ebb 100644 --- a/src/game/AI/ScriptedInstance.cpp +++ b/src/game/AI/ScriptedInstance.cpp @@ -123,7 +123,7 @@ void ScriptedInstance::LoadSaveData(char const* pStr, uint32* encounters, uint32 } -/// Get the first found Player* (with requested properties) in the map. Can return nullptr. +// Get the first found Player* (with requested properties) in the map. Can return nullptr. Player* ScriptedInstance::GetPlayerInMap(bool bOnlyAlive /*=false*/, bool bCanBeGamemaster /*=true*/) { Map::PlayerList const& lPlayers = instance->GetPlayers(); @@ -138,7 +138,7 @@ Player* ScriptedInstance::GetPlayerInMap(bool bOnlyAlive /*=false*/, bool bCanBe return nullptr; } -/// Returns a pointer to a loaded GameObject that was stored in m_mGoEntryGuidStore. Can return nullptr +// Returns a pointer to a loaded GameObject that was stored in m_mGoEntryGuidStore. Can return nullptr GameObject* ScriptedInstance::GetSingleGameObjectFromStorage(uint32 uiEntry) { EntryGuidMap::iterator find = m_mGoEntryGuidStore.find(uiEntry); @@ -151,7 +151,7 @@ GameObject* ScriptedInstance::GetSingleGameObjectFromStorage(uint32 uiEntry) return nullptr; } -/// Returns a pointer to a loaded Creature that was stored in m_mGoEntryGuidStore. Can return nullptr +// Returns a pointer to a loaded Creature that was stored in m_mGoEntryGuidStore. Can return nullptr Creature* ScriptedInstance::GetSingleCreatureFromStorage(uint32 uiEntry, bool bSkipDebugLog /*=false*/) { EntryGuidMap::iterator find = m_mNpcEntryGuidStore.find(uiEntry); @@ -271,7 +271,7 @@ void DialogueHelper::StartNextDialogueText(int32 iTextEntry) DoNextDialogueStep(); } -/// Internal helper function to do the actual say of a DialogueEntry +// Internal helper function to do the actual say of a DialogueEntry void DialogueHelper::DoNextDialogueStep() { // Last Dialogue Entry done? @@ -327,7 +327,7 @@ void DialogueHelper::DoNextDialogueStep() ++m_pCurrentEntryTwoSide; } -/// Call this function within any DialogueUpdate method. This is required for saying next steps in a dialogue +// Call this function within any DialogueUpdate method. This is required for saying next steps in a dialogue void DialogueHelper::DialogueUpdate(uint32 uiDiff) { if (m_uiTimer) diff --git a/src/game/AI/ScriptedInstance.h b/src/game/AI/ScriptedInstance.h index 69737301a24..fb125c73f02 100644 --- a/src/game/AI/ScriptedInstance.h +++ b/src/game/AI/ScriptedInstance.h @@ -54,7 +54,7 @@ class ScriptedInstance : public InstanceData // Get a Player from map Player* GetPlayerInMap(bool bOnlyAlive = false, bool bCanBeGamemaster = true); - /// Wrapper for simulating map-wide text in this instance. It is expected that the Creature is stored in m_mNpcEntryGuidStore if loaded. + // Wrapper for simulating map-wide text in this instance. It is expected that the Creature is stored in m_mNpcEntryGuidStore if loaded. void DoOrSimulateScriptTextForThisInstance(int32 iTextEntry, uint32 uiCreatureEntry) { // Prevent debug output in GetSingleCreatureFromStorage @@ -64,8 +64,8 @@ class ScriptedInstance : public InstanceData protected: // Storage for GO-Guids and NPC-Guids typedef std::map EntryGuidMap; - EntryGuidMap m_mGoEntryGuidStore; ///< Store unique GO-Guids by entry - EntryGuidMap m_mNpcEntryGuidStore; ///< Store unique NPC-Guids by entry + EntryGuidMap m_mGoEntryGuidStore; // Store unique GO-Guids by entry + EntryGuidMap m_mNpcEntryGuidStore; // Store unique NPC-Guids by entry }; class ScriptedInstance_PTR : public ScriptedInstance @@ -79,25 +79,25 @@ class ScriptedInstance_PTR : public ScriptedInstance }; -/// A static const array of this structure must be handled to DialogueHelper +// A static const array of this structure must be handled to DialogueHelper struct SIDialogueEntry { - int32 iTextEntry; ///< To be said text entry - uint32 uiSayerEntry; ///< Entry of the mob who should say - uint32 uiTimer; ///< Time delay until next text of array is said (0 stops) + int32 iTextEntry; // To be said text entry + uint32 uiSayerEntry; // Entry of the mob who should say + uint32 uiTimer; // Time delay until next text of array is said (0 stops) }; -/// A static const array of this structure must be handled to DialogueHelper +// A static const array of this structure must be handled to DialogueHelper struct SIDialogueEntryTwoSide { - int32 iTextEntry; ///< To be said text entry (first side) - uint32 uiSayerEntry; ///< Entry of the mob who should say (first side) - int32 iTextEntryAlt; ///< To be said text entry (second side) - uint32 uiSayerEntryAlt; ///< Entry of the mob who should say (second side) - uint32 uiTimer; ///< Time delay until next text of array is said (0 stops) + int32 iTextEntry; // To be said text entry (first side) + uint32 uiSayerEntry; // Entry of the mob who should say (first side) + int32 iTextEntryAlt; // To be said text entry (second side) + uint32 uiSayerEntryAlt; // Entry of the mob who should say (second side) + uint32 uiTimer; // Time delay until next text of array is said (0 stops) }; -/// Helper class handling a dialogue given as static const array of DialogueEntry or DialogueEntryTwoSide +// Helper class handling a dialogue given as static const array of DialogueEntry or DialogueEntryTwoSide class DialogueHelper { public: @@ -106,9 +106,9 @@ class DialogueHelper // The array MUST be terminated by {0,0,0,0,0} DialogueHelper(SIDialogueEntryTwoSide const* aDialogueTwoSide); - /// Function to initialize the dialogue helper for instances. If not used with instances, GetSpeakerByEntry MUST be overwritten to obtain the speakers + // Function to initialize the dialogue helper for instances. If not used with instances, GetSpeakerByEntry MUST be overwritten to obtain the speakers void InitializeDialogueHelper(ScriptedInstance* pInstance, bool bCanSimulateText = false) { m_pInstance = pInstance; m_bCanSimulate = bCanSimulateText; } - /// Set if take first entries or second entries + // Set if take first entries or second entries void SetDialogueSide(bool bIsFirstSide) { m_bIsFirstSide = bIsFirstSide; } void StartNextDialogueText(int32 iTextEntry); @@ -116,9 +116,9 @@ class DialogueHelper void DialogueUpdate(uint32 uiDiff); protected: - /// Will be called when a dialogue step was done + // Will be called when a dialogue step was done virtual void JustDidDialogueStep(int32 /*iEntry*/) {} - /// Will be called to get a speaker, MUST be implemented if not used in instances + // Will be called to get a speaker, MUST be implemented if not used in instances virtual Creature* GetSpeakerByEntry(uint32 /*uiEntry*/) { return nullptr; } ScriptedInstance* m_pInstance; diff --git a/src/game/AccountMgr.h b/src/game/AccountMgr.h index 6c5bf1f9a52..b2794514d6e 100644 --- a/src/game/AccountMgr.h +++ b/src/game/AccountMgr.h @@ -45,7 +45,7 @@ class MasterPlayer; class AccountPersistentData { -/// WHISP FLOOD +// WHISP FLOOD public: struct WhisperData { @@ -63,7 +63,7 @@ class AccountPersistentData typedef std::map WhispersMap; WhispersMap m_whisperTargets; -/// MAIL FLOOD +// MAIL FLOOD public: void JustMailed(uint32 toAccount); bool CanMail(uint32 targetAccount); diff --git a/src/game/AuctionHouse/AuctionHouseMgr.cpp b/src/game/AuctionHouse/AuctionHouseMgr.cpp index c8ddeda40b8..621f7526ea0 100644 --- a/src/game/AuctionHouse/AuctionHouseMgr.cpp +++ b/src/game/AuctionHouse/AuctionHouseMgr.cpp @@ -647,7 +647,7 @@ AuctionHouseEntry const* AuctionHouseMgr::GetAuctionHouseEntry(uint32 factionTem void AuctionHouseObject::Update() { time_t curTime = sWorld.GetGameTime(); - ///- Handle expired auctions + // Handle expired auctions AuctionEntryMap::iterator next; // Store a ref to the entry and use it rather than derefencing the itr. // Also required to properly erase the itr and delete the entry if @@ -663,10 +663,10 @@ void AuctionHouseObject::Update() ++next; if (curTime > (entry->expireTime)) { - ///- Either cancel the auction if there was no bidder + // Either cancel the auction if there was no bidder if (entry->bidder == 0) sAuctionMgr.SendAuctionExpiredMail(entry); - ///- Or perform the transaction + // Or perform the transaction else { PlayerTransactionData data; @@ -687,7 +687,7 @@ void AuctionHouseObject::Update() sAuctionMgr.SendAuctionWonMail(entry); } - ///- In any case clear the auction + // In any case clear the auction entry->DeleteFromDB(); sAuctionMgr.RemoveAItem(entry->itemGuidLow); // Invalidates the ref to itr, cannot call delete on itr->second @@ -870,7 +870,7 @@ uint32 AuctionEntry::GetAuctionCut() const return uint32(auctionHouseEntry->cutPercent * bid * sWorld.getConfig(CONFIG_FLOAT_RATE_AUCTION_CUT) / 100.0f); } -/// the sum of outbid is (1% from current bid)*5, if bid is very small, it is 1c +// The sum of outbid is (1% from current bid)*5, if bid is very small, it is 1c uint32 AuctionEntry::GetAuctionOutBid() const { uint32 outbid = (bid / 100) * 5; diff --git a/src/game/Battlegrounds/BattleGroundAV.cpp b/src/game/Battlegrounds/BattleGroundAV.cpp index 5a217b11d35..b46c3dc2727 100644 --- a/src/game/Battlegrounds/BattleGroundAV.cpp +++ b/src/game/Battlegrounds/BattleGroundAV.cpp @@ -1181,8 +1181,8 @@ void BattleGroundAV::PopulateMineNode(uint8 mine, BattleGroundAVTeamIndex teamId } } -/// will spawn and despawn creatures around a node -/// more a wrapper around spawnevent cause graveyards are special +// will spawn and despawn creatures around a node +// more a wrapper around spawnevent cause graveyards are special void BattleGroundAV::PopulateNode(BG_AV_Nodes node) { ASSERT(node < BG_AV_NODES_MAX); @@ -1261,7 +1261,7 @@ void BattleGroundAV::PopulateNode(BG_AV_Nodes node) } -/// called when using a banner +// called when using a banner void BattleGroundAV::EventPlayerClickedOnFlag(Player* source, GameObject* targetGo) { if (GetStatus() != STATUS_IN_PROGRESS) diff --git a/src/game/Camera.h b/src/game/Camera.h index d4e13d6ba08..1e59cae4969 100644 --- a/src/game/Camera.h +++ b/src/game/Camera.h @@ -31,7 +31,7 @@ class UpdateData; class WorldPacket; class Player; -/// Camera - object-receiver. Receives broadcast packets from nearby worldobjects, object visibility changes and sends them to client +// Camera - object-receiver. Receives broadcast packets from nearby worldobjects, object visibility changes and sends them to client class Camera { friend class ViewPoint; @@ -79,7 +79,7 @@ class Camera GridReference m_gridRef; }; -/// Object-observer, notifies farsight object state to cameras that attached to it +// Object-observer, notifies farsight object state to cameras that attached to it class ViewPoint { friend class Camera; diff --git a/src/game/Chat/AsyncCommandHandlers.cpp b/src/game/Chat/AsyncCommandHandlers.cpp index 180653548fe..9ff83c79087 100644 --- a/src/game/Chat/AsyncCommandHandlers.cpp +++ b/src/game/Chat/AsyncCommandHandlers.cpp @@ -353,7 +353,7 @@ void PlayerSearchHandler::ShowPlayerListHelper(QueryResult* result, ChatHandler& if (result) { LocaleConstant locale = chatHandler.GetSession() ? chatHandler.GetSession()->GetSessionDbcLocale() : LOCALE_enUS; - ///- Circle through them. Display username and GM level + // Circle through them. Display username and GM level do { // check limit @@ -439,7 +439,7 @@ void AccountSearchHandler::HandleAccountLookupResult(QueryResult* result, uint32 void AccountSearchHandler::ShowAccountListHelper(QueryResult* result, ChatHandler& chatHandler, uint32& count, uint32 limit, bool title) { - ///- Display the list of account/characters online + // Display the list of account/characters online if (!chatHandler.GetSession() && title) // not output header for online case { chatHandler.SendSysMessage(LANG_ACCOUNT_LIST_BAR); @@ -447,7 +447,7 @@ void AccountSearchHandler::ShowAccountListHelper(QueryResult* result, ChatHandle chatHandler.SendSysMessage(LANG_ACCOUNT_LIST_BAR); } - ///- Circle through accounts + // Circle through accounts AccountTypes sessionAccess = chatHandler.GetSession() ? chatHandler.GetSession()->GetSecurity() : SEC_CONSOLE; do { diff --git a/src/game/Chat/Chat.cpp b/src/game/Chat/Chat.cpp index 64f4b63bcb2..47591655fa0 100644 --- a/src/game/Chat/Chat.cpp +++ b/src/game/Chat/Chat.cpp @@ -1862,13 +1862,13 @@ bool ChatHandler::ParseCommands(char const* text) MANGOS_ASSERT(text); MANGOS_ASSERT(*text); - /// chat case (.command or !command format) + // chat case (.command or !command format) if (m_session) { if (text[0] != '!' && text[0] != '.') return false; - /// ignore single . and ! in line + // ignore single . and ! in line if (strlen(text) < 2) return false; @@ -1876,11 +1876,11 @@ bool ChatHandler::ParseCommands(char const* text) return false; } - /// ignore messages staring from many dots. + // ignore messages staring from many dots. if ((text[0] == '.' && text[1] == '.') || (text[0] == '!' && text[1] == '!')) return false; - /// skip first . or ! (in console allowed use command with . and ! and without its) + // skip first . or ! (in console allowed use command with . and ! and without its) if (text[0] == '!' || text[0] == '.') ++text; @@ -3588,7 +3588,7 @@ uint32 ChatHandler::ExtractAccountId(char** args, std::string* accountName /*= n { uint32 account_id = 0; - ///- Get the account name from the command line + // Get the account name from the command line char* account_str = ExtractLiteralArg(args); if (!account_str) @@ -3596,7 +3596,7 @@ uint32 ChatHandler::ExtractAccountId(char** args, std::string* accountName /*= n if (!targetIfNullArg) return 0; - /// only target player different from self allowed (if targetPlayer!=nullptr then not console) + // only target player different from self allowed (if targetPlayer!=nullptr then not console) Player* targetPlayer = GetSelectedPlayer(); if (!targetPlayer) return 0; diff --git a/src/game/Chat/Chat.h b/src/game/Chat/Chat.h index 908570f7a86..db41e902e46 100644 --- a/src/game/Chat/Chat.h +++ b/src/game/Chat/Chat.h @@ -1088,11 +1088,11 @@ class ChatHandler */ struct DeletedInfo { - uint32 lowguid; ///< the low GUID from the character - std::string name; ///< the character name - uint32 accountId; ///< the account id - std::string accountName; ///< the account name - time_t deleteDate; ///< the date at which the character has been deleted + uint32 lowguid; // the low GUID from the character + std::string name; // the character name + uint32 accountId; // the account id + std::string accountName; // the account name + time_t deleteDate; // the date at which the character has been deleted }; typedef std::list DeletedInfoList; diff --git a/src/game/Commands/AccountCommands.cpp b/src/game/Commands/AccountCommands.cpp index acd75687f74..f2af72171f7 100644 --- a/src/game/Commands/AccountCommands.cpp +++ b/src/game/Commands/AccountCommands.cpp @@ -41,10 +41,10 @@ bool ChatHandler::HandleAccountCommand(char* args) return true; } - /// Set/Unset the expansion level for an account + // Set/Unset the expansion level for an account bool ChatHandler::HandleAccountSetAddonCommand(char* args) { - ///- Get the command line arguments + // Get the command line arguments char* accountStr = ExtractOptNotLastArg(&args); std::string account_name; @@ -78,7 +78,7 @@ bool ChatHandler::HandleAccountSetGmLevelCommand(char* args) if (!targetAccountId) return false; - /// only target player different from self allowed + // only target player different from self allowed if (GetAccountId() == targetAccountId) return false; @@ -93,12 +93,12 @@ bool ChatHandler::HandleAccountSetGmLevelCommand(char* args) return false; } - /// can set security level only for target with less security and to less security that we have - /// This is also reject self apply in fact + // can set security level only for target with less security and to less security that we have + // This is also reject self apply in fact if (HasLowerSecurityAccount(nullptr, targetAccountId, true)) return false; - /// account can't set security to same or grater level, need more power GM or console + // account can't set security to same or grater level, need more power GM or console AccountTypes plSecurity = GetAccessLevel(); if (AccountTypes(gm) >= plSecurity) { @@ -119,10 +119,10 @@ bool ChatHandler::HandleAccountSetGmLevelCommand(char* args) return true; } -/// Set password for account +// Set password for account bool ChatHandler::HandleAccountSetPasswordCommand(char* args) { - ///- Get the command line arguments + // Get the command line arguments std::string account_name; uint32 targetAccountId = ExtractAccountId(&args, &account_name); if (!targetAccountId) @@ -134,8 +134,8 @@ bool ChatHandler::HandleAccountSetPasswordCommand(char* args) if (!szPassword1 || !szPassword2) return false; - /// can set password only for target with less security - /// This is also reject self apply in fact + // can set password only for target with less security + // This is also reject self apply in fact if (HasLowerSecurityAccount(nullptr, targetAccountId, true)) return false; @@ -170,10 +170,10 @@ bool ChatHandler::HandleAccountSetPasswordCommand(char* args) return true; } -/// Set locked status for account +// Set locked status for account bool ChatHandler::HandleAccountSetLockedCommand(char* args) { - ///- Get the command line arguments + // Get the command line arguments char* accountStr = ExtractOptNotLastArg(&args); std::string account_name; @@ -208,17 +208,17 @@ bool ChatHandler::HandleAccountSetLockedCommand(char* args) return true; } -/// Output list of character for account +// Output list of character for account bool ChatHandler::HandleAccountCharactersCommand(char* args) { - ///- Get the command line arguments + // Get the command line arguments std::string account_name; Player* target = nullptr; // only for triggering use targeted player account uint32 account_id = ExtractAccountId(&args, &account_name, &target); if (!account_id) return false; - ///- Get the characters for account id + // Get the characters for account id CharacterDatabase.AsyncPQuery(&PlayerSearchHandler::HandlePlayerCharacterLookupResult, GetAccountId(), 100u, "SELECT `guid`, `name`, `race`, `class`, `level` FROM `characters` WHERE `account` = %u", @@ -235,10 +235,10 @@ bool ChatHandler::HandleAccountClearDataCommand(char* args) return true; } -/// Create an account +// Create an account bool ChatHandler::HandleAccountCreateCommand(char* args) { - ///- %Parse the command line arguments + // %Parse the command line arguments char *szAcc = ExtractQuotedOrLiteralArg(&args); char *szPassword = ExtractQuotedOrLiteralArg(&args); if (!szAcc || !szPassword) @@ -275,8 +275,8 @@ bool ChatHandler::HandleAccountCreateCommand(char* args) return true; } -/// Delete a user account and all associated characters in this realm -/// \todo This function has to be enhanced to respect the login/realm split (delete char, delete account chars in realm, delete account chars in realm then delete account +// Delete a user account and all associated characters in this realm +// TODO: This function has to be enhanced to respect the login/realm split (delete char, delete account chars in realm, delete account chars in realm then delete account bool ChatHandler::HandleAccountDeleteCommand(char* args) { if (!*args) @@ -287,9 +287,9 @@ bool ChatHandler::HandleAccountDeleteCommand(char* args) if (!account_id) return false; - /// Commands not recommended call from chat, but support anyway - /// can delete only for account with less security - /// This is also reject self apply in fact + // Commands not recommended call from chat, but support anyway + // can delete only for account with less security + // This is also reject self apply in fact if (HasLowerSecurityAccount (nullptr, account_id, true)) return false; @@ -316,14 +316,14 @@ bool ChatHandler::HandleAccountDeleteCommand(char* args) return true; } -/// Display info on users currently in the realm +// Display info on users currently in the realm bool ChatHandler::HandleAccountOnlineListCommand(char* args) { uint32 limit; if (!ExtractOptUInt32(&args, limit, 100)) return false; - ///- Get the list of accounts ID logged to the realm + // Get the list of accounts ID logged to the realm // 0 1 2 3 4 QueryResult* result = LoginDatabase.PQuery("SELECT `id`, `username`, `last_ip`, `gmlevel`, `expansion` FROM `account` WHERE `current_realm` = %u LIMIT %u", realmID, limit); if (!result) diff --git a/src/game/Commands/CreatureCommands.cpp b/src/game/Commands/CreatureCommands.cpp index bf2cd1d6189..9324108b977 100644 --- a/src/game/Commands/CreatureCommands.cpp +++ b/src/game/Commands/CreatureCommands.cpp @@ -1697,7 +1697,7 @@ bool ChatHandler::HandleNpcGroupLinkCommand(char * args) return true; } -/// Helper function +// Helper function inline Creature* Helper_CreateWaypointFor(Creature* wpOwner, WaypointPathOrigin wpOrigin, int32 pathId, uint32 wpId, WaypointNode const* wpNode, CreatureInfo const* waypointInfo) { TemporarySummonWaypoint* wpCreature = new TemporarySummonWaypoint(wpOwner->GetObjectGuid(), wpId+1, pathId, (uint32)wpOrigin); @@ -1768,9 +1768,9 @@ bool ChatHandler::HandleWpAddCommand(char* args) return false; // must exist as normal creature in mangos.sql 'creature_template' Creature* targetCreature = GetSelectedCreature(); - WaypointPathOrigin wpDestination = PATH_NO_PATH; ///< into which storage - int32 wpPathId = 0; ///< along which path - uint32 wpPointId = 0; ///< pointId if a waypoint was selected, in this case insert after + WaypointPathOrigin wpDestination = PATH_NO_PATH; // into which storage + int32 wpPathId = 0; // along which path + uint32 wpPointId = 0; // pointId if a waypoint was selected, in this case insert after Creature* wpOwner; if (targetCreature) @@ -2171,7 +2171,7 @@ bool ChatHandler::HandleWpShowCommand(char* args) char* subCmd_str = ExtractLiteralArg(&args); if (!subCmd_str) return false; - std::string subCmd = subCmd_str; ///< info, on, off, first, last + std::string subCmd = subCmd_str; // info, on, off, first, last uint32 dbGuid = 0; int32 wpPathId = 0; @@ -2355,7 +2355,7 @@ bool ChatHandler::HandleWpShowCommand(char* args) return false; } // HandleWpShowCommand - /// [Guid if no selected unit] [pathId [wpOrigin] ] + // [Guid if no selected unit] [pathId [wpOrigin] ] bool ChatHandler::HandleWpExportCommand(char* args) { if (!*args) diff --git a/src/game/Commands/MiscCommands.cpp b/src/game/Commands/MiscCommands.cpp index 4c0bf6c9d56..d104a44bed2 100644 --- a/src/game/Commands/MiscCommands.cpp +++ b/src/game/Commands/MiscCommands.cpp @@ -197,10 +197,10 @@ bool ChatHandler::HandleSetViewCommand(char* /*args*/) return true; } -/// Display the list of GMs +// Display the list of GMs bool ChatHandler::HandleGMListFullCommand(char* /*args*/) { - ///- Get the accounts with GM Level >0 + // Get the accounts with GM Level >0 QueryResult* result = LoginDatabase.PQuery("SELECT `username`, `account_access`.`gmlevel` FROM `account`, `account_access` " "WHERE `account_access`.`id` = `account`.`id` AND `account_access`.`gmlevel` > 0 AND `RealmID`=%u", realmID); if (result) @@ -210,7 +210,7 @@ bool ChatHandler::HandleGMListFullCommand(char* /*args*/) SendSysMessage(LANG_GMLIST_HEADER); SendSysMessage("========================"); - ///- Circle through them. Display username and GM level + // Circle through them. Display username and GM level do { Field* fields = result->Fetch(); @@ -1025,7 +1025,7 @@ bool ChatHandler::HandleSendMassItemsCommand(char* args) bool ChatHandler::HandleSendMoneyHelper(MailDraft& draft, char* args) { - /// format: "subject text" "mail text" money + // format: "subject text" "mail text" money char* msgSubject = ExtractQuotedArg(&args); if (!msgSubject) @@ -1050,7 +1050,7 @@ bool ChatHandler::HandleSendMoneyHelper(MailDraft& draft, char* args) bool ChatHandler::HandleSendMoneyCommand(char* args) { - /// format: name "subject text" "mail text" money + // format: name "subject text" "mail text" money Player* receiver; ObjectGuid receiver_guid; @@ -1076,7 +1076,7 @@ bool ChatHandler::HandleSendMoneyCommand(char* args) bool ChatHandler::HandleSendMassMoneyCommand(char* args) { - /// format: raceMask "subject text" "mail text" money + // format: raceMask "subject text" "mail text" money uint32 raceMask = 0; char const* name = nullptr; @@ -1129,21 +1129,21 @@ bool ChatHandler::HandleSendMailCommand(char* args) return true; } -/// Send a message to a player in game +// Send a message to a player in game bool ChatHandler::HandleSendMessageCommand(char* args) { - ///- Find the player + // Find the player Player* rPlayer; if (!ExtractPlayerTarget(&args, &rPlayer)) return false; - ///- message + // message if (!*args) return false; WorldSession* rPlayerSession = rPlayer->GetSession(); - ///- Check that he is not logging out. + // Check that he is not logging out. if (rPlayerSession->IsLogingOut()) { SendSysMessage(LANG_PLAYER_NOT_FOUND); @@ -1151,8 +1151,8 @@ bool ChatHandler::HandleSendMessageCommand(char* args) return false; } - ///- Send the message - //Use SendAreaTriggerMessage for fastest delivery. + // Send the message + // Use SendAreaTriggerMessage for fastest delivery. rPlayerSession->SendAreaTriggerMessage("%s", args); rPlayerSession->SendAreaTriggerMessage("|cffff0000[Message from administrator]:|r"); diff --git a/src/game/Commands/ServerCommands.cpp b/src/game/Commands/ServerCommands.cpp index 3269468cf8c..f2b6dffed38 100644 --- a/src/game/Commands/ServerCommands.cpp +++ b/src/game/Commands/ServerCommands.cpp @@ -390,7 +390,7 @@ bool ChatHandler::HandleServerPLimitCommand(char *args) return true; } -/// Triggering corpses expire check in world +// Triggering corpses expire check in world bool ChatHandler::HandleServerCorpsesCommand(char* /*args*/) { sObjectAccessor.RemoveOldCorpses(); @@ -490,7 +490,7 @@ bool ChatHandler::HandleServerIdleShutDownCommand(char* args) return true; } -/// Close RA connection +// Close RA connection bool ChatHandler::HandleQuitCommand(char* /*args*/) { // processed in RASocket @@ -498,7 +498,7 @@ bool ChatHandler::HandleQuitCommand(char* /*args*/) return true; } -/// Exit the realm +// Exit the realm bool ChatHandler::HandleServerExitCommand(char* /*args*/) { SendSysMessage(LANG_COMMAND_EXIT); @@ -522,7 +522,7 @@ bool ChatHandler::HandleViewLogCommand(char* args) return true; } -/// Set the filters of logging +// Set the filters of logging bool ChatHandler::HandleServerLogFilterCommand(char* args) { if (!*args) @@ -569,7 +569,7 @@ bool ChatHandler::HandleServerLogFilterCommand(char* args) return false; } -/// Set the level of logging +// Set the level of logging bool ChatHandler::HandleServerLogLevelCommand(char *args) { if (!*args) @@ -1146,7 +1146,7 @@ bool ChatHandler::HandleReloadQuestTemplateCommand(char* /*args*/) sObjectMgr.LoadQuests(); SendSysMessage("DB table `quest_template` (quest definitions) reloaded."); - /// dependent also from `gameobject` but this table not reloaded anyway + // dependent also from `gameobject` but this table not reloaded anyway sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Re-Loading GameObjects for quests..."); sObjectMgr.LoadGameObjectForQuests(); SendSysMessage("Data GameObjects for quests reloaded."); diff --git a/src/game/GMTicketMgr.h b/src/game/GMTicketMgr.h index ef82ae9b43b..8a0334c438a 100644 --- a/src/game/GMTicketMgr.h +++ b/src/game/GMTicketMgr.h @@ -168,7 +168,7 @@ class GmTicket bool m_completed = false; GMTicketEscalationStatus m_escalatedStatus; bool m_viewed = false; - bool m_needResponse = false; /// @todo find out the use of this, and then store it in DB + bool m_needResponse = false; // @todo find out the use of this, and then store it in DB bool m_needMoreHelp = false; uint8 m_securityNeeded = 0; TicketType m_ticketType; diff --git a/src/game/Group/Group.cpp b/src/game/Group/Group.cpp index 956c92df414..3a4135d480c 100644 --- a/src/game/Group/Group.cpp +++ b/src/game/Group/Group.cpp @@ -2307,10 +2307,10 @@ void Group::RewardGroupAtKill(Unit* pVictim, Player* pPlayerTap) if (member_with_max_level) { - /// not get Xp in PvP or no not gray players in group + // not get Xp in PvP or no not gray players in group xp = (PvP || !not_gray_member_with_max_level) ? 0 : MaNGOS::XP::Gain(not_gray_member_with_max_level, static_cast(pVictim)); - /// skip in check PvP case (for speed, not used) + // skip in check PvP case (for speed, not used) bool is_raid = PvP ? false : sMapStorage.LookupEntry(pVictim->GetMapId())->IsRaid() && isRaidGroup(); bool is_dungeon = PvP ? false : sMapStorage.LookupEntry(pVictim->GetMapId())->IsDungeon(); float group_rate = MaNGOS::XP::xp_in_group_rate(count, is_raid); diff --git a/src/game/Handlers/CharacterHandler.cpp b/src/game/Handlers/CharacterHandler.cpp index 639bbab01ad..64c93896acb 100644 --- a/src/game/Handlers/CharacterHandler.cpp +++ b/src/game/Handlers/CharacterHandler.cpp @@ -171,7 +171,7 @@ void WorldSession::HandleCharEnum(QueryResult* result) void WorldSession::HandleCharEnumOpcode(WorldPacket& /*recv_data*/) { - /// get all the data necessary for loading all characters (along with their pets) on the account + // get all the data necessary for loading all characters (along with their pets) on the account CharacterDatabase.AsyncPQuery(&chrHandler, &CharacterHandler::HandleCharEnumCallback, GetAccountId(), // 0 1 2 3 4 5 6 7 8 9 10 "SELECT `characters`.`guid`, `characters`.`name`, `characters`.`race`, `characters`.`class`, `characters`.`gender`, `characters`.`skin`, `characters`.`face`, `characters`.`hair_style`, `characters`.`hair_color`, `characters`.`facial_hair`, `characters`.`level`, " diff --git a/src/game/Handlers/MailHandler.cpp b/src/game/Handlers/MailHandler.cpp index 7ed7bf51dbd..e242b51576e 100644 --- a/src/game/Handlers/MailHandler.cpp +++ b/src/game/Handlers/MailHandler.cpp @@ -857,7 +857,7 @@ void WorldSession::HandleItemTextQuery(WorldPacket& recv_data) recv_data >> itemTextId >> mailId >> unk; - ///TODO: some check needed, if player has item with guid mailId, or has mail with id mailId + // TODO: some check needed, if player has item with guid mailId, or has mail with id mailId WorldPacket data(SMSG_ITEM_TEXT_QUERY_RESPONSE, (4 + 10)); // guess size data << itemTextId; diff --git a/src/game/Handlers/PetitionsHandler.cpp b/src/game/Handlers/PetitionsHandler.cpp index 121485c5438..2013b154f88 100644 --- a/src/game/Handlers/PetitionsHandler.cpp +++ b/src/game/Handlers/PetitionsHandler.cpp @@ -423,10 +423,10 @@ void WorldSession::HandleOfferPetitionOpcode(WorldPacket& recv_data) sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "OFFER PETITION: petition %u to %s", petitionGuid, playerGuid.GetString().c_str()); - /// Get petition signs count + // Get petition signs count uint8 signs = petition->GetSignatureCount(); - /// Send response + // Send response WorldPacket data(SMSG_PETITION_SHOW_SIGNATURES, (8 + 8 + 4 + 1 + signs * 12)); data << ObjectGuid(itemGuid); // item guid data << ObjectGuid(_player->GetObjectGuid()); // owner guid @@ -457,7 +457,7 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket& recv_data) return; } - /// Collect petition info data + // Collect petition info data if (_player->GetGuildId()) { WorldPacket data(SMSG_TURN_IN_PETITION_RESULTS, 4); diff --git a/src/game/Handlers/QueryHandler.cpp b/src/game/Handlers/QueryHandler.cpp index 27784897c1b..44be6aebbb9 100644 --- a/src/game/Handlers/QueryHandler.cpp +++ b/src/game/Handlers/QueryHandler.cpp @@ -149,7 +149,7 @@ void WorldSession::HandleQueryTimeOpcode(WorldPacket& /*recv_data*/) SendQueryTimeResponse(); } -/// Only _static_ data send in this packet !!! +// Only _static_ data send in this packet !!! void WorldSession::HandleCreatureQueryOpcode(WorldPacket& recv_data) { uint32 entry; @@ -235,7 +235,7 @@ void WorldSession::HandleCreatureQueryOpcode(WorldPacket& recv_data) } } -/// Only _static_ data send in this packet !!! +// Only _static_ data send in this packet !!! void WorldSession::HandleGameObjectQueryOpcode(WorldPacket& recv_data) { uint32 entryID; diff --git a/src/game/Mail/Mail.h b/src/game/Mail/Mail.h index fed85e95375..d2d48d0724f 100644 --- a/src/game/Mail/Mail.h +++ b/src/game/Mail/Mail.h @@ -47,7 +47,7 @@ class Object; class Player; #define MAIL_BODY_ITEM_TEMPLATE 8383 // - plain letter, A Dusty Unsent Letter: 889 -/// The maximal amount of items a mail can contain. +// The maximal amount of items a mail can contain. #define MAX_MAIL_ITEMS 1 /** * The type of the mail. @@ -57,21 +57,21 @@ enum MailMessageType { MAIL_NORMAL = 0, MAIL_AUCTION = 2, - MAIL_CREATURE = 3, /// client send CMSG_CREATURE_QUERY on this mailmessagetype - MAIL_GAMEOBJECT = 4, /// client send CMSG_GAMEOBJECT_QUERY on this mailmessagetype - MAIL_ITEM = 5, /// client send CMSG_ITEM_QUERY on this mailmessagetype + MAIL_CREATURE = 3, // client send CMSG_CREATURE_QUERY on this mailmessagetype + MAIL_GAMEOBJECT = 4, // client send CMSG_GAMEOBJECT_QUERY on this mailmessagetype + MAIL_ITEM = 5, // client send CMSG_ITEM_QUERY on this mailmessagetype }; /** * A Mask representing the status of the mail. */ enum MailCheckMask { - MAIL_CHECK_MASK_NONE = 0x00, /// Nothing. - MAIL_CHECK_MASK_READ = 0x01, /// This mail was read. - MAIL_CHECK_MASK_RETURNED = 0x02, /// This mail was returned. No allow return mail. - MAIL_CHECK_MASK_COPIED = 0x04, /// This mail was copied. No allow make item copy from mail text. - MAIL_CHECK_MASK_COD_PAYMENT = 0x08, /// This mail is payable on delivery. - MAIL_CHECK_MASK_HAS_BODY = 0x10, /// This mail has body text. + MAIL_CHECK_MASK_NONE = 0x00, // Nothing. + MAIL_CHECK_MASK_READ = 0x01, // This mail was read. + MAIL_CHECK_MASK_RETURNED = 0x02, // This mail was returned. No allow return mail. + MAIL_CHECK_MASK_COPIED = 0x04, // This mail was copied. No allow make item copy from mail text. + MAIL_CHECK_MASK_COD_PAYMENT = 0x08, // This mail is payable on delivery. + MAIL_CHECK_MASK_HAS_BODY = 0x10, // This mail has body text. }; /** @@ -133,11 +133,11 @@ class MailSender MailSender(Object* sender, MailStationery stationery = MAIL_STATIONERY_DEFAULT); MailSender(AuctionEntry* sender); public: // Accessors - /// The Messagetype of this MailSender. + // The Messagetype of this MailSender. MailMessageType GetMailMessageType() const { return m_messageType; } - /// The GUID of the player represented by this MailSender, or the Entry of the non-player object. + // The GUID of the player represented by this MailSender, or the Entry of the non-player object. uint32 GetSenderId() const { return m_senderId; } - /// The stationary associated with this MailSender + // The stationary associated with this MailSender MailStationery GetStationery() const { return m_stationery; } private: // Trap for wrong used guid as low guid, no body @@ -217,15 +217,15 @@ class MailDraft */ MailDraft(std::string subject, std::string text); public: // Accessors - /// Returns the template ID used for this MailDraft. + // Returns the template ID used for this MailDraft. uint16 GetMailTemplateId() const { return m_mailTemplateId; } - /// Returns the subject of this MailDraft. + // Returns the subject of this MailDraft. std::string const& GetSubject() const { return m_subject; } - /// Returns the ID of the text of this MailDraft. + // Returns the ID of the text of this MailDraft. uint32 GetBodyId() const { return m_bodyId; } - /// Returns the ammount of money in this MailDraft. + // Returns the ammount of money in this MailDraft. uint32 GetMoney() const { return m_money; } - /// Returns the Cost of delivery of this MailDraft. + // Returns the Cost of delivery of this MailDraft. uint32 GetCOD() const { return m_COD; } public: // modifiers @@ -257,22 +257,22 @@ class MailDraft MailDraft& operator=(MailDraft const&); // trap decl, no body, ...because items clone is high price operation void deleteIncludedItems(bool inDB = false); - bool prepareItems(Player* receiver); ///< called from SendMailTo for generate mailTemplateBase items + bool prepareItems(Player* receiver); // called from SendMailTo for generate mailTemplateBase items - /// The ID of the template associated with this MailDraft. + // The ID of the template associated with this MailDraft. uint16 m_mailTemplateId; - /// Boolean specifying whether items are required or not. + // Boolean specifying whether items are required or not. bool m_mailTemplateItemsNeed; - /// The subject of the MailDraft. + // The subject of the MailDraft. std::string m_subject; - /// The ID of the body of the MailDraft. + // The ID of the body of the MailDraft. uint32 m_bodyId; - /// A map of items in this MailDraft. - MailItemMap m_items; ///< Keep the items in a map to avoid duplicate guids (which can happen), store only low part of guid + // A map of items in this MailDraft. + MailItemMap m_items; // Keep the items in a map to avoid duplicate guids (which can happen), store only low part of guid - /// The amount of money in this MailDraft. + // The amount of money in this MailDraft. uint32 m_money; - /// The cod amount of this MailDraft. + // The cod amount of this MailDraft. uint32 m_COD; }; /** @@ -280,8 +280,8 @@ class MailDraft */ struct MailItemInfo { - uint32 itemGuid; ///< the item instance GUID - uint32 itemId; ///< the item template ID + uint32 itemGuid; // the item instance GUID + uint32 itemId; // the item template ID }; typedef std::vector MailItemInfoVec; @@ -290,39 +290,39 @@ typedef std::vector MailItemInfoVec; */ struct Mail { - /// the ID of the message contained in the mail. + // the ID of the message contained in the mail. uint32 messageID; - /// the type of the message + // the type of the message uint8 messageType; - /// the stationary used in this mail. + // the stationary used in this mail. uint8 stationery; - /// the ID of the template this mail is based on. + // the ID of the template this mail is based on. uint16 mailTemplateId; - /// the LowGUID of the player that sent this mail, or creature low guid, or other id + // the LowGUID of the player that sent this mail, or creature low guid, or other id uint32 sender; - /// the GUID of the player that this mail is sent to. + // the GUID of the player that this mail is sent to. ObjectGuid receiverGuid; - /// the subject of the mail + // the subject of the mail std::string subject; - /// The ID of the itemtext. + // The ID of the itemtext. uint32 itemTextId; - /// flag mark mail that already has items, or already generate none items for template + // flag mark mail that already has items, or already generate none items for template bool has_items; - /// A vector containing Information about the items in this mail. + // A vector containing Information about the items in this mail. MailItemInfoVec items; - /// A vector containing Information about the items that where already take from this mail. + // A vector containing Information about the items that where already take from this mail. std::vector removedItems; - /// The time at which this mail will expire + // The time at which this mail will expire time_t expire_time; - /// The time at which this mail (was/will be) delivered + // The time at which this mail (was/will be) delivered time_t deliver_time; - /// The amount of money contained in this mail. + // The amount of money contained in this mail. uint32 money; - /// The amount of money the receiver has to pay to get this mail. + // The amount of money the receiver has to pay to get this mail. uint32 COD; - /// The time at which this mail was read. + // The time at which this mail was read. uint32 checked; - /// The state of this mail. + // The state of this mail. MailState state; /** @@ -380,7 +380,7 @@ struct Mail * Generate items for template if items not genereated before (receiver has been offline, has_items == false) * */ - void prepareTemplateItems(Player* receiver); ///< called from _LoadMails for generate mailTemplateBase items not generated for offline player + void prepareTemplateItems(Player* receiver); // called from _LoadMails for generate mailTemplateBase items not generated for offline player }; #endif diff --git a/src/game/Mail/MassMailMgr.h b/src/game/Mail/MassMailMgr.h index a96b0b5a18f..82f0c3c1e1e 100644 --- a/src/game/Mail/MassMailMgr.h +++ b/src/game/Mail/MassMailMgr.h @@ -100,7 +100,7 @@ class MassMailMgr private: - /// Mass mail task store mail prototype and receivers list who not get mail yet + // Mass mail task store mail prototype and receivers list who not get mail yet struct MassMail { explicit MassMail(MailDraft* mailProto, MailSender sender); @@ -110,7 +110,7 @@ class MassMailMgr { } - /// m_protoMail is owned by MassMail, so at copy original MassMail field set to nullptr + // m_protoMail is owned by MassMail, so at copy original MassMail field set to nullptr std::unique_ptr m_protoMail; MailSender m_sender; @@ -119,7 +119,7 @@ class MassMailMgr typedef std::list MassMailList; - /// List of current queued mass mail tasks + // List of current queued mass mail tasks MassMailList m_massMails; }; diff --git a/src/game/Maps/Map.cpp b/src/game/Maps/Map.cpp index 142a059d984..b0a37658fb9 100644 --- a/src/game/Maps/Map.cpp +++ b/src/game/Maps/Map.cpp @@ -824,7 +824,7 @@ inline void Map::UpdateCells(uint32 map_diff) return; _lastCellsUpdate = now; - /// update active cells around players and active objects + // update active cells around players and active objects if (IsContinent() && m_cellThreads->status() == ThreadPool::Status::READY) UpdateActiveCellsAsynch(now, diff); else @@ -846,7 +846,7 @@ inline void Map::UpdateCells(uint32 map_diff) void Map::ProcessSessionPackets(PacketProcessing type) { uint32 beginTime = WorldTimer::getMSTime(); - /// update worldsessions for existing players + // update worldsessions for existing players for (m_mapRefIter = m_mapRefManager.begin(); m_mapRefIter != m_mapRefManager.end(); ++m_mapRefIter) { Player* plr = m_mapRefIter->getSource(); @@ -925,7 +925,7 @@ void Map::Update(uint32 t_diff) _dynamicTree.update(t_diff); UpdateSessionsMovementAndSpellsIfNeeded(); - /// update worldsessions for existing players + // update worldsessions for existing players for (m_mapRefIter = m_mapRefManager.begin(); m_mapRefIter != m_mapRefManager.end(); ++m_mapRefIter) { Player* plr = m_mapRefIter->getSource(); @@ -939,7 +939,7 @@ void Map::Update(uint32 t_diff) } uint32 sessionsUpdateTime = WorldTimer::getMSTimeDiffToNow(updateMapTime); - /// update players at tick + // update players at tick std::chrono::high_resolution_clock::time_point start = std::chrono::high_resolution_clock::now(); UpdateSessionsMovementAndSpellsIfNeeded(); UpdatePlayers(); @@ -993,7 +993,7 @@ void Map::Update(uint32 t_diff) } } - ///- Process necessary scripts + // Process necessary scripts if (m_uiScriptedEventsTimer <= t_diff) { UpdateScriptedEvents(); @@ -2450,15 +2450,15 @@ void BattleGroundMap::UnloadAll(bool pForce) Map::UnloadAll(pForce); } -/// Put scripts in the execution queue +// Put scripts in the execution queue void Map::ScriptsStart(ScriptMapMap const& scripts, uint32 id, ObjectGuid sourceGuid, ObjectGuid targetGuid) { - ///- Find the script map + // Find the script map ScriptMapMap::const_iterator s = scripts.find(id); if (s == scripts.end()) return; - ///- Schedule script execution for all scripts in the script map + // Schedule script execution for all scripts in the script map ScriptMap const* s2 = &(s->second); bool immedScript = false; @@ -2565,7 +2565,7 @@ void Map::TerminateScript(ScriptAction const& step) } } -/// Process queued scripts +// Process queued scripts void Map::ScriptsProcess() { std::unique_lock lock(m_scriptSchedule_lock); @@ -2573,7 +2573,7 @@ void Map::ScriptsProcess() if (m_scriptSchedule.empty()) return; - ///- Process overdue queued scripts + // Process overdue queued scripts ScriptScheduleMap::iterator iter = m_scriptSchedule.begin(); // ok as multimap is a *sorted* associative container while (!m_scriptSchedule.empty() && (iter->first <= sWorld.GetGameTime())) @@ -3104,7 +3104,7 @@ bool Map::GetWalkHitPosition(GenericTransport* transport, float srcX, float srcY return false; } - /// Find navmesh position near source + // Find navmesh position near source float point[3] = {srcY, srcZ, srcX}; // Warning : Coord order is Y,Z,X float closestPoint[3] = {0.0f, 0.0f, 0.0f}; @@ -3128,7 +3128,7 @@ bool Map::GetWalkHitPosition(GenericTransport* transport, float srcX, float srcY } filter.setExcludeFlags(NAV_STEEP_SLOPES); - /// Walk on the surface found + // Walk on the surface found dtPolyRef visited[50] = {0}; int visitedCount = 0; float t = 0.0f; @@ -3150,7 +3150,7 @@ bool Map::GetWalkHitPosition(GenericTransport* transport, float srcX, float srcY if (dtStatusFailed(m_navMeshQuery->closestPointOnPoly(visited[visitedCount - 1], endPosition, endPosition, nullptr))) return false; - /// Compute complete path, and at each path step, check for dynamic LoS collision + // Compute complete path, and at each path step, check for dynamic LoS collision // Rq: This is non-sense on Transports, since we are using position offsets ... float pathPoints[MAX_POINT_PATH_LENGTH * VERTEX_SIZE]; int pointCount = 0; @@ -3185,7 +3185,7 @@ bool Map::GetWalkHitPosition(GenericTransport* transport, float srcX, float srcY if (!MaNGOS::IsValidMapCoord(destX, destY, destZ)) return false; - /// Finalize Z-position using vmaps (more accurate) + // Finalize Z-position using vmaps (more accurate) if (transport) destZ += 0.5f; else @@ -3359,7 +3359,7 @@ bool Map::CheckDynamicTreeLoS(float x1, float y1, float z1, float x2, float y2, void Map::CrashUnload() { sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "Map %u (instance %u) crashed. Has players: %d", GetId(), GetInstanceId(), HavePlayers()); - /// Logout players + // Logout players for (m_mapRefIter = m_mapRefManager.begin(); m_mapRefIter != m_mapRefManager.end(); ++m_mapRefIter) { Player* player = m_mapRefIter->getSource(); diff --git a/src/game/Maps/MapManager.cpp b/src/game/Maps/MapManager.cpp index 4cc6b73248f..4da972cd302 100644 --- a/src/game/Maps/MapManager.cpp +++ b/src/game/Maps/MapManager.cpp @@ -486,8 +486,8 @@ uint32 MapManager::GetNumPlayersInInstances() return ret; } -///// returns a new or existing Instance -///// in case of battlegrounds it will only return an existing map, those maps are created by bg-system +// returns a new or existing Instance +// in case of battlegrounds it will only return an existing map, those maps are created by bg-system Map* MapManager::CreateInstance(uint32 id, Player* player) { Guard _guard(*this); diff --git a/src/game/Movement/WaypointManager.cpp b/src/game/Movement/WaypointManager.cpp index d2d61691dd4..e6a86ec2c55 100644 --- a/src/game/Movement/WaypointManager.cpp +++ b/src/game/Movement/WaypointManager.cpp @@ -447,7 +447,7 @@ void WaypointManager::_clearPath(WaypointPath &path) path.clear(); } -/// - Insert at a certain point, if pointId == 0 insert last. In this case pointId will be changed to the id to which the node was added +// Insert at a certain point, if pointId == 0 insert last. In this case pointId will be changed to the id to which the node was added WaypointNode const* WaypointManager::AddNode(uint32 entry, uint32 dbGuid, uint32& pointId, WaypointPathOrigin wpDest, float x, float y, float z) { // Support only normal movement tables @@ -594,7 +594,7 @@ void WaypointManager::SetNodeOrientation(uint32 entry, uint32 dbGuid, uint32 poi find->second.orientation = orientation; } -/// return true if a valid scriptId is provided +// return true if a valid scriptId is provided bool WaypointManager::SetNodeScriptId(uint32 entry, uint32 dbGuid, uint32 point, int32 pathId, WaypointPathOrigin wpOrigin, uint32 scriptId) { // Support only normal movement tables diff --git a/src/game/Movement/WaypointManager.h b/src/game/Movement/WaypointManager.h index fe95cdca96e..f3c75b317bf 100644 --- a/src/game/Movement/WaypointManager.h +++ b/src/game/Movement/WaypointManager.h @@ -124,7 +124,7 @@ class WaypointManager void DeletePath(uint32 id); // Toolbox for .wp add command - /// Add a node as position pointId. If pointId == 0 then as last point + // Add a node as position pointId. If pointId == 0 then as last point WaypointNode const* AddNode(uint32 entry, uint32 dbGuid, uint32& pointId, WaypointPathOrigin wpDest, float x, float y, float z); // Toolbox for .wp modify command diff --git a/src/game/Movement/spline/util.cpp b/src/game/Movement/spline/util.cpp index 88ec3fa71d2..45ded93bf62 100644 --- a/src/game/Movement/spline/util.cpp +++ b/src/game/Movement/spline/util.cpp @@ -24,7 +24,7 @@ namespace Movement { double gravity = 19.29110527038574; -/// Velocity bounds that makes fall speed limited +// Velocity bounds that makes fall speed limited float terminalVelocity = 60.148003f; float terminalSavefallVelocity = 7.f; diff --git a/src/game/ObjectAccessor.cpp b/src/game/ObjectAccessor.cpp index 8d426ccfc90..a1d260c7703 100644 --- a/src/game/ObjectAccessor.cpp +++ b/src/game/ObjectAccessor.cpp @@ -323,12 +323,12 @@ void ObjectAccessor::RemoveObject(MasterPlayer* player) HashMapHolder::Remove(player); playerNameToMasterPlayerPointer.erase(player->GetName()); } -/// Define the static member of HashMapHolder +// Define the static member of HashMapHolder template typename HashMapHolder::MapType HashMapHolder::m_objectMap; template std::shared_timed_mutex HashMapHolder::i_lock; -/// Global definitions for the hashmap storage +// Global definitions for the hashmap storage template class HashMapHolder; template class HashMapHolder; diff --git a/src/game/Objects/Corpse.cpp b/src/game/Objects/Corpse.cpp index 503aca4aade..6a783a9e905 100644 --- a/src/game/Objects/Corpse.cpp +++ b/src/game/Objects/Corpse.cpp @@ -54,7 +54,7 @@ Corpse::~Corpse() void Corpse::AddToWorld() { - ///- Register the corpse for guid lookup + // Register the corpse for guid lookup if (!IsInWorld()) sObjectAccessor.AddObject(this); @@ -63,7 +63,7 @@ void Corpse::AddToWorld() void Corpse::RemoveFromWorld() { - ///- Remove the corpse from the accessor + // Remove the corpse from the accessor if (IsInWorld()) sObjectAccessor.RemoveObject(this); diff --git a/src/game/Objects/Creature.cpp b/src/game/Objects/Creature.cpp index b8f12ff33c6..844f5c94849 100644 --- a/src/game/Objects/Creature.cpp +++ b/src/game/Objects/Creature.cpp @@ -227,7 +227,7 @@ void Creature::AddToWorld() { bool bWasInWorld = IsInWorld(); - ///- Register the creature for guid lookup + // Register the creature for guid lookup if (!IsInWorld() && GetObjectGuid().GetHigh() == HIGHGUID_UNIT) GetMap()->InsertObject(GetObjectGuid(), this); @@ -250,7 +250,7 @@ void Creature::AddToWorld() void Creature::RemoveFromWorld() { - ///- Remove the creature from the accessor + // Remove the creature from the accessor if (IsInWorld()) { if (GetUInt32Value(UNIT_CREATED_BY_SPELL)) @@ -2688,7 +2688,7 @@ void Creature::LoadCreatureAddon(bool reload) } } -/// Send a message to LocalDefense channel for players opposition team in the zone +// Send a message to LocalDefense channel for players opposition team in the zone void Creature::SendZoneUnderAttackMessage(Player* attacker) { uint32 areaId = GetAreaId(); diff --git a/src/game/Objects/Creature.h b/src/game/Objects/Creature.h index 3b4688954d7..78e8f60df85 100644 --- a/src/game/Objects/Creature.h +++ b/src/game/Objects/Creature.h @@ -238,9 +238,9 @@ class Creature : public Unit void UpdateDamagePhysical(WeaponAttackType attType) override; uint32 GetCurrentEquipmentId() const { return m_equipmentId; } - static float _GetHealthMod(int32 rank); ///< Get custom factor to scale health (default 1, CONFIG_FLOAT_RATE_CREATURE_*_HP) - static float _GetDamageMod(int32 rank); ///< Get custom factor to scale damage (default 1, CONFIG_FLOAT_RATE_*_DAMAGE) - static float _GetSpellDamageMod(int32 rank); ///< Get custom factor to scale spell damage (default 1, CONFIG_FLOAT_RATE_*_SPELLDAMAGE) + static float _GetHealthMod(int32 rank); // Get custom factor to scale health (default 1, CONFIG_FLOAT_RATE_CREATURE_*_HP) + static float _GetDamageMod(int32 rank); // Get custom factor to scale damage (default 1, CONFIG_FLOAT_RATE_*_DAMAGE) + static float _GetSpellDamageMod(int32 rank); // Get custom factor to scale spell damage (default 1, CONFIG_FLOAT_RATE_*_SPELLDAMAGE) VendorItemData const* GetVendorItems() const; VendorItemData const* GetVendorTemplateItems() const; @@ -594,7 +594,7 @@ class Creature : public Unit ObjectGuid m_lootRecipientGuid; // player who will have rights for looting if m_lootGroupRecipient==0 or group disbanded uint32 m_lootGroupRecipientId; // group who will have rights for looting if set and exist - /// Timers + // Timers uint32 m_corpseDecayTimer; // (msecs)timer for death or corpse disappearance time_t m_respawnTime; // (secs) time of next respawn uint32 m_respawnDelay; // (secs) delay between corpse disappearance and respawning diff --git a/src/game/Objects/DynamicObject.cpp b/src/game/Objects/DynamicObject.cpp index 1860c4367e2..b5fb1b7c569 100644 --- a/src/game/Objects/DynamicObject.cpp +++ b/src/game/Objects/DynamicObject.cpp @@ -39,7 +39,7 @@ DynamicObject::DynamicObject() : WorldObject(), m_spellId(0), m_effIndex(EFFECT_ void DynamicObject::AddToWorld() { - ///- Register the dynamicObject for guid lookup + // Register the dynamicObject for guid lookup if (!IsInWorld()) GetMap()->InsertObject(GetObjectGuid(), this); @@ -48,7 +48,7 @@ void DynamicObject::AddToWorld() void DynamicObject::RemoveFromWorld() { - ///- Remove the dynamicObject from the accessor + // Remove the dynamicObject from the accessor if (IsInWorld()) { GetMap()->EraseObject(GetObjectGuid()); diff --git a/src/game/Objects/GameObject.cpp b/src/game/Objects/GameObject.cpp index 9c2a3cc6a11..dcefbbc4761 100644 --- a/src/game/Objects/GameObject.cpp +++ b/src/game/Objects/GameObject.cpp @@ -118,7 +118,7 @@ GameObject* GameObject::CreateGameObject(uint32 entry) void GameObject::AddToWorld() { - ///- Register the gameobject for guid lookup + // Register the gameobject for guid lookup if (!IsInWorld()) { GetMap()->InsertObject(GetObjectGuid(), this); @@ -148,7 +148,7 @@ void GameObject::AIM_Initialize() void GameObject::RemoveFromWorld() { - ///- Remove the gameobject from the accessor + // Remove the gameobject from the accessor if (IsInWorld()) { if (AI()) @@ -334,7 +334,7 @@ void GameObject::Update(uint32 update_diff, uint32 /*p_time*/) UpdatePendingProcs(update_diff); - ///- UpdateAI + // UpdateAI if (i_AI) i_AI->UpdateAI(update_diff); diff --git a/src/game/Objects/Object.cpp b/src/game/Objects/Object.cpp index 0124e67d2bc..671a37a6e54 100644 --- a/src/game/Objects/Object.cpp +++ b/src/game/Objects/Object.cpp @@ -198,7 +198,7 @@ Object::~Object() { if (IsInWorld()) { - ///- Do NOT call RemoveFromWorld here, if the object is a player it will crash + // Do NOT call RemoveFromWorld here, if the object is a player it will crash sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "Object::~Object (GUID: %u TypeId: %u) deleted but still in world!!", GetGUIDLow(), GetTypeId()); MANGOS_ASSERT(false); } diff --git a/src/game/Objects/Pet.cpp b/src/game/Objects/Pet.cpp index bbf1b87816f..308d3a6e2bd 100644 --- a/src/game/Objects/Pet.cpp +++ b/src/game/Objects/Pet.cpp @@ -87,7 +87,7 @@ Pet::~Pet() void Pet::AddToWorld() { - ///- Register the pet for guid lookup + // Register the pet for guid lookup if (!IsInWorld()) GetMap()->InsertObject(GetObjectGuid(), this); @@ -107,11 +107,11 @@ void Pet::AddToWorld() void Pet::RemoveFromWorld() { - ///- Remove the pet from the accessor + // Remove the pet from the accessor if (IsInWorld()) GetMap()->EraseObject(GetObjectGuid()); - ///- Don't call the function for Creature, normal mobs + totems go in a different storage + // Don't call the function for Creature, normal mobs + totems go in a different storage Unit::RemoveFromWorld(); } diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index 3432585813d..d32d6693a8d 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -1164,7 +1164,7 @@ uint32 Player::EnvironmentalDamage(EnvironmentalDamageType type, uint32 damage) return damage; } -///The player sobers by 256 every 10 seconds +// The player sobers by 256 every 10 seconds void Player::HandleSobering() { m_drunkTimer = 0; @@ -2582,9 +2582,9 @@ void Player::ProcessDelayedOperations() void Player::AddToWorld() { - ///- Do not add/remove the player from the object storage - ///- It will crash when updating the ObjectAccessor - ///- The player should only be added when logging in + // Do not add/remove the player from the object storage + // It will crash when updating the ObjectAccessor + // The player should only be added when logging in Unit::AddToWorld(); for (int i = PLAYER_SLOT_START; i < PLAYER_SLOT_END; ++i) @@ -2602,7 +2602,7 @@ void Player::RemoveFromWorld() if (IsInWorld()) { - ///- Release charmed creatures, unsummon totems and remove pets/guardians + // Release charmed creatures, unsummon totems and remove pets/guardians UnsummonAllTotems(); RemoveMiniPet(); sZoneScriptMgr.HandlePlayerLeaveZone(this, m_zoneUpdateId); @@ -2622,9 +2622,9 @@ void Player::RemoveFromWorld() // otherwise there will be an existing duel flag pointer but no entry in m_gameObj DuelComplete(DUEL_INTERRUPTED); - ///- Do not add/remove the player from the object storage - ///- It will crash when updating the ObjectAccessor - ///- The player should only be removed when logging out + // Do not add/remove the player from the object storage + // It will crash when updating the ObjectAccessor + // The player should only be removed when logging out if (IsInWorld()) GetCamera().ResetView(); @@ -3293,8 +3293,8 @@ bool Player::IsInSameGroupWith(Player const* p) const GetGroup()->SameSubGroup((Player*)this, (Player*)p))); } -///- If the player is invited, remove him. If the group if then only 1 person, disband the group. -/// \todo Shouldn't we also check if there is no other invitees before disbanding the group? +// If the player is invited, remove him. If the group if then only 1 person, disband the group. +// TODO: Shouldn't we also check if there is no other invitees before disbanding the group? void Player::UninviteFromGroup() { Group* group = GetGroupInvite(); @@ -5933,17 +5933,17 @@ void Player::UpdateSkillsForLevel() uint32 max = SKILL_MAX(data); uint32 val = SKILL_VALUE(data); - /// update only level dependent max skill values + // update only level dependent max skill values if (max != 1) { - /// maximize skill always + // maximize skill always if (alwaysMaxSkill || (rcEntry->flags & SKILL_FLAG_ALWAYS_MAX_VALUE)) { SetUInt32Value(valueIndex, MAKE_SKILL_VALUE(maxSkill, maxSkill)); if (itr->second.uState != SKILL_NEW) itr->second.uState = SKILL_CHANGED; } - else if (max != maxconfskill) /// update max skill value if current max skill not maximized + else if (max != maxconfskill) // update max skill value if current max skill not maximized { SetUInt32Value(valueIndex, MAKE_SKILL_VALUE(val, maxSkill)); if (itr->second.uState != SKILL_NEW) @@ -14634,9 +14634,9 @@ void Player::SendQuestReward(Quest const* pQuest, uint32 XP) const GetSession()->SendPacket(&data); } -/// Sent when a quest is failed to be given off at questtaker. Specifically handled reasons: -/// INVALIDREASON_QUEST_FAILED_INVENTORY_FULL=4 (or 50) -/// INVALIDREASON_QUEST_FAILED_DUPLICATE_ITEM=17 +// Sent when a quest is failed to be given off at questtaker. Specifically handled reasons: +// INVALIDREASON_QUEST_FAILED_INVENTORY_FULL=4 (or 50) +// INVALIDREASON_QUEST_FAILED_DUPLICATE_ITEM=17 void Player::SendQuestFailedAtTaker(uint32 quest_id, uint32 reason) const { if (quest_id) @@ -16291,7 +16291,7 @@ void Player::SendSavedInstances() const #endif } -/// convert the player's binds to the group +// convert the player's binds to the group void Player::ConvertInstancesToGroup(Player* player, Group* group, ObjectGuid player_guid) { bool has_binds = false; @@ -17345,7 +17345,7 @@ void Player::SendResetFailedNotify() ChatHandler(this).SendSysMessage(LANG_LEAVE_TO_RESET_INSTANCE); } -/// Reset all solo instances and optionally send a message on success for each +// Reset all solo instances and optionally send a message on success for each void Player::ResetInstances(InstanceResetMethod method) { // method can be INSTANCE_RESET_ALL, INSTANCE_RESET_GROUP_JOIN @@ -20142,12 +20142,12 @@ uint32 Player::GetBaseWeaponSkillValue(WeaponAttackType attType) const void Player::ResurectUsingRequestData() { - /// Teleport before resurrecting by player, otherwise the player might get attacked from creatures near his corpse + // Teleport before resurrecting by player, otherwise the player might get attacked from creatures near his corpse if (m_resurrectGuid.IsPlayer()) TeleportTo(m_resurrectMap, m_resurrectX, m_resurrectY, m_resurrectZ, GetOrientation()); - //we cannot resurrect player when we triggered any kind of teleport - //player will be resurrected upon teleportation (in MSG_MOVE_TELEPORT_ACK handler) + // We cannot resurrect player when we triggered any kind of teleport + // Player will be resurrected upon teleportation (in MSG_MOVE_TELEPORT_ACK handler) if (IsBeingTeleported()) { ScheduleDelayedOperation(DELAYED_RESURRECT_PLAYER); diff --git a/src/game/Objects/Player.h b/src/game/Objects/Player.h index f86807ea957..ef768aebbc4 100644 --- a/src/game/Objects/Player.h +++ b/src/game/Objects/Player.h @@ -665,7 +665,7 @@ enum DuelCompleteType DUEL_FLED = 2 }; -/// Type of environmental damages +// Type of environmental damages enum EnvironmentalDamageType { DAMAGE_EXHAUSTED = 0, @@ -821,22 +821,22 @@ class PlayerTaxi std::ostringstream& operator<< (std::ostringstream& ss, PlayerTaxi const& taxi); -/// Holder for BattleGround data +// Holder for BattleGround data struct BGData { - uint32 bgInstanceID = 0; ///< This variable is set to bg->m_InstanceID, saved - /// when player is teleported to BG - (it is battleground's GUID) + uint32 bgInstanceID = 0; // This variable is set to bg->m_InstanceID, saved + // when player is teleported to BG - (it is battleground's GUID) BattleGroundTypeId bgTypeID = BATTLEGROUND_TYPE_NONE; std::set bgAfkReporter; uint8 bgAfkReportedCount = 0; time_t bgAfkReportedTimer = 0; - Team bgTeam = TEAM_NONE; ///< What side the player will be added to, saved + Team bgTeam = TEAM_NONE; // What side the player will be added to, saved - WorldLocation joinPos; ///< From where player entered BG, saved + WorldLocation joinPos; // From where player entered BG, saved - bool m_needSave = false; ///< true, if saved to DB fields modified after prev. save (marked as "saved" above) + bool m_needSave = false; // true, if saved to DB fields modified after prev. save (marked as "saved" above) }; struct TransactionPart; @@ -2530,7 +2530,7 @@ class Player final: public Unit bool CanSpeak() const; bool FallGround(uint8 fallMode); - /// Anticheat + // Anticheat MovementAnticheat* GetCheatData() const { return m_session->GetCheatData(); } void OnDisconnected(); void RelocateToLastClientPosition(); diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 16b71d1bb63..023b7889bff 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -3934,7 +3934,7 @@ void Unit::RemoveAura(Aura* Aur, AuraRemoveMode mode) // some ShapeshiftBoosts at remove trigger removing other auras including parent Shapeshift aura // remove aura from list before to prevent deleting it before - ///m_Auras.erase(i); + // m_Auras.erase(i); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Aura %u [spell%u] now is remove mode %d. Caster %s", Aur->GetModifier()->m_auraname, Aur->GetSpellProto()->Id, mode, GetName()); @@ -7550,7 +7550,7 @@ bool Unit::IsVisibleForInState(WorldObject const* pDetector, WorldObject const* return IsVisibleForOrDetect(pDetector, viewPoint, false, inVisibleList); } -/// returns true if creature can't be seen by alive units +// returns true if creature can't be seen by alive units bool Unit::IsInvisibleForAlive() const { // Ghost @@ -7561,7 +7561,7 @@ bool Unit::IsInvisibleForAlive() const return IsSpiritService(); } -/// returns true if creature can be seen by dead units +// returns true if creature can be seen by dead units bool Unit::IsVisibleForDead() const { if (IsCreature() && ToCreature()->GetCreatureInfo()->type_flags & CREATURE_TYPEFLAGS_GHOST_VISIBLE) @@ -8813,7 +8813,7 @@ Player* Unit::GetSpellModOwner() const return nullptr; } -///----------Pet responses methods----------------- +// ----------Pet responses methods----------------- void Unit::SendPetCastFail(uint32 spellid, SpellCastResult msg) { if (msg == SPELL_CAST_OK) @@ -8863,7 +8863,7 @@ void Unit::SendPetAIReaction() } } -///----------End of Pet responses methods---------- +// ----------End of Pet responses methods---------- void Unit::StopMoving(bool force) { diff --git a/src/game/Objects/UnitDefines.h b/src/game/Objects/UnitDefines.h index 59dddd4e7d5..1ae229f1808 100644 --- a/src/game/Objects/UnitDefines.h +++ b/src/game/Objects/UnitDefines.h @@ -645,7 +645,7 @@ static char const* UnitFlagToString(uint32 flag) return "UNKNOWN"; } -/// Non Player Character flags +// Non Player Character flags enum NPCFlags { UNIT_NPC_FLAG_NONE = 0x00000000, diff --git a/src/game/PlayerBots/PlayerBotAI.cpp b/src/game/PlayerBots/PlayerBotAI.cpp index 9ba83a20e3e..620560bcfe0 100644 --- a/src/game/PlayerBots/PlayerBotAI.cpp +++ b/src/game/PlayerBots/PlayerBotAI.cpp @@ -64,7 +64,7 @@ void PlayerBotFleeingAI::OnPlayerLogin() me->SetCheatGod(true); } -/// MageOrgrimmarAttackerAI event +// MageOrgrimmarAttackerAI event enum { SPELL_FROST_NOVA = 122, @@ -142,7 +142,7 @@ void MageOrgrimmarAttackerAI::UpdateAI(uint32 const diff) PlayerBotAI::UpdateAI(diff); if (me->GetLevel() != 60) me->GiveLevel(60); - /// DEATH + // DEATH if (!me->IsAlive()) { sPlayerBotMgr.DeleteBot(me->GetGUIDLow()); @@ -162,7 +162,7 @@ void MageOrgrimmarAttackerAI::UpdateAI(uint32 const diff) */ return; } - /// COMBAT AI + // COMBAT AI if (me->IsNonMeleeSpellCasted(false) || (me->HasAura(AURA_REGEN_MANA) && me->GetPower(POWER_MANA) != me->GetMaxPower(POWER_MANA))) return; float range = me->IsInCombat() ? 30.0f : frand(15, 30); @@ -217,7 +217,7 @@ void MageOrgrimmarAttackerAI::UpdateAI(uint32 const diff) me->CastSpell(target, spellId, false); return; } - /// OUT OF COMBAT REGEN + // OUT OF COMBAT REGEN if (!me->IsInCombat() && me->GetPower(POWER_MANA) < 150) { if (!me->movespline->Finalized()) @@ -225,7 +225,7 @@ void MageOrgrimmarAttackerAI::UpdateAI(uint32 const diff) me->CastSpell(target, AURA_REGEN_MANA, false); return; } - /// MOVEMENT AI + // MOVEMENT AI float x, y, z = 0; // Where to go float r = 10; if (me->movespline->Finalized()) diff --git a/src/game/Protocol/Opcodes.cpp b/src/game/Protocol/Opcodes.cpp index 10761255246..ceaaee87fca 100644 --- a/src/game/Protocol/Opcodes.cpp +++ b/src/game/Protocol/Opcodes.cpp @@ -39,20 +39,20 @@ OpcodeHandler const Opcodes::emptyHandler = Opcodes::Opcodes() { - /// Build Opcodes map + // Build Opcodes map BuildOpcodeList(); } Opcodes::~Opcodes() { - /// Clear Opcodes + // Clear Opcodes mOpcodeMap.clear(); } void Opcodes::BuildOpcodeList() { - /// Correspondence between opcodes and their names + // Correspondence between opcodes and their names /*0x000*/ StoreOpcode(MSG_NULL_ACTION, "MSG_NULL_ACTION", STATUS_NEVER, PACKET_PROCESS_MAX_TYPE, &WorldSession::Handle_NULL); /*0x001*/ StoreOpcode(CMSG_BOOTME, "CMSG_BOOTME", STATUS_NEVER, PACKET_PROCESS_MAX_TYPE, &WorldSession::Handle_NULL); /*0x002*/ StoreOpcode(CMSG_DBLOOKUP, "CMSG_DBLOOKUP", STATUS_NEVER, PACKET_PROCESS_MAX_TYPE, &WorldSession::Handle_NULL); diff --git a/src/game/Protocol/Opcodes.h b/src/game/Protocol/Opcodes.h index e8ad0ef964c..a9013ebcb7c 100644 --- a/src/game/Protocol/Opcodes.h +++ b/src/game/Protocol/Opcodes.h @@ -19,9 +19,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/// \addtogroup u2w -/// @{ -/// \file +// \addtogroup u2w +// @{ +// \file #ifndef _OPCODES_H #define _OPCODES_H @@ -34,22 +34,22 @@ // table opcodeTable in source when Opcode.h included but WorldSession.h not included #include "WorldSession.h" -/// List of Opcodes +// List of Opcodes #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 #include "Opcodes_1_12_1.h" #else #include "Opcodes_1_8_0.h" #endif -/// Player state +// Player state enum SessionStatus { - STATUS_AUTHED = 0, ///< Player authenticated (_player==nullptr, m_playerRecentlyLogout = false or will be reset before handler call) - STATUS_LOGGEDIN, ///< Player in game (_player!=nullptr, inWorld()) - STATUS_TRANSFER, ///< Player transferring to another map (_player!=nullptr, !inWorld()) - STATUS_LOGGEDIN_OR_RECENTLY_LOGGEDOUT, ///< _player!= nullptr or _player==nullptr && m_playerRecentlyLogout) - STATUS_NEVER, ///< Opcode not accepted from client (deprecated or server side only) - STATUS_UNHANDLED ///< We don' handle this opcode yet + STATUS_AUTHED = 0, // Player authenticated (_player==nullptr, m_playerRecentlyLogout = false or will be reset before handler call) + STATUS_LOGGEDIN, // Player in game (_player!=nullptr, inWorld()) + STATUS_TRANSFER, // Player transferring to another map (_player!=nullptr, !inWorld()) + STATUS_LOGGEDIN_OR_RECENTLY_LOGGEDOUT, // _player!= nullptr or _player==nullptr && m_playerRecentlyLogout) + STATUS_NEVER, // Opcode not accepted from client (deprecated or server side only) + STATUS_UNHANDLED // We don' handle this opcode yet }; class WorldPacket; @@ -80,7 +80,7 @@ class Opcodes ref.handler = handler; } - /// Lookup opcode + // Lookup opcode inline OpcodeHandler const* LookupOpcode(uint16 id) const { OpcodeMap::const_iterator itr = mOpcodeMap.find(id); @@ -89,7 +89,7 @@ class Opcodes return nullptr; } - /// compatible with other mangos branches access + // compatible with other mangos branches access inline OpcodeHandler const& operator[] (uint16 id) const { @@ -107,7 +107,7 @@ class Opcodes #define opcodeTable MaNGOS::Singleton::Instance() -/// Lookup opcode name for human understandable logging +// Lookup opcode name for human understandable logging inline char const* LookupOpcodeName(uint16 id) { if (OpcodeHandler const* op = opcodeTable.LookupOpcode(id)) @@ -116,4 +116,4 @@ inline char const* LookupOpcodeName(uint16 id) } #endif -/// @} +// @} diff --git a/src/game/Protocol/WorldSocket.h b/src/game/Protocol/WorldSocket.h index e39ab84678b..0f4e5375d9e 100644 --- a/src/game/Protocol/WorldSocket.h +++ b/src/game/Protocol/WorldSocket.h @@ -48,13 +48,13 @@ class WorldSocket: public MangosSocket int ProcessIncoming (WorldPacket* new_pct); - /// Called by ProcessIncoming() on CMSG_AUTH_SESSION. + // Called by ProcessIncoming() on CMSG_AUTH_SESSION. int HandleAuthSession (WorldPacket& recvPacket); - /// Called by ProcessIncoming() on CMSG_PING. + // Called by ProcessIncoming() on CMSG_PING. int HandlePing (WorldPacket& recvPacket); }; #endif /* _WORLDSOCKET_H */ -/// @} +// @} diff --git a/src/game/Protocol/WorldSocketMgr.h b/src/game/Protocol/WorldSocketMgr.h index 4525112c30a..b0288ea41ee 100644 --- a/src/game/Protocol/WorldSocketMgr.h +++ b/src/game/Protocol/WorldSocketMgr.h @@ -33,7 +33,7 @@ #include "ace/Thread_Mutex.h" class WorldSocket; -/// Manages all sockets connected to peers and network threads +// Manages all sockets connected to peers and network threads class WorldSocketMgr: public MangosSocketMgr { public: @@ -46,4 +46,4 @@ class WorldSocketMgr: public MangosSocketMgr #define sWorldSocketMgr WorldSocketMgr::Instance() #endif -/// @} +// @} diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index b34afced965..98fcbbcd2bf 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -1556,7 +1556,7 @@ enum ResponseCodes CHAR_NAME_SUCCESS, }; -/// Ban function modes +// Ban function modes enum BanMode { BAN_ACCOUNT, @@ -1564,7 +1564,7 @@ enum BanMode BAN_IP }; -/// Ban function return codes +// Ban function return codes enum BanReturn { BAN_SUCCESS, diff --git a/src/game/SocialMgr.h b/src/game/SocialMgr.h index e5365809460..5d39895d3c1 100644 --- a/src/game/SocialMgr.h +++ b/src/game/SocialMgr.h @@ -78,7 +78,7 @@ struct FriendInfo typedef std::map PlayerSocialMap; typedef std::map SocialMap; -/// Results of friend related commands +// Results of friend related commands enum FriendsResult { FRIEND_DB_ERROR = 0x00, // ERR_FRIEND_NOT_FOUND diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 58e258a8c5a..60dfe6fd6ed 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -6988,8 +6988,8 @@ SpellCastResult Spell::CheckCast(bool strict) if (m_casterUnit->IsPlayer() && m_casterUnit->GetTransport() && !static_cast(m_casterUnit)->IsOutdoorOnTransport()) return SPELL_FAILED_NO_MOUNTS_ALLOWED; - /// Specific case for Temple of Ahn'Qiraj mounts as they are usable only in AQ40 and are the only mounts allowed here - /// TBC and above handle this by using m_spellInfo->AreaId + // Specific case for Temple of Ahn'Qiraj mounts as they are usable only in AQ40 and are the only mounts allowed here + // TBC and above handle this by using m_spellInfo->AreaId bool isAQ40Mount = false; switch (m_spellInfo->Id) @@ -7548,13 +7548,13 @@ bool Spell::IgnoreItemRequirements() const { if (m_IsTriggeredSpell) { - /// Not own traded item (in trader trade slot) req. reagents including triggered spell case + // Not own traded item (in trader trade slot) req. reagents including triggered spell case if (Item* targetItem = m_targets.getItemTarget()) if (targetItem->GetOwnerGuid() != m_caster->GetObjectGuid()) return false; - /// Some triggered spells have same reagents that have master spell - /// expected in test: master spell have reagents in first slot then triggered don't must use own + // Some triggered spells have same reagents that have master spell + // expected in test: master spell have reagents in first slot then triggered don't must use own return !(m_triggeredBySpellInfo && !m_triggeredBySpellInfo->Reagent[0]); } diff --git a/src/game/Spells/SpellEntry.h b/src/game/Spells/SpellEntry.h index 218c7f522f3..bad3f7cd744 100644 --- a/src/game/Spells/SpellEntry.h +++ b/src/game/Spells/SpellEntry.h @@ -503,7 +503,7 @@ class SpellEntry SpellEntry() = default; ~SpellEntry() = default; - /// DBC DATA: + // DBC DATA: uint32 Id = 0; // 0 uint32 School = 0; // 1 uint32 Category = 0; // 2 @@ -597,7 +597,7 @@ class SpellEntry //uint32 MinReputation; // 174 not used //uint32 RequiredAuraVision; // 175 not used - /// CUSTOM FIELDS: + // CUSTOM FIELDS: uint32 MinTargetLevel = 0; // 162 uint32 Custom = 0; // 176 uint32 Internal = 0; // Assigned by the core. diff --git a/src/game/Spells/SpellMgr.cpp b/src/game/Spells/SpellMgr.cpp index 81c13c14df9..2573fd86641 100644 --- a/src/game/Spells/SpellMgr.cpp +++ b/src/game/Spells/SpellMgr.cpp @@ -2264,7 +2264,7 @@ void SpellMgr::LoadSpellPetAuras() sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ">> Loaded %u spell pet auras", count); } -/// Some checks for spells, to prevent adding deprecated/broken spells for trainers, spell book, etc +// Some checks for spells, to prevent adding deprecated/broken spells for trainers, spell book, etc bool SpellMgr::IsSpellValid(SpellEntry const* spellInfo, Player* pl, bool msg) { // not exist diff --git a/src/game/Transports/Transport.h b/src/game/Transports/Transport.h index bc204c3276b..05dd1939d4d 100644 --- a/src/game/Transports/Transport.h +++ b/src/game/Transports/Transport.h @@ -48,13 +48,13 @@ class GenericTransport : public GameObject typedef std::set PlayerSet; PassengerSet& GetPassengers() { return m_passengers; } - /// This method transforms supplied transport offsets into global coordinates + // This method transforms supplied transport offsets into global coordinates void CalculatePassengerPosition(float& x, float& y, float& z, float* o = nullptr) const { CalculatePassengerPosition(x, y, z, o, GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation()); } - /// This method transforms supplied global coordinates into local offsets + // This method transforms supplied global coordinates into local offsets void CalculatePassengerOffset(float& x, float& y, float& z, float* o = nullptr) const { CalculatePassengerOffset(x, y, z, o, GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation()); diff --git a/src/game/UnitAuraProcHandler.cpp b/src/game/UnitAuraProcHandler.cpp index 0c99fc124bd..bec6693daad 100644 --- a/src/game/UnitAuraProcHandler.cpp +++ b/src/game/UnitAuraProcHandler.cpp @@ -250,8 +250,8 @@ SpellProcEventTriggerCheck Unit::IsTriggeredAtSpellProcEvent(Unit* pVictim, Spel if (spellProto->Id == 14076 || spellProto->Id == 14094 || spellProto->Id == 14095) return SPELL_PROC_TRIGGER_FAILED; - /// [TODO] - /// Delete all these spells, and manage it via the DB (spell_proc_event) + // [TODO] + // Delete all these spells, and manage it via the DB (spell_proc_event) if (procSpell && !(procExtra & PROC_EX_CAST_END)) { #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 diff --git a/src/game/Weather.cpp b/src/game/Weather.cpp index e090a27648b..f0455df40a4 100644 --- a/src/game/Weather.cpp +++ b/src/game/Weather.cpp @@ -36,7 +36,7 @@ INSTANTIATE_SINGLETON_1(WeatherMgr); -/// Weather sound defines ( only for 1.12 ) +// Weather sound defines ( only for 1.12 ) enum WeatherSounds { WEATHER_NOSOUND = 0, @@ -51,7 +51,7 @@ enum WeatherSounds WEATHER_SANDSTORMHEAVY = 8558 }; -/// Create the Weather object +// Create the Weather object Weather::Weather(uint32 zone, WeatherZoneChances const* weatherChances) : m_zone(zone), m_type(WEATHER_TYPE_FINE), @@ -63,19 +63,19 @@ Weather::Weather(uint32 zone, WeatherZoneChances const* weatherChances) : DETAIL_FILTER_LOG(LOG_FILTER_WEATHER, "WORLD: Starting weather system for zone %u (change every %u minutes).", m_zone, (m_timer.GetInterval() / (MINUTE * IN_MILLISECONDS))); } -/// Launch a weather update +// Launch a weather update bool Weather::Update(uint32 diff, Map const* _map) { m_timer.Update(diff); - ///- If the timer has passed, ReGenerate the weather + // If the timer has passed, ReGenerate the weather if (m_timer.Passed()) { m_timer.Reset(); // update only if Regenerate has changed the weather if (ReGenerate()) { - ///- Weather will be removed if not updated (no players in zone anymore) + // Weather will be removed if not updated (no players in zone anymore) if (!SendWeatherForPlayersInZone(_map)) return false; } @@ -83,7 +83,7 @@ bool Weather::Update(uint32 diff, Map const* _map) return true; } -/// Calculate the new weather, returns true if and only if the weather changed +// Calculate the new weather, returns true if and only if the weather changed bool Weather::ReGenerate() { if (m_isPermanentWeather) @@ -101,11 +101,11 @@ bool Weather::ReGenerate() return old_type != m_type || old_grade != m_grade; } - /// Weather statistics: - ///- 30% - no change - ///- 30% - weather gets better (if not fine) or change weather type - ///- 30% - weather worsens (if not fine) - ///- 10% - radical change (if not fine) + // Weather statistics: + // 30% - no change + // 30% - weather gets better (if not fine) or change weather type + // 30% - weather worsens (if not fine) + // 10% - radical change (if not fine) uint32 u = urand(0, 99); if (u < 30) @@ -141,10 +141,10 @@ bool Weather::ReGenerate() if (m_type != WEATHER_TYPE_FINE) { - /// Radical change: - ///- if light -> heavy - ///- if medium -> change weather type - ///- if heavy -> 50% light, 50% change weather type + // Radical change: + // if light -> heavy + // if medium -> change weather type + // if heavy -> 50% light, 50% change weather type if (m_grade < 0.33333334f) { @@ -183,11 +183,11 @@ bool Weather::ReGenerate() else m_type = WEATHER_TYPE_FINE; - /// New weather statistics (if not fine): - ///- 85% light - ///- 7% medium - ///- 7% heavy - /// If fine 100% sun (no fog) + // New weather statistics (if not fine): + // 85% light + // 7% medium + // 7% heavy + // If fine 100% sun (no fog) if (m_type == WEATHER_TYPE_FINE) m_grade = 0.0f; @@ -233,11 +233,11 @@ bool Weather::SendWeatherForPlayersInZone(Map const* _map) data << uint32(GetSound()); // 1.12 soundid data << uint8(0); // 1 = instant change, 0 = smooth change - ///- Send the weather packet to all players in this zone + // Send the weather packet to all players in this zone if (!_map->SendToPlayersInZone(&data, m_zone)) return false; - ///- Log the event + // Log the event LogWeatherState(GetWeatherState()); return true; @@ -350,14 +350,14 @@ WeatherSystem::WeatherSystem(Map const* _map) : m_map(_map) WeatherSystem::~WeatherSystem() { - ///- Empty the WeatherMap + // Empty the WeatherMap for (const auto& weather : m_weathers) delete weather.second; m_weathers.clear(); } -/// Find or Create a Weather object by the given zoneid +// Find or Create a Weather object by the given zoneid Weather* WeatherSystem::FindOrCreateWeather(uint32 zoneId) { WeatherMap::const_iterator itr = m_weathers.find(zoneId); @@ -370,13 +370,13 @@ Weather* WeatherSystem::FindOrCreateWeather(uint32 zoneId) return w; } -/// Update Weathers for the different zones +// Update Weathers for the different zones void WeatherSystem::UpdateWeathers(uint32 diff) { - ///- Send an update signal to Weather objects + // Send an update signal to Weather objects for (WeatherMap::iterator itr = m_weathers.begin(); itr != m_weathers.end();) { - ///- and remove Weather objects for zones with no player + // and remove Weather objects for zones with no player // As interval > WorldTick if (!itr->second->Update(diff, m_map)) { @@ -388,7 +388,7 @@ void WeatherSystem::UpdateWeathers(uint32 diff) } } -/// Get the sound number associated with the current weather +// Get the sound number associated with the current weather uint32 Weather::GetSound() { uint32 sound; @@ -432,7 +432,7 @@ uint32 Weather::GetSound() return sound; } -/// Load Weather chanced from table game_weather +// Load Weather chanced from table game_weather void WeatherMgr::LoadWeatherZoneChances() { uint32 count = 0; diff --git a/src/game/Weather.h b/src/game/Weather.h index 8376372af08..8b628ce1b40 100644 --- a/src/game/Weather.h +++ b/src/game/Weather.h @@ -52,20 +52,20 @@ enum WeatherState struct WeatherZoneChances; -/// Weather for one zone +// Weather for one zone class Weather { public: Weather(uint32 zone, WeatherZoneChances const* weatherChances); ~Weather() {}; - /// Send Weather to one player + // Send Weather to one player void SendWeatherUpdateToPlayer(Player* player); - /// Set the weather + // Set the weather void SetWeather(WeatherType type, float grade, Map const* _map, bool isPermanent); - /// Update the weather in this zone, when the timer is expired the weather will be rolled again + // Update the weather in this zone, when the timer is expired the weather will be rolled again bool Update(uint32 diff, Map const* _map); - /// Check if a type is valid + // Check if a type is valid static bool IsValidWeatherType(uint32 type) { switch (type) @@ -82,11 +82,11 @@ class Weather private: uint32 GetSound(); - /// Send SMSG_WEATHER to all players in the zone + // Send SMSG_WEATHER to all players in the zone bool SendWeatherForPlayersInZone(Map const* _map); - /// Calculate new weather + // Calculate new weather bool ReGenerate(); - /// Calculate state based on type and grade + // Calculate state based on type and grade WeatherState GetWeatherState() const; // Helper to get the grade between 0..1 void NormalizeGrade(); @@ -105,7 +105,7 @@ class Weather // Weather information hold on one map // --------------------------------------------------------- -/// Weathers for one map +// Weathers for one map class WeatherSystem { public: diff --git a/src/game/World.cpp b/src/game/World.cpp index 4517caa94d3..4ec41bd0c8c 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -112,7 +112,7 @@ World& GetSWorld() return sWorld; } -/// World constructor +// World constructor World::World(): m_playerLimit(0), m_allowMovement(true), @@ -150,10 +150,10 @@ World::World(): m_charDbWorkerThread = nullptr; } -/// World destructor +// World destructor World::~World() { - ///- Empty the kicked session set + // Empty the kicked session set while (!m_sessions.empty()) { // not remove from queue, prevent loading new sessions @@ -199,7 +199,7 @@ void World::Shutdown() sAnticheatMgr->StopWardenUpdateThread(); } -/// Find a session by its id +// Find a session by its id WorldSession* World::FindSession(uint32 id) const { SessionMap::const_iterator itr = m_sessions.find(id); @@ -210,10 +210,10 @@ WorldSession* World::FindSession(uint32 id) const return nullptr; } -/// Remove a given session +// Remove a given session bool World::RemoveSession(uint32 id) { - ///- Find the session, kick the user, but we can't delete session at this moment to prevent iterator invalidation + // Find the session, kick the user, but we can't delete session at this moment to prevent iterator invalidation SessionMap::const_iterator itr = m_sessions.find(id); if (itr != m_sessions.end() && itr->second) @@ -241,10 +241,10 @@ void World::AddSession_(WorldSession* s) { MANGOS_ASSERT(s); - //NOTE - Still there is race condition in WorldSession* being used in the Sockets + // NOTE - Still there is race condition in WorldSession* being used in the Sockets - ///- kick already loaded player with same account (if any) and remove session - ///- if player is in loading and want to load again, return + // kick already loaded player with same account (if any) and remove session + // if player is in loading and want to load again, return if (!RemoveSession(s->GetAccountId())) { s->KickPlayer(); @@ -415,7 +415,7 @@ bool World::RemoveQueuedSession(WorldSession* sess) return found; } -/// Initialize config values +// Initialize config values void World::LoadConfigSettings(bool reload) { if (reload) @@ -427,7 +427,7 @@ void World::LoadConfigSettings(bool reload) } } - ///- Read the version of the configuration file and warn the user in case of emptiness or mismatch + // Read the version of the configuration file and warn the user in case of emptiness or mismatch uint32 confVersion = sConfig.GetIntDefault("ConfVersion", 0); if (!confVersion) { @@ -456,11 +456,11 @@ void World::LoadConfigSettings(bool reload) if (m_wowPatch > MAX_CONTENT_PATCH) m_wowPatch = MAX_CONTENT_PATCH; - ///- Read the player limit and the Message of the day from the config file + // Read the player limit and the Message of the day from the config file SetPlayerLimit(sConfig.GetIntDefault("PlayerLimit", DEFAULT_PLAYER_LIMIT), true); SetMotd(sConfig.GetStringDefault("Motd", "Welcome to the Massive Network Game Object Server.") + std::string("\n") + std::string(GetPatchName()) + std::string(" is now live!")); - ///- Read all rates from the config file + // Read all rates from the config file setConfigPos(CONFIG_FLOAT_RATE_HEALTH, "Rate.Health", 1.0f); setConfigPos(CONFIG_FLOAT_RATE_POWER_MANA, "Rate.Mana", 1.0f); setConfig(CONFIG_FLOAT_RATE_POWER_RAGE_INCOME, "Rate.Rage.Income", 1.0f); @@ -540,7 +540,7 @@ void World::LoadConfigSettings(bool reload) setConfig(CONFIG_FLOAT_MAX_PLAYERS_STEALTH_DETECT_RANGE, "MaxPlayersStealthDetectRange", 30.0f); setConfig(CONFIG_FLOAT_MAX_CREATURES_STEALTH_DETECT_RANGE, "MaxCreaturesStealthDetectRange", 30.0f); - ///- Read other configuration items from the config file + // Read other configuration items from the config file setConfig(CONFIG_UINT32_LOGIN_PER_TICK, "LoginPerTick", 0); setConfig(CONFIG_UINT32_PLAYER_HARD_LIMIT, "PlayerHardLimit", 0); setConfig(CONFIG_UINT32_LOGIN_QUEUE_GRACE_PERIOD_SECS, "LoginQueue.GracePeriodSecs", 0); @@ -855,7 +855,7 @@ void World::LoadConfigSettings(bool reload) m_MaxVisibleDistanceInFlight = MAX_VISIBILITY_DISTANCE - m_VisibleObjectGreyDistance; } - ///- Load the CharDelete related config options + // Load the CharDelete related config options setConfigMinMax(CONFIG_UINT32_CHARDELETE_METHOD, "CharDelete.Method", 0, 0, 1); setConfigMinMax(CONFIG_UINT32_CHARDELETE_MIN_LEVEL, "CharDelete.MinLevel", 0, 0, getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)); setConfigPos(CONFIG_UINT32_CHARDELETE_KEEP_DAYS, "CharDelete.KeepDays", 30); @@ -865,7 +865,7 @@ void World::LoadConfigSettings(bool reload) if (configNoReload(reload, CONFIG_UINT32_GUID_RESERVE_SIZE_GAMEOBJECT, "GuidReserveSize.GameObject", 100)) setConfigPos(CONFIG_UINT32_GUID_RESERVE_SIZE_GAMEOBJECT, "GuidReserveSize.GameObject", 100); - ///- Read the "Honor" directory from the config file (basically these are PvP ranking logs) + // Read the "Honor" directory from the config file (basically these are PvP ranking logs) std::string honorPath = sConfig.GetStringDefault("HonorDir", "./"); // for empty string use current dir as for absent case @@ -886,7 +886,7 @@ void World::LoadConfigSettings(bool reload) sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Using HonorDir %s", m_honorPath.c_str()); } - ///- Read the "Data" directory from the config file + // Read the "Data" directory from the config file std::string dataPath = sConfig.GetStringDefault("DataDir", "./"); // for empty string use current dir as for absent case @@ -1262,19 +1262,19 @@ char const* World::GetPatchName() const return "Invalid Patch!"; } -/// Initialize the World +// Initialize the World void World::SetInitialWorldSettings() { - ///- Initialize the random number generator + // Initialize the random number generator srand((unsigned int)time(nullptr)); - ///- Time server startup + // Time server startup uint32 uStartTime = WorldTimer::getMSTime(); - ///- Initialize config settings + // Initialize config settings LoadConfigSettings(); - ///- Check the existence of the map files for all races start areas. + // Check the existence of the map files for all races start areas. if (!MapManager::ExistMapAndVMap(0, -6240.32f, 331.033f) || !MapManager::ExistMapAndVMap(0, -8949.95f, -132.493f) || !MapManager::ExistMapAndVMap(1, -618.518f, -4251.67f) || @@ -1287,7 +1287,7 @@ void World::SetInitialWorldSettings() exit(1); } - ///- Loading strings. Getting no records means core load has to be canceled because no error message can be output. + // Loading strings. Getting no records means core load has to be canceled because no error message can be output. sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ""); sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Loading MaNGOS strings..."); if (!sObjectMgr.LoadMangosStrings()) @@ -1303,13 +1303,13 @@ void World::SetInitialWorldSettings() sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ""); sInstanceStatistics.LoadFromDB(); - ///- Chargements des variables (necessaire pour le OutdoorJcJ) + // Chargements des variables (necessaire pour le OutdoorJcJ) sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Loading saved variables ..."); sObjectMgr.LoadSavedVariable(); - ///- Update the realm entry in the database with the realm type from the config file - //No SQL injection as values are treated as integers + // Update the realm entry in the database with the realm type from the config file + // No SQL injection as values are treated as integers // not send custom type REALM_FFA_PVP to realm list uint32 server_type = IsFFAPvPRealm() ? REALM_TYPE_PVP : getConfig(CONFIG_UINT32_GAME_TYPE); @@ -1319,7 +1319,7 @@ void World::SetInitialWorldSettings() sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Loading GM security access ..."); sAccountMgr.Load(); - ///- Remove the bones (they should not exist in DB though) and old corpses after a restart + // Remove the bones (they should not exist in DB though) and old corpses after a restart CharacterDatabase.PExecute("DELETE FROM `corpse` WHERE `corpse_type` = '0' OR `time` < (UNIX_TIMESTAMP()-'%u')", 3 * DAY); sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Loading spells ..."); @@ -1348,7 +1348,7 @@ void World::SetInitialWorldSettings() sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Loading world safe locs facing values ..."); sObjectMgr.LoadWorldSafeLocsFacing(); - ///- Load the DBC files + // Load the DBC files sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Initialize data stores..."); #ifdef _WIN32 @@ -1380,7 +1380,7 @@ void World::SetInitialWorldSettings() sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Loading SkillRaceClassInfoMultiMap Data..."); sSpellMgr.LoadSkillRaceClassInfoMap(); - ///- Clean up and pack instances + // Clean up and pack instances sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Cleaning up instances..."); sMapPersistentStateMgr.CleanupInstances(); // must be called before `creature_respawn`/`gameobject_respawn` tables @@ -1393,7 +1393,7 @@ void World::SetInitialWorldSettings() sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Scheduling normal instance reset..."); sMapPersistentStateMgr.ScheduleInstanceResets(); // Must be after cleanup and packing - ///- Init highest guids before any guid using table loading to prevent using not initialized guids in some code. + // Init highest guids before any guid using table loading to prevent using not initialized guids in some code. sObjectMgr.SetHighestGuids(); // must be after packing instances sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ""); @@ -1636,7 +1636,7 @@ void World::SetInitialWorldSettings() sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ""); sWaypointMgr.Load(); - ///- Loading localization data + // Loading localization data sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Loading Localization strings..."); sObjectMgr.LoadBroadcastTextLocales(); sObjectMgr.LoadCreatureLocales(); // must be after CreatureInfo loading @@ -1651,7 +1651,7 @@ void World::SetInitialWorldSettings() sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ">>> Localization strings loaded"); sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ""); - ///- Load dynamic data tables from the database + // Load dynamic data tables from the database sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Loading Auctions..."); sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ""); sAuctionMgr.LoadAuctionHouses(); @@ -1692,11 +1692,11 @@ void World::SetInitialWorldSettings() sTicketMgr->LoadTickets(); sTicketMgr->LoadSurveys(); - ///- Handle outdated emails (delete/return) + // Handle outdated emails (delete/return) sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Returning old mails..."); sObjectMgr.ReturnOrDeleteOldMails(false); - ///- Load and initialize scripts + // Load and initialize scripts sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Loading Scripts..."); sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ""); sScriptMgr.LoadQuestStartScripts(); // must be after load Creature/Gameobject(Template/Data) and QuestTemplate @@ -1724,7 +1724,7 @@ void World::SetInitialWorldSettings() sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Loading aura removal on map change definitions"); sAuraRemovalMgr.LoadFromDB(); - ///- Initialize game time and timers + // Initialize game time and timers sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "DEBUG:: Initialize game time and timers"); m_gameTime = time(nullptr); m_startTime = m_gameTime; @@ -1751,7 +1751,7 @@ void World::SetInitialWorldSettings() // Update groups with offline leader after delay in seconds m_timers[WUPDATE_GROUPS].SetInterval(IN_MILLISECONDS); - ///- Initialize static helper structures + // Initialize static helper structures AIRegistry::Initialize(); sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Loading GameObject models ..."); @@ -1760,11 +1760,11 @@ void World::SetInitialWorldSettings() // loads GO data sTransportMgr.LoadTransportAnimationAndRotation(); - ///- Initialize MapManager + // Initialize MapManager sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Starting Map System"); sMapMgr.Initialize(); - ///- Initialize Battlegrounds + // Initialize Battlegrounds sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Starting BattleGround System"); sBattleGroundMgr.CreateInitialBattleGrounds(); CheckLootTemplates_Reference(ids_set); @@ -1909,14 +1909,14 @@ void World::DetectDBCLang() sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ""); } -/// Update the World ! +// Update the World ! void World::Update(uint32 diff) { m_currentMSTime = WorldTimer::getMSTime(); m_currentTime = std::chrono::time_point_cast(Clock::now()); m_currentDiff = diff; - ///- Update the different timers + // Update the different timers for (auto& timer : m_timers) { if (timer.GetCurrent() >= 0) @@ -1925,32 +1925,32 @@ void World::Update(uint32 diff) timer.SetCurrent(0); } - ///- Update the game time and check for shutdown time + // Update the game time and check for shutdown time _UpdateGameTime(); GetMessager().Execute(this); - ///-Update mass mailer tasks if any + // Update mass mailer tasks if any sMassMailMgr.Update(); - ///
  • Handle auctions when the timer has passed + //
    • Handle auctions when the timer has passed if (m_timers[WUPDATE_AUCTIONS].Passed()) { m_timers[WUPDATE_AUCTIONS].Reset(); sAuctionHouseBotMgr.Update(); - ///- Handle expired auctions + // Handle expired auctions sAuctionMgr.Update(); } - ///
    • Handle session updates + //
    • Handle session updates uint32 updateSessionsTime = WorldTimer::getMSTime(); UpdateSessions(diff); updateSessionsTime = WorldTimer::getMSTimeDiffToNow(updateSessionsTime); if (getConfig(CONFIG_UINT32_PERFLOG_SLOW_SESSIONS_UPDATE) && updateSessionsTime > getConfig(CONFIG_UINT32_PERFLOG_SLOW_SESSIONS_UPDATE)) sLog.Out(LOG_PERFORMANCE, LOG_LVL_MINIMAL, "Update sessions: %ums", updateSessionsTime); - ///
    • Update uptime table + //
    • Update uptime table if (m_timers[WUPDATE_UPTIME].Passed()) { uint32 tmpDiff = uint32(m_gameTime - m_startTime); @@ -1961,10 +1961,10 @@ void World::Update(uint32 diff) LoginDatabase.PExecute("UPDATE `uptime` SET `uptime` = %u, `onlineplayers` = %u, `maxplayers` = %u WHERE `realmid` = %u AND `starttime` = " UI64FMTD, tmpDiff, onlineClientsNum, maxClientsNum, realmID, uint64(m_startTime)); } - ///- Update objects (maps, transport, creatures,...) + // Update objects (maps, transport, creatures,...) uint32 updateMapSystemTime = WorldTimer::getMSTime(); - //TODO: find a better place for this + // TODO: find a better place for this if (!m_updateThreads) { m_updateThreads = std::unique_ptr( new ThreadPool( @@ -1984,7 +1984,7 @@ void World::Update(uint32 diff) sGuardMgr.Update(diff); sZoneScriptMgr.Update(diff); - ///- Update groups with offline leaders + // Update groups with offline leaders if (m_timers[WUPDATE_GROUPS].Passed()) { m_timers[WUPDATE_GROUPS].Reset(); @@ -2004,7 +2004,7 @@ void World::Update(uint32 diff) if (getConfig(CONFIG_UINT32_PERFLOG_SLOW_MAPSYSTEM_UPDATE) && updateMapSystemTime > getConfig(CONFIG_UINT32_PERFLOG_SLOW_MAPSYSTEM_UPDATE)) sLog.Out(LOG_PERFORMANCE, LOG_LVL_MINIMAL, "Update map system: %ums [%ums for async]", updateMapSystemTime, WorldTimer::getMSTimeDiffToNow(asyncWaitBegin)); - ///- Sauvegarde des variables internes (table variables) : MaJ par rapport a la DB + // Sauvegarde des variables internes (table variables) : MaJ par rapport a la DB if (m_timers[WUPDATE_SAVE_VAR].Passed()) { m_timers[WUPDATE_SAVE_VAR].Reset(); @@ -2018,7 +2018,7 @@ void World::Update(uint32 diff) if (getConfig(CONFIG_UINT32_PERFLOG_SLOW_ASYNC_QUERIES) && asyncQueriesTime > getConfig(CONFIG_UINT32_PERFLOG_SLOW_ASYNC_QUERIES)) sLog.Out(LOG_PERFORMANCE, LOG_LVL_MINIMAL, "Update async queries: %ums", asyncQueriesTime); - ///- Erase old corpses + // Erase old corpses if (m_timers[WUPDATE_CORPSES].Passed()) { m_timers[WUPDATE_CORPSES].Reset(); @@ -2026,7 +2026,7 @@ void World::Update(uint32 diff) sObjectAccessor.RemoveOldCorpses(); } - ///- Process Game events when necessary + // Process Game events when necessary if (m_timers[WUPDATE_EVENTS].Passed()) { m_timers[WUPDATE_EVENTS].Reset(); // to give time for Update() to be processed @@ -2035,14 +2035,14 @@ void World::Update(uint32 diff) m_timers[WUPDATE_EVENTS].Reset(); } - ///
    - ///- Move all creatures with "delayed move" and remove and delete all objects with "delayed remove" + //
+ // Move all creatures with "delayed move" and remove and delete all objects with "delayed remove" sMapMgr.RemoveAllObjectsInRemoveList(); // update the instance reset times sMapPersistentStateMgr.Update(); - /// Maintenance checker + // Maintenance checker if (m_MaintenanceTimeChecker < diff) { sHonorMaintenancer.CheckMaintenanceDay(); @@ -2066,7 +2066,7 @@ void World::Update(uint32 diff) sTerrainMgr.Update(diff); } -/// Send a packet to all players (except self if mentioned) +// Send a packet to all players (except self if mentioned) void World::SendGlobalMessage(WorldPacket* packet, WorldSession* self, uint32 team) { for (const auto& itr : m_sessions) @@ -2168,7 +2168,7 @@ class WorldBroadcastTextBuilder }; } // namespace MaNGOS -/// Send a System Message to all players (except self if mentioned) +// Send a System Message to all players (except self if mentioned) void World::SendWorldText(int32 string_id, ...) { va_list ap; @@ -2270,7 +2270,7 @@ void World::SendGMText(int32 string_id, ...) va_end(ap); } -/// DEPRICATED, only for debug purpose. Send a System Message to all players (except self if mentioned) +// DEPRICATED, only for debug purpose. Send a System Message to all players (except self if mentioned) void World::SendGlobalText(char const* text, WorldSession* self) { WorldPacket data; @@ -2288,7 +2288,7 @@ void World::SendGlobalText(char const* text, WorldSession* self) delete [] buf; } -/// Send a packet to all players (or players selected team) in the zone (except self if mentioned) +// Send a packet to all players (or players selected team) in the zone (except self if mentioned) void World::SendZoneMessage(uint32 zone, WorldPacket* packet, WorldSession* self, uint32 team) { for (const auto& itr : m_sessions) @@ -2309,7 +2309,7 @@ void World::SendZoneMessage(uint32 zone, WorldPacket* packet, WorldSession* self } } -/// Send a System Message to all players in the zone (except self if mentioned) +// Send a System Message to all players in the zone (except self if mentioned) void World::SendZoneText(uint32 zone, char const* text, WorldSession* self, uint32 team) { WorldPacket data; @@ -2317,7 +2317,7 @@ void World::SendZoneText(uint32 zone, char const* text, WorldSession* self, uint SendZoneMessage(zone, &data, self, team); } -/// Kick (and save) all players +// Kick (and save) all players void World::KickAll() { m_QueuedSessions.clear(); // prevent send queue update packet and login queued sessions @@ -2329,7 +2329,7 @@ void World::KickAll() (*itr).KickPlayer(); } -/// Kick (and save) all players with security level less `sec` +// Kick (and save) all players with security level less `sec` void World::KickAllLess(AccountTypes sec) { // session not removed at kick and will removed in next update tick @@ -2425,7 +2425,7 @@ class BanAccountHandler return; } - ///- Disconnect all affected players (for IP it can be several) + // Disconnect all affected players (for IP it can be several) do { Field* fieldsAccount = result->Fetch(); @@ -2464,7 +2464,7 @@ class BanAccountHandler } } banHandler; -/// Ban an account or ban an IP address, duration_secs if it is positive used, otherwise permban +// Ban an account or ban an IP address, duration_secs if it is positive used, otherwise permban BanReturn World::BanAccount(BanMode mode, std::string nameOrIP, uint32 duration_secs, std::string reason, std::string author) { LoginDatabase.escape_string(nameOrIP); @@ -2480,7 +2480,7 @@ BanReturn World::BanAccount(BanMode mode, std::string nameOrIP, uint32 duration_ holder->SetSize(1); DatabaseType* db = nullptr; - ///- Update the database with ban information + // Update the database with ban information switch (mode) { case BAN_IP: @@ -2516,7 +2516,7 @@ BanReturn World::BanAccount(BanMode mode, std::string nameOrIP, uint32 duration_ return BAN_INPROGRESS; } -/// Remove a ban from an account or IP address +// Remove a ban from an account or IP address bool World::RemoveBanAccount(BanMode mode, std::string const& source, std::string const& message, std::string nameOrIP) { if (mode == BAN_IP) @@ -2544,19 +2544,19 @@ bool World::RemoveBanAccount(BanMode mode, std::string const& source, std::strin return true; } -/// Update the game time +// Update the game time void World::_UpdateGameTime() { - ///- update the time + // update the time time_t thisTime = time(nullptr); uint32 elapsed = uint32(thisTime - m_gameTime); m_gameTime = thisTime; m_gameDay = (m_gameTime + m_timeZoneOffset) / DAY; - ///- if there is a shutdown timer + // if there is a shutdown timer if (!m_stopEvent && m_ShutdownTimer > 0 && elapsed > 0) { - ///- ... and it is overdue, stop the world (set m_stopEvent) + // ... and it is overdue, stop the world (set m_stopEvent) if (m_ShutdownTimer <= elapsed) { if (!(m_ShutdownMask & SHUTDOWN_MASK_IDLE) || GetActiveAndQueuedSessionCount() == 0) @@ -2564,7 +2564,7 @@ void World::_UpdateGameTime() else m_ShutdownTimer = 1; // minimum timer value to wait idle state } - ///- ... else decrease it and if necessary display a shutdown countdown to the users + // ... else decrease it and if necessary display a shutdown countdown to the users else { m_ShutdownTimer -= elapsed; @@ -2574,7 +2574,7 @@ void World::_UpdateGameTime() } } -/// Shutdown the server +// Shutdown the server void World::ShutdownServ(uint32 time, uint32 options, uint8 exitcode) { // ignore if server shutdown at next tick @@ -2584,7 +2584,7 @@ void World::ShutdownServ(uint32 time, uint32 options, uint8 exitcode) m_ShutdownMask = options; m_ExitCode = exitcode; - ///- If the shutdown time is 0, set m_stopEvent (except if shutdown is 'idle' with remaining sessions) + // If the shutdown time is 0, set m_stopEvent (except if shutdown is 'idle' with remaining sessions) if (time == 0) { if (!(options & SHUTDOWN_MASK_IDLE) || GetActiveAndQueuedSessionCount() == 0) @@ -2592,7 +2592,7 @@ void World::ShutdownServ(uint32 time, uint32 options, uint8 exitcode) else m_ShutdownTimer = 1; //So that the session count is re-evaluated at next world tick } - ///- Else set the shutdown timer and warn users + // Else set the shutdown timer and warn users else { m_ShutdownTimer = time; @@ -2600,14 +2600,14 @@ void World::ShutdownServ(uint32 time, uint32 options, uint8 exitcode) } } -/// Display a shutdown message to the user(s) +// Display a shutdown message to the user(s) void World::ShutdownMsg(bool show, Player* player) { // not show messages for idle shutdown mode if (m_ShutdownMask & SHUTDOWN_MASK_IDLE) return; - ///- Display a message every 12 hours, hours, 5 minutes, minute, 5 seconds and finally seconds + // Display a message every 12 hours, hours, 5 minutes, minute, 5 seconds and finally seconds if (show || (m_ShutdownTimer < 10) || // < 30 sec; every 5 sec @@ -2630,7 +2630,7 @@ void World::ShutdownMsg(bool show, Player* player) } } -/// Cancel a planned server shutdown +// Cancel a planned server shutdown void World::ShutdownCancel() { // nothing cancel or too later @@ -2647,7 +2647,7 @@ void World::ShutdownCancel() sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "Server %s cancelled.", (m_ShutdownMask & SHUTDOWN_MASK_RESTART ? "restart" : "shutdown")); } -/// Send a server message to the user(s) +// Send a server message to the user(s) void World::SendServerMessage(ServerMessageType type, char const* text, Player* player) { WorldPacket data(SMSG_SERVER_MESSAGE, 50); // guess size @@ -2662,7 +2662,7 @@ void World::SendServerMessage(ServerMessageType type, char const* text, Player* void World::UpdateSessions(uint32 diff) { - ///- Update player limit if needed + // Update player limit if needed int32 hardPlayerLimit = getConfig(CONFIG_UINT32_PLAYER_HARD_LIMIT); if (hardPlayerLimit) m_playerLimit = std::min(hardPlayerLimit, m_playerLimit); @@ -2693,18 +2693,18 @@ void World::UpdateSessions(uint32 diff) (*iter)->SendAuthWaitQue(position); } - ///- Add new sessions + // Add new sessions WorldSession* sess; while (addSessQueue.next(sess)) AddSession_(sess); - ///- Then send an update signal to remaining ones + // Then send an update signal to remaining ones time_t timeNow = time(nullptr); for (SessionMap::iterator itr = m_sessions.begin(), next; itr != m_sessions.end(); itr = next) { next = itr; ++next; - ///- and remove not active sessions from the list + // and remove not active sessions from the list WorldSession* pSession = itr->second; WorldSessionFilter updater(pSession); @@ -2722,7 +2722,7 @@ void World::UpdateSessions(uint32 diff) delete pSession; } } - ///- Update disconnected sessions + // Update disconnected sessions for (SessionSet::iterator itr = m_disconnectedSessions.begin(), next; itr != m_disconnectedSessions.end(); itr = next) { next = itr; diff --git a/src/game/World.h b/src/game/World.h index 3dddbd60ea8..8c49b8f7ddf 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -19,9 +19,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/// \addtogroup world The World -/// @{ -/// \file +// \addtogroup world The World +// @{ +// \file #ifndef __WORLD_H #define __WORLD_H @@ -77,7 +77,7 @@ enum ShutdownExitCode RESTART_EXIT_CODE = 2, }; -/// Timers for different object refresh rates +// Timers for different object refresh rates enum WorldTimers { WUPDATE_AUCTIONS = 0, @@ -89,7 +89,7 @@ enum WorldTimers WUPDATE_COUNT = 6 }; -/// Configuration elements +// Configuration elements enum eConfigUInt32Values { CONFIG_UINT32_COMPRESSION = 0, @@ -362,7 +362,7 @@ enum ANTICRASH_OPTION_FLAGS_THROW_SIGSEGV= (ANTICRASH_OPTION_CRASH_INSTANCES|ANTICRASH_OPTION_CRASH_CONTINENTS), }; -/// Configuration elements +// Configuration elements enum eConfigInt32Values { CONFIG_INT32_DEATH_SICKNESS_LEVEL = 0, @@ -372,7 +372,7 @@ enum eConfigInt32Values CONFIG_INT32_VALUE_COUNT }; -/// Server config +// Server config enum eConfigFloatValues { CONFIG_FLOAT_RATE_HEALTH = 0, @@ -451,7 +451,7 @@ enum eConfigFloatValues CONFIG_FLOAT_VALUE_COUNT }; -/// Configuration elements +// Configuration elements enum eConfigBoolValues { CONFIG_BOOL_GRID_UNLOAD = 0, @@ -608,7 +608,7 @@ enum eConfigBoolValues CONFIG_BOOL_VALUE_COUNT }; -/// Type of server +// Type of server enum RealmType { REALM_TYPE_NORMAL = 0, @@ -687,7 +687,7 @@ struct PlayerTransactionData TransactionPart parts[2]; }; -/// Storage class for commands issued for delayed execution +// Storage class for commands issued for delayed execution struct CliCommandHolder { typedef void Print(void*, char const*); @@ -719,7 +719,7 @@ struct AccountPlayHistory class ThreadPool; -/// The World +// The World class World { public: @@ -734,31 +734,31 @@ class World WorldSession* FindSession(uint32 id) const; void AddSession(WorldSession* s); bool RemoveSession(uint32 id); - /// Get the number of current active sessions + // Get the number of current active sessions void UpdateMaxSessionCounters(); uint32 GetActiveAndQueuedSessionCount() const { return m_sessions.size(); } uint32 GetActiveSessionCount() const { return m_sessions.size() - m_QueuedSessions.size(); } uint32 GetQueuedSessionCount() const { return m_QueuedSessions.size(); } - /// Get the maximum number of parallel sessions on the server since last reboot + // Get the maximum number of parallel sessions on the server since last reboot uint32 GetMaxQueuedSessionCount() const { return m_maxQueuedSessionCount; } uint32 GetMaxActiveSessionCount() const { return m_maxActiveSessionCount; } - /// Get the active session server limit (or security level limitations) + // Get the active session server limit (or security level limitations) uint32 GetPlayerAmountLimit() const { return m_playerLimit >= 0 ? m_playerLimit : 0; } AccountTypes GetPlayerSecurityLimit() const { return m_playerLimit <= 0 ? AccountTypes(-m_playerLimit) : SEC_PLAYER; } - /// Set the active session server limit (or security level limitation) + // Set the active session server limit (or security level limitation) void SetPlayerLimit(int32 limit, bool needUpdate = false); - //player Queue + // player Queue typedef std::list Queue; void AddQueuedSession(WorldSession*); bool RemoveQueuedSession(WorldSession* session); int32 GetQueuedSessionPos(WorldSession*); - /// Set a new Message of the Day + // Set a new Message of the Day void SetMotd(std::string const& motd) { m_motd = motd; } - /// Get the current Message of the Day + // Get the current Message of the Day char const* GetMotd() const { return m_motd.c_str(); } // Get current server's WoW Patch @@ -767,19 +767,19 @@ class World LocaleConstant GetDefaultDbcLocale() const { return m_defaultDbcLocale; } - /// Get the path where data (dbc, maps) are stored on disk + // Get the path where data (dbc, maps) are stored on disk std::string GetDataPath() const { return m_dataPath; } - /// Get the path where honor logs are stored on disk + // Get the path where honor logs are stored on disk std::string GetHonorPath() const { return m_honorPath; } - /// When server started? + // When server started? time_t const& GetStartTime() const { return m_startTime; } - /// What time is it? + // What time is it? time_t const& GetGameTime() const { return m_gameTime; } - /// What day is it? + // What day is it? uint32 const& GetGameDay() const { return m_gameDay; } - /// Uptime (in secs) + // Uptime (in secs) uint32 GetUptime() const { return uint32(m_gameTime - m_startTime); } tm *GetLocalTimeByTime(time_t now) const { return localtime(&now); } @@ -792,7 +792,7 @@ class World return m_gameDay - ((date->tm_wday - mDay + 7) % 7); } - /// Get the maximum skill level a player can reach + // Get the maximum skill level a player can reach uint16 GetConfigMaxSkillValue() const { uint32 lvl = getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL); @@ -805,7 +805,7 @@ class World void SendWorldText(int32 string_id, ...); void SendBroadcastTextToWorld(uint32 textId); - // Only for GMs with ticket notification ON + // Only for GMs with ticket notification ON void SendGMTicketText(int32 string_id, ...); void SendGMTicketText(char const* text); void SendGMText(int32 string_id, ...); @@ -815,7 +815,7 @@ class World void SendZoneText(uint32 zone, char const* text, WorldSession* self = 0, uint32 team = 0); void SendServerMessage(ServerMessageType type, char const* text = "", Player* player = nullptr); - /// Are we in the middle of a shutdown? + // Are we in the middle of a shutdown? bool IsShutdowning() const { return m_ShutdownTimer > 0; } void ShutdownServ(uint32 time, uint32 options, uint8 exitcode); void ShutdownCancel(); @@ -828,27 +828,27 @@ class World void UpdateSessions(uint32 diff); - /// Get a server configuration element (see #eConfigFloatValues) + // Get a server configuration element (see #eConfigFloatValues) void setConfig(eConfigFloatValues index,float value) { m_configFloatValues[index]=value; } - /// Get a server configuration element (see #eConfigFloatValues) + // Get a server configuration element (see #eConfigFloatValues) float getConfig(eConfigFloatValues rate) const { return m_configFloatValues[rate]; } - /// Set a server configuration element (see #eConfigUInt32Values) + // Set a server configuration element (see #eConfigUInt32Values) void setConfig(eConfigUInt32Values index, uint32 value) { m_configUint32Values[index]=value; } - /// Get a server configuration element (see #eConfigUInt32Values) + // Get a server configuration element (see #eConfigUInt32Values) uint32 getConfig(eConfigUInt32Values index) const { return m_configUint32Values[index]; } - /// Set a server configuration element (see #eConfigInt32Values) + // Set a server configuration element (see #eConfigInt32Values) void setConfig(eConfigInt32Values index, int32 value) { m_configInt32Values[index]=value; } - /// Get a server configuration element (see #eConfigInt32Values) + // Get a server configuration element (see #eConfigInt32Values) int32 getConfig(eConfigInt32Values index) const { return m_configInt32Values[index]; } - /// Set a server configuration element (see #eConfigBoolValues) + // Set a server configuration element (see #eConfigBoolValues) void setConfig(eConfigBoolValues index, bool value) { m_configBoolValues[index]=value; } - /// Get a server configuration element (see #eConfigBoolValues) + // Get a server configuration element (see #eConfigBoolValues) bool getConfig(eConfigBoolValues index) const { return m_configBoolValues[index]; } - /// Are we on a "Player versus Player" server? + // Are we on a "Player versus Player" server? bool IsPvPRealm() { return (getConfig(CONFIG_UINT32_GAME_TYPE) == REALM_TYPE_PVP || getConfig(CONFIG_UINT32_GAME_TYPE) == REALM_TYPE_RPPVP || getConfig(CONFIG_UINT32_GAME_TYPE) == REALM_TYPE_FFA_PVP); } bool IsFFAPvPRealm() { return getConfig(CONFIG_UINT32_GAME_TYPE) == REALM_TYPE_FFA_PVP; } @@ -1053,4 +1053,4 @@ extern uint32 realmID; #define sWorld MaNGOS::Singleton::Instance() #endif -/// @} +// @} diff --git a/src/game/WorldSession.cpp b/src/game/WorldSession.cpp index 84522a12556..17e77b73674 100644 --- a/src/game/WorldSession.cpp +++ b/src/game/WorldSession.cpp @@ -71,7 +71,7 @@ bool MapSessionFilter::Process(std::unique_ptr const& packet) static uint32 g_sessionCounter = 0; -/// WorldSession constructor +// WorldSession constructor WorldSession::WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, time_t mute_time, LocaleConstant locale) : m_guid(g_sessionCounter++), m_muteTime(mute_time), m_connected(true), m_disconnectTimer(0), m_who_recvd(false), m_ah_list_recvd(false), m_accountFlags(0), m_idleTime(WorldTimer::getMSTime()), _player(nullptr), m_socket(sock), m_security(sec), m_accountId(id), @@ -90,14 +90,14 @@ WorldSession::WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, time_ m_address = ""; } -/// WorldSession destructor +// WorldSession destructor WorldSession::~WorldSession() { - ///- unload player if not unloaded + // unload player if not unloaded if (_player) LogoutPlayer(!m_bot || sPlayerBotMgr.IsSavingAllowed()); - /// - If have unclosed socket, close it + // If have unclosed socket, close it if (m_socket) { m_socket->CloseSocket(); @@ -105,7 +105,7 @@ WorldSession::~WorldSession() m_socket = nullptr; } - ///- empty incoming packet queue + // empty incoming packet queue for (auto& i : m_recvQueue) i.clear(); @@ -115,13 +115,13 @@ WorldSession::~WorldSession() delete m_cheatData; } -/// Get the player name +// Get the player name char const* WorldSession::GetPlayerName() const { return GetPlayer() ? GetPlayer()->GetName() : ""; } -/// Send a packet to the client +// Send a packet to the client void WorldSession::SendPacket(WorldPacket const* packet) { // There is a maximum size packet. @@ -207,7 +207,7 @@ void WorldSession::SendPacket(WorldPacket const* packet) #endif // !_DEBUG - //sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "[%s]Send packet : %u|0x%x (%s)", GetPlayerName(), packet->GetOpcode(), packet->GetOpcode(), LookupOpcodeName(packet->GetOpcode())); + // sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "[%s]Send packet : %u|0x%x (%s)", GetPlayerName(), packet->GetOpcode(), packet->GetOpcode(), LookupOpcodeName(packet->GetOpcode())); if (m_sniffFile) m_sniffFile->WritePacket(*packet, false, time(nullptr)); @@ -215,7 +215,7 @@ void WorldSession::SendPacket(WorldPacket const* packet) m_socket->CloseSocket(); } -/// Add an incoming packet to the queue +// Add an incoming packet to the queue void WorldSession::QueuePacket(std::unique_ptr newPacket) { if (m_sniffFile) @@ -247,7 +247,7 @@ void WorldSession::QueuePacket(std::unique_ptr newPacket) m_recvQueue[processing].add(std::move(newPacket)); } -/// Logging helper for unexpected opcodes +// Logging helper for unexpected opcodes void WorldSession::LogUnexpectedOpcode(WorldPacket* packet, char const* reason) { sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "SESSION: received unexpected opcode %s (0x%.4X) %s", @@ -256,7 +256,7 @@ void WorldSession::LogUnexpectedOpcode(WorldPacket* packet, char const* reason) reason); } -/// Logging helper for unexpected opcodes +// Logging helper for unexpected opcodes void WorldSession::LogUnprocessedTail(WorldPacket* packet) { sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "SESSION: opcode %s (0x%.4X) have unprocessed tail data (read stop at " SIZEFMTD " from " SIZEFMTD ")", @@ -342,14 +342,14 @@ bool WorldSession::ForcePlayerLogoutDelay() return false; } -/// Update the WorldSession (triggered by World update) +// Update the WorldSession (triggered by World update) bool WorldSession::Update(PacketFilter& updater) { uint32 sessionUpdateTime = WorldTimer::getMSTime(); for (uint32 & i : m_floodPacketsCount) i = 0; - ///- Retrieve packets from the receive queue and call the appropriate handlers + // Retrieve packets from the receive queue and call the appropriate handlers ProcessPackets(updater); if (CharacterScreenIdleKick(sessionUpdateTime)) @@ -370,7 +370,7 @@ bool WorldSession::Update(PacketFilter& updater) return false; } - ///- Cleanup socket pointer if need + // Cleanup socket pointer if need if (m_socket && m_socket->IsClosed()) { m_socket->RemoveReference(); @@ -386,7 +386,6 @@ bool WorldSession::Update(PacketFilter& updater) return ForcePlayerLogoutDelay(); } - time_t currTime = time(nullptr); if (sWorld.getConfig(CONFIG_BOOL_LIMIT_PLAY_TIME) && GetPlayer() && GetPlayer()->IsInWorld()) @@ -554,7 +553,7 @@ bool WorldSession::UpdateDisconnected(uint32 diff) return true; } -/// %Log the player out +// %Log the player out void WorldSession::LogoutPlayer(bool Save) { // finish pending transfers before starting the logout @@ -576,7 +575,7 @@ void WorldSession::LogoutPlayer(bool Save) if (inWorld) { - ///- If the player just died before logging out, make him appear as a ghost + // If the player just died before logging out, make him appear as a ghost if (_player->GetDeathTimer()) { _player->GetHostileRefManager().deleteReferences(); @@ -609,7 +608,7 @@ void WorldSession::LogoutPlayer(bool Save) queue->RemovePlayerFromQueue(playerGuid, PLAYER_SYSTEM_LEAVE); }); - ///- Teleport to home if the player is in an invalid instance + // Teleport to home if the player is in an invalid instance if (!_player->m_InstanceValid && !_player->IsGameMaster()) { _player->TeleportToHomebind(); @@ -652,7 +651,7 @@ void WorldSession::LogoutPlayer(bool Save) sBattleGroundMgr.PlayerLoggedOut(_player); - ///- Reset the online field in the account table + // Reset the online field in the account table // no point resetting online in character table here as Player::SaveToDB() will set it to 1 since player has not been removed from world at this stage // No SQL injection as AccountID is uint32 static SqlStatementID id; @@ -660,7 +659,7 @@ void WorldSession::LogoutPlayer(bool Save) SqlStatement stmt = LoginDatabase.CreateStatement(id, "UPDATE `account` SET `current_realm` = ?, `online` = 0 WHERE `id` = ?"); stmt.PExecute(uint32(0), GetAccountId()); - ///- If the player is in a guild, update the guild roster and broadcast a logout message to other guild members + // If the player is in a guild, update the guild roster and broadcast a logout message to other guild members if (Guild* guild = sGuildMgr.GetGuildById(_player->GetGuildId())) { if (MemberSlot* slot = guild->GetMemberSlot(_player->GetObjectGuid())) @@ -672,7 +671,7 @@ void WorldSession::LogoutPlayer(bool Save) guild->BroadcastEvent(GE_SIGNED_OFF, _player->GetObjectGuid(), _player->GetName()); } - ///- Remove pet + // Remove pet _player->RemovePet(PET_SAVE_AS_CURRENT); // Dungeon anti-exploit. Should be before save @@ -691,15 +690,15 @@ void WorldSession::LogoutPlayer(bool Save) } } - ///- empty buyback items and save the player in the database + // empty buyback items and save the player in the database // some save parts only correctly work in case player present in map/player_lists (pets, etc) if (Save) _player->SaveToDB(false, removedFromMap); - ///- Leave all channels before player delete... + // Leave all channels before player delete... _player->CleanupChannels(); - ///- If the player is in a group (or invited), remove him. If the group if then only 1 person, disband the group. + // If the player is in a group (or invited), remove him. If the group if then only 1 person, disband the group. _player->UninviteFromGroup(); // remove player from the group if he is: @@ -707,17 +706,17 @@ void WorldSession::LogoutPlayer(bool Save) if (_player->GetGroup() && !_player->GetGroup()->isRaidGroup() && m_socket) _player->RemoveFromGroup(); - ///- Send update to group + // Send update to group if (Group* group = _player->GetGroup()) group->UpdatePlayerOnlineStatus(_player, false); - ///- Update cached data at logout + // Update cached data at logout sObjectMgr.UpdatePlayerCache(_player); - ///- No need to create any new maps + // No need to create any new maps sMapMgr.CancelInstanceCreationForPlayer(_player); - ///- Remove the player from the world + // Remove the player from the world // the player may not be in the world when logging out // e.g if he got disconnected during a transfer to another map // calls to GetMap in this case may cause crashes @@ -735,7 +734,7 @@ void WorldSession::LogoutPlayer(bool Save) SetPlayer(nullptr); // deleted in Remove/DeleteFromWorld call - ///- Send the 'logout complete' packet to the client + // Send the 'logout complete' packet to the client WorldPacket data(SMSG_LOGOUT_COMPLETE, 0); SendPacket(&data); @@ -744,7 +743,7 @@ void WorldSession::LogoutPlayer(bool Save) if (m_masterPlayer) { - ///- Broadcast a logout message to the player's friends + // Broadcast a logout message to the player's friends if (m_masterPlayer->GetSocial()) { sSocialMgr.SendFriendStatus(m_masterPlayer, FRIEND_OFFLINE, m_masterPlayer->GetObjectGuid(), true); @@ -763,7 +762,7 @@ void WorldSession::LogoutPlayer(bool Save) LogoutRequest(0); } -/// Kick a player out of the World +// Kick a player out of the World void WorldSession::KickPlayer() { if (m_socket) @@ -772,7 +771,7 @@ void WorldSession::KickPlayer() m_bot->requestRemoval = true; } -/// Cancel channeling handler +// Cancel channeling handler void WorldSession::SendAreaTriggerMessage(char const* Text, ...) { diff --git a/src/mangosd/ChatSocket.cpp b/src/mangosd/ChatSocket.cpp index 916aed746f2..84977e4220b 100644 --- a/src/mangosd/ChatSocket.cpp +++ b/src/mangosd/ChatSocket.cpp @@ -54,7 +54,7 @@ class OfflineChatCommandsHandler: public ChatHandler std::stringstream& m_buff; }; -/// OfflineChatSocket constructor +// OfflineChatSocket constructor OfflineChatSocket::OfflineChatSocket() : OfflineChatHandler(), pendingCommands(0, USYNC_THREAD, "pendingCommands"), outActive(false), @@ -65,13 +65,13 @@ OfflineChatSocket::OfflineChatSocket() : OfflineChatHandler(), reference_counting_policy ().value (ACE_Event_Handler::Reference_Counting_Policy::ENABLED); } -/// OfflineChatSocket destructor +// OfflineChatSocket destructor OfflineChatSocket::~OfflineChatSocket() { peer().close(); } -/// Accept an incoming connection +// Accept an incoming connection int OfflineChatSocket::open(void* ) { if (reactor ()->register_handler(this, ACE_Event_Handler::READ_MASK | ACE_Event_Handler::WRITE_MASK) == -1) @@ -149,7 +149,7 @@ int OfflineChatSocket::handle_output (ACE_HANDLE) return 0; } -/// Read data from the network +// Read data from the network std::string TrimLeft(const std::string& s) { size_t startpos = s.find_first_not_of(' '); @@ -174,7 +174,7 @@ int OfflineChatSocket::handle_input(ACE_HANDLE) } DEBUG_OUT_CHAT("OfflineChatSocket::handle_input %i bytes read", readBytes); - ///- Discard data after line break or line feed + // Discard data after line break or line feed bool endofpacket = false; for (; readBytes > 0 ; --readBytes) { @@ -331,7 +331,7 @@ int OfflineChatSocket::handle_input(ACE_HANDLE) return 0; } -/// Output function +// Output function int OfflineChatSocket::sendf(const char* msg) { std::unique_lock lock (outBufferLock); diff --git a/src/mangosd/ChatSocket.h b/src/mangosd/ChatSocket.h index 2c11417ecd5..7c17d26d414 100644 --- a/src/mangosd/ChatSocket.h +++ b/src/mangosd/ChatSocket.h @@ -19,9 +19,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/// \addtogroup mangosd -/// @{ -/// \file +// \addtogroup mangosd +// @{ +// \file #ifndef _OFFLINE_CHAT_SOCKET_H #define _OFFLINE_CHAT_SOCKET_H @@ -41,7 +41,7 @@ enum OfflineChatSpecialCommands OFFLINE_CHAT_GM_COMMAND = -1, }; -/// Remote Administration socket +// Remote Administration socket typedef ACE_Svc_Handler < ACE_SOCK_STREAM, ACE_NULL_SYNCH> OfflineChatHandler; class OfflineChatSocket: protected OfflineChatHandler { @@ -53,23 +53,23 @@ class OfflineChatSocket: protected OfflineChatHandler int sendf(const char*); protected: - /// things called by ACE framework. + // things called by ACE framework. OfflineChatSocket(void); virtual ~OfflineChatSocket(void); - /// Called on open ,the void* is the acceptor. + // Called on open ,the void* is the acceptor. virtual int open (void *); - /// Called on failures inside of the acceptor, don't call from your code. + // Called on failures inside of the acceptor, don't call from your code. virtual int close (int); - /// Called when we can read from the socket. + // Called when we can read from the socket. virtual int handle_input (ACE_HANDLE = ACE_INVALID_HANDLE); - /// Called when the socket can write. + // Called when the socket can write. virtual int handle_output (ACE_HANDLE = ACE_INVALID_HANDLE); - /// Called when connection is closed or error happens. + // Called when connection is closed or error happens. virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK); @@ -93,4 +93,4 @@ class OfflineChatSocket: protected OfflineChatHandler }stage; }; #endif -/// @} +// @} diff --git a/src/mangosd/CliRunnable.cpp b/src/mangosd/CliRunnable.cpp index 8a9f4c512ea..0a83cddd5cb 100644 --- a/src/mangosd/CliRunnable.cpp +++ b/src/mangosd/CliRunnable.cpp @@ -19,9 +19,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/// \addtogroup mangosd -/// @{ -/// \file +// \addtogroup mangosd +// @{ +// \file #include "Common.h" #include "World.h" @@ -59,7 +59,7 @@ void commandFinished(void*, bool /*sucess*/) fflush(stdout); } -/// @} +// @} #ifdef linux // Non-blocking keypress detector, when return pressed, return 1, else always return 0 @@ -76,15 +76,15 @@ int kb_hit_return() } #endif -/// %Thread start +// %Thread start void CliRunnable::operator()() { - ///- Init new SQL thread for the world database (one connection call enough) + // Init new SQL thread for the world database (one connection call enough) WorldDatabase.ThreadStart(); // let thread do safe mySQL requests char commandbuf[256]; - ///- Display the list of available CLI functions then beep + // Display the list of available CLI functions then beep if (sConfig.GetBoolDefault("BeepAtStart", true)) printf("\a"); // \a = Alert @@ -92,7 +92,7 @@ void CliRunnable::operator()() // later it will be printed after command queue updates printf("\nmangos>"); - ///- As long as the World is running (no World::m_stopEvent), get the command line and handle it + // As long as the World is running (no World::m_stopEvent), get the command line and handle it while (!World::IsStopped()) { fflush(stdout); @@ -159,6 +159,6 @@ void CliRunnable::operator()() } } - ///- End the database thread + // End the database thread WorldDatabase.ThreadEnd(); // free mySQL thread resources } diff --git a/src/mangosd/CliRunnable.h b/src/mangosd/CliRunnable.h index bc83aa45e34..2f410868444 100644 --- a/src/mangosd/CliRunnable.h +++ b/src/mangosd/CliRunnable.h @@ -19,20 +19,20 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/// \addtogroup mangosd -/// @{ -/// \file +// \addtogroup mangosd +// @{ +// \file #ifndef __CLIRUNNABLE_H #define __CLIRUNNABLE_H #include "Common.h" -/// Command Line Interface handling thread +// Command Line Interface handling thread class CliRunnable { public: void operator()(); }; #endif -/// @} +// @} diff --git a/src/mangosd/Main.cpp b/src/mangosd/Main.cpp index d65bfb3ce71..4e3ac3c2c64 100644 --- a/src/mangosd/Main.cpp +++ b/src/mangosd/Main.cpp @@ -19,9 +19,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/// \addtogroup mangosd Mangos Daemon -/// @{ -/// \file +// \addtogroup mangosd Mangos Daemon +// @{ +// \file #include "Common.h" #include "Database/DatabaseEnv.h" @@ -52,14 +52,14 @@ int m_ServiceStatus = -1; #include "PosixDaemon.h" #endif -DatabaseType WorldDatabase; ///< Accessor to the world database -DatabaseType CharacterDatabase; ///< Accessor to the character database -DatabaseType LoginDatabase; ///< Accessor to the realm/login database -DatabaseType LogsDatabase; ///< Accessor to the logs database +DatabaseType WorldDatabase; // Accessor to the world database +DatabaseType CharacterDatabase; // Accessor to the character database +DatabaseType LoginDatabase; // Accessor to the realm/login database +DatabaseType LogsDatabase; // Accessor to the logs database -uint32 realmID; ///< Id of the realm +uint32 realmID; // Id of the realm -/// Print out the usage string for this program on the console. +// Print out the usage string for this program on the console. void usage(const char *prog) { sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Usage: \n %s []\n" @@ -80,10 +80,10 @@ void usage(const char *prog) char const* g_mainLogFileName = "Server.log"; -/// Launch the mangos server +// Launch the mangos server extern int main(int argc, char **argv) { - ///- Command line parsing + // Command line parsing char const* cfg_file = _MANGOSD_CONFIG; @@ -210,11 +210,11 @@ extern int main(int argc, char **argv) sLog.Out(LOG_BASIC, LOG_LVL_DETAIL, "Using ACE: %s", ACE_VERSION); - ///- Set progress bars show mode + // Set progress bars show mode BarGoLink::SetOutputState(sConfig.GetBoolDefault("ShowProgressBars", true)); - ///- and run the 'Master' - /// \todo Why do we need this 'Master'? Can't all of this be in the Main as for Realmd? + // and run the 'Master' + // TODO: Why do we need this 'Master'? Can't all of this be in the Main as for Realmd? return sMaster.Run(); // at sMaster return function exist with codes @@ -223,4 +223,4 @@ extern int main(int argc, char **argv) // 2 - restart command used, this code can be used by restarter for restart mangosd } -/// @} +// @} diff --git a/src/mangosd/Master.cpp b/src/mangosd/Master.cpp index 77c18ae157e..e8afdebc6b2 100644 --- a/src/mangosd/Master.cpp +++ b/src/mangosd/Master.cpp @@ -203,10 +203,10 @@ Master::~Master() { } -/// Main function +// Main function int Master::Run() { - /// worldd PID file creation + // worldd PID file creation std::string pidfile = sConfig.GetStringDefault("PidFile", ""); if(!pidfile.empty()) { @@ -221,32 +221,32 @@ int Master::Run() sLog.Out(LOG_BASIC, LOG_LVL_BASIC, "Daemon PID: %u\n", pid ); } - ///- Start the databases + // Start the databases if (!_StartDB()) { Log::WaitBeforeContinueIfNeed(); return 1; } - ///- Initialize the World + // Initialize the World sWorld.SetInitialWorldSettings(); #ifndef WIN32 detachDaemon(); #endif - //server loaded successfully => enable async DB requests - //this is done to forbid any async transactions during server startup! + // server loaded successfully => enable async DB requests + // this is done to forbid any async transactions during server startup! CharacterDatabase.AllowAsyncTransactions(); WorldDatabase.AllowAsyncTransactions(); LoginDatabase.AllowAsyncTransactions(); LogsDatabase.AllowAsyncTransactions(); - ///- Catch termination signals + // Catch termination signals _HookSignals(); - ///- Launch WorldRunnable thread + // Launch WorldRunnable thread std::thread world_thread{WorldRunnable()}; - // world_thread.setPriority(ACE_Based::Highest); + // world_thread.setPriority(ACE_Based::Highest); // set realmbuilds depend on mangosd expected builds, and set server online { @@ -264,7 +264,7 @@ int Master::Run() if (sConfig.GetBoolDefault("Console.Enable", true)) #endif { - ///- Launch CliRunnable thread + // Launch CliRunnable thread cliThread = new std::thread(CliRunnable()); } @@ -275,7 +275,7 @@ int Master::Run() if (sConfig.GetBoolDefault ("OfflineChat.Enable", false)) offlinechat_thread = new std::thread(&offlineChat); - ///- Handle affinity for multiple processors and process priority on Windows + // Handle affinity for multiple processors and process priority on Windows #ifdef WIN32 { HANDLE hProcess = GetCurrentProcess(); @@ -307,7 +307,7 @@ int Master::Run() bool Prio = sConfig.GetBoolDefault("ProcessPriority", false); -// if(Prio && (m_ServiceStatus == -1)/* need set to default process priority class in service mode*/) + // if(Prio && (m_ServiceStatus == -1)/* need set to default process priority class in service mode*/) if(Prio) { if(SetPriorityClass(hProcess,HIGH_PRIORITY_CLASS)) @@ -318,7 +318,7 @@ int Master::Run() } #endif - ///- Start soap serving thread + // Start soap serving thread std::thread* soap_thread = nullptr; if(sConfig.GetBoolDefault("SOAP.Enabled", false)) @@ -330,7 +330,7 @@ int Master::Run() }); } - ///- Start up freeze catcher thread + // Start up freeze catcher thread std::thread* freeze_thread = nullptr; if(uint32 freeze_delay = sConfig.GetIntDefault("MaxCoreStuckTime", 0)) { @@ -339,7 +339,7 @@ int Master::Run() } // Wait for clients ? - ///- Launch the world listener socket + // Launch the world listener socket uint16 wsport = sWorld.getConfig(CONFIG_UINT32_PORT_WORLD); std::string bind_ip = sConfig.GetStringDefault("BindIP", "0.0.0.0"); @@ -359,24 +359,24 @@ int Master::Run() } sWorldSocketMgr->Wait(); - ///- Stop freeze protection before shutdown tasks + // Stop freeze protection before shutdown tasks if (freeze_thread) { freeze_thread->join(); delete freeze_thread; } - ///- Stop soap thread + // Stop soap thread if(soap_thread) { soap_thread->join(); delete soap_thread; } - ///- Set server offline in realmlist + // Set server offline in realmlist //LoginDatabase.DirectPExecute("UPDATE realmlist SET realmflags = realmflags | %u WHERE id = '%u'", REALM_FLAG_OFFLINE, realmID); - ///- Remove signal handling before leaving + // Remove signal handling before leaving _UnhookSignals(); // when the main thread closes the singletons get unloaded @@ -395,7 +395,7 @@ int Master::Run() delete offlinechat_thread; } - ///- Clean account database before leaving + // Clean account database before leaving sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Cleaning character database..."); clearOnlineAccounts(); @@ -403,7 +403,7 @@ int Master::Run() sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Sending queued mail..."); sMassMailMgr.Update(true); - ///- Wait for DB delay threads to end + // Wait for DB delay threads to end sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Closing database connections..."); CharacterDatabase.StopServer(); WorldDatabase.StopServer(); @@ -459,13 +459,13 @@ int Master::Run() delete cliThread; } - ///- Exit the process with specified return value + // Exit the process with specified return value return World::GetExitCode(); } bool StartDB(std::string name, DatabaseType& database, const char **migrations) { - ///- Get database info from configuration file + // Get database info from configuration file std::string dbstring = sConfig.GetStringDefault((name + "Database.Info").c_str(), ""); int nConnections = sConfig.GetIntDefault((name + "Database.Connections").c_str(), 1); int nAsyncConnections = sConfig.GetIntDefault((name + "Database.WorkerThreads").c_str(), 1); @@ -510,7 +510,7 @@ bool StartDB(std::string name, DatabaseType& database, const char **migrations) sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "%s Database: %s, sync threads: %i, workers: %i", name.c_str(), dbStringLog.c_str(), nConnections, nAsyncConnections); - ///- Initialise the world database + // Initialise the world database if (!database.Initialize(dbstring.c_str(), nConnections, nAsyncConnections)) { sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "Cannot connect to world database %s", name.c_str()); @@ -519,10 +519,10 @@ bool StartDB(std::string name, DatabaseType& database, const char **migrations) return database.CheckRequiredMigrations(migrations); } -/// Initialize connection to the databases +// Initialize connection to the databases bool Master::_StartDB() { - ///- Get the realm Id from the configuration file + // Get the realm Id from the configuration file realmID = sConfig.GetIntDefault("RealmID", 0); if(!realmID) { @@ -544,18 +544,18 @@ bool Master::_StartDB() sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Realm running as realm ID %d", realmID); - ///- Clean the database before starting + // Clean the database before starting clearOnlineAccounts(); sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ""); return true; } -/// Clear 'online' status for all accounts with characters in this realm +// Clear 'online' status for all accounts with characters in this realm void Master::clearOnlineAccounts() { // Cleanup online status for characters hosted at current realm - /// \todo Only accounts with characters logged on *this* realm should have online status reset. Move the online column from 'account' to 'realmcharacters'? + // TODO: Only accounts with characters logged on *this* realm should have online status reset. Move the online column from 'account' to 'realmcharacters'? LoginDatabase.PExecute("UPDATE `account` SET `current_realm` = 0 WHERE `current_realm` = '%u'", realmID); CharacterDatabase.Execute("UPDATE `characters` SET `online` = 0 WHERE `online`<>0"); @@ -576,7 +576,7 @@ void createdump(void) #endif } -/// Handle termination signals +// Handle termination signals void Master::SigvSignalHandler() { if (m_handleSigvSignals) @@ -648,7 +648,7 @@ void Master::ArmAnticrash() m_handleSigvSignals = true; } -/// Unhook the signals before leaving +// Unhook the signals before leaving void Master::_UnhookSignals() { signal(SIGINT, 0); diff --git a/src/mangosd/Master.h b/src/mangosd/Master.h index 43858da144a..c2f29b82cfe 100644 --- a/src/mangosd/Master.h +++ b/src/mangosd/Master.h @@ -19,9 +19,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/// \addtogroup mangosd -/// @{ -/// \file +// \addtogroup mangosd +// @{ +// \file #ifndef _MASTER_H #define _MASTER_H @@ -29,7 +29,7 @@ #include "Common.h" #include "Policies/Singleton.h" -/// Start the server +// Start the server class Master { public: @@ -53,4 +53,4 @@ class Master #define sMaster MaNGOS::Singleton::Instance() #endif -/// @} +// @} diff --git a/src/mangosd/RASocket.cpp b/src/mangosd/RASocket.cpp index bbc7bf6c4cd..75fe8abbd42 100644 --- a/src/mangosd/RASocket.cpp +++ b/src/mangosd/RASocket.cpp @@ -34,7 +34,7 @@ #include "Language.h" #include "ObjectMgr.h" -/// RASocket constructor +// RASocket constructor RASocket::RASocket() :RAHandler(), pendingCommands(0, USYNC_THREAD, "pendingCommands"), @@ -43,21 +43,21 @@ inputBufferLen(0), outputBufferLen(0), stage(NONE) { - ///- Get the config parameters + // Get the config parameters bSecure = sConfig.GetBoolDefault( "RA.Secure", true ); bStricted = sConfig.GetBoolDefault( "RA.Stricted", false ); iMinLevel = AccountTypes(sConfig.GetIntDefault( "RA.MinLevel", SEC_ADMINISTRATOR )); reference_counting_policy ().value (ACE_Event_Handler::Reference_Counting_Policy::ENABLED); } -/// RASocket destructor +// RASocket destructor RASocket::~RASocket() { peer().close(); sLog.Out(LOG_RA, LOG_LVL_MINIMAL, "Connection was closed."); } -/// Accept an incoming connection +// Accept an incoming connection int RASocket::open(void* ) { if (reactor ()->register_handler(this, ACE_Event_Handler::READ_MASK | ACE_Event_Handler::WRITE_MASK) == -1) @@ -77,7 +77,7 @@ int RASocket::open(void* ) sLog.Out(LOG_RA, LOG_LVL_BASIC, "Incoming connection from %s.",remote_addr.get_host_addr()); - ///- print Motd + // print Motd sendf(sWorld.GetMotd()); sendf("\r\n"); sendf(sObjectMgr.GetMangosStringForDBCLocale(LANG_RA_USER)); @@ -146,7 +146,7 @@ int RASocket::handle_output (ACE_HANDLE) return 0; } -/// Read data from the network +// Read data from the network int RASocket::handle_input(ACE_HANDLE) { sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "RASocket::handle_input"); @@ -164,7 +164,7 @@ int RASocket::handle_input(ACE_HANDLE) return -1; } - ///- Discard data after line break or line feed + // Discard data after line break or line feed bool gotenter=false; for(; readBytes > 0 ; --readBytes) { @@ -183,14 +183,14 @@ int RASocket::handle_input(ACE_HANDLE) inputBufferLen=0; switch(stage) { - ///
  • If the input is '' + //
    • If the input is '' case NONE: { std::string szLogin=inputBuffer; accId = sAccountMgr.GetId(szLogin); - ///- If the user is not found, deny access + // If the user is not found, deny access if(!accId) { sendf("-No such user.\r\n"); @@ -207,7 +207,7 @@ int RASocket::handle_input(ACE_HANDLE) accAccessLevel = sAccountMgr.GetSecurity(accId); - ///- if gmlevel is too low, deny access + // - if gmlevel is too low, deny access if (accAccessLevel < iMinLevel) { sendf("-Not enough privileges.\r\n"); @@ -222,7 +222,7 @@ int RASocket::handle_input(ACE_HANDLE) break; } - ///- allow by remotely connected admin use console level commands dependent from config setting + // - allow by remotely connected admin use console level commands dependent from config setting if (accAccessLevel >= SEC_ADMINISTRATOR && !bStricted) accAccessLevel = SEC_CONSOLE; @@ -230,7 +230,7 @@ int RASocket::handle_input(ACE_HANDLE) sendf(sObjectMgr.GetMangosStringForDBCLocale(LANG_RA_PASS)); break; } - ///
    • If the input is '' (and the user already gave his username) + //
    • If the input is '' (and the user already gave his username) case LG: { //login+pass ok std::string pw = inputBuffer; @@ -245,7 +245,7 @@ int RASocket::handle_input(ACE_HANDLE) } else { - ///- Else deny access + // Else deny access sendf("-Wrong pass.\r\n"); sLog.Out(LOG_RA, LOG_LVL_BASIC, "User account %u has failed to log in.", accId); if(bSecure) @@ -258,7 +258,7 @@ int RASocket::handle_input(ACE_HANDLE) } break; } - ///
    • If user is logged, parse and execute the command + //
    • If user is logged, parse and execute the command case OK: if (strlen(inputBuffer)) { @@ -275,7 +275,7 @@ int RASocket::handle_input(ACE_HANDLE) else sendf("mangos>"); break; - ///
    + //
}; } @@ -283,7 +283,7 @@ int RASocket::handle_input(ACE_HANDLE) return 0; } -/// Output function +// Output function void RASocket::zprint(void* callbackArg, const char * szText ) { if( !szText ) diff --git a/src/mangosd/RASocket.h b/src/mangosd/RASocket.h index 34f79292bfe..799fb59c41b 100644 --- a/src/mangosd/RASocket.h +++ b/src/mangosd/RASocket.h @@ -19,9 +19,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/// \addtogroup mangosd -/// @{ -/// \file +// \addtogroup mangosd +// @{ +// \file #ifndef _RASOCKET_H #define _RASOCKET_H @@ -36,7 +36,7 @@ #define RA_BUFF_SIZE 8192 -/// Remote Administration socket +// Remote Administration socket typedef ACE_Svc_Handler < ACE_SOCK_STREAM, ACE_NULL_SYNCH> RAHandler; class RASocket: protected RAHandler { @@ -48,23 +48,23 @@ class RASocket: protected RAHandler int sendf(const char*); protected: - /// things called by ACE framework. + // things called by ACE framework. RASocket(void); virtual ~RASocket(void); - /// Called on open ,the void* is the acceptor. + // Called on open ,the void* is the acceptor. virtual int open (void *); - /// Called on failures inside of the acceptor, don't call from your code. + // Called on failures inside of the acceptor, don't call from your code. virtual int close (int); - /// Called when we can read from the socket. + // Called when we can read from the socket. virtual int handle_input (ACE_HANDLE = ACE_INVALID_HANDLE); - /// Called when the socket can write. + // Called when the socket can write. virtual int handle_output (ACE_HANDLE = ACE_INVALID_HANDLE); - /// Called when connection is closed or error happens. + // Called when connection is closed or error happens. virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK); @@ -80,19 +80,19 @@ class RASocket: protected RAHandler uint32 accId; AccountTypes accAccessLevel; - bool bSecure; //kick on wrong pass, non exist. user OR user with no priv - //will protect from DOS, bruteforce attacks + bool bSecure; // kick on wrong pass, non exist. user OR user with no priv + // will protect from DOS, bruteforce attacks bool bStricted; // not allow execute console only commands (SEC_CONSOLE) remotly AccountTypes iMinLevel; enum { - NONE, //initial value - LG, //only login was entered - OK, //both login and pass were given, they were correct and user has enough priv. + NONE, // initial value + LG, // only login was entered + OK, // both login and pass were given, they were correct and user has enough priv. }stage; static void zprint(void* callbackArg, const char * szText ); static void commandFinished(void* callbackArg, bool success); }; #endif -/// @} +// @} diff --git a/src/mangosd/WorldRunnable.h b/src/mangosd/WorldRunnable.h index a69067d4e4a..48b147fb0b2 100644 --- a/src/mangosd/WorldRunnable.h +++ b/src/mangosd/WorldRunnable.h @@ -19,20 +19,20 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/// \addtogroup mangosd -/// @{ -/// \file +// \addtogroup mangosd +// @{ +// \file #ifndef __WORLDRUNNABLE_H #define __WORLDRUNNABLE_H #include "Common.h" -/// Heartbeat thread for the World +// Heartbeat thread for the World class WorldRunnable { public: void operator()(); }; #endif -/// @} +// @} diff --git a/src/realmd/AuthCodes.h b/src/realmd/AuthCodes.h index 6a4ce0aae07..3d8742a4d9c 100644 --- a/src/realmd/AuthCodes.h +++ b/src/realmd/AuthCodes.h @@ -60,36 +60,36 @@ enum eAuthSrvCmd enum AuthResult { WOW_SUCCESS = 0x00, - WOW_FAIL_UNKNOWN0 = 0x01, ///< ? Unable to connect - WOW_FAIL_UNKNOWN1 = 0x02, ///< ? Unable to connect - WOW_FAIL_BANNED = 0x03, ///< This account has been closed and is no longer available for use. Please go to /banned.html for further information. - WOW_FAIL_UNKNOWN_ACCOUNT = 0x04, ///< The information you have entered is not valid. Please check the spelling of the account name and password. If you need help in retrieving a lost or stolen password, see for more information - WOW_FAIL_INCORRECT_PASSWORD = 0x05, ///< The information you have entered is not valid. Please check the spelling of the account name and password. If you need help in retrieving a lost or stolen password, see for more information - // client reject next login attempts after this error, so in code used WOW_FAIL_UNKNOWN_ACCOUNT for both cases - WOW_FAIL_ALREADY_ONLINE = 0x06, ///< This account is already logged into . Please check the spelling and try again. - WOW_FAIL_NO_TIME = 0x07, ///< You have used up your prepaid time for this account. Please purchase more to continue playing - WOW_FAIL_DB_BUSY = 0x08, ///< Could not log in to at this time. Please try again later. - WOW_FAIL_VERSION_INVALID = 0x09, ///< Unable to validate game version. This may be caused by file corruption or interference of another program. Please visit for more information and possible solutions to this issue. - WOW_FAIL_VERSION_UPDATE = 0x0A, ///< Downloading - WOW_FAIL_INVALID_SERVER = 0x0B, ///< Unable to connect - WOW_FAIL_SUSPENDED = 0x0C, ///< This account has been temporarily suspended. Please go to /banned.html for further information - WOW_FAIL_FAIL_NOACCESS = 0x0D, ///< Unable to connect - WOW_SUCCESS_SURVEY = 0x0E, ///< Connected. - WOW_FAIL_PARENTCONTROL = 0x0F, ///< Access to this account has been blocked by parental controls. Your settings may be changed in your account preferences at + WOW_FAIL_UNKNOWN0 = 0x01, // Unknown0 - Unable to connect + WOW_FAIL_UNKNOWN1 = 0x02, // Unknown1 - Unable to connect + WOW_FAIL_BANNED = 0x03, // This account has been closed and is no longer available for use. Please go to /banned.html for further information. + WOW_FAIL_UNKNOWN_ACCOUNT = 0x04, // The information you have entered is not valid. Please check the spelling of the account name and password. If you need help in retrieving a lost or stolen password, see for more information + WOW_FAIL_INCORRECT_PASSWORD = 0x05, // The information you have entered is not valid. Please check the spelling of the account name and password. If you need help in retrieving a lost or stolen password, see for more information + // Client reject next login attempts after this error, so in code used WOW_FAIL_UNKNOWN_ACCOUNT for both cases + WOW_FAIL_ALREADY_ONLINE = 0x06, // This account is already logged into . Please check the spelling and try again. + WOW_FAIL_NO_TIME = 0x07, // You have used up your prepaid time for this account. Please purchase more to continue playing + WOW_FAIL_DB_BUSY = 0x08, // Could not log in to at this time. Please try again later. + WOW_FAIL_VERSION_INVALID = 0x09, // Unable to validate game version. This may be caused by file corruption or interference of another program. Please visit for more information and possible solutions to this issue. + WOW_FAIL_VERSION_UPDATE = 0x0A, // Downloading + WOW_FAIL_INVALID_SERVER = 0x0B, // Unable to connect + WOW_FAIL_SUSPENDED = 0x0C, // This account has been temporarily suspended. Please go to /banned.html for further information + WOW_FAIL_FAIL_NOACCESS = 0x0D, // Unable to connect + WOW_SUCCESS_SURVEY = 0x0E, // Connected. + WOW_FAIL_PARENTCONTROL = 0x0F, // Access to this account has been blocked by parental controls. Your settings may be changed in your account preferences at // TBC+ - WOW_FAIL_LOCKED_ENFORCED = 0x10, ///< You have applied a lock to your account. You can change your locked status by calling your account lock phone number. + WOW_FAIL_LOCKED_ENFORCED = 0x10, // You have applied a lock to your account. You can change your locked status by calling your account lock phone number. // WOTLK+ - WOW_FAIL_TRIAL_ENDED = 0x11, ///< Your trial subscription has expired. Please visit to upgrade your account. - WOW_FAIL_USE_BATTLENET = 0x12, ///< This account is now attached to a Battle.net account. Please login with your Battle.net account email address and password. - WOW_FAIL_ANTI_INDULGENCE = 0x13, ///< Unable to connect - WOW_FAIL_EXPIRED = 0x14, ///< Unable to connect - WOW_FAIL_NO_GAME_ACCOUNT = 0x15, ///< Unable to connect - WOW_FAIL_CHARGEBACK = 0x16, ///< This World of Warcraft account has been temporary closed due to a chargeback on its subscription. Please refer to this for further information. - WOW_FAIL_IGR_WITHOUT_BNET = 0x17, ///< In order to log in to World of Warcraft using IGR time, this World of Warcraft account must first be merged with a Battle.net account. Please visit to merge this account. - WOW_FAIL_GAME_ACCOUNT_LOCKED = 0x18, ///< Access to your account has been temporarily disabled. - WOW_FAIL_UNLOCKABLE_LOCK = 0x19, ///< Your account has been locked but can be unlocked. - WOW_FAIL_CONVERSION_REQUIRED = 0x20, ///< This account needs to be converted to a Battle.net account. Please [Click Here] or go to: to begin conversion. - WOW_FAIL_DISCONNECTED = 0xFF + WOW_FAIL_TRIAL_ENDED = 0x11, // Your trial subscription has expired. Please visit to upgrade your account. + WOW_FAIL_USE_BATTLENET = 0x12, // This account is now attached to a Battle.net account. Please login with your Battle.net account email address and password. + WOW_FAIL_ANTI_INDULGENCE = 0x13, // Unable to connect + WOW_FAIL_EXPIRED = 0x14, // Unable to connect + WOW_FAIL_NO_GAME_ACCOUNT = 0x15, // Unable to connect + WOW_FAIL_CHARGEBACK = 0x16, // This World of Warcraft account has been temporary closed due to a chargeback on its subscription. Please refer to this for further information. + WOW_FAIL_IGR_WITHOUT_BNET = 0x17, // In order to log in to World of Warcraft using IGR time, this World of Warcraft account must first be merged with a Battle.net account. Please visit to merge this account. + WOW_FAIL_GAME_ACCOUNT_LOCKED = 0x18, // Access to your account has been temporarily disabled. + WOW_FAIL_UNLOCKABLE_LOCK = 0x19, // Your account has been locked but can be unlocked. + WOW_FAIL_CONVERSION_REQUIRED = 0x20, // This account needs to be converted to a Battle.net account. Please [Click Here] or go to: to begin conversion. + WOW_FAIL_DISCONNECTED = 0xFF // Disconnected }; #endif diff --git a/src/realmd/AuthSocket.cpp b/src/realmd/AuthSocket.cpp index 89105df73be..92dc83decf8 100644 --- a/src/realmd/AuthSocket.cpp +++ b/src/realmd/AuthSocket.cpp @@ -183,7 +183,7 @@ typedef struct AuthHandler std::array VersionChallenge = { { 0xBA, 0xA3, 0x1E, 0x99, 0xA0, 0x0B, 0x21, 0x57, 0xFC, 0x37, 0x3F, 0xB3, 0x69, 0xCD, 0xD2, 0xF1 } }; -/// Close patch file descriptor before leaving +// Close patch file descriptor before leaving AuthSocket::~AuthSocket() { if(m_patch != ACE_INVALID_HANDLE) @@ -198,13 +198,13 @@ AccountTypes AuthSocket::GetSecurityOn(uint32 realmId) const return it->second; } -/// Accept the connection and set the s random value for SRP6 +// Accept the connection and set the s random value for SRP6 void AuthSocket::OnAccept() { sLog.Out(LOG_BASIC, LOG_LVL_BASIC, "Accepting connection from '%s'", get_remote_address().c_str()); } -/// Read the packet from the client +// Read the packet from the client void AuthSocket::OnRead() { // benchmarking has demonstrated that this lookup method is faster than std::map @@ -228,7 +228,7 @@ void AuthSocket::OnRead() size_t i; - ///- Circle through known commands and call the correct command handler + // Circle through known commands and call the correct command handler for (i = 0; i < AUTH_TOTAL_COMMANDS; ++i) { if (table[i].cmd != _cmd) @@ -255,7 +255,7 @@ void AuthSocket::OnRead() break; } - ///- Report unknown commands in the debug log + // Report unknown commands in the debug log if (i == AUTH_TOTAL_COMMANDS) { sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "[Auth] got unknown packet %u", (uint32)_cmd); @@ -301,14 +301,14 @@ void AuthSocket::SendProof(Sha1Hash sha) } } -/// Logon Challenge command handler +// Logon Challenge command handler bool AuthSocket::_HandleLogonChallenge() { sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "Entering _HandleLogonChallenge"); if (recv_len() < sizeof(sAuthLogonChallenge_C)) return false; - ///- Read the first 4 bytes (header) to get the length of the remaining of the packet + // Read the first 4 bytes (header) to get the length of the remaining of the packet std::vector buf; buf.resize(4); @@ -321,15 +321,15 @@ bool AuthSocket::_HandleLogonChallenge() if ((remaining < sizeof(sAuthLogonChallenge_C) - buf.size()) || (recv_len() < remaining)) return false; - ///- Session is closed unless overriden + // Session is closed unless overriden m_status = STATUS_CLOSED; - //No big fear of memory outage (size is int16, i.e. < 65536) + // No big fear of memory outage (size is int16, i.e. < 65536) buf.resize(remaining + buf.size() + 1); buf[buf.size() - 1] = 0; sAuthLogonChallenge_C *ch = (sAuthLogonChallenge_C*)&buf[0]; - ///- Read the remaining of the packet + // Read the remaining of the packet recv((char *)&buf[4], remaining); sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "[AuthChallenge] got full packet, %#04x bytes", ch->size); sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "[AuthChallenge] name(%d): '%s'", ch->I_len, ch->I); @@ -356,18 +356,18 @@ bool AuthSocket::_HandleLogonChallenge() std::reverse(ch->platform, ch->platform + 3); memcpy(&m_platform, ch->platform, sizeof(m_platform)); - ///- Normalize account name - //utf8ToUpperOnlyLatin(m_login); -- client already send account in expected form + // Normalize account name + // utf8ToUpperOnlyLatin(m_login); -- client already send account in expected form - //Escape the user login to avoid further SQL injection - //Memory will be freed on AuthSocket object destruction + // Escape the user login to avoid further SQL injection + // Memory will be freed on AuthSocket object destruction m_safelogin = m_login; LoginDatabase.escape_string(m_safelogin); pkt << (uint8) CMD_AUTH_LOGON_CHALLENGE; pkt << (uint8) 0x00; - ///- Verify that this IP is not in the ip_banned table + // Verify that this IP is not in the ip_banned table // No SQL injection possible (paste the IP address as passed by the socket) std::string address = get_remote_address(); LoginDatabase.escape_string(address); @@ -382,7 +382,7 @@ bool AuthSocket::_HandleLogonChallenge() } else { - ///- Get the account details from the account table + // Get the account details from the account table // No SQL injection (escaped user name) // 0 1 2 3 4 5 6 7 8 9 result = LoginDatabase.PQuery("SELECT `id`, `locked`, `last_ip`, `v`, `s`, `security`, `email_verif`, `geolock_pin`, `email`, UNIX_TIMESTAMP(`joindate`) FROM `account` WHERE `username` = '%s'",m_safelogin.c_str ()); @@ -410,7 +410,7 @@ bool AuthSocket::_HandleLogonChallenge() return true; } - ///- If the IP is 'locked', check that the player comes indeed from the correct IP address + // If the IP is 'locked', check that the player comes indeed from the correct IP address bool locked = false; m_lockFlags = (LockFlag)(*result)[1].GetUInt32(); m_securityInfo = (*result)[5].GetCppString(); @@ -457,7 +457,7 @@ bool AuthSocket::_HandleLogonChallenge() if ((!locked || (locked && (m_lockFlags & FIXED_PIN || m_lockFlags & TOTP))) && !broken) { uint32 account_id = fields[0].GetUInt32(); - ///- If the account is banned, reject the logon attempt + // If the account is banned, reject the logon attempt QueryResult *banresult = LoginDatabase.PQuery("SELECT `bandate`, `unbandate` FROM `account_banned` WHERE " "`id` = %u AND `active` = 1 AND (`unbandate` > UNIX_TIMESTAMP() OR `unbandate` = `bandate`) LIMIT 1", account_id); if (banresult) @@ -484,7 +484,7 @@ bool AuthSocket::_HandleLogonChallenge() srp.CalculateHostPublicEphemeral(); - ///- Fill the response packet with the result + // Fill the response packet with the result pkt << uint8(WOW_SUCCESS); // B may be calculated < 32B so we force minimal length to 32B @@ -531,7 +531,7 @@ bool AuthSocket::_HandleLogonChallenge() m_accountId = account_id; - ///- All good, await client's proof + // All good, await client's proof m_status = STATUS_LOGON_PROOF; } } @@ -546,14 +546,14 @@ bool AuthSocket::_HandleLogonChallenge() return true; } -/// Logon Proof command handler +// Logon Proof command handler bool AuthSocket::_HandleLogonProof() { sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "Entering _HandleLogonProof"); sAuthLogonProof_C_1_11 lp; - ///- Read the packet + // Read the packet if (m_build < 5428) // before version 1.11.0 (exclusive) { if (!recv((char *)&lp, sizeof(sAuthLogonProof_C_Base))) @@ -574,19 +574,19 @@ bool AuthSocket::_HandleLogonProof() return false; } - ///- Check if the client has one of the expected version numbers + // Check if the client has one of the expected version numbers bool valid_version = FindBuildInfo(m_build) != nullptr; - ///- Session is closed unless overriden + // Session is closed unless overriden m_status = STATUS_CLOSED; - ///
  • If the client has no valid version + //
    • If the client has no valid version if(!valid_version) { if (this->m_patch != ACE_INVALID_HANDLE) return false; - ///- Check if we have the apropriate patch on the disk + // Check if we have the apropriate patch on the disk // file looks like: 65535enGB.mpq char tmp[256]; @@ -642,16 +642,16 @@ bool AuthSocket::_HandleLogonProof() return true; } - ///
    + //
- ///- Continue the SRP6 calculation based on data received from the client + // Continue the SRP6 calculation based on data received from the client if (!srp.CalculateSessionKey(lp.A, 32)) return false; srp.HashSessionKey(); srp.CalculateProof(m_login); - ///- Check PIN data is correct + // Check PIN data is correct bool pinResult = true; if (m_promptPin && !lp.securityFlags) @@ -688,7 +688,7 @@ bool AuthSocket::_HandleLogonProof() } } - ///- Check if SRP6 results match (password is correct), else send an error + // Check if SRP6 results match (password is correct), else send an error if (!srp.Proof(lp.M1, 20) && pinResult) { if (!VerifyVersion(lp.A, sizeof(lp.A), lp.crc_hash, false)) @@ -758,7 +758,7 @@ bool AuthSocket::_HandleLogonProof() sLog.Out(LOG_BASIC, LOG_LVL_BASIC, "[AuthChallenge] Account '%s' using IP '%s' successfully authenticated", m_login.c_str(), get_remote_address().c_str()); - ///- Update the sessionkey, last_ip, last login time and reset number of failed logins in the account table for this account + // Update the sessionkey, last_ip, last login time and reset number of failed logins in the account table for this account // No SQL injection (escaped user name) and IP address as received by socket const char* K_hex = srp.GetStrongSessionKey().AsHexStr(); const char *os = reinterpret_cast(&m_os); // no injection as there are only two possible values @@ -768,7 +768,7 @@ bool AuthSocket::_HandleLogonProof() delete result; OPENSSL_free((void*)K_hex); - ///- Finish SRP6 and send the final result to the client + // Finish SRP6 and send the final result to the client Sha1Hash sha; srp.Finalize(sha); @@ -832,14 +832,14 @@ bool AuthSocket::_HandleLogonProof() return true; } -/// Reconnect Challenge command handler +// Reconnect Challenge command handler bool AuthSocket::_HandleReconnectChallenge() { sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "Entering _HandleReconnectChallenge"); if (recv_len() < sizeof(sAuthLogonChallenge_C)) return false; - ///- Read the first 4 bytes (header) to get the length of the remaining of the packet + // Read the first 4 bytes (header) to get the length of the remaining of the packet std::vector buf; buf.resize(4); @@ -852,7 +852,7 @@ bool AuthSocket::_HandleReconnectChallenge() if ((remaining < sizeof(sAuthLogonChallenge_C) - buf.size()) || (recv_len() < remaining)) return false; - ///- Session is closed unless overriden + // Session is closed unless overriden m_status = STATUS_CLOSED; //No big fear of memory outage (size is int16, i.e. < 65536) @@ -860,7 +860,7 @@ bool AuthSocket::_HandleReconnectChallenge() buf[buf.size() - 1] = 0; sAuthLogonChallenge_C *ch = (sAuthLogonChallenge_C*)&buf[0]; - ///- Read the remaining of the packet + // Read the remaining of the packet recv((char *)&buf[4], remaining); sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "[ReconnectChallenge] got full packet, %#04x bytes", ch->size); sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "[ReconnectChallenge] name(%d): '%s'", ch->I_len, ch->I); @@ -895,10 +895,10 @@ bool AuthSocket::_HandleReconnectChallenge() m_accountId = fields[1].GetUInt32(); delete result; - ///- All good, await client's proof + // All good, await client's proof m_status = STATUS_RECON_PROOF; - ///- Sending response + // Sending response ByteBuffer pkt; pkt << (uint8) CMD_AUTH_RECONNECT_CHALLENGE; pkt << (uint8) 0x00; @@ -909,16 +909,16 @@ bool AuthSocket::_HandleReconnectChallenge() return true; } -/// Reconnect Proof command handler +// Reconnect Proof command handler bool AuthSocket::_HandleReconnectProof() { sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "Entering _HandleReconnectProof"); - ///- Read the packet + // Read the packet sAuthReconnectProof_C lp; if(!recv((char *)&lp, sizeof(sAuthReconnectProof_C))) return false; - ///- Session is closed unless overriden + // Session is closed unless overriden m_status = STATUS_CLOSED; BigNumber K = srp.GetStrongSessionKey(); @@ -945,7 +945,7 @@ bool AuthSocket::_HandleReconnectProof() return true; } - ///- Sending response + // Sending response ByteBuffer pkt; pkt << uint8(CMD_AUTH_RECONNECT_PROOF); pkt << uint8(WOW_SUCCESS); @@ -962,7 +962,7 @@ bool AuthSocket::_HandleReconnectProof() } } -/// %Realm List command handler +// %Realm List command handler bool AuthSocket::_HandleRealmList() { sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "Entering _HandleRealmList"); @@ -988,10 +988,10 @@ bool AuthSocket::_HandleRealmList() return false; } - ///- Update realm list if need + // Update realm list if need sRealmList.UpdateIfNeed(); - ///- Circle through realms in the RealmList and construct the return packet (including # of user characters in each realm) + // Circle through realms in the RealmList and construct the return packet (including # of user characters in each realm) ByteBuffer pkt; LoadRealmlist(pkt); @@ -1120,7 +1120,7 @@ void AuthSocket::LoadRealmlist(ByteBuffer &pkt) } } -/// Resume patch transfer +// Resume patch transfer bool AuthSocket::_HandleXferResume() { sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "Entering _HandleXferResume"); @@ -1158,7 +1158,7 @@ bool AuthSocket::_HandleXferResume() return true; } -/// Cancel patch transfer +// Cancel patch transfer bool AuthSocket::_HandleXferCancel() { sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "Entering _HandleXferCancel"); @@ -1169,7 +1169,7 @@ bool AuthSocket::_HandleXferCancel() return true; } -/// Accept patch transfer +// Accept patch transfer bool AuthSocket::_HandleXferAccept() { sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "Entering _HandleXferAccept"); @@ -1181,7 +1181,7 @@ bool AuthSocket::_HandleXferAccept() return true; } -/// Verify PIN entry data +// Verify PIN entry data bool AuthSocket::VerifyPinData(uint32 pin, const PINData& clientData) { // remap the grid to match the client's layout diff --git a/src/realmd/AuthSocket.h b/src/realmd/AuthSocket.h index cc3acf0724b..9bae00e4ebc 100644 --- a/src/realmd/AuthSocket.h +++ b/src/realmd/AuthSocket.h @@ -19,9 +19,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/// \addtogroup realmd -/// @{ -/// \file +// \addtogroup realmd +// @{ +// \file #ifndef _AUTHSOCKET_H #define _AUTHSOCKET_H @@ -51,7 +51,7 @@ enum LockFlag GEO_CITY = 0x20 }; -/// Handle login commands +// Handle login commands class AuthSocket: public BufferedSocket { public: @@ -138,4 +138,4 @@ class AuthSocket: public BufferedSocket void InitPatch(); }; #endif -/// @} +// @} diff --git a/src/realmd/Main.cpp b/src/realmd/Main.cpp index 4a6254ba372..4582a6f9116 100644 --- a/src/realmd/Main.cpp +++ b/src/realmd/Main.cpp @@ -19,9 +19,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/// \addtogroup realmd Realm Daemon -/// @{ -/// \file +// \addtogroup realmd Realm Daemon +// @{ +// \file #include "Common.h" #include "Database/DatabaseEnv.h" @@ -69,11 +69,11 @@ bool StartDB(); void UnhookSignals(); void HookSignals(); -bool stopEvent = false; ///< Setting it to true stops the server +bool stopEvent = false; // Setting it to true stops the server -DatabaseType LoginDatabase; ///< Accessor to the realm server database +DatabaseType LoginDatabase; // Accessor to the realm server database -/// Print out the usage string for this program on the console. +// Print out the usage string for this program on the console. void usage(const char *prog) { sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Usage: \n %s []\n" @@ -94,10 +94,10 @@ void usage(const char *prog) char const* g_mainLogFileName = "Realmd.log"; -/// Launch the realm server +// Launch the realm server extern int main(int argc, char **argv) { - ///- Command line parsing + // Command line parsing char const* cfg_file = _REALMD_CONFIG; char const *options = ":c:s:"; @@ -196,7 +196,7 @@ extern int main(int argc, char **argv) sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, " to stop.\n" ); sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Using configuration file %s.", cfg_file); - ///- Check the version of the configuration file + // Check the version of the configuration file uint32 confVersion = sConfig.GetIntDefault("ConfVersion", 0); if (confVersion < _REALMDCONFVERSION) { @@ -233,7 +233,7 @@ extern int main(int argc, char **argv) sLog.Out(LOG_BASIC, LOG_LVL_BASIC, "Max allowed open files is %d", ACE::max_handles()); - /// realmd PID file creation + // realmd PID file creation std::string pidfile = sConfig.GetStringDefault("PidFile", ""); if(!pidfile.empty()) { @@ -248,7 +248,7 @@ extern int main(int argc, char **argv) sLog.Out(LOG_BASIC, LOG_LVL_BASIC, "Daemon PID: %u\n", pid ); } - ///- Initialize the database connection + // Initialize the database connection if(!StartDB()) { Log::WaitBeforeContinueIfNeed(); @@ -267,7 +267,7 @@ extern int main(int argc, char **argv) } } - ///- Get the list of realms for the server + // Get the list of realms for the server sRealmList.Initialize(sConfig.GetIntDefault("RealmsStateUpdateDelay", 20)); if (sRealmList.size() == 0) { @@ -289,7 +289,7 @@ extern int main(int argc, char **argv) LoginDatabase.Execute("DELETE FROM `ip_banned` WHERE `unbandate`<=UNIX_TIMESTAMP() AND `unbandate`<>`bandate`"); LoginDatabase.CommitTransaction(); - ///- Launch the listening network socket + // Launch the listening network socket ACE_Acceptor acceptor; uint16 rmport = sConfig.GetIntDefault("RealmServerPort", DEFAULT_REALMSERVER_PORT); @@ -304,10 +304,10 @@ extern int main(int argc, char **argv) return 1; } - ///- Catch termination signals + // Catch termination signals HookSignals(); - ///- Handle affinity for multiple processors and process priority on Windows + // Handle affinity for multiple processors and process priority on Windows #ifdef WIN32 { HANDLE hProcess = GetCurrentProcess(); @@ -360,7 +360,7 @@ extern int main(int argc, char **argv) #ifndef WIN32 detachDaemon(); #endif - ///- Wait for termination signal + // Wait for termination signal while (!stopEvent) { // dont move this outside the loop, the reactor will modify it @@ -381,17 +381,17 @@ extern int main(int argc, char **argv) #endif } - ///- Wait for the delay thread to exit + // Wait for the delay thread to exit LoginDatabase.HaltDelayThread(); - ///- Remove signal handling before leaving + // Remove signal handling before leaving UnhookSignals(); sLog.Out(LOG_BASIC, LOG_LVL_BASIC, "Halting process..." ); return 0; } -/// Handle termination signals +// Handle termination signals /** Put the global variable stopEvent to 'true' if a termination signal is caught **/ void OnSignal(int s) { @@ -411,7 +411,7 @@ void OnSignal(int s) signal(s, OnSignal); } -/// Initialize connection to the database +// Initialize connection to the database bool StartDB() { std::string dbstring = sConfig.GetStringDefault("LoginDatabaseInfo", ""); @@ -463,7 +463,7 @@ bool StartDB() if (!LoginDatabase.CheckRequiredMigrations(MIGRATIONS_LOGON)) { - ///- Wait for already started DB delay threads to end + // Wait for already started DB delay threads to end LoginDatabase.HaltDelayThread(); return false; } @@ -471,7 +471,7 @@ bool StartDB() return true; } -/// Define hook 'OnSignal' for all termination signals +// Define hook 'OnSignal' for all termination signals void HookSignals() { signal(SIGINT, OnSignal); @@ -481,7 +481,7 @@ void HookSignals() #endif } -/// Unhook the signals before leaving +// Unhook the signals before leaving void UnhookSignals() { signal(SIGINT, 0); @@ -491,4 +491,4 @@ void UnhookSignals() #endif } -/// @} +// @} diff --git a/src/realmd/RealmList.cpp b/src/realmd/RealmList.cpp index f8f479035ec..6cf25d09a15 100644 --- a/src/realmd/RealmList.cpp +++ b/src/realmd/RealmList.cpp @@ -74,20 +74,20 @@ RealmList& sRealmList return realmlist; } -/// Load the realm list from the database +// Load the realm list from the database void RealmList::Initialize(uint32 updateInterval) { m_UpdateInterval = updateInterval; LoadAllowedClients(); - ///- Get the content of the realmlist table in the database + // Get the content of the realmlist table in the database UpdateRealms(true); } void RealmList::UpdateRealm( uint32 ID, const std::string& name, const std::string& address, uint32 port, uint8 icon, RealmFlags realmflags, uint8 timezone, AccountTypes allowedSecurityLevel, float popu, const std::string& builds) { - ///- Create new if not exist or update existed + // Create new if not exist or update existed Realm& realm = m_realms[name]; realm.m_ID = ID; @@ -119,7 +119,7 @@ void RealmList::UpdateRealm( uint32 ID, const std::string& name, const std::stri if (bInfo->build == first_build) realm.realmBuildInfo = *bInfo; - ///- Append port to IP address. + // Append port to IP address. std::ostringstream ss; ss << address << ":" << port; realm.address = ss.str(); @@ -151,7 +151,7 @@ void RealmList::UpdateRealms(bool init) "`allowedSecurityLevel`, `population`, `realmbuilds` FROM `realmlist` " "WHERE (`realmflags` & 1) = 0 ORDER BY `name`"); - ///- Circle through results and add them to the realm map + // Circle through results and add them to the realm map if(result) { do diff --git a/src/realmd/RealmList.h b/src/realmd/RealmList.h index 65c7c0fcd70..73d177a9457 100644 --- a/src/realmd/RealmList.h +++ b/src/realmd/RealmList.h @@ -19,9 +19,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/// \addtogroup realmd -/// @{ -/// \file +// \addtogroup realmd +// @{ +// \file #ifndef _REALMLIST_H #define _REALMLIST_H @@ -48,7 +48,7 @@ extern std::vector ExpectedRealmdClientBuilds; typedef std::set RealmBuilds; -/// Storage object for a realm +// Storage object for a realm struct Realm { std::string address; @@ -62,7 +62,7 @@ struct Realm RealmBuildInfo realmBuildInfo; // build info for show version in list }; -/// Storage object for the list of realms on the server +// Storage object for the list of realms on the server class RealmList { public: @@ -85,7 +85,7 @@ class RealmList void UpdateRealm( uint32 ID, const std::string& name, const std::string& address, uint32 port, uint8 icon, RealmFlags realmflags, uint8 timezone, AccountTypes allowedSecurityLevel, float popu, const std::string& builds); void LoadAllowedClients(); private: - RealmMap m_realms; ///< Internal map of realms + RealmMap m_realms; // Internal map of realms uint32 m_UpdateInterval; time_t m_NextUpdateTime; }; @@ -93,4 +93,4 @@ class RealmList #define sRealmList RealmList::Instance() #endif -/// @} +// @} diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/boss_urok.cpp b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/boss_urok.cpp index c866d3068bc..c77b11cee55 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/boss_urok.cpp +++ b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/boss_urok.cpp @@ -23,7 +23,7 @@ enum void DefineGoChallenge(Creature * crea, uint64 gobjGUID); -/// Script du GameObject de challenge (GO_CHALLENGE_UROK) +// Challenge GameObject Script (GO_CHALLENGE_UROK) struct go_urok_challengeAI: public GameObjectAI { go_urok_challengeAI(GameObject* go) : GameObjectAI(go), _actived(true), _step(0), _timer(0), _spellTimer(0) diff --git a/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/boss_kelthuzad.cpp b/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/boss_kelthuzad.cpp index ed42ae03fdf..83767904dfe 100644 --- a/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/boss_kelthuzad.cpp +++ b/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/boss_kelthuzad.cpp @@ -963,7 +963,7 @@ struct mob_guardian_icecrownAI : public ScriptedAI void JustReachedHome() override { m_creature->DeleteLater(); - ///m_creature->ForcedDespawn(1); + // m_creature->ForcedDespawn(1); } void DispellShackle(Creature* pC) diff --git a/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/instance_naxxramas.cpp b/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/instance_naxxramas.cpp index 642c5ead39e..cd02b689656 100644 --- a/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/instance_naxxramas.cpp +++ b/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/instance_naxxramas.cpp @@ -517,7 +517,7 @@ void instance_naxxramas::OnObjectCreate(GameObject* pGo) case 533196: case 533198: m_alHeiganTrapGuids[2].push_back(pGo->GetObjectGuid()); - ///case 533186: + // case 533186: } } diff --git a/src/scripts/eastern_kingdoms/searing_gorge/searing_gorge.cpp b/src/scripts/eastern_kingdoms/searing_gorge/searing_gorge.cpp index 0b9c2258358..61a9c72b495 100644 --- a/src/scripts/eastern_kingdoms/searing_gorge/searing_gorge.cpp +++ b/src/scripts/eastern_kingdoms/searing_gorge/searing_gorge.cpp @@ -189,7 +189,7 @@ struct npc_obsidionAI : public ScriptedAI bool GossipHello_npc_dying_archaeologist(Player* pPlayer, Creature* pCreature) { if (Creature* Obsidion = GetClosestCreatureWithEntry(pCreature, NPC_OBSIDION, VISIBLE_RANGE)) - return false; /// everything is ok + return false; // everything is ok pPlayer->PrepareQuestMenu(pCreature->GetObjectGuid(), QUEST_RISE_OBSIDION); pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, pCreature->GetObjectGuid()); diff --git a/src/scripts/eastern_kingdoms/stranglethorn_vale/zulgurub/boss_venoxis.cpp b/src/scripts/eastern_kingdoms/stranglethorn_vale/zulgurub/boss_venoxis.cpp index e565433d0b7..63417d59181 100644 --- a/src/scripts/eastern_kingdoms/stranglethorn_vale/zulgurub/boss_venoxis.cpp +++ b/src/scripts/eastern_kingdoms/stranglethorn_vale/zulgurub/boss_venoxis.cpp @@ -196,7 +196,7 @@ struct boss_venoxisAI : public ScriptedAI if (!m_bPhaseTwo) { - /// Phase 1 + // Phase 1 if (m_uiHolyNova_Timer < uiDiff) { DoCastSpellIfCan(m_creature, SPELL_HOLY_NOVA); diff --git a/src/scripts/kalimdor/silithus/silithus.cpp b/src/scripts/kalimdor/silithus/silithus.cpp index dc61f9f189e..0b786f72e38 100644 --- a/src/scripts/kalimdor/silithus/silithus.cpp +++ b/src/scripts/kalimdor/silithus/silithus.cpp @@ -150,7 +150,7 @@ struct go_pierre_ventsAI: public GameObjectAI bool playerHasAura = true; - ///- Check if allowed to use the stone ? + // Check if allowed to use the stone ? switch (GetStoneType()) { // Pierre SUP @@ -211,7 +211,7 @@ struct go_pierre_ventsAI: public GameObjectAI uint32 summonEntry = 0; uint32 textId = 0; - ///- Let's find out which mob we have to summon. + // Let's find out which mob we have to summon. switch (stoneType) { case GO_TYPE_PIERRE_SUP: @@ -249,7 +249,7 @@ struct go_pierre_ventsAI: public GameObjectAI if (!summonEntry) return true; - ///- Destroy required items. + // Destroy required items. if (!player->ToPlayer()->IsGameMaster()) { switch (stoneType) @@ -268,7 +268,7 @@ struct go_pierre_ventsAI: public GameObjectAI } } - ///- Summon the creature + // Summon the creature if (Creature* pInvoc = me->SummonCreature(summonEntry, player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), me->GetAngle(player), TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 3600000, false, 5000)) { player->CastSpell(player, SPELL_RED_LIGHTNING, true); @@ -278,7 +278,7 @@ struct go_pierre_ventsAI: public GameObjectAI pInvoc->MonsterSay(textId, 0, player); } - ///- Mark stone as used. + // Mark stone as used. me->UseDoorOrButton(); if (stoneType == GO_TYPE_PIERRE_SUP) me->SetRespawnTime(3600); diff --git a/src/shared/Database/DBCFileLoader.h b/src/shared/Database/DBCFileLoader.h index f7fb12a150c..ab024d235be 100644 --- a/src/shared/Database/DBCFileLoader.h +++ b/src/shared/Database/DBCFileLoader.h @@ -91,7 +91,7 @@ class DBCFileLoader // Get record by id Record getRecord(size_t id); - /// Get begin iterator over records + // Get begin iterator over records uint32 GetNumRows() const { return recordCount;} uint32 GetCols() const { return fieldCount; } diff --git a/src/shared/Database/Database.h b/src/shared/Database/Database.h index ed46644cb2a..80052b09508 100644 --- a/src/shared/Database/Database.h +++ b/src/shared/Database/Database.h @@ -126,7 +126,7 @@ class Database //stop worker thread virtual void HaltDelayThread(); - /// Synchronous DB queries + // Synchronous DB queries inline QueryResult* Query(char const* sql) { SqlConnection::Lock guard(getQueryConnection()); @@ -153,7 +153,7 @@ class Database bool DirectPExecute(char const* format,...) ATTR_PRINTF(2,3); - /// Async queries and query holders, implemented in DatabaseImpl.h + // Async queries and query holders, implemented in DatabaseImpl.h // Query / member template @@ -309,7 +309,7 @@ class Database typedef ACE_TSS DBTransHelperTSS; Database::DBTransHelperTSS m_TransStorage; - ///< DB connections + // DB connections //round-robin connection selection SqlConnection* getQueryConnection(); @@ -323,8 +323,8 @@ class Database bool DirectExecuteStmt(SqlStatementID const& id, SqlStmtParameters* params); //connection helper counters - int m_nQueryConnPoolSize; //current size of query connection pool - std::atomic m_nQueryCounter; //counter for connection selection + int m_nQueryConnPoolSize; // Current size of query connection pool + std::atomic m_nQueryCounter; // Counter for connection selection //lets use pool of connections for sync queries typedef std::vector< SqlConnection* > SqlConnectionContainer; @@ -334,12 +334,12 @@ class Database SqlConnection* m_pAsyncConn; - SqlResultQueue* m_pResultQueue; ///< Transaction queues from diff. threads + SqlResultQueue* m_pResultQueue; // Transaction queues from diff. threads uint32 m_numAsyncWorkers; - std::vector> m_threadsBodies; ///< Pointer to delay sql executer (owned by m_delayThread) - std::vector m_delayThreads; ///< Pointer to executer thread + std::vector> m_threadsBodies; // Pointer to delay sql executer (owned by m_delayThread) + std::vector m_delayThreads; // Pointer to executer thread - bool m_bAllowAsyncTransactions; ///< flag which specifies if async transactions are enabled + bool m_bAllowAsyncTransactions; // Flag which specifies if async transactions are enabled //PREPARED STATEMENT REGISTRY using LOCK_TYPE = std::mutex; @@ -348,7 +348,7 @@ class Database mutable LOCK_TYPE m_stmtGuard; typedef std::unordered_map PreparedStmtRegistry; - PreparedStmtRegistry m_stmtRegistry; ///< + PreparedStmtRegistry m_stmtRegistry; int m_iStmtIndex; diff --git a/src/shared/Database/DatabaseImpl.h b/src/shared/Database/DatabaseImpl.h index ba28453b367..04563d0b3bf 100644 --- a/src/shared/Database/DatabaseImpl.h +++ b/src/shared/Database/DatabaseImpl.h @@ -23,7 +23,7 @@ #include "Database/SqlOperations.h" #include "Log.h" -/// Function body definitions for the template function members of the Database class +// Function body definitions for the template function members of the Database class #define ASYNC_QUERY_BODY(sql) if (!sql || !m_pResultQueue) return false; #define ASYNC_DELAYHOLDER_BODY(holder) if (!holder || !m_pResultQueue) return false; diff --git a/src/shared/Database/SqlDelayThread.h b/src/shared/Database/SqlDelayThread.h index e921803aa61..fb89b580a62 100644 --- a/src/shared/Database/SqlDelayThread.h +++ b/src/shared/Database/SqlDelayThread.h @@ -34,10 +34,10 @@ class SqlDelayThread typedef LockedQueue SqlQueue; private: - SqlQueue m_sqlQueue; ///< Queue of SQL statements - Database *m_dbEngine; ///< Pointer to used Database engine + SqlQueue m_sqlQueue; // Queue of SQL statements + Database *m_dbEngine; // Pointer to used Database engine SqlQueue m_serialDelayQueue; - SqlConnection *m_dbConnection; ///< Pointer to DB connection + SqlConnection *m_dbConnection; // Pointer to DB connection volatile bool m_running; @@ -48,12 +48,12 @@ class SqlDelayThread SqlDelayThread(Database* db, SqlConnection* conn); ~SqlDelayThread(); - ///< Put sql statement to delay queue + // Put sql statement to delay queue bool Delay(SqlOperation* sql) { m_sqlQueue.add(sql); return true; } void addSerialOperation(SqlOperation *op); bool HasAsyncQuery(); - virtual void Stop(); ///< Stop event - void run(); ///< Main Thread loop + virtual void Stop(); // Stop event + void run(); // Main Thread loop }; #endif //__SQLDELAYTHREAD_H diff --git a/src/shared/Database/SqlOperations.cpp b/src/shared/Database/SqlOperations.cpp index 223fa53e876..66a3963e3dc 100644 --- a/src/shared/Database/SqlOperations.cpp +++ b/src/shared/Database/SqlOperations.cpp @@ -28,11 +28,11 @@ #define LOCK_DB_CONN(conn) SqlConnection::Lock guard(conn) -/// ---- ASYNC STATEMENTS / TRANSACTIONS ---- +// ---- ASYNC STATEMENTS / TRANSACTIONS ---- bool SqlPlainRequest::Execute(SqlConnection* conn) { - /// just do it + // just do it LOCK_DB_CONN(conn); return conn->Execute(m_sql); } @@ -85,7 +85,7 @@ bool SqlPreparedRequest::Execute(SqlConnection* conn) return conn->ExecuteStmt(m_nIndex, *m_param); } -/// ---- ASYNC QUERIES ---- +// ---- ASYNC QUERIES ---- bool SqlQuery::Execute(SqlConnection* conn) { @@ -93,9 +93,9 @@ bool SqlQuery::Execute(SqlConnection* conn) return false; LOCK_DB_CONN(conn); - /// execute the query and store the result in the callback + // execute the query and store the result in the callback m_callback->SetResult(conn->Query(m_sql)); - /// add the callback to the sql result queue of the thread it originated from + // add the callback to the sql result queue of the thread it originated from m_queue->add(m_callback); return true; @@ -104,7 +104,7 @@ bool SqlQuery::Execute(SqlConnection* conn) void SqlResultQueue::Update(uint32 timeout) { uint32 begin = WorldTimer::getMSTime(); - /// execute the callbacks waiting in the synchronization queue + // execute the callbacks waiting in the synchronization queue MaNGOS::IQueryCallback* callback = NULL; int n = 0; while (next(callback)) @@ -173,8 +173,8 @@ bool SqlQueryHolder::Execute(MaNGOS::IQueryCallback* callback, Database* databas if(!callback || !database || !queue) return false; - /// delay the execution of the queries, sync them with the delay thread - /// which will in turn resync on execution (via the queue) and call back + // delay the execution of the queries, sync them with the delay thread + // which will in turn resync on execution (via the queue) and call back SqlQueryHolderEx *holderEx = new SqlQueryHolderEx(this, callback, queue, serialId); database->AddToSerialDelayQueue(holderEx); @@ -196,7 +196,7 @@ bool SqlQueryHolder::SetQuery(size_t index, char const* sql) return false; } - /// not executed yet, just stored (it's not called a holder for nothing) + // not executed yet, just stored (it's not called a holder for nothing) m_queries[index] = SqlResultPair(mangos_strdup(sql), (QueryResult*)nullptr); return true; } @@ -228,13 +228,13 @@ QueryResult* SqlQueryHolder::GetResult(size_t index) { if(index < m_queries.size()) { - /// the query strings are freed on the first GetResult or in the destructor + // the query strings are freed on the first GetResult or in the destructor if(m_queries[index].first != nullptr) { delete [] (const_cast(m_queries[index].first)); m_queries[index].first = nullptr; } - /// when you get a result aways remember to delete it! + // when you get a result aways remember to delete it! return m_queries[index].second; } else @@ -243,7 +243,7 @@ QueryResult* SqlQueryHolder::GetResult(size_t index) void SqlQueryHolder::SetResult(size_t index, QueryResult* result) { - /// store the result in the holder + // store the result in the holder if(index < m_queries.size()) m_queries[index].second = result; } @@ -252,8 +252,8 @@ SqlQueryHolder::~SqlQueryHolder() { for(size_t i = 0; i < m_queries.size(); i++) { - /// if the result was never used, free the resources - /// results used already (getresult called) are expected to be deleted + // if the result was never used, free the resources + // results used already (getresult called) are expected to be deleted if(m_queries[i].first != nullptr) { delete [] (const_cast(m_queries[i].first)); @@ -270,8 +270,8 @@ void SqlQueryHolder::DeleteAllResults() { for(size_t i = 0; i < m_queries.size(); i++) { - /// if the result was never used, free the resources - /// results used already (getresult called) are expected to be deleted + // if the result was never used, free the resources + // results used already (getresult called) are expected to be deleted if (m_queries[i].second != nullptr) { delete m_queries[i].second; @@ -282,7 +282,7 @@ void SqlQueryHolder::DeleteAllResults() void SqlQueryHolder::SetSize(size_t size) { - /// to optimize push_back, reserve the number of queries about to be executed + // to optimize push_back, reserve the number of queries about to be executed m_queries.resize(size); } @@ -292,17 +292,17 @@ bool SqlQueryHolderEx::Execute(SqlConnection* conn) return false; LOCK_DB_CONN(conn); - /// we can do this, we are friends + // we can do this, we are friends std::vector &queries = m_holder->m_queries; for(size_t i = 0; i < queries.size(); i++) { - /// execute all queries in the holder and pass the results + // execute all queries in the holder and pass the results char const *sql = queries[i].first; if (sql) m_holder->SetResult(i, conn->Query(sql)); } - /// sync with the caller thread + // sync with the caller thread m_queue->add(m_callback); return true; diff --git a/src/shared/Database/SqlOperations.h b/src/shared/Database/SqlOperations.h index abe0b7af739..57120c58f04 100644 --- a/src/shared/Database/SqlOperations.h +++ b/src/shared/Database/SqlOperations.h @@ -29,7 +29,7 @@ #include "Utilities/Callback.h" #include -/// ---- BASE --- +// ---- BASE --- class Database; class SqlConnection; @@ -50,7 +50,7 @@ class SqlOperation uint32 serialId; }; -/// ---- ASYNC STATEMENTS / TRANSACTIONS ---- +// ---- ASYNC STATEMENTS / TRANSACTIONS ---- class SqlPlainRequest : public SqlOperation { @@ -89,13 +89,13 @@ class SqlPreparedRequest : public SqlOperation SqlStmtParameters* m_param; }; -/// ---- ASYNC QUERIES ---- +// ---- ASYNC QUERIES ---- -class SqlQuery; /// contains a single async query -class QueryResult; /// the result of one -class SqlResultQueue; /// queue for thread sync -class SqlQueryHolder; /// groups several async quries -class SqlQueryHolderEx; /// points to a holder, added to the delay thread +class SqlQuery; // contains a single async query +class QueryResult; // the result of one +class SqlResultQueue; // queue for thread sync +class SqlQueryHolder; // groups several async quries +class SqlQueryHolderEx; // points to a holder, added to the delay thread class ThreadPool; diff --git a/src/shared/Duration.h b/src/shared/Duration.h index 70180fbe790..4b48a3abe15 100644 --- a/src/shared/Duration.h +++ b/src/shared/Duration.h @@ -20,19 +20,19 @@ #include -/// Milliseconds shorthand typedef. +// Milliseconds shorthand typedef. typedef std::chrono::milliseconds Milliseconds; -/// Seconds shorthand typedef. +// Seconds shorthand typedef. typedef std::chrono::seconds Seconds; -/// Minutes shorthand typedef. +// Minutes shorthand typedef. typedef std::chrono::minutes Minutes; -/// Hours shorthand typedef. +// Hours shorthand typedef. typedef std::chrono::hours Hours; -/// Makes std::chrono_literals globally available. +// Makes std::chrono_literals globally available. // ToDo: Enable this when TC supports C++14. // using namespace std::chrono_literals; diff --git a/src/shared/LockedQueue.h b/src/shared/LockedQueue.h index 7bc334976e2..aca88bee52a 100644 --- a/src/shared/LockedQueue.h +++ b/src/shared/LockedQueue.h @@ -142,7 +142,7 @@ template > { return _queue.empty(); } - ///! Checks if we're empty or not with locks held + // Checks if we're empty or not with locks held bool empty() { std::unique_lock g(this->_lock); diff --git a/src/shared/Log.cpp b/src/shared/Log.cpp index c164f328251..1db96028c48 100644 --- a/src/shared/Log.cpp +++ b/src/shared/Log.cpp @@ -65,7 +65,7 @@ Log::Log() : logFiles[i] = nullptr; } - /// Common log files data + // Common log files data m_logsDir = sConfig.GetStringDefault("LogsDir", ""); if (!m_logsDir.empty()) { @@ -75,7 +75,7 @@ Log::Log() : auto const log_file_timestamp = sConfig.GetBoolDefault("LogFile.TimeStamp", false); - /// Open specific log files + // Open specific log files // GM log settings for per account case m_gmlog_filename_format = sConfig.GetStringDefault("GMLogFile", ""); diff --git a/src/shared/Util.cpp b/src/shared/Util.cpp index abb51ecdc59..8eb0c076bd5 100644 --- a/src/shared/Util.cpp +++ b/src/shared/Util.cpp @@ -357,7 +357,7 @@ std::string TimeToTimestampStr(time_t t) return std::string(buf); } -/// Check if the string is a valid ip address representation +// Check if the string is a valid ip address representation bool IsIPAddress(char const* ipaddress) { if(!ipaddress) @@ -368,7 +368,7 @@ bool IsIPAddress(char const* ipaddress) return ACE_OS::inet_addr(ipaddress) != INADDR_NONE; } -/// create PID file +// create PID file uint32 CreatePIDFile(std::string const& filename) { FILE* pid_file = fopen (filename.c_str(), "w"); From b68679d1a7d3fd2337402810cf068c63e5fdc967 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 6 Jul 2023 10:49:08 +0300 Subject: [PATCH 058/426] Fix modify rage and energy commands. --- src/game/Commands/CharacterCommands.cpp | 69 +++++++++++++------------ 1 file changed, 37 insertions(+), 32 deletions(-) diff --git a/src/game/Commands/CharacterCommands.cpp b/src/game/Commands/CharacterCommands.cpp index c6d3ef73fc9..87695a956f4 100644 --- a/src/game/Commands/CharacterCommands.cpp +++ b/src/game/Commands/CharacterCommands.cpp @@ -4639,23 +4639,25 @@ bool ChatHandler::HandleModifyFlyCommand(char* args) bool ChatHandler::HandleModifyEnergyCommand(char* args) { - if (!*args) - return false; - - int32 energy = atoi(args) * 10; - int32 energym = atoi(args) * 10; - - if (energy <= 0 || energym <= 0 || energym < energy) + Player* chr = GetSelectedPlayer(); + if (!chr) { - SendSysMessage(LANG_BAD_VALUE); + SendSysMessage(LANG_NO_CHAR_SELECTED); SetSentErrorMessage(true); return false; } - Player* chr = GetSelectedPlayer(); - if (!chr) + uint32 energyMin; + if (!ExtractUInt32(&args, energyMin)) + return false; + + uint32 energyMax; + if (!ExtractUInt32(&args, energyMax)) + energyMax = std::max(chr->GetMaxPower(POWER_ENERGY), energyMin); + + if (energyMin < 0 || energyMax < 0 || energyMax < energyMin) { - SendSysMessage(LANG_NO_CHAR_SELECTED); + SendSysMessage(LANG_BAD_VALUE); SetSentErrorMessage(true); return false; } @@ -4664,51 +4666,54 @@ bool ChatHandler::HandleModifyEnergyCommand(char* args) if (HasLowerSecurity(chr)) return false; - PSendSysMessage(LANG_YOU_CHANGE_ENERGY, GetNameLink(chr).c_str(), energy / 10, energym / 10); + PSendSysMessage(LANG_YOU_CHANGE_ENERGY, GetNameLink(chr).c_str(), energyMin, energyMax); if (needReportToTarget(chr)) - ChatHandler(chr).PSendSysMessage(LANG_YOURS_ENERGY_CHANGED, GetNameLink().c_str(), energy / 10, energym / 10); - - chr->SetMaxPower(POWER_ENERGY, energym); - chr->SetPower(POWER_ENERGY, energy); + ChatHandler(chr).PSendSysMessage(LANG_YOURS_ENERGY_CHANGED, GetNameLink().c_str(), energyMin, energyMax); - sLog.Out(LOG_BASIC, LOG_LVL_DETAIL, GetMangosString(LANG_CURRENT_ENERGY), chr->GetMaxPower(POWER_ENERGY)); + chr->SetMaxPower(POWER_ENERGY, energyMax); + chr->SetPower(POWER_ENERGY, energyMin); return true; } bool ChatHandler::HandleModifyRageCommand(char* args) { - if (!*args) - return false; - - int32 rage = atoi(args) * 10; - int32 ragem = atoi(args) * 10; - - if (rage <= 0 || ragem <= 0 || ragem < rage) + Player* chr = GetSelectedPlayer(); + if (chr == nullptr) { - SendSysMessage(LANG_BAD_VALUE); + SendSysMessage(LANG_NO_CHAR_SELECTED); SetSentErrorMessage(true); return false; } - Player* chr = GetSelectedPlayer(); - if (chr == nullptr) + uint32 rageMin; + if (!ExtractUInt32(&args, rageMin)) + return false; + + uint32 rageMax; + if (!ExtractUInt32(&args, rageMax)) + rageMax = std::max(chr->GetMaxPower(POWER_RAGE) / 10, rageMin); + + if (rageMin < 0 || rageMax < 0 || rageMax < rageMin) { - SendSysMessage(LANG_NO_CHAR_SELECTED); + SendSysMessage(LANG_BAD_VALUE); SetSentErrorMessage(true); return false; } + rageMin *= 10; + rageMax *= 10; + // check online security if (HasLowerSecurity(chr)) return false; - PSendSysMessage(LANG_YOU_CHANGE_RAGE, GetNameLink(chr).c_str(), rage / 10, ragem / 10); + PSendSysMessage(LANG_YOU_CHANGE_RAGE, GetNameLink(chr).c_str(), rageMin / 10, rageMax / 10); if (needReportToTarget(chr)) - ChatHandler(chr).PSendSysMessage(LANG_YOURS_RAGE_CHANGED, GetNameLink().c_str(), rage / 10, ragem / 10); + ChatHandler(chr).PSendSysMessage(LANG_YOURS_RAGE_CHANGED, GetNameLink().c_str(), rageMin / 10, rageMax / 10); - chr->SetMaxPower(POWER_RAGE, ragem); - chr->SetPower(POWER_RAGE, rage); + chr->SetMaxPower(POWER_RAGE, rageMax); + chr->SetPower(POWER_RAGE, rageMin); return true; } From 0e6477de02d47537d70a288edc4b9f19d1db4b2f Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 6 Jul 2023 12:46:55 +0300 Subject: [PATCH 059/426] Dodged spells should put you in combat. Tested heroic strike getting dodged. Assuming it should work the same for parry and block. --- src/game/Spells/Spell.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 60dfe6fd6ed..0450038d2fa 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -1260,7 +1260,8 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target) unitTarget = m_casterUnit; } } - else if (missInfo == SPELL_MISS_MISS || missInfo == SPELL_MISS_RESIST || missInfo == SPELL_MISS_IMMUNE) + else if (missInfo == SPELL_MISS_MISS || missInfo == SPELL_MISS_RESIST || missInfo == SPELL_MISS_DODGE || + missInfo == SPELL_MISS_PARRY || missInfo == SPELL_MISS_BLOCK || missInfo == SPELL_MISS_IMMUNE) { // in 1.12.1 we need explicit miss info if (pRealUnitCaster && pRealUnitCaster != unit) From db29e36601786075da631c0eb94216cdd9e1f476 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 6 Jul 2023 13:29:32 +0300 Subject: [PATCH 060/426] Fix a few db errors. --- sql/migrations/20230706101514_world.sql | 35 +++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 sql/migrations/20230706101514_world.sql diff --git a/sql/migrations/20230706101514_world.sql b/sql/migrations/20230706101514_world.sql new file mode 100644 index 00000000000..065c05d7686 --- /dev/null +++ b/sql/migrations/20230706101514_world.sql @@ -0,0 +1,35 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230706101514'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230706101514'); +-- Add your query below. + + +-- These mobs do not have any waypoints in table. Set to idle to fix errors. +UPDATE `creature` SET `movement_type`=0 WHERE `guid` IN (54575, 54574, 54567, 54326); + +-- Define targets for spell Placing Beacon Torch. +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `inverseEffectMask`) VALUES (17016, 0, 176094, 0); +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `inverseEffectMask`) VALUES (17016, 0, 176095, 0); +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `inverseEffectMask`) VALUES (17016, 0, 176096, 0); +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `inverseEffectMask`) VALUES (17016, 0, 176097, 0); + +-- Define targets for spell Egan's Blaster Effect. +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `inverseEffectMask`) VALUES (17372, 1, 10384, 0); +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `inverseEffectMask`) VALUES (17372, 1, 10385, 0); +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `inverseEffectMask`) VALUES (17372, 1, 11122, 0); + +-- Define targets for spell Displacing Temporal Rift. +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `inverseEffectMask`) VALUES (16613, 0, 175795, 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 9cfcf9eb6fe55fdc082738b8012a4ed275328235 Mon Sep 17 00:00:00 2001 From: balakethelock <111737968+balakethelock@users.noreply.github.com> Date: Thu, 6 Jul 2023 11:31:08 +0100 Subject: [PATCH 061/426] Fix Spell Scaling with Level formula (#2007) * Fix Spell Scaling with Level formula Classic testing has shown the formula is based on CLS * Migration to remove some spell damage hackfixes The hack fixes were attempts to make mob spell damage fit the old wrong formula. If the formula is to made accurate, these hack fixes need to be removed. --- sql/migrations/20230706092629_world.sql | 23 +++++++++++++++++++++++ src/game/Objects/SpellCaster.cpp | 9 +++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 sql/migrations/20230706092629_world.sql diff --git a/sql/migrations/20230706092629_world.sql b/sql/migrations/20230706092629_world.sql new file mode 100644 index 00000000000..e0e0a979e0f --- /dev/null +++ b/sql/migrations/20230706092629_world.sql @@ -0,0 +1,23 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230706092629'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230706092629'); +-- Add your query below. + +-- Remove hack fixes to spell damage that tried to balance some abilities damage according to the old incorrect formula +DELETE FROM `spell_effect_mod` WHERE `Id`=26194; -- Skeram earth shock +DELETE FROM `spell_effect_mod` WHERE `Id`=26192; -- Skeram arcane explosion +DELETE FROM `spell_effect_mod` WHERE `Id`=14297; -- Anubisath Guardian Shadow Storm +DELETE FROM `spell_effect_mod` WHERE `Id`=26546; -- Anubisath Sentinel Shadow Storm +DELETE FROM `spell_effect_mod` WHERE `Id`=26555; -- Anubisath Defender Shadow Storm + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Objects/SpellCaster.cpp b/src/game/Objects/SpellCaster.cpp index 169eaa483da..cd61694c323 100644 --- a/src/game/Objects/SpellCaster.cpp +++ b/src/game/Objects/SpellCaster.cpp @@ -911,8 +911,13 @@ float SpellCaster::CalculateSpellEffectValue(Unit const* target, SpellEntry cons spellProto->Effect[effect_index] != SPELL_EFFECT_WEAPON_PERCENT_DAMAGE && spellProto->Effect[effect_index] != SPELL_EFFECT_KNOCK_BACK && (spellProto->Effect[effect_index] != SPELL_EFFECT_APPLY_AURA || spellProto->EffectApplyAuraName[effect_index] != SPELL_AURA_MOD_DECREASE_SPEED)) - value = value * 0.25f * exp(GetLevel() * (70 - spellProto->spellLevel) / 1000.0f); - + { + CreatureClassLevelStats const* pCLS = sObjectMgr.GetCreatureClassLevelStats(1, GetLevel()); + float CLSPowerCreature = pCLS->melee_damage; + CreatureClassLevelStats const* spellCLS = sObjectMgr.GetCreatureClassLevelStats(1, spellProto->spellLevel); + float CLSPowerSpell = spellCLS->melee_damage; + value = value * (CLSPowerCreature / CLSPowerSpell); + } return value; } From 6d2546ab1652e5e48a097c03ebbb0a22f4c270b8 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 6 Jul 2023 14:42:30 +0300 Subject: [PATCH 062/426] Onyxia buff should not go out in Crossroads. No wonder I couldn't find who is supposed to cast it there. --- sql/migrations/20230616201152_world.sql | 17 ++++++++++----- src/game/Conditions.cpp | 29 ++++++++++++++++++++++--- src/game/Conditions.h | 4 +++- 3 files changed, 40 insertions(+), 10 deletions(-) diff --git a/sql/migrations/20230616201152_world.sql b/sql/migrations/20230616201152_world.sql index 5ab1c837ec9..94c84f918d8 100644 --- a/sql/migrations/20230616201152_world.sql +++ b/sql/migrations/20230616201152_world.sql @@ -30,8 +30,7 @@ INSERT INTO `creature_movement_scripts` (`id`, `delay`, `priority`, `command`, ` (1439202, 16, 4, 13, 0, 0, 0, 0, 251492, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Overlord Runthak - Activate Rallying Call 4'), (1439202, 16, 5, 13, 0, 0, 0, 0, 251493, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Overlord Runthak - Activate Rallying Call 5'), (1439202, 16, 6, 13, 0, 0, 0, 0, 251494, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Overlord Runthak - Activate Rallying Call 6'), -(1439202, 16, 7, 92, 21002, 1637, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Overlord Runthak - Add Aura Rallying Cry of the Dragonslayer to Players in Orgrimmar'), -(1439202, 16, 2, 10, 14392, 1000, 0, 0, 0, 0, 0, 0, 18, 21001, -1, 3, -462.147, -2650.28, 90.637, 0, 0, 'Overlord Runthak - Summon Overlord Runthak Copy in Crossroads'); +(1439202, 16, 7, 92, 21002, 1637, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Overlord Runthak - Add Aura Rallying Cry of the Dragonslayer to Players in Orgrimmar'); DELETE FROM `creature_movement_scripts` WHERE `id`=1439203; INSERT INTO `creature_movement_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES (1439203, 0, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Overlord Runthak - Move Idle'), @@ -58,8 +57,7 @@ INSERT INTO `creature_movement_scripts` (`id`, `delay`, `priority`, `command`, ` (1472002, 16, 4, 13, 0, 0, 0, 0, 251492, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'High Overlord Saurfang - Activate Rallying Call 4'), (1472002, 16, 5, 13, 0, 0, 0, 0, 251493, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'High Overlord Saurfang - Activate Rallying Call 5'), (1472002, 16, 6, 13, 0, 0, 0, 0, 251494, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'High Overlord Saurfang - Activate Rallying Call 6'), -(1472002, 16, 7, 92, 21002, 1637, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'High Overlord Saurfang - Add Aura Rallying Cry of the Dragonslayer to Players in Orgrimmar'), -(1472002, 16, 2, 10, 14720, 1000, 0, 0, 0, 0, 0, 0, 18, 21001, -1, 3, -462.147, -2650.28, 90.637, 0, 0, 'High Overlord Saurfang - Summon High Overlord Saurfang Copy in Crossroads'); +(1472002, 16, 7, 92, 21002, 1637, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'High Overlord Saurfang - Add Aura Rallying Cry of the Dragonslayer to Players in Orgrimmar'); DELETE FROM `creature_movement_scripts` WHERE `id`=1472004; INSERT INTO `creature_movement_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES (1472004, 0, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'High Overlord Saurfang - Move Idle'), @@ -76,6 +74,7 @@ INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `posi -- Remove custom creature Horde Rallying Cry Generator. DELETE FROM `creature_template` WHERE `entry`=21001; +DELETE FROM `generic_scripts` WHERE `id`=21001; -- Assign Orgrimmar faction to Rallying Call. UPDATE `gameobject_template` SET `faction`=85 WHERE `entry`=179557; @@ -130,10 +129,16 @@ INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `posi (251487, 179560, 0, -8523, 848.78, 106.519, 0.268148, 0, 0, 0.133673, 0.991026, 30, 30, 1, 100), (251488, 179560, 0, -8424, 619.94, 95.5044, 0.268148, 0, 0, 0.133673, 0.991026, 30, 30, 1, 100); +-- 72: Target's Reaction To Source Is Equal Or Greater Than Friendly +INSERT INTO `conditions` (`condition_entry`, `type`, `value1`, `value2`, `value3`, `value4`, `flags`) VALUES (72, 44, 4, 1, 0, 0, 0); + +-- 1001: (72: Target's Reaction To Source Is Equal Or Greater Than Friendly) And (1000: Source Is Alive) +INSERT INTO `conditions` (`condition_entry`, `type`, `value1`, `value2`, `value3`, `value4`, `flags`) VALUES (1001, -1, 72, 1000, 0, 0, 0); + -- Script to add Rallying Cry of the Dragonslayer to alive players. DELETE FROM `generic_scripts` WHERE `id`=21002; INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES -(21002, 0, 0, 74, 22888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1000, 'Player - Add Aura Rallying Cry of the Dragonslayer'); +(21002, 0, 0, 74, 22888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 'Player - Add Aura Rallying Cry of the Dragonslayer'); -- Remove custom creature Alliance Rallying Cry Generator. DELETE FROM `creature_template` WHERE `entry`=21002; @@ -181,7 +186,7 @@ UPDATE `creature_template` SET `unit_flags`=768, `movement_type`=1 WHERE `entry` -- Script to add Warchief's Blessing to alive players. DELETE FROM `generic_scripts` WHERE `id`=21003; INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES -(21003, 0, 0, 74, 16609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1000, 'Player - Add Aura Warchief\'s Blessing'); +(21003, 0, 0, 74, 16609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 'Player - Add Aura Warchief\'s Blessing'); -- Remove custom creature Warchief Blessing Generator. DELETE FROM `creature_template` WHERE `entry`=21003; diff --git a/src/game/Conditions.cpp b/src/game/Conditions.cpp index 454eff97e3c..5de2466978f 100644 --- a/src/game/Conditions.cpp +++ b/src/game/Conditions.cpp @@ -499,9 +499,18 @@ bool inline ConditionEntry::Evaluate(WorldObject const* target, Map const* map, { return target->ToUnit()->IsInCombat(); } - case CONDITION_IS_HOSTILE_TO: + case CONDITION_REACTION: { - return target->IsHostileTo(source); + switch (m_value2) + { + case 0: + return target->GetReactionTo(source) == m_value1; + case 1: + return target->GetReactionTo(source) >= m_value1; + case 2: + return target->GetReactionTo(source) <= m_value1; + } + return false; } case CONDITION_IS_IN_GROUP: { @@ -1207,6 +1216,21 @@ bool ConditionEntry::IsValid() m_value1 = GetIndexOfUpdateFieldForCurrentBuild(m_value1); break; } + case CONDITION_REACTION: + { + if (m_value1 < MIN_REPUTATION_RANK || m_value1 >= MAX_REPUTATION_RANK) + { + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Reaction condition (entry %u, type %u) has invalid rank %u (must be 0..7), skipped", m_entry, m_condition, m_value1); + return false; + } + + if (m_value2 > 2) + { + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Reaction condition (entry %u, type %u) has invalid argument %u (must be 0..2), skipped", m_entry, m_condition, m_value2); + return false; + } + break; + } case CONDITION_DB_GUID: { if (!sObjectMgr.IsExistingCreatureGuid(m_value1) && !sObjectMgr.IsExistingGameObjectGuid(m_value1)) @@ -1299,7 +1323,6 @@ bool ConditionEntry::IsValid() case CONDITION_IS_MOVING: case CONDITION_HAS_PET: case CONDITION_IS_IN_COMBAT: - case CONDITION_IS_HOSTILE_TO: case CONDITION_IS_IN_GROUP: case CONDITION_IS_ALIVE: case CONDITION_CANT_PATH_TO_VICTIM: diff --git a/src/game/Conditions.h b/src/game/Conditions.h index f1579a359c2..fdeca1e01e9 100644 --- a/src/game/Conditions.h +++ b/src/game/Conditions.h @@ -202,8 +202,10 @@ enum ConditionType // Value2: 0, 1 or 2 (0: equal to, 1: equal or higher than, 2: equal or less than) CONDITION_IS_IN_COMBAT = 43, // Checks if the target is currently in combat. // Requirement: Unit Target - CONDITION_IS_HOSTILE_TO = 44, // Returns true if the target is hostile to the source. + CONDITION_REACTION = 44, // Returns true if the target's reaction to the source matches the criteria. // Requirement: WorldObject Source, WorldObject Target + // Value1: reaction (see enum ReputationRank) + // Value2: 0, 1 or 2 (0: equal to, 1: equal or higher than, 2: equal or less than) CONDITION_IS_IN_GROUP = 45, // Returns true if the player is in a group. // Requirement: Player Target CONDITION_IS_ALIVE = 46, // Returns true if the target is alive. From 35446cdfb6a36bf0f87d6e5a5bb68d11f3c6a3d7 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Thu, 6 Jul 2023 21:41:23 +0100 Subject: [PATCH 063/426] Add Missing Shellfish Traps (#2026) --- sql/migrations/20230703185258_world.sql | 149 ++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 sql/migrations/20230703185258_world.sql diff --git a/sql/migrations/20230703185258_world.sql b/sql/migrations/20230703185258_world.sql new file mode 100644 index 00000000000..26eb9905891 --- /dev/null +++ b/sql/migrations/20230703185258_world.sql @@ -0,0 +1,149 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230703185258'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230703185258'); +-- Add your query below. + + +SET @OGUID = 19828; +SET @PTEMPLATE = 20057; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (32555, 32554, 32553, 32551, 32550, 32549, 32547, 32546, 32545, 32544, 32543, 32784, 32681, 32679, 32674, 32670)); +DELETE FROM `gameobject` WHERE `guid` IN (32555, 32554, 32553, 32551, 32550, 32549, 32547, 32546, 32545, 32544, 32543, 32784, 32681, 32679, 32674, 32670); +DELETE FROM `pool_gameobject` WHERE `guid` IN (32555, 32554, 32553, 32551, 32550, 32549, 32547, 32546, 32545, 32544, 32543, 32784, 32681, 32679, 32674, 32670); +DELETE FROM `gameobject_scripts` WHERE `id` IN (32555, 32554, 32553, 32551, 32550, 32549, 32547, 32546, 32545, 32544, 32543, 32784, 32681, 32679, 32674, 32670); +DELETE FROM `generic_scripts` WHERE `id`=176582; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 176635, 1, -2111.39, 3341.36, -48.6987, 4.57276, 0, 0, -0.754709, 0.656059, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 176635, 1, -2080.09, 3425.93, -50.8592, 5.044, 0, 0, -0.580703, 0.814116, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 176635, 1, -2024.38, 3293.43, -43.9713, 5.02655, 0, 0, -0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 176635, 1, -2005.05, 3358.99, -80.155, 4.4855, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 176635, 1, -1994.45, 3401.67, -80.061, 3.3685, 0, 0, -0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 176635, 1, -1980.03, 3252.06, -32.7441, 0.610863, 0, 0, 0.300705, 0.953717, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 176635, 1, -1975.23, 3193.08, -66.2544, 5.14872, 0, 0, -0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 176635, 1, -1962.74, 3303.61, -42.876, 2.53072, 0, 0, 0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 176635, 1, -1920.99, 3326.93, -74.3969, 3.59538, 0, 0, -0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 176635, 1, -1869.41, 3139.91, -29.0381, 5.88176, 0, 0, -0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 176635, 1, -1861.97, 3384.48, -69.699, 5.28835, 0, 0, -0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 176635, 1, -1860.29, 3183.45, -34.1432, 3.00195, 0, 0, 0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 176635, 1, -1834.32, 3425.38, -48.2402, 4.85202, 0, 0, -0.656058, 0.75471, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 176635, 1, -1831.1, 3343.21, -44.4896, 0.244346, 0, 0, 0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 176635, 1, -1799.84, 3226.16, -45.5012, 4.4855, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 176635, 1, -1796.36, 3300.82, -69.3038, 3.08918, 0, 0, 0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 176635, 1, -1754.22, 3332.64, -43.293, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 176635, 1, -1683.83, 3321.01, -44.2335, 2.14675, 0, 0, 0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 176635, 1, -1674.09, 3439.92, -48.884, 1.46608, 0, 0, 0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 176582, 1, -2111.39, 3341.36, -48.6987, 4.57276, 0, 0, -0.754709, 0.656059, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 176582, 1, -2080.09, 3425.93, -50.8592, 5.044, 0, 0, -0.580703, 0.814116, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 176582, 1, -2024.38, 3293.43, -43.9713, 5.02655, 0, 0, -0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 176582, 1, -2005.05, 3358.99, -80.155, 4.4855, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 176582, 1, -1994.45, 3401.67, -80.061, 3.3685, 0, 0, -0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 176582, 1, -1980.03, 3252.06, -32.7441, 0.610863, 0, 0, 0.300705, 0.953717, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 176582, 1, -1975.23, 3193.08, -66.2544, 5.14872, 0, 0, -0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 176582, 1, -1962.74, 3303.61, -42.876, 2.53072, 0, 0, 0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 176582, 1, -1920.99, 3326.93, -74.3969, 3.59538, 0, 0, -0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 176582, 1, -1869.41, 3139.91, -29.0381, 5.88176, 0, 0, -0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 176582, 1, -1861.97, 3384.48, -69.699, 5.28835, 0, 0, -0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 176582, 1, -1860.29, 3183.45, -34.1432, 3.00195, 0, 0, 0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 176582, 1, -1834.32, 3425.38, -48.2402, 4.85202, 0, 0, -0.656058, 0.75471, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 176582, 1, -1831.1, 3343.21, -44.4896, 0.244346, 0, 0, 0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 176582, 1, -1799.84, 3226.16, -45.5012, 4.4855, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 176582, 1, -1796.36, 3300.82, -69.3038, 3.08918, 0, 0, 0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 176582, 1, -1754.22, 3332.64, -43.293, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 176582, 1, -1683.83, 3321.01, -44.2335, 2.14675, 0, 0, 0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 176582, 1, -1674.09, 3439.92, -48.884, 1.46608, 0, 0, 0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+2, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+3, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+4, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+5, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+6, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+7, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+8, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+9, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+10, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+11, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+12, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+13, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+14, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+15, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+16, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+17, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+18, 1, 'Shellfish Trap - Desolace', 0, 10), +(@PTEMPLATE+19, 1, 'Shellfish Trap - Desolace', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+20, @PTEMPLATE+1, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+21, @PTEMPLATE+2, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+22, @PTEMPLATE+3, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+23, @PTEMPLATE+4, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+24, @PTEMPLATE+5, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+25, @PTEMPLATE+6, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+26, @PTEMPLATE+7, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+27, @PTEMPLATE+8, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+28, @PTEMPLATE+9, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+29, @PTEMPLATE+10, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+30, @PTEMPLATE+11, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+31, @PTEMPLATE+12, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+32, @PTEMPLATE+13, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+33, @PTEMPLATE+14, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+34, @PTEMPLATE+15, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+35, @PTEMPLATE+16, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+36, @PTEMPLATE+17, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+37, @PTEMPLATE+18, 'Shellfish Trap - Desolace', 0, 10), +(@OGUID+38, @PTEMPLATE+19, 'Shellfish Trap - Desolace', 0, 10); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+39, 176592, 1, -2111.39, 3341.36, -48.6987, 4.57276, 0, 0, -0.754709, 0.656059, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 176592, 1, -2080.09, 3425.93, -50.8592, 5.044, 0, 0, -0.580703, 0.814116, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 176592, 1, -2024.38, 3293.43, -43.9713, 5.02655, 0, 0, -0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 176592, 1, -2005.05, 3358.99, -80.155, 4.4855, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 176592, 1, -1994.45, 3401.67, -80.061, 3.3685, 0, 0, -0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 176592, 1, -1980.03, 3252.06, -32.7441, 0.610863, 0, 0, 0.300705, 0.953717, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 176592, 1, -1975.23, 3193.08, -66.2544, 5.14872, 0, 0, -0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 176592, 1, -1962.74, 3303.61, -42.876, 2.53072, 0, 0, 0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 176592, 1, -1920.99, 3326.93, -74.3969, 3.59538, 0, 0, -0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 176592, 1, -1869.41, 3139.91, -29.0381, 5.88176, 0, 0, -0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 176592, 1, -1861.97, 3384.48, -69.699, 5.28835, 0, 0, -0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 176592, 1, -1860.29, 3183.45, -34.1432, 3.00195, 0, 0, 0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 176592, 1, -1834.32, 3425.38, -48.2402, 4.85202, 0, 0, -0.656058, 0.75471, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 176592, 1, -1831.1, 3343.21, -44.4896, 0.244346, 0, 0, 0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 176592, 1, -1799.84, 3226.16, -45.5012, 4.4855, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 176592, 1, -1796.36, 3300.82, -69.3038, 3.08918, 0, 0, 0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 176592, 1, -1754.22, 3332.64, -43.293, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 176592, 1, -1683.83, 3321.01, -44.2335, 2.14675, 0, 0, 0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 176592, 1, -1674.09, 3439.92, -48.884, 1.46608, 0, 0, 0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 2de51e2adb35487ed47c9be740ee4da5a9743983 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Thu, 6 Jul 2023 21:41:37 +0100 Subject: [PATCH 064/426] Add Missing Azsharite Formations (#2027) --- sql/migrations/20230703185526_world.sql | 377 ++++++++++++++++++++++++ 1 file changed, 377 insertions(+) create mode 100644 sql/migrations/20230703185526_world.sql diff --git a/sql/migrations/20230703185526_world.sql b/sql/migrations/20230703185526_world.sql new file mode 100644 index 00000000000..39ee390477d --- /dev/null +++ b/sql/migrations/20230703185526_world.sql @@ -0,0 +1,377 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230703185526'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230703185526'); +-- Add your query below. + + +SET @OGUID = 50822; +SET @PTEMPLATE = 3761; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (25894, 25895, 25896, 25897, 25898, 25899, 25900, 25901, 25902, 25903, 25904, 25905, 25906, 25907, 25908, 25909, 25910, 25911, 25912, 25913, 25914, 25915, 25916, 25917, 48291, 48292, 48293, 48294, 48295, 48299, 48300, 48301, 48302, 48303, 48304, 48306, 48307, 48308, 48309, 48310, 48311, 48312, 48313, 48314, 48315, 48316, 48317, 48318, 48319, 48320, 48321, 48322, 48323, 48324, 48325, 48326, 48327, 48328, 48329, 48330, 55299, 55300, 55301, 55302, 55303, 55304, 55305, 55306, 55307, 55308, 55309, 55310, 55311, 55312, 55313, 55314, 55315, 55316, 55317, 55318, 55319, 55320, 55321, 55322, 55323, 55324, 55325, 55326, 55327, 55328, 55329, 55330, 55331, 55332, 55333, 55334, 55335, 55336, 55337, 55338, 55339, 55340, 55341, 55342, 55343, 55344, 55400)); +DELETE FROM `gameobject` WHERE `guid` IN (25894, 25895, 25896, 25897, 25898, 25899, 25900, 25901, 25902, 25903, 25904, 25905, 25906, 25907, 25908, 25909, 25910, 25911, 25912, 25913, 25914, 25915, 25916, 25917, 48291, 48292, 48293, 48294, 48295, 48299, 48300, 48301, 48302, 48303, 48304, 48306, 48307, 48308, 48309, 48310, 48311, 48312, 48313, 48314, 48315, 48316, 48317, 48318, 48319, 48320, 48321, 48322, 48323, 48324, 48325, 48326, 48327, 48328, 48329, 48330, 55299, 55300, 55301, 55302, 55303, 55304, 55305, 55306, 55307, 55308, 55309, 55310, 55311, 55312, 55313, 55314, 55315, 55316, 55317, 55318, 55319, 55320, 55321, 55322, 55323, 55324, 55325, 55326, 55327, 55328, 55329, 55330, 55331, 55332, 55333, 55334, 55335, 55336, 55337, 55338, 55339, 55340, 55341, 55342, 55343, 55344, 55400); +DELETE FROM `pool_gameobject` WHERE `guid` IN (25894, 25895, 25896, 25897, 25898, 25899, 25900, 25901, 25902, 25903, 25904, 25905, 25906, 25907, 25908, 25909, 25910, 25911, 25912, 25913, 25914, 25915, 25916, 25917, 48291, 48292, 48293, 48294, 48295, 48299, 48300, 48301, 48302, 48303, 48304, 48306, 48307, 48308, 48309, 48310, 48311, 48312, 48313, 48314, 48315, 48316, 48317, 48318, 48319, 48320, 48321, 48322, 48323, 48324, 48325, 48326, 48327, 48328, 48329, 48330, 55299, 55300, 55301, 55302, 55303, 55304, 55305, 55306, 55307, 55308, 55309, 55310, 55311, 55312, 55313, 55314, 55315, 55316, 55317, 55318, 55319, 55320, 55321, 55322, 55323, 55324, 55325, 55326, 55327, 55328, 55329, 55330, 55331, 55332, 55333, 55334, 55335, 55336, 55337, 55338, 55339, 55340, 55341, 55342, 55343, 55344, 55400); +DELETE FROM `pool_gameobject_template` WHERE `id`=152622; +DELETE FROM `pool_gameobject_template` WHERE `id`=152621; +DELETE FROM `pool_gameobject_template` WHERE `id`=152620; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 152622, 1, 2283.25, -6079.93, 108.183, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 152622, 1, 2294.57, -6258.64, 114.547, 1.16937, 0, 0, 0.551937, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 152622, 1, 2300.2, -6302.26, 108.121, 3.26377, 0, 0, -0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 152622, 1, 2314.11, -5960.15, 120.284, 2.51327, 0, 0, 0.951057, 0.309017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 152622, 1, 2319.23, -6376.81, 109.028, 0.157079, 0, 0, 0.0784588, 0.996917, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 152622, 1, 2340.54, -6138.33, 118.632, 4.50295, 0, 0, -0.777145, 0.629321, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 152622, 1, 2361.14, -5715.47, 107.984, 4.39823, 0, 0, -0.809016, 0.587786, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 152622, 1, 2368.67, -6502.16, 110.964, -1.46608, 0, 0, 0.669131, -0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 152622, 1, 2383.39, -6434.48, 100.164, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 152622, 1, 2393.23, -5822.98, 113.654, -2.40855, 0, 0, 0.93358, -0.358368, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 152622, 1, 2399.99, -6180.49, 100.596, -1.81514, 0, 0, 0.788011, -0.615661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 152622, 1, 2400.63, -5670.19, 121.134, -1.01229, 0, 0, 0.48481, -0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 152622, 1, 2406.26, -6077.89, 113.126, 6.17847, 0, 0, -0.0523357, 0.99863, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 152622, 1, 2414.94, -6326.1, 93.5893, -0.331612, 0, 0, 0.165048, -0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 152622, 1, 2415.41, -6055.81, 109.944, 5.84685, 0, 0, -0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 152622, 1, 2418.17, -6549.97, 123.278, 2.87979, 0, 0, 0.991445, 0.130528, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 152622, 1, 2438.59, -6459.73, 101.949, 0.349066, 0, 0, 0.173648, 0.984808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 152622, 1, 2441.85, -5797.37, 109.119, -0.366519, 0, 0, 0.182236, -0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 152622, 1, 2471.95, -6287.08, 109.967, 2.33874, 0, 0, 0.920505, 0.390732, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 152622, 1, 2475.44, -6418.02, 105.61, 0.418879, 0, 0, 0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 152622, 1, 2475.58, -6308.31, 104.605, 1.85005, 0, 0, 0.798635, 0.601815, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 152622, 1, 2477.72, -5963.47, 96.5236, -1.90241, 0, 0, 0.814116, -0.580703, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 152622, 1, 2481.12, -5603.33, 110.155, 1.01229, 0, 0, 0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 152622, 1, 2484.5, -6458.48, 95.1752, 5.39307, 0, 0, -0.43051, 0.902586, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 152622, 1, 2489.1, -5912.39, 105.033, 1.309, 0, 0, 0.608761, 0.793354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 152622, 1, 2491.22, -6351.95, 123.983, 1.16937, 0, 0, 0.551936, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 152622, 1, 2508.9, -6205.66, 107.223, 6.10865, 0, 0, -0.0871553, 0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 152622, 1, 2524.26, -6327.23, 107.581, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 152622, 1, 2525.48, -5860.44, 101.533, 4.99164, 0, 0, -0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 152622, 1, 2525.83, -6122.32, 106.806, 2.70526, 0, 0, 0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 152622, 1, 2529.03, -5704.89, 101.329, 3.24635, 0, 0, -0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 152622, 1, 2568.2, -6044.43, 101.809, 0.593412, 0, 0, 0.292372, 0.956305, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 152622, 1, 2586.29, -5831.84, 99.388, 1.76278, 0, 0, 0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 152622, 1, 2615.67, -6183.5, 97.4634, 4.72984, 0, 0, -0.700909, 0.713251, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 152622, 1, 2633.52, -5833.2, 97.2349, 1.13446, 0, 0, 0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 152622, 1, 2655.94, -5737.8, 112.926, 1.83259, 0, 0, 0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 152622, 1, 2673.61, -6006.06, 99.1625, 0.558504, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 152622, 1, 2678.63, -6121.11, 105.745, 2.74017, 0, 0, 0.979925, 0.199368, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 152622, 1, 2703.98, -5637.23, 136.082, 4.79966, 0, 0, -0.67559, 0.737278, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 152622, 1, 2720.12, -5567.12, 121.735, 5.3058, 0, 0, -0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 152622, 1, 2749.44, -5906.21, 100.456, 1.79769, 0, 0, 0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 152622, 1, 2753.01, -6214.48, 103.042, 0.890117, 0, 0, 0.43051, 0.902586, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 152622, 1, 2761.8, -5752.32, 120.954, 3.75246, 0, 0, -0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 152622, 1, 2763, -5667.07, 134.022, 4.36332, 0, 0, -0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 152622, 1, 2824.23, -5866.91, 84.2374, 0.680677, 0, 0, 0.333806, 0.942642, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 152622, 1, 2825.23, -5993.45, 105.692, 5.65487, 0, 0, -0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 152622, 1, 2841.39, -5739.23, 121.976, 1.76278, 0, 0, 0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 152622, 1, 2851.58, -6082.01, 112.405, 1.53589, 0, 0, 0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 152622, 1, 2910.19, -5680.45, 127.089, 3.64774, 0, 0, -0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 152622, 1, 2939.59, -5614.15, 143.493, 0.994837, 0, 0, 0.477158, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 152622, 1, 2966.12, -5732.62, 127.249, 4.4855, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 152622, 1, 2973.12, -5816.2, 133.852, 3.35105, 0, 0, -0.994521, 0.104535, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 152622, 1, 2978.43, -5570.77, 153.85, -2.25148, 0, 0, 0.902585, -0.430511, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 152631, 1, 2283.25, -6079.93, 108.183, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 152631, 1, 2294.57, -6258.64, 114.547, 1.16937, 0, 0, 0.551937, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 152631, 1, 2300.2, -6302.26, 108.121, 3.26377, 0, 0, -0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 152631, 1, 2314.11, -5960.15, 120.284, 2.51327, 0, 0, 0.951057, 0.309017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 152631, 1, 2319.23, -6376.81, 109.028, 0.157079, 0, 0, 0.0784588, 0.996917, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 152631, 1, 2340.54, -6138.33, 118.632, 4.50295, 0, 0, -0.777145, 0.629321, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 152631, 1, 2361.14, -5715.47, 107.984, 4.39823, 0, 0, -0.809016, 0.587786, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 152631, 1, 2368.67, -6502.16, 110.964, -1.46608, 0, 0, 0.669131, -0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 152631, 1, 2383.39, -6434.48, 100.164, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 152631, 1, 2393.23, -5822.98, 113.654, -2.40855, 0, 0, 0.93358, -0.358368, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 152631, 1, 2399.99, -6180.49, 100.596, -1.81514, 0, 0, 0.788011, -0.615661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 152631, 1, 2400.63, -5670.19, 121.134, -1.01229, 0, 0, 0.48481, -0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 152631, 1, 2406.26, -6077.89, 113.126, 6.17847, 0, 0, -0.0523357, 0.99863, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 152631, 1, 2414.94, -6326.1, 93.5893, -0.331612, 0, 0, 0.165048, -0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 152631, 1, 2415.41, -6055.81, 109.944, 5.84685, 0, 0, -0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 152631, 1, 2418.17, -6549.97, 123.278, 2.87979, 0, 0, 0.991445, 0.130528, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 152631, 1, 2438.59, -6459.73, 101.949, 0.349066, 0, 0, 0.173648, 0.984808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 152631, 1, 2441.85, -5797.37, 109.119, -0.366519, 0, 0, 0.182236, -0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 152631, 1, 2471.95, -6287.08, 109.967, 2.33874, 0, 0, 0.920505, 0.390732, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+73, 152631, 1, 2475.44, -6418.02, 105.61, 0.418879, 0, 0, 0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+74, 152631, 1, 2475.58, -6308.31, 104.605, 1.85005, 0, 0, 0.798635, 0.601815, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+75, 152631, 1, 2477.72, -5963.47, 96.5236, -1.90241, 0, 0, 0.814116, -0.580703, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+76, 152631, 1, 2481.12, -5603.33, 110.155, 1.01229, 0, 0, 0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+77, 152631, 1, 2484.5, -6458.48, 95.1752, 5.39307, 0, 0, -0.43051, 0.902586, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+78, 152631, 1, 2489.1, -5912.39, 105.033, 1.309, 0, 0, 0.608761, 0.793354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+79, 152631, 1, 2491.22, -6351.95, 123.983, 1.16937, 0, 0, 0.551936, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+80, 152631, 1, 2508.9, -6205.66, 107.223, 6.10865, 0, 0, -0.0871553, 0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+81, 152631, 1, 2524.26, -6327.23, 107.581, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+82, 152631, 1, 2525.48, -5860.44, 101.533, 4.99164, 0, 0, -0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+83, 152631, 1, 2525.83, -6122.32, 106.806, 2.70526, 0, 0, 0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+84, 152631, 1, 2529.03, -5704.89, 101.329, 3.24635, 0, 0, -0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+85, 152631, 1, 2568.2, -6044.43, 101.809, 0.593412, 0, 0, 0.292372, 0.956305, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+86, 152631, 1, 2586.29, -5831.84, 99.388, 1.76278, 0, 0, 0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+87, 152631, 1, 2615.67, -6183.5, 97.4634, 4.72984, 0, 0, -0.700909, 0.713251, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+88, 152631, 1, 2633.52, -5833.2, 97.2349, 1.13446, 0, 0, 0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+89, 152631, 1, 2655.94, -5737.8, 112.926, 1.83259, 0, 0, 0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+90, 152631, 1, 2673.61, -6006.06, 99.1625, 0.558504, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+91, 152631, 1, 2678.63, -6121.11, 105.745, 2.74017, 0, 0, 0.979925, 0.199368, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+92, 152631, 1, 2703.98, -5637.23, 136.082, 4.79966, 0, 0, -0.67559, 0.737278, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+93, 152631, 1, 2720.12, -5567.12, 121.735, 5.3058, 0, 0, -0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+94, 152631, 1, 2749.44, -5906.21, 100.456, 1.79769, 0, 0, 0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+95, 152631, 1, 2753.01, -6214.48, 103.042, 0.890117, 0, 0, 0.43051, 0.902586, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+96, 152631, 1, 2761.8, -5752.32, 120.954, 3.75246, 0, 0, -0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+97, 152631, 1, 2763, -5667.07, 134.022, 4.36332, 0, 0, -0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+98, 152631, 1, 2824.23, -5866.91, 84.2374, 0.680677, 0, 0, 0.333806, 0.942642, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+99, 152631, 1, 2825.23, -5993.45, 105.692, 5.65487, 0, 0, -0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+100, 152631, 1, 2841.39, -5739.23, 121.976, 1.76278, 0, 0, 0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+101, 152631, 1, 2851.58, -6082.01, 112.405, 1.53589, 0, 0, 0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+102, 152631, 1, 2910.19, -5680.45, 127.089, 3.64774, 0, 0, -0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+103, 152631, 1, 2939.59, -5614.15, 143.493, 0.994837, 0, 0, 0.477158, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+104, 152631, 1, 2966.12, -5732.62, 127.249, 4.4855, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+105, 152631, 1, 2973.12, -5816.2, 133.852, 3.35105, 0, 0, -0.994521, 0.104535, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+106, 152631, 1, 2978.43, -5570.77, 153.85, -2.25148, 0, 0, 0.902585, -0.430511, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+2, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+3, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+4, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+5, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+6, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+7, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+8, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+9, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+10, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+11, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+12, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+13, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+14, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+15, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+16, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+17, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+18, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+19, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+20, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+21, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+22, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+23, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+24, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+25, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+26, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+27, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+28, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+29, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+30, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+31, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+32, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+33, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+34, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+35, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+36, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+37, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+38, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+39, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+40, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+41, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+42, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+43, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+44, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+45, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+46, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+47, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+48, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+49, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+50, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+51, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+52, 1, 'Azsharite Formation - Azshara', 0, 10), +(@PTEMPLATE+53, 1, 'Azsharite Formation - Azshara', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+32, @PTEMPLATE+32, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+33, @PTEMPLATE+33, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+34, @PTEMPLATE+34, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+35, @PTEMPLATE+35, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+36, @PTEMPLATE+36, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+37, @PTEMPLATE+37, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+38, @PTEMPLATE+38, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+39, @PTEMPLATE+39, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+40, @PTEMPLATE+40, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+41, @PTEMPLATE+41, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+42, @PTEMPLATE+42, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+43, @PTEMPLATE+43, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+44, @PTEMPLATE+44, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+45, @PTEMPLATE+45, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+46, @PTEMPLATE+46, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+47, @PTEMPLATE+47, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+48, @PTEMPLATE+48, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+49, @PTEMPLATE+49, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+50, @PTEMPLATE+50, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+51, @PTEMPLATE+51, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+52, @PTEMPLATE+52, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+53, @PTEMPLATE+53, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+54, @PTEMPLATE+1, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+55, @PTEMPLATE+2, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+56, @PTEMPLATE+3, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+57, @PTEMPLATE+4, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+58, @PTEMPLATE+5, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+59, @PTEMPLATE+6, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+60, @PTEMPLATE+7, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+61, @PTEMPLATE+8, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+62, @PTEMPLATE+9, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+63, @PTEMPLATE+10, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+64, @PTEMPLATE+11, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+65, @PTEMPLATE+12, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+66, @PTEMPLATE+13, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+67, @PTEMPLATE+14, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+68, @PTEMPLATE+15, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+69, @PTEMPLATE+16, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+70, @PTEMPLATE+17, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+71, @PTEMPLATE+18, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+72, @PTEMPLATE+19, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+73, @PTEMPLATE+20, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+74, @PTEMPLATE+21, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+75, @PTEMPLATE+22, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+76, @PTEMPLATE+23, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+77, @PTEMPLATE+24, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+78, @PTEMPLATE+25, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+79, @PTEMPLATE+26, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+80, @PTEMPLATE+27, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+81, @PTEMPLATE+28, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+82, @PTEMPLATE+29, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+83, @PTEMPLATE+30, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+84, @PTEMPLATE+31, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+85, @PTEMPLATE+32, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+86, @PTEMPLATE+33, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+87, @PTEMPLATE+34, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+88, @PTEMPLATE+35, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+89, @PTEMPLATE+36, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+90, @PTEMPLATE+37, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+91, @PTEMPLATE+38, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+92, @PTEMPLATE+39, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+93, @PTEMPLATE+40, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+94, @PTEMPLATE+41, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+95, @PTEMPLATE+42, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+96, @PTEMPLATE+43, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+97, @PTEMPLATE+44, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+98, @PTEMPLATE+45, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+99, @PTEMPLATE+46, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+100, @PTEMPLATE+47, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+101, @PTEMPLATE+48, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+102, @PTEMPLATE+49, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+103, @PTEMPLATE+50, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+104, @PTEMPLATE+51, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+105, @PTEMPLATE+52, 'Azsharite Formation - Azshara', 0, 10), +(@OGUID+106, @PTEMPLATE+53, 'Azsharite Formation - Azshara', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+54, 24, 'Azshara - Azsharite Formation (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+2, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+3, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+4, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+5, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+6, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+7, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+8, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+9, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+10, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+11, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+12, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+13, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+14, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+15, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+16, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+17, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+18, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+19, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+20, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+21, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+22, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+23, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+24, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+25, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+26, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+27, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+28, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+29, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+30, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+31, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+32, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+33, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+34, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+35, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+36, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+37, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+38, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+39, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+40, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+41, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+42, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+43, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+44, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+45, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+46, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+47, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+48, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+49, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+50, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+51, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+52, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0), +(@PTEMPLATE+53, @PTEMPLATE+54, 0, 'Azsharite Formation - Azshara', 0); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+107, 152620, 1, 2452.77, -5903.56, 107.472, -2.05949, 0, 0, 0.857167, -0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+108, 152620, 1, 2524.7, -6099, 104.747, -2.49582, 0, 0, 0.948324, -0.317305, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+109, 152620, 1, 2614.46, -6518.56, 103.983, 3.7001, 0, 0, -0.961261, 0.27564, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+110, 152620, 1, 2644.68, -6366.55, 105.699, 0.191986, 0, 0, 0.095846, 0.995396, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+111, 152620, 1, 2690.67, -5991.23, 94.2196, 2.46091, 0, 0, 0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+112, 152620, 1, 2691.13, -5749.98, 108.459, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+113, 152620, 1, 2813.64, -6089.12, 124.944, -3.01942, 0, 0, 0.998135, -0.061048, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+114, 152620, 1, 2967.44, -5812.43, 134.01, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+115, 152620, 1, 2992.79, -5596.36, 149.274, 1.27409, 0, 0, 0.594823, 0.803857, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+116, 152621, 1, 2286.88, -6286.94, 112.171, -2.32129, 0, 0, 0.91706, -0.398749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+117, 152621, 1, 2364.99, -6452.86, 104.871, 0.15708, 0, 0, 0.078459, 0.996917, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+118, 152621, 1, 2399.31, -5674.11, 119.468, -0.366519, 0, 0, 0.182236, -0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+119, 152621, 1, 2400.9, -6095.08, 104.625, -3.05433, 0, 0, 0.999048, -0.043619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+120, 152621, 1, 2455.02, -5932.56, 92.7238, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+121, 152621, 1, 2638.2, -6317.19, 93.878, -2.05949, 0, 0, 0.857167, -0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+122, 152621, 1, 2692.91, -5940.59, 96.5098, 3.94445, 0, 0, -0.920505, 0.390732, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+123, 152621, 1, 2639.86, -5603.31, 112.378, 3.73501, 0, 0, -0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From bd2949e5fe9e287e4c485204b4115db332f784a9 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Thu, 6 Jul 2023 21:41:49 +0100 Subject: [PATCH 065/426] Add Missing Resonite Crystals (#2028) --- sql/migrations/20230703185705_world.sql | 397 ++++++++++++++++++++++++ 1 file changed, 397 insertions(+) create mode 100644 sql/migrations/20230703185705_world.sql diff --git a/sql/migrations/20230703185705_world.sql b/sql/migrations/20230703185705_world.sql new file mode 100644 index 00000000000..7f2b009ccf1 --- /dev/null +++ b/sql/migrations/20230703185705_world.sql @@ -0,0 +1,397 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230703185705'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230703185705'); +-- Add your query below. + + +SET @OGUID = 50945; +SET @PTEMPLATE = 20076; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (47625, 47626, 47627, 47628, 47629, 47630, 47631, 47632, 47633, 47634, 47635, 47636, 47637, 47638, 47639, 47640, 47641, 47642, 47643, 47645, 47646, 47647, 47648, 47649, 47650, 47651, 47652, 47653, 47654, 47655, 47656, 47657, 47658, 47659, 47660, 47661, 47662, 47663)); +DELETE FROM `gameobject` WHERE `guid` IN (47625, 47626, 47627, 47628, 47629, 47630, 47631, 47632, 47633, 47634, 47635, 47636, 47637, 47638, 47639, 47640, 47641, 47642, 47643, 47645, 47646, 47647, 47648, 47649, 47650, 47651, 47652, 47653, 47654, 47655, 47656, 47657, 47658, 47659, 47660, 47661, 47662, 47663); +DELETE FROM `pool_gameobject` WHERE `guid` IN (47625, 47626, 47627, 47628, 47629, 47630, 47631, 47632, 47633, 47634, 47635, 47636, 47637, 47638, 47639, 47640, 47641, 47642, 47643, 47645, 47646, 47647, 47648, 47649, 47650, 47651, 47652, 47653, 47654, 47655, 47656, 47657, 47658, 47659, 47660, 47661, 47662, 47663); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 178104, 1, -14.578, 452.385, 104.226, 2.56563, 0, 0, 0.95882, 0.284015, 300, 300, 100, 1, 8, 0, 0, 10), +(@OGUID+2, 178104, 1, -140.639, 377.375, 95.3397, 5.46288, 0, 0, -0.398748, 0.91706, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 178104, 1, -123.834, 377.4, 94.7579, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 178104, 1, -122.788, 402.287, 95.1715, 1.0821, 0, 0, 0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 178104, 1, -107.376, 328.426, 119.415, 0.715585, 0, 0, 0.350207, 0.936672, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 178104, 1, -106.029, 343.425, 93.7598, 5.42797, 0, 0, -0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 178104, 1, -100.77, 317.247, 88.4146, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 178104, 1, -100.368, 390.171, 95.5482, 3.63029, 0, 0, -0.970295, 0.241925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 178104, 1, -99.8681, 361.988, 95.7091, 3.3685, 0, 0, -0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 178104, 1, -93.8035, 271.996, 94.4738, 2.86234, 0, 0, 0.990268, 0.139175, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 178104, 1, -92.4437, 306.435, 122.651, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 178104, 1, -90.3116, 334.663, 102.433, 2.9496, 0, 0, 0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 178104, 1, -89.3209, 256.081, 97.3751, 5.11382, 0, 0, -0.551936, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 178104, 1, -83.7762, 384.115, 111.53, 5.28835, 0, 0, -0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 178104, 1, -78.4804, 337.506, 101.92, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 178104, 1, -76.7463, 316.693, 85.8159, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 178104, 1, -72.2178, 346.028, 113.018, 5.02655, 0, 0, -0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 178104, 1, -67.5171, 313.293, 118.042, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 178104, 1, -64.9141, 347.352, 121.193, 6.10865, 0, 0, -0.0871553, 0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 178104, 1, -63.9654, 380.595, 120.695, 2.93214, 0, 0, 0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 178104, 1, -63.4084, 274.304, 88.6756, 1.48353, 0, 0, 0.67559, 0.737278, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 178104, 1, -62.4003, 333.943, 116.277, 6.16101, 0, 0, -0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 178104, 1, -53.8868, 383.872, 108.129, 4.38078, 0, 0, -0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 178104, 1, -53.5342, 419.568, 104.232, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 178104, 1, -52.8023, 311.732, 89.9642, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 178104, 1, -49.0881, 246.705, 85.9696, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 178104, 1, -44.2909, 334.918, 119.002, 3.4383, 0, 0, -0.989016, 0.147811, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 178104, 1, -42.5558, 280.483, 91.0621, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 178104, 1, -41.3147, 368.748, 119.611, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 178104, 1, -39.0437, 249.398, 85.9696, 2.89725, 0, 0, 0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 178104, 1, -36.1657, 378.314, 104.588, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 178104, 1, -36.0511, 333.875, 94.5704, 1.20428, 0, 0, 0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 178104, 1, -32.1617, 301.727, 90.3894, 0.157079, 0, 0, 0.0784588, 0.996917, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 178104, 1, -31.6009, 343.79, 98.2847, 1.41372, 0, 0, 0.649447, 0.760406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 178104, 1, -13.4543, 312.586, 95.9667, 2.26893, 0, 0, 0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 178104, 1, -10.9643, 354.732, 103.357, 3.927, 0, 0, -0.923879, 0.382686, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 178104, 1, -7.92567, 402.71, 101.443, 0.558504, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 178104, 1, -4.27756, 441.209, 104.228, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 178104, 1, -0.137587, 357.231, 109.81, 2.56563, 0, 0, 0.958819, 0.284016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 178104, 1, 11.8071, 448.487, 103.12, 2.53072, 0, 0, 0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 178105, 1, -14.578, 452.385, 104.226, 2.56563, 0, 0, 0.95882, 0.284015, 300, 300, 100, 1, 8, 0, 0, 10), +(@OGUID+42, 178105, 1, -140.639, 377.375, 95.3397, 5.46288, 0, 0, -0.398748, 0.91706, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 178105, 1, -123.834, 377.4, 94.7579, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 178105, 1, -122.788, 402.287, 95.1715, 1.0821, 0, 0, 0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 178105, 1, -107.376, 328.426, 119.415, 0.715585, 0, 0, 0.350207, 0.936672, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 178105, 1, -106.029, 343.425, 93.7598, 5.42797, 0, 0, -0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 178105, 1, -100.77, 317.247, 88.4146, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 178105, 1, -100.368, 390.171, 95.5482, 3.63029, 0, 0, -0.970295, 0.241925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 178105, 1, -99.8681, 361.988, 95.7091, 3.3685, 0, 0, -0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 178105, 1, -93.8035, 271.996, 94.4738, 2.86234, 0, 0, 0.990268, 0.139175, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 178105, 1, -92.4437, 306.435, 122.651, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 178105, 1, -90.3116, 334.663, 102.433, 2.9496, 0, 0, 0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 178105, 1, -89.3209, 256.081, 97.3751, 5.11382, 0, 0, -0.551936, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 178105, 1, -83.7762, 384.115, 111.53, 5.28835, 0, 0, -0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 178105, 1, -78.4804, 337.506, 101.92, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 178105, 1, -76.7463, 316.693, 85.8159, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 178105, 1, -72.2178, 346.028, 113.018, 5.02655, 0, 0, -0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 178105, 1, -67.5171, 313.293, 118.042, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 178105, 1, -64.9141, 347.352, 121.193, 6.10865, 0, 0, -0.0871553, 0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 178105, 1, -63.9654, 380.595, 120.695, 2.93214, 0, 0, 0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 178105, 1, -63.4084, 274.304, 88.6756, 1.48353, 0, 0, 0.67559, 0.737278, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 178105, 1, -62.4003, 333.943, 116.277, 6.16101, 0, 0, -0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 178105, 1, -53.8868, 383.872, 108.129, 4.38078, 0, 0, -0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 178105, 1, -53.5342, 419.568, 104.232, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 178105, 1, -52.8023, 311.732, 89.9642, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 178105, 1, -49.0881, 246.705, 85.9696, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 178105, 1, -44.2909, 334.918, 119.002, 3.4383, 0, 0, -0.989016, 0.147811, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 178105, 1, -42.5558, 280.483, 91.0621, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 178105, 1, -41.3147, 368.748, 119.611, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 178105, 1, -39.0437, 249.398, 85.9696, 2.89725, 0, 0, 0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 178105, 1, -36.1657, 378.314, 104.588, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 178105, 1, -36.0511, 333.875, 94.5704, 1.20428, 0, 0, 0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+73, 178105, 1, -32.1617, 301.727, 90.3894, 0.157079, 0, 0, 0.0784588, 0.996917, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+74, 178105, 1, -31.6009, 343.79, 98.2847, 1.41372, 0, 0, 0.649447, 0.760406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+75, 178105, 1, -13.4543, 312.586, 95.9667, 2.26893, 0, 0, 0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+76, 178105, 1, -10.9643, 354.732, 103.357, 3.927, 0, 0, -0.923879, 0.382686, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+77, 178105, 1, -7.92567, 402.71, 101.443, 0.558504, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+78, 178105, 1, -4.27756, 441.209, 104.228, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+79, 178105, 1, -0.137587, 357.231, 109.81, 2.56563, 0, 0, 0.958819, 0.284016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+80, 178105, 1, 11.8071, 448.487, 103.12, 2.53072, 0, 0, 0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+81, 178106, 1, -14.578, 452.385, 104.226, 2.56563, 0, 0, 0.95882, 0.284015, 300, 300, 100, 1, 8, 0, 0, 10), +(@OGUID+82, 178106, 1, -140.639, 377.375, 95.3397, 5.46288, 0, 0, -0.398748, 0.91706, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+83, 178106, 1, -123.834, 377.4, 94.7579, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+84, 178106, 1, -122.788, 402.287, 95.1715, 1.0821, 0, 0, 0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+85, 178106, 1, -107.376, 328.426, 119.415, 0.715585, 0, 0, 0.350207, 0.936672, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+86, 178106, 1, -106.029, 343.425, 93.7598, 5.42797, 0, 0, -0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+87, 178106, 1, -100.77, 317.247, 88.4146, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+88, 178106, 1, -100.368, 390.171, 95.5482, 3.63029, 0, 0, -0.970295, 0.241925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+89, 178106, 1, -99.8681, 361.988, 95.7091, 3.3685, 0, 0, -0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+90, 178106, 1, -93.8035, 271.996, 94.4738, 2.86234, 0, 0, 0.990268, 0.139175, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+91, 178106, 1, -92.4437, 306.435, 122.651, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+92, 178106, 1, -90.3116, 334.663, 102.433, 2.9496, 0, 0, 0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+93, 178106, 1, -89.3209, 256.081, 97.3751, 5.11382, 0, 0, -0.551936, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+94, 178106, 1, -83.7762, 384.115, 111.53, 5.28835, 0, 0, -0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+95, 178106, 1, -78.4804, 337.506, 101.92, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+96, 178106, 1, -76.7463, 316.693, 85.8159, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+97, 178106, 1, -72.2178, 346.028, 113.018, 5.02655, 0, 0, -0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+98, 178106, 1, -67.5171, 313.293, 118.042, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+99, 178106, 1, -64.9141, 347.352, 121.193, 6.10865, 0, 0, -0.0871553, 0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+100, 178106, 1, -63.9654, 380.595, 120.695, 2.93214, 0, 0, 0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+101, 178106, 1, -63.4084, 274.304, 88.6756, 1.48353, 0, 0, 0.67559, 0.737278, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+102, 178106, 1, -62.4003, 333.943, 116.277, 6.16101, 0, 0, -0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+103, 178106, 1, -53.8868, 383.872, 108.129, 4.38078, 0, 0, -0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+104, 178106, 1, -53.5342, 419.568, 104.232, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+105, 178106, 1, -52.8023, 311.732, 89.9642, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+106, 178106, 1, -49.0881, 246.705, 85.9696, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+107, 178106, 1, -44.2909, 334.918, 119.002, 3.4383, 0, 0, -0.989016, 0.147811, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+108, 178106, 1, -42.5558, 280.483, 91.0621, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+109, 178106, 1, -41.3147, 368.748, 119.611, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+110, 178106, 1, -39.0437, 249.398, 85.9696, 2.89725, 0, 0, 0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+111, 178106, 1, -36.1657, 378.314, 104.588, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+112, 178106, 1, -36.0511, 333.875, 94.5704, 1.20428, 0, 0, 0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+113, 178106, 1, -32.1617, 301.727, 90.3894, 0.157079, 0, 0, 0.0784588, 0.996917, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+114, 178106, 1, -31.6009, 343.79, 98.2847, 1.41372, 0, 0, 0.649447, 0.760406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+115, 178106, 1, -13.4543, 312.586, 95.9667, 2.26893, 0, 0, 0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+116, 178106, 1, -10.9643, 354.732, 103.357, 3.927, 0, 0, -0.923879, 0.382686, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+117, 178106, 1, -7.92567, 402.71, 101.443, 0.558504, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+118, 178106, 1, -4.27756, 441.209, 104.228, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+119, 178106, 1, -0.137587, 357.231, 109.81, 2.56563, 0, 0, 0.958819, 0.284016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+120, 178106, 1, 11.8071, 448.487, 103.12, 2.53072, 0, 0, 0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+2, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+3, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+4, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+5, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+6, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+7, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+8, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+9, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+10, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+11, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+12, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+13, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+14, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+15, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+16, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+17, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+18, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+19, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+20, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+21, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+22, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+23, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+24, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+25, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+26, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+27, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+28, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+29, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+30, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+31, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+32, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+33, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+34, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+35, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+36, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+37, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+38, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+39, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+40, 1, 'Resonite Crystal - Stonetalon Mountains', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+32, @PTEMPLATE+32, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+33, @PTEMPLATE+33, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+34, @PTEMPLATE+34, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+35, @PTEMPLATE+35, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+36, @PTEMPLATE+36, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+37, @PTEMPLATE+37, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+38, @PTEMPLATE+38, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+39, @PTEMPLATE+39, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+40, @PTEMPLATE+40, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+41, @PTEMPLATE+1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+42, @PTEMPLATE+2, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+43, @PTEMPLATE+3, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+44, @PTEMPLATE+4, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+45, @PTEMPLATE+5, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+46, @PTEMPLATE+6, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+47, @PTEMPLATE+7, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+48, @PTEMPLATE+8, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+49, @PTEMPLATE+9, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+50, @PTEMPLATE+10, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+51, @PTEMPLATE+11, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+52, @PTEMPLATE+12, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+53, @PTEMPLATE+13, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+54, @PTEMPLATE+14, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+55, @PTEMPLATE+15, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+56, @PTEMPLATE+16, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+57, @PTEMPLATE+17, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+58, @PTEMPLATE+18, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+59, @PTEMPLATE+19, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+60, @PTEMPLATE+20, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+61, @PTEMPLATE+21, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+62, @PTEMPLATE+22, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+63, @PTEMPLATE+23, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+64, @PTEMPLATE+24, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+65, @PTEMPLATE+25, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+66, @PTEMPLATE+26, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+67, @PTEMPLATE+27, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+68, @PTEMPLATE+28, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+69, @PTEMPLATE+29, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+70, @PTEMPLATE+30, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+71, @PTEMPLATE+31, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+72, @PTEMPLATE+32, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+73, @PTEMPLATE+33, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+74, @PTEMPLATE+34, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+75, @PTEMPLATE+35, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+76, @PTEMPLATE+36, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+77, @PTEMPLATE+37, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+78, @PTEMPLATE+38, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+79, @PTEMPLATE+39, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+80, @PTEMPLATE+40, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+81, @PTEMPLATE+1, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+82, @PTEMPLATE+2, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+83, @PTEMPLATE+3, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+84, @PTEMPLATE+4, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+85, @PTEMPLATE+5, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+86, @PTEMPLATE+6, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+87, @PTEMPLATE+7, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+88, @PTEMPLATE+8, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+89, @PTEMPLATE+9, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+90, @PTEMPLATE+10, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+91, @PTEMPLATE+11, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+92, @PTEMPLATE+12, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+93, @PTEMPLATE+13, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+94, @PTEMPLATE+14, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+95, @PTEMPLATE+15, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+96, @PTEMPLATE+16, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+97, @PTEMPLATE+17, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+98, @PTEMPLATE+18, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+99, @PTEMPLATE+19, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+100, @PTEMPLATE+20, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+101, @PTEMPLATE+21, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+102, @PTEMPLATE+22, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+103, @PTEMPLATE+23, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+104, @PTEMPLATE+24, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+105, @PTEMPLATE+25, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+106, @PTEMPLATE+26, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+107, @PTEMPLATE+27, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+108, @PTEMPLATE+28, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+109, @PTEMPLATE+29, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+110, @PTEMPLATE+30, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+111, @PTEMPLATE+31, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+112, @PTEMPLATE+32, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+113, @PTEMPLATE+33, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+114, @PTEMPLATE+34, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+115, @PTEMPLATE+35, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+116, @PTEMPLATE+36, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+117, @PTEMPLATE+37, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+118, @PTEMPLATE+38, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+119, @PTEMPLATE+39, 'Resonite Crystal - Stonetalon Mountains', 0, 10), +(@OGUID+120, @PTEMPLATE+40, 'Resonite Crystal - Stonetalon Mountains', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+41, 18, 'Stonetalon Mountains - Resonite Crystal (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+2, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+3, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+4, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+5, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+6, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+7, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+8, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+9, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+10, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+11, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+12, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+13, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+14, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+15, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+16, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+17, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+18, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+19, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+20, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+21, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+22, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+23, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+24, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+25, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+26, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+27, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+28, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+29, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+30, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+31, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+32, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+33, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+34, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+35, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+36, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+37, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+38, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+39, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0), +(@PTEMPLATE+40, @PTEMPLATE+41, 0, 'Resonite Crystal - Stonetalon Mountains', 0); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+121, 178124, 1, -14.578, 452.385, 104.226, 2.56563, 0, 0, 0.95882, 0.284015, 300, 300, 100, 1, 8, 0, 0, 10), +(@OGUID+122, 178124, 1, -140.639, 377.375, 95.3397, 5.46288, 0, 0, -0.398748, 0.91706, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+123, 178124, 1, -123.834, 377.4, 94.7579, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+124, 178124, 1, -122.788, 402.287, 95.1715, 1.0821, 0, 0, 0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+125, 178124, 1, -107.376, 328.426, 119.415, 0.715585, 0, 0, 0.350207, 0.936672, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+126, 178124, 1, -106.029, 343.425, 93.7598, 5.42797, 0, 0, -0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+127, 178124, 1, -100.77, 317.247, 88.4146, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+128, 178124, 1, -100.368, 390.171, 95.5482, 3.63029, 0, 0, -0.970295, 0.241925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+129, 178124, 1, -99.8681, 361.988, 95.7091, 3.3685, 0, 0, -0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+130, 178124, 1, -93.8035, 271.996, 94.4738, 2.86234, 0, 0, 0.990268, 0.139175, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+131, 178124, 1, -92.4437, 306.435, 122.651, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+132, 178124, 1, -90.3116, 334.663, 102.433, 2.9496, 0, 0, 0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+133, 178124, 1, -89.3209, 256.081, 97.3751, 5.11382, 0, 0, -0.551936, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+134, 178124, 1, -83.7762, 384.115, 111.53, 5.28835, 0, 0, -0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+135, 178124, 1, -78.4804, 337.506, 101.92, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+136, 178124, 1, -76.7463, 316.693, 85.8159, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+137, 178124, 1, -72.2178, 346.028, 113.018, 5.02655, 0, 0, -0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+138, 178124, 1, -67.5171, 313.293, 118.042, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+139, 178124, 1, -64.9141, 347.352, 121.193, 6.10865, 0, 0, -0.0871553, 0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+140, 178124, 1, -63.9654, 380.595, 120.695, 2.93214, 0, 0, 0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+141, 178124, 1, -63.4084, 274.304, 88.6756, 1.48353, 0, 0, 0.67559, 0.737278, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+142, 178124, 1, -62.4003, 333.943, 116.277, 6.16101, 0, 0, -0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+143, 178124, 1, -53.8868, 383.872, 108.129, 4.38078, 0, 0, -0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+144, 178124, 1, -53.5342, 419.568, 104.232, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+145, 178124, 1, -52.8023, 311.732, 89.9642, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+146, 178124, 1, -49.0881, 246.705, 85.9696, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+147, 178124, 1, -44.2909, 334.918, 119.002, 3.4383, 0, 0, -0.989016, 0.147811, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+148, 178124, 1, -42.5558, 280.483, 91.0621, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+149, 178124, 1, -41.3147, 368.748, 119.611, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+150, 178124, 1, -39.0437, 249.398, 85.9696, 2.89725, 0, 0, 0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+151, 178124, 1, -36.1657, 378.314, 104.588, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+152, 178124, 1, -36.0511, 333.875, 94.5704, 1.20428, 0, 0, 0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+153, 178124, 1, -32.1617, 301.727, 90.3894, 0.157079, 0, 0, 0.0784588, 0.996917, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+154, 178124, 1, -31.6009, 343.79, 98.2847, 1.41372, 0, 0, 0.649447, 0.760406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+155, 178124, 1, -13.4543, 312.586, 95.9667, 2.26893, 0, 0, 0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+156, 178124, 1, -10.9643, 354.732, 103.357, 3.927, 0, 0, -0.923879, 0.382686, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+157, 178124, 1, -7.92567, 402.71, 101.443, 0.558504, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+158, 178124, 1, -4.27756, 441.209, 104.228, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+159, 178124, 1, -0.137587, 357.231, 109.81, 2.56563, 0, 0, 0.958819, 0.284016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+160, 178124, 1, 11.8071, 448.487, 103.12, 2.53072, 0, 0, 0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 82e310b237cda7e0720f834782b986366cdec1b8 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Thu, 6 Jul 2023 21:42:03 +0100 Subject: [PATCH 066/426] Add Missing Weapon Crate / Armor Crates (#2029) --- sql/migrations/20230703185905_world.sql | 274 ++++++++++++++++++++++++ 1 file changed, 274 insertions(+) create mode 100644 sql/migrations/20230703185905_world.sql diff --git a/sql/migrations/20230703185905_world.sql b/sql/migrations/20230703185905_world.sql new file mode 100644 index 00000000000..48b28d38f49 --- /dev/null +++ b/sql/migrations/20230703185905_world.sql @@ -0,0 +1,274 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230703185905'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230703185905'); +-- Add your query below. + + +SET @OGUID = 232257; +SET @PTEMPLATE = 21677; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (13305, 13309, 13310, 48651, 48765, 48774)); +DELETE FROM `gameobject` WHERE `guid` IN (13305, 13309, 13310, 48651, 48765, 48774); +DELETE FROM `pool_gameobject` WHERE `guid` IN (13305, 13309, 13310, 48651, 48765, 48774); + +-- Barrens +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3660, 1, -1373.69, -3596.82, 91.7501, 1.0821, 0, 0, 0.515038, 0.857167, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3660, 1, -1574.72, -3902.17, 12.9352, 3.59538, 0, 0, -0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3660, 1, -1568.41, -3894.21, 14.4994, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3660, 1, -1516.98, -3815.31, 22.7504, 3.45576, 0, 0, -0.987688, 0.156436, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3660, 1, -1493.29, -3815.57, 24.6679, 5.86431, 0, 0, -0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3660, 1, -1443.09, -3652.76, 92.2653, 5.42797, 0, 0, -0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3660, 1, -1441.32, -3645.93, 92.1507, 1.11701, 0, 0, 0.529919, 0.848048, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3660, 1, -1374.43, -3906.73, 10.0213, 2.56563, 0, 0, 0.958819, 0.284016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3660, 1, -1360.28, -3913.57, 9.11687, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3660, 1, -483.763, -2601.68, 127.867, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3660, 1, -481.966, -2595.26, 103.638, 3.14159, 0, 0, -1, 0, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3660, 1, -332.152, -2559.53, 95.7875, 2.19911, 0, 0, 0.891006, 0.453991, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3660, 1, -1726.4, -3830.48, 10.7884, 5.16618, 0, 0, -0.529919, 0.848048, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3660, 1, -1385.77, -3590.06, 91.6753, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3661, 1, -1373.69, -3596.82, 91.7501, 1.0821, 0, 0, 0.515038, 0.857167, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3661, 1, -1574.72, -3902.17, 12.9352, 3.59538, 0, 0, -0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3661, 1, -1568.41, -3894.21, 14.4994, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3661, 1, -1516.98, -3815.31, 22.7504, 3.45576, 0, 0, -0.987688, 0.156436, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3661, 1, -1493.29, -3815.57, 24.6679, 5.86431, 0, 0, -0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3661, 1, -1443.09, -3652.76, 92.2653, 5.42797, 0, 0, -0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3661, 1, -1441.32, -3645.93, 92.1507, 1.11701, 0, 0, 0.529919, 0.848048, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3661, 1, -1374.43, -3906.73, 10.0213, 2.56563, 0, 0, 0.958819, 0.284016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3661, 1, -1360.28, -3913.57, 9.11687, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3661, 1, -483.763, -2601.68, 127.867, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3661, 1, -481.966, -2595.26, 103.638, 3.14159, 0, 0, -1, 0, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3661, 1, -332.152, -2559.53, 95.7875, 2.19911, 0, 0, 0.891006, 0.453991, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3661, 1, -1726.4, -3830.48, 10.7884, 5.16618, 0, 0, -0.529919, 0.848048, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3661, 1, -1385.77, -3590.06, 91.6753, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+2, 1, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+3, 1, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+4, 1, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+5, 1, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+6, 1, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+7, 1, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+8, 1, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+9, 1, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+10, 1, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+11, 1, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+12, 1, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+13, 1, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+14, 1, 'Weapon Crate / Armor Crate - Barrens', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+15, @PTEMPLATE+1, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+16, @PTEMPLATE+2, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+17, @PTEMPLATE+3, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+18, @PTEMPLATE+4, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+19, @PTEMPLATE+5, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+20, @PTEMPLATE+6, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+21, @PTEMPLATE+7, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+22, @PTEMPLATE+8, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+23, @PTEMPLATE+9, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+24, @PTEMPLATE+10, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+25, @PTEMPLATE+11, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+26, @PTEMPLATE+12, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+27, @PTEMPLATE+13, 'Weapon Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+28, @PTEMPLATE+14, 'Weapon Crate / Armor Crate - Barrens', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+15, 5, 'Barrens - Weapon Crate / Armor Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Barrens', 0), +(@PTEMPLATE+2, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Barrens', 0), +(@PTEMPLATE+3, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Barrens', 0), +(@PTEMPLATE+4, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Barrens', 0), +(@PTEMPLATE+5, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Barrens', 0), +(@PTEMPLATE+6, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Barrens', 0), +(@PTEMPLATE+7, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Barrens', 0), +(@PTEMPLATE+8, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Barrens', 0), +(@PTEMPLATE+9, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Barrens', 0), +(@PTEMPLATE+10, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Barrens', 0), +(@PTEMPLATE+11, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Barrens', 0), +(@PTEMPLATE+12, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Barrens', 0), +(@PTEMPLATE+13, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Barrens', 0), +(@PTEMPLATE+14, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Barrens', 0); + +SET @OGUID = 232830; +SET @PTEMPLATE = 22983; + +-- Darkshore +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3660, 1, 5470.45, 583.138, -0.04548, 5.09636, 0, 0, -0.559193, 0.829038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3660, 1, 5566.8, 575.271, -1.72532, 5.21854, 0, 0, -0.507538, 0.861629, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3660, 1, 6103.46, 815.634, -33.4195, 2.61799, 0, 0, 0.965925, 0.258821, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3660, 1, 7046.27, 407.369, -22.604, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3660, 1, 7050, 392.654, -6.14862, 5.41052, 0, 0, -0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3660, 1, 7131.98, 345.849, -41.7792, 5.65487, 0, 0, -0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3660, 1, 7133.91, 303.566, -40.9871, 3.76991, 0, 0, -0.951056, 0.309017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3660, 1, 7444.92, -227.195, -0.214618, 3.68265, 0, 0, -0.96363, 0.267241, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3660, 1, 7472.67, -446.01, -0.074509, 6.0912, 0, 0, -0.0958452, 0.995396, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3660, 1, 7558.19, -376.235, -1.87434, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3660, 1, 7869.38, -918.659, -24.3792, 1.58825, 0, 0, 0.71325, 0.70091, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3660, 1, 8059.07, -1012.45, -6.44795, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3660, 1, 5404.55, 534.358, 0.043727, 2.28638, 0, 0, 0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3660, 1, 7457.84, -103.508, -0.007202, 6.02139, 0, 0, -0.130526, 0.991445, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3661, 1, 5470.45, 583.138, -0.04548, 5.09636, 0, 0, -0.559193, 0.829038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3661, 1, 5566.8, 575.271, -1.72532, 5.21854, 0, 0, -0.507538, 0.861629, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3661, 1, 6103.46, 815.634, -33.4195, 2.61799, 0, 0, 0.965925, 0.258821, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3661, 1, 7046.27, 407.369, -22.604, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3661, 1, 7050, 392.654, -6.14862, 5.41052, 0, 0, -0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3661, 1, 7131.98, 345.849, -41.7792, 5.65487, 0, 0, -0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3661, 1, 7133.91, 303.566, -40.9871, 3.76991, 0, 0, -0.951056, 0.309017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3661, 1, 7444.92, -227.195, -0.214618, 3.68265, 0, 0, -0.96363, 0.267241, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3661, 1, 7472.67, -446.01, -0.074509, 6.0912, 0, 0, -0.0958452, 0.995396, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3661, 1, 7558.19, -376.235, -1.87434, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3661, 1, 7869.38, -918.659, -24.3792, 1.58825, 0, 0, 0.71325, 0.70091, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3661, 1, 8059.07, -1012.45, -6.44795, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3661, 1, 5404.55, 534.358, 0.043727, 2.28638, 0, 0, 0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3661, 1, 7457.84, -103.508, -0.007202, 6.02139, 0, 0, -0.130526, 0.991445, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@PTEMPLATE+2, 1, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@PTEMPLATE+3, 1, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@PTEMPLATE+4, 1, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@PTEMPLATE+5, 1, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@PTEMPLATE+6, 1, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@PTEMPLATE+7, 1, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@PTEMPLATE+8, 1, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@PTEMPLATE+9, 1, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@PTEMPLATE+10, 1, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@PTEMPLATE+11, 1, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@PTEMPLATE+12, 1, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@PTEMPLATE+13, 1, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@PTEMPLATE+14, 1, 'Weapon Crate / Armor Crate - Darkshore', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+15, @PTEMPLATE+1, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+16, @PTEMPLATE+2, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+17, @PTEMPLATE+3, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+18, @PTEMPLATE+4, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+19, @PTEMPLATE+5, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+20, @PTEMPLATE+6, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+21, @PTEMPLATE+7, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+22, @PTEMPLATE+8, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+23, @PTEMPLATE+9, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+24, @PTEMPLATE+10, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+25, @PTEMPLATE+11, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+26, @PTEMPLATE+12, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+27, @PTEMPLATE+13, 'Weapon Crate / Armor Crate - Darkshore', 0, 10), +(@OGUID+28, @PTEMPLATE+14, 'Weapon Crate / Armor Crate - Darkshore', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+15, 5, 'Darkshore - Weapon Crate / Armor Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Darkshore', 0), +(@PTEMPLATE+2, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Darkshore', 0), +(@PTEMPLATE+3, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Darkshore', 0), +(@PTEMPLATE+4, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Darkshore', 0), +(@PTEMPLATE+5, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Darkshore', 0), +(@PTEMPLATE+6, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Darkshore', 0), +(@PTEMPLATE+7, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Darkshore', 0), +(@PTEMPLATE+8, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Darkshore', 0), +(@PTEMPLATE+9, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Darkshore', 0), +(@PTEMPLATE+10, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Darkshore', 0), +(@PTEMPLATE+11, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Darkshore', 0), +(@PTEMPLATE+12, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Darkshore', 0), +(@PTEMPLATE+13, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Darkshore', 0), +(@PTEMPLATE+14, @PTEMPLATE+15, 0, 'Weapon Crate / Armor Crate - Darkshore', 0); + +-- Ashenvale +SET @OGUID = 3487; +SET @PTEMPLATE = 14301; + +DELETE FROM `gameobject` WHERE `guid` IN (47973, 198, 197, 47972, 199); +DELETE FROM `pool_gameobject` WHERE `guid` IN (47973, 198, 197, 47972, 199); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (47973, 198, 197, 47972, 199)); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3689, 1, 1789.23, -2747.89, 73.577, 0.994837, 0, 0, 0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3689, 1, 1809.6, -2790.47, 82.8923, 5.32326, 0, 0, -0.461748, 0.887011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3689, 1, 1817.35, -2628.76, 61.1289, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3689, 1, 1822.49, -2647.19, 53.1286, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3689, 1, 1831.57, -2754.73, 82.8331, 4.92183, 0, 0, -0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3689, 1, 1838.71, -2802.68, 52.0411, 5.86431, 0, 0, -0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3689, 1, 1865.96, -2635.36, 57.6073, 0.226892, 0, 0, 0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3689, 1, 1914.78, -2641.69, 82.8735, 0.209439, 0, 0, 0.104528, 0.994522, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3702, 1, 1789.23, -2747.89, 73.577, 0.994837, 0, 0, 0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3702, 1, 1809.6, -2790.47, 82.8923, 5.32326, 0, 0, -0.461748, 0.887011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3702, 1, 1817.35, -2628.76, 61.1289, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3702, 1, 1822.49, -2647.19, 53.1286, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3702, 1, 1831.57, -2754.73, 82.8331, 4.92183, 0, 0, -0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3702, 1, 1838.71, -2802.68, 52.0411, 5.86431, 0, 0, -0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3702, 1, 1865.96, -2635.36, 57.6073, 0.226892, 0, 0, 0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3702, 1, 1914.78, -2641.69, 82.8735, 0.209439, 0, 0, 0.104528, 0.994522, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@PTEMPLATE+2, 1, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@PTEMPLATE+3, 1, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@PTEMPLATE+4, 1, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@PTEMPLATE+5, 1, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@PTEMPLATE+6, 1, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@PTEMPLATE+7, 1, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@PTEMPLATE+8, 1, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@OGUID+9, @PTEMPLATE+1, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@OGUID+10, @PTEMPLATE+2, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@OGUID+11, @PTEMPLATE+3, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@OGUID+12, @PTEMPLATE+4, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@OGUID+13, @PTEMPLATE+5, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@OGUID+14, @PTEMPLATE+6, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@OGUID+15, @PTEMPLATE+7, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10), +(@OGUID+16, @PTEMPLATE+8, 'Weapon Crate / Armor Crate - Ashenvale', 0, 10); + +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` IN (3702, 3703, 3660, 3689, 3704, 3661); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From c913a8ba9c83302f80e9e0492bd8cfdce143a816 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 06:50:24 +0100 Subject: [PATCH 067/426] Water Barrel / Food Crate - Dun Morogh (#2030) --- sql/migrations/20230703190442_world.sql | 210 ++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 sql/migrations/20230703190442_world.sql diff --git a/sql/migrations/20230703190442_world.sql b/sql/migrations/20230703190442_world.sql new file mode 100644 index 00000000000..84fa9ef20be --- /dev/null +++ b/sql/migrations/20230703190442_world.sql @@ -0,0 +1,210 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230703190442'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230703190442'); +-- Add your query below. + + +SET @OGUID = 24573; +SET @PTEMPLATE = 162; + +-- Dun Morogh 3658 / 3719 +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (1462, 9467, 12759, 88000, 88001, 88002, 88003, 88004, 88005, 88006, 88007, 88010, 88011, 88012, 88013, 88038, 88039, 88040, 88041, 88042, 88043, 88044, 88045, 88046, 88047, 88048, 88049, 88050, 88051, 88052, 88053, 88054, 88055, 88056, 88057, 88058, 88059, 88060, 88061, 88062, 88063, 88064, 88065, 88066, 88067, 88068, 88069, 88070, 88071, 88072, 88073, 88074, 88075, 88076, 88077, 88078, 88079, 88080, 88081, 88082, 88083, 88084, 88085, 88086, 88087, 88088, 88089, 88090, 88091, 88092, 88093, 10063, 10173, 10677, 10734, 10838, 10847, 10946, 29306, 29317, 29609, 29626, 29640, 31414, 32369, 88008, 88009)); +DELETE FROM `gameobject` WHERE `guid` IN (1462, 9467, 12759, 88000, 88001, 88002, 88003, 88004, 88005, 88006, 88007, 88010, 88011, 88012, 88013, 88038, 88039, 88040, 88041, 88042, 88043, 88044, 88045, 88046, 88047, 88048, 88049, 88050, 88051, 88052, 88053, 88054, 88055, 88056, 88057, 88058, 88059, 88060, 88061, 88062, 88063, 88064, 88065, 88066, 88067, 88068, 88069, 88070, 88071, 88072, 88073, 88074, 88075, 88076, 88077, 88078, 88079, 88080, 88081, 88082, 88083, 88084, 88085, 88086, 88087, 88088, 88089, 88090, 88091, 88092, 88093, 10063, 10173, 10677, 10734, 10838, 10847, 10946, 29306, 29317, 29609, 29626, 29640, 31414, 32369, 88008, 88009); +DELETE FROM `pool_gameobject` WHERE `guid` IN (1462, 9467, 12759, 88000, 88001, 88002, 88003, 88004, 88005, 88006, 88007, 88010, 88011, 88012, 88013, 88038, 88039, 88040, 88041, 88042, 88043, 88044, 88045, 88046, 88047, 88048, 88049, 88050, 88051, 88052, 88053, 88054, 88055, 88056, 88057, 88058, 88059, 88060, 88061, 88062, 88063, 88064, 88065, 88066, 88067, 88068, 88069, 88070, 88071, 88072, 88073, 88074, 88075, 88076, 88077, 88078, 88079, 88080, 88081, 88082, 88083, 88084, 88085, 88086, 88087, 88088, 88089, 88090, 88091, 88092, 88093, 10063, 10173, 10677, 10734, 10838, 10847, 10946, 29306, 29317, 29609, 29626, 29640, 31414, 32369, 88008, 88009); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3658, 0, -5862.66, -1538.93, 371.974, -2.14675, 0, 0, 0.878817, -0.477159, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3658, 0, -5662.8, -1553.14, 387.125, 0.436332, 0, 0, 0.21644, 0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3658, 0, -5637.03, -505.798, 396.955, 3.00197, 0, 0, 0.997564, 0.069757, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3658, 0, -5602.55, -2006.01, 395.767, -0.872665, 0, 0, 0.422618, -0.906308, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3658, 0, -5569.67, -462.497, 402.397, -1.69297, 0, 0, 0.748956, -0.66262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3658, 0, -5566.9, 106.377, 482.453, -1.23918, 0, 0, 0.580703, -0.814116, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3658, 0, -5521.79, -1299.64, 405.023, 0.331613, 0, 0, 0.165048, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3658, 0, -5470.22, -636.681, 393.521, 0.331613, 0, 0, 0.165048, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3658, 0, -5468.16, -635.275, 393.725, 0.331613, 0, 0, 0.165048, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3658, 0, -5416.44, -1249.67, 444.115, -1.22173, 0, 0, 0.573576, -0.819152, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3658, 0, -5371.96, 287.039, 394.127, -1.0472, 0, 0, 0.5, -0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3658, 0, -5316.5, -1053.26, 393.347, -1.79769, 0, 0, -0.782608, 0.622514, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3658, 0, -5123.81, -2339.11, 400.498, 2.21657, 0, 0, 0.894934, 0.446198, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3658, 0, -5077.23, 494.845, 401.821, -2.47837, 0, 0, 0.945519, -0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3658, 0, -5073.84, 445.727, 410.966, 0.10472, 0, 0, 0.052336, 0.99863, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3658, 0, -5060.36, -249.986, 442.184, -1.53589, 0, 0, 0.694658, -0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3658, 0, -5932.59, -2040.1, 408.249, 0.139624, 0, 0, 0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3658, 0, -5877.41, -2003.39, 401.197, 3.05433, 0, 0, 0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3658, 0, -5826.51, -1588.39, 363.242, 0.890117, 0, 0, 0.430511, 0.902586, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3658, 0, -5784.28, 435.891, 427.16, 1.32645, 0, 0, 0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3658, 0, -5688.71, -1617.47, 383.204, 1.13446, 0, 0, 0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3658, 0, -5552.64, 525.477, 383.305, 5.44543, 0, 0, -0.406736, 0.913546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3658, 0, -5459.02, -2432.54, 401.572, 5.41052, 0, 0, -0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3658, 0, -5352.76, -221.747, 443.94, 5.09636, 0, 0, -0.559193, 0.829038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3658, 0, -5339.09, 572.927, 384.472, 3.76991, 0, 0, -0.951056, 0.309017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3658, 0, -5227.97, -2343.18, 398.827, 5.89921, 0, 0, -0.190808, 0.981627, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3658, 0, -5071.2, -14.6764, 395.701, 3.50812, 0, 0, -0.983254, 0.182238, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3658, 0, -5719.55, -1585.04, 383.204, 6.17847, 0, 0, -0.0523357, 0.99863, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3658, 0, -5531.22, 556.98, 394.625, 1.32645, 0, 0, 0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3719, 0, -5862.66, -1538.93, 371.974, -2.14675, 0, 0, 0.878817, -0.477159, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3719, 0, -5662.8, -1553.14, 387.125, 0.436332, 0, 0, 0.21644, 0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3719, 0, -5637.03, -505.798, 396.955, 3.00197, 0, 0, 0.997564, 0.069757, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3719, 0, -5602.55, -2006.01, 395.767, -0.872665, 0, 0, 0.422618, -0.906308, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3719, 0, -5569.67, -462.497, 402.397, -1.69297, 0, 0, 0.748956, -0.66262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3719, 0, -5566.9, 106.377, 482.453, -1.23918, 0, 0, 0.580703, -0.814116, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3719, 0, -5521.79, -1299.64, 405.023, 0.331613, 0, 0, 0.165048, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3719, 0, -5470.22, -636.681, 393.521, 0.331613, 0, 0, 0.165048, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3719, 0, -5468.16, -635.275, 393.725, 0.331613, 0, 0, 0.165048, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3719, 0, -5416.44, -1249.67, 444.115, -1.22173, 0, 0, 0.573576, -0.819152, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3719, 0, -5371.96, 287.039, 394.127, -1.0472, 0, 0, 0.5, -0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3719, 0, -5316.5, -1053.26, 393.347, -1.79769, 0, 0, -0.782608, 0.622514, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3719, 0, -5123.81, -2339.11, 400.498, 2.21657, 0, 0, 0.894934, 0.446198, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3719, 0, -5077.23, 494.845, 401.821, -2.47837, 0, 0, 0.945519, -0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3719, 0, -5073.84, 445.727, 410.966, 0.10472, 0, 0, 0.052336, 0.99863, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3719, 0, -5060.36, -249.986, 442.184, -1.53589, 0, 0, 0.694658, -0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3719, 0, -5932.59, -2040.1, 408.249, 0.139624, 0, 0, 0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3719, 0, -5877.41, -2003.39, 401.197, 3.05433, 0, 0, 0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3719, 0, -5826.51, -1588.39, 363.242, 0.890117, 0, 0, 0.430511, 0.902586, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3719, 0, -5784.28, 435.891, 427.16, 1.32645, 0, 0, 0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3719, 0, -5688.71, -1617.47, 383.204, 1.13446, 0, 0, 0.537299, 0.843392, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3719, 0, -5552.64, 525.477, 383.305, 5.44543, 0, 0, -0.406736, 0.913546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3719, 0, -5459.02, -2432.54, 401.572, 5.41052, 0, 0, -0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3719, 0, -5352.76, -221.747, 443.94, 5.09636, 0, 0, -0.559193, 0.829038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3719, 0, -5339.09, 572.927, 384.472, 3.76991, 0, 0, -0.951056, 0.309017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 3719, 0, -5227.97, -2343.18, 398.827, 5.89921, 0, 0, -0.190808, 0.981627, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 3719, 0, -5071.2, -14.6764, 395.701, 3.50812, 0, 0, -0.983254, 0.182238, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 3719, 0, -5719.55, -1585.04, 383.204, 6.17847, 0, 0, -0.0523357, 0.99863, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 3719, 0, -5531.22, 556.98, 394.625, 1.32645, 0, 0, 0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+2, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+3, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+4, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+5, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+6, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+7, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+8, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+9, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+10, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+11, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+12, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+13, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+14, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+15, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+16, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+17, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+18, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+19, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+20, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+21, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+22, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+23, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+24, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+25, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+26, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+27, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+28, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@PTEMPLATE+29, 1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+30, @PTEMPLATE+1, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+31, @PTEMPLATE+2, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+32, @PTEMPLATE+3, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+33, @PTEMPLATE+4, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+34, @PTEMPLATE+5, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+35, @PTEMPLATE+6, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+36, @PTEMPLATE+7, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+37, @PTEMPLATE+8, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+38, @PTEMPLATE+9, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+39, @PTEMPLATE+10, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+40, @PTEMPLATE+11, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+41, @PTEMPLATE+12, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+42, @PTEMPLATE+13, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+43, @PTEMPLATE+14, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+44, @PTEMPLATE+15, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+45, @PTEMPLATE+16, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+46, @PTEMPLATE+17, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+47, @PTEMPLATE+18, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+48, @PTEMPLATE+19, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+49, @PTEMPLATE+20, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+50, @PTEMPLATE+21, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+51, @PTEMPLATE+22, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+52, @PTEMPLATE+23, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+53, @PTEMPLATE+24, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+54, @PTEMPLATE+25, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+55, @PTEMPLATE+26, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+56, @PTEMPLATE+27, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+57, @PTEMPLATE+28, 'Water Barrel / Food Crate - Dun Morogh', 0, 10), +(@OGUID+58, @PTEMPLATE+29, 'Water Barrel / Food Crate - Dun Morogh', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+30, 12, 'Dun Morogh - Water Barrel / Food Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+2, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+3, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+4, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+5, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+6, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+7, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+8, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+9, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+10, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+11, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+12, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+13, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+14, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+15, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+16, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+17, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+18, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+19, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+20, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+21, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+22, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+23, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+24, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+25, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+26, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+27, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+28, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0), +(@PTEMPLATE+29, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Dun Morogh', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 57cf995759690eec41ff50ee5b5b8ac2e0104921 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 06:50:34 +0100 Subject: [PATCH 068/426] Barrel of Sweet Nectar / Food Crate - Badlands (#2031) --- sql/migrations/20230703190626_world.sql | 138 ++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 sql/migrations/20230703190626_world.sql diff --git a/sql/migrations/20230703190626_world.sql b/sql/migrations/20230703190626_world.sql new file mode 100644 index 00000000000..d5efe862222 --- /dev/null +++ b/sql/migrations/20230703190626_world.sql @@ -0,0 +1,138 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230703190626'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230703190626'); +-- Add your query below. + + +SET @OGUID = 17034; +SET @PTEMPLATE = 76; + +-- 3 Badlands 3706 / 3707 Barrel of Sweet Nectar / Food Crate +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (11476, 11448, 11441, 11439, 11430, 11426)); +DELETE FROM `gameobject` WHERE `guid` IN (11476, 11448, 11441, 11439, 11430, 11426); +DELETE FROM `pool_gameobject` WHERE `guid` IN (11476, 11448, 11441, 11439, 11430, 11426); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3706, 0, -7003.62, -3349.16, 241.669, 0.174533, 0, 0, 0.087156, 0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3706, 0, -6909.22, -2463.66, 245.296, -0.593412, 0, 0, 0.292372, -0.956305, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3706, 0, -6620.87, -2736.17, 244.859, 2.56563, 0, 0, 0.95882, 0.284015, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3706, 0, -6453.15, -3382.33, 241.694, -0.349066, 0, 0, 0.173648, -0.984808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3706, 0, -6364.81, -3079.97, 300.279, -0.558505, 0, 0, 0.275637, -0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3706, 0, -6335.1, -3072.2, 310.834, 1.0821, 0, 0, 0.515038, 0.857167, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3706, 0, -7313.35, -2288.05, 255.595, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3706, 0, -7139.74, -2424.63, 240.539, 3.21142, 0, 0, -0.999391, 0.0349061, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3706, 0, -6835.26, -3643.86, 253.034, 4.01426, 0, 0, -0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3706, 0, -6823.95, -2806.37, 242.512, 1.29154, 0, 0, 0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3706, 0, -6762.43, -3132.37, 241.163, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3706, 0, -6606.04, -3416.66, 279.3, 3.03684, 0, 0, 0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3706, 0, -6394.96, -3419.59, 241.667, 0.314158, 0, 0, 0.156434, 0.987688, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3706, 0, -6385.35, -3105.95, 310.836, 4.10153, 0, 0, -0.887011, 0.461749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3706, 0, -6377.72, -3127.71, 283.889, 4.59022, 0, 0, -0.748956, 0.66262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3706, 0, -6351.81, -3106.18, 285.277, 2.3911, 0, 0, 0.930417, 0.366502, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3706, 0, -6333.82, -3113.54, 299.723, 0.95993, 0, 0, 0.461748, 0.887011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3707, 0, -7003.62, -3349.16, 241.669, 0.174533, 0, 0, 0.087156, 0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3707, 0, -6909.22, -2463.66, 245.296, -0.593412, 0, 0, 0.292372, -0.956305, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3707, 0, -6620.87, -2736.17, 244.859, 2.56563, 0, 0, 0.95882, 0.284015, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3707, 0, -6453.15, -3382.33, 241.694, -0.349066, 0, 0, 0.173648, -0.984808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3707, 0, -6364.81, -3079.97, 300.279, -0.558505, 0, 0, 0.275637, -0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3707, 0, -6335.1, -3072.2, 310.834, 1.0821, 0, 0, 0.515038, 0.857167, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3707, 0, -7313.35, -2288.05, 255.595, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3707, 0, -7139.74, -2424.63, 240.539, 3.21142, 0, 0, -0.999391, 0.0349061, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3707, 0, -6835.26, -3643.86, 253.034, 4.01426, 0, 0, -0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3707, 0, -6823.95, -2806.37, 242.512, 1.29154, 0, 0, 0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3707, 0, -6762.43, -3132.37, 241.163, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3707, 0, -6606.04, -3416.66, 279.3, 3.03684, 0, 0, 0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3707, 0, -6394.96, -3419.59, 241.667, 0.314158, 0, 0, 0.156434, 0.987688, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3707, 0, -6385.35, -3105.95, 310.836, 4.10153, 0, 0, -0.887011, 0.461749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3707, 0, -6377.72, -3127.71, 283.889, 4.59022, 0, 0, -0.748956, 0.66262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3707, 0, -6351.81, -3106.18, 285.277, 2.3911, 0, 0, 0.930417, 0.366502, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3707, 0, -6333.82, -3113.54, 299.723, 0.95993, 0, 0, 0.461748, 0.887011, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@PTEMPLATE+2, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@PTEMPLATE+3, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@PTEMPLATE+4, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@PTEMPLATE+5, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@PTEMPLATE+6, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@PTEMPLATE+7, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@PTEMPLATE+8, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@PTEMPLATE+9, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@PTEMPLATE+10, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@PTEMPLATE+11, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@PTEMPLATE+12, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@PTEMPLATE+13, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@PTEMPLATE+14, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@PTEMPLATE+15, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@PTEMPLATE+16, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@PTEMPLATE+17, 1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+18, @PTEMPLATE+1, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+19, @PTEMPLATE+2, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+20, @PTEMPLATE+3, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+21, @PTEMPLATE+4, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+22, @PTEMPLATE+5, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+23, @PTEMPLATE+6, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+24, @PTEMPLATE+7, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+25, @PTEMPLATE+8, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+26, @PTEMPLATE+9, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+27, @PTEMPLATE+10, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+28, @PTEMPLATE+11, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+29, @PTEMPLATE+12, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+30, @PTEMPLATE+13, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+31, @PTEMPLATE+14, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+32, @PTEMPLATE+15, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+33, @PTEMPLATE+16, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10), +(@OGUID+34, @PTEMPLATE+17, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+18, 7, 'Badlands - Barrel of Sweet Nectar / Food Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0), +(@PTEMPLATE+2, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0), +(@PTEMPLATE+3, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0), +(@PTEMPLATE+4, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0), +(@PTEMPLATE+5, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0), +(@PTEMPLATE+6, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0), +(@PTEMPLATE+7, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0), +(@PTEMPLATE+8, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0), +(@PTEMPLATE+9, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0), +(@PTEMPLATE+10, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0), +(@PTEMPLATE+11, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0), +(@PTEMPLATE+12, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0), +(@PTEMPLATE+13, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0), +(@PTEMPLATE+14, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0), +(@PTEMPLATE+15, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0), +(@PTEMPLATE+16, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0), +(@PTEMPLATE+17, @PTEMPLATE+18, 0, 'Barrel of Sweet Nectar / Food Crate - Badlands', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 948d76aa4cf4b38ce5f2501358a57237c5eaae0f Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 06:50:47 +0100 Subject: [PATCH 069/426] Barrel of Melon Juice / Food Crate - Duskwood (#2032) --- sql/migrations/20230703200724_world.sql | 240 ++++++++++++++++++++++++ 1 file changed, 240 insertions(+) create mode 100644 sql/migrations/20230703200724_world.sql diff --git a/sql/migrations/20230703200724_world.sql b/sql/migrations/20230703200724_world.sql new file mode 100644 index 00000000000..66a8000ef40 --- /dev/null +++ b/sql/migrations/20230703200724_world.sql @@ -0,0 +1,240 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230703200724'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230703200724'); +-- Add your query below. + + +SET @OGUID = 28198; +SET @PTEMPLATE = 2047; + +-- 10 Duskwood 3659 / 3695 Barrel of Melon Juice / Food Crate +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (16615, 16612, 16607, 16590, 16583, 15770, 15768, 15762, 15746, 15744, 15743, 15742)); +DELETE FROM `gameobject` WHERE `guid` IN (16615, 16612, 16607, 16590, 16583, 15770, 15768, 15762, 15746, 15744, 15743, 15742); +DELETE FROM `pool_gameobject` WHERE `guid` IN (16615, 16612, 16607, 16590, 16583, 15770, 15768, 15762, 15746, 15744, 15743, 15742); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3659, 0, -11148.2, -849.795, 77.2473, 1.46608, 0, 0, 0.669131, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3659, 0, -11093.7, -72.5793, 14.7385, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3659, 0, -11087.6, -543.905, 32.4458, -3.12414, 0, 0, 0.999962, -0.008727, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3659, 0, -11027.4, 252.967, 27.6034, -2.6529, 0, 0, 0.970296, -0.241922, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3659, 0, -11022.4, -1108.87, 40.6748, -1.32645, 0, 0, 0.615661, -0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3659, 0, -10942.5, -934.878, 76.8786, 2.75762, 0, 0, 0.981627, 0.190809, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3659, 0, -10740.1, -1120.25, 27.6742, -1.71042, 0, 0, 0.75471, -0.656059, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3659, 0, -10717.8, 256.985, 43.9064, -1.01229, 0, 0, 0.48481, -0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3659, 0, -10585.9, -1205.39, 28.4989, 0.802851, 0, 0, 0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3659, 0, -10441.3, -794.54, 52.3904, 0.890118, 0, 0, 0.430511, 0.902585, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3659, 0, -10342.2, -1551.89, 92.6508, -1.65806, 0, 0, 0.737277, -0.67559, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3659, 0, -10326.5, 354.035, 60.7475, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3659, 0, -11101.6, -486.134, 32.8518, 2.02458, 0, 0, 0.848047, 0.529921, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3659, 0, -11081.3, -825.292, 58.2608, 3.85718, 0, 0, -0.936671, 0.35021, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3659, 0, -11070.7, -232.52, 17.7997, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3659, 0, -11070.3, -952.024, 64.5091, 2.49582, 0, 0, 0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3659, 0, -11024, -1144.52, 38.6127, 0.244346, 0, 0, 0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3659, 0, -11022.2, -898.001, 63.0994, 2.30383, 0, 0, 0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3659, 0, -11007.3, 198.255, 27.5019, 6.00393, 0, 0, -0.139173, 0.990268, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3659, 0, -10963.4, -952.328, 71.1918, 5.2709, 0, 0, -0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3659, 0, -10955.8, -42.0711, 13.355, 0.558504, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3659, 0, -10930.7, -393.477, 40.6999, 2.9496, 0, 0, 0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3659, 0, -10927.6, 439.559, 45.4684, 3.38594, 0, 0, -0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3659, 0, -10754.4, -1041.35, 41.4959, 0.0523589, 0, 0, 0.0261765, 0.999657, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3659, 0, -10688.6, 340.587, 44.4898, 2.96704, 0, 0, 0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3659, 0, -10687.4, 321.094, 33.6026, 1.22173, 0, 0, 0.573576, 0.819152, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3659, 0, -10666.2, -1259.92, 29.7281, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3659, 0, -10646.7, -879.4, 50.3618, 3.49067, 0, 0, -0.984807, 0.173652, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3659, 0, -10623.1, -1153.81, 26.7574, 2.32129, 0, 0, 0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3659, 0, -10577, -1317, 50.3811, 0.122173, 0, 0, 0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3659, 0, -10497, -1155.69, 28.0865, 5.35816, 0, 0, -0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3659, 0, -10366.1, -1259.79, 35.9107, 4.01426, 0, 0, -0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3659, 0, -10277.4, 77.0662, 38.8842, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3659, 0, -10256.5, -739.105, 45.305, 2.25147, 0, 0, 0.902585, 0.430512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3695, 0, -11148.2, -849.795, 77.2473, 1.46608, 0, 0, 0.669131, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3695, 0, -11093.7, -72.5793, 14.7385, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3695, 0, -11087.6, -543.905, 32.4458, -3.12414, 0, 0, 0.999962, -0.008727, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3695, 0, -11027.4, 252.967, 27.6034, -2.6529, 0, 0, 0.970296, -0.241922, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3695, 0, -11022.4, -1108.87, 40.6748, -1.32645, 0, 0, 0.615661, -0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3695, 0, -10942.5, -934.878, 76.8786, 2.75762, 0, 0, 0.981627, 0.190809, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3695, 0, -10740.1, -1120.25, 27.6742, -1.71042, 0, 0, 0.75471, -0.656059, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3695, 0, -10717.8, 256.985, 43.9064, -1.01229, 0, 0, 0.48481, -0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3695, 0, -10585.9, -1205.39, 28.4989, 0.802851, 0, 0, 0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3695, 0, -10441.3, -794.54, 52.3904, 0.890118, 0, 0, 0.430511, 0.902585, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3695, 0, -10342.2, -1551.89, 92.6508, -1.65806, 0, 0, 0.737277, -0.67559, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3695, 0, -10326.5, 354.035, 60.7475, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3695, 0, -11101.6, -486.134, 32.8518, 2.02458, 0, 0, 0.848047, 0.529921, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3695, 0, -11081.3, -825.292, 58.2608, 3.85718, 0, 0, -0.936671, 0.35021, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3695, 0, -11070.7, -232.52, 17.7997, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3695, 0, -11070.3, -952.024, 64.5091, 2.49582, 0, 0, 0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3695, 0, -11024, -1144.52, 38.6127, 0.244346, 0, 0, 0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3695, 0, -11022.2, -898.001, 63.0994, 2.30383, 0, 0, 0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3695, 0, -11007.3, 198.255, 27.5019, 6.00393, 0, 0, -0.139173, 0.990268, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3695, 0, -10963.4, -952.328, 71.1918, 5.2709, 0, 0, -0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 3695, 0, -10955.8, -42.0711, 13.355, 0.558504, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 3695, 0, -10930.7, -393.477, 40.6999, 2.9496, 0, 0, 0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 3695, 0, -10927.6, 439.559, 45.4684, 3.38594, 0, 0, -0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 3695, 0, -10754.4, -1041.35, 41.4959, 0.0523589, 0, 0, 0.0261765, 0.999657, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 3695, 0, -10688.6, 340.587, 44.4898, 2.96704, 0, 0, 0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 3695, 0, -10687.4, 321.094, 33.6026, 1.22173, 0, 0, 0.573576, 0.819152, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 3695, 0, -10666.2, -1259.92, 29.7281, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 3695, 0, -10646.7, -879.4, 50.3618, 3.49067, 0, 0, -0.984807, 0.173652, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 3695, 0, -10623.1, -1153.81, 26.7574, 2.32129, 0, 0, 0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 3695, 0, -10577, -1317, 50.3811, 0.122173, 0, 0, 0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 3695, 0, -10497, -1155.69, 28.0865, 5.35816, 0, 0, -0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 3695, 0, -10366.1, -1259.79, 35.9107, 4.01426, 0, 0, -0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 3695, 0, -10277.4, 77.0662, 38.8842, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 3695, 0, -10256.5, -739.105, 45.305, 2.25147, 0, 0, 0.902585, 0.430512, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+2, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+3, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+4, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+5, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+6, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+7, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+8, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+9, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+10, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+11, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+12, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+13, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+14, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+15, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+16, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+17, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+18, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+19, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+20, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+21, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+22, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+23, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+24, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+25, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+26, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+27, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+28, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+29, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+30, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+31, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+32, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+33, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@PTEMPLATE+34, 1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+32, @PTEMPLATE+32, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+33, @PTEMPLATE+33, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+34, @PTEMPLATE+34, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+35, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+36, @PTEMPLATE+2, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+37, @PTEMPLATE+3, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+38, @PTEMPLATE+4, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+39, @PTEMPLATE+5, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+40, @PTEMPLATE+6, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+41, @PTEMPLATE+7, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+42, @PTEMPLATE+8, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+43, @PTEMPLATE+9, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+44, @PTEMPLATE+10, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+45, @PTEMPLATE+11, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+46, @PTEMPLATE+12, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+47, @PTEMPLATE+13, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+48, @PTEMPLATE+14, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+49, @PTEMPLATE+15, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+50, @PTEMPLATE+16, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+51, @PTEMPLATE+17, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+52, @PTEMPLATE+18, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+53, @PTEMPLATE+19, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+54, @PTEMPLATE+20, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+55, @PTEMPLATE+21, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+56, @PTEMPLATE+22, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+57, @PTEMPLATE+23, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+58, @PTEMPLATE+24, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+59, @PTEMPLATE+25, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+60, @PTEMPLATE+26, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+61, @PTEMPLATE+27, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+62, @PTEMPLATE+28, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+63, @PTEMPLATE+29, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+64, @PTEMPLATE+30, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+65, @PTEMPLATE+31, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+66, @PTEMPLATE+32, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+67, @PTEMPLATE+33, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10), +(@OGUID+68, @PTEMPLATE+34, 'Barrel of Melon Juice / Food Crate - Duskwood', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+35, 15, 'Wetlands - Firefin Snapper School / Floating Wreckage / Oily Blackmouth School (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+2, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+3, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+4, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+5, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+6, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+7, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+8, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+9, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+10, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+11, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+12, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+13, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+14, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+15, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+16, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+17, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+18, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+19, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+20, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+21, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+22, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+23, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+24, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+25, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+26, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+27, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+28, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+29, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+30, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+31, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+32, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+33, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0), +(@PTEMPLATE+34, @PTEMPLATE+35, 0, 'Barrel of Melon Juice / Food Crate - Duskwood', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 4f5b41013ed0fb5ddd91e71d6d96b360556276ab Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 07:20:33 +0100 Subject: [PATCH 070/426] Barrel of Melon Juice / Food Crate - Wetlands (#2033) --- sql/migrations/20230704172635_world.sql | 372 ++++++++++++++++++++++++ 1 file changed, 372 insertions(+) create mode 100644 sql/migrations/20230704172635_world.sql diff --git a/sql/migrations/20230704172635_world.sql b/sql/migrations/20230704172635_world.sql new file mode 100644 index 00000000000..10bf057c18c --- /dev/null +++ b/sql/migrations/20230704172635_world.sql @@ -0,0 +1,372 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230704172635'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230704172635'); +-- Add your query below. + + +SET @OGUID = 38825; +SET @PTEMPLATE = 2647; + +-- 11 Wetlands 3659 / 3695 / Barrel of Melon Juice / Food Crate +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (15194, 15124, 15051, 14905, 14890, 14859, 14858, 14857, 14856, 14853, 14657, 14655, 14654, 14631, 14565)); +DELETE FROM `gameobject` WHERE `guid` IN (15194, 15124, 15051, 14905, 14890, 14859, 14858, 14857, 14856, 14853, 14657, 14655, 14654, 14631, 14565); +DELETE FROM `pool_gameobject` WHERE `guid` IN (15194, 15124, 15051, 14905, 14890, 14859, 14858, 14857, 14856, 14853, 14657, 14655, 14654, 14631, 14565); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3659, 0, -4182.13, -2372.79, 209.707, -2.58309, 0, 0, 0.961262, -0.275637, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3659, 0, -4054.09, -2979.75, 11.8781, -2.54818, 0, 0, 0.956305, -0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3659, 0, -3721.17, -619.176, 6.98369, -2.82743, 0, 0, 0.987688, -0.156434, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3659, 0, -3720.13, -1282.39, -0.681436, 1.13446, 0, 0, 0.5373, 0.843391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3659, 0, -3678.28, -891.935, 10.0351, -0.244346, 0, 0, 0.121869, -0.992546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3659, 0, -3396.97, -2265.16, 51.9177, -1.48353, 0, 0, 0.67559, -0.737277, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3659, 0, -3381.16, -2943.47, 16.509, 1.67552, 0, 0, 0.743145, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3659, 0, -3151.69, -1057.31, 7.35313, -0.959931, 0, 0, 0.461749, -0.887011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3659, 0, -3118.81, -916.972, -0.645712, -0.034907, 0, 0, 0.017452, -0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3659, 0, -2987.1, -1067.95, 6.72834, -1.98968, 0, 0, 0.838671, -0.544639, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3659, 0, -2902.53, -2053.89, 9.19539, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3659, 0, -2863.07, -2948.95, 33.7046, 0.488692, 0, 0, 0.241922, 0.970296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3659, 0, -2854.5, -1475.8, 10.1537, -0.715585, 0, 0, 0.350207, -0.936672, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3659, 0, -2652.25, -2442.3, 79.8937, -0.663225, 0, 0, 0.325568, -0.945519, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3659, 0, -2606.32, -1581.65, 0.205016, 1.6057, 0, 0, 0.71934, 0.694658, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3659, 0, -4237.88, -2340.36, 204.255, 5.09636, 0, 0, -0.559193, 0.829038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3659, 0, -4151.59, -2944.83, 11.7565, 1.65806, 0, 0, 0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3659, 0, -3945.21, -900.156, -0.957262, 0.95993, 0, 0, 0.461748, 0.887011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3659, 0, -3918.34, -617.5, 5.11114, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3659, 0, -3906.52, -3026.81, 10.9945, 4.92183, 0, 0, -0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3659, 0, -3903.3, -1018.76, 0.188679, 0.837757, 0, 0, 0.406736, 0.913546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3659, 0, -3892.44, -672.748, 7.97711, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3659, 0, -3875.2, -593.309, 6.05107, 2.30383, 0, 0, 0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3659, 0, -3854.74, -733.849, 8.46836, 2.09439, 0, 0, 0.866025, 0.500001, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3659, 0, -3778.7, -752.497, 8.00332, 1.53589, 0, 0, 0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3659, 0, -3765.62, -2925.04, 12.2839, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3659, 0, -3750.97, -853.885, 10.3692, 2.32129, 0, 0, 0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3659, 0, -3741.25, -674.611, 8.80531, 1.55334, 0, 0, 0.700909, 0.713251, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3659, 0, -3719.75, -705.681, 7.91241, 4.92183, 0, 0, -0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3659, 0, -3645.87, -2585.15, 51.9016, 5.86431, 0, 0, -0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3659, 0, -3555.82, -1146.84, -0.69557, 4.38078, 0, 0, -0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3659, 0, -3507.22, -1059.61, -0.581158, 3.10665, 0, 0, 0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3659, 0, -3449.37, -2439.35, 52.0637, 0.0698117, 0, 0, 0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3659, 0, -3387.65, -3025.45, 22.6822, 1.55334, 0, 0, 0.700909, 0.713251, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3659, 0, -3379.26, -2836.94, 11.7978, 5.93412, 0, 0, -0.173648, 0.984808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3659, 0, -3317.71, -910.537, -0.696205, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3659, 0, -3306.3, -2268.46, 51.8986, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3659, 0, -3281.41, -949.978, 8.04081, 3.38594, 0, 0, -0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3659, 0, -3230.66, -1140.5, 7.23959, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3659, 0, -3224.62, -1017.11, 7.60862, 3.89209, 0, 0, -0.930417, 0.366502, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3659, 0, -3202.35, -941.893, 8.75897, 6.05629, 0, 0, -0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3659, 0, -3101.07, -964.026, 7.33616, 1.25664, 0, 0, 0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3659, 0, -3048.5, -1346.18, 6.69699, 0.506145, 0, 0, 0.25038, 0.968148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3659, 0, -3046.7, -987.505, 7.71378, 6.16101, 0, 0, -0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3659, 0, -2963.52, -2007.95, 8.97602, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3659, 0, -2955.34, -1688.23, 9.62087, 3.73501, 0, 0, -0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3659, 0, -2950.06, -990.837, -0.709227, 0.471238, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3659, 0, -2924.49, -2978.86, 30.5468, 4.93928, 0, 0, -0.622514, 0.782609, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3659, 0, -2906.16, -1833.43, 9.443, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3659, 0, -2842.74, -1064.81, -0.555898, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3659, 0, -2780.25, -1124.63, -0.718564, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3659, 0, -2688.07, -1363.78, -0.405657, 0.837757, 0, 0, 0.406736, 0.913546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3659, 0, -2599.57, -2413.89, 80.3104, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3659, 0, -2581.69, -2344.12, 84.647, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 3659, 0, -3378.97, -2892.24, 11.6373, 5.75959, 0, 0, -0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 3659, 0, -2813.24, -2871.44, 32.7238, 4.67748, 0, 0, -0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 3695, 0, -4182.13, -2372.79, 209.707, -2.58309, 0, 0, 0.961262, -0.275637, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 3695, 0, -4054.09, -2979.75, 11.8781, -2.54818, 0, 0, 0.956305, -0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 3695, 0, -3721.17, -619.176, 6.98369, -2.82743, 0, 0, 0.987688, -0.156434, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 3695, 0, -3720.13, -1282.39, -0.681436, 1.13446, 0, 0, 0.5373, 0.843391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 3695, 0, -3678.28, -891.935, 10.0351, -0.244346, 0, 0, 0.121869, -0.992546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 3695, 0, -3396.97, -2265.16, 51.9177, -1.48353, 0, 0, 0.67559, -0.737277, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 3695, 0, -3381.16, -2943.47, 16.509, 1.67552, 0, 0, 0.743145, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 3695, 0, -3151.69, -1057.31, 7.35313, -0.959931, 0, 0, 0.461749, -0.887011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 3695, 0, -3118.81, -916.972, -0.645712, -0.034907, 0, 0, 0.017452, -0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 3695, 0, -2987.1, -1067.95, 6.72834, -1.98968, 0, 0, 0.838671, -0.544639, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 3695, 0, -2902.53, -2053.89, 9.19539, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 3695, 0, -2863.07, -2948.95, 33.7046, 0.488692, 0, 0, 0.241922, 0.970296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 3695, 0, -2854.5, -1475.8, 10.1537, -0.715585, 0, 0, 0.350207, -0.936672, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 3695, 0, -2652.25, -2442.3, 79.8937, -0.663225, 0, 0, 0.325568, -0.945519, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 3695, 0, -2606.32, -1581.65, 0.205016, 1.6057, 0, 0, 0.71934, 0.694658, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 3695, 0, -4237.88, -2340.36, 204.255, 5.09636, 0, 0, -0.559193, 0.829038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+73, 3695, 0, -4151.59, -2944.83, 11.7565, 1.65806, 0, 0, 0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+74, 3695, 0, -3945.21, -900.156, -0.957262, 0.95993, 0, 0, 0.461748, 0.887011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+75, 3695, 0, -3918.34, -617.5, 5.11114, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+76, 3695, 0, -3906.52, -3026.81, 10.9945, 4.92183, 0, 0, -0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+77, 3695, 0, -3903.3, -1018.76, 0.188679, 0.837757, 0, 0, 0.406736, 0.913546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+78, 3695, 0, -3892.44, -672.748, 7.97711, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+79, 3695, 0, -3875.2, -593.309, 6.05107, 2.30383, 0, 0, 0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+80, 3695, 0, -3854.74, -733.849, 8.46836, 2.09439, 0, 0, 0.866025, 0.500001, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+81, 3695, 0, -3778.7, -752.497, 8.00332, 1.53589, 0, 0, 0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+82, 3695, 0, -3765.62, -2925.04, 12.2839, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+83, 3695, 0, -3750.97, -853.885, 10.3692, 2.32129, 0, 0, 0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+84, 3695, 0, -3741.25, -674.611, 8.80531, 1.55334, 0, 0, 0.700909, 0.713251, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+85, 3695, 0, -3719.75, -705.681, 7.91241, 4.92183, 0, 0, -0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+86, 3695, 0, -3645.87, -2585.15, 51.9016, 5.86431, 0, 0, -0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+87, 3695, 0, -3555.82, -1146.84, -0.69557, 4.38078, 0, 0, -0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+88, 3695, 0, -3507.22, -1059.61, -0.581158, 3.10665, 0, 0, 0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+89, 3695, 0, -3449.37, -2439.35, 52.0637, 0.0698117, 0, 0, 0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+90, 3695, 0, -3387.65, -3025.45, 22.6822, 1.55334, 0, 0, 0.700909, 0.713251, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+91, 3695, 0, -3379.26, -2836.94, 11.7978, 5.93412, 0, 0, -0.173648, 0.984808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+92, 3695, 0, -3317.71, -910.537, -0.696205, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+93, 3695, 0, -3306.3, -2268.46, 51.8986, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+94, 3695, 0, -3281.41, -949.978, 8.04081, 3.38594, 0, 0, -0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+95, 3695, 0, -3230.66, -1140.5, 7.23959, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+96, 3695, 0, -3224.62, -1017.11, 7.60862, 3.89209, 0, 0, -0.930417, 0.366502, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+97, 3695, 0, -3202.35, -941.893, 8.75897, 6.05629, 0, 0, -0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+98, 3695, 0, -3101.07, -964.026, 7.33616, 1.25664, 0, 0, 0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+99, 3695, 0, -3048.5, -1346.18, 6.69699, 0.506145, 0, 0, 0.25038, 0.968148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+100, 3695, 0, -3046.7, -987.505, 7.71378, 6.16101, 0, 0, -0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+101, 3695, 0, -2963.52, -2007.95, 8.97602, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+102, 3695, 0, -2955.34, -1688.23, 9.62087, 3.73501, 0, 0, -0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+103, 3695, 0, -2950.06, -990.837, -0.709227, 0.471238, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+104, 3695, 0, -2924.49, -2978.86, 30.5468, 4.93928, 0, 0, -0.622514, 0.782609, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+105, 3695, 0, -2906.16, -1833.43, 9.443, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+106, 3695, 0, -2842.74, -1064.81, -0.555898, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+107, 3695, 0, -2780.25, -1124.63, -0.718564, 5.91667, 0, 0, -0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+108, 3695, 0, -2688.07, -1363.78, -0.405657, 0.837757, 0, 0, 0.406736, 0.913546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+109, 3695, 0, -2599.57, -2413.89, 80.3104, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+110, 3695, 0, -2581.69, -2344.12, 84.647, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+111, 3695, 0, -3378.97, -2892.24, 11.6373, 5.75959, 0, 0, -0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+112, 3695, 0, -2813.24, -2871.44, 32.7238, 4.67748, 0, 0, -0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+2, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+3, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+4, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+5, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+6, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+7, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+8, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+9, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+10, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+11, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+12, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+13, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+14, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+15, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+16, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+17, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+18, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+19, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+20, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+21, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+22, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+23, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+24, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+25, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+26, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+27, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+28, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+29, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+30, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+31, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+32, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+33, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+34, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+35, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+36, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+37, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+38, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+39, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+40, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+41, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+42, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+43, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+44, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+45, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+46, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+47, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+48, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+49, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+50, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+51, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+52, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+53, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+54, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+55, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@PTEMPLATE+56, 1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+32, @PTEMPLATE+32, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+33, @PTEMPLATE+33, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+34, @PTEMPLATE+34, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+35, @PTEMPLATE+35, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+36, @PTEMPLATE+36, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+37, @PTEMPLATE+37, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+38, @PTEMPLATE+38, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+39, @PTEMPLATE+39, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+40, @PTEMPLATE+40, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+41, @PTEMPLATE+41, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+42, @PTEMPLATE+42, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+43, @PTEMPLATE+43, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+44, @PTEMPLATE+44, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+45, @PTEMPLATE+45, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+46, @PTEMPLATE+46, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+47, @PTEMPLATE+47, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+48, @PTEMPLATE+48, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+49, @PTEMPLATE+49, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+50, @PTEMPLATE+50, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+51, @PTEMPLATE+51, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+52, @PTEMPLATE+52, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+53, @PTEMPLATE+53, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+54, @PTEMPLATE+54, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+55, @PTEMPLATE+55, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+56, @PTEMPLATE+56, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+57, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+58, @PTEMPLATE+2, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+59, @PTEMPLATE+3, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+60, @PTEMPLATE+4, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+61, @PTEMPLATE+5, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+62, @PTEMPLATE+6, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+63, @PTEMPLATE+7, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+64, @PTEMPLATE+8, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+65, @PTEMPLATE+9, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+66, @PTEMPLATE+10, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+67, @PTEMPLATE+11, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+68, @PTEMPLATE+12, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+69, @PTEMPLATE+13, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+70, @PTEMPLATE+14, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+71, @PTEMPLATE+15, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+72, @PTEMPLATE+16, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+73, @PTEMPLATE+17, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+74, @PTEMPLATE+18, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+75, @PTEMPLATE+19, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+76, @PTEMPLATE+20, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+77, @PTEMPLATE+21, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+78, @PTEMPLATE+22, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+79, @PTEMPLATE+23, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+80, @PTEMPLATE+24, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+81, @PTEMPLATE+25, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+82, @PTEMPLATE+26, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+83, @PTEMPLATE+27, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+84, @PTEMPLATE+28, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+85, @PTEMPLATE+29, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+86, @PTEMPLATE+30, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+87, @PTEMPLATE+31, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+88, @PTEMPLATE+32, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+89, @PTEMPLATE+33, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+90, @PTEMPLATE+34, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+91, @PTEMPLATE+35, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+92, @PTEMPLATE+36, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+93, @PTEMPLATE+37, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+94, @PTEMPLATE+38, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+95, @PTEMPLATE+39, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+96, @PTEMPLATE+40, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+97, @PTEMPLATE+41, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+98, @PTEMPLATE+42, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+99, @PTEMPLATE+43, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+100, @PTEMPLATE+44, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+101, @PTEMPLATE+45, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+102, @PTEMPLATE+46, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+103, @PTEMPLATE+47, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+104, @PTEMPLATE+48, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+105, @PTEMPLATE+49, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+106, @PTEMPLATE+50, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+107, @PTEMPLATE+51, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+108, @PTEMPLATE+52, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+109, @PTEMPLATE+53, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+110, @PTEMPLATE+54, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+111, @PTEMPLATE+55, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10), +(@OGUID+112, @PTEMPLATE+56, 'Barrel of Melon Juice / Food Crate - Wetlands', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+57, 26, 'Wetlands - Barrel of Melon Juice / Food Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+2, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+3, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+4, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+5, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+6, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+7, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+8, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+9, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+10, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+11, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+12, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+13, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+14, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+15, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+16, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+17, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+18, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+19, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+20, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+21, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+22, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+23, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+24, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+25, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+26, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+27, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+28, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+29, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+30, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+31, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+32, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+33, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+34, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+35, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+36, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+37, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+38, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+39, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+40, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+41, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+42, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+43, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+44, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+45, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+46, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+47, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+48, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+49, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+50, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+51, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+52, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+53, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+54, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+55, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0), +(@PTEMPLATE+56, @PTEMPLATE+57, 0, 'Barrel of Melon Juice / Food Crate - Wetlands', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 89f087b5e4b78be82b88122ddf6776ba9a2b576e Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 07:20:45 +0100 Subject: [PATCH 071/426] Water Barrel / Food Crate - Elwynn Forest (#2034) --- sql/migrations/20230704172809_world.sql | 258 ++++++++++++++++++++++++ 1 file changed, 258 insertions(+) create mode 100644 sql/migrations/20230704172809_world.sql diff --git a/sql/migrations/20230704172809_world.sql b/sql/migrations/20230704172809_world.sql new file mode 100644 index 00000000000..a1f58acc78b --- /dev/null +++ b/sql/migrations/20230704172809_world.sql @@ -0,0 +1,258 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230704172809'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230704172809'); +-- Add your query below. + + +SET @OGUID = 28844; +SET @PTEMPLATE = 3386; + +-- 12 Elwynn Forest 3658 / 3719 / Water Barrel / Food Crate +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (26782, 26851, 26862, 26877, 26888, 26898, 26962, 26983, 26994, 26998, 27052, 27084, 29275, 29276, 29578, 30677, 30685, 30687, 30748, 30751, 30758, 30839, 30846, 30971, 31104, 32313, 32752, 32754, 32825, 33491, 34031, 34822, 88014, 88015, 88016, 88017, 88018, 88019, 88020, 88021, 88022, 88023, 88024, 88025, 88026, 88027, 88028, 88029, 88030, 88031, 88032, 88033, 88034, 88035, 88036, 88037)); +DELETE FROM `gameobject` WHERE `guid` IN (26782, 26851, 26862, 26877, 26888, 26898, 26962, 26983, 26994, 26998, 27052, 27084, 29275, 29276, 29578, 30677, 30685, 30687, 30748, 30751, 30758, 30839, 30846, 30971, 31104, 32313, 32752, 32754, 32825, 33491, 34031, 34822, 88014, 88015, 88016, 88017, 88018, 88019, 88020, 88021, 88022, 88023, 88024, 88025, 88026, 88027, 88028, 88029, 88030, 88031, 88032, 88033, 88034, 88035, 88036, 88037); +DELETE FROM `pool_gameobject` WHERE `guid` IN (26782, 26851, 26862, 26877, 26888, 26898, 26962, 26983, 26994, 26998, 27052, 27084, 29275, 29276, 29578, 30677, 30685, 30687, 30748, 30751, 30758, 30839, 30846, 30971, 31104, 32313, 32752, 32754, 32825, 33491, 34031, 34822, 88014, 88015, 88016, 88017, 88018, 88019, 88020, 88021, 88022, 88023, 88024, 88025, 88026, 88027, 88028, 88029, 88030, 88031, 88032, 88033, 88034, 88035, 88036, 88037); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3658, 0, -10063.4, 622.68, 39.2654, -0.523599, 0, 0, 0.258819, -0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3658, 0, -10009.8, 38.8972, 35.1709, 2.26893, 0, 0, 0.906308, 0.422618, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3658, 0, -10004.2, 668.569, 35.7438, 1.48353, 0, 0, 0.67559, 0.737277, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3658, 0, -9947.94, 625.232, 37.2732, 1.0821, 0, 0, 0.515038, 0.857167, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3658, 0, -9940.45, -1108.79, 22.2839, 0.785398, 0, 0, 0.382683, 0.92388, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3658, 0, -9930.38, 582.718, 37.709, -0.436333, 0, 0, 0.21644, -0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3658, 0, -9909.52, 26.2754, 32.0256, 0.401426, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3658, 0, -9862.25, -230.512, 35.5091, -1.29154, 0, 0, 0.601815, -0.798635, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3658, 0, -9853.07, 366.57, 36.4383, -0.418879, 0, 0, 0.207912, -0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3658, 0, -9851.94, 173.276, 21.2732, -1.72788, 0, 0, 0.760406, -0.649448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3658, 0, -9809.68, 718.15, 33.1179, 1.02974, 0, 0, 0.492424, 0.870356, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3658, 0, -9789.66, -1399.88, 62.8007, 1.58825, 0, 0, 0.71325, 0.700909, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3658, 0, -9729.42, 656.299, 31.8338, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3658, 0, -9630.97, -53.8834, 44.6324, 1.64061, 0, 0, 0.731354, 0.681998, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3658, 0, -9605.92, 674.789, 38.6522, 1.50098, 0, 0, 0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3658, 0, -9572.89, -718.307, 64.7386, 3.07178, 0, 0, 0.999391, 0.034899, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3658, 0, -9555.29, -718.836, 99.0869, -2.84489, 0, 0, 0.989016, -0.147809, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3658, 0, -9538.32, -1406.06, 55.6784, 2.79253, 0, 0, 0.984808, 0.173648, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3658, 0, -9500.53, 81.368, 57.4601, 0.017453, 0, 0, 0.008727, 0.999962, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3658, 0, -9458.53, 8.58518, 56.9626, 2.98451, 0, 0, 0.996917, 0.078459, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3658, 0, -9439.13, 485.315, 53.1871, -1.90241, 0, 0, 0.814116, -0.580703, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3658, 0, -9379.27, -115.021, 58.7317, -0.139626, 0, 0, 0.069756, -0.997564, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3658, 0, -9316.71, 290.286, 70.5393, -0.959931, 0, 0, 0.461749, -0.887011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3658, 0, -9307.25, -291.366, 70.4318, 2.26893, 0, 0, 0.906308, 0.422618, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3658, 0, -9258.88, 355.379, 76.693, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3658, 0, -8981.32, -815.302, 70.3834, -1.50098, 0, 0, 0.681998, -0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3658, 0, -8900.41, -770.323, 69.5532, -2.42601, 0, 0, 0.936672, -0.350207, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3658, 0, -8823.07, -872.418, 74.7945, 2.98451, 0, 0, 0.996917, 0.078459, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3658, 0, -9977, 370.333, 35.638, 4.31097, 0, 0, -0.833885, 0.551938, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3658, 0, -9974.25, -138.968, 24.2588, 0.331611, 0, 0, 0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3658, 0, -9892.97, 323.535, 36.9396, 0.453785, 0, 0, 0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3658, 0, -9842.3, -1117.75, 28.0964, 4.4855, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3658, 0, -9541.03, -1218.72, 48.1501, 3.00195, 0, 0, 0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3658, 0, -9433.64, -1399.79, 46.6621, 0.157079, 0, 0, 0.0784588, 0.996917, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3658, 0, -9235.93, -709.886, 62.8566, 2.65289, 0, 0, 0.970295, 0.241925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3658, 0, -8959.95, -1192.86, 72.1396, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3658, 0, -8860.11, -826.68, 71.9097, 2.21657, 0, 0, 0.894934, 0.446199, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3719, 0, -10063.4, 622.68, 39.2654, -0.523599, 0, 0, 0.258819, -0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3719, 0, -10009.8, 38.8972, 35.1709, 2.26893, 0, 0, 0.906308, 0.422618, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3719, 0, -10004.2, 668.569, 35.7438, 1.48353, 0, 0, 0.67559, 0.737277, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3719, 0, -9947.94, 625.232, 37.2732, 1.0821, 0, 0, 0.515038, 0.857167, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3719, 0, -9940.45, -1108.79, 22.2839, 0.785398, 0, 0, 0.382683, 0.92388, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3719, 0, -9930.38, 582.718, 37.709, -0.436333, 0, 0, 0.21644, -0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3719, 0, -9909.52, 26.2754, 32.0256, 0.401426, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3719, 0, -9862.25, -230.512, 35.5091, -1.29154, 0, 0, 0.601815, -0.798635, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3719, 0, -9853.07, 366.57, 36.4383, -0.418879, 0, 0, 0.207912, -0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3719, 0, -9851.94, 173.276, 21.2732, -1.72788, 0, 0, 0.760406, -0.649448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3719, 0, -9809.68, 718.15, 33.1179, 1.02974, 0, 0, 0.492424, 0.870356, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3719, 0, -9789.66, -1399.88, 62.8007, 1.58825, 0, 0, 0.71325, 0.700909, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3719, 0, -9729.42, 656.299, 31.8338, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3719, 0, -9630.97, -53.8834, 44.6324, 1.64061, 0, 0, 0.731354, 0.681998, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3719, 0, -9605.92, 674.789, 38.6522, 1.50098, 0, 0, 0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3719, 0, -9572.89, -718.307, 64.7386, 3.07178, 0, 0, 0.999391, 0.034899, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3719, 0, -9555.29, -718.836, 99.0869, -2.84489, 0, 0, 0.989016, -0.147809, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 3719, 0, -9538.32, -1406.06, 55.6784, 2.79253, 0, 0, 0.984808, 0.173648, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 3719, 0, -9500.53, 81.368, 57.4601, 0.017453, 0, 0, 0.008727, 0.999962, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 3719, 0, -9458.53, 8.58518, 56.9626, 2.98451, 0, 0, 0.996917, 0.078459, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 3719, 0, -9439.13, 485.315, 53.1871, -1.90241, 0, 0, 0.814116, -0.580703, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 3719, 0, -9379.27, -115.021, 58.7317, -0.139626, 0, 0, 0.069756, -0.997564, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 3719, 0, -9316.71, 290.286, 70.5393, -0.959931, 0, 0, 0.461749, -0.887011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 3719, 0, -9307.25, -291.366, 70.4318, 2.26893, 0, 0, 0.906308, 0.422618, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 3719, 0, -9258.88, 355.379, 76.693, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 3719, 0, -8981.32, -815.302, 70.3834, -1.50098, 0, 0, 0.681998, -0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 3719, 0, -8900.41, -770.323, 69.5532, -2.42601, 0, 0, 0.936672, -0.350207, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 3719, 0, -8823.07, -872.418, 74.7945, 2.98451, 0, 0, 0.996917, 0.078459, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 3719, 0, -9977, 370.333, 35.638, 4.31097, 0, 0, -0.833885, 0.551938, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 3719, 0, -9974.25, -138.968, 24.2588, 0.331611, 0, 0, 0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 3719, 0, -9892.97, 323.535, 36.9396, 0.453785, 0, 0, 0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 3719, 0, -9842.3, -1117.75, 28.0964, 4.4855, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 3719, 0, -9541.03, -1218.72, 48.1501, 3.00195, 0, 0, 0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 3719, 0, -9433.64, -1399.79, 46.6621, 0.157079, 0, 0, 0.0784588, 0.996917, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 3719, 0, -9235.93, -709.886, 62.8566, 2.65289, 0, 0, 0.970295, 0.241925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+73, 3719, 0, -8959.95, -1192.86, 72.1396, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+74, 3719, 0, -8860.11, -826.68, 71.9097, 2.21657, 0, 0, 0.894934, 0.446199, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+2, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+3, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+4, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+5, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+6, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+7, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+8, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+9, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+10, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+11, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+12, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+13, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+14, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+15, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+16, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+17, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+18, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+19, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+20, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+21, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+22, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+23, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+24, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+25, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+26, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+27, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+28, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+29, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+30, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+31, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+32, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+33, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+34, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+35, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+36, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@PTEMPLATE+37, 1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+32, @PTEMPLATE+32, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+33, @PTEMPLATE+33, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+34, @PTEMPLATE+34, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+35, @PTEMPLATE+35, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+36, @PTEMPLATE+36, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+37, @PTEMPLATE+37, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+38, @PTEMPLATE+1, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+39, @PTEMPLATE+2, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+40, @PTEMPLATE+3, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+41, @PTEMPLATE+4, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+42, @PTEMPLATE+5, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+43, @PTEMPLATE+6, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+44, @PTEMPLATE+7, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+45, @PTEMPLATE+8, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+46, @PTEMPLATE+9, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+47, @PTEMPLATE+10, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+48, @PTEMPLATE+11, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+49, @PTEMPLATE+12, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+50, @PTEMPLATE+13, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+51, @PTEMPLATE+14, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+52, @PTEMPLATE+15, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+53, @PTEMPLATE+16, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+54, @PTEMPLATE+17, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+55, @PTEMPLATE+18, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+56, @PTEMPLATE+19, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+57, @PTEMPLATE+20, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+58, @PTEMPLATE+21, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+59, @PTEMPLATE+22, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+60, @PTEMPLATE+23, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+61, @PTEMPLATE+24, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+62, @PTEMPLATE+25, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+63, @PTEMPLATE+26, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+64, @PTEMPLATE+27, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+65, @PTEMPLATE+28, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+66, @PTEMPLATE+29, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+67, @PTEMPLATE+30, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+68, @PTEMPLATE+31, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+69, @PTEMPLATE+32, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+70, @PTEMPLATE+33, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+71, @PTEMPLATE+34, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+72, @PTEMPLATE+35, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+73, @PTEMPLATE+36, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10), +(@OGUID+74, @PTEMPLATE+37, 'Water Barrel / Food Crate - Elwynn Forest', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+38, 17, 'Elwynn Forest - Water Barrel / Food Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+2, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+3, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+4, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+5, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+6, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+7, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+8, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+9, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+10, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+11, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+12, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+13, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+14, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+15, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+16, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+17, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+18, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+19, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+20, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+21, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+22, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+23, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+24, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+25, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+26, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+27, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+28, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+29, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+30, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+31, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+32, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+33, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+34, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+35, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+36, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0), +(@PTEMPLATE+37, @PTEMPLATE+38, 0, 'Water Barrel / Food Crate - Elwynn Forest', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 6625d70bb0c9b82dcfee232e9facd3e0312e8295 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 07:20:58 +0100 Subject: [PATCH 072/426] Water Barrel / Food Crate - Durotar (#2035) --- sql/migrations/20230704172939_world.sql | 402 ++++++++++++++++++++++++ 1 file changed, 402 insertions(+) create mode 100644 sql/migrations/20230704172939_world.sql diff --git a/sql/migrations/20230704172939_world.sql b/sql/migrations/20230704172939_world.sql new file mode 100644 index 00000000000..1fe32f8be52 --- /dev/null +++ b/sql/migrations/20230704172939_world.sql @@ -0,0 +1,402 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230704172939'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230704172939'); +-- Add your query below. + + +SET @OGUID = 44008; +SET @PTEMPLATE = 3815; + +-- 14 Durotar 3658 / 3719 / Water Barrel / Food Crate +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (12346, 12350, 12351, 12391, 12392, 12393, 12394, 12395, 12397, 12498, 12501, 12502, 12505, 12549, 12550, 12551, 12553, 12602, 88050, 88051, 88052, 88053, 88054, 88055, 88056, 88057, 88058, 88059, 88060, 88061, 88062, 88063, 88064, 88065, 88066, 88067, 88068, 88069, 88070, 88071)); +DELETE FROM `gameobject` WHERE `guid` IN (12346, 12350, 12351, 12391, 12392, 12393, 12394, 12395, 12397, 12498, 12501, 12502, 12505, 12549, 12550, 12551, 12553, 12602, 88050, 88051, 88052, 88053, 88054, 88055, 88056, 88057, 88058, 88059, 88060, 88061, 88062, 88063, 88064, 88065, 88066, 88067, 88068, 88069, 88070, 88071); +DELETE FROM `pool_gameobject` WHERE `guid` IN (12346, 12350, 12351, 12391, 12392, 12393, 12394, 12395, 12397, 12498, 12501, 12502, 12505, 12549, 12550, 12551, 12553, 12602, 88050, 88051, 88052, 88053, 88054, 88055, 88056, 88057, 88058, 88059, 88060, 88061, 88062, 88063, 88064, 88065, 88066, 88067, 88068, 88069, 88070, 88071); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3658, 1, -1642.23, -5284.79, -0.033276, 0.523599, 0, 0, 0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3658, 1, -1336.29, -5200.97, -0.091026, -0.680679, 0, 0, 0.333807, -0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3658, 1, -1123.15, -5575.75, 7.39658, 0.226893, 0, 0, 0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3658, 1, -1045.77, -4608.98, 25.831, 0.034907, 0, 0, 0.017452, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3658, 1, -758.5, -5366.35, -0.032768, -2.05949, 0, 0, 0.857167, -0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3658, 1, -639.43, -5185.13, 0.112274, 2.60054, 0, 0, 0.96363, 0.267238, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3658, 1, -153.696, -5023.12, 21.9477, -0.10472, 0, 0, 0.052336, -0.99863, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3658, 1, 319.082, -4768.63, 11.9896, 1.72787, 0, 0, 0, 0, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3658, 1, 339.336, -4700.81, 16.4578, 1.91986, 0, 0, 0.819152, 0.573576, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3658, 1, 382.927, -4597.71, 54.7897, 0.610865, 0, 0, 0.300706, 0.953717, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3658, 1, 387.24, -4586.66, 76.1843, 0.680678, 0, 0, 0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3658, 1, 563.076, -4090.13, 15.6692, 1.16937, 0, 0, 0.551937, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3658, 1, 665.216, -4540.14, 8.83067, -1.78024, 0, 0, 0.777146, -0.62932, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3658, 1, 787.201, -4530.7, 5.7406, 1.78024, 0, 0, 0.777146, 0.62932, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3658, 1, 915.418, -4633.35, 18.9878, 1.41372, 0, 0, 0.649448, 0.760406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3658, 1, 933.269, -5104.26, -0.032131, 0.471239, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3658, 1, 946.095, -4704.73, 23.0614, 3.00197, 0, 0, 0.997564, 0.069757, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3658, 1, 992.105, -4407.13, 14.5778, -2.94961, 0, 0, 0.995396, -0.095846, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3658, 1, 1269, -4178.72, 26.0548, 1.39626, 0, 0, 0.642788, 0.766044, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3658, 1, -1550.4, -5221.86, -0.031495, 2.42601, 0, 0, 0.936672, 0.350207, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3658, 1, -1404.75, -5116.98, -0.015283, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3658, 1, -1295.43, -5368.52, -0.16403, 0.436332, 0, 0, 0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3658, 1, -1241.68, -5507.15, 5.7288, 1.27409, 0, 0, 0.594822, 0.803857, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3658, 1, -1004.27, -5600.04, -0.21399, 5.98648, 0, 0, -0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3658, 1, -970.388, -4401.15, 29.2641, 3.73501, 0, 0, -0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3658, 1, -968.305, -5199.9, 0.064211, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3658, 1, -805.108, -5698.99, 0.052685, 5.68977, 0, 0, -0.292372, 0.956305, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3658, 1, -641.353, -5689.82, -0.171481, 5.2709, 0, 0, -0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3658, 1, -515.953, -5243.47, 0.036085, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3658, 1, -366.615, -5211.02, -0.034382, 1.53589, 0, 0, 0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3658, 1, -236.963, -5121.01, 25.2436, 2.16421, 0, 0, 0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3658, 1, -174.109, -4986.14, 22.5386, 6.14356, 0, 0, -0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3658, 1, 74.5528, -4218.84, 60.8336, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3658, 1, 269.646, -4701.72, 11.6288, 1.39626, 0, 0, 0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3658, 1, 289.618, -4771.3, 11.769, 5.77704, 0, 0, -0.25038, 0.968148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3658, 1, 290.396, -4706.11, 12.8422, 4.5204, 0, 0, -0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3658, 1, 292.627, -4828.49, 10.5234, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3658, 1, 298.88, -4663.11, 16.7712, 4.41568, 0, 0, -0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3658, 1, 319.151, -4667.86, 16.0833, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3658, 1, 321.553, -4768.17, 11.6718, 3.38594, 0, 0, -0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3658, 1, 325.073, -3795.73, 26.4866, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3658, 1, 331.565, -4831.89, 10.5238, 6.21337, 0, 0, -0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3658, 1, 333.578, -4705.01, 14.4859, 1.91986, 0, 0, 0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3658, 1, 565.234, -4092.94, 15.7267, 1.16937, 0, 0, 0.551936, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3658, 1, 570.299, -5131.24, 0.080435, 2.79252, 0, 0, 0.984807, 0.173652, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3658, 1, 627.12, -4443.5, 11.6634, 3.61284, 0, 0, -0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3658, 1, 737.128, -4604.47, -3.30816, 5.55015, 0, 0, -0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3658, 1, 758.13, -4565.89, 1.62941, 3.42085, 0, 0, -0.990268, 0.139175, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3658, 1, 771.55, -4460.79, 15.6685, 2.30383, 0, 0, 0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3658, 1, 859.703, -4170.78, -14.1103, 4.50295, 0, 0, -0.777145, 0.629321, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3658, 1, 993.55, -4672.15, 26.9618, 5.86431, 0, 0, -0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3658, 1, 1001.38, -3919.05, 18.7792, 3.99681, 0, 0, -0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3658, 1, 1080.22, -5111.17, -0.058121, 4.08407, 0, 0, -0.891006, 0.453991, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3658, 1, 1102.29, -4951.8, 15.6024, 3.82227, 0, 0, -0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 3658, 1, 1143.52, -4695.76, 17.7529, 0.226892, 0, 0, 0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 3658, 1, 1266.49, -5030.35, -0.039411, 0.802851, 0, 0, 0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 3658, 1, 1466.76, -4926.21, -0.066952, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 3658, 1, -1166.98, -5145.53, -0.077441, 5.48033, 0, 0, -0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 3658, 1, -912.076, -4474.18, 29.7029, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 3658, 1, 390.932, -5124.09, -0.05675, 2.65289, 0, 0, 0.970295, 0.241925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 3658, 1, 758.85, -4251.66, 18.3729, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 3719, 1, -1642.23, -5284.79, -0.033276, 0.523599, 0, 0, 0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 3719, 1, -1336.29, -5200.97, -0.091026, -0.680679, 0, 0, 0.333807, -0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 3719, 1, -1123.15, -5575.75, 7.39658, 0.226893, 0, 0, 0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 3719, 1, -1045.77, -4608.98, 25.831, 0.034907, 0, 0, 0.017452, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 3719, 1, -758.5, -5366.35, -0.032768, -2.05949, 0, 0, 0.857167, -0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 3719, 1, -639.43, -5185.13, 0.112274, 2.60054, 0, 0, 0.96363, 0.267238, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 3719, 1, -153.696, -5023.12, 21.9477, -0.10472, 0, 0, 0.052336, -0.99863, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 3719, 1, 319.082, -4768.63, 11.9896, 1.72787, 0, 0, 0, 0, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 3719, 1, 339.336, -4700.81, 16.4578, 1.91986, 0, 0, 0.819152, 0.573576, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 3719, 1, 382.927, -4597.71, 54.7897, 0.610865, 0, 0, 0.300706, 0.953717, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 3719, 1, 387.24, -4586.66, 76.1843, 0.680678, 0, 0, 0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+73, 3719, 1, 563.076, -4090.13, 15.6692, 1.16937, 0, 0, 0.551937, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+74, 3719, 1, 665.216, -4540.14, 8.83067, -1.78024, 0, 0, 0.777146, -0.62932, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+75, 3719, 1, 787.201, -4530.7, 5.7406, 1.78024, 0, 0, 0.777146, 0.62932, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+76, 3719, 1, 915.418, -4633.35, 18.9878, 1.41372, 0, 0, 0.649448, 0.760406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+77, 3719, 1, 933.269, -5104.26, -0.032131, 0.471239, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+78, 3719, 1, 946.095, -4704.73, 23.0614, 3.00197, 0, 0, 0.997564, 0.069757, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+79, 3719, 1, 992.105, -4407.13, 14.5778, -2.94961, 0, 0, 0.995396, -0.095846, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+80, 3719, 1, 1269, -4178.72, 26.0548, 1.39626, 0, 0, 0.642788, 0.766044, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+81, 3719, 1, -1550.4, -5221.86, -0.031495, 2.42601, 0, 0, 0.936672, 0.350207, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+82, 3719, 1, -1404.75, -5116.98, -0.015283, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+83, 3719, 1, -1295.43, -5368.52, -0.16403, 0.436332, 0, 0, 0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+84, 3719, 1, -1241.68, -5507.15, 5.7288, 1.27409, 0, 0, 0.594822, 0.803857, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+85, 3719, 1, -1004.27, -5600.04, -0.21399, 5.98648, 0, 0, -0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+86, 3719, 1, -970.388, -4401.15, 29.2641, 3.73501, 0, 0, -0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+87, 3719, 1, -968.305, -5199.9, 0.064211, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+88, 3719, 1, -805.108, -5698.99, 0.052685, 5.68977, 0, 0, -0.292372, 0.956305, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+89, 3719, 1, -641.353, -5689.82, -0.171481, 5.2709, 0, 0, -0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+90, 3719, 1, -515.953, -5243.47, 0.036085, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+91, 3719, 1, -366.615, -5211.02, -0.034382, 1.53589, 0, 0, 0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+92, 3719, 1, -236.963, -5121.01, 25.2436, 2.16421, 0, 0, 0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+93, 3719, 1, -174.109, -4986.14, 22.5386, 6.14356, 0, 0, -0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+94, 3719, 1, 74.5528, -4218.84, 60.8336, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+95, 3719, 1, 269.646, -4701.72, 11.6288, 1.39626, 0, 0, 0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+96, 3719, 1, 289.618, -4771.3, 11.769, 5.77704, 0, 0, -0.25038, 0.968148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+97, 3719, 1, 290.396, -4706.11, 12.8422, 4.5204, 0, 0, -0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+98, 3719, 1, 292.627, -4828.49, 10.5234, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+99, 3719, 1, 298.88, -4663.11, 16.7712, 4.41568, 0, 0, -0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+100, 3719, 1, 319.151, -4667.86, 16.0833, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+101, 3719, 1, 321.553, -4768.17, 11.6718, 3.38594, 0, 0, -0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+102, 3719, 1, 325.073, -3795.73, 26.4866, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+103, 3719, 1, 331.565, -4831.89, 10.5238, 6.21337, 0, 0, -0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+104, 3719, 1, 333.578, -4705.01, 14.4859, 1.91986, 0, 0, 0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+105, 3719, 1, 565.234, -4092.94, 15.7267, 1.16937, 0, 0, 0.551936, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+106, 3719, 1, 570.299, -5131.24, 0.080435, 2.79252, 0, 0, 0.984807, 0.173652, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+107, 3719, 1, 627.12, -4443.5, 11.6634, 3.61284, 0, 0, -0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+108, 3719, 1, 737.128, -4604.47, -3.30816, 5.55015, 0, 0, -0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+109, 3719, 1, 758.13, -4565.89, 1.62941, 3.42085, 0, 0, -0.990268, 0.139175, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+110, 3719, 1, 771.55, -4460.79, 15.6685, 2.30383, 0, 0, 0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+111, 3719, 1, 859.703, -4170.78, -14.1103, 4.50295, 0, 0, -0.777145, 0.629321, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+112, 3719, 1, 993.55, -4672.15, 26.9618, 5.86431, 0, 0, -0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+113, 3719, 1, 1001.38, -3919.05, 18.7792, 3.99681, 0, 0, -0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+114, 3719, 1, 1080.22, -5111.17, -0.058121, 4.08407, 0, 0, -0.891006, 0.453991, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+115, 3719, 1, 1102.29, -4951.8, 15.6024, 3.82227, 0, 0, -0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+116, 3719, 1, 1143.52, -4695.76, 17.7529, 0.226892, 0, 0, 0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+117, 3719, 1, 1266.49, -5030.35, -0.039411, 0.802851, 0, 0, 0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+118, 3719, 1, 1466.76, -4926.21, -0.066952, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+119, 3719, 1, -1166.98, -5145.53, -0.077441, 5.48033, 0, 0, -0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+120, 3719, 1, -912.076, -4474.18, 29.7029, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+121, 3719, 1, 390.932, -5124.09, -0.05675, 2.65289, 0, 0, 0.970295, 0.241925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+122, 3719, 1, 758.85, -4251.66, 18.3729, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+2, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+3, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+4, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+5, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+6, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+7, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+8, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+9, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+10, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+11, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+12, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+13, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+14, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+15, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+16, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+17, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+18, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+19, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+20, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+21, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+22, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+23, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+24, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+25, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+26, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+27, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+28, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+29, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+30, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+31, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+32, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+33, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+34, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+35, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+36, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+37, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+38, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+39, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+40, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+41, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+42, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+43, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+44, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+45, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+46, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+47, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+48, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+49, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+50, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+51, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+52, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+53, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+54, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+55, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+56, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+57, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+58, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+59, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+60, 1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@PTEMPLATE+61, 1, 'Water Barrel / Food Crate - Durotar', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+32, @PTEMPLATE+32, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+33, @PTEMPLATE+33, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+34, @PTEMPLATE+34, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+35, @PTEMPLATE+35, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+36, @PTEMPLATE+36, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+37, @PTEMPLATE+37, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+38, @PTEMPLATE+38, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+39, @PTEMPLATE+39, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+40, @PTEMPLATE+40, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+41, @PTEMPLATE+41, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+42, @PTEMPLATE+42, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+43, @PTEMPLATE+43, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+44, @PTEMPLATE+44, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+45, @PTEMPLATE+45, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+46, @PTEMPLATE+46, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+47, @PTEMPLATE+47, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+48, @PTEMPLATE+48, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+49, @PTEMPLATE+49, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+50, @PTEMPLATE+50, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+51, @PTEMPLATE+51, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+52, @PTEMPLATE+52, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+53, @PTEMPLATE+53, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+54, @PTEMPLATE+54, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+55, @PTEMPLATE+55, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+56, @PTEMPLATE+56, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+57, @PTEMPLATE+57, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+58, @PTEMPLATE+58, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+59, @PTEMPLATE+59, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+60, @PTEMPLATE+60, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+61, @PTEMPLATE+61, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+62, @PTEMPLATE+1, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+63, @PTEMPLATE+2, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+64, @PTEMPLATE+3, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+65, @PTEMPLATE+4, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+66, @PTEMPLATE+5, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+67, @PTEMPLATE+6, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+68, @PTEMPLATE+7, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+69, @PTEMPLATE+8, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+70, @PTEMPLATE+9, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+71, @PTEMPLATE+10, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+72, @PTEMPLATE+11, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+73, @PTEMPLATE+12, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+74, @PTEMPLATE+13, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+75, @PTEMPLATE+14, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+76, @PTEMPLATE+15, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+77, @PTEMPLATE+16, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+78, @PTEMPLATE+17, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+79, @PTEMPLATE+18, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+80, @PTEMPLATE+19, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+81, @PTEMPLATE+20, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+82, @PTEMPLATE+21, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+83, @PTEMPLATE+22, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+84, @PTEMPLATE+23, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+85, @PTEMPLATE+24, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+86, @PTEMPLATE+25, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+87, @PTEMPLATE+26, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+88, @PTEMPLATE+27, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+89, @PTEMPLATE+28, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+90, @PTEMPLATE+29, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+91, @PTEMPLATE+30, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+92, @PTEMPLATE+31, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+93, @PTEMPLATE+32, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+94, @PTEMPLATE+33, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+95, @PTEMPLATE+34, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+96, @PTEMPLATE+35, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+97, @PTEMPLATE+36, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+98, @PTEMPLATE+37, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+99, @PTEMPLATE+38, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+100, @PTEMPLATE+39, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+101, @PTEMPLATE+40, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+102, @PTEMPLATE+41, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+103, @PTEMPLATE+42, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+104, @PTEMPLATE+43, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+105, @PTEMPLATE+44, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+106, @PTEMPLATE+45, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+107, @PTEMPLATE+46, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+108, @PTEMPLATE+47, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+109, @PTEMPLATE+48, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+110, @PTEMPLATE+49, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+111, @PTEMPLATE+50, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+112, @PTEMPLATE+51, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+113, @PTEMPLATE+52, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+114, @PTEMPLATE+53, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+115, @PTEMPLATE+54, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+116, @PTEMPLATE+55, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+117, @PTEMPLATE+56, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+118, @PTEMPLATE+57, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+119, @PTEMPLATE+58, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+120, @PTEMPLATE+59, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+121, @PTEMPLATE+60, 'Water Barrel / Food Crate - Durotar', 0, 10), +(@OGUID+122, @PTEMPLATE+61, 'Water Barrel / Food Crate - Durotar', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+62, 28, 'Durotar - Water Barrel / Food Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+2, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+3, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+4, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+5, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+6, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+7, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+8, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+9, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+10, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+11, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+12, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+13, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+14, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+15, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+16, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+17, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+18, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+19, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+20, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+21, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+22, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+23, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+24, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+25, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+26, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+27, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+28, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+29, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+30, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+31, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+32, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+33, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+34, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+35, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+36, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+37, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+38, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+39, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+40, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+41, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+42, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+43, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+44, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+45, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+46, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+47, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+48, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+49, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+50, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+51, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+52, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+53, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+54, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+55, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+56, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+57, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+58, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+59, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+60, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0), +(@PTEMPLATE+61, @PTEMPLATE+62, 0, 'Water Barrel / Food Crate - Durotar', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 9fe0b0ad0c34b8891bf3cf995476ac1be84308fd Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 07:21:10 +0100 Subject: [PATCH 073/426] Food Crate / Barrel of Milk - Barrens (#2036) --- sql/migrations/20230704173112_world.sql | 473 ++++++++++++++++++++++++ 1 file changed, 473 insertions(+) create mode 100644 sql/migrations/20230704173112_world.sql diff --git a/sql/migrations/20230704173112_world.sql b/sql/migrations/20230704173112_world.sql new file mode 100644 index 00000000000..64a667b6a38 --- /dev/null +++ b/sql/migrations/20230704173112_world.sql @@ -0,0 +1,473 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230704173112'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230704173112'); +-- Add your query below. + + +SET @OGUID = 46838; +SET @PTEMPLATE = 4122; + +-- 17 Barrens 3705 / 3662 Food Crate / Barrel of Milk +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (13314, 13315, 13317, 13318, 13319, 13320, 13321, 13322, 13323, 13324, 13498, 13499, 13500, 13501, 13502, 13503, 13504, 13505, 13506, 13507, 13508, 13509, 13510, 42434)); +DELETE FROM `gameobject` WHERE `guid` IN (13314, 13315, 13317, 13318, 13319, 13320, 13321, 13322, 13323, 13324, 13498, 13499, 13500, 13501, 13502, 13503, 13504, 13505, 13506, 13507, 13508, 13509, 13510, 42434); +DELETE FROM `pool_gameobject` WHERE `guid` IN (13314, 13315, 13317, 13318, 13319, 13320, 13321, 13322, 13323, 13324, 13498, 13499, 13500, 13501, 13502, 13503, 13504, 13505, 13506, 13507, 13508, 13509, 13510, 42434); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3662, 1, -4087.37, -2362.9, 108.909, 5.99774, 0, 0, 0.142237, -0.989833, 180, 180, 0, 1, 0, 0, 0, 10), +(@OGUID+2, 3662, 1, -2379.59, -2008.88, 104.932, 0.942478, 0, 0, 0.45399, 0.891007, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3662, 1, -2319.36, -2239.31, 91.6668, -1.46608, 0, 0, 0.669131, -0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3662, 1, -2100.22, -1721.59, 91.862, 1.93731, 0, 0, 0.824126, 0.566406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3662, 1, -2099.96, -3635.59, 72.0328, 0.663225, 0, 0, 0.325568, 0.945519, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3662, 1, -1926.58, -1760.03, 92.2422, -1.39626, 0, 0, 0.642788, -0.766044, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3662, 1, -1500.99, -3655.18, 92.3257, -2.02458, 0, 0, 0.848048, -0.529919, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3662, 1, -1153.94, -2799.71, 92.0468, -2.19912, 0, 0, 0.891007, -0.45399, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3662, 1, -1028, -3653.23, 22.7998, -0.174533, 0, 0, 0.087156, -0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3662, 1, -854.131, -2756.05, 91.6667, -2.72271, 0, 0, 0.978148, -0.207912, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3662, 1, -632.53, -3259.49, 98.9583, 1.48353, 0, 0, 0.67559, 0.737277, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3662, 1, -592.604, -2269.13, 211.345, 2.51327, 0, 0, 0.951057, 0.309017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3662, 1, -559.372, -2675.07, 96.1342, 2.98451, 0, 0, 0.996917, 0.078459, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3662, 1, -433.125, -2562.22, 97.0162, 0.034907, 0, 0, 0.017452, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3662, 1, -421.76, -2668.49, 95.9021, -1.67552, 0, 0, 0.743145, -0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3662, 1, -93.8536, -2032.68, 91.6667, 1.15192, 0, 0, 0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3662, 1, -52.6214, -3408.97, 91.6756, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3662, 1, -8.96408, -3581.63, 27.6868, -0.174533, 0, 0, 0.087156, -0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3662, 1, 267.824, -1938, 91.7747, -2.26893, 0, 0, 0.906308, -0.422618, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3662, 1, 280.97, -3044.65, 95.8988, -1.43117, 0, 0, 0.656059, -0.75471, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3662, 1, 304.412, -2201.58, 213.531, -1.37881, 0, 0, 0.636078, -0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3662, 1, 796.585, -1806.48, 91.6667, 1.51844, 0, 0, 0.688355, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3662, 1, 893.934, -2337.83, 91.6819, 0.488692, 0, 0, 0.241922, 0.970296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3662, 1, 1212.8, -2923.98, 91.6667, -1.39626, 0, 0, 0.642788, -0.766044, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3662, 1, -2398.4, -1902.35, 96.7421, 1.44862, 0, 0, 0.66262, 0.748956, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3662, 1, -2308.04, -1921.46, 96.054, 5.77704, 0, 0, -0.25038, 0.968148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3662, 1, -2250.77, -2378.82, 91.6667, 2.58308, 0, 0, 0.961261, 0.27564, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3662, 1, -2202.83, -3674.46, 92.6469, 0.558504, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3662, 1, -2083.3, -2560, 91.6667, 2.25147, 0, 0, 0.902585, 0.430512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3662, 1, -2050.93, -3709.55, 21.76, 5.51524, 0, 0, -0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3662, 1, -1868.54, -1919.41, 95.8218, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3662, 1, -1778.43, -2373.48, 91.6805, 2.28638, 0, 0, 0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3662, 1, -1703.04, -3618.65, 91.6183, 4.55531, 0, 0, -0.760406, 0.649449, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3662, 1, -1586.95, -3676.65, 92.0282, 3.99681, 0, 0, -0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3662, 1, -1559.75, -2879.16, 91.7626, 6.0912, 0, 0, -0.0958452, 0.995396, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3662, 1, -1433.23, -1502.28, 94.4547, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3662, 1, -1348.67, -3101.59, 91.6667, 2.37364, 0, 0, 0.927183, 0.374608, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3662, 1, -1000.51, -1607.58, 91.6893, 3.194, 0, 0, -0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3662, 1, -990.31, -3630.36, 19.2121, 5.88176, 0, 0, -0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3662, 1, -969.161, -2023.22, 83.2662, 3.73501, 0, 0, -0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3662, 1, -760.656, -3722.24, 42.3295, 1.18682, 0, 0, 0.559193, 0.829038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3662, 1, -631.272, -3187.12, 92.4601, 2.28638, 0, 0, 0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3662, 1, -564.232, -2971.11, 91.7302, 4.31097, 0, 0, -0.833885, 0.551938, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3662, 1, -514.018, -2638.07, 95.906, 4.32842, 0, 0, -0.829037, 0.559194, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3662, 1, -441.453, -2693.34, 95.8103, 0.785397, 0, 0, 0.382683, 0.92388, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3662, 1, -410.122, -2619.54, 95.7346, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3662, 1, -406.046, -2719.08, 97.3079, 1.50098, 0, 0, 0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3662, 1, -402.188, -1368.43, 94.1801, 1.39626, 0, 0, 0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3662, 1, -401.265, -2669.53, 95.6651, 4.72984, 0, 0, -0.700909, 0.713251, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3662, 1, -388.343, -2540, 99.665, 0.733038, 0, 0, 0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3662, 1, -381.143, -2631.65, 95.6601, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3662, 1, -368.118, -2527.41, 95.8255, 3.64774, 0, 0, -0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3662, 1, -352.642, -2574.17, 95.8596, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3662, 1, -305.976, -1958.97, 90.5368, 2.42601, 0, 0, 0.936672, 0.350207, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 3662, 1, -243.686, -1657.45, 91.8565, 0.488691, 0, 0, 0.241921, 0.970296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 3662, 1, -231.364, -3309.16, 91.6667, 2.91469, 0, 0, 0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 3662, 1, -104.579, -3178.88, 92.9682, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 3662, 1, -54.1091, -1417.72, 91.8804, 1.15192, 0, 0, 0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 3662, 1, -33.6399, -2217.06, 91.6667, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 3662, 1, 28.3732, -1741.48, 105.533, 3.03684, 0, 0, 0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 3662, 1, 32.1527, -2679.62, 106.975, 5.88176, 0, 0, -0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 3662, 1, 239.135, -2907.64, 98.0577, 5.44543, 0, 0, -0.406736, 0.913546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 3662, 1, 296.142, -3657.13, 27.3071, 2.25147, 0, 0, 0.902585, 0.430512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 3662, 1, 538.788, -1606.36, 91.9143, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 3662, 1, 578.248, -2215.55, 91.6667, 2.32129, 0, 0, 0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 3662, 1, 789.091, -1325.27, 89.3905, 6.24828, 0, 0, -0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 3662, 1, 888.969, -3683.73, 26.8595, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 3662, 1, 911.14, -2736.14, 99.8214, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 3662, 1, 1014.08, -2230.34, 93.1673, 0.733038, 0, 0, 0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 3662, 1, 1022.89, -3066.16, 91.7332, 5.2709, 0, 0, -0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 3662, 1, 1243.1, -2208.07, 113.436, 5.84685, 0, 0, -0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 3662, 1, 316.125, -2265.66, 243.059, 4.29351, 0, 0, -0.83867, 0.54464, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+73, 3705, 1, -4087.37, -2362.9, 108.909, 5.99774, 0, 0, 0.142237, -0.989833, 180, 180, 0, 1, 0, 0, 0, 10), +(@OGUID+74, 3705, 1, -2379.59, -2008.88, 104.932, 0.942478, 0, 0, 0.45399, 0.891007, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+75, 3705, 1, -2319.36, -2239.31, 91.6668, -1.46608, 0, 0, 0.669131, -0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+76, 3705, 1, -2100.22, -1721.59, 91.862, 1.93731, 0, 0, 0.824126, 0.566406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+77, 3705, 1, -2099.96, -3635.59, 72.0328, 0.663225, 0, 0, 0.325568, 0.945519, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+78, 3705, 1, -1926.58, -1760.03, 92.2422, -1.39626, 0, 0, 0.642788, -0.766044, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+79, 3705, 1, -1500.99, -3655.18, 92.3257, -2.02458, 0, 0, 0.848048, -0.529919, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+80, 3705, 1, -1153.94, -2799.71, 92.0468, -2.19912, 0, 0, 0.891007, -0.45399, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+81, 3705, 1, -1028, -3653.23, 22.7998, -0.174533, 0, 0, 0.087156, -0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+82, 3705, 1, -854.131, -2756.05, 91.6667, -2.72271, 0, 0, 0.978148, -0.207912, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+83, 3705, 1, -632.53, -3259.49, 98.9583, 1.48353, 0, 0, 0.67559, 0.737277, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+84, 3705, 1, -592.604, -2269.13, 211.345, 2.51327, 0, 0, 0.951057, 0.309017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+85, 3705, 1, -559.372, -2675.07, 96.1342, 2.98451, 0, 0, 0.996917, 0.078459, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+86, 3705, 1, -433.125, -2562.22, 97.0162, 0.034907, 0, 0, 0.017452, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+87, 3705, 1, -421.76, -2668.49, 95.9021, -1.67552, 0, 0, 0.743145, -0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+88, 3705, 1, -93.8536, -2032.68, 91.6667, 1.15192, 0, 0, 0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+89, 3705, 1, -52.6214, -3408.97, 91.6756, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+90, 3705, 1, -8.96408, -3581.63, 27.6868, -0.174533, 0, 0, 0.087156, -0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+91, 3705, 1, 267.824, -1938, 91.7747, -2.26893, 0, 0, 0.906308, -0.422618, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+92, 3705, 1, 280.97, -3044.65, 95.8988, -1.43117, 0, 0, 0.656059, -0.75471, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+93, 3705, 1, 304.412, -2201.58, 213.531, -1.37881, 0, 0, 0.636078, -0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+94, 3705, 1, 796.585, -1806.48, 91.6667, 1.51844, 0, 0, 0.688355, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+95, 3705, 1, 893.934, -2337.83, 91.6819, 0.488692, 0, 0, 0.241922, 0.970296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+96, 3705, 1, 1212.8, -2923.98, 91.6667, -1.39626, 0, 0, 0.642788, -0.766044, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+97, 3705, 1, -2398.4, -1902.35, 96.7421, 1.44862, 0, 0, 0.66262, 0.748956, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+98, 3705, 1, -2308.04, -1921.46, 96.054, 5.77704, 0, 0, -0.25038, 0.968148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+99, 3705, 1, -2250.77, -2378.82, 91.6667, 2.58308, 0, 0, 0.961261, 0.27564, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+100, 3705, 1, -2202.83, -3674.46, 92.6469, 0.558504, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+101, 3705, 1, -2083.3, -2560, 91.6667, 2.25147, 0, 0, 0.902585, 0.430512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+102, 3705, 1, -2050.93, -3709.55, 21.76, 5.51524, 0, 0, -0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+103, 3705, 1, -1868.54, -1919.41, 95.8218, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+104, 3705, 1, -1778.43, -2373.48, 91.6805, 2.28638, 0, 0, 0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+105, 3705, 1, -1703.04, -3618.65, 91.6183, 4.55531, 0, 0, -0.760406, 0.649449, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+106, 3705, 1, -1586.95, -3676.65, 92.0282, 3.99681, 0, 0, -0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+107, 3705, 1, -1559.75, -2879.16, 91.7626, 6.0912, 0, 0, -0.0958452, 0.995396, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+108, 3705, 1, -1433.23, -1502.28, 94.4547, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+109, 3705, 1, -1348.67, -3101.59, 91.6667, 2.37364, 0, 0, 0.927183, 0.374608, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+110, 3705, 1, -1000.51, -1607.58, 91.6893, 3.194, 0, 0, -0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+111, 3705, 1, -990.31, -3630.36, 19.2121, 5.88176, 0, 0, -0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+112, 3705, 1, -969.161, -2023.22, 83.2662, 3.73501, 0, 0, -0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+113, 3705, 1, -760.656, -3722.24, 42.3295, 1.18682, 0, 0, 0.559193, 0.829038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+114, 3705, 1, -631.272, -3187.12, 92.4601, 2.28638, 0, 0, 0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+115, 3705, 1, -564.232, -2971.11, 91.7302, 4.31097, 0, 0, -0.833885, 0.551938, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+116, 3705, 1, -514.018, -2638.07, 95.906, 4.32842, 0, 0, -0.829037, 0.559194, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+117, 3705, 1, -441.453, -2693.34, 95.8103, 0.785397, 0, 0, 0.382683, 0.92388, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+118, 3705, 1, -410.122, -2619.54, 95.7346, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+119, 3705, 1, -406.046, -2719.08, 97.3079, 1.50098, 0, 0, 0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+120, 3705, 1, -402.188, -1368.43, 94.1801, 1.39626, 0, 0, 0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+121, 3705, 1, -401.265, -2669.53, 95.6651, 4.72984, 0, 0, -0.700909, 0.713251, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+122, 3705, 1, -388.343, -2540, 99.665, 0.733038, 0, 0, 0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+123, 3705, 1, -381.143, -2631.65, 95.6601, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+124, 3705, 1, -368.118, -2527.41, 95.8255, 3.64774, 0, 0, -0.968147, 0.250381, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+125, 3705, 1, -352.642, -2574.17, 95.8596, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+126, 3705, 1, -305.976, -1958.97, 90.5368, 2.42601, 0, 0, 0.936672, 0.350207, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+127, 3705, 1, -243.686, -1657.45, 91.8565, 0.488691, 0, 0, 0.241921, 0.970296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+128, 3705, 1, -231.364, -3309.16, 91.6667, 2.91469, 0, 0, 0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+129, 3705, 1, -104.579, -3178.88, 92.9682, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+130, 3705, 1, -54.1091, -1417.72, 91.8804, 1.15192, 0, 0, 0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+131, 3705, 1, -33.6399, -2217.06, 91.6667, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+132, 3705, 1, 28.3732, -1741.48, 105.533, 3.03684, 0, 0, 0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+133, 3705, 1, 32.1527, -2679.62, 106.975, 5.88176, 0, 0, -0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+134, 3705, 1, 239.135, -2907.64, 98.0577, 5.44543, 0, 0, -0.406736, 0.913546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+135, 3705, 1, 296.142, -3657.13, 27.3071, 2.25147, 0, 0, 0.902585, 0.430512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+136, 3705, 1, 538.788, -1606.36, 91.9143, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+137, 3705, 1, 578.248, -2215.55, 91.6667, 2.32129, 0, 0, 0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+138, 3705, 1, 789.091, -1325.27, 89.3905, 6.24828, 0, 0, -0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+139, 3705, 1, 888.969, -3683.73, 26.8595, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+140, 3705, 1, 911.14, -2736.14, 99.8214, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+141, 3705, 1, 1014.08, -2230.34, 93.1673, 0.733038, 0, 0, 0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+142, 3705, 1, 1022.89, -3066.16, 91.7332, 5.2709, 0, 0, -0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+143, 3705, 1, 1243.1, -2208.07, 113.436, 5.84685, 0, 0, -0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+144, 3705, 1, 316.125, -2265.66, 243.059, 4.29351, 0, 0, -0.83867, 0.54464, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+2, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+3, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+4, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+5, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+6, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+7, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+8, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+9, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+10, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+11, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+12, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+13, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+14, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+15, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+16, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+17, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+18, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+19, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+20, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+21, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+22, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+23, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+24, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+25, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+26, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+27, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+28, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+29, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+30, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+31, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+32, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+33, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+34, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+35, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+36, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+37, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+38, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+39, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+40, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+41, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+42, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+43, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+44, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+45, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+46, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+47, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+48, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+49, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+50, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+51, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+52, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+53, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+54, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+55, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+56, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+57, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+58, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+59, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+60, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+61, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+62, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+63, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+64, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+65, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+66, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+67, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+68, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+69, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+70, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+71, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@PTEMPLATE+72, 1, 'Food Crate / Barrel of Milk - Barrens', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+32, @PTEMPLATE+32, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+33, @PTEMPLATE+33, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+34, @PTEMPLATE+34, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+35, @PTEMPLATE+35, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+36, @PTEMPLATE+36, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+37, @PTEMPLATE+37, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+38, @PTEMPLATE+38, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+39, @PTEMPLATE+39, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+40, @PTEMPLATE+40, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+41, @PTEMPLATE+41, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+42, @PTEMPLATE+42, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+43, @PTEMPLATE+43, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+44, @PTEMPLATE+44, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+45, @PTEMPLATE+45, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+46, @PTEMPLATE+46, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+47, @PTEMPLATE+47, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+48, @PTEMPLATE+48, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+49, @PTEMPLATE+49, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+50, @PTEMPLATE+50, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+51, @PTEMPLATE+51, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+52, @PTEMPLATE+52, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+53, @PTEMPLATE+53, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+54, @PTEMPLATE+54, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+55, @PTEMPLATE+55, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+56, @PTEMPLATE+56, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+57, @PTEMPLATE+57, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+58, @PTEMPLATE+58, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+59, @PTEMPLATE+59, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+60, @PTEMPLATE+60, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+61, @PTEMPLATE+61, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+62, @PTEMPLATE+62, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+63, @PTEMPLATE+63, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+64, @PTEMPLATE+64, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+65, @PTEMPLATE+65, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+66, @PTEMPLATE+66, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+67, @PTEMPLATE+67, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+68, @PTEMPLATE+68, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+69, @PTEMPLATE+69, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+70, @PTEMPLATE+70, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+71, @PTEMPLATE+71, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+72, @PTEMPLATE+72, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+73, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+74, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+75, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+76, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+77, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+78, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+79, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+80, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+81, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+82, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+83, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+84, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+85, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+86, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+87, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+88, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+89, @PTEMPLATE+17, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+90, @PTEMPLATE+18, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+91, @PTEMPLATE+19, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+92, @PTEMPLATE+20, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+93, @PTEMPLATE+21, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+94, @PTEMPLATE+22, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+95, @PTEMPLATE+23, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+96, @PTEMPLATE+24, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+97, @PTEMPLATE+25, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+98, @PTEMPLATE+26, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+99, @PTEMPLATE+27, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+100, @PTEMPLATE+28, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+101, @PTEMPLATE+29, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+102, @PTEMPLATE+30, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+103, @PTEMPLATE+31, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+104, @PTEMPLATE+32, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+105, @PTEMPLATE+33, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+106, @PTEMPLATE+34, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+107, @PTEMPLATE+35, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+108, @PTEMPLATE+36, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+109, @PTEMPLATE+37, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+110, @PTEMPLATE+38, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+111, @PTEMPLATE+39, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+112, @PTEMPLATE+40, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+113, @PTEMPLATE+41, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+114, @PTEMPLATE+42, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+115, @PTEMPLATE+43, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+116, @PTEMPLATE+44, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+117, @PTEMPLATE+45, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+118, @PTEMPLATE+46, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+119, @PTEMPLATE+47, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+120, @PTEMPLATE+48, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+121, @PTEMPLATE+49, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+122, @PTEMPLATE+50, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+123, @PTEMPLATE+51, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+124, @PTEMPLATE+52, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+125, @PTEMPLATE+53, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+126, @PTEMPLATE+54, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+127, @PTEMPLATE+55, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+128, @PTEMPLATE+56, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+129, @PTEMPLATE+57, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+130, @PTEMPLATE+58, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+131, @PTEMPLATE+59, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+132, @PTEMPLATE+60, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+133, @PTEMPLATE+61, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+134, @PTEMPLATE+62, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+135, @PTEMPLATE+63, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+136, @PTEMPLATE+64, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+137, @PTEMPLATE+65, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+138, @PTEMPLATE+66, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+139, @PTEMPLATE+67, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+140, @PTEMPLATE+68, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+141, @PTEMPLATE+69, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+142, @PTEMPLATE+70, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+143, @PTEMPLATE+71, 'Food Crate / Barrel of Milk - Barrens', 0, 10), +(@OGUID+144, @PTEMPLATE+72, 'Food Crate / Barrel of Milk - Barrens', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+73, 34, 'Barrens - Food Crate / Barrel of Milk (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+2, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+3, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+4, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+5, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+6, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+7, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+8, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+9, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+10, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+11, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+12, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+13, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+14, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+15, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+16, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+17, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+18, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+19, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+20, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+21, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+22, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+23, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+24, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+25, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+26, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+27, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+28, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+29, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+30, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+31, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+32, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+33, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+34, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+35, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+36, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+37, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+38, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+39, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+40, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+41, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+42, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+43, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+44, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+45, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+46, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+47, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+48, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+49, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+50, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+51, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+52, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+53, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+54, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+55, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+56, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+57, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+58, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+59, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+60, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+61, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+62, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+63, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+64, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+65, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+66, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+67, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+68, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+69, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+70, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+71, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0), +(@PTEMPLATE+72, @PTEMPLATE+73, 0, 'Food Crate / Barrel of Milk - Barrens', 0); + +DELETE FROM `gameobject` WHERE `guid` IN (46839, 46911); +DELETE FROM `pool_gameobject` WHERE `guid` IN (46839, 46911); +DELETE FROM `pool_pool` WHERE `pool_id` = 4123; +DELETE FROM `pool_template` WHERE `entry` = 4123; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 5aefe1059b310fcf42a9d5e12d11a5ecd6a6cca9 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 08:46:48 +0100 Subject: [PATCH 074/426] Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale (#2037) --- sql/migrations/20230704191823_world.sql | 326 ++++++++++++++++++++++++ 1 file changed, 326 insertions(+) create mode 100644 sql/migrations/20230704191823_world.sql diff --git a/sql/migrations/20230704191823_world.sql b/sql/migrations/20230704191823_world.sql new file mode 100644 index 00000000000..e1cffac9423 --- /dev/null +++ b/sql/migrations/20230704191823_world.sql @@ -0,0 +1,326 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230704191823'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230704191823'); +-- Add your query below. + + +SET @OGUID = 51105; +SET @PTEMPLATE = 4385; + +-- 33 Stranglethorn Vale 3706 / 3707 / Barrel of Sweet Nectar / Food Crate +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (11025, 11150, 11151, 11664, 11675, 11690, 11692, 11694, 11702, 11967, 11973, 12050, 12191, 16547, 29539)); +DELETE FROM `gameobject` WHERE `guid` IN (11025, 11150, 11151, 11664, 11675, 11690, 11692, 11694, 11702, 11967, 11973, 12050, 12191, 16547, 29539); +DELETE FROM `pool_gameobject` WHERE `guid` IN (11025, 11150, 11151, 11664, 11675, 11690, 11692, 11694, 11702, 11967, 11973, 12050, 12191, 16547, 29539); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3706, 0, -14616.6, 337.532, 2.62036, 1.74533, 0, 0, 0.766044, 0.642788, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3706, 0, -14281.3, 28.1391, -0.400903, 1.97222, 0, 0, 0.833886, 0.551937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3706, 0, -13657.1, 539.281, -0.583414, 0.174533, 0, 0, 0.087156, 0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3706, 0, -13221.2, 516.347, -0.161627, 0.820305, 0, 0, 0.398749, 0.91706, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3706, 0, -13007.9, -737.713, 56.0383, -2.93215, 0, 0, 0.994522, -0.104529, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3706, 0, -12733.5, 199.879, -0.906217, 2.68781, 0, 0, 0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3706, 0, -12705.2, -1021.45, 95.0958, 2.21657, 0, 0, 0.894934, 0.446198, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3706, 0, -12459.2, -987.089, 49.3111, -2.46091, 0, 0, 0.942641, -0.333807, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3706, 0, -12429.3, 158.839, 2.75041, -0.680679, 0, 0, 0.333807, -0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3706, 0, -12033.4, -548.406, 14.4671, -3.01942, 0, 0, 0.998135, -0.061048, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3706, 0, -12011.6, 513.743, -0.071974, 1.74533, 0, 0, 0.766044, 0.642788, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3706, 0, -11695.2, 1033.12, -0.366853, -1.71042, 0, 0, 0.75471, -0.656059, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3706, 0, -11639.6, -63.453, 10.8995, 1.309, 0, 0, 0.608761, 0.793353, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3706, 0, -11558.6, 575.308, 50.7439, 1.67552, 0, 0, 0.743145, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3706, 0, -11501.2, -612.834, 36.314, -0.733038, 0, 0, 0.358368, -0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3706, 0, -14703.6, 505.39, 2.4662, 1.32645, 0, 0, 0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3706, 0, -14469.6, 458.798, 15.1626, 4.15388, 0, 0, -0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3706, 0, -14437.4, 471.083, 3.95125, 6.17847, 0, 0, -0.0523357, 0.99863, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3706, 0, -14286, 531.689, 8.92882, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3706, 0, -14131.3, 478.44, 1.63034, 4.69494, 0, 0, -0.71325, 0.70091, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3706, 0, -13633.4, -428.278, -0.331431, 2.09439, 0, 0, 0.866025, 0.500001, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3706, 0, -13457.8, 769.28, 0.186856, 5.35816, 0, 0, -0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3706, 0, -13351.9, -26.9956, 22.5492, 3.63029, 0, 0, -0.970295, 0.241925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3706, 0, -12966.5, 478.285, -0.661181, 0.802851, 0, 0, 0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3706, 0, -12932.9, -626.72, 53.2888, 1.41372, 0, 0, 0.649447, 0.760406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3706, 0, -12786.7, 494.441, -0.51737, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3706, 0, -12699.9, -35.4898, -0.492677, 4.50295, 0, 0, -0.777145, 0.629321, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3706, 0, -12535.3, -744.923, 39.7258, 5.48033, 0, 0, -0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3706, 0, -12528.8, 14.8733, -0.408921, 1.02974, 0, 0, 0.492423, 0.870356, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3706, 0, -12430.2, -831.858, 40.6406, 2.70526, 0, 0, 0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3706, 0, -12365.4, 145.615, 14.6451, 4.60767, 0, 0, -0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3706, 0, -12343.4, 209.075, 5.33371, 4.34587, 0, 0, -0.824126, 0.566406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3706, 0, -12325.9, 299.938, -0.375021, 4.7473, 0, 0, -0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3706, 0, -12188.4, 341.415, -0.30212, 4.34587, 0, 0, -0.824126, 0.566406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3706, 0, -12029.3, -995.559, 49.8936, 3.07177, 0, 0, 0.999391, 0.0349061, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3706, 0, -11977, 331.047, 3.36048, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3706, 0, -11947.8, 733.472, -0.39083, 2.47837, 0, 0, 0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3706, 0, -11945.3, -488.747, 30.1132, 3.50812, 0, 0, -0.983254, 0.182238, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3706, 0, -11936.1, -584.706, 16.8704, 5.21854, 0, 0, -0.507538, 0.861629, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3706, 0, -11852.5, 874.314, -0.255712, 4.55531, 0, 0, -0.760406, 0.649449, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3706, 0, -11703.9, 631.469, 50.4131, 1.09956, 0, 0, 0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3706, 0, -11677.3, 564.691, 50.607, 0.122173, 0, 0, 0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3706, 0, -11564.6, -582.781, 33.6824, 2.86234, 0, 0, 0.990268, 0.139175, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3706, 0, -11299.4, -187.694, 75.5987, 5.75959, 0, 0, -0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3706, 0, -14599.8, 153.503, -0.287752, 2.18166, 0, 0, 0.887011, 0.461749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3706, 0, -13948.5, -153.979, -0.387914, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3706, 0, -12818.6, -748.996, 77.3723, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3706, 0, -11653.2, -671.2, 30.3123, 1.25664, 0, 0, 0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3707, 0, -14616.6, 337.532, 2.62036, 1.74533, 0, 0, 0.766044, 0.642788, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3707, 0, -14281.3, 28.1391, -0.400903, 1.97222, 0, 0, 0.833886, 0.551937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3707, 0, -13657.1, 539.281, -0.583414, 0.174533, 0, 0, 0.087156, 0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3707, 0, -13221.2, 516.347, -0.161627, 0.820305, 0, 0, 0.398749, 0.91706, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3707, 0, -13007.9, -737.713, 56.0383, -2.93215, 0, 0, 0.994522, -0.104529, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3707, 0, -12733.5, 199.879, -0.906217, 2.68781, 0, 0, 0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 3707, 0, -12705.2, -1021.45, 95.0958, 2.21657, 0, 0, 0.894934, 0.446198, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 3707, 0, -12459.2, -987.089, 49.3111, -2.46091, 0, 0, 0.942641, -0.333807, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 3707, 0, -12429.3, 158.839, 2.75041, -0.680679, 0, 0, 0.333807, -0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 3707, 0, -12033.4, -548.406, 14.4671, -3.01942, 0, 0, 0.998135, -0.061048, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 3707, 0, -12011.6, 513.743, -0.071974, 1.74533, 0, 0, 0.766044, 0.642788, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 3707, 0, -11695.2, 1033.12, -0.366853, -1.71042, 0, 0, 0.75471, -0.656059, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 3707, 0, -11639.6, -63.453, 10.8995, 1.309, 0, 0, 0.608761, 0.793353, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 3707, 0, -11558.6, 575.308, 50.7439, 1.67552, 0, 0, 0.743145, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 3707, 0, -11501.2, -612.834, 36.314, -0.733038, 0, 0, 0.358368, -0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 3707, 0, -14703.6, 505.39, 2.4662, 1.32645, 0, 0, 0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 3707, 0, -14469.6, 458.798, 15.1626, 4.15388, 0, 0, -0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 3707, 0, -14437.4, 471.083, 3.95125, 6.17847, 0, 0, -0.0523357, 0.99863, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 3707, 0, -14286, 531.689, 8.92882, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 3707, 0, -14131.3, 478.44, 1.63034, 4.69494, 0, 0, -0.71325, 0.70091, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 3707, 0, -13633.4, -428.278, -0.331431, 2.09439, 0, 0, 0.866025, 0.500001, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 3707, 0, -13457.8, 769.28, 0.186856, 5.35816, 0, 0, -0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 3707, 0, -13351.9, -26.9956, 22.5492, 3.63029, 0, 0, -0.970295, 0.241925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 3707, 0, -12966.5, 478.285, -0.661181, 0.802851, 0, 0, 0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+73, 3707, 0, -12932.9, -626.72, 53.2888, 1.41372, 0, 0, 0.649447, 0.760406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+74, 3707, 0, -12786.7, 494.441, -0.51737, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+75, 3707, 0, -12699.9, -35.4898, -0.492677, 4.50295, 0, 0, -0.777145, 0.629321, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+76, 3707, 0, -12535.3, -744.923, 39.7258, 5.48033, 0, 0, -0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+77, 3707, 0, -12528.8, 14.8733, -0.408921, 1.02974, 0, 0, 0.492423, 0.870356, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+78, 3707, 0, -12430.2, -831.858, 40.6406, 2.70526, 0, 0, 0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+79, 3707, 0, -12365.4, 145.615, 14.6451, 4.60767, 0, 0, -0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+80, 3707, 0, -12343.4, 209.075, 5.33371, 4.34587, 0, 0, -0.824126, 0.566406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+81, 3707, 0, -12325.9, 299.938, -0.375021, 4.7473, 0, 0, -0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+82, 3707, 0, -12188.4, 341.415, -0.30212, 4.34587, 0, 0, -0.824126, 0.566406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+83, 3707, 0, -12029.3, -995.559, 49.8936, 3.07177, 0, 0, 0.999391, 0.0349061, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+84, 3707, 0, -11977, 331.047, 3.36048, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+85, 3707, 0, -11947.8, 733.472, -0.39083, 2.47837, 0, 0, 0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+86, 3707, 0, -11945.3, -488.747, 30.1132, 3.50812, 0, 0, -0.983254, 0.182238, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+87, 3707, 0, -11936.1, -584.706, 16.8704, 5.21854, 0, 0, -0.507538, 0.861629, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+88, 3707, 0, -11852.5, 874.314, -0.255712, 4.55531, 0, 0, -0.760406, 0.649449, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+89, 3707, 0, -11703.9, 631.469, 50.4131, 1.09956, 0, 0, 0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+90, 3707, 0, -11677.3, 564.691, 50.607, 0.122173, 0, 0, 0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+91, 3707, 0, -11564.6, -582.781, 33.6824, 2.86234, 0, 0, 0.990268, 0.139175, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+92, 3707, 0, -11299.4, -187.694, 75.5987, 5.75959, 0, 0, -0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+93, 3707, 0, -14599.8, 153.503, -0.287752, 2.18166, 0, 0, 0.887011, 0.461749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+94, 3707, 0, -13948.5, -153.979, -0.387914, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+95, 3707, 0, -12818.6, -748.996, 77.3723, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+96, 3707, 0, -11653.2, -671.2, 30.3123, 1.25664, 0, 0, 0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+2, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+3, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+4, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+5, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+6, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+7, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+8, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+9, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+10, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+11, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+12, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+13, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+14, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+15, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+16, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+17, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+18, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+19, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+20, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+21, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+22, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+23, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+24, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+25, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+26, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+27, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+28, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+29, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+30, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+31, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+32, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+33, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+34, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+35, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+36, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+37, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+38, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+39, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+40, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+41, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+42, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+43, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+44, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+45, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+46, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+47, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@PTEMPLATE+48, 1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10); + + + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+32, @PTEMPLATE+32, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+33, @PTEMPLATE+33, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+34, @PTEMPLATE+34, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+35, @PTEMPLATE+35, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+36, @PTEMPLATE+36, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+37, @PTEMPLATE+37, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+38, @PTEMPLATE+38, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+39, @PTEMPLATE+39, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+40, @PTEMPLATE+40, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+41, @PTEMPLATE+41, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+42, @PTEMPLATE+42, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+43, @PTEMPLATE+43, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+44, @PTEMPLATE+44, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+45, @PTEMPLATE+45, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+46, @PTEMPLATE+46, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+47, @PTEMPLATE+47, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+48, @PTEMPLATE+48, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+49, @PTEMPLATE+1, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+50, @PTEMPLATE+2, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+51, @PTEMPLATE+3, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+52, @PTEMPLATE+4, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+53, @PTEMPLATE+5, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+54, @PTEMPLATE+6, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+55, @PTEMPLATE+7, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+56, @PTEMPLATE+8, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+57, @PTEMPLATE+9, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+58, @PTEMPLATE+10, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+59, @PTEMPLATE+11, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+60, @PTEMPLATE+12, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+61, @PTEMPLATE+13, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+62, @PTEMPLATE+14, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+63, @PTEMPLATE+15, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+64, @PTEMPLATE+16, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+65, @PTEMPLATE+17, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+66, @PTEMPLATE+18, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+67, @PTEMPLATE+19, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+68, @PTEMPLATE+20, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+69, @PTEMPLATE+21, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+70, @PTEMPLATE+22, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+71, @PTEMPLATE+23, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+72, @PTEMPLATE+24, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+73, @PTEMPLATE+25, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+74, @PTEMPLATE+26, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+75, @PTEMPLATE+27, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+76, @PTEMPLATE+28, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+77, @PTEMPLATE+29, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+78, @PTEMPLATE+30, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+79, @PTEMPLATE+31, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+80, @PTEMPLATE+32, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+81, @PTEMPLATE+33, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+82, @PTEMPLATE+34, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+83, @PTEMPLATE+35, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+84, @PTEMPLATE+36, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+85, @PTEMPLATE+37, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+86, @PTEMPLATE+38, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+87, @PTEMPLATE+39, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+88, @PTEMPLATE+40, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+89, @PTEMPLATE+41, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+90, @PTEMPLATE+42, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+91, @PTEMPLATE+43, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+92, @PTEMPLATE+44, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+93, @PTEMPLATE+45, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+94, @PTEMPLATE+46, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+95, @PTEMPLATE+47, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10), +(@OGUID+96, @PTEMPLATE+48, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+49, 22, 'Stranglethorn Vale - Barrel of Sweet Nectar / Food Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+2, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+3, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+4, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+5, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+6, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+7, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+8, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+9, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+10, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+11, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+12, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+13, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+14, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+15, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+16, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+17, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+18, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+19, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+20, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+21, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+22, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+23, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+24, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+25, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+26, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+27, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+28, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+29, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+30, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+31, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+32, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+33, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+34, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+35, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+36, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+37, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+38, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+39, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+40, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+41, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+42, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+43, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+44, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+45, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+46, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+47, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0), +(@PTEMPLATE+48, @PTEMPLATE+49, 0, 'Barrel of Sweet Nectar / Food Crate - Stranglethorn Vale', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 826e5cc11da1149a59699cddfb16c7eacce9a0dc Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 08:46:58 +0100 Subject: [PATCH 075/426] Barrel of Melon Juice / Food Crate - Alterac Mountains (#2038) --- sql/migrations/20230704203038_world.sql | 304 ++++++++++++++++++++++++ 1 file changed, 304 insertions(+) create mode 100644 sql/migrations/20230704203038_world.sql diff --git a/sql/migrations/20230704203038_world.sql b/sql/migrations/20230704203038_world.sql new file mode 100644 index 00000000000..4282aafe5a8 --- /dev/null +++ b/sql/migrations/20230704203038_world.sql @@ -0,0 +1,304 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230704203038'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230704203038'); +-- Add your query below. + + +SET @OGUID = 19109; +SET @PTEMPLATE = 2974; + +-- 36 Alterac Mountains 3659 / 3695 / Barrel of Melon Juice / Food Crate +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (31337, 32116, 32118, 32176, 32186, 32192, 32205, 32212, 32280, 33142, 33167, 33194)); +DELETE FROM `gameobject` WHERE `guid` IN (31337, 32116, 32118, 32176, 32186, 32192, 32205, 32212, 32280, 33142, 33167, 33194); +DELETE FROM `pool_gameobject` WHERE `guid` IN (31337, 32116, 32118, 32176, 32186, 32192, 32205, 32212, 32280, 33142, 33167, 33194); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3659, 0, -100.047, 242.911, 55.215, -2.40855, 0, 0, 0.93358, -0.358368, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3659, 0, 177.03, 217.541, 41.3711, -1.64061, 0, 0, 0.731354, -0.681998, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3659, 0, 375.083, 148.578, 43.1998, -1.50098, 0, 0, 0.681998, -0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3659, 0, -104.625, 212.555, 53.2755, 4.41568, 0, 0, -0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3659, 0, -46.0892, -553.574, 151.201, 2.19911, 0, 0, 0.891006, 0.453991, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3659, 0, -45.2862, 279.218, 66.0425, 2.93214, 0, 0, 0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3659, 0, -38.9078, 260.841, 52.5001, 1.85005, 0, 0, 0.798635, 0.601815, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3659, 0, 23.9243, 460.491, 43.341, 1.69297, 0, 0, 0.748956, 0.66262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3659, 0, 40.4733, 385.092, 43.038, 3.24635, 0, 0, -0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3659, 0, 105.517, 252.718, 43.3436, 2.25147, 0, 0, 0.902585, 0.430512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3659, 0, 224.48, -845.526, 146.664, 2.44346, 0, 0, 0.939692, 0.34202, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3659, 0, 311.113, 188.194, 42.8525, 1.02974, 0, 0, 0.492423, 0.870356, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3659, 0, 410.113, -964.287, 110.628, 5.98648, 0, 0, -0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3659, 0, 433.688, 299.946, 41.9656, 4.83456, 0, 0, -0.66262, 0.748956, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3659, 0, 504.21, 203.678, 43.1053, 1.95477, 0, 0, 0.829038, 0.559193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3695, 0, -100.047, 242.911, 55.215, -2.40855, 0, 0, 0.93358, -0.358368, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3695, 0, 177.03, 217.541, 41.3711, -1.64061, 0, 0, 0.731354, -0.681998, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3695, 0, 375.083, 148.578, 43.1998, -1.50098, 0, 0, 0.681998, -0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3695, 0, -104.625, 212.555, 53.2755, 4.41568, 0, 0, -0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3695, 0, -46.0892, -553.574, 151.201, 2.19911, 0, 0, 0.891006, 0.453991, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3695, 0, -45.2862, 279.218, 66.0425, 2.93214, 0, 0, 0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3695, 0, -38.9078, 260.841, 52.5001, 1.85005, 0, 0, 0.798635, 0.601815, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3695, 0, 23.9243, 460.491, 43.341, 1.69297, 0, 0, 0.748956, 0.66262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3695, 0, 40.4733, 385.092, 43.038, 3.24635, 0, 0, -0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3695, 0, 105.517, 252.718, 43.3436, 2.25147, 0, 0, 0.902585, 0.430512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3695, 0, 224.48, -845.526, 146.664, 2.44346, 0, 0, 0.939692, 0.34202, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3695, 0, 311.113, 188.194, 42.8525, 1.02974, 0, 0, 0.492423, 0.870356, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3695, 0, 410.113, -964.287, 110.628, 5.98648, 0, 0, -0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3695, 0, 433.688, 299.946, 41.9656, 4.83456, 0, 0, -0.66262, 0.748956, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3695, 0, 504.21, 203.678, 43.1053, 1.95477, 0, 0, 0.829038, 0.559193, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+2, 1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+3, 1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+4, 1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+5, 1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+6, 1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+7, 1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+8, 1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+9, 1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+10, 1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+11, 1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+12, 1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+13, 1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+14, 1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+15, 1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+16, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+17, @PTEMPLATE+2, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+18, @PTEMPLATE+3, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+19, @PTEMPLATE+4, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+20, @PTEMPLATE+5, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+21, @PTEMPLATE+6, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+22, @PTEMPLATE+7, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+23, @PTEMPLATE+8, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+24, @PTEMPLATE+9, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+25, @PTEMPLATE+10, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+26, @PTEMPLATE+11, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+27, @PTEMPLATE+12, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+28, @PTEMPLATE+13, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+29, @PTEMPLATE+14, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+30, @PTEMPLATE+15, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+16, 6, 'Alterac Mountains - Barrel of Melon Juice / Food Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+16, 0, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+2, @PTEMPLATE+16, 0, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+3, @PTEMPLATE+16, 0, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+4, @PTEMPLATE+16, 0, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+5, @PTEMPLATE+16, 0, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+6, @PTEMPLATE+16, 0, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+7, @PTEMPLATE+16, 0, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+8, @PTEMPLATE+16, 0, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+9, @PTEMPLATE+16, 0, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+10, @PTEMPLATE+16, 0, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+11, @PTEMPLATE+16, 0, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+12, @PTEMPLATE+16, 0, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+13, @PTEMPLATE+16, 0, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+14, @PTEMPLATE+16, 0, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+15, @PTEMPLATE+16, 0, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0); + + +SET @OGUID = 30277; +SET @PTEMPLATE = 4708; + +-- 36 Alterac Mountains 3706 / 3707 / Barrel of Sweet Nectar / Food Crate + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3706, 0, 443.563, -607.169, 167.443, -1.51844, 0, 0, 0.688354, -0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3706, 0, 575.566, -286.316, 150.669, 0.383972, 0, 0, 0.190809, 0.981627, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3706, 0, 672.087, -579.128, 162.059, -0.471239, 0, 0, 0.233445, -0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3706, 0, 699.577, -988.074, 164.991, 1.29154, 0, 0, 0.601815, 0.798636, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3706, 0, 726.603, -972.032, 164.298, -0.645772, 0, 0, 0.317305, -0.948324, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3706, 0, 770.268, -307.623, 136.1, -1.309, 0, 0, 0.608761, -0.793353, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3706, 0, 1183.19, -558.203, 71.2063, -1.6057, 0, 0, 0.71934, -0.694658, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3706, 0, 1205.95, -310.428, 42.7005, -2.14675, 0, 0, 0.878817, -0.477159, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3706, 0, 412.854, -298.625, 168.274, 1.78023, 0, 0, 0.777145, 0.629321, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3706, 0, 443.963, -589.741, 171.182, 1.95477, 0, 0, 0.829038, 0.559193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3706, 0, 546.724, -331.519, 152.835, 5.68977, 0, 0, -0.292372, 0.956305, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3706, 0, 579.138, -211.082, 143.895, 1.90241, 0, 0, 0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3706, 0, 635.729, -524.046, 180.789, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3706, 0, 647.799, -822.471, 159.049, 0.296705, 0, 0, 0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3706, 0, 648.538, -372.44, 154.294, 2.09439, 0, 0, 0.866025, 0.500001, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3706, 0, 651.973, -984.087, 165.662, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3706, 0, 678.052, -314.746, 146.405, 4.64258, 0, 0, -0.731354, 0.681998, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3706, 0, 679.273, -995.049, 165.589, 2.32129, 0, 0, 0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3706, 0, 687.687, -903.146, 157.78, 3.57793, 0, 0, -0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3706, 0, 696.921, -943.725, 164.377, 0.296705, 0, 0, 0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3706, 0, 774.814, -395.302, 139.625, 1.0472, 0, 0, 0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3706, 0, 855.196, -576.092, 143.233, 2.82743, 0, 0, 0.987688, 0.156436, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3706, 0, 945.596, -834.833, 114.67, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3706, 0, 1003.99, -777.19, 108.506, 2.72271, 0, 0, 0.978148, 0.207912, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3706, 0, 1101.16, -355.433, 42.7522, 0.226892, 0, 0, 0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3706, 0, 1106.01, -725.844, 71.6351, 1.0821, 0, 0, 0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3706, 0, 1213.13, -252.366, 34.4831, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3707, 0, 443.563, -607.169, 167.443, -1.51844, 0, 0, 0.688354, -0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3707, 0, 575.566, -286.316, 150.669, 0.383972, 0, 0, 0.190809, 0.981627, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3707, 0, 672.087, -579.128, 162.059, -0.471239, 0, 0, 0.233445, -0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3707, 0, 699.577, -988.074, 164.991, 1.29154, 0, 0, 0.601815, 0.798636, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3707, 0, 726.603, -972.032, 164.298, -0.645772, 0, 0, 0.317305, -0.948324, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3707, 0, 770.268, -307.623, 136.1, -1.309, 0, 0, 0.608761, -0.793353, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3707, 0, 1183.19, -558.203, 71.2063, -1.6057, 0, 0, 0.71934, -0.694658, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3707, 0, 1205.95, -310.428, 42.7005, -2.14675, 0, 0, 0.878817, -0.477159, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3707, 0, 412.854, -298.625, 168.274, 1.78023, 0, 0, 0.777145, 0.629321, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3707, 0, 443.963, -589.741, 171.182, 1.95477, 0, 0, 0.829038, 0.559193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3707, 0, 546.724, -331.519, 152.835, 5.68977, 0, 0, -0.292372, 0.956305, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3707, 0, 579.138, -211.082, 143.895, 1.90241, 0, 0, 0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3707, 0, 635.729, -524.046, 180.789, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3707, 0, 647.799, -822.471, 159.049, 0.296705, 0, 0, 0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3707, 0, 648.538, -372.44, 154.294, 2.09439, 0, 0, 0.866025, 0.500001, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3707, 0, 651.973, -984.087, 165.662, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3707, 0, 678.052, -314.746, 146.405, 4.64258, 0, 0, -0.731354, 0.681998, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3707, 0, 679.273, -995.049, 165.589, 2.32129, 0, 0, 0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3707, 0, 687.687, -903.146, 157.78, 3.57793, 0, 0, -0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3707, 0, 696.921, -943.725, 164.377, 0.296705, 0, 0, 0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3707, 0, 774.814, -395.302, 139.625, 1.0472, 0, 0, 0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3707, 0, 855.196, -576.092, 143.233, 2.82743, 0, 0, 0.987688, 0.156436, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3707, 0, 945.596, -834.833, 114.67, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3707, 0, 1003.99, -777.19, 108.506, 2.72271, 0, 0, 0.978148, 0.207912, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3707, 0, 1101.16, -355.433, 42.7522, 0.226892, 0, 0, 0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3707, 0, 1106.01, -725.844, 71.6351, 1.0821, 0, 0, 0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3707, 0, 1213.13, -252.366, 34.4831, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+2, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+3, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+4, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+5, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+6, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+7, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+8, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+9, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+10, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+11, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+12, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+13, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+14, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+15, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+16, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+17, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+18, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+19, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+20, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+21, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+22, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+23, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+24, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+25, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+26, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@PTEMPLATE+27, 1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+28, @PTEMPLATE+1, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+29, @PTEMPLATE+2, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+30, @PTEMPLATE+3, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+31, @PTEMPLATE+4, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+32, @PTEMPLATE+5, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+33, @PTEMPLATE+6, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+34, @PTEMPLATE+7, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+35, @PTEMPLATE+8, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+36, @PTEMPLATE+9, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+37, @PTEMPLATE+10, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+38, @PTEMPLATE+11, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+39, @PTEMPLATE+12, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+40, @PTEMPLATE+13, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+41, @PTEMPLATE+14, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+42, @PTEMPLATE+15, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+43, @PTEMPLATE+16, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+44, @PTEMPLATE+17, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+45, @PTEMPLATE+18, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+46, @PTEMPLATE+19, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+47, @PTEMPLATE+20, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+48, @PTEMPLATE+21, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+49, @PTEMPLATE+22, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+50, @PTEMPLATE+23, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+51, @PTEMPLATE+24, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+52, @PTEMPLATE+25, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+53, @PTEMPLATE+26, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+54, @PTEMPLATE+27, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+28, 11, 'Alterac Mountains - Barrel of Sweet Nectar / Food Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+2, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+3, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+4, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+5, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+6, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+7, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+8, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+9, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+10, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+11, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+12, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+13, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+14, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+15, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+16, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+17, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+18, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+19, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+20, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+21, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+22, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+23, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+24, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+25, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+26, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0), +(@PTEMPLATE+27, @PTEMPLATE+28, 0, 'Barrel of Sweet Nectar / Food Crate - Alterac Mountains', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 9be7f5e7629d3a7ef3a49bd0d7b5f425553abf07 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 08:47:08 +0100 Subject: [PATCH 076/426] Food Crate / Barrel of Milk - Loch Modan (#2044) --- sql/migrations/20230706165659_world.sql | 212 ++++++++++++++++++++++++ 1 file changed, 212 insertions(+) create mode 100644 sql/migrations/20230706165659_world.sql diff --git a/sql/migrations/20230706165659_world.sql b/sql/migrations/20230706165659_world.sql new file mode 100644 index 00000000000..ac910d14fc3 --- /dev/null +++ b/sql/migrations/20230706165659_world.sql @@ -0,0 +1,212 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230706165659'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230706165659'); +-- Add your query below. + + +SET @OGUID = 33633; +SET @PTEMPLATE = 7080; + +-- 38 Loch Modan / 3662 / 3705 / Food Crate / Barrel of Milk +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (13008, 12920, 12919, 12918, 12862, 12845, 12826, 12801, 12795, 12794)); +DELETE FROM `gameobject` WHERE `guid` IN (13008, 12920, 12919, 12918, 12862, 12845, 12826, 12801, 12795, 12794); +DELETE FROM `pool_gameobject` WHERE `guid` IN (13008, 12920, 12919, 12918, 12862, 12845, 12826, 12801, 12795, 12794); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3662, 0, -6057.48, -2747.02, 418.459, 1.16937, 0, 0, 0.551937, 0.833886, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3662, 0, -6048.65, -2977.59, 403.13, 0.279253, 0, 0, 0.139173, 0.990268, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3662, 0, -5863.49, -2661.53, 310.606, -1.79769, 0, 0, 0.782608, -0.622515, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3662, 0, -5708.4, -3774.1, 322.841, -0.750491, 0, 0, 0.366501, -0.930418, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3662, 0, -5692.8, -3912.19, 337.257, 1.67552, 0, 0, 0.743145, 0.669131, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3662, 0, -5291.79, -2949.98, 336.758, 1.53589, 0, 0, 0.694658, 0.71934, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3662, 0, -5277.47, -2694.25, 344.979, 2.56563, 0, 0, 0.95882, 0.284015, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3662, 0, -4893.78, -3911.83, 299.384, -2.93215, 0, 0, 0.994522, -0.104529, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3662, 0, -4876.23, -3318.48, 305.601, -2.80998, 0, 0, 0.986286, -0.165048, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3662, 0, -4773.52, -2991.69, 322.995, 0.663225, 0, 0, 0.325568, 0.945519, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3662, 0, -6068.6, -3029.74, 401.523, 5.07891, 0, 0, -0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3662, 0, -5975.29, -2786.09, 385.061, 5.74214, 0, 0, -0.267238, 0.963631, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3662, 0, -5840.78, -2639.82, 315.843, 2.86234, 0, 0, 0.990268, 0.139175, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3662, 0, -5795.83, -2929.93, 363.821, 1.48353, 0, 0, 0.67559, 0.737278, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3662, 0, -5757.15, -3999.7, 330.592, 1.29154, 0, 0, 0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3662, 0, -5728.46, -3906.47, 322.958, 5.74214, 0, 0, -0.267238, 0.963631, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3662, 0, -5650.94, -3930.91, 324.779, 3.85718, 0, 0, -0.936671, 0.35021, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3662, 0, -5582.09, -3883.97, 330.112, 2.68781, 0, 0, 0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3662, 0, -5541, -2725.67, 366.985, 6.26573, 0, 0, -0.00872612, 0.999962, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3662, 0, -5392.1, -2709.46, 366.038, 6.14356, 0, 0, -0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3662, 0, -5373.65, -2952.16, 323.683, 0.802851, 0, 0, 0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3662, 0, -5287.15, -2990.18, 340.888, 2.91469, 0, 0, 0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3662, 0, -5033.73, -2699.3, 320.22, 1.01229, 0, 0, 0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3662, 0, -4931.47, -3430.26, 306.02, 5.86431, 0, 0, -0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3662, 0, -4868.68, -3906.8, 303.317, 4.55531, 0, 0, -0.760406, 0.649449, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3662, 0, -4831.44, -2701.95, 327.267, 3.97935, 0, 0, -0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3662, 0, -4829.81, -2982.96, 323.09, 2.61799, 0, 0, 0.965925, 0.258821, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3662, 0, -4740.01, -3274.93, 310.257, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3662, 0, -5980.33, -2962.16, 387.75, 3.68265, 0, 0, -0.96363, 0.267241, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3705, 0, -6057.48, -2747.02, 418.459, 1.16937, 0, 0, 0.551937, 0.833886, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3705, 0, -6048.65, -2977.59, 403.13, 0.279253, 0, 0, 0.139173, 0.990268, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3705, 0, -5863.49, -2661.53, 310.606, -1.79769, 0, 0, 0.782608, -0.622515, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3705, 0, -5708.4, -3774.1, 322.841, -0.750491, 0, 0, 0.366501, -0.930418, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3705, 0, -5692.8, -3912.19, 337.257, 1.67552, 0, 0, 0.743145, 0.669131, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3705, 0, -5291.79, -2949.98, 336.758, 1.53589, 0, 0, 0.694658, 0.71934, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3705, 0, -5277.47, -2694.25, 344.979, 2.56563, 0, 0, 0.95882, 0.284015, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3705, 0, -4893.78, -3911.83, 299.384, -2.93215, 0, 0, 0.994522, -0.104529, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3705, 0, -4876.23, -3318.48, 305.601, -2.80998, 0, 0, 0.986286, -0.165048, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3705, 0, -4773.52, -2991.69, 322.995, 0.663225, 0, 0, 0.325568, 0.945519, 7200, 7200, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3705, 0, -6068.6, -3029.74, 401.523, 5.07891, 0, 0, -0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3705, 0, -5975.29, -2786.09, 385.061, 5.74214, 0, 0, -0.267238, 0.963631, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3705, 0, -5840.78, -2639.82, 315.843, 2.86234, 0, 0, 0.990268, 0.139175, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3705, 0, -5795.83, -2929.93, 363.821, 1.48353, 0, 0, 0.67559, 0.737278, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3705, 0, -5757.15, -3999.7, 330.592, 1.29154, 0, 0, 0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3705, 0, -5728.46, -3906.47, 322.958, 5.74214, 0, 0, -0.267238, 0.963631, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3705, 0, -5650.94, -3930.91, 324.779, 3.85718, 0, 0, -0.936671, 0.35021, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3705, 0, -5582.09, -3883.97, 330.112, 2.68781, 0, 0, 0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3705, 0, -5541, -2725.67, 366.985, 6.26573, 0, 0, -0.00872612, 0.999962, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3705, 0, -5392.1, -2709.46, 366.038, 6.14356, 0, 0, -0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3705, 0, -5373.65, -2952.16, 323.683, 0.802851, 0, 0, 0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3705, 0, -5287.15, -2990.18, 340.888, 2.91469, 0, 0, 0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3705, 0, -5033.73, -2699.3, 320.22, 1.01229, 0, 0, 0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3705, 0, -4931.47, -3430.26, 306.02, 5.86431, 0, 0, -0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3705, 0, -4868.68, -3906.8, 303.317, 4.55531, 0, 0, -0.760406, 0.649449, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 3705, 0, -4831.44, -2701.95, 327.267, 3.97935, 0, 0, -0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 3705, 0, -4829.81, -2982.96, 323.09, 2.61799, 0, 0, 0.965925, 0.258821, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 3705, 0, -4740.01, -3274.93, 310.257, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 3705, 0, -5980.33, -2962.16, 387.75, 3.68265, 0, 0, -0.96363, 0.267241, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+2, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+3, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+4, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+5, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+6, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+7, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+8, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+9, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+10, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+11, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+12, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+13, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+14, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+15, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+16, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+17, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+18, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+19, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+20, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+21, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+22, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+23, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+24, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+25, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+26, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+27, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+28, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@PTEMPLATE+29, 1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+30, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+31, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+32, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+33, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+34, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+35, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+36, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+37, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+38, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+39, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+40, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+41, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+42, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+43, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+44, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+45, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+46, @PTEMPLATE+17, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+47, @PTEMPLATE+18, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+48, @PTEMPLATE+19, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+49, @PTEMPLATE+20, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+50, @PTEMPLATE+21, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+51, @PTEMPLATE+22, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+52, @PTEMPLATE+23, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+53, @PTEMPLATE+24, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+54, @PTEMPLATE+25, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+55, @PTEMPLATE+26, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+56, @PTEMPLATE+27, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+57, @PTEMPLATE+28, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10), +(@OGUID+58, @PTEMPLATE+29, 'Food Crate / Barrel of Milk - Loch Modan', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+30, 13, 'Loch Modan - Food Crate / Barrel of Milk (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+2, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+3, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+4, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+5, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+6, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+7, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+8, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+9, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+10, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+11, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+12, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+13, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+14, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+15, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+16, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+17, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+18, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+19, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+20, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+21, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+22, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+23, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+24, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+25, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+26, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+27, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+28, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0), +(@PTEMPLATE+29, @PTEMPLATE+30, 0, 'Food Crate / Barrel of Milk - Loch Modan', 0); + +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` IN (3662, 3705); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 40e5eb8bd1711c5666062a2441dae7e15f329bf3 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 14:19:28 +0100 Subject: [PATCH 077/426] Food Crate / Barrel of Milk - Westfall (#2045) --- sql/migrations/20230706170002_world.sql | 313 ++++++++++++++++++++++++ 1 file changed, 313 insertions(+) create mode 100644 sql/migrations/20230706170002_world.sql diff --git a/sql/migrations/20230706170002_world.sql b/sql/migrations/20230706170002_world.sql new file mode 100644 index 00000000000..b76300599f5 --- /dev/null +++ b/sql/migrations/20230706170002_world.sql @@ -0,0 +1,313 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230706170002'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230706170002'); +-- Add your query below. + +SET @OGUID = 39820; +SET @PTEMPLATE = 2082; + +-- 40 Westfall / 3662 / 3705 / Food Crate / Barrel of Milk +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (42679, 42682, 42683, 42686, 42687, 42713, 42714, 42715, 42716, 42717, 42733, 42735, 42737, 42750)); +DELETE FROM `gameobject` WHERE `guid` IN (42679, 42682, 42683, 42686, 42687, 42713, 42714, 42715, 42716, 42717, 42733, 42735, 42737, 42750); +DELETE FROM `pool_gameobject` WHERE `guid` IN (42679, 42682, 42683, 42686, 42687, 42713, 42714, 42715, 42716, 42717, 42733, 42735, 42737, 42750); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3662, 0, -11457, 1521.76, 50.9323, 1.46608, 0, 0, 0.669131, 0.743145, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3662, 0, -11309.9, 1714.72, 37.5294, -2.6529, 0, 0, 0.970296, -0.241922, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3662, 0, -11115.7, 564.248, 32.7555, 1.58825, 0, 0, 0.71325, 0.700909, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3662, 0, -11006.8, 2041.88, 10.6006, -2.86234, 0, 0, 0.990268, -0.139173, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3662, 0, -10994.1, 2096.65, 0.014037, -1.6057, 0, 0, 0.71934, -0.694658, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3662, 0, -10990.8, 1473.42, 43.2017, -0.785398, 0, 0, 0.382683, -0.92388, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3662, 0, -10883.2, 1981.65, 38.6544, -1.15192, 0, 0, 0.544639, -0.838671, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3662, 0, -10815.4, 1327.02, 34.0955, 1.25664, 0, 0, 0.587785, 0.809017, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3662, 0, -10658.4, 993.572, 32.8741, 1.0472, 0, 0, 0.5, 0.866025, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3662, 0, -10558.6, 1964.51, 35.0131, -2.42601, 0, 0, 0.936672, -0.350207, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3662, 0, -10178.1, 2022.71, 5.62225, -2.96706, 0, 0, 0.996195, -0.087156, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3662, 0, -10062.7, 1689.69, 34.9306, -2.23402, 0, 0, 0.898794, -0.438371, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3662, 0, -9741.55, 1185.91, 41.191, 0.226893, 0, 0, 0.113203, 0.993572, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3662, 0, -9633.56, 1594.26, 0.009919, -0.122173, 0, 0, 0.061049, -0.998135, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3662, 0, -11507.4, 1750.15, 2.05305, 4.18879, 0, 0, -0.866025, 0.500001, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3662, 0, -11422, 1812.74, -0.088864, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3662, 0, -11389.2, 1981.19, 1.27075, 1.62316, 0, 0, 0.725374, 0.688355, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3662, 0, -11234.2, 2013.1, 0.033822, 6.03884, 0, 0, -0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3662, 0, -11197.9, 841.782, 40.794, 0.523598, 0, 0, 0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3662, 0, -11154.6, 1721.86, 41.2989, 4.99164, 0, 0, -0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3662, 0, -11144.1, 565.335, 70.4333, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3662, 0, -11089.9, 1908.65, 33.5946, 0.0698117, 0, 0, 0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3662, 0, -11063.5, 1499.29, 43.4303, 2.58308, 0, 0, 0.961261, 0.27564, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3662, 0, -11019.1, 1546.45, 44.2436, 3.47321, 0, 0, -0.986285, 0.16505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3662, 0, -10933.4, 1986.15, 33.5183, 5.84685, 0, 0, -0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3662, 0, -10864.4, 1171.04, 37.1872, 3.14159, 0, 0, -1, 0, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3662, 0, -10803.7, 2041.63, 11.9502, 5.11382, 0, 0, -0.551936, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3662, 0, -10739.3, 1860.52, 32.6953, 3.4034, 0, 0, -0.991445, 0.130528, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3662, 0, -10660.1, 2034.55, 9.13552, 3.85718, 0, 0, -0.936671, 0.35021, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3662, 0, -10628.6, 1186.59, 34.6776, 3.57793, 0, 0, -0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3662, 0, -10612.6, 1956.29, 37.6884, 6.10865, 0, 0, -0.0871553, 0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3662, 0, -10491.1, 1030.94, 60.5239, 3.56047, 0, 0, -0.978148, 0.207912, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3662, 0, -10483.3, 1337.91, 42.5685, 1.85005, 0, 0, 0.798635, 0.601815, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3662, 0, -10187.8, 1925.64, 37.4336, 2.72271, 0, 0, 0.978148, 0.207912, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3662, 0, -10130.9, 1737.09, 32.3876, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3662, 0, -10032.3, 1883.86, 13.4883, 3.35105, 0, 0, -0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3662, 0, -9904.01, 1759.95, 10.1947, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3662, 0, -9849.99, 1296.9, 41.302, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3662, 0, -9748.92, 1811.8, -0.004704, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3662, 0, -9724.01, 1677.6, 0.010549, 2.93214, 0, 0, 0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3662, 0, -9718.28, 1036.46, 36.4421, 5.00909, 0, 0, -0.594823, 0.803857, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3662, 0, -11300.2, 1599.91, 35.8807, 1.71042, 0, 0, 0.754709, 0.656059, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3662, 0, -11262.1, 1553.41, 35.072, 5.86431, 0, 0, -0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3662, 0, -11235.1, 1668.54, 34.1432, 1.32645, 0, 0, 0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3662, 0, -11194.7, 1489.61, 15.387, 0.104719, 0, 0, 0.0523357, 0.99863, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3662, 0, -10136.3, 1655.46, 38.5074, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3705, 0, -11457, 1521.76, 50.9323, 1.46608, 0, 0, 0.669131, 0.743145, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3705, 0, -11309.9, 1714.72, 37.5294, -2.6529, 0, 0, 0.970296, -0.241922, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3705, 0, -11115.7, 564.248, 32.7555, 1.58825, 0, 0, 0.71325, 0.700909, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3705, 0, -11006.8, 2041.88, 10.6006, -2.86234, 0, 0, 0.990268, -0.139173, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3705, 0, -10994.1, 2096.65, 0.014037, -1.6057, 0, 0, 0.71934, -0.694658, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3705, 0, -10990.8, 1473.42, 43.2017, -0.785398, 0, 0, 0.382683, -0.92388, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3705, 0, -10883.2, 1981.65, 38.6544, -1.15192, 0, 0, 0.544639, -0.838671, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3705, 0, -10815.4, 1327.02, 34.0955, 1.25664, 0, 0, 0.587785, 0.809017, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 3705, 0, -10658.4, 993.572, 32.8741, 1.0472, 0, 0, 0.5, 0.866025, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 3705, 0, -10558.6, 1964.51, 35.0131, -2.42601, 0, 0, 0.936672, -0.350207, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 3705, 0, -10178.1, 2022.71, 5.62225, -2.96706, 0, 0, 0.996195, -0.087156, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 3705, 0, -10062.7, 1689.69, 34.9306, -2.23402, 0, 0, 0.898794, -0.438371, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 3705, 0, -9741.55, 1185.91, 41.191, 0.226893, 0, 0, 0.113203, 0.993572, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 3705, 0, -9633.56, 1594.26, 0.009919, -0.122173, 0, 0, 0.061049, -0.998135, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 3705, 0, -11507.4, 1750.15, 2.05305, 4.18879, 0, 0, -0.866025, 0.500001, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 3705, 0, -11422, 1812.74, -0.088864, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 3705, 0, -11389.2, 1981.19, 1.27075, 1.62316, 0, 0, 0.725374, 0.688355, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 3705, 0, -11234.2, 2013.1, 0.033822, 6.03884, 0, 0, -0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 3705, 0, -11197.9, 841.782, 40.794, 0.523598, 0, 0, 0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 3705, 0, -11154.6, 1721.86, 41.2989, 4.99164, 0, 0, -0.601814, 0.798636, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 3705, 0, -11144.1, 565.335, 70.4333, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 3705, 0, -11089.9, 1908.65, 33.5946, 0.0698117, 0, 0, 0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 3705, 0, -11063.5, 1499.29, 43.4303, 2.58308, 0, 0, 0.961261, 0.27564, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 3705, 0, -11019.1, 1546.45, 44.2436, 3.47321, 0, 0, -0.986285, 0.16505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 3705, 0, -10933.4, 1986.15, 33.5183, 5.84685, 0, 0, -0.216439, 0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 3705, 0, -10864.4, 1171.04, 37.1872, 3.14159, 0, 0, -1, 0, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+73, 3705, 0, -10803.7, 2041.63, 11.9502, 5.11382, 0, 0, -0.551936, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+74, 3705, 0, -10739.3, 1860.52, 32.6953, 3.4034, 0, 0, -0.991445, 0.130528, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+75, 3705, 0, -10660.1, 2034.55, 9.13552, 3.85718, 0, 0, -0.936671, 0.35021, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+76, 3705, 0, -10628.6, 1186.59, 34.6776, 3.57793, 0, 0, -0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+77, 3705, 0, -10612.6, 1956.29, 37.6884, 6.10865, 0, 0, -0.0871553, 0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+78, 3705, 0, -10491.1, 1030.94, 60.5239, 3.56047, 0, 0, -0.978148, 0.207912, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+79, 3705, 0, -10483.3, 1337.91, 42.5685, 1.85005, 0, 0, 0.798635, 0.601815, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+80, 3705, 0, -10187.8, 1925.64, 37.4336, 2.72271, 0, 0, 0.978148, 0.207912, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+81, 3705, 0, -10130.9, 1737.09, 32.3876, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+82, 3705, 0, -10032.3, 1883.86, 13.4883, 3.35105, 0, 0, -0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+83, 3705, 0, -9904.01, 1759.95, 10.1947, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+84, 3705, 0, -9849.99, 1296.9, 41.302, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+85, 3705, 0, -9748.92, 1811.8, -0.004704, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+86, 3705, 0, -9724.01, 1677.6, 0.010549, 2.93214, 0, 0, 0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+87, 3705, 0, -9718.28, 1036.46, 36.4421, 5.00909, 0, 0, -0.594823, 0.803857, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+88, 3705, 0, -11300.2, 1599.91, 35.8807, 1.71042, 0, 0, 0.754709, 0.656059, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+89, 3705, 0, -11262.1, 1553.41, 35.072, 5.86431, 0, 0, -0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+90, 3705, 0, -11235.1, 1668.54, 34.1432, 1.32645, 0, 0, 0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+91, 3705, 0, -11194.7, 1489.61, 15.387, 0.104719, 0, 0, 0.0523357, 0.99863, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+92, 3705, 0, -10136.3, 1655.46, 38.5074, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+2, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+3, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+4, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+5, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+6, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+7, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+8, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+9, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+10, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+11, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+12, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+13, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+14, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+15, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+16, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+17, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+18, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+19, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+20, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+21, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+22, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+23, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+24, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+25, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+26, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+27, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+28, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+29, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+30, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+31, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+32, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+33, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+34, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+35, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+36, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+37, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+38, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+39, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+40, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+41, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+42, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+43, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+44, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+45, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+46, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+32, @PTEMPLATE+32, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+33, @PTEMPLATE+33, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+34, @PTEMPLATE+34, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+35, @PTEMPLATE+35, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+36, @PTEMPLATE+36, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+37, @PTEMPLATE+37, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+38, @PTEMPLATE+38, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+39, @PTEMPLATE+39, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+40, @PTEMPLATE+40, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+41, @PTEMPLATE+41, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+42, @PTEMPLATE+42, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+43, @PTEMPLATE+43, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+44, @PTEMPLATE+44, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+45, @PTEMPLATE+45, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+46, @PTEMPLATE+46, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+47, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+48, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+49, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+50, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+51, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+52, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+53, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+54, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+55, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+56, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+57, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+58, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+59, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+60, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+61, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+62, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+63, @PTEMPLATE+17, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+64, @PTEMPLATE+18, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+65, @PTEMPLATE+19, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+66, @PTEMPLATE+20, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+67, @PTEMPLATE+21, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+68, @PTEMPLATE+22, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+69, @PTEMPLATE+23, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+70, @PTEMPLATE+24, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+71, @PTEMPLATE+25, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+72, @PTEMPLATE+26, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+73, @PTEMPLATE+27, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+74, @PTEMPLATE+28, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+75, @PTEMPLATE+29, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+76, @PTEMPLATE+30, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+77, @PTEMPLATE+31, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+78, @PTEMPLATE+32, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+79, @PTEMPLATE+33, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+80, @PTEMPLATE+34, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+81, @PTEMPLATE+35, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+82, @PTEMPLATE+36, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+83, @PTEMPLATE+37, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+84, @PTEMPLATE+38, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+85, @PTEMPLATE+39, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+86, @PTEMPLATE+40, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+87, @PTEMPLATE+41, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+88, @PTEMPLATE+42, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+89, @PTEMPLATE+43, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+90, @PTEMPLATE+44, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+91, @PTEMPLATE+45, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+92, @PTEMPLATE+46, 'Food Crate / Barrel of Milk - Westfall', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+47, 22, 'Westfall - Food Crate / Barrel of Milk (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+2, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+3, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+4, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+5, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+6, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+7, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+8, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+9, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+10, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+11, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+12, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+13, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+14, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+15, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+16, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+17, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+18, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+19, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+20, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+21, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+22, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+23, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+24, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+25, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+26, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+27, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+28, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+29, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+30, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+31, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+32, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+33, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+34, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+35, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+36, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+37, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+38, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+39, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+40, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+41, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+42, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+43, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+44, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+45, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+46, @PTEMPLATE+47, 0, 'Food Crate / Barrel of Milk - Westfall', 0); + +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` IN (3662, 3705); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 71cab3389ace7a11120f2d3d02b01cb2180be9e7 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 14:19:37 +0100 Subject: [PATCH 078/426] Barrel of Melon Juice / Food Crate - Redridge (#2046) --- sql/migrations/20230706170201_world.sql | 267 ++++++++++++++++++++++++ 1 file changed, 267 insertions(+) create mode 100644 sql/migrations/20230706170201_world.sql diff --git a/sql/migrations/20230706170201_world.sql b/sql/migrations/20230706170201_world.sql new file mode 100644 index 00000000000..b3dddce28a3 --- /dev/null +++ b/sql/migrations/20230706170201_world.sql @@ -0,0 +1,267 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230706170201'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230706170201'); +-- Add your query below. + + +SET @OGUID = 31253; +SET @PTEMPLATE = 192; + +-- 44 Redridge Mountains 3659 / 3695 / Barrel of Melon Juice / Food Crate +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (29239, 20788, 20617, 20501, 20433, 18604, 18602, 18587, 18580, 42624, 42623, 42622)); +DELETE FROM `gameobject` WHERE `guid` IN (29239, 20788, 20617, 20501, 20433, 18604, 18602, 18587, 18580, 42624, 42623, 42622); +DELETE FROM `pool_gameobject` WHERE `guid` IN (29239, 20788, 20617, 20501, 20433, 18604, 18602, 18587, 18580, 42624, 42623, 42622); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3659, 0, -8680.4, -2357.14, 159.703, -1.3439, 0, 0, 0.622515, -0.782608, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3659, 0, -9250.18, -3211.8, 100.666, 2.07694, 0, 0, 0.861629, 0.507538, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3659, 0, -9271.67, -3290.89, 115.668, 1.25664, 0, 0, 0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3659, 0, -9710.18, -3166.36, 58.6868, -1.6057, 0, 0, 0.71934, -0.694658, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3659, 0, -9195.45, -2873.63, 113.036, -0.436333, 0, 0, 0.21644, -0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3659, 0, -9371.79, -3082.53, 140.675, 3.01942, 0, 0, 0.998135, 0.061049, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3659, 0, -9818.14, -3268.34, 62.0597, 3.26377, 0, 0, -0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3659, 0, -9531.23, -3258.96, 48.974, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3659, 0, -9439.26, -3081.96, 136.687, 1.85005, 0, 0, 0.798635, 0.601815, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3659, 0, -9416.04, -3395.21, 89.0458, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3659, 0, -9410.7, -3085.99, 139.773, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3659, 0, -9370.27, -3171.53, 83.5489, 4.92183, 0, 0, -0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3659, 0, -9279.15, -2940.47, 128.761, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3659, 0, -9227.43, -3294.38, 100.555, 6.07375, 0, 0, -0.104528, 0.994522, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3659, 0, -9115.65, -3230.97, 100.572, 0.820303, 0, 0, 0.398748, 0.91706, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3659, 0, -8730.53, -2336.46, 155.917, 4.97419, 0, 0, -0.608761, 0.793354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3659, 0, -9352.76, -3064.98, 136.687, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3659, 0, -8818.47, -2170.91, 150.485, 2.00713, 0, 0, 0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3695, 0, -8680.4, -2357.14, 159.703, -1.3439, 0, 0, 0.622515, -0.782608, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3695, 0, -9250.18, -3211.8, 100.666, 2.07694, 0, 0, 0.861629, 0.507538, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3695, 0, -9271.67, -3290.89, 115.668, 1.25664, 0, 0, 0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3695, 0, -9710.18, -3166.36, 58.6868, -1.6057, 0, 0, 0.71934, -0.694658, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3695, 0, -9195.45, -2873.63, 113.036, -0.436333, 0, 0, 0.21644, -0.976296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3695, 0, -9371.79, -3082.53, 140.675, 3.01942, 0, 0, 0.998135, 0.061049, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3695, 0, -9818.14, -3268.34, 62.0597, 3.26377, 0, 0, -0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3695, 0, -9531.23, -3258.96, 48.974, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3695, 0, -9439.26, -3081.96, 136.687, 1.85005, 0, 0, 0.798635, 0.601815, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3695, 0, -9416.04, -3395.21, 89.0458, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3695, 0, -9410.7, -3085.99, 139.773, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3695, 0, -9370.27, -3171.53, 83.5489, 4.92183, 0, 0, -0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3695, 0, -9279.15, -2940.47, 128.761, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3695, 0, -9227.43, -3294.38, 100.555, 6.07375, 0, 0, -0.104528, 0.994522, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3695, 0, -9115.65, -3230.97, 100.572, 0.820303, 0, 0, 0.398748, 0.91706, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3695, 0, -8730.53, -2336.46, 155.917, 4.97419, 0, 0, -0.608761, 0.793354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3695, 0, -9352.76, -3064.98, 136.687, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3695, 0, -8818.47, -2170.91, 150.485, 2.00713, 0, 0, 0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+2, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+3, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+4, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+5, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+6, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+7, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+8, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+9, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+10, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+11, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+12, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+13, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+14, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+15, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+16, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+17, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@PTEMPLATE+18, 1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+19, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+20, @PTEMPLATE+2, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+21, @PTEMPLATE+3, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+22, @PTEMPLATE+4, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+23, @PTEMPLATE+5, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+24, @PTEMPLATE+6, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+25, @PTEMPLATE+7, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+26, @PTEMPLATE+8, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+27, @PTEMPLATE+9, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+28, @PTEMPLATE+10, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+29, @PTEMPLATE+11, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+30, @PTEMPLATE+12, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+31, @PTEMPLATE+13, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+32, @PTEMPLATE+14, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+33, @PTEMPLATE+15, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+34, @PTEMPLATE+16, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+35, @PTEMPLATE+17, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10), +(@OGUID+36, @PTEMPLATE+18, 'Barrel of Melon Juice / Food Crate - Redridge', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+19, 8, 'Redridge - Barrel of Melon Juice / Food Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+2, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+3, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+4, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+5, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+6, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+7, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+8, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+9, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+10, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+11, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+12, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+13, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+14, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+15, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+16, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+17, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0), +(@PTEMPLATE+18, @PTEMPLATE+19, 0, 'Barrel of Melon Juice / Food Crate - Redridge', 0); + +SET @OGUID = 31473; +SET @PTEMPLATE = 2704; + +-- 3662 / 3705 / Food Crate / Barrel of Milk + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3662, 0, -8968.61, -2079.53, 132.445, -1.85005, 0, 0, 0.798635, -0.601815, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3662, 0, -9797.5, -2243.93, 69.962, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3662, 0, -9776.85, -2263.73, 59.2903, 2.21657, 0, 0, 0.894934, 0.446199, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3662, 0, -9507.26, -1901.14, 79.1296, 0.383971, 0, 0, 0.190808, 0.981627, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3662, 0, -9485.74, -1939.03, 78.7392, 2.77507, 0, 0, 0.983254, 0.182238, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3662, 0, -9462.39, -1905.32, 82.3743, 5.95157, 0, 0, -0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3662, 0, -9440.73, -2230.18, 69.5418, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3662, 0, -9337.97, -2296.93, 73.2459, 1.83259, 0, 0, 0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3662, 0, -9234.33, -2040.43, 78.1511, 6.05629, 0, 0, -0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3662, 0, -9218.39, -2057.53, 78.0984, 1.309, 0, 0, 0.608761, 0.793354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3662, 0, -9190.77, -2156.29, 57.1861, 3.14159, 0, 0, -1, 0, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3662, 0, -9177.17, -2089.26, 88.9374, 0.244346, 0, 0, 0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3662, 0, -9107.94, -2039.61, 128.651, 4.45059, 0, 0, -0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3662, 0, -9039.46, -2416.55, 128.855, 2.37364, 0, 0, 0.927183, 0.374608, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3662, 0, -8990.36, -2180.67, 132.771, 3.24635, 0, 0, -0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3662, 0, -8934, -2318.61, 132.537, 3.08918, 0, 0, 0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3662, 0, -8894.44, -2176.12, 132.722, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3662, 0, -9794.08, -2218.39, 58.6209, 1.51844, 0, 0, 0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3705, 0, -8968.61, -2079.53, 132.445, -1.85005, 0, 0, 0.798635, -0.601815, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3705, 0, -9797.5, -2243.93, 69.962, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3705, 0, -9776.85, -2263.73, 59.2903, 2.21657, 0, 0, 0.894934, 0.446199, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3705, 0, -9507.26, -1901.14, 79.1296, 0.383971, 0, 0, 0.190808, 0.981627, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3705, 0, -9485.74, -1939.03, 78.7392, 2.77507, 0, 0, 0.983254, 0.182238, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3705, 0, -9462.39, -1905.32, 82.3743, 5.95157, 0, 0, -0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3705, 0, -9440.73, -2230.18, 69.5418, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3705, 0, -9337.97, -2296.93, 73.2459, 1.83259, 0, 0, 0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3705, 0, -9234.33, -2040.43, 78.1511, 6.05629, 0, 0, -0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3705, 0, -9218.39, -2057.53, 78.0984, 1.309, 0, 0, 0.608761, 0.793354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3705, 0, -9190.77, -2156.29, 57.1861, 3.14159, 0, 0, -1, 0, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3705, 0, -9177.17, -2089.26, 88.9374, 0.244346, 0, 0, 0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3705, 0, -9107.94, -2039.61, 128.651, 4.45059, 0, 0, -0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3705, 0, -9039.46, -2416.55, 128.855, 2.37364, 0, 0, 0.927183, 0.374608, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3705, 0, -8990.36, -2180.67, 132.771, 3.24635, 0, 0, -0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3705, 0, -8934, -2318.61, 132.537, 3.08918, 0, 0, 0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3705, 0, -8894.44, -2176.12, 132.722, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3705, 0, -9794.08, -2218.39, 58.6209, 1.51844, 0, 0, 0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+2, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+3, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+4, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+5, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+6, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+7, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+8, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+9, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+10, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+11, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+12, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+13, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+14, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+15, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+16, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+17, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@PTEMPLATE+18, 1, 'Food Crate / Barrel of Milk - Redridge', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+19, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+20, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+21, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+22, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+23, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+24, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+25, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+26, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+27, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+28, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+29, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+30, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+31, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+32, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+33, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+34, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+35, @PTEMPLATE+17, 'Food Crate / Barrel of Milk - Redridge', 0, 10), +(@OGUID+36, @PTEMPLATE+18, 'Food Crate / Barrel of Milk - Redridge', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+19, 8, 'Redridge - Food Crate / Barrel of Milk (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+2, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+3, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+4, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+5, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+6, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+7, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+8, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+9, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+10, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+11, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+12, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+13, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+14, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+15, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+16, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+17, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0), +(@PTEMPLATE+18, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Redridge', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From f454fc7ac2af48a10a58980f82fba9b6647f9fde Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 14:19:44 +0100 Subject: [PATCH 079/426] Barrel of Sweet Nectar / Food Crate - Arathi Highlands (#2047) --- sql/migrations/20230706170355_world.sql | 252 ++++++++++++++++++++++++ 1 file changed, 252 insertions(+) create mode 100644 sql/migrations/20230706170355_world.sql diff --git a/sql/migrations/20230706170355_world.sql b/sql/migrations/20230706170355_world.sql new file mode 100644 index 00000000000..7ce1f5137fc --- /dev/null +++ b/sql/migrations/20230706170355_world.sql @@ -0,0 +1,252 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230706170355'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230706170355'); +-- Add your query below. + + +SET @OGUID = 33911; +SET @PTEMPLATE = 3424; + +-- 45 Arathi Highlands / 3706 / 3707 / Barrel of Sweet Nectar / Food Crate +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (16910, 16909, 16899, 16791, 16788, 16786, 16784, 16782, 46463, 16647, 16646, 16633)); +DELETE FROM `gameobject` WHERE `guid` IN (16910, 16909, 16899, 16791, 16788, 16786, 16784, 16782, 46463, 16647, 16646, 16633); +DELETE FROM `pool_gameobject` WHERE `guid` IN (16910, 16909, 16899, 16791, 16788, 16786, 16784, 16782, 46463, 16647, 16646, 16633); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3706, 0, -1928.8, -2950.61, 107.574, 1.91986, 0, 0, 0.819152, 0.573576, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3706, 0, -1910.73, -3197.75, 57.2049, -2.16421, 0, 0, 0.882948, -0.469472, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3706, 0, -1698.64, -1702.84, 54.4731, -2.74017, 0, 0, 0.979925, -0.199368, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3706, 0, -1695.79, -1834.49, 81.5332, -2.18166, 0, 0, 0.887011, -0.461749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3706, 0, -1679.96, -3240.76, 25.7584, -1.13446, 0, 0, 0.5373, -0.843391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3706, 0, -1659.76, -1714.63, 68.4738, 1.18682, 0, 0, 0.559193, 0.829038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3706, 0, -1621.44, -1932.84, 68.148, -0.820305, 0, 0, 0.398749, -0.91706, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3706, 0, -1480.85, -3100.39, 14.0931, -3.08923, 0, 0, 0.999657, -0.026177, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3706, 0, -1187.11, -2140.59, 60.698, -0.977384, 0, 0, 0.469472, -0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3706, 0, -1072.49, -2906.36, 42.1947, 0.191986, 0, 0, 0.095846, 0.995396, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3706, 0, -889.523, -3550.93, 71.0281, -2.32129, 0, 0, 0.91706, -0.398749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3706, 0, -877.49, -2016.95, 34.5367, -2.16421, 0, 0, 0.882948, -0.469472, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3706, 0, -2230.66, -2616.61, 78.5343, 4.76475, 0, 0, -0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3706, 0, -1969.83, -2806.08, 81.2026, 5.46288, 0, 0, -0.398748, 0.91706, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3706, 0, -1876.98, -3056.58, 57.881, 1.09956, 0, 0, 0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3706, 0, -1813.64, -3418, 45.4403, 5.13127, 0, 0, -0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3706, 0, -1763.9, -1640.64, 52.857, 1.27409, 0, 0, 0.594822, 0.803857, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3706, 0, -1711.81, -1916.66, 82.5333, 0.628317, 0, 0, 0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3706, 0, -1685.97, -3515.95, 60.9348, 5.41052, 0, 0, -0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3706, 0, -1633.97, -1852.94, 81.1494, 1.25664, 0, 0, 0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3706, 0, -1601.45, -1827.97, 68.0665, 3.78737, 0, 0, -0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3706, 0, -1599.55, -1781.19, 69.3191, 1.65806, 0, 0, 0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3706, 0, -1577.91, -1873.79, 68.7704, 5.21854, 0, 0, -0.507538, 0.861629, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3706, 0, -1569.71, -1668.96, 68.1113, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3706, 0, -1561.05, -3033.4, 13.0544, 1.46608, 0, 0, 0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3706, 0, -1496.75, -1748.3, 68.2887, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3706, 0, -1476.56, -3133.11, 12.8571, 4.20625, 0, 0, -0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3706, 0, -1463.56, -3050.27, 12.5878, 3.14159, 0, 0, -1, 0, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3706, 0, -1284.37, -2525.19, 21.58, 4.76475, 0, 0, -0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3706, 0, -1233.36, -2506.82, 23.1542, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3706, 0, -1046.3, -2823.23, 42.1361, 4.10153, 0, 0, -0.887011, 0.461749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3706, 0, -1022.41, -3579.64, 56.9062, 0.383971, 0, 0, 0.190808, 0.981627, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3706, 0, -992.517, -2888.94, 62.6274, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3706, 0, -948.464, -3529.99, 71.0216, 2.42601, 0, 0, 0.936672, 0.350207, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3706, 0, -782.15, -2075.96, 34.1304, 2.89725, 0, 0, 0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3706, 0, -763.674, -1979.46, 34.5849, 4.92183, 0, 0, -0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3707, 0, -1928.8, -2950.61, 107.574, 1.91986, 0, 0, 0.819152, 0.573576, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3707, 0, -1910.73, -3197.75, 57.2049, -2.16421, 0, 0, 0.882948, -0.469472, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3707, 0, -1698.64, -1702.84, 54.4731, -2.74017, 0, 0, 0.979925, -0.199368, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3707, 0, -1695.79, -1834.49, 81.5332, -2.18166, 0, 0, 0.887011, -0.461749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3707, 0, -1679.96, -3240.76, 25.7584, -1.13446, 0, 0, 0.5373, -0.843391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3707, 0, -1659.76, -1714.63, 68.4738, 1.18682, 0, 0, 0.559193, 0.829038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3707, 0, -1621.44, -1932.84, 68.148, -0.820305, 0, 0, 0.398749, -0.91706, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3707, 0, -1480.85, -3100.39, 14.0931, -3.08923, 0, 0, 0.999657, -0.026177, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3707, 0, -1187.11, -2140.59, 60.698, -0.977384, 0, 0, 0.469472, -0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3707, 0, -1072.49, -2906.36, 42.1947, 0.191986, 0, 0, 0.095846, 0.995396, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3707, 0, -889.523, -3550.93, 71.0281, -2.32129, 0, 0, 0.91706, -0.398749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3707, 0, -877.49, -2016.95, 34.5367, -2.16421, 0, 0, 0.882948, -0.469472, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3707, 0, -2230.66, -2616.61, 78.5343, 4.76475, 0, 0, -0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3707, 0, -1969.83, -2806.08, 81.2026, 5.46288, 0, 0, -0.398748, 0.91706, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3707, 0, -1876.98, -3056.58, 57.881, 1.09956, 0, 0, 0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3707, 0, -1813.64, -3418, 45.4403, 5.13127, 0, 0, -0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3707, 0, -1763.9, -1640.64, 52.857, 1.27409, 0, 0, 0.594822, 0.803857, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3707, 0, -1711.81, -1916.66, 82.5333, 0.628317, 0, 0, 0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 3707, 0, -1685.97, -3515.95, 60.9348, 5.41052, 0, 0, -0.422618, 0.906308, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 3707, 0, -1633.97, -1852.94, 81.1494, 1.25664, 0, 0, 0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 3707, 0, -1601.45, -1827.97, 68.0665, 3.78737, 0, 0, -0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 3707, 0, -1599.55, -1781.19, 69.3191, 1.65806, 0, 0, 0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 3707, 0, -1577.91, -1873.79, 68.7704, 5.21854, 0, 0, -0.507538, 0.861629, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 3707, 0, -1569.71, -1668.96, 68.1113, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 3707, 0, -1561.05, -3033.4, 13.0544, 1.46608, 0, 0, 0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 3707, 0, -1496.75, -1748.3, 68.2887, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 3707, 0, -1476.56, -3133.11, 12.8571, 4.20625, 0, 0, -0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 3707, 0, -1463.56, -3050.27, 12.5878, 3.14159, 0, 0, -1, 0, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 3707, 0, -1284.37, -2525.19, 21.58, 4.76475, 0, 0, -0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 3707, 0, -1233.36, -2506.82, 23.1542, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 3707, 0, -1046.3, -2823.23, 42.1361, 4.10153, 0, 0, -0.887011, 0.461749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 3707, 0, -1022.41, -3579.64, 56.9062, 0.383971, 0, 0, 0.190808, 0.981627, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 3707, 0, -992.517, -2888.94, 62.6274, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 3707, 0, -948.464, -3529.99, 71.0216, 2.42601, 0, 0, 0.936672, 0.350207, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 3707, 0, -782.15, -2075.96, 34.1304, 2.89725, 0, 0, 0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 3707, 0, -763.674, -1979.46, 34.5849, 4.92183, 0, 0, -0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+2, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+3, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+4, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+5, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+6, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+7, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+8, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+9, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+10, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+11, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+12, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+13, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+14, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+15, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+16, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+17, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+18, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+19, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+20, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+21, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+22, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+23, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+24, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+25, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+26, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+27, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+28, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+29, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+30, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+31, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+32, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+33, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+34, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+35, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@PTEMPLATE+36, 1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+32, @PTEMPLATE+32, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+33, @PTEMPLATE+33, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+34, @PTEMPLATE+34, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+35, @PTEMPLATE+35, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+36, @PTEMPLATE+36, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+37, @PTEMPLATE+1, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+38, @PTEMPLATE+2, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+39, @PTEMPLATE+3, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+40, @PTEMPLATE+4, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+41, @PTEMPLATE+5, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+42, @PTEMPLATE+6, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+43, @PTEMPLATE+7, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+44, @PTEMPLATE+8, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+45, @PTEMPLATE+9, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+46, @PTEMPLATE+10, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+47, @PTEMPLATE+11, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+48, @PTEMPLATE+12, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+49, @PTEMPLATE+13, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+50, @PTEMPLATE+14, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+51, @PTEMPLATE+15, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+52, @PTEMPLATE+16, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+53, @PTEMPLATE+17, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+54, @PTEMPLATE+18, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+55, @PTEMPLATE+19, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+56, @PTEMPLATE+20, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+57, @PTEMPLATE+21, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+58, @PTEMPLATE+22, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+59, @PTEMPLATE+23, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+60, @PTEMPLATE+24, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+61, @PTEMPLATE+25, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+62, @PTEMPLATE+26, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+63, @PTEMPLATE+27, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+64, @PTEMPLATE+28, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+65, @PTEMPLATE+29, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+66, @PTEMPLATE+30, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+67, @PTEMPLATE+31, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+68, @PTEMPLATE+32, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+69, @PTEMPLATE+33, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+70, @PTEMPLATE+34, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+71, @PTEMPLATE+35, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10), +(@OGUID+72, @PTEMPLATE+36, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+37, 17, 'Arathi Highlands - Barrel of Sweet Nectar / Food Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+2, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+3, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+4, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+5, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+6, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+7, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+8, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+9, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+10, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+11, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+12, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+13, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+14, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+15, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+16, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+17, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+18, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+19, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+20, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+21, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+22, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+23, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+24, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+25, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+26, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+27, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+28, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+29, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+30, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+31, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+32, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+33, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+34, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+35, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0), +(@PTEMPLATE+36, @PTEMPLATE+37, 0, 'Barrel of Sweet Nectar / Food Crate - Arathi Highlands', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 1bce7413502ad0e4867f367a22f50b12bc8dcedb Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 14:19:52 +0100 Subject: [PATCH 080/426] Water Barrel / Food Crate - Tirisfal Glades (#2048) --- sql/migrations/20230706170738_world.sql | 290 ++++++++++++++++++++++++ 1 file changed, 290 insertions(+) create mode 100644 sql/migrations/20230706170738_world.sql diff --git a/sql/migrations/20230706170738_world.sql b/sql/migrations/20230706170738_world.sql new file mode 100644 index 00000000000..db63beaed02 --- /dev/null +++ b/sql/migrations/20230706170738_world.sql @@ -0,0 +1,290 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230706170738'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230706170738'); +-- Add your query below. + + +SET @OGUID = 38937; +SET @PTEMPLATE = 3877; + +-- 85 Tirisfal Glades 3658 / 153472 / Water Barrel / Food Crate +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (45059, 45061, 45062, 45103, 45104, 45105, 45107, 45108, 45109, 45160, 45219, 45227, 45259, 88087, 88088, 88089, 88090, 88091, 88092, 88093, 55753)); +DELETE FROM `gameobject` WHERE `guid` IN (45059, 45061, 45062, 45103, 45104, 45105, 45107, 45108, 45109, 45160, 45219, 45227, 45259, 88087, 88088, 88089, 88090, 88091, 88092, 88093, 55753); +DELETE FROM `pool_gameobject` WHERE `guid` IN (45059, 45061, 45062, 45103, 45104, 45105, 45107, 45108, 45109, 45160, 45219, 45227, 45259, 88087, 88088, 88089, 88090, 88091, 88092, 88093, 55753); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3658, 0, 1660.01, -735.278, 59.8819, 0.418879, 0, 0, 0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3658, 0, 1741.42, -738.595, 59.6446, 0.785397, 0, 0, 0.382683, 0.92388, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3658, 0, 1784.45, -734.314, 59.4288, 2.89725, 0, 0, 0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3658, 0, 1957.5, -454.832, 35.6162, 5.96903, 0, 0, -0.156434, 0.987688, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3658, 0, 1981.42, -406.394, 35.4522, 3.35105, 0, 0, -0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3658, 0, 2040.9, -461.893, 35.9081, 2.19911, 0, 0, 0.891006, 0.453991, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3658, 0, 2059.48, 300.754, 57.1388, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3658, 0, 2151.47, 660.64, 33.6004, 3.08918, 0, 0, 0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3658, 0, 2277.38, 254.764, 34.7029, 3.87463, 0, 0, -0.93358, 0.358368, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3658, 0, 2824.09, 300.03, 27.43, 2.09439, 0, 0, 0.866025, 0.500001, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3658, 0, 2831.79, 822.436, 113.144, 2.72271, 0, 0, 0.978148, 0.207912, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3658, 0, 2835.51, 415.341, 20.9173, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3658, 0, 2860.1, 1095.11, 117.53, 0.471238, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3658, 0, 2868.02, 930.203, 121.029, 2.74016, 0, 0, 0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3658, 0, 2870.11, 1037.78, 115.56, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3658, 0, 2904.5, 385.574, 30.3958, 3.50812, 0, 0, -0.983254, 0.182238, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3658, 0, 2926.79, 892.296, 119.17, 0.541051, 0, 0, 0.267238, 0.963631, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3658, 0, 2939.65, 570.441, 91.4753, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3658, 0, 2948.7, 727.587, 103.686, 2.49582, 0, 0, 0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3658, 0, 3054.27, -350.856, -0.050096, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3658, 0, 2670.02, 954.971, 114.079, 2.14675, 0, 0, 0.878817, 0.477159, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3658, 0, 2522.86, 1512.94, 0.003494, 1.0472, 0, 0, 0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3658, 0, 2744.26, 786.462, 114.351, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3658, 0, 3011.42, 661.036, 90.5849, 6.24828, 0, 0, -0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 153472, 0, 1660.01, -735.278, 59.8819, 0.418879, 0, 0, 0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 153472, 0, 1741.42, -738.595, 59.6446, 0.785397, 0, 0, 0.382683, 0.92388, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 153472, 0, 1784.45, -734.314, 59.4288, 2.89725, 0, 0, 0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 153472, 0, 1957.5, -454.832, 35.6162, 5.96903, 0, 0, -0.156434, 0.987688, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 153472, 0, 1981.42, -406.394, 35.4522, 3.35105, 0, 0, -0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 153472, 0, 2040.9, -461.893, 35.9081, 2.19911, 0, 0, 0.891006, 0.453991, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 153472, 0, 2059.48, 300.754, 57.1388, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 153472, 0, 2151.47, 660.64, 33.6004, 3.08918, 0, 0, 0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 153472, 0, 2277.38, 254.764, 34.7029, 3.87463, 0, 0, -0.93358, 0.358368, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 153472, 0, 2824.09, 300.03, 27.43, 2.09439, 0, 0, 0.866025, 0.500001, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 153472, 0, 2831.79, 822.436, 113.144, 2.72271, 0, 0, 0.978148, 0.207912, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 153472, 0, 2835.51, 415.341, 20.9173, 0.401425, 0, 0, 0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 153472, 0, 2860.1, 1095.11, 117.53, 0.471238, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 153472, 0, 2868.02, 930.203, 121.029, 2.74016, 0, 0, 0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 153472, 0, 2870.11, 1037.78, 115.56, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 153472, 0, 2904.5, 385.574, 30.3958, 3.50812, 0, 0, -0.983254, 0.182238, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 153472, 0, 2926.79, 892.296, 119.17, 0.541051, 0, 0, 0.267238, 0.963631, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 153472, 0, 2939.65, 570.441, 91.4753, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 153472, 0, 2948.7, 727.587, 103.686, 2.49582, 0, 0, 0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 153472, 0, 3054.27, -350.856, -0.050096, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 153472, 0, 2670.02, 954.971, 114.079, 2.14675, 0, 0, 0.878817, 0.477159, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 153472, 0, 2522.86, 1512.94, 0.003494, 1.0472, 0, 0, 0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 153472, 0, 2744.26, 786.462, 114.351, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 153472, 0, 3011.42, 661.036, 90.5849, 6.24828, 0, 0, -0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+2, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+3, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+4, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+5, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+6, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+7, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+8, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+9, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+10, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+11, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+12, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+13, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+14, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+15, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+16, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+17, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+18, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+19, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+20, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+21, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+22, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+23, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+24, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+25, @PTEMPLATE+1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+26, @PTEMPLATE+2, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+27, @PTEMPLATE+3, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+28, @PTEMPLATE+4, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+29, @PTEMPLATE+5, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+30, @PTEMPLATE+6, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+31, @PTEMPLATE+7, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+32, @PTEMPLATE+8, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+33, @PTEMPLATE+9, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+34, @PTEMPLATE+10, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+35, @PTEMPLATE+11, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+36, @PTEMPLATE+12, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+37, @PTEMPLATE+13, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+38, @PTEMPLATE+14, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+39, @PTEMPLATE+15, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+40, @PTEMPLATE+16, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+41, @PTEMPLATE+17, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+42, @PTEMPLATE+18, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+43, @PTEMPLATE+19, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+44, @PTEMPLATE+20, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+45, @PTEMPLATE+21, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+46, @PTEMPLATE+22, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+47, @PTEMPLATE+23, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+48, @PTEMPLATE+24, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+25, 11, 'Tirisfal Glades - Water Barrel / Food Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+2, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+3, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+4, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+5, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+6, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+7, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+8, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+9, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+10, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+11, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+12, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+13, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+14, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+15, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+16, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+17, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+18, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+19, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+20, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+21, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+22, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+23, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+24, @PTEMPLATE+25, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0); + +SET @OGUID = 33785; +SET @PTEMPLATE = 4195; +-- 3658 / 153473 / Water Barrel / Food Crate + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3658, 0, 3081.58, -565.609, 131.491, 2.89725, 0, 0, 0.992546, 0.121869, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3658, 0, 1782.73, 698.258, 45.757, 4.36332, 0, 0, -0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3658, 0, 1798.7, 746.055, 48.8531, 3.15906, 0, 0, -0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3658, 0, 1808.27, 724.804, 48.9904, 4.31097, 0, 0, -0.833885, 0.551938, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3658, 0, 2159.47, -524.26, 86.4679, 0.261798, 0, 0, 0.130526, 0.991445, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3658, 0, 2166.62, -561.002, 79.265, 2.00713, 0, 0, 0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3658, 0, 2340.66, 1306.41, 34.0632, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3658, 0, 2417.42, 1596.05, 33.3333, 3.33359, 0, 0, -0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3658, 0, 2620.59, 1714.67, 0.00232, 1.65806, 0, 0, 0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3658, 0, 2960.99, 116.605, -0.017485, 3.29869, 0, 0, -0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3658, 0, 3020.86, 364.63, -0.20469, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3658, 0, 3050.19, -574.39, 122.454, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3658, 0, 3072.41, -37.3976, -0.064231, 4.20625, 0, 0, -0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3658, 0, 3100.69, -548.569, 126.714, 3.97935, 0, 0, -0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3658, 0, 2144.11, -505.623, 81.6561, 1.76278, 0, 0, 0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3658, 0, 2522.86, 1512.94, 0.003494, 1.0472, 0, 0, 0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 153473, 0, 3081.58, -565.609, 131.491, 2.89725, 0, 0, 0.992546, 0.121869, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 153473, 0, 1782.73, 698.258, 45.757, 4.36332, 0, 0, -0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 153473, 0, 1798.7, 746.055, 48.8531, 3.15906, 0, 0, -0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 153473, 0, 1808.27, 724.804, 48.9904, 4.31097, 0, 0, -0.833885, 0.551938, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 153473, 0, 2159.47, -524.26, 86.4679, 0.261798, 0, 0, 0.130526, 0.991445, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 153473, 0, 2166.62, -561.002, 79.265, 2.00713, 0, 0, 0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 153473, 0, 2340.66, 1306.41, 34.0632, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 153473, 0, 2417.42, 1596.05, 33.3333, 3.33359, 0, 0, -0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 153473, 0, 2620.59, 1714.67, 0.00232, 1.65806, 0, 0, 0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 153473, 0, 2960.99, 116.605, -0.017485, 3.29869, 0, 0, -0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 153473, 0, 3020.86, 364.63, -0.20469, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 153473, 0, 3050.19, -574.39, 122.454, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 153473, 0, 3072.41, -37.3976, -0.064231, 4.20625, 0, 0, -0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 153473, 0, 3100.69, -548.569, 126.714, 3.97935, 0, 0, -0.913545, 0.406738, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 153473, 0, 2144.11, -505.623, 81.6561, 1.76278, 0, 0, 0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 153473, 0, 2522.86, 1512.94, 0.003494, 1.0472, 0, 0, 0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+2, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+3, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+4, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+5, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+6, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+7, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+8, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+9, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+10, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+11, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+12, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+13, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+14, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+15, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@PTEMPLATE+16, 1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+17, @PTEMPLATE+1, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+18, @PTEMPLATE+2, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+19, @PTEMPLATE+3, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+20, @PTEMPLATE+4, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+21, @PTEMPLATE+5, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+22, @PTEMPLATE+6, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+23, @PTEMPLATE+7, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+24, @PTEMPLATE+8, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+25, @PTEMPLATE+9, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+26, @PTEMPLATE+10, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+27, @PTEMPLATE+11, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+28, @PTEMPLATE+12, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+29, @PTEMPLATE+13, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+30, @PTEMPLATE+14, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+31, @PTEMPLATE+15, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10), +(@OGUID+32, @PTEMPLATE+16, 'Water Barrel / Food Crate - Tirisfal Glades', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+17, 6, 'Tirisfal Glades - Water Barrel / Food Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+17, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+2, @PTEMPLATE+17, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+3, @PTEMPLATE+17, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+4, @PTEMPLATE+17, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+5, @PTEMPLATE+17, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+6, @PTEMPLATE+17, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+7, @PTEMPLATE+17, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+8, @PTEMPLATE+17, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+9, @PTEMPLATE+17, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+10, @PTEMPLATE+17, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+11, @PTEMPLATE+17, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+12, @PTEMPLATE+17, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+13, @PTEMPLATE+17, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+14, @PTEMPLATE+17, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+15, @PTEMPLATE+17, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0), +(@PTEMPLATE+16, @PTEMPLATE+17, 0, 'Water Barrel / Food Crate - Tirisfal Glades', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 6c650506f049c760d9cfe98cfee22a57aa989a26 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 14:54:23 +0100 Subject: [PATCH 081/426] Food Crate / Barrel of Milk - Silverpine Forest (#2049) --- sql/migrations/20230706171920_world.sql | 230 ++++++++++++++++++++++++ 1 file changed, 230 insertions(+) create mode 100644 sql/migrations/20230706171920_world.sql diff --git a/sql/migrations/20230706171920_world.sql b/sql/migrations/20230706171920_world.sql new file mode 100644 index 00000000000..b87926b4e26 --- /dev/null +++ b/sql/migrations/20230706171920_world.sql @@ -0,0 +1,230 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230706171920'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230706171920'); +-- Add your query below. + + +SET @OGUID = 5922; +SET @PTEMPLATE = 4434; + +-- 130 Silverpine Forest 3693 / 3705 / Food Crate / Barrel of Milk +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (35476, 35465, 35464, 35452, 35448, 35440, 35435, 35434, 35433, 35432)); +DELETE FROM `gameobject` WHERE `guid` IN (35476, 35465, 35464, 35452, 35448, 35440, 35435, 35434, 35433, 35432); +DELETE FROM `pool_gameobject` WHERE `guid` IN (35476, 35465, 35464, 35452, 35448, 35440, 35435, 35434, 35433, 35432); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3693, 0, -440.01, 1517.91, 19.547, 2.82743, 0, 0, 0.987688, 0.156436, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3693, 0, -438.84, 1560.23, 19.7135, 5.98648, 0, 0, -0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3693, 0, -414.799, 1454.96, 27.3901, 4.55531, 0, 0, -0.760406, 0.649449, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3693, 0, -391.284, 1426.28, 26.8483, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3693, 0, -379.69, 1644.21, 10.2635, 3.35105, 0, 0, -0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3693, 0, -360.588, 1523.31, 24.9354, 1.43117, 0, 0, 0.656058, 0.75471, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3693, 0, -336.097, 1530.41, 17.986, 1.93731, 0, 0, 0.824125, 0.566408, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3693, 0, -333.433, 1547.02, 25.2864, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3693, 0, -329.974, 1469.82, 31.7723, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3693, 0, -757.72, 1501.36, 17.1799, 3.07177, 0, 0, 0.999391, 0.0349061, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3693, 0, -753.444, 1474.05, 17.7094, 2.44346, 0, 0, 0.939692, 0.34202, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3693, 0, -713.535, 1548.99, 18.1574, 4.90438, 0, 0, -0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3693, 0, -707.737, 1585.45, 17.3471, 5.95157, 0, 0, -0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3693, 0, -444.452, 1536.93, 19.6359, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3693, 0, -405.568, 1568.97, 19.5441, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3693, 0, -355.94, 1584.68, 18.0469, 2.40855, 0, 0, 0.93358, 0.358368, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3705, 0, -440.01, 1517.91, 19.547, 2.82743, 0, 0, 0.987688, 0.156436, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3705, 0, -438.84, 1560.23, 19.7135, 5.98648, 0, 0, -0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3705, 0, -414.799, 1454.96, 27.3901, 4.55531, 0, 0, -0.760406, 0.649449, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3705, 0, -391.284, 1426.28, 26.8483, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3705, 0, -379.69, 1644.21, 10.2635, 3.35105, 0, 0, -0.994521, 0.104536, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3705, 0, -360.588, 1523.31, 24.9354, 1.43117, 0, 0, 0.656058, 0.75471, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3705, 0, -336.097, 1530.41, 17.986, 1.93731, 0, 0, 0.824125, 0.566408, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3705, 0, -333.433, 1547.02, 25.2864, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3705, 0, -329.974, 1469.82, 31.7723, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3705, 0, -757.72, 1501.36, 17.1799, 3.07177, 0, 0, 0.999391, 0.0349061, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3705, 0, -753.444, 1474.05, 17.7094, 2.44346, 0, 0, 0.939692, 0.34202, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3705, 0, -713.535, 1548.99, 18.1574, 4.90438, 0, 0, -0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3705, 0, -707.737, 1585.45, 17.3471, 5.95157, 0, 0, -0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3705, 0, -444.452, 1536.93, 19.6359, 0.855211, 0, 0, 0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3705, 0, -405.568, 1568.97, 19.5441, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3705, 0, -355.94, 1584.68, 18.0469, 2.40855, 0, 0, 0.93358, 0.358368, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+2, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+3, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+4, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+5, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+6, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+7, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+8, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+9, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+10, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+11, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+12, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+13, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+14, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+15, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+16, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+17, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+18, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+19, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+20, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+21, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+22, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+23, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+24, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+25, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+26, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+27, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+28, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+29, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+30, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+31, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+32, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+17, 7, 'Silverpine Forest - Food Crate / Barrel of Milk (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+17, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+2, @PTEMPLATE+17, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+3, @PTEMPLATE+17, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+4, @PTEMPLATE+17, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+5, @PTEMPLATE+17, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+6, @PTEMPLATE+17, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+7, @PTEMPLATE+17, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+8, @PTEMPLATE+17, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+9, @PTEMPLATE+17, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+10, @PTEMPLATE+17, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+11, @PTEMPLATE+17, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+12, @PTEMPLATE+17, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+13, @PTEMPLATE+17, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+14, @PTEMPLATE+17, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+15, @PTEMPLATE+17, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+16, @PTEMPLATE+17, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0); + +SET @OGUID = 35256; +SET @PTEMPLATE = 2434; + +-- 3694 / 3705 / Food Crate / Barrel of Milk +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3694, 0, -473.667, 834.02, 96.8562, 4.24115, 0, 0, -0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3694, 0, -218.906, 1007.25, 72.4293, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3694, 0, -198.906, 947.331, 65.6911, 4.67748, 0, 0, -0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3694, 0, -173.425, 905.788, 65.4189, 3.73501, 0, 0, -0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3694, 0, -82.0719, 822.652, 63.9224, 5.48033, 0, 0, -0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3694, 0, -55.3036, 985.734, 68.2029, 5.95157, 0, 0, -0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3694, 0, -8.97906, 1358.51, 60.8921, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3694, 0, 27.1249, 774.611, 63.6768, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3694, 0, 68.8188, 763.112, 63.665, 3.08918, 0, 0, 0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3694, 0, 77.636, 786.515, 64.1426, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3694, 0, -184.691, 978.297, 65.5431, 4.10153, 0, 0, -0.887011, 0.461749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3694, 0, -116.698, 803.473, 65.1213, 2.37364, 0, 0, 0.927183, 0.374608, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3694, 0, -74.2399, 862.856, 65.2583, 4.76475, 0, 0, -0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3694, 0, -245.751, 808.898, 73.9651, 0.715585, 0, 0, 0.350207, 0.936672, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3705, 0, -473.667, 834.02, 96.8562, 4.24115, 0, 0, -0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3705, 0, -218.906, 1007.25, 72.4293, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3705, 0, -198.906, 947.331, 65.6911, 4.67748, 0, 0, -0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3705, 0, -173.425, 905.788, 65.4189, 3.73501, 0, 0, -0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3705, 0, -82.0719, 822.652, 63.9224, 5.48033, 0, 0, -0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3705, 0, -55.3036, 985.734, 68.2029, 5.95157, 0, 0, -0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3705, 0, -8.97906, 1358.51, 60.8921, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3705, 0, 27.1249, 774.611, 63.6768, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3705, 0, 68.8188, 763.112, 63.665, 3.08918, 0, 0, 0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3705, 0, 77.636, 786.515, 64.1426, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3705, 0, -184.691, 978.297, 65.5431, 4.10153, 0, 0, -0.887011, 0.461749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3705, 0, -116.698, 803.473, 65.1213, 2.37364, 0, 0, 0.927183, 0.374608, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3705, 0, -74.2399, 862.856, 65.2583, 4.76475, 0, 0, -0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3705, 0, -245.751, 808.898, 73.9651, 0.715585, 0, 0, 0.350207, 0.936672, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+2, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+3, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+4, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+5, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+6, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+7, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+8, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+9, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+10, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+11, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+12, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+13, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@PTEMPLATE+14, 1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+15, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+16, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+17, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+18, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+19, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+20, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+21, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+22, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+23, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+24, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+25, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+26, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+27, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10), +(@OGUID+28, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Silverpine Forest', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+15, 6, 'Silverpine Forest - Food Crate / Barrel of Milk (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+15, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+2, @PTEMPLATE+15, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+3, @PTEMPLATE+15, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+4, @PTEMPLATE+15, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+5, @PTEMPLATE+15, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+6, @PTEMPLATE+15, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+7, @PTEMPLATE+15, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+8, @PTEMPLATE+15, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+9, @PTEMPLATE+15, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+10, @PTEMPLATE+15, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+11, @PTEMPLATE+15, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+12, @PTEMPLATE+15, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+13, @PTEMPLATE+15, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0), +(@PTEMPLATE+14, @PTEMPLATE+15, 0, 'Food Crate / Barrel of Milk - Silverpine Forest', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From fe52f72be340b8cdd421c710affdb0852207ac63 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 14:54:34 +0100 Subject: [PATCH 082/426] Water Barrel / Food Crate - Teldrassil (#2050) --- sql/migrations/20230706172408_world.sql | 210 ++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 sql/migrations/20230706172408_world.sql diff --git a/sql/migrations/20230706172408_world.sql b/sql/migrations/20230706172408_world.sql new file mode 100644 index 00000000000..258efd5358a --- /dev/null +++ b/sql/migrations/20230706172408_world.sql @@ -0,0 +1,210 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230706172408'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230706172408'); +-- Add your query below. + + +SET @OGUID = 24631; +SET @PTEMPLATE = 211; + +-- 141 Teldrassil / 3658 / 3719 / Water Barrel / Food Crate +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (49609, 49610, 49611, 49612, 49613, 49614, 49615, 49733, 49734, 49735, 49736, 49737, 88038, 88039, 88040, 88041, 88042, 88043, 88044, 88045, 88046, 88047, 88048, 88049)); +DELETE FROM `gameobject` WHERE `guid` IN (49609, 49610, 49611, 49612, 49613, 49614, 49615, 49733, 49734, 49735, 49736, 49737, 88038, 88039, 88040, 88041, 88042, 88043, 88044, 88045, 88046, 88047, 88048, 88049); +DELETE FROM `pool_gameobject` WHERE `guid` IN (49609, 49610, 49611, 49612, 49613, 49614, 49615, 49733, 49734, 49735, 49736, 49737, 88038, 88039, 88040, 88041, 88042, 88043, 88044, 88045, 88046, 88047, 88048, 88049); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3658, 1, 9107.97, 1857.2, 1328.11, -0.191986, 0, 0, 0.095846, -0.995396, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3658, 1, 9199.46, 1402.7, 1311.31, -2.67035, 0, 0, 0.97237, -0.233445, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3658, 1, 9554.9, 1897.06, 1314.51, 1.16937, 0, 0, 0.551937, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3658, 1, 9757.14, 1577.77, 1299.06, -0.645772, 0, 0, 0.317305, -0.948324, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3658, 1, 9804.29, 966.447, 1308.77, -1.65806, 0, 0, 0.737277, -0.67559, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3658, 1, 9824.22, 447.278, 1307.79, -0.558505, 0, 0, 0.275637, -0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3658, 1, 9908.29, 985.799, 1354.8, 2.74017, 0, 0, 0.979925, 0.199368, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3658, 1, 10031.4, 287.298, 1323.28, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3658, 1, 10410.2, 1624.57, 1288.32, 2.58309, 0, 0, 0.961262, 0.275637, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3658, 1, 10503.2, 1983.78, 1326.53, -1.93731, 0, 0, 0.824126, -0.566406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3658, 1, 10648.4, 2078.58, 1332.94, 1.20428, 0, 0, 0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3658, 1, 10747.1, 2177.42, 1331.39, -1.58825, 0, 0, 0.71325, -0.700909, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3658, 1, 9160.14, 1834.33, 1328.23, 6.16101, 0, 0, -0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3658, 1, 9260.97, 928.353, 1312.19, 2.53072, 0, 0, 0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3658, 1, 9362.97, 1721.68, 1308.9, 4.60767, 0, 0, -0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3658, 1, 9621.72, 464.489, 1313.66, 0.0523589, 0, 0, 0.0261765, 0.999657, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3658, 1, 9707.31, 1547.49, 1253.82, 4.50295, 0, 0, -0.777145, 0.629321, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3658, 1, 9749.05, 905.292, 1295.42, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3658, 1, 9766.65, 877.956, 1297.7, 5.96903, 0, 0, -0.156434, 0.987688, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3658, 1, 9784.01, 1552.09, 1299.06, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3658, 1, 9848.67, 1460.8, 1274.43, 2.42601, 0, 0, 0.936672, 0.350207, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3658, 1, 9888.37, 988.712, 1313.83, 5.67232, 0, 0, -0.300705, 0.953717, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3658, 1, 9898.87, 385.769, 1309.68, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3658, 1, 9910.45, 987.04, 1328.3, 4.36332, 0, 0, -0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3658, 1, 10148.7, 1698.23, 1326.05, 3.56047, 0, 0, -0.978148, 0.207912, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3658, 1, 10346.4, 1924.97, 1322.22, 1.6057, 0, 0, 0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3658, 1, 10427, 1892.49, 1320.14, 6.16101, 0, 0, -0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3658, 1, 10670.3, 1848.21, 1324.54, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3658, 1, 10886.4, 2082.36, 1327.24, 6.05629, 0, 0, -0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3719, 1, 9107.97, 1857.2, 1328.11, -0.191986, 0, 0, 0.095846, -0.995396, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3719, 1, 9199.46, 1402.7, 1311.31, -2.67035, 0, 0, 0.97237, -0.233445, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3719, 1, 9554.9, 1897.06, 1314.51, 1.16937, 0, 0, 0.551937, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3719, 1, 9757.14, 1577.77, 1299.06, -0.645772, 0, 0, 0.317305, -0.948324, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3719, 1, 9804.29, 966.447, 1308.77, -1.65806, 0, 0, 0.737277, -0.67559, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3719, 1, 9824.22, 447.278, 1307.79, -0.558505, 0, 0, 0.275637, -0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3719, 1, 9908.29, 985.799, 1354.8, 2.74017, 0, 0, 0.979925, 0.199368, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3719, 1, 10031.4, 287.298, 1323.28, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3719, 1, 10410.2, 1624.57, 1288.32, 2.58309, 0, 0, 0.961262, 0.275637, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3719, 1, 10503.2, 1983.78, 1326.53, -1.93731, 0, 0, 0.824126, -0.566406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3719, 1, 10648.4, 2078.58, 1332.94, 1.20428, 0, 0, 0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3719, 1, 10747.1, 2177.42, 1331.39, -1.58825, 0, 0, 0.71325, -0.700909, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3719, 1, 9160.14, 1834.33, 1328.23, 6.16101, 0, 0, -0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3719, 1, 9260.97, 928.353, 1312.19, 2.53072, 0, 0, 0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3719, 1, 9362.97, 1721.68, 1308.9, 4.60767, 0, 0, -0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3719, 1, 9621.72, 464.489, 1313.66, 0.0523589, 0, 0, 0.0261765, 0.999657, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3719, 1, 9707.31, 1547.49, 1253.82, 4.50295, 0, 0, -0.777145, 0.629321, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3719, 1, 9749.05, 905.292, 1295.42, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3719, 1, 9766.65, 877.956, 1297.7, 5.96903, 0, 0, -0.156434, 0.987688, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3719, 1, 9784.01, 1552.09, 1299.06, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3719, 1, 9848.67, 1460.8, 1274.43, 2.42601, 0, 0, 0.936672, 0.350207, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3719, 1, 9888.37, 988.712, 1313.83, 5.67232, 0, 0, -0.300705, 0.953717, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3719, 1, 9898.87, 385.769, 1309.68, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3719, 1, 9910.45, 987.04, 1328.3, 4.36332, 0, 0, -0.819152, 0.573577, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3719, 1, 10148.7, 1698.23, 1326.05, 3.56047, 0, 0, -0.978148, 0.207912, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 3719, 1, 10346.4, 1924.97, 1322.22, 1.6057, 0, 0, 0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 3719, 1, 10427, 1892.49, 1320.14, 6.16101, 0, 0, -0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 3719, 1, 10670.3, 1848.21, 1324.54, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 3719, 1, 10886.4, 2082.36, 1327.24, 6.05629, 0, 0, -0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+2, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+3, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+4, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+5, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+6, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+7, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+8, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+9, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+10, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+11, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+12, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+13, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+14, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+15, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+16, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+17, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+18, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+19, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+20, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+21, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+22, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+23, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+24, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+25, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+26, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+27, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+28, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@PTEMPLATE+29, 1, 'Water Barrel / Food Crate - Teldrassil', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+30, @PTEMPLATE+1, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+31, @PTEMPLATE+2, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+32, @PTEMPLATE+3, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+33, @PTEMPLATE+4, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+34, @PTEMPLATE+5, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+35, @PTEMPLATE+6, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+36, @PTEMPLATE+7, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+37, @PTEMPLATE+8, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+38, @PTEMPLATE+9, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+39, @PTEMPLATE+10, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+40, @PTEMPLATE+11, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+41, @PTEMPLATE+12, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+42, @PTEMPLATE+13, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+43, @PTEMPLATE+14, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+44, @PTEMPLATE+15, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+45, @PTEMPLATE+16, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+46, @PTEMPLATE+17, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+47, @PTEMPLATE+18, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+48, @PTEMPLATE+19, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+49, @PTEMPLATE+20, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+50, @PTEMPLATE+21, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+51, @PTEMPLATE+22, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+52, @PTEMPLATE+23, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+53, @PTEMPLATE+24, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+54, @PTEMPLATE+25, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+55, @PTEMPLATE+26, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+56, @PTEMPLATE+27, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+57, @PTEMPLATE+28, 'Water Barrel / Food Crate - Teldrassil', 0, 10), +(@OGUID+58, @PTEMPLATE+29, 'Water Barrel / Food Crate - Teldrassil', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+30, 13, 'Teldrassil - Water Barrel / Food Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+2, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+3, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+4, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+5, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+6, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+7, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+8, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+9, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+10, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+11, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+12, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+13, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+14, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+15, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+16, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+17, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+18, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+19, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+20, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+21, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+22, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+23, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+24, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+25, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+26, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+27, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+28, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0), +(@PTEMPLATE+29, @PTEMPLATE+30, 0, 'Water Barrel / Food Crate - Teldrassil', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 065276d2d9c4e12d8af7b3b01c546396b4ecb64f Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 14:54:44 +0100 Subject: [PATCH 083/426] Food Crate / Barrel of Milk - Darkshore (#2051) --- sql/migrations/20230706181314_world.sql | 252 ++++++++++++++++++++++++ 1 file changed, 252 insertions(+) create mode 100644 sql/migrations/20230706181314_world.sql diff --git a/sql/migrations/20230706181314_world.sql b/sql/migrations/20230706181314_world.sql new file mode 100644 index 00000000000..9609cfed51e --- /dev/null +++ b/sql/migrations/20230706181314_world.sql @@ -0,0 +1,252 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230706181314'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230706181314'); +-- Add your query below. + + +SET @OGUID = 38985; +SET @PTEMPLATE = 2723; + +-- 148 Darkshore / 3662 / 3705 / Food Crate / Barrel of Milk +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (48497, 48517, 48523, 48552, 48560, 48561, 48617, 48631, 48649, 48703, 48768)); +DELETE FROM `gameobject` WHERE `guid` IN (48497, 48517, 48523, 48552, 48560, 48561, 48617, 48631, 48649, 48703, 48768); +DELETE FROM `pool_gameobject` WHERE `guid` IN (48497, 48517, 48523, 48552, 48560, 48561, 48617, 48631, 48649, 48703, 48768); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3662, 1, 4615.11, 55.1214, 69.5783, 0.733038, 0, 0, 0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3662, 1, 4678.39, 854.646, 0.067275, -0.855212, 0, 0, 0.414693, -0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3662, 1, 5004.29, 595.286, -0.009527, -2.04204, 0, 0, 0.85264, -0.522498, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3662, 1, 5689.33, 535.131, -0.138535, -2.94961, 0, 0, 0.995396, -0.095846, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3662, 1, 5847, 362.63, 21.3515, 0.261799, 0, 0, 0.130526, 0.991445, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3662, 1, 5969.26, 306.881, 21.6972, 0.942478, 0, 0, 0.45399, 0.891007, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3662, 1, 6533.32, 449.291, 7.14775, -1.0472, 0, 0, 0.5, -0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3662, 1, 6855.48, -519.677, 42.0321, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3662, 1, 6950.54, 451.91, -0.431376, 2.1293, 0, 0, 0.87462, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3662, 1, 7149.68, -693.176, 47.652, 1.65806, 0, 0, 0.737277, 0.67559, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3662, 1, 7726.56, -759.902, -0.136312, 0.610865, 0, 0, 0.300706, 0.953717, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3662, 1, 4426.08, 893.556, -0.042792, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3662, 1, 4549.36, 147.76, 59.6469, 3.29869, 0, 0, -0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3662, 1, 4617.77, 637.363, 6.31306, 5.00909, 0, 0, -0.594823, 0.803857, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3662, 1, 4647.16, 148.539, 57.4412, 2.18166, 0, 0, 0.887011, 0.461749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3662, 1, 4650.62, 30.5862, 65.7867, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3662, 1, 4829.92, 708.399, -0.045442, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3662, 1, 4917.39, 321.139, 36.771, 3.73501, 0, 0, -0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3662, 1, 5145.29, 617.566, -0.037272, 0.558504, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3662, 1, 5315.07, 564.513, -0.190099, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3662, 1, 5834.3, 539.571, -0.057862, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3662, 1, 5876.97, 302.757, 21.2154, 1.41372, 0, 0, 0.649447, 0.760406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3662, 1, 5885.77, 346.45, 21.2875, 4.64258, 0, 0, -0.731354, 0.681998, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3662, 1, 5975.67, 354.649, 21.6378, 2.3911, 0, 0, 0.930417, 0.366502, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3662, 1, 6008.86, 357.106, 21.7976, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3662, 1, 6220.96, 597.689, -0.113123, 0.506145, 0, 0, 0.25038, 0.968148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3662, 1, 6409.04, 534.059, 8.64784, 4.01426, 0, 0, -0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3662, 1, 6440.99, 357.079, 23.3301, 3.57793, 0, 0, -0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3662, 1, 6780.85, 518.787, -0.042954, 0.139624, 0, 0, 0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3662, 1, 6803.02, -415.348, 40.6263, 4.85202, 0, 0, -0.656058, 0.75471, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3662, 1, 6808.16, -369.19, 40.3489, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3662, 1, 6885.71, -481.783, 40.1436, 5.044, 0, 0, -0.580703, 0.814116, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3662, 1, 7178.08, -811.719, 39.9113, 5.044, 0, 0, -0.580703, 0.814116, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3662, 1, 7217.81, -840.879, 36.1172, 2.21657, 0, 0, 0.894934, 0.446199, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3662, 1, 7317.87, -363.313, -0.36937, 2.32129, 0, 0, 0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3662, 1, 7495.82, -711.328, -0.171201, 6.26573, 0, 0, -0.00872612, 0.999962, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3705, 1, 4615.11, 55.1214, 69.5783, 0.733038, 0, 0, 0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3705, 1, 4678.39, 854.646, 0.067275, -0.855212, 0, 0, 0.414693, -0.909961, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3705, 1, 5004.29, 595.286, -0.009527, -2.04204, 0, 0, 0.85264, -0.522498, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3705, 1, 5689.33, 535.131, -0.138535, -2.94961, 0, 0, 0.995396, -0.095846, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3705, 1, 5847, 362.63, 21.3515, 0.261799, 0, 0, 0.130526, 0.991445, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3705, 1, 5969.26, 306.881, 21.6972, 0.942478, 0, 0, 0.45399, 0.891007, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3705, 1, 6533.32, 449.291, 7.14775, -1.0472, 0, 0, 0.5, -0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3705, 1, 6855.48, -519.677, 42.0321, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3705, 1, 6950.54, 451.91, -0.431376, 2.1293, 0, 0, 0.87462, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3705, 1, 7149.68, -693.176, 47.652, 1.65806, 0, 0, 0.737277, 0.67559, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3705, 1, 7726.56, -759.902, -0.136312, 0.610865, 0, 0, 0.300706, 0.953717, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3705, 1, 4426.08, 893.556, -0.042792, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3705, 1, 4549.36, 147.76, 59.6469, 3.29869, 0, 0, -0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3705, 1, 4617.77, 637.363, 6.31306, 5.00909, 0, 0, -0.594823, 0.803857, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3705, 1, 4647.16, 148.539, 57.4412, 2.18166, 0, 0, 0.887011, 0.461749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3705, 1, 4650.62, 30.5862, 65.7867, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3705, 1, 4829.92, 708.399, -0.045442, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3705, 1, 4917.39, 321.139, 36.771, 3.73501, 0, 0, -0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 3705, 1, 5145.29, 617.566, -0.037272, 0.558504, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 3705, 1, 5315.07, 564.513, -0.190099, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 3705, 1, 5834.3, 539.571, -0.057862, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 3705, 1, 5876.97, 302.757, 21.2154, 1.41372, 0, 0, 0.649447, 0.760406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 3705, 1, 5885.77, 346.45, 21.2875, 4.64258, 0, 0, -0.731354, 0.681998, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 3705, 1, 5975.67, 354.649, 21.6378, 2.3911, 0, 0, 0.930417, 0.366502, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 3705, 1, 6008.86, 357.106, 21.7976, 0.366518, 0, 0, 0.182235, 0.983255, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 3705, 1, 6220.96, 597.689, -0.113123, 0.506145, 0, 0, 0.25038, 0.968148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 3705, 1, 6409.04, 534.059, 8.64784, 4.01426, 0, 0, -0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 3705, 1, 6440.99, 357.079, 23.3301, 3.57793, 0, 0, -0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 3705, 1, 6780.85, 518.787, -0.042954, 0.139624, 0, 0, 0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 3705, 1, 6803.02, -415.348, 40.6263, 4.85202, 0, 0, -0.656058, 0.75471, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 3705, 1, 6808.16, -369.19, 40.3489, 3.28124, 0, 0, -0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 3705, 1, 6885.71, -481.783, 40.1436, 5.044, 0, 0, -0.580703, 0.814116, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 3705, 1, 7178.08, -811.719, 39.9113, 5.044, 0, 0, -0.580703, 0.814116, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 3705, 1, 7217.81, -840.879, 36.1172, 2.21657, 0, 0, 0.894934, 0.446199, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 3705, 1, 7317.87, -363.313, -0.36937, 2.32129, 0, 0, 0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 3705, 1, 7495.82, -711.328, -0.171201, 6.26573, 0, 0, -0.00872612, 0.999962, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+2, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+3, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+4, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+5, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+6, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+7, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+8, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+9, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+10, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+11, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+12, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+13, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+14, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+15, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+16, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+17, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+18, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+19, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+20, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+21, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+22, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+23, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+24, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+25, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+26, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+27, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+28, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+29, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+30, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+31, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+32, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+33, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+34, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+35, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@PTEMPLATE+36, 1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+32, @PTEMPLATE+32, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+33, @PTEMPLATE+33, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+34, @PTEMPLATE+34, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+35, @PTEMPLATE+35, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+36, @PTEMPLATE+36, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+37, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+38, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+39, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+40, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+41, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+42, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+43, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+44, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+45, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+46, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+47, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+48, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+49, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+50, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+51, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+52, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+53, @PTEMPLATE+17, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+54, @PTEMPLATE+18, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+55, @PTEMPLATE+19, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+56, @PTEMPLATE+20, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+57, @PTEMPLATE+21, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+58, @PTEMPLATE+22, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+59, @PTEMPLATE+23, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+60, @PTEMPLATE+24, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+61, @PTEMPLATE+25, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+62, @PTEMPLATE+26, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+63, @PTEMPLATE+27, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+64, @PTEMPLATE+28, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+65, @PTEMPLATE+29, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+66, @PTEMPLATE+30, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+67, @PTEMPLATE+31, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+68, @PTEMPLATE+32, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+69, @PTEMPLATE+33, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+70, @PTEMPLATE+34, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+71, @PTEMPLATE+35, 'Food Crate / Barrel of Milk - Darkshore', 0, 10), +(@OGUID+72, @PTEMPLATE+36, 'Food Crate / Barrel of Milk - Darkshore', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+37, 17, 'Darkshore - Food Crate / Barrel of Milk (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+2, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+3, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+4, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+5, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+6, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+7, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+8, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+9, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+10, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+11, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+12, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+13, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+14, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+15, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+16, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+17, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+18, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+19, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+20, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+21, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+22, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+23, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+24, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+25, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+26, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+27, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+28, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+29, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+30, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+31, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+32, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+33, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+34, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+35, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0), +(@PTEMPLATE+36, @PTEMPLATE+37, 0, 'Food Crate / Barrel of Milk - Darkshore', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From dc6c474f5275bc3c0887642d9774ca338dcd3f62 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 14:54:52 +0100 Subject: [PATCH 084/426] Water Barrel / Food Crate - Mulgore (#2052) --- sql/migrations/20230706181549_world.sql | 270 ++++++++++++++++++++++++ 1 file changed, 270 insertions(+) create mode 100644 sql/migrations/20230706181549_world.sql diff --git a/sql/migrations/20230706181549_world.sql b/sql/migrations/20230706181549_world.sql new file mode 100644 index 00000000000..e9f8ab7a470 --- /dev/null +++ b/sql/migrations/20230706181549_world.sql @@ -0,0 +1,270 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230706181549'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230706181549'); +-- Add your query below. + + +SET @OGUID = 42985; +SET @PTEMPLATE = 3461; + +-- 215 Mulgore / 3658 / 3719 / Water Barrel / Food Crate +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (20532, 20531, 20530, 20529, 20528, 20527, 20526, 20525, 18434, 18305, 18304, 18303, 18302, 18301, 18300, 88072, 88073, 88074, 88075, 88076, 88077, 88078, 88079, 88080, 88081, 88082, 88083, 88084, 88085, 88086)); +DELETE FROM `gameobject` WHERE `guid` IN (20532, 20531, 20530, 20529, 20528, 20527, 20526, 20525, 18434, 18305, 18304, 18303, 18302, 18301, 18300, 88072, 88073, 88074, 88075, 88076, 88077, 88078, 88079, 88080, 88081, 88082, 88083, 88084, 88085, 88086); +DELETE FROM `pool_gameobject` WHERE `guid` IN (20532, 20531, 20530, 20529, 20528, 20527, 20526, 20525, 18434, 18305, 18304, 18303, 18302, 18301, 18300, 88072, 88073, 88074, 88075, 88076, 88077, 88078, 88079, 88080, 88081, 88082, 88083, 88084, 88085, 88086); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3658, 1, -2750.28, -438.494, -2.84708, 0.942478, 0, 0, 0.45399, 0.891007, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3658, 1, -2416.05, 498.563, 64.3684, -1.27409, 0, 0, 0.594823, -0.803857, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3658, 1, -2246.88, -313.829, -9.4249, 2.74017, 0, 0, 0.979925, 0.199368, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3658, 1, -2212.89, -376.176, -8.69453, 1.69297, 0, 0, 0.748956, 0.66262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3658, 1, -2189.53, -420.679, -4.39675, 1.0472, 0, 0, 0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3658, 1, -1925.28, 417.42, 133.59, -2.04204, 0, 0, 0.85264, -0.522498, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3658, 1, -1917.36, -711.039, 3.66848, -1.6057, 0, 0, 0.71934, -0.694658, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3658, 1, -1894.44, 357.08, 107.787, 3.14159, 0, 0, 1, 0, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3658, 1, -1774.41, -1175.7, 116.892, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3658, 1, -1756.74, -1256.07, 113.383, -1.43117, 0, 0, 0.656059, -0.75471, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3658, 1, -1604.49, -1224.06, 136.574, -1.3439, 0, 0, 0.622515, -0.782608, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3658, 1, -1577.29, -1191.23, 142.176, 1.0472, 0, 0, 0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3658, 1, -1466.17, -980.293, 148.621, -2.09439, 0, 0, 0.866025, -0.5, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3658, 1, -1343.92, -1127.75, 141.794, 0.506145, 0, 0, 0.25038, 0.968148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3658, 1, -825.687, -23.4734, -13.1944, 1.69297, 0, 0, 0.748956, 0.66262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3658, 1, -2403.57, -384.54, -1.8884, 1.98967, 0, 0, 0.83867, 0.54464, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3658, 1, -2396.98, 233.64, 49.2076, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3658, 1, -2385.23, -341.884, -0.730277, 5.96903, 0, 0, -0.156434, 0.987688, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3658, 1, -2376.23, -396.456, -4.13281, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3658, 1, -2350.38, -353.396, -0.749603, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3658, 1, -2333.26, -311.568, -9.42485, 5.68977, 0, 0, -0.292372, 0.956305, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3658, 1, -2315.09, -437.497, -5.4384, 5.63741, 0, 0, -0.317305, 0.948324, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3658, 1, -2310.38, 408.501, 48.9929, 3.59538, 0, 0, -0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3658, 1, -2294.59, -437.631, -5.4384, 3.73501, 0, 0, -0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3658, 1, -2245.74, -294.46, -9.4249, 3.3685, 0, 0, -0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3658, 1, -2237.79, -403.044, -9.4249, 5.21854, 0, 0, -0.507538, 0.861629, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3658, 1, -1929.27, -708.178, 3.47104, 0.663223, 0, 0, 0.325567, 0.945519, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3658, 1, -1926.13, -699.123, 3.19337, 2.18166, 0, 0, 0.887011, 0.461749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3658, 1, -1799.57, -1222.8, 111.591, 6.12611, 0, 0, -0.0784588, 0.996917, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3658, 1, -1749.22, -1044.76, 119.983, 5.34071, 0, 0, -0.45399, 0.891007, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3658, 1, -1534.2, -986.509, 150.715, 2.23402, 0, 0, 0.898793, 0.438373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3658, 1, -1506.34, 361.808, 63.0597, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3658, 1, -802.414, -17.0872, -13.176, 3.76991, 0, 0, -0.951056, 0.309017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3658, 1, -745.544, -148.284, -28.629, 5.95157, 0, 0, -0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3658, 1, -1795.6, -1283.6, 113.066, 5.00909, 0, 0, -0.594823, 0.803857, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3658, 1, -1720.32, 423.076, 94.2915, 5.06146, 0, 0, -0.573576, 0.819152, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3658, 1, -1574.96, -1077.88, 103.695, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3658, 1, -1467.83, -1075.49, 143.206, 1.58825, 0, 0, 0.71325, 0.70091, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3658, 1, -1454.7, -1002.51, 147.17, 0.610863, 0, 0, 0.300705, 0.953717, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3719, 1, -2750.28, -438.494, -2.84708, 0.942478, 0, 0, 0.45399, 0.891007, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3719, 1, -2416.05, 498.563, 64.3684, -1.27409, 0, 0, 0.594823, -0.803857, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3719, 1, -2246.88, -313.829, -9.4249, 2.74017, 0, 0, 0.979925, 0.199368, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3719, 1, -2212.89, -376.176, -8.69453, 1.69297, 0, 0, 0.748956, 0.66262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3719, 1, -2189.53, -420.679, -4.39675, 1.0472, 0, 0, 0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3719, 1, -1925.28, 417.42, 133.59, -2.04204, 0, 0, 0.85264, -0.522498, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3719, 1, -1917.36, -711.039, 3.66848, -1.6057, 0, 0, 0.71934, -0.694658, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3719, 1, -1894.44, 357.08, 107.787, 3.14159, 0, 0, 1, 0, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3719, 1, -1774.41, -1175.7, 116.892, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3719, 1, -1756.74, -1256.07, 113.383, -1.43117, 0, 0, 0.656059, -0.75471, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3719, 1, -1604.49, -1224.06, 136.574, -1.3439, 0, 0, 0.622515, -0.782608, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3719, 1, -1577.29, -1191.23, 142.176, 1.0472, 0, 0, 0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3719, 1, -1466.17, -980.293, 148.621, -2.09439, 0, 0, 0.866025, -0.5, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3719, 1, -1343.92, -1127.75, 141.794, 0.506145, 0, 0, 0.25038, 0.968148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3719, 1, -825.687, -23.4734, -13.1944, 1.69297, 0, 0, 0.748956, 0.66262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 3719, 1, -2403.57, -384.54, -1.8884, 1.98967, 0, 0, 0.83867, 0.54464, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 3719, 1, -2396.98, 233.64, 49.2076, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 3719, 1, -2385.23, -341.884, -0.730277, 5.96903, 0, 0, -0.156434, 0.987688, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 3719, 1, -2376.23, -396.456, -4.13281, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 3719, 1, -2350.38, -353.396, -0.749603, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 3719, 1, -2333.26, -311.568, -9.42485, 5.68977, 0, 0, -0.292372, 0.956305, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 3719, 1, -2315.09, -437.497, -5.4384, 5.63741, 0, 0, -0.317305, 0.948324, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 3719, 1, -2310.38, 408.501, 48.9929, 3.59538, 0, 0, -0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 3719, 1, -2294.59, -437.631, -5.4384, 3.73501, 0, 0, -0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 3719, 1, -2245.74, -294.46, -9.4249, 3.3685, 0, 0, -0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 3719, 1, -2237.79, -403.044, -9.4249, 5.21854, 0, 0, -0.507538, 0.861629, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 3719, 1, -1929.27, -708.178, 3.47104, 0.663223, 0, 0, 0.325567, 0.945519, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 3719, 1, -1926.13, -699.123, 3.19337, 2.18166, 0, 0, 0.887011, 0.461749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 3719, 1, -1799.57, -1222.8, 111.591, 6.12611, 0, 0, -0.0784588, 0.996917, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 3719, 1, -1749.22, -1044.76, 119.983, 5.34071, 0, 0, -0.45399, 0.891007, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 3719, 1, -1534.2, -986.509, 150.715, 2.23402, 0, 0, 0.898793, 0.438373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 3719, 1, -1506.34, 361.808, 63.0597, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 3719, 1, -802.414, -17.0872, -13.176, 3.76991, 0, 0, -0.951056, 0.309017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+73, 3719, 1, -745.544, -148.284, -28.629, 5.95157, 0, 0, -0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+74, 3719, 1, -1795.6, -1283.6, 113.066, 5.00909, 0, 0, -0.594823, 0.803857, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+75, 3719, 1, -1720.32, 423.076, 94.2915, 5.06146, 0, 0, -0.573576, 0.819152, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+76, 3719, 1, -1574.96, -1077.88, 103.695, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+77, 3719, 1, -1467.83, -1075.49, 143.206, 1.58825, 0, 0, 0.71325, 0.70091, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+78, 3719, 1, -1454.7, -1002.51, 147.17, 0.610863, 0, 0, 0.300705, 0.953717, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+2, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+3, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+4, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+5, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+6, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+7, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+8, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+9, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+10, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+11, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+12, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+13, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+14, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+15, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+16, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+17, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+18, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+19, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+20, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+21, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+22, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+23, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+24, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+25, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+26, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+27, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+28, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+29, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+30, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+31, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+32, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+33, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+34, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+35, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+36, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+37, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+38, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@PTEMPLATE+39, 1, 'Water Barrel / Food Crate - Mulgore', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+32, @PTEMPLATE+32, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+33, @PTEMPLATE+33, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+34, @PTEMPLATE+34, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+35, @PTEMPLATE+35, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+36, @PTEMPLATE+36, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+37, @PTEMPLATE+37, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+38, @PTEMPLATE+38, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+39, @PTEMPLATE+39, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+40, @PTEMPLATE+1, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+41, @PTEMPLATE+2, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+42, @PTEMPLATE+3, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+43, @PTEMPLATE+4, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+44, @PTEMPLATE+5, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+45, @PTEMPLATE+6, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+46, @PTEMPLATE+7, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+47, @PTEMPLATE+8, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+48, @PTEMPLATE+9, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+49, @PTEMPLATE+10, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+50, @PTEMPLATE+11, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+51, @PTEMPLATE+12, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+52, @PTEMPLATE+13, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+53, @PTEMPLATE+14, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+54, @PTEMPLATE+15, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+55, @PTEMPLATE+16, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+56, @PTEMPLATE+17, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+57, @PTEMPLATE+18, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+58, @PTEMPLATE+19, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+59, @PTEMPLATE+20, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+60, @PTEMPLATE+21, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+61, @PTEMPLATE+22, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+62, @PTEMPLATE+23, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+63, @PTEMPLATE+24, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+64, @PTEMPLATE+25, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+65, @PTEMPLATE+26, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+66, @PTEMPLATE+27, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+67, @PTEMPLATE+28, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+68, @PTEMPLATE+29, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+69, @PTEMPLATE+30, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+70, @PTEMPLATE+31, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+71, @PTEMPLATE+32, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+72, @PTEMPLATE+33, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+73, @PTEMPLATE+34, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+74, @PTEMPLATE+35, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+75, @PTEMPLATE+36, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+76, @PTEMPLATE+37, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+77, @PTEMPLATE+38, 'Water Barrel / Food Crate - Mulgore', 0, 10), +(@OGUID+78, @PTEMPLATE+39, 'Water Barrel / Food Crate - Mulgore', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+40, 18, 'Mulgore - Water Barrel / Food Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+2, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+3, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+4, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+5, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+6, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+7, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+8, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+9, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+10, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+11, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+12, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+13, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+14, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+15, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+16, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+17, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+18, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+19, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+20, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+21, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+22, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+23, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+24, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+25, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+26, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+27, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+28, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+29, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+30, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+31, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+32, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+33, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+34, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+35, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+36, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+37, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+38, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0), +(@PTEMPLATE+39, @PTEMPLATE+40, 0, 'Water Barrel / Food Crate - Mulgore', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 1547ddd60603438ead4cd89456fc9c2184d06884 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 15:49:12 +0100 Subject: [PATCH 085/426] Barrel of Melon Juice / Food Crate - Hillsbrad Foothills (#2053) --- sql/migrations/20230706182002_world.sql | 265 ++++++++++++++++++++++++ 1 file changed, 265 insertions(+) create mode 100644 sql/migrations/20230706182002_world.sql diff --git a/sql/migrations/20230706182002_world.sql b/sql/migrations/20230706182002_world.sql new file mode 100644 index 00000000000..8c7ae10f68a --- /dev/null +++ b/sql/migrations/20230706182002_world.sql @@ -0,0 +1,265 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230706182002'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230706182002'); +-- Add your query below. + + +SET @OGUID = 43570; +SET @PTEMPLATE = 3902; + +-- 267 Hillsbrad Foothills / 3659 / 3695 / Barrel of Melon Juice / Food Crate + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (28525, 21248, 21240, 21233, 21217, 20914, 20886, 20881, 20875, 20856, 20818)); +DELETE FROM `gameobject` WHERE `guid` IN (28525, 21248, 21240, 21233, 21217, 20914, 20886, 20881, 20875, 20856, 20818); +DELETE FROM `pool_gameobject` WHERE `guid` IN (28525, 21248, 21240, 21233, 21217, 20914, 20886, 20881, 20875, 20856, 20818); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3659, 0, -1429.34, -1051.7, -0.013546, 1.98968, 0, 0, 0.838671, 0.544639, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3659, 0, -1345.93, -1232.94, 49.9038, -1.74533, 0, 0, 0.766044, -0.642788, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3659, 0, -1172.82, 102.157, 0.00608, 2.68781, 0, 0, 0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3659, 0, -1084.94, -105.958, 0.012003, 3.05433, 0, 0, 0.999048, 0.043619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3659, 0, -910.543, -1058.96, 30.3488, 1.16937, 0, 0, 0.551937, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3659, 0, -876.26, 213.034, 8.80425, 1.46608, 0, 0, 0.669131, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3659, 0, -674.383, -438.202, 31.6388, -2.72271, 0, 0, 0.978148, -0.207912, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3659, 0, -470.151, -1324.74, 52.6928, -1.95477, 0, 0, 0.829038, -0.559193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3659, 0, -467.071, -1619.44, 64.8736, -1.95477, 0, 0, 0.829038, -0.559193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3659, 0, -336.972, -2.99089, 55.9979, 0.471239, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3659, 0, -59.0124, -958.949, 54.274, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3659, 0, -1297.37, -1255.56, 49.9041, 0.628317, 0, 0, 0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3659, 0, -1276.21, -1179.72, 38.5963, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3659, 0, -1249.82, -927.29, -0.015134, 3.3685, 0, 0, -0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3659, 0, -1150.98, 27.0033, -0.015397, 1.01229, 0, 0, 0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3659, 0, -1137.44, -790.067, -0.009159, 1.02974, 0, 0, 0.492423, 0.870356, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3659, 0, -1123.84, 262.643, -0.021794, 0.645772, 0, 0, 0.317305, 0.948324, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3659, 0, -1087.3, -243.595, -0.021101, 2.91469, 0, 0, 0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3659, 0, -1048.97, -365.649, -0.008339, 2.51327, 0, 0, 0.951056, 0.309017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3659, 0, -1020.07, -747.77, -0.023203, 1.62316, 0, 0, 0.725374, 0.688355, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3659, 0, -943.374, -950.019, 30.3479, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3659, 0, -911.625, -554.969, 6.87962, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3659, 0, -901.457, 225.039, 9.75889, 4.93928, 0, 0, -0.622514, 0.782609, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3659, 0, -869.421, -564.084, 11.1044, 0.925024, 0, 0, 0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3659, 0, -863.585, 247.975, 10.9814, 0.191985, 0, 0, 0.0958452, 0.995396, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3659, 0, -608.251, -1508.05, 54.0769, 2.70526, 0, 0, 0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3659, 0, -598.52, -1100.38, 62.9858, 5.70723, 0, 0, -0.284015, 0.95882, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3659, 0, -587.213, -1463.01, 53.8151, 5.39307, 0, 0, -0.430511, 0.902586, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3659, 0, -550.181, -105.454, 46.5692, 4.67748, 0, 0, -0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3659, 0, -541.353, -1554.32, 53.2002, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3659, 0, -514.694, -1367.44, 52.4409, 1.16937, 0, 0, 0.551936, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3659, 0, -469.436, -1452.64, 87.8496, 0.0698117, 0, 0, 0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3659, 0, -442.87, 120.625, 56.8584, 6.03884, 0, 0, -0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3659, 0, -438.285, -1549.84, 64.9463, 0.226892, 0, 0, 0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3659, 0, -161.367, -860.03, 56.6391, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3659, 0, -10.1058, -897.522, 57.546, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3659, 0, -420.441, -64.4363, 54.0478, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3659, 0, 410.113, -964.287, 110.628, 5.98648, 0, 0, -0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3695, 0, -1429.34, -1051.7, -0.013546, 1.98968, 0, 0, 0.838671, 0.544639, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3695, 0, -1345.93, -1232.94, 49.9038, -1.74533, 0, 0, 0.766044, -0.642788, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3695, 0, -1172.82, 102.157, 0.00608, 2.68781, 0, 0, 0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3695, 0, -1084.94, -105.958, 0.012003, 3.05433, 0, 0, 0.999048, 0.043619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3695, 0, -910.543, -1058.96, 30.3488, 1.16937, 0, 0, 0.551937, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3695, 0, -876.26, 213.034, 8.80425, 1.46608, 0, 0, 0.669131, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3695, 0, -674.383, -438.202, 31.6388, -2.72271, 0, 0, 0.978148, -0.207912, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3695, 0, -470.151, -1324.74, 52.6928, -1.95477, 0, 0, 0.829038, -0.559193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3695, 0, -467.071, -1619.44, 64.8736, -1.95477, 0, 0, 0.829038, -0.559193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3695, 0, -336.972, -2.99089, 55.9979, 0.471239, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3695, 0, -59.0124, -958.949, 54.274, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3695, 0, -1297.37, -1255.56, 49.9041, 0.628317, 0, 0, 0.309016, 0.951057, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3695, 0, -1276.21, -1179.72, 38.5963, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3695, 0, -1249.82, -927.29, -0.015134, 3.3685, 0, 0, -0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3695, 0, -1150.98, 27.0033, -0.015397, 1.01229, 0, 0, 0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3695, 0, -1137.44, -790.067, -0.009159, 1.02974, 0, 0, 0.492423, 0.870356, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 3695, 0, -1123.84, 262.643, -0.021794, 0.645772, 0, 0, 0.317305, 0.948324, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 3695, 0, -1087.3, -243.595, -0.021101, 2.91469, 0, 0, 0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 3695, 0, -1048.97, -365.649, -0.008339, 2.51327, 0, 0, 0.951056, 0.309017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 3695, 0, -1020.07, -747.77, -0.023203, 1.62316, 0, 0, 0.725374, 0.688355, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 3695, 0, -943.374, -950.019, 30.3479, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 3695, 0, -911.625, -554.969, 6.87962, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 3695, 0, -901.457, 225.039, 9.75889, 4.93928, 0, 0, -0.622514, 0.782609, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 3695, 0, -869.421, -564.084, 11.1044, 0.925024, 0, 0, 0.446198, 0.894935, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 3695, 0, -863.585, 247.975, 10.9814, 0.191985, 0, 0, 0.0958452, 0.995396, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 3695, 0, -608.251, -1508.05, 54.0769, 2.70526, 0, 0, 0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 3695, 0, -598.52, -1100.38, 62.9858, 5.70723, 0, 0, -0.284015, 0.95882, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 3695, 0, -587.213, -1463.01, 53.8151, 5.39307, 0, 0, -0.430511, 0.902586, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 3695, 0, -550.181, -105.454, 46.5692, 4.67748, 0, 0, -0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 3695, 0, -541.353, -1554.32, 53.2002, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 3695, 0, -514.694, -1367.44, 52.4409, 1.16937, 0, 0, 0.551936, 0.833886, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 3695, 0, -469.436, -1452.64, 87.8496, 0.0698117, 0, 0, 0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 3695, 0, -442.87, 120.625, 56.8584, 6.03884, 0, 0, -0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 3695, 0, -438.285, -1549.84, 64.9463, 0.226892, 0, 0, 0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+73, 3695, 0, -161.367, -860.03, 56.6391, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+74, 3695, 0, -10.1058, -897.522, 57.546, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+75, 3695, 0, -420.441, -64.4363, 54.0478, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+76, 3695, 0, 410.113, -964.287, 110.628, 5.98648, 0, 0, -0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+2, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+3, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+4, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+5, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+6, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+7, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+8, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+9, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+10, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+11, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+12, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+13, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+14, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+15, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+16, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+17, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+18, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+19, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+20, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+21, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+22, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+23, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+24, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+25, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+26, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+27, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+28, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+29, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+30, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+31, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+32, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+33, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+34, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+35, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+36, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+37, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@PTEMPLATE+38, 1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+32, @PTEMPLATE+32, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+33, @PTEMPLATE+33, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+34, @PTEMPLATE+34, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+35, @PTEMPLATE+35, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+36, @PTEMPLATE+36, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+37, @PTEMPLATE+37, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+38, @PTEMPLATE+38, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+39, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+40, @PTEMPLATE+2, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+41, @PTEMPLATE+3, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+42, @PTEMPLATE+4, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+43, @PTEMPLATE+5, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+44, @PTEMPLATE+6, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+45, @PTEMPLATE+7, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+46, @PTEMPLATE+8, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+47, @PTEMPLATE+9, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+48, @PTEMPLATE+10, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+49, @PTEMPLATE+11, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+50, @PTEMPLATE+12, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+51, @PTEMPLATE+13, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+52, @PTEMPLATE+14, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+53, @PTEMPLATE+15, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+54, @PTEMPLATE+16, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+55, @PTEMPLATE+17, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+56, @PTEMPLATE+18, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+57, @PTEMPLATE+19, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+58, @PTEMPLATE+20, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+59, @PTEMPLATE+21, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+60, @PTEMPLATE+22, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+61, @PTEMPLATE+23, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+62, @PTEMPLATE+24, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+63, @PTEMPLATE+25, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+64, @PTEMPLATE+26, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+65, @PTEMPLATE+27, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+66, @PTEMPLATE+28, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+67, @PTEMPLATE+29, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+68, @PTEMPLATE+30, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+69, @PTEMPLATE+31, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+70, @PTEMPLATE+32, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+71, @PTEMPLATE+33, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+72, @PTEMPLATE+34, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+73, @PTEMPLATE+35, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+74, @PTEMPLATE+36, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+75, @PTEMPLATE+37, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10), +(@OGUID+76, @PTEMPLATE+38, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+39, 17, 'Hillsbrad Foothills - Barrel of Melon Juice / Food Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+2, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+3, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+4, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+5, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+6, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+7, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+8, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+9, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+10, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+11, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+12, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+13, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+14, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+15, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+16, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+17, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+18, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+19, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+20, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+21, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+22, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+23, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+24, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+25, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+26, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+27, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+28, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+29, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+30, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+31, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+32, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+33, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+34, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+35, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+36, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+37, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0), +(@PTEMPLATE+38, @PTEMPLATE+39, 0, 'Barrel of Melon Juice / Food Crate - Hillsbrad Foothills', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From b9fd6cb8c98b9a73b86e9965db244cf77e93d5bb Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 17:07:35 +0100 Subject: [PATCH 086/426] Barrel of Melon Juice / Food Crate - Ashenvale (#2054) --- sql/migrations/20230706182138_world.sql | 222 ++++++++++++++++++++++++ 1 file changed, 222 insertions(+) create mode 100644 sql/migrations/20230706182138_world.sql diff --git a/sql/migrations/20230706182138_world.sql b/sql/migrations/20230706182138_world.sql new file mode 100644 index 00000000000..92b0e9b81cf --- /dev/null +++ b/sql/migrations/20230706182138_world.sql @@ -0,0 +1,222 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230706182138'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230706182138'); +-- Add your query below. + + +SET @OGUID = 42360; +SET @PTEMPLATE = 4212; + +-- 331 Ashenvale 3659 / 3695 / Barrel of Melon Juice / Food Crate +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (47896, 47897, 47898, 47899, 47900, 47976, 47977, 47978, 47979, 47980, 47981)); +DELETE FROM `gameobject` WHERE `guid` IN (47896, 47897, 47898, 47899, 47900, 47976, 47977, 47978, 47979, 47980, 47981); +DELETE FROM `pool_gameobject` WHERE `guid` IN (47896, 47897, 47898, 47899, 47900, 47976, 47977, 47978, 47979, 47980, 47981); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3659, 1, 1711.78, -3438.29, 144.293, 0.820305, 0, 0, 0.398749, 0.91706, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3659, 1, 1768.68, -2032.74, 109.836, 2.32129, 0, 0, 0.91706, 0.398749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3659, 1, 2188.77, -3203.47, 103.816, 2.30383, 0, 0, 0.913545, 0.406737, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3659, 1, 2321.68, -1433.86, 87.0652, -1.91986, 0, 0, 0.819152, -0.573576, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3659, 1, 2471.38, -2152.43, 202.284, 2.23402, 0, 0, 0.898794, 0.438371, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3659, 1, 2506.74, -3429.32, 104.121, -2.44346, 0, 0, 0.939693, -0.34202, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3659, 1, 2751.67, 687.588, 104.479, -2.37365, 0, 0, 0.927184, -0.374607, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3659, 1, 2941.95, -106.883, 96.973, -1.69297, 0, 0, 0.748956, -0.66262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3659, 1, 3179.82, -280.294, 121.935, -1.01229, 0, 0, 0.48481, -0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3659, 1, 3268.22, -601.467, 161.684, -1.22173, 0, 0, 0.573576, -0.819152, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3659, 1, 3351.38, 990.952, 4.481, 1.44862, 0, 0, 0.66262, 0.748956, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3659, 1, 1578.86, -2511.86, 98.2333, 6.23083, 0, 0, -0.0261765, 0.999657, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3659, 1, 1733.59, -3462.76, 144.32, 6.24828, 0, 0, -0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3659, 1, 1893.49, -2643.31, 83.303, 0.279252, 0, 0, 0.139173, 0.990268, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3659, 1, 2191.35, -3324.79, 121.881, 6.21337, 0, 0, -0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3659, 1, 2198.34, -1431.95, 90.1891, 2.49582, 0, 0, 0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3659, 1, 2261.5, -3475.08, 122.688, 1.53589, 0, 0, 0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3659, 1, 2384.05, -1188.15, 90.7989, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3659, 1, 2392.46, -3412.58, 109.834, 4.4855, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3659, 1, 2409.38, -3462.7, 92.8319, 4.57276, 0, 0, -0.754709, 0.656059, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3659, 1, 2770.5, -2946.57, 143.687, 1.44862, 0, 0, 0.66262, 0.748956, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3659, 1, 2955.71, -2827.86, 212.757, 0.244346, 0, 0, 0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3659, 1, 3014.11, -86.2626, 99.7133, 4.57276, 0, 0, -0.754709, 0.656059, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3659, 1, 3038.85, -181.763, 104.629, 1.0472, 0, 0, 0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3659, 1, 3103.12, 155.436, 26.1187, 0.942477, 0, 0, 0.45399, 0.891007, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3659, 1, 3164.44, -126.437, 101.086, 4.15388, 0, 0, -0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3659, 1, 3254.42, 128.79, 11.1681, 4.86947, 0, 0, -0.649447, 0.760406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3659, 1, 3261.61, -347.651, 153.75, 3.4383, 0, 0, -0.989016, 0.147811, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3659, 1, 3456.91, -359.061, 134.502, 5.21854, 0, 0, -0.507538, 0.861629, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3659, 1, 3815.17, 163.152, 7.47225, 2.9496, 0, 0, 0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3659, 1, 1680.01, -3430.6, 144.527, 1.58825, 0, 0, 0.71325, 0.70091, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3695, 1, 1711.78, -3438.29, 144.293, 0.820305, 0, 0, 0.398749, 0.91706, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3695, 1, 1768.68, -2032.74, 109.836, 2.32129, 0, 0, 0.91706, 0.398749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3695, 1, 2188.77, -3203.47, 103.816, 2.30383, 0, 0, 0.913545, 0.406737, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3695, 1, 2321.68, -1433.86, 87.0652, -1.91986, 0, 0, 0.819152, -0.573576, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3695, 1, 2471.38, -2152.43, 202.284, 2.23402, 0, 0, 0.898794, 0.438371, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3695, 1, 2506.74, -3429.32, 104.121, -2.44346, 0, 0, 0.939693, -0.34202, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3695, 1, 2751.67, 687.588, 104.479, -2.37365, 0, 0, 0.927184, -0.374607, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3695, 1, 2941.95, -106.883, 96.973, -1.69297, 0, 0, 0.748956, -0.66262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3695, 1, 3179.82, -280.294, 121.935, -1.01229, 0, 0, 0.48481, -0.87462, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3695, 1, 3268.22, -601.467, 161.684, -1.22173, 0, 0, 0.573576, -0.819152, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3695, 1, 3351.38, 990.952, 4.481, 1.44862, 0, 0, 0.66262, 0.748956, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3695, 1, 1578.86, -2511.86, 98.2333, 6.23083, 0, 0, -0.0261765, 0.999657, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3695, 1, 1733.59, -3462.76, 144.32, 6.24828, 0, 0, -0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3695, 1, 1893.49, -2643.31, 83.303, 0.279252, 0, 0, 0.139173, 0.990268, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3695, 1, 2191.35, -3324.79, 121.881, 6.21337, 0, 0, -0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3695, 1, 2198.34, -1431.95, 90.1891, 2.49582, 0, 0, 0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3695, 1, 2261.5, -3475.08, 122.688, 1.53589, 0, 0, 0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3695, 1, 2384.05, -1188.15, 90.7989, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3695, 1, 2392.46, -3412.58, 109.834, 4.4855, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3695, 1, 2409.38, -3462.7, 92.8319, 4.57276, 0, 0, -0.754709, 0.656059, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3695, 1, 2770.5, -2946.57, 143.687, 1.44862, 0, 0, 0.66262, 0.748956, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3695, 1, 2955.71, -2827.86, 212.757, 0.244346, 0, 0, 0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3695, 1, 3014.11, -86.2626, 99.7133, 4.57276, 0, 0, -0.754709, 0.656059, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 3695, 1, 3038.85, -181.763, 104.629, 1.0472, 0, 0, 0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 3695, 1, 3103.12, 155.436, 26.1187, 0.942477, 0, 0, 0.45399, 0.891007, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 3695, 1, 3164.44, -126.437, 101.086, 4.15388, 0, 0, -0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 3695, 1, 3254.42, 128.79, 11.1681, 4.86947, 0, 0, -0.649447, 0.760406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 3695, 1, 3261.61, -347.651, 153.75, 3.4383, 0, 0, -0.989016, 0.147811, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 3695, 1, 3456.91, -359.061, 134.502, 5.21854, 0, 0, -0.507538, 0.861629, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 3695, 1, 3815.17, 163.152, 7.47225, 2.9496, 0, 0, 0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 3695, 1, 1680.01, -3430.6, 144.527, 1.58825, 0, 0, 0.71325, 0.70091, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+2, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+3, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+4, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+5, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+6, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+7, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+8, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+9, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+10, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+11, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+12, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+13, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+14, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+15, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+16, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+17, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+18, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+19, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+20, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+21, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+22, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+23, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+24, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+25, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+26, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+27, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+28, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+29, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+30, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@PTEMPLATE+31, 1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+32, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+33, @PTEMPLATE+2, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+34, @PTEMPLATE+3, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+35, @PTEMPLATE+4, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+36, @PTEMPLATE+5, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+37, @PTEMPLATE+6, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+38, @PTEMPLATE+7, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+39, @PTEMPLATE+8, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+40, @PTEMPLATE+9, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+41, @PTEMPLATE+10, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+42, @PTEMPLATE+11, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+43, @PTEMPLATE+12, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+44, @PTEMPLATE+13, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+45, @PTEMPLATE+14, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+46, @PTEMPLATE+15, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+47, @PTEMPLATE+16, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+48, @PTEMPLATE+17, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+49, @PTEMPLATE+18, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+50, @PTEMPLATE+19, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+51, @PTEMPLATE+20, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+52, @PTEMPLATE+21, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+53, @PTEMPLATE+22, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+54, @PTEMPLATE+23, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+55, @PTEMPLATE+24, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+56, @PTEMPLATE+25, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+57, @PTEMPLATE+26, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+58, @PTEMPLATE+27, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+59, @PTEMPLATE+28, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+60, @PTEMPLATE+29, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+61, @PTEMPLATE+30, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10), +(@OGUID+62, @PTEMPLATE+31, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+32, 14, 'Ashenvale - Barrel of Melon Juice / Food Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+2, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+3, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+4, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+5, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+6, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+7, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+8, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+9, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+10, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+11, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+12, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+13, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+14, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+15, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+16, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+17, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+18, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+19, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+20, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+21, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+22, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+23, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+24, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+25, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+26, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+27, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+28, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+29, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+30, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0), +(@PTEMPLATE+31, @PTEMPLATE+32, 0, 'Barrel of Melon Juice / Food Crate - Ashenvale', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 2d7fba2fd8d1cf444269d808623e60b409ce37fa Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 17:12:02 +0100 Subject: [PATCH 087/426] Barrel of Melon Juice / Food Crate - Stonetalon Mountains (#2055) --- sql/migrations/20230706182419_world.sql | 164 ++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 sql/migrations/20230706182419_world.sql diff --git a/sql/migrations/20230706182419_world.sql b/sql/migrations/20230706182419_world.sql new file mode 100644 index 00000000000..2ee6e01d7bb --- /dev/null +++ b/sql/migrations/20230706182419_world.sql @@ -0,0 +1,164 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230706182419'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230706182419'); +-- Add your query below. + + +SET @OGUID = 900; +SET @PTEMPLATE = 2129; + +-- 406 Stonetalon Mountains / 3659 / 3695 / Barrel of Melon Juice / Food Crate +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (47569, 47560, 47559, 47558, 47557, 47552, 47460, 40717)); +DELETE FROM `gameobject` WHERE `guid` IN (47569, 47560, 47559, 47558, 47557, 47552, 47460, 40717); +DELETE FROM `pool_gameobject` WHERE `guid` IN (47569, 47560, 47559, 47558, 47557, 47552, 47460, 40717); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3659, 1, 2697.92, 1456.44, 234.873, -1.0472, 0, 0, 0.5, -0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3659, 1, 2735.5, 1494.79, 236.814, 0.663223, 0, 0, 0.325567, 0.945519, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3695, 1, 2697.92, 1456.44, 234.873, -1.0472, 0, 0, 0.5, -0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3695, 1, 2735.5, 1494.79, 236.814, 0.663223, 0, 0, 0.325567, 0.945519, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Barrel of Melon Juice / Food Crate - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+2, 1, 'Barrel of Melon Juice / Food Crate - Stonetalon Mountains', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Stonetalon Mountains', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Barrel of Melon Juice / Food Crate - Stonetalon Mountains', 0, 10), +(@OGUID+3, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Stonetalon Mountains', 0, 10), +(@OGUID+4, @PTEMPLATE+2, 'Barrel of Melon Juice / Food Crate - Stonetalon Mountains', 0, 10); + +SET @OGUID = 28070; +SET @PTEMPLATE = 14377; + +-- 3662 / 3705 / Food Crate / Barrel of Milk +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3662, 1, 162.03, -900.954, 5.84075, 2.16421, 0, 0, 0.882948, 0.469472, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3662, 1, -192.374, -301.287, 11.5468, 3.01942, 0, 0, 0.998135, 0.061049, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3662, 1, -6.22917, -509.885, -41.3079, -1.25664, 0, 0, 0.587785, -0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3662, 1, 878.17, 360.789, 23.2176, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3662, 1, 125.913, -335.311, 3.59643, -2.96706, 0, 0, 0.996195, -0.087156, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3662, 1, 141.558, -580.347, -0.440365, -1.44862, 0, 0, 0.66262, -0.748956, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3662, 1, 993.306, 1015.48, 104.813, -1.81514, 0, 0, 0.788011, -0.615661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3662, 1, -177.643, -349.401, 8.65873, 4.13643, 0, 0, -0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3662, 1, -153.953, -236.606, 5.65507, 4.81711, 0, 0, -0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3662, 1, -77.3075, -489.413, -46.1329, 5.75959, 0, 0, -0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3662, 1, 25.8173, -697.654, -19.4137, 4.5204, 0, 0, -0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3662, 1, 51.1671, -783.412, -7.49603, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3662, 1, 113.305, -595.729, -1.4753, 3.38594, 0, 0, -0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3662, 1, 117.363, -802.816, -7.49603, 5.93412, 0, 0, -0.173648, 0.984808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3662, 1, 121.48, -385.271, 1.43976, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3662, 1, 881.798, 927.564, 114.484, 2.87979, 0, 0, 0.991445, 0.130528, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3662, 1, 987.439, -388.693, 8.42977, 6.00393, 0, 0, -0.139173, 0.990268, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3662, 1, 1237.18, -0.219184, -4.03782, 6.21337, 0, 0, -0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3705, 1, 162.03, -900.954, 5.84075, 2.16421, 0, 0, 0.882948, 0.469472, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3705, 1, -192.374, -301.287, 11.5468, 3.01942, 0, 0, 0.998135, 0.061049, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3705, 1, -6.22917, -509.885, -41.3079, -1.25664, 0, 0, 0.587785, -0.809017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3705, 1, 878.17, 360.789, 23.2176, 1.8675, 0, 0, 0.803857, 0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3705, 1, 125.913, -335.311, 3.59643, -2.96706, 0, 0, 0.996195, -0.087156, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3705, 1, 141.558, -580.347, -0.440365, -1.44862, 0, 0, 0.66262, -0.748956, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3705, 1, 993.306, 1015.48, 104.813, -1.81514, 0, 0, 0.788011, -0.615661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3705, 1, -177.643, -349.401, 8.65873, 4.13643, 0, 0, -0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3705, 1, -153.953, -236.606, 5.65507, 4.81711, 0, 0, -0.66913, 0.743145, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3705, 1, -77.3075, -489.413, -46.1329, 5.75959, 0, 0, -0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3705, 1, 25.8173, -697.654, -19.4137, 4.5204, 0, 0, -0.771625, 0.636078, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3705, 1, 51.1671, -783.412, -7.49603, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3705, 1, 113.305, -595.729, -1.4753, 3.38594, 0, 0, -0.992546, 0.12187, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3705, 1, 117.363, -802.816, -7.49603, 5.93412, 0, 0, -0.173648, 0.984808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3705, 1, 121.48, -385.271, 1.43976, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3705, 1, 881.798, 927.564, 114.484, 2.87979, 0, 0, 0.991445, 0.130528, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3705, 1, 987.439, -388.693, 8.42977, 6.00393, 0, 0, -0.139173, 0.990268, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3705, 1, 1237.18, -0.219184, -4.03782, 6.21337, 0, 0, -0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+2, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+3, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+4, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+5, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+6, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+7, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+8, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+9, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+10, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+11, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+12, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+13, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+14, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+15, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+16, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+17, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@PTEMPLATE+18, 1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+19, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+20, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+21, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+22, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+23, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+24, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+25, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+26, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+27, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+28, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+29, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+30, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+31, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+32, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+33, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+34, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+35, @PTEMPLATE+17, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10), +(@OGUID+36, @PTEMPLATE+18, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+19, 9, 'Stonetalon Mountains - Food Crate / Barrel of Milk (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+2, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+3, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+4, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+5, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+6, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+7, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+8, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+9, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+10, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+11, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+12, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+13, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+14, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+15, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+16, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+17, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0), +(@PTEMPLATE+18, @PTEMPLATE+19, 0, 'Food Crate / Barrel of Milk - Stonetalon Mountains', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 017c08292de06fc9a1d228eed066b65cd6223a9e Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 17:24:35 +0100 Subject: [PATCH 088/426] Food Crate / Barrel of Milk - Undercity (#2056) --- sql/migrations/20230706182605_world.sql | 186 ++++++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 sql/migrations/20230706182605_world.sql diff --git a/sql/migrations/20230706182605_world.sql b/sql/migrations/20230706182605_world.sql new file mode 100644 index 00000000000..c78897eb70c --- /dev/null +++ b/sql/migrations/20230706182605_world.sql @@ -0,0 +1,186 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230706182605'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230706182605'); +-- Add your query below. + + +SET @OGUID = 19510; +SET @PTEMPLATE = 4451; + +-- 1497 Undercity / 3662 / 3705 / Food Crate / Barrel of Milk +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (45009, 45010, 45011, 45012, 45013, 55606, 55636, 55674)); +DELETE FROM `gameobject` WHERE `guid` IN (45009, 45010, 45011, 45012, 45013, 55606, 55636, 55674); +DELETE FROM `pool_gameobject` WHERE `guid` IN (45009, 45010, 45011, 45012, 45013, 55606, 55636, 55674); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3662, 0, 1455.03, 120.887, -60.1912, -2.11185, 0, 0, 0.870356, -0.492423, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3662, 0, 1503.96, 344.823, -60.0877, -0.10472, 0, 0, 0.052336, -0.99863, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3662, 0, 1526.48, 167.26, -42.6944, 2.09439, 0, 0, 0.866025, 0.5, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3662, 0, 1604.67, 204.438, -55.343, 1.67552, 0, 0, 0.743145, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3662, 0, 1660.31, 174.48, -41.3685, 3.00195, 0, 0, 0.997563, 0.0697661, 180, 180, 255, 1, 0, 0, 0, 10), +(@OGUID+6, 3662, 0, 1666.5, 115.051, -61.4739, 4.03171, 0, 0, -0.902585, 0.430512, 180, 180, 255, 1, 0, 0, 0, 10), +(@OGUID+7, 3662, 0, 1685.6, 140.026, -60.4732, -1.51844, 0, 0, 0.688354, -0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3662, 0, 1378.8, 129.229, -62.3218, 4.60767, 0, 0, -0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3662, 0, 1385.12, 373.351, -66.0055, 3.90954, 0, 0, -0.927183, 0.374608, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3662, 0, 1419.91, 182.331, -62.1451, 2.74016, 0, 0, 0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3662, 0, 1424.73, 371.461, -66.0016, 2.79252, 0, 0, 0.984807, 0.173652, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3662, 0, 1425.11, 425.659, -84.9655, 5.98648, 0, 0, -0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3662, 0, 1453.82, 71.8349, -62.2834, 3.12412, 0, 0, 0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3662, 0, 1504.66, 396.178, -62.2864, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3662, 0, 1514.07, 58.333, -62.3423, 3.78737, 0, 0, -0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3662, 0, 1530.09, 304.787, -41.3709, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3662, 0, 1542.7, 264.242, -43.1032, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3662, 0, 1554.96, 199.588, -43.1024, 5.61996, 0, 0, -0.325567, 0.945519, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3662, 0, 1591.44, 281.779, -55.3429, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3662, 0, 1634.82, 199.081, -43.1023, 3.03684, 0, 0, 0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3662, 0, 1663.39, 77.7893, -62.1818, 2.14675, 0, 0, 0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3662, 0, 1668.99, 313.588, -41.9005, 3.42085, 0, 0, -0.990268, 0.139175, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3662, 0, 1722.61, 181.031, -60.7738, 3.4383, 0, 0, -0.989016, 0.147811, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3662, 0, 1737.67, 121.413, -60.1134, 5.23599, 0, 0, -0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3662, 0, 1742.27, 28.6836, -59.317, 0.0523589, 0, 0, 0.0261765, 0.999657, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3705, 0, 1455.03, 120.887, -60.1912, -2.11185, 0, 0, 0.870356, -0.492423, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3705, 0, 1503.96, 344.823, -60.0877, -0.10472, 0, 0, 0.052336, -0.99863, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3705, 0, 1526.48, 167.26, -42.6944, 2.09439, 0, 0, 0.866025, 0.5, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3705, 0, 1604.67, 204.438, -55.343, 1.67552, 0, 0, 0.743145, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3705, 0, 1660.31, 174.48, -41.3685, 3.00195, 0, 0, 0.997563, 0.0697661, 180, 180, 255, 1, 0, 0, 0, 10), +(@OGUID+31, 3705, 0, 1666.5, 115.051, -61.4739, 4.03171, 0, 0, -0.902585, 0.430512, 180, 180, 255, 1, 0, 0, 0, 10), +(@OGUID+32, 3705, 0, 1685.6, 140.026, -60.4732, -1.51844, 0, 0, 0.688354, -0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3705, 0, 1378.8, 129.229, -62.3218, 4.60767, 0, 0, -0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3705, 0, 1385.12, 373.351, -66.0055, 3.90954, 0, 0, -0.927183, 0.374608, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3705, 0, 1419.91, 182.331, -62.1451, 2.74016, 0, 0, 0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3705, 0, 1424.73, 371.461, -66.0016, 2.79252, 0, 0, 0.984807, 0.173652, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3705, 0, 1425.11, 425.659, -84.9655, 5.98648, 0, 0, -0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3705, 0, 1453.82, 71.8349, -62.2834, 3.12412, 0, 0, 0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3705, 0, 1504.66, 396.178, -62.2864, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3705, 0, 1514.07, 58.333, -62.3423, 3.78737, 0, 0, -0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3705, 0, 1530.09, 304.787, -41.3709, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3705, 0, 1542.7, 264.242, -43.1032, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3705, 0, 1554.96, 199.588, -43.1024, 5.61996, 0, 0, -0.325567, 0.945519, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3705, 0, 1591.44, 281.779, -55.3429, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3705, 0, 1634.82, 199.081, -43.1023, 3.03684, 0, 0, 0.998629, 0.0523532, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3705, 0, 1663.39, 77.7893, -62.1818, 2.14675, 0, 0, 0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3705, 0, 1668.99, 313.588, -41.9005, 3.42085, 0, 0, -0.990268, 0.139175, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3705, 0, 1722.61, 181.031, -60.7738, 3.4383, 0, 0, -0.989016, 0.147811, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3705, 0, 1737.67, 121.413, -60.1134, 5.23599, 0, 0, -0.5, 0.866025, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3705, 0, 1742.27, 28.6836, -59.317, 0.0523589, 0, 0, 0.0261765, 0.999657, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+2, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+3, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+4, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+5, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+6, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+7, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+8, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+9, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+10, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+11, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+12, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+13, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+14, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+15, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+16, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+17, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+18, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+19, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+20, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+21, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+22, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+23, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+24, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@PTEMPLATE+25, 1, 'Food Crate / Barrel of Milk - Undercity', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+26, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+27, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+28, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+29, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+30, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+31, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+32, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+33, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+34, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+35, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+36, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+37, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+38, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+39, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+40, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+41, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+42, @PTEMPLATE+17, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+43, @PTEMPLATE+18, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+44, @PTEMPLATE+19, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+45, @PTEMPLATE+20, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+46, @PTEMPLATE+21, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+47, @PTEMPLATE+22, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+48, @PTEMPLATE+23, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+49, @PTEMPLATE+24, 'Food Crate / Barrel of Milk - Undercity', 0, 10), +(@OGUID+50, @PTEMPLATE+25, 'Food Crate / Barrel of Milk - Undercity', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+26, 11, 'Undercity - Food Crate / Barrel of Milk (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+2, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+3, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+4, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+5, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+6, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+7, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+8, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+9, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+10, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+11, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+12, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+13, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+14, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+15, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+16, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+17, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+18, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+19, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+20, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+21, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+22, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+23, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+24, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0), +(@PTEMPLATE+25, @PTEMPLATE+26, 0, 'Food Crate / Barrel of Milk - Undercity', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 7855a4babb81bbcdfa930ab16a82de4c06505cfd Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 7 Jul 2023 17:32:32 +0100 Subject: [PATCH 089/426] Food Crate / Barrel of Milk - Stormwind (#2057) --- sql/migrations/20230706182749_world.sql | 329 ++++++++++++++++++++++++ 1 file changed, 329 insertions(+) create mode 100644 sql/migrations/20230706182749_world.sql diff --git a/sql/migrations/20230706182749_world.sql b/sql/migrations/20230706182749_world.sql new file mode 100644 index 00000000000..b42bb721009 --- /dev/null +++ b/sql/migrations/20230706182749_world.sql @@ -0,0 +1,329 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230706182749'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230706182749'); +-- Add your query below. + + +SET @OGUID = 44130; +SET @PTEMPLATE = 4736; + +-- 1519 Stormwind City / 3662 / 3705 / Food Crate / Barrel of Milk +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (12686, 12759, 12828, 14022, 26401, 26554, 30855, 31401, 31402, 31926, 32158, 32160, 32287, 32742, 33607, 33834, 34060, 34072, 34075, 34078, 34899, 42853, 42854, 42855, 42856, 42857, 42858, 42931, 42938)); +DELETE FROM `gameobject` WHERE `guid` IN (12686, 12759, 12828, 14022, 26401, 26554, 30855, 31401, 31402, 31926, 32158, 32160, 32287, 32742, 33607, 33834, 34060, 34072, 34075, 34078, 34899, 42853, 42854, 42855, 42856, 42857, 42858, 42931, 42938); +DELETE FROM `pool_gameobject` WHERE `guid` IN (12686, 12759, 12828, 14022, 26401, 26554, 30855, 31401, 31402, 31926, 32158, 32160, 32287, 32742, 33607, 33834, 34060, 34072, 34075, 34078, 34899, 42853, 42854, 42855, 42856, 42857, 42858, 42931, 42938); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3662, 0, -9037, 877.856, 110.196, -1, 0, 0, -0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3662, 0, -8931.09, 766.998, 92.5858, 2.72271, 0, 0, 0.978148, 0.207912, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3662, 0, -8907.74, 737.733, 98.7046, -1.41372, 0, 0, 0.649448, -0.760406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3662, 0, -8892.11, 591.342, 94.1562, -0.191986, 0, 0, 0.095846, -0.995396, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3662, 0, -8848.34, 623.168, 95.9836, -2.77507, 0, 0, 0.983255, -0.182235, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3662, 0, -8841.06, 822.494, 98.8119, 0.628319, 0, 0, 0.309017, 0.951057, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3662, 0, -8840, 819.683, 98.771, 0.628, 0, 0, 0.309017, 0.951056, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3662, 0, -8826.01, 582.64, 95.2445, -0.767945, 0, 0, 0.374607, -0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3662, 0, -8822.55, 727.074, 98.2994, 2.18166, 0, 0, 0.887011, 0.461749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3662, 0, -8801.83, 511.413, 100.043, -1.32645, 0, 0, 0.615661, -0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3662, 0, -8782.52, 926.32, 100.376, -2.53073, 0, 0, 0.953717, -0.300706, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3662, 0, -8780.65, 456.425, 98.4555, 1.58825, 0, 0, 0.71325, 0.700909, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3662, 0, -8715.8, 641.233, 101.567, 0.453786, 0, 0, 0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3662, 0, -8712, 1004.73, 96.817, 1.363, 0, 0, 0.630085, 0.776526, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3662, 0, -8704.65, 518.544, 99.26, 2.00713, 0, 0, 0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3662, 0, -8700, 1052.82, 95.986, -3, 0, 0, -0.999391, 0.0349, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3662, 0, -8699, 341.685, 102.28, -3.07178, 0, 0, 0.999391, -0.034899, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3662, 0, -8672.96, 691.163, 100.021, -2.9147, 0, 0, 0.993572, -0.113203, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3662, 0, -8666, 948.621, 104.315, 0.055, 0, 0, -0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3662, 0, -8665, 946.653, 102.944, 0.055, 0, 0, -0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3662, 0, -8566.42, 598.972, 104.599, 0.785398, 0, 0, 0.382683, 0.92388, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3662, 0, -8505.77, 722.066, 99.935, -1.8675, 0, 0, 0.803857, -0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3662, 0, -8492.74, 525.669, 97.9904, 1.97222, 0, 0, 0.833886, 0.551937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3662, 0, -8407.79, 581.781, 91.9778, -1.79769, 0, 0, 0.782608, -0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3662, 0, -8407, 580.736, 91.978, -2, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3662, 0, -8403, 583.113, 93.168, -2, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3662, 0, -9039.74, 879.096, 110.196, 5.3058, 0, 0, -0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 3662, 0, -8927.76, 996.049, 122.374, 4.55531, 0, 0, -0.760406, 0.649449, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 3662, 0, -8842.96, 897.594, 99.3591, 0.715585, 0, 0, 0.350207, 0.936672, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3662, 0, -8803.83, 652.314, 96.1943, 3.49067, 0, 0, -0.984807, 0.173652, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 3662, 0, -8725.11, 771.421, 100.078, 1.85005, 0, 0, 0.798635, 0.601815, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 3662, 0, -8723.94, 1164.69, 104.722, 0.488691, 0, 0, 0.241921, 0.970296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 3662, 0, -8714.41, 840.236, 97.7679, 3.12412, 0, 0, 0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 3662, 0, -8713, 1011.93, 96.5151, 3.194, 0, 0, -0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 3662, 0, -8702.45, 1119.88, 91.1867, 3.21142, 0, 0, -0.999391, 0.0349061, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 3662, 0, -8694.27, 1051.64, 95.9867, 3.21142, 0, 0, -0.999391, 0.0349061, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 3662, 0, -8679.1, 428.231, 100.869, 1.6057, 0, 0, 0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 3662, 0, -8672.73, 822.515, 98.7103, 0.418879, 0, 0, 0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 3662, 0, -8665.96, 948.39, 104.315, 5.55015, 0, 0, -0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 3662, 0, -8649.69, 895.02, 100.377, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 3662, 0, -8631.68, 435.726, 104.205, 2.26893, 0, 0, 0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 3662, 0, -8625.67, 519.342, 104.112, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 3662, 0, -8594.03, 731.259, 97.8725, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 3662, 0, -8587.56, 670.075, 99.6253, 5.48033, 0, 0, -0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 3662, 0, -8483.64, 673.505, 102.428, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 3662, 0, -8476.59, 608.349, 95.244, 0.680677, 0, 0, 0.333806, 0.942642, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 3662, 0, -8383.24, 663.192, 95.2868, 3.6652, 0, 0, -0.965925, 0.258821, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 3662, 0, -8804.81, 349.854, 101.019, 0.244346, 0, 0, 0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 3705, 0, -9037, 877.856, 110.196, -1, 0, 0, -0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 3705, 0, -8931.09, 766.998, 92.5858, 2.72271, 0, 0, 0.978148, 0.207912, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 3705, 0, -8907.74, 737.733, 98.7046, -1.41372, 0, 0, 0.649448, -0.760406, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 3705, 0, -8892.11, 591.342, 94.1562, -0.191986, 0, 0, 0.095846, -0.995396, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 3705, 0, -8848.34, 623.168, 95.9836, -2.77507, 0, 0, 0.983255, -0.182235, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 3705, 0, -8841.06, 822.494, 98.8119, 0.628319, 0, 0, 0.309017, 0.951057, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 3705, 0, -8840, 819.683, 98.771, 0.628, 0, 0, 0.309017, 0.951056, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 3705, 0, -8826.01, 582.64, 95.2445, -0.767945, 0, 0, 0.374607, -0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 3705, 0, -8822.55, 727.074, 98.2994, 2.18166, 0, 0, 0.887011, 0.461749, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 3705, 0, -8801.83, 511.413, 100.043, -1.32645, 0, 0, 0.615661, -0.788011, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 3705, 0, -8782.52, 926.32, 100.376, -2.53073, 0, 0, 0.953717, -0.300706, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 3705, 0, -8780.65, 456.425, 98.4555, 1.58825, 0, 0, 0.71325, 0.700909, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 3705, 0, -8715.8, 641.233, 101.567, 0.453786, 0, 0, 0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 3705, 0, -8712, 1004.73, 96.817, 1.363, 0, 0, 0.630085, 0.776526, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 3705, 0, -8704.65, 518.544, 99.26, 2.00713, 0, 0, 0.843391, 0.5373, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 3705, 0, -8700, 1052.82, 95.986, -3, 0, 0, -0.999391, 0.0349, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 3705, 0, -8699, 341.685, 102.28, -3.07178, 0, 0, 0.999391, -0.034899, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 3705, 0, -8672.96, 691.163, 100.021, -2.9147, 0, 0, 0.993572, -0.113203, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 3705, 0, -8666, 948.621, 104.315, 0.055, 0, 0, -0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 3705, 0, -8665, 946.653, 102.944, 0.055, 0, 0, -0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 3705, 0, -8566.42, 598.972, 104.599, 0.785398, 0, 0, 0.382683, 0.92388, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 3705, 0, -8505.77, 722.066, 99.935, -1.8675, 0, 0, 0.803857, -0.594823, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 3705, 0, -8492.74, 525.669, 97.9904, 1.97222, 0, 0, 0.833886, 0.551937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 3705, 0, -8407.79, 581.781, 91.9778, -1.79769, 0, 0, 0.782608, -0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+73, 3705, 0, -8407, 580.736, 91.978, -2, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+74, 3705, 0, -8403, 583.113, 93.168, -2, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+75, 3705, 0, -9039.74, 879.096, 110.196, 5.3058, 0, 0, -0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+76, 3705, 0, -8927.76, 996.049, 122.374, 4.55531, 0, 0, -0.760406, 0.649449, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+77, 3705, 0, -8842.96, 897.594, 99.3591, 0.715585, 0, 0, 0.350207, 0.936672, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+78, 3705, 0, -8803.83, 652.314, 96.1943, 3.49067, 0, 0, -0.984807, 0.173652, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+79, 3705, 0, -8725.11, 771.421, 100.078, 1.85005, 0, 0, 0.798635, 0.601815, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+80, 3705, 0, -8723.94, 1164.69, 104.722, 0.488691, 0, 0, 0.241921, 0.970296, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+81, 3705, 0, -8714.41, 840.236, 97.7679, 3.12412, 0, 0, 0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+82, 3705, 0, -8713, 1011.93, 96.5151, 3.194, 0, 0, -0.999657, 0.0262016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+83, 3705, 0, -8702.45, 1119.88, 91.1867, 3.21142, 0, 0, -0.999391, 0.0349061, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+84, 3705, 0, -8694.27, 1051.64, 95.9867, 3.21142, 0, 0, -0.999391, 0.0349061, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+85, 3705, 0, -8679.1, 428.231, 100.869, 1.6057, 0, 0, 0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+86, 3705, 0, -8672.73, 822.515, 98.7103, 0.418879, 0, 0, 0.207911, 0.978148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+87, 3705, 0, -8665.96, 948.39, 104.315, 5.55015, 0, 0, -0.358368, 0.93358, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+88, 3705, 0, -8649.69, 895.02, 100.377, 2.07694, 0, 0, 0.861629, 0.507539, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+89, 3705, 0, -8631.68, 435.726, 104.205, 2.26893, 0, 0, 0.906307, 0.422619, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+90, 3705, 0, -8625.67, 519.342, 104.112, 2.54818, 0, 0, 0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+91, 3705, 0, -8594.03, 731.259, 97.8725, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+92, 3705, 0, -8587.56, 670.075, 99.6253, 5.48033, 0, 0, -0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+93, 3705, 0, -8483.64, 673.505, 102.428, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+94, 3705, 0, -8476.59, 608.349, 95.244, 0.680677, 0, 0, 0.333806, 0.942642, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+95, 3705, 0, -8383.24, 663.192, 95.2868, 3.6652, 0, 0, -0.965925, 0.258821, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+96, 3705, 0, -8804.81, 349.854, 101.019, 0.244346, 0, 0, 0.121869, 0.992546, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+2, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+3, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+4, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+5, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+6, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+7, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+8, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+9, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+10, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+11, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+12, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+13, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+14, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+15, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+16, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+17, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+18, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+19, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+20, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+21, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+22, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+23, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+24, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+25, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+26, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+27, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+28, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+29, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+30, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+31, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+32, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+33, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+34, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+35, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+36, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+37, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+38, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+39, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+40, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+41, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+42, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+43, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+44, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+45, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+46, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+47, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@PTEMPLATE+48, 1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+32, @PTEMPLATE+32, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+33, @PTEMPLATE+33, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+34, @PTEMPLATE+34, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+35, @PTEMPLATE+35, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+36, @PTEMPLATE+36, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+37, @PTEMPLATE+37, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+38, @PTEMPLATE+38, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+39, @PTEMPLATE+39, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+40, @PTEMPLATE+40, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+41, @PTEMPLATE+41, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+42, @PTEMPLATE+42, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+43, @PTEMPLATE+43, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+44, @PTEMPLATE+44, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+45, @PTEMPLATE+45, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+46, @PTEMPLATE+46, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+47, @PTEMPLATE+47, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+48, @PTEMPLATE+48, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+49, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+50, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+51, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+52, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+53, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+54, @PTEMPLATE+6, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+55, @PTEMPLATE+7, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+56, @PTEMPLATE+8, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+57, @PTEMPLATE+9, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+58, @PTEMPLATE+10, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+59, @PTEMPLATE+11, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+60, @PTEMPLATE+12, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+61, @PTEMPLATE+13, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+62, @PTEMPLATE+14, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+63, @PTEMPLATE+15, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+64, @PTEMPLATE+16, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+65, @PTEMPLATE+17, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+66, @PTEMPLATE+18, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+67, @PTEMPLATE+19, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+68, @PTEMPLATE+20, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+69, @PTEMPLATE+21, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+70, @PTEMPLATE+22, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+71, @PTEMPLATE+23, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+72, @PTEMPLATE+24, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+73, @PTEMPLATE+25, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+74, @PTEMPLATE+26, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+75, @PTEMPLATE+27, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+76, @PTEMPLATE+28, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+77, @PTEMPLATE+29, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+78, @PTEMPLATE+30, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+79, @PTEMPLATE+31, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+80, @PTEMPLATE+32, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+81, @PTEMPLATE+33, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+82, @PTEMPLATE+34, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+83, @PTEMPLATE+35, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+84, @PTEMPLATE+36, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+85, @PTEMPLATE+37, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+86, @PTEMPLATE+38, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+87, @PTEMPLATE+39, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+88, @PTEMPLATE+40, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+89, @PTEMPLATE+41, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+90, @PTEMPLATE+42, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+91, @PTEMPLATE+43, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+92, @PTEMPLATE+44, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+93, @PTEMPLATE+45, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+94, @PTEMPLATE+46, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+95, @PTEMPLATE+47, 'Food Crate / Barrel of Milk - Stormwind', 0, 10), +(@OGUID+96, @PTEMPLATE+48, 'Food Crate / Barrel of Milk - Stormwind', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+49, 23, 'Stormwind - Food Crate / Barrel of Milk (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+2, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+3, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+4, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+5, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+6, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+7, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+8, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+9, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+10, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+11, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+12, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+13, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+14, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+15, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+16, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+17, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+18, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+19, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+20, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+21, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+22, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+23, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+24, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+25, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+26, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+27, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+28, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+29, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+30, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+31, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+32, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+33, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+34, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+35, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+36, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+37, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+38, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+39, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+40, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+41, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+42, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+43, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+44, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+45, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+46, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+47, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0), +(@PTEMPLATE+48, @PTEMPLATE+49, 0, 'Food Crate / Barrel of Milk - Stormwind', 0); + +DELETE FROM `gameobject` WHERE `guid` IN (44131, 44179); +DELETE FROM `pool_gameobject` WHERE `guid` IN (44131, 44179); +DELETE FROM `pool_template` WHERE `entry` = 4737; +DELETE FROM `pool_pool` WHERE `pool_id` = 4737; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From b5d6498149850a6e5b477262667dfbec13bb00cc Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 9 Jul 2023 07:19:49 +0100 Subject: [PATCH 090/426] Add Misc Food Crates (#2061) --- sql/migrations/20230707202216_world.sql | 308 ++++++++++++++++++++++++ 1 file changed, 308 insertions(+) create mode 100644 sql/migrations/20230707202216_world.sql diff --git a/sql/migrations/20230707202216_world.sql b/sql/migrations/20230707202216_world.sql new file mode 100644 index 00000000000..ed3056cd8ec --- /dev/null +++ b/sql/migrations/20230707202216_world.sql @@ -0,0 +1,308 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230707202216'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230707202216'); +-- Add your query below. + + +SET @OGUID = 66441; + +-- Map 30 / Alterac Valley / 178646 / Alliance Supply Crate +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 178646, 30, 639.11, -62.8011, 41.6571, 1.51844, 0, 0, 0.688354, 0.725374, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 178646, 30, 639.143, -62.6807, 42.8655, 4.72984, 0, 0, -0.700909, 0.713251, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 178646, 30, 639.182, -62.8141, 42.2613, 1.39626, 0, 0, 0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 178646, 30, 639.208, -60.1743, 41.6571, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 178646, 30, 639.284, -61.5004, 41.6571, 4.60767, 0, 0, -0.743144, 0.669131, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 178646, 30, 639.285, -60.1675, 42.2613, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 178646, 30, 639.372, -61.5296, 42.2613, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 178646, 30, 639.395, -58.6921, 41.6571, 6.24828, 0, 0, -0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 178646, 30, 639.412, -58.7139, 42.2474, 6.26573, 0, 0, -0.00872612, 0.999962, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 178646, 30, 639.711, -57.2125, 41.6571, 4.64258, 0, 0, -0.731354, 0.681998, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 178646, 30, 639.732, -57.2604, 42.2752, 4.67748, 0, 0, -0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 178646, 30, 640.829, -55.8194, 41.7912, 1.15192, 0, 0, 0.544639, 0.838671, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 178646, 30, 640.887, -55.835, 42.3779, 4.45059, 0, 0, -0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10); + +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180, `patch_min` = 3 WHERE `id` = 178646; + +-- Deadmines +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+15, 3662, 36, -37.0586, -720.381, 8.35814, 3.00195, 0, 0, 0.997563, 0.0697661, 604800, 604800, 100, 1, 0, 0, 0, 10); + +-- Uldaman +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+16, 3707, 70, -346.995, 105.85, -53.3132, 4.20625, 0, 0, -0.861629, 0.507539, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3707, 70, -150.741, 215.673, -46.1308, 0.383971, 0, 0, 0.190808, 0.981627, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3707, 70, -77.3072, 200.739, -49.7122, 1.39626, 0, 0, 0.642787, 0.766045, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3707, 70, 7.23665, 389.231, -43.7525, 1.71042, 0, 0, 0.754709, 0.656059, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3707, 70, -150.931, 253.757, -48.2797, 0.837757, 0, 0, 0.406736, 0.913546, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 3707, 70, -7.95842, 275.67, -48.8676, 2.18166, 0, 0, 0.887011, 0.461749, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 3707, 70, -208.706, 224.748, -46.9613, 2.46091, 0, 0, 0.942641, 0.333808, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 3707, 70, 12.4986, 217.998, -31.1776, 1.18682, 0, 0, 0.559193, 0.829038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 3707, 70, -85.3423, 311.221, -51.0015, 2.30383, 0, 0, 0.913545, 0.406738, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 3707, 70, 50.5515, 322.313, -43.2326, 2.23402, 0, 0, 0.898793, 0.438373, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 3707, 70, 140.289, 301.205, -52.2145, 4.72984, 0, 0, -0.700909, 0.713251, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 3707, 70, -363.178, 123.211, -45.2583, 0.226892, 0, 0, 0.113203, 0.993572, 604800, 604800, 100, 1, 0, 0, 0, 10); + +UPDATE `gameobject` SET `spawntimesecsmin` = 604800, `spawntimesecsmax` = 604800 WHERE `guid` IN (40666, 40661, 40663, 40664, 26212, 31957, 26208, 26207, 33283, 33282, 40670, 40671, 40672, 32410, 32398); + +SET @OGUID = 82054; +SET @PTEMPLATE = 2511; +-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +-- 15 Dustwallow Marsh 3707 / 153470 +-- Create new pool to hold Food Crate spawns in Dustwallow Marsh. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 6, 'Food Crates in Dustwallow Marsh', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(9097, @PTEMPLATE+1, 0, 'Food Crate', 0, 10), +(9098, @PTEMPLATE+1, 0, 'Food Crate', 0, 10), +(13144, @PTEMPLATE+1, 0, 'Food Crate', 0, 10), +(13634, @PTEMPLATE+1, 0, 'Food Crate', 0, 10), +(14675, @PTEMPLATE+1, 0, 'Food Crate', 0, 10), +(40822, @PTEMPLATE+1, 0, 'Food Crate', 0, 10), +(55933, @PTEMPLATE+1, 0, 'Food Crate', 0, 10), +(55939, @PTEMPLATE+1, 0, 'Food Crate', 0, 10), +(55943, @PTEMPLATE+1, 0, 'Food Crate', 0, 10); + +-- Missing Food Crate spawns in Dustwallow Marsh. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3707, 1, -2649.03, -3515.22, 33.4671, 5.37562, 0, 0, -0.438371, 0.898794, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 14675 at 245.760773 yards. +(@OGUID+2, 3707, 1, -3150.93, -2880.38, 33.781, 4.06662, 0, 0, -0.894934, 0.446199, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 13144 at 60.182327 yards. +(@OGUID+4, 3707, 1, -2673.81, -4211.31, -0.035784, 1.06465, 0, 0, 0.507538, 0.861629, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 9097 at 202.033051 yards. +(@OGUID+5, 3707, 1, -2533.51, -3826.51, -0.050045, 6.10865, 0, 0, -0.0871553, 0.996195, 180, 180, 1, 100, 0, 10); -- Closest existing guid is 9097 at 211.817322 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 0, 'Food Crate', 0, 10), -- Food Crates in Dustwallow Marsh +(@OGUID+2, @PTEMPLATE+1, 0, 'Food Crate', 0, 10), -- Food Crates in Dustwallow Marsh +(@OGUID+4, @PTEMPLATE+1, 0, 'Food Crate', 0, 10), -- Food Crates in Dustwallow Marsh +(@OGUID+5, @PTEMPLATE+1, 0, 'Food Crate', 0, 10); -- Food Crates in Dustwallow Marsh + +-- Create new pool to hold Food Crate spawns in Dustwallow Marsh. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+2, 4, 'Food Crates in Dustwallow Marsh', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11754, @PTEMPLATE+2, 0, 'Food Crate', 0, 10), +(14932, @PTEMPLATE+2, 0, 'Food Crate', 0, 10), +(30214, @PTEMPLATE+2, 0, 'Food Crate', 0, 10), +(56051, @PTEMPLATE+2, 0, 'Food Crate', 0, 10); + +-- Missing Food Crate spawns in Dustwallow Marsh. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+6, 153470, 1, -3373.84, -2834.7, 33.9843, 3.45576, 0, 0, -0.987688, 0.156436, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 30214 at 559.647644 yards. +(@OGUID+7, 153470, 1, -4019.69, -3809.7, 40.56, 0.0523589, 0, 0, 0.0261765, 0.999657, 180, 180, 1, 100, 0, 10); -- Closest existing guid is 14932 at 234.179855 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+6, @PTEMPLATE+2, 0, 'Food Crate', 0, 10), -- Food Crates in Dustwallow Marsh +(@OGUID+7, @PTEMPLATE+2, 0, 'Food Crate', 0, 10); -- Food Crates in Dustwallow Marsh + +-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +-- 28 Western Plaguelands 153471 +-- Create new pool to hold Food Crate spawns in Western Plaguelands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+3, 5, 'Food Crates in Western Plaguelands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(45483, @PTEMPLATE+3, 0, 'Food Crate', 0, 10), +(45487, @PTEMPLATE+3, 0, 'Food Crate', 0, 10), +(45489, @PTEMPLATE+3, 0, 'Food Crate', 0, 10), +(45490, @PTEMPLATE+3, 0, 'Food Crate', 0, 10), +(45491, @PTEMPLATE+3, 0, 'Food Crate', 0, 10), +(45547, @PTEMPLATE+3, 0, 'Food Crate', 0, 10), +(45549, @PTEMPLATE+3, 0, 'Food Crate', 0, 10), +(45550, @PTEMPLATE+3, 0, 'Food Crate', 0, 10); + +-- Missing Food Crate spawns in Western Plaguelands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+9, 153471, 0, 1377.65, -1645.25, 65.8011, 5.41052, 0, 0, -0.422618, 0.906308, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45491 at 124.397659 yards. +(@OGUID+10, 153471, 0, 1419.75, -1269.23, 61.7803, 4.32842, 0, 0, -0.829037, 0.559194, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45550 at 214.203903 yards. +(@OGUID+11, 153471, 0, 1908.63, -1619.02, 60.4806, 2.37364, 0, 0, 0.927183, 0.374608, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45490 at 288.695892 yards. +(@OGUID+12, 153471, 0, 2426.08, -1660.85, 102.501, 2.61799, 0, 0, 0.965925, 0.258821, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 45547 at 212.552856 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+9, @PTEMPLATE+3, 0, 'Food Crate', 0, 10), -- Food Crates in Western Plaguelands +(@OGUID+10, @PTEMPLATE+3, 0, 'Food Crate', 0, 10), -- Food Crates in Western Plaguelands +(@OGUID+11, @PTEMPLATE+3, 0, 'Food Crate', 0, 10), -- Food Crates in Western Plaguelands +(@OGUID+12, @PTEMPLATE+3, 0, 'Food Crate', 0, 10); -- Food Crates in Western Plaguelands +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 153471; + +-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +-- 47 Hinterlands 153470 +-- Create new pool to hold Food Crate spawns in The Hinterlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+4, 5, 'Food Crates in The Hinterlands', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(46224, @PTEMPLATE+4, 0, 'Food Crate', 0, 10), +(46226, @PTEMPLATE+4, 0, 'Food Crate', 0, 10), +(46234, @PTEMPLATE+4, 0, 'Food Crate', 0, 10), +(46238, @PTEMPLATE+4, 0, 'Food Crate', 0, 10), +(46248, @PTEMPLATE+4, 0, 'Food Crate', 0, 10), +(46251, @PTEMPLATE+4, 0, 'Food Crate', 0, 10), +(46275, @PTEMPLATE+4, 0, 'Food Crate', 0, 10), +(46428, @PTEMPLATE+4, 0, 'Food Crate', 0, 10); + +-- Missing Food Crate spawns in The Hinterlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+13, 153470, 0, 373.294, -3779.54, 169.851, 4.5204, 0, 0, -0.771625, 0.636078, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46428 at 180.553589 yards. +(@OGUID+14, 153470, 0, 240.621, -2203.65, 125.171, 5.88176, 0, 0, -0.199368, 0.979925, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46251 at 174.189774 yards. +(@OGUID+15, 153470, 0, -26.6015, -2803.9, 122.034, 0.785397, 0, 0, 0.382683, 0.92388, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 46224 at 309.217957 yards. +(@OGUID+16, 153470, 0, 313.332, -4118.64, 118.919, 6.17847, 0, 0, -0.0523357, 0.99863, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 46428 at 512.283630 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+13, @PTEMPLATE+4, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(@OGUID+14, @PTEMPLATE+4, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(@OGUID+15, @PTEMPLATE+4, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(@OGUID+16, @PTEMPLATE+4, 0, 'Food Crate', 0, 10); -- Food Crates in The Hinterlands +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 153470; + +-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +-- 17 Barrens 3690 / 3691 / 3693 / 3695 +-- Missing Food Crate spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+17, 3690, 1, 1367.86, -3556.09, 93.9161, 0.366518, 0, 0, 0.182235, 0.983255, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 13440 at 76.870895 yards. + +-- Missing Food Crate spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+18, 3691, 1, -1503.06, -3824.64, 23.4828, 1.36136, 0, 0, 0.62932, 0.777146, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 13442 at 94.426231 yards. + +-- Missing Food Crate spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+19, 3693, 1, 1350.04, -3648.25, 111.642, 0.820303, 0, 0, 0.398748, 0.91706, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 13448 at 103.020088 yards. + +-- Missing Food Crate spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+20, 3695, 1, -4061.65, -2371.05, 118.075, 4.67748, 0, 0, -0.719339, 0.694659, 3600, 3600, 1, 100, 0, 10), -- Closest existing guid is 13455 at 28.387096 yards. +(@OGUID+21, 3695, 1, -4049.41, -2361.03, 135.856, 3.52557, 0, 0, -0.981627, 0.190812, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 13455 at 44.786751 yards. + +SET @OGUID = 278; +SET @PTEMPLATE = 241; + +REPLACE INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3659, 0, 11.3366, -337.718, 131.157, 3.89209, 0, 0, -0.930417, 0.366502, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3695, 0, 11.3366, -337.718, 131.157, 3.89209, 0, 0, -0.930417, 0.366502, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10), +(@OGUID+2, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0, 10); + +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, 2990, 0, 'Barrel of Melon Juice / Food Crate - Alterac Mountains', 0); + + +SET @OGUID = 44664; +SET @PTEMPLATE = 242; + +DELETE FROM `gameobject` WHERE `guid` IN (196, 195, 13438, 13435, 13455, 82074, 82075); +DELETE FROM `pool_gameobject` WHERE `guid` IN (196, 195, 13438, 13435, 13455, 82074, 82075); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3689, 1, -4070.11, -2380.71, 110.297, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3689, 1, -4049.89, -2390.31, 126.13, 3.00195, 0, 0, 0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3689, 1, -4075.58, -2349.89, 108.909, -1.0821, 0, 0, 0.515038, -0.857167, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3689, 1, -4084.18, -2386.98, 124.743, -2.56563, 0, 0, 0.95882, -0.284015, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3689, 1, -4061.65, -2371.05, 118.075, 4.67748, 0, 0, -0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3689, 1, -4049.41, -2361.03, 135.856, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3689, 1, -4086.92, -2363.17, 108.909, 5.98648, 0, 0, -0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3695, 1, -4070.11, -2380.71, 110.297, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3695, 1, -4049.89, -2390.31, 126.13, 3.00195, 0, 0, 0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3695, 1, -4075.58, -2349.89, 108.909, -1.0821, 0, 0, 0.515038, -0.857167, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3695, 1, -4084.18, -2386.98, 124.743, -2.56563, 0, 0, 0.95882, -0.284015, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3695, 1, -4061.65, -2371.05, 118.075, 4.67748, 0, 0, -0.719339, 0.694659, 180, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 3695, 1, -4049.41, -2361.03, 135.856, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 3695, 1, -4086.92, -2363.17, 108.909, 5.98648, 0, 0, -0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 3702, 1, -4070.11, -2380.71, 110.297, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 3702, 1, -4049.89, -2390.31, 126.13, 3.00195, 0, 0, 0.997563, 0.0697661, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 3702, 1, -4075.58, -2349.89, 108.909, -1.0821, 0, 0, 0.515038, -0.857167, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 3702, 1, -4084.18, -2386.98, 124.743, -2.56563, 0, 0, 0.95882, -0.284015, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 3702, 1, -4061.65, -2371.05, 118.075, 4.67748, 0, 0, -0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 3702, 1, -4049.41, -2361.03, 135.856, 3.52557, 0, 0, -0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 3702, 1, -4086.92, -2363.17, 108.909, 5.98648, 0, 0, -0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+2, 1, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+3, 1, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+4, 1, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+5, 1, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+6, 1, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@PTEMPLATE+7, 1, 'Food Crate / Armor Crate - Barrens', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+8, @PTEMPLATE+1, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+9, @PTEMPLATE+2, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+10, @PTEMPLATE+3, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+11, @PTEMPLATE+4, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+12, @PTEMPLATE+5, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+13, @PTEMPLATE+6, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+14, @PTEMPLATE+7, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+15, @PTEMPLATE+1, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+16, @PTEMPLATE+2, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+17, @PTEMPLATE+3, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+18, @PTEMPLATE+4, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+19, @PTEMPLATE+5, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+20, @PTEMPLATE+6, 'Food Crate / Armor Crate - Barrens', 0, 10), +(@OGUID+21, @PTEMPLATE+7, 'Food Crate / Armor Crate - Barrens', 0, 10); + +UPDATE `gameobject` SET `spawntimesecsmin` = 604800, `spawntimesecsmax` = 604800 WHERE `guid` IN (32624, 32254, 32253); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+22, 3702, 48, -295.378, 316.711, -52.3953, 2.23402, 0, 0, 0.898793, 0.438373, 604800, 604800, 100, 1, 0, 0, 0, 10); + +SET @OGUID = 442; +SET @PTEMPLATE = 2990; + +DELETE FROM `gameobject` WHERE `guid` IN (26212, 31957, 66456, 26207, 26208); +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3662, 36, -144.899, -891.56, 4.30954, 1.51844, 0, 0, 0.688355, 0.725374, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3662, 36, -103.57, -723.359, 8.49449, 0.698132, 0, 0, 0.34202, 0.939693, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3662, 36, -37.0586, -720.381, 8.35814, 3.00195, 0, 0, 0.997563, 0.0697661, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3662, 36, -89.3315, -682.574, 7.42373, -2.63545, 0, 0, 0.968148, -0.25038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3662, 36, -43.7597, -733.648, 9.18536, 1.18682, 0, 0, 0.559193, 0.829038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3705, 36, -144.899, -891.56, 4.30954, 1.51844, 0, 0, 0.688355, 0.725374, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3705, 36, -103.57, -723.359, 8.49449, 0.698132, 0, 0, 0.34202, 0.939693, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3705, 36, -37.0586, -720.381, 8.35814, 3.00195, 0, 0, 0.997563, 0.0697661, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3705, 36, -89.3315, -682.574, 7.42373, -2.63545, 0, 0, 0.968148, -0.25038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3705, 36, -43.7597, -733.648, 9.18536, 1.18682, 0, 0, 0.559193, 0.829038, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Food Crate / Barrel of Milk - Deadmines', 0, 10), +(@PTEMPLATE+2, 1, 'Food Crate / Barrel of Milk - Deadmines', 0, 10), +(@PTEMPLATE+3, 1, 'Food Crate / Barrel of Milk - Deadmines', 0, 10), +(@PTEMPLATE+4, 1, 'Food Crate / Barrel of Milk - Deadmines', 0, 10), +(@PTEMPLATE+5, 1, 'Food Crate / Barrel of Milk - Deadmines', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Deadmines', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Deadmines', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Deadmines', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Deadmines', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Deadmines', 0, 10), +(@OGUID+6, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Deadmines', 0, 10), +(@OGUID+7, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Deadmines', 0, 10), +(@OGUID+8, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Deadmines', 0, 10), +(@OGUID+9, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Deadmines', 0, 10), +(@OGUID+10, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Deadmines', 0, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 17a4f0a3a5e8954d98b2d3b6217999edd22a668a Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 9 Jul 2023 07:25:41 +0100 Subject: [PATCH 091/426] Correctly Pool Musty Tome (#2062) --- sql/migrations/20230707202447_world.sql | 98 +++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 sql/migrations/20230707202447_world.sql diff --git a/sql/migrations/20230707202447_world.sql b/sql/migrations/20230707202447_world.sql new file mode 100644 index 00000000000..688247617bc --- /dev/null +++ b/sql/migrations/20230707202447_world.sql @@ -0,0 +1,98 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230707202447'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230707202447'); +-- Add your query below. + + +SET @OGUID = 6021; +SET @PTEMPLATE = 25487; + +-- Musty Tome +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (12195, 12196, 12201, 12205, 12211, 12337, 12338, 12342, 12419, 26034, 26035, 26036, 26037, 26038, 26039, 26040, 26041, 45459, 45460, 45461, 45462, 45463, 45464, 45465, 45466, 45467, 45468, 55373)); +DELETE FROM `gameobject` WHERE `guid` IN (12195, 12196, 12201, 12205, 12211, 12337, 12338, 12342, 12419, 26034, 26035, 26036, 26037, 26038, 26039, 26040, 26041, 45459, 45460, 45461, 45462, 45463, 45464, 45465, 45466, 45467, 45468, 55373); +DELETE FROM `pool_gameobject` WHERE `guid` IN (12195, 12196, 12201, 12205, 12211, 12337, 12338, 12342, 12419, 26034, 26035, 26036, 26037, 26038, 26039, 26040, 26041, 45459, 45460, 45461, 45462, 45463, 45464, 45465, 45466, 45467, 45468, 55373); +DELETE FROM `pool_gameobject_template` WHERE `id` = 176150; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 176150, 0, 1356.51, -1452.11, 57.8184, 5.98648, 0, 0, -0.147809, 0.989016, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 176150, 0, 1360.83, -1448.94, 56.969, 1.95477, 0, 0, 0.829038, 0.559193, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 176150, 0, 1360.85, -1458.26, 56.969, 0.645772, 0, 0, 0.317305, 0.948324, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 176150, 0, 1368.85, -1449.31, 56.969, 0.279253, 0, 0, 0.139173, 0.990268, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 176150, 0, 1374.15, -1448.33, 56.969, 1.69297, 0, 0, 0.748956, 0.66262, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 176150, 0, 1380.05, -1457.83, 56.9689, 1.71042, 0, 0, 0.754709, 0.656059, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 176150, 0, 1382.42, -1449.85, 56.969, 1.64061, 0, 0, 0.731353, 0.681999, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 176150, 0, 1385.29, -1455.31, 56.9689, 0.0174525, 0, 0, 0.00872612, 0.999962, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 176150, 0, 1393.88, -1457.68, 58.3282, 2.33874, 0, 0, 0.920505, 0.390732, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 176150, 0, 1394.99, -1450.47, 58.3282, 0.85521, 0, 0, 0.414693, 0.909962, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 176151, 0, 1356.51, -1452.11, 57.8184, 5.98648, 0, 0, -0.147809, 0.989016, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 176151, 0, 1360.83, -1448.94, 56.969, 1.95477, 0, 0, 0.829038, 0.559193, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 176151, 0, 1360.85, -1458.26, 56.969, 0.645772, 0, 0, 0.317305, 0.948324, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 176151, 0, 1368.85, -1449.31, 56.969, 0.279253, 0, 0, 0.139173, 0.990268, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 176151, 0, 1374.15, -1448.33, 56.969, 1.69297, 0, 0, 0.748956, 0.66262, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 176151, 0, 1380.05, -1457.83, 56.9689, 1.71042, 0, 0, 0.754709, 0.656059, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 176151, 0, 1382.42, -1449.85, 56.969, 1.64061, 0, 0, 0.731353, 0.681999, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 176151, 0, 1385.29, -1455.31, 56.9689, 0.0174525, 0, 0, 0.00872612, 0.999962, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 176151, 0, 1393.88, -1457.68, 58.3282, 2.33874, 0, 0, 0.920505, 0.390732, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 176151, 0, 1394.99, -1450.47, 58.3282, 0.85521, 0, 0, 0.414693, 0.909962, 60, 60, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Western Plaguelands - Musty Tome', 0, 10), +(@PTEMPLATE+2, 1, 'Western Plaguelands - Musty Tome', 0, 10), +(@PTEMPLATE+3, 1, 'Western Plaguelands - Musty Tome', 0, 10), +(@PTEMPLATE+4, 1, 'Western Plaguelands - Musty Tome', 0, 10), +(@PTEMPLATE+5, 1, 'Western Plaguelands - Musty Tome', 0, 10), +(@PTEMPLATE+6, 1, 'Western Plaguelands - Musty Tome', 0, 10), +(@PTEMPLATE+7, 1, 'Western Plaguelands - Musty Tome', 0, 10), +(@PTEMPLATE+8, 1, 'Western Plaguelands - Musty Tome', 0, 10), +(@PTEMPLATE+9, 1, 'Western Plaguelands - Musty Tome', 0, 10), +(@PTEMPLATE+10, 1, 'Western Plaguelands - Musty Tome', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+11, @PTEMPLATE+1, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+12, @PTEMPLATE+2, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+13, @PTEMPLATE+3, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+14, @PTEMPLATE+4, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+15, @PTEMPLATE+5, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+16, @PTEMPLATE+6, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+17, @PTEMPLATE+7, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+18, @PTEMPLATE+8, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+19, @PTEMPLATE+9, 'Western Plaguelands - Musty Tome', 0, 10), +(@OGUID+20, @PTEMPLATE+10, 'Western Plaguelands - Musty Tome', 0, 10); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+21, 176152, 0, 1356.51, -1452.11, 57.8184, 5.98648, 0, 0, -0.147809, 0.989016, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 176152, 0, 1360.83, -1448.94, 56.969, 1.95477, 0, 0, 0.829038, 0.559193, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 176152, 0, 1360.85, -1458.26, 56.969, 0.645772, 0, 0, 0.317305, 0.948324, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 176152, 0, 1368.85, -1449.31, 56.969, 0.279253, 0, 0, 0.139173, 0.990268, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 176152, 0, 1374.15, -1448.33, 56.969, 1.69297, 0, 0, 0.748956, 0.66262, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 176152, 0, 1380.05, -1457.83, 56.9689, 1.71042, 0, 0, 0.754709, 0.656059, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 176152, 0, 1382.42, -1449.85, 56.969, 1.64061, 0, 0, 0.731353, 0.681999, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 176152, 0, 1385.29, -1455.31, 56.9689, 0.0174525, 0, 0, 0.00872612, 0.999962, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 176152, 0, 1393.88, -1457.68, 58.3282, 2.33874, 0, 0, 0.920505, 0.390732, 60, 60, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 176152, 0, 1394.99, -1450.47, 58.3282, 0.85521, 0, 0, 0.414693, 0.909962, 60, 60, 100, 1, 0, 0, 0, 10); + +UPDATE `pool_gameobject` SET `chance` = 30 WHERE `description` = "Western Plaguelands - Musty Tome" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 176150); +UPDATE `pool_gameobject` SET `chance` = 70 WHERE `description` = "Western Plaguelands - Musty Tome" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 176151); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From e20a3fba1a0c9c14399dfdd3b6a05bdb0fb6d46d Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 9 Jul 2023 07:43:57 +0100 Subject: [PATCH 092/426] Add Misc Missing Objects (#2063) --- sql/migrations/20230707202622_world.sql | 744 ++++++++++++++++++++++++ 1 file changed, 744 insertions(+) create mode 100644 sql/migrations/20230707202622_world.sql diff --git a/sql/migrations/20230707202622_world.sql b/sql/migrations/20230707202622_world.sql new file mode 100644 index 00000000000..e284ed9ad4d --- /dev/null +++ b/sql/migrations/20230707202622_world.sql @@ -0,0 +1,744 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230707202622'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230707202622'); +-- Add your query below. + + +SET @OGUID = 65908; +SET @PTEMPLATE = 18854; + +-- Missing Hyacinth Mushroom spawns in Teldrassil. (Template) +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 152094, 1, 10451.4, 604.155, 1328.91, 5.25344, 0, 0, -0.492423, 0.870356, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 55298 at 33.631264 yards. + +-- Missing Gnomish Toolbox spawns in Durotar. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+2, 3236, 1, 34.0079, -5367.41, -4.45259, 6.03884, 0, 0, -0.121869, 0.992546, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 12411 at 16.357759 yards. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 8, 'Durotar - Gnomish Toolbox', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(3236, @PTEMPLATE+1, 0, 'Durotar - Gnomish Toolbox', 0, 10); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 3236; + +-- Missing Warsong Oil spawns in Ashenvale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+4, 178195, 1, 2751.01, -2914.81, 146.594, 6.00393, 0, 0, -0.139173, 0.990268, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47800 at 43.111111 yards. +(@OGUID+5, 178195, 1, 2792.67, -2969.69, 149.561, 1.8675, 0, 0, 0.803857, 0.594823, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47800 at 111.924988 yards. +(@OGUID+6, 178195, 1, 2784.2, -3011.59, 154.347, 3.61284, 0, 0, -0.972369, 0.233448, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47800 at 143.187119 yards. +(@OGUID+7, 178195, 1, 2949.42, -2835.61, 212.732, 2.04204, 0, 0, 0.85264, 0.522499, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47799 at 17.830444 yards. +(@OGUID+8, 178195, 1, 2926.51, -2861, 216.315, 2.89725, 0, 0, 0.992546, 0.12187, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47799 at 43.263832 yards. +(@OGUID+9, 178195, 1, 2953.12, -2814.07, 212.583, 6.26573, 0, 0, -0.00872612, 0.999962, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47797 at 5.623562 yards. +(@OGUID+10, 178195, 1, 2489.59, -2143.84, 200.56, 4.34587, 0, 0, -0.824126, 0.566406, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47796 at 12.015337 yards. +(@OGUID+11, 178195, 1, 2474.02, -2146.3, 202.267, 1.0472, 0, 0, 0.5, 0.866025, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47795 at 9.183559 yards. +(@OGUID+12, 178195, 1, 2504.42, -2123.87, 201.745, 0.95993, 0, 0, 0.461748, 0.887011, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47796 at 18.418159 yards. +(@OGUID+13, 178195, 1, 2792.46, -2957.21, 148.862, 1.58825, 0, 0, 0.71325, 0.70091, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47800 at 102.359489 yards. +(@OGUID+14, 178195, 1, 2783.77, -3015.04, 154.257, 1.01229, 0, 0, 0.484809, 0.87462, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47800 at 146.118164 yards. +(@OGUID+15, 178195, 1, 2930.76, -2838.76, 212.71, 2.35619, 0, 0, 0.92388, 0.382683, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47799 at 20.956667 yards. +(@OGUID+16, 178195, 1, 2954.01, -2827.32, 212.789, 5.61996, 0, 0, -0.325567, 0.945519, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47799 at 15.303365 yards. +(@OGUID+17, 178195, 1, 2502.23, -2123.78, 201.613, 1.15192, 0, 0, 0.544639, 0.838671, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47796 at 16.531034 yards. +(@OGUID+18, 178195, 1, 2711.84, -2920.14, 141.185, 0.541051, 0, 0, 0.267238, 0.963631, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47800 at 39.600323 yards. +(@OGUID+19, 178195, 1, 2778.14, -3017.46, 154.199, 1.09956, 0, 0, 0.522498, 0.85264, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47800 at 146.073608 yards. +(@OGUID+20, 178195, 1, 2765.68, -2915.32, 146.546, 2.67035, 0, 0, 0.972369, 0.233448, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47800 at 54.278584 yards. +(@OGUID+21, 178195, 1, 2787.64, -2977.16, 150.394, 5.55015, 0, 0, -0.358368, 0.93358, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47800 at 114.918587 yards. +(@OGUID+22, 178195, 1, 2741.17, -2985.79, 140.798, 0.418879, 0, 0, 0.207911, 0.978148, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47800 at 105.144386 yards. +(@OGUID+23, 178195, 1, 2748.99, -2907.84, 147.325, 1.36136, 0, 0, 0.62932, 0.777146, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47800 at 36.673634 yards. +(@OGUID+24, 178195, 1, 2798.02, -2955.86, 149.086, 1.18682, 0, 0, 0.559193, 0.829038, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47800 at 105.300278 yards. +(@OGUID+25, 178195, 1, 2741.81, -2978.87, 140.917, 0.436332, 0, 0, 0.216439, 0.976296, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 47800 at 98.476181 yards. +(@OGUID+26, 178195, 1, 2763.43, -2948.9, 143.182, 6.24828, 0, 0, -0.0174522, 0.999848, 10, 10, 1, 100, 0, 10); -- Closest existing guid is 47800 at 78.125961 yards. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+2, 13, 'Ashenvale - Warsong Oils', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(178195, @PTEMPLATE+2, 'Ashenvale - Warsong Oils'); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 178195; + +-- Missing Miners' League Crates spawns in Loch Modan. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+27, 271, 0, -4891.73, -2966.21, 316.63, 4.97419, 0, 0, -0.608761, 0.793354, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 13287 at 28.678619 yards. +(@OGUID+28, 271, 0, -4893.47, -2984.15, 316.954, 5.72468, 0, 0, -0.275637, 0.961262, 180, 180, 1, 100, 0, 10); -- Closest existing guid is 13610 at 28.820187 yards. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+3, 5, 'Loch Modan - Miners League Crates', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(271, @PTEMPLATE+3, 0, 'Loch Modan - Miners League Crates', 0, 10); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 271; + +-- Missing Death Cap +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+29, 11713, 1, 6787.37, -719.039, 89.3338, 4.45059, 0, 0, -0.793353, 0.608762, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 48689 at 35.802418 yards. +(@OGUID+30, 11713, 1, 6746.37, -685.748, 69.7221, 2.04204, 0, 0, 0.85264, 0.522499, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 48685 at 18.173227 yards. +(@OGUID+31, 11713, 1, 6796.33, -762.062, 69.6737, 1.0821, 0, 0, 0.515038, 0.857168, 10, 10, 1, 100, 0, 10); +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+4, 5, 'Darkshore - Death Cap', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11713, @PTEMPLATE+4, 0, 'Darkshore - Death Cap', 0, 10); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 11713; + +-- Missing Loose Soil spawns in Wetlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+32, 331, 0, -3469.87, -1836.43, 17.2882, 0, 0, 0, 0, 1, 30, 60, 1, 100, 0, 10), -- Closest existing guid is 9739 at 90.631569 yards. +(@OGUID+33, 331, 0, -3392.07, -1857.27, 25.8701, 0.331611, 0, 0, 0.165047, 0.986286, 30, 60, 1, 100, 0, 10), -- Closest existing guid is 9740 at 94.013260 yards. +(@OGUID+34, 331, 0, -3549.77, -1723.89, 81.994, 2.75761, 0, 0, 0.981627, 0.190812, 30, 60, 1, 100, 0, 10), -- Closest existing guid is 9742 at 45.769291 yards. +(@OGUID+35, 331, 0, -3568.4, -1845.56, 24.3617, 3.31614, 0, 0, -0.996194, 0.087165, 30, 60, 1, 100, 0, 10), -- Closest existing guid is 9742 at 95.571922 yards. +(@OGUID+36, 331, 0, -3500.26, -1766.83, 16.417, 2.67035, 0, 0, 0.972369, 0.233448, 30, 60, 1, 100, 0, 10), -- Closest existing guid is 9741 at 45.956619 yards. +(@OGUID+37, 331, 0, -3461.63, -1803.47, 25.7061, 4.45059, 0, 0, -0.793353, 0.608762, 30, 60, 1, 100, 0, 10), -- Closest existing guid is 9739 at 58.002724 yards. +(@OGUID+38, 331, 0, -3420.89, -1856.84, 16.9872, 2.51327, 0, 0, 0.951056, 0.309017, 30, 60, 1, 100, 0, 10), -- Closest existing guid is 9739 at 99.475723 yards. +(@OGUID+39, 331, 0, -3393.8, -1825.06, 24.913, 1.09956, 0, 0, 0.522498, 0.85264, 30, 60, 1, 100, 0, 10), -- Closest existing guid is 9739 at 74.193367 yards. +(@OGUID+40, 331, 0, -3432.51, -1790.23, 16.3942, 4.15388, 0, 0, -0.874619, 0.48481, 30, 60, 1, 100, 0, 10), -- Closest existing guid is 9739 at 34.875607 yards. +(@OGUID+41, 331, 0, -3470.78, -1863.77, 24.0417, 5.49779, 0, 0, -0.382683, 0.92388, 30, 60, 1, 100, 0, 10), -- Closest existing guid is 9739 at 115.009499 yards. +(@OGUID+42, 331, 0, -3550.56, -1805.25, 27.3557, 5.93412, 0, 0, -0.173648, 0.984808, 30, 60, 1, 100, 0, 10), -- Closest existing guid is 9742 at 65.498001 yards. +(@OGUID+43, 331, 0, -3391.45, -1783.01, 25.2344, 3.31614, 0, 0, -0.996194, 0.087165, 30, 60, 1, 100, 0, 10); -- Closest existing guid is 9739 at 42.351723 yards. +UPDATE `pool_template` SET `max_limit`=6 WHERE `entry`=152; +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 331; + +-- Missing Stardust Covered Bush spawns in Ashenvale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+44, 19016, 1, 2094.48, -267.58, 94.5631, 5.13127, 0, 0, -0.544639, 0.838671, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 47887 at 22.081537 yards. +(@OGUID+45, 19016, 1, 2065.15, -263.138, 95.2919, 5.79449, 0, 0, -0.241921, 0.970296, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 47887 at 10.435078 yards. +(@OGUID+46, 19016, 1, 2086.73, -236.191, 97.2096, 2.42601, 0, 0, 0.936672, 0.350207, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 47883 at 14.339638 yards. +(@OGUID+47, 19016, 1, 2116.37, -207.953, 97.0796, 5.95157, 0, 0, -0.165047, 0.986286, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 47889 at 28.446453 yards. +(@OGUID+48, 19016, 1, 2049.06, -253.306, 97.1589, 0.90757, 0, 0, 0.438371, 0.898794, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 47887 at 29.217587 yards. +(@OGUID+49, 19016, 1, 2058.03, -179.217, 95.2847, 1.15192, 0, 0, 0.544639, 0.838671, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 47886 at 20.459620 yards. +(@OGUID+50, 19016, 1, 2127.18, -222.545, 97.0247, 2.46091, 0, 0, 0.942641, 0.333808, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 47885 at 36.982529 yards. +(@OGUID+51, 19016, 1, 2108.54, -224.343, 97.071, 1.74533, 0, 0, 0.766044, 0.642789, 180, 180, 1, 100, 0, 10); -- Closest existing guid is 47889 at 19.453566 yards. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+5, 7, 'Ashenvale - Stardust Covered Bush', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(19016, @PTEMPLATE+5, 0, 'Ashenvale - Stardust Covered Bush', 0, 10); + +-- Missing Shimmerweed Basket +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+52, 276, 0, -5328.81, -237.058, 440.409, 5.72468, 0, 0, -0.275637, 0.961262, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 10131 at 6.366234 yards. +(@OGUID+53, 276, 0, -5018.66, -284.39, 441.669, 5.72468, 0, 0, -0.275637, 0.961262, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 10193 at 20.013279 yards. +(@OGUID+54, 276, 0, -5054.04, -264.371, 441.49, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 10181 at 6.372083 yards. +(@OGUID+55, 276, 0, -5021.43, -208.935, 445.487, 0.191985, 0, 0, 0.0958452, 0.995396, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 10178 at 6.593803 yards. +(@OGUID+56, 276, 0, -5028.47, -252.546, 442.879, 0, 0, 0, 0, 1, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 10193 at 17.270668 yards. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+6, 8, 'Dun Morogh - Shimmerweed Basket', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(276, @PTEMPLATE+6, 0, 'Dun Morogh - Shimmerweed Basket', 0, 10); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 276; + +-- Missing Wildkin Feather spawns in The Hinterlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+57, 153239, 0, 205.795, -2174.33, 108.727, 2.84488, 0, 0, 0.989016, 0.147811, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46330 at 87.851929 yards. +(@OGUID+58, 153239, 0, 191.618, -2281.54, 103.856, 3.94445, 0, 0, -0.920505, 0.390732, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46335 at 76.846687 yards. +(@OGUID+59, 153239, 0, 96.7856, -2395.4, 124.498, 1.27409, 0, 0, 0.594822, 0.803857, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46277 at 69.649513 yards. +(@OGUID+60, 153239, 0, 2.94607, -2569.56, 119.592, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46343 at 62.192589 yards. +(@OGUID+61, 153239, 0, -123.471, -2544.14, 122.048, 3.50812, 0, 0, -0.983254, 0.182238, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46343 at 84.936661 yards. +(@OGUID+62, 153239, 0, -83.7073, -2670.24, 127.294, 1.29154, 0, 0, 0.601814, 0.798636, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46274 at 57.491772 yards. +(@OGUID+63, 153239, 0, 47.3673, -2776.53, 125.193, 1.3439, 0, 0, 0.622514, 0.782609, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46317 at 20.232862 yards. +(@OGUID+64, 153239, 0, 69.5435, -2769.64, 118.309, 4.79966, 0, 0, -0.67559, 0.737278, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46317 at 19.741524 yards. +(@OGUID+65, 153239, 0, -83.6674, -2848.91, 122.059, 4.57276, 0, 0, -0.754709, 0.656059, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46338 at 71.322159 yards. +(@OGUID+66, 153239, 0, 69.3124, -2870.35, 115.684, 1.62316, 0, 0, 0.725374, 0.688355, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46261 at 41.509106 yards. +(@OGUID+67, 153239, 0, 80.4471, -2528.41, 113.989, 2.04204, 0, 0, 0.85264, 0.522499, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46336 at 56.389721 yards. +(@OGUID+68, 153239, 0, 127.448, -2493.27, 120.31, 5.044, 0, 0, -0.580703, 0.814116, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46333 at 33.551682 yards. +(@OGUID+69, 153239, 0, 87.8953, -2572.14, 112.121, 2.77507, 0, 0, 0.983254, 0.182238, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46336 at 15.781225 yards. +(@OGUID+70, 153239, 0, 139.976, -2864.91, 115.417, 4.20625, 0, 0, -0.861629, 0.507539, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46261 at 39.070152 yards. +(@OGUID+71, 153239, 0, 194.53, -2491.13, 128.471, 0.541051, 0, 0, 0.267238, 0.963631, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46344 at 69.951805 yards. +(@OGUID+72, 153239, 0, -194.949, -2590.71, 119.634, 4.86947, 0, 0, -0.649447, 0.760406, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46309 at 108.610672 yards. +(@OGUID+73, 153239, 0, -173.508, -2799.11, 119.449, 3.73501, 0, 0, -0.956305, 0.292372, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46274 at 100.486443 yards. +(@OGUID+74, 153239, 0, -122.271, -2769.74, 120.518, 4.93928, 0, 0, -0.622514, 0.782609, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46274 at 56.764297 yards. +(@OGUID+75, 153239, 0, -215.548, -2728.71, 116.61, 2.80998, 0, 0, 0.986285, 0.16505, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46274 at 95.770546 yards. +(@OGUID+76, 153239, 0, 108.32, -2589.14, 119.623, 0.506145, 0, 0, 0.25038, 0.968148, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46336 at 12.050517 yards. +(@OGUID+77, 153239, 0, 107.89, -2648.31, 117.056, 3.63029, 0, 0, -0.970295, 0.241925, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46331 at 36.357037 yards. +(@OGUID+78, 153239, 0, 111.844, -2968.95, 116.937, 1.25664, 0, 0, 0.587785, 0.809017, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46228 at 78.280037 yards. +(@OGUID+79, 153239, 0, -189.021, -2667.57, 120.135, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 1, 100, 0, 10); -- Closest existing guid is 46274 at 81.843163 yards. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+7, 44, 'Hinterlands - Wildkin Feather', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(153239, @PTEMPLATE+7, 0, 'Hinterlands - Wildkin Feather', 0, 10); + +-- Missing Large Termite Mound spawns in Eastern Plaguelands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+80, 177464, 0, 3005.32, -4070.9, 99.0826, 3.7001, 0, 0, -0.961261, 0.27564, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45862 at 138.168289 yards. +(@OGUID+81, 177464, 0, 2883.59, -3801.83, 110.205, 0.401425, 0, 0, 0.199368, 0.979925, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45852 at 54.956425 yards. +(@OGUID+82, 177464, 0, 3026.57, -3496.16, 151.803, 0.453785, 0, 0, 0.224951, 0.97437, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45889 at 94.798019 yards. +(@OGUID+83, 177464, 0, 3009.17, -3350.52, 142.172, 2.56563, 0, 0, 0.958819, 0.284016, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45789 at 55.564514 yards. +(@OGUID+84, 177464, 0, 3031.95, -3122.73, 120.407, 4.25861, 0, 0, -0.848047, 0.529921, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45867 at 78.930305 yards. +(@OGUID+85, 177464, 0, 3065.83, -3094.37, 126.452, 3.49067, 0, 0, -0.984807, 0.173652, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45849 at 91.663979 yards. +(@OGUID+86, 177464, 0, 3299.66, -3041.3, 142.884, 5.67232, 0, 0, -0.300705, 0.953717, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45859 at 56.833565 yards. +(@OGUID+87, 177464, 0, 3176.14, -3286.39, 163.574, 4.2237, 0, 0, -0.857167, 0.515038, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45850 at 64.459328 yards. +(@OGUID+88, 177464, 0, 3161.73, -3431.04, 158.997, 0.680677, 0, 0, 0.333806, 0.942642, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45873 at 66.914688 yards. +(@OGUID+89, 177464, 0, 3159.3, -3589.56, 147.144, 4.64258, 0, 0, -0.731354, 0.681998, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45888 at 38.915195 yards. +(@OGUID+90, 177464, 0, 3164.12, -3728, 134.284, 2.82743, 0, 0, 0.987688, 0.156436, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45874 at 42.458164 yards. +(@OGUID+91, 177464, 0, 3029.15, -2992.28, 114.925, 2.89725, 0, 0, 0.992546, 0.12187, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45788 at 75.457748 yards. +(@OGUID+92, 177464, 0, 2964.19, -3105.65, 112.549, 2.1293, 0, 0, 0.874619, 0.48481, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45867 at 119.770988 yards. +(@OGUID+93, 177464, 0, 3060.6, -3851.3, 119.154, 1.53589, 0, 0, 0.694658, 0.71934, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45858 at 74.443840 yards. +(@OGUID+94, 177464, 0, 2947.86, -3876.89, 125, 3.17653, 0, 0, -0.999847, 0.0174693, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45852 at 45.058182 yards. +(@OGUID+95, 177464, 0, 2962.72, -3641.03, 131.199, 0.628317, 0, 0, 0.309016, 0.951057, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45889 at 66.537819 yards. +(@OGUID+96, 177464, 0, 3165.4, -3536.86, 153.719, 5.88176, 0, 0, -0.199368, 0.979925, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45888 at 32.628113 yards. +(@OGUID+97, 177464, 0, 3062.51, -3293.22, 144.476, 2.9845, 0, 0, 0.996917, 0.0784664, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45867 at 100.231873 yards. +(@OGUID+98, 177464, 0, 3192.66, -3122.59, 158.035, 4.17134, 0, 0, -0.870356, 0.492424, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45849 at 46.338120 yards. +(@OGUID+99, 177464, 0, 2889.87, -4000.27, 102.284, 1.0821, 0, 0, 0.515038, 0.857168, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45862 at 50.122066 yards. +(@OGUID+100, 177464, 0, 2972.09, -3900.67, 117.967, 5.11382, 0, 0, -0.551936, 0.833886, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45852 at 78.690422 yards. +(@OGUID+101, 177464, 0, 3232.37, -3418.94, 144.832, 4.86947, 0, 0, -0.649447, 0.760406, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45790 at 58.849575 yards. +(@OGUID+102, 177464, 0, 3336.8, -3626.68, 147.302, 5.16618, 0, 0, -0.529919, 0.848048, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45874 at 163.145035 yards. +(@OGUID+103, 177464, 0, 3331.53, -3742.98, 157.961, 4.01426, 0, 0, -0.906307, 0.422619, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45874 at 129.939316 yards. +(@OGUID+104, 177464, 0, 3215.45, -3868.48, 136.815, 4.31097, 0, 0, -0.833885, 0.551938, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45890 at 42.278576 yards. +(@OGUID+105, 177464, 0, 3237.94, -3010.82, 126.975, 2.21657, 0, 0, 0.894934, 0.446199, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45857 at 43.837475 yards. +(@OGUID+106, 177464, 0, 3233.65, -3130.15, 160.076, 2.18166, 0, 0, 0.887011, 0.461749, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45859 at 78.198883 yards. +(@OGUID+107, 177464, 0, 3160.54, -3837.46, 128.316, 3.45576, 0, 0, -0.987688, 0.156436, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45890 at 40.337799 yards. +(@OGUID+108, 177464, 0, 3008.96, -3648.81, 138.91, 6.23083, 0, 0, -0.0261765, 0.999657, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45889 at 76.132599 yards. +(@OGUID+109, 177464, 0, 3182.62, -3214.05, 160.985, 0.383971, 0, 0, 0.190808, 0.981627, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45849 at 111.998085 yards. +(@OGUID+110, 177464, 0, 3138.45, -3960.4, 111.758, 3.56047, 0, 0, -0.978148, 0.207912, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45858 at 67.734070 yards. +(@OGUID+111, 177464, 0, 2767.12, -3909.49, 98.2715, 5.51524, 0, 0, -0.374606, 0.927184, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45877 at 103.757339 yards. +(@OGUID+112, 177464, 0, 3079.91, -3764.93, 133.009, 1.64061, 0, 0, 0.731353, 0.681999, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45871 at 72.452637 yards. +(@OGUID+113, 177464, 0, 3113.45, -3633.66, 146.398, 4.4855, 0, 0, -0.782608, 0.622515, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45888 at 102.332329 yards. +(@OGUID+114, 177464, 0, 3127.75, -3135.91, 160.298, 0.349065, 0, 0, 0.173648, 0.984808, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45849 at 35.910843 yards. +(@OGUID+115, 177464, 0, 2794.01, -3198.74, 110.21, 0.244346, 0, 0, 0.121869, 0.992546, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45732 at 44.325020 yards. +(@OGUID+116, 177464, 0, 2920.42, -3177.44, 118.566, 4.43314, 0, 0, -0.798635, 0.601815, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45732 at 96.200844 yards. +(@OGUID+117, 177464, 0, 2783.32, -3712.19, 103.139, 4.41568, 0, 0, -0.803857, 0.594823, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45877 at 108.611107 yards. +(@OGUID+118, 177464, 0, 2918.73, -3613.49, 115.49, 3.47321, 0, 0, -0.986285, 0.16505, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45891 at 74.445801 yards. +(@OGUID+119, 177464, 0, 3071.9, -3992.19, 106.312, 1.41372, 0, 0, 0.649447, 0.760406, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45858 at 102.775002 yards. +(@OGUID+120, 177464, 0, 3085.49, -3533.2, 135.754, 5.044, 0, 0, -0.580703, 0.814116, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45873 at 67.129311 yards. +(@OGUID+121, 177464, 0, 3010.9, -3281.43, 139.33, 0.872664, 0, 0, 0.422618, 0.906308, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45866 at 50.288948 yards. +(@OGUID+122, 177464, 0, 3010.59, -3249.58, 143.781, 3.78737, 0, 0, -0.948323, 0.317306, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45867 at 57.172810 yards. +(@OGUID+123, 177464, 0, 3225.21, -3167.04, 149.742, 4.53786, 0, 0, -0.766044, 0.642789, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45849 at 97.595428 yards. +(@OGUID+124, 177464, 0, 3031.23, -3730.52, 127.546, 2.53072, 0, 0, 0.953716, 0.300708, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45872 at 50.942039 yards. +(@OGUID+125, 177464, 0, 2918.59, -3327.23, 120.493, 5.72468, 0, 0, -0.275637, 0.961262, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45866 at 59.782982 yards. +(@OGUID+126, 177464, 0, 2933.01, -3050.32, 111.408, 1.0472, 0, 0, 0.5, 0.866025, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45733 at 110.367332 yards. +(@OGUID+127, 177464, 0, 2886.06, -3918.41, 107.714, 6.14356, 0, 0, -0.0697556, 0.997564, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45862 at 55.658493 yards. +(@OGUID+128, 177464, 0, 2845.49, -3721.67, 108.643, 1.69297, 0, 0, 0.748956, 0.66262, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45891 at 66.140343 yards. +(@OGUID+129, 177464, 0, 2837.75, -3477.08, 106.876, 0.855211, 0, 0, 0.414693, 0.909961, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45878 at 64.636810 yards. +(@OGUID+130, 177464, 0, 3041.71, -3895.81, 117.727, 4.7473, 0, 0, -0.694658, 0.71934, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45858 at 73.187599 yards. +(@OGUID+131, 177464, 0, 3044.73, -3030.82, 125.754, 5.61996, 0, 0, -0.325567, 0.945519, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45788 at 80.787560 yards. +(@OGUID+132, 177464, 0, 2938.07, -3422.84, 132.954, 0.261798, 0, 0, 0.130526, 0.991445, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45878 at 66.888298 yards. +(@OGUID+133, 177464, 0, 2861.42, -3295.48, 112.382, 5.2709, 0, 0, -0.484809, 0.87462, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45732 at 90.740112 yards. +(@OGUID+134, 177464, 0, 2866.64, -3183.02, 118.198, 4.69494, 0, 0, -0.71325, 0.70091, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45732 at 47.117676 yards. +(@OGUID+135, 177464, 0, 2857.62, -3656.35, 113.858, 4.85202, 0, 0, -0.656058, 0.75471, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45891 at 51.851563 yards. +(@OGUID+136, 177464, 0, 2796.9, -3648.62, 102.826, 3.4383, 0, 0, -0.989016, 0.147811, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45891 at 110.732063 yards. +(@OGUID+137, 177464, 0, 2887.31, -3274.73, 124.875, 2.79252, 0, 0, 0.984807, 0.173652, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45866 at 77.554825 yards. +(@OGUID+138, 177464, 0, 3107.83, -3111.81, 150.77, 2.53072, 0, 0, 0.953716, 0.300708, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45849 at 43.200378 yards. +(@OGUID+139, 177464, 0, 3181.33, -3169.7, 157.345, 4.81711, 0, 0, -0.66913, 0.743145, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45849 at 70.491478 yards. +(@OGUID+140, 177464, 0, 2926.1, -3489.14, 122.402, 2.63544, 0, 0, 0.968147, 0.250381, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45878 at 82.160118 yards. +(@OGUID+141, 177464, 0, 2888.19, -3539.11, 112.085, 1.20428, 0, 0, 0.566406, 0.824126, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45889 at 105.987244 yards. +(@OGUID+142, 177464, 0, 3028.16, -3150.33, 122.155, 0.663223, 0, 0, 0.325567, 0.945519, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45867 at 53.062759 yards. +(@OGUID+143, 177464, 0, 2809.28, -3295.59, 99.5157, 3.82227, 0, 0, -0.942641, 0.333808, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45732 at 91.968102 yards. +(@OGUID+144, 177464, 0, 3180.04, -3007.34, 125.389, 4.53786, 0, 0, -0.766044, 0.642789, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45848 at 47.802933 yards. +(@OGUID+145, 177464, 0, 3272.09, -3084.48, 158.415, 0.104719, 0, 0, 0.0523357, 0.99863, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45859 at 40.609566 yards. +(@OGUID+146, 177464, 0, 3153.27, -3373.76, 154.009, 5.93412, 0, 0, -0.173648, 0.984808, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45850 at 60.058666 yards. +(@OGUID+147, 177464, 0, 3266.84, -3792.71, 144.374, 1.6057, 0, 0, 0.719339, 0.694659, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45874 at 95.344894 yards. +(@OGUID+148, 177464, 0, 3257.55, -3734.91, 145.85, 4.13643, 0, 0, -0.878817, 0.47716, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45874 at 55.456909 yards. +(@OGUID+149, 177464, 0, 3117.16, -3031.48, 131.624, 3.54302, 0, 0, -0.979924, 0.19937, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45788 at 60.435459 yards. +(@OGUID+150, 177464, 0, 3264.9, -2995.55, 129.91, 4.88692, 0, 0, -0.642787, 0.766045, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 45857 at 19.597006 yards. +(@OGUID+151, 177464, 0, 2928.42, -3220.76, 124.062, 4.5204, 0, 0, -0.771625, 0.636078, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 45866 at 76.012115 yards. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+8, 44, 'Eastern Plaguelands - Large Termite Mound', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(177464, @PTEMPLATE+8, 0, 'Eastern Plaguelands - Large Termite Mound', 0, 10); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 177464; + +-- Missing Ambercorn spawns in Mulgore. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+152, 2912, 1, -1433.32, -387.397, -46.2085, 1.58825, 0, 0, 0.71325, 0.70091, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 18820 at 95.283951 yards. +(@OGUID+153, 2912, 1, -1586.8, -331.475, -30.3236, 2.05949, 0, 0, 0.857167, 0.515038, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 18921 at 251.156021 yards. +(@OGUID+154, 2912, 1, -1892.86, -434.164, -5.15549, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 18921 at 95.194130 yards. +(@OGUID+155, 2912, 1, -2443.54, -605.072, -2.96866, 4.27606, 0, 0, -0.843391, 0.5373, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 20319 at 80.625099 yards. +(@OGUID+156, 2912, 1, -2459.35, -619.561, -2.63018, 0.174532, 0, 0, 0.0871553, 0.996195, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 20319 at 94.545189 yards. +(@OGUID+157, 2912, 1, -2441.47, -1475.93, 31.9935, 3.57793, 0, 0, -0.976295, 0.216442, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 18857 at 292.050293 yards. +(@OGUID+158, 2912, 1, -1253.35, -557.481, -55.9928, 4.69494, 0, 0, -0.71325, 0.70091, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 18815 at 137.339951 yards. +(@OGUID+159, 2912, 1, -2035.87, -51.518, -5.00589, 4.64258, 0, 0, -0.731354, 0.681998, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 20321 at 71.568497 yards. +(@OGUID+160, 2912, 1, -1925.65, -676.451, -4.03008, 5.35816, 0, 0, -0.446198, 0.894935, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 18869 at 61.193794 yards. +(@OGUID+161, 2912, 1, -2556.47, -815.005, -0.147034, 4.2237, 0, 0, -0.857167, 0.515038, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 20325 at 120.572693 yards. +(@OGUID+162, 2912, 1, -2708.71, -330.148, -0.372176, 2.87979, 0, 0, 0.991445, 0.130528, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 18855 at 80.179947 yards. +(@OGUID+163, 2912, 1, -2570.12, -228.345, -8.49608, 3.24635, 0, 0, -0.998629, 0.0523532, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 18855 at 111.718788 yards. +(@OGUID+164, 2912, 1, -2752.97, -190.937, 15.3972, 2.96704, 0, 0, 0.996194, 0.087165, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 18824 at 89.299751 yards. +(@OGUID+165, 2912, 1, -2794.86, -677.109, 16.6269, 2.72271, 0, 0, 0.978148, 0.207912, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 20314 at 131.462662 yards. +(@OGUID+166, 2912, 1, -2478.16, -1241.01, -2.6469, 5.65487, 0, 0, -0.309016, 0.951057, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 18898 at 217.281708 yards. +(@OGUID+167, 2912, 1, -652.837, -528.393, -6.65837, 3.78737, 0, 0, -0.948323, 0.317306, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 18828 at 224.075348 yards. +(@OGUID+168, 2912, 1, -1648.95, 268.623, 30.9097, 4.62512, 0, 0, -0.737277, 0.675591, 180, 180, 1, 100, 0, 10); -- Closest existing guid is 18713 at 119.798668 yards. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+9, 31, 'Mulgore - Ambercorn', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(2912, @PTEMPLATE+9, 0, 'Mulgore - Ambercorn', 0, 10); + +-- Missing Pupellyverbos Port spawns in The Hinterlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+169, 2068, 0, 110.22, -4728.37, 7.06235, 1.15192, 0, 0, 0.544639, 0.838671, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46351 at 56.596493 yards. +(@OGUID+170, 2068, 0, 77.42, -4728.21, 7.57427, 6.07375, 0, 0, -0.104528, 0.994522, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46410 at 43.580128 yards. +(@OGUID+171, 2068, 0, -184.38, -4489.35, 12.9905, 3.89209, 0, 0, -0.930417, 0.366502, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46378 at 87.156036 yards. +(@OGUID+172, 2068, 0, -337.181, -4554.87, 11.4991, 1.55334, 0, 0, 0.700909, 0.713251, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46379 at 51.143814 yards. +(@OGUID+173, 2068, 0, -411.438, -4509.61, 10.2161, 2.40855, 0, 0, 0.93358, 0.358368, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46375 at 61.469818 yards. +(@OGUID+174, 2068, 0, -2.35569, -4710.65, 5.32679, 3.64774, 0, 0, -0.968147, 0.250381, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46410 at 52.054420 yards. +(@OGUID+175, 2068, 0, -670.764, -4498.54, 11.2125, 3.194, 0, 0, -0.999657, 0.0262016, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46415 at 40.281570 yards. +(@OGUID+176, 2068, 0, -139.051, -4565.21, 11.7204, 5.61996, 0, 0, -0.325567, 0.945519, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46378 at 76.802223 yards. +(@OGUID+177, 2068, 0, -85.1969, -4627.1, 12.2291, 3.82227, 0, 0, -0.942641, 0.333808, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46436 at 33.784439 yards. +(@OGUID+178, 2068, 0, -301.977, -4591.42, 10.4102, 3.15906, 0, 0, -0.999962, 0.00873464, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46379 at 46.569794 yards. +(@OGUID+179, 2068, 0, -824.682, -4407.49, 10.5744, 2.56563, 0, 0, 0.958819, 0.284016, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46287 at 57.019081 yards. +(@OGUID+180, 2068, 0, -875.348, -4421.73, 5.40005, 4.13643, 0, 0, -0.878817, 0.47716, 180, 180, 1, 100, 0, 10); -- Closest existing guid is 46409 at 33.227680 yards. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+10, 20, 'Hinterlands - Pupellyverbos Port', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(2068, @PTEMPLATE+10, 0, 'Hinterlands - Pupellyverbos Port', 0, 10); + +-- Missing Bauble Container spawns in Moonglade. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+181, 177785, 1, 7769.78, -2487.91, 417.833, 5.044, 0, 0, -0.580703, 0.814116, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 49210 at 122.972382 yards. +(@OGUID+182, 177785, 1, 7666.62, -2584.24, 400.925, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 49208 at 60.215000 yards. +(@OGUID+183, 177785, 1, 7713.5, -2534.34, 398.51, 5.84685, 0, 0, -0.216439, 0.976296, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 49210 at 78.189667 yards. +(@OGUID+184, 177785, 1, 7592.7, -2779.52, 401.488, 1.27409, 0, 0, 0.594822, 0.803857, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 49208 at 150.663040 yards. +(@OGUID+185, 177785, 1, 7666.5, -2679.52, 392.206, 0, 0, 0, 0, 1, 180, 180, 1, 100, 0, 10); -- Closest existing guid is 49208 at 55.329056 yards. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+11, 4, 'Moonglade - Bauble Container', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(177785, @PTEMPLATE+11, 0, 'Moonglade - Bauble Container', 0, 10); + +-- Missing Dark Iron Pillow spawns in Searing Gorge. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+186, 179828, 0, -6555.52, -1309.98, 210.26, 1.91986, 0, 0, 0.819152, 0.573577, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 7009 at 9.390129 yards. +(@OGUID+187, 179828, 0, -6554.33, -1313.8, 210.26, 5.28835, 0, 0, -0.477159, 0.878817, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 7009 at 5.459375 yards. +(@OGUID+188, 179828, 0, -6547.68, -1325.57, 212.376, 2.75761, 0, 0, 0.981627, 0.190812, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 7009 at 8.300499 yards. +(@OGUID+189, 179828, 0, -6528.67, -1339.02, 210.124, 2.67035, 0, 0, 0.972369, 0.233448, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 6991 at 10.924319 yards. +(@OGUID+190, 179828, 0, -6523.54, -1364.66, 212.984, 0.418879, 0, 0, 0.207911, 0.978148, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 6974 at 14.772972 yards. +(@OGUID+191, 179828, 0, -6554.68, -1351.74, 212.682, 2.14675, 0, 0, 0.878817, 0.47716, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 7006 at 5.824247 yards. +(@OGUID+192, 179828, 0, -6535.21, -1335.93, 210.214, 2.54818, 0, 0, 0.956305, 0.292372, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 6991 at 18.075546 yards. +(@OGUID+193, 179828, 0, -6531.65, -1337.63, 210.18, 4.39823, 0, 0, -0.809016, 0.587786, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 6991 at 14.167161 yards. +(@OGUID+194, 179828, 0, -6546.63, -1356.37, 212.376, 2.30383, 0, 0, 0.913545, 0.406738, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 7006 at 14.604881 yards. +(@OGUID+195, 179828, 0, -6532.75, -1363.12, 210.812, 5.2709, 0, 0, -0.484809, 0.87462, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 6974 at 24.152454 yards. +(@OGUID+196, 179828, 0, -6527.64, -1340.23, 212.095, 1.83259, 0, 0, 0.793353, 0.608762, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 6991 at 9.848306 yards. +(@OGUID+197, 179828, 0, -6543.81, -1358.71, 210.544, 3.75246, 0, 0, -0.953716, 0.300708, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 7006 at 18.110325 yards. +(@OGUID+198, 179828, 0, -6551.29, -1354.12, 212.668, 3.64774, 0, 0, -0.968147, 0.250381, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 7006 at 9.700323 yards. +(@OGUID+199, 179828, 0, -6551.14, -1354.85, 210.433, 4.36332, 0, 0, -0.819152, 0.573577, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 7006 at 10.001985 yards. +(@OGUID+200, 179828, 0, -6528.76, -1363.6, 212.657, 2.61799, 0, 0, 0.965925, 0.258821, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 6974 at 20.049841 yards. +(@OGUID+201, 179828, 0, -6518.91, -1364.86, 210.541, 5.65487, 0, 0, -0.309016, 0.951057, 300, 300, 1, 100, 3, 10); -- Closest existing guid is 6974 at 10.399881 yards. + +-- Missing Excavation Supply Crate spawns in Badlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+202, 2867, 0, -6245.92, -3735.86, 243.396, 3.31614, 0, 0, -0.996194, 0.087165, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 11500 at 33.564705 yards. +(@OGUID+203, 2867, 0, -6254.85, -3735.93, 243.85, 5.00909, 0, 0, -0.594823, 0.803857, 10, 10, 1, 100, 0, 10); -- Closest existing guid is 11500 at 24.963169 yards. + +-- Missing Moonpetal Lily spawns in Teldrassil. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+204, 152095, 1, 10571.2, 903.68, 1311.4, 1.6057, 0, 0, 0.719339, 0.694659, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 49573 at 13.391023 yards. +(@OGUID+205, 152095, 1, 10527.6, 935.307, 1314.05, 2.3911, 0, 0, 0.930417, 0.366502, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 49586 at 15.905927 yards. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+12, 9, 'Teldrassil - Moonpetal Lily', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(152095, @PTEMPLATE+12, 0, 'Teldrassil - Moonpetal Lily', 0, 10); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 152095; + +-- Missing Sapphire of Aku'Mai spawns in Blackfathom Deeps. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+206, 178185, 1, 4255.42, 729.008, -24.2581, 1.48353, 0, 0, 0.67559, 0.737278, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 47706 at 27.524839 yards. +(@OGUID+209, 178185, 1, 4258.72, 838.539, -1.47972, 5.37562, 0, 0, -0.438371, 0.898794, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 12974 at 26.597336 yards. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+13, 5, 'Ashenvale - Sapphire of Aku\'Mai', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(178185, @PTEMPLATE+13, 0, 'Ashenvale - Sapphire of Aku\'Mai', 0, 10); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 178185; + +-- Missing Tool Bucket spawns in Western Plaguelands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+210, 177726, 0, 2876.9, -1549.13, 145.872, 1.76278, 0, 0, 0.771625, 0.636078, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45433 at 14.553500 yards. +(@OGUID+211, 177726, 0, 2896.48, -1527.02, 146.761, 3.82227, 0, 0, -0.942641, 0.333808, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45435 at 31.535645 yards. +(@OGUID+212, 177726, 0, 2892.12, -1542.69, 145.804, 0.191985, 0, 0, 0.0958452, 0.995396, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45435 at 23.106398 yards. +(@OGUID+213, 177726, 0, 2879.44, -1462.61, 145.273, 5.72468, 0, 0, -0.275637, 0.961262, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45432 at 13.641475 yards. +(@OGUID+214, 177726, 0, 2824.21, -1443.01, 145.818, 4.29351, 0, 0, -0.83867, 0.54464, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45430 at 44.886936 yards. +(@OGUID+215, 177726, 0, 2968.7, -1476.3, 146.271, 4.25861, 0, 0, -0.848047, 0.529921, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45434 at 11.732040 yards. +(@OGUID+216, 177726, 0, 2986.87, -1507.66, 145.885, 1.71042, 0, 0, 0.754709, 0.656059, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45436 at 22.042866 yards. +(@OGUID+217, 177726, 0, 2865.24, -1474.01, 145.742, 1.81514, 0, 0, 0.788011, 0.615662, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45429 at 10.122108 yards. +(@OGUID+218, 177726, 0, 2874.65, -1527.36, 145.294, 2.00713, 0, 0, 0.843391, 0.5373, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45433 at 36.391499 yards. +(@OGUID+219, 177726, 0, 3002.21, -1516.26, 145.812, 4.97419, 0, 0, -0.608761, 0.793354, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45431 at 11.906282 yards. +(@OGUID+220, 177726, 0, 2864.16, -1479.78, 146.027, 4.20625, 0, 0, -0.861629, 0.507539, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45429 at 8.262079 yards. +(@OGUID+221, 177726, 0, 2857.62, -1464.99, 146.383, 3.80482, 0, 0, -0.945518, 0.325568, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45430 at 6.647936 yards. +(@OGUID+222, 177726, 0, 2896.78, -1566.02, 145.214, 4.13643, 0, 0, -0.878817, 0.47716, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45433 at 17.437513 yards. +(@OGUID+223, 177726, 0, 2881.41, -1475.39, 146.244, 2.49582, 0, 0, 0.948323, 0.317306, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45429 at 10.850341 yards. +(@OGUID+224, 177726, 0, 3016.8, -1519.74, 146.259, 1.0472, 0, 0, 0.5, 0.866025, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45431 at 11.037997 yards. +(@OGUID+225, 177726, 0, 2873.61, -1466.1, 145.701, 0.767944, 0, 0, 0.374606, 0.927184, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45430 at 9.840968 yards. +(@OGUID+226, 177726, 0, 2965.24, -1456.32, 145.656, 4.95674, 0, 0, -0.615661, 0.788011, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45434 at 29.129597 yards. +(@OGUID+227, 177726, 0, 2883.92, -1551.77, 145.329, 3.61284, 0, 0, -0.972369, 0.233448, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45433 at 12.485304 yards. +(@OGUID+228, 177726, 0, 2972.37, -1486.09, 147.202, 6.12611, 0, 0, -0.0784588, 0.996917, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45436 at 11.312881 yards. +(@OGUID+229, 177726, 0, 2840.79, -1427.65, 145.459, 2.77507, 0, 0, 0.983254, 0.182238, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45432 at 38.850014 yards. +(@OGUID+230, 177726, 0, 2888.73, -1571.57, 147.257, 0.139624, 0, 0, 0.0697556, 0.997564, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45433 at 12.233257 yards. +(@OGUID+231, 177726, 0, 2973.81, -1454.46, 146.139, 6.05629, 0, 0, -0.113203, 0.993572, 7200, 7200, 1, 100, 0, 10), -- Closest existing guid is 45436 at 32.946182 yards. +(@OGUID+232, 177726, 0, 2971.57, -1519.24, 145.965, 1.83259, 0, 0, 0.793353, 0.608762, 7200, 7200, 1, 100, 0, 10); -- Closest existing guid is 45436 at 35.506332 yards. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+14, 15, 'Western Plaguelands - Tool Bucket', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(177726, @PTEMPLATE+14, 0, 'Western Plaguelands - Tool Bucket', 0, 10); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 177726; + + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+234, 178184, 1, 4240.29, 747.249, -21.9254, 6.05629, 0, 0, -0.113203, 0.993572, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 12969 at 20.176172 yards. +(@OGUID+235, 178184, 1, 4217.43, 759.061, -19.9687, 0.418879, 0, 0, 0.207911, 0.978148, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 47702 at 33.557671 yards. +(@OGUID+236, 178184, 1, 4276.26, 736.315, -25.4155, 4.85202, 0, 0, -0.656058, 0.75471, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 12969 at 40.703712 yards. +(@OGUID+237, 178184, 1, 4315.48, 889.12, -10.3028, 0.418879, 0, 0, 0.207911, 0.978148, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 12979 at 22.115051 yards. + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+15, 5, 'Darkshore - Scaber Stalk', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11714, @PTEMPLATE+15, 0, 'Darkshore - Scaber Stalk', 0, 10); + +-- Create new pool to hold Blood of Heroes spawns in Western Plaguelands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(9, 16, 'Western Plaguelands - Blood of Heroes', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(25918, 9, 0, 'Blood of Heroes', 0, 10), +(25919, 9, 0, 'Blood of Heroes', 0, 10), +(25920, 9, 0, 'Blood of Heroes', 0, 10), +(25922, 9, 0, 'Blood of Heroes', 0, 10), +(25923, 9, 0, 'Blood of Heroes', 0, 10), +(25924, 9, 0, 'Blood of Heroes', 0, 10), +(25925, 9, 0, 'Blood of Heroes', 0, 10), +(25926, 9, 0, 'Blood of Heroes', 0, 10), +(25928, 9, 0, 'Blood of Heroes', 0, 10), +(25929, 9, 0, 'Blood of Heroes', 0, 10), +(25930, 9, 0, 'Blood of Heroes', 0, 10), +(25932, 9, 0, 'Blood of Heroes', 0, 10), +(25936, 9, 0, 'Blood of Heroes', 0, 10), +(25945, 9, 0, 'Blood of Heroes', 0, 10), +(25953, 9, 0, 'Blood of Heroes', 0, 10), +(25954, 9, 0, 'Blood of Heroes', 0, 10), +(25958, 9, 0, 'Blood of Heroes', 0, 10), +(25965, 9, 0, 'Blood of Heroes', 0, 10), +(25968, 9, 0, 'Blood of Heroes', 0, 10), +(25970, 9, 0, 'Blood of Heroes', 0, 10), +(45512, 9, 0, 'Blood of Heroes', 0, 10), +(45514, 9, 0, 'Blood of Heroes', 0, 10), +(55345, 9, 0, 'Blood of Heroes', 0, 10), +(55346, 9, 0, 'Blood of Heroes', 0, 10), +(55348, 9, 0, 'Blood of Heroes', 0, 10), +(55349, 9, 0, 'Blood of Heroes', 0, 10), +(55350, 9, 0, 'Blood of Heroes', 0, 10), +(55351, 9, 0, 'Blood of Heroes', 0, 10), +(55352, 9, 0, 'Blood of Heroes', 0, 10), +(55353, 9, 0, 'Blood of Heroes', 0, 10), +(55354, 9, 0, 'Blood of Heroes', 0, 10), +(55356, 9, 0, 'Blood of Heroes', 0, 10), +(55357, 9, 0, 'Blood of Heroes', 0, 10), +(55358, 9, 0, 'Blood of Heroes', 0, 10), +(55359, 9, 0, 'Blood of Heroes', 0, 10), +(55369, 9, 0, 'Blood of Heroes', 0, 10), +(25931, 41, 0, 'Blood of Heroes', 0, 10), +(25934, 41, 0, 'Blood of Heroes', 0, 10); + +-- Create new pool to hold Blood of Heroes spawns in Eastern Plaguelands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(38, 36, 'Eastern Plaguelands - Blood of Heroes', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(25927, 38, 0, 'Blood of Heroes', 0, 10), +(25933, 38, 0, 'Blood of Heroes', 0, 10), +(25935, 38, 0, 'Blood of Heroes', 0, 10), +(25937, 38, 0, 'Blood of Heroes', 0, 10), +(25938, 38, 0, 'Blood of Heroes', 0, 10), +(25939, 38, 0, 'Blood of Heroes', 0, 10), +(25940, 38, 0, 'Blood of Heroes', 0, 10), +(25941, 38, 0, 'Blood of Heroes', 0, 10), +(25942, 38, 0, 'Blood of Heroes', 0, 10), +(25943, 38, 0, 'Blood of Heroes', 0, 10), +(25944, 38, 0, 'Blood of Heroes', 0, 10), +(25946, 38, 0, 'Blood of Heroes', 0, 10), +(25947, 38, 0, 'Blood of Heroes', 0, 10), +(25948, 38, 0, 'Blood of Heroes', 0, 10), +(25949, 38, 0, 'Blood of Heroes', 0, 10), +(25950, 38, 0, 'Blood of Heroes', 0, 10), +(25951, 38, 0, 'Blood of Heroes', 0, 10), +(25952, 38, 0, 'Blood of Heroes', 0, 10), +(25955, 38, 0, 'Blood of Heroes', 0, 10), +(25956, 38, 0, 'Blood of Heroes', 0, 10), +(25957, 38, 0, 'Blood of Heroes', 0, 10), +(25959, 38, 0, 'Blood of Heroes', 0, 10), +(25960, 38, 0, 'Blood of Heroes', 0, 10), +(25961, 38, 0, 'Blood of Heroes', 0, 10), +(25962, 38, 0, 'Blood of Heroes', 0, 10), +(25963, 38, 0, 'Blood of Heroes', 0, 10), +(25964, 38, 0, 'Blood of Heroes', 0, 10), +(25966, 38, 0, 'Blood of Heroes', 0, 10), +(25967, 38, 0, 'Blood of Heroes', 0, 10), +(25969, 38, 0, 'Blood of Heroes', 0, 10), +(25971, 38, 0, 'Blood of Heroes', 0, 10), +(25972, 38, 0, 'Blood of Heroes', 0, 10), +(25973, 38, 0, 'Blood of Heroes', 0, 10), +(25974, 38, 0, 'Blood of Heroes', 0, 10), +(25975, 38, 0, 'Blood of Heroes', 0, 10), +(25976, 38, 0, 'Blood of Heroes', 0, 10), +(25977, 38, 0, 'Blood of Heroes', 0, 10), +(25978, 38, 0, 'Blood of Heroes', 0, 10), +(25979, 38, 0, 'Blood of Heroes', 0, 10), +(25980, 38, 0, 'Blood of Heroes', 0, 10), +(25981, 38, 0, 'Blood of Heroes', 0, 10), +(25982, 38, 0, 'Blood of Heroes', 0, 10), +(25983, 38, 0, 'Blood of Heroes', 0, 10), +(25984, 38, 0, 'Blood of Heroes', 0, 10), +(25985, 38, 0, 'Blood of Heroes', 0, 10), +(25986, 38, 0, 'Blood of Heroes', 0, 10), +(25987, 38, 0, 'Blood of Heroes', 0, 10), +(25988, 38, 0, 'Blood of Heroes', 0, 10), +(25989, 38, 0, 'Blood of Heroes', 0, 10), +(25990, 38, 0, 'Blood of Heroes', 0, 10), +(25991, 38, 0, 'Blood of Heroes', 0, 10), +(25992, 38, 0, 'Blood of Heroes', 0, 10), +(25993, 38, 0, 'Blood of Heroes', 0, 10), +(25994, 38, 0, 'Blood of Heroes', 0, 10), +(25995, 38, 0, 'Blood of Heroes', 0, 10), +(25996, 38, 0, 'Blood of Heroes', 0, 10), +(25997, 38, 0, 'Blood of Heroes', 0, 10), +(45736, 38, 0, 'Blood of Heroes', 0, 10), +(45853, 38, 0, 'Blood of Heroes', 0, 10), +(45868, 38, 0, 'Blood of Heroes', 0, 10), +(45892, 38, 0, 'Blood of Heroes', 0, 10), +(45934, 38, 0, 'Blood of Heroes', 0, 10), +(45936, 38, 0, 'Blood of Heroes', 0, 10), +(55347, 38, 0, 'Blood of Heroes', 0, 10), +(55355, 38, 0, 'Blood of Heroes', 0, 10), +(55360, 38, 0, 'Blood of Heroes', 0, 10), +(55361, 38, 0, 'Blood of Heroes', 0, 10), +(55362, 38, 0, 'Blood of Heroes', 0, 10), +(55363, 38, 0, 'Blood of Heroes', 0, 10), +(55364, 38, 0, 'Blood of Heroes', 0, 10), +(55365, 38, 0, 'Blood of Heroes', 0, 10), +(55366, 38, 0, 'Blood of Heroes', 0, 10), +(55367, 38, 0, 'Blood of Heroes', 0, 10), +(55368, 38, 0, 'Blood of Heroes', 0, 10), +(55370, 38, 0, 'Blood of Heroes', 0, 10), +(55371, 38, 0, 'Blood of Heroes', 0, 10), +(55372, 38, 0, 'Blood of Heroes', 0, 10); + +DELETE FROM `pool_gameobject_template` WHERE `pool_entry` = 1634; +DELETE FROM `pool_template` WHERE `entry` = 1634; + +-- Correct position of Un'Goro Dirt Pile in Un'Goro Crater (position is off by 0.00100708 yards). +UPDATE `gameobject` SET `position_x`=-6537.01, `position_y`=-878.389, `position_z`=-272.13, `orientation`=2.28638, `rotation0`=0, `rotation1`=0, `rotation2`=0.909961, `rotation3`=0.414694 WHERE `guid`=11181; + +-- Correct position of Warsong Oil in Ashenvale (position is off by 4.24072 yards). +UPDATE `gameobject` SET `position_x`=2483.79, `position_y`=-2132.99, `position_z`=201.7, `orientation`=3.54302, `rotation0`=0, `rotation1`=0, `rotation2`=-0.979924, `rotation3`=0.19937 WHERE `guid`=47796; + +-- Correct position of Warsong Oil in Ashenvale (position is off by 2.86351 yards). +UPDATE `gameobject` SET `position_x`=2955.12, `position_y`=-2810.06, `position_z`=212.554, `orientation`=4.66003, `rotation0`=0, `rotation1`=0, `rotation2`=-0.725374, `rotation3`=0.688355 WHERE `guid`=47797; + +-- Correct position of Half-Buried Bottle in Stranglethorn Vale (position is off by 0.39528 yards). +UPDATE `gameobject` SET `position_x`=-13734.8, `position_y`=-255.343, `position_z`=0.00472, `orientation`=0.523598, `rotation0`=0, `rotation1`=0, `rotation2`=0.258819, `rotation3`=0.965926 WHERE `guid`=11031; + +-- Correct position of Half-Buried Bottle in Stranglethorn Vale (position is off by 1.86579 yards). +UPDATE `gameobject` SET `position_x`=-13912.6, `position_y`=-166.436, `position_z`=0.534212, `orientation`=5.98648, `rotation0`=0, `rotation1`=0, `rotation2`=-0.147809, `rotation3`=0.989016 WHERE `guid`=11034; + +-- Correct position of Half-Buried Bottle in Stranglethorn Vale (position is off by 9.91821e-05 yards). +UPDATE `gameobject` SET `position_x`=-14270.1, `position_y`=-17.1997, `position_z`=0.675434, `orientation`=2.18166, `rotation0`=0, `rotation1`=0, `rotation2`=0.887011, `rotation3`=0.461749 WHERE `guid`=26081; + +-- Correct position of Sack of Oats in Westfall (position is off by 9.91821e-05 yards). +UPDATE `gameobject` SET `position_x`=-9848.6, `position_y`=1049.01, `position_z`=33.4474, `orientation`=6.26573, `rotation0`=0, `rotation1`=0, `rotation2`=-0.00872612, `rotation3`=0.999962 WHERE `guid`=25736; + +-- Correct position of Sack of Oats in Westfall (position is off by 0.000976563 yards). +UPDATE `gameobject` SET `position_x`=-10427.2, `position_y`=947.126, `position_z`=38.189, `orientation`=5.96903, `rotation0`=0, `rotation1`=0, `rotation2`=-0.156434, `rotation3`=0.987688 WHERE `guid`=25715; + +-- Correct position of Sack of Oats in Westfall (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=-9804.56, `position_y`=1006.26, `position_z`=29.1304, `orientation`=0.90757, `rotation0`=0, `rotation1`=0, `rotation2`=0.438371, `rotation3`=0.898794 WHERE `guid`=25737; + +-- Correct position of Sack of Oats in Westfall (position is off by 0.000976563 yards). +UPDATE `gameobject` SET `position_x`=-11125.2, `position_y`=937.746, `position_z`=36.1692, `orientation`=0.767944, `rotation0`=0, `rotation1`=0, `rotation2`=0.374606, `rotation3`=0.927184 WHERE `guid`=25699; + +-- Correct position of Sack of Oats in Westfall (position is off by 9.91821e-05 yards). +UPDATE `gameobject` SET `position_x`=-11046.5, `position_y`=1557.89, `position_z`=43.3992, `orientation`=4.64258, `rotation0`=0, `rotation1`=0, `rotation2`=-0.731354, `rotation3`=0.681998 WHERE `guid`=25702; + +-- Correct position of Sack of Oats in Westfall (position is off by 9.91821e-05 yards). +UPDATE `gameobject` SET `position_x`=-9868.23, `position_y`=1325.72, `position_z`=43.0655, `orientation`=6.12611, `rotation0`=0, `rotation1`=0, `rotation2`=-0.0784588, `rotation3`=0.996917 WHERE `guid`=25725; + +-- Correct position of Sack of Oats in Westfall (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=-11165.5, `position_y`=1716.91, `position_z`=40.856, `orientation`=4.04917, `rotation0`=0, `rotation1`=0, `rotation2`=-0.898793, `rotation3`=0.438373 WHERE `guid`=25698; + +-- Correct position of Evoroot in Feralas (position is off by 0.00976563 yards). +UPDATE `gameobject` SET `position_x`=-2840.12, `position_y`=2347.59, `position_z`=41.7155, `orientation`=4.90438, `rotation0`=0, `rotation1`=0, `rotation2`=-0.636078, `rotation3`=0.771625 WHERE `guid`=50156; + +-- Correct position of Alterac Granite in Hillsbrad Foothills (position is off by 9.91821e-05 yards). +UPDATE `gameobject` SET `position_x`=-219.077, `position_y`=-343.909, `position_z`=47.6937, `orientation`=0.942477, `rotation0`=0, `rotation1`=0, `rotation2`=0.45399, `rotation3`=0.891007 WHERE `guid`=10367; + +-- Correct position of Bottle of Disease in Ashenvale (position is off by 0.297812 yards). +UPDATE `gameobject` SET `position_x`=1910.05, `position_y`=-2642.61, `position_z`=84.2405, `orientation`=4.36332, `rotation0`=0, `rotation1`=0, `rotation2`=-0.819152, `rotation3`=0.573577 WHERE `guid`=47983; + +-- Correct position of Ancient Chest in Uldaman (position is off by 0.000991821 yards). +UPDATE `gameobject` SET `position_x`=-6201.66, `position_y`=-3057.53, `position_z`=212.238, `orientation`=2.00618, `rotation0`=-0.0524955, `rotation1`=0.0560932, `rotation2`=0.839878, `rotation3`=0.53731 WHERE `guid`=10919; + +-- Correct position of Goodsteel Ledger in Searing Gorge (position is off by 0.180407 yards). +UPDATE `gameobject` SET `position_x`=-7025.01, `position_y`=-1784.49, `position_z`=265.744, `orientation`=2.26893, `rotation0`=0, `rotation1`=0, `rotation2`=0.906307, `rotation3`=0.422619 WHERE `guid`=47578; + +-- Correct position of Bundle of Wood in Elwynn Forest (position is off by 0.000102997 yards). +UPDATE `gameobject` SET `position_x`=-9364.32, `position_y`=-1387.31, `position_z`=60.4559, `orientation`=3.6652, `rotation0`=0, `rotation1`=0, `rotation2`=-0.965925, `rotation3`=0.258821 WHERE `guid`=12326; + +-- Correct position of Bundle of Wood in Elwynn Forest (position is off by 0.0098877 yards). +UPDATE `gameobject` SET `position_x`=-9350.76, `position_y`=-1421.43, `position_z`=63.5312, `orientation`=0.383971, `rotation0`=0, `rotation1`=0, `rotation2`=0.190808, `rotation3`=0.981627 WHERE `guid`=12334; + +-- Correct position of Tool Bucket in The Barrens (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=1056.95, `position_y`=-3175.03, `position_z`=75.2593, `orientation`=3.14159, `rotation0`=0, `rotation1`=0, `rotation2`=-1, `rotation3`=0 WHERE `guid`=11725; + +-- Correct position of Tool Bucket in The Barrens (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=1129.37, `position_y`=-3030.57, `position_z`=92.0539, `orientation`=1.06465, `rotation0`=0, `rotation1`=0, `rotation2`=0.507538, `rotation3`=0.861629 WHERE `guid`=11721; + +-- Correct position of Tool Bucket in The Barrens (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=1146.49, `position_y`=-3074.65, `position_z`=95.9085, `orientation`=2.58308, `rotation0`=0, `rotation1`=0, `rotation2`=0.961261, `rotation3`=0.27564 WHERE `guid`=11728; + +-- Correct position of Gahz'ridian in Tanaris (position is off by 0.000100136 yards). +UPDATE `gameobject` SET `position_x`=-8788.72, `position_y`=-3404.95, `position_z`=10.8891, `orientation`=4.36332, `rotation0`=0, `rotation1`=0, `rotation2`=-0.819152, `rotation3`=0.573577 WHERE `guid`=9236; + +-- Correct position of Gahz'ridian in Tanaris (position is off by 0.000101089 yards). +UPDATE `gameobject` SET `position_x`=-8908.18, `position_y`=-3343.32, `position_z`=18.6347, `orientation`=5.60251, `rotation0`=0, `rotation1`=0, `rotation2`=-0.333807, `rotation3`=0.942641 WHERE `guid`=9159; + +-- Correct position of Gahz'ridian in Tanaris (position is off by 0.0102539 yards). +UPDATE `gameobject` SET `position_x`=-8285.36, `position_y`=-4132.74, `position_z`=10.029, `orientation`=2.87979, `rotation0`=0, `rotation1`=0, `rotation2`=0.991445, `rotation3`=0.130528 WHERE `guid`=9244; + +-- Correct position of Taillasher Eggs in Durotar (position is off by 0.0102539 yards). +UPDATE `gameobject` SET `position_x`=-812.713, `position_y`=-5314.82, `position_z`=3.33753, `orientation`=3.99681, `rotation0`=0, `rotation1`=0, `rotation2`=-0.909961, `rotation3`=0.414694 WHERE `guid`=10413; + +-- Correct position of Balia'mah Trophy Skulls in Stranglethorn Vale (position is off by 0.000976563 yards). +UPDATE `gameobject` SET `position_x`=-12544, `position_y`=-723.062, `position_z`=40.4432, `orientation`=3.14159, `rotation0`=0, `rotation1`=0, `rotation2`=-1, `rotation3`=0 WHERE `guid`=9986; + +-- Correct position of Crate of Elunite in Darkshore (position is off by 0.0010376 yards). +UPDATE `gameobject` SET `position_x`=6375.59, `position_y`=871.361, `position_z`=-36.6744, `orientation`=4.86947, `rotation0`=0, `rotation1`=0, `rotation2`=-0.649447, `rotation3`=0.760406 WHERE `guid`=48875; + +-- Correct position of Crate of Elunite in Darkshore (position is off by 0.000101089 yards). +UPDATE `gameobject` SET `position_x`=6419.64, `position_y`=732.402, `position_z`=-19.075, `orientation`=2.19911, `rotation0`=0, `rotation1`=0, `rotation2`=0.891006, `rotation3`=0.453991 WHERE `guid`=25783; + +-- Correct position of Crate of Elunite in Darkshore (position is off by 0.000976563 yards). +UPDATE `gameobject` SET `position_x`=6468.53, `position_y`=811.574, `position_z`=-36.8584, `orientation`=3.4383, `rotation0`=0, `rotation1`=0, `rotation2`=-0.989016, `rotation3`=0.147811 WHERE `guid`=25787; + +-- Correct position of Troll Chest in Ashenvale (position is off by 0.000991821 yards). +UPDATE `gameobject` SET `position_x`=3359.89, `position_y`=-724.698, `position_z`=165.479, `orientation`=3.54302, `rotation0`=0, `rotation1`=0, `rotation2`=-0.979924, `rotation3`=0.19937 WHERE `guid`=12520; + +-- Correct position of Troll Chest in Ashenvale (position is off by 0.0010376 yards). +UPDATE `gameobject` SET `position_x`=3328.89, `position_y`=-757.629, `position_z`=166.867, `orientation`=2.28638, `rotation0`=0, `rotation1`=0, `rotation2`=0.909961, `rotation3`=0.414694 WHERE `guid`=12497; + +-- Correct position of Sunscorched Shell in Thousand Needles (position is off by 9.91821e-05 yards). +UPDATE `gameobject` SET `position_x`=-5199.17, `position_y`=-1168.36, `position_z`=48.9649, `orientation`=2.77507, `rotation0`=0, `rotation1`=0, `rotation2`=0.983254, `rotation3`=0.182238 WHERE `guid`=25793; + +-- Correct position of Tablet of Sael'hai in Azshara (position is off by 0.0102539 yards). +UPDATE `gameobject` SET `position_x`=3317.96, `position_y`=-5272.68, `position_z`=86.733, `orientation`=3.90954, `rotation0`=0, `rotation1`=0, `rotation2`=-0.927183, `rotation3`=0.374608 WHERE `guid`=25857; + +-- Correct position of Basket of Bloodkelp in Dustwallow Marsh (position is off by 0.00976563 yards). +UPDATE `gameobject` SET `position_x`=-2644.77, `position_y`=-4998.72, `position_z`=22.8469, `orientation`=1.79769, `rotation0`=0, `rotation1`=0, `rotation2`=0.782608, `rotation3`=0.622515 WHERE `guid`=13098; + +-- Correct position of Highperch Wyvern Egg in Thousand Needles (position is off by 0.0010376 yards). +UPDATE `gameobject` SET `position_x`=-5004.84, `position_y`=-845.741, `position_z`=-5.58322, `orientation`=6.14356, `rotation0`=0, `rotation1`=0, `rotation2`=-0.0697556, `rotation3`=0.997564 WHERE `guid`=12103; + +-- Correct position of Scattered Crate in Swamp of Sorrows (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=-10387.1, `position_y`=-2904.32, `position_z`=18.8122, `orientation`=2.91469, `rotation0`=0, `rotation1`=0, `rotation2`=0.993571, `rotation3`=0.113208 WHERE `guid`=25762; + +-- Correct position of Fel Cone in Teldrassil (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=9939.07, `position_y`=312.243, `position_z`=1318.15, `orientation`=5.28835, `rotation0`=0, `rotation1`=0, `rotation2`=-0.477159, `rotation3`=0.878817 WHERE `guid`=25591; + +-- Correct position of Fel Cone in Teldrassil (position is off by 0.0010376 yards). +UPDATE `gameobject` SET `position_x`=9563.05, `position_y`=615.462, `position_z`=1272.59, `orientation`=1.02974, `rotation0`=0, `rotation1`=0, `rotation2`=0.492423, `rotation3`=0.870356 WHERE `guid`=25579; + +-- Correct position of Kim'jael's Equipment in Azshara (position is off by 0.0102539 yards). +UPDATE `gameobject` SET `position_x`=4402.83, `position_y`=-6228.16, `position_z`=96.8815, `orientation`=0.0174525, `rotation0`=0, `rotation1`=0, `rotation2`=0.00872612, `rotation3`=0.999962 WHERE `guid`=10629; + +-- Correct position of Secret Plans: Fiery Flux in Searing Gorge (position is off by 0.00976563 yards). +UPDATE `gameobject` SET `position_x`=-6631.62, `position_y`=-1225.39, `position_z`=210.617, `orientation`=0.698131, `rotation0`=0, `rotation1`=0, `rotation2`=0.34202, `rotation3`=0.939693 WHERE `guid`=6970; + +-- Correct position of Vessel of Tainted Blood in The Hinterlands (position is off by 0.0102539 yards). +UPDATE `gameobject` SET `position_x`=-386.41, `position_y`=-4205.76, `position_z`=174.139, `orientation`=6.21337, `rotation0`=0, `rotation1`=0, `rotation2`=-0.0348988, `rotation3`=0.999391 WHERE `guid`=13026; + +-- Correct position of Large Solid Chest in Western Plaguelands (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=2851.74, `position_y`=-1403.16, `position_z`=148.907, `orientation`=0.523598, `rotation0`=0, `rotation1`=0, `rotation2`=0.258819, `rotation3`=0.965926 WHERE `guid`=45537; + +-- Correct position of Large Solid Chest in Western Plaguelands (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=2939.02, `position_y`=-1376.04, `position_z`=167.237, `orientation`=5.09636, `rotation0`=0, `rotation1`=0, `rotation2`=-0.559193, `rotation3`=0.829038 WHERE `guid`=45486; + +-- Correct position of Silithid Mound in The Barrens (position is off by 9.91821e-05 yards). +UPDATE `gameobject` SET `position_x`=-3295.54, `position_y`=-1875.07, `position_z`=93.8088, `orientation`=3.99681, `rotation0`=0, `rotation1`=0, `rotation2`=-0.909961, `rotation3`=0.414694 WHERE `guid`=25635; + +-- Correct position of Silithid Mound in The Barrens (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=-3121.44, `position_y`=-2181.57, `position_z`=94.8178, `orientation`=2.40855, `rotation0`=0, `rotation1`=0, `rotation2`=0.93358, `rotation3`=0.358368 WHERE `guid`=25662; + +-- Correct position of Snufflenose Owner's Manual in The Barrens (position is off by 0.134251 yards). +UPDATE `gameobject` SET `position_x`=-929.383, `position_y`=-3693.46, `position_z`=8.70877, `orientation`=4.88692, `rotation0`=0, `rotation1`=0, `rotation2`=-0.642787, `rotation3`=0.766045 WHERE `guid`=13046; + +-- Correct position of Apple Bob in The Hinterlands (position is off by 0.000991821 yards). +UPDATE `gameobject` SET `position_x`=398.111, `position_y`=-2100.5, `position_z`=131.84, `orientation`=2.58308, `rotation0`=0, `rotation1`=0, `rotation2`=0.961261, `rotation3`=0.27564 WHERE `guid`=34307; + +-- Correct position of Apple Bob in Redridge Mountains (position is off by 9.91821e-05 yards). +UPDATE `gameobject` SET `position_x`=-9217.99, `position_y`=-2151.35, `position_z`=64.6316, `orientation`=1.93731, `rotation0`=0, `rotation1`=0, `rotation2`=0.824125, `rotation3`=0.566408 WHERE `guid`=332873; + +-- Correct position of Apple Bob in Tanaris (position is off by 0.0102539 yards). +UPDATE `gameobject` SET `position_x`=-7154.14, `position_y`=-3842.12, `position_z`=9.06118, `orientation`=4.81711, `rotation0`=0, `rotation1`=0, `rotation2`=-0.66913, `rotation3`=0.743145 WHERE `guid`=332871; + +-- Correct position of Apple Bob in Winterspring (position is off by 0.0400391 yards). +UPDATE `gameobject` SET `position_x`=6692.21, `position_y`=-4661.61, `position_z`=721.989, `orientation`=4.97419, `rotation0`=0, `rotation1`=0, `rotation2`=-0.608761, `rotation3`=0.793354 WHERE `guid`=332857; + +-- Correct position of Apple Bob in Darkshore (position is off by 0.00976563 yards). +UPDATE `gameobject` SET `position_x`=6415.74, `position_y`=512.385, `position_z`=8.92158, `orientation`=1.65806, `rotation0`=0, `rotation1`=0, `rotation2`=0.737277, `rotation3`=0.675591 WHERE `guid`=332884; + +-- Correct position of Apple Bob in Darnassus (position is off by 0.100586 yards). +UPDATE `gameobject` SET `position_x`=10139.1, `position_y`=2223.77, `position_z`=1330.25, `orientation`=2.26893, `rotation0`=0, `rotation1`=0, `rotation2`=0.906307, `rotation3`=0.422619 WHERE `guid`=34414; + +-- Correct position of Apple Bob in Feralas (position is off by 0.0102539 yards). +UPDATE `gameobject` SET `position_x`=-4443.64, `position_y`=245.328, `position_z`=39.3853, `orientation`=3.97935, `rotation0`=0, `rotation1`=0, `rotation2`=-0.913545, `rotation3`=0.406738 WHERE `guid`=332868; + +-- Correct position of Apple Bob in Badlands (position is off by 0.000991821 yards). +UPDATE `gameobject` SET `position_x`=-6647.28, `position_y`=-2156.66, `position_z`=245.629, `orientation`=3.94445, `rotation0`=0, `rotation1`=0, `rotation2`=-0.920505, `rotation3`=0.390732 WHERE `guid`=332845; + +-- Correct position of Apple Bob in Orgrimmar (position is off by 0.00976563 yards). +UPDATE `gameobject` SET `position_x`=1635.93, `position_y`=-4443.07, `position_z`=16.0593, `orientation`=0.645772, `rotation0`=0, `rotation1`=0, `rotation2`=0.317305, `rotation3`=0.948324 WHERE `guid`=332856; + +-- Correct position of Calcified Elven Gem in Arathi Highlands (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=-2230.11, `position_y`=-1713.47, `position_z`=-64.7426, `orientation`=4.17134, `rotation0`=0, `rotation1`=0, `rotation2`=-0.870356, `rotation3`=0.492424 WHERE `guid`=9305; + +-- Correct position of Fissure Plant in The Barrens (position is off by 0.577372 yards). +UPDATE `gameobject` SET `position_x`=-1279.74, `position_y`=-3013.78, `position_z`=71.5814, `orientation`=3.80482, `rotation0`=0, `rotation1`=0, `rotation2`=-0.945518, `rotation3`=0.325568 WHERE `guid`=332892; + +-- Correct position of Fissure Plant in The Barrens (position is off by 2.11237 yards). +UPDATE `gameobject` SET `position_x`=-1274.77, `position_y`=-3008.18, `position_z`=71.5097, `orientation`=0, `rotation0`=0, `rotation1`=0, `rotation2`=0, `rotation3`=1 WHERE `guid`=332891; + +-- Correct position of Fissure Plant in The Barrens (position is off by 1.60885 yards). +UPDATE `gameobject` SET `position_x`=-1273.74, `position_y`=-3017.27, `position_z`=73.0493, `orientation`=3.78737, `rotation0`=0, `rotation1`=0, `rotation2`=-0.948323, `rotation3`=0.317306 WHERE `guid`=332894; + +-- Correct position of Fissure Plant in The Barrens (position is off by 4.69907 yards). +UPDATE `gameobject` SET `position_x`=-1271.31, `position_y`=-3013.2, `position_z`=71.9223, `orientation`=0.488691, `rotation0`=0, `rotation1`=0, `rotation2`=0.241921, `rotation3`=0.970296 WHERE `guid`=332894; + +-- Correct position of Fissure Plant in The Barrens (position is off by 2.54256 yards). +UPDATE `gameobject` SET `position_x`=-1279.01, `position_y`=-3010.59, `position_z`=71.5588, `orientation`=2.07694, `rotation0`=0, `rotation1`=0, `rotation2`=0.861629, `rotation3`=0.507539 WHERE `guid`=332890; + +-- Correct position of Fissure Plant in The Barrens (position is off by 2.41025 yards). +UPDATE `gameobject` SET `position_x`=-1272.46, `position_y`=-3016.28, `position_z`=72.8214, `orientation`=0.59341, `rotation0`=0, `rotation1`=0, `rotation2`=0.292371, `rotation3`=0.956305 WHERE `guid`=332894; + +-- Correct position of Fissure Plant in The Barrens (position is off by 0.959569 yards). +UPDATE `gameobject` SET `position_x`=-1278.46, `position_y`=-3015.85, `position_z`=72.2563, `orientation`=0, `rotation0`=0, `rotation1`=0, `rotation2`=0, `rotation3`=1 WHERE `guid`=332893; + +-- Correct position of Frostmaul Shards in Winterspring (position is off by 0.0010376 yards). +UPDATE `gameobject` SET `position_x`=5315.06, `position_y`=-4707.63, `position_z`=699.835, `orientation`=4.81711, `rotation0`=0, `rotation1`=0, `rotation2`=-0.66913, `rotation3`=0.743145 WHERE `guid`=12025; + +-- Correct position of Frostmaul Shards in Winterspring (position is off by 0.0102539 yards). +UPDATE `gameobject` SET `position_x`=5273.74, `position_y`=-4674.34, `position_z`=698.687, `orientation`=2.42601, `rotation0`=0, `rotation1`=0, `rotation2`=0.936672, `rotation3`=0.350207 WHERE `guid`=12024; + +-- Correct position of Tablet of Markri in Azshara (position is off by 0.0102539 yards). +UPDATE `gameobject` SET `position_x`=3494.48, `position_y`=-5047.47, `position_z`=85.7378, `orientation`=5.53269, `rotation0`=0, `rotation1`=0, `rotation2`=-0.366501, `rotation3`=0.930418 WHERE `guid`=25842; + +-- Correct position of Tablet of Markri in Azshara (position is off by 0.0102539 yards). +UPDATE `gameobject` SET `position_x`=3301.12, `position_y`=-5301.28, `position_z`=90.2181, `orientation`=0.890117, `rotation0`=0, `rotation1`=0, `rotation2`=0.430511, `rotation3`=0.902586 WHERE `guid`=25838; + +-- Correct position of Atal'ai Artifact in Swamp of Sorrows (position is off by 2.6852 yards). +UPDATE `gameobject` SET `position_x`=-10323.6, `position_y`=-3792.94, `position_z`=-19.7852, `orientation`=3.38594, `rotation0`=0, `rotation1`=0, `rotation2`=-0.992546, `rotation3`=0.12187 WHERE `guid` IN (21723, 21623, 21673); + +-- Correct position of Atal'ai Artifact in Swamp of Sorrows (position is off by 0.547199 yards). +UPDATE `gameobject` SET `position_x`=-10414.1, `position_y`=-3933.38, `position_z`=-19.7472, `orientation`=6.02139, `rotation0`=0, `rotation1`=0, `rotation2`=-0.130526, `rotation3`=0.991445 WHERE `guid` IN (21722, 21622, 21672); + +-- Correct position of Atal'ai Artifact in Swamp of Sorrows (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=-10289.5, `position_y`=-3738.6, `position_z`=14.7113, `orientation`=3.85718, `rotation0`=0, `rotation1`=0, `rotation2`=-0.936671, `rotation3`=0.35021 WHERE `guid` IN (21713, 21613, 21663); + +-- Correct position of Twilight Tablet Fragment in Silithus (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=-6494.24, `position_y`=1924.91, `position_z`=7.51197, `orientation`=5.41052, `rotation0`=0, `rotation1`=0, `rotation2`=-0.422618, `rotation3`=0.906308 WHERE `guid` IN (24081, 24151, 54116); + +-- Correct position of Twilight Tablet Fragment in Silithus (position is off by 0.0098877 yards). +UPDATE `gameobject` SET `position_x`=-6177.33, `position_y`=1784.07, `position_z`=30.2543, `orientation`=5.07891, `rotation0`=0, `rotation1`=0, `rotation2`=-0.566406, `rotation3`=0.824126 WHERE `guid` IN (24087, 24157, 24122); + +-- Correct position of Twilight Tablet Fragment in Silithus (position is off by 0.000100136 yards). +UPDATE `gameobject` SET `position_x`=-6352.44, `position_y`=1866.77, `position_z`=10.6696, `orientation`=3.63029, `rotation0`=0, `rotation1`=0, `rotation2`=-0.970295, `rotation3`=0.241925 WHERE `guid` IN (24082, 24152, 24117); + +-- Correct position of Twilight Tablet Fragment in Silithus (position is off by 0.0100098 yards). +UPDATE `gameobject` SET `position_x`=-6317.44, `position_y`=1839.62, `position_z`=6.68679, `orientation`=0.558504, `rotation0`=0, `rotation1`=0, `rotation2`=0.275637, `rotation3`=0.961262 WHERE `guid` IN (24118, 24083, 24153); + +-- Correct position of Twilight Tablet Fragment in Silithus (position is off by 0.000100136 yards). +UPDATE `gameobject` SET `position_x`=-6254.69, `position_y`=1789.41, `position_z`=10.4657, `orientation`=2.16421, `rotation0`=0, `rotation1`=0, `rotation2`=0.882947, `rotation3`=0.469473 WHERE `guid` IN (24130, 24095, 24165); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 553b1078b37aea29524e1947838e8a4519c255bd Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 9 Jul 2023 08:41:21 +0100 Subject: [PATCH 093/426] Add More Missing Objects (#2067) --- sql/migrations/20230708185644_world.sql | 246 ++++++++++++++++++++++++ 1 file changed, 246 insertions(+) create mode 100644 sql/migrations/20230708185644_world.sql diff --git a/sql/migrations/20230708185644_world.sql b/sql/migrations/20230708185644_world.sql new file mode 100644 index 00000000000..64a245eb42c --- /dev/null +++ b/sql/migrations/20230708185644_world.sql @@ -0,0 +1,246 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230708185644'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230708185644'); +-- Add your query below. + + +-- Missing Mossy Footlocker spawns in The Temple of Atal'Hakkar. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(30635, 179493, 0, -10402.1, -3941.69, -19.5574, 1.0472, 0, 0, 0.5, 0.866025, 300, 300, 1, 100, 1, 10); -- Closest existing guid is 30580 at 38.354729 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30635, 456, 0, 'Mossy Footlocker', 1, 10); -- Mossy Footlockers in Sunken Temple + +-- Missing Dented Footlocker spawns in Tanaris. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(17482, 179496, 1, -8083.73, -5253.23, 0.680218, 5.11382, 0, 0, -0.551936, 0.833886, 300, 300, 1, 100, 1, 10); -- Closest existing guid is 17315 at 15.613722 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(17482, 415, 0, 'Dented Footlocker', 1, 10); -- Dented Footlockers in Tanaris + +-- Missing Alliance Chest spawns in Hillsbrad Foothills. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(29665, 4096, 0, -871.026, 217.223, 8.80425, 2.28638, 0, 0, 0.909961, 0.414694, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 29650 at 162.522659 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(29665, 70, 0, 'Alliance Chest', 0, 10); -- Alliance Chests in Hillsbrad Foothills + +-- Missing Alliance Chest spawns in Silverpine Forest. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(35619, 111095, 0, -151.1, 799.07, 63.9039, 1.97222, 0, 0, 0.833885, 0.551938, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 35489 at 25.744791 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(35619, 67, 0, 'Alliance Chest', 0, 10); -- Alliance Chests in Silverpine Forest + +-- Missing Battered Chest spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(13195, 2849, 1, 1333.15, -3657.51, 92.0099, 3.54302, 0, 0, -0.979924, 0.19937, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 13074 at 77.541336 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(13195, 33, 0, 'Battered Chest', 0, 10); -- Battered Chests in The Barrens + +-- Missing Battered Chest spawns in Redridge Mountains. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(20818, 2849, 0, -9799.3, -2215.58, 58.6601, 5.63741, 0, 0, -0.317305, 0.948324, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 20798 at 40.590511 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(20818, 34, 0, 'Battered Chest', 0, 10); -- Battered Chests in Redridge Mountains + +-- Missing Battered Chest spawns in Darkshore. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(48552, 2849, 1, 4201.29, 1293.38, 3.48289, 3.12412, 0, 0, 0.999962, 0.00873464, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 48533 at 756.130005 yards. +(48560, 2849, 1, 4201.29, 1293.38, 3.48289, 3.12412, 0, 0, 0.999962, 0.00873464, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 48533 at 756.130005 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48552, 40, 0, 'Battered Chest', 0, 10), -- Battered Chests in Darkshore +(48560, 40, 0, 'Battered Chest', 0, 10); -- Battered Chests in Darkshore + +-- Missing Cortello\'s Riddle spawns in Stranglethorn Vale. +UPDATE `pool_gameobject` SET `pool_entry` = 402 WHERE `guid` = 66836; +DELETE FROM `gameobject` WHERE `guid` = 55174; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(26053, 2554, 0, -14923.2, 126.022, 8.21919, 6.14356, 0, 0, -0.0697556, 0.997564, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 26046 at 36.987926 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(26053, 398, 0, 'Cortello\'s Riddle', 0, 10); -- Stranglethorn Vale - Ship 3 - Cortello's Riddle + +-- Missing Half-Buried Bottle spawns in Stranglethorn Vale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(26159, 2560, 0, -14274.1, 12.3585, 0.687387, 1.13446, 0, 0, 0.537299, 0.843392, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 26081 at 29.827625 yards. +(26160, 2560, 0, -14504.6, -102.795, -0.330474, 2.61799, 0, 0, 0.965925, 0.258821, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 26075 at 28.300808 yards. +(11967, 2560, 0, -14616.5, -88.2083, 0.587145, 4.46804, 0, 0, -0.788011, 0.615662, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 11705 at 24.817171 yards. +(11973, 2560, 0, -14555, -86.4878, 0.379937, 2.25147, 0, 0, 0.902585, 0.430512, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 11705 at 37.205421 yards. +(12191, 2560, 0, -14456.3, 37.463, 0.395053, 5.74214, 0, 0, -0.267238, 0.963631, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 12051 at 27.281712 yards. +(26161, 2560, 0, -14274.1, 12.3585, 0.687387, 1.13446, 0, 0, 0.537299, 0.843392, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 26081 at 29.827625 yards. +(11147, 2560, 0, -14193.2, -78.2309, 0.308181, 5.18363, 0, 0, -0.522498, 0.85264, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 11032 at 27.042591 yards. + +-- Missing Giant Clam spawns in Wetlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(48123, 19018, 0, -2758.24, -951.861, -13.6005, 3.90954, 0, 0, -0.927183, 0.374608, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 48020 at 120.130379 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48123, 1340, 0, 'Giant Clam', 0, 10); -- Wetlands - Giant Clam + +-- Missing Sack of Oats spawns in Westfall. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(55299, 2724, 0, -11140.9, 1045.63, 34.3394, 4.36332, 0, 0, -0.819152, 0.573577, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 55206 at 99.889412 yards. + +-- Missing Sapphire of Aku'Mai spawns in Blackfathom Deeps. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(47896, 178185, 1, 4222.6, 786.904, -16.1785, 0.314158, 0, 0, 0.156434, 0.987688, 180, 180, 1, 100, 0, 10); -- Closest existing guid is 47706 at 42.386314 yards. + +-- Missing Sapphire of Aku'Mai spawns in Blackfathom Deeps. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(55191, 178186, 1, 4251.33, 804.095, -8.22898, 2.32129, 0, 0, 0.91706, 0.39875, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 55100 at 64.850845 yards. + +-- Missing Solid Chest spawns in Redridge Mountains. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(20839, 2850, 0, -9444.99, -3073.69, 136.687, 0.0698117, 0, 0, 0.0348988, 0.999391, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 20823 at 75.265877 yards. +(20840, 2850, 0, -9278.63, -3312.23, 125.985, 2.58308, 0, 0, 0.961261, 0.27564, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 20805 at 61.230640 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(20839, 5, 0, 'Solid Chest', 0, 10), -- Solid Chests in Redridge Mountains +(20840, 5, 0, 'Solid Chest', 0, 10); -- Solid Chests in Redridge Mountains + +-- Missing Solid Chest spawns in Wetlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(14984, 2852, 0, -2882.22, -2947.11, 33.7046, 5.41052, 0, 0, -0.422618, 0.906308, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 14960 at 64.838104 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(14984, 20, 0, 'Solid Chest', 0, 10); -- Solid Chests in Wetlands + +-- Missing Solid Chest spawns in Thousand Needles. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(16731, 2852, 1, -5585.58, -1629.46, 16.2051, 2.35619, 0, 0, 0.92388, 0.382683, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 16715 at 43.485207 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(16731, 22, 0, 'Solid Chest', 0, 10); -- Solid Chests in Thousand Needles + +-- Missing Solid Chest spawns in Desolace. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(30266, 2855, 1, -1054.44, 1008.37, 90.526, 1.5708, 0, 0, 0.707107, 0.707107, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 30169 at 134.438736 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(30266, 46, 0, 'Solid Chest', 0, 10); -- Solid Chests in Desolace + +-- Missing Solid Chest spawns in Stranglethorn Vale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(11692, 2857, 0, -11508.4, 737.012, 61.4116, 3.76991, 0, 0, -0.951056, 0.309017, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 11691 at 151.648544 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11692, 51, 0, 'Solid Chest', 0, 10); -- Solid Chests in Stranglethorn Vale + +-- Missing Solid Chest spawns in Alterac Mountains. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(33194, 2857, 0, 936.042, -850.617, 114.649, 1.22173, 0, 0, 0.573576, 0.819152, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 33193 at 82.356110 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(33194, 55, 0, 'Solid Chest', 0, 10); -- Solid Chests in Alterac Mountains + +-- Missing Solid Chest spawns in Badlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(11645, 4149, 0, -7387.19, -2237.2, 233.927, 3.85718, 0, 0, -0.936671, 0.35021, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 11479 at 95.020706 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11645, 26, 0, 'Solid Chest', 0, 10); -- Solid Chests in Badlands + +-- Missing Solid Chest spawns in Dustwallow Marsh. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(56050, 4149, 1, -4374.53, -3330.37, 34.8726, 0.139624, 0, 0, 0.0697556, 0.997564, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 56049 at 51.929543 yards. +(14624, 4149, 1, -4269.59, -3892.14, -6.99016, 2.42601, 0, 0, 0.936672, 0.350207, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 14620 at 32.004475 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(56050, 29, 0, 'Solid Chest', 0, 10), -- Solid Chests in Dustwallow Marsh +(14624, 29, 0, 'Solid Chest', 0, 10); -- Solid Chests in Dustwallow Marsh + +-- Missing Solid Chest spawns in Stranglethorn Vale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(11690, 4149, 0, -14595.4, -244.479, 24.9781, 3.45576, 0, 0, -0.987688, 0.156436, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 11676 at 85.721550 yards. +(11664, 4149, 0, -14978.5, 342.927, 0.260496, 0.296705, 0, 0, 0.147809, 0.989016, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 11663 at 80.805199 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(11690, 27, 0, 'Solid Chest', 0, 10), -- Solid Chests in Stranglethorn Vale +(11664, 27, 0, 'Solid Chest', 0, 10); -- Solid Chests in Stranglethorn Vale + +-- Missing Solid Chest spawns in The Hinterlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(46367, 4149, 0, -43.0638, -2478.95, 119.087, 2.25147, 0, 0, 0.902585, 0.430512, 300, 300, 1, 100, 0, 10), -- Closest existing guid is 46316 at 218.789490 yards. +(46368, 4149, 0, -43.0638, -2478.95, 119.087, 2.25147, 0, 0, 0.902585, 0.430512, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 46316 at 218.789490 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(46367, 31, 0, 'Solid Chest', 0, 10), -- Solid Chests in The Hinterlands +(46368, 31, 0, 'Solid Chest', 0, 10); -- Solid Chests in The Hinterlands + +-- Missing Solid Chest spawns in Azshara. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(48497, 153453, 1, 4322.74, -5726.07, 100.923, 1.71042, 0, 0, 0.754709, 0.656059, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 48494 at 240.063904 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(48497, 19, 0, 'Solid Chest', 0, 10); -- Solid Chests in Azshara + +-- Missing Silverleaf spawns in Elwynn Forest. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(26782, 1617, 0, -9218.83, 96.9757, 74.9729, 0.925024, 0, 0, 0.446198, 0.894935, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 26769 at 0.000397 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(26782, 1013, 0, 'Silverleaf', 0, 10); -- Silverleaf in Elwynn Forest + +UPDATE `gameobject` SET `spawntimesecsmax` = 604800, `spawntimesecsmin` = 604800 WHERE `id` = 75293; +UPDATE `gameobject` SET `spawntimesecsmax` = 300, `spawntimesecsmin` = 300 WHERE `id` = 178185; +UPDATE `gameobject` SET `spawntimesecsmax` = 300, `spawntimesecsmin` = 300 WHERE `id` = 142144 AND `map` = 0; +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 175928; +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 141853; +UPDATE `gameobject` SET `spawntimesecsmax` = 300, `spawntimesecsmin` = 300 WHERE `id` = 176638 AND `map` = 1; + +DELETE FROM `gameobject` WHERE `guid` IN ( 55099, 55100, 55101, 55102, 361752); + +-- Correct position of Dark Iron Pillow in Searing Gorge (position is off by 2.52587 yards). +UPDATE `gameobject` SET `position_x`=-6555.04, `position_y`=-1351.12, `position_z`=210.26, `orientation`=2.26893, `rotation0`=0, `rotation1`=0, `rotation2`=0.906307, `rotation3`=0.422619 WHERE `guid`=66099; + +-- Correct position of Dark Iron Pillow in Searing Gorge (position is off by 4.3279 yards). +UPDATE `gameobject` SET `position_x`=-6550.69, `position_y`=-1322.46, `position_z`=212.376, `orientation`=1.309, `rotation0`=0, `rotation1`=0, `rotation2`=0.608761, `rotation3`=0.793354 WHERE `guid`=66096; + +-- Correct position of Dark Iron Pillow in Searing Gorge (position is off by 4.56912 yards). +UPDATE `gameobject` SET `position_x`=-6514.41, `position_y`=-1365.62, `position_z`=210.763, `orientation`=0.680677, `rotation0`=0, `rotation1`=0, `rotation2`=0.333806, `rotation3`=0.942642 WHERE `guid`=66109; + +-- Correct position of Dark Iron Pillow in Searing Gorge (position is off by 4.56739 yards). +UPDATE `gameobject` SET `position_x`=-6575.96, `position_y`=-1323.58, `position_z`=210.152, `orientation`=4.29351, `rotation0`=0, `rotation1`=0, `rotation2`=-0.83867, `rotation3`=0.54464 WHERE `guid`=6995; + +-- Correct position of Arena Treasure Chest in Stranglethorn Vale (position is off by 1.50537 yards). +UPDATE `gameobject` SET `position_x`=-13202.9, `position_y`=276.757, `position_z`=21.8571, `orientation`=2.77507, `rotation0`=0, `rotation1`=0, `rotation2`=0.983254, `rotation3`=0.182238 WHERE `guid`=12029; + +SET @OGUID = 25431; + +-- Misc Dungeon Objects +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 105570, 0, 389.558, 178.222, 41.9383, 3.26377, 0, 0, -0.998135, 0.0610518, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3714, 1, -4113.86, -2302.24, 126.262, 5.61996, 0, 0, -0.325567, 0.945519, 3600, 3600, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 75296, 189, 1748.22, 1252.28, 18.1573, 5.70723, 0, 0, -0.284015, 0.95882, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 75296, 189, 1762.11, 1153.56, 7.49028, 4.72984, 0, 0, -0.700909, 0.713251, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 75296, 189, 1847.77, 1276.34, 18.1573, 2.80998, 0, 0, 0.986285, 0.16505, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 153469, 229, -161.149, -494.667, -18.4564, 5.65487, 0, 0, -0.309016, 0.951057, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 153469, 229, -20.2914, -361.811, 50.6356, 4.64258, 0, 0, -0.731354, 0.681998, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 153469, 229, 163.142, -241.759, 110.949, 4.2237, 0, 0, -0.857167, 0.515038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 153469, 329, 3850.91, -3629.15, 146.895, 2.79252, 0, 0, 0.984807, 0.173652, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 173232, 230, 709.659, 57.0049, -44.1391, 2.74016, 0, 0, 0.979924, 0.19937, 600, 600, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 173232, 230, 860.409, 36.9705, -53.6437, 2.33874, 0, 0, 0.920505, 0.390732, 600, 600, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 173232, 230, 1107.97, -156.909, -74.3595, 2.54818, 0, 0, 0.956305, 0.292372, 600, 600, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 173234, 230, 686.841, -8.77618, -58.8389, 3.12412, 0, 0, 0.999962, 0.00873464, 600, 600, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 75293, 36, -300.887, -532.542, 49.4236, 0.226892, 0, 0, 0.113203, 0.993572, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 75293, 43, 46.7143, -166.269, -82.1537, 5.34071, 0, 0, -0.45399, 0.891007, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 75298, 48, -466.738, -87.5996, -39.1289, 2.93214, 0, 0, 0.994521, 0.104536, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 75299, 189, 1748.22, 1252.28, 18.1573, 5.70723, 0, 0, -0.284015, 0.95882, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 75299, 189, 1788.14, 1394.66, -0.455138, 2.63544, 0, 0, 0.968147, 0.250381, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 153464, 229, -84.2677, -350.104, 70.9524, 1.91986, 0, 0, 0.819152, 0.573577, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 153464, 229, 163.142, -241.759, 110.949, 4.2237, 0, 0, -0.857167, 0.515038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 153464, 229, 171.163, -290.776, 110.942, 3.08918, 0, 0, 0.999657, 0.0262016, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 1733, 0, -8683.48, -2235.91, 155.424, 5.63741, 0, 0, -0.317305, 0.948324, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 1735, 1, -913.527, 1033.02, 96.0823, 0.925024, 0, 0, 0.446198, 0.894935, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 1732, 48, -479.657, 295.416, -64.3415, 4.88692, 0, 0, -0.642787, 0.766045, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 1735, 70, 70.1268, 443.334, -41.0286, 0.331611, 0, 0, 0.165047, 0.986286, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 324, 229, -201.751, -306.885, 68.5368, 0, 0, 0, 0, 1, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 180215, 309, -12145.4, -1941.74, 134.893, 1.8675, 0, 0, 0.803857, 0.594823, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 1734, 349, 141.178, -391.741, -175.001, 4.7822, 0, 0, -0.681998, 0.731354, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 2040, 349, 289.052, 50.4382, -131.01, 4.62512, 0, 0, -0.737277, 0.675591, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 2040, 349, 291.651, -49.0027, -130.93, 1.5708, 0, 0, 0.707107, 0.707107, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 2040, 349, 596.232, -209.992, -64.0246, 1.11701, 0, 0, 0.529919, 0.848048, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 2040, 349, 1045.67, -312.662, -38.0973, 0.436332, 0, 0, 0.216439, 0.976296, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 75295, 34, 90.5921, -145.882, -33.9396, 1.44862, 0, 0, 0.66262, 0.748956, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 75295, 34, 92.3032, -56.1773, -34.8562, 6.07375, 0, 0, -0.104528, 0.994522, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 75295, 34, 146.967, -121.079, -33.9396, 3.50812, 0, 0, -0.983254, 0.182238, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 75295, 34, 151.69, -65.131, -34.8562, 5.09636, 0, 0, -0.559193, 0.829038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 75298, 34, 104.455, 77.2554, -34.8562, 5.91667, 0, 0, -0.182235, 0.983255, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 75298, 34, 165.322, 57.6663, -34.8562, 2.91469, 0, 0, 0.993571, 0.113208, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 75298, 34, 173.185, 146.955, -33.9396, 4.2237, 0, 0, -0.857167, 0.515038, 604800, 604800, 100, 1, 0, 0, 0, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 4a5bc8bc60e623dfddec892ecf01ddd063fcc022 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 9 Jul 2023 16:11:52 +0300 Subject: [PATCH 094/426] Remove large AOI flags from mobs that shouldn't have it. --- sql/migrations/20230709124443_world.sql | 161 ++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 sql/migrations/20230709124443_world.sql diff --git a/sql/migrations/20230709124443_world.sql b/sql/migrations/20230709124443_world.sql new file mode 100644 index 00000000000..2fa264141e1 --- /dev/null +++ b/sql/migrations/20230709124443_world.sql @@ -0,0 +1,161 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230709124443'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230709124443'); +-- Add your query below. + +-- Remove CREATURE_FLAG_EXTRA_LARGE_AOI from creatures that shouldn't have it. (Open World) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=1284; -- Archbishop Benedictus (Max Distance 99) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=1768; -- Vile Fin Tidehunter (Max Distance 100) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=2726; -- Scorched Guardian (Max Distance 101) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=2754; -- Anathemus (Max Distance 111) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=3936; -- Shandris Feathermoon (Max Distance 94) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=3943; -- Ruuzel (Max Distance 98) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=4968; -- Lady Jaina Proudmoore (Max Distance 113) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=5359; -- Shore Strider (Max Distance 107) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=6193; -- Spitelash Screamer (Max Distance 110) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=6196; -- Spitelash Myrmidon (Max Distance 111) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=7977; -- Gammerita (Max Distance 99) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=7999; -- Tyrande Whisperwind (Max Distance 103) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=8197; -- Chronalis (Max Distance 93) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=8198; -- Tick (Max Distance 90) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10826; -- Lord Darkscythe (Max Distance 100) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=11897; -- Duskwing (Max Distance 103) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=14661; -- Stinglasher (Max Distance 100) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=15192; -- Anachronos (Max Distance 98) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=3943; -- Ruuzel (Max Distance 98) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=8197; -- Chronalis (Max Distance 93) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=8198; -- Tick (Max Distance 90) + +-- Remove CREATURE_FLAG_EXTRA_LARGE_AOI from creatures that shouldn't have it. (Instances) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=3653; -- Kresh (Max Distance 96) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=3669; -- Lord Cobrahn (Max Distance 96) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=3670; -- Lord Pythas (Max Distance 98) (Count 2) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=3671; -- Lady Anacondra (Max Distance 92) (Count 2) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=3673; -- Lord Serpentis (Max Distance 99) (Count 4) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=3674; -- Skum (Max Distance 92) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=3886; -- Razorclaw the Butcher (Max Distance 81) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=3887; -- Baron Silverlaine (Max Distance 98) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=4274; -- Fenrus the Devourer (Max Distance 94) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=4278; -- Commander Springvale (Max Distance 80) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=4279; -- Odo the Blindwatcher (Max Distance 94) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=4830; -- Old Serra'kis (Max Distance 98) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=4831; -- Lady Sarevess (Max Distance 98) (Count 2) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=4832; -- Twilight Lord Kelris (Max Distance 99) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=4887; -- Ghamoo-ra (Max Distance 93) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=5709; -- Shade of Eranikus (Max Distance 99) (Count 9) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=5710; -- Jammal'an the Prophet (Max Distance 99) (Count 11) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=5711; -- Ogom the Wretched (Max Distance 99) (Count 9) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=5775; -- Verdan the Everliving (Max Distance 99) (Count 5) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=6235; -- Electrocutioner 6000 (Max Distance 92) (Count 4) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=6243; -- Gelihast (Max Distance 97) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=7023; -- Obsidian Sentinel (Max Distance 98) (Count 5) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=7079; -- Viscous Fallout (Max Distance 98) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=7267; -- Chief Ukorz Sandscalp (Max Distance 99) (Count 7) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=7271; -- Witch Doctor Zum'rah (Max Distance 99) (Count 19) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=7272; -- Theka the Martyr (Max Distance 99) (Count 21) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=7275; -- Shadowpriest Sezz'ziz (Max Distance 95) (Count 4) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=7795; -- Hydromancer Velratha (Max Distance 98) (Count 9) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=7797; -- Ruuzlu (Max Distance 99) (Count 8) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=8127; -- Antu'sul (Max Distance 97) (Count 9) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=8923; -- Panzor the Invincible (Max Distance 100) (Count 2) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=8929; -- Princess Moira Bronzebeard (Max Distance 100) (Count 4) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=8933; -- Cave Creeper (Max Distance 100) (Count 7) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=8983; -- Golem Lord Argelmach (Max Distance 100) (Count 13) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9017; -- Lord Incendius (Max Distance 100) (Count 16) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9018; -- High Interrogator Gerstahn (Max Distance 100) (Count 7) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9024; -- Pyromancer Loregrain (Max Distance 100) (Count 16) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9025; -- Lord Roccor (Max Distance 100) (Count 26) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9028; -- Grizzle (Max Distance 98) (Count 4) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9029; -- Eviscerator (Max Distance 100) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9032; -- Hedrum the Creeper (Max Distance 100) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9033; -- General Angerforge (Max Distance 100) (Count 25) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9041; -- Warder Stilgiss (Max Distance 100) (Count 6) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9042; -- Verek (Max Distance 100) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9156; -- Ambassador Flamelash (Max Distance 100) (Count 5) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9236; -- Shadow Hunter Vosh'gajin (Max Distance 100) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9237; -- War Master Voone (Max Distance 100) (Count 4) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9319; -- Houndmaster Grebmar (Max Distance 100) (Count 24) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9499; -- Plugger Spazzring (Max Distance 100) (Count 16) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9502; -- Phalanx (Max Distance 100) (Count 18) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9537; -- Hurley Blackbreath (Max Distance 99) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9543; -- Ribbly Screwspigot (Max Distance 100) (Count 13) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9568; -- Overlord Wyrmthalak (Max Distance 100) (Count 6) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9736; -- Quartermaster Zigris (Max Distance 100) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9816; -- Pyroguard Emberseer (Max Distance 90) (Count 7) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=9938; -- Magmus (Max Distance 90) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10220; -- Halycon (Max Distance 100) (Count 2) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10268; -- Gizrul the Slavener (Max Distance 100) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10363; -- General Drakkisath (Max Distance 100) (Count 16) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10429; -- Warchief Rend Blackhand (Max Distance 100) (Count 4) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10435; -- Magistrate Barthilas (Max Distance 100) (Count 10) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10436; -- Baroness Anastari (Max Distance 100) (Count 12) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10437; -- Nerub'enkan (Max Distance 100) (Count 7) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10438; -- Maleki the Pallid (Max Distance 100) (Count 6) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10440; -- Baron Rivendare (Max Distance 100) (Count 6) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10502; -- Lady Illucia Barov (Max Distance 100) (Count 8) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10503; -- Jandice Barov (Max Distance 100) (Count 10) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10505; -- Instructor Malicia (Max Distance 100) (Count 6) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10508; -- Ras Frostwhisper (Max Distance 100) (Count 5) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10558; -- Hearthsinger Forresten (Max Distance 98) (Count 6) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10596; -- Mother Smolderweb (Max Distance 100) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10808; -- Timmy the Cruel (Max Distance 97) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10809; -- Stonespine (Max Distance 100) (Count 5) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10811; -- Archivist Galford (Max Distance 91) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10812; -- Grand Crusader Dathrohan (Max Distance 99) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10901; -- Lorekeeper Polkelt (Max Distance 100) (Count 9) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=10997; -- Cannon Master Willey (Max Distance 91) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=11032; -- Malor the Zealous (Max Distance 95) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=11261; -- Doctor Theolen Krastinov (Max Distance 100) (Count 4) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=11486; -- Prince Tortheldrin (Max Distance 100) (Count 2) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=11487; -- Magister Kalendris (Max Distance 100) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=11488; -- Illyanna Ravenoak (Max Distance 100) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=11490; -- Zevrim Thornhoof (Max Distance 100) (Count 4) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=11622; -- Rattlegore (Max Distance 100) (Count 6) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=12203; -- Landslide (Max Distance 91) (Count 5) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=12225; -- Celebras the Cursed (Max Distance 95) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=12236; -- Lord Vyletongue (Max Distance 99) (Count 8) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=12243; -- Spirit of Veng (Max Distance 100) (Count 5) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=12258; -- Razorlash (Max Distance 99) (Count 5) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=13280; -- Hydrospawn (Max Distance 100) (Count 2) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=13282; -- Noxxion (Max Distance 94) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=13596; -- Rotgrip (Max Distance 99) (Count 10) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=13601; -- Tinkerer Gizlock (Max Distance 99) (Count 10) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=14321; -- Guard Fengus (Max Distance 100) (Count 4) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=14323; -- Guard Slip'kik (Max Distance 96) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=14325; -- Captain Kromcrush (Max Distance 100) (Count 2) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=14326; -- Guard Mol'dar (Max Distance 100) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=14327; -- Lethtendris (Max Distance 100) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=14349; -- Pimgib (Max Distance 100) (Count 2) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=14861; -- Blood Steward of Kirtonos (Max Distance 100) (Count 7) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=7291; -- Galgann Firehammer (Max Distance 99) (Count 7) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=7228; -- Ironaya (Max Distance 94) (Count 1) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=2748; -- Archaedas (Max Distance 99) (Count 10) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=4854; -- Grimlok (Max Distance 99) (Count 7) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=6907; -- Eric "The Swift" (Max Distance 92) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=6906; -- Baelog (Max Distance 97) (Count 5) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=6908; -- Olaf (Max Distance 94) (Count 3) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=7206; -- Ancient Stone Keeper (Max Distance 99) (Count 7) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=6910; -- Revelosh (Max Distance 98) (Count 8) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~2097152) WHERE `entry`=16604; -- Blackwing Spell Marker (Max Distance 106) (Count 3) + +-- Remove CREATURE_FLAG_EXTRA_GIGANTIC_AOI from creatures that shouldn't have it. +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~4194304) WHERE `entry`=392; -- Captain Grayson (Max Distance 99) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~4194304) WHERE `entry`=832; -- Dust Devil (Max Distance 100) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~4194304) WHERE `entry`=1493; -- Mok'rash (Max Distance 106) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~4194304) WHERE `entry`=2120; -- Archmage Ataeric (Max Distance 99) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~4194304) WHERE `entry`=7024; -- Agent Kearnen (Max Distance 17) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~4194304) WHERE `entry`=14269; -- Seeker Aqualon (Max Distance 94) +UPDATE `creature_template` SET `flags_extra` = (`flags_extra` & ~4194304) WHERE `entry`=14272; -- Snarlflare (Max Distance 96) + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From ac15c0cd1678383e9bb5da7578197d10a9d11a38 Mon Sep 17 00:00:00 2001 From: ratkosrb <35845488+ratkosrb@users.noreply.github.com> Date: Mon, 10 Jul 2023 23:10:33 +0300 Subject: [PATCH 095/426] Fix Mandokir not resetting his stats properly. Thanks to Neto. --- .../stranglethorn_vale/zulgurub/boss_mandokir.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/eastern_kingdoms/stranglethorn_vale/zulgurub/boss_mandokir.cpp b/src/scripts/eastern_kingdoms/stranglethorn_vale/zulgurub/boss_mandokir.cpp index 31b4b541720..21dc3af1ba3 100644 --- a/src/scripts/eastern_kingdoms/stranglethorn_vale/zulgurub/boss_mandokir.cpp +++ b/src/scripts/eastern_kingdoms/stranglethorn_vale/zulgurub/boss_mandokir.cpp @@ -183,8 +183,8 @@ struct boss_mandokirAI : public ScriptedAI m_uiPlayerToRez = 0; - m_creature->ResetStats(); m_creature->SetLevel(63); + m_creature->ResetStats(); DoCastSpellIfCan(m_creature, SPELL_MOUNT); DespawnRaptor(); From 8fb3f61f31e32b2f79c9ba4a0c97a3d8650ff17c Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 11 Jul 2023 20:18:29 +0300 Subject: [PATCH 096/426] Interrupt casts on switching to passive mode. Closes https://github.com/vmangos/core/issues/2070 --- src/game/Handlers/PetHandler.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/game/Handlers/PetHandler.cpp b/src/game/Handlers/PetHandler.cpp index 40ae8983c0f..975568476de 100644 --- a/src/game/Handlers/PetHandler.cpp +++ b/src/game/Handlers/PetHandler.cpp @@ -95,6 +95,7 @@ void WorldSession::HandlePetAction(WorldPacket& recv_data) switch (spellid) { case REACT_PASSIVE: //passive + pCharmedUnit->InterruptNonMeleeSpells(false); pCharmedUnit->AttackStop(); // no break case REACT_DEFENSIVE: //recovery From a04f6b82c5b5ae98829b84ea4a3845f6bcf2bb4f Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 12 Jul 2023 19:29:10 +0300 Subject: [PATCH 097/426] Fix crash on malformed warden packet. --- src/game/Anticheat/WardenAnticheat/Warden.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/game/Anticheat/WardenAnticheat/Warden.cpp b/src/game/Anticheat/WardenAnticheat/Warden.cpp index 8924ef411e9..9f13c7d5661 100644 --- a/src/game/Anticheat/WardenAnticheat/Warden.cpp +++ b/src/game/Anticheat/WardenAnticheat/Warden.cpp @@ -339,6 +339,8 @@ void Warden::ReadScanResults(ByteBuffer& buff) for (auto const& s : scans) { + sLog.OutWarden(this, LOG_LVL_DEBUG, "Checking result for %s", s->comment.c_str()); + // checks return true when they have discovered a hack if (s->Check(this, buff)) { @@ -657,7 +659,18 @@ void Warden::Update() } for (auto& packet : packetQueue) - HandlePacket(packet); + { + try + { + HandlePacket(packet); + } + catch (ByteBufferException &) + { + sLog.OutWarden(this, LOG_LVL_ERROR, "ByteBufferException occured while parsing packet. Kicking."); + KickSession(); + return; + } + } } if (!!m_timeoutClock && WorldTimer::getMSTime() > m_timeoutClock) From 911166efd2bebba3a73dab0e50343ad309abefae Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Thu, 13 Jul 2023 17:25:40 +0100 Subject: [PATCH 098/426] Misc Objects - Tidy and Additions (#2068) --- sql/migrations/20230709080758_world.sql | 866 ++++++++++++++++++++++++ 1 file changed, 866 insertions(+) create mode 100644 sql/migrations/20230709080758_world.sql diff --git a/sql/migrations/20230709080758_world.sql b/sql/migrations/20230709080758_world.sql new file mode 100644 index 00000000000..4a939905972 --- /dev/null +++ b/sql/migrations/20230709080758_world.sql @@ -0,0 +1,866 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230709080758'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230709080758'); +-- Add your query below. + + +-- Create new pool to hold Gahz'ridian spawns in Tanaris. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(14, 53, 'Tanaris - Gahz\'ridian', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(140971, 14, 'Tanaris - Gahz\'ridian'); + +-- Create new pool to hold Calcified Elven Gem spawns in Arathi Highlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(21551, 7, 'Arathi Highlands - Calcified Elven Gems', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(2712, 21551, 'Arathi Highlands - Calcified Elven Gems'); +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 2712; +DELETE FROM `gameobject` WHERE `guid` = 55630; + +UPDATE `pool_template` SET `max_limit` = 20 WHERE `entry` = 1597; +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 375; + +UPDATE `pool_template` SET `max_limit` = 18 WHERE `entry` = 140; +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 161557; + +-- Create new pool to hold Carved Stone Urn spawns in Uldaman. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(63, 19, 'Badlands - Carved Stone Urn', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(2743, 63, 'Badlands - Carved Stone Urn'); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 2743; + +-- Create new pool to hold Well Stone spawns in Mulgore. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(64, 14, 'Mulgore - Well Stone', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(2910, 64, 'Mulgore - Well Stone'); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 2910; + +-- Create new pool to hold Taillasher Eggs spawns in Durotar. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(21552, 13, 'Durotar - Taillasher Eggs', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(3240, 21552, 'Durotar - Taillasher Eggs'); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 3240; + +-- Create new pool to hold Stolen Supply Sack spawns in Durotar. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(95, 8, 'Durotar - Stolen Supply Sacks', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(3290, 95, 'Durotar - Stolen Supply Sacks'); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 3240; + +-- Create new pool to hold Tear of Theradras spawns in Desolace. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(96, 7, 'Desolace - Tear of Theradras', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(22246, 96, 'Desolace - Tear of Theradras'); + +UPDATE `gameobject` SET `spawntimesecsmax` = 60, `spawntimesecsmin` = 60 WHERE `id` IN (11713, 11714); +UPDATE `gameobject` SET `spawntimesecsmax` = 60, `spawntimesecsmin` = 60 WHERE `id` = 2867; +UPDATE `gameobject` SET `spawntimesecsmax` = 60, `spawntimesecsmin` = 60 WHERE `id` = 179908; +UPDATE `gameobject` SET `spawntimesecsmax` = 60, `spawntimesecsmin` = 60 WHERE `id` = 175928; +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 28604; +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 1723; +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 2560; +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 152094; +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 2724; +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` IN (13360, 12654, 13872); +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 143980; +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 37099; +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 1673; +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 4608; +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 2883; +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 175566; +UPDATE `gameobject` SET `spawntimesecsmax` = 180, `spawntimesecsmin` = 180 WHERE `id` = 176753; +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` IN (30854, 30855, 30856); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` IN (13359, 13873); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` IN (176750, 176751, 176752); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` IN (180501, 180436, 180583); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` IN (126049, 128293, 128196); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` IN (164778, 164658, 164659, 164779, 164780, 164660, 164661, 164781); + +-- Create new pool to hold Kim'jael's Equipment spawns in Azshara. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(97, 8, 'Azshara - Kim\'jael\'s Equipment', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(153123, 97, 'Azshara - Kim\'jael\'s Equipment'); + +-- Create new pool to hold Un'Goro Dirt Pile spawns in Un'Goro Crater. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(98, 45, 'UnGoro Crater - UnGoro Dirt Pile', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(157936, 98, 'UnGoro Crater - UnGoro Dirt Pile'); + +-- Create new pool to hold Dinosaur Bone spawns in Un'Goro Crater. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(99, 9, 'UnGoro Crater - Dinosaur Bone', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(161527, 99, 'UnGoro Crater - Dinosaur Bone'); + +-- Create new pool to hold Equipment Boxes spawns in Tirisfal Glades. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(100, 9, 'Tirisfal Glades - Equipment Boxes', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(164662, 100, 'Tirisfal Glades - Equipment Boxes'); + +-- Create new pool to hold Tool Bucket spawns in The Barrens. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(101, 10, 'Barrens - Tool Bucket', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(161752, 101, 'Barrens - Tool Bucket'); + +-- Create new pool to hold Bloodpetal Sprout spawns in Un'Goro Crater. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(102, 37, 'UnGoro Crater - Bloodpetal Sprout', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(164958, 102, 'UnGoro Crater - Bloodpetal Sprout'); + +-- Create new pool to hold Frostmaul Shards spawns in Winterspring. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(103, 20, 'Winterspring - Frostmaul Shards', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(175324, 103, 'Winterspring - Frostmaul Shards'); + +-- Create new pool to hold Highperch Wyvern Egg spawns in Thousand Needles. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(145, 10, 'Thousand Needles - Highperch Wyvern Egg', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(175384, 145, 'Thousand Needles - Highperch Wyvern Egg'); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 175384; + +-- Create new pool to hold Crossroads' Supply Crates spawns in The Barrens. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(21553, 6, 'Barrens - Crossroads Supply Crates', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(175708, 21553, 'Barrens - Crossroads Supply Crates'); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 175708; + +-- Create new pool to hold Keepsake of Remembrance spawns in Arathi Highlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(147, 4, 'Arathi Highlands - Keepsake of Remembrance', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(176630, 147, 'Arathi Highlands - Keepsake of Remembrance'); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 176630; + +-- Create new pool to hold Bundle of Wood spawns in Elwynn Forest. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(148, 13, 'Elwynn Forest - Bundle of Wood', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(176793, 148, 'Elwynn Forest - Bundle of Wood'); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 176793; + +-- Create new pool to hold Gaea Seed spawns in Stonetalon Mountains. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(149, 6, 'Stonetalon Mountains - Gaea Seed', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(177926, 149, 'Stonetalon Mountains - Gaea Seed'); + +-- Create new pool to hold Troll Chest spawns in Ashenvale. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(153, 10, 'Ashenvale - Troll Chest', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(178144, 153, 'Ashenvale - Troll Chest'); + +-- Create new pool to hold Sapphire of Aku'Mai spawns in Blackfathom Deeps. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(154, 6, 'Blackfathom Deeps - Sapphire of Aku\'Mais (178184)', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(178184, 154, 'Blackfathom Deeps - Sapphire of Aku\'Mais (178184)'); + +UPDATE `pool_gameobject_template` SET `description`='Blackfathom Deeps - Sapphire of Aku\'Mai (178185)' WHERE `id`=178185; +UPDATE `pool_template` SET `description`='Blackfathom Deeps - Sapphire of Aku\'Mai (178185)' WHERE `entry`=18867; + +-- Create new pool to hold Sapphire of Aku'Mai spawns in Blackfathom Deeps. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(157, 5, 'Blackfathom Deeps - Sapphire of Aku\'Mais (178186)', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(178186, 157, 'Blackfathom Deeps - Sapphire of Aku\'Mais (178186)'); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` IN (178184, 178185, 178186); + +-- Create new pool to hold Vessel of Tainted Blood spawns in The Hinterlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(155, 39, 'Hinterlands - Vessel of Tainted Blood', 3, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(179922, 155, 'Hinterlands - Vessel of Tainted Blood'); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 179922; + +-- Create new pool to hold Slagtree's Lost Tools spawns in The Hinterlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(158, 2, 'Hinterlands - Slagtree\'s Lost Tools', 3, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(179908, 158, 'Hinterlands - Slagtree\'s Lost Tools'); + +-- Create new pool to hold Basket of Bloodkelp spawns in Dustwallow Marsh. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(159, 3, 'Dustwallow Marsh - Basket of Bloodkelp', 8, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(181053, 159, 'Dustwallow Marsh - Basket of Bloodkelp'); +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 181053; + +UPDATE `pool_template` SET `max_limit` = 43 WHERE `entry`=1613; + +-- Create new pool to hold Volcanic Ash spawns in Burning Steppes. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(160, 36, 'Burning Steppes - Volcanic Ash', 8, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(181098, 160, 'Burning Steppes - Volcanic Ash'); + +-- Create new pool to hold Thaurissan Relic spawns in Burning Steppes. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(161, 16, 'Burning Steppes - Thaurissan Relic', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(153556, 161, 'Burning Steppes - Thaurissan Relic'); + +-- Create new pool to hold Plant Bundle spawns in Ashenvale. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(250, 8, 'Ashenvale - Plant Bundle', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(17282, 250, 'Ashenvale - Plant Bundle'); + +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 3685; + +UPDATE `pool_template` SET `max_limit` = 32 WHERE `entry`=1630; +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `guid`=127; +DELETE FROM `pool_gameobject` WHERE `guid` IN ( 220813, 220814, 220815, 220816, 220817, 220818, 220819, 220820); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`) VALUES +(220813, 1146, 'Mithril Deposit'), +(220814, 1146, 'Mithril Deposit'), +(220815, 1146, 'Mithril Deposit'), +(220816, 1146, 'Mithril Deposit'), +(220817, 1146, 'Mithril Deposit'), +(220818, 1146, 'Mithril Deposit'), +(220819, 1146, 'Mithril Deposit'), +(220820, 1146, 'Mithril Deposit'), +(25454, 1141, 'Iron Deposit'); +UPDATE `pool_template` SET `max_limit`= 15 WHERE `entry`=1141; + +-- Remove Empty Pools +DELETE FROM `pool_template` WHERE `entry` IN ( 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 9274, 9273, 9271, 9270, 9269, 9268, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 1631, 1632, 1633, 151, 2511); +DELETE FROM `gameobject_requirement` WHERE `guid` = 361752; +-- DELETE FROM `gameobject` WHERE `guid` = 42899; +DELETE FROM `gameobject` WHERE `guid` IN (44016, 44077); +DELETE FROM `pool_gameobject` WHERE `guid` IN (44016, 44077); +DELETE FROM `pool_template` WHERE `entry` = 3823; +DELETE FROM `gameobject` WHERE `guid`=26002; +UPDATE `gameobject` SET `spawntimesecsmin` = 60, `spawntimesecsmax` = 60 WHERE `id` IN (2083, 2086, 2087); +DELETE FROM `game_event_gameobject` WHERE `guid` =12093 AND `event`=38; + +DELETE FROM `pool_gameobject_template` WHERE `id` = 2039; +-- Create new pool to hold Hidden Strongbox spawns in Alterac Mountains. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(156, 6, 'Hidden Strongboxs in Alterac Mountains', 0, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(32179, 156, 0, 'Hidden Strongbox', 0, 10), +(32183, 156, 0, 'Hidden Strongbox', 0, 10), +(32184, 156, 0, 'Hidden Strongbox', 0, 10), +(32346, 156, 0, 'Hidden Strongbox', 0, 10), +(32361, 156, 0, 'Hidden Strongbox', 0, 10), +(32362, 156, 0, 'Hidden Strongbox', 0, 10), +(32454, 156, 0, 'Hidden Strongbox', 0, 10), +(32455, 156, 0, 'Hidden Strongbox', 0, 10), +(32459, 156, 0, 'Hidden Strongbox', 0, 10), +(32460, 156, 0, 'Hidden Strongbox', 0, 10), +(32470, 156, 0, 'Hidden Strongbox', 0, 10), +(32471, 156, 0, 'Hidden Strongbox', 0, 10), +(32479, 156, 0, 'Hidden Strongbox', 0, 10), +(32485, 156, 0, 'Hidden Strongbox', 0, 10), +(32492, 156, 0, 'Hidden Strongbox', 0, 10), +(32493, 156, 0, 'Hidden Strongbox', 0, 10), +(32509, 156, 0, 'Hidden Strongbox', 0, 10); + +-- Missing Alliance Chest spawns in Arathi Highlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(55403, 105581, 0, -1544.81, -1751.48, 68.1662, 1.11701, 0, 0, 0.529919, 0.848048, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 55402 at 70.779816 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(55403, 74, 0, 'Alliance Chest', 0, 10); -- + +UPDATE `pool_template` SET `max_limit` = 2 WHERE `entry` = 75; +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`) VALUES +(74, 2, 'Alliance Chests in Arathi Highlands'); + +DELETE FROM `pool_gameobject` WHERE `guid` = 68803; +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`) VALUES +(68803, 1265, 'Plaguebloom'); + +DELETE FROM `gameobject` WHERE `guid` IN (25360, 25357); +UPDATE `pool_gameobject` SET `pool_entry` = 38 WHERE `guid` IN (25931, 25934); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`) VALUES +(420, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Western Plaguelands'); + +UPDATE `pool_gameobject` SET `pool_entry` = 17198 WHERE `guid` = 427563; +UPDATE `pool_gameobject` SET `pool_entry` = 14446 WHERE `guid` = 84124; + +DELETE FROM `pool_pool` WHERE `pool_id` IN (3823, 21401, 21402, 21403, 21404, 21405, 21406, 21407, 21408, 21409, 21410, 21411, 21412, 21413, 21414, 21415, 21451, 21452, 21453, 21454, 21455, 21456, 21457, 21458, 21459, 21460, 21461, 21462, 21463, 21464, 21465, 21466, 21467, 21468, 21469, 21470, 21471, 21472, 21473, 21474, 21475, 21476, 21477, 21478, 21554, 21555, 21556, 21557, 21558, 21559, 21560, 21561, 21562, 21563, 21564, 21565, 21566, 21567, 21568, 21569, 21570, 21601, 21602, 21603, 21604, 21605, 21606, 21607, 21608, 21609, 21610, 21611, 21612, 21613, 21614, 21615, 21651, 21652, 21653, 21654, 21655, 21656, 21657, 34921, 34922); + +-- Barrens / 3714 / 3715 +SET @OGUID = 100086; +SET @PTEMPLATE = 43535; + +DELETE FROM `gameobject` WHERE `guid` IN (13528, 13539, 13545, 25433); +DELETE FROM `pool_gameobject` WHERE `guid` IN (13528, 13539, 13545, 25433); +DELETE FROM `pool_template` WHERE `entry` = 60; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3714, 1, -4040.54, -2384.23, 125.298, 1.95477, 0, 0, 0.829038, 0.559193, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3714, 1, -4033.6, -2404.29, 126.131, -2.70526, 0, 0, 0.976296, -0.21644, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3714, 1, -4065.35, -2417.5, 126.133, 3.57793, 0, 0, -0.976295, 0.216442, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3714, 1, -4113.86, -2302.24, 126.262, 5.61996, 0, 0, -0.325567, 0.945519, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3715, 1, -4040.54, -2384.23, 125.298, 1.95477, 0, 0, 0.829038, 0.559193, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3715, 1, -4033.6, -2404.29, 126.131, -2.70526, 0, 0, 0.976296, -0.21644, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3715, 1, -4065.35, -2417.5, 126.133, 3.57793, 0, 0, -0.976295, 0.216442, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3715, 1, -4113.86, -2302.24, 126.262, 5.61996, 0, 0, -0.325567, 0.945519, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Alliance Chest / Alliance Strongbox - Barrens', 10), +(@PTEMPLATE+2, 1, 'Alliance Chest / Alliance Strongbox - Barrens', 10), +(@PTEMPLATE+3, 1, 'Alliance Chest / Alliance Strongbox - Barrens', 10), +(@PTEMPLATE+4, 1, 'Alliance Chest / Alliance Strongbox - Barrens', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Alliance Chest / Alliance Strongbox - Barrens', 10), +(@OGUID+2, @PTEMPLATE+2, 'Alliance Chest / Alliance Strongbox - Barrens', 10), +(@OGUID+3, @PTEMPLATE+3, 'Alliance Chest / Alliance Strongbox - Barrens', 10), +(@OGUID+4, @PTEMPLATE+4, 'Alliance Chest / Alliance Strongbox - Barrens', 10), +(@OGUID+5, @PTEMPLATE+1, 'Alliance Chest / Alliance Strongbox - Barrens', 10), +(@OGUID+6, @PTEMPLATE+2, 'Alliance Chest / Alliance Strongbox - Barrens', 10), +(@OGUID+7, @PTEMPLATE+3, 'Alliance Chest / Alliance Strongbox - Barrens', 10), +(@OGUID+8, @PTEMPLATE+4, 'Alliance Chest / Alliance Strongbox - Barrens', 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+5, 2, 'Barrens - Alliance Chest / Alliance Strongbox (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+5, 0, 'Alliance Chest / Alliance Strongbox - Barrens', 0), +(@PTEMPLATE+2, @PTEMPLATE+5, 0, 'Alliance Chest / Alliance Strongbox - Barrens', 0), +(@PTEMPLATE+3, @PTEMPLATE+5, 0, 'Alliance Chest / Alliance Strongbox - Barrens', 0), +(@PTEMPLATE+4, @PTEMPLATE+5, 0, 'Alliance Chest / Alliance Strongbox - Barrens', 0); + +-- Alterac Mountains / 105570 / 105579 +SET @OGUID = 112738; +SET @PTEMPLATE = 43157; + +DELETE FROM `gameobject` WHERE `guid` IN (33191, 32516, 32515, 33188, 32213, 33181, 25432); +DELETE FROM `pool_gameobject` WHERE `guid` IN (33191, 32516, 32515, 33188, 32213, 33181, 25432); +DELETE FROM `pool_template` WHERE `entry` = 76; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 105570, 0, 389.558, 178.222, 41.9383, 3.26377, 0, 0, -0.998135, 0.0610518, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 105570, 0, 58.7195, 276.344, 41.9076, 5.13127, 0, 0, -0.544639, 0.838671, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 105570, 0, 17.3519, 435.146, 43.7572, 6.14356, 0, 0, -0.0697556, 0.997564, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 105570, 0, 96.9252, 367.759, 43.922, 3.97935, 0, 0, -0.913545, 0.406738, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 105570, 0, 121.878, 454.223, 44.0955, 0.0349062, 0, 0, 0.0174522, 0.999848, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 105570, 0, 424.828, 221.755, 42.888, 0.663223, 0, 0, 0.325567, 0.945519, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 105570, 0, 335.954, 185.797, 42.9273, 4.69494, 0, 0, -0.71325, 0.70091, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 105570, 0, 443.818, 288.769, 42.4809, 5.72468, 0, 0, -0.275637, 0.961262, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 105579, 0, 389.558, 178.222, 41.9383, 3.26377, 0, 0, -0.998135, 0.0610518, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 105579, 0, 58.7195, 276.344, 41.9076, 5.13127, 0, 0, -0.544639, 0.838671, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 105579, 0, 17.3519, 435.146, 43.7572, 6.14356, 0, 0, -0.0697556, 0.997564, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 105579, 0, 96.9252, 367.759, 43.922, 3.97935, 0, 0, -0.913545, 0.406738, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 105579, 0, 121.878, 454.223, 44.0955, 0.0349062, 0, 0, 0.0174522, 0.999848, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 105579, 0, 424.828, 221.755, 42.888, 0.663223, 0, 0, 0.325567, 0.945519, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 105579, 0, 335.954, 185.797, 42.9273, 4.69494, 0, 0, -0.71325, 0.70091, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 105579, 0, 443.818, 288.769, 42.4809, 5.72468, 0, 0, -0.275637, 0.961262, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@PTEMPLATE+2, 1, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@PTEMPLATE+3, 1, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@PTEMPLATE+4, 1, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@PTEMPLATE+5, 1, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@PTEMPLATE+6, 1, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@PTEMPLATE+7, 1, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@PTEMPLATE+8, 1, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@OGUID+2, @PTEMPLATE+2, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@OGUID+3, @PTEMPLATE+3, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@OGUID+4, @PTEMPLATE+4, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@OGUID+5, @PTEMPLATE+5, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@OGUID+6, @PTEMPLATE+6, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@OGUID+7, @PTEMPLATE+7, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@OGUID+8, @PTEMPLATE+8, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@OGUID+9, @PTEMPLATE+1, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@OGUID+10, @PTEMPLATE+2, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@OGUID+11, @PTEMPLATE+3, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@OGUID+12, @PTEMPLATE+4, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@OGUID+13, @PTEMPLATE+5, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@OGUID+14, @PTEMPLATE+6, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@OGUID+15, @PTEMPLATE+7, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10), +(@OGUID+16, @PTEMPLATE+8, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+9, 3, 'Alterac Mountains - Alliance Chest / Alliance Strongbox (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+9, 0, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 0), +(@PTEMPLATE+2, @PTEMPLATE+9, 0, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 0), +(@PTEMPLATE+3, @PTEMPLATE+9, 0, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 0), +(@PTEMPLATE+4, @PTEMPLATE+9, 0, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 0), +(@PTEMPLATE+5, @PTEMPLATE+9, 0, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 0), +(@PTEMPLATE+6, @PTEMPLATE+9, 0, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 0), +(@PTEMPLATE+7, @PTEMPLATE+9, 0, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 0), +(@PTEMPLATE+8, @PTEMPLATE+9, 0, 'Alliance Chest / Alliance Strongbox - Alterac Mountains', 0); + +-- Create new pool to hold Horde Supply Crate spawns in The Hinterlands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(41, 4, 'Hinterlands - Horde Supply Crate', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(142191, 41, 'Hinterlands - Horde Supply Crate'); +UPDATE `gameobject` SET `spawntimesecsmin` = 60, `spawntimesecsmax` = 60 WHERE `id` = 142191; + +-- Missing Silverleaf spawns in Teldrassil. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(49637, 1617, 1, 10400, 1534.33, 1305.91, 3.94445, 0, 0, -0.920505, 0.390732, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 49635 at 80.792198 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(49637, 1003, 0, 'Silverleaf', 0, 10); -- Silverleaf in Teldrassil + +-- Missing Goldthorn spawns in Swamp of Sorrows. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(42423, 2046, 0, -10588, -2737.17, 34.8652, 2.26893, 0, 0, 0.906307, 0.422619, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 42360 at 4.599496 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(42423, 1313, 0, 'Goldthorn', 0, 10); -- Goldthorn in Swamp of Sorrows + +-- Missing Purple Lotus spawns in Dire Maul. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(66946, 142140, 1, -3651.92, 1213.45, 149.229, 2.87979, 0, 0, 0.991445, 0.130528, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 66939 at 156.249222 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(66946, 1324, 0, 'Purple Lotus', 0, 10); -- Purple Lotus in Feralas + +SET @OGUID = 3244; +SET @PTEMPLATE = 21553; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 1733, 0, -869.414, -3911.16, 141.44, 2.07694, 0, 0, 0.861629, 0.507539, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 1734, 0, -869.414, -3911.16, 141.44, 2.07694, 0, 0, 0.861629, 0.507539, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 1735, 0, -869.414, -3911.16, 141.44, 2.07694, 0, 0, 0.861629, 0.507539, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Silver Vein / Gold Vein / Iron Deposit - Arathi Highlands', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Silver Vein / Gold Vein / Iron Deposit - Arathi Highlands', 10), +(@OGUID+2, @PTEMPLATE+1, 'Silver Vein / Gold Vein / Iron Deposit - Arathi Highlands', 10), +(@OGUID+3, @PTEMPLATE+1, 'Silver Vein / Gold Vein / Iron Deposit - Arathi Highlands', 10); + +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, 323, 0, 'Arathi Highlands - Silver Vein / Gold Vein / Iron Deposit', 0); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+4, 2055, 0, -8774.09, -1973.63, 129.718, 2.11185, 0, 0, 0.870356, 0.492424, 300, 300, 100, 1, 0, 0, 0, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`) VALUES +(@OGUID+4, 1128, 'Copper Vein'); + +-- Missing Gri'lek the Wanderer spawns in Stranglethorn Vale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(11149, 58, 0, -12140.9, 640.934, -70.777, 0.564744, 0.0569606, -0.263658, 0.263268, 0.926245, 0, 0, 1, 100, 0, 10); -- Closest existing guid is 11028 at 8.522406 yards. + +-- Missing Bloodsail Orders spawns in Stranglethorn Vale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(10293, 2087, 0, -14680.9, 500.437, 2.18742, 3.927, 0, 0, -0.923879, 0.382686, 60, 60, 1, 100, 0, 10); + +-- Correct position of Cortello's Riddle in Stranglethorn Vale (position is off by 0.100586 yards). +UPDATE `gameobject` SET `position_x`=-14912.9, `position_y`=83.4848, `position_z`=2.1396, `orientation`=2.60054, `rotation0`=0, `rotation1`=0, `rotation2`=0.96363, `rotation3`=0.267241 WHERE `guid`=26047; + +SET @OGUID = 298; +SET @PTEMPLATE = 386; + +DELETE FROM `gameobject` WHERE `guid` IN (42675, 42676, 42674); + +-- Missing Food Crate spawns in Westfall. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3662, 0, -11280.2, 1512.85, 37.6001, 3.63029, 0, 0, -0.970295, 0.241925, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 39821 at 177.525513 yards. +(@OGUID+2, 3662, 0, -11142.5, 1561.96, 21.3644, 2.19911, 0, 0, 0.891006, 0.453991, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 39843 at 103.225113 yards. +(@OGUID+3, 3662, 0, -11176.7, 1518.9, 19.5604, 0.296705, 0, 0, 0.147809, 0.989016, 180, 180, 1, 100, 0, 10), +(@OGUID+4, 3662, 0, -11214.6, 1549.68, 34.4351, 2.58309, 0, 0, 0.961262, 0.275637, 180, 180, 1, 100, 0, 10), +(@OGUID+5, 3662, 0, -11327.6, 1566.61, 26.2925, 6.14356, 0, 0, -0.0697556, 0.997564, 180, 180, 1, 100, 0, 10), +(@OGUID+6, 3705, 0, -11280.2, 1512.85, 37.6001, 3.63029, 0, 0, -0.970295, 0.241925, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 39821 at 177.525513 yards. +(@OGUID+7, 3705, 0, -11142.5, 1561.96, 21.3644, 2.19911, 0, 0, 0.891006, 0.453991, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 39843 at 103.225113 yards. +(@OGUID+8, 3705, 0, -11176.7, 1518.9, 19.5604, 0.296705, 0, 0, 0.147809, 0.989016, 180, 180, 1, 100, 0, 10), +(@OGUID+9, 3705, 0, -11214.6, 1549.68, 34.4351, 2.58309, 0, 0, 0.961262, 0.275637, 180, 180, 1, 100, 0, 10), +(@OGUID+10, 3705, 0, -11327.6, 1566.61, 26.2925, 6.14356, 0, 0, -0.0697556, 0.997564, 180, 180, 1, 100, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+2, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+3, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+4, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@PTEMPLATE+5, 1, 'Food Crate / Barrel of Milk - Westfall', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+6, @PTEMPLATE+1, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+7, @PTEMPLATE+2, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+8, @PTEMPLATE+3, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+9, @PTEMPLATE+4, 'Food Crate / Barrel of Milk - Westfall', 0, 10), +(@OGUID+10, @PTEMPLATE+5, 'Food Crate / Barrel of Milk - Westfall', 0, 10); + +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, 2129, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+2, 2129, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+3, 2129, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+4, 2129, 0, 'Food Crate / Barrel of Milk - Westfall', 0), +(@PTEMPLATE+5, 2129, 0, 'Food Crate / Barrel of Milk - Westfall', 0); + +SET @OGUID = 194; +SET @PTEMPLATE = 18840; + +UPDATE `pool_template` SET `description` = 'Food Crate / Armor Crate / Weapon Crate - Barrens' WHERE `entry` IN ( 243, 244, 245, 246, 247, 248, 249); +UPDATE `pool_gameobject` SET `description` = 'Food Crate / Armor Crate / Weapon Crate - Barrens' WHERE `pool_entry` IN ( 243, 244, 245, 246, 247, 248, 249); + +-- Missing Food Crate spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3689, 1, -4081.57, -2407.94, 135.856, 1.23918, 0, 0, 0.580703, 0.814116, 180, 180, 1, 100, 0, 10), +(@OGUID+2, 3689, 1, -4065, -2404.03, 135.853, 5.72468, 0, 0, -0.275637, 0.961262, 180, 180, 1, 100, 0, 10), +(@OGUID+3, 3695, 1, -4081.57, -2407.94, 135.856, 1.23918, 0, 0, 0.580703, 0.814116, 180, 180, 1, 100, 0, 10), +(@OGUID+4, 3695, 1, -4065, -2404.03, 135.853, 5.72468, 0, 0, -0.275637, 0.961262, 180, 180, 1, 100, 0, 10), +(@OGUID+5, 3702, 1, -4081.57, -2407.94, 135.856, 1.23918, 0, 0, 0.580703, 0.814116, 180, 180, 1, 100, 0, 10), +(@OGUID+6, 3702, 1, -4065, -2404.03, 135.853, 5.72468, 0, 0, -0.275637, 0.961262, 180, 180, 1, 100, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Food Crate / Armor Crate / Weapon Crate - Barrens', 0, 10), +(@PTEMPLATE+2, 1, 'Food Crate / Armor Crate / Weapon Crate - Barrens', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Food Crate / Armor Crate / Weapon Crate - Barrens', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Food Crate / Armor Crate / Weapon Crate - Barrens', 0, 10), +(@OGUID+3, @PTEMPLATE+1, 'Food Crate / Armor Crate / Weapon Crate - Barrens', 0, 10), +(@OGUID+4, @PTEMPLATE+2, 'Food Crate / Armor Crate / Weapon Crate - Barrens', 0, 10), +(@OGUID+5, @PTEMPLATE+1, 'Food Crate / Armor Crate / Weapon Crate - Barrens', 0, 10), +(@OGUID+6, @PTEMPLATE+2, 'Food Crate / Armor Crate / Weapon Crate - Barrens', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+3, 3, 'Barrens - Food Crate / Armor Crate / Weapon Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+3, 0, 'Food Crate / Armor Crate / Weapon Crate - Barrens', 0), +(@PTEMPLATE+2, @PTEMPLATE+3, 0, 'Food Crate / Armor Crate / Weapon Crate - Barrens', 0), +(244, @PTEMPLATE+3, 0, 'Food Crate / Armor Crate / Weapon Crate - Barrens', 0), +(245, @PTEMPLATE+3, 0, 'Food Crate / Armor Crate / Weapon Crate - Barrens', 0), +(246, @PTEMPLATE+3, 0, 'Food Crate / Armor Crate / Weapon Crate - Barrens', 0), +(247, @PTEMPLATE+3, 0, 'Food Crate / Armor Crate / Weapon Crate - Barrens', 0), +(248, @PTEMPLATE+3, 0, 'Food Crate / Armor Crate / Weapon Crate - Barrens', 0), +(249, @PTEMPLATE+3, 0, 'Food Crate / Armor Crate / Weapon Crate - Barrens', 0); + +-- Missing Food Crate spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(82074, 3691, 1, -1362.96, -3906.07, 10.1468, 4.53786, 0, 0, -0.766044, 0.642789, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 82072 at 162.593842 yards. + +-- Missing Food Crate spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(82075, 3693, 1, 1346.15, -3614.72, 91.811, 0.314158, 0, 0, 0.156434, 0.987688, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 82073 at 39.149246 yards. + +-- Missing Food Crate spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(82076, 3690, 1, 1362.68, -3418.61, 92.2878, 2.18166, 0, 0, 0.887011, 0.461749, 3600, 3600, 1, 100, 0, 10); -- Closest existing guid is 82071 at 137.587158 yards. + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(96, 3689, 48, -295.378, 316.711, -52.3953, 2.23402, 0, 0, 0.898793, 0.438373, 604800, 604800, 100, 1, 0, 0, 0, 10); + +-- Missing Bottle of Disease spawns in Ashenvale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(48124, 18036, 1, 1909.85, -2642.83, 84.2239, 0.174532, 0, 0, 0.0871553, 0.996195, 10, 10, 1, 100, 0, 10); -- Closest existing guid is 47983 at 0.297812 yards. + +-- Durotar +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(281, 3658, 1, 319.082, -4768.63, 11.9896, 1.72787, 0, 0, 0.760406, 0.649449, 180, 180, 100, 1, 0, 0, 0, 10), +(282, 3719, 1, 319.082, -4768.63, 11.9896, 1.72787, 0, 0, 0.760406, 0.649449, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(60, 1, 'Water Barrel / Food Crate - Durotar', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(281, 60, 'Water Barrel / Food Crate - Durotar', 0, 10), +(282, 60, 'Water Barrel / Food Crate - Durotar', 0, 10); + +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(60, 3877, 0, 'Water Barrel / Food Crate - Durotar', 0); + +-- Missing Food Crate spawns in Dustwallow Marsh. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(9100, 3707, 1, -2429.64, -4067.95, -0.042337, 4.18879, 0, 0, -0.866025, 0.500001, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 9097 at 153.081680 yards. +(55944, 3707, 1, -3012.29, -3247.19, 35.6678, 4.95674, 0, 0, -0.615661, 0.788011, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 55943 at 89.168709 yards. +(82057, 3707, 1, -3120.66, -2817.84, 34.1979, 2.21657, 0, 0, 0.894934, 0.446199, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 82056 at 69.481461 yards. +(13658, 3707, 1, -3616.08, -4059.85, -0.156585, 5.39307, 0, 0, -0.430511, 0.902586, 180, 180, 1, 100, 0, 10); -- Closest existing guid is 13634 at 158.182877 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(9100, 2512, 0, 'Food Crate', 0, 10), -- Food Crates in Dustwallow Marsh +(55944, 2512, 0, 'Food Crate', 0, 10), -- Food Crates in Dustwallow Marsh +(82057, 2512, 0, 'Food Crate', 0, 10), -- Food Crates in Dustwallow Marsh +(13658, 2512, 0, 'Food Crate', 0, 10); -- Food Crates in Dustwallow Marsh + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(2556, 3702, 48, -614.864, 252.745, -49.4881, 4.81711, 0, 0, -0.66913, 0.743145, 604800, 604800, 100, 1, 0, 0, 0, 10), +(2557, 3704, 189, 1743.97, -389.967, 8.00978, 0.0349062, 0, 0, 0.0174522, 0.999848, 604800, 604800, 100, 1, 0, 0, 0, 10), +(2558, 3703, 189, 1782.58, -414.356, 8.01169, 1.5708, 0, 0, 0.707107, 0.707107, 604800, 604800, 100, 1, 0, 0, 0, 10), +(2559, 3704, 189, 1795.07, -431.977, 8.01001, 0, 0, 0, 0, 1, 604800, 604800, 100, 1, 0, 0, 0, 10), +(2560, 3704, 189, 1803.25, -398.513, 8.01243, 3.12412, 0, 0, 0.999962, 0.00873464, 604800, 604800, 100, 1, 0, 0, 0, 10); + +-- Giant Clam BFD +SET @OGUID = 3340; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 19018, 48, -835.627, -47.6639, -35.6945, 3.45576, 0, 0, -0.987688, 0.156436, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 19018, 48, -799.321, -30.2354, -37.0964, 5.70723, 0, 0, -0.284015, 0.95882, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 19018, 48, -331.169, -27.6077, -72.2552, 0.471238, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 19018, 48, -710.16, -49.4721, -41.5957, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 19018, 48, -730.435, -31.5133, -41.4731, 2.11185, 0, 0, 0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 19018, 48, -764.24, -12.3917, -35.5403, 5.93412, 0, 0, -0.173648, 0.984808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 19018, 48, -784.329, -82.7394, -43.0525, 0.558504, 0, 0, 0.275637, 0.961262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 19018, 48, -760.683, -155.534, -51.5062, 0.471238, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 19018, 48, -795.359, -161.435, -44.3909, 4.7822, 0, 0, -0.681998, 0.731354, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 19018, 48, -410.169, 94.1617, -65.5919, 2.09439, 0, 0, 0.866025, 0.500001, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 19018, 48, -437.448, 292.991, -65.8625, 6.00393, 0, 0, -0.139173, 0.990268, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 19018, 48, -427.409, 311.43, -65.817, 0.139624, 0, 0, 0.0697556, 0.997564, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 19018, 48, -683.941, -76.1221, -36.733, 5.75959, 0, 0, -0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 19018, 48, -805.247, -65.7192, -43.6953, 0.610863, 0, 0, 0.300705, 0.953717, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 19018, 48, -755.565, -121.637, -37.5905, 1.79769, 0, 0, 0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 19018, 48, -368.942, 256.857, -71.7873, 5.70723, 0, 0, -0.284015, 0.95882, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 19018, 48, -686.755, -34.1224, -36.9234, 2.16421, 0, 0, 0.882947, 0.469473, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 19018, 48, -731.243, -49.8701, -40.9547, 3.71755, 0, 0, -0.958819, 0.284016, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 19018, 48, -734.435, -96.0345, -36.9606, 1.20428, 0, 0, 0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 19018, 48, -756.047, -176.359, -54.119, 1.6057, 0, 0, 0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 19018, 48, -870.495, -105.115, -35.4094, 1.71042, 0, 0, 0.754709, 0.656059, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+2, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+3, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+4, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+5, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+6, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+7, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+8, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+9, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+10, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+11, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+12, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+13, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+14, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+15, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+16, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+17, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+18, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+19, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+20, 1341, 0, 'Giant Clam', 0, 10), +(@OGUID+21, 1341, 0, 'Giant Clam', 0, 10); + +UPDATE `gameobject` SET `spawntimesecsmin` = 604800, `spawntimesecsmax` = 604800 WHERE `id` = 19018 AND `map` = 48; +UPDATE `pool_template` SET `max_limit` = 17 WHERE `entry` = 1341; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(128, 19019, 36, -209.953, -595.73, 20.9768, 1.16937, 0, 0, 0.551936, 0.833886, 604800, 604800, 100, 1, 0, 0, 0, 10); + +-- Correct position of Snufflenose Owner's Manual in The Barrens (position is off by 0.120619 yards). +UPDATE `gameobject` SET `position_x`=-929.43, `position_y`=-3693.32, `position_z`=8.70877, `orientation`=1.71042, `rotation0`=0, `rotation1`=0, `rotation2`=0.754709, `rotation3`=0.656059 WHERE `guid`=13041; + +-- Missing Snufflenose Owner's Manual spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(13218, 21530, 1, -929.35, -3693.59, 8.70877, 4.83456, 0, 0, -0.66262, 0.748956, 10, 10, 1, 100, 0, 10), +(13219, 21530, 1, -929.441, -3693.2, 8.70877, 4.85202, 0, 0, -0.656058, 0.75471, 10, 10, 1, 100, 0, 10); -- Closest existing guid is 13041 at 0.120619 yards. + +-- Missing Snufflenose Command Sticks spawns in The Barrens. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(12686, 68865, 1, -928.243, -3694.29, 7.42971, 2.23402, 0, 0, 0.898793, 0.438373, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 12674 at 0.092578 yards. +(12759, 68865, 1, -928.193, -3694.29, 7.48284, 0.925024, 0, 0, 0.446198, 0.894935, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 12674 at 0.039830 yards. +(12770, 68865, 1, -928.21, -3694.32, 7.46828, 0.331611, 0, 0, 0.165047, 0.986286, 10, 10, 1, 100, 0, 10), -- Closest existing guid is 12674 at 0.073590 yards. +(12773, 68865, 1, -928.177, -3694.24, 7.27782, 3.87463, 0, 0, -0.93358, 0.358368, 10, 10, 1, 100, 0, 10); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(283, 103820, 90, -511.898, -139.356, -152.478, 3.9619, 0, 0, -0.91706, 0.39875, 604800, 604800, 100, 1, 0, 0, 0, 10), +(284, 103820, 90, -511.33, -139.962, -152.476, 0.750491, 0, 0, 0.366501, 0.930418, 604800, 604800, 100, 1, 0, 0, 0, 10), +(285, 103820, 90, -510.675, -139.437, -152.617, 3.33359, 0, 0, -0.995396, 0.0958512, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(251, 43, 'Gnomeregan - Artificial Extrapolator', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(142344, 251, 'Gnomeregan - Artificial Extrapolator'); +SET @OGUID = 24689; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 142344, 90, -842.885, 375.022, -316.873, 3.07177, 0, 0, 0.999391, 0.0349061, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 142344, 90, -856.641, 308.149, -316.433, 6.26573, 0, 0, -0.00872612, 0.999962, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 142344, 90, -671.056, 430.924, -273.064, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 142344, 90, -737.022, 561.946, -303.783, 0.209439, 0, 0, 0.104528, 0.994522, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 142344, 90, -629.114, 674.704, -327.053, 5.75959, 0, 0, -0.258819, 0.965926, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 142344, 90, -842.7, 340.362, -316.872, 6.17847, 0, 0, -0.0523357, 0.99863, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 142344, 90, -666.174, 424.073, -230.628, 2.82743, 0, 0, 0.987688, 0.156436, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 142344, 90, -653.174, 470.925, -230.601, 3.17653, 0, 0, -0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 142344, 90, -623.801, 425.115, -230.6, 3.45576, 0, 0, -0.987688, 0.156436, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 142344, 90, -526.468, 359.332, -231.52, 2.02458, 0, 0, 0.848047, 0.529921, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 142344, 90, -523.784, 384.632, -231.679, 4.13643, 0, 0, -0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 142344, 90, -657.832, 522.973, -230.601, 1.98967, 0, 0, 0.83867, 0.54464, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 142344, 90, -557.41, 487.718, -273.062, 5.95157, 0, 0, -0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 142344, 90, -540.654, 489.965, -273.062, 1.74533, 0, 0, 0.766044, 0.642789, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 142344, 90, -514.955, 406.563, -230.601, 2.91469, 0, 0, 0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 142344, 90, -531.904, 498.709, -273.062, 1.97222, 0, 0, 0.833885, 0.551938, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 142344, 90, -478.25, 542.684, -230.602, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 142344, 90, -476.012, 579.194, -230.601, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 142344, 90, -492.235, 563.659, -230.602, 6.05629, 0, 0, -0.113203, 0.993572, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 142344, 90, -506.716, 574.526, -230.602, 1.88495, 0, 0, 0.809016, 0.587786, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 142344, 90, -570.643, 562.819, -273.08, 3.90954, 0, 0, -0.927183, 0.374608, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 142344, 90, -602.541, 538.518, -273.08, 5.8294, 0, 0, -0.224951, 0.97437, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 142344, 90, -705.812, 415.35, -273.062, 1.18682, 0, 0, 0.559193, 0.829038, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 142344, 90, -545.807, 282.381, -208.121, 0.174532, 0, 0, 0.0871553, 0.996195, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 142344, 90, -467.554, 266.701, -207.906, 0.698131, 0, 0, 0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 142344, 90, -448.323, 256.703, -207.906, 2.02458, 0, 0, 0.848047, 0.529921, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 142344, 90, -490.968, 497.865, -273.08, 2.68781, 0, 0, 0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 142344, 90, -630.671, 543.116, -273.062, 2.91469, 0, 0, 0.993571, 0.113208, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 142344, 90, -523.274, 609.425, -230.601, 0.802851, 0, 0, 0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 142344, 90, -812.693, 454.52, -308.104, 2.46091, 0, 0, 0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 142344, 90, -878.901, 413.444, -316.452, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 142344, 90, -413.838, 169.739, -154.025, 3.12412, 0, 0, 0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 142344, 90, -376.055, 111.525, -154.024, 1.55334, 0, 0, 0.700909, 0.713251, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 142344, 90, -618.114, 124.15, -199.649, 4.66003, 0, 0, -0.725374, 0.688355, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 142344, 90, -360.867, 84.9759, -207.895, 1.81514, 0, 0, 0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 142344, 90, -420.608, 206.151, -211.553, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 142344, 90, -518.132, 260.072, -207.906, 4.66003, 0, 0, -0.725374, 0.688355, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 142344, 90, -537.037, 437.35, -273.068, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 142344, 90, -517.682, 555.84, -273.08, 4.66003, 0, 0, -0.725374, 0.688355, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 142344, 90, -573.884, 581.258, -230.602, 2.9496, 0, 0, 0.995396, 0.0958512, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 142344, 90, -624.42, 584.544, -230.601, 3.57793, 0, 0, -0.976295, 0.216442, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 142344, 90, -609.993, 484.964, -273.08, 5.77704, 0, 0, -0.25038, 0.968148, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 142344, 90, -621.209, 506.055, -273.066, 3.99681, 0, 0, -0.909961, 0.414694, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 142344, 90, -644.211, 450.836, -230.601, 2.32129, 0, 0, 0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 0, 10); +UPDATE `gameobject` SET `spawntimesecsmin` = 604800, `spawntimesecsmax` = 604800 WHERE `id` = 142344; + +-- Missing Food Crate spawns in Dustwallow Marsh. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(56052, 153470, 1, -4024.68, -3397.13, 38.4731, 0.488691, 0, 0, 0.241921, 0.970296, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 56051 at 340.924286 yards. +(14985, 153470, 1, -4415.2, -4113.46, -0.247779, 3.4034, 0, 0, -0.991445, 0.130528, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 14932 at 272.981262 yards. +(56053, 153470, 1, -4297.23, -3019.47, 35.2656, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 1, 100, 0, 10); -- Closest existing guid is 56051 at 281.128387 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(56052, 2513, 0, 'Food Crate', 0, 10), -- Food Crates in Dustwallow Marsh +(14985, 2513, 0, 'Food Crate', 0, 10), -- Food Crates in Dustwallow Marsh +(56053, 2513, 0, 'Food Crate', 0, 10); -- Food Crates in Dustwallow Marsh + +-- Missing Food Crate spawns in The Hinterlands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(46252, 153470, 0, 332.637, -2122.37, 104.618, 0.628317, 0, 0, 0.309016, 0.951057, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46251 at 63.565536 yards. +(46244, 153470, 0, -375.357, -4217.46, 174.073, 5.75959, 0, 0, -0.258819, 0.965926, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46238 at 149.182541 yards. +(82077, 153470, 0, 117.548, -4399.23, 120.311, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 82070 at 342.146118 yards. +(46247, 153470, 0, 80.0868, -2092.69, 112.912, 1.69297, 0, 0, 0.748956, 0.66262, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46234 at 159.998779 yards. +(46257, 153470, 0, -266.57, -4607.67, -0.763927, 5.72468, 0, 0, -0.275637, 0.961262, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46226 at 425.468323 yards. +(46267, 153470, 0, 235.022, -2852.96, 111.004, 1.02974, 0, 0, 0.492423, 0.870356, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46224 at 246.037491 yards. +(82078, 153470, 0, 218.436, -4326.15, 117.688, 0.0174525, 0, 0, 0.00872612, 0.999962, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 82070 at 228.182098 yards. +(46271, 153470, 0, 46.9772, -4649.91, 13.1173, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46238 at 551.168152 yards. +(46276, 153470, 0, 362.761, -2828.82, 121.56, 3.54302, 0, 0, -0.979924, 0.19937, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46224 at 265.329834 yards. +(46278, 153470, 0, 382.345, -2130.22, 121.007, 2.1293, 0, 0, 0.874619, 0.48481, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46251 at 21.049978 yards. +(46279, 153470, 0, 352.859, -2092.25, 120.451, 1.74533, 0, 0, 0.766044, 0.642789, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46251 at 43.796371 yards. +(46433, 153470, 0, 472.777, -3328.22, 120.236, 3.22886, 0, 0, -0.999048, 0.0436193, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46428 at 298.538452 yards. +(46282, 153470, 0, -394.79, -4055.36, 174.083, 6.0912, 0, 0, -0.0958452, 0.995396, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46238 at 213.624695 yards. +(46285, 153470, 0, -262.859, -4019.79, 174.073, 3.29869, 0, 0, -0.996917, 0.0784664, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 46238 at 180.732529 yards. +(46290, 153470, 0, -473.828, -4588.63, 9.1685, 2.56563, 0, 0, 0.958819, 0.284016, 180, 180, 1, 100, 0, 10); -- Closest existing guid is 46226 at 217.654510 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(46252, 2515, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(46244, 2515, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(82077, 2515, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(46247, 2515, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(46257, 2515, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(46267, 2515, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(82078, 2515, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(46271, 2515, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(46276, 2515, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(46278, 2515, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(46279, 2515, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(46433, 2515, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(46282, 2515, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(46285, 2515, 0, 'Food Crate', 0, 10), -- Food Crates in The Hinterlands +(46290, 2515, 0, 'Food Crate', 0, 10); -- Food Crates in The Hinterlands +UPDATE `pool_template` SET `max_limit` = 11 WHERE `entry`=2515; + +-- Missing Food Crate spawns in Western Plaguelands. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(45503, 153471, 0, 1638.44, -2280.04, 59.8932, 1.43117, 0, 0, 0.656058, 0.75471, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 45489 at 386.286224 yards. +(45504, 153471, 0, 2101.49, -1815.66, 56.4621, 0.471238, 0, 0, 0.233445, 0.97237, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 45483 at 224.309387 yards. +(45505, 153471, 0, 2824.81, -1544.42, 151.203, 5.60251, 0, 0, -0.333807, 0.942641, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 45487 at 114.101120 yards. +(45513, 153471, 0, 1769.98, -1251.8, 60.0194, 2.3911, 0, 0, 0.930417, 0.366502, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 45490 at 135.835510 yards. +(82079, 153471, 0, 2395.77, -1490.48, 102.559, 2.96704, 0, 0, 0.996194, 0.087165, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 82066 at 173.045197 yards. +(45557, 153471, 0, 1578.1, -1556.25, 62.4489, 2.35619, 0, 0, 0.92388, 0.382683, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 45550 at 119.286827 yards. +(45515, 153471, 0, 2207.68, -1784.19, 63.8967, 4.08407, 0, 0, -0.891006, 0.453991, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 45483 at 139.963562 yards. +(45560, 153471, 0, 3011.26, -1497.19, 146.331, 4.66003, 0, 0, -0.725374, 0.688355, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 45487 at 190.077469 yards. +(45561, 153471, 0, 2774.89, -1438.41, 146.268, 5.20108, 0, 0, -0.515038, 0.857168, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 45487 at 58.793861 yards. +(82080, 153471, 0, 1296.44, -1385.05, 49.5297, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 82064 at 169.616440 yards. +(82081, 153471, 0, 1491.99, -1821.35, 61.6151, 5.07891, 0, 0, -0.566406, 0.824126, 180, 180, 1, 100, 0, 10); -- Closest existing guid is 82063 at 210.005600 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(45503, 2514, 0, 'Food Crate', 0, 10), -- Food Crates in Western Plaguelands +(45504, 2514, 0, 'Food Crate', 0, 10), -- Food Crates in Western Plaguelands +(45505, 2514, 0, 'Food Crate', 0, 10), -- Food Crates in Western Plaguelands +(45513, 2514, 0, 'Food Crate', 0, 10), -- Food Crates in Western Plaguelands +(82079, 2514, 0, 'Food Crate', 0, 10), -- Food Crates in Western Plaguelands +(45557, 2514, 0, 'Food Crate', 0, 10), -- Food Crates in Western Plaguelands +(45515, 2514, 0, 'Food Crate', 0, 10), -- Food Crates in Western Plaguelands +(45560, 2514, 0, 'Food Crate', 0, 10), -- Food Crates in Western Plaguelands +(45561, 2514, 0, 'Food Crate', 0, 10), -- Food Crates in Western Plaguelands +(82080, 2514, 0, 'Food Crate', 0, 10), -- Food Crates in Western Plaguelands +(82081, 2514, 0, 'Food Crate', 0, 10); -- Food Crates in Western Plaguelands +UPDATE `pool_template` SET `max_limit`= 9 WHERE `entry`=2514; + +UPDATE `gameobject` SET `position_x`=803.48, `position_y`=-357.449, `position_z`=-48.9414, `orientation`=0.733038, `rotation0`=0, `rotation1`=0, `rotation2`=0.358368, `rotation3`=0.93358 WHERE `guid`=43137; + +UPDATE `gameobject` SET `position_x`=802.907, `position_y`=-356.401, `position_z`=-48.9423, `orientation`=5.49779, `rotation0`=0, `rotation1`=0, `rotation2`=-0.382683, `rotation3`=0.92388 WHERE `guid`=362149; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(314, 173234, 230, 631.133, -70.6022, -44.4505, 4.67748, 0, 0, -0.719339, 0.694659, 604800, 604800, 100, 1, 0, 0, 0, 10), +(315, 173234, 230, 852.163, -327.889, -49.366, 0.279252, 0, 0, 0.139173, 0.990268, 604800, 604800, 100, 1, 0, 0, 0, 10); + +UPDATE `gameobject` SET `position_x`=75.9989, `position_y`=-334.744, `position_z`=91.5107, `orientation`=6.17847, `rotation0`=0, `rotation1`=0, `rotation2`=-0.0523357, `rotation3`=0.99863 WHERE `guid` IN (399066, 399067); + +UPDATE `gameobject` SET `position_x`=67.1283, `position_y`=-297.421, `position_z`=91.4255, `orientation`=6.24828, `rotation0`=0, `rotation1`=0, `rotation2`=-0.0174522, `rotation3`=0.999848 WHERE `guid`=3996164; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(353, 178185, 1, 4321.46, 922.773, -14.2548, 5.2709, 0, 0, -0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 0, 10); + +-- Missing Warsong Oil spawns in Ashenvale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(66115, 178195, 1, 2703.38, -2942, 145.095, 5.2709, 0, 0, -0.484809, 0.87462, 180, 180, 1, 100, 0, 10), -- Closest existing guid is 65926 at 23.763996 yards. +(47897, 178195, 1, 2487.91, -2132.03, 201.998, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 1, 100, 0, 10); + +UPDATE `gameobject` SET `id` = 179426 WHERE `guid` = 11028; + +-- Missing Dark Iron Pillow spawns in Searing Gorge. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(7087, 179828, 0, -6578.01, -1314.35, 209.978, 4.20625, 0, 0, -0.861629, 0.507539, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 6995 at 9.456453 yards. +(66116, 179828, 0, -6547.68, -1325.57, 212.376, 2.75761, 0, 0, 0.981627, 0.190812, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 66096 at 4.327898 yards. +(66141, 179828, 0, -6554.68, -1351.74, 212.682, 2.14675, 0, 0, 0.878817, 0.47716, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 66099 at 2.525874 yards. +(66146, 179828, 0, -6550.27, -1321.75, 210.433, 5.44543, 0, 0, -0.406736, 0.913546, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 66096 at 2.110844 yards. +(66147, 179828, 0, -6518.91, -1364.86, 210.541, 5.65487, 0, 0, -0.309016, 0.951057, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 66109 at 4.569125 yards. +(7089, 179828, 0, -6576.94, -1319.12, 210.249, 6.03884, 0, 0, -0.121869, 0.992546, 300, 300, 1, 100, 3, 10); + +-- Correct position of Dark Iron Pillow in Searing Gorge (position is off by 2.33102 yards). +UPDATE `gameobject` SET `position_x`=-6559.2, `position_y`=-1347.43, `position_z`=212.376, `orientation`=1.76278, `rotation0`=0, `rotation1`=0, `rotation2`=0.771625, `rotation3`=0.636078 WHERE `guid`=7006; + +-- Correct position of Dark Iron Pillow in Searing Gorge (position is off by 2.50527 yards). +UPDATE `gameobject` SET `position_x`=-6552.55, `position_y`=-1317.99, `position_z`=212.64, `orientation`=4.93928, `rotation0`=0, `rotation1`=0, `rotation2`=-0.622514, `rotation3`=0.782609 WHERE `guid`=7009; + +-- Correct position of Dark Iron Pillow in Searing Gorge (position is off by 1.97493 yards). +UPDATE `gameobject` SET `position_x`=-6573.04, `position_y`=-1328.57, `position_z`=210.388, `orientation`=0.837757, `rotation0`=0, `rotation1`=0, `rotation2`=0.406736, `rotation3`=0.913546 WHERE `guid`=7003; + +-- Correct position of Dark Iron Pillow in Searing Gorge (position is off by 4.73451 yards). +UPDATE `gameobject` SET `position_x`=-6522.7, `position_y`=-1340.67, `position_z`=210.145, `orientation`=3.33359, `rotation0`=0, `rotation1`=0, `rotation2`=-0.995396, `rotation3`=0.0958512 WHERE `guid`=6991; + +-- Correct position of Dark Iron Pillow in Searing Gorge (position is off by 3.80791 yards). +UPDATE `gameobject` SET `position_x`=-6569.39, `position_y`=-1335.83, `position_z`=210.187, `orientation`=2.33874, `rotation0`=0, `rotation1`=0, `rotation2`=0.920505, `rotation3`=0.390732 WHERE `guid`=6976; + +-- Missing Dark Iron Pillow spawns in Searing Gorge. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(7090, 179828, 0, -6572.96, -1327.58, 212.095, 3.56047, 0, 0, -0.978148, 0.207912, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 7003 at 1.974929 yards. +(7091, 179828, 0, -6551.49, -1318.46, 210.419, 0.698131, 0, 0, 0.34202, 0.939693, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 7009 at 2.505269 yards. +(7092, 179828, 0, -6558.36, -1347.93, 210.26, 3.35105, 0, 0, -0.994521, 0.104536, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 7006 at 2.331023 yards. +(7093, 179828, 0, -6570.39, -1332.69, 212.095, 5.37562, 0, 0, -0.438371, 0.898794, 300, 300, 1, 100, 3, 10), -- Closest existing guid is 6976 at 3.807909 yards. +(7094, 179828, 0, -6518.08, -1341.7, 210.242, 2.84488, 0, 0, 0.989016, 0.147811, 300, 300, 1, 100, 3, 10); -- Closest existing guid is 6991 at 4.734511 yards. + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 2db4cb3f16c792f46c2d4cb7ff06c268f71117d8 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Thu, 13 Jul 2023 17:51:33 +0100 Subject: [PATCH 099/426] Correctly Pool Instance Chests (#2069) --- sql/migrations/20230709143418_world.sql | 126 ++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 sql/migrations/20230709143418_world.sql diff --git a/sql/migrations/20230709143418_world.sql b/sql/migrations/20230709143418_world.sql new file mode 100644 index 00000000000..d0cb2fa66d6 --- /dev/null +++ b/sql/migrations/20230709143418_world.sql @@ -0,0 +1,126 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230709143418'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230709143418'); +-- Add your query below. + + +-- Correctly Pool Scarlet Monastery Graveyard +SET @OGUID = 220252; +SET @PTEMPLATE = 14309; + +DELETE FROM `gameobject` WHERE `guid` IN (25434, 25448, 25435, 11870, 25449, 25436, 11872); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 75296, 189, 1748.22, 1252.28, 18.1573, 5.70723, 0, 0, -0.284015, 0.95882, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 75296, 189, 1762.11, 1153.56, 7.49028, 4.72984, 0, 0, -0.700909, 0.713251, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 75296, 189, 1788.14, 1394.66, -0.455138, 2.63544, 0, 0, 0.968147, 0.250381, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 75296, 189, 1847.77, 1276.34, 18.1573, 2.80998, 0, 0, 0.986285, 0.16505, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 75299, 189, 1748.22, 1252.28, 18.1573, 5.70723, 0, 0, -0.284015, 0.95882, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 75299, 189, 1762.11, 1153.56, 7.49028, 4.72984, 0, 0, -0.700909, 0.713251, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 75299, 189, 1788.14, 1394.66, -0.455138, 2.63544, 0, 0, 0.968147, 0.250381, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 75299, 189, 1847.77, 1276.34, 18.1573, 2.80998, 0, 0, 0.986285, 0.16505, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Graveyard', 10), +(@PTEMPLATE+2, 1, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Graveyard', 10), +(@PTEMPLATE+3, 1, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Graveyard', 10), +(@PTEMPLATE+4, 1, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Graveyard', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Graveyard', 10), +(@OGUID+2, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Graveyard', 10), +(@OGUID+3, @PTEMPLATE+3, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Graveyard', 10), +(@OGUID+4, @PTEMPLATE+4, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Graveyard', 10), +(@OGUID+5, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Graveyard', 10), +(@OGUID+6, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Graveyard', 10), +(@OGUID+7, @PTEMPLATE+3, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Graveyard', 10), +(@OGUID+8, @PTEMPLATE+4, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Graveyard', 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+5, 2, 'Scarlet Monastery Graveyard - Large Iron Bound Chest / Large Solid Chest (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+5, 0, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Graveyard', 0), +(@PTEMPLATE+2, @PTEMPLATE+5, 0, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Graveyard', 0), +(@PTEMPLATE+3, @PTEMPLATE+5, 0, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Graveyard', 0), +(@PTEMPLATE+4, @PTEMPLATE+5, 0, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Graveyard', 0); + +-- Correctly Pool Stockades +SET @OGUID = 5764; +SET @PTEMPLATE = 21500; + +DELETE FROM `pool_template` WHERE `entry` = 21500; +DELETE FROM `pool_pool` WHERE `mother_pool` = 21500; +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (31963, 32162, 25464, 25465, 25466, 25467, 26178, 26179, 31964, 25468, 25469, 25470)); +DELETE FROM `gameobject` WHERE `guid` IN (31963, 32162, 25464, 25465, 25466, 25467, 26178, 26179, 31964, 25468, 25469, 25470); +DELETE FROM `pool_gameobject` WHERE `guid` IN (31963, 32162, 25464, 25465, 25466, 25467, 26178, 26179, 31964, 25468, 25469, 25470); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 75298, 34, 104.455, 77.2554, -34.8562, -0.366519, 0, 0, 0.182236, -0.983255, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 75298, 34, 165.322, 57.6663, -34.8562, 2.9147, 0, 0, 0.993572, 0.113203, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 75298, 34, 90.5921, -145.882, -33.9396, 1.44862, 0, 0, 0.66262, 0.748956, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 75298, 34, 92.3032, -56.1773, -34.8562, 6.07375, 0, 0, -0.104528, 0.994522, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 75298, 34, 146.967, -121.079, -33.9396, 3.50812, 0, 0, -0.983254, 0.182238, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 75298, 34, 151.69, -65.131, -34.8562, 5.09636, 0, 0, -0.559193, 0.829038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 75298, 34, 188.603, 81.585, -33.9396, 2.47837, 0, 0, 0.945519, 0.325568, 36000, 36000, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 75298, 34, 173.185, 146.955, -33.9396, 4.2237, 0, 0, -0.857167, 0.515038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 75295, 34, 104.455, 77.2554, -34.8562, -0.366519, 0, 0, 0.182236, -0.983255, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 75295, 34, 165.322, 57.6663, -34.8562, 2.9147, 0, 0, 0.993572, 0.113203, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 75295, 34, 90.5921, -145.882, -33.9396, 1.44862, 0, 0, 0.66262, 0.748956, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 75295, 34, 92.3032, -56.1773, -34.8562, 6.07375, 0, 0, -0.104528, 0.994522, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 75295, 34, 146.967, -121.079, -33.9396, 3.50812, 0, 0, -0.983254, 0.182238, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 75295, 34, 151.69, -65.131, -34.8562, 5.09636, 0, 0, -0.559193, 0.829038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 75295, 34, 188.603, 81.585, -33.9396, 2.47837, 0, 0, 0.945519, 0.325568, 36000, 36000, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 75295, 34, 173.185, 146.955, -33.9396, 4.2237, 0, 0, -0.857167, 0.515038, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@PTEMPLATE+2, 1, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@PTEMPLATE+3, 1, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@PTEMPLATE+4, 1, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@PTEMPLATE+5, 1, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@PTEMPLATE+6, 1, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@PTEMPLATE+7, 1, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@PTEMPLATE+8, 1, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@OGUID+2, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@OGUID+3, @PTEMPLATE+3, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@OGUID+4, @PTEMPLATE+4, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@OGUID+5, @PTEMPLATE+5, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@OGUID+6, @PTEMPLATE+6, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@OGUID+7, @PTEMPLATE+7, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@OGUID+8, @PTEMPLATE+8, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@OGUID+9, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@OGUID+10, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@OGUID+11, @PTEMPLATE+3, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@OGUID+12, @PTEMPLATE+4, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@OGUID+13, @PTEMPLATE+5, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@OGUID+14, @PTEMPLATE+6, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@OGUID+15, @PTEMPLATE+7, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10), +(@OGUID+16, @PTEMPLATE+8, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+9, 3, 'Stockades - Large Iron Bound Chest / Large Solid Chest (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+9, 0, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 0), +(@PTEMPLATE+2, @PTEMPLATE+9, 0, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 0), +(@PTEMPLATE+3, @PTEMPLATE+9, 0, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 0), +(@PTEMPLATE+4, @PTEMPLATE+9, 0, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 0), +(@PTEMPLATE+5, @PTEMPLATE+9, 0, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 0), +(@PTEMPLATE+6, @PTEMPLATE+9, 0, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 0), +(@PTEMPLATE+7, @PTEMPLATE+9, 0, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 0), +(@PTEMPLATE+8, @PTEMPLATE+9, 0, 'Large Iron Bound Chest / Large Solid Chest - Stockades', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 857e5a2d05d7cc58da61c55da816de1ca05bbce2 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Thu, 13 Jul 2023 17:57:14 +0100 Subject: [PATCH 100/426] Update and Add Book Objects (#2071) --- sql/migrations/20230710150027_world.sql | 94 +++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 sql/migrations/20230710150027_world.sql diff --git a/sql/migrations/20230710150027_world.sql b/sql/migrations/20230710150027_world.sql new file mode 100644 index 00000000000..789117e8c45 --- /dev/null +++ b/sql/migrations/20230710150027_world.sql @@ -0,0 +1,94 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230710150027'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230710150027'); +-- Add your query below. + + +-- Add and Update Book Objects +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(3225, 175738, 0, -8339.45, 398.575, 122.274, 5.77704, 0, 0, -0.25038, 0.968148, 180, 180, 100, 1, 0, 0, 0, 10), +(3226, 179707, 450, 242.978, 87.1378, 25.8042, 4.90438, 0, 0, -0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 0, 10); + +DELETE FROM `gameobject` WHERE `guid` = 3998633; + +-- Correct position of Aftermath of the Second War in Stormwind City (position is off by 0.349609 yards). +UPDATE `gameobject` SET `position_x`=-8365.65, `position_y`=400.979, `position_z`=123.406, `orientation`=0.209439, `rotation0`=0, `rotation1`=0, `rotation2`=0.104528, `rotation3`=0.994522 WHERE `guid`=13676; + +-- Correct position of The Alliance of Lordaeron in Stormwind City (position is off by 0.200195 yards). +UPDATE `gameobject` SET `position_x`=-8366.8, `position_y`=400.532, `position_z`=123.392, `orientation`=5.46288, `rotation0`=0, `rotation1`=0, `rotation2`=-0.398748, `rotation3`=0.91706 WHERE `guid`=18582; + +-- Correct position of The Kaldorei and the Well of Eternity in Stormwind City (position is off by 0.469727 yards). +UPDATE `gameobject` SET `position_x`=-8341.53, `position_y`=415.198, `position_z`=124.479, `orientation`=4.50295, `rotation0`=0, `rotation1`=0, `rotation2`=-0.777145, `rotation3`=0.629321 WHERE `guid`=13680; + +-- Correct position of Beyond the Dark Portal in Stormwind City (position is off by 0.0800781 yards). +UPDATE `gameobject` SET `position_x`=-8332.08, `position_y`=397.552, `position_z`=123.441, `orientation`=5.35816, `rotation0`=0, `rotation1`=0, `rotation2`=-0.446198, `rotation3`=0.894935 WHERE `guid`=13678; + +-- Correct position of The War of the Ancients in Stormwind City (position is off by 0.0898438 yards). +UPDATE `gameobject` SET `position_x`=-8832.09, `position_y`=1088.1, `position_z`=97.0041, `orientation`=3.03684, `rotation0`=0, `rotation1`=0, `rotation2`=0.998629, `rotation3`=0.0523532 WHERE `guid`=42901; + +-- Correct position of Fossilized Egg in Ironforge (position is off by 0.00976563 yards). +UPDATE `gameobject` SET `position_x`=-4698.28, `position_y`=-1312.97, `position_z`=503.944, `orientation`=1.03907, `rotation0`=0.607692, `rotation1`=-0.361538, `rotation2`=0.607692, `rotation3`=0.361541 WHERE `guid`=5405; + +-- Correct position of Horde Catapult in Ironforge (position is off by 0.0102539 yards). +UPDATE `gameobject` SET `position_x`=-4602.47, `position_y`=-1234.72, `position_z`=504.472, `orientation`=0, `rotation0`=0.309975, `rotation1`=-0.635543, `rotation2`=0.309975, `rotation3`=0.635544 WHERE `guid`=5205; + +-- Correct position of Uldaman Reliefs in Ironforge (position is off by 0.0102539 yards). +UPDATE `gameobject` SET `position_x`=-4585.97, `position_y`=-1223.39, `position_z`=504.293, `orientation`=1.19205, `rotation0`=0.681389, `rotation1`=-0.188966, `rotation2`=0.681389, `rotation3`=0.18897 WHERE `guid`=5141; + +-- Correct position of Mount Hyjal and Illidan's Gift in Stormwind City (position is off by 0.0898442 yards). +UPDATE `gameobject` SET `position_x`=-8860.91, `position_y`=821.677, `position_z`=99.4557, `orientation`=0.977383, `rotation0`=0, `rotation1`=0, `rotation2`=0.469471, `rotation3`=0.882948 WHERE `guid`=42902; + +-- Correct position of The World Tree and the Emerald Dream in Stormwind City (position is off by 0.360352 yards). +UPDATE `gameobject` SET `position_x`=-8729.36, `position_y`=1107.63, `position_z`=94.3296, `orientation`=5.53269, `rotation0`=0, `rotation1`=0, `rotation2`=-0.366501, `rotation3`=0.930418 WHERE `guid`=42903; + +-- Correct position of War of the Three Hammers in Stormwind City (position is off by 0.410156 yards). +UPDATE `gameobject` SET `position_x`=-8471.59, `position_y`=513.586, `position_z`=101.574, `orientation`=5.8294, `rotation0`=0, `rotation1`=0, `rotation2`=-0.224951, `rotation3`=0.97437 WHERE `guid`=18564; + +-- Correct position of The Dark Portal and the Fall of Stormwind in Stormwind City (position is off by 0.129883 yards). +UPDATE `gameobject` SET `position_x`=-8416.13, `position_y`=280.448, `position_z`=122.017, `orientation`=3.83973, `rotation0`=0, `rotation1`=0, `rotation2`=-0.939692, `rotation3`=0.34202 WHERE `guid`=18578; + +-- Correct position of The Alliance of Lordaeron in Stormwind City (position is off by 0.200195 yards). +UPDATE `gameobject` SET `position_x`=-8366.8, `position_y`=400.532, `position_z`=123.392, `orientation`=5.46288, `rotation0`=0, `rotation1`=0, `rotation2`=-0.398748, `rotation3`=0.91706 WHERE `guid`=18582; + +-- Correct position of The Guardians of Tirisfal in Stormwind City (position is off by 0.299805 yards). +UPDATE `gameobject` SET `position_x`=-8366.7, `position_y`=401.885, `position_z`=123.427, `orientation`=2.28638, `rotation0`=0, `rotation1`=0, `rotation2`=0.909961, `rotation3`=0.414694 WHERE `guid`=18556; + +-- Correct position of The Birth of the Lich King in Hillsbrad Foothills (position is off by 0.345441 yards). +UPDATE `gameobject` SET `position_x`=-846.982, `position_y`=-599.655, `position_z`=19.4974, `orientation`=1.25664, `rotation0`=0, `rotation1`=0, `rotation2`=0.587785, `rotation3`=0.809017 WHERE `guid`=18586; + +-- Correct position of Archimonde's Return and the Flight to Kalimdor in Stormwind City (position is off by 0.0195335 yards). +UPDATE `gameobject` SET `position_x`=-8859.98, `position_y`=820.548, `position_z`=99.4627, `orientation`=0.0698117, `rotation0`=0, `rotation1`=0, `rotation2`=0.0348988, `rotation3`=0.999391 WHERE `guid`=42904; + +-- Correct position of The Battle of Grim Batol in Stormwind City (position is off by 0.240234 yards). +UPDATE `gameobject` SET `position_x`=-8400.76, `position_y`=260.89, `position_z`=122.024, `orientation`=3.6652, `rotation0`=0, `rotation1`=0, `rotation2`=-0.965925, `rotation3`=0.258821 WHERE `guid`=18590; + +-- Correct position of War of the Spider in Stormwind City (position is off by 0.0595703 yards). +UPDATE `gameobject` SET `position_x`=-8380.06, `position_y`=277.137, `position_z`=122.031, `orientation`=0.453785, `rotation0`=0, `rotation1`=0, `rotation2`=0.224951, `rotation3`=0.97437 WHERE `guid`=18597; + +-- Correct position of Civil War in the Plaguelands in Stormwind City (position is off by 0.469727 yards). +UPDATE `gameobject` SET `position_x`=-8370.53, `position_y`=395.315, `position_z`=122.274, `orientation`=1.18682, `rotation0`=0, `rotation1`=0, `rotation2`=0.559193, `rotation3`=0.829038 WHERE `guid`=18610; + +-- Correct position of The New Horde in Stormwind City (position is off by 0.0302734 yards). +UPDATE `gameobject` SET `position_x`=-8366.03, `position_y`=407.815, `position_z`=124.479, `orientation`=4.72984, `rotation0`=0, `rotation1`=0, `rotation2`=-0.700909, `rotation3`=0.713251 WHERE `guid`=18594; + +-- Correct position of Lady Mara Fordragon in Stormwind City (position is off by 0.701602 yards). +UPDATE `gameobject` SET `position_x`=-8347.64, `position_y`=520.968, `position_z`=122.939, `orientation`=0, `rotation0`=-0.307199, `rotation1`=-0.636889, `rotation2`=-0.307199, `rotation3`=0.636891 WHERE `guid`=20459; + +-- Correct position of Grand Admiral Daelin Proudmoore in Stormwind City (position is off by 0.710573 yards). +UPDATE `gameobject` SET `position_x`=-8338.47, `position_y`=509.132, `position_z`=122.931, `orientation`=0, `rotation0`=-0.307199, `rotation1`=-0.636889, `rotation2`=-0.307199, `rotation3`=0.636891 WHERE `guid`=31619; + +-- Correct position of King Llane I of the House of Wrynn in Stormwind City (position is off by 0.280281 yards). +UPDATE `gameobject` SET `position_x`=-8337.72, `position_y`=519.841, `position_z`=122.939, `orientation`=5.15595, `rotation0`=-0.667572, `rotation1`=-0.233126, `rotation2`=-0.667571, `rotation3`=0.23313 WHERE `guid`=20458; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From c4ee2afb87502832892e9a50eedc10cfc5b315d0 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 13 Jul 2023 23:46:27 +0300 Subject: [PATCH 101/426] Remove trainer list from some npcs. --- sql/migrations/20230713204556_world.sql | 42 +++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 sql/migrations/20230713204556_world.sql diff --git a/sql/migrations/20230713204556_world.sql b/sql/migrations/20230713204556_world.sql new file mode 100644 index 00000000000..19bab2d9a65 --- /dev/null +++ b/sql/migrations/20230713204556_world.sql @@ -0,0 +1,42 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230713204556'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230713204556'); +-- Add your query below. + + +-- Naela Trance is a vendor and can repair. +UPDATE `creature_template` SET `npc_flags`=16388 WHERE `entry`=1459; +DELETE FROM `npc_trainer` WHERE `entry`=1459; + +-- Hillsbrad Tailor is only a vendor. +UPDATE `creature_template` SET `npc_flags`=4 WHERE `entry`=2264; +DELETE FROM `npc_trainer` WHERE `entry`=2264; + +-- Shylenai is only a vendor. +UPDATE `creature_template` SET `npc_flags`=4 WHERE `entry`=8665; +DELETE FROM `npc_trainer` WHERE `entry`=8665; + +-- Henry Stern has only gossip. +UPDATE `creature_template` SET `npc_flags`=1 WHERE `entry`=8696; +DELETE FROM `npc_trainer` WHERE `entry`=8696; + +-- Doctor Gregory Victor has gossip and is a quest giver. +UPDATE `creature_template` SET `npc_flags`=3 WHERE `entry`=12920; +DELETE FROM `npc_trainer` WHERE `entry`=12920; + +-- Doctor Gustaf VanHowzen has gossip and is a quest giver. +UPDATE `creature_template` SET `npc_flags`=3 WHERE `entry`=12939; +DELETE FROM `npc_trainer` WHERE `entry`=12939; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 026ac142e41e22cd693c2e33684e5863493e69f1 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 15 Jul 2023 00:14:07 +0300 Subject: [PATCH 102/426] Thorns should not trigger on Absorb or Immune.: --- src/game/Objects/Unit.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 023b7889bff..ff3aba38508 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -1654,8 +1654,8 @@ void Unit::DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss) } } - // If not miss - if (!(damageInfo->HitInfo & HITINFO_MISS) && damageInfo->TargetState != VICTIMSTATE_PARRY && damageInfo->TargetState != VICTIMSTATE_DODGE) + // Confirmed on classic that Thorns does not trigger on Immune, Absorb and Dodge. + if ((damageInfo->HitInfo & HITINFO_AFFECTS_VICTIM) && damageInfo->TargetState != VICTIMSTATE_PARRY && damageInfo->TargetState != VICTIMSTATE_DODGE) { // on weapon hit casts if (IsPlayer() && pVictim->IsAlive()) From 5520ea2043f48a1d00aa0c1fea4083ca33166a47 Mon Sep 17 00:00:00 2001 From: balakethelock <111737968+balakethelock@users.noreply.github.com> Date: Fri, 14 Jul 2023 22:14:59 +0100 Subject: [PATCH 103/426] Allowed physical abilities to use weapon skill (#1983) Physical abilities that didn't require a melee weapon such as Bloodthirst and Pummel were specifically excluded from using weapon skill, instead simply using (level*5). This incorrect deviation from blizzlike behavior has been removed. --- src/game/Objects/SpellCaster.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/Objects/SpellCaster.cpp b/src/game/Objects/SpellCaster.cpp index cd61694c323..7c7c87b5be7 100644 --- a/src/game/Objects/SpellCaster.cpp +++ b/src/game/Objects/SpellCaster.cpp @@ -382,7 +382,7 @@ SpellMissInfo SpellCaster::MeleeSpellHitResult(Unit* pVictim, SpellEntry const* return SPELL_MISS_NONE; // bonus from skills is 0.04% per skill Diff - int32 attackerWeaponSkill = (spell->EquippedItemClass == ITEM_CLASS_WEAPON) ? int32(GetWeaponSkillValue(attType, pVictim)) : GetSkillMaxForLevel(); + int32 attackerWeaponSkill = int32(GetWeaponSkillValue(attType, pVictim)); int32 skillDiff = attackerWeaponSkill - int32(pVictim->GetSkillMaxForLevel(this)); int32 fullSkillDiff = attackerWeaponSkill - int32(pVictim->GetDefenseSkillValue(this)); int32 minWeaponSkill = GetSkillMaxForLevel(pVictim) < attackerWeaponSkill ? GetSkillMaxForLevel(pVictim) : attackerWeaponSkill; From df946fb683eeba332fd2cd0c66477be1b9bdeff7 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 15 Jul 2023 04:01:16 +0300 Subject: [PATCH 104/426] Fix more weapon skill interactions. Hammer of Wrath should not be affected by weapon skill, and neither it nor Bloodthirst should increase weapon skills upon cast. --- src/game/Objects/SpellCaster.cpp | 7 ++++--- src/game/Objects/Unit.cpp | 5 +++-- src/game/Objects/Unit.h | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/game/Objects/SpellCaster.cpp b/src/game/Objects/SpellCaster.cpp index 7c7c87b5be7..f11e0bed142 100644 --- a/src/game/Objects/SpellCaster.cpp +++ b/src/game/Objects/SpellCaster.cpp @@ -256,10 +256,10 @@ void SpellCaster::ProcDamageAndSpell(ProcSystemArguments&& data) { if (data.procFlagsAttacker) if (Unit* pUnit = ToUnit()) - pUnit->ProcSkillsAndReactives(false, data.pVictim, data.procFlagsAttacker, data.procExtra, data.attType); + pUnit->ProcSkillsAndReactives(false, data.pVictim, data.procFlagsAttacker, data.procExtra, data.attType, data.procSpell); if (data.procFlagsVictim && data.pVictim && data.pVictim->IsAlive()) - data.pVictim->ProcSkillsAndReactives(true, IsUnit() ? static_cast(this) : data.pVictim, data.procFlagsVictim, data.procExtra, data.attType); + data.pVictim->ProcSkillsAndReactives(true, IsUnit() ? static_cast(this) : data.pVictim, data.procFlagsVictim, data.procExtra, data.attType, data.procSpell); } // Always execute On Kill procs instantly. Fixes Improved Drain Soul talent. @@ -381,8 +381,9 @@ SpellMissInfo SpellCaster::MeleeSpellHitResult(Unit* pVictim, SpellEntry const* if (spell->IsFitToFamily() && spell->Id != 20647) return SPELL_MISS_NONE; + // Hammer of Wrath should not use weapon skill, but Bloodthirst should. // bonus from skills is 0.04% per skill Diff - int32 attackerWeaponSkill = int32(GetWeaponSkillValue(attType, pVictim)); + int32 attackerWeaponSkill = (spell->rangeIndex == SPELL_RANGE_IDX_COMBAT) ? int32(GetWeaponSkillValue(attType, pVictim)) : GetSkillMaxForLevel(); int32 skillDiff = attackerWeaponSkill - int32(pVictim->GetSkillMaxForLevel(this)); int32 fullSkillDiff = attackerWeaponSkill - int32(pVictim->GetDefenseSkillValue(this)); int32 minWeaponSkill = GetSkillMaxForLevel(pVictim) < attackerWeaponSkill ? GetSkillMaxForLevel(pVictim) : attackerWeaponSkill; diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index ff3aba38508..acf99a36e31 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -8631,13 +8631,14 @@ uint32 CreateProcExtendMask(SpellNonMeleeDamage* damageInfo, SpellMissInfo missC return procEx; } -void Unit::ProcSkillsAndReactives(bool isVictim, Unit* pTarget, uint32 procFlag, uint32 procExtra, WeaponAttackType attType) +void Unit::ProcSkillsAndReactives(bool isVictim, Unit* pTarget, uint32 procFlag, uint32 procExtra, WeaponAttackType attType, SpellEntry const* procSpell) { // For melee/ranged based attack need update skills and set some Aura states if (procFlag & MELEE_BASED_TRIGGER_MASK && pTarget) { // Update skills here for players - if (IsPlayer()) + // Bloodthirst and Hammer of Wrath do not increase weapon skills + if (IsPlayer() && (!procSpell || procSpell->EquippedItemClass == ITEM_CLASS_WEAPON)) { // On melee based hit/miss/resist/parry/dodge/block need update skill if (procExtra & (PROC_EX_NORMAL_HIT | PROC_EX_CRITICAL_HIT | PROC_EX_MISS | PROC_EX_DODGE | PROC_EX_PARRY | PROC_EX_BLOCK | PROC_EX_RESIST)) diff --git a/src/game/Objects/Unit.h b/src/game/Objects/Unit.h index 8833406c85d..46317e3b278 100644 --- a/src/game/Objects/Unit.h +++ b/src/game/Objects/Unit.h @@ -841,7 +841,7 @@ class Unit : public SpellCaster bool IsEffectResist(SpellEntry const* spell, int eff) const; // SPELL_AURA_MOD_MECHANIC_RESISTANCE void ProcDamageAndSpellFor(bool isVictim, Unit* pTarget, ProcSystemArguments const& data, ProcTriggeredList& triggeredList, ProcessProcsAuraType processAurasType); - void ProcSkillsAndReactives(bool isVictim, Unit* pTarget, uint32 procFlag, uint32 procExtra, WeaponAttackType attType); + void ProcSkillsAndReactives(bool isVictim, Unit* pTarget, uint32 procFlag, uint32 procExtra, WeaponAttackType attType, SpellEntry const* procSpell); void HandleTriggers(Unit* pVictim, uint32 procExtra, uint32 amount, SpellEntry const* procSpell, ProcTriggeredList const& procTriggered); SpellProcEventTriggerCheck IsTriggeredAtSpellProcEvent(Unit* pVictim, SpellAuraHolder* holder, SpellEntry const* procSpell, uint32 procFlag, uint32 procExtra, WeaponAttackType attType, bool isVictim, SpellProcEventEntry const*& spellProcEvent, bool isSpellTriggeredByAuraOrItem) const; From 9dd38a083867c02db12935497713032542ed4830 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 15 Jul 2023 14:26:08 +0300 Subject: [PATCH 105/426] Fix ranged weapon skill not being used. --- src/game/Objects/SpellCaster.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/game/Objects/SpellCaster.cpp b/src/game/Objects/SpellCaster.cpp index f11e0bed142..5f59f645b38 100644 --- a/src/game/Objects/SpellCaster.cpp +++ b/src/game/Objects/SpellCaster.cpp @@ -372,10 +372,7 @@ float SpellCaster::MeleeSpellMissChance(Unit* pVictim, WeaponAttackType attType, // Melee based spells hit result calculations SpellMissInfo SpellCaster::MeleeSpellHitResult(Unit* pVictim, SpellEntry const* spell, Spell* spellPtr) { - WeaponAttackType attType = BASE_ATTACK; - - if (spell->DmgClass == SPELL_DAMAGE_CLASS_RANGED) - attType = RANGED_ATTACK; + WeaponAttackType attType = spell->DmgClass == SPELL_DAMAGE_CLASS_RANGED ? RANGED_ATTACK : BASE_ATTACK; // Warrior spell Execute (5308) should never dodge, miss, resist ... Only the trigger can (20647) if (spell->IsFitToFamily() && spell->Id != 20647) @@ -383,7 +380,8 @@ SpellMissInfo SpellCaster::MeleeSpellHitResult(Unit* pVictim, SpellEntry const* // Hammer of Wrath should not use weapon skill, but Bloodthirst should. // bonus from skills is 0.04% per skill Diff - int32 attackerWeaponSkill = (spell->rangeIndex == SPELL_RANGE_IDX_COMBAT) ? int32(GetWeaponSkillValue(attType, pVictim)) : GetSkillMaxForLevel(); + int32 attackerWeaponSkill = (spell->rangeIndex == SPELL_RANGE_IDX_COMBAT || spell->EquippedItemClass == ITEM_CLASS_WEAPON) ? + int32(GetWeaponSkillValue(attType, pVictim)) : GetSkillMaxForLevel(); int32 skillDiff = attackerWeaponSkill - int32(pVictim->GetSkillMaxForLevel(this)); int32 fullSkillDiff = attackerWeaponSkill - int32(pVictim->GetDefenseSkillValue(this)); int32 minWeaponSkill = GetSkillMaxForLevel(pVictim) < attackerWeaponSkill ? GetSkillMaxForLevel(pVictim) : attackerWeaponSkill; From 755436251a249dcd70fac5dc013a07749ee7270f Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sat, 15 Jul 2023 20:51:54 +0100 Subject: [PATCH 106/426] Pool and Add Missing Dungeon Mining Nodes (#2072) --- sql/migrations/20230713165825_world.sql | 1138 +++++++++++++++++++++++ 1 file changed, 1138 insertions(+) create mode 100644 sql/migrations/20230713165825_world.sql diff --git a/sql/migrations/20230713165825_world.sql b/sql/migrations/20230713165825_world.sql new file mode 100644 index 00000000000..3ccf702d54f --- /dev/null +++ b/sql/migrations/20230713165825_world.sql @@ -0,0 +1,1138 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230713165825'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230713165825'); +-- Add your query below. + + +-- Dark Iron Deposit in BRD +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(130, 165658, 230, 1218.01, -381.236, -98.9694, 3.14159, 0, 0, -1, 0, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(130, 25622, 0, 'Dark Iron Ore', 0, 10); + +-- Dark Iron Deposits in Molten Core +DELETE FROM `gameobject` WHERE `guid` IN (232213, 232214, 232215, 232216, 232217, 232218, 43157, 43158, 43159, 43160, 43161, 232212, 43725, 43690, 43720, 43713); +DELETE FROM `pool_gameobject` WHERE `guid` IN (232213, 232214, 232215, 232216, 232217, 232218, 43157, 43158, 43159, 43160, 43161, 232212, 43725, 43690, 43720, 43713); + +UPDATE `gameobject` SET `spawntimesecsmin` = 604800, `spawntimesecsmax` = 604800 WHERE `guid` IN (3998297, 361786, 35665, 43163, 43165, 234778); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(881, 165658, 409, 1082.8, -833.75, -147.884, 1.85005, 0, 0, 0.798635, 0.601815, 604800, 604800, 100, 1, 0, 0, 0, 10), +(882, 165658, 409, 796.259, -513.453, -210.408, 0.767944, 0, 0, 0.374606, 0.927184, 604800, 604800, 100, 1, 0, 0, 0, 10), +(883, 165658, 409, 646.1, -865.918, -208.326, 4.10153, 0, 0, -0.887011, 0.461749, 604800, 604800, 100, 1, 0, 0, 0, 10), +(884, 165658, 409, 674.777, -1117.28, -154.07, 4.57276, 0, 0, -0.754709, 0.656059, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(881, 25609, 0, 'Dark Iron Ore', 0, 10), +(882, 25609, 0, 'Dark Iron Ore', 0, 10), +(883, 25609, 0, 'Dark Iron Ore', 0, 10), +(884, 25609, 0, 'Dark Iron Ore', 0, 10); + +-- Missing Gold Veins in Badlands +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(1895, 1734, 0, -7118.27, -3161.17, 248.919, 2.35619, 0, 0, 0.92388, 0.382683, 300, 300, 100, 1, 0, 0, 0, 10), +(1896, 1734, 0, -6880.82, -4142.43, 279.195, 5.09636, 0, 0, -0.559193, 0.829038, 300, 300, 100, 1, 0, 0, 0, 10), +(1897, 1734, 0, -6443.14, -4063.54, 275.157, 3.68265, 0, 0, -0.96363, 0.267241, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(1895, 2186, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Badlands', 0, 10), +(1896, 2197, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Badlands', 0, 10), +(1897, 2212, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Badlands', 0, 10); + +UPDATE `pool_template` SET `description`='Gold Vein / Mithril Deposit / Truesilver Deposit - Badlands' WHERE `entry` IN (2186, 2197, 2212); +UPDATE `pool_gameobject` SET `description`='Gold Vein / Mithril Deposit / Truesilver Deposit - Badlands' WHERE `guid` IN (25142, 25196, 25153, 25207, 25168, 25222); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `guid`=1895; +UPDATE `pool_gameobject` SET `chance` = 60 WHERE `guid`=25142; +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `guid`=1896; +UPDATE `pool_gameobject` SET `chance` = 60 WHERE `guid`=25153; +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `guid`=1897; +UPDATE `pool_gameobject` SET `chance` = 60 WHERE `guid`=25168; + +-- Gold Vein in Stonetalon +UPDATE `gameobject` SET position_x = 2450.95, position_y = 1559.48, position_z = 277.567, orientation = 2.86234, rotation2 = 0.990268, rotation3 = 0.139175 WHERE guid IN (27301, 27255); +UPDATE `gameobject` SET `id` = 1734 WHERE `guid` = 27301; + +-- Gold Vein / Mithril Deposit in Desolace +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(1898, 1734, 1, -1914.5, 2069.99, 71.4208, 2.65289, 0, 0, 0.970295, 0.241925, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(2761, 1, 'Gold Vein / Mithril Deposit - Desolace', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(1898, 2761, 'Gold Vein / Mithril Deposit - Desolace', 10); + +UPDATE `pool_gameobject` SET `pool_entry` = 2761,`description` = 'Gold Vein / Mithril Deposit - Desolace' WHERE `guid`=7153; + +-- Indurium Mineral Vein +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(21110, 19903, 70, -248.926, 220.846, -46.6074, 5.89921, 0, 0, -0.190808, 0.981627, 604800, 604800, 100, 1, 0, 0, 0, 10), +(21111, 19903, 70, -89.2856, 190.29, -48.1824, 2.67035, 0, 0, 0.972369, 0.233448, 604800, 604800, 100, 1, 0, 0, 0, 10), +(21112, 19903, 70, -52.2933, 271.083, -46.7186, 5.60251, 0, 0, -0.333807, 0.942641, 604800, 604800, 100, 1, 0, 0, 0, 10), +(21113, 19903, 70, -7.04951, 401.135, -46.453, 6.00393, 0, 0, -0.139173, 0.990268, 604800, 604800, 100, 1, 0, 0, 0, 10), +(21114, 19903, 70, 37.8897, 214.677, -30.5547, 6.21337, 0, 0, -0.0348988, 0.999391, 604800, 604800, 100, 1, 0, 0, 0, 10), +(21115, 19903, 70, -133.767, 358.587, -42.5509, 4.13643, 0, 0, -0.878817, 0.47716, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(21601, 6, 'Indurium Mineral Vein - Uldaman', 10); + +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(19903, 21601, 'Indurium Mineral Vein - Uldaman'); + +-- Uldaman +SET @OGUID = 21799; +SET @PTEMPLATE = 2995; + +DELETE FROM `gameobject` WHERE `guid` IN (33279, 33278, 25456, 33281, 33280); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 1734, 70, -60.9316, 199.971, -47.0473, 4.39823, 0, 0, -0.809016, 0.587786, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 1734, 70, -258.41, 252.235, -49.326, 6.10865, 0, 0, -0.0871553, 0.996195, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 1734, 70, -143.264, 251.363, -47.2695, 6.19592, 0, 0, -0.0436192, 0.999048, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 1734, 70, -179.772, 95.0592, -48.8041, 2.77507, 0, 0, 0.983254, 0.182238, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 1734, 70, -0.98445, 400.035, -45.7788, 2.80998, 0, 0, 0.986285, 0.16505, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 1734, 70, 70.1268, 443.334, -41.0286, 0.331611, 0, 0, 0.165047, 0.986286, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 1734, 70, -136.19, 281.179, -52.1819, 2.68781, 0, 0, 0.97437, 0.224951, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 1734, 70, -259.822, 272.068, -50.1133, 5.61996, 0, 0, -0.325567, 0.945519, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 1734, 70, -86.6632, 340.499, -48.0877, 5.55015, 0, 0, -0.358368, 0.93358, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 1734, 70, 26.3165, 209.089, -29.7314, 2.68781, 0, 0, 0.97437, 0.224951, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 1734, 70, -360.646, 141.757, -48.4138, 6.10865, 0, 0, -0.0871553, 0.996195, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 1734, 70, -23.9125, 326.636, -44.5684, -1.97222, 0, 0, 0.833886, -0.551937, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 1735, 70, -60.9316, 199.971, -47.0473, 4.39823, 0, 0, -0.809016, 0.587786, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 1735, 70, -258.41, 252.235, -49.326, 6.10865, 0, 0, -0.0871553, 0.996195, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 1735, 70, -143.264, 251.363, -47.2695, 6.19592, 0, 0, -0.0436192, 0.999048, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 1735, 70, -179.772, 95.0592, -48.8041, 2.77507, 0, 0, 0.983254, 0.182238, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 1735, 70, -0.98445, 400.035, -45.7788, 2.80998, 0, 0, 0.986285, 0.16505, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 1735, 70, 70.1268, 443.334, -41.0286, 0.331611, 0, 0, 0.165047, 0.986286, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 1735, 70, -136.19, 281.179, -52.1819, 2.68781, 0, 0, 0.97437, 0.224951, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 1735, 70, -259.822, 272.068, -50.1133, 5.61996, 0, 0, -0.325567, 0.945519, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 1735, 70, -86.6632, 340.499, -48.0877, 5.55015, 0, 0, -0.358368, 0.93358, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 1735, 70, 26.3165, 209.089, -29.7314, 2.68781, 0, 0, 0.97437, 0.224951, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 1735, 70, -360.646, 141.757, -48.4138, 6.10865, 0, 0, -0.0871553, 0.996195, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 1735, 70, -23.9125, 326.636, -44.5684, -1.97222, 0, 0, 0.833886, -0.551937, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 2040, 70, -60.9316, 199.971, -47.0473, 4.39823, 0, 0, -0.809016, 0.587786, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 2040, 70, -258.41, 252.235, -49.326, 6.10865, 0, 0, -0.0871553, 0.996195, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 2040, 70, -143.264, 251.363, -47.2695, 6.19592, 0, 0, -0.0436192, 0.999048, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 2040, 70, -179.772, 95.0592, -48.8041, 2.77507, 0, 0, 0.983254, 0.182238, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 2040, 70, -0.98445, 400.035, -45.7788, 2.80998, 0, 0, 0.986285, 0.16505, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 2040, 70, 70.1268, 443.334, -41.0286, 0.331611, 0, 0, 0.165047, 0.986286, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 2040, 70, -136.19, 281.179, -52.1819, 2.68781, 0, 0, 0.97437, 0.224951, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 2040, 70, -259.822, 272.068, -50.1133, 5.61996, 0, 0, -0.325567, 0.945519, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 2040, 70, -86.6632, 340.499, -48.0877, 5.55015, 0, 0, -0.358368, 0.93358, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 2040, 70, 26.3165, 209.089, -29.7314, 2.68781, 0, 0, 0.97437, 0.224951, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 2040, 70, -360.646, 141.757, -48.4138, 6.10865, 0, 0, -0.0871553, 0.996195, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 2040, 70, -23.9125, 326.636, -44.5684, -1.97222, 0, 0, 0.833886, -0.551937, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@PTEMPLATE+2, 1, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@PTEMPLATE+3, 1, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@PTEMPLATE+4, 1, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@PTEMPLATE+5, 1, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@PTEMPLATE+6, 1, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@PTEMPLATE+7, 1, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@PTEMPLATE+8, 1, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@PTEMPLATE+9, 1, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@PTEMPLATE+10, 1, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@PTEMPLATE+11, 1, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@PTEMPLATE+12, 1, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+13, @PTEMPLATE+1, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+14, @PTEMPLATE+2, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+15, @PTEMPLATE+3, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+16, @PTEMPLATE+4, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+17, @PTEMPLATE+5, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+18, @PTEMPLATE+6, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+19, @PTEMPLATE+7, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+20, @PTEMPLATE+8, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+21, @PTEMPLATE+9, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+22, @PTEMPLATE+10, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+23, @PTEMPLATE+11, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+24, @PTEMPLATE+12, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+25, @PTEMPLATE+1, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+26, @PTEMPLATE+2, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+27, @PTEMPLATE+3, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+28, @PTEMPLATE+4, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+29, @PTEMPLATE+5, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+30, @PTEMPLATE+6, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+31, @PTEMPLATE+7, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+32, @PTEMPLATE+8, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+33, @PTEMPLATE+9, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+34, @PTEMPLATE+10, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+35, @PTEMPLATE+11, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10), +(@OGUID+36, @PTEMPLATE+12, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+13, 4, 'Uldaman - Gold Vein / Iron Deposit / Mithril Deposit (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0), +(@PTEMPLATE+2, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0), +(@PTEMPLATE+3, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0), +(@PTEMPLATE+4, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0), +(@PTEMPLATE+5, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0), +(@PTEMPLATE+6, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0), +(@PTEMPLATE+7, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0), +(@PTEMPLATE+8, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0), +(@PTEMPLATE+9, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0), +(@PTEMPLATE+10, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0), +(@PTEMPLATE+11, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0), +(@PTEMPLATE+12, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit / Mithril Deposit - Uldaman', 0); + +-- Mara +SET @OGUID = 39057; +SET @PTEMPLATE = 3501; +DELETE FROM `gameobject` WHERE `guid` IN (32928, 32922, 32921, 32918, 32900, 25459, 25460, 25461, 25462, 25463); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 1734, 349, -147.413, -407.847, -189.262, 0.942477, 0, 0, 0.45399, 0.891007, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 1734, 349, -145.529, -386.491, -170.419, 3.33359, 0, 0, -0.995396, 0.0958512, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 1734, 349, -94.8945, -237.793, -170.419, 3.94445, 0, 0, -0.920505, 0.390732, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 1734, 349, -93.9523, -311.759, -170.417, 1.23918, 0, 0, 0.580703, 0.814116, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 1734, 349, 10.7415, -143.591, -207.688, 3.38594, 0, 0, -0.992546, 0.12187, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 1734, 349, 103.565, -257.051, -167.439, 3.80482, 0, 0, -0.945518, 0.325568, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 1734, 349, 141.178, -391.741, -175.001, 4.7822, 0, 0, -0.681998, 0.731354, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 1734, 349, 197.139, -91.757, -129.589, 4.71239, 0, 0, -0.707107, 0.707107, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 1734, 349, 225.88, -381.777, -160.314, 5.75959, 0, 0, -0.258819, 0.965926, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 1734, 349, 267.057, -324.909, -139.608, 0.314158, 0, 0, 0.156434, 0.987688, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 1734, 349, 289.052, 50.4382, -131.01, 4.62512, 0, 0, -0.737277, 0.675591, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 1734, 349, 291.651, -49.0027, -130.93, 1.5708, 0, 0, 0.707107, 0.707107, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 1734, 349, 318.675, 13.3193, -130.733, 2.30383, 0, 0, 0.913545, 0.406738, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 1734, 349, 596.232, -209.992, -64.0246, 1.11701, 0, 0, 0.529919, 0.848048, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 1734, 349, 719.844, -389.394, -52.0194, 6.0912, 0, 0, -0.0958452, 0.995396, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 1734, 349, 755.744, -368.246, -61.4905, 5.8294, 0, 0, -0.224951, 0.97437, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 1734, 349, 814.429, -238.968, -74.3798, 1.51844, 0, 0, 0.688354, 0.725374, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 1734, 349, 934.78, -307.637, -49.4134, 2.56563, 0, 0, 0.958819, 0.284016, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 1734, 349, 943.325, -215.377, -46.5547, 4.17134, 0, 0, -0.870356, 0.492424, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 1734, 349, 1033.64, -258.465, -72.2216, 1.46608, 0, 0, 0.66913, 0.743145, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 1734, 349, 1045.67, -312.662, -38.0973, 0.436332, 0, 0, 0.216439, 0.976296, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 1734, 349, -157.535, -284.373, -170.383, 2.35619, 0, 0, 0.92388, 0.382683, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 1734, 349, 349.508, -405.274, -124.867, 1.71042, 0, 0, 0.75471, 0.656059, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 2040, 349, -147.413, -407.847, -189.262, 0.942477, 0, 0, 0.45399, 0.891007, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 2040, 349, -145.529, -386.491, -170.419, 3.33359, 0, 0, -0.995396, 0.0958512, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 2040, 349, -94.8945, -237.793, -170.419, 3.94445, 0, 0, -0.920505, 0.390732, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 2040, 349, -93.9523, -311.759, -170.417, 1.23918, 0, 0, 0.580703, 0.814116, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 2040, 349, 10.7415, -143.591, -207.688, 3.38594, 0, 0, -0.992546, 0.12187, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 2040, 349, 103.565, -257.051, -167.439, 3.80482, 0, 0, -0.945518, 0.325568, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 2040, 349, 141.178, -391.741, -175.001, 4.7822, 0, 0, -0.681998, 0.731354, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 2040, 349, 197.139, -91.757, -129.589, 4.71239, 0, 0, -0.707107, 0.707107, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 2040, 349, 225.88, -381.777, -160.314, 5.75959, 0, 0, -0.258819, 0.965926, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 2040, 349, 267.057, -324.909, -139.608, 0.314158, 0, 0, 0.156434, 0.987688, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 2040, 349, 289.052, 50.4382, -131.01, 4.62512, 0, 0, -0.737277, 0.675591, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 2040, 349, 291.651, -49.0027, -130.93, 1.5708, 0, 0, 0.707107, 0.707107, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 2040, 349, 318.675, 13.3193, -130.733, 2.30383, 0, 0, 0.913545, 0.406738, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 2040, 349, 596.232, -209.992, -64.0246, 1.11701, 0, 0, 0.529919, 0.848048, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 2040, 349, 719.844, -389.394, -52.0194, 6.0912, 0, 0, -0.0958452, 0.995396, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 2040, 349, 755.744, -368.246, -61.4905, 5.8294, 0, 0, -0.224951, 0.97437, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 2040, 349, 814.429, -238.968, -74.3798, 1.51844, 0, 0, 0.688354, 0.725374, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 2040, 349, 934.78, -307.637, -49.4134, 2.56563, 0, 0, 0.958819, 0.284016, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 2040, 349, 943.325, -215.377, -46.5547, 4.17134, 0, 0, -0.870356, 0.492424, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 2040, 349, 1033.64, -258.465, -72.2216, 1.46608, 0, 0, 0.66913, 0.743145, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 2040, 349, 1045.67, -312.662, -38.0973, 0.436332, 0, 0, 0.216439, 0.976296, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 2040, 349, -157.535, -284.373, -170.383, 2.35619, 0, 0, 0.92388, 0.382683, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 2040, 349, 349.508, -405.274, -124.867, 1.71042, 0, 0, 0.75471, 0.656059, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 2047, 349, -147.413, -407.847, -189.262, 0.942477, 0, 0, 0.45399, 0.891007, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 2047, 349, -145.529, -386.491, -170.419, 3.33359, 0, 0, -0.995396, 0.0958512, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 2047, 349, -94.8945, -237.793, -170.419, 3.94445, 0, 0, -0.920505, 0.390732, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 2047, 349, -93.9523, -311.759, -170.417, 1.23918, 0, 0, 0.580703, 0.814116, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 2047, 349, 10.7415, -143.591, -207.688, 3.38594, 0, 0, -0.992546, 0.12187, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 2047, 349, 103.565, -257.051, -167.439, 3.80482, 0, 0, -0.945518, 0.325568, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 2047, 349, 141.178, -391.741, -175.001, 4.7822, 0, 0, -0.681998, 0.731354, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 2047, 349, 197.139, -91.757, -129.589, 4.71239, 0, 0, -0.707107, 0.707107, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 2047, 349, 225.88, -381.777, -160.314, 5.75959, 0, 0, -0.258819, 0.965926, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 2047, 349, 267.057, -324.909, -139.608, 0.314158, 0, 0, 0.156434, 0.987688, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 2047, 349, 289.052, 50.4382, -131.01, 4.62512, 0, 0, -0.737277, 0.675591, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 2047, 349, 291.651, -49.0027, -130.93, 1.5708, 0, 0, 0.707107, 0.707107, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 2047, 349, 318.675, 13.3193, -130.733, 2.30383, 0, 0, 0.913545, 0.406738, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 2047, 349, 596.232, -209.992, -64.0246, 1.11701, 0, 0, 0.529919, 0.848048, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 2047, 349, 719.844, -389.394, -52.0194, 6.0912, 0, 0, -0.0958452, 0.995396, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 2047, 349, 755.744, -368.246, -61.4905, 5.8294, 0, 0, -0.224951, 0.97437, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 2047, 349, 814.429, -238.968, -74.3798, 1.51844, 0, 0, 0.688354, 0.725374, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 2047, 349, 934.78, -307.637, -49.4134, 2.56563, 0, 0, 0.958819, 0.284016, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 2047, 349, 943.325, -215.377, -46.5547, 4.17134, 0, 0, -0.870356, 0.492424, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 2047, 349, 1033.64, -258.465, -72.2216, 1.46608, 0, 0, 0.66913, 0.743145, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 2047, 349, 1045.67, -312.662, -38.0973, 0.436332, 0, 0, 0.216439, 0.976296, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 2047, 349, -157.535, -284.373, -170.383, 2.35619, 0, 0, 0.92388, 0.382683, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 2047, 349, 349.508, -405.274, -124.867, 1.71042, 0, 0, 0.75471, 0.656059, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+2, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+3, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+4, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+5, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+6, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+7, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+8, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+9, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+10, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+11, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+12, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+13, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+14, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+15, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+16, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+17, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+18, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+19, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+20, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+21, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+22, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@PTEMPLATE+23, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+24, @PTEMPLATE+1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+25, @PTEMPLATE+2, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+26, @PTEMPLATE+3, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+27, @PTEMPLATE+4, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+28, @PTEMPLATE+5, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+29, @PTEMPLATE+6, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+30, @PTEMPLATE+7, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+31, @PTEMPLATE+8, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+32, @PTEMPLATE+9, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+33, @PTEMPLATE+10, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+34, @PTEMPLATE+11, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+35, @PTEMPLATE+12, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+36, @PTEMPLATE+13, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+37, @PTEMPLATE+14, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+38, @PTEMPLATE+15, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+39, @PTEMPLATE+16, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+40, @PTEMPLATE+17, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+41, @PTEMPLATE+18, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+42, @PTEMPLATE+19, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+43, @PTEMPLATE+20, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+44, @PTEMPLATE+21, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+45, @PTEMPLATE+22, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+46, @PTEMPLATE+23, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+47, @PTEMPLATE+1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+48, @PTEMPLATE+2, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+49, @PTEMPLATE+3, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+50, @PTEMPLATE+4, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+51, @PTEMPLATE+5, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+52, @PTEMPLATE+6, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+53, @PTEMPLATE+7, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+54, @PTEMPLATE+8, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+55, @PTEMPLATE+9, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+56, @PTEMPLATE+10, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+57, @PTEMPLATE+11, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+58, @PTEMPLATE+12, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+59, @PTEMPLATE+13, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+60, @PTEMPLATE+14, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+61, @PTEMPLATE+15, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+62, @PTEMPLATE+16, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+63, @PTEMPLATE+17, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+64, @PTEMPLATE+18, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+65, @PTEMPLATE+19, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+66, @PTEMPLATE+20, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+67, @PTEMPLATE+21, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+68, @PTEMPLATE+22, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10), +(@OGUID+69, @PTEMPLATE+23, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+24, 10, 'Maraudon - Gold Vein / Mithril Deposit / Truesilver Deposit (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+2, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+3, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+4, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+5, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+6, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+7, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+8, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+9, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+10, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+11, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+12, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+13, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+14, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+15, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+16, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+17, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+18, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+19, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+20, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+21, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+22, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0), +(@PTEMPLATE+23, @PTEMPLATE+24, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Maraudon', 0); + +-- Garrison Armory +SET @OGUID = 50386; +SET @PTEMPLATE = 3941; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (28526, 28527, 28528, 28529, 28530, 28531, 28532, 28533, 28534, 28535, 28536, 28537, 28538, 28539, 28540, 28541, 28542, 28543, 28544, 28545, 28546, 28547, 28548, 28549, 28616, 28617, 28618, 28619, 28620, 28621, 28622, 28623, 28624, 28625)); +DELETE FROM `gameobject` WHERE `guid` IN (28526, 28527, 28528, 28529, 28530, 28531, 28532, 28533, 28534, 28535, 28536, 28537, 28538, 28539, 28540, 28541, 28542, 28543, 28544, 28545, 28546, 28547, 28548, 28549, 28616, 28617, 28618, 28619, 28620, 28621, 28622, 28623, 28624, 28625); +DELETE FROM `pool_gameobject` WHERE `guid` IN (28526, 28527, 28528, 28529, 28530, 28531, 28532, 28533, 28534, 28535, 28536, 28537, 28538, 28539, 28540, 28541, 28542, 28543, 28544, 28545, 28546, 28547, 28548, 28549, 28616, 28617, 28618, 28619, 28620, 28621, 28622, 28623, 28624, 28625); + +-- 150079 / 150080 +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 150079, 0, -10857.4, -3167.36, 47.1372, 0.331611, 0, 0, 0.165047, 0.986286, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 150079, 0, -10818.7, -3475.05, -21.4749, 5.65487, 0, 0, -0.309016, 0.951057, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 150079, 0, -10801.7, -3064.23, 45.8933, 0.802851, 0, 0, 0.390731, 0.920505, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 150079, 0, -10780.1, -3291.37, -10.1236, 3.78737, 0, 0, -0.948323, 0.317306, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 150079, 0, -10741.1, -3678.92, -10.5593, 3.71755, 0, 0, -0.958819, 0.284016, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 150079, 0, -10705.5, -3127.19, 29.0701, 4.34587, 0, 0, -0.824126, 0.566406, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 150079, 0, -10684.2, -3692.6, -11.4256, 0.349065, 0, 0, 0.173648, 0.984808, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 150079, 0, -10661.6, -3303.15, -9.63558, 4.60767, 0, 0, -0.743144, 0.669131, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 150079, 0, -10659, -3390.33, -12.6527, 1.37881, 0, 0, 0.636078, 0.771625, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 150079, 0, -10603.2, -3214.84, -2.70033, 2.87979, 0, 0, 0.991445, 0.130528, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 150079, 0, -10554.8, -3591.63, -13.6239, 3.03684, 0, 0, 0.998629, 0.0523532, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 150079, 0, -10530.1, -3547.74, -9.48959, 3.00195, 0, 0, 0.997563, 0.0697661, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 150079, 0, -10494.9, -3214.97, -1.79457, 1.46608, 0, 0, 0.66913, 0.743145, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 150079, 0, -10481.5, -3269.82, -4.87173, 0.0523589, 0, 0, 0.0261765, 0.999657, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 150080, 0, -10857.4, -3167.36, 47.1372, 0.331611, 0, 0, 0.165047, 0.986286, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 150080, 0, -10818.7, -3475.05, -21.4749, 5.65487, 0, 0, -0.309016, 0.951057, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 150080, 0, -10801.7, -3064.23, 45.8933, 0.802851, 0, 0, 0.390731, 0.920505, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 150080, 0, -10780.1, -3291.37, -10.1236, 3.78737, 0, 0, -0.948323, 0.317306, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 150080, 0, -10741.1, -3678.92, -10.5593, 3.71755, 0, 0, -0.958819, 0.284016, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 150080, 0, -10705.5, -3127.19, 29.0701, 4.34587, 0, 0, -0.824126, 0.566406, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 150080, 0, -10684.2, -3692.6, -11.4256, 0.349065, 0, 0, 0.173648, 0.984808, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 150080, 0, -10661.6, -3303.15, -9.63558, 4.60767, 0, 0, -0.743144, 0.669131, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 150080, 0, -10659, -3390.33, -12.6527, 1.37881, 0, 0, 0.636078, 0.771625, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 150080, 0, -10603.2, -3214.84, -2.70033, 2.87979, 0, 0, 0.991445, 0.130528, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 150080, 0, -10554.8, -3591.63, -13.6239, 3.03684, 0, 0, 0.998629, 0.0523532, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 150080, 0, -10530.1, -3547.74, -9.48959, 3.00195, 0, 0, 0.997563, 0.0697661, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 150080, 0, -10494.9, -3214.97, -1.79457, 1.46608, 0, 0, 0.66913, 0.743145, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 150080, 0, -10481.5, -3269.82, -4.87173, 0.0523589, 0, 0, 0.0261765, 0.999657, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+2, 1, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+3, 1, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+4, 1, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+5, 1, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+6, 1, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+7, 1, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+8, 1, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+9, 1, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+10, 1, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+11, 1, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+12, 1, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+13, 1, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+14, 1, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+15, @PTEMPLATE+1, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+16, @PTEMPLATE+2, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+17, @PTEMPLATE+3, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+18, @PTEMPLATE+4, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+19, @PTEMPLATE+5, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+20, @PTEMPLATE+6, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+21, @PTEMPLATE+7, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+22, @PTEMPLATE+8, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+23, @PTEMPLATE+9, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+24, @PTEMPLATE+10, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+25, @PTEMPLATE+11, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+26, @PTEMPLATE+12, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+27, @PTEMPLATE+13, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+28, @PTEMPLATE+14, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+15, 5, 'Blasted Lands - Garrison Armory - Gold Vein / Mithril Deposit (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+15, 0, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+2, @PTEMPLATE+15, 0, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+3, @PTEMPLATE+15, 0, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+4, @PTEMPLATE+15, 0, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+5, @PTEMPLATE+15, 0, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+6, @PTEMPLATE+15, 0, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+7, @PTEMPLATE+15, 0, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+8, @PTEMPLATE+15, 0, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+9, @PTEMPLATE+15, 0, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+10, @PTEMPLATE+15, 0, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+11, @PTEMPLATE+15, 0, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+12, @PTEMPLATE+15, 0, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+13, @PTEMPLATE+15, 0, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+14, @PTEMPLATE+15, 0, 'Gold Vein / Mithril Deposit - Blasted Lands - Garrison Armory', 0); + +SET @OGUID = 55299; +SET @PTEMPLATE = 4329; + +-- 150082 / 150081 +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 150081, 0, -10736.8, -3450.88, -15.9763, 0.59341, 0, 0, 0.292371, 0.956305, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 150081, 0, -10732.7, -3276.7, -10.6695, 5.72468, 0, 0, -0.275637, 0.961262, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 150081, 0, -10702.7, -3170.85, 24.7436, 5.02655, 0, 0, -0.587785, 0.809017, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 150081, 0, -10673.9, -3564.52, -33.5804, 4.93928, 0, 0, -0.622514, 0.782609, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 150081, 0, -10671.9, -3101.02, 21.8348, 3.03684, 0, 0, 0.998629, 0.0523532, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 150081, 0, -10619.1, -3383.08, -13.5731, 6.19592, 0, 0, -0.0436192, 0.999048, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 150081, 0, -10614.3, -3279.39, -6.62452, 3.71755, 0, 0, -0.958819, 0.284016, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 150081, 0, -10611.1, -3543.19, -7.88755, 1.88495, 0, 0, 0.809016, 0.587786, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 150081, 0, -10604.6, -3622.64, -12.7788, 5.044, 0, 0, -0.580703, 0.814116, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 150081, 0, -10594.3, -3199.24, 10.6181, 5.67232, 0, 0, -0.300705, 0.953717, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 150081, 0, -10557.8, -3255.34, 5.07344, 2.61799, 0, 0, 0.965925, 0.258821, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 150081, 0, -10552.4, -3171.3, 5.98372, 2.86234, 0, 0, 0.990268, 0.139175, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 150081, 0, -10550.4, -3393.96, -2.81507, 0.837757, 0, 0, 0.406736, 0.913546, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 150081, 0, -10544.9, -3499.9, -10.4198, 0.90757, 0, 0, 0.438371, 0.898794, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 150081, 0, -10708.4, -3630.8, -10.6296, 5.37562, 0, 0, -0.438371, 0.898794, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 150082, 0, -10736.8, -3450.88, -15.9763, 0.59341, 0, 0, 0.292371, 0.956305, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 150082, 0, -10732.7, -3276.7, -10.6695, 5.72468, 0, 0, -0.275637, 0.961262, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 150082, 0, -10702.7, -3170.85, 24.7436, 5.02655, 0, 0, -0.587785, 0.809017, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 150082, 0, -10673.9, -3564.52, -33.5804, 4.93928, 0, 0, -0.622514, 0.782609, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 150082, 0, -10671.9, -3101.02, 21.8348, 3.03684, 0, 0, 0.998629, 0.0523532, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 150082, 0, -10619.1, -3383.08, -13.5731, 6.19592, 0, 0, -0.0436192, 0.999048, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 150082, 0, -10614.3, -3279.39, -6.62452, 3.71755, 0, 0, -0.958819, 0.284016, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 150082, 0, -10611.1, -3543.19, -7.88755, 1.88495, 0, 0, 0.809016, 0.587786, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 150082, 0, -10604.6, -3622.64, -12.7788, 5.044, 0, 0, -0.580703, 0.814116, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 150082, 0, -10594.3, -3199.24, 10.6181, 5.67232, 0, 0, -0.300705, 0.953717, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 150082, 0, -10557.8, -3255.34, 5.07344, 2.61799, 0, 0, 0.965925, 0.258821, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 150082, 0, -10552.4, -3171.3, 5.98372, 2.86234, 0, 0, 0.990268, 0.139175, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 150082, 0, -10550.4, -3393.96, -2.81507, 0.837757, 0, 0, 0.406736, 0.913546, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 150082, 0, -10544.9, -3499.9, -10.4198, 0.90757, 0, 0, 0.438371, 0.898794, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 150082, 0, -10708.4, -3630.8, -10.6296, 5.37562, 0, 0, -0.438371, 0.898794, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+2, 1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+3, 1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+4, 1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+5, 1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+6, 1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+7, 1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+8, 1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+9, 1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+10, 1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+11, 1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+12, 1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+13, 1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+14, 1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+15, 1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+16, @PTEMPLATE+1, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+17, @PTEMPLATE+2, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+18, @PTEMPLATE+3, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+19, @PTEMPLATE+4, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+20, @PTEMPLATE+5, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+21, @PTEMPLATE+6, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+22, @PTEMPLATE+7, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+23, @PTEMPLATE+8, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+24, @PTEMPLATE+9, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+25, @PTEMPLATE+10, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+26, @PTEMPLATE+11, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+27, @PTEMPLATE+12, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+28, @PTEMPLATE+13, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+29, @PTEMPLATE+14, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+30, @PTEMPLATE+15, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+16, 5, 'Blasted Lands - Garrison Armory - Truesilver Deposit / Small Thorium Vein (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+16, 0, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+2, @PTEMPLATE+16, 0, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+3, @PTEMPLATE+16, 0, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+4, @PTEMPLATE+16, 0, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+5, @PTEMPLATE+16, 0, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+6, @PTEMPLATE+16, 0, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+7, @PTEMPLATE+16, 0, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+8, @PTEMPLATE+16, 0, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+9, @PTEMPLATE+16, 0, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+10, @PTEMPLATE+16, 0, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+11, @PTEMPLATE+16, 0, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+12, @PTEMPLATE+16, 0, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+13, @PTEMPLATE+16, 0, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+14, @PTEMPLATE+16, 0, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+15, @PTEMPLATE+16, 0, 'Truesilver Deposit / Small Thorium Vein - Blasted Lands - Garrison Armory', 0); + +-- 150079 / 150080 / 150081 +SET @OGUID = 49352; +SET @PTEMPLATE = 4244; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 150079, 0, -10497.4, -3329.15, -4.38601, 1.01229, 0, 0, 0.484809, 0.87462, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 150079, 0, -10678, -3063.91, 19.3301, 1.16937, 0, 0, 0.551936, 0.833886, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 150079, 0, -10613, -3328.92, -7.07186, 4.36332, 0, 0, -0.819152, 0.573577, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 150079, 0, -10503.3, -3453.36, -14.0034, 4.62512, 0, 0, -0.737277, 0.675591, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 150079, 0, -10625, -3655, -15.6897, 3.64774, 0, 0, -0.968147, 0.250381, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 150080, 0, -10497.4, -3329.15, -4.38601, 1.01229, 0, 0, 0.484809, 0.87462, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 150080, 0, -10678, -3063.91, 19.3301, 1.16937, 0, 0, 0.551936, 0.833886, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 150080, 0, -10613, -3328.92, -7.07186, 4.36332, 0, 0, -0.819152, 0.573577, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 150080, 0, -10503.3, -3453.36, -14.0034, 4.62512, 0, 0, -0.737277, 0.675591, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 150080, 0, -10625, -3655, -15.6897, 3.64774, 0, 0, -0.968147, 0.250381, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 150081, 0, -10497.4, -3329.15, -4.38601, 1.01229, 0, 0, 0.484809, 0.87462, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 150081, 0, -10678, -3063.91, 19.3301, 1.16937, 0, 0, 0.551936, 0.833886, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 150081, 0, -10613, -3328.92, -7.07186, 4.36332, 0, 0, -0.819152, 0.573577, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 150081, 0, -10503.3, -3453.36, -14.0034, 4.62512, 0, 0, -0.737277, 0.675591, 300, 300, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 150081, 0, -10625, -3655, -15.6897, 3.64774, 0, 0, -0.968147, 0.250381, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+2, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+3, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+4, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@PTEMPLATE+5, 1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+6, @PTEMPLATE+1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+7, @PTEMPLATE+2, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+8, @PTEMPLATE+3, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+9, @PTEMPLATE+4, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+10, @PTEMPLATE+5, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+11, @PTEMPLATE+1, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+12, @PTEMPLATE+2, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+13, @PTEMPLATE+3, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+14, @PTEMPLATE+4, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10), +(@OGUID+15, @PTEMPLATE+5, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+6, 4, 'Blasted Lands - Garrison Armory - Gold Vein / Mithril Deposit / Truesilver Deposit (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+6, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+2, @PTEMPLATE+6, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+3, @PTEMPLATE+6, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+4, @PTEMPLATE+6, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0), +(@PTEMPLATE+5, @PTEMPLATE+6, 0, 'Gold Vein / Mithril Deposit / Truesilver Deposit - Blasted Lands - Garrison Armory', 0); + +-- Hakkari Thorium Vein +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(48962, 180215, 309, -11599, -1217.44, 80.3655, 1.72787, 0, 0, 0.760406, 0.649449, 180, 604800, 604800, 1, 0, 0, 0, 10), +(48963, 180215, 309, -11647.4, -1476.96, 50.3857, 4.31097, 0, 0, -0.833885, 0.551938, 180, 604800, 604800, 1, 0, 0, 0, 10), +(48964, 180215, 309, -12310.1, -1465.36, 130.6, 3.9619, 0, 0, -0.91706, 0.39875, 180, 604800, 604800, 1, 0, 0, 0, 10), +(48965, 180215, 309, -12398.2, -1934.43, 133.233, 0.733038, 0, 0, 0.358368, 0.93358, 180, 604800, 604800, 1, 0, 0, 0, 10), +(48966, 180215, 309, -11549.5, -1489.06, 73.2133, 3.71755, 0, 0, -0.958819, 0.284016, 180, 604800, 604800, 1, 0, 0, 0, 10), +(48967, 180215, 309, -12177.3, -1910.15, 130.807, 1.93731, 0, 0, 0.824125, 0.566408, 180, 604800, 604800, 1, 0, 0, 0, 10), +(48968, 180215, 309, -11803.5, -1905.71, 52.927, 2.54818, 0, 0, 0.956305, 0.292372, 180, 604800, 604800, 1, 0, 0, 0, 10), +(48969, 180215, 309, -12063.5, -1437.4, 130.23, 1.25664, 0, 0, 0.587785, 0.809017, 180, 604800, 604800, 1, 0, 0, 0, 10), +(48970, 180215, 309, -11546.4, -1745.06, 40.1541, 1.3439, 0, 0, 0.622514, 0.782609, 180, 604800, 604800, 1, 0, 0, 0, 10), +(48971, 180215, 309, -11994.2, -1458.62, 83.1144, 5.044, 0, 0, -0.580703, 0.814116, 180, 604800, 604800, 1, 0, 0, 0, 10), +(48972, 180215, 309, -11545.6, -1237.46, 79.2193, 2.37364, 0, 0, 0.927183, 0.374608, 180, 604800, 604800, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(21401, 5, 'Zul\'Gurub - Hakkari Thorium Vein', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(180215, 21401, 'Zul\'Gurub - Hakkari Thorium Vein'); + +-- Deadmines +SET @OGUID = 50300; +SET @PTEMPLATE = 4477; + +DELETE FROM `gameobject` WHERE `guid` IN (26186, 26187, 26199, 34847, 3996297, 3996298); + +-- tin / silver +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 1732, 36, -167.956, -411.293, 58.6313, 2.79252, 0, 0, 0.984807, 0.173652, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 1732, 36, -211.943, -518.46, 52.8603, 3.94445, 0, 0, -0.920505, 0.390732, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 1732, 36, -139.255, -567.673, 21.0111, 5.3058, 0, 0, -0.469471, 0.882948, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 1732, 36, -154.313, -393.34, 58.4521, 4.08407, 0, 0, -0.891006, 0.453991, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 1732, 36, -146.761, -519.81, 55.0914, 5.65487, 0, 0, -0.309016, 0.951057, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 1732, 36, -234.303, -491.65, 50.7398, 4.14472, 0, 0, 0.876833, -0.480796, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 1732, 36, -127.872, -444.354, 57.161, 0.349066, 0, 0, 0.173648, 0.984808, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 1733, 36, -167.956, -411.293, 58.6313, 2.79252, 0, 0, 0.984807, 0.173652, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 1733, 36, -211.943, -518.46, 52.8603, 3.94445, 0, 0, -0.920505, 0.390732, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 1733, 36, -139.255, -567.673, 21.0111, 5.3058, 0, 0, -0.469471, 0.882948, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 1733, 36, -154.313, -393.34, 58.4521, 4.08407, 0, 0, -0.891006, 0.453991, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 1733, 36, -146.761, -519.81, 55.0914, 5.65487, 0, 0, -0.309016, 0.951057, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 1733, 36, -234.303, -491.65, 50.7398, 4.14472, 0, 0, 0.876833, -0.480796, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 1733, 36, -127.872, -444.354, 57.161, 0.349066, 0, 0, 0.173648, 0.984808, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@PTEMPLATE+2, 1, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@PTEMPLATE+3, 1, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@PTEMPLATE+4, 1, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@PTEMPLATE+5, 1, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@PTEMPLATE+6, 1, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@PTEMPLATE+7, 1, 'Tin Vein / Silver Vein - Deadmines', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@OGUID+8, @PTEMPLATE+1, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@OGUID+9, @PTEMPLATE+2, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@OGUID+10, @PTEMPLATE+3, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@OGUID+11, @PTEMPLATE+4, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@OGUID+12, @PTEMPLATE+5, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@OGUID+13, @PTEMPLATE+6, 'Tin Vein / Silver Vein - Deadmines', 0, 10), +(@OGUID+14, @PTEMPLATE+7, 'Tin Vein / Silver Vein - Deadmines', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+8, 2, 'Deadmines - Tin Vein / Silver Vein (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+8, 0, 'Tin Vein / Silver Vein - Deadmines', 0), +(@PTEMPLATE+2, @PTEMPLATE+8, 0, 'Tin Vein / Silver Vein - Deadmines', 0), +(@PTEMPLATE+3, @PTEMPLATE+8, 0, 'Tin Vein / Silver Vein - Deadmines', 0), +(@PTEMPLATE+4, @PTEMPLATE+8, 0, 'Tin Vein / Silver Vein - Deadmines', 0), +(@PTEMPLATE+5, @PTEMPLATE+8, 0, 'Tin Vein / Silver Vein - Deadmines', 0), +(@PTEMPLATE+6, @PTEMPLATE+8, 0, 'Tin Vein / Silver Vein - Deadmines', 0), +(@PTEMPLATE+7, @PTEMPLATE+8, 0, 'Tin Vein / Silver Vein - Deadmines', 0); + +UPDATE `pool_gameobject` SET `chance` = 80 WHERE `description` = "Tin Vein / Silver Vein - Deadmines" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 1732); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Tin Vein / Silver Vein - Deadmines" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 1733); + +-- Copper +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+15, 1731, 36, -56.9023, -349.056, 57.4095, -1.06465, 0, 0, 0.507538, -0.861629, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 1731, 36, -281.444, -604.086, 52.2907, 5.28825, 0, 0, 0.477201, -0.878794, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 1731, 36, -81.0082, -394.329, 61.5258, 0.436332, 0, 0, 0.216439, 0.976296, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 1731, 36, -286.104, -577.582, 50.9829, 6.21337, 0, 0, -0.0348988, 0.999391, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 1731, 36, -75.6959, -407.331, 56.1338, 4.34587, 0, 0, -0.824126, 0.566406, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 1731, 36, -277.478, -572.826, 52.6279, 5.23599, 0, 0, -0.5, 0.866025, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+9, 3, 'Deadmines - Copper Vein', 0, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`) VALUES +(@OGUID+15, @PTEMPLATE+9, 'Deadmines - Copper Vein'), +(@OGUID+16, @PTEMPLATE+9, 'Deadmines - Copper Vein'), +(@OGUID+17, @PTEMPLATE+9, 'Deadmines - Copper Vein'), +(@OGUID+18, @PTEMPLATE+9, 'Deadmines - Copper Vein'), +(@OGUID+19, @PTEMPLATE+9, 'Deadmines - Copper Vein'), +(@OGUID+20, @PTEMPLATE+9, 'Deadmines - Copper Vein'); + +-- Wailing Caverns +SET @OGUID = 49226; +SET @PTEMPLATE = 4785; + +DELETE FROM `gameobject` WHERE `guid` IN (35596, 35599, 35626, 35631, 35632, 35650); + +-- tin / silver +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 1732, 43, -32.2606, 43.5227, -117.543, 2.26893, 0, 0, 0.906307, 0.422619, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 1732, 43, -122.103, -121.608, -64.2499, 0.90757, 0, 0, 0.438371, 0.898794, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 1732, 43, -60.6188, -19.1028, -58.7328, 4.60767, 0, 0, -0.743144, 0.669131, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 1732, 43, -183.977, -366.45, -70.6907, 2.77507, 0, 0, 0.983254, 0.182238, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 1732, 43, -89.4373, -314.586, -60.7897, 0.95993, 0, 0, 0.461748, 0.887011, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 1733, 43, -32.2606, 43.5227, -117.543, 2.26893, 0, 0, 0.906307, 0.422619, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 1733, 43, -122.103, -121.608, -64.2499, 0.90757, 0, 0, 0.438371, 0.898794, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 1733, 43, -60.6188, -19.1028, -58.7328, 4.60767, 0, 0, -0.743144, 0.669131, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 1733, 43, -183.977, -366.45, -70.6907, 2.77507, 0, 0, 0.983254, 0.182238, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 1733, 43, -89.4373, -314.586, -60.7897, 0.95993, 0, 0, 0.461748, 0.887011, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Tin Vein / Silver Vein - Wailing Caverns', 0, 10), +(@PTEMPLATE+2, 1, 'Tin Vein / Silver Vein - Wailing Caverns', 0, 10), +(@PTEMPLATE+3, 1, 'Tin Vein / Silver Vein - Wailing Caverns', 0, 10), +(@PTEMPLATE+4, 1, 'Tin Vein / Silver Vein - Wailing Caverns', 0, 10), +(@PTEMPLATE+5, 1, 'Tin Vein / Silver Vein - Wailing Caverns', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Tin Vein / Silver Vein - Wailing Caverns', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Tin Vein / Silver Vein - Wailing Caverns', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Tin Vein / Silver Vein - Wailing Caverns', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Tin Vein / Silver Vein - Wailing Caverns', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Tin Vein / Silver Vein - Wailing Caverns', 0, 10), +(@OGUID+6, @PTEMPLATE+1, 'Tin Vein / Silver Vein - Wailing Caverns', 0, 10), +(@OGUID+7, @PTEMPLATE+2, 'Tin Vein / Silver Vein - Wailing Caverns', 0, 10), +(@OGUID+8, @PTEMPLATE+3, 'Tin Vein / Silver Vein - Wailing Caverns', 0, 10), +(@OGUID+9, @PTEMPLATE+4, 'Tin Vein / Silver Vein - Wailing Caverns', 0, 10), +(@OGUID+10, @PTEMPLATE+5, 'Tin Vein / Silver Vein - Wailing Caverns', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+6, 2, 'Wailing Caverns - Tin Vein / Silver Vein (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+6, 0, 'Tin Vein / Silver Vein - Wailing Caverns', 0), +(@PTEMPLATE+2, @PTEMPLATE+6, 0, 'Tin Vein / Silver Vein - Wailing Caverns', 0), +(@PTEMPLATE+3, @PTEMPLATE+6, 0, 'Tin Vein / Silver Vein - Wailing Caverns', 0), +(@PTEMPLATE+4, @PTEMPLATE+6, 0, 'Tin Vein / Silver Vein - Wailing Caverns', 0), +(@PTEMPLATE+5, @PTEMPLATE+6, 0, 'Tin Vein / Silver Vein - Wailing Caverns', 0); + +UPDATE `pool_gameobject` SET `chance` = 80 WHERE `description` = "Tin Vein / Silver Vein - Wailing Caverns" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 1732); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Tin Vein / Silver Vein - Wailing Caverns" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 1733); + +-- copper +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+11, 1731, 43, -12.9076, 366.047, -59.3451, 5.84685, 0, 0, -0.216439, 0.976296, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 1731, 43, -179.484, -190.661, -60.6078, 5.11382, 0, 0, -0.551936, 0.833886, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 1731, 43, -7.34642, -91.6428, -63.41, 5.70723, 0, 0, -0.284015, 0.95882, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 1731, 43, 30.1493, -188.35, -85.0525, 5.68977, 0, 0, -0.292372, 0.956305, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 1731, 43, -87.6443, -136.019, -65.0488, 0.523598, 0, 0, 0.258819, 0.965926, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 1731, 43, -128.53, -217.217, -65.021, 0.226892, 0, 0, 0.113203, 0.993572, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 1731, 43, -161.053, 411.129, -72.5271, 3.01942, 0, 0, 0.998135, 0.061049, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+9, 3, 'Deadmines - Copper Vein', 0, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`) VALUES +(@OGUID+11, @PTEMPLATE+9, 'Wailing Caverns - Copper Vein'), +(@OGUID+12, @PTEMPLATE+9, 'Wailing Caverns - Copper Vein'), +(@OGUID+13, @PTEMPLATE+9, 'Wailing Caverns - Copper Vein'), +(@OGUID+14, @PTEMPLATE+9, 'Wailing Caverns - Copper Vein'), +(@OGUID+15, @PTEMPLATE+9, 'Wailing Caverns - Copper Vein'), +(@OGUID+16, @PTEMPLATE+9, 'Wailing Caverns - Copper Vein'), +(@OGUID+17, @PTEMPLATE+9, 'Wailing Caverns - Copper Vein'); + +UPDATE `gameobject` SET `id` = 1667 WHERE `guid`=118818; + +-- Razorfen Kraul +SET @OGUID = 47644; +SET @PTEMPLATE = 7110; + +DELETE FROM `gameobject` WHERE `guid` IN (35737, 35739, 35743, 35751); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 1734, 47, 2024.36, 1721.48, 61.2561, 0.628317, 0, 0, 0.309016, 0.951057, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 1734, 47, 2036.34, 1845.86, 56.4932, 5.16618, 0, 0, -0.529919, 0.848048, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 1734, 47, 2058.58, 1947.86, 61.6662, 1.69297, 0, 0, 0.748956, 0.66262, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 1734, 47, 2097.83, 1864.54, 52.5586, 0.680677, 0, 0, 0.333806, 0.942642, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 1734, 47, 2120.08, 1781.03, 49.4096, 1.29154, 0, 0, 0.601814, 0.798636, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 1734, 47, 2128.26, 2016.69, 65.9018, 5.70723, 0, 0, -0.284015, 0.95882, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 1734, 47, 2131.68, 1863.87, 55.9283, 0.122173, 0, 0, 0.0610485, 0.998135, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 1734, 47, 2137.69, 1906.08, 71.468, 3.22886, 0, 0, -0.999048, 0.0436193, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 1734, 47, 2166.68, 1998.86, 62.0029, 5.3058, 0, 0, -0.469471, 0.882948, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 1734, 47, 2170.38, 1883.72, 73.6948, 5.32326, 0, 0, -0.461748, 0.887011, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 1734, 47, 2175.92, 1714.05, 55.2663, -1.81514, 0, 0, 0.788011, -0.615661, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 1734, 47, 2128.49, 1922.27, 68.3568, -2.72271, 0, 0, 0.978148, -0.207912, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 1735, 47, 2024.36, 1721.48, 61.2561, 0.628317, 0, 0, 0.309016, 0.951057, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 1735, 47, 2036.34, 1845.86, 56.4932, 5.16618, 0, 0, -0.529919, 0.848048, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 1735, 47, 2058.58, 1947.86, 61.6662, 1.69297, 0, 0, 0.748956, 0.66262, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 1735, 47, 2097.83, 1864.54, 52.5586, 0.680677, 0, 0, 0.333806, 0.942642, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 1735, 47, 2120.08, 1781.03, 49.4096, 1.29154, 0, 0, 0.601814, 0.798636, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 1735, 47, 2128.26, 2016.69, 65.9018, 5.70723, 0, 0, -0.284015, 0.95882, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 1735, 47, 2131.68, 1863.87, 55.9283, 0.122173, 0, 0, 0.0610485, 0.998135, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 1735, 47, 2137.69, 1906.08, 71.468, 3.22886, 0, 0, -0.999048, 0.0436193, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 1735, 47, 2166.68, 1998.86, 62.0029, 5.3058, 0, 0, -0.469471, 0.882948, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 1735, 47, 2170.38, 1883.72, 73.6948, 5.32326, 0, 0, -0.461748, 0.887011, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 1735, 47, 2175.92, 1714.05, 55.2663, -1.81514, 0, 0, 0.788011, -0.615661, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 1735, 47, 2128.49, 1922.27, 68.3568, -2.72271, 0, 0, 0.978148, -0.207912, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 1733, 47, 2024.36, 1721.48, 61.2561, 0.628317, 0, 0, 0.309016, 0.951057, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 1733, 47, 2036.34, 1845.86, 56.4932, 5.16618, 0, 0, -0.529919, 0.848048, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 1733, 47, 2058.58, 1947.86, 61.6662, 1.69297, 0, 0, 0.748956, 0.66262, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 1733, 47, 2097.83, 1864.54, 52.5586, 0.680677, 0, 0, 0.333806, 0.942642, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 1733, 47, 2120.08, 1781.03, 49.4096, 1.29154, 0, 0, 0.601814, 0.798636, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 1733, 47, 2128.26, 2016.69, 65.9018, 5.70723, 0, 0, -0.284015, 0.95882, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 1733, 47, 2131.68, 1863.87, 55.9283, 0.122173, 0, 0, 0.0610485, 0.998135, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 1733, 47, 2137.69, 1906.08, 71.468, 3.22886, 0, 0, -0.999048, 0.0436193, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 1733, 47, 2166.68, 1998.86, 62.0029, 5.3058, 0, 0, -0.469471, 0.882948, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 1733, 47, 2170.38, 1883.72, 73.6948, 5.32326, 0, 0, -0.461748, 0.887011, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 1733, 47, 2175.92, 1714.05, 55.2663, -1.81514, 0, 0, 0.788011, -0.615661, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 1733, 47, 2128.49, 1922.27, 68.3568, -2.72271, 0, 0, 0.978148, -0.207912, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@PTEMPLATE+2, 1, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@PTEMPLATE+3, 1, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@PTEMPLATE+4, 1, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@PTEMPLATE+5, 1, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@PTEMPLATE+6, 1, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@PTEMPLATE+7, 1, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@PTEMPLATE+8, 1, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@PTEMPLATE+9, 1, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@PTEMPLATE+10, 1, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@PTEMPLATE+11, 1, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@PTEMPLATE+12, 1, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+13, @PTEMPLATE+1, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+14, @PTEMPLATE+2, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+15, @PTEMPLATE+3, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+16, @PTEMPLATE+4, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+17, @PTEMPLATE+5, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+18, @PTEMPLATE+6, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+19, @PTEMPLATE+7, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+20, @PTEMPLATE+8, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+21, @PTEMPLATE+9, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+22, @PTEMPLATE+10, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+23, @PTEMPLATE+11, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+24, @PTEMPLATE+12, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+25, @PTEMPLATE+1, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+26, @PTEMPLATE+2, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+27, @PTEMPLATE+3, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+28, @PTEMPLATE+4, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+29, @PTEMPLATE+5, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+30, @PTEMPLATE+6, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+31, @PTEMPLATE+7, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+32, @PTEMPLATE+8, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+33, @PTEMPLATE+9, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+34, @PTEMPLATE+10, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+35, @PTEMPLATE+11, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10), +(@OGUID+36, @PTEMPLATE+12, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+13, 5, 'Razorfen Kraul - Gold Vein / Iron Deposit (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0), +(@PTEMPLATE+2, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0), +(@PTEMPLATE+3, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0), +(@PTEMPLATE+4, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0), +(@PTEMPLATE+5, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0), +(@PTEMPLATE+6, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0), +(@PTEMPLATE+7, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0), +(@PTEMPLATE+8, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0), +(@PTEMPLATE+9, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0), +(@PTEMPLATE+10, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0), +(@PTEMPLATE+11, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0), +(@PTEMPLATE+12, @PTEMPLATE+13, 0, 'Gold Vein / Iron Deposit - Razorfen Kraul', 0); + +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Gold Vein / Iron Deposit - Razorfen Kraul" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 1733); +UPDATE `pool_gameobject` SET `chance` = 20 WHERE `description` = "Gold Vein / Iron Deposit - Razorfen Kraul" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 1734); +UPDATE `pool_gameobject` SET `chance` = 60 WHERE `description` = "Gold Vein / Iron Deposit - Razorfen Kraul" && `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 1735); + +UPDATE `gameobject` SET `id` = 2040 WHERE `guid` = 27656; + +-- Missing Silver Veins in Duskwood +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(2225, 1733, 0, -11010, -989.044, 69.0113, 4.93928, 0, 0, -0.622514, 0.782609, 300, 300, 100, 1, 0, 0, 0, 10), +(2226, 1733, 0, -10678.7, -908.818, 68.4815, 2.65289, 0, 0, 0.970295, 0.241925, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(2225, 2557, 0, 'Silver Vein / Gold Vein / Iron Deposit - Duskwood', 0, 10), +(2226, 2558, 0, 'Silver Vein / Gold Vein / Iron Deposit - Duskwood', 0, 10); + +UPDATE `pool_template` SET `description`='Silver Vein / Gold Vein / Iron Deposit - Duskwood' WHERE `entry` IN (2557, 2558); +UPDATE `pool_gameobject` SET `description`='Silver Vein / Gold Vein / Iron Deposit - Duskwood' WHERE `guid` IN (25273, 25255, 25272, 25254); +UPDATE `pool_gameobject` SET `chance`= 20 WHERE `guid`=2225; +UPDATE `pool_gameobject` SET `chance`= 70 WHERE `guid`=25272; +UPDATE `pool_gameobject` SET `chance`= 20 WHERE `guid`=2226; +UPDATE `pool_gameobject` SET `chance`= 70 WHERE `guid`=25273; + +-- Tin Vein / Silver Vein in Alterac Mountains +DELETE FROM `pool_gameobject` WHERE `guid` = 31522; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(2405, 1732, 0, -19.4989, -33.674, 106.887, 5.3058, 0, 0, -0.469471, 0.882948, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(18870, 1, 'Tin Vein / Silver Vein - Alterac Mountains', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(2405, 18870, 'Tin Vein / Silver Vein - Alterac Mountains', 10), +(31522, 18870, 'Tin Vein / Silver Vein - Alterac Mountains', 10); + +UPDATE `pool_gameobject` SET `description`='Tin Vein / Silver Vein / Iron Deposit - Alterac Mountains' WHERE `guid`=31522; + +-- Tin Vein / Silver Vein / Iron Deposit in Alterac Mountains +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(2406, 1732, 0, -16.5498, 463.366, 53.6286, 5.11382, 0, 0, -0.551936, 0.833886, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(2406, 2915, 'Tin Vein / Silver Vein / Iron Deposit - Alterac Mountains', 10); + +UPDATE `pool_gameobject` SET `description`='Tin Vein / Silver Vein / Iron Deposit - Alterac Mountains' WHERE `guid`=31523; +UPDATE `pool_gameobject` SET `description`='Tin Vein / Silver Vein / Iron Deposit - Alterac Mountains' WHERE `guid`=396411; + +-- Tin Vein / Silver Vein / Iron Deposit in Alterac Mountains +DELETE FROM `pool_gameobject` WHERE `guid` = 220422; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(2407, 1732, 0, -254.604, 379.709, 121.872, 6.23083, 0, 0, -0.0261765, 0.999657, 300, 300, 100, 1, 0, 0, 0, 10), +(2408, 1733, 0, -254.604, 379.709, 121.872, 6.23083, 0, 0, -0.0261765, 0.999657, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(18871, 1, 'Tin Vein / Silver Vein / Iron Deposit - Alterac Mountains', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(2407, 18871, 'Tin Vein / Silver Vein / Iron Deposit - Alterac Mountains', 10), +(2408, 18871, 'Tin Vein / Silver Vein / Iron Deposit - Alterac Mountains', 10), +(220422, 18871, 'Tin Vein / Silver Vein / Iron Deposit - Alterac Mountains', 10); + +UPDATE `pool_gameobject` SET `description`='Tin Vein / Silver Vein / Iron Deposit - Alterac Mountains' WHERE `guid`=220422; + +-- Weapon Crate / Armor Crate 3702 / 3689 in Blackfathom Deeps +DELETE FROM `gameobject` WHERE `guid` IN (566018, 253179, 440644, 272873, 44686, 96, 32624, 2556); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(566018, 3689, 48, -295.378, 316.711, -52.3953, 2.23402, 0, 0, 0.898793, 0.438373, 604800, 604800, 100, 1, 0, 0, 0, 10), +(253179, 3689, 48, -614.864, 252.745, -49.4881, 4.81711, 0, 0, -0.66913, 0.743145, 604800, 604800, 100, 1, 0, 0, 0, 10), +(440644, 3702, 48, -295.378, 316.711, -52.3953, 2.23402, 0, 0, 0.898793, 0.438373, 604800, 604800, 100, 1, 0, 0, 0, 10), +(272873, 3702, 48, -614.864, 252.745, -49.4881, 4.81711, 0, 0, -0.66913, 0.743145, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(8840, 1, 'Weapon Crate / Armor Crate - Blackfathom Deeps', 0, 10), +(8841, 1, 'Weapon Crate / Armor Crate - Blackfathom Deeps', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(566018, 8840, 'Weapon Crate / Armor Crate - Blackfathom Deeps', 0, 10), +(253179, 8841, 'Weapon Crate / Armor Crate - Blackfathom Deeps', 0, 10), +(440644, 8840, 'Weapon Crate / Armor Crate - Blackfathom Deeps', 0, 10), +(272873, 8841, 'Weapon Crate / Armor Crate - Blackfathom Deeps', 0, 10); + +-- Blackfathom Deeps +SET @OGUID = 2189; +SET @PTEMPLATE = 14267; + +DELETE FROM `gameobject` WHERE `guid` IN (32623, 32621, 32612, 25455); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 1732, 48, -479.657, 295.416, -64.3415, 4.88692, 0, 0, -0.642787, 0.766045, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 1732, 48, -401.418, 46.9318, -47.7134, 2.26893, 0, 0, 0.906307, 0.422619, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 1732, 48, -351.981, 402.932, -53.4195, 5.42797, 0, 0, -0.414693, 0.909961, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 1732, 48, -286.652, 324.114, -51.3902, 0.331611, 0, 0, 0.165047, 0.986286, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 1732, 48, -812.949, -144.779, -37.2873, 2.74016, 0, 0, 0.979924, 0.19937, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 1732, 48, -761.542, -166.294, -52.6799, 1.97222, 0, 0, 0.833885, 0.551938, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 1733, 48, -479.657, 295.416, -64.3415, 4.88692, 0, 0, -0.642787, 0.766045, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 1733, 48, -401.418, 46.9318, -47.7134, 2.26893, 0, 0, 0.906307, 0.422619, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 1733, 48, -351.981, 402.932, -53.4195, 5.42797, 0, 0, -0.414693, 0.909961, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 1733, 48, -286.652, 324.114, -51.3902, 0.331611, 0, 0, 0.165047, 0.986286, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 1733, 48, -812.949, -144.779, -37.2873, 2.74016, 0, 0, 0.979924, 0.19937, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 1733, 48, -761.542, -166.294, -52.6799, 1.97222, 0, 0, 0.833885, 0.551938, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10), +(@PTEMPLATE+2, 1, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10), +(@PTEMPLATE+3, 1, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10), +(@PTEMPLATE+4, 1, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10), +(@PTEMPLATE+5, 1, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10), +(@PTEMPLATE+6, 1, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10), +(@OGUID+7, @PTEMPLATE+1, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10), +(@OGUID+8, @PTEMPLATE+2, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10), +(@OGUID+9, @PTEMPLATE+3, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10), +(@OGUID+10, @PTEMPLATE+4, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10), +(@OGUID+11, @PTEMPLATE+5, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10), +(@OGUID+12, @PTEMPLATE+6, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+7, 4, 'Blackfathom Deeps - Tin Vein / Silver Vein (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+7, 0, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0), +(@PTEMPLATE+2, @PTEMPLATE+7, 0, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0), +(@PTEMPLATE+3, @PTEMPLATE+7, 0, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0), +(@PTEMPLATE+4, @PTEMPLATE+7, 0, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0), +(@PTEMPLATE+5, @PTEMPLATE+7, 0, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0), +(@PTEMPLATE+6, @PTEMPLATE+7, 0, 'Tin Vein / Silver Vein - Blackfathom Deeps', 0); + +-- Mithril / Truesilver in Alterac Mountains +DELETE FROM `pool_gameobject` WHERE `guid` = 220409; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(2220, 2047, 0, 690.51, -623.184, 166.421, 3.45576, 0, 0, -0.987688, 0.156436, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(9003, 1, 'Mithril Deposit / Truesilver Deposit - Alterac Mountains', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(2220, 9003, 'Mithril Deposit / Truesilver Deposit - Alterac Mountains', 10), +(220409, 9003, 'Mithril Deposit / Truesilver Deposit - Alterac Mountains', 10); + +-- Mithril / Truesilver in Desolace +DELETE FROM `pool_gameobject` WHERE `guid` = 7203; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(2221, 2047, 1, -1407.62, 2911.05, 93.9409, 2.74016, 0, 0, 0.979924, 0.19937, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(9004, 1, 'Mithril Deposit / Truesilver Deposit - Desolace', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(2221, 9004, 'Mithril Deposit / Truesilver Deposit - Desolace', 10), +(7203, 9004, 'Mithril Deposit / Truesilver Deposit - Desolace', 10); + +-- Mithril / Truesilver in Dustwallow +DELETE FROM `pool_gameobject` WHERE `guid` = 220840; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(2222, 2047, 1, -4464.97, -2882.58, 22.3767, 3.71755, 0, 0, -0.958819, 0.284016, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(9005, 1, 'Mithril Deposit / Truesilver Deposit - Dustwallow Marsh', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(2222, 9005, 'Mithril Deposit / Truesilver Deposit - Dustwallow Marsh', 10), +(220840, 9005, 'Mithril Deposit / Truesilver Deposit - Dustwallow Marsh', 10); + +-- Mithril / Truesilver in Dustwallow +DELETE FROM `pool_gameobject` WHERE `guid` = 220419; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(2223, 2047, 1, -2766.39, -2606.88, 34.2974, 5.41052, 0, 0, -0.422618, 0.906308, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(9006, 1, 'Mithril Deposit / Truesilver Deposit - Dustwallow Marsh', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(2223, 9006, 'Mithril Deposit / Truesilver Deposit - Dustwallow Marsh', 10), +(220419, 9006, 'Mithril Deposit / Truesilver Deposit - Dustwallow Marsh', 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From e78caa8a037460307519531b5a636d23c9a12ec1 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sat, 15 Jul 2023 20:55:24 +0100 Subject: [PATCH 107/426] Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep (#2073) --- sql/migrations/20230713185937_world.sql | 87 +++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 sql/migrations/20230713185937_world.sql diff --git a/sql/migrations/20230713185937_world.sql b/sql/migrations/20230713185937_world.sql new file mode 100644 index 00000000000..b91d4bd4735 --- /dev/null +++ b/sql/migrations/20230713185937_world.sql @@ -0,0 +1,87 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230713185937'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230713185937'); +-- Add your query below. + + +-- Shadowfang Keep / 75295 / 75298 / Large Iron Bound Chest / Large Solid Chest +SET @OGUID = 2988; +SET @PTEMPLATE = 2515; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (40662, 40660, 40665)); +DELETE FROM `gameobject` WHERE `guid` IN (40662, 40660, 40665); +DELETE FROM `pool_gameobject` WHERE `guid` IN (40662, 40660, 40665); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 75295, 33, -189.568, 2122.88, 97.3899, 1.39626, 0, 0, 0.642788, 0.766044, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 75295, 33, -107.226, 2168.85, 101.521, 3.03687, 0, 0, 0.921125, -0.389267, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 75295, 33, -255.201, 2166.04, 93.9366, 5.88176, 0, 0, -0.199368, 0.979925, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 75295, 33, -133.986, 2183.01, 113.132, 4.36332, 0, 0, -0.819152, 0.573577, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 75295, 33, -106.541, 2164.01, 101.52, 3.03684, 0, 0, 0.998629, 0.0523532, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 75295, 33, -236.728, 2299.61, 94.6765, 0.436332, 0, 0, 0.216439, 0.976296, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 75298, 33, -189.568, 2122.88, 97.3899, 1.39626, 0, 0, 0.642788, 0.766044, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 75298, 33, -107.226, 2168.85, 101.521, 3.03687, 0, 0, 0.921125, -0.389267, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 75298, 33, -255.201, 2166.04, 93.9366, 5.88176, 0, 0, -0.199368, 0.979925, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 75298, 33, -133.986, 2183.01, 113.132, 4.36332, 0, 0, -0.819152, 0.573577, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 75298, 33, -106.541, 2164.01, 101.52, 3.03684, 0, 0, 0.998629, 0.0523532, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 75298, 33, -236.728, 2299.61, 94.6765, 0.436332, 0, 0, 0.216439, 0.976296, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10), +(@PTEMPLATE+2, 1, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10), +(@PTEMPLATE+3, 1, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10), +(@PTEMPLATE+4, 1, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10), +(@PTEMPLATE+5, 1, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10), +(@PTEMPLATE+6, 1, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10), +(@OGUID+7, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10), +(@OGUID+8, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10), +(@OGUID+9, @PTEMPLATE+3, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10), +(@OGUID+10, @PTEMPLATE+4, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10), +(@OGUID+11, @PTEMPLATE+5, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10), +(@OGUID+12, @PTEMPLATE+6, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+7, 2, 'Shadowfang Keep - Large Iron Bound Chest / Large Solid Chest (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+7, 0, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0), +(@PTEMPLATE+2, @PTEMPLATE+7, 0, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0), +(@PTEMPLATE+3, @PTEMPLATE+7, 0, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0), +(@PTEMPLATE+4, @PTEMPLATE+7, 0, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0), +(@PTEMPLATE+5, @PTEMPLATE+7, 0, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0), +(@PTEMPLATE+6, @PTEMPLATE+7, 0, 'Large Iron Bound Chest / Large Solid Chest - Shadowfang Keep', 0); + +-- 75293 / Large Battered Chest +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+13, 75293, 33, -190.976, 2225.68, 79.7585, -1.23918, 0, 0, 0.580703, -0.814116, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 75293, 33, -178.815, 2252.85, 86.6049, 5.68977, 0, 0, -0.292372, 0.956305, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 75293, 33, -214.325, 2151.88, 81.1066, 2.3911, 0, 0, 0.930417, 0.366502, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 75293, 33, -191.652, 2161.52, 79.7475, 5.8294, 0, 0, -0.224951, 0.97437, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+8, 2, 'Shadowfang Keep - Large Battered Chest', 0, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`) VALUES +(@OGUID+13, @PTEMPLATE+8, 'Shadowfang Keep - Large Battered Chest'), +(@OGUID+14, @PTEMPLATE+8, 'Shadowfang Keep - Large Battered Chest'), +(@OGUID+15, @PTEMPLATE+8, 'Shadowfang Keep - Large Battered Chest'), +(@OGUID+16, @PTEMPLATE+8, 'Shadowfang Keep - Large Battered Chest'); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 82612692f0f05911109b39c1f3d8fc6787887ca5 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sat, 15 Jul 2023 20:59:26 +0100 Subject: [PATCH 108/426] Wailing Caverns / Deadmines - Large Battered Chest (#2074) --- sql/migrations/20230713194546_world.sql | 52 +++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 sql/migrations/20230713194546_world.sql diff --git a/sql/migrations/20230713194546_world.sql b/sql/migrations/20230713194546_world.sql new file mode 100644 index 00000000000..0baa11410b4 --- /dev/null +++ b/sql/migrations/20230713194546_world.sql @@ -0,0 +1,52 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230713194546'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230713194546'); +-- Add your query below. + + +-- The Deadmines / 75293 +DELETE FROM `pool_gameobject` WHERE `guid` IN (26198, 26210, 30538, 30540, 25445); +DELETE FROM `pool_template` WHERE `entry` = 1500; + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(253, 2, 'Deadmines - Large Battered Chest', 0, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`) VALUES +(26198, 253, 'Deadmines - Large Battered Chest'), +(26210, 253, 'Deadmines - Large Battered Chest'), +(30538, 253, 'Deadmines - Large Battered Chest'), +(30540, 253, 'Deadmines - Large Battered Chest'), +(25445, 253, 'Deadmines - Large Battered Chest'); + +-- Wailing Caverns / 75293 +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (31999, 35621, 35647, 35652, 25446)); +DELETE FROM `pool_gameobject` WHERE `guid` IN (31999, 35621, 35647, 35652, 25446); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(286, 75293, 43, -313.264, -235.066, -62.8271, 1.02974, 0, 0, 0.492423, 0.870356, 604800, 604800, 100, 1, 0, 0, 0, 10), +(287, 75293, 43, 1.16489, -44.9435, -65.5114, 1.18682, 0, 0, 0.559193, 0.829038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(288, 75293, 43, 29.6232, 531.781, -56.9991, 5.58505, 0, 0, -0.34202, 0.939693, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(254, 2, 'Wailing Caverns - Large Battered Chest', 0, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`) VALUES +(286, 254, 'Wailing Caverns - Large Battered Chest'), +(287, 254, 'Wailing Caverns - Large Battered Chest'), +(288, 254, 'Wailing Caverns - Large Battered Chest'), +(31999, 254, 'Wailing Caverns - Large Battered Chest'), +(35621, 254, 'Wailing Caverns - Large Battered Chest'), +(35647, 254, 'Wailing Caverns - Large Battered Chest'), +(35652, 254, 'Wailing Caverns - Large Battered Chest'), +(25446, 254, 'Wailing Caverns - Large Battered Chest'); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From cce4cdb50a4d8e37e37c1b7c2fb912db0d579e86 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sat, 15 Jul 2023 21:03:03 +0100 Subject: [PATCH 109/426] Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul (#2076) --- sql/migrations/20230714152456_world.sql | 60 +++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 sql/migrations/20230714152456_world.sql diff --git a/sql/migrations/20230714152456_world.sql b/sql/migrations/20230714152456_world.sql new file mode 100644 index 00000000000..3d5095cddd9 --- /dev/null +++ b/sql/migrations/20230714152456_world.sql @@ -0,0 +1,60 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230714152456'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230714152456'); +-- Add your query below. + + +-- Razorfen Kraul / 74447 / 74448 / Large Iron Bound Chest / Large Solid Chest +SET @OGUID = 353; +SET @PTEMPLATE = 2761; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (35705, 35721)); +DELETE FROM `gameobject` WHERE `guid` IN (35705, 35721); +DELETE FROM `pool_gameobject` WHERE `guid` IN (35705, 35721); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 74447, 47, 2111.45, 1613.83, 81.1889, -1.98968, 0, 0, 0.838671, -0.544639, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 74447, 47, 2199.22, 1654.65, 86.1542, -1.37881, 0, 0, 0.636078, -0.771625, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 74447, 47, 2127.73, 1607.64, 81.4757, 1.309, 0, 0, 0.608761, 0.793354, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 74447, 47, 2202.04, 1807.37, 64.3126, 2.14675, 0, 0, 0.878817, 0.47716, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 74448, 47, 2111.45, 1613.83, 81.1889, -1.98968, 0, 0, 0.838671, -0.544639, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 74448, 47, 2199.22, 1654.65, 86.1542, -1.37881, 0, 0, 0.636078, -0.771625, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 74448, 47, 2127.73, 1607.64, 81.4757, 1.309, 0, 0, 0.608761, 0.793354, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 74448, 47, 2202.04, 1807.37, 64.3126, 2.14675, 0, 0, 0.878817, 0.47716, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul', 0, 10), +(@PTEMPLATE+2, 1, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul', 0, 10), +(@PTEMPLATE+3, 1, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul', 0, 10), +(@PTEMPLATE+4, 1, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul', 0, 10), +(@OGUID+5, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul', 0, 10), +(@OGUID+6, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul', 0, 10), +(@OGUID+7, @PTEMPLATE+3, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul', 0, 10), +(@OGUID+8, @PTEMPLATE+4, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+5, 2, 'Razorfen Kraul - Large Iron Bound Chest / Large Solid Chest (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+5, 0, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul', 0), +(@PTEMPLATE+2, @PTEMPLATE+5, 0, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul', 0), +(@PTEMPLATE+3, @PTEMPLATE+5, 0, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul', 0), +(@PTEMPLATE+4, @PTEMPLATE+5, 0, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Kraul', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 36bf7c985357a75347932759e55edbdd7cc96eb2 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sat, 15 Jul 2023 21:07:06 +0100 Subject: [PATCH 110/426] Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps (#2077) --- sql/migrations/20230714152637_world.sql | 66 +++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 sql/migrations/20230714152637_world.sql diff --git a/sql/migrations/20230714152637_world.sql b/sql/migrations/20230714152637_world.sql new file mode 100644 index 00000000000..8f175bed443 --- /dev/null +++ b/sql/migrations/20230714152637_world.sql @@ -0,0 +1,66 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230714152637'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230714152637'); +-- Add your query below. + + +-- Blackfathom Deeps / 75295 / 75298 / Large Iron Bound Chest / Large Solid Chest +SET @OGUID = 2175; +SET @PTEMPLATE = 3525; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (32688, 32684, 25447)); +DELETE FROM `gameobject` WHERE `guid` IN (32688, 32684, 25447); +DELETE FROM `pool_gameobject` WHERE `guid` IN (32688, 32684, 25447); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 75295, 48, -743.061, -111.067, -30.0483, 1.48353, 0, 0, 0.67559, 0.737277, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 75295, 48, -466.738, -87.5996, -39.1289, 2.93214, 0, 0, 0.994521, 0.104536, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 75295, 48, -450.61, -38.0686, -31.7772, 3.08923, 0, 0, 0.999657, 0.026177, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 75295, 48, -517.169, 34.4384, -46.3221, 5.14872, 0, 0, -0.537299, 0.843392, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 75295, 48, -690.061, -48.8172, -30.0333, 2.26893, 0, 0, 0.906307, 0.422619, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 75298, 48, -743.061, -111.067, -30.0483, 1.48353, 0, 0, 0.67559, 0.737277, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 75298, 48, -466.738, -87.5996, -39.1289, 2.93214, 0, 0, 0.994521, 0.104536, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 75298, 48, -450.61, -38.0686, -31.7772, 3.08923, 0, 0, 0.999657, 0.026177, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 75298, 48, -517.169, 34.4384, -46.3221, 5.14872, 0, 0, -0.537299, 0.843392, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 75298, 48, -690.061, -48.8172, -30.0333, 2.26893, 0, 0, 0.906307, 0.422619, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0, 10), +(@PTEMPLATE+2, 1, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0, 10), +(@PTEMPLATE+3, 1, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0, 10), +(@PTEMPLATE+4, 1, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0, 10), +(@PTEMPLATE+5, 1, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0, 10), +(@OGUID+6, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0, 10), +(@OGUID+7, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0, 10), +(@OGUID+8, @PTEMPLATE+3, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0, 10), +(@OGUID+9, @PTEMPLATE+4, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0, 10), +(@OGUID+10, @PTEMPLATE+5, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+6, 2, 'Blackfathom Deeps - Large Iron Bound Chest / Large Solid Chest (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+6, 0, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0), +(@PTEMPLATE+2, @PTEMPLATE+6, 0, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0), +(@PTEMPLATE+3, @PTEMPLATE+6, 0, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0), +(@PTEMPLATE+4, @PTEMPLATE+6, 0, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0), +(@PTEMPLATE+5, @PTEMPLATE+6, 0, 'Large Iron Bound Chest / Large Solid Chest - Blackfathom Deeps', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From ee5202bcaf5dde4dfd5275fc1596f2e06ac74835 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sat, 15 Jul 2023 21:11:50 +0100 Subject: [PATCH 111/426] Large Mithril Bound Chest / Large Darkwood Chest (#2078) --- sql/migrations/20230714152803_world.sql | 48 +++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 sql/migrations/20230714152803_world.sql diff --git a/sql/migrations/20230714152803_world.sql b/sql/migrations/20230714152803_world.sql new file mode 100644 index 00000000000..450d793c866 --- /dev/null +++ b/sql/migrations/20230714152803_world.sql @@ -0,0 +1,48 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230714152803'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230714152803'); +-- Add your query below. + + +-- Uldaman / 131978 / 131979 / Large Mithril Bound Chest / Large Darkwood Chest +SET @OGUID = 884; +SET @PTEMPLATE = 3956; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (40692, 40693)); +DELETE FROM `gameobject` WHERE `guid` IN (40692, 40693); +DELETE FROM `pool_gameobject` WHERE `guid` IN (40692, 40693); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 131978, 70, -73.5079, 265.315, -47.6291, 2.82743, 0, 0, 0.987688, 0.156434, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 131978, 70, -150.166, 201.764, -49.9121, 3.29869, 0, 0, -0.996917, 0.0784664, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 131979, 70, -73.5079, 265.315, -47.6291, 2.82743, 0, 0, 0.987688, 0.156434, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 131979, 70, -150.166, 201.764, -49.9121, 3.29869, 0, 0, -0.996917, 0.0784664, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Large Mithril Bound Chest / Large Darkwood Chest - Uldaman', 0, 10), +(@PTEMPLATE+2, 1, 'Large Mithril Bound Chest / Large Darkwood Chest - Uldaman', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Large Mithril Bound Chest / Large Darkwood Chest - Uldaman', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Large Mithril Bound Chest / Large Darkwood Chest - Uldaman', 0, 10), +(@OGUID+3, @PTEMPLATE+1, 'Large Mithril Bound Chest / Large Darkwood Chest - Uldaman', 0, 10), +(@OGUID+4, @PTEMPLATE+2, 'Large Mithril Bound Chest / Large Darkwood Chest - Uldaman', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+3, 1, 'Uldaman - Large Mithril Bound Chest / Large Darkwood Chest (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+3, 0, 'Large Mithril Bound Chest / Large Darkwood Chest - Uldaman', 0), +(@PTEMPLATE+2, @PTEMPLATE+3, 0, 'Large Mithril Bound Chest / Large Darkwood Chest - Uldaman', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 8b8b7749e59930467f6b832cefd6b96a50cd834f Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sat, 15 Jul 2023 21:15:14 +0100 Subject: [PATCH 112/426] Large Iron Bound Chest / Large Solid Chest - Gnomeregan (#2079) --- sql/migrations/20230714152938_world.sql | 72 +++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 sql/migrations/20230714152938_world.sql diff --git a/sql/migrations/20230714152938_world.sql b/sql/migrations/20230714152938_world.sql new file mode 100644 index 00000000000..0b3595baabe --- /dev/null +++ b/sql/migrations/20230714152938_world.sql @@ -0,0 +1,72 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230714152938'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230714152938'); +-- Add your query below. + + +-- Gnomeregan / 74447 / 74448 / Large Iron Bound Chest / Large Solid Chest +SET @OGUID = 2941; +SET @PTEMPLATE = 2766; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (32422, 32399, 32440)); +DELETE FROM `gameobject` WHERE `guid` IN (32422, 32399, 32440); +DELETE FROM `pool_gameobject` WHERE `guid` IN (32422, 32399, 32440); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 74447, 90, -754.344, 364, -272.596, 2.80998, 0, 0, 0.986286, 0.165048, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 74447, 90, -630.556, 66.5022, -183.275, 2.75762, 0, 0, 0.981627, 0.190809, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 74447, 90, -440.175, 81.8185, -151.476, 1.25664, 0, 0, 0.587785, 0.809017, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 74447, 90, -830.873, 278.731, -272.596, 1.36136, 0, 0, 0.62932, 0.777146, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 74447, 90, -622.664, 51.5146, -199.646, 3.05433, 0, 0, 0.999048, 0.0436193, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 74447, 90, -622.582, 123.07, -199.646, 3.99681, 0, 0, -0.909961, 0.414694, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 74448, 90, -754.344, 364, -272.596, 2.80998, 0, 0, 0.986286, 0.165048, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 74448, 90, -630.556, 66.5022, -183.275, 2.75762, 0, 0, 0.981627, 0.190809, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 74448, 90, -440.175, 81.8185, -151.476, 1.25664, 0, 0, 0.587785, 0.809017, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 74448, 90, -830.873, 278.731, -272.596, 1.36136, 0, 0, 0.62932, 0.777146, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 74448, 90, -622.664, 51.5146, -199.646, 3.05433, 0, 0, 0.999048, 0.0436193, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 74448, 90, -622.582, 123.07, -199.646, 3.99681, 0, 0, -0.909961, 0.414694, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10), +(@PTEMPLATE+2, 1, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10), +(@PTEMPLATE+3, 1, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10), +(@PTEMPLATE+4, 1, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10), +(@PTEMPLATE+5, 1, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10), +(@PTEMPLATE+6, 1, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10), +(@OGUID+7, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10), +(@OGUID+8, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10), +(@OGUID+9, @PTEMPLATE+3, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10), +(@OGUID+10, @PTEMPLATE+4, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10), +(@OGUID+11, @PTEMPLATE+5, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10), +(@OGUID+12, @PTEMPLATE+6, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+7, 2, 'Gnomeregan - Iron Bound Chest / Large Solid Chest (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+7, 0, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0), +(@PTEMPLATE+2, @PTEMPLATE+7, 0, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0), +(@PTEMPLATE+3, @PTEMPLATE+7, 0, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0), +(@PTEMPLATE+4, @PTEMPLATE+7, 0, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0), +(@PTEMPLATE+5, @PTEMPLATE+7, 0, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0), +(@PTEMPLATE+6, @PTEMPLATE+7, 0, 'Large Iron Bound Chest / Large Solid Chest - Gnomeregan', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From ae382fa4ef97fcd8ab6d1f5765e5643800dd8e1e Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sat, 15 Jul 2023 21:20:27 +0100 Subject: [PATCH 113/426] Large Iron Bound Chest / Large Solid Chest - Razorfen Downs (#2080) --- sql/migrations/20230714153102_world.sql | 84 +++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 sql/migrations/20230714153102_world.sql diff --git a/sql/migrations/20230714153102_world.sql b/sql/migrations/20230714153102_world.sql new file mode 100644 index 00000000000..d2f8b40bd5b --- /dev/null +++ b/sql/migrations/20230714153102_world.sql @@ -0,0 +1,84 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230714153102'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230714153102'); +-- Add your query below. + + +-- Razorfen Downs / 75297 / 75300 / Large Iron Bound Chest / Large Solid Chest +SET @OGUID = 5834; +SET @PTEMPLATE = 254; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (32032, 35682)); +DELETE FROM `gameobject` WHERE `guid` IN (32032, 35682); +DELETE FROM `pool_gameobject` WHERE `guid` IN (32032, 35682); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 75297, 129, 2358.62, 966.718, 40.2895, 1.309, 0, 0, 0.608761, 0.793353, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 75297, 129, 2502.75, 944.867, 49.1772, -2.05949, 0, 0, 0.857167, -0.515038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 75297, 129, 2494.91, 859.182, 48.014, 1.09956, 0, 0, 0.522498, 0.85264, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 75297, 129, 2455.52, 956.494, 35.5014, 4.64258, 0, 0, -0.731354, 0.681998, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 75297, 129, 2482.92, 774.275, 46.1014, 4.76475, 0, 0, -0.688354, 0.725374, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 75297, 129, 2435.01, 995.961, 49.3044, 1.37881, 0, 0, 0.636078, 0.771625, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 75297, 129, 2418.72, 1030.88, 38.8304, 3.59538, 0, 0, -0.97437, 0.224951, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 75297, 129, 2541.91, 734.659, 53.7572, 2.1293, 0, 0, 0.874619, 0.48481, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 75300, 129, 2358.62, 966.718, 40.2895, 1.309, 0, 0, 0.608761, 0.793353, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 75300, 129, 2502.75, 944.867, 49.1772, -2.05949, 0, 0, 0.857167, -0.515038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 75300, 129, 2494.91, 859.182, 48.014, 1.09956, 0, 0, 0.522498, 0.85264, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 75300, 129, 2455.52, 956.494, 35.5014, 4.64258, 0, 0, -0.731354, 0.681998, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 75300, 129, 2482.92, 774.275, 46.1014, 4.76475, 0, 0, -0.688354, 0.725374, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 75300, 129, 2435.01, 995.961, 49.3044, 1.37881, 0, 0, 0.636078, 0.771625, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 75300, 129, 2418.72, 1030.88, 38.8304, 3.59538, 0, 0, -0.97437, 0.224951, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 75300, 129, 2541.91, 734.659, 53.7572, 2.1293, 0, 0, 0.874619, 0.48481, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@PTEMPLATE+2, 1, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@PTEMPLATE+3, 1, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@PTEMPLATE+4, 1, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@PTEMPLATE+5, 1, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@PTEMPLATE+6, 1, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@PTEMPLATE+7, 1, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@PTEMPLATE+8, 1, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@OGUID+9, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@OGUID+10, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@OGUID+11, @PTEMPLATE+3, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@OGUID+12, @PTEMPLATE+4, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@OGUID+13, @PTEMPLATE+5, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@OGUID+14, @PTEMPLATE+6, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@OGUID+15, @PTEMPLATE+7, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10), +(@OGUID+16, @PTEMPLATE+8, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+9, 2, 'Razorfen Downs - Large Iron Bound Chest / Large Solid Chest (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+9, 0, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0), +(@PTEMPLATE+2, @PTEMPLATE+9, 0, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0), +(@PTEMPLATE+3, @PTEMPLATE+9, 0, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0), +(@PTEMPLATE+4, @PTEMPLATE+9, 0, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0), +(@PTEMPLATE+5, @PTEMPLATE+9, 0, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0), +(@PTEMPLATE+6, @PTEMPLATE+9, 0, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0), +(@PTEMPLATE+7, @PTEMPLATE+9, 0, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0), +(@PTEMPLATE+8, @PTEMPLATE+9, 0, 'Large Iron Bound Chest / Large Solid Chest - Razorfen Downs', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From c3c3848a36981236632b5babe2368c9295f27802 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sat, 15 Jul 2023 21:24:12 +0100 Subject: [PATCH 114/426] Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library / Armory (#2081) --- sql/migrations/20230714153249_world.sql | 134 ++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 sql/migrations/20230714153249_world.sql diff --git a/sql/migrations/20230714153249_world.sql b/sql/migrations/20230714153249_world.sql new file mode 100644 index 00000000000..3e88f959d26 --- /dev/null +++ b/sql/migrations/20230714153249_world.sql @@ -0,0 +1,134 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230714153249'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230714153249'); +-- Add your query below. + + +-- Scarlet Monastery Library / 75296 / 75299 / Large Iron Bound Chest / Large Solid Chest +SET @OGUID = 315; +SET @PTEMPLATE = 3540; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (15032, 11899)); +DELETE FROM `gameobject` WHERE `guid` IN (15032, 11899); +DELETE FROM `pool_gameobject` WHERE `guid` IN (15032, 11899); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 75296, 189, 223.898, -292.728, 19.1996, 2.51327, 0, 0, 0.951057, 0.309017, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 75296, 189, 278.514, -401.431, 20.3957, 3.03684, 0, 0, 0.998629, 0.0523532, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 75296, 189, 175.541, -418.852, 18.868, 6.21337, 0, 0, -0.0348988, 0.999391, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 75296, 189, 277.401, -365.671, 20.3969, 3.05433, 0, 0, 0.999048, 0.0436193, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 75299, 189, 223.898, -292.728, 19.1996, 2.51327, 0, 0, 0.951057, 0.309017, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 75299, 189, 278.514, -401.431, 20.3957, 3.03684, 0, 0, 0.998629, 0.0523532, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 75299, 189, 175.541, -418.852, 18.868, 6.21337, 0, 0, -0.0348988, 0.999391, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 75299, 189, 277.401, -365.671, 20.3969, 3.05433, 0, 0, 0.999048, 0.0436193, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library', 0, 10), +(@PTEMPLATE+2, 1, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library', 0, 10), +(@PTEMPLATE+3, 1, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library', 0, 10), +(@PTEMPLATE+4, 1, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library', 0, 10), +(@OGUID+5, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library', 0, 10), +(@OGUID+6, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library', 0, 10), +(@OGUID+7, @PTEMPLATE+3, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library', 0, 10), +(@OGUID+8, @PTEMPLATE+4, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+5, 2, 'Scarlet Monastery Library - Large Iron Bound Chest / Large Solid Chest (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+5, 0, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library', 0), +(@PTEMPLATE+2, @PTEMPLATE+5, 0, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library', 0), +(@PTEMPLATE+3, @PTEMPLATE+5, 0, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library', 0), +(@PTEMPLATE+4, @PTEMPLATE+5, 0, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Library', 0); + +-- Scarlet Monastery Armory / 75297 / 75300 / Large Iron Bound Chest / Large Solid Chest +SET @OGUID = 2346; +SET @PTEMPLATE = 3550; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (32252)); +DELETE FROM `gameobject` WHERE `guid` IN (32252); +DELETE FROM `pool_gameobject` WHERE `guid` IN (32252); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 75297, 189, 1684.87, -345.412, 18.0233, 0.034907, 0, 0, 0.017452, 0.999848, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 75297, 189, 1743.48, -407.254, 8.01026, 0.0174525, 0, 0, 0.00872612, 0.999962, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 75300, 189, 1684.87, -345.412, 18.0233, 0.034907, 0, 0, 0.017452, 0.999848, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 75300, 189, 1743.48, -407.254, 8.01026, 0.0174525, 0, 0, 0.00872612, 0.999962, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Armory', 0, 10), +(@PTEMPLATE+2, 1, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Armory', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Armory', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Armory', 0, 10), +(@OGUID+3, @PTEMPLATE+1, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Armory', 0, 10), +(@OGUID+4, @PTEMPLATE+2, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Armory', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+3, 2, 'Scarlet Monastery Armory - Large Iron Bound Chest / Large Solid Chest (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+3, 0, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Armory', 0), +(@PTEMPLATE+2, @PTEMPLATE+3, 0, 'Large Iron Bound Chest / Large Solid Chest - Scarlet Monastery Armory', 0); + +-- Scarlet Monastery Armory / 3703 / 3704 / Armor Crate / Weapon Crate +SET @OGUID = 3008; +SET @PTEMPLATE = 3560; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (2557, 2558, 2559, 2560, 32253, 32254)); +DELETE FROM `gameobject` WHERE `guid` IN (2557, 2558, 2559, 2560, 32253, 32254); +DELETE FROM `pool_gameobject` WHERE `guid` IN (2557, 2558, 2559, 2560, 32253, 32254); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3703, 189, 1743.97, -389.967, 8.00978, 0.0349062, 0, 0, 0.0174522, 0.999848, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3703, 189, 1782.58, -414.356, 8.01169, 1.5708, 0, 0, 0.707107, 0.707107, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3703, 189, 1795.07, -431.977, 8.01001, 0, 0, 0, 0, 1, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3703, 189, 1803.25, -398.513, 8.01243, 3.12412, 0, 0, 0.999962, 0.00873464, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3703, 189, 1745.17, -357.994, 8.01148, -1.85005, 0, 0, 0.798635, -0.601815, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3703, 189, 1771.76, -377.259, 8.01092, -1.51844, 0, 0, 0.688354, -0.725374, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3704, 189, 1743.97, -389.967, 8.00978, 0.0349062, 0, 0, 0.0174522, 0.999848, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3704, 189, 1782.58, -414.356, 8.01169, 1.5708, 0, 0, 0.707107, 0.707107, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 3704, 189, 1795.07, -431.977, 8.01001, 0, 0, 0, 0, 1, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 3704, 189, 1803.25, -398.513, 8.01243, 3.12412, 0, 0, 0.999962, 0.00873464, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 3704, 189, 1745.17, -357.994, 8.01148, -1.85005, 0, 0, 0.798635, -0.601815, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 3704, 189, 1771.76, -377.259, 8.01092, -1.51844, 0, 0, 0.688354, -0.725374, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10), +(@PTEMPLATE+2, 1, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10), +(@PTEMPLATE+3, 1, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10), +(@PTEMPLATE+4, 1, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10), +(@PTEMPLATE+5, 1, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10), +(@PTEMPLATE+6, 1, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10), +(@OGUID+7, @PTEMPLATE+1, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10), +(@OGUID+8, @PTEMPLATE+2, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10), +(@OGUID+9, @PTEMPLATE+3, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10), +(@OGUID+10, @PTEMPLATE+4, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10), +(@OGUID+11, @PTEMPLATE+5, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10), +(@OGUID+12, @PTEMPLATE+6, 'Armor Crate / Weapon Crate - Scarlet Monastery Armory', 0, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From dcfc843d85b978f006dd0aac68aea3253a150984 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sat, 15 Jul 2023 21:40:57 +0100 Subject: [PATCH 115/426] Large Solid Chest / Large Mithril Bound Chest - Stratholme (#2082) --- sql/migrations/20230714174943_world.sql | 668 ++++++++++++++++++++++++ 1 file changed, 668 insertions(+) create mode 100644 sql/migrations/20230714174943_world.sql diff --git a/sql/migrations/20230714174943_world.sql b/sql/migrations/20230714174943_world.sql new file mode 100644 index 00000000000..a0b2a2c585d --- /dev/null +++ b/sql/migrations/20230714174943_world.sql @@ -0,0 +1,668 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230714174943'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230714174943'); +-- Add your query below. + + +-- Stratholme / 153464 / 153469 / Large Solid Chest / Large Mithril Bound Chest +SET @OGUID = 4146; +SET @PTEMPLATE = 3959; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (27888, 25440, 27871)); +DELETE FROM `gameobject` WHERE `guid` IN (27888, 25440); +DELETE FROM `pool_gameobject` WHERE `guid` IN (27888, 25440); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 153464, 329, 3555.39, -3424.3, 136.745, 2.3911, 0, 0, 0.930418, 0.366501, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 153464, 329, 3850.91, -3629.15, 146.895, 2.79252, 0, 0, 0.984807, 0.173652, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 153464, 329, 4080.21, -3533.44, 124.622, -3.00197, 0, 0, 0.997564, -0.069756, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 153464, 329, 3471.28, -3311.51, 132.564, 0.698131, 0, 0, 0.34202, 0.939693, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 153464, 329, 3607.98, -3519.02, 138.111, 1.15192, 0, 0, 0.544639, 0.838671, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 153464, 329, 3736.93, -3273.18, 130.049, 1.97222, 0, 0, 0.833885, 0.551938, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 153464, 329, 4022.24, -3610.68, 131.655, 3.927, 0, 0, -0.923879, 0.382686, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 153464, 329, 3816.49, -3715.44, 143.088, 1.2391, 0, 0, 0.580702, 0.814115, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 153469, 329, 3555.39, -3424.3, 136.745, 2.3911, 0, 0, 0.930418, 0.366501, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 153469, 329, 3850.91, -3629.15, 146.895, 2.79252, 0, 0, 0.984807, 0.173652, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 153469, 329, 4080.21, -3533.44, 124.622, -3.00197, 0, 0, 0.997564, -0.069756, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 153469, 329, 3471.28, -3311.51, 132.564, 0.698131, 0, 0, 0.34202, 0.939693, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 153469, 329, 3607.98, -3519.02, 138.111, 1.15192, 0, 0, 0.544639, 0.838671, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 153469, 329, 3736.93, -3273.18, 130.049, 1.97222, 0, 0, 0.833885, 0.551938, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 153469, 329, 4022.24, -3610.68, 131.655, 3.927, 0, 0, -0.923879, 0.382686, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 153469, 329, 3816.49, -3715.44, 143.088, 1.2391, 0, 0, 0.580702, 0.814115, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@PTEMPLATE+2, 1, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@PTEMPLATE+3, 1, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@PTEMPLATE+4, 1, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@PTEMPLATE+5, 1, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@PTEMPLATE+6, 1, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@PTEMPLATE+7, 1, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@PTEMPLATE+8, 1, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@OGUID+9, @PTEMPLATE+1, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@OGUID+10, @PTEMPLATE+2, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@OGUID+11, @PTEMPLATE+3, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@OGUID+12, @PTEMPLATE+4, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@OGUID+13, @PTEMPLATE+5, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@OGUID+14, @PTEMPLATE+6, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@OGUID+15, @PTEMPLATE+7, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10), +(@OGUID+16, @PTEMPLATE+8, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+9, 3, 'Stratholme - Large Solid Chest / Large Mithril Bound Chest (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+9, 0, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0), +(@PTEMPLATE+2, @PTEMPLATE+9, 0, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0), +(@PTEMPLATE+3, @PTEMPLATE+9, 0, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0), +(@PTEMPLATE+4, @PTEMPLATE+9, 0, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0), +(@PTEMPLATE+5, @PTEMPLATE+9, 0, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0), +(@PTEMPLATE+6, @PTEMPLATE+9, 0, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0), +(@PTEMPLATE+7, @PTEMPLATE+9, 0, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0), +(@PTEMPLATE+8, @PTEMPLATE+9, 0, 'Large Solid Chest / Large Mithril Bound Chest - Stratholme', 0); + +-- Supply Crate +SET @OGUID = 39126; +SET @PTEMPLATE = 4486; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 26054, 26055, 26056, 26057, 26058, 26059, 26060, 26061, 26062, 26063, 26064, 26065, 26066, 26067, 26068, 26069, 26070, 26071, 26072, 26073, 398000, 398001, 398002, 398003, 398004, 398005, 398006, 398007, 398008, 398009, 398010, 398011, 398012, 398013, 398014, 398015, 398016, 398017, 398018, 398019, 398020, 398021, 398022, 398023, 398024, 398025, 398026, 398027, 398028, 398029, 398030, 398031, 398032, 398033, 398034, 398035, 398039, 398040, 398041, 398042, 398043, 398044, 398045, 398046, 398047, 398048, 398049, 398050, 398051, 398052, 398053, 398054, 398055, 398056, 398057, 398058, 398059, 398060, 398061, 398062, 399000, 399001, 399002, 399003, 399004, 399005, 399006, 399007, 399008, 399009, 399010, 399011, 399012, 399013, 399014, 399015, 399016, 399017, 399018, 399019, 399020, 399021, 399022, 399023, 399024, 399025, 399026, 399027, 399028, 399029, 399030, 399031, 399032, 399033, 399034, 399035, 399039, 399040, 399041, 399042, 399043, 399044, 399045, 399046, 399047, 399048, 399049, 399050, 399051, 399052, 399053, 399054, 399055, 399056, 399057, 399058, 399059, 399060, 399061, 399062)); +DELETE FROM `gameobject` WHERE `guid` IN (4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 26054, 26055, 26056, 26057, 26058, 26059, 26060, 26061, 26062, 26063, 26064, 26065, 26066, 26067, 26068, 26069, 26070, 26071, 26072, 26073, 398000, 398001, 398002, 398003, 398004, 398005, 398006, 398007, 398008, 398009, 398010, 398011, 398012, 398013, 398014, 398015, 398016, 398017, 398018, 398019, 398020, 398021, 398022, 398023, 398024, 398025, 398026, 398027, 398028, 398029, 398030, 398031, 398032, 398033, 398034, 398035, 398039, 398040, 398041, 398042, 398043, 398044, 398045, 398046, 398047, 398048, 398049, 398050, 398051, 398052, 398053, 398054, 398055, 398056, 398057, 398058, 398059, 398060, 398061, 398062, 399000, 399001, 399002, 399003, 399004, 399005, 399006, 399007, 399008, 399009, 399010, 399011, 399012, 399013, 399014, 399015, 399016, 399017, 399018, 399019, 399020, 399021, 399022, 399023, 399024, 399025, 399026, 399027, 399028, 399029, 399030, 399031, 399032, 399033, 399034, 399035, 399039, 399040, 399041, 399042, 399043, 399044, 399045, 399046, 399047, 399048, 399049, 399050, 399051, 399052, 399053, 399054, 399055, 399056, 399057, 399058, 399059, 399060, 399061, 399062); +DELETE FROM `pool_gameobject` WHERE `guid` IN (4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 26054, 26055, 26056, 26057, 26058, 26059, 26060, 26061, 26062, 26063, 26064, 26065, 26066, 26067, 26068, 26069, 26070, 26071, 26072, 26073, 398000, 398001, 398002, 398003, 398004, 398005, 398006, 398007, 398008, 398009, 398010, 398011, 398012, 398013, 398014, 398015, 398016, 398017, 398018, 398019, 398020, 398021, 398022, 398023, 398024, 398025, 398026, 398027, 398028, 398029, 398030, 398031, 398032, 398033, 398034, 398035, 398039, 398040, 398041, 398042, 398043, 398044, 398045, 398046, 398047, 398048, 398049, 398050, 398051, 398052, 398053, 398054, 398055, 398056, 398057, 398058, 398059, 398060, 398061, 398062, 399000, 399001, 399002, 399003, 399004, 399005, 399006, 399007, 399008, 399009, 399010, 399011, 399012, 399013, 399014, 399015, 399016, 399017, 399018, 399019, 399020, 399021, 399022, 399023, 399024, 399025, 399026, 399027, 399028, 399029, 399030, 399031, 399032, 399033, 399034, 399035, 399039, 399040, 399041, 399042, 399043, 399044, 399045, 399046, 399047, 399048, 399049, 399050, 399051, 399052, 399053, 399054, 399055, 399056, 399057, 399058, 399059, 399060, 399061, 399062); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 176224, 329, 3454.34, -3363.78, 141.026, 6.07375, 0, 0, -0.104528, 0.994522, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 176224, 329, 3466.64, -3298.56, 132.741, -0.698132, 0, 0, 0.34202, -0.939693, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 176224, 329, 3476.95, -3363.85, 136.242, -1.98968, 0, 0, 0.838671, -0.544639, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 176224, 329, 3477.72, -3397.27, 138.636, 1.41372, 0, 0, 0.649448, 0.760406, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 176224, 329, 3486.79, -3331.54, 131.38, 1.46608, 0, 0, 0.669131, 0.743145, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 176224, 329, 3508.78, -3372.3, 135.379, -1.98968, 0, 0, 0.838671, -0.544639, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 176224, 329, 3521.19, -3409.08, 134.254, 0.785398, 0, 0, 0.382683, 0.92388, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 176224, 329, 3524.33, -3296.48, 132.186, 6.05629, 0, 0, -0.113203, 0.993572, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 176224, 329, 3524.34, -3296.48, 132.186, 6.05629, 0, 0, -0.113203, 0.993572, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 176224, 329, 3528.21, -3351.28, 132.597, 5.91667, 0, 0, -0.182235, 0.983255, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 176224, 329, 3543.4, -3432.62, 136.636, 1.20428, 0, 0, 0.566406, 0.824126, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 176224, 329, 3546.42, -3307.08, 130.52, -1.98968, 0, 0, 0.838671, -0.544639, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 176224, 329, 3561.1, -3307.54, 130.66, -2.05949, 0, 0, 0.857167, -0.515038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 176224, 329, 3569.1, -3357.61, 131.154, 2.26893, 0, 0, 0.906307, 0.422619, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 176224, 329, 3581.11, -3351, 129.513, 1.6057, 0, 0, 0.71934, 0.694658, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 176224, 329, 3584.93, -3482.1, 135.124, 0.610865, 0, 0, 0.300706, 0.953717, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 176224, 329, 3592.94, -3512.49, 137.395, -0.663225, 0, 0, 0.325568, -0.945519, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 176224, 329, 3599.32, -3460.67, 136.472, -2.21657, 0, 0, 0.894934, -0.446198, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 176224, 329, 3615.6, -3535.18, 138.505, 0.785398, 0, 0, 0.382683, 0.92388, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 176224, 329, 3622.79, -3196.69, 131.094, 0.855211, 0, 0, 0.414693, 0.909961, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 176224, 329, 3630.3, -3469.46, 138.793, -0.855212, 0, 0, 0.414693, -0.909961, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 176224, 329, 3636.53, -3347.54, 125.592, 0.715585, 0, 0, 0.350207, 0.936672, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 176224, 329, 3638.04, -3534.9, 138.45, 0, 0, 0, 0, 1, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 176224, 329, 3640.21, -3496.79, 136.441, 1.97222, 0, 0, 0.833885, 0.551938, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 176224, 329, 3655.19, -3467.64, 138.693, 4.79966, 0, 0, -0.67559, 0.737278, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 176224, 329, 3656.34, -3210.08, 128.257, 1.44862, 0, 0, 0.66262, 0.748956, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 176224, 329, 3658.95, -3364.85, 126.05, -0.244346, 0, 0, 0.121869, -0.992546, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 176224, 329, 3659.38, -3305.04, 127.062, 5.0091, 0, 0, -0.594823, 0.803857, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 176224, 329, 3665.47, -3662.99, 138.414, 2.02458, 0, 0, 0.848048, 0.529919, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 176224, 329, 3665.65, -3196.86, 126.304, 5.58505, 0, 0, -0.34202, 0.939693, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 176224, 329, 3666.63, -3182.46, 126.252, -0.855212, 0, 0, 0.414693, -0.909961, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 176224, 329, 3668.9, -3284.14, 128.53, 0.034907, 0, 0, 0.017452, 0.999848, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 176224, 329, 3669.82, -3263.99, 127.804, -0.10472, 0, 0, 0.052336, -0.99863, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 176224, 329, 3672.29, -3523.02, 137.733, 2.6529, 0, 0, 0.970296, 0.241922, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 176224, 329, 3676.96, -3335.55, 124.94, 3.45576, 0, 0, -0.987688, 0.156436, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 176224, 329, 3678.94, -3478.72, 136.502, 4.57276, 0, 0, -0.754709, 0.656059, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 176224, 329, 3678.95, -3478.72, 136.501, 4.57276, 0, 0, -0.754709, 0.656059, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 176224, 329, 3682.68, -3416.87, 133.312, 0.610865, 0, 0, 0.300706, 0.953717, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 176224, 329, 3695.37, -3301.16, 128.532, 2.79253, 0, 0, 0.984808, 0.173648, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 176224, 329, 3696.27, -3195.51, 127.796, 2.51327, 0, 0, 0.951057, 0.309017, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 176224, 329, 3696.97, -3298.02, 128.992, 2.79252, 0, 0, 0.984807, 0.173652, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 176224, 329, 3704.46, -3168.81, 127.617, 2.87979, 0, 0, 0.991445, 0.130526, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 176224, 329, 3711.94, -3147.64, 128.189, -2.94961, 0, 0, 0.995396, -0.095846, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 176224, 329, 3720.45, -3502.32, 130.548, 2.04204, 0, 0, 0.85264, 0.522499, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 176224, 329, 3729.11, -3450.53, 130.433, -2.1293, 0, 0, 0.87462, -0.48481, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 176224, 329, 3734.02, -3251.49, 129.542, 4.18879, 0, 0, -0.866025, 0.500001, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 176224, 329, 3738.43, -3477.54, 131.393, -2.86234, 0, 0, 0.990268, -0.139173, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 176224, 329, 3788.89, -3624.55, 146.377, 0.314159, 0, 0, 0.156434, 0.987688, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 176224, 329, 3802.48, -3652.31, 147.295, 0.488691, 0, 0, 0.241921, 0.970296, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 176224, 329, 3818.95, -3687.04, 144.695, -0.10472, 0, 0, 0.052336, -0.99863, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 176224, 329, 3830.18, -3577.71, 144.922, 5.63741, 0, 0, -0.317305, 0.948324, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 176224, 329, 3838.05, -3553.55, 140.413, 0.925024, 0, 0, 0.446198, 0.894934, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 176224, 329, 3862.17, -3610.11, 144.137, 2.84489, 0, 0, 0.989016, 0.147809, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 176224, 329, 3862.64, -3663.65, 144.775, 3.10669, 0, 0, 0.999848, 0.017452, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 176224, 329, 3870.84, -3598.91, 143.474, 2.61799, 0, 0, 0.965926, 0.258819, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 176224, 329, 3877.03, -3663.46, 143.9, -1.67552, 0, 0, 0.743145, -0.669131, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 176224, 329, 3880.02, -3517.12, 139.189, -2.58309, 0, 0, 0.961262, -0.275637, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 176224, 329, 3887.52, -3745.81, 142.36, 2.11185, 0, 0, 0.870356, 0.492424, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 176224, 329, 3888.71, -3699.08, 143.85, -0.383972, 0, 0, 0.190809, -0.981627, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 176224, 329, 3892.38, -3563.78, 138.099, -2.28638, 0, 0, 0.909961, -0.414693, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 176224, 329, 3952.68, -3632.92, 133.41, -2.51327, 0, 0, 0.951057, -0.309017, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 176224, 329, 3956.05, -3570.05, 129.894, 0.767945, 0, 0, 0.374607, 0.927184, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 176224, 329, 3961.73, -3539.9, 127.744, -0.244346, 0, 0, 0.121869, -0.992546, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 176224, 329, 3968.17, -3592.17, 129.298, 0.558505, 0, 0, 0.275637, 0.961262, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 176224, 329, 3973.62, -3619.9, 129.999, -2.37365, 0, 0, 0.927184, -0.374607, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 176224, 329, 3973.82, -3419.91, 120.918, 1.29154, 0, 0, 0.601815, 0.798636, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 176224, 329, 3981.9, -3359.74, 119.357, 0.890117, 0, 0, 0.430511, 0.902586, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 176224, 329, 3998.96, -3448.72, 122.307, 0.628319, 0, 0, 0.309017, 0.951057, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 176224, 329, 4009.57, -3585.86, 130.177, -1.91986, 0, 0, 0.819152, -0.573576, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 176224, 329, 4011.06, -3646.39, 131.552, 0.069813, 0, 0, 0.034899, 0.999391, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 176224, 329, 4011.67, -3518.38, 122.346, -0.698132, 0, 0, 0.34202, -0.939693, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 176224, 329, 4026.67, -3619.41, 131.54, 4.04917, 0, 0, -0.898793, 0.438373, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+73, 176224, 329, 4027.84, -3552.56, 125.429, 3.7001, 0, 0, -0.961261, 0.27564, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+74, 176224, 329, 4062.22, -3515.15, 123.116, -2.04204, 0, 0, 0.85264, -0.522498, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+75, 176224, 329, 4065.88, -3548.68, 124.621, 1.43117, 0, 0, 0.656059, 0.75471, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+76, 176224, 329, 4066.38, -3455.35, 120.555, -1.25664, 0, 0, 0.587785, -0.809017, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+77, 176224, 329, 4082.6, -3546.1, 124.622, 2.87979, 0, 0, 0.991445, 0.130528, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+78, 176224, 329, 4095.95, -3361.53, 117.661, -2.30383, 0, 0, 0.913545, -0.406737, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+79, 176224, 329, 4104.72, -3435.93, 117.802, 2.74017, 0, 0, 0.979925, 0.199368, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+80, 176224, 329, 4113.99, -3383.44, 117.806, 2.98451, 0, 0, 0.996917, 0.078459, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+81, 176304, 329, 3454.34, -3363.78, 141.026, 6.07375, 0, 0, -0.104528, 0.994522, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+82, 176304, 329, 3466.64, -3298.56, 132.741, -0.698132, 0, 0, 0.34202, -0.939693, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+83, 176304, 329, 3476.95, -3363.85, 136.242, -1.98968, 0, 0, 0.838671, -0.544639, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+84, 176304, 329, 3477.72, -3397.27, 138.636, 1.41372, 0, 0, 0.649448, 0.760406, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+85, 176304, 329, 3486.79, -3331.54, 131.38, 1.46608, 0, 0, 0.669131, 0.743145, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+86, 176304, 329, 3508.78, -3372.3, 135.379, -1.98968, 0, 0, 0.838671, -0.544639, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+87, 176304, 329, 3521.19, -3409.08, 134.254, 0.785398, 0, 0, 0.382683, 0.92388, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+88, 176304, 329, 3524.33, -3296.48, 132.186, 6.05629, 0, 0, -0.113203, 0.993572, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+89, 176304, 329, 3524.34, -3296.48, 132.186, 6.05629, 0, 0, -0.113203, 0.993572, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+90, 176304, 329, 3528.21, -3351.28, 132.597, 5.91667, 0, 0, -0.182235, 0.983255, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+91, 176304, 329, 3543.4, -3432.62, 136.636, 1.20428, 0, 0, 0.566406, 0.824126, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+92, 176304, 329, 3546.42, -3307.08, 130.52, -1.98968, 0, 0, 0.838671, -0.544639, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+93, 176304, 329, 3561.1, -3307.54, 130.66, -2.05949, 0, 0, 0.857167, -0.515038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+94, 176304, 329, 3569.1, -3357.61, 131.154, 2.26893, 0, 0, 0.906307, 0.422619, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+95, 176304, 329, 3581.11, -3351, 129.513, 1.6057, 0, 0, 0.71934, 0.694658, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+96, 176304, 329, 3584.93, -3482.1, 135.124, 0.610865, 0, 0, 0.300706, 0.953717, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+97, 176304, 329, 3592.94, -3512.49, 137.395, -0.663225, 0, 0, 0.325568, -0.945519, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+98, 176304, 329, 3599.32, -3460.67, 136.472, -2.21657, 0, 0, 0.894934, -0.446198, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+99, 176304, 329, 3615.6, -3535.18, 138.505, 0.785398, 0, 0, 0.382683, 0.92388, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+100, 176304, 329, 3622.79, -3196.69, 131.094, 0.855211, 0, 0, 0.414693, 0.909961, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+101, 176304, 329, 3630.3, -3469.46, 138.793, -0.855212, 0, 0, 0.414693, -0.909961, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+102, 176304, 329, 3636.53, -3347.54, 125.592, 0.715585, 0, 0, 0.350207, 0.936672, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+103, 176304, 329, 3638.04, -3534.9, 138.45, 0, 0, 0, 0, 1, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+104, 176304, 329, 3640.21, -3496.79, 136.441, 1.97222, 0, 0, 0.833885, 0.551938, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+105, 176304, 329, 3655.19, -3467.64, 138.693, 4.79966, 0, 0, -0.67559, 0.737278, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+106, 176304, 329, 3656.34, -3210.08, 128.257, 1.44862, 0, 0, 0.66262, 0.748956, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+107, 176304, 329, 3658.95, -3364.85, 126.05, -0.244346, 0, 0, 0.121869, -0.992546, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+108, 176304, 329, 3659.38, -3305.04, 127.062, 5.0091, 0, 0, -0.594823, 0.803857, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+109, 176304, 329, 3665.47, -3662.99, 138.414, 2.02458, 0, 0, 0.848048, 0.529919, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+110, 176304, 329, 3665.65, -3196.86, 126.304, 5.58505, 0, 0, -0.34202, 0.939693, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+111, 176304, 329, 3666.63, -3182.46, 126.252, -0.855212, 0, 0, 0.414693, -0.909961, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+112, 176304, 329, 3668.9, -3284.14, 128.53, 0.034907, 0, 0, 0.017452, 0.999848, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+113, 176304, 329, 3669.82, -3263.99, 127.804, -0.10472, 0, 0, 0.052336, -0.99863, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+114, 176304, 329, 3672.29, -3523.02, 137.733, 2.6529, 0, 0, 0.970296, 0.241922, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+115, 176304, 329, 3676.96, -3335.55, 124.94, 3.45576, 0, 0, -0.987688, 0.156436, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+116, 176304, 329, 3678.94, -3478.72, 136.502, 4.57276, 0, 0, -0.754709, 0.656059, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+117, 176304, 329, 3678.95, -3478.72, 136.501, 4.57276, 0, 0, -0.754709, 0.656059, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+118, 176304, 329, 3682.68, -3416.87, 133.312, 0.610865, 0, 0, 0.300706, 0.953717, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+119, 176304, 329, 3695.37, -3301.16, 128.532, 2.79253, 0, 0, 0.984808, 0.173648, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+120, 176304, 329, 3696.27, -3195.51, 127.796, 2.51327, 0, 0, 0.951057, 0.309017, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+121, 176304, 329, 3696.97, -3298.02, 128.992, 2.79252, 0, 0, 0.984807, 0.173652, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+122, 176304, 329, 3704.46, -3168.81, 127.617, 2.87979, 0, 0, 0.991445, 0.130526, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+123, 176304, 329, 3711.94, -3147.64, 128.189, -2.94961, 0, 0, 0.995396, -0.095846, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+124, 176304, 329, 3720.45, -3502.32, 130.548, 2.04204, 0, 0, 0.85264, 0.522499, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+125, 176304, 329, 3729.11, -3450.53, 130.433, -2.1293, 0, 0, 0.87462, -0.48481, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+126, 176304, 329, 3734.02, -3251.49, 129.542, 4.18879, 0, 0, -0.866025, 0.500001, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+127, 176304, 329, 3738.43, -3477.54, 131.393, -2.86234, 0, 0, 0.990268, -0.139173, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+128, 176304, 329, 3788.89, -3624.55, 146.377, 0.314159, 0, 0, 0.156434, 0.987688, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+129, 176304, 329, 3802.48, -3652.31, 147.295, 0.488691, 0, 0, 0.241921, 0.970296, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+130, 176304, 329, 3818.95, -3687.04, 144.695, -0.10472, 0, 0, 0.052336, -0.99863, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+131, 176304, 329, 3830.18, -3577.71, 144.922, 5.63741, 0, 0, -0.317305, 0.948324, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+132, 176304, 329, 3838.05, -3553.55, 140.413, 0.925024, 0, 0, 0.446198, 0.894934, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+133, 176304, 329, 3862.17, -3610.11, 144.137, 2.84489, 0, 0, 0.989016, 0.147809, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+134, 176304, 329, 3862.64, -3663.65, 144.775, 3.10669, 0, 0, 0.999848, 0.017452, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+135, 176304, 329, 3870.84, -3598.91, 143.474, 2.61799, 0, 0, 0.965926, 0.258819, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+136, 176304, 329, 3877.03, -3663.46, 143.9, -1.67552, 0, 0, 0.743145, -0.669131, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+137, 176304, 329, 3880.02, -3517.12, 139.189, -2.58309, 0, 0, 0.961262, -0.275637, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+138, 176304, 329, 3887.52, -3745.81, 142.36, 2.11185, 0, 0, 0.870356, 0.492424, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+139, 176304, 329, 3888.71, -3699.08, 143.85, -0.383972, 0, 0, 0.190809, -0.981627, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+140, 176304, 329, 3892.38, -3563.78, 138.099, -2.28638, 0, 0, 0.909961, -0.414693, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+141, 176304, 329, 3952.68, -3632.92, 133.41, -2.51327, 0, 0, 0.951057, -0.309017, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+142, 176304, 329, 3956.05, -3570.05, 129.894, 0.767945, 0, 0, 0.374607, 0.927184, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+143, 176304, 329, 3961.73, -3539.9, 127.744, -0.244346, 0, 0, 0.121869, -0.992546, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+144, 176304, 329, 3968.17, -3592.17, 129.298, 0.558505, 0, 0, 0.275637, 0.961262, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+145, 176304, 329, 3973.62, -3619.9, 129.999, -2.37365, 0, 0, 0.927184, -0.374607, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+146, 176304, 329, 3973.82, -3419.91, 120.918, 1.29154, 0, 0, 0.601815, 0.798636, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+147, 176304, 329, 3981.9, -3359.74, 119.357, 0.890117, 0, 0, 0.430511, 0.902586, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+148, 176304, 329, 3998.96, -3448.72, 122.307, 0.628319, 0, 0, 0.309017, 0.951057, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+149, 176304, 329, 4009.57, -3585.86, 130.177, -1.91986, 0, 0, 0.819152, -0.573576, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+150, 176304, 329, 4011.06, -3646.39, 131.552, 0.069813, 0, 0, 0.034899, 0.999391, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+151, 176304, 329, 4011.67, -3518.38, 122.346, -0.698132, 0, 0, 0.34202, -0.939693, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+152, 176304, 329, 4026.67, -3619.41, 131.54, 4.04917, 0, 0, -0.898793, 0.438373, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+153, 176304, 329, 4027.84, -3552.56, 125.429, 3.7001, 0, 0, -0.961261, 0.27564, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+154, 176304, 329, 4062.22, -3515.15, 123.116, -2.04204, 0, 0, 0.85264, -0.522498, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+155, 176304, 329, 4065.88, -3548.68, 124.621, 1.43117, 0, 0, 0.656059, 0.75471, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+156, 176304, 329, 4066.38, -3455.35, 120.555, -1.25664, 0, 0, 0.587785, -0.809017, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+157, 176304, 329, 4082.6, -3546.1, 124.622, 2.87979, 0, 0, 0.991445, 0.130528, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+158, 176304, 329, 4095.95, -3361.53, 117.661, -2.30383, 0, 0, 0.913545, -0.406737, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+159, 176304, 329, 4104.72, -3435.93, 117.802, 2.74017, 0, 0, 0.979925, 0.199368, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+160, 176304, 329, 4113.99, -3383.44, 117.806, 2.98451, 0, 0, 0.996917, 0.078459, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+2, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+3, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+4, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+5, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+6, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+7, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+8, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+9, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+10, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+11, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+12, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+13, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+14, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+15, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+16, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+17, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+18, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+19, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+20, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+21, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+22, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+23, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+24, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+25, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+26, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+27, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+28, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+29, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+30, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+31, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+32, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+33, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+34, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+35, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+36, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+37, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+38, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+39, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+40, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+41, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+42, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+43, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+44, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+45, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+46, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+47, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+48, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+49, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+50, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+51, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+52, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+53, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+54, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+55, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+56, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+57, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+58, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+59, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+60, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+61, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+62, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+63, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+64, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+65, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+66, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+67, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+68, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+69, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+70, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+71, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+72, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+73, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+74, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+75, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+76, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+77, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+78, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+79, 1, 'Supply Crate - Stratholme', 0, 10), +(@PTEMPLATE+80, 1, 'Supply Crate - Stratholme', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+29, @PTEMPLATE+29, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+30, @PTEMPLATE+30, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+31, @PTEMPLATE+31, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+32, @PTEMPLATE+32, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+33, @PTEMPLATE+33, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+34, @PTEMPLATE+34, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+35, @PTEMPLATE+35, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+36, @PTEMPLATE+36, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+37, @PTEMPLATE+37, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+38, @PTEMPLATE+38, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+39, @PTEMPLATE+39, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+40, @PTEMPLATE+40, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+41, @PTEMPLATE+41, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+42, @PTEMPLATE+42, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+43, @PTEMPLATE+43, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+44, @PTEMPLATE+44, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+45, @PTEMPLATE+45, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+46, @PTEMPLATE+46, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+47, @PTEMPLATE+47, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+48, @PTEMPLATE+48, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+49, @PTEMPLATE+49, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+50, @PTEMPLATE+50, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+51, @PTEMPLATE+51, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+52, @PTEMPLATE+52, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+53, @PTEMPLATE+53, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+54, @PTEMPLATE+54, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+55, @PTEMPLATE+55, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+56, @PTEMPLATE+56, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+57, @PTEMPLATE+57, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+58, @PTEMPLATE+58, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+59, @PTEMPLATE+59, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+60, @PTEMPLATE+60, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+61, @PTEMPLATE+61, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+62, @PTEMPLATE+62, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+63, @PTEMPLATE+63, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+64, @PTEMPLATE+64, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+65, @PTEMPLATE+65, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+66, @PTEMPLATE+66, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+67, @PTEMPLATE+67, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+68, @PTEMPLATE+68, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+69, @PTEMPLATE+69, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+70, @PTEMPLATE+70, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+71, @PTEMPLATE+71, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+72, @PTEMPLATE+72, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+73, @PTEMPLATE+73, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+74, @PTEMPLATE+74, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+75, @PTEMPLATE+75, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+76, @PTEMPLATE+76, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+77, @PTEMPLATE+77, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+78, @PTEMPLATE+78, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+79, @PTEMPLATE+79, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+80, @PTEMPLATE+80, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+81, @PTEMPLATE+1, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+82, @PTEMPLATE+2, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+83, @PTEMPLATE+3, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+84, @PTEMPLATE+4, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+85, @PTEMPLATE+5, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+86, @PTEMPLATE+6, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+87, @PTEMPLATE+7, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+88, @PTEMPLATE+8, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+89, @PTEMPLATE+9, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+90, @PTEMPLATE+10, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+91, @PTEMPLATE+11, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+92, @PTEMPLATE+12, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+93, @PTEMPLATE+13, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+94, @PTEMPLATE+14, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+95, @PTEMPLATE+15, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+96, @PTEMPLATE+16, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+97, @PTEMPLATE+17, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+98, @PTEMPLATE+18, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+99, @PTEMPLATE+19, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+100, @PTEMPLATE+20, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+101, @PTEMPLATE+21, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+102, @PTEMPLATE+22, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+103, @PTEMPLATE+23, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+104, @PTEMPLATE+24, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+105, @PTEMPLATE+25, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+106, @PTEMPLATE+26, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+107, @PTEMPLATE+27, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+108, @PTEMPLATE+28, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+109, @PTEMPLATE+29, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+110, @PTEMPLATE+30, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+111, @PTEMPLATE+31, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+112, @PTEMPLATE+32, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+113, @PTEMPLATE+33, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+114, @PTEMPLATE+34, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+115, @PTEMPLATE+35, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+116, @PTEMPLATE+36, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+117, @PTEMPLATE+37, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+118, @PTEMPLATE+38, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+119, @PTEMPLATE+39, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+120, @PTEMPLATE+40, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+121, @PTEMPLATE+41, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+122, @PTEMPLATE+42, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+123, @PTEMPLATE+43, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+124, @PTEMPLATE+44, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+125, @PTEMPLATE+45, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+126, @PTEMPLATE+46, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+127, @PTEMPLATE+47, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+128, @PTEMPLATE+48, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+129, @PTEMPLATE+49, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+130, @PTEMPLATE+50, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+131, @PTEMPLATE+51, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+132, @PTEMPLATE+52, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+133, @PTEMPLATE+53, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+134, @PTEMPLATE+54, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+135, @PTEMPLATE+55, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+136, @PTEMPLATE+56, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+137, @PTEMPLATE+57, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+138, @PTEMPLATE+58, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+139, @PTEMPLATE+59, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+140, @PTEMPLATE+60, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+141, @PTEMPLATE+61, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+142, @PTEMPLATE+62, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+143, @PTEMPLATE+63, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+144, @PTEMPLATE+64, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+145, @PTEMPLATE+65, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+146, @PTEMPLATE+66, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+147, @PTEMPLATE+67, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+148, @PTEMPLATE+68, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+149, @PTEMPLATE+69, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+150, @PTEMPLATE+70, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+151, @PTEMPLATE+71, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+152, @PTEMPLATE+72, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+153, @PTEMPLATE+73, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+154, @PTEMPLATE+74, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+155, @PTEMPLATE+75, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+156, @PTEMPLATE+76, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+157, @PTEMPLATE+77, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+158, @PTEMPLATE+78, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+159, @PTEMPLATE+79, 'Supply Crate - Stratholme', 0, 10), +(@OGUID+160, @PTEMPLATE+80, 'Supply Crate - Stratholme', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+81, 38, 'Stratholme - Supply Crate (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+2, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+3, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+4, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+5, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+6, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+7, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+8, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+9, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+10, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+11, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+12, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+13, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+14, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+15, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+16, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+17, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+18, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+19, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+20, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+21, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+22, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+23, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+24, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+25, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+26, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+27, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+28, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+29, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+30, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+31, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+32, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+33, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+34, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+35, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+36, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+37, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+38, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+39, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+40, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+41, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+42, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+43, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+44, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+45, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+46, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+47, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+48, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+49, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+50, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+51, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+52, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+53, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+54, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+55, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+56, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+57, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+58, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+59, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+60, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+61, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+62, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+63, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+64, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+65, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+66, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+67, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+68, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+69, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+70, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+71, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+72, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+73, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+74, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+75, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+76, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+77, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+78, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+79, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0), +(@PTEMPLATE+80, @PTEMPLATE+81, 0, 'Supply Crate - Stratholme', 0); + +SET @OGUID = 46982; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 175535, 329, 3454.34, -3363.78, 141.026, 6.07375, 0, 0, -0.104528, 0.994522, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 175535, 329, 3466.64, -3298.56, 132.741, -0.698132, 0, 0, 0.34202, -0.939693, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 175535, 329, 3476.95, -3363.85, 136.242, -1.98968, 0, 0, 0.838671, -0.544639, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 175535, 329, 3477.72, -3397.27, 138.636, 1.41372, 0, 0, 0.649448, 0.760406, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 175535, 329, 3486.79, -3331.54, 131.38, 1.46608, 0, 0, 0.669131, 0.743145, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 175535, 329, 3508.78, -3372.3, 135.379, -1.98968, 0, 0, 0.838671, -0.544639, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 175535, 329, 3521.19, -3409.08, 134.254, 0.785398, 0, 0, 0.382683, 0.92388, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 175535, 329, 3524.33, -3296.48, 132.186, 6.05629, 0, 0, -0.113203, 0.993572, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 175535, 329, 3524.34, -3296.48, 132.186, 6.05629, 0, 0, -0.113203, 0.993572, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 175535, 329, 3528.21, -3351.28, 132.597, 5.91667, 0, 0, -0.182235, 0.983255, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 175535, 329, 3543.4, -3432.62, 136.636, 1.20428, 0, 0, 0.566406, 0.824126, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 175535, 329, 3546.42, -3307.08, 130.52, -1.98968, 0, 0, 0.838671, -0.544639, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 175535, 329, 3561.1, -3307.54, 130.66, -2.05949, 0, 0, 0.857167, -0.515038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 175535, 329, 3569.1, -3357.61, 131.154, 2.26893, 0, 0, 0.906307, 0.422619, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 175535, 329, 3581.11, -3351, 129.513, 1.6057, 0, 0, 0.71934, 0.694658, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 175535, 329, 3584.93, -3482.1, 135.124, 0.610865, 0, 0, 0.300706, 0.953717, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 175535, 329, 3592.94, -3512.49, 137.395, -0.663225, 0, 0, 0.325568, -0.945519, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 175535, 329, 3599.32, -3460.67, 136.472, -2.21657, 0, 0, 0.894934, -0.446198, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 175535, 329, 3615.6, -3535.18, 138.505, 0.785398, 0, 0, 0.382683, 0.92388, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 175535, 329, 3622.79, -3196.69, 131.094, 0.855211, 0, 0, 0.414693, 0.909961, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 175535, 329, 3630.3, -3469.46, 138.793, -0.855212, 0, 0, 0.414693, -0.909961, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 175535, 329, 3636.53, -3347.54, 125.592, 0.715585, 0, 0, 0.350207, 0.936672, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 175535, 329, 3638.04, -3534.9, 138.45, 0, 0, 0, 0, 1, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 175535, 329, 3640.21, -3496.79, 136.441, 1.97222, 0, 0, 0.833885, 0.551938, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 175535, 329, 3655.19, -3467.64, 138.693, 4.79966, 0, 0, -0.67559, 0.737278, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 175535, 329, 3656.34, -3210.08, 128.257, 1.44862, 0, 0, 0.66262, 0.748956, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 175535, 329, 3658.95, -3364.85, 126.05, -0.244346, 0, 0, 0.121869, -0.992546, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 175535, 329, 3659.38, -3305.04, 127.062, 5.0091, 0, 0, -0.594823, 0.803857, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 175535, 329, 3665.47, -3662.99, 138.414, 2.02458, 0, 0, 0.848048, 0.529919, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 175535, 329, 3665.65, -3196.86, 126.304, 5.58505, 0, 0, -0.34202, 0.939693, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 175535, 329, 3666.63, -3182.46, 126.252, -0.855212, 0, 0, 0.414693, -0.909961, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 175535, 329, 3668.9, -3284.14, 128.53, 0.034907, 0, 0, 0.017452, 0.999848, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 175535, 329, 3669.82, -3263.99, 127.804, -0.10472, 0, 0, 0.052336, -0.99863, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 175535, 329, 3672.29, -3523.02, 137.733, 2.6529, 0, 0, 0.970296, 0.241922, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 175535, 329, 3676.96, -3335.55, 124.94, 3.45576, 0, 0, -0.987688, 0.156436, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 175535, 329, 3678.94, -3478.72, 136.502, 4.57276, 0, 0, -0.754709, 0.656059, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 175535, 329, 3678.95, -3478.72, 136.501, 4.57276, 0, 0, -0.754709, 0.656059, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 175535, 329, 3682.68, -3416.87, 133.312, 0.610865, 0, 0, 0.300706, 0.953717, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 175535, 329, 3695.37, -3301.16, 128.532, 2.79253, 0, 0, 0.984808, 0.173648, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 175535, 329, 3696.27, -3195.51, 127.796, 2.51327, 0, 0, 0.951057, 0.309017, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 175535, 329, 3696.97, -3298.02, 128.992, 2.79252, 0, 0, 0.984807, 0.173652, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 175535, 329, 3704.46, -3168.81, 127.617, 2.87979, 0, 0, 0.991445, 0.130526, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 175535, 329, 3711.94, -3147.64, 128.189, -2.94961, 0, 0, 0.995396, -0.095846, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 175535, 329, 3720.45, -3502.32, 130.548, 2.04204, 0, 0, 0.85264, 0.522499, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 175535, 329, 3729.11, -3450.53, 130.433, -2.1293, 0, 0, 0.87462, -0.48481, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 175535, 329, 3734.02, -3251.49, 129.542, 4.18879, 0, 0, -0.866025, 0.500001, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 175535, 329, 3738.43, -3477.54, 131.393, -2.86234, 0, 0, 0.990268, -0.139173, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 175535, 329, 3788.89, -3624.55, 146.377, 0.314159, 0, 0, 0.156434, 0.987688, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 175535, 329, 3802.48, -3652.31, 147.295, 0.488691, 0, 0, 0.241921, 0.970296, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 175535, 329, 3818.95, -3687.04, 144.695, -0.10472, 0, 0, 0.052336, -0.99863, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 175535, 329, 3830.18, -3577.71, 144.922, 5.63741, 0, 0, -0.317305, 0.948324, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 175535, 329, 3838.05, -3553.55, 140.413, 0.925024, 0, 0, 0.446198, 0.894934, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 175535, 329, 3862.17, -3610.11, 144.137, 2.84489, 0, 0, 0.989016, 0.147809, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 175535, 329, 3862.64, -3663.65, 144.775, 3.10669, 0, 0, 0.999848, 0.017452, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 175535, 329, 3870.84, -3598.91, 143.474, 2.61799, 0, 0, 0.965926, 0.258819, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 175535, 329, 3877.03, -3663.46, 143.9, -1.67552, 0, 0, 0.743145, -0.669131, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 175535, 329, 3880.02, -3517.12, 139.189, -2.58309, 0, 0, 0.961262, -0.275637, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 175535, 329, 3887.52, -3745.81, 142.36, 2.11185, 0, 0, 0.870356, 0.492424, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 175535, 329, 3888.71, -3699.08, 143.85, -0.383972, 0, 0, 0.190809, -0.981627, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 175535, 329, 3892.38, -3563.78, 138.099, -2.28638, 0, 0, 0.909961, -0.414693, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 175535, 329, 3952.68, -3632.92, 133.41, -2.51327, 0, 0, 0.951057, -0.309017, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 175535, 329, 3956.05, -3570.05, 129.894, 0.767945, 0, 0, 0.374607, 0.927184, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 175535, 329, 3961.73, -3539.9, 127.744, -0.244346, 0, 0, 0.121869, -0.992546, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 175535, 329, 3968.17, -3592.17, 129.298, 0.558505, 0, 0, 0.275637, 0.961262, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 175535, 329, 3973.62, -3619.9, 129.999, -2.37365, 0, 0, 0.927184, -0.374607, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 175535, 329, 3973.82, -3419.91, 120.918, 1.29154, 0, 0, 0.601815, 0.798636, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 175535, 329, 3981.9, -3359.74, 119.357, 0.890117, 0, 0, 0.430511, 0.902586, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 175535, 329, 3998.96, -3448.72, 122.307, 0.628319, 0, 0, 0.309017, 0.951057, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 175535, 329, 4009.57, -3585.86, 130.177, -1.91986, 0, 0, 0.819152, -0.573576, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 175535, 329, 4011.06, -3646.39, 131.552, 0.069813, 0, 0, 0.034899, 0.999391, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 175535, 329, 4011.67, -3518.38, 122.346, -0.698132, 0, 0, 0.34202, -0.939693, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 175535, 329, 4026.67, -3619.41, 131.54, 4.04917, 0, 0, -0.898793, 0.438373, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+73, 175535, 329, 4027.84, -3552.56, 125.429, 3.7001, 0, 0, -0.961261, 0.27564, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+74, 175535, 329, 4062.22, -3515.15, 123.116, -2.04204, 0, 0, 0.85264, -0.522498, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+75, 175535, 329, 4065.88, -3548.68, 124.621, 1.43117, 0, 0, 0.656059, 0.75471, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+76, 175535, 329, 4066.38, -3455.35, 120.555, -1.25664, 0, 0, 0.587785, -0.809017, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+77, 175535, 329, 4082.6, -3546.1, 124.622, 2.87979, 0, 0, 0.991445, 0.130528, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+78, 175535, 329, 4095.95, -3361.53, 117.661, -2.30383, 0, 0, 0.913545, -0.406737, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+79, 175535, 329, 4104.72, -3435.93, 117.802, 2.74017, 0, 0, 0.979925, 0.199368, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+80, 175535, 329, 4113.99, -3383.44, 117.806, 2.98451, 0, 0, 0.996917, 0.078459, 604800, 604800, 100, 1, 0, 0, 0, 10); + +UPDATE `gameobject_template` SET `script_name`='' WHERE `entry`=176304 AND `patch`=0; +DELETE FROM `gameobject_requirement` WHERE `guid` = 27888; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From c4ef579c4c3945aa42a00ce0985bab490e311a07 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sat, 15 Jul 2023 21:44:49 +0100 Subject: [PATCH 116/426] Large Solid Chest / Large Mithril Bound Chest - Dire Maul (#2083) --- sql/migrations/20230714180456_world.sql | 116 ++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 sql/migrations/20230714180456_world.sql diff --git a/sql/migrations/20230714180456_world.sql b/sql/migrations/20230714180456_world.sql new file mode 100644 index 00000000000..5b49543dceb --- /dev/null +++ b/sql/migrations/20230714180456_world.sql @@ -0,0 +1,116 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230714180456'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230714180456'); +-- Add your query below. + + +-- Dire Maul / 153464 / 153469 / Large Solid Chest / Large Mithril Bound Chest +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (429031, 429030, 429032, 429033)); +DELETE FROM `gameobject` WHERE `guid` IN (429031, 429030, 429032, 429033); +DELETE FROM `pool_gameobject` WHERE `guid` IN (429031, 429030, 429032, 429033); + +-- North +SET @OGUID = 2380; +SET @PTEMPLATE = 4800; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 153464, 429, 476.613, 570.668, 27.9231, 4.88692, 0, 0, -0.642787, 0.766045, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 153464, 429, 335.605, 366.155, 2.85293, 3.6652, 0, 0, -0.965925, 0.258821, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 153464, 429, 582.929, 608.082, -25.4027, 3.71755, 0, 0, -0.958819, 0.284016, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 153469, 429, 476.613, 570.668, 27.9231, 4.88692, 0, 0, -0.642787, 0.766045, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 153469, 429, 335.605, 366.155, 2.85293, 3.6652, 0, 0, -0.965925, 0.258821, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 153469, 429, 582.929, 608.082, -25.4027, 3.71755, 0, 0, -0.958819, 0.284016, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul North', 0, 10), +(@PTEMPLATE+2, 1, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul North', 0, 10), +(@PTEMPLATE+3, 1, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul North', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul North', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul North', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul North', 0, 10), +(@OGUID+4, @PTEMPLATE+1, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul North', 0, 10), +(@OGUID+5, @PTEMPLATE+2, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul North', 0, 10), +(@OGUID+6, @PTEMPLATE+3, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul North', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+4, 2, 'Dire Maul North - Large Solid Chest / Large Mithril Bound Chest (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+4, 0, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul North', 0), +(@PTEMPLATE+2, @PTEMPLATE+4, 0, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul North', 0), +(@PTEMPLATE+3, @PTEMPLATE+4, 0, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul North', 0); + +-- East +SET @OGUID = 2570; +SET @PTEMPLATE = 4810; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 153464, 429, 43.2012, -383.143, -58.6196, 4.55531, 0, 0, -0.760406, 0.649449, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 153464, 429, -16.1474, -383.786, -58.62, 4.95674, 0, 0, -0.615661, 0.788011, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 153464, 429, 68.3917, -397.177, -4.22106, 3.927, 0, 0, -0.923879, 0.382686, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 153469, 429, 43.2012, -383.143, -58.6196, 4.55531, 0, 0, -0.760406, 0.649449, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 153469, 429, -16.1474, -383.786, -58.62, 4.95674, 0, 0, -0.615661, 0.788011, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 153469, 429, 68.3917, -397.177, -4.22106, 3.927, 0, 0, -0.923879, 0.382686, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul East', 0, 10), +(@PTEMPLATE+2, 1, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul East', 0, 10), +(@PTEMPLATE+3, 1, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul East', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul East', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul East', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul East', 0, 10), +(@OGUID+4, @PTEMPLATE+1, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul East', 0, 10), +(@OGUID+5, @PTEMPLATE+2, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul East', 0, 10), +(@OGUID+6, @PTEMPLATE+3, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul East', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+4, 2, 'Dire Maul East - Large Solid Chest / Large Mithril Bound Chest (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+4, 0, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul East', 0), +(@PTEMPLATE+2, @PTEMPLATE+4, 0, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul East', 0), +(@PTEMPLATE+3, @PTEMPLATE+4, 0, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul East', 0); + +-- West +SET @OGUID = 2918; +SET @PTEMPLATE = 4820; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 153464, 429, 122.562, 392.1, 28.601, 3.07177, 0, 0, 0.999391, 0.0349061, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 153464, 429, 122.574, 366.941, -3.48382, 2.89725, 0, 0, 0.992546, 0.12187, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 153464, 429, -95.0448, 367.08, -3.48702, 4.95674, 0, 0, -0.615661, 0.788011, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 153469, 429, 122.562, 392.1, 28.601, 3.07177, 0, 0, 0.999391, 0.0349061, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 153469, 429, 122.574, 366.941, -3.48382, 2.89725, 0, 0, 0.992546, 0.12187, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 153469, 429, -95.0448, 367.08, -3.48702, 4.95674, 0, 0, -0.615661, 0.788011, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul West', 0, 10), +(@PTEMPLATE+2, 1, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul West', 0, 10), +(@PTEMPLATE+3, 1, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul West', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul West', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul West', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul West', 0, 10), +(@OGUID+4, @PTEMPLATE+1, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul West', 0, 10), +(@OGUID+5, @PTEMPLATE+2, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul West', 0, 10), +(@OGUID+6, @PTEMPLATE+3, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul West', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+4, 2, 'Dire Maul West - Large Solid Chest / Large Mithril Bound Chest (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+4, 0, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul West', 0), +(@PTEMPLATE+2, @PTEMPLATE+4, 0, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul West', 0), +(@PTEMPLATE+3, @PTEMPLATE+4, 0, 'Large Solid Chest / Large Mithril Bound Chest - Dire Maul West', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 99d8924639e58af6de82cc850d681cf778a30238 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 16 Jul 2023 03:38:32 +0300 Subject: [PATCH 117/426] Fix required rank not showing on items. --- src/game/Handlers/ItemHandler.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/game/Handlers/ItemHandler.cpp b/src/game/Handlers/ItemHandler.cpp index f63bd9ca5b6..dc8dc9ca3b6 100644 --- a/src/game/Handlers/ItemHandler.cpp +++ b/src/game/Handlers/ItemHandler.cpp @@ -329,12 +329,7 @@ void WorldSession::HandleItemQuerySingleOpcode(WorldPacket& recv_data) data << pProto->RequiredSkill; data << pProto->RequiredSkillRank; data << pProto->RequiredSpell; - // Item de style insigne - if (pProto->Spells[0].SpellId != 0) - data << uint32(0); - else - data << pProto->RequiredHonorRank; - + data << pProto->RequiredHonorRank; data << pProto->RequiredCityRank; #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 data << pProto->RequiredReputationFaction; From 5cff39fe5f69810acfd952279f959eede4514fb3 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 16 Jul 2023 13:53:01 +0100 Subject: [PATCH 118/426] Fix Migration (#2091) --- sql/migrations/20230713165825_world.sql | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/sql/migrations/20230713165825_world.sql b/sql/migrations/20230713165825_world.sql index 3ccf702d54f..fadeea47961 100644 --- a/sql/migrations/20230713165825_world.sql +++ b/sql/migrations/20230713165825_world.sql @@ -659,17 +659,17 @@ INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `fla -- Hakkari Thorium Vein INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES -(48962, 180215, 309, -11599, -1217.44, 80.3655, 1.72787, 0, 0, 0.760406, 0.649449, 180, 604800, 604800, 1, 0, 0, 0, 10), -(48963, 180215, 309, -11647.4, -1476.96, 50.3857, 4.31097, 0, 0, -0.833885, 0.551938, 180, 604800, 604800, 1, 0, 0, 0, 10), -(48964, 180215, 309, -12310.1, -1465.36, 130.6, 3.9619, 0, 0, -0.91706, 0.39875, 180, 604800, 604800, 1, 0, 0, 0, 10), -(48965, 180215, 309, -12398.2, -1934.43, 133.233, 0.733038, 0, 0, 0.358368, 0.93358, 180, 604800, 604800, 1, 0, 0, 0, 10), -(48966, 180215, 309, -11549.5, -1489.06, 73.2133, 3.71755, 0, 0, -0.958819, 0.284016, 180, 604800, 604800, 1, 0, 0, 0, 10), -(48967, 180215, 309, -12177.3, -1910.15, 130.807, 1.93731, 0, 0, 0.824125, 0.566408, 180, 604800, 604800, 1, 0, 0, 0, 10), -(48968, 180215, 309, -11803.5, -1905.71, 52.927, 2.54818, 0, 0, 0.956305, 0.292372, 180, 604800, 604800, 1, 0, 0, 0, 10), -(48969, 180215, 309, -12063.5, -1437.4, 130.23, 1.25664, 0, 0, 0.587785, 0.809017, 180, 604800, 604800, 1, 0, 0, 0, 10), -(48970, 180215, 309, -11546.4, -1745.06, 40.1541, 1.3439, 0, 0, 0.622514, 0.782609, 180, 604800, 604800, 1, 0, 0, 0, 10), -(48971, 180215, 309, -11994.2, -1458.62, 83.1144, 5.044, 0, 0, -0.580703, 0.814116, 180, 604800, 604800, 1, 0, 0, 0, 10), -(48972, 180215, 309, -11545.6, -1237.46, 79.2193, 2.37364, 0, 0, 0.927183, 0.374608, 180, 604800, 604800, 1, 0, 0, 0, 10); +(48962, 180215, 309, -11599, -1217.44, 80.3655, 1.72787, 0, 0, 0.760406, 0.649449, 604800, 604800, 100, 1, 0, 0, 0, 10), +(48963, 180215, 309, -11647.4, -1476.96, 50.3857, 4.31097, 0, 0, -0.833885, 0.551938, 604800, 604800, 100, 1, 0, 0, 0, 10), +(48964, 180215, 309, -12310.1, -1465.36, 130.6, 3.9619, 0, 0, -0.91706, 0.39875, 604800, 604800, 100, 1, 0, 0, 0, 10), +(48965, 180215, 309, -12398.2, -1934.43, 133.233, 0.733038, 0, 0, 0.358368, 0.93358, 604800, 604800, 100, 1, 0, 0, 0, 10), +(48966, 180215, 309, -11549.5, -1489.06, 73.2133, 3.71755, 0, 0, -0.958819, 0.284016, 604800, 604800, 100, 1, 0, 0, 0, 10), +(48967, 180215, 309, -12177.3, -1910.15, 130.807, 1.93731, 0, 0, 0.824125, 0.566408, 604800, 604800, 100, 1, 0, 0, 0, 10), +(48968, 180215, 309, -11803.5, -1905.71, 52.927, 2.54818, 0, 0, 0.956305, 0.292372, 604800, 604800, 100, 1, 0, 0, 0, 10), +(48969, 180215, 309, -12063.5, -1437.4, 130.23, 1.25664, 0, 0, 0.587785, 0.809017, 604800, 604800, 100, 1, 0, 0, 0, 10), +(48970, 180215, 309, -11546.4, -1745.06, 40.1541, 1.3439, 0, 0, 0.622514, 0.782609, 604800, 604800, 100, 1, 0, 0, 0, 10), +(48971, 180215, 309, -11994.2, -1458.62, 83.1144, 5.044, 0, 0, -0.580703, 0.814116, 604800, 604800, 100, 1, 0, 0, 0, 10), +(48972, 180215, 309, -11545.6, -1237.46, 79.2193, 2.37364, 0, 0, 0.927183, 0.374608, 604800, 604800, 100, 1, 0, 0, 0, 10); INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES (21401, 5, 'Zul\'Gurub - Hakkari Thorium Vein', 0, 10); From f9deb1fb5ca51d878ad9eea947239e7b6a5d80e2 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 16 Jul 2023 20:59:36 +0100 Subject: [PATCH 119/426] Add Missing Event Gameobjects (#2089) --- sql/migrations/20230715204759_world.sql | 317 ++++++++++++++++++++++++ 1 file changed, 317 insertions(+) create mode 100644 sql/migrations/20230715204759_world.sql diff --git a/sql/migrations/20230715204759_world.sql b/sql/migrations/20230715204759_world.sql new file mode 100644 index 00000000000..238f1602a31 --- /dev/null +++ b/sql/migrations/20230715204759_world.sql @@ -0,0 +1,317 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230715204759'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230715204759'); +-- Add your query below. + + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Darkmoon Faire +-- Missing Darkmoon Faire Banner spawns in Mulgore. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(3124, 179965, 1, -1308.96, 70.7016, 128.84, 5.67232, 0, 0, -0.300705, 0.953717, 25, 25, 1, 100, 4, 10), -- Closest existing guid is 3123 at 226.183655 yards. +(3125, 179965, 1, -1298.27, 104.962, 131.219, 0.331611, 0, 0, 0.165047, 0.986286, 25, 25, 1, 100, 4, 10); -- Closest existing guid is 3123 at 223.126831 yards. + +-- Correct position of Cannon Target in Elwynn Forest (position is off by 2.20151 yards). +UPDATE `gameobject` SET `position_x`=-9503.83, `position_y`=-373.21, `position_z`=57.7377, `orientation`=0.314158, `rotation0`=0, `rotation1`=0, `rotation2`=0.156434, `rotation3`=0.987688 WHERE `guid`=12992; + +-- Missing Cannon Target spawns in Mulgore. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(3995982, 180573, 1, -2183.33, -250.843, -14.9857, 4.93928, 0, 0, -0.622514, 0.782609, 25, 25, 1, 100, 6, 10); -- Closest existing guid is 3995981 at 242.836166 yards. + +DELETE FROM `gameobject` WHERE `guid` = 3995981; +DELETE FROM `game_event_gameobject` WHERE `guid` = 3995981; + +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(3124, 5), +(3125, 5), +(3995982, 5); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Fireworks +-- Missing Cheer Speaker spawns in Teldrassil. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(365323, 180749, 1, 8590.17, 1013.61, 5.25628, 5.44543, 0, 0, -0.406736, 0.913546, 120, 120, 1, 100, 6, 10); -- Closest existing guid is 365319 at 108.983604 yards. + +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(365323, 6); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Lunar Festival +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(662, 1, 'Firecrackers', 0, 0, 7, 10); +UPDATE `gameobject` SET `spawntimesecsmin` = 10, `spawntimesecsmax` = 10 WHERE `id` IN (180763, 180764, 180870, 180871, 180872, 180873); + +SET @OGUID = 47208; +SET @PTEMPLATE = 4251; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180763, 0, -8760.69, 1068.68, 92.3914, 3.07177, 0, 0, 0.999391, 0.0349061, 10, 10, 100, 1, 0, 0, 7, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 463, 'Firecrackers', 7, 10); +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+1, 7); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+2, 180763, 0, -8734.83, 1076.31, 92.3113, 0.541051, 0, 0, 0.267238, 0.963631, 10, 10, 100, 1, 0, 0, 7, 10), +(@OGUID+3, 180764, 0, -8734.83, 1076.31, 92.3113, 0.541051, 0, 0, 0.267238, 0.963631, 10, 10, 100, 1, 0, 0, 7, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+2, 464, 'Firecrackers', 7, 10), +(@OGUID+3, 464, 'Firecrackers', 7, 10); +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+2, 7), +(@OGUID+3, 7); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+4, 180764, 0, -4677.99, -959.548, 503.617, 0.314158, 0, 0, 0.156434, 0.987688, 10, 10, 100, 1, 0, 0, 7, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+4, 465, 'Firecrackers', 7, 10); +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+4, 7); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+5, 180764, 0, -4669.9, -941.939, 503.624, 5.21854, 0, 0, -0.507538, 0.861629, 10, 10, 100, 1, 0, 0, 7, 10), +(@OGUID+6, 180763, 0, -4669.9, -941.939, 503.624, 5.21854, 0, 0, -0.507538, 0.861629, 10, 10, 100, 1, 0, 0, 7, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+5, 466, 'Firecrackers', 7, 10), +(@OGUID+6, 466, 'Firecrackers', 7, 10); +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+5, 7), +(@OGUID+6, 7); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+7, 180763, 1, -1024.76, -237.99, 160.384, 1.95477, 0, 0, 0.829038, 0.559193, 10, 10, 100, 1, 0, 0, 7, 10), +(@OGUID+8, 180764, 1, -1024.76, -237.99, 160.384, 1.95477, 0, 0, 0.829038, 0.559193, 10, 10, 100, 1, 0, 0, 7, 10); +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Lunar Festival - Moonglade Lanterns', 7, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+7, @PTEMPLATE+1, 'Firecrackers', 7, 10), +(@OGUID+8, @PTEMPLATE+1, 'Firecrackers', 7, 10); +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+7, 7), +(@OGUID+8, 7); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+9, 180764, 1, 10149.7, 2592.52, 1332.08, 3.35105, 0, 0, -0.994521, 0.104536, 10, 10, 100, 1, 0, 0, 7, 10), +(@OGUID+10, 180763, 1, 10149.7, 2592.52, 1332.08, 3.35105, 0, 0, -0.994521, 0.104536, 10, 10, 100, 1, 0, 0, 7, 10); +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+2, 1, 'Lunar Festival - Moonglade Lanterns', 7, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+9, @PTEMPLATE+2, 'Firecrackers', 7, 10), +(@OGUID+10, @PTEMPLATE+2, 'Firecrackers', 7, 10); +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+9, 7), +(@OGUID+10, 7); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+11, 180773, 0, -5020.66, -834.843, 515.468, 2.25147, 0, 0, 0.902585, 0.430512, 120, 120, 100, 1, 0, 0, 7, 10); +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+11, 7); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+12, 180764, 0, -8760.69, 1068.68, 92.3914, 3.07177, 0, 0, 0.999391, 0.0349061, 10, 10, 100, 1, 0, 0, 7, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+12, 463, 'Firecrackers', 7, 10); +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+12, 7); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+13, 180763, 0, -4677.99, -959.548, 503.617, 0.314158, 0, 0, 0.156434, 0.987688, 10, 10, 100, 1, 0, 0, 7, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+13, 465, 'Firecrackers', 7, 10); +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+13, 7); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+14, 180763, 1, 10141.8, 2600.27, 1332.35, 0.296705, 0, 0, 0.147809, 0.989016, 10, 10, 100, 1, 0, 0, 7, 10), +(@OGUID+15, 180764, 1, 10141.8, 2600.27, 1332.35, 0.296705, 0, 0, 0.147809, 0.989016, 10, 10, 100, 1, 0, 0, 7, 10); +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+14, @PTEMPLATE+3, 'Firecrackers', 7, 10), +(@OGUID+15, @PTEMPLATE+3, 'Firecrackers', 7, 10); +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+14, 7), +(@OGUID+15, 7); + +UPDATE `gameobject` SET `map` = 1 WHERE `guid` IN (10321, 10314, 10307, 10300); +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Hallows End +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+16, 180471, 0, -12443.3, 216.361, 8.26588, 4.10153, 0, 0, -0.887011, 0.461749, 120, 120, 100, 1, 0, 0, 6, 10); +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+16, 12); +UPDATE `gameobject` SET `spawntimesecsmin` = 120, `spawntimesecsmax` = 120, `animprogress` = 100 WHERE `id` = 180471; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Scourge Invasion +UPDATE `gameobject` SET `position_x`=-5122.8, `position_y`=-697.666, `position_z`=505.467, `orientation`=0.0349062, `rotation0`=0, `rotation1`=0, `rotation2`=0.0174522, `rotation3`=0.999848 WHERE `guid`=67003; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Post Firework Toasting Goblets +SET @OGUID = 55703; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180754, 1, -1456.71, -39.4583, 158.845, 1.20428, 0, 0, 0.566406, 0.824126, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 180754, 1, -1455.85, -39.0256, 158.857, 2.84488, 0, 0, 0.989016, 0.147811, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 180754, 1, -1455.49, -40.2395, 158.84, 2.54818, 0, 0, 0.956305, 0.292372, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 180754, 1, -1455.1, -38.9667, 158.87, 2.04204, 0, 0, 0.85264, 0.522499, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 180754, 1, -1454.77, -39.7512, 158.851, 2.49582, 0, 0, 0.948323, 0.317306, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 180754, 1, -1321.81, 105.21, 132.429, 0.95993, 0, 0, 0.461748, 0.887011, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 180754, 1, -1321.63, 101.779, 132.429, 1.06465, 0, 0, 0.507538, 0.861629, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 180754, 1, -1321.45, 104.02, 132.436, 1.83259, 0, 0, 0.793353, 0.608762, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 180754, 1, -1321.17, 102.467, 132.429, 3.83973, 0, 0, -0.939692, 0.34202, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 180754, 1, -1320.67, 101.221, 132.443, 1.44862, 0, 0, 0.66262, 0.748956, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 180754, 1, -1320.46, 103.922, 132.457, 0.418879, 0, 0, 0.207911, 0.978148, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 180754, 1, -1320.34, 102.538, 132.422, 5.74214, 0, 0, -0.267238, 0.963631, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 180754, 1, -1320.16, 105.306, 132.443, 3.47321, 0, 0, -0.986285, 0.16505, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 180754, 1, -1320.12, 104.528, 132.436, 3.42085, 0, 0, -0.990268, 0.139175, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 180754, 1, -1320.07, 101.056, 132.443, 4.62512, 0, 0, -0.737277, 0.675591, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 180754, 1, -1217.19, -89.9486, 162.9, 0.296705, 0, 0, 0.147809, 0.989016, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 180754, 1, -1217.02, -88.968, 162.903, 1.3439, 0, 0, 0.622514, 0.782609, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 180754, 1, -1216.53, -90.4129, 162.9, 5.13127, 0, 0, -0.544639, 0.838671, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 180754, 1, -1216.25, -88.8155, 162.907, 2.74016, 0, 0, 0.979924, 0.19937, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 180754, 1, -1215.59, -89.9309, 162.923, 2.09439, 0, 0, 0.866025, 0.500001, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 180754, 1, -1215.57, -89.0477, 162.903, 5.81195, 0, 0, -0.233445, 0.97237, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 180754, 1, -1209.31, -90.6418, 162.86, 5.67232, 0, 0, -0.300705, 0.953717, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 180754, 1, -1208.9, -91.6519, 162.863, 5.74214, 0, 0, -0.267238, 0.963631, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 180754, 1, -1208.52, -90.7337, 162.866, 5.81195, 0, 0, -0.233445, 0.97237, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 180754, 1, -1208.08, -89.9221, 162.878, 4.79966, 0, 0, -0.67559, 0.737278, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 180754, 1, -1207.98, -91.8775, 162.874, 3.12412, 0, 0, 0.999962, 0.00873464, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 180754, 1, -1207.59, -90.6434, 162.875, 0.418879, 0, 0, 0.207911, 0.978148, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 180754, 1, -1201.6, -90.0652, 163.142, 2.72271, 0, 0, 0.978148, 0.207912, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 180754, 1, -1200.95, -90.8516, 163.158, 6.24828, 0, 0, -0.0174522, 0.999848, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 180754, 1, -1200.66, -89.2177, 163.138, 0.628317, 0, 0, 0.309016, 0.951057, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 180754, 1, -1199.95, -89.5551, 163.152, 2.3911, 0, 0, 0.930417, 0.366502, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 180754, 1, -1199.79, -90.5481, 163.134, 3.50812, 0, 0, -0.983254, 0.182238, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 180754, 1, 8587.59, 1010.29, 6.33336, 5.95157, 0, 0, -0.165047, 0.986286, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 180754, 1, 8587.78, 1011.42, 6.31071, 2.79252, 0, 0, 0.984807, 0.173652, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 180754, 1, 8588.37, 1010.7, 6.3177, 4.92183, 0, 0, -0.62932, 0.777146, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 180754, 1, 8588.86, 1010, 6.33269, 0.925024, 0, 0, 0.446198, 0.894935, 120, 120, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 180754, 1, 8589.02, 1011.21, 6.30349, 5.67232, 0, 0, -0.300705, 0.953717, 120, 120, 100, 1, 0, 0, 0, 10); + +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+1, 39), +(@OGUID+2, 39), +(@OGUID+3, 39), +(@OGUID+4, 39), +(@OGUID+5, 39), +(@OGUID+6, 39), +(@OGUID+7, 39), +(@OGUID+8, 39), +(@OGUID+9, 39), +(@OGUID+10, 39), +(@OGUID+11, 39), +(@OGUID+12, 39), +(@OGUID+13, 39), +(@OGUID+14, 39), +(@OGUID+15, 39), +(@OGUID+16, 39), +(@OGUID+17, 39), +(@OGUID+18, 39), +(@OGUID+19, 39), +(@OGUID+20, 39), +(@OGUID+21, 39), +(@OGUID+22, 39), +(@OGUID+23, 39), +(@OGUID+24, 39), +(@OGUID+25, 39), +(@OGUID+26, 39), +(@OGUID+27, 39), +(@OGUID+28, 39), +(@OGUID+29, 39), +(@OGUID+30, 39), +(@OGUID+31, 39), +(@OGUID+32, 39), +(@OGUID+33, 39), +(@OGUID+34, 39), +(@OGUID+35, 39), +(@OGUID+36, 39), +(@OGUID+37, 39); + +UPDATE `gameobject` SET `spawntimesecsmin` = 10, `spawntimesecsmax` = 10, `animprogress` = 100 WHERE `id` IN (180754, 180905); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- New Years Eve +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+38, 180700, 0, 1925.34, 257.455, 48.8972, 5.28835, 0, 0, -0.477159, 0.878817, 120, 120, 100, 1, 0, 0, 0, 10); + +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+38, 34), +(@OGUID+38, 38); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Event PVP Silithus +-- Missing Silithyst Geyser spawns in Silithus. +SET @OGUID = 57490; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 181598, 1, -6448.94, 1345.23, 3.04718, 2.23402, 0, 0, 0.898793, 0.438373, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49340 at 201.083466 yards. +(@OGUID+2, 181598, 1, -6576.1, 1324.81, 4.78865, 0.645772, 0, 0, 0.317305, 0.948324, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49345 at 88.992516 yards. +(@OGUID+3, 181598, 1, -7348.31, 348.449, 10.0677, 3.99681, 0, 0, -0.909961, 0.414694, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49350 at 107.414352 yards. +(@OGUID+4, 181598, 1, -7222.17, 954.327, 3.92101, 5.11382, 0, 0, -0.551936, 0.833886, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49343 at 194.487976 yards. +(@OGUID+5, 181598, 1, -6933.7, 1045.84, 1.90702, 2.74016, 0, 0, 0.979924, 0.19937, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49336 at 232.554733 yards. +(@OGUID+6, 181598, 1, -6990.93, 315.349, 2.8231, 0.471238, 0, 0, 0.233445, 0.97237, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49351 at 236.910706 yards. +(@OGUID+7, 181598, 1, -6566.02, 1214.98, 2.02324, 2.44346, 0, 0, 0.939692, 0.34202, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49345 at 109.123512 yards. +(@OGUID+8, 181598, 1, -7923.45, 1241.1, -2.82965, 3.15906, 0, 0, -0.999962, 0.00873464, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49344 at 105.111595 yards. +(@OGUID+9, 181598, 1, -7900.99, 1057.31, 1.10137, 2.68781, 0, 0, 0.97437, 0.224951, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49344 at 140.629883 yards. +(@OGUID+10, 181598, 1, -7150.96, 662.697, 11.7404, 4.34587, 0, 0, -0.824126, 0.566406, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49343 at 118.382813 yards. +(@OGUID+11, 181598, 1, -7084.57, 458.54, 2.37607, 3.56047, 0, 0, -0.978148, 0.207912, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49351 at 65.885979 yards. +(@OGUID+12, 181598, 1, -7751.31, 1582.35, -0.980123, 5.46288, 0, 0, -0.398748, 0.91706, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49337 at 106.032791 yards. +(@OGUID+13, 181598, 1, -7780.33, 1747.64, 0.851937, 4.13643, 0, 0, -0.878817, 0.47716, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49338 at 94.554810 yards. +(@OGUID+14, 181598, 1, -6715.63, 1013.58, 3.91696, 1.01229, 0, 0, 0.484809, 0.87462, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49340 at 272.484802 yards. +(@OGUID+15, 181598, 1, -6684.63, 1161.98, 2.45525, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49345 at 122.596489 yards. +(@OGUID+16, 181598, 1, -6586.35, 1086.76, 3.60263, 3.68265, 0, 0, -0.96363, 0.267241, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49340 at 123.938187 yards. +(@OGUID+17, 181598, 1, -7834.21, 1095.89, 4.26499, 4.79966, 0, 0, -0.67559, 0.737278, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49344 at 86.537560 yards. +(@OGUID+18, 181598, 1, -7946.98, 1742.17, -2.99056, 1.67551, 0, 0, 0.743144, 0.669131, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49338 at 119.552399 yards. +(@OGUID+19, 181598, 1, -7949.14, 1941.53, 6.34631, 4.43314, 0, 0, -0.798635, 0.601815, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49342 at 140.649551 yards. +(@OGUID+20, 181598, 1, -7042.22, 887.93, 8.64065, 6.24828, 0, 0, -0.0174522, 0.999848, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49336 at 77.460327 yards. +(@OGUID+21, 181598, 1, -7942.18, 990.718, 3.73395, 0.645772, 0, 0, 0.317305, 0.948324, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49346 at 154.215714 yards. +(@OGUID+22, 181598, 1, -7958.16, 926.969, 1.57018, 0.244346, 0, 0, 0.121869, 0.992546, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49346 at 93.156364 yards. +(@OGUID+23, 181598, 1, -6684.59, 1440.77, 1.66227, 0.0698117, 0, 0, 0.0348988, 0.999391, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49345 at 163.364960 yards. +(@OGUID+24, 181598, 1, -6784.92, 1371.87, 2.09836, 2.42601, 0, 0, 0.936672, 0.350207, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49347 at 109.774826 yards. +(@OGUID+25, 181598, 1, -7518.23, 1208.2, 0.012321, 0.104719, 0, 0, 0.0523357, 0.99863, 180, 180, 1, 100, 10, 10), -- Closest existing guid is 49339 at 242.870178 yards. +(@OGUID+26, 181598, 1, -7626.45, 1562.61, 7.87493, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 1, 100, 10, 10); -- Closest existing guid is 49339 at 187.061264 yards. + +-- Create new pool to hold Silithyst Geyser spawns in Silithus. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(76, 19, 'Silithus - Silithyst Geyser', 10, 10); +-- Add existing spawns to pool. +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(181598, 76, 0, 'Silithus - Silithyst Geyser', 10, 10); + +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+1, 103), +(@OGUID+2, 103), +(@OGUID+3, 103), +(@OGUID+4, 103), +(@OGUID+5, 103), +(@OGUID+6, 103), +(@OGUID+7, 103), +(@OGUID+8, 103), +(@OGUID+9, 103), +(@OGUID+10, 103), +(@OGUID+11, 103), +(@OGUID+12, 103), +(@OGUID+13, 103), +(@OGUID+14, 103), +(@OGUID+15, 103), +(@OGUID+16, 103), +(@OGUID+17, 103), +(@OGUID+18, 103), +(@OGUID+19, 103), +(@OGUID+20, 103), +(@OGUID+21, 103), +(@OGUID+22, 103), +(@OGUID+23, 103), +(@OGUID+24, 103), +(@OGUID+25, 103), +(@OGUID+26, 103); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From bdedf9edb8b269bad281ab77468f62313d40fba0 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 16 Jul 2023 21:04:07 +0100 Subject: [PATCH 120/426] Large Solid Chest / Large Mithril Bound Chest - Blackrock Spire (#2090) --- sql/migrations/20230715212000_world.sql | 167 ++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 sql/migrations/20230715212000_world.sql diff --git a/sql/migrations/20230715212000_world.sql b/sql/migrations/20230715212000_world.sql new file mode 100644 index 00000000000..aa714fc0391 --- /dev/null +++ b/sql/migrations/20230715212000_world.sql @@ -0,0 +1,167 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230715212000'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230715212000'); +-- Add your query below. + + +-- Blackrock Spire / 153464 / 153469 / Large Solid Chest / Large Mithril Bound Chest +SET @OGUID = 20199; +SET @PTEMPLATE = 3566; + +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (25437, 25438, 25439, 25450, 25451, 25452, 349151, 349152)); +DELETE FROM `gameobject` WHERE `guid` IN (25437, 25438, 25439, 25450, 25451, 25452, 349151, 349152); +DELETE FROM `pool_gameobject` WHERE `guid` IN (25437, 25438, 25439, 25450, 25451, 25452, 349151, 349152); + +-- Lower +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 153464, 229, -161.149, -494.667, -18.4564, 5.65487, 0, 0, -0.309016, 0.951057, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 153464, 229, -84.2677, -350.104, 70.9524, 1.91986, 0, 0, 0.819152, 0.573577, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 153464, 229, -20.2914, -361.811, 50.6356, 4.64258, 0, 0, -0.731354, 0.681998, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 153464, 229, 86.8551, -587.501, 30.6085, 3.05779, 0, 0, 0.999122, 0.0418896, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 153464, 229, -211.487, -486.088, 87.3902, 0.0523589, 0, 0, 0.0261765, 0.999657, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 153464, 229, -110.612, -423.628, -18.935, 3.4034, 0, 0, -0.991445, 0.130528, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 153464, 229, -78.8378, -582.575, -18.8325, 0.837757, 0, 0, 0.406736, 0.913546, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 153464, 229, -73.9985, -453.335, -18.935, 3.194, 0, 0, -0.999657, 0.0262016, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 153464, 229, -71.4806, -542.878, 29.1909, 0.453785, 0, 0, 0.224951, 0.97437, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 153464, 229, -64.869, -586.896, 29.1909, 0.890117, 0, 0, 0.430511, 0.902586, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 153464, 229, -43.7227, -302.812, 70.9442, 3.21142, 0, 0, -0.999391, 0.0349061, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 153464, 229, -39.6464, -472.58, -18.765, 4.81711, 0, 0, -0.66913, 0.743145, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 153464, 229, -36.1176, -583.828, -18.8201, 1.97222, 0, 0, 0.833885, 0.551938, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 153464, 229, 1.77013, -476.38, -18.7952, 3.22886, 0, 0, -0.999048, 0.0436193, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 153464, 229, 62.9164, -471.06, 26.0547, 2.75761, 0, 0, 0.981627, 0.190812, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 153469, 229, -161.149, -494.667, -18.4564, 5.65487, 0, 0, -0.309016, 0.951057, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 153469, 229, -84.2677, -350.104, 70.9524, 1.91986, 0, 0, 0.819152, 0.573577, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 153469, 229, -20.2914, -361.811, 50.6356, 4.64258, 0, 0, -0.731354, 0.681998, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 153469, 229, 86.8551, -587.501, 30.6085, 3.05779, 0, 0, 0.999122, 0.0418896, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 153469, 229, -211.487, -486.088, 87.3902, 0.0523589, 0, 0, 0.0261765, 0.999657, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 153469, 229, -110.612, -423.628, -18.935, 3.4034, 0, 0, -0.991445, 0.130528, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 153469, 229, -78.8378, -582.575, -18.8325, 0.837757, 0, 0, 0.406736, 0.913546, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 153469, 229, -73.9985, -453.335, -18.935, 3.194, 0, 0, -0.999657, 0.0262016, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 153469, 229, -71.4806, -542.878, 29.1909, 0.453785, 0, 0, 0.224951, 0.97437, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 153469, 229, -64.869, -586.896, 29.1909, 0.890117, 0, 0, 0.430511, 0.902586, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 153469, 229, -43.7227, -302.812, 70.9442, 3.21142, 0, 0, -0.999391, 0.0349061, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 153469, 229, -39.6464, -472.58, -18.765, 4.81711, 0, 0, -0.66913, 0.743145, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 153469, 229, -36.1176, -583.828, -18.8201, 1.97222, 0, 0, 0.833885, 0.551938, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 153469, 229, 1.77013, -476.38, -18.7952, 3.22886, 0, 0, -0.999048, 0.0436193, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 153469, 229, 62.9164, -471.06, 26.0547, 2.75761, 0, 0, 0.981627, 0.190812, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@PTEMPLATE+2, 1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@PTEMPLATE+3, 1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@PTEMPLATE+4, 1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@PTEMPLATE+5, 1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@PTEMPLATE+6, 1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@PTEMPLATE+7, 1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@PTEMPLATE+8, 1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@PTEMPLATE+9, 1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@PTEMPLATE+10, 1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@PTEMPLATE+11, 1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@PTEMPLATE+12, 1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@PTEMPLATE+13, 1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@PTEMPLATE+14, 1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@PTEMPLATE+15, 1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+16, @PTEMPLATE+1, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+17, @PTEMPLATE+2, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+18, @PTEMPLATE+3, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+19, @PTEMPLATE+4, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+20, @PTEMPLATE+5, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+21, @PTEMPLATE+6, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+22, @PTEMPLATE+7, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+23, @PTEMPLATE+8, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+24, @PTEMPLATE+9, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+25, @PTEMPLATE+10, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+26, @PTEMPLATE+11, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+27, @PTEMPLATE+12, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+28, @PTEMPLATE+13, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+29, @PTEMPLATE+14, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10), +(@OGUID+30, @PTEMPLATE+15, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+16, 5, 'Lower Blackrock Spire - Large Solid Chest / Large Mithril Bound Chest (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+16, 0, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0), +(@PTEMPLATE+2, @PTEMPLATE+16, 0, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0), +(@PTEMPLATE+3, @PTEMPLATE+16, 0, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0), +(@PTEMPLATE+4, @PTEMPLATE+16, 0, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0), +(@PTEMPLATE+5, @PTEMPLATE+16, 0, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0), +(@PTEMPLATE+6, @PTEMPLATE+16, 0, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0), +(@PTEMPLATE+7, @PTEMPLATE+16, 0, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0), +(@PTEMPLATE+8, @PTEMPLATE+16, 0, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0), +(@PTEMPLATE+9, @PTEMPLATE+16, 0, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0), +(@PTEMPLATE+10, @PTEMPLATE+16, 0, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0), +(@PTEMPLATE+11, @PTEMPLATE+16, 0, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0), +(@PTEMPLATE+12, @PTEMPLATE+16, 0, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0), +(@PTEMPLATE+13, @PTEMPLATE+16, 0, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0), +(@PTEMPLATE+14, @PTEMPLATE+16, 0, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0), +(@PTEMPLATE+15, @PTEMPLATE+16, 0, 'Large Solid Chest / Large Mithril Bound Chest - Lower Blackrock Spire', 0); + +SET @OGUID = 2531; +SET @PTEMPLATE = 287; + +-- Upper +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 153464, 229, 163.142, -241.759, 110.949, 4.2237, 0, 0, -0.857167, 0.515038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 153464, 229, 171.163, -290.776, 110.942, 3.08918, 0, 0, 0.999657, 0.0262016, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 153464, 229, 170.919, -334.745, 110.951, 3.08918, 0, 0, 0.999657, 0.0262016, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 153464, 229, 183.647, -369.15, 117.143, 2.44346, 0, 0, 0.939692, 0.34202, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 153469, 229, 163.142, -241.759, 110.949, 4.2237, 0, 0, -0.857167, 0.515038, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 153469, 229, 171.163, -290.776, 110.942, 3.08918, 0, 0, 0.999657, 0.0262016, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 153469, 229, 170.919, -334.745, 110.951, 3.08918, 0, 0, 0.999657, 0.0262016, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 153469, 229, 183.647, -369.15, 117.143, 2.44346, 0, 0, 0.939692, 0.34202, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Large Solid Chest / Large Mithril Bound Chest - Upper Blackrock Spire', 0, 10), +(@PTEMPLATE+2, 1, 'Large Solid Chest / Large Mithril Bound Chest - Upper Blackrock Spire', 0, 10), +(@PTEMPLATE+3, 1, 'Large Solid Chest / Large Mithril Bound Chest - Upper Blackrock Spire', 0, 10), +(@PTEMPLATE+4, 1, 'Large Solid Chest / Large Mithril Bound Chest - Upper Blackrock Spire', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Large Solid Chest / Large Mithril Bound Chest - Upper Blackrock Spire', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Large Solid Chest / Large Mithril Bound Chest - Upper Blackrock Spire', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Large Solid Chest / Large Mithril Bound Chest - Upper Blackrock Spire', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Large Solid Chest / Large Mithril Bound Chest - Upper Blackrock Spire', 0, 10), +(@OGUID+5, @PTEMPLATE+1, 'Large Solid Chest / Large Mithril Bound Chest - Upper Blackrock Spire', 0, 10), +(@OGUID+6, @PTEMPLATE+2, 'Large Solid Chest / Large Mithril Bound Chest - Upper Blackrock Spire', 0, 10), +(@OGUID+7, @PTEMPLATE+3, 'Large Solid Chest / Large Mithril Bound Chest - Upper Blackrock Spire', 0, 10), +(@OGUID+8, @PTEMPLATE+4, 'Large Solid Chest / Large Mithril Bound Chest - Upper Blackrock Spire', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+5, 2, 'Upper Blackrock Spire - Large Solid Chest / Large Mithril Bound Chest (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+5, 0, 'Large Solid Chest / Large Mithril Bound Chest - Upper Blackrock Spire', 0), +(@PTEMPLATE+2, @PTEMPLATE+5, 0, 'Large Solid Chest / Large Mithril Bound Chest - Upper Blackrock Spire', 0), +(@PTEMPLATE+3, @PTEMPLATE+5, 0, 'Large Solid Chest / Large Mithril Bound Chest - Upper Blackrock Spire', 0), +(@PTEMPLATE+4, @PTEMPLATE+5, 0, 'Large Solid Chest / Large Mithril Bound Chest - Upper Blackrock Spire', 0); + +DELETE FROM `gameobject_requirement` WHERE `guid` = 349151; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From f47a4de2157f6450fcf876637e940160a98d098b Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 16 Jul 2023 21:10:12 +0100 Subject: [PATCH 121/426] Add Missing Ancient Relic / Loose Soil (#2092) --- sql/migrations/20230716193558_world.sql | 316 ++++++++++++++++++++++++ 1 file changed, 316 insertions(+) create mode 100644 sql/migrations/20230716193558_world.sql diff --git a/sql/migrations/20230716193558_world.sql b/sql/migrations/20230716193558_world.sql new file mode 100644 index 00000000000..61b72b8f378 --- /dev/null +++ b/sql/migrations/20230716193558_world.sql @@ -0,0 +1,316 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230716193558'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230716193558'); +-- Add your query below. + + +-- Ancient Relic / Loose Soil +SET @OGUID = 39286; +SET @PTEMPLATE = 9338; + +DELETE FROM `pool_template` WHERE `entry` IN (152, 162, 1599, 1598); +DELETE FROM `gameobject` WHERE `guid` IN (9733, 9734, 9735, 9736, 9737, 9738, 9739, 9740, 9741, 9742, 9743, 9744, 9745, 9746, 9747, 9748, 65940, 65941, 65942, 65943, 65944, 65945, 65946, 65947, 65948, 65949, 65950, 65951); +DELETE FROM `pool_gameobject_template` WHERE `pool_entry` IN (152, 162, 1599, 1598); + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 331, 0, -3308.06, -1899.06, 31.7356, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 331, 0, -3373.47, -1810.15, 16.2407, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 331, 0, -3391.45, -1783.01, 25.2344, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 331, 0, -3392.07, -1857.27, 25.8701, 0.331611, 0, 0, 0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 331, 0, -3393.8, -1825.06, 24.913, 1.09956, 0, 0, 0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 331, 0, -3408.6, -1807.26, 17.8659, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 331, 0, -3420.89, -1856.84, 16.9872, 2.51327, 0, 0, 0.951056, 0.309017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 331, 0, -3425.58, -1758.09, 28.0262, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+9, 331, 0, -3432.51, -1790.23, 16.3942, 4.15388, 0, 0, -0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+10, 331, 0, -3457.06, -1770.1, 16.3745, 5.70723, 0, 0, -0.284015, 0.95882, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+11, 331, 0, -3461.63, -1803.47, 25.7061, 4.45059, 0, 0, -0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+12, 331, 0, -3469.87, -1836.43, 17.2882, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+13, 331, 0, -3470.78, -1863.77, 24.0417, 5.49779, 0, 0, -0.382683, 0.92388, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+14, 331, 0, -3485.88, -1727.12, 34.5372, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+15, 331, 0, -3490.14, -1787.05, 17.0477, 1.0821, 0, 0, 0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+16, 331, 0, -3494.47, -1883.25, 16.2407, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+17, 331, 0, -3498.22, -1844.42, 16.4291, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+18, 331, 0, -3500.26, -1766.83, 16.417, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+19, 331, 0, -3522.12, -1799.96, 23.9379, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+20, 331, 0, -3525.93, -1884.6, 24.2428, 5.70723, 0, 0, -0.284015, 0.95882, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+21, 331, 0, -3537.32, -1830.63, 16.2407, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+22, 331, 0, -3549.77, -1723.89, 81.994, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+23, 331, 0, -3550.56, -1805.25, 27.3557, 5.93412, 0, 0, -0.173648, 0.984808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+24, 331, 0, -3556.36, -1744.41, 78.9947, 6.21337, 0, 0, -0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+25, 331, 0, -3568.4, -1845.56, 24.3617, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+26, 331, 0, -3563.83, -1767.35, 79.1001, 4.26498, 0, 0, 0.846354, -0.53262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+27, 331, 0, -3371.96, -1846.54, 16.5207, -1.8326, 0, 0, 0.793353, -0.608761, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+28, 331, 0, -3444.59, -1833.84, 24.9106, -1.39626, 0, 0, 0.642788, -0.766044, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+29, 333, 0, -3308.06, -1899.06, 31.7356, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+30, 333, 0, -3373.47, -1810.15, 16.2407, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+31, 333, 0, -3391.45, -1783.01, 25.2344, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+32, 333, 0, -3392.07, -1857.27, 25.8701, 0.331611, 0, 0, 0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+33, 333, 0, -3393.8, -1825.06, 24.913, 1.09956, 0, 0, 0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+34, 333, 0, -3408.6, -1807.26, 17.8659, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+35, 333, 0, -3420.89, -1856.84, 16.9872, 2.51327, 0, 0, 0.951056, 0.309017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+36, 333, 0, -3425.58, -1758.09, 28.0262, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+37, 333, 0, -3432.51, -1790.23, 16.3942, 4.15388, 0, 0, -0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+38, 333, 0, -3457.06, -1770.1, 16.3745, 5.70723, 0, 0, -0.284015, 0.95882, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+39, 333, 0, -3461.63, -1803.47, 25.7061, 4.45059, 0, 0, -0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+40, 333, 0, -3469.87, -1836.43, 17.2882, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+41, 333, 0, -3470.78, -1863.77, 24.0417, 5.49779, 0, 0, -0.382683, 0.92388, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+42, 333, 0, -3485.88, -1727.12, 34.5372, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+43, 333, 0, -3490.14, -1787.05, 17.0477, 1.0821, 0, 0, 0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+44, 333, 0, -3494.47, -1883.25, 16.2407, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+45, 333, 0, -3498.22, -1844.42, 16.4291, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+46, 333, 0, -3500.26, -1766.83, 16.417, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+47, 333, 0, -3522.12, -1799.96, 23.9379, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+48, 333, 0, -3525.93, -1884.6, 24.2428, 5.70723, 0, 0, -0.284015, 0.95882, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+49, 333, 0, -3537.32, -1830.63, 16.2407, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+50, 333, 0, -3549.77, -1723.89, 81.994, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+51, 333, 0, -3550.56, -1805.25, 27.3557, 5.93412, 0, 0, -0.173648, 0.984808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+52, 333, 0, -3556.36, -1744.41, 78.9947, 6.21337, 0, 0, -0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+53, 333, 0, -3568.4, -1845.56, 24.3617, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+54, 333, 0, -3563.83, -1767.35, 79.1001, 4.26498, 0, 0, 0.846354, -0.53262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+55, 333, 0, -3371.96, -1846.54, 16.5207, -1.8326, 0, 0, 0.793353, -0.608761, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+56, 333, 0, -3444.59, -1833.84, 24.9106, -1.39626, 0, 0, 0.642788, -0.766044, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+57, 334, 0, -3308.06, -1899.06, 31.7356, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+58, 334, 0, -3373.47, -1810.15, 16.2407, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+59, 334, 0, -3391.45, -1783.01, 25.2344, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+60, 334, 0, -3392.07, -1857.27, 25.8701, 0.331611, 0, 0, 0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+61, 334, 0, -3393.8, -1825.06, 24.913, 1.09956, 0, 0, 0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+62, 334, 0, -3408.6, -1807.26, 17.8659, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+63, 334, 0, -3420.89, -1856.84, 16.9872, 2.51327, 0, 0, 0.951056, 0.309017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+64, 334, 0, -3425.58, -1758.09, 28.0262, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+65, 334, 0, -3432.51, -1790.23, 16.3942, 4.15388, 0, 0, -0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+66, 334, 0, -3457.06, -1770.1, 16.3745, 5.70723, 0, 0, -0.284015, 0.95882, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+67, 334, 0, -3461.63, -1803.47, 25.7061, 4.45059, 0, 0, -0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+68, 334, 0, -3469.87, -1836.43, 17.2882, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+69, 334, 0, -3470.78, -1863.77, 24.0417, 5.49779, 0, 0, -0.382683, 0.92388, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+70, 334, 0, -3485.88, -1727.12, 34.5372, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+71, 334, 0, -3490.14, -1787.05, 17.0477, 1.0821, 0, 0, 0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+72, 334, 0, -3494.47, -1883.25, 16.2407, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+73, 334, 0, -3498.22, -1844.42, 16.4291, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+74, 334, 0, -3500.26, -1766.83, 16.417, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+75, 334, 0, -3522.12, -1799.96, 23.9379, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+76, 334, 0, -3525.93, -1884.6, 24.2428, 5.70723, 0, 0, -0.284015, 0.95882, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+77, 334, 0, -3537.32, -1830.63, 16.2407, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+78, 334, 0, -3549.77, -1723.89, 81.994, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+79, 334, 0, -3550.56, -1805.25, 27.3557, 5.93412, 0, 0, -0.173648, 0.984808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+80, 334, 0, -3556.36, -1744.41, 78.9947, 6.21337, 0, 0, -0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+81, 334, 0, -3568.4, -1845.56, 24.3617, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+82, 334, 0, -3563.83, -1767.35, 79.1001, 4.26498, 0, 0, 0.846354, -0.53262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+83, 334, 0, -3371.96, -1846.54, 16.5207, -1.8326, 0, 0, 0.793353, -0.608761, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+84, 334, 0, -3444.59, -1833.84, 24.9106, -1.39626, 0, 0, 0.642788, -0.766044, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+85, 35252, 0, -3308.06, -1899.06, 31.7356, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+86, 35252, 0, -3373.47, -1810.15, 16.2407, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+87, 35252, 0, -3391.45, -1783.01, 25.2344, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+88, 35252, 0, -3392.07, -1857.27, 25.8701, 0.331611, 0, 0, 0.165047, 0.986286, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+89, 35252, 0, -3393.8, -1825.06, 24.913, 1.09956, 0, 0, 0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+90, 35252, 0, -3408.6, -1807.26, 17.8659, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+91, 35252, 0, -3420.89, -1856.84, 16.9872, 2.51327, 0, 0, 0.951056, 0.309017, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+92, 35252, 0, -3425.58, -1758.09, 28.0262, 4.17134, 0, 0, -0.870356, 0.492424, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+93, 35252, 0, -3432.51, -1790.23, 16.3942, 4.15388, 0, 0, -0.874619, 0.48481, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+94, 35252, 0, -3457.06, -1770.1, 16.3745, 5.70723, 0, 0, -0.284015, 0.95882, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+95, 35252, 0, -3461.63, -1803.47, 25.7061, 4.45059, 0, 0, -0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+96, 35252, 0, -3469.87, -1836.43, 17.2882, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+97, 35252, 0, -3470.78, -1863.77, 24.0417, 5.49779, 0, 0, -0.382683, 0.92388, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+98, 35252, 0, -3485.88, -1727.12, 34.5372, 0.0349062, 0, 0, 0.0174522, 0.999848, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+99, 35252, 0, -3490.14, -1787.05, 17.0477, 1.0821, 0, 0, 0.515038, 0.857168, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+100, 35252, 0, -3494.47, -1883.25, 16.2407, 5.18363, 0, 0, -0.522498, 0.85264, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+101, 35252, 0, -3498.22, -1844.42, 16.4291, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+102, 35252, 0, -3500.26, -1766.83, 16.417, 2.67035, 0, 0, 0.972369, 0.233448, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+103, 35252, 0, -3522.12, -1799.96, 23.9379, 4.46804, 0, 0, -0.788011, 0.615662, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+104, 35252, 0, -3525.93, -1884.6, 24.2428, 5.70723, 0, 0, -0.284015, 0.95882, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+105, 35252, 0, -3537.32, -1830.63, 16.2407, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+106, 35252, 0, -3549.77, -1723.89, 81.994, 2.75761, 0, 0, 0.981627, 0.190812, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+107, 35252, 0, -3550.56, -1805.25, 27.3557, 5.93412, 0, 0, -0.173648, 0.984808, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+108, 35252, 0, -3556.36, -1744.41, 78.9947, 6.21337, 0, 0, -0.0348988, 0.999391, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+109, 35252, 0, -3568.4, -1845.56, 24.3617, 3.31614, 0, 0, -0.996194, 0.087165, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+110, 35252, 0, -3563.83, -1767.35, 79.1001, 4.26498, 0, 0, 0.846354, -0.53262, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+111, 35252, 0, -3371.96, -1846.54, 16.5207, -1.8326, 0, 0, 0.793353, -0.608761, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+112, 35252, 0, -3444.59, -1833.84, 24.9106, -1.39626, 0, 0, 0.642788, -0.766044, 180, 180, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+2, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+3, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+4, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+5, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+6, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+7, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+8, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+9, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+10, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+11, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+12, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+13, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+14, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+15, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+16, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+17, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+18, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+19, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+20, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+21, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+22, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+23, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+24, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+25, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+26, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+27, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@PTEMPLATE+28, 1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+3, @PTEMPLATE+3, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+4, @PTEMPLATE+4, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+5, @PTEMPLATE+5, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+6, @PTEMPLATE+6, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+7, @PTEMPLATE+7, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+8, @PTEMPLATE+8, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+9, @PTEMPLATE+9, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+10, @PTEMPLATE+10, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+11, @PTEMPLATE+11, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+12, @PTEMPLATE+12, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+13, @PTEMPLATE+13, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+14, @PTEMPLATE+14, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+15, @PTEMPLATE+15, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+16, @PTEMPLATE+16, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+17, @PTEMPLATE+17, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+18, @PTEMPLATE+18, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+19, @PTEMPLATE+19, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+20, @PTEMPLATE+20, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+21, @PTEMPLATE+21, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+22, @PTEMPLATE+22, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+23, @PTEMPLATE+23, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+24, @PTEMPLATE+24, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+25, @PTEMPLATE+25, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+26, @PTEMPLATE+26, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+27, @PTEMPLATE+27, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+28, @PTEMPLATE+28, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+29, @PTEMPLATE+1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+30, @PTEMPLATE+2, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+31, @PTEMPLATE+3, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+32, @PTEMPLATE+4, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+33, @PTEMPLATE+5, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+34, @PTEMPLATE+6, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+35, @PTEMPLATE+7, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+36, @PTEMPLATE+8, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+37, @PTEMPLATE+9, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+38, @PTEMPLATE+10, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+39, @PTEMPLATE+11, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+40, @PTEMPLATE+12, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+41, @PTEMPLATE+13, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+42, @PTEMPLATE+14, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+43, @PTEMPLATE+15, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+44, @PTEMPLATE+16, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+45, @PTEMPLATE+17, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+46, @PTEMPLATE+18, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+47, @PTEMPLATE+19, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+48, @PTEMPLATE+20, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+49, @PTEMPLATE+21, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+50, @PTEMPLATE+22, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+51, @PTEMPLATE+23, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+52, @PTEMPLATE+24, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+53, @PTEMPLATE+25, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+54, @PTEMPLATE+26, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+55, @PTEMPLATE+27, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+56, @PTEMPLATE+28, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+57, @PTEMPLATE+1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+58, @PTEMPLATE+2, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+59, @PTEMPLATE+3, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+60, @PTEMPLATE+4, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+61, @PTEMPLATE+5, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+62, @PTEMPLATE+6, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+63, @PTEMPLATE+7, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+64, @PTEMPLATE+8, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+65, @PTEMPLATE+9, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+66, @PTEMPLATE+10, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+67, @PTEMPLATE+11, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+68, @PTEMPLATE+12, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+69, @PTEMPLATE+13, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+70, @PTEMPLATE+14, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+71, @PTEMPLATE+15, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+72, @PTEMPLATE+16, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+73, @PTEMPLATE+17, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+74, @PTEMPLATE+18, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+75, @PTEMPLATE+19, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+76, @PTEMPLATE+20, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+77, @PTEMPLATE+21, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+78, @PTEMPLATE+22, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+79, @PTEMPLATE+23, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+80, @PTEMPLATE+24, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+81, @PTEMPLATE+25, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+82, @PTEMPLATE+26, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+83, @PTEMPLATE+27, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+84, @PTEMPLATE+28, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+85, @PTEMPLATE+1, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+86, @PTEMPLATE+2, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+87, @PTEMPLATE+3, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+88, @PTEMPLATE+4, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+89, @PTEMPLATE+5, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+90, @PTEMPLATE+6, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+91, @PTEMPLATE+7, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+92, @PTEMPLATE+8, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+93, @PTEMPLATE+9, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+94, @PTEMPLATE+10, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+95, @PTEMPLATE+11, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+96, @PTEMPLATE+12, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+97, @PTEMPLATE+13, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+98, @PTEMPLATE+14, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+99, @PTEMPLATE+15, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+100, @PTEMPLATE+16, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+101, @PTEMPLATE+17, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+102, @PTEMPLATE+18, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+103, @PTEMPLATE+19, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+104, @PTEMPLATE+20, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+105, @PTEMPLATE+21, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+106, @PTEMPLATE+22, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+107, @PTEMPLATE+23, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+108, @PTEMPLATE+24, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+109, @PTEMPLATE+25, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+110, @PTEMPLATE+26, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+111, @PTEMPLATE+27, 'Ancient Relic / Loose Soil - Wetlands', 0, 10), +(@OGUID+112, @PTEMPLATE+28, 'Ancient Relic / Loose Soil - Wetlands', 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+29, 13, 'Wetlands - Ancient Relic / Loose Soil (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(@PTEMPLATE+1, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+2, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+3, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+4, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+5, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+6, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+7, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+8, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+9, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+10, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+11, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+12, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+13, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+14, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+15, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+16, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+17, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+18, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+19, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+20, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+21, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+22, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+23, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+24, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+25, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+26, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+27, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0), +(@PTEMPLATE+28, @PTEMPLATE+29, 0, 'Ancient Relic / Loose Soil - Wetlands', 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From f9e4ccbf92b69d57e52588eb46ff13d6d41bf3a6 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Sun, 16 Jul 2023 21:14:32 +0100 Subject: [PATCH 122/426] Final Tidy and Additions - Objects (#2093) --- sql/migrations/20230716195542_world.sql | 189 ++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 sql/migrations/20230716195542_world.sql diff --git a/sql/migrations/20230716195542_world.sql b/sql/migrations/20230716195542_world.sql new file mode 100644 index 00000000000..e63321b4a35 --- /dev/null +++ b/sql/migrations/20230716195542_world.sql @@ -0,0 +1,189 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230716195542'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230716195542'); +-- Add your query below. + + +-- Lesser Bloodstone Deposit / Iron Deposit - Arathi Highlands +DELETE FROM `pool_gameobject` WHERE `guid` = 25331; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(324, 1735, 0, -864.812, -3980.47, 149.623, 0.226892, 0, 0, 0.113203, 0.993572, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(2218, 1, 'Lesser Bloodstone Deposit / Iron Deposit - Arathi Highlands', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(324, 2218, 'Lesser Bloodstone Deposit / Iron Deposit - Arathi Highlands', 10), +(25331, 2218, 'Lesser Bloodstone Deposit / Iron Deposit - Arathi Highlands', 10); + +DELETE FROM `pool_gameobject` WHERE `guid` = 25330; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(325, 1735, 0, -847.617, -3965.75, 150.471, 0.226892, 0, 0, 0.113203, 0.993572, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(2219, 1, 'Lesser Bloodstone Deposit / Iron Deposit - Arathi Highlands', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(325, 2219, 'Lesser Bloodstone Deposit / Iron Deposit - Arathi Highlands', 10), +(25330, 2219, 'Lesser Bloodstone Deposit / Iron Deposit - Arathi Highlands', 10); + +DELETE FROM `pool_gameobject` WHERE `guid` = 25339; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(326, 2040, 0, -874.558, -3911.16, 134.068, 5.3058, 0, 0, -0.469471, 0.882948, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(2220, 1, 'Lesser Bloodstone Deposit / Mithril Deposit - Arathi Highlands', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(326, 2220, 'Lesser Bloodstone Deposit / Mithril Deposit - Arathi Highlands', 10), +(25339, 2220, 'Lesser Bloodstone Deposit / Mithril Deposit - Arathi Highlands', 10); + +DELETE FROM `pool_gameobject` WHERE `guid` = 25340; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(327, 2040, 0, -857.528, -3931.43, 149.044, 6.07375, 0, 0, -0.104528, 0.994522, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(2221, 1, 'Lesser Bloodstone Deposit / Mithril Deposit - Arathi Highlands', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(327, 2221, 'Lesser Bloodstone Deposit / Mithril Deposit - Arathi Highlands', 10), +(25340, 2221, 'Lesser Bloodstone Deposit / Mithril Deposit - Arathi Highlands', 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `flags`, `instance`, `patch_min`, `patch_max`) VALUES +(2222, 1, 'Arathi Highlands - Lesser Bloodstone Deposit / Mithril Deposit / Iron Deposit (Master Pool)', 0, 0, 0, 10); +INSERT INTO `pool_pool` (`pool_id`, `mother_pool`, `chance`, `description`, `flags`) VALUES +(2218, 2222, 0, 'Lesser Bloodstone Deposit / Mithril Deposit - Arathi Highlands', 0), +(2219, 2222, 0, 'Lesser Bloodstone Deposit / Mithril Deposit - Arathi Highlands', 0), +(2220, 2222, 0, 'Lesser Bloodstone Deposit / Mithril Deposit - Arathi Highlands', 0), +(2221, 2222, 0, 'Lesser Bloodstone Deposit / Mithril Deposit - Arathi Highlands', 0); + +UPDATE `gameobject` SET `id` = 1735 WHERE `guid` = 20295; + +-- Iron Deposit / Mithril Deposit - Dustwallow Marsh +DELETE FROM `pool_gameobject` WHERE `guid` = 220415; + +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(328, 1735, 1, -4346.2, -3005.47, 35.1079, 1.11701, 0, 0, 0.529919, 0.848048, 300, 300, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_max`) VALUES +(2223, 1, 'Iron Deposit / Mithril Deposit - Dustwallow Marsh', 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_max`) VALUES +(328, 2223, 'Iron Deposit / Mithril Deposit - Dustwallow Marsh', 10), +(220415, 2223, 'Iron Deposit / Mithril Deposit - Dustwallow Marsh', 10); + +UPDATE `gameobject` SET `id` = 2047 WHERE `guid` = 28017; + +UPDATE `gameobject` SET `id` = 324 WHERE `guid` = 261642; + +-- Correct position of Mageroyal in Durotar (position is off by 0.270046 yards). +UPDATE `gameobject` SET `position_x`=1001.31, `position_y`=-4820.73, `position_z`=16.7528, `orientation`=6.0912, `rotation0`=0, `rotation1`=0, `rotation2`=-0.0958452, `rotation3`=0.995396 WHERE `guid`=2097; + +-- Missing Mageroyal spawns in Duskwood. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(33491, 1620, 0, -10918.7, -1349.68, 54.6477, 2.32129, 0, 0, 0.91706, 0.39875, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 33486 at 115.718697 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(33491, 1116, 0, 'Mageroyal', 0, 10); -- Mageroyal in Duskwood + +-- Missing Mageroyal spawns in Westfall. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(2325, 1620, 0, -11040.9, 663.256, 34.9821, 1.83259, 0, 0, 0.793353, 0.608762, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 2320 at 130.184174 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(2325, 1116, 0, 'Mageroyal', 0, 10); -- Mageroyal in Westfall + +-- Missing Kingsblood spawns in Stranglethorn Vale. +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`, `patch_min`, `patch_max`) VALUES +(43648, 1624, 0, -11865, 232.543, 16.3644, 4.04917, 0, 0, -0.898793, 0.438373, 300, 300, 1, 100, 0, 10); -- Closest existing guid is 43451 at 5.431407 yards. +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(43648, 1170, 0, 'Kingsblood', 0, 10); + +-- Missing Campfire +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(3281, 1921, 1, 4639.52, 147.078, 58.1845, 3.14322, -0.0174499, -0.0174494, -0.999695, 0.00111879, 180, 180, 100, 1, 0, 0, 0, 10); + +-- Missing Signs +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(2711, 2128, 0, -8843.62, 922.388, 101.183, 3.63901, 0, 0, -0.969231, 0.246154, 180, 180, 100, 1, 0, 0, 0, 10), +(2712, 2165, 0, -8899.29, 971.613, 122.171, 3.06302, 0, 0, 0.999228, 0.039274, 180, 180, 100, 1, 0, 0, 0, 10), +(2713, 2178, 0, -8845.38, 922.911, 101.783, 2.06822, 0, 0, 0.859406, 0.511293, 180, 180, 100, 1, 0, 0, 0, 10), +(2714, 2171, 0, -8827.23, 957.502, 99.847, 2.2602, 0, 0, 0.904454, 0.426571, 180, 180, 100, 1, 0, 0, 0, 10), +(2715, 2186, 0, -8726.22, 892.581, 100.563, 3.831, 0, 0, -0.941175, 0.337918, 180, 180, 100, 1, 0, 0, 0, 10), +(2716, 2191, 0, -8706.76, 865.956, 97.3634, 2.2602, 0, 0, 0.904454, 0.426571, 180, 180, 100, 1, 0, 0, 0, 10), +(2717, 2179, 0, -8704.93, 865.779, 96.7633, 3.831, 0, 0, -0.941175, 0.337918, 180, 180, 100, 1, 0, 0, 0, 10), +(2718, 2157, 0, -8616.12, 872.506, 99.485, 5.38434, 0, 0, -0.434444, 0.900699, 180, 180, 100, 1, 0, 0, 0, 10), +(2719, 2131, 0, -8508.36, 659.892, 99.9641, 0.60214, 0, 0, 0.296542, 0.95502, 180, 180, 100, 1, 0, 0, 0, 10); +DELETE FROM `gameobject` WHERE `guid` IN (12084, 5198, 5517, 4958, 5136, 4718, 10674, 26299); + +DELETE FROM `gameobject` WHERE `guid`=10254; +DELETE FROM `gameobject` WHERE `guid`=10292; +DELETE FROM `gameobject` WHERE `guid`=12313; +UPDATE `gameobject` SET `spawntimesecsmin` = 10, `spawntimesecsmax` = 10 WHERE `id` IN (176142, 2086, 175785, 176116, 176143, 2087, 179908, 1727, 175966, 176249, 181053, 175708, 11713, 176630, 177785, 13360, 142191, 154357, 12654, 13872, 141931, 175334, 175928, 152620, 152621, 140911); +UPDATE `gameobject` SET `spawntimesecsmin` = 60, `spawntimesecsmax` = 60 WHERE `id` IN (89634, 271, 11714, 28604, 177926, 178184, 178185, 178186, 2712, 22246, 180658, 89635, 19016, 3290, 17282); +UPDATE `gameobject` SET `spawntimesecsmin` = 604800, `spawntimesecsmax` = 604800 WHERE `id` = 180215; +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 164662; +UPDATE `gameobject` SET `spawntimesecsmin` = 180, `spawntimesecsmax` = 180 WHERE `id` = 24798; + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(21603, 4, 'Azshara - Azsharite Formation', 10, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(152620, 21603, 0, 'Azshara - Azsharite Formation', 10, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(21604, 4, 'Azshara - Azsharite Formation', 10, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(152621, 21604, 0, 'Azshara - Azsharite Formation', 10, 10); + +UPDATE `pool_gameobject_template` SET `description`='Artificial Extrapolator - Gnomeregan' WHERE `id`=142344; + +UPDATE `gameobject` SET `spawntimesecsmin` = 0, `spawntimesecsmax` = 0 WHERE `guid` IN (142076, 6083, 10868, 10027, 9417); + +SET @OGUID = 4892; +-- Missing Campfire +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3201, 0, -4667.15, -1715.61, 503.324, 2.59181, 0, 0, 0.962455, 0.271442, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3797, 529, 824.073, 843.036, -56.6029, 1.61443, 0, 0, 0.722363, 0.691514, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3798, 529, 824.056, 842.141, -56.6029, 0.322884, 0, 0, 0.160742, 0.986997, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3799, 0, -10021.2, 36.2398, 35.1069, 4.11025, 0, 0, -0.884987, 0.465616, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+5, 3799, 0, -9053.04, 150.941, 114.97, 0.305433, 0, 0, 0.152123, 0.988361, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+6, 3800, 0, -10020.7, 35.5148, 35.1069, 5.40179, 0, 0, -0.426569, 0.904455, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+7, 3800, 0, -9275.17, 677.059, 132.779, 1.91113, 0, 0, 0.816641, 0.577146, 180, 180, 100, 1, 0, 0, 0, 10), +(@OGUID+8, 3800, 0, -9053.01, 151.835, 114.97, 1.59697, 0, 0, 0.716301, 0.697791, 180, 180, 100, 1, 0, 0, 0, 10); + +-- Missing Chairs +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+9, 10221, 0, -8860.13, 866.013, 99.6228, 5.37562, 0, 0, -0.43837, 0.898795, 180, 180, 100, 1, 0, 0, 0, 10); + +-- Missing Food In Gnomeregan +SET @OGUID = 2435; +SET @PTEMPLATE = 3582; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 3659, 90, -571.492, 510.91, -216.81, -2.61799, 0, 0, 0.965926, -0.258819, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+2, 3659, 90, -910.038, 357.305, -272.596, -1.76278, 0, 0, 0.771625, -0.636078, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+3, 3695, 90, -571.492, 510.91, -216.81, -2.61799, 0, 0, 0.965926, -0.258819, 604800, 604800, 100, 1, 0, 0, 0, 10), +(@OGUID+4, 3695, 90, -910.038, 357.305, -272.596, -1.76278, 0, 0, 0.771625, -0.636078, 604800, 604800, 100, 1, 0, 0, 0, 10); + +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(@PTEMPLATE+1, 1, 'Barrel of Melon Juice / Food Crate - Gnomeregan', 0, 10), +(@PTEMPLATE+2, 1, 'Barrel of Melon Juice / Food Crate - Gnomeregan', 0, 10); + +INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `description`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Gnomeregan', 0, 10), +(@OGUID+2, @PTEMPLATE+2, 'Barrel of Melon Juice / Food Crate - Gnomeregan', 0, 10), +(@OGUID+3, @PTEMPLATE+1, 'Barrel of Melon Juice / Food Crate - Gnomeregan', 0, 10), +(@OGUID+4, @PTEMPLATE+2, 'Barrel of Melon Juice / Food Crate - Gnomeregan', 0, 10); + +DELETE FROM `gameobject` WHERE `guid` IN (32398, 32410); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 80b406c5b5ea805c7676978a2d183c04085efff2 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Mon, 17 Jul 2023 14:43:37 +0100 Subject: [PATCH 123/426] Fix Migration (#2098) --- sql/migrations/20230713165825_world.sql | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/sql/migrations/20230713165825_world.sql b/sql/migrations/20230713165825_world.sql index fadeea47961..bcd9c16f1dc 100644 --- a/sql/migrations/20230713165825_world.sql +++ b/sql/migrations/20230713165825_world.sql @@ -17,10 +17,8 @@ INSERT INTO `pool_gameobject` (`guid`, `pool_entry`, `chance`, `description`, `p (130, 25622, 0, 'Dark Iron Ore', 0, 10); -- Dark Iron Deposits in Molten Core -DELETE FROM `gameobject` WHERE `guid` IN (232213, 232214, 232215, 232216, 232217, 232218, 43157, 43158, 43159, 43160, 43161, 232212, 43725, 43690, 43720, 43713); -DELETE FROM `pool_gameobject` WHERE `guid` IN (232213, 232214, 232215, 232216, 232217, 232218, 43157, 43158, 43159, 43160, 43161, 232212, 43725, 43690, 43720, 43713); - -UPDATE `gameobject` SET `spawntimesecsmin` = 604800, `spawntimesecsmax` = 604800 WHERE `guid` IN (3998297, 361786, 35665, 43163, 43165, 234778); +DELETE FROM `gameobject` WHERE `guid` IN (43713, 43725, 43720, 43690); +DELETE FROM `pool_gameobject` WHERE `guid` IN (43713, 43725, 43720, 43690); INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES (881, 165658, 409, 1082.8, -833.75, -147.884, 1.85005, 0, 0, 0.798635, 0.601815, 604800, 604800, 100, 1, 0, 0, 0, 10), From 2ed34467bcde8a0702981d9d212e49000bda7cdc Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Tue, 18 Jul 2023 06:57:13 +0100 Subject: [PATCH 124/426] Remove Empty Pool_Pools (#2100) --- sql/migrations/20230718054709_world.sql | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 sql/migrations/20230718054709_world.sql diff --git a/sql/migrations/20230718054709_world.sql b/sql/migrations/20230718054709_world.sql new file mode 100644 index 00000000000..f7715a8a141 --- /dev/null +++ b/sql/migrations/20230718054709_world.sql @@ -0,0 +1,22 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230718054709'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230718054709'); +-- Add your query below. + + +-- Remove Redundant Pool_Pool +DELETE FROM `pool_pool` WHERE `pool_id` IN (21551, 21552, 21553); +UPDATE `pool_template` SET `max_limit` = 3 WHERE `entry` = 21553; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 69d245466028e967552820ef61465d8c5b39ff3c Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 24 Jul 2023 03:27:56 +0300 Subject: [PATCH 125/426] Add Gremnik Rizzlesprang and correct Bodley gossip. --- sql/migrations/20230723234305_world.sql | 54 +++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 sql/migrations/20230723234305_world.sql diff --git a/sql/migrations/20230723234305_world.sql b/sql/migrations/20230723234305_world.sql new file mode 100644 index 00000000000..436d0e4bfdb --- /dev/null +++ b/sql/migrations/20230723234305_world.sql @@ -0,0 +1,54 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230723234305'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230723234305'); +-- Add your query below. + + +-- Gremnik Rizzlesprang +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES (222222, 16123, 0, 0, 0, 0, 0, -14456.8, 448.044, 20.4907, 0.0174533, 120, 120, 0, 100, 100, 0, 0, 0, 8, 10); +UPDATE `creature_template` SET `level_min`=60, `level_max`=60, `gossip_menu_id`=7092, `npc_flags`=1, `auras`='27978 27614', `flags_extra`=(64 | 524288) WHERE `entry`=16123; +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (7092, 8345); +INSERT INTO `npc_text` (`ID`, `Probability0`, `BroadcastTextID0`) VALUES (8345, 1, 11932); + +-- Bodley +UPDATE `creature` SET `position_x`=-7535.76, `position_y`=-1211.09, `position_z`=285.555, `orientation`=5.27089 WHERE `id`=16033; +UPDATE `creature_template` SET `gossip_menu_id`=7044, `base_attack_time`=2000, `auras`='27978 27614', `flags_extra`=(64 | 524288) WHERE `entry`=16033; +UPDATE `npc_text` SET `ID`=8271 WHERE `ID`=50002; +UPDATE `gossip_menu` SET `text_id`=8271 WHERE `text_id`=50002; +UPDATE `gossip_menu` SET `entry`=7044 WHERE `entry`=57006; +UPDATE `gossip_menu_option` SET `menu_id`=7044 WHERE `menu_id`=57006; +UPDATE `gossip_menu_option` SET `action_menu_id`=7044 WHERE `action_menu_id`=57006; +INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_broadcast_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`, `box_broadcast_text`) VALUES (7044, 3, 0, 'Bodley, tell me what\'s going on.', 11915, 1, 1, 7087, 0, 0, 0, NULL, 0); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (7087, 8338); +INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_broadcast_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`, `box_broadcast_text`) VALUES (7087, 0, 0, 'You were telling me about The Veiled Blade and how you took the wrong mission.', 11917, 1, 1, 7086, 0, 0, 0, NULL, 0); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (7086, 8339); +INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_broadcast_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`, `box_broadcast_text`) VALUES (7086, 0, 0, 'No, no, please continue... it\'s just that the air up here is so, um, smoky.', 11919, 1, 1, 7085, 0, 0, 0, NULL, 0); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (7085, 8340); +INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_broadcast_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`, `box_broadcast_text`) VALUES (7085, 0, 0, 'Please continue, Bodley.', 11921, 1, 1, 7090, 0, 0, 0, NULL, 0); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (7090, 8341); +INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_broadcast_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`, `box_broadcast_text`) VALUES (7090, 0, 0, 'I thought you were almost done?', 11923, 1, 1, 7089, 0, 0, 0, NULL, 0); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (7089, 8342); +INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_broadcast_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`, `box_broadcast_text`) VALUES (7089, 0, 0, 'What happened to your mercenary company, The Veiled Blade?', 11925, 1, 1, 7088, 0, 0, 0, NULL, 0); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (7088, 8343); +INSERT INTO `npc_text` (`ID`, `Probability0`, `BroadcastTextID0`) VALUES (8338, 1, 11916); +INSERT INTO `npc_text` (`ID`, `Probability0`, `BroadcastTextID0`) VALUES (8339, 1, 11918); +INSERT INTO `npc_text` (`ID`, `Probability0`, `BroadcastTextID0`) VALUES (8340, 1, 11920); +INSERT INTO `npc_text` (`ID`, `Probability0`, `BroadcastTextID0`) VALUES (8341, 1, 11922); +INSERT INTO `npc_text` (`ID`, `Probability0`, `BroadcastTextID0`) VALUES (8342, 1, 11924); +INSERT INTO `npc_text` (`ID`, `Probability0`, `BroadcastTextID0`) VALUES (8343, 1, 11926); + +-- Mux Manascrambler +UPDATE `gossip_menu_option` SET `id`=2 WHERE `menu_id`=7083 && `id`=0 && `option_broadcast_text`=11909; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 2c7db7829adb0ceef66e836d69aca920985a89d2 Mon Sep 17 00:00:00 2001 From: Daribon Date: Tue, 25 Jul 2023 22:11:20 +0200 Subject: [PATCH 126/426] Correct Astranaar waypoints. (#2118) --- sql/migrations/20230725065632_world.sql | 116 ++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 sql/migrations/20230725065632_world.sql diff --git a/sql/migrations/20230725065632_world.sql b/sql/migrations/20230725065632_world.sql new file mode 100644 index 00000000000..595e4e826f2 --- /dev/null +++ b/sql/migrations/20230725065632_world.sql @@ -0,0 +1,116 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230725065632'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230725065632'); +-- Add your query below. + + +-- Delete duplicate Astranaar Sentinel +DELETE FROM `creature` WHERE `guid`=33410; + +-- Pathing for Astranaar Sentinel Entry: 6087 +SET @NPC := 33413; +UPDATE `creature` SET `position_x`=2645.7234,`position_y`=-442.4761,`position_z`=107.194725 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,2645.7234,-442.4761,107.194725,100,0,0,0), +(@NPC,2,2658.7644,-434.1358,107.194725,100,0,0,0), +(@NPC,3,2684.7383,-415.6828,107.21438,100,0,0,0), +(@NPC,4,2705.6597,-394.95422,107.214386,100,0,0,0), +(@NPC,5,2721.69,-379.51324,107.214386,100,0,0,0), +(@NPC,6,2736.5925,-365.57443,107.214386,100,0,0,0), +(@NPC,7,2749.4338,-349.57028,107.214386,100,0,0,0), +(@NPC,8,2767.6445,-329.04007,107.21438,100,0,0,0), +(@NPC,9,2782.6555,-312.45688,107.21438,100,0,0,0), +(@NPC,10,2791.0723,-298.3219,107.21438,100,0,0,0), +(@NPC,11,2798.0388,-287.2158,107.21438,100,0,0,0), +(@NPC,12,2805.2146,-274.97836,107.190025,100,0,0,0), +(@NPC,13,2798.0388,-287.2158,107.21438,100,0,0,0), +(@NPC,14,2791.0723,-298.3219,107.21438,100,0,0,0), +(@NPC,15,2782.6555,-312.45688,107.21438,100,0,0,0), +(@NPC,16,2767.6445,-329.04007,107.21438,100,0,0,0), +(@NPC,17,2749.4338,-349.57028,107.214386,100,0,0,0), +(@NPC,18,2736.5925,-365.57443,107.214386,100,0,0,0), +(@NPC,19,2721.69,-379.51324,107.214386,100,0,0,0), +(@NPC,20,2705.6597,-394.95422,107.214386,100,0,0,0), +(@NPC,21,2684.7383,-415.6828,107.21438,100,0,0,0), +(@NPC,22,2658.7644,-434.1358,107.194725,100,0,0,0); +-- .go xyz 2645.7234 -442.4761 107.194725 + +-- Pathing for Astranaar Sentinel Entry: 6087 +SET @NPC := 33470; +UPDATE `creature` SET `movement_type`=2 WHERE `guid`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,2823.7024,-296.85733,107.84359,100,0,0,0), +(@NPC,2,2821.8506,-289.82333,107.53719,100,0,0,0), +(@NPC,3,2817.993,-286.45898,107.315025,100,0,0,0), +(@NPC,4,2810.1743,-283.33398,107.315025,100,0,0,0), +(@NPC,5,2803.291,-282.6996,107.190025,100,0,0,0), +(@NPC,6,2799.5122,-287.38785,107.21438,100,0,0,0), +(@NPC,7,2796.3928,-291.52942,107.21438,100,0,0,0), +(@NPC,8,2793.6445,-296.2667,107.21438,100,0,0,0), +(@NPC,9,2791.0938,-302.96487,107.21438,100,0,0,0), +(@NPC,10,2785.3215,-313.17014,107.21438,100,0,0,0), +(@NPC,11,2780.1306,-321.05685,107.1426,100,0,0,0), +(@NPC,12,2774.8816,-327.74765,107.21438,100,0,0,0), +(@NPC,13,2769.8115,-333.0998,107.21438,100,0,0,0), +(@NPC,14,2763.125,-339.6059,107.214386,100,0,0,0), +(@NPC,15,2760.0176,-346.51062,107.339386,100,0,0,0), +(@NPC,16,2761.8682,-355.02643,108.214386,100,0,0,0), +(@NPC,17,2767.5347,-367.2466,108.80243,100,0,0,0), +(@NPC,18,2771.2917,-377.81268,107.758606,100,0,0,0), +(@NPC,19,2771.5457,-383.1066,108.13666,100,0,0,0), +(@NPC,20,2768.631,-389.2321,108.996765,100,0,0,0), +(@NPC,21,2765.227,-397.44858,111.38155,100,0,0,0), +(@NPC,22,2757.5203,-414.58624,111.50181,100,0,0,0), +(@NPC,23,2750.6567,-433.05362,111.50181,100,0,0,0), +(@NPC,24,2749.1055,-440.9328,111.50181,100,0,0,0), +(@NPC,25,2746.1392,-450.5363,111.30181,100,0,0,0), +(@NPC,26,2738.044,-463.1001,108.16593,100,0,0,0), +(@NPC,27,2729.2544,-469.0395,107.79058,100,0,0,0), +(@NPC,28,2718.493,-471.28397,108.55401,100,0,0,0), +(@NPC,29,2711.4038,-471.69873,108.91924,100,0,0,0), +(@NPC,30,2702.9114,-467.1467,108.803764,100,0,0,0), +(@NPC,31,2702.2424,-460.72217,108.797646,100,0,0,0), +(@NPC,32,2702.4402,-447.1789,108.52177,100,0,0,0), +(@NPC,33,2698.6252,-433.9829,108.45462,100,0,0,0), +(@NPC,34,2689.544,-420.3718,107.47146,100,0,0,0), +(@NPC,35,2678.1943,-408.132,107.14358,100,0,0,0), +(@NPC,36,2668.6748,-399.03287,108.292854,100,0,0,0), +(@NPC,37,2659.2148,-394.34335,108.46484,100,0,0,0), +(@NPC,38,2646.2434,-387.60773,105.83447,100,0,0,0), +(@NPC,39,2655.3237,-392.3471,108.075806,100,0,0,0), +(@NPC,40,2658.9094,-394.25815,108.49133,100,0,0,0), +(@NPC,41,2666.898,-398.4877,108.34632,100,0,0,0), +(@NPC,42,2674.0522,-404.0911,107.515526,100,0,0,0), +(@NPC,43,2678.0898,-408.00937,107.15603,100,0,0,0), +(@NPC,44,2691.4788,-413.30206,107.21438,100,0,0,0), +(@NPC,45,2699.847,-404.61526,107.21438,100,0,0,0), +(@NPC,46,2707.3774,-396.97864,107.214386,100,0,0,0), +(@NPC,47,2716.3293,-389.54385,107.214386,100,0,0,0), +(@NPC,48,2723.576,-382.50485,107.214386,100,0,0,0), +(@NPC,49,2730.319,-376.26825,107.214386,100,0,0,0), +(@NPC,50,2737.1714,-367.54065,107.214386,100,0,0,0), +(@NPC,51,2744.9607,-359.17148,107.214386,100,0,0,0), +(@NPC,52,2755.6228,-347.09854,107.214386,100,0,0,0), +(@NPC,53,2763.2327,-338.7212,107.214386,100,0,0,0), +(@NPC,54,2772.483,-330.12537,107.21438,100,0,0,0), +(@NPC,55,2782.3674,-319.08865,107.21438,100,0,0,0), +(@NPC,56,2793.6628,-309.5094,108.095116,100,0,0,0), +(@NPC,57,2796.8376,-308.63672,108.38404,100,0,0,0), +(@NPC,58,2809.383,-307.43652,109.23097,100,0,0,0), +(@NPC,59,2816.944,-306.3248,108.84589,100,0,0,0), +(@NPC,60,2822.346,-302.97867,108.20392,100,0,0,0); +-- .go xyz 2823.7024 -296.85733 107.84359 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 6aa7c72c2f21d9656704afc161a6c85991cb521e Mon Sep 17 00:00:00 2001 From: Daribon Date: Tue, 25 Jul 2023 22:51:24 +0200 Subject: [PATCH 127/426] Add pre 1.6.0 NPCs in Scholomance. (#2065) --- sql/migrations/20230708060723_world.sql | 33 +++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 sql/migrations/20230708060723_world.sql diff --git a/sql/migrations/20230708060723_world.sql b/sql/migrations/20230708060723_world.sql new file mode 100644 index 00000000000..066ac2a4f90 --- /dev/null +++ b/sql/migrations/20230708060723_world.sql @@ -0,0 +1,33 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230708060723'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230708060723'); +-- Add your query below. + + +SET @OGUID = 90977; +-- Spawn Risen Protector pre 1.6.0 +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID, 10487, 0, 0, 0, 0, 289, 195.727, 128.917, 109.794, 1.3257, 7200, 7200, 0, 100, 100, 0, 0, 0, 0, 3), +(@OGUID+1, 10487, 0, 0, 0, 0, 289, 169.733, 156.674, 109.507, 6.28001, 7200, 7200, 0, 100, 100, 0, 0, 0, 0, 3), +(@OGUID+2, 10487, 0, 0, 0, 0, 289, 169.875, 149.593, 109.508, 0.358109, 7200, 7200, 0, 100, 100, 0, 0, 0, 0, 3), +(@OGUID+3, 10487, 0, 0, 0, 0, 289, 204.894, 129.028, 109.794, 1.76239, 7200, 7200, 0, 100, 100, 0, 0, 0, 0, 3), +(@OGUID+4, 10487, 0, 0, 0, 0, 289, 236.687, 189.963, 95.8464, 1.00923, 7200, 7200, 0, 100, 100, 0, 0, 0, 0, 3), +(@OGUID+5, 10487, 0, 0, 0, 0, 289, 245.316, 189.926, 95.8464, 2.25248, 7200, 7200, 0, 100, 100, 0, 0, 0, 0, 3), +(@OGUID+6, 10487, 0, 0, 0, 0, 289, 197.778, 176.974, 109.796, 4.78456, 7200, 7200, 0, 100, 100, 0, 0, 0, 0, 3), +(@OGUID+7, 10487, 0, 0, 0, 0, 289, 204.641, 176.899, 109.796, 4.78456, 7200, 7200, 0, 100, 100, 0, 0, 0, 0, 3), +-- Spawn Risen Warrior pre 1.6.0 +(@OGUID+8, 10486, 0, 0, 0, 0, 289, -18.4563, 152.231, 83.8604, 3.47225, 7200, 7200, 0, 100, 0, 0, 0, 0, 0, 3), +(@OGUID+9, 10486, 0, 0, 0, 0, 289, -18.1193, 131.767, 83.8999, 2.71828, 7200, 7200, 0, 100, 0, 0, 0, 0, 0, 3); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From fe1699bf192bc3ec540c921303ffc9267cf749fd Mon Sep 17 00:00:00 2001 From: Wall <90075138+Wall-core@users.noreply.github.com> Date: Tue, 25 Jul 2023 17:02:42 -0400 Subject: [PATCH 128/426] Fix crash with blink at map edge (#2087) --- src/game/Spells/Spell.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 0450038d2fa..92fc4023163 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -3375,6 +3375,10 @@ void Spell::SetTargetMap(SpellEffectIndex effIndex, uint32 targetMode, UnitList& y = (y - srcY) * t + srcY; z = waterLevel; } + + if (!MapManager::IsValidMapCoord(unitTarget->GetMapId(), x, y, z)) + break; + pUnitTarget->GetMap()->GetLosHitPosition(srcX, srcY, srcZ, x, y, z, -0.5f); ground = pUnitTarget->GetMap()->GetHeight(x, y, z); if (ground < z) From 13638b66f734448889954089b02cd2f110ce4cdc Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 26 Jul 2023 03:48:06 +0300 Subject: [PATCH 129/426] Remove run script from Baron Geddon and assign extra flag. --- sql/migrations/20230726004747_world.sql | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 sql/migrations/20230726004747_world.sql diff --git a/sql/migrations/20230726004747_world.sql b/sql/migrations/20230726004747_world.sql new file mode 100644 index 00000000000..8f67ea770c6 --- /dev/null +++ b/sql/migrations/20230726004747_world.sql @@ -0,0 +1,23 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230726004747'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230726004747'); +-- Add your query below. + + +-- Remove run script from Baron Geddon and assign extra flag. +UPDATE `creature_movement` SET `script_id`=0 WHERE `id`=56655; +UPDATE `creature_template` SET `flags_extra`=(`flags_extra` | 33554432) WHERE `entry`=12056; +DELETE FROM `creature_movement_scripts` WHERE `id`=5; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From f86c742bfff0357cc30e974e4fef026459d52cd0 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 26 Jul 2023 03:55:32 +0300 Subject: [PATCH 130/426] Return references to channel name and password. --- src/game/Chat/Channel.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/game/Chat/Channel.h b/src/game/Chat/Channel.h index aacdbcbfdb6..7f0c9c12ebe 100644 --- a/src/game/Chat/Channel.h +++ b/src/game/Chat/Channel.h @@ -157,13 +157,13 @@ class Channel }; Channel(std::string const& name); - std::string GetName() const { return m_name; } + std::string const& GetName() const { return m_name; } uint32 GetChannelId() const { return m_channelId; } bool IsConstant() const { return m_channelId != 0; } bool IsAnnounce() const { return m_announce; } bool IsLevelRestricted() const { return m_levelRestricted; } bool IsLFG() const { return GetFlags() & CHANNEL_FLAG_LFG; } - std::string GetPassword() const { return m_password; } + std::string const& GetPassword() const { return m_password; } void SetPassword(std::string const& npassword) { m_password = npassword; } void SetAnnounce(bool nannounce) { m_announce = nannounce; } uint32 GetNumPlayers() const { return m_players.size(); } From 4835f619dc4ecda8609c40997c41c6dcd160ab41 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 27 Jul 2023 01:12:04 +0300 Subject: [PATCH 131/426] Add cyclic movement generator. Movement type 3 is for flying creatures that send their whole path in a single SMSG_MONSTER_MOVE packet. It does not support other waypoint features like wait time and script id. --- sql/migrations/20230726202837_world.sql | 299 ++++++++++++++++++ src/game/AI/CreatureAIRegistry.cpp | 2 + src/game/CMakeLists.txt | 2 + src/game/Commands/CreatureCommands.cpp | 4 + src/game/Movement/CyclicMovementGenerator.cpp | 124 ++++++++ src/game/Movement/CyclicMovementGenerator.h | 53 ++++ src/game/Movement/MotionMaster.cpp | 48 ++- src/game/Movement/MotionMaster.h | 36 ++- 8 files changed, 547 insertions(+), 21 deletions(-) create mode 100644 sql/migrations/20230726202837_world.sql create mode 100644 src/game/Movement/CyclicMovementGenerator.cpp create mode 100644 src/game/Movement/CyclicMovementGenerator.h diff --git a/sql/migrations/20230726202837_world.sql b/sql/migrations/20230726202837_world.sql new file mode 100644 index 00000000000..da2de8d13da --- /dev/null +++ b/sql/migrations/20230726202837_world.sql @@ -0,0 +1,299 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230726202837'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230726202837'); +-- Add your query below. + + +-- Update movement types above waypoint as cyclic has been inserted after it in the enum. +UPDATE `creature_ai_scripts` SET `datalong`=`datalong`+1 WHERE `command`=20 && `datalong`>2; +UPDATE `creature_movement_scripts` SET `datalong`=`datalong`+1 WHERE `command`=20 && `datalong`>2; +UPDATE `creature_spells_scripts` SET `datalong`=`datalong`+1 WHERE `command`=20 && `datalong`>2; +UPDATE `event_scripts` SET `datalong`=`datalong`+1 WHERE `command`=20 && `datalong`>2; +UPDATE `generic_scripts` SET `datalong`=`datalong`+1 WHERE `command`=20 && `datalong`>2; +UPDATE `gossip_scripts` SET `datalong`=`datalong`+1 WHERE `command`=20 && `datalong`>2; +UPDATE `gameobject_scripts` SET `datalong`=`datalong`+1 WHERE `command`=20 && `datalong`>2; +UPDATE `spell_scripts` SET `datalong`=`datalong`+1 WHERE `command`=20 && `datalong`>2; +UPDATE `quest_end_scripts` SET `datalong`=`datalong`+1 WHERE `command`=20 && `datalong`>2; +UPDATE `quest_start_scripts` SET `datalong`=`datalong`+1 WHERE `command`=20 && `datalong`>2; +UPDATE `creature_ai_events` SET `event_param1`=`event_param1`+1 WHERE `event_type`=29 && `event_param1`>2; + +-- Assign cyclic movement to these creatures. +UPDATE `creature` SET `movement_type`=3 WHERE `guid` IN (3343, 3344, 92881); +-- These should not use cyclic movement. +UPDATE `creature` SET `movement_type`=0 WHERE `guid` IN (40486, 40483); + +-- Correct waypoints for Highperch Soarer. +UPDATE `creature` SET `position_x`=-5158.27, `position_y`=-1187.78, `position_z`=77.0217, `orientation`=1.39548, `movement_type`=3 WHERE `guid`=21708; +DELETE FROM `creature_movement` WHERE `id`=21708; +INSERT INTO `creature_movement` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES +(21708, 1, -5155.99, -1199.75, 81.4902), +(21708, 2, -5166.31, -1220.04, 81.7681), +(21708, 3, -5170.55, -1226.35, 76.7123), +(21708, 4, -5178.02, -1237.04, 72.4347), +(21708, 5, -5190.3, -1239.18, 71.9069), +(21708, 6, -5215.8, -1225.13, 69.768), +(21708, 7, -5221.52, -1209.39, 67.7957), +(21708, 8, -5219.37, -1194.92, 67.1569), +(21708, 9, -5209.85, -1187.22, 65.9624), +(21708, 10, -5194.89, -1188.92, 70.7124), +(21708, 11, -5181.05, -1199.33, 60.2957), +(21708, 12, -5158.85, -1213.6, 57.6291), +(21708, 13, -5122.13, -1222.28, 42.4624), +(21708, 14, -5110.99, -1230.77, 15.3235), +(21708, 15, -5084.67, -1227.63, -11.8154), +(21708, 16, -5065.28, -1209.69, -34.8986), +(21708, 17, -5052.48, -1181.26, -39.4265), +(21708, 18, -5025.06, -1165.29, -32.5653), +(21708, 19, -5004.28, -1140.43, -38.3154), +(21708, 20, -4984.81, -1123.68, -38.1764), +(21708, 21, -4971.48, -1109.78, -38.1764), +(21708, 22, -4949.74, -1096.3, -32.4263), +(21708, 23, -4927.95, -1090.27, -24.843), +(21708, 24, -4909.84, -1080.73, -14.0652), +(21708, 25, -4914.71, -1066.64, -7.89855), +(21708, 26, -4927.92, -1056.95, -3.35201), +(21708, 27, -4942.7, -1055.22, 8.22042), +(21708, 28, -4951.95, -1049.14, 14.6255), +(21708, 29, -4960.18, -1028.92, 20.0332), +(21708, 30, -4970.47, -1008.43, 22.0888), +(21708, 31, -4980.97, -992.967, 23.4285), +(21708, 32, -4993.73, -980.054, 23.7592), +(21708, 33, -5012.75, -967.938, 24.0925), +(21708, 34, -5032.86, -971.138, 30.9258), +(21708, 35, -5052.13, -982.109, 39.0092), +(21708, 36, -5060.67, -991.191, 52.2871), +(21708, 37, -5072.28, -1008.99, 67.8427), +(21708, 38, -5090.26, -1005.56, 79.1867), +(21708, 39, -5106.01, -1004.31, 73.8841); + +-- Correct waypoints for Highperch Soarer. +UPDATE `creature` SET `position_x`=-5132.25, `position_y`=-872.822, `position_z`=54.5155, `orientation`=3.1685, `movement_type`=3, `wander_distance`=0 WHERE `guid`=21707; +DELETE FROM `creature_movement` WHERE `id`=21707; +INSERT INTO `creature_movement` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES +(21707, 1, -5126.78, -872.288, 59.3036), +(21707, 2, -5116.18, -894.691, 72.4981), +(21707, 3, -5095.89, -913.899, 53.4702), +(21707, 4, -5061.48, -926.323, 59.4147), +(21707, 5, -5031.17, -928.031, 63.3591), +(21707, 6, -5009.09, -920.385, 63.3591), +(21707, 7, -5003.4, -923.492, 63.3591), +(21707, 8, -4995.11, -928.877, 63.3591), +(21707, 9, -4961.05, -947.889, 63.3591), +(21707, 10, -4940.46, -957.058, 63.3591), +(21707, 11, -4929.92, -961.364, 50.7202); + +-- Correct waypoints for Brood of Nozdormu. +UPDATE `creature` SET `position_x`=-6132.55, `position_y`=1194.44, `position_z`=231.859, `movement_type`=3, `wander_distance`=0 WHERE `guid`=42902; +DELETE FROM `creature_movement` WHERE `id`=42902; +INSERT INTO `creature_movement` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES +(42902, 1, -6132.55, 1194.44, 231.859), +(42902, 2, -6148.33, 1190.85, 231.859), +(42902, 3, -6164.12, 1187.26, 231.859), +(42902, 4, -6181.24, 1179.72, 231.859), +(42902, 5, -6202.71, 1172.04, 231.859), +(42902, 6, -6229.83, 1168.33, 231.859), +(42902, 7, -6263.18, 1166.63, 231.859), +(42902, 8, -6290.23, 1166.51, 231.859), +(42902, 9, -6327.19, 1160.1, 231.859), +(42902, 10, -6365.29, 1153.61, 231.859), +(42902, 11, -6402.69, 1145.36, 231.859), +(42902, 12, -6436.51, 1126.72, 231.859), +(42902, 13, -6454.31, 1100.34, 231.859), +(42902, 14, -6475.01, 1072.5, 231.859), +(42902, 15, -6471.49, 1038.5, 231.859), +(42902, 16, -6485.88, 1007.71, 231.859), +(42902, 17, -6483.45, 969.669, 231.859), +(42902, 18, -6479.12, 928.468, 231.859), +(42902, 19, -6504.58, 907.092, 231.859), +(42902, 20, -6530.07, 882.316, 231.859), +(42902, 21, -6546.84, 843.153, 231.859), +(42902, 22, -6582.23, 820.957, 231.859), +(42902, 23, -6630.23, 809.253, 231.859), +(42902, 24, -6643.11, 825.063, 231.859), +(42902, 25, -6666.29, 844.62, 231.859), +(42902, 26, -6699.39, 870.621, 231.859), +(42902, 27, -6739.93, 892.456, 231.859), +(42902, 28, -6772.28, 898.783, 231.859), +(42902, 29, -6799.12, 906.09, 231.859), +(42902, 30, -6824.03, 909.751, 231.859), +(42902, 31, -6868.83, 916.167, 231.859), +(42902, 32, -6898.51, 901.309, 231.859), +(42902, 33, -6927.8, 870.07, 231.859), +(42902, 34, -6929.24, 837.958, 231.859), +(42902, 35, -6919.74, 807.285, 231.859), +(42902, 36, -6922.18, 775.308, 231.859), +(42902, 37, -6923.05, 742.136, 231.859), +(42902, 38, -6936.97, 706.052, 231.859), +(42902, 39, -6946, 685.331, 231.859), +(42902, 40, -6961.72, 661.689, 231.859), +(42902, 41, -6961.5, 646.29, 231.859), +(42902, 42, -6984.71, 618.989, 231.859), +(42902, 43, -7015.65, 596.539, 231.859), +(42902, 44, -7056.5, 593.22, 231.859), +(42902, 45, -7094.11, 608.767, 231.859), +(42902, 46, -7123.3, 623.996, 231.859), +(42902, 47, -7160.38, 652.129, 231.859), +(42902, 48, -7182.17, 684.455, 231.859), +(42902, 49, -7198.16, 714.692, 231.859), +(42902, 50, -7191.9, 741.369, 231.859), +(42902, 51, -7193.42, 748.352, 231.859), +(42902, 52, -7184.94, 770.472, 231.859), +(42902, 53, -7169.55, 792.322, 231.859), +(42902, 54, -7149.72, 818.153, 231.859), +(42902, 55, -7119.2, 842.394, 231.859), +(42902, 56, -7083.8, 860.16, 231.859), +(42902, 57, -7049.62, 868.486, 231.859), +(42902, 58, -7014.33, 859.917, 231.859), +(42902, 59, -6975.03, 851.771, 231.859), +(42902, 60, -6943.59, 828.714, 231.859), +(42902, 61, -6923.84, 802.551, 231.859), +(42902, 62, -6907.14, 780.131, 231.859), +(42902, 63, -6897.62, 755.048, 231.859), +(42902, 64, -6879.37, 728.623, 218.359), +(42902, 65, -6861.75, 717.885, 204.193), +(42902, 66, -6842.95, 713.493, 192.693), +(42902, 67, -6816.38, 709.887, 192.526), +(42902, 68, -6791.06, 709.856, 177.165), +(42902, 69, -6754.53, 723.85, 158.665), +(42902, 70, -6730.09, 739.688, 148.304), +(42902, 71, -6688.22, 763.253, 148.86), +(42902, 72, -6675.4, 772.873, 151.915), +(42902, 73, -6673.23, 786.264, 151.026), +(42902, 74, -6677.67, 798.919, 147.748), +(42902, 75, -6689.31, 818.305, 150.082), +(42902, 76, -6700.25, 835.345, 151.165), +(42902, 77, -6717.07, 837.324, 155.915), +(42902, 78, -6750.5, 824.896, 150.359), +(42902, 79, -6770.18, 814.583, 158.026), +(42902, 80, -6785.5, 798.543, 166.609), +(42902, 81, -6793.43, 773.484, 181.276), +(42902, 82, -6783.2, 732.933, 191.221), +(42902, 83, -6745.8, 711.179, 215.054), +(42902, 84, -6700.34, 725.113, 231.859), +(42902, 85, -6668.33, 741.267, 231.859), +(42902, 86, -6637.22, 756.75, 231.859), +(42902, 87, -6616.62, 770.323, 231.859), +(42902, 88, -6590.55, 788.055, 231.859), +(42902, 89, -6550.62, 812.543, 231.859), +(42902, 90, -6551.32, 827.29, 231.859), +(42902, 91, -6547.47, 848.693, 231.859), +(42902, 92, -6544.7, 872.062, 231.859), +(42902, 93, -6548.17, 894.387, 231.859), +(42902, 94, -6555.55, 921.146, 231.859), +(42902, 95, -6559.9, 951.207, 231.859), +(42902, 96, -6562.2, 995.147, 231.859), +(42902, 97, -6551.02, 1016.8, 231.859), +(42902, 98, -6536.71, 1042.54, 231.859), +(42902, 99, -6515.35, 1071.74, 231.859), +(42902, 100, -6504.1, 1097.51, 231.859), +(42902, 101, -6501.53, 1125.14, 231.859), +(42902, 102, -6483.63, 1138.02, 231.859), +(42902, 103, -6455.69, 1149.08, 231.859), +(42902, 104, -6421.1, 1146.83, 231.859), +(42902, 105, -6394.14, 1130.65, 231.859), +(42902, 106, -6362.81, 1113.94, 231.859), +(42902, 107, -6343.09, 1102.28, 231.859), +(42902, 108, -6318.23, 1088.11, 231.859), +(42902, 109, -6304.54, 1073.27, 231.859), +(42902, 110, -6287.23, 1073.55, 231.859), +(42902, 111, -6258.2, 1079.39, 231.859), +(42902, 112, -6227.41, 1097.12, 231.859), +(42902, 113, -6203.53, 1107.35, 231.859), +(42902, 114, -6181.97, 1115.24, 231.859), +(42902, 115, -6159.23, 1117.19, 231.859), +(42902, 116, -6137.22, 1130.4, 231.859), +(42902, 117, -6119.23, 1148.29, 231.859), +(42902, 118, -6112.39, 1173.68, 231.859), +(42902, 119, -6108.86, 1209.77, 231.859), +(42902, 120, -6121, 1215.51, 231.859), +(42902, 121, -6133.96, 1215.93, 231.859), +(42902, 122, -6148.33, 1190.85, 231.859), +(42902, 123, -6148.33, 1190.85, 231.859); + +-- Correct waypoints for Brood of Nozdormu. +UPDATE `creature` SET `position_x`=-8147.35, `position_y`=1110.34, `position_z`=130.326, `movement_type`=3, `wander_distance`=0 WHERE `guid`=42900; +DELETE FROM `creature_movement` WHERE `id`=42900; +INSERT INTO `creature_movement` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES +(42900, 1, -8147.35, 1110.34, 130.326), +(42900, 2, -8125.84, 1123.07, 130.326), +(42900, 3, -8104.6, 1135.43, 130.326), +(42900, 4, -8081.43, 1151.94, 130.326), +(42900, 5, -8046.5, 1175.41, 130.326), +(42900, 6, -8028.07, 1192.39, 130.326), +(42900, 7, -8006.2, 1202.83, 130.326), +(42900, 8, -7995.38, 1208.58, 130.326), +(42900, 9, -7986.86, 1223.25, 130.326), +(42900, 10, -7973.46, 1242.27, 130.326), +(42900, 11, -7967.57, 1262.46, 130.326), +(42900, 12, -7954.08, 1292.86, 130.326), +(42900, 13, -7951.33, 1311.9, 130.326), +(42900, 14, -7949.03, 1323.07, 130.326), +(42900, 15, -7940.65, 1356.12, 130.326), +(42900, 16, -7943.67, 1377.11, 130.326), +(42900, 17, -7945.43, 1398.93, 130.326), +(42900, 18, -7947.1, 1422.75, 130.326), +(42900, 19, -7946.36, 1451, 130.326), +(42900, 20, -7938.27, 1473.98, 130.326), +(42900, 21, -7943.05, 1503.94, 130.326), +(42900, 22, -7926.72, 1530.71, 130.326), +(42900, 23, -7920.12, 1572.31, 130.326), +(42900, 24, -7929.45, 1601.54, 130.326), +(42900, 25, -7932.94, 1648.54, 130.326), +(42900, 26, -7945.87, 1667.05, 130.326), +(42900, 27, -7939.4, 1691.4, 130.326), +(42900, 28, -7919.91, 1722.39, 130.326), +(42900, 29, -7923.83, 1761.65, 130.326), +(42900, 30, -7944.76, 1781.04, 130.326), +(42900, 31, -7961.6, 1790.97, 130.326), +(42900, 32, -7978.42, 1786.22, 130.326), +(42900, 33, -7986.01, 1772.08, 130.326), +(42900, 34, -7997.43, 1746.59, 130.326), +(42900, 35, -8013.44, 1736.98, 130.326), +(42900, 36, -8037.54, 1725.18, 130.326), +(42900, 37, -8044.47, 1702.88, 130.326), +(42900, 38, -8042.43, 1684.66, 130.326), +(42900, 39, -8029.89, 1662.23, 130.326), +(42900, 40, -8039.08, 1641.3, 130.326), +(42900, 41, -8056.28, 1624.56, 130.326), +(42900, 42, -8080.25, 1613.33, 130.326), +(42900, 43, -8090.12, 1598.15, 130.326), +(42900, 44, -8096.72, 1572.87, 130.326), +(42900, 45, -8099.74, 1549.02, 130.326), +(42900, 46, -8093.52, 1527.82, 130.326), +(42900, 47, -8081.68, 1509.06, 130.326), +(42900, 48, -8068.8, 1493.95, 130.326), +(42900, 49, -8075.57, 1470.47, 130.326), +(42900, 50, -8076.99, 1445.66, 130.326), +(42900, 51, -8078.25, 1426.36, 130.326), +(42900, 52, -8082.23, 1398.92, 130.326), +(42900, 53, -8076.23, 1371.59, 130.326), +(42900, 54, -8068.81, 1346.38, 130.326), +(42900, 55, -8065.87, 1320.74, 130.326), +(42900, 56, -8071.77, 1311.94, 130.326), +(42900, 57, -8069.73, 1292.72, 130.326), +(42900, 58, -8068.56, 1264.88, 130.326), +(42900, 59, -8066.9, 1244.61, 130.326), +(42900, 60, -8069.33, 1202.92, 130.326), +(42900, 61, -8081.82, 1185.17, 130.326), +(42900, 62, -8100.44, 1166.67, 130.326), +(42900, 63, -8115.23, 1151.11, 130.326), +(42900, 64, -8125.38, 1154.28, 130.326), +(42900, 65, -8138.5, 1150.57, 136.409), +(42900, 66, -8144.81, 1139.19, 142.576), +(42900, 67, -8164.84, 1122.41, 144.548), +(42900, 68, -8181.75, 1096.81, 141.187), +(42900, 69, -8169.55, 1088.01, 133.965), +(42900, 70, -8149.75, 1103.94, 131.465); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/AI/CreatureAIRegistry.cpp b/src/game/AI/CreatureAIRegistry.cpp index 0b739e77d01..4cfec97225f 100644 --- a/src/game/AI/CreatureAIRegistry.cpp +++ b/src/game/AI/CreatureAIRegistry.cpp @@ -33,6 +33,7 @@ #include "MovementGeneratorImpl.h" #include "CreatureAIRegistry.h" #include "WaypointMovementGenerator.h" +#include "CyclicMovementGenerator.h" namespace AIRegistry { @@ -51,6 +52,7 @@ void Initialize() (new MovementGeneratorFactory(RANDOM_MOTION_TYPE))->RegisterSelf(); (new MovementGeneratorFactory >(WAYPOINT_MOTION_TYPE))->RegisterSelf(); + (new MovementGeneratorFactory >(CYCLIC_MOTION_TYPE))->RegisterSelf(); (new MovementGeneratorFactory(PATROL_MOTION_TYPE))->RegisterSelf(); } } diff --git a/src/game/CMakeLists.txt b/src/game/CMakeLists.txt index abe6c82fbe5..c389a1ad69c 100644 --- a/src/game/CMakeLists.txt +++ b/src/game/CMakeLists.txt @@ -148,6 +148,7 @@ set (game_SRCS Maps/ZoneScriptMgr.cpp Maps/Pool/PoolManager.cpp Movement/ConfusedMovementGenerator.cpp + Movement/CyclicMovementGenerator.cpp Movement/FearMovementGenerator.cpp Movement/FleeingMovementGenerator.cpp Movement/FollowerReference.cpp @@ -333,6 +334,7 @@ set (game_SRCS Maps/ZoneScriptMgr.h Maps/Pool/PoolManager.h Movement/ConfusedMovementGenerator.h + Movement/CyclicMovementGenerator.h Movement/FearMovementGenerator.h Movement/FleeingMovementGenerator.h Movement/FollowerReference.h diff --git a/src/game/Commands/CreatureCommands.cpp b/src/game/Commands/CreatureCommands.cpp index 9324108b977..f9906b2e6f7 100644 --- a/src/game/Commands/CreatureCommands.cpp +++ b/src/game/Commands/CreatureCommands.cpp @@ -1351,6 +1351,8 @@ bool ChatHandler::HandleNpcSpawnSetMoveTypeCommand(char* args) move_type = RANDOM_MOTION_TYPE; else if (strncmp(type_str, "waypoint", strlen(type_str)) == 0) move_type = WAYPOINT_MOTION_TYPE; + else if (strncmp(type_str, "cyclic", strlen(type_str)) == 0) + move_type = CYCLIC_MOTION_TYPE; else return false; @@ -1393,6 +1395,8 @@ bool ChatHandler::HandleNpcSetMoveTypeCommand(char* args) move_type = RANDOM_MOTION_TYPE; else if (strncmp(type_str, "waypoint", strlen(type_str)) == 0) move_type = WAYPOINT_MOTION_TYPE; + else if (strncmp(type_str, "cyclic", strlen(type_str)) == 0) + move_type = CYCLIC_MOTION_TYPE; else return false; diff --git a/src/game/Movement/CyclicMovementGenerator.cpp b/src/game/Movement/CyclicMovementGenerator.cpp new file mode 100644 index 00000000000..1479398c356 --- /dev/null +++ b/src/game/Movement/CyclicMovementGenerator.cpp @@ -0,0 +1,124 @@ +/* + * Copyright (C) 2005-2011 MaNGOS + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "CyclicMovementGenerator.h" +#include "Creature.h" +#include "CreatureAI.h" +#include "MoveSplineInit.h" +#include "MoveSpline.h" + +void CyclicMovementGenerator::LoadPath(uint32 guid, uint32 entry, WaypointPathOrigin wpOrigin) +{ + DETAIL_FILTER_LOG(LOG_FILTER_AI_AND_MOVEGENSS, "LoadPath: loading waypoint path for GUID %u Entry %u", guid, entry); + + if (wpOrigin == PATH_NO_PATH) + i_path = sWaypointMgr.GetDefaultPath(entry, guid, &m_PathOrigin); + else + { + m_PathOrigin = wpOrigin == PATH_NO_PATH ? PATH_FROM_ENTRY : wpOrigin; + i_path = sWaypointMgr.GetPathFromOrigin(entry, guid, 0, m_PathOrigin); + } + + // No movement found for entry nor guid + if (!i_path || i_path->size() < 2) + { + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "CyclicMovementGenerator::LoadPath: GUID %u Entry %u doesn't have waypoint path", guid, entry); + return; + } +} + +void CyclicMovementGenerator::Initialize(Creature& creature) +{ + creature.AddUnitState(UNIT_STAT_ROAMING | UNIT_STAT_ROAMING_MOVE); +} + +void CyclicMovementGenerator::InitializeWaypointPath(Creature& creature, WaypointPathOrigin wpSource, uint32 overwriteGuid, uint32 overwriteEntry) +{ + if (!overwriteGuid) + overwriteGuid = creature.GetGUIDLow(); + if (!overwriteEntry) + overwriteEntry = creature.GetEntry(); + + LoadPath(overwriteGuid, overwriteEntry, wpSource); + + if (i_path && !i_path->empty()) + _setTargetLocation(creature); +} + +void CyclicMovementGenerator::Reset(Creature& creature) +{ + creature.AddUnitState(UNIT_STAT_ROAMING | UNIT_STAT_ROAMING_MOVE); +} + +void CyclicMovementGenerator::_setTargetLocation(Creature & owner) +{ + if (owner.HasUnitState(UNIT_STAT_CAN_NOT_MOVE)) + return; + + WaypointNode const& firstNode = i_path->at(0); + if (owner.GetDistance(firstNode.x, firstNode.y, firstNode.z) > 10) + { + PathFinder path(&owner); + path.calculate(firstNode.x, firstNode.y, firstNode.z, true); + + Movement::MoveSplineInit init(owner, "CyclicMovementGenerator"); + if (owner.CanFly()) + init.SetFly(); + init.SetWalk(!owner.HasExtraFlag(CREATURE_FLAG_EXTRA_ALWAYS_RUN)); + init.Move(&path); + init.Launch(); + } + else + { + PointsArray genPath; + genPath.resize(i_path->size()); + for (auto const& node : *i_path) + genPath[node.first] = G3D::Vector3(node.second.x, node.second.y, node.second.z); + + Movement::MoveSplineInit init(owner, "CyclicMovementGenerator"); + if (owner.CanFly()) + init.SetFly(); + init.SetWalk(!owner.HasExtraFlag(CREATURE_FLAG_EXTRA_ALWAYS_RUN)); + init.MovebyPath(genPath); + init.SetFirstPointId(1); + init.Launch(); + } +} + +bool CyclicMovementGenerator::Update(Creature &owner, uint32 const& /*time_diff*/) +{ + if (!i_path || i_path->size() < 2) + return false; + + if (owner.movespline->Finalized()) + _setTargetLocation(owner); + + return true; +} + +void CyclicMovementGenerator::Finalize(Creature& creature) +{ + creature.ClearUnitState(UNIT_STAT_ROAMING | UNIT_STAT_ROAMING_MOVE); + creature.SetWalk(!creature.HasUnitState(UNIT_STAT_RUNNING), false); +} + +void CyclicMovementGenerator::Interrupt(Creature &creature) +{ + creature.ClearUnitState(UNIT_STAT_ROAMING | UNIT_STAT_ROAMING_MOVE); + creature.SetWalk(!creature.HasUnitState(UNIT_STAT_RUNNING), false); +} diff --git a/src/game/Movement/CyclicMovementGenerator.h b/src/game/Movement/CyclicMovementGenerator.h new file mode 100644 index 00000000000..55be79fbfc4 --- /dev/null +++ b/src/game/Movement/CyclicMovementGenerator.h @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2005-2011 MaNGOS + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef MANGOS_CYCLICMOVEMENTGENERATOR_H +#define MANGOS_CYCLICMOVEMENTGENERATOR_H + +#include "MovementGenerator.h" +#include "WaypointManager.h" + +class Creature; + +template < class T > +class CyclicMovementGenerator; + +template <> +class CyclicMovementGenerator +: public MovementGeneratorMedium< Creature, CyclicMovementGenerator > +{ + public: + + CyclicMovementGenerator(Creature &) : i_path(nullptr), m_PathOrigin(PATH_NO_PATH) { } + ~CyclicMovementGenerator() { i_path = nullptr; } + + void InitializeWaypointPath(Creature& creature, WaypointPathOrigin wpSource, uint32 overwriteGuid, uint32 overwriteEntry); + void Initialize(Creature &); + void Finalize(Creature &); + void Interrupt(Creature &); + void Reset(Creature &); + bool Update(Creature &, uint32 const&); + MovementGeneratorType GetMovementGeneratorType() const { return CYCLIC_MOTION_TYPE; } + + private: + void LoadPath(uint32 guid, uint32 entry, WaypointPathOrigin wpOrigin); + void _setTargetLocation(Creature &); + WaypointPath const* i_path; + WaypointPathOrigin m_PathOrigin; +}; +#endif diff --git a/src/game/Movement/MotionMaster.cpp b/src/game/Movement/MotionMaster.cpp index dabb7512f59..f8c0d2644e8 100644 --- a/src/game/Movement/MotionMaster.cpp +++ b/src/game/Movement/MotionMaster.cpp @@ -32,6 +32,7 @@ #include "PointMovementGenerator.h" #include "TargetedMovementGenerator.h" #include "WaypointMovementGenerator.h" +#include "CyclicMovementGenerator.h" #include "RandomMovementGenerator.h" #include "MoveSpline.h" @@ -59,8 +60,16 @@ void MotionMaster::Initialize() MovementGenerator* movement = FactorySelector::selectMovementGenerator(static_cast(m_owner)); push(movement == nullptr ? &si_idleMovement : movement); top()->Initialize(*m_owner); - if (top()->GetMovementGeneratorType() == WAYPOINT_MOTION_TYPE) - (static_cast*>(top()))->InitializeWaypointPath(*(static_cast(m_owner)), 0, PATH_NO_PATH, 0, 0, 0, true); + + switch (top()->GetMovementGeneratorType()) + { + case WAYPOINT_MOTION_TYPE: + (static_cast*>(top()))->InitializeWaypointPath(*(static_cast(m_owner)), 0, PATH_NO_PATH, 0, 0, 0, true); + break; + case CYCLIC_MOTION_TYPE: + (static_cast*>(top()))->InitializeWaypointPath(*(static_cast(m_owner)), PATH_NO_PATH, 0, 0); + break; + } } else push(&si_idleMovement); @@ -112,8 +121,16 @@ void MotionMaster::InitializeNewDefault(bool alwaysReplace) new_default = movement->GetMovementGeneratorType(); push(movement == nullptr ? &si_idleMovement : movement); top()->Initialize(*m_owner); - if (top()->GetMovementGeneratorType() == WAYPOINT_MOTION_TYPE) - (static_cast*>(top()))->InitializeWaypointPath(*(pCreature), 0, PATH_NO_PATH, 100, 0, 0, true); + + switch (top()->GetMovementGeneratorType()) + { + case WAYPOINT_MOTION_TYPE: + (static_cast*>(top()))->InitializeWaypointPath(*(static_cast(m_owner)), 0, PATH_NO_PATH, 0, 0, 0, true); + break; + case CYCLIC_MOTION_TYPE: + (static_cast*>(top()))->InitializeWaypointPath(*(static_cast(m_owner)), PATH_NO_PATH, 0, 0); + break; + } } else push(&si_idleMovement); @@ -575,6 +592,27 @@ void MotionMaster::MoveWaypoint(uint32 startPoint /*=0*/, uint32 source /*=0==PA sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "Non-creature %s attempt to MoveWaypoint()", m_owner->GetGuidStr().c_str()); } +void MotionMaster::MoveCyclicWaypoint(uint32 source, uint32 overwriteGuid, uint32 overwriteEntry) +{ + if (m_owner->IsCreature()) + { + if (GetCurrentMovementGeneratorType() == CYCLIC_MOTION_TYPE) + { + sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "Creature %s (Entry %u) attempt to MoveCyclicWaypoint() but creature is already using cyclic waypoint", m_owner->GetGuidStr().c_str(), m_owner->GetEntry()); + return; + } + + Creature* creature = (Creature*)m_owner; + + DEBUG_FILTER_LOG(LOG_FILTER_AI_AND_MOVEGENSS, "Creature %s (Entry %u) start MoveCyclicWaypoint()", m_owner->GetGuidStr().c_str(), m_owner->GetEntry()); + CyclicMovementGenerator* newWPMMgen = new CyclicMovementGenerator(*creature); + Mutate(newWPMMgen); + newWPMMgen->InitializeWaypointPath(*creature, (WaypointPathOrigin)source, overwriteGuid, overwriteEntry); + } + else + sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "Non-creature %s attempt to MoveCyclicWaypoint()", m_owner->GetGuidStr().c_str()); +} + void MotionMaster::MoveTaxiFlight(uint32 path, uint32 pathnode) { if (m_owner->IsPlayer()) @@ -709,6 +747,8 @@ char const* MotionMaster::GetMovementGeneratorTypeName(MovementGeneratorType gen return "RANDOM_MOTION_TYPE"; case WAYPOINT_MOTION_TYPE: return "WAYPOINT_MOTION_TYPE"; + case CYCLIC_MOTION_TYPE: + return "CYCLIC_MOTION_TYPE"; case MAX_DB_MOTION_TYPE: return "MAX_DB_MOTION_TYPE"; case CONFUSED_MOTION_TYPE: diff --git a/src/game/Movement/MotionMaster.h b/src/game/Movement/MotionMaster.h index 1e3c4704c1d..df1f123c735 100644 --- a/src/game/Movement/MotionMaster.h +++ b/src/game/Movement/MotionMaster.h @@ -38,23 +38,24 @@ enum MovementGeneratorType IDLE_MOTION_TYPE = 0, // IdleMovementGenerator.h RANDOM_MOTION_TYPE = 1, // RandomMovementGenerator.h WAYPOINT_MOTION_TYPE = 2, // WaypointMovementGenerator.h - MAX_DB_MOTION_TYPE = 3, // *** this and below motion types can't be set in DB. - - CONFUSED_MOTION_TYPE = 4, // ConfusedMovementGenerator.h - CHASE_MOTION_TYPE = 5, // TargetedMovementGenerator.h - HOME_MOTION_TYPE = 6, // HomeMovementGenerator.h - FLIGHT_MOTION_TYPE = 7, // WaypointMovementGenerator.h - POINT_MOTION_TYPE = 8, // PointMovementGenerator.h - FLEEING_MOTION_TYPE = 9, // FleeingMovementGenerator.h - DISTRACT_MOTION_TYPE = 10, // IdleMovementGenerator.h - ASSISTANCE_MOTION_TYPE = 11, // PointMovementGenerator.h (first part of flee for assistance) - ASSISTANCE_DISTRACT_MOTION_TYPE = 12, // IdleMovementGenerator.h (second part of flee for assistance) - TIMED_FLEEING_MOTION_TYPE = 13, // FleeingMovementGenerator.h (alt.second part of flee for assistance) - FOLLOW_MOTION_TYPE = 14, // TargetedMovementGenerator.h - EFFECT_MOTION_TYPE = 15, - PATROL_MOTION_TYPE = 16, - CHARGE_MOTION_TYPE = 17, - DISTANCING_MOTION_TYPE = 18, + CYCLIC_MOTION_TYPE = 3, // CyclicMovementGenerator.h + MAX_DB_MOTION_TYPE = 4, // *** this and below motion types can't be set in DB. + + CONFUSED_MOTION_TYPE = 5, // ConfusedMovementGenerator.h + CHASE_MOTION_TYPE = 6, // TargetedMovementGenerator.h + HOME_MOTION_TYPE = 7, // HomeMovementGenerator.h + FLIGHT_MOTION_TYPE = 8, // WaypointMovementGenerator.h + POINT_MOTION_TYPE = 9, // PointMovementGenerator.h + FLEEING_MOTION_TYPE = 10, // FleeingMovementGenerator.h + DISTRACT_MOTION_TYPE = 11, // IdleMovementGenerator.h + ASSISTANCE_MOTION_TYPE = 12, // PointMovementGenerator.h (first part of flee for assistance) + ASSISTANCE_DISTRACT_MOTION_TYPE = 13, // IdleMovementGenerator.h (second part of flee for assistance) + TIMED_FLEEING_MOTION_TYPE = 14, // FleeingMovementGenerator.h (alt.second part of flee for assistance) + FOLLOW_MOTION_TYPE = 15, // TargetedMovementGenerator.h + EFFECT_MOTION_TYPE = 16, + PATROL_MOTION_TYPE = 17, + CHARGE_MOTION_TYPE = 18, + DISTANCING_MOTION_TYPE = 19, }; enum MMCleanFlag @@ -136,6 +137,7 @@ class MotionMaster : std::stack void MoveSeekAssistanceDistract(uint32 timer); void MoveWaypoint(uint32 startPoint = 0, uint32 source = 0, uint32 initialDelay = 0, uint32 overwriteGuid = 0, uint32 overwriteEntry = 0, bool repeat = true); void MoveWaypointAsDefault(uint32 startPoint = 0, uint32 source = 0, uint32 initialDelay = 0, uint32 overwriteGuid = 0, uint32 overwriteEntry = 0, bool repeat = true); + void MoveCyclicWaypoint(uint32 source = 0, uint32 overwriteGuid = 0, uint32 overwriteEntry = 0); void MoveTaxiFlight(uint32 path, uint32 pathnode); void MoveTaxiFlight(); void MoveDistract(uint32 timeLimit); From 6306d2366baa72c9809f4dc270a35e1af8d9adf9 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 28 Jul 2023 10:19:05 +0300 Subject: [PATCH 132/426] Implement waypoint sub path. Some flying creatures have a predefined sub path that is sent in a single monster move packet as part of their waypoints. --- sql/migrations/20230728051958_world.sql | 385 ++++++++++++++++++ src/game/Movement/WaypointManager.cpp | 38 +- src/game/Movement/WaypointManager.h | 7 +- .../Movement/WaypointMovementGenerator.cpp | 16 +- 4 files changed, 431 insertions(+), 15 deletions(-) create mode 100644 sql/migrations/20230728051958_world.sql diff --git a/sql/migrations/20230728051958_world.sql b/sql/migrations/20230728051958_world.sql new file mode 100644 index 00000000000..6e9398bcfd3 --- /dev/null +++ b/sql/migrations/20230728051958_world.sql @@ -0,0 +1,385 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230728051958'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230728051958'); +-- Add your query below. + + +-- Add ability to specify subpath inside waypoints. +ALTER TABLE `creature_movement` + ADD COLUMN `path_id` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `script_id`; +ALTER TABLE `creature_movement_special` + ADD COLUMN `path_id` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `script_id`; +ALTER TABLE `creature_movement_template` + ADD COLUMN `path_id` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `script_id`; + +-- Correct waypoints for Pridewing Soarer. +UPDATE `creature` SET `movement_type`=2 WHERE `guid`=32374; +DELETE FROM `creature_movement` WHERE `id`=32374; +INSERT INTO `creature_movement` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `wander_distance`, `script_id`, `path_id`) VALUES (32374, 1, 1274.96, 998.782, 261.414, 100, 30000, 3, 0, 3237401); +INSERT INTO `creature_movement` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `wander_distance`, `script_id`, `path_id`) VALUES (32374, 2, 1395.66, 1133.55, 253.876, 100, 30000, 3, 0, 3237402); +INSERT INTO `creature_movement_special` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES +(3237401, 1, 1387.64, 1133.09, 248.428), +(3237401, 2, 1396.62, 1132.77, 252.803), +(3237401, 3, 1400.68, 1132.62, 254.776), +(3237401, 4, 1406.69, 1127.44, 258.387), +(3237401, 5, 1409.68, 1123.71, 255.582), +(3237401, 6, 1414.02, 1121.01, 249.165), +(3237401, 7, 1416.11, 1117.24, 236.443), +(3237401, 8, 1421.44, 1112.35, 215.387), +(3237401, 9, 1425.69, 1107.29, 201.693), +(3237401, 10, 1438.73, 1084.49, 187.471), +(3237401, 11, 1446.57, 1071.35, 180.943), +(3237401, 12, 1452.5, 1049.66, 175.776), +(3237401, 13, 1436.59, 1029.14, 176.471), +(3237401, 14, 1424.26, 1014.05, 176.471), +(3237401, 15, 1410.04, 1001.95, 170.137), +(3237401, 16, 1398.42, 994.845, 170.61), +(3237401, 17, 1394.7, 975.518, 170.971), +(3237401, 18, 1379.78, 954.346, 175.971), +(3237401, 19, 1368.1, 928.627, 179.026), +(3237401, 20, 1358.26, 916.91, 181.943), +(3237401, 21, 1348.86, 897.846, 188.415), +(3237401, 22, 1336.86, 887.012, 195.498), +(3237401, 23, 1313.8, 880.434, 202.418), +(3237401, 24, 1296.83, 883.685, 221.386), +(3237401, 25, 1285.43, 889.878, 232.88), +(3237401, 26, 1273.14, 900.961, 244.577), +(3237401, 27, 1262.02, 910.496, 262.151), +(3237401, 28, 1252.22, 920.432, 276.769), +(3237401, 29, 1246.96, 925.998, 286.275), +(3237401, 30, 1243.22, 931.168, 290.864), +(3237401, 31, 1236.76, 942.648, 297.08), +(3237401, 32, 1236.67, 950.701, 295.497), +(3237401, 33, 1243.75, 966.164, 284.997), +(3237401, 34, 1250.26, 975.396, 280.359), +(3237401, 35, 1253.98, 980.958, 272.831), +(3237401, 36, 1260.66, 984.847, 270.386), +(3237401, 37, 1267.97, 992.074, 261.108), +(3237401, 38, 1274.96, 998.782, 261.414), +(3237401, 39, 1274.96, 998.782, 261.414); +INSERT INTO `creature_movement_special` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES +(3237402, 1, 1271.17, 995.105, 250.358), +(3237402, 2, 1274.09, 998.519, 259.289), +(3237402, 3, 1275.1, 999.694, 262.364), +(3237402, 4, 1281.85, 999.434, 262.975), +(3237402, 5, 1288.66, 1000.07, 255.17), +(3237402, 6, 1313.98, 1000.74, 212.531), +(3237402, 7, 1330.31, 1003.52, 197.698), +(3237402, 8, 1337.21, 1012.44, 189.42), +(3237402, 9, 1343.12, 1024.66, 187.337), +(3237402, 10, 1354.53, 1039.49, 184.864), +(3237402, 11, 1367.97, 1048.17, 184.781), +(3237402, 12, 1379.21, 1059.91, 182.337), +(3237402, 13, 1403, 1075.96, 183.503), +(3237402, 14, 1432.6, 1088.25, 177.642), +(3237402, 15, 1454.16, 1062.88, 178.476), +(3237402, 16, 1446.95, 1040.85, 176.281), +(3237402, 17, 1436.27, 1026.84, 176.337), +(3237402, 18, 1421.5, 1006.3, 171.753), +(3237402, 19, 1397.21, 994.459, 171.67), +(3237402, 20, 1372.54, 995.34, 175.059), +(3237402, 21, 1356.78, 1008.53, 176.42), +(3237402, 22, 1354.12, 1026.88, 178.503), +(3237402, 23, 1356.12, 1059.95, 194.836), +(3237402, 24, 1356.27, 1082.76, 206.836), +(3237402, 25, 1356.05, 1093.33, 211.781), +(3237402, 26, 1360.27, 1104.55, 215.923), +(3237402, 27, 1368.5, 1116.55, 220.34), +(3237402, 28, 1379.23, 1124.18, 244.757), +(3237402, 29, 1385.14, 1128.52, 254.068), +(3237402, 30, 1391.94, 1132.41, 256.561), +(3237402, 31, 1395.66, 1133.55, 253.876), +(3237402, 32, 1395.66, 1133.55, 253.876); + +-- Correct waypoints for Pridewing Soarer. +UPDATE `creature` SET `movement_type`=2 WHERE `guid`=32376; +DELETE FROM `creature_movement` WHERE `id`=32376; +INSERT INTO `creature_movement` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `wander_distance`, `path_id`) VALUES (32376, 1, 1588.57, 872.573, 184.32, 100, 30000, 3, 3237601); +INSERT INTO `creature_movement` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `wander_distance`, `path_id`) VALUES (32376, 2, 1767.44, 1039.39, 228.905, 100, 30000, 3, 3237602); +INSERT INTO `creature_movement_special` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES +(3237601, 1, 1765.87, 1040.09, 217.624), +(3237601, 2, 1766.04, 1037.96, 227.392), +(3237601, 3, 1766.09, 1037.38, 230.042), +(3237601, 4, 1759.48, 1034.44, 234.07), +(3237601, 5, 1754.04, 1031.02, 229.237), +(3237601, 6, 1747.28, 1027.67, 218.681), +(3237601, 7, 1731.85, 1020.52, 187.987), +(3237601, 8, 1725.09, 998.122, 168.681), +(3237601, 9, 1705.45, 985.035, 151.848), +(3237601, 10, 1682.25, 982.822, 151.848), +(3237601, 11, 1662.47, 979.501, 151.848), +(3237601, 12, 1644.07, 977.984, 151.848), +(3237601, 13, 1624.68, 967.497, 151.848), +(3237601, 14, 1598.07, 947.549, 151.848), +(3237601, 15, 1580.34, 934.014, 151.848), +(3237601, 16, 1560.31, 921.705, 153.765), +(3237601, 17, 1545.36, 908.896, 151.848), +(3237601, 18, 1537.41, 891.779, 147.932), +(3237601, 19, 1533.62, 872.735, 151.848), +(3237601, 20, 1542.36, 852.207, 151.848), +(3237601, 21, 1562.16, 836.722, 154.931), +(3237601, 22, 1583.79, 825.638, 151.848), +(3237601, 23, 1603.56, 821.713, 155.459), +(3237601, 24, 1627.16, 827.142, 151.848), +(3237601, 25, 1647.43, 839.484, 154.376), +(3237601, 26, 1659.28, 856.68, 151.848), +(3237601, 27, 1658.28, 878.404, 151.848), +(3237601, 28, 1651.84, 895.148, 151.848), +(3237601, 29, 1641.19, 911.85, 151.848), +(3237601, 30, 1623.35, 918.965, 151.848), +(3237601, 31, 1597.23, 916.092, 157.598), +(3237601, 32, 1585.17, 898.823, 169.042), +(3237601, 33, 1584.06, 879.774, 187.403), +(3237601, 34, 1588.57, 872.573, 184.32), +(3237601, 35, 1588.57, 872.573, 184.32); +INSERT INTO `creature_movement_special` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES +(3237602, 1, 1577.96, 877.011, 180.776), +(3237602, 2, 1587.21, 873.962, 183.062), +(3237602, 3, 1591.53, 872.536, 184.131), +(3237602, 4, 1600.41, 868.411, 182.298), +(3237602, 5, 1609.13, 869.052, 177.603), +(3237602, 6, 1630.69, 862.247, 158.826), +(3237602, 7, 1667.96, 859.623, 160.159), +(3237602, 8, 1701.84, 848.873, 155.576), +(3237602, 9, 1744.76, 848.956, 161.103), +(3237602, 10, 1778.24, 855.889, 164.964), +(3237602, 11, 1768.1, 883.739, 164.77), +(3237602, 12, 1782.73, 906.242, 178.992), +(3237602, 13, 1798.13, 914.202, 174.714), +(3237602, 14, 1811.73, 931.175, 173.048), +(3237602, 15, 1819.88, 952.545, 171.103), +(3237602, 16, 1817.88, 980.602, 168.27), +(3237602, 17, 1815.68, 1006.06, 170.103), +(3237602, 18, 1814.61, 1026.83, 186.103), +(3237602, 19, 1800.21, 1036.99, 204.798), +(3237602, 20, 1790.95, 1039.24, 221.275), +(3237602, 21, 1783.2, 1038.36, 229.046), +(3237602, 22, 1773.79, 1039.23, 230.44), +(3237602, 23, 1767.44, 1039.39, 228.905), +(3237602, 24, 1767.44, 1039.39, 228.905); + +-- This is the same spawn as 32376. +DELETE FROM `creature` WHERE `guid`=32375; +DELETE FROM `creature_movement` WHERE `id`=32375; + +-- Blackrock Drake drake should use cyclic movement. +UPDATE `creature` SET `movement_type`=3 WHERE `guid`=3344; + +-- Add missing Soaring Razorbeak. +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES (92913, 8276, 0, 0, 0, 0, 0, 406.208, -3035.6, 168.384, 4.9824, 350, 350, 0, 100, 0, 3, 0, 0, 0, 10); +INSERT INTO `creature_movement` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES +(92913, 1, 406.208, -3035.6, 168.384), +(92913, 2, 407.741, -3026.06, 170.978), +(92913, 3, 408.382, -3022.08, 172.061), +(92913, 4, 408.764, -3001.82, 180.172), +(92913, 5, 390.414, -2980.69, 186.311), +(92913, 6, 360.406, -2967.07, 181.061), +(92913, 7, 333.604, -2964.41, 169.95), +(92913, 8, 312.323, -2950.05, 169.95), +(92913, 9, 292.41, -2925.48, 169.95), +(92913, 10, 262.347, -2894.73, 169.95), +(92913, 11, 232.491, -2859.15, 169.95), +(92913, 12, 209.593, -2823.02, 169.95), +(92913, 13, 183.598, -2800.43, 169.95), +(92913, 14, 167.489, -2779.08, 169.95), +(92913, 15, 141.492, -2772.1, 169.95), +(92913, 16, 105.78, -2778.33, 169.95), +(92913, 17, 89.8152, -2776.24, 169.95), +(92913, 18, 64.9773, -2790.8, 169.95), +(92913, 19, 50.3032, -2804.86, 169.95), +(92913, 20, 41.9684, -2823.31, 169.95), +(92913, 21, 46.2215, -2853.43, 172.255), +(92913, 22, 33.4274, -2886.25, 169.95), +(92913, 23, 3.64811, -2911.17, 169.95), +(92913, 24, -38.4928, -2938.7, 169.95), +(92913, 25, -49.6163, -2971.41, 169.95), +(92913, 26, -53.8288, -3017.34, 169.95), +(92913, 27, -38.2822, -3042.15, 169.95), +(92913, 28, -13.7435, -3070.38, 169.95), +(92913, 29, 19.4945, -3085.11, 169.95), +(92913, 30, 55.17, -3105.96, 169.95), +(92913, 31, 91.0723, -3112.04, 169.95), +(92913, 32, 121.827, -3113.41, 169.95), +(92913, 33, 144.154, -3128.86, 169.95), +(92913, 34, 172.052, -3135.79, 169.95), +(92913, 35, 198.632, -3119.66, 169.95), +(92913, 36, 214.294, -3097.13, 169.95), +(92913, 37, 215.762, -3067.86, 169.95), +(92913, 38, 213.489, -3032.99, 169.95), +(92913, 39, 191.565, -2997.42, 169.95), +(92913, 40, 157.876, -2987.23, 169.95), +(92913, 41, 143.048, -2974.78, 169.95), +(92913, 42, 143.945, -2951.89, 169.7), +(92913, 43, 161.382, -2943.69, 169.95), +(92913, 44, 181.436, -2949.3, 169.95), +(92913, 45, 199.697, -2960.48, 169.95), +(92913, 46, 211.579, -2973.65, 169.95), +(92913, 47, 234.624, -2994.18, 169.95), +(92913, 48, 234.424, -3036.44, 169.95), +(92913, 49, 254.7, -3059.21, 169.95), +(92913, 50, 286.733, -3084.27, 169.95), +(92913, 51, 308.465, -3084.5, 169.95), +(92913, 52, 341.858, -3070.79, 169.95), +(92913, 53, 368.416, -3064.39, 169.95), +(92913, 54, 391.328, -3055.33, 171.311), +(92913, 55, 404.253, -3043.25, 171.478), +(92913, 56, 407.741, -3026.06, 170.978), +(92913, 57, 407.741, -3026.06, 170.978); + +-- Add missing Brood of Nozdormu. +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES (42903, 15185, 0, 0, 0, 0, 1, -8100.03, 1834.71, 128.845, 0.522566, 600, 600, 0, 100, 100, 3, 0, 0, 6, 10); +INSERT INTO `creature_movement` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES +(42903, 1, -8100.03, 1834.71, 128.845), +(42903, 2, -8099.8, 1826, 123.925), +(42903, 3, -8099.74, 1823.73, 122.641), +(42903, 4, -8099.92, 1801.21, 120.668), +(42903, 5, -8099.98, 1769.6, 108.002), +(42903, 6, -8099.46, 1719.34, 108.002), +(42903, 7, -8099.24, 1691, 107.168), +(42903, 8, -8099.05, 1666.93, 101.641), +(42903, 9, -8099.48, 1635.89, 108.002), +(42903, 10, -8088.04, 1604.1, 108.002), +(42903, 11, -8067.24, 1586.31, 108.002), +(42903, 12, -8061.24, 1557.51, 108.002), +(42903, 13, -8083.52, 1536.59, 108.002), +(42903, 14, -8099.11, 1503.03, 108.002), +(42903, 15, -8100.23, 1478.06, 108.002), +(42903, 16, -8095.02, 1460.6, 108.002), +(42903, 17, -8079.55, 1447.47, 108.002), +(42903, 18, -8057.83, 1431.13, 108.002), +(42903, 19, -8039.18, 1411.03, 108.002), +(42903, 20, -8033.14, 1379.13, 108.002), +(42903, 21, -8008.06, 1359.89, 108.002), +(42903, 22, -8014.91, 1333.99, 108.002), +(42903, 23, -8027.03, 1296.12, 108.002), +(42903, 24, -7999.15, 1267.96, 108.002), +(42903, 25, -7972.29, 1256.33, 108.002), +(42903, 26, -7960.03, 1274.41, 108.002), +(42903, 27, -7954.57, 1288.29, 108.002), +(42903, 28, -7957.11, 1309.45, 108.002), +(42903, 29, -7964.04, 1334.08, 108.002), +(42903, 30, -7967.83, 1356.21, 108.002), +(42903, 31, -7979.55, 1375, 108.002), +(42903, 32, -7994.98, 1384.57, 108.002), +(42903, 33, -8014.83, 1389.91, 108.002), +(42903, 34, -8053.32, 1379.91, 108.002), +(42903, 35, -8068.52, 1399.2, 108.002), +(42903, 36, -8079.5, 1424.43, 108.002), +(42903, 37, -8082.93, 1452.81, 108.002), +(42903, 38, -8086.57, 1486.08, 108.002), +(42903, 39, -8075.36, 1512.26, 108.002), +(42903, 40, -8065.1, 1532.65, 108.002), +(42903, 41, -8051.26, 1562.5, 108.002), +(42903, 42, -8045.08, 1601.08, 108.002), +(42903, 43, -8049.93, 1635.22, 108.002), +(42903, 44, -8055.19, 1678.51, 108.002), +(42903, 45, -8054.07, 1710.28, 108.002), +(42903, 46, -8063.63, 1754.54, 108.002), +(42903, 47, -8082.12, 1764.45, 108.002), +(42903, 48, -8086.07, 1782.36, 112.113), +(42903, 49, -8088.21, 1801.82, 119.057), +(42903, 50, -8092.13, 1817.43, 117.641), +(42903, 51, -8092.89, 1833.92, 122.168), +(42903, 52, -8107.47, 1871.69, 128.446), +(42903, 53, -8114.38, 1856.47, 122.363), +(42903, 54, -8099.8, 1826, 123.925), +(42903, 55, -8099.8, 1826, 123.925); + +-- Add missing Brood of Nozdormu. +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES (42920, 15185, 0, 0, 0, 0, 1, -7667.3, 2041.83, 192.263, 0.522566, 600, 600, 0, 100, 100, 3, 0, 0, 6, 10); +INSERT INTO `creature_movement` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES +(42920, 1, -7667.3, 2041.83, 192.263), +(42920, 2, -7674.82, 2035.26, 191.629), +(42920, 3, -7679.21, 2031.43, 191.26), +(42920, 4, -7690.24, 2020.24, 191.26), +(42920, 5, -7717.44, 1985.56, 191.26), +(42920, 6, -7724.16, 1975.75, 191.26), +(42920, 7, -7740.5, 1956.56, 191.26), +(42920, 8, -7747.92, 1944.78, 191.26), +(42920, 9, -7758.78, 1931.23, 191.26), +(42920, 10, -7784.46, 1911.18, 191.26), +(42920, 11, -7809.51, 1896.79, 191.26), +(42920, 12, -7837.97, 1888.7, 191.26), +(42920, 13, -7855.2, 1885.57, 191.26), +(42920, 14, -7871.06, 1868.77, 191.26), +(42920, 15, -7876.91, 1847.75, 191.26), +(42920, 16, -7880.95, 1818.83, 191.26), +(42920, 17, -7890.37, 1791.6, 191.26), +(42920, 18, -7920.55, 1759.56, 191.26), +(42920, 19, -7933.46, 1725, 191.26), +(42920, 20, -7949.3, 1706.04, 191.26), +(42920, 21, -7955, 1683.4, 191.26), +(42920, 22, -7971.42, 1667.72, 191.26), +(42920, 23, -7990.93, 1635.73, 191.26), +(42920, 24, -7997.99, 1606.83, 191.26), +(42920, 25, -8010.63, 1581.05, 191.26), +(42920, 26, -8033.25, 1573.85, 191.26), +(42920, 27, -8060.14, 1569.48, 191.26), +(42920, 28, -8092.81, 1564.88, 191.26), +(42920, 29, -8096.4, 1541.73, 191.26), +(42920, 30, -8092.07, 1521.85, 191.26), +(42920, 31, -8072.09, 1500.61, 191.26), +(42920, 32, -8072.61, 1478.55, 191.26), +(42920, 33, -8041.02, 1462.95, 191.26), +(42920, 34, -8013.81, 1448.77, 191.26), +(42920, 35, -7996.25, 1426.33, 191.26), +(42920, 36, -7968.74, 1390.65, 191.26), +(42920, 37, -7927.57, 1397.45, 191.26), +(42920, 38, -7912.8, 1412.86, 191.26), +(42920, 39, -7899.07, 1427.05, 191.26), +(42920, 40, -7899.71, 1450.88, 191.26), +(42920, 41, -7914.69, 1490.06, 191.26), +(42920, 42, -7924.58, 1501.21, 191.26), +(42920, 43, -7936.9, 1514.69, 191.26), +(42920, 44, -7953.49, 1528.96, 191.26), +(42920, 45, -7968.81, 1536.15, 191.26), +(42920, 46, -7985.88, 1544.26, 191.26), +(42920, 47, -8017.87, 1557.94, 191.26), +(42920, 48, -8049.92, 1564.56, 191.26), +(42920, 49, -8072.12, 1578.81, 191.26), +(42920, 50, -8080.22, 1600.49, 191.26), +(42920, 51, -8076.47, 1618.49, 191.26), +(42920, 52, -8067.91, 1640.46, 191.26), +(42920, 53, -8051.11, 1654.4, 191.26), +(42920, 54, -8023.06, 1666.22, 191.26), +(42920, 55, -7998.85, 1670.47, 191.26), +(42920, 56, -7977.98, 1675.11, 191.26), +(42920, 57, -7960.27, 1689.31, 191.26), +(42920, 58, -7949.88, 1713.04, 191.26), +(42920, 59, -7932.66, 1730.64, 191.26), +(42920, 60, -7908.3, 1772.9, 191.26), +(42920, 61, -7907.11, 1787.82, 191.26), +(42920, 62, -7884.36, 1806.3, 191.26), +(42920, 63, -7845.26, 1813.97, 191.26), +(42920, 64, -7808.99, 1831.99, 191.26), +(42920, 65, -7786.75, 1846.68, 191.26), +(42920, 66, -7767.55, 1863.79, 191.26), +(42920, 67, -7746.6, 1878.44, 191.26), +(42920, 68, -7732.98, 1890.91, 191.26), +(42920, 69, -7720.87, 1907.01, 191.26), +(42920, 70, -7702.14, 1927.73, 191.26), +(42920, 71, -7689.2, 1933.11, 191.26), +(42920, 72, -7677.33, 1942.47, 191.26), +(42920, 73, -7657.08, 1966.32, 191.26), +(42920, 74, -7634.61, 1999.73, 191.26), +(42920, 75, -7637.86, 2018.34, 191.26), +(42920, 76, -7626.9, 2058.21, 191.26), +(42920, 77, -7639.52, 2070.94, 191.26), +(42920, 78, -7674.82, 2035.26, 191.629), +(42920, 79, -7674.82, 2035.26, 191.629); + +-- Remove wander distance from this Brood of Nozdormu spawn. +UPDATE `creature` SET `wander_distance`=0 WHERE `guid`=42902; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Movement/WaypointManager.cpp b/src/game/Movement/WaypointManager.cpp index e6a86ec2c55..22d52601018 100644 --- a/src/game/Movement/WaypointManager.cpp +++ b/src/game/Movement/WaypointManager.cpp @@ -38,6 +38,7 @@ void WaypointManager::Load() uint32 total_nodes = 0; uint32 total_behaviors = 0; + std::set specialPathSet; std::set movementScriptSet; for (const auto& itr : sCreatureMovementScripts) @@ -78,8 +79,8 @@ void WaypointManager::Load() delete result; - // 0 1 2 3 4 5 6 7 8 - result = WorldDatabase.Query("SELECT `id`, `point`, `position_x`, `position_y`, `position_z`, `waittime`, `wander_distance`, `script_id`, `orientation` FROM `creature_movement`"); + // 0 1 2 3 4 5 6 7 8 9 + result = WorldDatabase.Query("SELECT `id`, `point`, `position_x`, `position_y`, `position_z`, `waittime`, `wander_distance`, `script_id`, `orientation`, `path_id` FROM `creature_movement`"); BarGoLink barRow((int)result->GetRowCount()); @@ -107,7 +108,7 @@ void WaypointManager::Load() if (!cData) { if (!sObjectMgr.IsExistingCreatureGuid(id)) - sLog.Out(LOG_DBERROR, LOG_LVL_ERROR, "Table creature_movement contain path for creature guid %u, but this creature guid does not exist. Skipping.", id); + sLog.Out(LOG_DBERROR, LOG_LVL_ERROR, "Table creature_movement contains path for creature guid %u, but this creature guid does not exist. Skipping.", id); continue; } @@ -125,6 +126,10 @@ void WaypointManager::Load() node.delay = fields[5].GetUInt32(); node.wander_distance = fields[6].GetFloat(); node.script_id = fields[7].GetUInt32(); + node.path_id = fields[9].GetUInt32(); + + if (node.path_id) + specialPathSet.insert(node.path_id); // prevent using invalid coordinates if (!MaNGOS::IsValidMapCoord(node.x, node.y, node.z, node.orientation == 100.0f ? 0.0f : node.orientation)) @@ -196,8 +201,8 @@ void WaypointManager::Load() sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ""); sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ">> Path templates loaded"); - // 0 1 2 3 4 5 6 7 8 - result = WorldDatabase.Query("SELECT `entry`, `point`, `position_x`, `position_y`, `position_z`, `waittime`, `wander_distance`, `script_id`, `orientation` FROM `creature_movement_template`"); + // 0 1 2 3 4 5 6 7 8 9 + result = WorldDatabase.Query("SELECT `entry`, `point`, `position_x`, `position_y`, `position_z`, `waittime`, `wander_distance`, `script_id`, `orientation`, `path_id` FROM `creature_movement_template`"); BarGoLink bar(result->GetRowCount()); @@ -244,6 +249,10 @@ void WaypointManager::Load() node.delay = fields[5].GetUInt32(); node.wander_distance = fields[6].GetFloat(); node.script_id = fields[7].GetUInt32(); + node.path_id = fields[9].GetUInt32(); + + if (node.path_id) + specialPathSet.insert(node.path_id); // prevent using invalid coordinates if (!MaNGOS::IsValidMapCoord(node.x, node.y, node.z, node.orientation == 100.0f ? 0.0f : node.orientation)) @@ -307,8 +316,8 @@ void WaypointManager::Load() delete result; - // 0 1 2 3 4 5 6 7 8 - result = WorldDatabase.Query("SELECT `id`, `point`, `position_x`, `position_y`, `position_z`, `waittime`, `wander_distance`, `script_id`, `orientation` FROM `creature_movement_special`"); + // 0 1 2 3 4 5 6 7 8 9 + result = WorldDatabase.Query("SELECT `id`, `point`, `position_x`, `position_y`, `position_z`, `waittime`, `wander_distance`, `script_id`, `orientation`, `path_id` FROM `creature_movement_special`"); BarGoLink barRow((int)result->GetRowCount()); @@ -345,6 +354,10 @@ void WaypointManager::Load() node.delay = fields[5].GetUInt32(); node.wander_distance = fields[6].GetFloat(); node.script_id = fields[7].GetUInt32(); + node.path_id = fields[9].GetUInt32(); + + if (node.path_id) + specialPathSet.insert(node.path_id); // prevent using invalid coordinates if (!MaNGOS::IsValidMapCoord(node.x, node.y, node.z, node.orientation == 100.0f ? 0.0f : node.orientation)) @@ -371,11 +384,14 @@ void WaypointManager::Load() delete result; } - if (!movementScriptSet.empty()) + for (auto const& id : specialPathSet) { - for (const auto itr : movementScriptSet) - sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Table `creature_movement_scripts` contain unused script, id %u.", itr); + if (m_pathSpecialMap.find(id) == m_pathSpecialMap.end()) + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Path id %u from `creature_movement_special` is referenced as sub path id, but does not exist!", id); } + + for (auto const& id : movementScriptSet) + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Table `creature_movement_scripts` contains unused script, id %u.", id); } void WaypointManager::Cleanup() @@ -467,7 +483,7 @@ WaypointNode const* WaypointManager::AddNode(uint32 entry, uint32 dbGuid, uint32 pointId = path.rbegin()->first + 1; uint32 nextPoint = pointId; - WaypointNode temp = WaypointNode(x, y, z, 100, 0, 0, 0); + WaypointNode temp = WaypointNode(x, y, z, 100, 0, 0, 0, 0); WaypointPath::iterator find = path.find(nextPoint); if (find != path.end()) // Point already exists { diff --git a/src/game/Movement/WaypointManager.h b/src/game/Movement/WaypointManager.h index f3c75b317bf..4050a6e3c06 100644 --- a/src/game/Movement/WaypointManager.h +++ b/src/game/Movement/WaypointManager.h @@ -44,9 +44,10 @@ struct WaypointNode uint32 delay; float wander_distance; uint32 script_id; - WaypointNode() : x(0.0f), y(0.0f), z(0.0f), orientation(0.0f), delay(0), wander_distance(0.0f), script_id(0) {} - WaypointNode(float _x, float _y, float _z, float _o, uint32 _delay, float _wander_distance, uint32 _script_id) - : x(_x), y(_y), z(_z), orientation(_o), delay(_delay), wander_distance(_wander_distance), script_id(_script_id) {} + uint32 path_id; + WaypointNode() : x(0.0f), y(0.0f), z(0.0f), orientation(0.0f), delay(0), wander_distance(0.0f), script_id(0), path_id(0) {} + WaypointNode(float _x, float _y, float _z, float _o, uint32 _delay, float _wander_distance, uint32 _script_id, uint32 _path_id) + : x(_x), y(_y), z(_z), orientation(_o), delay(_delay), wander_distance(_wander_distance), script_id(_script_id), path_id(_path_id) {} }; typedef std::map < uint32 /*pointId*/, WaypointNode > WaypointPath; diff --git a/src/game/Movement/WaypointMovementGenerator.cpp b/src/game/Movement/WaypointMovementGenerator.cpp index b8a8688642d..dd35e270f9d 100644 --- a/src/game/Movement/WaypointMovementGenerator.cpp +++ b/src/game/Movement/WaypointMovementGenerator.cpp @@ -217,7 +217,21 @@ void WaypointMovementGenerator::StartMove(Creature &creature) WaypointNode const& nextNode = currPoint->second; Movement::MoveSplineInit init(creature, "WaypointMovementGenerator::StartMove"); - init.MoveTo(nextNode.x, nextNode.y, nextNode.z, (m_PathOrigin == PATH_FROM_SPECIAL) ? MOVE_STRAIGHT_PATH : MOVE_PATHFINDING); + + if (WaypointPath const* pSubpath = (nextNode.path_id ? sWaypointMgr.GetPathFromOrigin(nextNode.path_id, 0, 0, PATH_FROM_SPECIAL) : nullptr)) + { + PointsArray genPath; + genPath.resize(pSubpath->size()); + for (auto const& node : *pSubpath) + genPath[node.first] = G3D::Vector3(node.second.x, node.second.y, node.second.z); + + if (creature.CanFly()) + init.SetFly(); + + init.MovebyPath(genPath); + } + else + init.MoveTo(nextNode.x, nextNode.y, nextNode.z, (m_PathOrigin == PATH_FROM_SPECIAL) ? MOVE_STRAIGHT_PATH : MOVE_PATHFINDING); if (nextNode.orientation != 100 && nextNode.delay != 0) init.SetFacing(nextNode.orientation); From 0286aa797455481a5e15d357c6c3d519b22431e2 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 28 Jul 2023 23:39:03 +0300 Subject: [PATCH 133/426] Restore Avatar of Hakkar code. It was deleted by @schell244. Very cool. https://github.com/vmangos/core/commit/04b61aa7b36e8ab25d1a6127aad7897b7d3f51b3 Closes https://github.com/vmangos/core/issues/2139 --- .../sunken_temple/instance_sunken_temple.cpp | 7 +++++++ .../swamp_of_sorrows/sunken_temple/sunken_temple.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/src/scripts/eastern_kingdoms/swamp_of_sorrows/sunken_temple/instance_sunken_temple.cpp b/src/scripts/eastern_kingdoms/swamp_of_sorrows/sunken_temple/instance_sunken_temple.cpp index cbf3b88091a..40acf2faf04 100644 --- a/src/scripts/eastern_kingdoms/swamp_of_sorrows/sunken_temple/instance_sunken_temple.cpp +++ b/src/scripts/eastern_kingdoms/swamp_of_sorrows/sunken_temple/instance_sunken_temple.cpp @@ -55,6 +55,7 @@ struct instance_sunken_temple : public ScriptedInstance uint64 m_luiProtectorGUIDs[6]; // Jammalan door handling uint8 m_uiStatueCounter; // Atalarion Statue Event + uint8 m_uiFlameCounter; // Avatar of Hakkar Event uint64 m_uiShadeHakkarGUID; uint64 m_uiAtalarionGUID; uint64 m_uiJammalanBarrierGUID; @@ -80,6 +81,7 @@ struct instance_sunken_temple : public ScriptedInstance memset(&m_luiBigLightGUIDs, 0, sizeof(m_luiBigLightGUIDs)); m_uiStatueCounter = 0; + m_uiFlameCounter = 0; m_uiShadeHakkarGUID = 0; m_uiAtalarionGUID = 0; m_uiJammalanBarrierGUID = 0; @@ -493,6 +495,9 @@ struct instance_sunken_temple : public ScriptedInstance mobsEntries.clear(); } break; + case TYPE_ETERNAL_FLAME: + m_uiFlameCounter = uiData; + break; } if (uiData == DONE) @@ -555,6 +560,8 @@ struct instance_sunken_temple : public ScriptedInstance return m_auiEncounter[4]; case TYPE_ERANIKUS: return m_auiEncounter[5]; + case TYPE_ETERNAL_FLAME: + return m_uiFlameCounter; default: return 0; } diff --git a/src/scripts/eastern_kingdoms/swamp_of_sorrows/sunken_temple/sunken_temple.h b/src/scripts/eastern_kingdoms/swamp_of_sorrows/sunken_temple/sunken_temple.h index d5fa6b122f1..de2936261b5 100644 --- a/src/scripts/eastern_kingdoms/swamp_of_sorrows/sunken_temple/sunken_temple.h +++ b/src/scripts/eastern_kingdoms/swamp_of_sorrows/sunken_temple/sunken_temple.h @@ -23,6 +23,7 @@ enum { SUNKENTEMPLE_MAX_ENCOUNTER = 6, MAX_STATUES = 6, + MAX_FLAMES = 4, // Don't change types 1,2 and 3 (handled in ACID) TYPE_ATALARION_OBSOLET= 1, @@ -35,6 +36,7 @@ enum TYPE_MALFURION = 7, TYPE_AVATAR = 8, TYPE_ERANIKUS = 9, + TYPE_ETERNAL_FLAME = 10, NPC_ATALARION = 8580, NPC_DREAMSCYTH = 5721, From b9b4c7013076006f436c93847e54494dc975eb2f Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 29 Jul 2023 05:10:51 +0300 Subject: [PATCH 134/426] Replace some lists with vectors. --- src/game/Chat/Chat.cpp | 2 +- src/game/Commands/CharacterCommands.cpp | 6 +- src/game/Commands/DebugCommands.cpp | 4 +- src/game/Commands/MiscCommands.cpp | 5 +- src/game/Database/DBCStores.cpp | 106 +++++++++--------- src/game/GameEventMgr.h | 12 +- src/game/Group/Group.cpp | 4 +- src/game/Group/Group.h | 2 +- src/game/Guild/Guild.h | 4 +- src/game/Handlers/CharacterHandler.cpp | 2 +- src/game/HardcodedEvents.cpp | 2 +- src/game/LFG/LFGQueue.cpp | 4 +- src/game/LFG/LFGQueue.h | 4 +- src/game/Movement/MotionMaster.cpp | 42 ++++--- src/game/ObjectMgr.cpp | 2 +- src/game/ObjectMgr.h | 2 +- src/game/Objects/CreatureDefines.h | 2 +- src/game/Objects/GameObject.cpp | 2 +- src/game/Objects/Player.cpp | 4 +- src/game/Objects/Player.h | 6 +- src/game/Objects/SpellCaster.cpp | 34 ++++-- src/game/Objects/SpellCaster.h | 5 +- src/game/Objects/Unit.cpp | 73 ++++++------ src/game/Objects/Unit.h | 8 +- src/game/PlayerBots/CombatBotBaseAI.cpp | 6 +- src/game/Spells/Spell.h | 5 +- src/game/Spells/SpellEffects.cpp | 4 +- src/game/Spells/SpellMgr.cpp | 4 +- src/game/Spells/SpellMgr.h | 10 +- src/scripts/custom/event_attack_city.cpp | 2 +- .../instance_blackrock_depths.cpp | 10 +- .../stratholme/stratholme.cpp | 8 +- 32 files changed, 193 insertions(+), 193 deletions(-) diff --git a/src/game/Chat/Chat.cpp b/src/game/Chat/Chat.cpp index 47591655fa0..810e55a2b5a 100644 --- a/src/game/Chat/Chat.cpp +++ b/src/game/Chat/Chat.cpp @@ -2037,7 +2037,7 @@ bool ChatHandler::isValidChatMessage(char const* message) ItemPrototype const* linkedItem = nullptr; SpellEntry const* linkedSpell = nullptr; - std::list properties; + std::vector properties; while (!reader.eof()) { diff --git a/src/game/Commands/CharacterCommands.cpp b/src/game/Commands/CharacterCommands.cpp index 87695a956f4..f1824397134 100644 --- a/src/game/Commands/CharacterCommands.cpp +++ b/src/game/Commands/CharacterCommands.cpp @@ -1332,14 +1332,14 @@ bool ChatHandler::GetDeletedCharacterInfoList(DeletedInfoList& foundList, bool u LoginDatabase.escape_string(searchString); QueryResult* result = LoginDatabase.PQuery("SELECT `id` FROM `account` WHERE `username` " _LIKE_ " " _CONCAT2_("'%s'", "'%%'"), searchString.c_str()); - std::list list; + std::vector list; if (result) { do { Field* fields = result->Fetch(); - uint32 acc_id = fields[0].GetUInt32(); - list.push_back(acc_id); + uint32 accId = fields[0].GetUInt32(); + list.push_back(accId); } while (result->NextRow()); delete result; diff --git a/src/game/Commands/DebugCommands.cpp b/src/game/Commands/DebugCommands.cpp index e8f9be1c254..8102a54becb 100644 --- a/src/game/Commands/DebugCommands.cpp +++ b/src/game/Commands/DebugCommands.cpp @@ -2049,7 +2049,7 @@ bool ChatHandler::HandleVideoTurn(char*) float constexpr angleBegin = 0.0f; float constexpr angleEnd = 10 * M_PI_F; float constexpr moveSpeed = 30.0f; - std::list targets; + Unit* selection = GetSelectedUnit(); if (!selection) { @@ -2531,8 +2531,6 @@ bool ChatHandler::HandleMmapConnection(char* args) return true; } -typedef std::list MmapTestUnitList; - bool ChatHandler::HandleMmapTestArea(char* args) { float radius = 40.0f; diff --git a/src/game/Commands/MiscCommands.cpp b/src/game/Commands/MiscCommands.cpp index d104a44bed2..da7e2a36782 100644 --- a/src/game/Commands/MiscCommands.cpp +++ b/src/game/Commands/MiscCommands.cpp @@ -227,7 +227,7 @@ bool ChatHandler::HandleGMListFullCommand(char* /*args*/) bool ChatHandler::HandleGMListIngameCommand(char* /*args*/) { - std::list< std::pair > names; + std::vector< std::pair > names; { HashMapHolder::ReadGuard g(HashMapHolder::GetLock()); @@ -902,8 +902,7 @@ bool ChatHandler::HandleSendItemsHelper(MailDraft& draft, char* args) // extract items typedef std::pair ItemPair; - typedef std::list< ItemPair > ItemPairs; - ItemPairs items; + std::vector items; // get from tail next item str while (char* itemStr = ExtractArg(&args)) diff --git a/src/game/Database/DBCStores.cpp b/src/game/Database/DBCStores.cpp index 457c5fa60cc..2418b971ead 100644 --- a/src/game/Database/DBCStores.cpp +++ b/src/game/Database/DBCStores.cpp @@ -116,7 +116,7 @@ DBCStorage sWorldMapAreaStore(WorldMapAreaEntryfmt); //DBCStorage sWorldMapOverlayStore(WorldMapOverlayEntryfmt); DBCStorage sWorldSafeLocsStore(WorldSafeLocsEntryfmt); -typedef std::list StoreProblemList; +typedef std::vector StoreProblemList; bool IsAcceptableClientBuild(uint32 build) { @@ -189,51 +189,51 @@ void LoadDBCStores(std::string const& dataPath) BarGoLink bar(DBCFilesCount); - StoreProblemList bad_dbc_files; + StoreProblemList badDbcFiles; // bitmask for index of fullLocaleNameList uint32 availableDbcLocales = 0xFFFFFFFF; - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sAuctionHouseStore, dbcPath, "AuctionHouse.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sBankBagSlotPricesStore, dbcPath, "BankBagSlotPrices.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sAuctionHouseStore, dbcPath, "AuctionHouse.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sBankBagSlotPricesStore, dbcPath, "BankBagSlotPrices.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sChatChannelsStore, dbcPath, "ChatChannels.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sChatChannelsStore, dbcPath, "ChatChannels.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sCharacterFacialHairStylesStore, dbcPath, "CharacterFacialHairStyles.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sCharacterFacialHairStylesStore, dbcPath, "CharacterFacialHairStyles.dbc"); for (uint32 i = 0; i < sCharacterFacialHairStylesStore.GetNumRows(); ++i) if (CharacterFacialHairStylesEntry const* entry = sCharacterFacialHairStylesStore.LookupEntry(i)) if (entry->RaceID && ((1 << (entry->RaceID - 1)) & RACEMASK_ALL_PLAYABLE) != 0) // ignore nonplayable races sCharFacialHairMap.insert({ entry->RaceID | (entry->SexID << 8) | (entry->VariationID << 16), entry }); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sCharSectionsStore, dbcPath, "CharSections.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sCharSectionsStore, dbcPath, "CharSections.dbc"); for (uint32 i = 0; i < sCharSectionsStore.GetNumRows(); ++i) if (CharSectionsEntry const* entry = sCharSectionsStore.LookupEntry(i)) if (entry->Race && ((1 << (entry->Race - 1)) & RACEMASK_ALL_PLAYABLE) != 0) //ignore Nonplayable races sCharSectionMap.emplace(uint8(entry->BaseSection) | (uint8(entry->Gender) << 8) | (uint8(entry->Race) << 16), entry); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sChrClassesStore, dbcPath, "ChrClasses.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sChrRacesStore, dbcPath, "ChrRaces.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sCinematicSequencesStore, dbcPath, "CinematicSequences.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sCreatureDisplayInfoStore, dbcPath, "CreatureDisplayInfo.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sCreatureDisplayInfoExtraStore, dbcPath, "CreatureDisplayInfoExtra.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sCreatureModelDataStore, dbcPath, "CreatureModelData.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sCreatureFamilyStore, dbcPath, "CreatureFamily.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sCreatureTypeStore, dbcPath, "CreatureType.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sDurabilityCostsStore, dbcPath, "DurabilityCosts.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sDurabilityQualityStore, dbcPath, "DurabilityQuality.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sEmotesStore, dbcPath, "Emotes.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sEmotesTextStore, dbcPath, "EmotesText.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sGameObjectDisplayInfoStore, dbcPath, "GameObjectDisplayInfo.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sChrClassesStore, dbcPath, "ChrClasses.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sChrRacesStore, dbcPath, "ChrRaces.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sCinematicSequencesStore, dbcPath, "CinematicSequences.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sCreatureDisplayInfoStore, dbcPath, "CreatureDisplayInfo.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sCreatureDisplayInfoExtraStore, dbcPath, "CreatureDisplayInfoExtra.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sCreatureModelDataStore, dbcPath, "CreatureModelData.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sCreatureFamilyStore, dbcPath, "CreatureFamily.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sCreatureTypeStore, dbcPath, "CreatureType.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sDurabilityCostsStore, dbcPath, "DurabilityCosts.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sDurabilityQualityStore, dbcPath, "DurabilityQuality.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sEmotesStore, dbcPath, "Emotes.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sEmotesTextStore, dbcPath, "EmotesText.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sGameObjectDisplayInfoStore, dbcPath, "GameObjectDisplayInfo.dbc"); #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sItemBagFamilyStore, dbcPath, "ItemBagFamily.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sItemBagFamilyStore, dbcPath, "ItemBagFamily.dbc"); #endif - //LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemDisplayInfoStore, dbcPath,"ItemDisplayInfo.dbc"); -- not used currently - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sItemRandomPropertiesStore, dbcPath, "ItemRandomProperties.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sItemSetStore, dbcPath, "ItemSet.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sLockStore, dbcPath, "Lock.dbc"); + //LoadDBC(availableDbcLocales,bar,badDbcFiles,sItemDisplayInfoStore, dbcPath,"ItemDisplayInfo.dbc"); -- not used currently + LoadDBC(availableDbcLocales, bar, badDbcFiles, sItemRandomPropertiesStore, dbcPath, "ItemRandomProperties.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sItemSetStore, dbcPath, "ItemSet.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sLockStore, dbcPath, "Lock.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sNamesProfanityStore, dbcPath, "NamesProfanity.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sNamesReservedStore, dbcPath, "NamesReserved.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sNamesProfanityStore, dbcPath, "NamesProfanity.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sNamesReservedStore, dbcPath, "NamesReserved.dbc"); for (uint32 i = 0; i < sNamesProfanityStore.GetNumRows(); ++i) { NamesProfanityEntry const* namesProfanity = sNamesProfanityStore.LookupEntry(i); @@ -275,10 +275,10 @@ void LoadDBCStores(std::string const& dataPath) NamesReservedValidators.emplace_back(wname, std::regex::icase | std::regex::optimize); } - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sQuestSortStore, dbcPath, "QuestSort.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sSkillLineStore, dbcPath, "SkillLine.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sSkillRaceClassInfoStore, dbcPath, "SkillRaceClassInfo.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sSkillTiersStore, dbcPath, "SkillTiers.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sQuestSortStore, dbcPath, "QuestSort.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sSkillLineStore, dbcPath, "SkillLine.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sSkillRaceClassInfoStore, dbcPath, "SkillRaceClassInfo.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sSkillTiersStore, dbcPath, "SkillTiers.dbc"); for (uint32 i = 1; i < sSpellMgr.GetMaxSpellId(); ++i) { SpellEntry const* spell = sSpellMgr.GetSpellEntry(i); @@ -312,16 +312,16 @@ void LoadDBCStores(std::string const& dataPath) } } - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sSpellCategoryStore, dbcPath, "SpellCategory.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sSpellCastTimesStore, dbcPath, "SpellCastTimes.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sSpellDurationStore, dbcPath, "SpellDuration.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sSpellFocusObjectStore, dbcPath, "SpellFocusObject.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sSpellItemEnchantmentStore, dbcPath, "SpellItemEnchantment.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sSpellRadiusStore, dbcPath, "SpellRadius.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sSpellRangeStore, dbcPath, "SpellRange.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sSpellShapeshiftFormStore, dbcPath, "SpellShapeshiftForm.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sStableSlotPricesStore, dbcPath, "StableSlotPrices.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sTalentStore, dbcPath, "Talent.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sSpellCategoryStore, dbcPath, "SpellCategory.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sSpellCastTimesStore, dbcPath, "SpellCastTimes.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sSpellDurationStore, dbcPath, "SpellDuration.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sSpellFocusObjectStore, dbcPath, "SpellFocusObject.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sSpellItemEnchantmentStore, dbcPath, "SpellItemEnchantment.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sSpellRadiusStore, dbcPath, "SpellRadius.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sSpellRangeStore, dbcPath, "SpellRange.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sSpellShapeshiftFormStore, dbcPath, "SpellShapeshiftForm.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sStableSlotPricesStore, dbcPath, "StableSlotPrices.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sTalentStore, dbcPath, "Talent.dbc"); // create talent spells set for (uint32 i = 0; i < sTalentStore.GetNumRows(); ++i) @@ -333,16 +333,16 @@ void LoadDBCStores(std::string const& dataPath) sTalentSpellPosMap[talentInfo->RankID[j]] = TalentSpellPos(i, j); } - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sTalentTabStore, dbcPath, "TalentTab.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sTalentTabStore, dbcPath, "TalentTab.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sTaxiPathStore, dbcPath, "TaxiPath.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sTaxiPathStore, dbcPath, "TaxiPath.dbc"); for (uint32 i = 1; i < sTaxiPathStore.GetNumRows(); ++i) if (TaxiPathEntry const* entry = sTaxiPathStore.LookupEntry(i)) sTaxiPathSetBySource[entry->from][entry->to] = TaxiPathBySourceAndDestination(entry->ID, entry->price); uint32 pathCount = sTaxiPathStore.GetNumRows(); //## TaxiPathNode.dbc ## Loaded only for initialization different structures - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sTaxiPathNodeStore, dbcPath, "TaxiPathNode.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sTaxiPathNodeStore, dbcPath, "TaxiPathNode.dbc"); // Calculate path nodes count std::vector pathLength; pathLength.resize(pathCount); // 0 and some other indexes not used @@ -403,17 +403,17 @@ void LoadDBCStores(std::string const& dataPath) } } - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sTransportAnimationStore, dbcPath, "TransportAnimation.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sTransportAnimationStore, dbcPath, "TransportAnimation.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sWorldMapAreaStore, dbcPath, "WorldMapArea.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sWMOAreaTableStore, dbcPath, "WMOAreaTable.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sWorldMapAreaStore, dbcPath, "WorldMapArea.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sWMOAreaTableStore, dbcPath, "WMOAreaTable.dbc"); for (uint32 i = 0; i < sWMOAreaTableStore.GetNumRows(); ++i) { if (WMOAreaTableEntry const* entry = sWMOAreaTableStore.LookupEntry(i)) sWMOAreaInfoByTripple.insert({ WMOAreaTableTripple(entry->rootId, entry->adtId, entry->groupId), entry }); } - //LoadDBC(availableDbcLocales,bar,bad_dbc_files,sWorldMapOverlayStore, dbcPath,"WorldMapOverlay.dbc"); - LoadDBC(availableDbcLocales, bar, bad_dbc_files, sWorldSafeLocsStore, dbcPath, "WorldSafeLocs.dbc"); + //LoadDBC(availableDbcLocales,bar,badDbcFiles,sWorldMapOverlayStore, dbcPath,"WorldMapOverlay.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sWorldSafeLocsStore, dbcPath, "WorldSafeLocs.dbc"); for (uint32 i = 0; i < sSkillRaceClassInfoStore.GetNumRows(); ++i) if (SkillRaceClassInfoEntry const* entry = sSkillRaceClassInfoStore.LookupEntry(i)) @@ -421,19 +421,19 @@ void LoadDBCStores(std::string const& dataPath) SkillRaceClassInfoBySkill.insert(SkillRaceClassInfoMap::value_type(entry->skillId, entry)); // error checks - if (bad_dbc_files.size() >= DBCFilesCount) + if (badDbcFiles.size() >= DBCFilesCount) { sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "\nIncorrect DataDir value in mangosd.conf or ALL required *.dbc files (%d) not found by path: %sdbc", DBCFilesCount, dataPath.c_str()); Log::WaitBeforeContinueIfNeed(); exit(1); } - else if (!bad_dbc_files.empty()) + else if (!badDbcFiles.empty()) { std::string str; - for (const auto& bad_dbc_file : bad_dbc_files) + for (const auto& bad_dbc_file : badDbcFiles) str += bad_dbc_file + "\n"; - sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "\nSome required *.dbc files (%u from %d) not found or not compatible:\n%s", (uint32)bad_dbc_files.size(), DBCFilesCount, str.c_str()); + sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "\nSome required *.dbc files (%u from %d) not found or not compatible:\n%s", (uint32)badDbcFiles.size(), DBCFilesCount, str.c_str()); Log::WaitBeforeContinueIfNeed(); exit(1); } diff --git a/src/game/GameEventMgr.h b/src/game/GameEventMgr.h index 5204025cedd..fe97ca6defe 100644 --- a/src/game/GameEventMgr.h +++ b/src/game/GameEventMgr.h @@ -94,7 +94,7 @@ struct WorldEvent }; typedef std::pair GameEventCreatureDataPair; -typedef std::list HardcodedEventList; +typedef std::vector HardcodedEventList; class GameEventMgr { @@ -139,23 +139,23 @@ class GameEventMgr void UpdateEventQuests(uint16 event_id, bool activate); void SendEventMails(int16 event_id); protected: - typedef std::list GuidList; - typedef std::list IdList; + typedef std::vector GuidList; + typedef std::vector IdList; typedef std::vector GameEventGuidMap; typedef std::vector GameEventIdMap; - typedef std::list GameEventCreatureDataList; + typedef std::vector GameEventCreatureDataList; typedef std::vector GameEventCreatureDataMap; typedef std::multimap GameEventCreatureDataPerGuidMap; typedef std::pair GameEventCreatureDataPerGuidBounds; - typedef std::list QuestList; + typedef std::vector QuestList; typedef std::vector GameEventQuestMap; GameEventQuestMap mGameEventQuests; // events size, only positive event case GameEventCreatureDataMap mGameEventCreatureData; // events size, only positive event case GameEventCreatureDataPerGuidMap mGameEventCreatureDataPerGuid; - typedef std::list MailList; + typedef std::vector MailList; typedef std::vector GameEventMailMap; GameEventMailMap mGameEventMails; // events*2-1 diff --git a/src/game/Group/Group.cpp b/src/game/Group/Group.cpp index 3a4135d480c..fc8790705db 100644 --- a/src/game/Group/Group.cpp +++ b/src/game/Group/Group.cpp @@ -669,7 +669,7 @@ void Group::CalculateLFGRoles(LFGGroupQueueInfo& data) PLAYER_ROLE_DAMAGE }; - std::list processed; + std::vector processed; for (const auto& citr : GetMemberSlots()) { @@ -703,7 +703,7 @@ void Group::CalculateLFGRoles(LFGGroupQueueInfo& data) } bool Group::FillPremadeLFG(ObjectGuid const& plrGuid, Classes playerClass, LfgRoles requiredRole, uint32& InitRoles, - uint32& DpsCount, std::list& processed) + uint32& DpsCount, std::vector& processed) { // We grant the role unless someone else in the group has higher priority for it LfgRolePriority priority = LFGMgr::GetPriority(playerClass, requiredRole); diff --git a/src/game/Group/Group.h b/src/game/Group/Group.h index f7ffbc6a790..2931bf3e373 100644 --- a/src/game/Group/Group.h +++ b/src/game/Group/Group.h @@ -347,7 +347,7 @@ class Group bool IsInLFG() { return (m_LFGAreaId > 0) ? true : false; } void CalculateLFGRoles(LFGGroupQueueInfo& data); - bool FillPremadeLFG(ObjectGuid const& plrGuid, Classes playerClass, LfgRoles requiredRole, uint32& InitRoles, uint32& DpsCount, std::list& processed); + bool FillPremadeLFG(ObjectGuid const& plrGuid, Classes playerClass, LfgRoles requiredRole, uint32& InitRoles, uint32& DpsCount, std::vector& processed); /*********************************************************/ /*** LOOT SYSTEM ***/ diff --git a/src/game/Guild/Guild.h b/src/game/Guild/Guild.h index 9b985d71d0e..2b055bb02c3 100644 --- a/src/game/Guild/Guild.h +++ b/src/game/Guild/Guild.h @@ -339,9 +339,7 @@ class Guild MemberList members; /** These are actually ordered lists. The first element is the oldest entry.*/ - typedef std::list GuildEventLog; - GuildEventLog m_GuildEventLog; - + std::list m_GuildEventLog; uint32 m_GuildEventLogNextGuid; private: diff --git a/src/game/Handlers/CharacterHandler.cpp b/src/game/Handlers/CharacterHandler.cpp index 64c93896acb..dbdeaa12628 100644 --- a/src/game/Handlers/CharacterHandler.cpp +++ b/src/game/Handlers/CharacterHandler.cpp @@ -303,7 +303,7 @@ void WorldSession::HandleCharCreateOpcode(WorldPacket& recv_data) if (!AllowTwoSideAccounts) { - std::list characters; + std::vector characters; sObjectMgr.GetPlayerDataForAccount(GetAccountId(), characters); if (!characters.empty()) diff --git a/src/game/HardcodedEvents.cpp b/src/game/HardcodedEvents.cpp index 74ca3033dbe..2c11bc5f497 100644 --- a/src/game/HardcodedEvents.cpp +++ b/src/game/HardcodedEvents.cpp @@ -1651,7 +1651,7 @@ void WarEffortEvent::DisableAndStopEvent(uint16 event_id) void WarEffortEvent::UpdateHiveColossusEvents() { uint32 colossusMask = sObjectMgr.GetSavedVariable(VAR_WE_HIVE_REWARD, 0); - std::list events; + std::vector events; if (colossusMask & WAR_EFFORT_ASHI_REWARD) events.push_back(EVENT_WAR_EFFORT_BATTLE_ASHI); diff --git a/src/game/LFG/LFGQueue.cpp b/src/game/LFG/LFGQueue.cpp index c173ba0a0e5..7e202af654e 100644 --- a/src/game/LFG/LFGQueue.cpp +++ b/src/game/LFG/LFGQueue.cpp @@ -173,7 +173,7 @@ void LFGQueue::Update() // Pick Leader as first target. QueuedPlayersMap::iterator leader = m_queuedPlayers.begin(); - std::list playersInArea; + std::vector playersInArea; FindInArea(playersInArea, leader->second.areaId, leader->second.team, leader->first); // 4 players + the leader @@ -275,7 +275,7 @@ void LFGQueue::AddPlayer(LFGPlayerQueueInfo const& playerInfo, ObjectGuid player }); } -void LFGQueue::FindInArea(std::list& players, uint32 area, uint32 team, ObjectGuid const& exclude) +void LFGQueue::FindInArea(std::vector& players, uint32 area, uint32 team, ObjectGuid const& exclude) { for (const auto& itr : m_queuedPlayers) { diff --git a/src/game/LFG/LFGQueue.h b/src/game/LFG/LFGQueue.h index 18e588e6fbb..0f6bdda0c6c 100644 --- a/src/game/LFG/LFGQueue.h +++ b/src/game/LFG/LFGQueue.h @@ -36,7 +36,7 @@ struct LFGPlayerQueueInfo bool hasQueuePriority = false; std::string name; uint8 playerClass = 0; - std::list> rolePriority; + std::vector> rolePriority; void CalculateRoles(Classes playerClass); void CalculateTalentRoles(Player* player); @@ -72,7 +72,7 @@ class LFGQueue void AddGroup(LFGGroupQueueInfo const& groupInfo, uint32 groupId); void AddPlayer(LFGPlayerQueueInfo const& playerInfo, ObjectGuid playerGuid); private: - void FindInArea(std::list& players, uint32 area, uint32 team, ObjectGuid const& exclude); + void FindInArea(std::vector& players, uint32 area, uint32 team, ObjectGuid const& exclude); bool FindRoleToGroup(ObjectGuid playerGuid, uint32 groupId, LfgRoles role); typedef std::map QueuedPlayersMap; diff --git a/src/game/Movement/MotionMaster.cpp b/src/game/Movement/MotionMaster.cpp index f8c0d2644e8..35f1fce3feb 100644 --- a/src/game/Movement/MotionMaster.cpp +++ b/src/game/Movement/MotionMaster.cpp @@ -230,8 +230,7 @@ void MotionMaster::DirectClean(bool reset, bool all) // Nostalrius: We need to clean top mvt gens, and call Finalize once it's done // because Finalize calls CreatureAI::MovementInform that can call MovePoint / ... - typedef std::list MvtGenList; - MvtGenList mvtGensToFinalize; + std::vector mvtGensToFinalize; while (all ? !empty() : size() > 1) { MovementGenerator* curr = top(); @@ -245,11 +244,11 @@ void MotionMaster::DirectClean(bool reset, bool all) MANGOS_ASSERT(!empty()); top()->Reset(*m_owner); } - for (MvtGenList::iterator it = mvtGensToFinalize.begin(); it != mvtGensToFinalize.end(); ++it) + for (auto const& itr : mvtGensToFinalize) { - (*it)->Finalize(*m_owner); - if (!isStatic((*it))) - delete(*it); + itr->Finalize(*m_owner); + if (!isStatic(itr)) + delete(itr); } } @@ -265,21 +264,20 @@ void MotionMaster::DelayedClean(bool reset, bool all) if (!m_expList) m_expList = new ExpireList(); - - typedef std::list MvtGenList; - MvtGenList mvtGensToFinalize; +; + std::vector mvtGensToFinalize; while (all ? !empty() : size() > 1) { MovementGenerator* curr = top(); pop(); mvtGensToFinalize.push_back(curr); } - for (const auto& it : mvtGensToFinalize) + for (auto const& itr : mvtGensToFinalize) { - it->Finalize(*m_owner); + itr->Finalize(*m_owner); - if (!isStatic(it)) - m_expList->push_back(it); + if (!isStatic(itr)) + m_expList->push_back(itr); } } @@ -292,18 +290,17 @@ void MotionMaster::DirectExpire(bool reset) pop(); // also drop stored under top() targeted motions - typedef std::list MvtGenList; - MvtGenList mvtGensToFinalize; + std::vector mvtGensToFinalize; while (!empty() && (top()->GetMovementGeneratorType() == CHASE_MOTION_TYPE || top()->GetMovementGeneratorType() == FOLLOW_MOTION_TYPE) && (curr->GetMovementGeneratorType() != DISTANCING_MOTION_TYPE)) { MovementGenerator* temp = top(); pop(); mvtGensToFinalize.push_back(temp); } - for (MvtGenList::iterator it = mvtGensToFinalize.begin(); it != mvtGensToFinalize.end(); ++it) + for (auto const& itr : mvtGensToFinalize) { - (*it)->Finalize(*m_owner); - delete(*it); + itr->Finalize(*m_owner); + delete(itr); } // Store current top MMGen, as Finalize might push a new MMGen MovementGenerator* nowTop = empty() ? nullptr : top(); @@ -338,18 +335,17 @@ void MotionMaster::DelayedExpire(bool reset) m_expList = new ExpireList(); // also drop stored under top() targeted motions - typedef std::list MvtGenList; - MvtGenList mvtGensToFinalize; + std::vector mvtGensToFinalize; while (!empty() && (top()->GetMovementGeneratorType() == CHASE_MOTION_TYPE || top()->GetMovementGeneratorType() == FOLLOW_MOTION_TYPE) && (curr->GetMovementGeneratorType() != DISTANCING_MOTION_TYPE)) { MovementGenerator* temp = top(); pop(); mvtGensToFinalize.push_back(temp); } - for (const auto& it : mvtGensToFinalize) + for (auto const& itr : mvtGensToFinalize) { - it->Finalize(*m_owner); - m_expList->push_back(it); + itr->Finalize(*m_owner); + m_expList->push_back(itr); } curr->Finalize(*m_owner); diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index da0f9b34b3e..9f585e91f67 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -911,7 +911,7 @@ void ObjectMgr::ChangePlayerNameInCache(uint32 guidLow, std::string const& oldNa } } -void ObjectMgr::GetPlayerDataForAccount(uint32 accountId, std::list& data) const +void ObjectMgr::GetPlayerDataForAccount(uint32 accountId, std::vector& data) const { for (const auto& iter : m_playerCacheData) { diff --git a/src/game/ObjectMgr.h b/src/game/ObjectMgr.h index ab72109357a..3afc08177b2 100644 --- a/src/game/ObjectMgr.h +++ b/src/game/ObjectMgr.h @@ -1274,7 +1274,7 @@ class ObjectMgr PlayerCacheData* GetPlayerDataByGUID(uint32 lowGuid); PlayerCacheData const* GetPlayerDataByGUID(uint32 lowGuid) const; PlayerCacheData const* GetPlayerDataByName(std::string const& name) const; - void GetPlayerDataForAccount(uint32 accountId, std::list& data) const; + void GetPlayerDataForAccount(uint32 accountId, std::vector& data) const; PlayerCacheData* InsertPlayerInCache(Player* pPlayer); PlayerCacheData* InsertPlayerInCache(uint32 lowGuid, uint32 race, uint32 _class, uint32 uiGender, uint32 account, std::string const& name, uint32 level, uint32 zoneId); void DeletePlayerFromCache(uint32 lowGuid); diff --git a/src/game/Objects/CreatureDefines.h b/src/game/Objects/CreatureDefines.h index 4de845aa05a..92507c98eab 100644 --- a/src/game/Objects/CreatureDefines.h +++ b/src/game/Objects/CreatureDefines.h @@ -517,7 +517,7 @@ enum VendorItemFlags VENDOR_ITEM_FLAG_DYNAMIC_RESTOCK = 0x02, }; -typedef std::list VendorItemCounts; +typedef std::vector VendorItemCounts; struct TrainerSpell { diff --git a/src/game/Objects/GameObject.cpp b/src/game/Objects/GameObject.cpp index dcefbbc4761..abec8ea13a9 100644 --- a/src/game/Objects/GameObject.cpp +++ b/src/game/Objects/GameObject.cpp @@ -105,7 +105,7 @@ GameObject::~GameObject() delete i_AI; delete m_model; - MANGOS_ASSERT(m_dynObjGUIDs.empty()); + MANGOS_ASSERT(m_spellDynObjects.empty()); } GameObject* GameObject::CreateGameObject(uint32 entry) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index d32d6693a8d..cda7e625fe4 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -2619,7 +2619,7 @@ void Player::RemoveFromWorld() } // remove duel before calling Unit::RemoveFromWorld - // otherwise there will be an existing duel flag pointer but no entry in m_gameObj + // otherwise there will be an existing duel flag pointer but no entry in m_spellGameObjects DuelComplete(DUEL_INTERRUPTED); // Do not add/remove the player from the object storage @@ -21898,7 +21898,7 @@ void Player::RewardHonorOnDeath() for (const auto& itr : damagePerGroup) { Group* g = itr.first; - std::list rewarded; + std::vector rewarded; for (const auto& grItr : g->GetMemberSlots()) if (Player* pl = GetMap()->GetPlayer(grItr.guid)) if (pl->IsAtGroupRewardDistance(this) && pl->IsAlive() && pl->GetTeam() != GetTeam()) diff --git a/src/game/Objects/Player.h b/src/game/Objects/Player.h index ef768aebbc4..419b2be2663 100644 --- a/src/game/Objects/Player.h +++ b/src/game/Objects/Player.h @@ -197,7 +197,7 @@ struct PlayerCreateInfoItem uint32 item_amount; }; -typedef std::list PlayerCreateInfoItems; +typedef std::vector PlayerCreateInfoItems; struct PlayerClassLevelInfo { @@ -215,7 +215,7 @@ struct PlayerLevelInfo uint8 stats[MAX_STATS] = { 0 }; }; -typedef std::list PlayerCreateInfoSpells; +typedef std::vector PlayerCreateInfoSpells; struct PlayerCreateInfoAction { @@ -227,7 +227,7 @@ struct PlayerCreateInfoAction uint32 action = 0; }; -typedef std::list PlayerCreateInfoActions; +typedef std::vector PlayerCreateInfoActions; struct PlayerInfo { diff --git a/src/game/Objects/SpellCaster.cpp b/src/game/Objects/SpellCaster.cpp index 5f59f645b38..193e08aacd9 100644 --- a/src/game/Objects/SpellCaster.cpp +++ b/src/game/Objects/SpellCaster.cpp @@ -1796,7 +1796,7 @@ void SpellCaster::FinishSpell(CurrentSpellTypes spellType, bool ok /*= true*/) void SpellCaster::GetDynObjects(uint32 spellId, SpellEffectIndex effectIndex, std::vector& dynObjsOut) const { - for (auto const& guid : m_dynObjGUIDs) + for (auto const& guid : m_spellDynObjects) { DynamicObject* dynObj = GetMap()->GetDynamicObject(guid); if (!dynObj) @@ -1809,7 +1809,7 @@ void SpellCaster::GetDynObjects(uint32 spellId, SpellEffectIndex effectIndex, st DynamicObject* SpellCaster::GetDynObject(uint32 spellId, SpellEffectIndex effIndex) const { - for (auto const& guid : m_dynObjGUIDs) + for (auto const& guid : m_spellDynObjects) { DynamicObject* dynObj = GetMap()->GetDynamicObject(guid); if (!dynObj) @@ -1823,7 +1823,7 @@ DynamicObject* SpellCaster::GetDynObject(uint32 spellId, SpellEffectIndex effInd DynamicObject* SpellCaster::GetDynObject(uint32 spellId) const { - for (auto const& guid : m_dynObjGUIDs) + for (auto const& guid : m_spellDynObjects) { DynamicObject* dynObj = GetMap()->GetDynamicObject(guid); if (!dynObj) @@ -1837,37 +1837,49 @@ DynamicObject* SpellCaster::GetDynObject(uint32 spellId) const void SpellCaster::AddDynObject(DynamicObject* dynObj) { - m_dynObjGUIDs.push_back(dynObj->GetObjectGuid()); + m_spellDynObjects.push_back(dynObj->GetObjectGuid()); dynObj->SetWorldMask(GetWorldMask()); // Nostalrius : phasing } void SpellCaster::RemoveDynObject(uint32 spellid) { - if (m_dynObjGUIDs.empty()) + if (m_spellDynObjects.empty()) return; - for (DynObjectGUIDs::iterator i = m_dynObjGUIDs.begin(); i != m_dynObjGUIDs.end();) + + for (auto i = m_spellDynObjects.begin(); i != m_spellDynObjects.end();) { DynamicObject* dynObj = GetMap()->GetDynamicObject(*i); if (!dynObj) - i = m_dynObjGUIDs.erase(i); + i = m_spellDynObjects.erase(i); else if (spellid == 0 || dynObj->GetSpellId() == spellid) { dynObj->Delete(); - i = m_dynObjGUIDs.erase(i); + i = m_spellDynObjects.erase(i); } else ++i; } } +void SpellCaster::RemoveDynObjectWithGUID(ObjectGuid guid) +{ + for (auto itr = m_spellDynObjects.begin(); itr != m_spellDynObjects.end();) + { + if ((*itr) == guid) + itr = m_spellDynObjects.erase(itr); + else + ++itr; + } +} + void SpellCaster::RemoveAllDynObjects() { - while (!m_dynObjGUIDs.empty()) + for (auto const& guid : m_spellDynObjects) { - if (DynamicObject* dynObj = GetMap()->GetDynamicObject(*m_dynObjGUIDs.begin())) + if (DynamicObject* dynObj = GetMap()->GetDynamicObject(guid)) dynObj->Delete(); - m_dynObjGUIDs.erase(m_dynObjGUIDs.begin()); } + m_spellDynObjects.clear(); } SpellCastResult SpellCaster::CastSpell(SpellCaster* pTarget, uint32 spellId, bool triggered, Item* castItem, Aura* triggeredByAura, ObjectGuid originalCaster, SpellEntry const* triggeredBy, SpellEntry const* triggeredByParent) diff --git a/src/game/Objects/SpellCaster.h b/src/game/Objects/SpellCaster.h index e841576e0b1..5bd141e15b1 100644 --- a/src/game/Objects/SpellCaster.h +++ b/src/game/Objects/SpellCaster.h @@ -404,7 +404,7 @@ class SpellCaster : public WorldObject DynamicObject* GetDynObject(uint32 spellId) const; void AddDynObject(DynamicObject* dynObj); void RemoveDynObject(uint32 spellid); - void RemoveDynObjectWithGUID(ObjectGuid guid) { m_dynObjGUIDs.remove(guid); } + void RemoveDynObjectWithGUID(ObjectGuid guid); void RemoveAllDynObjects(); // cooldown system @@ -436,8 +436,7 @@ class SpellCaster : public WorldObject LockoutMap m_lockoutMap; CooldownContainer m_cooldownMap; - typedef std::list DynObjectGUIDs; - DynObjectGUIDs m_dynObjGUIDs; + std::vector m_spellDynObjects; uint32 m_procsUpdateTimer = 0; std::vector m_pendingProcChecks; diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index acf99a36e31..eb6449eb774 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -117,8 +117,6 @@ Unit::Unit() m_canModifyStats = false; m_modelCollisionHeight = 2.f; - for (auto& immunityList : m_spellImmune) - immunityList.clear(); for (auto& modifier : m_auraModifiersGroup) { modifier[BASE_VALUE] = 0.0f; @@ -201,8 +199,8 @@ Unit::~Unit() delete movespline; // those should be already removed at "RemoveFromWorld()" call - MANGOS_ASSERT(m_gameObj.empty()); - MANGOS_ASSERT(m_dynObjGUIDs.empty()); + MANGOS_ASSERT(m_spellGameObjects.empty()); + MANGOS_ASSERT(m_spellDynObjects.empty()); MANGOS_ASSERT(m_deletedAuras.empty()); MANGOS_ASSERT(m_deletedHolders.empty()); MANGOS_ASSERT(!m_needUpdateVisibility); @@ -2746,22 +2744,20 @@ void Unit::_UpdateSpells(uint32 time) ++iter; } - if (!m_gameObj.empty()) + if (!m_spellGameObjects.empty()) { - GameObjectList::iterator ite1, dnext1; - for (ite1 = m_gameObj.begin(); ite1 != m_gameObj.end(); ite1 = dnext1) + for (auto i = m_spellGameObjects.begin(); i != m_spellGameObjects.end();) { - dnext1 = ite1; //(*i)->Update(difftime); - if (!(*ite1)->isSpawned()) + if (!(*i)->isSpawned()) { - (*ite1)->SetOwnerGuid(ObjectGuid()); - (*ite1)->SetRespawnTime(0); - (*ite1)->Delete(); - dnext1 = m_gameObj.erase(ite1); + (*i)->SetOwnerGuid(ObjectGuid()); + (*i)->SetRespawnTime(0); + (*i)->Delete(); + i = m_spellGameObjects.erase(i); } else - ++dnext1; + ++i; } } } @@ -3492,9 +3488,9 @@ bool Unit::RemoveNoStackAurasDueToAuraHolder(SpellAuraHolder* holder) if (rule != SPELL_GROUP_STACK_RULE_DEFAULT) { // Attempt to add apply less powerfull spell - if (rule == SPELL_GROUP_STACK_RULE_POWERFULL_CHAIN && sSpellMgr.IsMorePowerfullSpell(i_spellId, spellId, spellGroup)) + if (rule == SPELL_GROUP_STACK_RULE_POWERFULL_CHAIN && sSpellMgr.IsMorePowerfulSpell(i_spellId, spellId, spellGroup)) { - sLog.Out(LOG_BASIC, LOG_LVL_DETAIL, "[STACK][DB] Powerfull chain %u > %u (group %u). Aura %u will not be applied.", i_spellId, spellId, spellGroup, spellId); + sLog.Out(LOG_BASIC, LOG_LVL_DETAIL, "[STACK][DB] Powerful chain %u > %u (group %u). Aura %u will not be applied.", i_spellId, spellId, spellGroup, spellId); return false; } sLog.Out(LOG_BASIC, LOG_LVL_DETAIL, "[STACK][DB] Unable to stack %u and %u. %u will be removed.", spellId, i_spellId, i_spellId); @@ -3607,9 +3603,9 @@ bool Unit::RemoveNoStackAurasDueToAuraHolder(SpellAuraHolder* holder) } } // Sorts moins puissants : - std::list lessPowerfullSpells; - if (sSpellMgr.ListLessPowerfullSpells(spellId, lessPowerfullSpells)) - for (const auto& it : lessPowerfullSpells) + std::vector lessPowerfulSpells; + if (sSpellMgr.ListLessPowerfulSpells(spellId, lessPowerfulSpells)) + for (const auto& it : lessPowerfulSpells) RemoveAurasDueToSpell(it); return true; } @@ -4092,7 +4088,7 @@ bool Unit::HasAura(uint32 spellId, SpellEffectIndex effIndex) const GameObject* Unit::GetGameObject(uint32 spellId) const { - for (const auto& i : m_gameObj) + for (const auto& i : m_spellGameObjects) if (i->GetSpellId() == spellId) return i; @@ -4102,7 +4098,7 @@ GameObject* Unit::GetGameObject(uint32 spellId) const void Unit::AddGameObject(GameObject* pGo) { MANGOS_ASSERT(pGo && !pGo->GetOwnerGuid()); - m_gameObj.push_back(pGo); + m_spellGameObjects.push_back(pGo); pGo->SetOwnerGuid(GetObjectGuid()); pGo->SetWorldMask(GetWorldMask()); @@ -4140,7 +4136,13 @@ void Unit::RemoveGameObject(GameObject* pGo, bool del) } - m_gameObj.remove(pGo); + for (auto itr = m_spellGameObjects.begin(); itr != m_spellGameObjects.end();) + { + if ((*itr) == pGo) + itr = m_spellGameObjects.erase(itr); + else + ++itr; + } if (del) { @@ -4151,12 +4153,11 @@ void Unit::RemoveGameObject(GameObject* pGo, bool del) void Unit::RemoveGameObject(uint32 spellid, bool del) { - if (m_gameObj.empty()) + if (m_spellGameObjects.empty()) return; - GameObjectList::iterator i, next; - for (i = m_gameObj.begin(); i != m_gameObj.end(); i = next) + + for (auto i = m_spellGameObjects.begin(); i != m_spellGameObjects.end();) { - next = i; if (spellid == 0 || (*i)->GetSpellId() == spellid) { (*i)->SetOwnerGuid(ObjectGuid()); @@ -4166,23 +4167,23 @@ void Unit::RemoveGameObject(uint32 spellid, bool del) (*i)->Delete(); } - next = m_gameObj.erase(i); + i = m_spellGameObjects.erase(i); } else - ++next; + ++i; } } void Unit::RemoveAllGameObjects() { // remove references to unit - for (GameObjectList::iterator i = m_gameObj.begin(); i != m_gameObj.end();) + for (auto const& pGo : m_spellGameObjects) { - (*i)->SetOwnerGuid(ObjectGuid()); - (*i)->SetRespawnTime(0); - (*i)->Delete(); - i = m_gameObj.erase(i); + pGo->SetOwnerGuid(ObjectGuid()); + pGo->SetRespawnTime(0); + pGo->Delete(); } + m_spellGameObjects.clear(); } void Unit::SendPeriodicAuraLog(SpellPeriodicAuraLogInfo* pInfo, AuraType auraTypeOverride) const @@ -10335,11 +10336,11 @@ SpellAuraHolder* Unit::RefreshAura(uint32 spellId, int32 duration) bool Unit::HasMorePowerfulSpellActive(SpellEntry const* spell) const { - std::list morePowerfullSpells; - if (!sSpellMgr.ListMorePowerfullSpells(spell->Id, morePowerfullSpells)) + std::vector morePowerfulSpells; + if (!sSpellMgr.ListMorePowerfulSpells(spell->Id, morePowerfulSpells)) return false; for (const auto& i : m_spellAuraHolders) - for (const auto& it : morePowerfullSpells) + for (const auto& it : morePowerfulSpells) if (it == i.first) return true; return false; diff --git a/src/game/Objects/Unit.h b/src/game/Objects/Unit.h index 46317e3b278..270c999e910 100644 --- a/src/game/Objects/Unit.h +++ b/src/game/Objects/Unit.h @@ -194,7 +194,7 @@ struct SpellImmune uint32 spellId; }; -typedef std::list SpellImmuneList; +typedef std::vector SpellImmuneList; #define UNIT_ACTION_BUTTON_ACTION(X) (uint32(X) & 0x00FFFFFF) #define UNIT_ACTION_BUTTON_TYPE(X) ((uint32(X) & 0xFF000000) >> 24) @@ -338,7 +338,6 @@ class Unit : public SpellCaster typedef std::pair SpellAuraHolderConstBounds; typedef std::list SpellAuraHolderList; typedef std::list AuraList; - typedef std::list Diminishing; typedef std::set ComboPointHolderSet; typedef std::map SingleCastSpellTargetMap; @@ -628,15 +627,14 @@ class Unit : public SpellCaster /*********************************************************/ private: - Diminishing m_Diminishing; + std::vector m_Diminishing; protected: SpellAuraHolderMap m_spellAuraHolders; SpellAuraHolderMap::iterator m_spellAuraHoldersUpdateIterator; // != end() in Unit::m_spellAuraHolders update and point to next element AuraList m_deletedAuras; // auras removed while in ApplyModifier and waiting deleted SpellAuraHolderList m_deletedHolders; SingleCastSpellTargetMap m_singleCastSpellTargets; // casted by unit single per-caster auras - typedef std::list GameObjectList; - GameObjectList m_gameObj; + std::vector m_spellGameObjects; AuraList m_modAuras[TOTAL_AURAS]; uint32 m_lastManaUseSpellId; uint32 m_lastManaUseTimer; diff --git a/src/game/PlayerBots/CombatBotBaseAI.cpp b/src/game/PlayerBots/CombatBotBaseAI.cpp index c529366a9f8..a7fd9d42993 100644 --- a/src/game/PlayerBots/CombatBotBaseAI.cpp +++ b/src/game/PlayerBots/CombatBotBaseAI.cpp @@ -2444,8 +2444,8 @@ Unit* CombatBotBaseAI::SelectAttackerDifferentFrom(Unit const* pExcept) const bool CombatBotBaseAI::IsValidBuffTarget(Unit const* pTarget, SpellEntry const* pSpellEntry) const { - std::list morePowerfullSpells; - sSpellMgr.ListMorePowerfullSpells(pSpellEntry->Id, morePowerfullSpells); + std::vector morePowerfulSpells; + sSpellMgr.ListMorePowerfulSpells(pSpellEntry->Id, morePowerfulSpells); for (const auto& i : pTarget->GetSpellAuraHolderMap()) { @@ -2455,7 +2455,7 @@ bool CombatBotBaseAI::IsValidBuffTarget(Unit const* pTarget, SpellEntry const* p if (sSpellMgr.IsRankSpellDueToSpell(pSpellEntry, i.first)) return false; - for (const auto& it : morePowerfullSpells) + for (const auto& it : morePowerfulSpells) if (it == i.first) return false; } diff --git a/src/game/Spells/Spell.h b/src/game/Spells/Spell.h index d5d34e500c5..8af45d8b55d 100644 --- a/src/game/Spells/Spell.h +++ b/src/game/Spells/Spell.h @@ -638,9 +638,8 @@ class Spell // ------------------------------------------- //List For Triggered Spells - typedef std::list SpellInfoList; - SpellInfoList m_TriggerSpells; // casted by caster to same targets settings in m_targets at success finish of current spell - SpellInfoList m_preCastSpells; // casted by caster to each target at spell hit before spell effects apply + std::vector m_TriggerSpells; // casted by caster to same targets settings in m_targets at success finish of current spell + std::vector m_preCastSpells; // casted by caster to each target at spell hit before spell effects apply uint32 m_spellState = SPELL_STATE_NULL; uint32 m_timer = 0; diff --git a/src/game/Spells/SpellEffects.cpp b/src/game/Spells/SpellEffects.cpp index f0ea4b91682..5fd8b52ae24 100644 --- a/src/game/Spells/SpellEffects.cpp +++ b/src/game/Spells/SpellEffects.cpp @@ -3172,8 +3172,8 @@ void Spell::EffectDispel(SpellEffectIndex effIdx) // Ok if exist some buffs for dispel try dispel it if (!dispelList.empty()) { - std::list > successList; // (spellId,casterGuid) - std::list < uint32 > failList; // spellId + std::vector > successList; // (spellId,casterGuid) + std::vector < uint32 > failList; // spellId // some spells have effect value = 0 and all from its by meaning expect 1 if (!damage) diff --git a/src/game/Spells/SpellMgr.cpp b/src/game/Spells/SpellMgr.cpp index 2573fd86641..d6c323c7245 100644 --- a/src/game/Spells/SpellMgr.cpp +++ b/src/game/Spells/SpellMgr.cpp @@ -639,7 +639,7 @@ void SpellMgr::LoadSpellGroupStackRules() sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ">> Loaded %u spell group stack rules", count); } -bool SpellMgr::ListMorePowerfullSpells(uint32 spellId, std::list& list) const +bool SpellMgr::ListMorePowerfulSpells(uint32 spellId, std::vector& list) const { std::vector spellGroupIds; std::vector::iterator spellGroupIdsIt; @@ -682,7 +682,7 @@ bool SpellMgr::ListMorePowerfullSpells(uint32 spellId, std::list& list) return !list.empty(); } -bool SpellMgr::ListLessPowerfullSpells(uint32 spellId, std::list& list) const +bool SpellMgr::ListLessPowerfulSpells(uint32 spellId, std::vector& list) const { std::vector spellGroupIds; std::vector::iterator spellGroupIdsIt; diff --git a/src/game/Spells/SpellMgr.h b/src/game/Spells/SpellMgr.h index a080a617f12..db400c88bc7 100644 --- a/src/game/Spells/SpellMgr.h +++ b/src/game/Spells/SpellMgr.h @@ -364,15 +364,15 @@ class SpellMgr return rule; } - // Fin Spell Groups - ameliorations Nostalrius. - // Gestion de "Un sort plus puissant est deja actif" - bool ListMorePowerfullSpells(uint32 spellId, std::list&) const; - bool ListLessPowerfullSpells(uint32 spellId, std::list&) const; + // End of Spell Groups - Nostalrius improvements. + // Handling for "A more powerful spell is already active" + bool ListMorePowerfulSpells(uint32 spellId, std::vector&) const; + bool ListLessPowerfulSpells(uint32 spellId, std::vector&) const; /** * Assumes that both spells are in the given group. * Returns true if $powerfullSpell is actually the most powerfull spell. */ - bool IsMorePowerfullSpell(uint32 powerfullSpell, uint32 otherSpell, SpellGroup group) const + bool IsMorePowerfulSpell(uint32 powerfullSpell, uint32 otherSpell, SpellGroup group) const { // The most powerfull spell appears after less powerfull spells in the list. for (const auto& itr : mSpellGroupSpell) diff --git a/src/scripts/custom/event_attack_city.cpp b/src/scripts/custom/event_attack_city.cpp index 86846d0e3f2..971f0e55945 100644 --- a/src/scripts/custom/event_attack_city.cpp +++ b/src/scripts/custom/event_attack_city.cpp @@ -78,7 +78,7 @@ class CreatureWaveEntry // TODO : Deplacer ces fonctions pour qu'elles soient accessibles // de tous les scripts SD0 -typedef std::list MobsGUIDList; +typedef std::vector MobsGUIDList; typedef MobsGUIDList::iterator MobsGUIDListIter; void SetAttackable(Unit* pCreature, bool Attackable) diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/instance_blackrock_depths.cpp b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/instance_blackrock_depths.cpp index ae5a4a03f91..c191be3cd05 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/instance_blackrock_depths.cpp +++ b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/instance_blackrock_depths.cpp @@ -93,11 +93,11 @@ struct instance_blackrock_depths : ScriptedInstance uint32 m_uiThunderbrewCount; uint32 m_uiRelicCofferDoorCount; - std::list m_lRibblySCronyMobGUIDList; - std::list m_lArenaSpectatorMobGUIDList; - std::list m_lArgelmachProtectorsMobGUIDList; - std::list m_sBarPatronNpcGuids; - std::list m_sBarPatrolGuids; + std::vector m_lRibblySCronyMobGUIDList; + std::vector m_lArenaSpectatorMobGUIDList; + std::vector m_lArgelmachProtectorsMobGUIDList; + std::vector m_sBarPatronNpcGuids; + std::vector m_sBarPatrolGuids; bool m_bDoorDughalOpened; bool m_bDoorTobiasOpened; diff --git a/src/scripts/eastern_kingdoms/eastern_plaguelands/stratholme/stratholme.cpp b/src/scripts/eastern_kingdoms/eastern_plaguelands/stratholme/stratholme.cpp index 807f8f85eb7..64c60a18bac 100644 --- a/src/scripts/eastern_kingdoms/eastern_plaguelands/stratholme/stratholme.cpp +++ b/src/scripts/eastern_kingdoms/eastern_plaguelands/stratholme/stratholme.cpp @@ -305,7 +305,7 @@ struct mobs_cristal_zugguratAI : public ScriptedAI ScriptedInstance* m_pInstance; uint32 uiUpdateTimer; - std::list acolyte; + ObjectGuidSet m_acolytes; void Reset() override {} @@ -336,17 +336,17 @@ struct mobs_cristal_zugguratAI : public ScriptedAI uiUpdateTimer = 2000; - if (acolyte.empty()) + if (m_acolytes.empty()) { std::list creatures; std::list::iterator itr; GetCreatureListWithEntryInGrid(creatures, m_creature, 10399, 50.0f); for (itr = creatures.begin(); itr != creatures.end(); ++itr) - acolyte.push_back((*itr)->GetGUID()); + m_acolytes.insert((*itr)->GetObjectGuid()); return; } - for (const auto& guid : acolyte) + for (const auto& guid : m_acolytes) if (Creature *pCreature = m_pInstance->instance->GetCreature(guid)) if (pCreature && pCreature->IsAlive()) return; From dc7f0c45d94a42064a44dfe4f211797074c10f6d Mon Sep 17 00:00:00 2001 From: Gamemechanic Date: Sun, 30 Jul 2023 06:44:39 +0200 Subject: [PATCH 135/426] Fix stormwind entrance pathing (#2088) --- contrib/mmap/src/TerrainBuilder.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/contrib/mmap/src/TerrainBuilder.cpp b/contrib/mmap/src/TerrainBuilder.cpp index e0fbeb974fe..18f62ede7fe 100644 --- a/contrib/mmap/src/TerrainBuilder.cpp +++ b/contrib/mmap/src/TerrainBuilder.cpp @@ -766,9 +766,12 @@ namespace MMAP float inDist = -1.0f; if (it->IsUnderObject(v, up, isM2, &outDist, &inDist)) // inDist < outDist { - //if there are less than 1.5y between terrain and model then mark the terrain as unwalkable - if (inDist < 1.5f) + // If terrain is under wmo, mark terrain as unwalkable + // If there are less than 1.5y between terrain and m2 then mark the terrain as unwalkable + if (!isM2 || inDist < 1.5f) + { terrainInsideModelsVerts[t] = inDist; + } } } } From 883d69b1baad5806b83027dcb7977632e77676f6 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 1 Aug 2023 05:28:42 +0300 Subject: [PATCH 136/426] Check moving in given axis without move flags. --- .../MovementAnticheat/MovementAnticheat.cpp | 61 ++++++++++++++----- .../MovementAnticheat/MovementAnticheat.h | 3 +- 2 files changed, 47 insertions(+), 17 deletions(-) diff --git a/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp b/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp index bcae755592d..2c7950305fd 100644 --- a/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp +++ b/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp @@ -1372,41 +1372,70 @@ void MovementAnticheat::CheckBotting(uint16 opcode, MovementInfo const& movement bool MovementAnticheat::CheckTeleport(MovementInfo const& movementInfo) const { - if (!sWorld.getConfig(CONFIG_BOOL_AC_MOVEMENT_CHEAT_TELEPORT_ENABLED)) + if (!sWorld.getConfig(CONFIG_BOOL_AC_MOVEMENT_CHEAT_TELEPORT_ENABLED) || + me->GetPositionX() == 0.0f || me->GetPositionY() == 0.0f || me->GetPositionZ() == 0.0f || + movementInfo.GetPos().x == 0.0f || movementInfo.GetPos().y == 0.0f || movementInfo.GetPos().z == 0.0f || + me->IsLaunched() || me->IsTaxiFlying() || me->IsBeingTeleported()) return false; - if (!me->m_transport && !me->HasMovementFlag(MOVEFLAG_ONTRANSPORT) && !me->IsTaxiFlying()) + if (!IsTeleportAllowed3D(movementInfo)) + return true; + + // check moving in given axis without appropriate move flags + if (GetLastMovementInfo().ctime && + !GetLastMovementInfo().HasMovementFlag(MOVEFLAG_MASK_XZ) && + !movementInfo.HasMovementFlag(MOVEFLAG_MASK_XZ) && + GetLastMovementInfo().HasMovementFlag(MOVEFLAG_ONTRANSPORT) == movementInfo.HasMovementFlag(MOVEFLAG_ONTRANSPORT)) { - if (!IsTeleportAllowed(movementInfo)) + float const distance2d = movementInfo.HasMovementFlag(MOVEFLAG_ONTRANSPORT) ? + GetDistance2D(GetLastMovementInfo().t_pos, movementInfo.t_pos) : + GetDistance2D(GetLastMovementInfo().pos, movementInfo.pos); + + if (distance2d > 1.0f) return true; + + if (!GetLastMovementInfo().HasMovementFlag(MOVEFLAG_JUMPING | MOVEFLAG_FALLINGFAR) && + !movementInfo.HasMovementFlag(MOVEFLAG_JUMPING | MOVEFLAG_FALLINGFAR)) + { + float const distanceZ = movementInfo.HasMovementFlag(MOVEFLAG_ONTRANSPORT) ? + std::abs(GetLastMovementInfo().t_pos.z - movementInfo.t_pos.z) : + std::abs(GetLastMovementInfo().pos.z - movementInfo.pos.z); + + if (distanceZ > 2.0f) + return true; + } } return false; } +bool MovementAnticheat::IsInTransportArea() const +{ + // Undercity Lift + if ((me->GetCachedZoneId() == 1497 && me->GetCachedAreaId() == 1497) || + // Deeprun Tram + (me->GetCachedZoneId() == 2257) || + // Thousand Needles Lift + (me->GetCachedZoneId() == 400 && me->GetCachedAreaId() == 485)) + return true; + + return false; +} + #define ALLOWED_TRANSPORT_DISTANCE 100.0f -bool MovementAnticheat::IsTeleportAllowed(MovementInfo const& movementInfo) const +bool MovementAnticheat::IsTeleportAllowed3D(MovementInfo const& movementInfo) const { - if ((me->GetPositionX() == 0.0f || me->GetPositionY() == 0.0f || me->GetPositionZ() == 0.0f) || - (movementInfo.GetPos().x == 0.0f || movementInfo.GetPos().y == 0.0f || movementInfo.GetPos().z == 0.0f) || - (me->IsLaunched()) || - (me->IsBeingTeleported())) + if (me->m_transport || me->HasMovementFlag(MOVEFLAG_ONTRANSPORT)) return true; float const distance = GetDistance3D(me->GetPosition(), movementInfo.pos); - float maxDistance = sWorld.getConfig(CONFIG_FLOAT_AC_MOVEMENT_CHEAT_TELEPORT_DISTANCE) * std::max(1.0f, me->GetSpeedRate(GetMoveTypeForMovementInfo(movementInfo)) * 0.2f); + float const maxDistance = sWorld.getConfig(CONFIG_FLOAT_AC_MOVEMENT_CHEAT_TELEPORT_DISTANCE) * std::max(1.0f, me->GetSpeedRate(GetMoveTypeForMovementInfo(movementInfo)) * 0.2f); if (distance > maxDistance) { // Exclude elevators - - // Undercity Lift - if ((me->GetCachedZoneId() == 1497 && me->GetCachedAreaId() == 1497) || - // Deeprun Tram - (me->GetCachedZoneId() == 2257) || - // Thousand Needles Lift - (me->GetCachedZoneId() == 400 && me->GetCachedAreaId() == 485)) + if (IsInTransportArea()) return distance < ALLOWED_TRANSPORT_DISTANCE; return false; diff --git a/src/game/Anticheat/MovementAnticheat/MovementAnticheat.h b/src/game/Anticheat/MovementAnticheat/MovementAnticheat.h index 4c95ccad6b1..29dc90ac814 100644 --- a/src/game/Anticheat/MovementAnticheat/MovementAnticheat.h +++ b/src/game/Anticheat/MovementAnticheat/MovementAnticheat.h @@ -100,7 +100,8 @@ class MovementAnticheat void ResetBottingStats(); void CheckBotting(uint16 opcode, MovementInfo const& movementInfo); bool CheckTeleport(MovementInfo const& movementInfo) const; - bool IsTeleportAllowed(MovementInfo const& movementInfo) const; + bool IsTeleportAllowed3D(MovementInfo const& movementInfo) const; + bool IsInTransportArea() const; bool CheckForbiddenArea(MovementInfo const& movementInfo) const; bool CheckMultiJump(uint16 opcode); bool CheckWallClimb(MovementInfo const& movementInfo, uint16 opcode) const; From 0e7c8d1e9c67c72535aa5d5f27adc4a34df09ffc Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 2 Aug 2023 07:10:46 +0300 Subject: [PATCH 137/426] Don't iterate auras to find taunters. GetTauntTarget is supposedly taking up a lot of cpu time. This is an attempt at optimization. --- src/game/Objects/Unit.cpp | 57 +++++++++---------- src/game/Objects/Unit.h | 3 + src/game/Spells/SpellAuras.cpp | 5 ++ .../eastern_kingdoms/uldaman/boss_ironaya.cpp | 15 ++--- .../eastern_kingdoms/uldaman/uldaman.cpp | 18 +++--- 5 files changed, 49 insertions(+), 49 deletions(-) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index eb6449eb774..fb8d050b8bc 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -7369,33 +7369,32 @@ void Unit::TauntFadeOut(Unit* taunter) //====================================================================== -Unit* Unit::GetTauntTarget() const +void Unit::RemoveTauntCaster(ObjectGuid guid) { - AuraList const& tauntAuras = GetAurasByType(SPELL_AURA_MOD_TAUNT); - if (tauntAuras.empty()) - return nullptr; + // remove only 1 occurance, starting from the front + // since guids are pushed back on taunt aura apply + for (auto itr = m_tauntGuids.begin(); itr != m_tauntGuids.end(); ++itr) + { + if ((*itr) == guid) + { + m_tauntGuids.erase(itr); + return; + } + } +} - Unit* caster = nullptr; +//====================================================================== - // The last taunt aura caster is alive an we are happy to attack him - if ((caster = tauntAuras.back()->GetCaster()) && IsValidAttackTarget(caster)) - return caster; - else if (tauntAuras.size() > 1) +Unit* Unit::GetTauntTarget() const +{ + // taunters are pushed back, last caster will be at the end + for (auto itr = m_tauntGuids.rbegin(); itr != m_tauntGuids.rend(); ++itr) { - // We do not have last taunt aura caster but we have more taunt auras, - // so find first available target - - // Auras are pushed_back, last caster will be on the end - AuraList::const_iterator aura = --tauntAuras.end(); - do + if (Unit* pTaunter = GetMap()->GetUnit(*itr)) { - --aura; - if ((caster = (*aura)->GetCaster()) && caster->IsInMap(this) && IsValidAttackTarget(caster)) - { - return caster; - break; - } - } while (aura != tauntAuras.begin()); + if (IsValidAttackTarget(pTaunter)) + return pTaunter; + } } return nullptr; @@ -7403,21 +7402,21 @@ Unit* Unit::GetTauntTarget() const bool Unit::SelectHostileTarget() { - //function provides main threat functionality - //next-victim-selection algorithm and evade mode are called - //threat list sorting etc. + // function provides main threat functionality + // next-victim-selection algorithm and evade mode are called + // threat list sorting etc. MANGOS_ASSERT(IsCreature()); - if (!this->IsAlive()) + if (!IsAlive()) return false; - //This function only useful once AI has been initialized + // This function is only useful once AI has been initialized if (!((Creature*)this)->AI()) return false; - // Nostalrius: delai de 5 sec avant attaque apres spawn. - if (ToCreature()->IsTempPacified()) + // Nostalrius: 5 sec delay before attack after spawn. + if (((Creature*)this)->IsTempPacified()) return false; Unit* target = GetTauntTarget(); diff --git a/src/game/Objects/Unit.h b/src/game/Objects/Unit.h index 270c999e910..b4899417a1e 100644 --- a/src/game/Objects/Unit.h +++ b/src/game/Objects/Unit.h @@ -903,6 +903,7 @@ class Unit : public SpellCaster float m_meleeZReach; ThreatManager m_ThreatManager; // Manage all Units threatening us HostileRefManager m_HostileRefManager; // Manage all Units that are threatened by us + std::vector m_tauntGuids; protected: uint32 m_attackTimer[MAX_ATTACK]; AttackerSet m_attackers; @@ -1086,6 +1087,8 @@ class Unit : public SpellCaster Unit* GetTauntTarget() const; void TauntApply(Unit* pVictim); void TauntFadeOut(Unit* taunter); + void AddTauntCaster(ObjectGuid guid) { m_tauntGuids.push_back(guid); } + void RemoveTauntCaster(ObjectGuid guid); // Threat related methods bool CanHaveThreatList() const; diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index 0020ac459e2..04843f0f7e0 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -4109,6 +4109,11 @@ void Aura::HandleModTaunt(bool apply, bool Real) Unit* target = GetTarget(); + if (apply) + target->AddTauntCaster(GetCasterGuid()); + else + target->RemoveTauntCaster(GetCasterGuid()); + if (!target->IsAlive() || !target->CanHaveThreatList()) return; diff --git a/src/scripts/eastern_kingdoms/uldaman/boss_ironaya.cpp b/src/scripts/eastern_kingdoms/uldaman/boss_ironaya.cpp index 7c769a7e218..24fe1b5c02d 100644 --- a/src/scripts/eastern_kingdoms/uldaman/boss_ironaya.cpp +++ b/src/scripts/eastern_kingdoms/uldaman/boss_ironaya.cpp @@ -78,19 +78,16 @@ struct boss_ironayaAI : public ScriptedAI if (!hasCastedKnockaway && m_creature->GetHealthPercent() < 50.0f) { m_creature->CastSpell(m_creature->GetVictim(), SPELL_KNOCKAWAY, false); + m_creature->GetThreatManager().modifyThreatPercent(m_creature->GetVictim(), -100); // current aggro target is knocked away pick new target - Unit* Target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_TOPAGGRO, 0); + Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_TOPAGGRO, 0); - if (!Target || Target == m_creature->GetVictim()) - { - Target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_TOPAGGRO, 1); - } + if (!pTarget || pTarget == m_creature->GetVictim()) + pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_TOPAGGRO, 1); - if (Target) - { - m_creature->TauntApply(Target); - } + if (pTarget) + AttackStart(pTarget); //Shouldn't cast this again hasCastedKnockaway = true; diff --git a/src/scripts/eastern_kingdoms/uldaman/uldaman.cpp b/src/scripts/eastern_kingdoms/uldaman/uldaman.cpp index ac51e9dfabc..817bffad8f5 100644 --- a/src/scripts/eastern_kingdoms/uldaman/uldaman.cpp +++ b/src/scripts/eastern_kingdoms/uldaman/uldaman.cpp @@ -156,23 +156,19 @@ struct mob_jadespine_basiliskAI : public ScriptedAI if (Cslumber_Timer < diff) { //Cast - // DoCastSpellIfCan(m_creature->GetVictim(),SPELL_CRYSTALLINE_SLUMBER); m_creature->CastSpell(m_creature->GetVictim(), SPELL_CRYSTALLINE_SLUMBER, false); + m_creature->GetThreatManager().modifyThreatPercent(m_creature->GetVictim(), -100); - //Stop attacking target thast asleep and pick new target + //Stop attacking target thats asleep and pick new target Cslumber_Timer = 28000; - Unit* Target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_TOPAGGRO, 0); + Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_TOPAGGRO, 0); - if (!Target || Target == m_creature->GetVictim()) - { - Target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM, 0); - } + if (!pTarget || pTarget == m_creature->GetVictim()) + pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_TOPAGGRO, 1); - if (Target) - { - m_creature->TauntApply(Target); - } + if (pTarget) + AttackStart(pTarget); } else Cslumber_Timer -= diff; From 8a7035261655236cef6b2bfea1be7f2ceb229c6d Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 2 Aug 2023 18:01:17 +0300 Subject: [PATCH 138/426] Correct gossip menu ids of some npcs. Thanks to Kittnz for getting the data. --- sql/migrations/20230802150021_world.sql | 91 +++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sql/migrations/20230802150021_world.sql diff --git a/sql/migrations/20230802150021_world.sql b/sql/migrations/20230802150021_world.sql new file mode 100644 index 00000000000..623fda09e24 --- /dev/null +++ b/sql/migrations/20230802150021_world.sql @@ -0,0 +1,91 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230802150021'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230802150021'); +-- Add your query below. + + +-- Correct gossip menu id of Earthcaller Franzahl. +UPDATE `gossip_menu` SET `entry`=5813 WHERE `entry`=50309; +UPDATE `gossip_menu_option` SET `menu_id`=5813 WHERE `menu_id`=50309; +UPDATE `creature_template` SET `gossip_menu_id`=5813 WHERE `gossip_menu_id`=50309; + +-- Correct gossip menu id of Vartrus the Ancient. +UPDATE `gossip_menu` SET `entry`=6584 WHERE `entry`=50000; +UPDATE `gossip_menu_option` SET `menu_id`=6584 WHERE `menu_id`=50000; +UPDATE `gossip_menu_option` SET `action_script_id`=658400 WHERE `action_script_id`=5000000; +UPDATE `gossip_scripts` SET `id`=658400 WHERE `id`=5000000; +UPDATE `gossip_menu_option` SET `action_script_id`=658401 WHERE `action_script_id`=5000001; +UPDATE `gossip_scripts` SET `id`=658401 WHERE `id`=5000001; +DELETE FROM `locales_gossip_menu_option` WHERE `menu_id`=50000; +UPDATE `creature_template` SET `gossip_menu_id`=6584 WHERE `gossip_menu_id`=50000; + +-- Correct gossip menu id of Cenarion Scout Jalia. +UPDATE `gossip_menu` SET `entry`=6691, `text_id`=8064 WHERE `entry`=15611 && `text_id`=8064; +UPDATE `gossip_menu_option` SET `menu_id`=6691 WHERE `menu_id`=15611; +UPDATE `gossip_menu_option` SET `action_script_id`=6691 WHERE `action_script_id`=15611; +UPDATE `gossip_scripts` SET `id`=6691 WHERE `id`=15611; +UPDATE `creature_template` SET `gossip_menu_id`=6691 WHERE `gossip_menu_id`=15611; + +-- Correct gossip menu id of Cenarion Scout Azenel. +UPDATE `gossip_menu` SET `entry`=6690, `text_id`=8063 WHERE `entry`=15610 && `text_id`=8064; +UPDATE `gossip_menu_option` SET `menu_id`=6690 WHERE `menu_id`=15610; +UPDATE `gossip_menu_option` SET `action_script_id`=6690 WHERE `action_script_id`=15610; +UPDATE `gossip_scripts` SET `id`=6690 WHERE `id`=15610; +UPDATE `creature_template` SET `gossip_menu_id`=6690 WHERE `gossip_menu_id`=15610; + +-- Correct gossip menu id of Cenarion Scout Landion. +UPDATE `gossip_menu` SET `entry`=6692, `text_id`=8065 WHERE `entry`=15609 && `text_id`=8063; +UPDATE `gossip_menu_option` SET `menu_id`=6692 WHERE `menu_id`=15609; +UPDATE `gossip_menu_option` SET `action_script_id`=6692 WHERE `action_script_id`=15609; +UPDATE `gossip_scripts` SET `id`=6692 WHERE `id`=15609; +UPDATE `creature_template` SET `gossip_menu_id`=6692 WHERE `gossip_menu_id`=15609; + +-- Correct gossip menu id of Vaelan. +UPDATE `gossip_menu` SET `entry`=2630 WHERE `entry`=12039; +UPDATE `gossip_menu_option` SET `menu_id`=2630 WHERE `menu_id`=12039; +UPDATE `gossip_menu` SET `entry`=2629 WHERE `entry`=12040; +UPDATE `gossip_menu_option` SET `menu_id`=2629 WHERE `menu_id`=12040; +UPDATE `gossip_menu_option` SET `action_menu_id`=2629 WHERE `action_menu_id`=12040; +UPDATE `gossip_menu` SET `entry`=2628 WHERE `entry`=12041; +UPDATE `gossip_menu_option` SET `menu_id`=2628 WHERE `menu_id`=12041; +UPDATE `gossip_menu_option` SET `action_menu_id`=2628 WHERE `action_menu_id`=12041; +UPDATE `gossip_menu` SET `entry`=2627 WHERE `entry`=12042; +UPDATE `gossip_menu_option` SET `menu_id`=2627 WHERE `menu_id`=12042; +UPDATE `gossip_menu_option` SET `action_menu_id`=2627 WHERE `action_menu_id`=12042; +UPDATE `gossip_menu` SET `entry`=2626 WHERE `entry`=12043; +UPDATE `gossip_menu_option` SET `menu_id`=2626 WHERE `menu_id`=12043; +UPDATE `gossip_menu_option` SET `action_menu_id`=2626 WHERE `action_menu_id`=12043; +UPDATE `gossip_menu` SET `entry`=2625 WHERE `entry`=12044; +UPDATE `gossip_menu_option` SET `menu_id`=2625 WHERE `menu_id`=12044; +UPDATE `gossip_menu_option` SET `action_menu_id`=2625 WHERE `action_menu_id`=12044; +UPDATE `gossip_menu` SET `entry`=2624 WHERE `entry`=12045; +UPDATE `gossip_menu_option` SET `menu_id`=2624 WHERE `menu_id`=12045; +UPDATE `gossip_menu_option` SET `action_menu_id`=2624 WHERE `action_menu_id`=12045; +UPDATE `gossip_menu` SET `entry`=2623 WHERE `entry`=12046; +UPDATE `gossip_menu_option` SET `menu_id`=2623 WHERE `menu_id`=12046; +UPDATE `gossip_menu_option` SET `action_menu_id`=2623 WHERE `action_menu_id`=12046; +UPDATE `gossip_menu` SET `entry`=2622 WHERE `entry`=12047; +UPDATE `gossip_menu_option` SET `menu_id`=2622 WHERE `menu_id`=12047; +UPDATE `gossip_menu_option` SET `action_menu_id`=2622 WHERE `action_menu_id`=12047; +UPDATE `gossip_menu` SET `entry`=2621 WHERE `entry`=12048; +UPDATE `gossip_menu_option` SET `menu_id`=2621 WHERE `menu_id`=12048; +UPDATE `gossip_menu_option` SET `action_menu_id`=2621 WHERE `action_menu_id`=12048; +UPDATE `creature_template` SET `gossip_menu_id`=2630 WHERE `gossip_menu_id`=12039; + +-- Hegnar Swiftaxe does not have gossip. +DELETE FROM `gossip_menu` WHERE `entry`=9330; +DELETE FROM `gossip_menu_option` WHERE `menu_id`=9330; +UPDATE `creature_template` SET `gossip_menu_id`=0 WHERE `entry`=5119; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 329bc4d7a3c4721b7507eae6ee701387faabef57 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 9 Aug 2023 15:44:47 +0300 Subject: [PATCH 139/426] Improve bot distancing logic. --- src/game/PlayerBots/BattleBotAI.cpp | 4 +- src/game/PlayerBots/CombatBotBaseAI.cpp | 4 +- src/game/PlayerBots/CombatBotBaseAI.h | 2 +- src/game/PlayerBots/PartyBotAI.cpp | 55 ++++++++++++++++++++----- src/game/PlayerBots/PartyBotAI.h | 4 +- src/game/SharedDefines.h | 12 ++++++ 6 files changed, 64 insertions(+), 17 deletions(-) diff --git a/src/game/PlayerBots/BattleBotAI.cpp b/src/game/PlayerBots/BattleBotAI.cpp index cfe6c85b7d1..e8a3b9f10ee 100644 --- a/src/game/PlayerBots/BattleBotAI.cpp +++ b/src/game/PlayerBots/BattleBotAI.cpp @@ -2193,7 +2193,7 @@ void BattleBotAI::UpdateInCombatAI_Warrior() } if (m_spells.warrior.pShieldBash && - IsWearingShield() && + IsWearingShield(me) && CanTryToCastSpell(pVictim, m_spells.warrior.pShieldBash)) { if (DoCastSpell(pVictim, m_spells.warrior.pShieldBash) == SPELL_CAST_OK) @@ -2233,7 +2233,7 @@ void BattleBotAI::UpdateInCombatAI_Warrior() } if (me->GetShapeshiftForm() == FORM_DEFENSIVESTANCE && - IsWearingShield()) + IsWearingShield(me)) { if (!me->GetAttackers().empty() && IsPhysicalDamageClass(pVictim->GetClass())) diff --git a/src/game/PlayerBots/CombatBotBaseAI.cpp b/src/game/PlayerBots/CombatBotBaseAI.cpp index a7fd9d42993..bd89758bf23 100644 --- a/src/game/PlayerBots/CombatBotBaseAI.cpp +++ b/src/game/PlayerBots/CombatBotBaseAI.cpp @@ -3144,9 +3144,9 @@ bool CombatBotBaseAI::UseItemEffect(Item* pItem) return false; } -bool CombatBotBaseAI::IsWearingShield() const +bool CombatBotBaseAI::IsWearingShield(Player* pPlayer) const { - Item* pItem = me->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND); + Item* pItem = pPlayer->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND); if (!pItem) return false; diff --git a/src/game/PlayerBots/CombatBotBaseAI.h b/src/game/PlayerBots/CombatBotBaseAI.h index 7dbe1d47064..b020006e059 100644 --- a/src/game/PlayerBots/CombatBotBaseAI.h +++ b/src/game/PlayerBots/CombatBotBaseAI.h @@ -122,7 +122,7 @@ class CombatBotBaseAI : public PlayerBotAI SpellCastResult DoCastSpell(Unit* pTarget, SpellEntry const* pSpellEntry); virtual bool CanTryToCastSpell(Unit const* pTarget, SpellEntry const* pSpellEntry) const; - bool IsWearingShield() const; + bool IsWearingShield(Player* pPlayer) const; void EquipOrUseNewItem(); void AddItemToInventory(uint32 itemId, uint32 count = 1); diff --git a/src/game/PlayerBots/PartyBotAI.cpp b/src/game/PlayerBots/PartyBotAI.cpp index ac366ad580e..d64d23ce762 100644 --- a/src/game/PlayerBots/PartyBotAI.cpp +++ b/src/game/PlayerBots/PartyBotAI.cpp @@ -127,24 +127,57 @@ Player* PartyBotAI::GetPartyLeader() const return nullptr; } -bool PartyBotAI::RunAwayFromTarget(Unit* pTarget) +bool PartyBotAI::IsValidDistancingTarget(Unit* pTarget, Unit* pEnemy) +{ + if (pTarget->IsInWorld() && pTarget->IsAlive() && + pTarget->GetMap() == me->GetMap()) + { + float const distance = me->GetDistance(pTarget); + if (distance >= 15.0f && distance <= 30.0f && + pTarget->GetDistance(pEnemy) >= 15.0f) + return true; + } + + return false; +} + +Unit* PartyBotAI::GetDistancingTarget(Unit* pEnemy) { if (Player* pLeader = GetPartyLeader()) + if (IsValidDistancingTarget(pLeader, pEnemy)) + return pLeader; + + Unit* pNonTank = nullptr; + Group* pGroup = me->GetGroup(); + for (GroupReference* itr = pGroup->GetFirstMember(); itr != nullptr; itr = itr->next()) { - if (pLeader->IsInWorld() && - pLeader->GetMap() == me->GetMap()) + if (Player* pMember = itr->getSource()) { - float const distance = me->GetDistance(pLeader); - if (distance >= 15.0f && distance <= 30.0f && - pLeader->GetDistance(pTarget) >= 15.0f) + if (pMember == me) + continue; + + if (IsValidDistancingTarget(pMember, pEnemy)) { - me->MonsterMove(pLeader->GetPositionX(), pLeader->GetPositionY(), pLeader->GetPositionZ()); - return true; + if (IsTankingForm(pMember->GetShapeshiftForm()) || IsWearingShield(pMember)) + return pMember; + else + pNonTank = pMember; } } } - return me->GetMotionMaster()->MoveDistance(pTarget, 15.0f); + return pNonTank; +} + +bool PartyBotAI::RunAwayFromTarget(Unit* pEnemy) +{ + if (Unit* pTarget = GetDistancingTarget(pEnemy)) + { + me->MonsterMove(pTarget->GetPositionX(), pTarget->GetPositionY(), pTarget->GetPositionZ()); + return true; + } + + return me->GetMotionMaster()->MoveDistance(pEnemy, 15.0f); } bool PartyBotAI::DrinkAndEat() @@ -2261,7 +2294,7 @@ void PartyBotAI::UpdateInCombatAI_Warrior() } if (m_spells.warrior.pShieldBash && - IsWearingShield() && + IsWearingShield(me) && CanTryToCastSpell(pVictim, m_spells.warrior.pShieldBash)) { if (DoCastSpell(pVictim, m_spells.warrior.pShieldBash) == SPELL_CAST_OK) @@ -2301,7 +2334,7 @@ void PartyBotAI::UpdateInCombatAI_Warrior() } if (me->GetShapeshiftForm() == FORM_DEFENSIVESTANCE && - IsWearingShield()) + IsWearingShield(me)) { if (!me->GetAttackers().empty()) { diff --git a/src/game/PlayerBots/PartyBotAI.h b/src/game/PlayerBots/PartyBotAI.h index e0dfcdd1870..116570ea9ba 100644 --- a/src/game/PlayerBots/PartyBotAI.h +++ b/src/game/PlayerBots/PartyBotAI.h @@ -60,7 +60,9 @@ class PartyBotAI : public CombatBotBaseAI bool CanUseCrowdControl(SpellEntry const* pSpellEntry, Unit* pTarget) const; bool DrinkAndEat(); bool ShouldAutoRevive() const; - bool RunAwayFromTarget(Unit* pTarget); + bool IsValidDistancingTarget(Unit* pTarget, Unit* pEnemy); + Unit* GetDistancingTarget(Unit* pEnemy); + bool RunAwayFromTarget(Unit* pEnemy); bool CrowdControlMarkedTargets(); bool EnterCombatDruidForm(); bool ShouldEnterStealth() const; diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index 98fcbbcd2bf..28c5428110c 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -1441,6 +1441,18 @@ enum ShapeshiftForm FORM_SPIRITOFREDEMPTION = 0x20 }; +inline bool IsTankingForm(ShapeshiftForm form) +{ + switch (form) + { + case FORM_BEAR: + case FORM_DIREBEAR: + case FORM_DEFENSIVESTANCE: + return true; + } + return false; +} + enum ShapeshiftFlags { SHAPESHIFT_FLAG_STANCE = 0x00000001, // Form allows various player activities, which normally cause "You can't X while shapeshifted." errors (npc/go interaction, item use, etc) From 4e9b446e9d715cb5c48b59116f42b6bbf70e9ed0 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 9 Aug 2023 16:40:46 +0300 Subject: [PATCH 140/426] Make partybots avoid aoe if it will pull aggro. --- src/game/PlayerBots/PartyBotAI.cpp | 46 ++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/src/game/PlayerBots/PartyBotAI.cpp b/src/game/PlayerBots/PartyBotAI.cpp index d64d23ce762..194636fdd0a 100644 --- a/src/game/PlayerBots/PartyBotAI.cpp +++ b/src/game/PlayerBots/PartyBotAI.cpp @@ -26,6 +26,7 @@ #include "Spell.h" #include "SpellAuras.h" #include "Chat.h" +#include "GridNotifiersImpl.h" #include enum PartyBotSpells @@ -265,10 +266,51 @@ bool PartyBotAI::ShouldAutoRevive() const bool PartyBotAI::CanTryToCastSpell(Unit const* pTarget, SpellEntry const* pSpellEntry) const { - if (pSpellEntry->IsAreaOfEffectSpell() && !m_marksToCC.empty()) + if (!CombatBotBaseAI::CanTryToCastSpell(pTarget, pSpellEntry)) return false; - return CombatBotBaseAI::CanTryToCastSpell(pTarget, pSpellEntry); + if (pSpellEntry->IsAreaOfEffectSpell() && !pSpellEntry->IsPositiveSpell()) + { + if (!m_marksToCC.empty()) + return false; + + // do not cast aoe if it will pull aggro + if (m_role != ROLE_TANK) + { + float radius; + if (pSpellEntry->EffectRadiusIndex[0]) + radius = Spells::GetSpellRadius(sSpellRadiusStore.LookupEntry(pSpellEntry->EffectRadiusIndex[0])); + else if (pSpellEntry->EffectRadiusIndex[1]) + radius = Spells::GetSpellRadius(sSpellRadiusStore.LookupEntry(pSpellEntry->EffectRadiusIndex[1])); + else if (pSpellEntry->EffectRadiusIndex[2]) + radius = Spells::GetSpellRadius(sSpellRadiusStore.LookupEntry(pSpellEntry->EffectRadiusIndex[2])); + else + radius = 10.0f; + + std::list targets; + MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck u_check(pTarget, me, radius); + MaNGOS::UnitListSearcher searcher(targets, u_check); + Cell::VisitAllObjects(pTarget, searcher, radius); + + for (auto const& pEnemy : targets) + { + if (((pEnemy->GetLevel() + 5) > me->GetLevel()) && + ((pEnemy->GetHealth() * 4) > me->GetHealth()) && + pEnemy->GetVictim() && pEnemy->GetVictim() != me && + pEnemy->IsValidAttackTarget(me) && + pEnemy->CanHaveThreatList()) + { + float const myThreat = pEnemy->GetThreatManager().getThreat(me); + float const victimThreat = pEnemy->GetThreatManager().getThreat(pEnemy->GetVictim()); + + if (victimThreat < (myThreat + me->GetMaxHealth())) + return false; + } + } + } + } + + return true; } bool PartyBotAI::CanUseCrowdControl(SpellEntry const* pSpellEntry, Unit* pTarget) const From 6f8bb727fdfa677460c6870a3bf3bde697cc0d92 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 11 Aug 2023 12:46:17 +0300 Subject: [PATCH 141/426] Correct formation of Winterfall Runners. --- sql/migrations/20230811094541_world.sql | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 sql/migrations/20230811094541_world.sql diff --git a/sql/migrations/20230811094541_world.sql b/sql/migrations/20230811094541_world.sql new file mode 100644 index 00000000000..62363ca7815 --- /dev/null +++ b/sql/migrations/20230811094541_world.sql @@ -0,0 +1,24 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230811094541'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230811094541'); +-- Add your query below. + + +-- Correct formation of Winterfall Runners. +DELETE FROM `creature_groups` WHERE `leader_guid`=42250; +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES (42250, 42250, 0, 0, 11); +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES (42250, 42251, 5, 0, 11); +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES (42250, 42252, 6, 0.7, 11); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 79ab4ea13b1cfd1df34303c649309af679ba7fee Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 11 Aug 2023 15:33:47 +0300 Subject: [PATCH 142/426] Unify checks if attack requires enabling PvP. --- src/game/Maps/GridNotifiers.h | 8 +++++++- src/game/Objects/Unit.cpp | 10 ++++++++++ src/game/Objects/Unit.h | 1 + src/game/Spells/Spell.cpp | 6 ++---- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/game/Maps/GridNotifiers.h b/src/game/Maps/GridNotifiers.h index 76a319aa035..e03d2ccf698 100644 --- a/src/game/Maps/GridNotifiers.h +++ b/src/game/Maps/GridNotifiers.h @@ -918,7 +918,7 @@ namespace MaNGOS WorldObject const& GetFocusObject() const { return *i_obj; } bool operator()(Unit* u) { - if (i_owner && i_owner->IsPlayer() && u->IsPlayer() && !i_owner->IsPvP() && !i_owner->ToPlayer()->IsInDuelWith(u->ToPlayer())) + if (i_owner && !i_owner->CanAttackWithoutEnablingPvP(u)) return false; if (i_obj->IsWithinDistInMap(u, i_range) && i_funit->IsValidAttackTarget(u) && @@ -964,6 +964,9 @@ namespace MaNGOS if (!i_obj->IsWithinDistInMap(u, i_range)) return false; + if (i_originalCaster->IsUnit() && !((Unit const*)i_originalCaster)->CanAttackWithoutEnablingPvP(u)) + return false; + return i_originalCaster->IsValidAttackTarget(u); } private: @@ -992,6 +995,9 @@ namespace MaNGOS if (!i_obj->IsWithinDistInMap(u, i_range)) return false; + if (i_originalCaster->IsUnit() && !((Unit const*)i_originalCaster)->CanAttackWithoutEnablingPvP(u)) + return false; + return i_originalCaster->IsValidAttackTarget(u); } private: diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index fb8d050b8bc..61992bbfc59 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -9753,6 +9753,16 @@ void Unit::SetPvPContested(bool state) } } +bool Unit::CanAttackWithoutEnablingPvP(Unit* pTarget) const +{ + if (Player* attackedPlayer = pTarget->GetCharmerOrOwnerPlayerOrPlayerItself()) + if (Player* casterPlayer = GetCharmerOrOwnerPlayerOrPlayerItself()) + if (!casterPlayer->IsPvP() && !(casterPlayer->IsFFAPvP() && attackedPlayer->IsFFAPvP()) && !casterPlayer->IsInDuelWith(attackedPlayer)) + return false; + + return true; +} + struct StopAttackFactionHelper { explicit StopAttackFactionHelper(uint32 _faction_id) : faction_id(_faction_id) {} diff --git a/src/game/Objects/Unit.h b/src/game/Objects/Unit.h index b4899417a1e..735d775bedc 100644 --- a/src/game/Objects/Unit.h +++ b/src/game/Objects/Unit.h @@ -1178,6 +1178,7 @@ class Unit : public SpellCaster void SetPvP(bool state); bool IsPvPContested() const; void SetPvPContested(bool state); + bool CanAttackWithoutEnablingPvP(Unit* pTarget) const; void SetTargetGuid(ObjectGuid targetGuid) { SetGuidValue(UNIT_FIELD_TARGET, targetGuid); } ObjectGuid const& GetTargetGuid() const { return GetGuidValue(UNIT_FIELD_TARGET); } diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 92fc4023163..a193775809e 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -8603,10 +8603,8 @@ class SpellNotifierCreatureAndPlayer continue; // Negative AoE from non flagged players cannot target other players - if (Player* attackedPlayer = unit->GetCharmerOrOwnerPlayerOrPlayerItself()) - if (Player* casterPlayer = casterUnit->GetCharmerOrOwnerPlayerOrPlayerItself()) - if (!casterPlayer->IsPvP() && !(casterPlayer->IsFFAPvP() && attackedPlayer->IsFFAPvP()) && !casterPlayer->IsInDuelWith(attackedPlayer)) - continue; + if (!casterUnit->CanAttackWithoutEnablingPvP(unit)) + continue; } else if (GameObject* gobj = i_originalCaster->ToGameObject()) { From da375ed9e96ea55ecfa1de323ea80e4d62f93443 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 11 Aug 2023 15:45:03 +0300 Subject: [PATCH 143/426] Fix build issues. --- src/game/Objects/Unit.cpp | 11 +++++++++-- src/game/Objects/Unit.h | 5 +++-- src/game/PlayerBots/PartyBotAI.cpp | 5 +---- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 61992bbfc59..34122d72f31 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -9273,7 +9273,7 @@ void Unit::UpdateReactives(uint32 p_time) } } -uint8 Unit::GetEnemyCountInRadiusAround(Unit* pTarget, float radius) const +uint8 Unit::GetEnemyCountInRadiusAround(Unit const* pTarget, float radius) const { std::list targets; MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck u_check(pTarget, this, radius); @@ -9282,6 +9282,13 @@ uint8 Unit::GetEnemyCountInRadiusAround(Unit* pTarget, float radius) const return targets.size(); } +void Unit::GetEnemyListInRadiusAround(Unit const* pTarget, float radius, std::list& targets) const +{ + MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck u_check(pTarget, this, radius); + MaNGOS::UnitListSearcher searcher(targets, u_check); + Cell::VisitAllObjects(pTarget, searcher, radius); +} + Unit* Unit::SelectRandomUnfriendlyTarget(Unit* except /*= nullptr*/, float radius /*= ATTACK_DISTANCE*/, bool inFront /*= false*/, bool isValidAttackTarget /*= false*/) const { std::list targets; @@ -9753,7 +9760,7 @@ void Unit::SetPvPContested(bool state) } } -bool Unit::CanAttackWithoutEnablingPvP(Unit* pTarget) const +bool Unit::CanAttackWithoutEnablingPvP(Unit const* pTarget) const { if (Player* attackedPlayer = pTarget->GetCharmerOrOwnerPlayerOrPlayerItself()) if (Player* casterPlayer = GetCharmerOrOwnerPlayerOrPlayerItself()) diff --git a/src/game/Objects/Unit.h b/src/game/Objects/Unit.h index 735d775bedc..3691e6cd3da 100644 --- a/src/game/Objects/Unit.h +++ b/src/game/Objects/Unit.h @@ -1107,7 +1107,8 @@ class Unit : public SpellCaster HostileRefManager const& GetHostileRefManager() const { return m_HostileRefManager; } // Script Helpers - uint8 GetEnemyCountInRadiusAround(Unit* pTarget, float radius) const; + uint8 GetEnemyCountInRadiusAround(Unit const* pTarget, float radius) const; + void GetEnemyListInRadiusAround(Unit const* pTarget, float radius, std::list& targets) const; Unit* SelectNearestTarget(float dist) const; Unit* SelectRandomUnfriendlyTarget(Unit* except = nullptr, float radius = ATTACK_DISTANCE, bool inFront = false, bool isValidAttackTarget = false) const; Unit* SelectRandomFriendlyTarget(Unit* except = nullptr, float radius = ATTACK_DISTANCE, bool inCombat = false) const; @@ -1178,7 +1179,7 @@ class Unit : public SpellCaster void SetPvP(bool state); bool IsPvPContested() const; void SetPvPContested(bool state); - bool CanAttackWithoutEnablingPvP(Unit* pTarget) const; + bool CanAttackWithoutEnablingPvP(Unit const* pTarget) const; void SetTargetGuid(ObjectGuid targetGuid) { SetGuidValue(UNIT_FIELD_TARGET, targetGuid); } ObjectGuid const& GetTargetGuid() const { return GetGuidValue(UNIT_FIELD_TARGET); } diff --git a/src/game/PlayerBots/PartyBotAI.cpp b/src/game/PlayerBots/PartyBotAI.cpp index 194636fdd0a..35327e2a4ca 100644 --- a/src/game/PlayerBots/PartyBotAI.cpp +++ b/src/game/PlayerBots/PartyBotAI.cpp @@ -26,7 +26,6 @@ #include "Spell.h" #include "SpellAuras.h" #include "Chat.h" -#include "GridNotifiersImpl.h" #include enum PartyBotSpells @@ -288,9 +287,7 @@ bool PartyBotAI::CanTryToCastSpell(Unit const* pTarget, SpellEntry const* pSpell radius = 10.0f; std::list targets; - MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck u_check(pTarget, me, radius); - MaNGOS::UnitListSearcher searcher(targets, u_check); - Cell::VisitAllObjects(pTarget, searcher, radius); + me->GetEnemyListInRadiusAround(pTarget, radius, targets); for (auto const& pEnemy : targets) { From b6eef3471c09a487941e6dc664accab8422ca844 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Fri, 11 Aug 2023 14:59:26 +0100 Subject: [PATCH 144/426] More Misc Object Updates (#2141) --- sql/migrations/20230729171655_world.sql | 38 +++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 sql/migrations/20230729171655_world.sql diff --git a/sql/migrations/20230729171655_world.sql b/sql/migrations/20230729171655_world.sql new file mode 100644 index 00000000000..265dcf53aae --- /dev/null +++ b/sql/migrations/20230729171655_world.sql @@ -0,0 +1,38 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230729171655'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230729171655'); +-- Add your query below. + + +-- Remove Duplicate Food Crates +DELETE FROM `pool_pool` WHERE `pool_id` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (44156, 44204, 44155, 44206, 44137, 44185, 44150, 44198, 44149, 44197, 44137, 44185)); +DELETE FROM `pool_template` WHERE `entry` IN (SELECT `pool_entry` FROM `pool_gameobject` WHERE `guid` IN (44156, 44204, 44155, 44206, 44137, 44185, 44150, 44198, 44149, 44197, 44137, 44185)); +DELETE FROM `gameobject` WHERE `guid` IN (44156, 44204, 44155, 44206, 44137, 44185, 44150, 44198, 44149, 44197, 44137, 44185); +DELETE FROM `pool_gameobject` WHERE `guid` IN (44156, 44204, 44155, 44206, 44137, 44185, 44150, 44198, 44149, 44197, 44137, 44185); + +-- Remove Duplicate Cortellos Riddle +DELETE FROM `gameobject` WHERE `guid` = 129; +DELETE FROM `pool_gameobject` WHERE `guid` IN (129); + +-- Remove Duplicate Blood of Heroes +DELETE FROM `gameobject` WHERE `guid` IN (25981, 25918, 25962, 25972, 55363); +DELETE FROM `pool_gameobject` WHERE `guid` IN (25981, 25918, 25962, 25972, 55363); + +-- Add Missing Wanted: Hogger Sign +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(502, 156561, 0, -9750.33, 682.773, 27.071, 3.86591, -0.042439, 0.0258846, -0.934402, 0.352734, 180, 180, 100, 1, 0, 0, 0, 10); +INSERT INTO `gameobject_questrelation` (`id`, `quest`, `patch_min`, `patch_max`) VALUES +(156561, 176, 0, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 13fec327e6a4086eb2252f3a8b20c093e82ea12b Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 13 Aug 2023 14:37:09 +0300 Subject: [PATCH 145/426] Fix movement anticheat false positives with modern client. Version 1.14 is used widely on vmangos through Hermes, so let's accommodate difference in movement code to prevent server owners getting spammed by false cheat detection messages. The modern clients do not apply root flag while falling until unit has landed, while original clients stop falling immediately on root packet. --- .../MovementAnticheat/MovementAnticheat.cpp | 94 +------------------ src/game/Handlers/MovementHandler.cpp | 40 ++++++++ src/game/Objects/Player.cpp | 6 ++ src/game/Objects/Unit.cpp | 18 ++-- src/game/Objects/Unit.h | 1 + src/game/Objects/UnitDefines.h | 21 +++-- src/game/Protocol/Opcodes.h | 83 ++++++++++++++++ 7 files changed, 159 insertions(+), 104 deletions(-) diff --git a/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp b/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp index 2c7950305fd..03bc2180532 100644 --- a/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp +++ b/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp @@ -519,90 +519,6 @@ UnitMoveType MovementAnticheat::GetMoveTypeForMovementInfo(MovementInfo const& m return type; } - -bool IsAnyMoveAckOpcode(uint16 opcode) -{ - switch (opcode) - { - case MSG_MOVE_TELEPORT_ACK: - case MSG_MOVE_WORLDPORT_ACK: - case MSG_MOVE_SET_RAW_POSITION_ACK: - case CMSG_FORCE_RUN_SPEED_CHANGE_ACK: - case CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK: - case CMSG_FORCE_SWIM_SPEED_CHANGE_ACK: - case CMSG_FORCE_MOVE_ROOT_ACK: - case CMSG_FORCE_MOVE_UNROOT_ACK: - case CMSG_MOVE_KNOCK_BACK_ACK: - case CMSG_MOVE_HOVER_ACK: - case CMSG_MOVE_FEATHER_FALL_ACK: - case CMSG_MOVE_WATER_WALK_ACK: - case CMSG_FORCE_WALK_SPEED_CHANGE_ACK: - case CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK: - case CMSG_FORCE_TURN_RATE_CHANGE_ACK: - return true; - } - - return false; -} - -bool IsFlagAckOpcode(uint16 opcode) -{ - switch (opcode) - { - case CMSG_FORCE_MOVE_ROOT_ACK: - case CMSG_FORCE_MOVE_UNROOT_ACK: - case CMSG_MOVE_WATER_WALK_ACK: - case CMSG_MOVE_HOVER_ACK: - case CMSG_MOVE_FEATHER_FALL_ACK: - return true; - } - - return false; -} - -bool IsSpeedAckOpcode(uint16 opcode) -{ - switch (opcode) - { - case CMSG_FORCE_RUN_SPEED_CHANGE_ACK: - case CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK: - case CMSG_FORCE_SWIM_SPEED_CHANGE_ACK: - case CMSG_FORCE_WALK_SPEED_CHANGE_ACK: - case CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK: - case CMSG_FORCE_TURN_RATE_CHANGE_ACK: - return true; - } - - return false; -} - -bool IsStopOpcode(uint16 opcode) -{ - switch (opcode) - { - case MSG_MOVE_STOP: - case MSG_MOVE_STOP_STRAFE: - case MSG_MOVE_STOP_TURN: - case MSG_MOVE_STOP_PITCH: - case MSG_MOVE_STOP_SWIM: - return true; - } - - return false; -} - -bool IsFallEndOpcode(uint16 opcode) -{ - switch (opcode) - { - case MSG_MOVE_FALL_LAND: - case MSG_MOVE_START_SWIM: - return true; - } - - return false; -} - bool ShouldRejectMovement(uint32 cheatFlags) { if ((cheatFlags & (1 << CHEAT_TYPE_OVERSPEED_JUMP)) && @@ -822,7 +738,7 @@ uint32 MovementAnticheat::HandleFlagTests(Player* pPlayer, MovementInfo& movemen if ((currentMoveFlags & MOVEFLAG_ROOT) && !(GetLastMovementInfo().moveFlags & MOVEFLAG_ROOT) && !me->HasPendingMovementChange(ROOT) && - !me->HasUnitState(UNIT_STAT_ROOT | UNIT_STAT_PENDING_ROOT | UNIT_STAT_STUNNED | UNIT_STAT_PENDING_STUNNED) && + !me->HasUnitState(UNIT_STAT_ROOT | UNIT_STAT_PENDING_ROOT | UNIT_STAT_STUNNED | UNIT_STAT_PENDING_STUNNED | UNIT_STAT_ROOT_ON_LANDING) && (opcode != CMSG_FORCE_MOVE_ROOT_ACK)) { APPEND_CHEAT(CHEAT_TYPE_SELF_ROOT); @@ -1373,8 +1289,6 @@ void MovementAnticheat::CheckBotting(uint16 opcode, MovementInfo const& movement bool MovementAnticheat::CheckTeleport(MovementInfo const& movementInfo) const { if (!sWorld.getConfig(CONFIG_BOOL_AC_MOVEMENT_CHEAT_TELEPORT_ENABLED) || - me->GetPositionX() == 0.0f || me->GetPositionY() == 0.0f || me->GetPositionZ() == 0.0f || - movementInfo.GetPos().x == 0.0f || movementInfo.GetPos().y == 0.0f || movementInfo.GetPos().z == 0.0f || me->IsLaunched() || me->IsTaxiFlying() || me->IsBeingTeleported()) return false; @@ -1394,8 +1308,10 @@ bool MovementAnticheat::CheckTeleport(MovementInfo const& movementInfo) const if (distance2d > 1.0f) return true; - if (!GetLastMovementInfo().HasMovementFlag(MOVEFLAG_JUMPING | MOVEFLAG_FALLINGFAR) && - !movementInfo.HasMovementFlag(MOVEFLAG_JUMPING | MOVEFLAG_FALLINGFAR)) + // swimming flag only included in check because of 1.14 + // vanilla clients do not have a descend/ascend flag + if (!GetLastMovementInfo().HasMovementFlag(MOVEFLAG_JUMPING | MOVEFLAG_FALLINGFAR | MOVEFLAG_SWIMMING) && + !movementInfo.HasMovementFlag(MOVEFLAG_JUMPING | MOVEFLAG_FALLINGFAR | MOVEFLAG_SWIMMING)) { float const distanceZ = movementInfo.HasMovementFlag(MOVEFLAG_ONTRANSPORT) ? std::abs(GetLastMovementInfo().t_pos.z - movementInfo.t_pos.z) : diff --git a/src/game/Handlers/MovementHandler.cpp b/src/game/Handlers/MovementHandler.cpp index e4841c2b8a8..89bfed88c54 100644 --- a/src/game/Handlers/MovementHandler.cpp +++ b/src/game/Handlers/MovementHandler.cpp @@ -341,6 +341,24 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvData) pPlayerMover->UpdateFallInformationIfNeed(movementInfo, opcode); } + // this is here to accommodate 1.14 client behavior + // it does not interrupt falling when rooted + // verify that root is applied after having landed + if (pMover->HasUnitState(UNIT_STAT_ROOT_ON_LANDING)) + { + if (movementInfo.HasMovementFlag(MOVEFLAG_ROOT) || !pMover->ShouldBeRooted()) + pMover->ClearUnitState(UNIT_STAT_ROOT_ON_LANDING); + else if (!movementInfo.HasMovementFlag(MOVEFLAG_JUMPING | MOVEFLAG_FALLINGFAR)) + { + sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "WorldSession::HandleMovementOpcodes: Player %s from account id %u has pending root on landing, but sent movement packet with opcode %u not containing root or falling flags!", + _player->GetName(), _player->GetSession()->GetAccountId(), opcode); + pMover->ClearUnitState(UNIT_STAT_ROOT_ON_LANDING); + pMover->SetRootedReal(true); + KickPlayer(); + return; + } + } + // CMSG opcode has no handler in client, should not be sent to others. // It is sent by client when you jump and hit something on the way up, // thus stopping upward movement and causing you to descend sooner. @@ -727,6 +745,28 @@ void WorldSession::HandleMoveRootAck(WorldPacket& recvData) } } while (false); + if (applyReceived && !movementInfo.HasMovementFlag(MOVEFLAG_ROOT)) + { + // workaround to fix anticheat false positives when using 1.14 client + // modern client finishes falling to ground before applying the root + if (!movementInfo.HasMovementFlag(MOVEFLAG_JUMPING | MOVEFLAG_FALLINGFAR)) + { + sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "WorldSession::HandleMoveRootAck: Player %s from account id %u sent root apply ack, but movement info does not have rooted movement flag!", + _player->GetName(), _player->GetSession()->GetAccountId()); + KickPlayer(); + } + else + { + sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "WorldSession::HandleMoveRootAck: Player %s from account id %u sent root apply ack, but continues falling. Using 1.14 client?", + _player->GetName(), _player->GetSession()->GetAccountId()); + pMover->AddUnitState(UNIT_STAT_ROOT_ON_LANDING); + return; + } + } + + // we need to always clear this on root packet for 1.14 + pMover->ClearUnitState(UNIT_STAT_ROOT_ON_LANDING); + pMover->SetRootedReal(applyReceived); MovementPacketSender::SendMovementFlagChangeToObservers(pMover, MOVEFLAG_ROOT, applyReceived); } diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index cda7e625fe4..d37a62664b5 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -1776,6 +1776,12 @@ void Player::OnDisconnected() }, 1); } + if (HasUnitState(UNIT_STAT_ROOT_ON_LANDING)) + { + SetRootedReal(ShouldBeRooted()); + ClearUnitState(UNIT_STAT_ROOT_ON_LANDING); + } + // Update position after bot takes over // And remove movement flags, so he doesn't run into the void if (!GetMover()->HasUnitState(UNIT_STAT_FLEEING | UNIT_STAT_CONFUSED | UNIT_STAT_TAXI_FLIGHT)) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 34122d72f31..318640dbdbb 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -6825,12 +6825,14 @@ Player* Unit::GetPlayerMovingMe() bool Unit::IsMovedByPlayer() const { + if (!movespline->Finalized()) + return false; + if (Player* pPossessor = GetPossessor()) if (pPossessor->GetCharmGuid() == GetObjectGuid()) return true; return IsPlayer() && - movespline->Finalized() && static_cast(this)->IsControlledByOwnClient() && !static_cast(this)->IsBot(); } @@ -7062,7 +7064,8 @@ void Unit::SetSpeedRateReal(UnitMoveType mtype, float rate) void Unit::SetRooted(bool apply) { // do nothing if the unit is already in the required state - if (apply == HasUnitMovementFlag(MOVEFLAG_ROOT) && !HasPendingMovementChange(ROOT)) + if (apply == (HasUnitMovementFlag(MOVEFLAG_ROOT) || HasUnitState(UNIT_STAT_ROOT_ON_LANDING)) && + !HasPendingMovementChange(ROOT)) return; if (apply) @@ -8871,8 +8874,11 @@ void Unit::StopMoving(bool force) if (!force && movespline->IsUninterruptible()) return; - ClearUnitState(UNIT_STAT_MOVING); - RemoveUnitMovementFlag(MOVEFLAG_MASK_MOVING); + if (!IsMovedByPlayer() || !IsInWorld() || force) + { + ClearUnitState(UNIT_STAT_MOVING); + RemoveUnitMovementFlag(MOVEFLAG_MASK_MOVING); + } // not need send any packets if not in world if (!IsInWorld()) @@ -8885,9 +8891,9 @@ void Unit::StopMoving(bool force) init.SetTransport(t->GetGUIDLow()); init.SetStop(); // Will trigger CMSG_MOVE_SPLINE_DONE from client. init.Launch(); - } - DisableSpline(); + DisableSpline(); + } } void Unit::SetFleeing(bool apply, ObjectGuid casterGuid, uint32 spellId, uint32 time) diff --git a/src/game/Objects/Unit.h b/src/game/Objects/Unit.h index 3691e6cd3da..42a171b7c5c 100644 --- a/src/game/Objects/Unit.h +++ b/src/game/Objects/Unit.h @@ -1301,6 +1301,7 @@ class Unit : public SpellCaster void SetRooted(bool apply); void SetRootedReal(bool apply); bool IsRooted() const { return m_movementInfo.HasMovementFlag(MOVEFLAG_ROOT); } + bool ShouldBeRooted() const { return GetDeathState() == CORPSE || HasUnitState(UNIT_STAT_STUNNED | UNIT_STAT_ROOT); } void SetWaterWalking(bool apply); void SetWaterWalkingReal(bool apply); diff --git a/src/game/Objects/UnitDefines.h b/src/game/Objects/UnitDefines.h index 1ae229f1808..ae858494803 100644 --- a/src/game/Objects/UnitDefines.h +++ b/src/game/Objects/UnitDefines.h @@ -408,19 +408,20 @@ enum UnitState // MMAPS UNIT_STAT_IGNORE_PATHFINDING = 0x00080000, // do not use pathfinding in any MovementGenerator - UNIT_STAT_PENDING_ROOT = 0x00100000, - UNIT_STAT_PENDING_STUNNED = 0x00200000, - UNIT_STAT_FLYING_ALLOWED = 0x00400000, // has gm fly mode enabled + UNIT_STAT_PENDING_ROOT = 0x00100000, // apply root on finishing charge + UNIT_STAT_PENDING_STUNNED = 0x00200000, // apply stun on finishing charge + UNIT_STAT_ROOT_ON_LANDING = 0x00400000, // used to verify modern client behavior on root while falling + UNIT_STAT_FLYING_ALLOWED = 0x00800000, // has gm fly mode enabled // High-level states - UNIT_STAT_RUNNING = 0x00800000, + UNIT_STAT_RUNNING = 0x01000000, - UNIT_STAT_ALLOW_INCOMPLETE_PATH = 0x01000000, // allow movement with incomplete or partial paths - UNIT_STAT_ALLOW_LOS_ATTACK = 0x02000000, // allow melee attacks without LoS + UNIT_STAT_ALLOW_INCOMPLETE_PATH = 0x02000000, // allow movement with incomplete or partial paths + UNIT_STAT_ALLOW_LOS_ATTACK = 0x04000000, // allow melee attacks without LoS - UNIT_STAT_NO_SEARCH_FOR_OTHERS = 0x04000000, // MoveInLineOfSight will not be called - UNIT_STAT_NO_BROADCAST_TO_OTHERS = 0x08000000, // ScheduleAINotify will not be called - UNIT_STAT_AI_USES_MOVE_IN_LOS = 0x10000000, // AI overrides MoveInLineOfSight so always search for others + UNIT_STAT_NO_SEARCH_FOR_OTHERS = 0x08000000, // MoveInLineOfSight will not be called + UNIT_STAT_NO_BROADCAST_TO_OTHERS = 0x10000000, // ScheduleAINotify will not be called + UNIT_STAT_AI_USES_MOVE_IN_LOS = 0x20000000, // AI overrides MoveInLineOfSight so always search for others // masks (only for check) @@ -501,6 +502,8 @@ static char const* UnitStateToString(uint32 state) return "Pending Root"; case UNIT_STAT_PENDING_STUNNED: return "Pending Stunned"; + case UNIT_STAT_ROOT_ON_LANDING: + return "Root on Landing"; case UNIT_STAT_FLYING_ALLOWED: return "Flying Allowed"; case UNIT_STAT_RUNNING: diff --git a/src/game/Protocol/Opcodes.h b/src/game/Protocol/Opcodes.h index a9013ebcb7c..0d73c48549f 100644 --- a/src/game/Protocol/Opcodes.h +++ b/src/game/Protocol/Opcodes.h @@ -41,6 +41,89 @@ #include "Opcodes_1_8_0.h" #endif +inline bool IsAnyMoveAckOpcode(uint16 opcode) +{ + switch (opcode) + { + case MSG_MOVE_TELEPORT_ACK: + case MSG_MOVE_WORLDPORT_ACK: + case MSG_MOVE_SET_RAW_POSITION_ACK: + case CMSG_FORCE_RUN_SPEED_CHANGE_ACK: + case CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK: + case CMSG_FORCE_SWIM_SPEED_CHANGE_ACK: + case CMSG_FORCE_MOVE_ROOT_ACK: + case CMSG_FORCE_MOVE_UNROOT_ACK: + case CMSG_MOVE_KNOCK_BACK_ACK: + case CMSG_MOVE_HOVER_ACK: + case CMSG_MOVE_FEATHER_FALL_ACK: + case CMSG_MOVE_WATER_WALK_ACK: + case CMSG_FORCE_WALK_SPEED_CHANGE_ACK: + case CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK: + case CMSG_FORCE_TURN_RATE_CHANGE_ACK: + return true; + } + + return false; +} + +inline bool IsFlagAckOpcode(uint16 opcode) +{ + switch (opcode) + { + case CMSG_FORCE_MOVE_ROOT_ACK: + case CMSG_FORCE_MOVE_UNROOT_ACK: + case CMSG_MOVE_WATER_WALK_ACK: + case CMSG_MOVE_HOVER_ACK: + case CMSG_MOVE_FEATHER_FALL_ACK: + return true; + } + + return false; +} + +inline bool IsSpeedAckOpcode(uint16 opcode) +{ + switch (opcode) + { + case CMSG_FORCE_RUN_SPEED_CHANGE_ACK: + case CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK: + case CMSG_FORCE_SWIM_SPEED_CHANGE_ACK: + case CMSG_FORCE_WALK_SPEED_CHANGE_ACK: + case CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK: + case CMSG_FORCE_TURN_RATE_CHANGE_ACK: + return true; + } + + return false; +} + +inline bool IsStopOpcode(uint16 opcode) +{ + switch (opcode) + { + case MSG_MOVE_STOP: + case MSG_MOVE_STOP_STRAFE: + case MSG_MOVE_STOP_TURN: + case MSG_MOVE_STOP_PITCH: + case MSG_MOVE_STOP_SWIM: + return true; + } + + return false; +} + +inline bool IsFallEndOpcode(uint16 opcode) +{ + switch (opcode) + { + case MSG_MOVE_FALL_LAND: + case MSG_MOVE_START_SWIM: + return true; + } + + return false; +} + // Player state enum SessionStatus { From c166405731837d6776e805b6cc0f03d90c90f1f8 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 14 Aug 2023 19:02:22 +0300 Subject: [PATCH 146/426] Implement some mechanic changes made in patch 1.7.0. --- src/game/Handlers/MovementHandler.cpp | 5 + src/game/Objects/Player.cpp | 53 ++++- src/game/Objects/SpellCaster.cpp | 31 ++- src/game/Objects/SpellCaster.h | 6 +- src/game/Objects/Unit.cpp | 313 +++++++++++++++----------- src/game/Objects/Unit.h | 2 +- src/game/Spells/Spell.cpp | 2 + src/game/Spells/SpellAuras.cpp | 25 +- src/game/Spells/SpellAuras.h | 3 + src/game/Spells/SpellEffects.cpp | 32 ++- 10 files changed, 304 insertions(+), 168 deletions(-) diff --git a/src/game/Handlers/MovementHandler.cpp b/src/game/Handlers/MovementHandler.cpp index 89bfed88c54..54968197075 100644 --- a/src/game/Handlers/MovementHandler.cpp +++ b/src/game/Handlers/MovementHandler.cpp @@ -341,6 +341,7 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvData) pPlayerMover->UpdateFallInformationIfNeed(movementInfo, opcode); } +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 // this is here to accommodate 1.14 client behavior // it does not interrupt falling when rooted // verify that root is applied after having landed @@ -358,6 +359,7 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvData) return; } } +#endif // CMSG opcode has no handler in client, should not be sent to others. // It is sent by client when you jump and hit something on the way up, @@ -745,6 +747,7 @@ void WorldSession::HandleMoveRootAck(WorldPacket& recvData) } } while (false); +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 if (applyReceived && !movementInfo.HasMovementFlag(MOVEFLAG_ROOT)) { // workaround to fix anticheat false positives when using 1.14 client @@ -764,8 +767,10 @@ void WorldSession::HandleMoveRootAck(WorldPacket& recvData) } } + // we need to always clear this on root packet for 1.14 pMover->ClearUnitState(UNIT_STAT_ROOT_ON_LANDING); +#endif pMover->SetRootedReal(applyReceived); MovementPacketSender::SendMovementFlagChangeToObservers(pMover, MOVEFLAG_ROOT, applyReceived); diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index d37a62664b5..b69b5e7950f 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -1133,12 +1133,18 @@ uint32 Player::EnvironmentalDamage(EnvironmentalDamageType type, uint32 damage) CalculateDamageAbsorbAndResist(this, SPELL_SCHOOL_MASK_NATURE, DIRECT_DAMAGE, damage, &absorb, &resist, nullptr); } - else if (type == DAMAGE_DROWNING) + + else if (type == DAMAGE_EXHAUSTED || type == DAMAGE_DROWNING || type == DAMAGE_FALL) { if (IsImmuneToDamage(SPELL_SCHOOL_MASK_NORMAL)) return 0; - // drowning damage is not absorbable + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - Damage absorption no longer protects against falling, drowning, or + // fatigue damage. +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_6_1 + CalculateDamageAbsorbAndResist(this, SPELL_SCHOOL_MASK_NORMAL, DIRECT_DAMAGE, damage, &absorb, &resist, nullptr); +#endif } uint32 const bonus = (resist < 0 ? uint32(std::abs(resist)) : 0); @@ -1152,7 +1158,10 @@ uint32 Player::EnvironmentalDamage(EnvironmentalDamageType type, uint32 damage) damage = DealDamage(this, damage, nullptr, SELF_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false); - if (type == DAMAGE_FALL && !IsAlive()) // DealDamage not apply item durability loss at self damage + // DealDamage not apply item durability loss at self damage + // Confirmed on classic that dying from lava, fatigue and + // drowning causes durability loss. Probably applies to all. + if (!IsAlive()) { sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "We are fall to death, loosing 10 percents durability"); DurabilityLossAll(0.10f, false); @@ -7205,7 +7214,15 @@ void Player::DuelComplete(DuelCompleteType type) SpellAuraHolderMap const& vAuras = duel->opponent->GetSpellAuraHolderMap(); for (const auto& itr : vAuras) { - if (!itr.second->IsPositive() && itr.second->GetCasterGuid() == GetObjectGuid() && itr.second->GetAuraApplyTime() >= duel->startTime) + if (!itr.second->IsPositive() && + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - You are no longer able to kill players in duels with reflected DoT spells +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 + (itr.second->GetCasterGuid() == GetObjectGuid() || itr.second->IsReflected()) && +#else + itr.second->GetCasterGuid() == GetObjectGuid() && +#endif + itr.second->GetAuraApplyTime() >= duel->startTime) auras2remove.push_back(itr.second->GetId()); } @@ -7216,7 +7233,15 @@ void Player::DuelComplete(DuelCompleteType type) SpellAuraHolderMap const& auras = GetSpellAuraHolderMap(); for (const auto& aura : auras) { - if (!aura.second->IsPositive() && aura.second->GetCasterGuid() == duel->opponent->GetObjectGuid() && aura.second->GetAuraApplyTime() >= duel->startTime) + if (!aura.second->IsPositive() && + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - You are no longer able to kill players in duels with reflected DoT spells +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 + (aura.second->GetCasterGuid() == duel->opponent->GetObjectGuid() || aura.second->IsReflected()) && +#else + aura.second->GetCasterGuid() == duel->opponent->GetObjectGuid() && +#endif + aura.second->GetAuraApplyTime() >= duel->startTime) auras2remove.push_back(aura.second->GetId()); } for (uint32 i : auras2remove) @@ -7410,12 +7435,21 @@ void Player::_ApplyItemBonuses(ItemPrototype const* proto, uint8 slot, bool appl if (proto->Delay) { + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - When you swap weapons in combat, you start your swing again, instead + // of continuing your last swing. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 + bool resetAttackTime = IsInCombat(); +#else + bool resetAttackTime = false; +#endif + if (slot == EQUIPMENT_SLOT_RANGED) - SetAttackTime(RANGED_ATTACK, apply ? proto->Delay : BASE_ATTACK_TIME); + SetAttackTime(RANGED_ATTACK, apply ? proto->Delay : BASE_ATTACK_TIME, resetAttackTime); else if (slot == EQUIPMENT_SLOT_MAINHAND) - SetAttackTime(BASE_ATTACK, apply ? proto->Delay : BASE_ATTACK_TIME); + SetAttackTime(BASE_ATTACK, apply ? proto->Delay : BASE_ATTACK_TIME, resetAttackTime); else if (slot == EQUIPMENT_SLOT_OFFHAND) - SetAttackTime(OFF_ATTACK, apply ? proto->Delay : BASE_ATTACK_TIME); + SetAttackTime(OFF_ATTACK, apply ? proto->Delay : BASE_ATTACK_TIME, resetAttackTime); } if (CanModifyStats() && proto->Delay) @@ -20756,8 +20790,7 @@ void Player::HandleFall(MovementInfo const& movementInfo) //Players with low fall distance, Feather Fall or physical immunity (charges used) are ignored // 14.57 can be calculated by resolving damageperc formula below to 0 if (z_diff >= 14.57f && !IsDead() && !IsGameMaster() && - !HasAuraType(SPELL_AURA_HOVER) && !HasAuraType(SPELL_AURA_FEATHER_FALL) && - !IsImmuneToDamage(SPELL_SCHOOL_MASK_NORMAL)) + !HasAuraType(SPELL_AURA_HOVER) && !HasAuraType(SPELL_AURA_FEATHER_FALL)) { //Safe fall, fall height reduction int32 safe_fall = GetTotalAuraModifier(SPELL_AURA_SAFE_FALL); diff --git a/src/game/Objects/SpellCaster.cpp b/src/game/Objects/SpellCaster.cpp index 193e08aacd9..af8ae4a705c 100644 --- a/src/game/Objects/SpellCaster.cpp +++ b/src/game/Objects/SpellCaster.cpp @@ -166,8 +166,11 @@ SpellMissInfo SpellCaster::SpellHitResult(Unit* pVictim, SpellEntry const* spell if (pVictim->GetTypeId() == TYPEID_UNIT && ((Creature*)pVictim)->IsInEvadeMode()) return SPELL_MISS_EVADE; - // Check for immune (use charges) - if (pVictim != this && !spell->HasAttribute(SPELL_ATTR_NO_IMMUNITIES) && + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - Effects that make players immune to physical will no longer be immune + // to the "Recently Bandaged" effect from First Aid. + if (/* pVictim != this && */ /* commented out due to above patch notes */ + !spell->HasAttribute(SPELL_ATTR_NO_IMMUNITIES) && pVictim->IsImmuneToSpell(spell, pVictim == this)) return SPELL_MISS_IMMUNE; @@ -519,9 +522,25 @@ int32 SpellCaster::MagicSpellHitChance(Unit* pVictim, SpellEntry const* spell, S return 10000; SpellSchoolMask schoolMask = spell->GetSpellSchoolMask(); + // PvP - PvE spell misschances per leveldif > 2 int32 lchance = pVictim->GetTypeId() == TYPEID_PLAYER ? 7 : 11; + + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - Debuffs and area effect spells now use their actual cast level rather + // than effective cast level for calculating periodic resistance. + // - Fixed a bug where area of effect periodic damage spells were being + // resisted more frequently than they should have been when casting + // lower level ranks of the spell (affected spells were Blizzard, + // Consecration,Explosive Trap, Flamestrike, Hurricane, Rain of Fire and + // Volley). +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 int32 leveldif = int32(pVictim->GetLevelForTarget(this)) - int32(GetLevelForTarget(pVictim)); +#else + int32 leveldif = (!spellPtr && spell->HasEffect(SPELL_EFFECT_PERSISTENT_AREA_AURA)) ? + int32(pVictim->GetLevelForTarget(this)) - std::max(1, spell->spellLevel) : + int32(pVictim->GetLevelForTarget(this)) - int32(GetLevelForTarget(pVictim)); +#endif // Base hit chance from attacker and victim levels float modHitChance; @@ -796,7 +815,7 @@ void SpellCaster::SendSpellNonMeleeDamageLog(SpellNonMeleeDamage* log) const data << uint32(log->absorb); // AbsorbedDamage data << int32(log->resist); // resist data << uint8(log->periodicLog); // if 1, then client show spell name (example: %s's ranged shot hit %s for %u school or %s suffers %u school damage from %s's spell_name - data << uint8(log->unused); // unused + data << uint8(false); // unused data << uint32(log->blocked); // blocked data << uint32(log->HitInfo); data << uint8(0); // flag to use extend data @@ -1552,16 +1571,16 @@ void SpellCaster::DealSpellDamage(SpellNonMeleeDamage* damageInfo, bool durabili // Call default DealDamage (send critical in hit info for threat calculation) CleanDamage cleanDamage(0, BASE_ATTACK, damageInfo->HitInfo & SPELL_HIT_TYPE_CRIT ? MELEE_HIT_CRIT : MELEE_HIT_NORMAL, damageInfo->absorb, damageInfo->resist); - DealDamage(pVictim, damageInfo->damage, &cleanDamage, spellProto->HasAttribute(SPELL_ATTR_EX3_TREAT_AS_PERIODIC) ? DOT : SPELL_DIRECT_DAMAGE, GetSchoolMask(damageInfo->school), spellProto, durabilityLoss, damageInfo->spell); + DealDamage(pVictim, damageInfo->damage, &cleanDamage, spellProto->HasAttribute(SPELL_ATTR_EX3_TREAT_AS_PERIODIC) ? DOT : SPELL_DIRECT_DAMAGE, GetSchoolMask(damageInfo->school), spellProto, durabilityLoss, damageInfo->spell, damageInfo->reflected); } -uint32 SpellCaster::DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDamage, DamageEffectType damagetype, SpellSchoolMask damageSchoolMask, SpellEntry const* spellProto, bool durabilityLoss, Spell* spell) +uint32 SpellCaster::DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDamage, DamageEffectType damagetype, SpellSchoolMask damageSchoolMask, SpellEntry const* spellProto, bool durabilityLoss, Spell* spell, bool reflected) { // Should never happen since DealDamage is overriden in Unit class. if (pVictim == this) return 0; - return pVictim->DealDamage(pVictim, damage, cleanDamage, damagetype, damageSchoolMask, spellProto, durabilityLoss, spell); + return pVictim->DealDamage(pVictim, damage, cleanDamage, damagetype, damageSchoolMask, spellProto, durabilityLoss, spell, reflected); } bool SpellCaster::CheckAndIncreaseCastCounter() diff --git a/src/game/Objects/SpellCaster.h b/src/game/Objects/SpellCaster.h index 5bd141e15b1..0cdf0c57145 100644 --- a/src/game/Objects/SpellCaster.h +++ b/src/game/Objects/SpellCaster.h @@ -54,7 +54,7 @@ enum MeleeHitOutcome struct SpellNonMeleeDamage { SpellNonMeleeDamage(SpellCaster* _attacker, Unit* _target, uint32 _SpellID, SpellSchools _school) : target(_target), attacker(_attacker), SpellID(_SpellID), damage(0), school(_school), - absorb(0), resist(0), periodicLog(false), unused(false), blocked(0), HitInfo(0), spell(nullptr) + absorb(0), resist(0), periodicLog(false), reflected(false), blocked(0), HitInfo(0), spell(nullptr) {} Unit* target; @@ -65,7 +65,7 @@ struct SpellNonMeleeDamage { uint32 absorb; int32 resist; bool periodicLog; - bool unused; + bool reflected; uint32 blocked; uint32 HitInfo; Spell* spell; @@ -386,7 +386,7 @@ class SpellCaster : public WorldObject float MeleeDamageBonusDone(Unit* pVictim, float damage, WeaponAttackType attType, SpellEntry const* spellProto = nullptr, SpellEffectIndex effectIndex = EFFECT_INDEX_0, DamageEffectType damagetype = DIRECT_DAMAGE, uint32 stack = 1, Spell* spell = nullptr, bool flat = true); virtual SpellSchoolMask GetMeleeDamageSchoolMask() const; float GetAPMultiplier(WeaponAttackType attType, bool normalized) const; - virtual uint32 DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDamage, DamageEffectType damagetype, SpellSchoolMask damageSchoolMask, SpellEntry const* spellProto, bool durabilityLoss, Spell* spell = nullptr); + virtual uint32 DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDamage, DamageEffectType damagetype, SpellSchoolMask damageSchoolMask, SpellEntry const* spellProto, bool durabilityLoss, Spell* spell = nullptr, bool reflected = false); void DealDamageMods(Unit* pVictim, uint32& damage, uint32* absorb); void DealSpellDamage(SpellNonMeleeDamage* damageInfo, bool durabilityLoss); void SendSpellNonMeleeDamageLog(SpellNonMeleeDamage* log) const; diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 318640dbdbb..aa804cc8b08 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -238,7 +238,13 @@ void Unit::Update(uint32 update_diff, uint32 p_time) if (update_diff >= m_lastManaUseTimer) { // Do not regen mana if still channeling last spell that took mana. + + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - Fixed a bug where mana was being regenerated while channelling spells + // that use mana. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 if (!m_currentSpells[CURRENT_CHANNELED_SPELL] || (m_currentSpells[CURRENT_CHANNELED_SPELL]->m_spellInfo->Id != m_lastManaUseSpellId)) +#endif { m_lastManaUseTimer = 0; m_lastManaUseSpellId = 0; @@ -644,8 +650,17 @@ void Unit::DoKillUnit(Unit* pVictim) DealDamage(pVictim, pVictim->GetHealth(), nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false); } -uint32 Unit::DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDamage, DamageEffectType damagetype, SpellSchoolMask damageSchoolMask, SpellEntry const* spellProto, bool durabilityLoss, Spell* spell) +uint32 Unit::DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDamage, DamageEffectType damagetype, SpellSchoolMask damageSchoolMask, SpellEntry const* spellProto, bool durabilityLoss, Spell* spell, bool reflected) { + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - Fixed bug where self-inflicted damage, like Poisonous Blood, wouldn't + // break stealth. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 +#define SKIP_STEALTH false +#else +#define SKIP_STEALTH (pVictim == this) +#endif + // remove affects from attacker at any non-DoT damage (including 0 damage) if (damagetype != DOT) { @@ -669,7 +684,7 @@ uint32 Unit::DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDa ((Player*)this)->RewardRage(cleanDamage->damage*0.75, true); } - // Degats recus sous bouclier par exemple. + // Damage received under shield for example. if (cleanDamage->absorb) { // Before 1.11 the calculation whether to break fear used base spell damage. @@ -684,7 +699,7 @@ uint32 Unit::DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDa pVictim->RemoveFearEffectsByDamageTaken(cleanDamage->absorb, spellProto ? spellProto->Id : 0, damagetype); } - pVictim->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_DAMAGE_CANCELS, spellProto ? spellProto->Id : 0, true); + pVictim->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_DAMAGE_CANCELS, spellProto ? spellProto->Id : 0, true, SKIP_STEALTH); // interrupt spells like trying to mount even through absorb shields if (pVictim->IsPlayer() && damagetype != DOT) @@ -717,7 +732,14 @@ uint32 Unit::DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDa if (pVictim->IsPlayer() && ((Player*)pVictim)->duel && damage >= (health - 1)) { // prevent kill only if killed in duel and killed by opponent or opponent controlled creature - if (((Player*)pVictim)->duel->opponent == this || ((Player*)pVictim)->duel->opponent->GetObjectGuid() == GetOwnerGuid()) + if (((Player*)pVictim)->duel->opponent == this || + ((Player*)pVictim)->duel->opponent->GetObjectGuid() == GetOwnerGuid() + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - Fixed bug where you could kill someone in a duel with spell reflection. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 + || pVictim == this && reflected +#endif + ) damage = health - 1; duel_hasEnded = true; @@ -846,9 +868,9 @@ uint32 Unit::DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDa isProcSpell = spell->m_triggeredBySpellInfo->HasAuraWithSpellTriggerEffect(); if (isProcSpell) - pVictim->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_DAMAGE_CANCELS, spell->m_triggeredByParentSpellInfo->Id, true); + pVictim->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_DAMAGE_CANCELS, spell->m_triggeredByParentSpellInfo->Id, true, SKIP_STEALTH); else - pVictim->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_DAMAGE_CANCELS, spellProto ? spellProto->Id : 0, true); + pVictim->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_DAMAGE_CANCELS, spellProto ? spellProto->Id : 0, true, SKIP_STEALTH); if (damagetype != NODAMAGE && damage && pVictim->IsPlayer()) { @@ -916,6 +938,8 @@ uint32 Unit::DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDa } return damage; + +#undef SKIP_STEALTH } void Unit::Kill(Unit* pVictim, SpellEntry const* spellProto, bool durabilityLoss) @@ -1811,7 +1835,7 @@ void Unit::CalculateDamageAbsorbAndResist(SpellCaster* pCaster, SpellSchoolMask return; } - int32 RemainingDamage = int32(damage); + int32 remainingDamage = int32(damage); // Magic damage, check for resists bool canResist = (schoolMask & SPELL_SCHOOL_MASK_NORMAL) == 0; @@ -1828,172 +1852,188 @@ void Unit::CalculateDamageAbsorbAndResist(SpellCaster* pCaster, SpellSchoolMask { float const multiplier = RollMagicResistanceMultiplierOutcomeAgainst(resistanceChance, schoolMask, damagetype, spellProto); *resist = dither(int64(damage) * multiplier); - RemainingDamage -= *resist; + remainingDamage -= *resist; } else *resist = 0; - // Need remove expired auras after - bool existExpired = false; - - // absorb without mana cost - AuraList const& vSchoolAbsorb = GetAurasByType(SPELL_AURA_SCHOOL_ABSORB); - for (AuraList::const_iterator i = vSchoolAbsorb.begin(); i != vSchoolAbsorb.end() && RemainingDamage > 0; ++i) + auto HandleAbsorb = [&]() { - Modifier* mod = (*i)->GetModifier(); - if (!(mod->m_miscvalue & schoolMask)) - continue; + // Need remove expired auras after + bool existExpired = false; - MANGOS_DEBUG_ASSERT((mod->m_amount - floor(mod->m_amount)) == 0.f); + // absorb without mana cost + AuraList const& vSchoolAbsorb = GetAurasByType(SPELL_AURA_SCHOOL_ABSORB); + for (AuraList::const_iterator i = vSchoolAbsorb.begin(); i != vSchoolAbsorb.end() && remainingDamage > 0; ++i) + { + Modifier* mod = (*i)->GetModifier(); + if (!(mod->m_miscvalue & schoolMask)) + continue; - // Max Amount can be absorbed by this aura - int32 currentAbsorb = mod->m_amount; + MANGOS_DEBUG_ASSERT((mod->m_amount - floor(mod->m_amount)) == 0.f); - // Found empty aura (impossible but..) - if (currentAbsorb <= 0) - { - existExpired = true; - continue; - } + // Max Amount can be absorbed by this aura + int32 currentAbsorb = mod->m_amount; - // currentAbsorb - damage can be absorbed by shield - // If need absorb less damage - if (RemainingDamage < currentAbsorb) - currentAbsorb = RemainingDamage; + // Found empty aura (impossible but..) + if (currentAbsorb <= 0) + { + existExpired = true; + continue; + } - RemainingDamage -= currentAbsorb; + // currentAbsorb - damage can be absorbed by shield + // If need absorb less damage + if (remainingDamage < currentAbsorb) + currentAbsorb = remainingDamage; - // Reduce shield amount - mod->m_amount -= currentAbsorb; - if ((*i)->GetHolder()->DropAuraCharge()) - mod->m_amount = 0; - // Need remove it later - if (mod->m_amount <= 0) - existExpired = true; - } + remainingDamage -= currentAbsorb; - // Remove all expired absorb auras - if (existExpired) - { - for (AuraList::const_iterator i = vSchoolAbsorb.begin(); i != vSchoolAbsorb.end();) + // Reduce shield amount + mod->m_amount -= currentAbsorb; + if ((*i)->GetHolder()->DropAuraCharge()) + mod->m_amount = 0; + // Need remove it later + if (mod->m_amount <= 0) + existExpired = true; + } + + // Remove all expired absorb auras + if (existExpired) { - if ((*i)->GetModifier()->m_amount <= 0) + for (AuraList::const_iterator i = vSchoolAbsorb.begin(); i != vSchoolAbsorb.end();) { - RemoveAurasDueToSpell((*i)->GetId(), nullptr, AURA_REMOVE_BY_SHIELD_BREAK); - i = vSchoolAbsorb.begin(); + if ((*i)->GetModifier()->m_amount <= 0) + { + RemoveAurasDueToSpell((*i)->GetId(), nullptr, AURA_REMOVE_BY_SHIELD_BREAK); + i = vSchoolAbsorb.begin(); + } + else + ++i; } - else - ++i; } - } - // absorb by mana cost - AuraList const& vManaShield = GetAurasByType(SPELL_AURA_MANA_SHIELD); - for (AuraList::const_iterator i = vManaShield.begin(), next; i != vManaShield.end() && RemainingDamage > 0; i = next) - { - next = i; - ++next; + // absorb by mana cost + AuraList const& vManaShield = GetAurasByType(SPELL_AURA_MANA_SHIELD); + for (AuraList::const_iterator i = vManaShield.begin(), next; i != vManaShield.end() && remainingDamage > 0; i = next) + { + next = i; + ++next; - // check damage school mask - if (((*i)->GetModifier()->m_miscvalue & schoolMask) == 0) - continue; + // check damage school mask + if (((*i)->GetModifier()->m_miscvalue & schoolMask) == 0) + continue; - int32 currentAbsorb; - if (RemainingDamage >= (*i)->GetModifier()->m_amount) - currentAbsorb = (*i)->GetModifier()->m_amount; - else - currentAbsorb = RemainingDamage; + int32 currentAbsorb; + if (remainingDamage >= (*i)->GetModifier()->m_amount) + currentAbsorb = (*i)->GetModifier()->m_amount; + else + currentAbsorb = remainingDamage; - if (float manaMultiplier = (*i)->GetSpellProto()->EffectMultipleValue[(*i)->GetEffIndex()]) - { - if (Player* modOwner = GetSpellModOwner()) - modOwner->ApplySpellMod((*i)->GetId(), SPELLMOD_MULTIPLE_VALUE, manaMultiplier, spell); + if (float manaMultiplier = (*i)->GetSpellProto()->EffectMultipleValue[(*i)->GetEffIndex()]) + { + if (Player* modOwner = GetSpellModOwner()) + modOwner->ApplySpellMod((*i)->GetId(), SPELLMOD_MULTIPLE_VALUE, manaMultiplier, spell); - int32 maxAbsorb = dither(GetPower(POWER_MANA) / manaMultiplier); - if (currentAbsorb > maxAbsorb) - currentAbsorb = maxAbsorb; + int32 maxAbsorb = dither(GetPower(POWER_MANA) / manaMultiplier); + if (currentAbsorb > maxAbsorb) + currentAbsorb = maxAbsorb; - int32 manaReduction = dither(currentAbsorb * manaMultiplier); - ApplyPowerMod(POWER_MANA, manaReduction, false); - } + int32 manaReduction = dither(currentAbsorb * manaMultiplier); + ApplyPowerMod(POWER_MANA, manaReduction, false); + } - (*i)->GetModifier()->m_amount -= currentAbsorb; - if ((*i)->GetModifier()->m_amount <= 0) - { - RemoveAurasDueToSpell((*i)->GetId()); - next = vManaShield.begin(); - } + (*i)->GetModifier()->m_amount -= currentAbsorb; + if ((*i)->GetModifier()->m_amount <= 0) + { + RemoveAurasDueToSpell((*i)->GetId()); + next = vManaShield.begin(); + } - RemainingDamage -= currentAbsorb; - } + remainingDamage -= currentAbsorb; + } + }; - AuraList const& vSplitDamageFlat = GetAurasByType(SPELL_AURA_SPLIT_DAMAGE_FLAT); - for (AuraList::const_iterator i = vSplitDamageFlat.begin(), next; i != vSplitDamageFlat.end() && RemainingDamage >= 0; i = next) + auto HandleSplit = [&]() { - next = i; - ++next; + AuraList const& vSplitDamageFlat = GetAurasByType(SPELL_AURA_SPLIT_DAMAGE_FLAT); + for (AuraList::const_iterator i = vSplitDamageFlat.begin(), next; i != vSplitDamageFlat.end() && remainingDamage >= 0; i = next) + { + next = i; + ++next; - // check damage school mask - if (((*i)->GetModifier()->m_miscvalue & schoolMask) == 0) - continue; + // check damage school mask + if (((*i)->GetModifier()->m_miscvalue & schoolMask) == 0) + continue; - // Damage can be splitted only if aura has an alive caster - Unit* reflectTo = (*i)->GetCaster(); - if (!reflectTo || reflectTo == this || !reflectTo->IsInWorld() || !reflectTo->IsAlive()) - continue; + // Damage can be splitted only if aura has an alive caster + Unit* reflectTo = (*i)->GetCaster(); + if (!reflectTo || reflectTo == this || !reflectTo->IsInWorld() || !reflectTo->IsAlive()) + continue; - int32 currentAbsorb; - if (RemainingDamage >= (*i)->GetModifier()->m_amount) - currentAbsorb = (*i)->GetModifier()->m_amount; - else - currentAbsorb = RemainingDamage; + int32 currentAbsorb; + if (remainingDamage >= (*i)->GetModifier()->m_amount) + currentAbsorb = (*i)->GetModifier()->m_amount; + else + currentAbsorb = remainingDamage; - RemainingDamage -= currentAbsorb; + remainingDamage -= currentAbsorb; - uint32 splitted = currentAbsorb; - uint32 splitted_absorb = 0; - // Nostalrius : la reflection (bene de sacrifice par exemple) ne fait pas forcement des degats (si pala sous bouclier divin) - uint32 reflectAbsorb = 0; - int32 reflectResist = 0; - // On evite une boucle infinie - if (!reflectTo->HasAuraType(SPELL_AURA_SPLIT_DAMAGE_FLAT)) - reflectTo->CalculateDamageAbsorbAndResist(pCaster, schoolMask, DOT, splitted, &reflectAbsorb, &reflectResist, spellProto); - splitted -= (reflectAbsorb + reflectResist); - pCaster->DealDamageMods(reflectTo, splitted, &splitted_absorb); - pCaster->SendSpellNonMeleeDamageLog(reflectTo, (*i)->GetSpellProto()->Id, splitted, schoolMask, splitted_absorb, 0, (damagetype == DOT), 0, false, true); - CleanDamage cleanDamage = CleanDamage(splitted, BASE_ATTACK, MELEE_HIT_NORMAL, reflectAbsorb, reflectResist); - pCaster->DealDamage(reflectTo, splitted, &cleanDamage, DOT, schoolMask, (*i)->GetSpellProto(), false); - } + uint32 splitted = currentAbsorb; + uint32 splitted_absorb = 0; + // Nostalrius : la reflection (bene de sacrifice par exemple) ne fait pas forcement des degats (si pala sous bouclier divin) + uint32 reflectAbsorb = 0; + int32 reflectResist = 0; + // On evite une boucle infinie + if (!reflectTo->HasAuraType(SPELL_AURA_SPLIT_DAMAGE_FLAT)) + reflectTo->CalculateDamageAbsorbAndResist(pCaster, schoolMask, DOT, splitted, &reflectAbsorb, &reflectResist, spellProto); + splitted -= (reflectAbsorb + reflectResist); + pCaster->DealDamageMods(reflectTo, splitted, &splitted_absorb); + pCaster->SendSpellNonMeleeDamageLog(reflectTo, (*i)->GetSpellProto()->Id, splitted, schoolMask, splitted_absorb, 0, (damagetype == DOT), 0, false, true); + CleanDamage cleanDamage = CleanDamage(splitted, BASE_ATTACK, MELEE_HIT_NORMAL, reflectAbsorb, reflectResist); + pCaster->DealDamage(reflectTo, splitted, &cleanDamage, DOT, schoolMask, (*i)->GetSpellProto(), false); + } - AuraList const& vSplitDamagePct = GetAurasByType(SPELL_AURA_SPLIT_DAMAGE_PCT); - for (AuraList::const_iterator i = vSplitDamagePct.begin(), next; i != vSplitDamagePct.end() && RemainingDamage >= 0; i = next) - { - next = i; - ++next; + AuraList const& vSplitDamagePct = GetAurasByType(SPELL_AURA_SPLIT_DAMAGE_PCT); + for (AuraList::const_iterator i = vSplitDamagePct.begin(), next; i != vSplitDamagePct.end() && remainingDamage >= 0; i = next) + { + next = i; + ++next; - // check damage school mask - if (((*i)->GetModifier()->m_miscvalue & schoolMask) == 0) - continue; + // check damage school mask + if (((*i)->GetModifier()->m_miscvalue & schoolMask) == 0) + continue; - // Damage can be splitted only if aura has an alive caster - Unit* caster = (*i)->GetCaster(); - if (!caster || caster == this || !caster->IsInWorld() || !caster->IsAlive()) - continue; + // Damage can be splitted only if aura has an alive caster + Unit* caster = (*i)->GetCaster(); + if (!caster || caster == this || !caster->IsInWorld() || !caster->IsAlive()) + continue; - uint32 splitted = uint32(RemainingDamage * (*i)->GetModifier()->m_amount / 100.0f); + uint32 splitted = uint32(remainingDamage * (*i)->GetModifier()->m_amount / 100.0f); - RemainingDamage -= int32(splitted); + remainingDamage -= int32(splitted); - uint32 split_absorb = 0; - pCaster->DealDamageMods(caster, splitted, &split_absorb); + uint32 split_absorb = 0; + pCaster->DealDamageMods(caster, splitted, &split_absorb); - pCaster->SendSpellNonMeleeDamageLog(caster, (*i)->GetSpellProto()->Id, splitted, schoolMask, split_absorb, 0, (damagetype == DOT), 0, false, true); + pCaster->SendSpellNonMeleeDamageLog(caster, (*i)->GetSpellProto()->Id, splitted, schoolMask, split_absorb, 0, (damagetype == DOT), 0, false, true); - CleanDamage cleanDamage = CleanDamage(splitted, BASE_ATTACK, MELEE_HIT_NORMAL, 0, 0); - pCaster->DealDamage(caster, splitted, &cleanDamage, DOT, schoolMask, (*i)->GetSpellProto(), false); - } + CleanDamage cleanDamage = CleanDamage(splitted, BASE_ATTACK, MELEE_HIT_NORMAL, 0, 0); + pCaster->DealDamage(caster, splitted, &cleanDamage, DOT, schoolMask, (*i)->GetSpellProto(), false); + } + }; - *absorb = damage - RemainingDamage - *resist; + // World of Warcraft Client Patch 1.7.0 (2005 - 09 - 13) + // - Damage absorption is now applied before damage splitting effects. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 + HandleAbsorb(); + HandleSplit(); +#else + HandleSplit(); + HandleAbsorb(); +#endif + + *absorb = damage - remainingDamage - *resist; } void Unit::CalculateAbsorbResistBlock(SpellCaster* pCaster, SpellNonMeleeDamage* damageInfo, SpellEntry const* spellProto, WeaponAttackType attType, Spell* spell) @@ -5952,6 +5992,13 @@ void Unit::SetInCombatWithAssisted(Unit* pAssisted) if (pAssistedPlayer->IsPvPContested()) pThisPlayer->UpdatePvPContested(true); } + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - Casting spells on your pets and summons will no longer cause guards + // in neutral towns to attack you. +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_6_1 + else if (pAssisted->IsCreature() && pAssisted->IsPvP()) + pThisPlayer->UpdatePvPContested(true); +#endif } } } diff --git a/src/game/Objects/Unit.h b/src/game/Objects/Unit.h index 42a171b7c5c..5050e5d9e0b 100644 --- a/src/game/Objects/Unit.h +++ b/src/game/Objects/Unit.h @@ -1119,7 +1119,7 @@ class Unit : public SpellCaster // Kills the victim. void DoKillUnit(Unit* pVictim = nullptr); - uint32 DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDamage, DamageEffectType damagetype, SpellSchoolMask damageSchoolMask, SpellEntry const* spellProto, bool durabilityLoss, Spell* spell = nullptr) final; + uint32 DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDamage, DamageEffectType damagetype, SpellSchoolMask damageSchoolMask, SpellEntry const* spellProto, bool durabilityLoss, Spell* spell = nullptr, bool reflected = false) final; // Called after this unit kills someone. void Kill(Unit* pVictim, SpellEntry const* spellProto, bool durabilityLoss = true); diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index a193775809e..f7d421cd538 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -1406,6 +1406,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target) // Fill base damage struct (unitTarget - is real spell target) SpellNonMeleeDamage damageInfo(pCaster, unitTarget, m_spellInfo->Id, GetFirstSchoolInMask(m_spellSchoolMask)); damageInfo.spell = this; + damageInfo.reflected = isReflected; // World of Warcraft Client Patch 1.11.0 (2006-06-20) // - Fear: The calculations to determine if Fear effects should break due @@ -1796,6 +1797,7 @@ void Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask) m_spellAuraHolder = CreateSpellAuraHolder(m_spellInfo, unit, pRealUnitCaster ? pRealUnitCaster : unit, m_caster, m_CastItem); m_spellAuraHolder->SetTriggered(IsTriggered()); + m_spellAuraHolder->SetReflected(isReflected); m_spellAuraHolder->setDiminishGroup(m_diminishGroup); m_spellAuraHolder->setDiminishLevel(m_diminishLevel); } diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index 04843f0f7e0..b311c3d91b8 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -307,9 +307,14 @@ void Aura::Refresh(Unit* caster, Unit* target, SpellAuraHolder* pRefreshWithHold m_applyTime = time(nullptr); CalculatePeriodic(modOwner, true); - // Re-calculation du montant de degats + // re-calculation of damage amount if (IsApplied() || !IsExclusive()) { + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - When an attribute increasing effect (e.g. Arcane Intellect) is + // refreshed on a target, it will no longer reset the target's health or + // mana and then increase the total. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 bool lockStats = false; switch (GetSpellProto()->EffectApplyAuraName[m_effIndex]) { @@ -326,18 +331,23 @@ void Aura::Refresh(Unit* caster, Unit* target, SpellAuraHolder* pRefreshWithHold } if (lockStats) target->SetCanModifyStats(false); - //unapply with the old modifiers and reapply with the new. +#endif + + // unapply with the old modifiers and reapply with the new. ApplyModifier(false, true, false); - // Refresh de quelques variables du modifier + // refresh of some modifier variables m_modifier.m_auraname = pHolderAura->GetModifier()->m_auraname; m_modifier.m_amount = pHolderAura->GetModifier()->m_amount; m_modifier.m_miscvalue = pHolderAura->GetModifier()->m_miscvalue; ApplyModifier(true, true, false); + +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 if (lockStats) { target->SetCanModifyStats(true); target->UpdateAllStats(); } +#endif } } @@ -1520,7 +1530,7 @@ void Aura::TriggerSpell() // Talent 'Entrapment' for example (chance to root) caster->ProcDamageAndSpell(ProcSystemArguments(target, PROC_FLAG_ON_TRAP_ACTIVATION, PROC_FLAG_NONE, PROC_EX_NORMAL_HIT, 1, BASE_ATTACK, GetSpellProto())); - return; + break; } // Thaddius negative charge case 28084: @@ -6019,7 +6029,7 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data cleanDamage.absorb = absorb; cleanDamage.resist = resist; - pCaster->DealDamage(target, pdamage, &cleanDamage, DOT, spellProto->GetSpellSchoolMask(), spellProto, true); + pCaster->DealDamage(target, pdamage, &cleanDamage, DOT, spellProto->GetSpellSchoolMask(), spellProto, true, nullptr, GetHolder()->IsReflected()); // Curse of Doom: If the target dies from this damage, there is a chance that a Doomguard will be summoned. if (spellProto->Id == 603 && !target->IsAlive() && !urand(0, 9)) pCaster->CastSpell(pCaster, 18662, true); @@ -6090,7 +6100,7 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data cleanDamage.resist = resist; pCaster->ProcDamageAndSpell(ProcSystemArguments(target, procAttacker, procVictim, PROC_EX_NORMAL_HIT, pdamage, BASE_ATTACK, spellProto)); - int32 new_damage = pCaster->DealDamage(target, pdamage, &cleanDamage, DOT, spellProto->GetSpellSchoolMask(), spellProto, false); + int32 new_damage = pCaster->DealDamage(target, pdamage, &cleanDamage, DOT, spellProto->GetSpellSchoolMask(), spellProto, false, nullptr, GetHolder()->IsReflected()); if (!target->IsAlive() && pCaster->IsNonMeleeSpellCasted(false)) for (uint32 i = CURRENT_FIRST_NON_MELEE_SPELL; i < CURRENT_MAX_SPELL; ++i) @@ -6409,6 +6419,7 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data // maybe has to be sent different to client, but not by SMSG_PERIODICAURALOG SpellNonMeleeDamage damageInfo(pCaster, target, spellProto->Id, SpellSchools(spellProto->School)); damageInfo.periodicLog = true; + damageInfo.reflected = GetHolder()->IsReflected(); bool isCrit = pCaster->IsSpellCrit(damageInfo.target, spellProto, GetSchoolMask(damageInfo.school), BASE_ATTACK); pCaster->CalculateSpellDamage(&damageInfo, gain, spellProto, GetEffIndex(), BASE_ATTACK, nullptr, isCrit); @@ -6724,7 +6735,7 @@ SpellAuraHolder::SpellAuraHolder(SpellEntry const* spellproto, Unit* target, Uni m_stackAmount(1), m_removeMode(AURA_REMOVE_BY_DEFAULT), m_AuraDRGroup(DIMINISHING_NONE), m_timeCla(1000), m_permanent(false), m_isRemovedOnShapeLost(true), m_deleted(false), m_in_use(0), m_debuffLimitAffected(false), m_debuffLimitScore(0), _heartBeatRandValue(0), _pveHeartBeatData(nullptr), - m_spellTriggered(false), m_AuraDRLevel(DIMINISHING_LEVEL_1) + m_spellTriggered(false), m_isReflected(false), m_AuraDRLevel(DIMINISHING_LEVEL_1) { MANGOS_ASSERT(target); MANGOS_ASSERT(spellproto && spellproto == sSpellMgr.GetSpellEntry(spellproto->Id) && "`info` must be pointer to a sSpellMgr element"); diff --git a/src/game/Spells/SpellAuras.h b/src/game/Spells/SpellAuras.h index ea7b366e0bb..a90b05459a3 100644 --- a/src/game/Spells/SpellAuras.h +++ b/src/game/Spells/SpellAuras.h @@ -234,6 +234,8 @@ class SpellAuraHolder void SetTriggered(bool t) { m_spellTriggered = t; } bool IsTriggered() const { return m_spellTriggered; } + void SetReflected(bool reflected) { m_isReflected = reflected; } + bool IsReflected() const { return m_isReflected; } ~SpellAuraHolder(); private: @@ -268,6 +270,7 @@ class SpellAuraHolder bool m_isChanneled:1; bool m_makesTargetSecondaryFocus; bool m_spellTriggered; // applied by a triggered spell (used in debuff priority computation) + bool m_isReflected; // applied by a reflected spell (used to prevent death in duel) uint32 m_in_use; // > 0 while in SpellAuraHolder::ApplyModifiers call/SpellAuraHolder::Update/etc }; diff --git a/src/game/Spells/SpellEffects.cpp b/src/game/Spells/SpellEffects.cpp index 5fd8b52ae24..9a309fdaf09 100644 --- a/src/game/Spells/SpellEffects.cpp +++ b/src/game/Spells/SpellEffects.cpp @@ -1162,15 +1162,26 @@ void Spell::EffectDummy(SpellEffectIndex effIdx) if (unitTarget->GetTypeId() != TYPEID_PLAYER) return; - // Need remove self if Lightning Shield not active - Unit::SpellAuraHolderMap const& auras = unitTarget->GetSpellAuraHolderMap(); - for (const auto& aura : auras) + if (!m_triggeredBySpellInfo) + return; + + switch (m_triggeredBySpellInfo->Id) { - SpellEntry const* spell = aura.second->GetSpellProto(); - if (spell->IsFitToFamily()) - return; + case 28820: // Shaman T3 8-Piece Bonus + { + // Need remove self if Lightning Shield not active + Unit::SpellAuraHolderMap const& auras = unitTarget->GetSpellAuraHolderMap(); + for (const auto& aura : auras) + { + SpellEntry const* spell = aura.second->GetSpellProto(); + if (spell->IsFitToFamily()) + return; + } + unitTarget->RemoveAurasDueToSpell(28820); + break; + } } - unitTarget->RemoveAurasDueToSpell(28820); + return; } case 19411: // Lava Bomb @@ -6440,7 +6451,12 @@ void Spell::EffectDispelMechanic(SpellEffectIndex effIdx) next = iter; ++next; SpellEntry const* spell = iter->second->GetSpellProto(); - if (iter->second->HasMechanic(mechanic)) + + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - Escape Artist works with Frost Nova and Frost Trap again. + if (iter->second->HasMechanic(mechanic) && + // attribute removed from Frost Nova in 1.7, which likely means this effect ignores it + !spell->HasAttribute(SPELL_ATTR_NO_AURA_CANCEL)) { unitTarget->RemoveAurasDueToSpell(spell->Id); if (Auras.empty()) From ad477d4d4cd52e4bb58ce05e1025e3fc67e78d1a Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 14 Aug 2023 19:09:18 +0300 Subject: [PATCH 147/426] Use macro instead of variable. --- src/game/Objects/Player.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index b69b5e7950f..2d25e10914d 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -7439,17 +7439,19 @@ void Player::_ApplyItemBonuses(ItemPrototype const* proto, uint8 slot, bool appl // - When you swap weapons in combat, you start your swing again, instead // of continuing your last swing. #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 - bool resetAttackTime = IsInCombat(); +#define RESET_ATTACK_TIME IsInCombat() #else - bool resetAttackTime = false; +#define RESET_ATTACK_TIME false #endif if (slot == EQUIPMENT_SLOT_RANGED) - SetAttackTime(RANGED_ATTACK, apply ? proto->Delay : BASE_ATTACK_TIME, resetAttackTime); + SetAttackTime(RANGED_ATTACK, apply ? proto->Delay : BASE_ATTACK_TIME, RESET_ATTACK_TIME); else if (slot == EQUIPMENT_SLOT_MAINHAND) - SetAttackTime(BASE_ATTACK, apply ? proto->Delay : BASE_ATTACK_TIME, resetAttackTime); + SetAttackTime(BASE_ATTACK, apply ? proto->Delay : BASE_ATTACK_TIME, RESET_ATTACK_TIME); else if (slot == EQUIPMENT_SLOT_OFFHAND) - SetAttackTime(OFF_ATTACK, apply ? proto->Delay : BASE_ATTACK_TIME, resetAttackTime); + SetAttackTime(OFF_ATTACK, apply ? proto->Delay : BASE_ATTACK_TIME, RESET_ATTACK_TIME); + +#undef RESET_ATTACK_TIME } if (CanModifyStats() && proto->Delay) From 0c410ea75767edf4f6e46dcfe7fd1955fae59c47 Mon Sep 17 00:00:00 2001 From: Gamemechanic Date: Mon, 14 Aug 2023 20:32:48 +0200 Subject: [PATCH 148/426] Enable warden door checks for 1.12.3 (#2161) --- sql/migrations/20230813191030_world.sql | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 sql/migrations/20230813191030_world.sql diff --git a/sql/migrations/20230813191030_world.sql b/sql/migrations/20230813191030_world.sql new file mode 100644 index 00000000000..5bd119ebe69 --- /dev/null +++ b/sql/migrations/20230813191030_world.sql @@ -0,0 +1,18 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230813191030'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230813191030'); +-- Add your query below. + +UPDATE `warden_scans` SET `build_max` = 6141 WHERE `id` IN (74, 75, 76, 77, 78); + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From f4b34ea900002c57bf6a04537f25ba4ac6f48e16 Mon Sep 17 00:00:00 2001 From: Gamemechanic Date: Mon, 14 Aug 2023 20:33:52 +0200 Subject: [PATCH 149/426] Add warden file hash check for ubrs door (#2160) --- sql/migrations/20230813173843_world.sql | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 sql/migrations/20230813173843_world.sql diff --git a/sql/migrations/20230813173843_world.sql b/sql/migrations/20230813173843_world.sql new file mode 100644 index 00000000000..5cf2660cf08 --- /dev/null +++ b/sql/migrations/20230813173843_world.sql @@ -0,0 +1,18 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230813173843'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230813173843'); +-- Add your query below. + +INSERT INTO `warden_scans` (`id`, `type`, `str`, `data`, `address`, `length`, `result`, `flags`, `penalty`, `build_min`, `build_max`, `comment`) VALUES (97, 4, 'World\\KhazModan\\Blackrock\\PassiveDoodads\\Doors\\BlackRockDoorSingle.m2', NULL, 0, 0, '2A43947CA91F92B6698A5286A7B883EFF967D6B4', 0, -1, 4297, 6141, 'UBRS door'); + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 2d7acb573cb9e9db68e47697c6d32e0cb39cf283 Mon Sep 17 00:00:00 2001 From: Daribon Date: Mon, 14 Aug 2023 20:46:00 +0200 Subject: [PATCH 150/426] Correct threat for many spells. (#2158) --- sql/migrations/20230810230833_world.sql | 613 ++++++++++++++++++++++++ src/game/Spells/SpellAuras.cpp | 4 - 2 files changed, 613 insertions(+), 4 deletions(-) create mode 100644 sql/migrations/20230810230833_world.sql diff --git a/sql/migrations/20230810230833_world.sql b/sql/migrations/20230810230833_world.sql new file mode 100644 index 00000000000..c3e0450d801 --- /dev/null +++ b/sql/migrations/20230810230833_world.sql @@ -0,0 +1,613 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230810230833'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230810230833'); +-- Add your query below. + + +ALTER TABLE `spell_threat` + CHANGE COLUMN `Threat` `Threat` FLOAT NOT NULL DEFAULT 0 AFTER `entry`; + +-- Mind Blast R1 +UPDATE `spell_threat` SET `Threat` = 40, `multiplier` = 0 WHERE `entry` = 8092; +-- Mind Blast R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8102, 77, 1, 0); +-- Mind Blast R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8103, 121, 1, 0); +-- Mind Blast R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8104, 180, 1, 0); +-- Mind Blast R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8105, 236, 1, 0); +-- Mind Blast R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8106, 303, 1, 0); +-- Mind Blast R7 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10945, 380, 1, 0); +-- Mind Blast R8 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10946, 460, 1, 0); +-- Mind Blast R9 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10947, 540, 1, 0); + +-- Schackle Undead R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (9484, 40, 0, 0); +-- Schackle Undead R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (9485, 80, 0, 0); +-- Schackle Undead R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10955, 120, 0, 0); + +-- Dispell Magic R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (527, 18, 0, 0); +-- Dispell Magic R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (988, 36, 0, 0); + +-- Abolish Disease +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (552, 32, 0, 0); + +-- Cure Disease Priest +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (528, 14, 0, 0); + +-- Power Word: Shield R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (17, 11, 0, 0); +-- Power Word: Shield R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (592, 20.5, 0, 0); +-- Power Word: Shield R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (600, 35, 0, 0); +-- Power Word: Shield R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (3747, 53.5, 0, 0); +-- Power Word: Shield R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (6065, 76, 0, 0); +-- Power Word: Shield R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (6066, 99, 0, 0); +-- Power Word: Shield R7 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10898, 99, 0, 0); +-- Power Word: Shield R8 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10899, 99, 0, 0); +-- Power Word: Shield R9 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10900, 99, 0, 0); +-- Power Word: Shield R10 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10901, 99, 0, 0); + +-- Inner Fire R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (588, 12, 0, 0); +-- Inner Fire R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (7128, 20, 0, 0); +-- Inner Fire R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (602, 30, 0, 0); +-- Inner Fire R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1006, 40, 0, 0); +-- Inner Fire R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10951, 50, 0, 0); +-- Inner Fire R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10952, 60, 0, 0); + +-- Psychic Scream R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8122, 28, 0, 0); +-- Psychic Scream R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8124, 56, 0, 0); +-- Psychic Scream R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10888, 84, 0, 0); +-- Psychic Scream R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10890, 112, 0, 0); + +-- Shadow Protection r1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (976, 30, 0, 0); +-- Shadow Protection R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10957, 42, 0, 0); +-- Shadow Protection R3´ +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10958, 56, 0, 0); + +-- Prayer of Shadow Protection +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`) VALUES (27683, 56, 0, 0, 5302); + +-- Power Word: Fortitude R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1243, 1, 0, 0); +-- Power Word: Fortitude R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1244, 12, 0, 0); +-- Power Word: Fortitude R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1245, 24, 0, 0); +-- Power Word: Fortitude R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (2791, 36, 0, 0); +-- Power Word: Fortitude R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10937, 48, 0, 0); +-- Power Word: Fortitude R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10938, 60, 0, 0); + +-- Prayer of Fortitude R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (21562, 48, 0, 0); +-- Prayer of Fortitude R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (21564, 60, 0, 0); + +-- Hex of Weakness R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (9035, 20, 0, 0); +-- Hex of Weakness R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19281, 40, 0, 0); +-- Hex of Weakness R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19282, 60, 0, 0); +-- Hex of Weakness R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19283, 80, 0, 0); +-- Hex of Weakness R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19284, 100, 0, 0); +-- Hex of Weakness R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19285, 120, 0, 0); + +-- Blind +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (2094, 68, 0, 0); + +-- Sprint R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (2983, 10, 0, 0); +-- Sprint r2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8696, 34, 0, 0); +-- Sprint R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (11305, 58, 0, 0); + +-- Polymorph R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (118, 16, 0, 0); +-- Polymorph R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (12824, 40, 0, 0); +-- Polymorph R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (12825, 80, 0, 0); +-- Polymorph R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (12826, 120, 0, 0); +-- Polymorph Pig +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`) VALUES (28272, 120, 0, 0, 5464); +-- Polymorph Turtle +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`) VALUES (28271, 120, 0, 0, 5464); + +-- Frost Armor R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (168, 1, 0, 0); +-- Frost Armor R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (7300, 10, 0, 0); +-- Frost Armor R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (7301, 20, 0, 0); + +-- Arcane Intellect R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1459, 1, 0, 0); +-- Arcane Intellect R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1460, 14, 0, 0); +-- Arcane Intellect R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1461, 28, 0, 0); +-- Arcane Intellect R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10156, 42, 0, 0); +-- Arcane Intellect R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10157, 56, 0, 0); + +-- Arcane Brilliance R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`) VALUES (23028, 56, 0, 0, 4375); + +-- Amplify Magic R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1008, 18, 0, 0); +-- Amplify Magic R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8455, 30, 0, 0); +-- Amplify Magic R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10169, 42, 0, 0); +-- Amplify Magic R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10170, 54, 0, 0); + +-- Mana Shield R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1463, 20, 0, 0); +-- Mana Shield R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8494, 28, 0, 0); +-- Mana Shield R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8495, 36, 0, 0); +-- Mana Shield R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10191, 44, 0, 0); +-- Mana Shield R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10192, 52, 0, 0); +-- Mana Shield R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10193, 60, 0, 0); + +-- Evocation +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (12051, 20, 0, 0); + +-- Correct Counterspell +UPDATE `spell_threat` SET `Threat` = 300, `multiplier` = 0 WHERE `entry` = 2139; + +-- Dampen Magic R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (604, 12, 0, 0); +-- Dampen Magic R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8450, 24, 0, 0); +-- Dampen Magic R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8451, 36, 0, 0); +-- Dampen Magic R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10173, 48, 0, 0); +-- Dampen Magic R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10174, 60, 0, 0); + +-- Mage Armor R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`) VALUES (6117, 34, 0, 0, 4297); +-- Mage Armor R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`) VALUES (22782, 46, 0, 0, 4297); +-- Mage Armor R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`) VALUES (22783, 58, 0, 0, 4297); + +-- Ice Barrier has same threat for all ranks +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (11426, 53.5, 0, 0); + +-- Blink +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1953, 20, 0, 0); + +-- Clearcasting Mage +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (12536, 10, 0, 0); + +-- Clearcasting Shaman +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (16246, 10, 0, 0); + +-- Clearcasting Druid +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (16870, 10, 0, 0); + +-- Ice Armor R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (7302, 30, 0, 0); +-- Ice Armor R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (7320, 40, 0, 0); +-- Ice Armor R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10219, 50, 0, 0); +-- Ice Armor R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10220, 60, 0, 0); + +-- Frost Ward R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (6143, 22, 0, 0); +-- Frost Ward R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8461, 32, 0, 0); +-- Frost Ward R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8462, 42, 0, 0); +-- Frost Ward R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10177, 52, 0, 0); +-- Frost Ward R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`) VALUES (28609, 60, 0, 0, 5464); + +-- Frost Ward R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (543, 20, 0, 0); +-- Frost Ward R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8457, 30, 0, 0); +-- Frost Ward R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8458, 40, 0, 0); +-- Frost Ward R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10223, 50, 0, 0); +-- Frost Ward R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10225, 60, 0, 0); + +-- Remove Lesser Curse +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (475, 18, 0, 0); + +-- Frostbite +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (12494, 20, 0, 0); + +-- Frost Nova R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (122, 20, 1, 0); +-- Frost Nova R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (865, 35, 1, 0); +-- Frost Nova R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (6131, 50, 1, 0); +-- Frost Nova R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10230, 50, 1, 0); + +-- Scare Beast R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1513, 28, 0, 0); +-- Scare Beast R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (14326, 60, 0, 0); +-- Scare Beast R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (14327, 92, 0, 0); + +-- Concussive Shot +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (5116, 16, 0, 0); + +-- Delete Distracting Shot +-- It only added more threat than intended +DELETE FROM `spell_threat` WHERE `entry`=20736; +DELETE FROM `spell_threat` WHERE `entry`=14274; +DELETE FROM `spell_threat` WHERE `entry`=15629; +DELETE FROM `spell_threat` WHERE `entry`=15630; +DELETE FROM `spell_threat` WHERE `entry`=15631; +DELETE FROM `spell_threat` WHERE `entry`=15632; + +-- Scorpid Sting R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (3043, 44, 0, 0); +-- Scorpid Sting R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (14275, 64, 0, 0); +-- Scorpid Sting R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (14276, 84, 0, 0); +-- Scorpid Sting R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (14277, 104, 0, 0); + +-- Seal of Crusader R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (21082, 6, 0, 0); +-- Seal of Crusader R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20162, 12, 0, 0); +-- Seal of Crusader R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20305, 22, 0, 0); +-- Seal of Crusader R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20306, 32, 0, 0); +-- Seal of Crusader R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20307, 42, 0, 0); +-- Seal of Crusader R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20308, 52, 0, 0); + +-- Correct Blessing of Freedom +UPDATE `spell_threat` SET `multiplier` = 0 WHERE `entry` = 1044; + +-- Hammer of Justice R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (853, 16, 0, 0); +-- Hammer of Justice R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (5588, 48, 0, 0); +-- Hammer of Justice R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (5589, 80, 0, 0); +-- Hammer of Justice R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10308, 108, 0, 0); + +-- Seal of Light R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20165, 30, 0, 0); +-- Seal of Light R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20347, 40, 0, 0); +-- Seal of Light R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20348, 50, 0, 0); +-- Seal of Light R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20349, 60, 0, 0); + +-- Seal of Wisdom R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20166, 38, 0, 0); +-- Seal of Wisdom R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20356, 48, 0, 0); +-- Seal of Wisdom R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20357, 58, 0, 0); + +-- Seal of Righteousness R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (21084, 1, 0, 0); +-- Seal of Righteousness R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20287, 10, 0, 0); +-- Seal of Righteousness R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20288, 18, 0, 0); +-- Seal of Righteousness R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20289, 26, 0, 0); +-- Seal of Righteousness R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20290, 34, 0, 0); +-- Seal of Righteousness R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20291, 42, 0, 0); +-- Seal of Righteousness R7 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20292, 50, 0, 0); +-- Seal of Righteousness R8 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20293, 58, 0, 0); + +-- Seal of Justice +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20164, 20, 0, 0); + +-- Turn Undead R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (2878, 48, 0, 0); +-- Turn Undead R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (5627, 76, 0, 0); +-- Turn Undead R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10326, 104, 0, 0); + +-- Correct Blessing of Protection R1 +UPDATE `spell_threat` SET `multiplier` = 0 WHERE `entry` = 1022; +-- Correct Blessing of Protection R2 +UPDATE `spell_threat` SET `multiplier` = 0 WHERE `entry` = 5599; +-- Correct Blessing of Protection R3 +UPDATE `spell_threat` SET `multiplier` = 0 WHERE `entry` = 10278; + +-- Correct Holy Shield, same threat for all ranks +UPDATE `spell_threat` SET `Threat` = 0, `multiplier` = 1.2 WHERE `entry` = 20925; +DELETE FROM `spell_threat` WHERE `entry`=20927; +DELETE FROM `spell_threat` WHERE `entry`=20928; + +-- Correct Lay on Hands R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (2800, 125, 2, 0); +-- Correct Lay on Hands R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10310, 275, 2, 0); + +-- Cleanse +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (4987, 42, 0, 0); + +-- Purify +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1152, 8, 0, 0); + +-- Seal of Command R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20375, 20, 0, 0); +-- Seal of Command R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20915, 30, 0, 0); +-- Seal of Command R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20918, 40, 0, 0); +-- Seal of Command R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20919, 50, 0, 0); +-- Seal of Command R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20920, 60, 0, 0); + +-- Repentance +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20066, 40, 0, 0); + +-- Ghost Wolf +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (2645, 20, 0, 0); + +-- Far Sight +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (6196, 26, 0, 0); + +-- Cure Disease Shaman +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (2870, 22, 0, 0); + +-- Cure Poison Shaman +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (526, 16, 0, 0); + +-- Fear R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (5782, 16, 0, 0); +-- Fear R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (6213, 64, 0, 0); +-- Fear R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (6215, 112, 0, 0); + +-- Howl of Terror R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (5484, 80, 0, 0); +-- Howl of Terror R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (17928, 108, 0, 0); + +-- Curse of Shadow R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (17862, 88, 0, 0); +-- Curse of Shadow R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (17937, 112, 0, 0); + +-- Curse of Tongues R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1714, 52, 0, 0); +-- Curse of Tongues R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (11719, 100, 0, 0); + +-- Curse of Elements R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1490, 64, 0, 0); +-- Curse of Elements R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (11721, 92, 0, 0); +-- Curse of Elements R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (11722, 120, 0, 0); + +-- Curse of Weakness R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (702, 8, 0, 0); +-- Curse of Weakness R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1108, 24, 0, 0); +-- Curse of Weakness R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (6205, 44, 0, 0); +-- Curse of Weakness R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (7646, 64, 0, 0); +-- Curse of Weakness R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (11707, 84, 0, 0); +-- Curse of Weakness R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (11708, 104, 0, 0); + +-- Curse of Doom +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (603, 120, 1, 0); + +-- Curse of Recklessness R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (704, 28, 0, 0); +-- Curse of Recklessness R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (7658, 56, 0, 0); +-- Curse of Recklessness R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (7659, 84, 0, 0); +-- Curse of Recklessness R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (11717, 112, 0, 0); + +-- Siphon Life R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (18265, 60, 1, 0); +-- Siphon Life R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (18879, 76, 1, 0); +-- Siphon Life R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (18880, 96, 1, 0); +-- Siphon Life R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (18881, 116, 1, 0); + +-- Demon Skin R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (687, 1, 0, 0); +-- Demon Skin R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (696, 10, 0, 0); + +-- Demon Armor R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (706, 20, 0, 0); +-- Demon Armor R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1086, 30, 0, 0); +-- Demon Armor R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (11733, 40, 0, 0); +-- Demon Armor R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (11734, 50, 0, 0); +-- Demon Armor R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (11735, 60, 0, 0); + +-- Detect Greater Invisibility +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (11743, 50, 0, 0); + +-- Detect Detect Invisibility +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (2970, 38, 0, 0); + +-- Detect Greater Invisibility +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (132, 26, 0, 0); + +-- Shadow Ward R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (6229, 32, 0, 0); +-- Shadow Ward R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (11739, 42, 0, 0); +-- Shadow Ward R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (11740, 52, 0, 0); +-- Shadow Ward R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`) VALUES (28610, 60, 0, 0, 5464); + +-- Eye of Kilrogg +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (126, 22, 0, 0); + +-- Banish R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (710, 56, 0, 0); +-- Banish R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (18647, 96, 0, 0); + +-- Barkskin +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`) VALUES (22812, 44, 0, 0, 4297); + +-- Correct Faerie Fire R1 +UPDATE `spell_threat` SET `Threat` = 36, `multiplier` = 0 WHERE `entry` = 770; +-- Faerie Fire R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (778, 60, 0, 0); +-- Faerie Fire R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (9749, 84, 0, 0); +-- Faerie Fire R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (9907, 108, 0, 0); + +-- Entangling Roots R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (339, 16, 1, 0); +-- Entangling Roots R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1062, 36, 1, 0); +-- Entangling Roots R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (5195, 56, 1, 0); +-- Entangling Roots R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (5196, 76, 1, 0); +-- Entangling Roots R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (9852, 96, 1, 0); +-- Entangling Roots R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (9853, 116, 1, 0); + +-- Thorns R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (467, 6, 1, 0); +-- Thorns R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (782, 14, 1, 0); +-- Thorns R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1075, 24, 1, 0); +-- Thorns R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8914, 34, 1, 0); +-- Thorns R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (9756, 44, 1, 0); +-- Thorns R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (9910, 54, 1, 0); + +-- Cure Poison Druid +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8946, 14, 0, 0); + +-- Abolish Poison +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (2893, 26, 0, 0); + +-- Challenging Roar +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (5209, 98, 0, 0); + +-- Gift of the Wild R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (21849, 50, 0, 0); +-- Gift of the Wild R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (21850, 60, 0, 0); + +-- Mark of The Wild R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (1126, 1, 0, 0); +-- Mark of The Wild R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (5232, 10, 0, 0); +-- Mark of The Wild R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (6756, 20, 0, 0); +-- Mark of The Wild R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (5234, 30, 0, 0); +-- Mark of The Wild R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8907, 40, 0, 0); +-- Mark of The Wild R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (9884, 50, 0, 0); +-- Mark of The Wild R7 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (9885, 60, 0, 0); + +-- Innervate +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`) VALUES (29166, 40, 0, 0, 5464); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index b311c3d91b8..2bc63461cf5 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -5913,10 +5913,6 @@ void Aura::HandleSchoolAbsorb(bool apply, bool Real) m_modifier.m_amount += DoneActualBenefit; - // Power Word: Shield generates half the threat as healing for the same amount - if (spellProto->IsFitToFamily() && spellProto->Id != 27779) - caster->GetHostileRefManager().threatAssist(caster, m_modifier.m_amount * 0.25, spellProto); - m_modifier.m_amount = dither(m_modifier.m_amount); } } From daff3ae5533ceb9106bff90af6d91a3838097687 Mon Sep 17 00:00:00 2001 From: Daribon Date: Mon, 14 Aug 2023 20:56:44 +0200 Subject: [PATCH 151/426] Add custom invisible walls to WSG from Classic. (#1684) This is a separate file, not part of the database. --- sql/custom/WSG_invis_walls.sql | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 sql/custom/WSG_invis_walls.sql diff --git a/sql/custom/WSG_invis_walls.sql b/sql/custom/WSG_invis_walls.sql new file mode 100644 index 00000000000..9fa3df6e92f --- /dev/null +++ b/sql/custom/WSG_invis_walls.sql @@ -0,0 +1,17 @@ +-- This adds invisible walls at terrain exploit spots in WSG +-- From Classic but the invisible walls never existed in vanilla +-- The object exists in 1.7.0 and forward, if you are using 1.12.1 you can change patch_min + +SET @OINVIS = 3998750; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OINVIS+0, 180322, 489, 917.462, 1431.63, 361.555, 3.14995, -0.256078, -0.127144, -0.957513, 0.0377819, 25, 25, 100, 1, 1, 350, 5, 10), +(@OINVIS+1, 180322, 489, 1536.53, 1410.2, 371.014, 1.96517, 0, 0, 0.831934, 0.554875, 25, 25, 100, 1, 1, 350, 5, 10), +(@OINVIS+2, 180322, 489, 1528.47, 1511.9, 359.055, 0, 0, 0, 0, 1, 25, 25, 100, 1, 1, 350, 5, 10), +(@OINVIS+3, 180322, 489, 1541, 1416, 372, 6.10865, 0, 0, -0.0871553, 0.996195, 25, 25, 100, 1, 1, 350, 5, 10), +(@OINVIS+4, 180322, 489, 1471.05, 1442.52, 371.495, 4.67748, 0.692015, -0.716602, 0.0605431, 0.0627004, 25, 25, 100, 1, 1, 350, 5, 10), +(@OINVIS+5, 180322, 489, 997.53, 1282.98, 358.421, 0.581384, 0, 0, 0.286615, 0.958046, 25, 25, 100, 1, 1, 350, 5, 10), +(@OINVIS+6, 180322, 489, 990.203, 1294.89, 357.31, 0.170133, 0, 0, 0.0849638, 0.996384, 25, 25, 100, 1, 1, 350, 5, 10), +(@OINVIS+8, 180322, 489, 1442.77, 1667.75, 366.105, 2.60508, 0, 0, 0.964234, 0.265051, 25, 25, 100, 1, 1, 350, 5, 10), +(@OINVIS+9, 180322, 489, 1146.96, 1688.87, 351.199, 1.47358, 0, 0, 0.671914, 0.740629, 25, 25, 100, 1, 1, 350, 5, 10), +(@OINVIS+10, 180322, 489, 1186.25, 1256.99, 337.158, 1.18015, 0, 0, 0.556424, 0.830898, 25, 25, 100, 1, 1, 350, 5, 10), +(@OINVIS+11, 180322, 489, 969.54, 1547.69, 358.262, 1.10841, 0, 0, 0.526268, 0.850319, 25, 25, 100, 1, 1, 350, 5, 10); \ No newline at end of file From 4b4ef6682df96d9398ffc43507ad1d19486c9471 Mon Sep 17 00:00:00 2001 From: schell244 Date: Mon, 14 Aug 2023 20:58:46 +0200 Subject: [PATCH 152/426] Assign spell list to Pyrewood Elder (#1850) --- sql/migrations/20230324094209_world.sql | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 sql/migrations/20230324094209_world.sql diff --git a/sql/migrations/20230324094209_world.sql b/sql/migrations/20230324094209_world.sql new file mode 100644 index 00000000000..08fd1636d26 --- /dev/null +++ b/sql/migrations/20230324094209_world.sql @@ -0,0 +1,19 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230324094209'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230324094209'); +-- Add your query below. + +-- Entry at creature_spells was already existing, just spell_list_id was not linked +UPDATE `creature_template` SET `spell_list_id`= 18950 WHERE `entry`=1895; + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 79766b8bfb7ccf0446258b255085d4f4c5783d49 Mon Sep 17 00:00:00 2001 From: balakethelock <111737968+balakethelock@users.noreply.github.com> Date: Mon, 14 Aug 2023 20:00:16 +0100 Subject: [PATCH 153/426] Rewrite Ouro script (#1950) * Changed target selection behavior, from custom script to default rooted mob behavior. * Made sandblast visually face its target. * Removed contradictory line that repeated submerge if it intentionally didn't go off because of overlapping sweep/sandblast. * Fixed grace timer not working on emerge if Ouro never finds a melee target. (Way it was before: it only worked if he finds a target and then that target leaves melee). * Removed delay of initial Sweep and Sandblast which shouldn't exist based on sniffs and videos. * Adjusted Sweep and Sandblast timers based on sniffs and videos. --- .../silithus/temple_of_ahnqiraj/boss_ouro.cpp | 148 ++++++++---------- 1 file changed, 68 insertions(+), 80 deletions(-) diff --git a/src/scripts/kalimdor/silithus/temple_of_ahnqiraj/boss_ouro.cpp b/src/scripts/kalimdor/silithus/temple_of_ahnqiraj/boss_ouro.cpp index 5e8c74a881d..dc7f1c85464 100644 --- a/src/scripts/kalimdor/silithus/temple_of_ahnqiraj/boss_ouro.cpp +++ b/src/scripts/kalimdor/silithus/temple_of_ahnqiraj/boss_ouro.cpp @@ -67,18 +67,16 @@ enum }; /* - * Sand Blast timers are based on June 2006 values (17-22s) as shown in - * https://www.youtube.com/watch?v=REmX3uRTFkQ Sweep timers based on the - * same video. No known nerfs. + * Sand Blast and sweep timers are based on June 2006 values (20-25s) as shown in + * https://www.youtube.com/watch?v=REmX3uRTFkQ. The video is slightly sped up, so time was counted by the ticking of buffs on the player. + * More confirmation from classic sniffs https://i.imgur.com/YIA8veT.png */ -const uint32_t SANDBLAST_TIMER_INITIAL_MIN = 30000; -const uint32_t SANDBLAST_TIMER_INITIAL_MAX = 45000; const uint32_t SUBMERGE_ANIMATION_INVIS = 2000; -const uint32_t SWEEP_TIMER = 15000; +const uint32_t SWEEP_TIMER = 20500; -struct boss_ouroAI : public Scripted_NoMovementAI +struct boss_ouroAI : public ScriptedAI { - boss_ouroAI(Creature* pCreature) : Scripted_NoMovementAI(pCreature) + boss_ouroAI(Creature* pCreature) : ScriptedAI(pCreature) { m_pInstance = (ScriptedInstance*)pCreature->GetInstanceData(); Reset(); @@ -88,6 +86,7 @@ struct boss_ouroAI : public Scripted_NoMovementAI uint32 m_uiSweepTimer; uint32 m_uiSandBlastTimer; + uint32 m_uiRestoreTargetTimer; uint32 m_uiSubmergeTimer; bool m_SummonBase; uint32 m_uiNoMeleeTimer; @@ -104,27 +103,33 @@ struct boss_ouroAI : public Scripted_NoMovementAI // Take nerfs into account http://blue.cardplace.com/cache/wow-dungeons/481724.htm for content patch progression // Note: Investigate if these timers are 100% accurate. - inline uint32_t SandBlastTimerMin() { return sWorld.GetWowPatch() >= WOW_PATCH_110 ? 17000 : 12000; } - inline uint32_t SandBlastTimerMax() { return sWorld.GetWowPatch() >= WOW_PATCH_110 ? 22000 : 17000; } + inline uint32_t SandBlastTimerMin() { return sWorld.GetWowPatch() >= WOW_PATCH_110 ? 20000 : 12000; } + inline uint32_t SandBlastTimerMax() { return sWorld.GetWowPatch() >= WOW_PATCH_110 ? 25000 : 17000; } inline uint32_t SubmergeTimer() { return sWorld.GetWowPatch() >= WOW_PATCH_110 ? 90000 : 60000; } void Reset() override { - - m_uiSweepTimer = urand(30000, 40000); - m_uiSandBlastTimer = urand(SANDBLAST_TIMER_INITIAL_MIN, SANDBLAST_TIMER_INITIAL_MAX); - m_uiSubmergeTimer = SubmergeTimer(); - m_SummonBase = true; - m_uiSubmergeInvisTimer = SUBMERGE_ANIMATION_INVIS; + // This makes the mob behave like rooted mobs etc, that is, + // retargetting another top-threat target if current leaves melee range + m_creature->AddUnitState(UNIT_STAT_ROOT); + m_creature->StopMoving(); + m_creature->SetRooted(true); + m_uiSweepTimer = SWEEP_TIMER; + m_uiSandBlastTimer = urand(SandBlastTimerMin(), SandBlastTimerMax()); + m_uiRestoreTargetTimer = 0; + m_uiSubmergeTimer = SubmergeTimer(); + m_SummonBase = true; + m_uiSubmergeInvisTimer = SUBMERGE_ANIMATION_INVIS; + m_uiNoMeleeTimer = 3000; // Source : http://wowwiki.wikia.com/wiki/Ouro // "Ouro seems to give you about 10 seconds to get a MT in there when he pops up" m_justEmergedGraceTimer = 10000; - m_uiSummonMoundTimer = 10000; - m_bEnraged = false; - m_bSubmerged = false; + m_uiSummonMoundTimer = 10000; + m_bEnraged = false; + m_bSubmerged = false; m_ouroTriggerGuid.Clear(); @@ -212,67 +217,28 @@ struct boss_ouroAI : public Scripted_NoMovementAI m_uiSubmergeTimer = 30000; m_justEmergedGraceTimer = 10000; - m_uiNoMeleeTimer = 3000; + m_uiNoMeleeTimer = 10000; // This has to be 10 sec and not 3 sec. Otherwise sometimes, if CanReachWithMeleeAutoAttack returns false for a whole 3 seconds, NoMeleeTimer will never be set to equal grace timer, and grace timer won't work. m_uiSubmergeInvisTimer = SUBMERGE_ANIMATION_INVIS; DoResetThreat(); } - else - { - m_uiSubmergeTimer = 2000; // try again in a moment - } } - - void SetNewTarget(Unit &pNewTarget) - { - uint32 const uiMaxThreat = m_creature->GetThreatManager().getThreat(m_creature->GetVictim()); - - // erase current target's threat as soon as we switch the target now - m_creature->GetThreatManager().modifyThreatPercent(m_creature->GetVictim(), -100); - - // give the new target aggro - m_creature->GetThreatManager().addThreat(&pNewTarget, uiMaxThreat); - } - - - bool CheckForMelee() + + // Threat is preserved when Ouro swaps target. The only mechanics that affect threat are being hit by sandblast, and the threat wipe on submerge. + void UpdateAI(uint32 const uiDiff) override { - // at first we check for the current player-type target - Unit* pMainTarget = m_creature->GetVictim(); - if (pMainTarget->GetTypeId() == TYPEID_PLAYER && !pMainTarget->ToPlayer()->IsGameMaster() && - m_creature->CanReachWithMeleeAutoAttack(pMainTarget) && m_creature->IsWithinLOSInMap(pMainTarget)) + // This is to let Ouro reset when he enters evade mode. Because rooted mobs don't reset when they evade until their root is removed. + if (m_creature->IsInEvadeMode()) { - return true; + m_creature->ClearUnitState(UNIT_STAT_ROOT); + m_creature->SetRooted(false); } - - // at second we look for any melee player-type target (if current target is not reachable) - if (Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_TOPAGGRO, 0, nullptr, - SELECT_FLAG_PLAYER_NOT_GM | SELECT_FLAG_IN_LOS | SELECT_FLAG_IN_MELEE_RANGE)) - { - SetNewTarget(*pTarget); - return true; - } - - // reaching this point means there are no more reachable player-type targets in melee range - - // at third we take any melee pet target just to punch in the face - if (Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_TOPAGGRO, 0, nullptr, - SELECT_FLAG_PET | SELECT_FLAG_IN_LOS | SELECT_FLAG_IN_MELEE_RANGE)) - { - SetNewTarget(*pTarget); - return false; - } - - // at fourth we take anything to wipe it out and log (whatever, just in case) - if (Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_TOPAGGRO, 0, nullptr, - SELECT_FLAG_NOT_PLAYER | SELECT_FLAG_IN_LOS | SELECT_FLAG_IN_MELEE_RANGE)) + else { - SetNewTarget(*pTarget); + m_creature->AddUnitState(UNIT_STAT_ROOT); + m_creature->StopMoving(); + m_creature->SetRooted(true); } - return false; - } - - void UpdateAI(uint32 const uiDiff) override - { + // Return since we have no pTarget if (!m_creature->SelectHostileTarget() || !m_creature->GetVictim()) return; @@ -302,12 +268,36 @@ struct boss_ouroAI : public Scripted_NoMovementAI if (m_uiSandBlastTimer < uiDiff) { if (Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_TOPAGGRO, 0, SPELL_SANDBLAST, SELECT_FLAG_PLAYER)) + { + // Ouro visually targets the victim of Sand Blast for its whole 2 second cast time. + m_creature->SetInFront(pTarget); + m_creature->SetTargetGuid(pTarget->GetObjectGuid()); if (DoCastSpellIfCan(pTarget, SPELL_SANDBLAST) == CAST_OK) + { m_uiSandBlastTimer = urand(SandBlastTimerMin(), SandBlastTimerMax()); + m_uiRestoreTargetTimer = 2100; // 2 second timer to swap visual target back to the tank. With 100ms grace window to make sure the visual animation of the boss spitting sand is facing the right direction. + } + } } else m_uiSandBlastTimer -= uiDiff; + // Get new visual target after casting Sand Blast at the highest threat. (If highest threat was not the melee tank -such as the case of ranged tanks soaking sand blasts-, this is to swap the visual target back to the melee tank) + if (m_uiRestoreTargetTimer) + { + if (m_uiRestoreTargetTimer <= uiDiff) + { + if (Unit* pTarget = m_creature->GetVictim()) + { + m_creature->SetInFront(pTarget); + m_creature->SetTargetGuid(pTarget->GetObjectGuid()); + m_uiRestoreTargetTimer = 0; + } + } + else + m_uiRestoreTargetTimer -= uiDiff; + } + if (!m_bEnraged) { // Enrage at 20% HP @@ -340,18 +330,15 @@ struct boss_ouroAI : public Scripted_NoMovementAI m_uiSummonMoundTimer -= uiDiff; } - // every tick we check for melee targets to attack - if (CheckForMelee()) - { - m_uiNoMeleeTimer = std::max((uint32)3000, m_justEmergedGraceTimer); - } - - // If we are within range melee the target + // Because the mob is rooted, target selection is handled automatically by rooted mob AI. All we have to do is we check if the target is in melee range. If it is, autoattack it and refresh the submerge timer. if (m_creature->CanReachWithMeleeAutoAttack(m_creature->GetVictim())) { DoMeleeAttackIfReady(); + m_uiNoMeleeTimer = std::max((uint32)3000, m_justEmergedGraceTimer); } + // Spam Boulder spell when enraged and not tanked + // Todo: Find out if he he starts bouldering the moment he's not tanked, or after the 3 sec nomeleetimer has passed. else if (m_bEnraged) { if (!m_creature->IsNonMeleeSpellCasted(false)) @@ -360,12 +347,13 @@ struct boss_ouroAI : public Scripted_NoMovementAI DoCastSpellIfCan(pTarget, SPELL_BOULDER); } } + // Submerge if no melee and not enraged else if (m_uiNoMeleeTimer < uiDiff) { Submerge(); } - else + else if (m_uiRestoreTargetTimer <= 0) // Submerge timer only ticks down if Ouro is not casting Sandblast m_uiNoMeleeTimer -= uiDiff; m_justEmergedGraceTimer -= std::min(uiDiff, m_justEmergedGraceTimer); @@ -406,7 +394,7 @@ struct boss_ouroAI : public Scripted_NoMovementAI m_uiSubmergeInvisTimer = SUBMERGE_ANIMATION_INVIS; m_uiSweepTimer = SWEEP_TIMER; m_uiSandBlastTimer = urand(SandBlastTimerMin(), SandBlastTimerMax()); - + DespawnCreatures(false); // Ouro should despawn instant on reset, not after going to his spawn point From c829df6a3a1cdcc7c124a4091df89e7fc04f07d8 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 14 Aug 2023 22:11:56 +0300 Subject: [PATCH 154/426] Mana shields were checked before regular absorb auras before 1.11. --- src/game/Objects/Unit.cpp | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index aa804cc8b08..f6ba24a56e9 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -1857,7 +1857,7 @@ void Unit::CalculateDamageAbsorbAndResist(SpellCaster* pCaster, SpellSchoolMask else *resist = 0; - auto HandleAbsorb = [&]() + auto HandleSchoolAbsorb = [&]() { // Need remove expired auras after bool existExpired = false; @@ -1912,7 +1912,10 @@ void Unit::CalculateDamageAbsorbAndResist(SpellCaster* pCaster, SpellSchoolMask ++i; } } + }; + auto HandleManaShield = [&]() + { // absorb by mana cost AuraList const& vManaShield = GetAurasByType(SPELL_AURA_MANA_SHIELD); for (AuraList::const_iterator i = vManaShield.begin(), next; i != vManaShield.end() && remainingDamage > 0; i = next) @@ -1954,7 +1957,7 @@ void Unit::CalculateDamageAbsorbAndResist(SpellCaster* pCaster, SpellSchoolMask } }; - auto HandleSplit = [&]() + auto HandleSplitDamage = [&]() { AuraList const& vSplitDamageFlat = GetAurasByType(SPELL_AURA_SPLIT_DAMAGE_FLAT); for (AuraList::const_iterator i = vSplitDamageFlat.begin(), next; i != vSplitDamageFlat.end() && remainingDamage >= 0; i = next) @@ -2023,14 +2026,23 @@ void Unit::CalculateDamageAbsorbAndResist(SpellCaster* pCaster, SpellSchoolMask } }; + // World of Warcraft Client Patch 1.11.0 (2006-06-20) + // - Mana Shield - Damage taken will now be absorbed by other absorb spells + // (e.g. Ice Barrier, Power Word: Shield) before being absorbed by Mana Shield. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_10_2 + HandleSchoolAbsorb(); + HandleManaShield(); + HandleSplitDamage(); // World of Warcraft Client Patch 1.7.0 (2005 - 09 - 13) // - Damage absorption is now applied before damage splitting effects. -#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 - HandleAbsorb(); - HandleSplit(); +#elif SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 + HandleManaShield(); + HandleSchoolAbsorb(); + HandleSplitDamage(); #else - HandleSplit(); - HandleAbsorb(); + HandleSplitDamage(); + HandleManaShield(); + HandleSchoolAbsorb(); #endif *absorb = damage - remainingDamage - *resist; From 0b848f798e1122d331e2f5d88de724fb2f8ef1bb Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 14 Aug 2023 22:58:14 +0300 Subject: [PATCH 155/426] Update environmental damage packet before 1.7. Confirmed in IDA. --- src/game/Objects/Unit.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index f6ba24a56e9..644c4a3340b 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -5187,8 +5187,14 @@ void Unit::SendEnvironmentalDamageLog(uint8 type, uint32 damage, uint32 absorb, data << GetObjectGuid(); data << uint8(type != DAMAGE_FALL_TO_VOID ? type : DAMAGE_FALL); data << uint32(damage); + + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - Absorbed and resisted environmental damage is now shown in the combat log. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 data << uint32(absorb); data << int32(resist); +#endif + SendMessageToSet(&data, true); } From 9bb60fc856d90274e50770fa408518da4b00dd3e Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 14 Aug 2023 23:09:49 +0300 Subject: [PATCH 156/426] Remove TBC spell from Touch of Weakness handler. --- src/game/Spells/SpellEffects.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/game/Spells/SpellEffects.cpp b/src/game/Spells/SpellEffects.cpp index 9a309fdaf09..04350a0f1f1 100644 --- a/src/game/Spells/SpellEffects.cpp +++ b/src/game/Spells/SpellEffects.cpp @@ -1845,9 +1845,6 @@ void Spell::EffectDummy(SpellEffectIndex effIdx) case 19266: spellId = 19254; break; // Rank 6 - case 25461: - spellId = 25460; - break; // Rank 7 default: sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "Spell::EffectDummy: Spell 28598 triggered by unhandeled spell %u", m_triggeredByAuraSpell->Id); return; From 2be58204403dde80f033c18dd76bbe30926f6357 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 15 Aug 2023 00:31:38 +0300 Subject: [PATCH 157/426] Charm and Possess spells threat. All threat should be reset on apply, and threat equal to max health of target should be added to caster on unapply. Fixes https://github.com/vmangos/core/issues/2159 Fixes https://github.com/vmangos/core/issues/2127 --- src/game/Objects/Unit.h | 2 +- src/game/Spells/SpellAuras.cpp | 50 +++++++++++++++++++++------------- 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/src/game/Objects/Unit.h b/src/game/Objects/Unit.h index 5050e5d9e0b..af0a92f8067 100644 --- a/src/game/Objects/Unit.h +++ b/src/game/Objects/Unit.h @@ -700,7 +700,7 @@ class Unit : public SpellCaster // Apply SpellEffects::EffectSummonPet after ressurecting in BG. ObjectGuid EffectSummonPet(uint32 spellId, uint32 petEntry, uint32 petLevel); - void ModPossess(Unit* target, bool apply, AuraRemoveMode m_removeMode = AURA_REMOVE_BY_DEFAULT); + void ModPossess(Unit* target, bool apply, AuraRemoveMode removeMode = AURA_REMOVE_BY_DEFAULT, SpellEntry const* pSpellProto = nullptr); private: void CleanupDeletedAuras(); diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index 2bc63461cf5..4e107401794 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -3089,17 +3089,20 @@ void Aura::HandleModPossess(bool apply, bool Real) pTarget->m_Events.AddLambdaEventAtOffset([pTarget, pCaster, apply, removeMode, schoolMask] { pCaster->ModPossess(pTarget, apply, removeMode); - pTarget->AddThreat(pCaster, pTarget->GetHealth(), false, schoolMask); + pTarget->AddThreat(pCaster, pTarget->GetMaxHealth(), false, schoolMask); }, 500); } else #endif { pCaster->ModPossess(pTarget, apply, m_removeMode); - if (apply && pCaster->IsPlayer()) - { - Player* pPlayerCaster = static_cast(pCaster); + + } + if (apply) + { + if (Player* pPlayerCaster = pCaster->ToPlayer()) + { UpdateData newData; pTarget->BuildValuesUpdateBlockForPlayerWithFlags(newData, pPlayerCaster, UF_FLAG_OWNER_ONLY); if (newData.HasData()) @@ -3109,26 +3112,27 @@ void Aura::HandleModPossess(bool apply, bool Real) pPlayerCaster->SendDirectMessage(&newDataPacket); } } - pTarget->AddThreat(pCaster, pTarget->GetHealth(), false, GetSpellProto()->GetSpellSchoolMask()); } - - if (!apply && GetId() == 24937) // Controlling Steam Tonk + else { - pTarget->CastSpell(pTarget, 27771, true); // Cast Damaged Tonk - pCaster->CastSpell(pCaster, 9179, true); // Cast 3 sec Stun on self - pCaster->RemoveAurasDueToSpell(24935); // Unroot player - - // Reset Tonk Control Console - if (GameObject* pConsole = pCaster->FindNearestGameObject(180524, INTERACTION_DISTANCE)) + if (GetId() == 24937) // Controlling Steam Tonk { - pConsole->SetGoState(GO_STATE_READY); - pConsole->SetLootState(GO_READY); - pConsole->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); + pTarget->CastSpell(pTarget, 27771, true); // Cast Damaged Tonk + pCaster->CastSpell(pCaster, 9179, true); // Cast 3 sec Stun on self + pCaster->RemoveAurasDueToSpell(24935); // Unroot player + + // Reset Tonk Control Console + if (GameObject* pConsole = pCaster->FindNearestGameObject(180524, INTERACTION_DISTANCE)) + { + pConsole->SetGoState(GO_STATE_READY); + pConsole->SetLootState(GO_READY); + pConsole->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); + } } } } -void Unit::ModPossess(Unit* pTarget, bool apply, AuraRemoveMode m_removeMode) +void Unit::ModPossess(Unit* pTarget, bool apply, AuraRemoveMode removeMode, SpellEntry const* pSpellProto) { // Cannot possess yourself. if (pTarget == this) @@ -3162,6 +3166,8 @@ void Unit::ModPossess(Unit* pTarget, bool apply, AuraRemoveMode m_removeMode) pCaster->SetMover(pTarget); pTarget->CombatStop(true); + pTarget->DeleteThreatList(); + pTarget->GetHostileRefManager().deleteReferences(); if (CharmInfo *charmInfo = pTarget->InitCharmInfo(pTarget)) { @@ -3211,7 +3217,7 @@ void Unit::ModPossess(Unit* pTarget, bool apply, AuraRemoveMode m_removeMode) pCaster->RemovePetActionBar(); // On delete only do caster related effects. - if (m_removeMode == AURA_REMOVE_BY_DELETE) + if (removeMode == AURA_REMOVE_BY_DELETE) return; pTarget->ClearUnitState(UNIT_STAT_POSSESSED); @@ -3242,9 +3248,12 @@ void Unit::ModPossess(Unit* pTarget, bool apply, AuraRemoveMode m_removeMode) else canAttack = true; - if (canAttack && m_removeMode != AURA_REMOVE_BY_DEATH && + if (canAttack && removeMode != AURA_REMOVE_BY_DEATH && pCaster->IsValidAttackTarget(pCreature)) + { pCreature->AttackedBy(pCaster); + pCreature->AddThreat(pCaster, pTarget->GetMaxHealth(), false, pSpellProto ? pSpellProto->GetSpellSchoolMask() : SPELL_SCHOOL_MASK_NONE, pSpellProto); + } // remove pvp flag on charm end if creature is not pvp flagged by default if (pCreature->IsPvP() && !pCreature->HasExtraFlag(CREATURE_FLAG_EXTRA_PVP)) @@ -3562,7 +3571,10 @@ void Aura::HandleModCharm(bool apply, bool Real) if (canAttack && m_removeMode != AURA_REMOVE_BY_DEATH && caster && caster->IsValidAttackTarget(pCreatureTarget)) + { pCreatureTarget->AttackedBy(caster); + pCreatureTarget->AddThreat(caster, pCreatureTarget->GetMaxHealth(), false, GetSpellProto()->GetSpellSchoolMask(), GetSpellProto()); + } } else if (pPlayerTarget) { From b127d3cff26ae4b886904b647776aaa1f6da67d3 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 15 Aug 2023 00:34:10 +0300 Subject: [PATCH 158/426] Followup to last commit. --- src/game/Spells/SpellAuras.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index 4e107401794..bb57405c985 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -3085,18 +3085,16 @@ void Aura::HandleModPossess(bool apply, bool Real) { pTarget->CombatStop(true); AuraRemoveMode removeMode = m_removeMode; - SpellSchoolMask schoolMask = GetSpellProto()->GetSpellSchoolMask(); - pTarget->m_Events.AddLambdaEventAtOffset([pTarget, pCaster, apply, removeMode, schoolMask] + SpellEntry const* pSpellProto = GetSpellProto(); + pTarget->m_Events.AddLambdaEventAtOffset([pTarget, pCaster, apply, removeMode, pSpellProto] { - pCaster->ModPossess(pTarget, apply, removeMode); - pTarget->AddThreat(pCaster, pTarget->GetMaxHealth(), false, schoolMask); + pCaster->ModPossess(pTarget, apply, removeMode, pSpellProto); }, 500); } else #endif { - pCaster->ModPossess(pTarget, apply, m_removeMode); - + pCaster->ModPossess(pTarget, apply, m_removeMode, GetSpellProto()); } if (apply) From f7a480a175017ecbfa85711bc7353dce9801c3d1 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 15 Aug 2023 12:28:09 +0300 Subject: [PATCH 159/426] Correct HitInfo flags for older clients. --- src/game/Objects/Unit.cpp | 2 ++ src/game/Objects/UnitDefines.h | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 644c4a3340b..950478dafb5 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -1310,7 +1310,9 @@ void Unit::CalculateMeleeDamage(Unit* pVictim, uint32 damage, CalcDamageInfo* da case RANGED_ATTACK: damageInfo->procAttacker = PROC_FLAG_DEAL_RANGED_ATTACK; damageInfo->procVictim = PROC_FLAG_TAKE_RANGED_ATTACK; +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_9_4 damageInfo->HitInfo = HITINFO_UNK3; // test (dev note: test what? HitInfo flag possibly not confirmed.) +#endif break; default: break; diff --git a/src/game/Objects/UnitDefines.h b/src/game/Objects/UnitDefines.h index ae858494803..8dc39acd249 100644 --- a/src/game/Objects/UnitDefines.h +++ b/src/game/Objects/UnitDefines.h @@ -248,6 +248,7 @@ enum VictimState enum HitInfo { +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_9_4 HITINFO_NORMALSWING = 0x00000000, HITINFO_UNK0 = 0x00000001, // req correct packet structure HITINFO_AFFECTS_VICTIM = 0x00000002, // no being hit animation on victim without it @@ -256,17 +257,26 @@ enum HitInfo HITINFO_MISS = 0x00000010, HITINFO_ABSORB = 0x00000020, // plays absorb sound HITINFO_RESIST = 0x00000040, // resisted atleast some damage -#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_9_4 HITINFO_CRITICALHIT = 0x00000080, -#else - HITINFO_CRITICALHIT = 0x00000008, -#endif HITINFO_UNK8 = 0x00000100, // wotlk? HITINFO_UNK9 = 0x00002000, // wotlk? HITINFO_GLANCING = 0x00004000, HITINFO_CRUSHING = 0x00008000, HITINFO_NOACTION = 0x00010000, HITINFO_SWINGNOHITSOUND = 0x00080000 +#else + HITINFO_NORMALSWING = 0x00000000, + HITINFO_MISS = 0x00000001, + HITINFO_AFFECTS_VICTIM = 0x00000002, // no being hit animation on victim without it + HITINFO_CRITICALHIT = 0x00000008, + HITINFO_LEFTSWING = 0x00000200, + HITINFO_NOACTION = 0x00001000, + HITINFO_ABSORB = 0x00010000, // plays absorb sound + HITINFO_RESIST = 0x00020000, // resisted atleast some damage + HITINFO_GLANCING = 0x00100000, + HITINFO_CRUSHING = 0x00200000, + HITINFO_SWINGNOHITSOUND = 0x00800000 +#endif }; //i would like to remove this: (it is defined in item.h From 2966c2b426eff4df2fe4a5e5cb0362b8a6f67d6d Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 15 Aug 2023 15:21:42 +0300 Subject: [PATCH 160/426] Adjust Orgrimmar instance boundary. --- src/game/Maps/MapManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/Maps/MapManager.cpp b/src/game/Maps/MapManager.cpp index 4da972cd302..748dd4aef11 100644 --- a/src/game/Maps/MapManager.cpp +++ b/src/game/Maps/MapManager.cpp @@ -823,7 +823,7 @@ uint32 MapManager::GetContinentInstanceId(uint32 mapId, float x, float y, bool* 1735.6906f, -3834.2417f, 1654.3671f, -3380.9902f, 1593.9861f, -3975.5413f, - 1439.2548f, -4249.6923f, + 1400.9472f, -4242.2387f, 1436.3106f, -4007.8950f, 1393.3199f, -4196.0625f, 1445.2428f, -4373.9052f, From 3e43fb929c3015d34a482d85ec496519c8398b1f Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 15 Aug 2023 15:44:16 +0300 Subject: [PATCH 161/426] Do not alter movement flags on switching instance. --- src/game/Objects/Player.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index 2d25e10914d..d154305220d 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -2184,8 +2184,6 @@ bool Player::SwitchInstance(uint32 newInstanceId) if (duel) if (GameObject* obj = GetMap()->GetGameObject(GetGuidValue(PLAYER_DUEL_ARBITER))) DuelComplete(DUEL_FLED); - // Fix movement flags - m_movementInfo.RemoveMovementFlag(MOVEFLAG_MASK_MOVING_OR_TURN); SetSelectionGuid(ObjectGuid()); CombatStop(); @@ -2211,7 +2209,10 @@ bool Player::SwitchInstance(uint32 newInstanceId) //remove auras before removing from map... RemoveAurasWithInterruptFlags(AURA_INTERRUPT_LEAVE_WORLD_CANCELS | AURA_INTERRUPT_MOVING_CANCELS | AURA_INTERRUPT_TURNING_CANCELS); RemoveCharmAuras(); - DisableSpline(); + + if (HasMovementFlag(MOVEFLAG_SPLINE_ENABLED)) + DisableSpline(); + SetMover(this); // Clear hostile refs so that we have no cross-map (and thread) references being maintained From 72d46fcf547133f10805ae4f6f59f2cfc5a6cc3f Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 16 Aug 2023 01:22:01 +0300 Subject: [PATCH 162/426] Add missing include. --- src/game/Objects/SpellCaster.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/game/Objects/SpellCaster.cpp b/src/game/Objects/SpellCaster.cpp index af8ae4a705c..6ef0716e73f 100644 --- a/src/game/Objects/SpellCaster.cpp +++ b/src/game/Objects/SpellCaster.cpp @@ -14,6 +14,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include "ObjectMgr.h" #include "SpellCaster.h" #include "DynamicObject.h" #include "GameObject.h" From 030dc846723359d842f96e5a5157cd8d31d44803 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 18 Aug 2023 22:06:59 +0300 Subject: [PATCH 163/426] Fix WSG flag not spawning on the ground after casting Divine Shield. --- src/game/Objects/Unit.cpp | 12 +++++++++--- src/game/Spells/Spell.cpp | 18 +++++++----------- src/game/Spells/SpellDefines.h | 2 +- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 950478dafb5..cc35df4b1f7 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -5444,7 +5444,9 @@ int32 Unit::SpellBaseHealingBonusTaken(SpellSchoolMask schoolMask) const bool Unit::IsImmuneToDamage(SpellSchoolMask shoolMask, SpellEntry const* spellInfo) const { - if (spellInfo && spellInfo->HasAttribute(SPELL_ATTR_NO_IMMUNITIES)) + if (spellInfo && + (spellInfo->HasAttribute(SPELL_ATTR_NO_IMMUNITIES) || + spellInfo->HasAttribute(SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS))) return false; // If m_immuneToDamage type contain magic, IMMUNE damage. @@ -5479,7 +5481,7 @@ bool Unit::IsImmuneToDamage(SpellSchoolMask shoolMask, SpellEntry const* spellIn bool Unit::IsImmuneToSpell(SpellEntry const* spellInfo, bool /*castOnSelf*/) const { - if (!spellInfo) + if (!spellInfo || spellInfo->HasAttribute(SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS)) return false; //TODO add spellEffect immunity checks!, player with flag in bg is immune to immunity buffs from other friendly players! @@ -5559,6 +5561,9 @@ bool Unit::IsImmuneToSpell(SpellEntry const* spellInfo, bool /*castOnSelf*/) con bool Unit::IsImmuneToSpellEffect(SpellEntry const* spellInfo, SpellEffectIndex index, bool /*castOnSelf*/) const { + if (spellInfo->HasAttribute(SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS)) + return false; + //If m_immuneToEffect type contain this effect type, IMMUNE effect. uint32 effect = spellInfo->Effect[index]; SpellImmuneList const& effectList = m_spellImmune[IMMUNITY_EFFECT]; @@ -5639,7 +5644,8 @@ bool Unit::IsImmuneToSpellEffect(SpellEntry const* spellInfo, SpellEffectIndex i bool Unit::IsImmuneToSchool(SpellEntry const* spellInfo, uint8 effectMask) const { if (!spellInfo->HasAttribute(SPELL_ATTR_EX_IMMUNITY_PURGES_EFFECT) // can remove immune (by dispell or immune it) - && !spellInfo->HasAttribute(SPELL_ATTR_EX2_NO_SCHOOL_IMMUNITIES)) + && !spellInfo->HasAttribute(SPELL_ATTR_EX2_NO_SCHOOL_IMMUNITIES) + && !spellInfo->HasAttribute(SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS)) { SpellImmuneList const& schoolList = m_spellImmune[IMMUNITY_SCHOOL]; for (auto itr : schoolList) diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index f7d421cd538..60f9a26a8d3 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -5528,6 +5528,9 @@ void Spell::RemoveChanneledAuraHolder(SpellAuraHolder* holder, AuraRemoveMode mo SpellCastResult Spell::CheckCast(bool strict) { + if (m_spellInfo->HasAttribute(SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS)) + return SPELL_CAST_OK; + if (m_caster->IsPlayer() && m_caster->ToPlayer()->HasCheatOption(PLAYER_CHEAT_NO_CHECK_CAST)) return SPELL_CAST_OK; @@ -5585,15 +5588,15 @@ SpellCastResult Spell::CheckCast(bool strict) } if (m_caster->IsPlayer() && !((Player*)m_caster)->IsGameMaster() && - sWorld.getConfig(CONFIG_BOOL_VMAP_INDOOR_CHECK) && - VMAP::VMapFactory::createOrGetVMapManager()->isLineOfSightCalcEnabled()) + sWorld.getConfig(CONFIG_BOOL_VMAP_INDOOR_CHECK) && + VMAP::VMapFactory::createOrGetVMapManager()->isLineOfSightCalcEnabled()) { if (m_spellInfo->Attributes & SPELL_ATTR_ONLY_OUTDOORS && - !m_caster->GetTerrain()->IsOutdoors(m_caster->GetPositionX(), m_caster->GetPositionY(), m_caster->GetPositionZ())) + !m_caster->GetTerrain()->IsOutdoors(m_caster->GetPositionX(), m_caster->GetPositionY(), m_caster->GetPositionZ())) return SPELL_FAILED_ONLY_OUTDOORS; if (m_spellInfo->Attributes & SPELL_ATTR_ONLY_INDOORS && - m_caster->GetTerrain()->IsOutdoors(m_caster->GetPositionX(), m_caster->GetPositionY(), m_caster->GetPositionZ())) + m_caster->GetTerrain()->IsOutdoors(m_caster->GetPositionX(), m_caster->GetPositionY(), m_caster->GetPositionZ())) return SPELL_FAILED_ONLY_INDOORS; } @@ -7189,13 +7192,6 @@ SpellCastResult Spell::CheckCasterAuras() const if (!m_casterUnit) return SPELL_CAST_OK; - // Flag drop spells totally immuned to caster auras - // FIXME: find more nice check for all totally immuned spells - // AttributesEx3 & 0x10000000? - if (m_spellInfo->Id == 23336 || // Alliance Flag Drop - m_spellInfo->Id == 23334) // Horde Flag Drop - return SPELL_CAST_OK; - uint8 school_immune = 0; uint32 mechanic_immune = 0; uint32 dispel_immune = 0; diff --git a/src/game/Spells/SpellDefines.h b/src/game/Spells/SpellDefines.h index 4c5f3babe72..a76c5df9e68 100644 --- a/src/game/Spells/SpellDefines.h +++ b/src/game/Spells/SpellDefines.h @@ -846,7 +846,7 @@ enum SpellAttributesEx3 SPELL_ATTR_EX3_TREAT_AS_PERIODIC = 0x02000000, // 25 Does not cause spell pushback SPELL_ATTR_EX3_CAN_PROC_FROM_PROCS = 0x04000000, // 26 Auras with this attribute can proc off procced spells (periodic triggers etc) SPELL_ATTR_EX3_ONLY_PROC_ON_CASTER = 0x08000000, // 27 - SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS = 0x10000000, // 28 NYI + SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS = 0x10000000, // 28 Skips all cast checks SPELL_ATTR_EX3_IGNORE_CASTER_MODIFIERS = 0x20000000, // 29 SPELL_ATTR_EX3_DO_NOT_DISPLAY_RANGE = 0x40000000, // 30 SPELL_ATTR_EX3_NOT_ON_AOE_IMMUNE = 0x80000000 // 31 From 9d1ee351cc4b6a0429157192f0b582e5b062e020 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 18 Aug 2023 22:46:52 +0300 Subject: [PATCH 164/426] Position is a signed short int. --- src/game/Handlers/GroupHandler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/Handlers/GroupHandler.cpp b/src/game/Handlers/GroupHandler.cpp index 28978955d6c..629b5253403 100644 --- a/src/game/Handlers/GroupHandler.cpp +++ b/src/game/Handlers/GroupHandler.cpp @@ -667,7 +667,7 @@ void WorldSession::BuildPartyMemberStatsPacket(Player* player, WorldPacket* data *data << uint16(player->GetCachedZoneId()); if (mask & GROUP_UPDATE_FLAG_POSITION) - *data << uint16(player->GetPositionX()) << uint16(player->GetPositionY()); + *data << int16(player->GetPositionX()) << int16(player->GetPositionY()); if (mask & GROUP_UPDATE_FLAG_AURAS) { From 140e5d24e3ea3cc1fcdce3ff47ce3baef30d5a43 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 19 Aug 2023 01:43:00 +0300 Subject: [PATCH 165/426] Fix world states on old clients. --- src/game/Battlegrounds/BattleGround.h | 13 +- src/game/Battlegrounds/BattleGroundMgr.cpp | 3 +- src/game/Battlegrounds/BattleGroundWS.cpp | 31 ++-- src/game/Battlegrounds/BattleGroundWS.h | 4 +- src/game/CMakeLists.txt | 1 + src/game/HardcodedEvents.cpp | 28 +-- src/game/Objects/Player.cpp | 55 +++--- src/game/Objects/Player.h | 2 +- src/game/OutdoorPvP/OutdoorPvPEP.cpp | 66 ++++---- src/game/OutdoorPvP/OutdoorPvPEP.h | 43 +---- src/game/OutdoorPvP/OutdoorPvPSI.cpp | 26 +-- src/game/OutdoorPvP/OutdoorPvPSI.h | 8 +- src/game/WorldStates.h | 178 ++++++++++++++++++++ src/scripts/world/scourge_invasion.cpp | 14 +- src/scripts/world/scourge_invasion.h | 20 +-- src/scripts/world/world_event_wareffort.cpp | 16 +- src/scripts/world/world_event_wareffort.h | 124 ++++---------- 17 files changed, 343 insertions(+), 289 deletions(-) create mode 100644 src/game/WorldStates.h diff --git a/src/game/Battlegrounds/BattleGround.h b/src/game/Battlegrounds/BattleGround.h index d3a7907093e..30a1a5edb79 100644 --- a/src/game/Battlegrounds/BattleGround.h +++ b/src/game/Battlegrounds/BattleGround.h @@ -27,6 +27,7 @@ #include "Map.h" #include "ByteBuffer.h" #include "ObjectGuid.h" +#include "WorldStates.h" // magic event-numbers #define BG_EVENT_NONE 255 @@ -648,22 +649,19 @@ class BattleGround // helper functions for world state list fill inline void FillInitialWorldState(ByteBuffer& data, uint32& count, uint32 state, uint32 value) { - data << uint32(state); - data << uint32(value); + WriteInitialWorldStatePair(data, state, value); ++count; } inline void FillInitialWorldState(ByteBuffer& data, uint32& count, uint32 state, int32 value) { - data << uint32(state); - data << int32(value); + WriteInitialWorldStatePair(data, state, value); ++count; } inline void FillInitialWorldState(ByteBuffer& data, uint32& count, uint32 state, bool value) { - data << uint32(state); - data << uint32(value?1:0); + WriteInitialWorldStatePair(data, state, value ? 1 : 0); ++count; } @@ -677,8 +675,7 @@ inline void FillInitialWorldState(ByteBuffer& data, uint32& count, WorldStatePai { for(WorldStatePair const* itr = array; itr->state; ++itr) { - data << uint32(itr->state); - data << uint32(itr->value); + WriteInitialWorldStatePair(data, itr->state, itr->value); ++count; } } diff --git a/src/game/Battlegrounds/BattleGroundMgr.cpp b/src/game/Battlegrounds/BattleGroundMgr.cpp index 547014b1911..173aaf5e6c2 100644 --- a/src/game/Battlegrounds/BattleGroundMgr.cpp +++ b/src/game/Battlegrounds/BattleGroundMgr.cpp @@ -1074,8 +1074,7 @@ void BattleGroundMgr::BuildGroupJoinedBattlegroundPacket(WorldPacket* data, int3 void BattleGroundMgr::BuildUpdateWorldStatePacket(WorldPacket* data, uint32 field, uint32 value) { data->Initialize(SMSG_UPDATE_WORLD_STATE, 4 + 4); - *data << uint32(field); - *data << uint32(value); + WriteUpdateWorldStatePair(*data, field, value); } void BattleGroundMgr::BuildPlaySoundPacket(WorldPacket* data, uint32 soundid) diff --git a/src/game/Battlegrounds/BattleGroundWS.cpp b/src/game/Battlegrounds/BattleGroundWS.cpp index 10da48646bc..1bc140fadc8 100644 --- a/src/game/Battlegrounds/BattleGroundWS.cpp +++ b/src/game/Battlegrounds/BattleGroundWS.cpp @@ -155,6 +155,8 @@ void BattleGroundWS::RespawnFlagAfterDrop(Team team) return; RespawnFlag(team, false); + UpdateWorldState(team == HORDE ? BG_WS_FLAG_TAKEN_HORDE : BG_WS_FLAG_TAKEN_ALLIANCE, 0); + if (team == ALLIANCE) #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 SendMessageToAll(BCT_BG_WS_ALLIANCE_FLAG_RESPAWNED, CHAT_MSG_BG_SYSTEM_NEUTRAL); @@ -208,6 +210,7 @@ void BattleGroundWS::EventPlayerCapturedFlag(Player* source) AddPoint(ALLIANCE, 1); PlaySoundToAll(BG_WS_SOUND_FLAG_CAPTURED_ALLIANCE); RewardReputationToTeam(890, m_reputationCapture, ALLIANCE); + UpdateWorldState(BG_WS_FLAG_TAKEN_HORDE, 0); } else { @@ -222,6 +225,7 @@ void BattleGroundWS::EventPlayerCapturedFlag(Player* source) AddPoint(HORDE, 1); PlaySoundToAll(BG_WS_SOUND_FLAG_CAPTURED_HORDE); RewardReputationToTeam(889, m_reputationCapture, HORDE); + UpdateWorldState(BG_WS_FLAG_TAKEN_ALLIANCE, 0); } //for flag capture is reward distributed according level range RewardHonorToTeam(BG_WSG_FlagCapturedHonor[GetBracketId()], source->GetTeam()); @@ -254,11 +258,8 @@ void BattleGroundWS::EventPlayerCapturedFlag(Player* source) if (winner) { - UpdateWorldState(BG_WS_FLAG_UNK_ALLIANCE, 0); - UpdateWorldState(BG_WS_FLAG_UNK_HORDE, 0); UpdateWorldState(BG_WS_FLAG_STATE_ALLIANCE, 1); UpdateWorldState(BG_WS_FLAG_STATE_HORDE, 1); - EndBattleGround(winner); } else @@ -334,7 +335,7 @@ void BattleGroundWS::EventPlayerDroppedFlag(Player* source) #else DoOrSimulateScriptTextForMap(BCT_BG_WS_DROPPED_HF, NPC_WSG_HERALD, GetBgMap(), nullptr, source); #endif - UpdateWorldState(BG_WS_FLAG_UNK_HORDE, uint32(-1)); + UpdateWorldState(BG_WS_FLAG_TAKEN_HORDE, uint32(-1)); } else { @@ -343,7 +344,7 @@ void BattleGroundWS::EventPlayerDroppedFlag(Player* source) #else DoOrSimulateScriptTextForMap(BCT_BG_WS_DROPPED_AF, NPC_WSG_HERALD, GetBgMap(), nullptr, source); #endif - UpdateWorldState(BG_WS_FLAG_UNK_ALLIANCE, uint32(-1)); + UpdateWorldState(BG_WS_FLAG_TAKEN_ALLIANCE, uint32(-1)); } m_flagsDropTimer[GetOtherTeamIndex(GetTeamIndexByTeamId(source->GetTeam()))] = BG_WS_FLAG_DROP_TIME; @@ -376,7 +377,7 @@ void BattleGroundWS::EventPlayerClickedOnFlag(Player* source, GameObject* target m_flagState[BG_TEAM_ALLIANCE] = BG_WS_FLAG_STATE_ON_PLAYER; //update world state to show correct flag carrier UpdateFlagState(HORDE, BG_WS_FLAG_STATE_ON_PLAYER); - UpdateWorldState(BG_WS_FLAG_UNK_ALLIANCE, 1); + UpdateWorldState(BG_WS_FLAG_TAKEN_ALLIANCE, 1); source->CastSpell(source, BG_WS_SPELL_SILVERWING_FLAG, true); } @@ -394,7 +395,7 @@ void BattleGroundWS::EventPlayerClickedOnFlag(Player* source, GameObject* target m_flagState[BG_TEAM_HORDE] = BG_WS_FLAG_STATE_ON_PLAYER; //update world state to show correct flag carrier UpdateFlagState(ALLIANCE, BG_WS_FLAG_STATE_ON_PLAYER); - UpdateWorldState(BG_WS_FLAG_UNK_HORDE, 1); + UpdateWorldState(BG_WS_FLAG_TAKEN_HORDE, 1); source->CastSpell(source, BG_WS_SPELL_WARSONG_FLAG, true); } @@ -427,7 +428,7 @@ void BattleGroundWS::EventPlayerClickedOnFlag(Player* source, GameObject* target source->CastSpell(source, BG_WS_SPELL_SILVERWING_FLAG, true); m_flagState[BG_TEAM_ALLIANCE] = BG_WS_FLAG_STATE_ON_PLAYER; UpdateFlagState(HORDE, BG_WS_FLAG_STATE_ON_PLAYER); - UpdateWorldState(BG_WS_FLAG_UNK_ALLIANCE, 1); + UpdateWorldState(BG_WS_FLAG_TAKEN_ALLIANCE, 1); } //called in HandleGameObjectUseOpcode: //targetGo->Delete(); @@ -462,7 +463,7 @@ void BattleGroundWS::EventPlayerClickedOnFlag(Player* source, GameObject* target source->CastSpell(source, BG_WS_SPELL_WARSONG_FLAG, true); m_flagState[BG_TEAM_HORDE] = BG_WS_FLAG_STATE_ON_PLAYER; UpdateFlagState(ALLIANCE, BG_WS_FLAG_STATE_ON_PLAYER); - UpdateWorldState(BG_WS_FLAG_UNK_HORDE, 1); + UpdateWorldState(BG_WS_FLAG_TAKEN_HORDE, 1); } //called in HandleGameObjectUseOpcode: //targetGo->Delete(); @@ -687,18 +688,18 @@ void BattleGroundWS::FillInitialWorldStates(WorldPacket& data, uint32& count) FillInitialWorldState(data, count, BG_WS_FLAG_CAPTURES_HORDE, GetTeamScore(HORDE)); if (m_flagState[BG_TEAM_ALLIANCE] == BG_WS_FLAG_STATE_ON_GROUND) - FillInitialWorldState(data, count, BG_WS_FLAG_UNK_ALLIANCE, -1); + FillInitialWorldState(data, count, BG_WS_FLAG_TAKEN_ALLIANCE, -1); else if (m_flagState[BG_TEAM_ALLIANCE] == BG_WS_FLAG_STATE_ON_PLAYER) - FillInitialWorldState(data, count, BG_WS_FLAG_UNK_ALLIANCE, 1); + FillInitialWorldState(data, count, BG_WS_FLAG_TAKEN_ALLIANCE, 1); else - FillInitialWorldState(data, count, BG_WS_FLAG_UNK_ALLIANCE, 0); + FillInitialWorldState(data, count, BG_WS_FLAG_TAKEN_ALLIANCE, 0); if (m_flagState[BG_TEAM_HORDE] == BG_WS_FLAG_STATE_ON_GROUND) - FillInitialWorldState(data, count, BG_WS_FLAG_UNK_HORDE, -1); + FillInitialWorldState(data, count, BG_WS_FLAG_TAKEN_HORDE, -1); else if (m_flagState[BG_TEAM_HORDE] == BG_WS_FLAG_STATE_ON_PLAYER) - FillInitialWorldState(data, count, BG_WS_FLAG_UNK_HORDE, 1); + FillInitialWorldState(data, count, BG_WS_FLAG_TAKEN_HORDE, 1); else - FillInitialWorldState(data, count, BG_WS_FLAG_UNK_HORDE, 0); + FillInitialWorldState(data, count, BG_WS_FLAG_TAKEN_HORDE, 0); FillInitialWorldState(data, count, BG_WS_FLAG_CAPTURES_MAX, BG_WS_MAX_TEAM_SCORE); diff --git a/src/game/Battlegrounds/BattleGroundWS.h b/src/game/Battlegrounds/BattleGroundWS.h index 76e5aef7082..0f87ff7de6e 100644 --- a/src/game/Battlegrounds/BattleGroundWS.h +++ b/src/game/Battlegrounds/BattleGroundWS.h @@ -49,8 +49,8 @@ enum BG_WS_SpellId enum BG_WS_WorldStates { - BG_WS_FLAG_UNK_ALLIANCE = 1545, - BG_WS_FLAG_UNK_HORDE = 1546, + BG_WS_FLAG_TAKEN_ALLIANCE = 1545, // Alliance Flag has been taken by the Horde + BG_WS_FLAG_TAKEN_HORDE = 1546, // Horde Flag has been taken by the Alliance // FLAG_UNK = 1547, BG_WS_FLAG_CAPTURES_ALLIANCE = 1581, BG_WS_FLAG_CAPTURES_HORDE = 1582, diff --git a/src/game/CMakeLists.txt b/src/game/CMakeLists.txt index c389a1ad69c..50029dd0b66 100644 --- a/src/game/CMakeLists.txt +++ b/src/game/CMakeLists.txt @@ -253,6 +253,7 @@ set (game_SRCS Weather.h World.h WorldSession.h + WorldStates.h AI/BasicAI.h AI/CreatureAI.h AI/CreatureAIImpl.h diff --git a/src/game/HardcodedEvents.cpp b/src/game/HardcodedEvents.cpp index 2c11bc5f497..d525f899361 100644 --- a/src/game/HardcodedEvents.cpp +++ b/src/game/HardcodedEvents.cpp @@ -1235,20 +1235,20 @@ void ScourgeInvasionEvent::UpdateWorldState() if (!pl->IsInWorld()) continue; - pl->SendUpdateWorldState(WORLDSTATE_AZSHARA, REMAINING_AZSHARA > 0 ? 1 : 0); - pl->SendUpdateWorldState(WORLDSTATE_BLASTED_LANDS, REMAINING_BLASTED_LANDS > 0 ? 1 : 0); - pl->SendUpdateWorldState(WORLDSTATE_BURNING_STEPPES, REMAINING_BURNING_STEPPES > 0 ? 1 : 0); - pl->SendUpdateWorldState(WORLDSTATE_EASTERN_PLAGUELANDS, REMAINING_EASTERN_PLAGUELANDS > 0 ? 1 : 0); - pl->SendUpdateWorldState(WORLDSTATE_TANARIS, REMAINING_TANARIS > 0 ? 1 : 0); - pl->SendUpdateWorldState(WORLDSTATE_WINTERSPRING, REMAINING_WINTERSPRING > 0 ? 1 : 0); - - pl->SendUpdateWorldState(WORLDSTATE_SI_BATTLES_WON, VICTORIES); - pl->SendUpdateWorldState(WORLDSTATE_SI_AZSHARA_REMAINING, REMAINING_AZSHARA); - pl->SendUpdateWorldState(WORLDSTATE_SI_BLASTED_LANDS_REMAINING, REMAINING_BLASTED_LANDS); - pl->SendUpdateWorldState(WORLDSTATE_SI_BURNING_STEPPES_REMAINING, REMAINING_BURNING_STEPPES); - pl->SendUpdateWorldState(WORLDSTATE_SI_EASTERN_PLAGUELANDS, REMAINING_EASTERN_PLAGUELANDS); - pl->SendUpdateWorldState(WORLDSTATE_SI_TANARIS, REMAINING_TANARIS); - pl->SendUpdateWorldState(WORLDSTATE_SI_WINTERSPRING, REMAINING_WINTERSPRING); + pl->SendUpdateWorldState(WS_SI_AZSHARA_INVADED, REMAINING_AZSHARA > 0 ? 1 : 0); + pl->SendUpdateWorldState(WS_SI_BLASTED_LANDS_INVADED, REMAINING_BLASTED_LANDS > 0 ? 1 : 0); + pl->SendUpdateWorldState(WS_SI_BURNING_STEPPES_INVADED, REMAINING_BURNING_STEPPES > 0 ? 1 : 0); + pl->SendUpdateWorldState(WS_SI_EASTERN_PLAGUELANDS_INVADED, REMAINING_EASTERN_PLAGUELANDS > 0 ? 1 : 0); + pl->SendUpdateWorldState(WS_SI_TANARIS_INVADED, REMAINING_TANARIS > 0 ? 1 : 0); + pl->SendUpdateWorldState(WS_SI_WINTERSPRING_INVADED, REMAINING_WINTERSPRING > 0 ? 1 : 0); + + pl->SendUpdateWorldState(WS_SI_BATTLES_WON, VICTORIES); + pl->SendUpdateWorldState(WS_SI_AZSHARA_REMAINING, REMAINING_AZSHARA); + pl->SendUpdateWorldState(WS_SI_BLASTED_LANDS_REMAINING, REMAINING_BLASTED_LANDS); + pl->SendUpdateWorldState(WS_SI_BURNING_STEPPES_REMAINING, REMAINING_BURNING_STEPPES); + pl->SendUpdateWorldState(WS_SI_PLAGUELANDS_REMAINING, REMAINING_EASTERN_PLAGUELANDS); + pl->SendUpdateWorldState(WS_SI_TANARIS_REMAINING, REMAINING_TANARIS); + pl->SendUpdateWorldState(WS_SI_WINTERSPRING_REMAINING, REMAINING_WINTERSPRING); } } diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index d154305220d..f9bca287fb6 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -8438,11 +8438,10 @@ void Player::SendNotifyLootItemRemoved(uint8 lootSlot) const GetSession()->SendPacket(&data); } -void Player::SendUpdateWorldState(uint32 field, uint32 value) const +void Player::SendUpdateWorldState(uint32 state, uint32 value) const { WorldPacket data(SMSG_UPDATE_WORLD_STATE, 8); - data << field; - data << value; + WriteUpdateWorldStatePair(data, state, value); GetSession()->SendPacket(&data); } @@ -8571,45 +8570,47 @@ void Player::SendInitWorldStates(uint32 zoneid) const uint32 count = 1; // count of world states in packet, 1 extra for the terminator WorldPacket data(SMSG_INIT_WORLD_STATES, (4 + 4 + 2 + 6)); - data << uint32(mapid); // mapid + data << uint32(mapid); // map id +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_11_2 data << uint32(zoneid); // zone id +#endif + size_t count_pos = data.wpos(); data << uint16(0); // count of uint32 blocks, placeholder // Scourge Invasion - Patch 1.11 if (sGameEventMgr.IsActiveEvent(GAME_EVENT_SCOURGE_INVASION)) { - int VICTORIES = sObjectMgr.GetSavedVariable(VARIABLE_SI_ATTACK_COUNT); - int REMAINING_AZSHARA = sObjectMgr.GetSavedVariable(VARIABLE_SI_AZSHARA_REMAINING); - int REMAINING_BLASTED_LANDS = sObjectMgr.GetSavedVariable(VARIABLE_SI_BLASTED_LANDS_REMAINING); - int REMAINING_BURNING_STEPPES = sObjectMgr.GetSavedVariable(VARIABLE_SI_BURNING_STEPPES_REMAINING); - int REMAINING_EASTERN_PLAGUELANDS = sObjectMgr.GetSavedVariable(VARIABLE_SI_EASTERN_PLAGUELANDS_REMAINING); - int REMAINING_TANARIS = sObjectMgr.GetSavedVariable(VARIABLE_SI_TANARIS_REMAINING); - int REMAINING_WINTERSPRING = sObjectMgr.GetSavedVariable(VARIABLE_SI_WINTERSPRING_REMAINING); - - data << uint32(WORLDSTATE_AZSHARA) << uint32(REMAINING_AZSHARA > 0 ? 1 : 0); - data << uint32(WORLDSTATE_BLASTED_LANDS) << uint32(REMAINING_BLASTED_LANDS > 0 ? 1 : 0); - data << uint32(WORLDSTATE_BURNING_STEPPES) << uint32(REMAINING_BURNING_STEPPES > 0 ? 1 : 0); - data << uint32(WORLDSTATE_EASTERN_PLAGUELANDS) << uint32(REMAINING_EASTERN_PLAGUELANDS > 0 ? 1 : 0); - data << uint32(WORLDSTATE_TANARIS) << uint32(REMAINING_TANARIS > 0 ? 1 : 0); - data << uint32(WORLDSTATE_WINTERSPRING) << uint32(REMAINING_WINTERSPRING > 0 ? 1 : 0); + int victories = sObjectMgr.GetSavedVariable(VARIABLE_SI_ATTACK_COUNT); + int remainingAzshara = sObjectMgr.GetSavedVariable(VARIABLE_SI_AZSHARA_REMAINING); + int remainingBlastedLands = sObjectMgr.GetSavedVariable(VARIABLE_SI_BLASTED_LANDS_REMAINING); + int remainingBurningSteppes = sObjectMgr.GetSavedVariable(VARIABLE_SI_BURNING_STEPPES_REMAINING); + int remainingEasternPlaguelands = sObjectMgr.GetSavedVariable(VARIABLE_SI_EASTERN_PLAGUELANDS_REMAINING); + int remainingTanaris = sObjectMgr.GetSavedVariable(VARIABLE_SI_TANARIS_REMAINING); + int remainingWinterspring = sObjectMgr.GetSavedVariable(VARIABLE_SI_WINTERSPRING_REMAINING); + + WriteInitialWorldStatePair(data, WS_SI_AZSHARA_INVADED, remainingAzshara > 0 ? 1 : 0); + WriteInitialWorldStatePair(data, WS_SI_BLASTED_LANDS_INVADED, remainingBlastedLands > 0 ? 1 : 0); + WriteInitialWorldStatePair(data, WS_SI_BURNING_STEPPES_INVADED, remainingBurningSteppes > 0 ? 1 : 0); + WriteInitialWorldStatePair(data, WS_SI_EASTERN_PLAGUELANDS_INVADED, remainingEasternPlaguelands > 0 ? 1 : 0); + WriteInitialWorldStatePair(data, WS_SI_TANARIS_INVADED, remainingTanaris > 0 ? 1 : 0); + WriteInitialWorldStatePair(data, WS_SI_WINTERSPRING_INVADED, remainingWinterspring > 0 ? 1 : 0); // Battles & remaining necropolisses - data << uint32(WORLDSTATE_SI_BATTLES_WON) << uint32(VICTORIES); - data << uint32(WORLDSTATE_SI_AZSHARA_REMAINING) << uint32(REMAINING_AZSHARA); - data << uint32(WORLDSTATE_SI_BLASTED_LANDS_REMAINING) << uint32(REMAINING_BLASTED_LANDS); - data << uint32(WORLDSTATE_SI_BURNING_STEPPES_REMAINING) << uint32(REMAINING_BURNING_STEPPES); - data << uint32(WORLDSTATE_SI_EASTERN_PLAGUELANDS) << uint32(REMAINING_EASTERN_PLAGUELANDS); - data << uint32(WORLDSTATE_SI_TANARIS) << uint32(REMAINING_TANARIS); - data << uint32(WORLDSTATE_SI_WINTERSPRING) << uint32(REMAINING_WINTERSPRING); + WriteInitialWorldStatePair(data, WS_SI_BATTLES_WON, victories); + WriteInitialWorldStatePair(data, WS_SI_AZSHARA_REMAINING, remainingAzshara); + WriteInitialWorldStatePair(data, WS_SI_BLASTED_LANDS_REMAINING, remainingBlastedLands); + WriteInitialWorldStatePair(data, WS_SI_BURNING_STEPPES_REMAINING, remainingBurningSteppes); + WriteInitialWorldStatePair(data, WS_SI_PLAGUELANDS_REMAINING, remainingEasternPlaguelands); + WriteInitialWorldStatePair(data, WS_SI_TANARIS_REMAINING, remainingTanaris); + WriteInitialWorldStatePair(data, WS_SI_WINTERSPRING_REMAINING, remainingWinterspring); count += 13; } for (WorldStatePair const* itr = def_world_states; itr->state; ++itr) { - data << uint32(itr->state); - data << uint32(itr->value); + WriteInitialWorldStatePair(data, itr->state, itr->value); ++count; } diff --git a/src/game/Objects/Player.h b/src/game/Objects/Player.h index 419b2be2663..e72535c6a5d 100644 --- a/src/game/Objects/Player.h +++ b/src/game/Objects/Player.h @@ -2178,7 +2178,7 @@ class Player final: public Unit void SendMessageToSetInRange(WorldPacket* data, float fist, bool self) const override; void SendMessageToSetInRange(WorldPacket* data, float dist, bool self, bool own_team_only) const; void SendInitWorldStates(uint32 zone) const; - void SendUpdateWorldState(uint32 field, uint32 value) const; + void SendUpdateWorldState(uint32 state, uint32 value) const; void SendDirectMessage(WorldPacket* data) const; uint32 GetTotalPlayedTime() const { return m_playedTime[PLAYED_TIME_TOTAL]; } diff --git a/src/game/OutdoorPvP/OutdoorPvPEP.cpp b/src/game/OutdoorPvP/OutdoorPvPEP.cpp index 0cce00ad824..bf9950ecee1 100644 --- a/src/game/OutdoorPvP/OutdoorPvPEP.cpp +++ b/src/game/OutdoorPvP/OutdoorPvPEP.cpp @@ -157,13 +157,13 @@ void OPvPCapturePointEP_EWT::SendChangePhase() uint32 OPvPCapturePointEP_EWT::FillInitialWorldStates(WorldPacket& data) { - data << WS_EASTWALL_TOWER_ALLIANCE << uint32(bool(m_TowerState & TOWERSTATE_ALLIANCE)); - data << WS_EASTWALL_TOWER_HORDE << uint32(bool(m_TowerState & TOWERSTATE_HORDE)); - data << WS_EASTWALL_TOWER_ALLIANCE_PROGRESSING << uint32(bool(m_TowerState & TOWERSTATE_ALLIANCE_PROGRESSING)); - data << WS_EASTWALL_TOWER_HORDE_PROGRESSING << uint32(bool(m_TowerState & TOWERSTATE_HORDE_PROGRESSING)); - data << WS_EASTWALL_TOWER_ALLIANCE_CONTESTED << uint32(bool(m_TowerState & TOWERSTATE_ALLIANCE_CONTESTED)); - data << WS_EASTWALL_TOWER_HORDE_CONTESTED << uint32(bool(m_TowerState & TOWERSTATE_HORDE_CONTESTED)); - data << WS_EASTWALL_TOWER_NEUTRAL << uint32(bool(m_TowerState & TOWERSTATE_NEUTRAL)); + WriteInitialWorldStatePair(data, WS_EASTWALL_TOWER_ALLIANCE, bool(m_TowerState & TOWERSTATE_ALLIANCE)); + WriteInitialWorldStatePair(data, WS_EASTWALL_TOWER_HORDE, bool(m_TowerState & TOWERSTATE_HORDE)); + WriteInitialWorldStatePair(data, WS_EASTWALL_TOWER_ALLIANCE_PROGRESSING, bool(m_TowerState & TOWERSTATE_ALLIANCE_PROGRESSING)); + WriteInitialWorldStatePair(data, WS_EASTWALL_TOWER_HORDE_PROGRESSING, bool(m_TowerState & TOWERSTATE_HORDE_PROGRESSING)); + WriteInitialWorldStatePair(data, WS_EASTWALL_TOWER_ALLIANCE_CONTESTED, bool(m_TowerState & TOWERSTATE_ALLIANCE_CONTESTED)); + WriteInitialWorldStatePair(data, WS_EASTWALL_TOWER_HORDE_CONTESTED, bool(m_TowerState & TOWERSTATE_HORDE_CONTESTED)); + WriteInitialWorldStatePair(data, WS_EASTWALL_TOWER_NEUTRAL, bool(m_TowerState & TOWERSTATE_NEUTRAL)); return 7; } @@ -404,13 +404,13 @@ void OPvPCapturePointEP_NPT::SendChangePhase() uint32 OPvPCapturePointEP_NPT::FillInitialWorldStates(WorldPacket& data) { - data << WS_NORTHPASS_TOWER_ALLIANCE << uint32(bool(m_TowerState & TOWERSTATE_ALLIANCE)); - data << WS_NORTHPASS_TOWER_HORDE << uint32(bool(m_TowerState & TOWERSTATE_HORDE)); - data << WS_NORTHPASS_TOWER_ALLIANCE_PROGRESSING << uint32(bool(m_TowerState & TOWERSTATE_ALLIANCE_PROGRESSING)); - data << WS_NORTHPASS_TOWER_HORDE_PROGRESSING << uint32(bool(m_TowerState & TOWERSTATE_HORDE_PROGRESSING)); - data << WS_NORTHPASS_TOWER_ALLIANCE_CONTESTED << uint32(bool(m_TowerState & TOWERSTATE_ALLIANCE_CONTESTED)); - data << WS_NORTHPASS_TOWER_HORDE_CONTESTED << uint32(bool(m_TowerState & TOWERSTATE_HORDE_CONTESTED)); - data << WS_NORTHPASS_TOWER_NEUTRAL << uint32(bool(m_TowerState & TOWERSTATE_NEUTRAL)); + WriteInitialWorldStatePair(data, WS_NORTHPASS_TOWER_ALLIANCE, bool(m_TowerState & TOWERSTATE_ALLIANCE)); + WriteInitialWorldStatePair(data, WS_NORTHPASS_TOWER_HORDE, bool(m_TowerState & TOWERSTATE_HORDE)); + WriteInitialWorldStatePair(data, WS_NORTHPASS_TOWER_ALLIANCE_PROGRESSING, bool(m_TowerState & TOWERSTATE_ALLIANCE_PROGRESSING)); + WriteInitialWorldStatePair(data, WS_NORTHPASS_TOWER_HORDE_PROGRESSING, bool(m_TowerState & TOWERSTATE_HORDE_PROGRESSING)); + WriteInitialWorldStatePair(data, WS_NORTHPASS_TOWER_ALLIANCE_CONTESTED, bool(m_TowerState & TOWERSTATE_ALLIANCE_CONTESTED)); + WriteInitialWorldStatePair(data, WS_NORTHPASS_TOWER_HORDE_CONTESTED, bool(m_TowerState & TOWERSTATE_HORDE_CONTESTED)); + WriteInitialWorldStatePair(data, WS_NORTHPASS_TOWER_NEUTRAL, bool(m_TowerState & TOWERSTATE_NEUTRAL)); return 7; } @@ -625,13 +625,13 @@ void OPvPCapturePointEP_CGT::SendChangePhase() uint32 OPvPCapturePointEP_CGT::FillInitialWorldStates(WorldPacket& data) { - data << WS_CROWN_GUARD_TOWER_ALLIANCE << uint32(bool(m_TowerState & TOWERSTATE_ALLIANCE)); - data << WS_CROWN_GUARD_TOWER_HORDE << uint32(bool(m_TowerState & TOWERSTATE_HORDE)); - data << WS_CROWN_GUARD_TOWER_ALLIANCE_PROGRESSING << uint32(bool(m_TowerState & TOWERSTATE_ALLIANCE_PROGRESSING)); - data << WS_CROWN_GUARD_TOWER_HORDE_PROGRESSING << uint32(bool(m_TowerState & TOWERSTATE_HORDE_PROGRESSING)); - data << WS_CROWN_GUARD_TOWER_ALLIANCE_CONTESTED << uint32(bool(m_TowerState & TOWERSTATE_ALLIANCE_CONTESTED)); - data << WS_CROWN_GUARD_TOWER_HORDE_CONTESTED << uint32(bool(m_TowerState & TOWERSTATE_HORDE_CONTESTED)); - data << WS_CROWN_GUARD_TOWER_NEUTRAL << uint32(bool(m_TowerState & TOWERSTATE_NEUTRAL)); + WriteInitialWorldStatePair(data, WS_CROWN_GUARD_TOWER_ALLIANCE, bool(m_TowerState & TOWERSTATE_ALLIANCE)); + WriteInitialWorldStatePair(data, WS_CROWN_GUARD_TOWER_HORDE, bool(m_TowerState & TOWERSTATE_HORDE)); + WriteInitialWorldStatePair(data, WS_CROWN_GUARD_TOWER_ALLIANCE_PROGRESSING, bool(m_TowerState & TOWERSTATE_ALLIANCE_PROGRESSING)); + WriteInitialWorldStatePair(data, WS_CROWN_GUARD_TOWER_HORDE_PROGRESSING, bool(m_TowerState & TOWERSTATE_HORDE_PROGRESSING)); + WriteInitialWorldStatePair(data, WS_CROWN_GUARD_TOWER_ALLIANCE_CONTESTED, bool(m_TowerState & TOWERSTATE_ALLIANCE_CONTESTED)); + WriteInitialWorldStatePair(data, WS_CROWN_GUARD_TOWER_HORDE_CONTESTED, bool(m_TowerState & TOWERSTATE_HORDE_CONTESTED)); + WriteInitialWorldStatePair(data, WS_CROWN_GUARD_TOWER_NEUTRAL, bool(m_TowerState & TOWERSTATE_NEUTRAL)); return 7; } @@ -864,13 +864,13 @@ void OPvPCapturePointEP_PWT::SendChangePhase() uint32 OPvPCapturePointEP_PWT::FillInitialWorldStates(WorldPacket& data) { - data << WS_PLAGUEWOOD_TOWER_ALLIANCE << uint32(bool(m_TowerState & TOWERSTATE_ALLIANCE)); - data << WS_PLAGUEWOOD_TOWER_HORDE << uint32(bool(m_TowerState & TOWERSTATE_HORDE)); - data << WS_PLAGUEWOOD_TOWER_ALLIANCE_PROGRESSING << uint32(bool(m_TowerState & TOWERSTATE_ALLIANCE_PROGRESSING)); - data << WS_PLAGUEWOOD_TOWER_HORDE_PROGRESSING << uint32(bool(m_TowerState & TOWERSTATE_HORDE_PROGRESSING)); - data << WS_PLAGUEWOOD_TOWER_ALLIANCE_CONTESTED << uint32(bool(m_TowerState & TOWERSTATE_ALLIANCE_CONTESTED)); - data << WS_PLAGUEWOOD_TOWER_HORDE_CONTESTED << uint32(bool(m_TowerState & TOWERSTATE_HORDE_CONTESTED)); - data << WS_PLAGUEWOOD_TOWER_NEUTRAL << uint32(bool(m_TowerState & TOWERSTATE_NEUTRAL)); + WriteInitialWorldStatePair(data, WS_PLAGUEWOOD_TOWER_ALLIANCE, bool(m_TowerState & TOWERSTATE_ALLIANCE)); + WriteInitialWorldStatePair(data, WS_PLAGUEWOOD_TOWER_HORDE, bool(m_TowerState & TOWERSTATE_HORDE)); + WriteInitialWorldStatePair(data, WS_PLAGUEWOOD_TOWER_ALLIANCE_PROGRESSING, bool(m_TowerState & TOWERSTATE_ALLIANCE_PROGRESSING)); + WriteInitialWorldStatePair(data, WS_PLAGUEWOOD_TOWER_HORDE_PROGRESSING, bool(m_TowerState & TOWERSTATE_HORDE_PROGRESSING)); + WriteInitialWorldStatePair(data, WS_PLAGUEWOOD_TOWER_ALLIANCE_CONTESTED, bool(m_TowerState & TOWERSTATE_ALLIANCE_CONTESTED)); + WriteInitialWorldStatePair(data, WS_PLAGUEWOOD_TOWER_HORDE_CONTESTED, bool(m_TowerState & TOWERSTATE_HORDE_CONTESTED)); + WriteInitialWorldStatePair(data, WS_PLAGUEWOOD_TOWER_NEUTRAL, bool(m_TowerState & TOWERSTATE_NEUTRAL)); return 7; } @@ -1053,11 +1053,11 @@ void OutdoorPvPEP::BuffTeams() uint32 OutdoorPvPEP::FillInitialWorldStates(WorldPacket& data) { - data << WS_UI_TOWER_COUNT_ALLIANCE << m_AllianceTowersControlled; - data << WS_UI_TOWER_COUNT_HORDE << m_HordeTowersControlled; - data << WS_UI_TOWER_SLIDER_DISPLAY << uint32(0); - data << WS_UI_TOWER_SLIDER_POSITION << uint32(50); - data << WS_UI_TOWER_SLIDER_N << uint32(100); + WriteInitialWorldStatePair(data, WS_UI_TOWER_COUNT_ALLIANCE, m_AllianceTowersControlled); + WriteInitialWorldStatePair(data, WS_UI_TOWER_COUNT_HORDE, m_HordeTowersControlled); + WriteInitialWorldStatePair(data, WS_UI_TOWER_SLIDER_DISPLAY, 0); + WriteInitialWorldStatePair(data, WS_UI_TOWER_SLIDER_POSITION, 50); + WriteInitialWorldStatePair(data, WS_UI_TOWER_SLIDER_N, 100); uint32 count = 5; for (const auto& itr : m_capturePoints) count += itr.second->FillInitialWorldStates(data); diff --git a/src/game/OutdoorPvP/OutdoorPvPEP.h b/src/game/OutdoorPvP/OutdoorPvPEP.h index e30b7b41ceb..c61f7c0f82c 100644 --- a/src/game/OutdoorPvP/OutdoorPvPEP.h +++ b/src/game/OutdoorPvP/OutdoorPvPEP.h @@ -19,51 +19,10 @@ #define OUTDOOR_PVP_EP_ #include "ZoneScript.h" +#include "WorldStates.h" #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_11_2 -enum WorldStates -{ - WS_EASTWALL_TOWER_ALLIANCE = 2354, // Blue Tower icon on map - WS_EASTWALL_TOWER_HORDE = 2356, // Red Tower icon on map - WS_EASTWALL_TOWER_ALLIANCE_PROGRESSING = 2357, // Blue Tower icon on map - WS_EASTWALL_TOWER_HORDE_PROGRESSING = 2358, // Red Tower icon on map - WS_EASTWALL_TOWER_ALLIANCE_CONTESTED = 2359, // Grey Tower icon on map - WS_EASTWALL_TOWER_HORDE_CONTESTED = 2360, // Grey Tower icon on map - WS_EASTWALL_TOWER_NEUTRAL = 2361, // Grey Tower icon on map - - WS_NORTHPASS_TOWER_ALLIANCE = 2372, // Blue Tower icon on map - WS_NORTHPASS_TOWER_HORDE = 2373, // Red Tower icon on map - WS_NORTHPASS_TOWER_ALLIANCE_PROGRESSING = 2364, // Blue Tower icon on map - WS_NORTHPASS_TOWER_HORDE_PROGRESSING = 2365, // Red Tower icon on map - WS_NORTHPASS_TOWER_ALLIANCE_CONTESTED = 2362, // Grey Tower icon on map - WS_NORTHPASS_TOWER_HORDE_CONTESTED = 2363, // Grey Tower icon on map - WS_NORTHPASS_TOWER_NEUTRAL = 2352, // Grey Tower icon on map - - WS_PLAGUEWOOD_TOWER_ALLIANCE = 2370, // Blue Tower icon on map - WS_PLAGUEWOOD_TOWER_HORDE = 2371, // Red Tower icon on map - WS_PLAGUEWOOD_TOWER_ALLIANCE_PROGRESSING = 2368, // Blue Tower icon on map - WS_PLAGUEWOOD_TOWER_HORDE_PROGRESSING = 2369, // Red Tower icon on map - WS_PLAGUEWOOD_TOWER_ALLIANCE_CONTESTED = 2366, // Grey Tower icon on map - WS_PLAGUEWOOD_TOWER_HORDE_CONTESTED = 2367, // No Tower icon on map, 2367 is not working client side ".debug send worldstate 2367 1" - WS_PLAGUEWOOD_TOWER_NEUTRAL = 2353, // Grey Tower icon on map - - WS_CROWN_GUARD_TOWER_ALLIANCE = 2378, // Blue Tower icon on map - WS_CROWN_GUARD_TOWER_HORDE = 2379, // Red Tower icon on map - WS_CROWN_GUARD_TOWER_ALLIANCE_PROGRESSING = 2376, // Blue Tower icon on map - WS_CROWN_GUARD_TOWER_HORDE_PROGRESSING = 2377, // Red Tower icon on map - WS_CROWN_GUARD_TOWER_ALLIANCE_CONTESTED = 2374, // Grey Tower icon on map - WS_CROWN_GUARD_TOWER_HORDE_CONTESTED = 2375, // Grey Tower icon on map - WS_CROWN_GUARD_TOWER_NEUTRAL = 2355, // Grey Tower icon on map - - WS_UI_TOWER_SLIDER_DISPLAY = 2426, - WS_UI_TOWER_SLIDER_POSITION = 2427, - WS_UI_TOWER_SLIDER_N = 2428, - - WS_UI_TOWER_COUNT_ALLIANCE = 2327, - WS_UI_TOWER_COUNT_HORDE = 2328 -}; - enum BroadCastTexts { BCT_PLAGUEWOOD_TOWER_ALLIANCE = 13629, // |cffffff00The Plaguewood Tower has been taken by the Alliance!| r diff --git a/src/game/OutdoorPvP/OutdoorPvPSI.cpp b/src/game/OutdoorPvP/OutdoorPvPSI.cpp index 8ff20138d7b..825fedcb31b 100644 --- a/src/game/OutdoorPvP/OutdoorPvPSI.cpp +++ b/src/game/OutdoorPvP/OutdoorPvPSI.cpp @@ -37,27 +37,27 @@ OutdoorPvPSI::OutdoorPvPSI() uint32 OutdoorPvPSI::FillInitialWorldStates(WorldPacket& data) { - data << SI_GATHERED_A << m_Gathered_A; - data << SI_GATHERED_H << m_Gathered_H; - data << SI_SILITHYST_MAX << m_MaxRessources; + WriteInitialWorldStatePair(data, WS_OPVP_SI_GATHERED_A, m_Gathered_A); + WriteInitialWorldStatePair(data, WS_OPVP_SI_GATHERED_H, m_Gathered_H); + WriteInitialWorldStatePair(data, WS_OPVP_SI_SILITHYST_MAX, m_MaxRessources); return 3; } void OutdoorPvPSI::SendRemoveWorldStates(Player* plr) { - plr->SendUpdateWorldState(SI_GATHERED_A, 0); - plr->SendUpdateWorldState(SI_GATHERED_H, 0); - plr->SendUpdateWorldState(SI_SILITHYST_MAX, 0); + plr->SendUpdateWorldState(WS_OPVP_SI_GATHERED_A, 0); + plr->SendUpdateWorldState(WS_OPVP_SI_GATHERED_H, 0); + plr->SendUpdateWorldState(WS_OPVP_SI_SILITHYST_MAX, 0); } void OutdoorPvPSI::UpdateWorldState() { - SendUpdateWorldState(SI_GATHERED_A, m_Gathered_A); - SendUpdateWorldState(SI_GATHERED_H, m_Gathered_H); - SendUpdateWorldState(SI_SILITHYST_MAX, m_MaxRessources); - sObjectMgr.SetSavedVariable(uint32(SI_GATHERED_A), m_Gathered_A); - sObjectMgr.SetSavedVariable(uint32(SI_GATHERED_H), m_Gathered_H); - sObjectMgr.SetSavedVariable(uint32(SI_SILITHYST_MAX), m_MaxRessources); + SendUpdateWorldState(WS_OPVP_SI_GATHERED_A, m_Gathered_A); + SendUpdateWorldState(WS_OPVP_SI_GATHERED_H, m_Gathered_H); + SendUpdateWorldState(WS_OPVP_SI_SILITHYST_MAX, m_MaxRessources); + sObjectMgr.SetSavedVariable(uint32(WS_OPVP_SI_GATHERED_A), m_Gathered_A); + sObjectMgr.SetSavedVariable(uint32(WS_OPVP_SI_GATHERED_H), m_Gathered_H); + sObjectMgr.SetSavedVariable(uint32(WS_OPVP_SI_SILITHYST_MAX), m_MaxRessources); } bool OutdoorPvPSI::SetupZoneScript() @@ -65,7 +65,7 @@ bool OutdoorPvPSI::SetupZoneScript() for (uint32 i : OutdoorPvPSIBuffZones) RegisterZone(i); // On reprend les donnees precedentes (avant dernier reboot) - m_MaxRessources = sObjectMgr.GetSavedVariable(uint32(SI_SILITHYST_MAX), SI_MAX_RESOURCES_DEFAULT); + m_MaxRessources = sObjectMgr.GetSavedVariable(uint32(WS_OPVP_SI_SILITHYST_MAX), SI_MAX_RESOURCES_DEFAULT); m_Gathered_A = 0; m_Gathered_H = 0; diff --git a/src/game/OutdoorPvP/OutdoorPvPSI.h b/src/game/OutdoorPvP/OutdoorPvPSI.h index 3f204af0f24..4ead562c751 100644 --- a/src/game/OutdoorPvP/OutdoorPvPSI.h +++ b/src/game/OutdoorPvP/OutdoorPvPSI.h @@ -19,6 +19,7 @@ #define OUTDOOR_PVP_SI_ #include "ZoneScript.h" +#include "WorldStates.h" #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_11_2 @@ -46,13 +47,6 @@ uint32 const SI_TURNIN_QUEST_CM_H = 18199; uint32 const SI_SILITHYST_MOUND = 181597; uint32 const SI_SILITHYST_GEYSER = 181598; -enum SI_WorldStates -{ - SI_GATHERED_A = 2313, - SI_GATHERED_H = 2314, - SI_SILITHYST_MAX = 2317 -}; - class OutdoorPvPSI : public OutdoorPvP { public: diff --git a/src/game/WorldStates.h b/src/game/WorldStates.h new file mode 100644 index 00000000000..95323752642 --- /dev/null +++ b/src/game/WorldStates.h @@ -0,0 +1,178 @@ +/* + * Copyright (C) 2005-2011 MaNGOS + * Copyright (C) 2009-2011 MaNGOSZero + * Copyright (C) 2011-2016 Nostalrius + * Copyright (C) 2016-2017 Elysium Project + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef MANGOS_WORLDSTATES_H +#define MANGOS_WORLDSTATES_H + +#include "Platform/Define.h" +#include "Progression.h" +#include "ByteBuffer.h" + +enum WorldStates +{ + // Ahn'Qiraj War Effort + + WS_WE_SHARED_COPPERBAR_REQUIRE = 1998, + WS_WE_SHARED_PURPLELOTUS_REQUIRE = 2055, + WS_WE_SHARED_THICKLEATHER_REQUIRE = 2071, + WS_WE_SHARED_SPOTYELLOW_REQUIRE = 2103, + WS_WE_SHARED_RUNEBANDAGE_REQUIRE = 2090, + + WS_WE_ALLIANCE_COPPERBAR_CURRENT = 1997, + WS_WE_ALLIANCE_PURPLELOTUS_CURRENT = 2053, + WS_WE_ALLIANCE_THICKLEATHER_CURRENT = 2069, + WS_WE_ALLIANCE_SPOTYELLOW_CURRENT = 2101, + WS_WE_ALLIANCE_RUNEBANDAGE_CURRENT = 2088, + WS_WE_ALLIANCE_IRONBAR_CURRENT = 2002, + WS_WE_ALLIANCE_IRONBAR_REQUIRE = 2003, + WS_WE_ALLIANCE_THORIUMBAR_CURRENT = 2011, + WS_WE_ALLIANCE_THORIUMBAR_REQUIRE = 2012, + WS_WE_ALLIANCE_ARTHASTEAR_CURRENT = 2057, + WS_WE_ALLIANCE_ARTHASTEAR_REQUIRE = 2058, + WS_WE_ALLIANCE_STRANGLEKELP_CURRENT = 2047, + WS_WE_ALLIANCE_STRANGLEKELP_REQUIRE = 2048, + WS_WE_ALLIANCE_LIGHTLEATHER_CURRENT = 2060, + WS_WE_ALLIANCE_LIGHTLEATHER_REQUIRE = 2061, + WS_WE_ALLIANCE_MEDIUMLEATHER_CURRENT = 2063, + WS_WE_ALLIANCE_MEDIUMLEATHER_REQUIRE = 2064, + WS_WE_ALLIANCE_ROASTRAPTOR_CURRENT = 2098, + WS_WE_ALLIANCE_ROASTRAPTOR_REQUIRE = 2099, + WS_WE_ALLIANCE_RBOWALBA_CURRENT = 2092, + WS_WE_ALLIANCE_RBOWALBA_REQUIRE = 2093, + WS_WE_ALLIANCE_LINENBANDAGE_CURRENT = 2076, + WS_WE_ALLIANCE_LINENBANDAGE_REQUIRE = 2077, + WS_WE_ALLIANCE_SILKBANDAGE_CURRENT = 2082, + WS_WE_ALLIANCE_SILKBANDAGE_REQUIRE = 2083, + + WS_WE_HORDE_COPPERBAR_CURRENT = 2018, + WS_WE_HORDE_PURPLELOTUS_CURRENT = 2054, + WS_WE_HORDE_THICKLEATHER_CURRENT = 2070, + WS_WE_HORDE_SPOTYELLOW_CURRENT = 2102, + WS_WE_HORDE_RUNEBANDAGE_CURRENT = 2089, + WS_WE_HORDE_TINBAR_CURRENT = 2005, + WS_WE_HORDE_TINBAR_REQUIRE = 2006, + WS_WE_HORDE_MITHRILBAR_CURRENT = 2008, + WS_WE_HORDE_MITRHILBAR_REQUIRE = 2009, + WS_WE_HORDE_PEACEBLOOM_CURRENT = 2021, // Yes, these Peacebloom are intentionally out of order. Thanks Big B + WS_WE_HORDE_PEACEBLOOM_REQUIRE = 2020, + WS_WE_HORDE_FIREBLOOM_CURRENT = 2050, + WS_WE_HORDE_FIREBLOOM_REQUIRE = 2051, + WS_WE_HORDE_HEAVYLEATHER_CURRENT = 2066, + WS_WE_HORDE_HEAVYLEATHER_REQUIRE = 2067, + WS_WE_HORDE_RUGGEDLEATHER_CURRENT = 2073, + WS_WE_HORDE_RUGGEDLEATHER_REQUIRE = 2074, + WS_WE_HORDE_LEANWOLF_CURRENT = 2095, + WS_WE_HORDE_LEANWOLF_REQUIRE = 2096, + WS_WE_HORDE_BAKEDSALMON_CURRENT = 2105, + WS_WE_HORDE_BAKEDSALMON_REQUIRE = 2106, + WS_WE_HORDE_WOOLBANDAGE_CURRENT = 2079, + WS_WE_HORDE_WOOLBANDAGE_REQUIRE = 2080, + WS_WE_HORDE_MAGEBANDAGE_CURRENT = 2085, + WS_WE_HORDE_MAGEBANDAGE_REQUIRE = 2086, + + WS_WE_TRANSITION_DAYS_REMAINING = 2113, + + // Scourge Invasion + + WS_SI_WINTERSPRING_INVADED = 2259, // Icon on map. + WS_SI_AZSHARA_INVADED = 2260, // Icon on map. + WS_SI_EASTERN_PLAGUELANDS_INVADED = 2264, // Icon on map. + WS_SI_BLASTED_LANDS_INVADED = 2261, // Icon on map. + WS_SI_BURNING_STEPPES_INVADED = 2262, // Icon on map. + WS_SI_TANARIS_INVADED = 2263, // Icon on map. + + WS_SI_BATTLES_WON = 2219, // We have won $2219W battles against the Scourge. Gird yourself, $n, for this war is far from over. & We have won $2219W battles against the Scourge. Take heart, $n. While many battles lie ahead, heroes, heroes from every realm have risen to fight them. & We have won $2219W battles against the Scourge. Stand firm, $n! We must persevere! + WS_SI_AZSHARA_REMAINING = 2279, // The Scourge infestation grows in Azshara. Every able bodied warrior is needed to stem the tide of their invasion.$B$BNumber of Necropolises remaining: $2279W + WS_SI_BLASTED_LANDS_REMAINING = 2280, // The Scourge infestation grows in the Blasted Lands. Every able bodied warrior is needed to stem the tide of their invasion.$B$BNumber of Necropolises remaining: $2280W + WS_SI_BURNING_STEPPES_REMAINING = 2281, // If additional support is not soon sent to the Burning Steppes, I fear the Scourge will establish a base of operations there. If you can, you should go there to aid the defenders.$B$BNumber of Necropolises remaining: $2281W + WS_SI_PLAGUELANDS_REMAINING = 2282, // The Scourge infestation grows in the Eastern Plaguelands. Every able bodied warrior is needed to stem the tide of their invasion.$B$BNumber of Necropolises remaining: $2282W + WS_SI_TANARIS_REMAINING = 2283, // It seems the army of the Scourge has come to Tanaris. A significant number of their necropolises and other forces have been dispatched there.$B$BNumber of Necropolises remaining: $2283W + WS_SI_WINTERSPRING_REMAINING = 2284, // Indeed, the hills of Winterspring are currently attempting to withstand a renewed Scourge assault. Your assistance would help them greatly.$B$BNumber of Necropolises remaining: $2284W + + // Silithus Outdoor PvP + + WS_OPVP_SI_GATHERED_A = 2313, + WS_OPVP_SI_GATHERED_H = 2314, + WS_OPVP_SI_SILITHYST_MAX = 2317, + + // Eastern Plaguelands Outdoor PvP + + WS_EASTWALL_TOWER_ALLIANCE = 2354, // Blue Tower icon on map + WS_EASTWALL_TOWER_HORDE = 2356, // Red Tower icon on map + WS_EASTWALL_TOWER_ALLIANCE_PROGRESSING = 2357, // Blue Tower icon on map + WS_EASTWALL_TOWER_HORDE_PROGRESSING = 2358, // Red Tower icon on map + WS_EASTWALL_TOWER_ALLIANCE_CONTESTED = 2359, // Grey Tower icon on map + WS_EASTWALL_TOWER_HORDE_CONTESTED = 2360, // Grey Tower icon on map + WS_EASTWALL_TOWER_NEUTRAL = 2361, // Grey Tower icon on map + + WS_NORTHPASS_TOWER_ALLIANCE = 2372, // Blue Tower icon on map + WS_NORTHPASS_TOWER_HORDE = 2373, // Red Tower icon on map + WS_NORTHPASS_TOWER_ALLIANCE_PROGRESSING = 2364, // Blue Tower icon on map + WS_NORTHPASS_TOWER_HORDE_PROGRESSING = 2365, // Red Tower icon on map + WS_NORTHPASS_TOWER_ALLIANCE_CONTESTED = 2362, // Grey Tower icon on map + WS_NORTHPASS_TOWER_HORDE_CONTESTED = 2363, // Grey Tower icon on map + WS_NORTHPASS_TOWER_NEUTRAL = 2352, // Grey Tower icon on map + + WS_PLAGUEWOOD_TOWER_ALLIANCE = 2370, // Blue Tower icon on map + WS_PLAGUEWOOD_TOWER_HORDE = 2371, // Red Tower icon on map + WS_PLAGUEWOOD_TOWER_ALLIANCE_PROGRESSING = 2368, // Blue Tower icon on map + WS_PLAGUEWOOD_TOWER_HORDE_PROGRESSING = 2369, // Red Tower icon on map + WS_PLAGUEWOOD_TOWER_ALLIANCE_CONTESTED = 2366, // Grey Tower icon on map + WS_PLAGUEWOOD_TOWER_HORDE_CONTESTED = 2367, // No Tower icon on map, 2367 is not working client side ".debug send worldstate 2367 1" + WS_PLAGUEWOOD_TOWER_NEUTRAL = 2353, // Grey Tower icon on map + + WS_CROWN_GUARD_TOWER_ALLIANCE = 2378, // Blue Tower icon on map + WS_CROWN_GUARD_TOWER_HORDE = 2379, // Red Tower icon on map + WS_CROWN_GUARD_TOWER_ALLIANCE_PROGRESSING = 2376, // Blue Tower icon on map + WS_CROWN_GUARD_TOWER_HORDE_PROGRESSING = 2377, // Red Tower icon on map + WS_CROWN_GUARD_TOWER_ALLIANCE_CONTESTED = 2374, // Grey Tower icon on map + WS_CROWN_GUARD_TOWER_HORDE_CONTESTED = 2375, // Grey Tower icon on map + WS_CROWN_GUARD_TOWER_NEUTRAL = 2355, // Grey Tower icon on map + + WS_UI_TOWER_SLIDER_DISPLAY = 2426, + WS_UI_TOWER_SLIDER_POSITION = 2427, + WS_UI_TOWER_SLIDER_N = 2428, + + WS_UI_TOWER_COUNT_ALLIANCE = 2327, + WS_UI_TOWER_COUNT_HORDE = 2328, +}; + +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_10_2 +inline void WriteInitialWorldStatePair(ByteBuffer& data, uint32 state, int32 value) +#else +inline void WriteInitialWorldStatePair(ByteBuffer& data, uint16 state, int16 value) +#endif +{ + data << state; + data << value; +} + +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 +inline void WriteUpdateWorldStatePair(ByteBuffer& data, uint32 state, int32 value) +#else +inline void WriteUpdateWorldStatePair(ByteBuffer& data, uint16 state, int16 value) +#endif +{ + data << state; + data << value; +} + +#endif diff --git a/src/scripts/world/scourge_invasion.cpp b/src/scripts/world/scourge_invasion.cpp index 2f44fa02457..d71996ac84c 100644 --- a/src/scripts/world/scourge_invasion.cpp +++ b/src/scripts/world/scourge_invasion.cpp @@ -1178,13 +1178,13 @@ bool GossipHello_npc_argent_emissary(Player* pPlayer, Creature* pCreature) uint32 REMAINING_WINTERSPRING = sObjectMgr.GetSavedVariable(VARIABLE_SI_WINTERSPRING_REMAINING); // Send to client - pPlayer->SendUpdateWorldState(WORLDSTATE_SI_BATTLES_WON, VICTORIES); - pPlayer->SendUpdateWorldState(WORLDSTATE_SI_AZSHARA_REMAINING, REMAINING_AZSHARA); - pPlayer->SendUpdateWorldState(WORLDSTATE_SI_BLASTED_LANDS_REMAINING, REMAINING_BLASTED_LANDS); - pPlayer->SendUpdateWorldState(WORLDSTATE_SI_BURNING_STEPPES_REMAINING, REMAINING_BURNING_STEPPES); - pPlayer->SendUpdateWorldState(WORLDSTATE_SI_EASTERN_PLAGUELANDS, REMAINING_EASTERN_PLAGUELANDS); - pPlayer->SendUpdateWorldState(WORLDSTATE_SI_TANARIS, REMAINING_TANARIS); - pPlayer->SendUpdateWorldState(WORLDSTATE_SI_WINTERSPRING, REMAINING_WINTERSPRING); + pPlayer->SendUpdateWorldState(WS_SI_BATTLES_WON, VICTORIES); + pPlayer->SendUpdateWorldState(WS_SI_AZSHARA_REMAINING, REMAINING_AZSHARA); + pPlayer->SendUpdateWorldState(WS_SI_BLASTED_LANDS_REMAINING, REMAINING_BLASTED_LANDS); + pPlayer->SendUpdateWorldState(WS_SI_BURNING_STEPPES_REMAINING, REMAINING_BURNING_STEPPES); + pPlayer->SendUpdateWorldState(WS_SI_PLAGUELANDS_REMAINING, REMAINING_EASTERN_PLAGUELANDS); + pPlayer->SendUpdateWorldState(WS_SI_TANARIS_REMAINING, REMAINING_TANARIS); + pPlayer->SendUpdateWorldState(WS_SI_WINTERSPRING_REMAINING, REMAINING_WINTERSPRING); pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, BCT_ARGENT_EMISSARY_OPTION_0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, BCT_ARGENT_EMISSARY_OPTION_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); diff --git a/src/scripts/world/scourge_invasion.h b/src/scripts/world/scourge_invasion.h index 9ea612ff0f9..234af00d108 100644 --- a/src/scripts/world/scourge_invasion.h +++ b/src/scripts/world/scourge_invasion.h @@ -16,6 +16,8 @@ #pragma once +#include "WorldStates.h" + enum ScourgeInvasionSpells { SPELL_SPIRIT_PARTICLES_PURPLE = 28126, // Purple Minions Aura. @@ -346,24 +348,8 @@ enum ScourgeInvasionNPCEvents EVENT_PALLID_SUMMON_FLAMESHOCKER = 56 }; -enum ScourgeInvasionWorldStatesVariables +enum ScourgeInvasionVariables { - // Worldstates - WORLDSTATE_WINTERSPRING = 0x08D3, // 2259 - Icon on map. - WORLDSTATE_AZSHARA = 0x08D4, // 2260 - Icon on map. - WORLDSTATE_EASTERN_PLAGUELANDS = 0x08D8, // 2264 - Icon on map. - WORLDSTATE_BLASTED_LANDS = 0x08D5, // 2261 - Icon on map. - WORLDSTATE_BURNING_STEPPES = 0x08D6, // 2262 - Icon on map. - WORLDSTATE_TANARIS = 0x08D7, // 2263 - Icon on map. - - WORLDSTATE_SI_BATTLES_WON = 2219, // We have won $2219W battles against the Scourge. Gird yourself, $n, for this war is far from over. & We have won $2219W battles against the Scourge. Take heart, $n. While many battles lie ahead, heroes, heroes from every realm have risen to fight them. & We have won $2219W battles against the Scourge. Stand firm, $n! We must persevere! - WORLDSTATE_SI_AZSHARA_REMAINING = 2279, // The Scourge infestation grows in Azshara. Every able bodied warrior is needed to stem the tide of their invasion.$B$BNumber of Necropolises remaining: $2279W - WORLDSTATE_SI_BLASTED_LANDS_REMAINING = 2280, // The Scourge infestation grows in the Blasted Lands. Every able bodied warrior is needed to stem the tide of their invasion.$B$BNumber of Necropolises remaining: $2280W - WORLDSTATE_SI_BURNING_STEPPES_REMAINING = 2281, // If additional support is not soon sent to the Burning Steppes, I fear the Scourge will establish a base of operations there. If you can, you should go there to aid the defenders.$B$BNumber of Necropolises remaining: $2281W - WORLDSTATE_SI_EASTERN_PLAGUELANDS = 2282, // The Scourge infestation grows in the Eastern Plaguelands. Every able bodied warrior is needed to stem the tide of their invasion.$B$BNumber of Necropolises remaining: $2282W - WORLDSTATE_SI_TANARIS = 2283, // It seems the army of the Scourge has come to Tanaris. A significant number of their necropolises and other forces have been dispatched there.$B$BNumber of Necropolises remaining: $2283W - WORLDSTATE_SI_WINTERSPRING = 2284, // Indeed, the hills of Winterspring are currently attempting to withstand a renewed Scourge assault. Your assistance would help them greatly.$B$BNumber of Necropolises remaining: $2284W - // Variables VARIABLE_TANARIS_ATTACK_TIME = (GAME_EVENT_SCOURGE_INVASION * 1000) + ZONEID_TANARIS, VARIABLE_BLASTED_LANDS_ATTACK_TIME = (GAME_EVENT_SCOURGE_INVASION * 1000) + ZONEID_BLASTED_LANDS, diff --git a/src/scripts/world/world_event_wareffort.cpp b/src/scripts/world/world_event_wareffort.cpp index ffd8cfdc5a0..970c6217648 100644 --- a/src/scripts/world/world_event_wareffort.cpp +++ b/src/scripts/world/world_event_wareffort.cpp @@ -31,12 +31,12 @@ uint32 BuildWarEffortWorldStates(WorldPacket &data) { uint32 amount = sObjectMgr.GetSavedVariable(AllianceObjectives[i].currentVar, 0); - data << AllianceObjectives[i].wsCurrent << amount; - data << AllianceObjectives[i].wsRequired << AllianceObjectives[i].required; + WriteInitialWorldStatePair(data, AllianceObjectives[i].wsCurrent, amount); + WriteInitialWorldStatePair(data, AllianceObjectives[i].wsRequired, AllianceObjectives[i].required); amount = sObjectMgr.GetSavedVariable(HordeObjectives[i].currentVar, 0); - data << HordeObjectives[i].wsCurrent << amount; - data << HordeObjectives[i].wsRequired << HordeObjectives[i].required; + WriteInitialWorldStatePair(data, HordeObjectives[i].wsCurrent, amount); + WriteInitialWorldStatePair(data, HordeObjectives[i].wsRequired, HordeObjectives[i].required); count += 4; } @@ -46,9 +46,9 @@ uint32 BuildWarEffortWorldStates(WorldPacket &data) uint32 allianceContrib = GetTeamStock(SharedObjectives[i].itemId, TEAM_ALLIANCE); uint32 hordeContrib = GetTeamStock(SharedObjectives[i].itemId, TEAM_HORDE); - data << SharedObjectives[i].wsAllianceCurrent << allianceContrib; - data << SharedObjectives[i].wsHordeCurrent << hordeContrib; - data << SharedObjectives[i].wsRequired << SharedObjectives[i].required; + WriteInitialWorldStatePair(data, SharedObjectives[i].wsAllianceCurrent, allianceContrib); + WriteInitialWorldStatePair(data, SharedObjectives[i].wsHordeCurrent, hordeContrib); + WriteInitialWorldStatePair(data, SharedObjectives[i].wsRequired, SharedObjectives[i].required); count += 3; } @@ -74,7 +74,7 @@ uint32 BuildWarEffortWorldStates(WorldPacket &data) daysRemaining = 1; } - data << WORLDSTATE_TRANSITION_DAYS_REMAINING << daysRemaining; + WriteInitialWorldStatePair(data, WS_WE_TRANSITION_DAYS_REMAINING, daysRemaining); ++count; } diff --git a/src/scripts/world/world_event_wareffort.h b/src/scripts/world/world_event_wareffort.h index db7e5a245fd..7b9d6eff742 100644 --- a/src/scripts/world/world_event_wareffort.h +++ b/src/scripts/world/world_event_wareffort.h @@ -26,6 +26,7 @@ #pragma once #include "scriptPCH.h" +#include "WorldStates.h" #include #define NUM_FACTION_OBJECTIVES 10 @@ -62,69 +63,6 @@ enum WarEffortGameEvents EVENT_WAR_EFFORT_TERMINATOR }; -enum WarEffortWorldState -{ - WORLDSTATE_SHARED_COPPERBAR_REQUIRE = 1998, - WORLDSTATE_SHARED_PURPLELOTUS_REQUIRE = 2055, - WORLDSTATE_SHARED_THICKLEATHER_REQUIRE = 2071, - WORLDSTATE_SHARED_SPOTYELLOW_REQUIRE = 2103, - WORLDSTATE_SHARED_RUNEBANDAGE_REQUIRE = 2090, - - WORLDSTATE_ALLIANCE_COPPERBAR_CURRENT = 1997, - WORLDSTATE_ALLIANCE_PURPLELOTUS_CURRENT = 2053, - WORLDSTATE_ALLIANCE_THICKLEATHER_CURRENT = 2069, - WORLDSTATE_ALLIANCE_SPOTYELLOW_CURRENT = 2101, - WORLDSTATE_ALLIANCE_RUNEBANDAGE_CURRENT = 2088, - WORLDSTATE_ALLIANCE_IRONBAR_CURRENT = 2002, - WORLDSTATE_ALLIANCE_IRONBAR_REQUIRE = 2003, - WORLDSTATE_ALLIANCE_THORIUMBAR_CURRENT = 2011, - WORLDSTATE_ALLIANCE_THORIUMBAR_REQUIRE = 2012, - WORLDSTATE_ALLIANCE_ARTHASTEAR_CURRENT = 2057, - WORLDSTATE_ALLIANCE_ARTHASTEAR_REQUIRE = 2058, - WORLDSTATE_ALLIANCE_STRANGLEKELP_CURRENT = 2047, - WORLDSTATE_ALLIANCE_STRANGLEKELP_REQUIRE = 2048, - WORLDSTATE_ALLIANCE_LIGHTLEATHER_CURRENT = 2060, - WORLDSTATE_ALLIANCE_LIGHTLEATHER_REQUIRE = 2061, - WORLDSTATE_ALLIANCE_MEDIUMLEATHER_CURRENT = 2063, - WORLDSTATE_ALLIANCE_MEDIUMLEATHER_REQUIRE = 2064, - WORLDSTATE_ALLIANCE_ROASTRAPTOR_CURRENT = 2098, - WORLDSTATE_ALLIANCE_ROASTRAPTOR_REQUIRE = 2099, - WORLDSTATE_ALLIANCE_RBOWALBA_CURRENT = 2092, - WORLDSTATE_ALLIANCE_RBOWALBA_REQUIRE = 2093, - WORLDSTATE_ALLIANCE_LINENBANDAGE_CURRENT = 2076, - WORLDSTATE_ALLIANCE_LINENBANDAGE_REQUIRE = 2077, - WORLDSTATE_ALLIANCE_SILKBANDAGE_CURRENT = 2082, - WORLDSTATE_ALLIANCE_SILKBANDAGE_REQUIRE = 2083, - - WORLDSTATE_HORDE_COPPERBAR_CURRENT = 2018, - WORLDSTATE_HORDE_PURPLELOTUS_CURRENT = 2054, - WORLDSTATE_HORDE_THICKLEATHER_CURRENT = 2070, - WORLDSTATE_HORDE_SPOTYELLOW_CURRENT = 2102, - WORLDSTATE_HORDE_RUNEBANDAGE_CURRENT = 2089, - WORLDSTATE_HORDE_TINBAR_CURRENT = 2005, - WORLDSTATE_HORDE_TINBAR_REQUIRE = 2006, - WORLDSTATE_HORDE_MITHRILBAR_CURRENT = 2008, - WORLDSTATE_HORDE_MITRHILBAR_REQUIRE = 2009, - WORLDSTATE_HORDE_PEACEBLOOM_CURRENT = 2021, // Yes, these Peacebloom are intentionally out of order. Thanks Big B - WORLDSTATE_HORDE_PEACEBLOOM_REQUIRE = 2020, - WORLDSTATE_HORDE_FIREBLOOM_CURRENT = 2050, - WORLDSTATE_HORDE_FIREBLOOM_REQUIRE = 2051, - WORLDSTATE_HORDE_HEAVYLEATHER_CURRENT = 2066, - WORLDSTATE_HORDE_HEAVYLEATHER_REQUIRE = 2067, - WORLDSTATE_HORDE_RUGGEDLEATHER_CURRENT = 2073, - WORLDSTATE_HORDE_RUGGEDLEATHER_REQUIRE = 2074, - WORLDSTATE_HORDE_LEANWOLF_CURRENT = 2095, - WORLDSTATE_HORDE_LEANWOLF_REQUIRE = 2096, - WORLDSTATE_HORDE_BAKEDSALMON_CURRENT = 2105, - WORLDSTATE_HORDE_BAKEDSALMON_REQUIRE = 2106, - WORLDSTATE_HORDE_WOOLBANDAGE_CURRENT = 2079, - WORLDSTATE_HORDE_WOOLBANDAGE_REQUIRE = 2080, - WORLDSTATE_HORDE_MAGEBANDAGE_CURRENT = 2085, - WORLDSTATE_HORDE_MAGEBANDAGE_REQUIRE = 2086, - - WORLDSTATE_TRANSITION_DAYS_REMAINING = 2113 -}; - enum WarEffortItemType { WAREFFORT_BAR, @@ -140,8 +78,8 @@ struct WarEffortData uint32 required; uint32 currentVar; - WarEffortWorldState wsCurrent; - WarEffortWorldState wsRequired; + WorldStates wsCurrent; + WorldStates wsRequired; WarEffortItemType type; }; @@ -150,9 +88,9 @@ struct SharedWarEffortData uint32 itemId; uint32 required; - WarEffortWorldState wsHordeCurrent; - WarEffortWorldState wsAllianceCurrent; - WarEffortWorldState wsRequired; + WorldStates wsHordeCurrent; + WorldStates wsAllianceCurrent; + WorldStates wsRequired; WarEffortItemType type; }; @@ -210,39 +148,39 @@ static const WarEffortGossip WarEffortGossipText[NUM_SHARED_OBJECTIVES + 2*NUM_F static std::array const SharedObjectives = {{ - { 2840, 90000, WORLDSTATE_HORDE_COPPERBAR_CURRENT, WORLDSTATE_ALLIANCE_COPPERBAR_CURRENT, WORLDSTATE_SHARED_COPPERBAR_REQUIRE, WAREFFORT_BAR }, - { 8831, 26000, WORLDSTATE_HORDE_PURPLELOTUS_CURRENT, WORLDSTATE_ALLIANCE_PURPLELOTUS_CURRENT, WORLDSTATE_SHARED_PURPLELOTUS_REQUIRE, WAREFFORT_HERBS }, - { 4304, 80000, WORLDSTATE_HORDE_THICKLEATHER_CURRENT, WORLDSTATE_ALLIANCE_THICKLEATHER_CURRENT, WORLDSTATE_SHARED_THICKLEATHER_REQUIRE, WAREFFORT_SKINS }, - { 6887, 17000, WORLDSTATE_HORDE_SPOTYELLOW_CURRENT, WORLDSTATE_ALLIANCE_SPOTYELLOW_CURRENT, WORLDSTATE_SHARED_SPOTYELLOW_REQUIRE, WAREFFORT_COOKING }, - { 14529, 400000, WORLDSTATE_HORDE_RUNEBANDAGE_CURRENT, WORLDSTATE_ALLIANCE_RUNEBANDAGE_CURRENT, WORLDSTATE_SHARED_RUNEBANDAGE_REQUIRE, WAREFFORT_BANDAGES } + { 2840, 90000, WS_WE_HORDE_COPPERBAR_CURRENT, WS_WE_ALLIANCE_COPPERBAR_CURRENT, WS_WE_SHARED_COPPERBAR_REQUIRE, WAREFFORT_BAR }, + { 8831, 26000, WS_WE_HORDE_PURPLELOTUS_CURRENT, WS_WE_ALLIANCE_PURPLELOTUS_CURRENT, WS_WE_SHARED_PURPLELOTUS_REQUIRE, WAREFFORT_HERBS }, + { 4304, 80000, WS_WE_HORDE_THICKLEATHER_CURRENT, WS_WE_ALLIANCE_THICKLEATHER_CURRENT, WS_WE_SHARED_THICKLEATHER_REQUIRE, WAREFFORT_SKINS }, + { 6887, 17000, WS_WE_HORDE_SPOTYELLOW_CURRENT, WS_WE_ALLIANCE_SPOTYELLOW_CURRENT, WS_WE_SHARED_SPOTYELLOW_REQUIRE, WAREFFORT_COOKING }, + { 14529, 400000, WS_WE_HORDE_RUNEBANDAGE_CURRENT, WS_WE_ALLIANCE_RUNEBANDAGE_CURRENT, WS_WE_SHARED_RUNEBANDAGE_REQUIRE, WAREFFORT_BANDAGES } }}; static std::array const AllianceObjectives = {{ - { 3575, 28000, 3575, WORLDSTATE_ALLIANCE_IRONBAR_CURRENT, WORLDSTATE_ALLIANCE_IRONBAR_REQUIRE, WAREFFORT_BAR }, - { 12359, 24000, 12359, WORLDSTATE_ALLIANCE_THORIUMBAR_CURRENT, WORLDSTATE_ALLIANCE_THORIUMBAR_REQUIRE, WAREFFORT_BAR }, - { 8836, 20000, 8836, WORLDSTATE_ALLIANCE_ARTHASTEAR_CURRENT, WORLDSTATE_ALLIANCE_ARTHASTEAR_REQUIRE, WAREFFORT_HERBS }, - { 3820, 33000, 3820, WORLDSTATE_ALLIANCE_STRANGLEKELP_CURRENT, WORLDSTATE_ALLIANCE_STRANGLEKELP_REQUIRE, WAREFFORT_HERBS }, - { 2318, 180000, 2318, WORLDSTATE_ALLIANCE_LIGHTLEATHER_CURRENT, WORLDSTATE_ALLIANCE_LIGHTLEATHER_REQUIRE, WAREFFORT_SKINS }, - { 2319, 110000, 2319, WORLDSTATE_ALLIANCE_MEDIUMLEATHER_CURRENT, WORLDSTATE_ALLIANCE_MEDIUMLEATHER_REQUIRE, WAREFFORT_SKINS }, - { 12210, 20000, 12210, WORLDSTATE_ALLIANCE_ROASTRAPTOR_CURRENT, WORLDSTATE_ALLIANCE_ROASTRAPTOR_REQUIRE, WAREFFORT_COOKING }, - { 5095, 14000, 5095, WORLDSTATE_ALLIANCE_RBOWALBA_CURRENT, WORLDSTATE_ALLIANCE_RBOWALBA_REQUIRE, WAREFFORT_COOKING }, - { 1251, 800000, 1251, WORLDSTATE_ALLIANCE_LINENBANDAGE_CURRENT, WORLDSTATE_ALLIANCE_LINENBANDAGE_REQUIRE, WAREFFORT_BANDAGES }, - { 6450, 600000, 6450, WORLDSTATE_ALLIANCE_SILKBANDAGE_CURRENT, WORLDSTATE_ALLIANCE_SILKBANDAGE_REQUIRE, WAREFFORT_BANDAGES } + { 3575, 28000, 3575, WS_WE_ALLIANCE_IRONBAR_CURRENT, WS_WE_ALLIANCE_IRONBAR_REQUIRE, WAREFFORT_BAR }, + { 12359, 24000, 12359, WS_WE_ALLIANCE_THORIUMBAR_CURRENT, WS_WE_ALLIANCE_THORIUMBAR_REQUIRE, WAREFFORT_BAR }, + { 8836, 20000, 8836, WS_WE_ALLIANCE_ARTHASTEAR_CURRENT, WS_WE_ALLIANCE_ARTHASTEAR_REQUIRE, WAREFFORT_HERBS }, + { 3820, 33000, 3820, WS_WE_ALLIANCE_STRANGLEKELP_CURRENT, WS_WE_ALLIANCE_STRANGLEKELP_REQUIRE, WAREFFORT_HERBS }, + { 2318, 180000, 2318, WS_WE_ALLIANCE_LIGHTLEATHER_CURRENT, WS_WE_ALLIANCE_LIGHTLEATHER_REQUIRE, WAREFFORT_SKINS }, + { 2319, 110000, 2319, WS_WE_ALLIANCE_MEDIUMLEATHER_CURRENT, WS_WE_ALLIANCE_MEDIUMLEATHER_REQUIRE, WAREFFORT_SKINS }, + { 12210, 20000, 12210, WS_WE_ALLIANCE_ROASTRAPTOR_CURRENT, WS_WE_ALLIANCE_ROASTRAPTOR_REQUIRE, WAREFFORT_COOKING }, + { 5095, 14000, 5095, WS_WE_ALLIANCE_RBOWALBA_CURRENT, WS_WE_ALLIANCE_RBOWALBA_REQUIRE, WAREFFORT_COOKING }, + { 1251, 800000, 1251, WS_WE_ALLIANCE_LINENBANDAGE_CURRENT, WS_WE_ALLIANCE_LINENBANDAGE_REQUIRE, WAREFFORT_BANDAGES }, + { 6450, 600000, 6450, WS_WE_ALLIANCE_SILKBANDAGE_CURRENT, WS_WE_ALLIANCE_SILKBANDAGE_REQUIRE, WAREFFORT_BANDAGES } }}; static std::array const HordeObjectives = {{ - { 3576, 22000, 3576, WORLDSTATE_HORDE_TINBAR_CURRENT, WORLDSTATE_HORDE_TINBAR_REQUIRE, WAREFFORT_BAR }, - { 3860, 18000, 3860, WORLDSTATE_HORDE_MITHRILBAR_CURRENT, WORLDSTATE_HORDE_MITRHILBAR_REQUIRE, WAREFFORT_BAR }, - { 2447, 96000, 2447, WORLDSTATE_HORDE_PEACEBLOOM_CURRENT, WORLDSTATE_HORDE_PEACEBLOOM_REQUIRE, WAREFFORT_HERBS }, - { 4625, 19000, 4625, WORLDSTATE_HORDE_FIREBLOOM_CURRENT, WORLDSTATE_HORDE_FIREBLOOM_REQUIRE, WAREFFORT_HERBS }, - { 4234, 60000, 4234, WORLDSTATE_HORDE_HEAVYLEATHER_CURRENT, WORLDSTATE_HORDE_HEAVYLEATHER_REQUIRE, WAREFFORT_SKINS }, - { 8170, 60000, 8170, WORLDSTATE_HORDE_RUGGEDLEATHER_CURRENT, WORLDSTATE_HORDE_RUGGEDLEATHER_REQUIRE, WAREFFORT_SKINS }, - { 12209, 10000, 12209, WORLDSTATE_HORDE_LEANWOLF_CURRENT, WORLDSTATE_HORDE_LEANWOLF_REQUIRE, WAREFFORT_COOKING }, - { 13935, 10000, 13935, WORLDSTATE_HORDE_BAKEDSALMON_CURRENT, WORLDSTATE_HORDE_BAKEDSALMON_REQUIRE, WAREFFORT_COOKING }, - { 3530, 250000, 3530, WORLDSTATE_HORDE_WOOLBANDAGE_CURRENT, WORLDSTATE_HORDE_WOOLBANDAGE_REQUIRE, WAREFFORT_BANDAGES }, - { 8544, 250000, 8544, WORLDSTATE_HORDE_MAGEBANDAGE_CURRENT, WORLDSTATE_HORDE_MAGEBANDAGE_REQUIRE, WAREFFORT_BANDAGES } + { 3576, 22000, 3576, WS_WE_HORDE_TINBAR_CURRENT, WS_WE_HORDE_TINBAR_REQUIRE, WAREFFORT_BAR }, + { 3860, 18000, 3860, WS_WE_HORDE_MITHRILBAR_CURRENT, WS_WE_HORDE_MITRHILBAR_REQUIRE, WAREFFORT_BAR }, + { 2447, 96000, 2447, WS_WE_HORDE_PEACEBLOOM_CURRENT, WS_WE_HORDE_PEACEBLOOM_REQUIRE, WAREFFORT_HERBS }, + { 4625, 19000, 4625, WS_WE_HORDE_FIREBLOOM_CURRENT, WS_WE_HORDE_FIREBLOOM_REQUIRE, WAREFFORT_HERBS }, + { 4234, 60000, 4234, WS_WE_HORDE_HEAVYLEATHER_CURRENT, WS_WE_HORDE_HEAVYLEATHER_REQUIRE, WAREFFORT_SKINS }, + { 8170, 60000, 8170, WS_WE_HORDE_RUGGEDLEATHER_CURRENT, WS_WE_HORDE_RUGGEDLEATHER_REQUIRE, WAREFFORT_SKINS }, + { 12209, 10000, 12209, WS_WE_HORDE_LEANWOLF_CURRENT, WS_WE_HORDE_LEANWOLF_REQUIRE, WAREFFORT_COOKING }, + { 13935, 10000, 13935, WS_WE_HORDE_BAKEDSALMON_CURRENT, WS_WE_HORDE_BAKEDSALMON_REQUIRE, WAREFFORT_COOKING }, + { 3530, 250000, 3530, WS_WE_HORDE_WOOLBANDAGE_CURRENT, WS_WE_HORDE_WOOLBANDAGE_REQUIRE, WAREFFORT_BANDAGES }, + { 8544, 250000, 8544, WS_WE_HORDE_MAGEBANDAGE_CURRENT, WS_WE_HORDE_MAGEBANDAGE_REQUIRE, WAREFFORT_BANDAGES } }}; struct GOWarEffort From 3a05b678b78628d88b4be639b3ee76c419666081 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 19 Aug 2023 03:47:54 +0300 Subject: [PATCH 166/426] Fix immunity checks for dropping WSG flag in early patches. --- src/game/Objects/Player.cpp | 7 ++++++- src/game/Objects/Unit.cpp | 9 +++++++-- src/game/Spells/Spell.cpp | 3 ++- src/game/Spells/SpellAuras.cpp | 9 +++++++-- src/game/Spells/SpellDefines.h | 4 ++-- 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index f9bca287fb6..0035e410e38 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -19303,7 +19303,12 @@ void Player::SendInitialPacketsAfterAddToMap(bool login) UpdateZone(newzone, newarea); // also call SendInitWorldStates(); if (login) - CastSpell(this, 836, true); // LOGINEFFECT + { + m_Events.AddLambdaEventAtOffset([this] + { + CastSpell(this, 836, true); // LOGINEFFECT + }, 1); + } // set some aura effects that send packet to player client after add player to map // SendMessageToSet not send it to player not it map, only for aura that not changed anything at re-apply diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index cc35df4b1f7..a2f015d0bb9 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -5446,6 +5446,7 @@ bool Unit::IsImmuneToDamage(SpellSchoolMask shoolMask, SpellEntry const* spellIn { if (spellInfo && (spellInfo->HasAttribute(SPELL_ATTR_NO_IMMUNITIES) || + spellInfo->HasAttribute(SPELL_ATTR_EX_IGNORE_CASTER_AND_TARGET_RESTRICTIONS) || spellInfo->HasAttribute(SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS))) return false; @@ -5481,7 +5482,9 @@ bool Unit::IsImmuneToDamage(SpellSchoolMask shoolMask, SpellEntry const* spellIn bool Unit::IsImmuneToSpell(SpellEntry const* spellInfo, bool /*castOnSelf*/) const { - if (!spellInfo || spellInfo->HasAttribute(SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS)) + if (!spellInfo || + spellInfo->HasAttribute(SPELL_ATTR_EX_IGNORE_CASTER_AND_TARGET_RESTRICTIONS) || + spellInfo->HasAttribute(SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS)) return false; //TODO add spellEffect immunity checks!, player with flag in bg is immune to immunity buffs from other friendly players! @@ -5561,7 +5564,8 @@ bool Unit::IsImmuneToSpell(SpellEntry const* spellInfo, bool /*castOnSelf*/) con bool Unit::IsImmuneToSpellEffect(SpellEntry const* spellInfo, SpellEffectIndex index, bool /*castOnSelf*/) const { - if (spellInfo->HasAttribute(SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS)) + if (spellInfo->HasAttribute(SPELL_ATTR_EX_IGNORE_CASTER_AND_TARGET_RESTRICTIONS) || + spellInfo->HasAttribute(SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS)) return false; //If m_immuneToEffect type contain this effect type, IMMUNE effect. @@ -5644,6 +5648,7 @@ bool Unit::IsImmuneToSpellEffect(SpellEntry const* spellInfo, SpellEffectIndex i bool Unit::IsImmuneToSchool(SpellEntry const* spellInfo, uint8 effectMask) const { if (!spellInfo->HasAttribute(SPELL_ATTR_EX_IMMUNITY_PURGES_EFFECT) // can remove immune (by dispell or immune it) + && !spellInfo->HasAttribute(SPELL_ATTR_EX_IGNORE_CASTER_AND_TARGET_RESTRICTIONS) && !spellInfo->HasAttribute(SPELL_ATTR_EX2_NO_SCHOOL_IMMUNITIES) && !spellInfo->HasAttribute(SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS)) { diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 60f9a26a8d3..af765207a84 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -5528,7 +5528,8 @@ void Spell::RemoveChanneledAuraHolder(SpellAuraHolder* holder, AuraRemoveMode mo SpellCastResult Spell::CheckCast(bool strict) { - if (m_spellInfo->HasAttribute(SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS)) + if (m_spellInfo->HasAttribute(SPELL_ATTR_EX_IGNORE_CASTER_AND_TARGET_RESTRICTIONS) || + m_spellInfo->HasAttribute(SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS)) return SPELL_CAST_OK; if (m_caster->IsPlayer() && m_caster->ToPlayer()->HasCheatOption(PLAYER_CHEAT_NO_CHECK_CAST)) diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index bb57405c985..80b5a8fc42a 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -4288,8 +4288,13 @@ void Aura::HandleAuraModSchoolImmunity(bool apply, bool Real) target->ApplySpellImmune(GetId(), IMMUNITY_SCHOOL, m_modifier.m_miscvalue, apply); // remove all flag auras (they are positive, but they must be removed when you are immune) - if (apply && GetSpellProto()->HasAttribute(SPELL_ATTR_EX_IMMUNITY_PURGES_EFFECT) - && GetSpellProto()->HasAttribute(SPELL_ATTR_EX2_FAIL_ON_ALL_TARGETS_IMMUNE) + if (apply + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // Offensive use of damage immunities no longer causes the flag to drop + // in Warsong Gulch. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 + && IsPositive() +#endif && target->IsPlayer() && !target->IsCharmed()) target->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_INVULNERABILITY_BUFF_CANCELS); diff --git a/src/game/Spells/SpellDefines.h b/src/game/Spells/SpellDefines.h index a76c5df9e68..93f9e6c3021 100644 --- a/src/game/Spells/SpellDefines.h +++ b/src/game/Spells/SpellDefines.h @@ -769,7 +769,7 @@ enum SpellAttributesEx SPELL_ATTR_EX_FINISHING_MOVE_DAMAGE = 0x00100000, // 20 Uses combo points SPELL_ATTR_EX_THREAT_ONLY_ON_MISS = 0x00200000, // 21 SPELL_ATTR_EX_FINISHING_MOVE_DURATION = 0x00400000, // 22 Uses combo points (in 4.x not required combo point target selected) - SPELL_ATTR_EX_UNK23 = 0x00800000, // 23 Different in vanilla + SPELL_ATTR_EX_IGNORE_CASTER_AND_TARGET_RESTRICTIONS = 0x00800000, // 23 Skips all cast checks, moved to AttributesEx3 after 1.10 (100% correlation) SPELL_ATTR_EX_SPECIAL_SKILLUP = 0x01000000, // 24 Only fishing spells SPELL_ATTR_EX_UNK25 = 0x02000000, // 25 Different in vanilla SPELL_ATTR_EX_REQUIRE_ALL_TARGETS = 0x04000000, // 26 @@ -846,7 +846,7 @@ enum SpellAttributesEx3 SPELL_ATTR_EX3_TREAT_AS_PERIODIC = 0x02000000, // 25 Does not cause spell pushback SPELL_ATTR_EX3_CAN_PROC_FROM_PROCS = 0x04000000, // 26 Auras with this attribute can proc off procced spells (periodic triggers etc) SPELL_ATTR_EX3_ONLY_PROC_ON_CASTER = 0x08000000, // 27 - SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS = 0x10000000, // 28 Skips all cast checks + SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS = 0x10000000, // 28 Skips all cast checks, moved from AttributesEx after 1.10 (100% correlation) SPELL_ATTR_EX3_IGNORE_CASTER_MODIFIERS = 0x20000000, // 29 SPELL_ATTR_EX3_DO_NOT_DISPLAY_RANGE = 0x40000000, // 30 SPELL_ATTR_EX3_NOT_ON_AOE_IMMUNE = 0x80000000 // 31 From cb50113a514ae9decce0cfda2e62431aa61efbcc Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 19 Aug 2023 22:43:01 +0300 Subject: [PATCH 167/426] Read login and daze spells from dbc. --- src/game/Database/DBCStructure.h | 4 ++-- src/game/Database/DBCfmt.h | 2 +- src/game/Objects/Player.cpp | 4 +++- src/game/Objects/Unit.cpp | 30 +++++++++++++++++++----------- src/game/SharedDefines.h | 2 ++ 5 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/game/Database/DBCStructure.h b/src/game/Database/DBCStructure.h index faf7eba922d..92832508696 100644 --- a/src/game/Database/DBCStructure.h +++ b/src/game/Database/DBCStructure.h @@ -166,8 +166,8 @@ struct ChrRacesEntry // 7 unused uint32 TeamID; // 8 m_BaseLanguage (7-Alliance 1-Horde) uint32 creatureType; // 9 m_creatureType (blizzlike always 7-humanoid) - // 10 unused, all 836 - // 11 unused, all 1604 + uint32 loginSpellId; // 10 all 836 + uint32 dazeSpellId; // 11 all 1604 uint32 resSicknessSpellId; // 12 m_ResSicknessSpellId (blizzlike always 15007) // 13 m_SplashSoundID uint32 startingTaxiMask; // 14 diff --git a/src/game/Database/DBCfmt.h b/src/game/Database/DBCfmt.h index ba006c162b7..e460a9d8ab9 100644 --- a/src/game/Database/DBCfmt.h +++ b/src/game/Database/DBCfmt.h @@ -33,7 +33,7 @@ char const ChrClassesEntryfmt[]="nxxixssssssssxxix"; #else char const ChrClassesEntryfmt[] = "nxxixssssssssxxi"; #endif -char const ChrRacesEntryfmt[]="niixiixxiixxixixissssssssxxxx"; +char const ChrRacesEntryfmt[]="niixiixxiiiiixixissssssssxxxx"; char const ChatChannelsEntryfmt[]="nixssssssssxxxxxxxxxx"; // ChatChannelsEntryfmt, index not used (more compact store) char const CinematicSequencesEntryfmt[]="nxxxxxxxxx"; char const CreatureDisplayInfofmt[]="nixifxxxxxxx"; diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index 0035e410e38..6c698015be9 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -19306,7 +19306,9 @@ void Player::SendInitialPacketsAfterAddToMap(bool login) { m_Events.AddLambdaEventAtOffset([this] { - CastSpell(this, 836, true); // LOGINEFFECT + ChrRacesEntry const* raceEntry = sChrRacesStore.LookupEntry(GetRace()); + uint32 const spellId = raceEntry ? raceEntry->loginSpellId : SPELL_ID_LOGIN_EFFECT; + CastSpell(this, spellId, true); // LOGINEFFECT }, 1); } diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index a2f015d0bb9..bd617e6b81b 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -1644,26 +1644,34 @@ void Unit::DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss) { // -probability is between 0% and 40% // 20% base chance - uint32 VictimDefense = pVictim->GetDefenseSkillValue(); - uint32 AttackerMeleeSkill = GetUnitMeleeSkill(); + uint32 victimDefense = pVictim->GetDefenseSkillValue(); + uint32 attackerMeleeSkill = GetUnitMeleeSkill(); - float Probability = 0.0f; + float probability = 0.0f; - //there is a newbie protection, at level 10 just 7% base chance; assuming linear function + // there is a newbie protection, at level 10 just 7% base chance; assuming linear function if (pVictim->GetLevel() < 30) - Probability = 0.65f * pVictim->GetLevel() + 0.5f + ((float)AttackerMeleeSkill - (float)VictimDefense) * 0.2f; + probability = 0.65f * pVictim->GetLevel() + 0.5f + ((float)attackerMeleeSkill - (float)victimDefense) * 0.2f; else - Probability = 20.0f + ((float)AttackerMeleeSkill - (float)VictimDefense) * 0.2f; + probability = 20.0f + ((float)attackerMeleeSkill - (float)victimDefense) * 0.2f; - if (Probability > 40.0f) - Probability = 40.0f; + if (probability > 40.0f) + probability = 40.0f; if (Player* pPlayer = pVictim->ToPlayer()) if (pPlayer->IsGod()) - Probability = 0.0f; + probability = 0.0f; - if (roll_chance_f(Probability)) - CastSpell(pVictim, 1604, true); + if (roll_chance_f(probability)) + { + uint32 spellId = SPELL_ID_DAZE; + + if (pVictim->IsPlayer()) + if (ChrRacesEntry const* raceEntry = sChrRacesStore.LookupEntry(pVictim->GetRace())) + spellId = raceEntry->dazeSpellId; + + CastSpell(pVictim, spellId, true); + } } // update at damage Judgement aura duration that applied by attacker at victim diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index 28c5428110c..59092759b11 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -1161,6 +1161,8 @@ enum CorpseDynFlags }; // Passive Spell codes explicit used in code +#define SPELL_ID_LOGIN_EFFECT 836 +#define SPELL_ID_DAZE 1604 #define SPELL_ID_PASSIVE_BATTLE_STANCE 2457 #define SPELL_ID_PASSIVE_RESURRECTION_SICKNESS 15007 From 50a04867bc39653725f71fcbae08ef824cb960e5 Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Mon, 21 Aug 2023 16:07:37 +0100 Subject: [PATCH 168/426] Respawn Call to Arms Event (#2144) --- sql/migrations/20230731135338_world.sql | 601 ++++++++++++++++++++++++ 1 file changed, 601 insertions(+) create mode 100644 sql/migrations/20230731135338_world.sql diff --git a/sql/migrations/20230731135338_world.sql b/sql/migrations/20230731135338_world.sql new file mode 100644 index 00000000000..366f37c8760 --- /dev/null +++ b/sql/migrations/20230731135338_world.sql @@ -0,0 +1,601 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230731135338'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230731135338'); +-- Add your query below. + + +DELETE FROM `gameobject` WHERE `guid` IN (SELECT `guid` FROM `game_event_gameobject` WHERE EVENT = 18); +DELETE FROM `gameobject` WHERE `guid` IN (SELECT `guid` FROM `game_event_gameobject` WHERE EVENT = 19); +DELETE FROM `gameobject` WHERE `guid` IN (SELECT `guid` FROM `game_event_gameobject` WHERE EVENT = 20); +DELETE FROM `game_event_gameobject` WHERE `event` IN (18, 19, 20); + +DELETE FROM `creature` WHERE `id` = 13842; +DELETE FROM `creature` WHERE `guid` IN (SELECT `guid` FROM `game_event_creature` WHERE EVENT = 18) AND `guid` NOT IN (190496, 190498, 190500, 190512, 190514, 190516, 190520, 190522, 190524, 190532, 190548, 190556, 190497, 190499, 190501, 190513, 190515, 190517, 190521, 190523, 190525, 190533, 190549, 190557); +DELETE FROM `creature` WHERE `guid` IN (SELECT `guid` FROM `game_event_creature` WHERE EVENT = 19) AND `guid` NOT IN (190496, 190498, 190500, 190512, 190514, 190516, 190520, 190522, 190524, 190532, 190548, 190556, 190497, 190499, 190501, 190513, 190515, 190517, 190521, 190523, 190525, 190533, 190549, 190557); +DELETE FROM `creature` WHERE `guid` IN (SELECT `guid` FROM `game_event_creature` WHERE EVENT = 20) AND `guid` NOT IN (190496, 190498, 190500, 190512, 190514, 190516, 190520, 190522, 190524, 190532, 190548, 190556, 190497, 190499, 190501, 190513, 190515, 190517, 190521, 190523, 190525, 190533, 190549, 190557); +DELETE FROM `game_event_creature` WHERE `event` IN (18, 19, 20) AND `guid` NOT IN (190496, 190498, 190500, 190512, 190514, 190516, 190520, 190522, 190524, 190532, 190548, 190556, 190497, 190499, 190501, 190513, 190515, 190517, 190521, 190523, 190525, 190533, 190549, 190557); + +-- CREATURES +-- EVENT 18 AV (13843 15103 15106 13842) +SET @CGUID = 17116; +INSERT INTO `creature` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `health_percent`, `patch_min`, `patch_max`) VALUES +(@CGUID+1, 15103, 0, -8876.83, 542.382, 106.366, 0.558505, 300, 300, 100, 5, 10), +(@CGUID+2, 15103, 0, -8873.52, 544.724, 106.367, 3.82227, 300, 300, 100, 5, 10), +(@CGUID+3, 15103, 0, -8853.08, 587.01, 94.0289, 0.680678, 300, 300, 100, 5, 10), +(@CGUID+4, 15103, 0, -8850.69, 589.49, 93.7805, 4.06662, 300, 300, 100, 5, 10), +(@CGUID+5, 15103, 0, -8840.63, 652.959, 97.1951, 5.60251, 300, 300, 100, 5, 10), +(@CGUID+6, 15103, 0, -8838.8, 651.394, 96.8924, 2.42601, 300, 300, 100, 5, 10), +(@CGUID+7, 15103, 0, -8422.24, 347.872, 120.969, 5.53269, 300, 300, 100, 5, 10), +(@CGUID+8, 15103, 0, -8419.03, 343.831, 120.969, 2.30383, 300, 300, 100, 5, 10), +(@CGUID+9, 15103, 0, -8411.89, 575.031, 92.3179, 0.855211, 300, 300, 100, 5, 10), +(@CGUID+10, 15103, 0, -8409.07, 578.255, 92.0611, 3.9968, 300, 300, 100, 5, 10), +(@CGUID+11, 15103, 0, -5038.58, -1259.39, 505.383, 1.43117, 300, 300, 100, 5, 10), +(@CGUID+12, 15103, 0, -5038.23, -1255.28, 505.383, 4.5204, 300, 300, 100, 5, 10), +(@CGUID+13, 15103, 0, -5033.75, -931.287, 501.743, 1.32645, 300, 300, 100, 5, 10), +(@CGUID+14, 15103, 0, -5032.97, -926.68, 501.743, 4.64258, 300, 300, 100, 5, 10), +(@CGUID+15, 15103, 0, -4916.61, -852.305, 501.745, 1.48353, 300, 300, 100, 5, 10), +(@CGUID+16, 15103, 0, -4916.43, -848.374, 501.745, 4.72984, 300, 300, 100, 5, 10), +(@CGUID+17, 15103, 0, -4839.37, -1169.09, 502.279, 5.37561, 300, 300, 100, 5, 10), +(@CGUID+18, 15103, 0, -4836.85, -1171.63, 502.277, 2.44346, 300, 300, 100, 5, 10), +(@CGUID+19, 15103, 0, -4683.46, -985.091, 501.627, 6.03884, 300, 300, 100, 5, 10), +(@CGUID+20, 15103, 0, -4680.56, -985.584, 501.646, 3.08923, 300, 300, 100, 5, 10), +(@CGUID+21, 15106, 1, -1381.3, -61.6688, 159.135, 0.0174533, 300, 300, 100, 5, 10), +(@CGUID+22, 15106, 1, -1377.62, -61.9991, 159.279, 2.93215, 300, 300, 100, 5, 10), +(@CGUID+23, 15106, 1, -1277.94, 138.47, 131.94, 5.35816, 300, 300, 100, 5, 10), +(@CGUID+24, 15106, 1, -1275.75, 135.88, 132.1, 2.32129, 300, 300, 100, 5, 10), +(@CGUID+25, 15106, 1, -1247.75, 54.7024, 127.217, 1.0472, 300, 300, 100, 5, 10), +(@CGUID+26, 15106, 1, -1245.48, 58.3111, 127.087, 4.11898, 300, 300, 100, 5, 10), +(@CGUID+27, 15106, 1, -1091.7, -17.997, 140.475, 1.13446, 300, 300, 100, 5, 10), +(@CGUID+28, 15106, 1, -1090.22, -15.3547, 140.657, 4.15388, 300, 300, 100, 5, 10), +(@CGUID+29, 15106, 0, 1329.25, 344.726, -63.6213, 5.06145, 300, 300, 100, 5, 10), +(@CGUID+30, 15106, 0, 1331.1, 340.068, -63.6164, 1.98968, 300, 300, 100, 5, 10), +(@CGUID+31, 15106, 0, 1520.59, 239.869, -41.3065, 0.925025, 300, 300, 100, 5, 10), +(@CGUID+32, 15106, 0, 1522.88, 242.296, -41.3065, 3.89208, 300, 300, 100, 5, 10), +(@CGUID+33, 15106, 0, 1593.39, 166.775, -41.3411, 5.61996, 300, 300, 100, 5, 10), +(@CGUID+34, 15106, 0, 1593.71, 316.03, -41.3411, 6.23083, 300, 300, 100, 5, 10), +(@CGUID+35, 15106, 0, 1596.28, 164.606, -41.3411, 2.53073, 300, 300, 100, 5, 10), +(@CGUID+36, 15106, 0, 1596.7, 315.65, -41.3411, 3.10669, 300, 300, 100, 5, 10), +(@CGUID+37, 15106, 1, 1658.86, -4389.01, 23.7694, 1.13446, 300, 300, 100, 5, 10), +(@CGUID+38, 15106, 1, 1660.66, -4385.63, 23.9798, 4.11898, 300, 300, 100, 5, 10), +(@CGUID+39, 15106, 1, 1665.84, -4344.94, 61.3295, 5.37561, 300, 300, 100, 5, 10), +(@CGUID+40, 15106, 1, 1667.64, -4346.96, 61.3295, 2.37365, 300, 300, 100, 5, 10), +(@CGUID+41, 15106, 1, 1743.73, -3966.88, 49.2422, 0.418879, 300, 300, 100, 5, 10), +(@CGUID+42, 15106, 1, 1747.5, -3965.36, 49.8576, 3.49066, 300, 300, 100, 5, 10), +(@CGUID+43, 15106, 1, 1937.56, -4713.03, 37.3228, 1.18682, 300, 300, 100, 5, 10), +(@CGUID+44, 15106, 1, 1938.41, -4709.56, 36.0506, 4.36332, 300, 300, 100, 5, 10), +(@CGUID+45, 15103, 1, 9724.21, 2545, 1335.76, 5.58505, 300, 300, 100, 5, 10), +(@CGUID+46, 15103, 1, 9727.12, 2542.52, 1335.24, 2.42601, 300, 300, 100, 5, 10), +(@CGUID+47, 15103, 1, 9916.48, 2345.54, 1330.87, 1.74533, 300, 300, 100, 5, 10), +(@CGUID+48, 15103, 1, 9916.64, 2349.3, 1330.87, 4.92183, 300, 300, 100, 5, 10), +(@CGUID+49, 15103, 1, 9959.3, 2484.38, 1316.15, 0.750492, 300, 300, 100, 5, 10), +(@CGUID+50, 15103, 1, 9961.1, 2179.29, 1327.8, 5.13127, 300, 300, 100, 5, 10), +(@CGUID+51, 15103, 1, 9962.13, 2487.17, 1316.12, 3.9968, 300, 300, 100, 5, 10), +(@CGUID+52, 15103, 1, 9962.88, 2175.22, 1327.8, 1.97222, 300, 300, 100, 5, 10); + +INSERT INTO `game_event_creature` (`guid`, `event`) VALUES +(@CGUID+1, 18), +(@CGUID+2, 18), +(@CGUID+3, 18), +(@CGUID+4, 18), +(@CGUID+5, 18), +(@CGUID+6, 18), +(@CGUID+7, 18), +(@CGUID+8, 18), +(@CGUID+9, 18), +(@CGUID+10, 18), +(@CGUID+11, 18), +(@CGUID+12, 18), +(@CGUID+13, 18), +(@CGUID+14, 18), +(@CGUID+15, 18), +(@CGUID+16, 18), +(@CGUID+17, 18), +(@CGUID+18, 18), +(@CGUID+19, 18), +(@CGUID+20, 18), +(@CGUID+21, 18), +(@CGUID+22, 18), +(@CGUID+23, 18), +(@CGUID+24, 18), +(@CGUID+25, 18), +(@CGUID+26, 18), +(@CGUID+27, 18), +(@CGUID+28, 18), +(@CGUID+29, 18), +(@CGUID+30, 18), +(@CGUID+31, 18), +(@CGUID+32, 18), +(@CGUID+33, 18), +(@CGUID+34, 18), +(@CGUID+35, 18), +(@CGUID+36, 18), +(@CGUID+37, 18), +(@CGUID+38, 18), +(@CGUID+39, 18), +(@CGUID+40, 18), +(@CGUID+41, 18), +(@CGUID+42, 18), +(@CGUID+43, 18), +(@CGUID+44, 18), +(@CGUID+45, 18), +(@CGUID+46, 18), +(@CGUID+47, 18), +(@CGUID+48, 18), +(@CGUID+49, 18), +(@CGUID+50, 18), +(@CGUID+51, 18), +(@CGUID+52, 18); + +INSERT INTO `creature` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `health_percent`, `patch_min`, `patch_max`) VALUES +(@CGUID+53, 13843, 0, -4903.01, -968.237, 501.533, 2.47837, 300, 300, 100, 1, 10), +(@CGUID+54, 13842, 1, 1607.92, -4376.44, 9.65736, 4.06662, 300, 300, 100, 1, 10); + +UPDATE `game_event_creature_data` SET `guid` = @CGUID+54 WHERE `guid` = 703; + +-- EVENT 19 WSG (15102 15105) +SET @CGUID = 18756; +INSERT INTO `creature` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `health_percent`, `patch_min`, `patch_max`) VALUES +(@CGUID+1, 15102, 0, -8876.83, 542.382, 106.366, 0.558505, 300, 300, 100, 5, 10), +(@CGUID+2, 15102, 0, -8873.52, 544.724, 106.367, 3.82227, 300, 300, 100, 5, 10), +(@CGUID+3, 15102, 0, -8853.08, 587.01, 94.0289, 0.680678, 300, 300, 100, 5, 10), +(@CGUID+4, 15102, 0, -8850.69, 589.49, 93.7805, 4.06662, 300, 300, 100, 5, 10), +(@CGUID+5, 15102, 0, -8840.63, 652.959, 97.1951, 5.60251, 300, 300, 100, 5, 10), +(@CGUID+6, 15102, 0, -8838.8, 651.394, 96.8924, 2.42601, 300, 300, 100, 5, 10), +(@CGUID+7, 15102, 0, -8460.44, 317.161, 120.969, 5.53269, 300, 300, 100, 5, 10), +(@CGUID+8, 15102, 0, -8457.36, 314.096, 120.969, 2.30383, 300, 300, 100, 5, 10), +(@CGUID+9, 15102, 0, -8411.89, 575.031, 92.3179, 0.855211, 300, 300, 100, 5, 10), +(@CGUID+10, 15102, 0, -8409.07, 578.255, 92.0611, 3.9968, 300, 300, 100, 5, 10), +(@CGUID+11, 15102, 0, -5033.75, -931.287, 501.743, 1.32645, 300, 300, 100, 5, 10), +(@CGUID+12, 15102, 0, -5032.97, -926.68, 501.743, 4.64258, 300, 300, 100, 5, 10), +(@CGUID+13, 15102, 0, -5030.94, -1269.32, 505.383, 0.296706, 300, 300, 100, 5, 10), +(@CGUID+14, 15102, 0, -5026.13, -1267.75, 505.383, 3.47321, 300, 300, 100, 5, 10), +(@CGUID+15, 15102, 0, -4916.61, -852.305, 501.745, 1.48353, 300, 300, 100, 5, 10), +(@CGUID+16, 15102, 0, -4916.43, -848.374, 501.745, 4.72984, 300, 300, 100, 5, 10), +(@CGUID+17, 15102, 0, -4839.37, -1169.09, 502.279, 5.37561, 300, 300, 100, 5, 10), +(@CGUID+18, 15102, 0, -4836.85, -1171.63, 502.277, 2.44346, 300, 300, 100, 5, 10), +(@CGUID+19, 15102, 0, -4683.46, -985.091, 501.627, 6.03884, 300, 300, 100, 5, 10), +(@CGUID+20, 15102, 0, -4680.7, -985.645, 501.642, 3.08923, 300, 300, 100, 5, 10), +(@CGUID+21, 15105, 1, -1381.3, -61.6688, 159.135, 0.0174533, 300, 300, 100, 5, 10), +(@CGUID+22, 15105, 1, -1377.62, -61.9991, 159.279, 2.93215, 300, 300, 100, 5, 10), +(@CGUID+23, 15105, 1, -1277.94, 138.47, 131.94, 5.35816, 300, 300, 100, 5, 10), +(@CGUID+24, 15105, 1, -1275.75, 135.88, 132.1, 2.32129, 300, 300, 100, 5, 10), +(@CGUID+25, 15105, 1, -1247.75, 54.7024, 127.217, 1.0472, 300, 300, 100, 5, 10), +(@CGUID+26, 15105, 1, -1245.48, 58.3111, 127.087, 4.11898, 300, 300, 100, 5, 10), +(@CGUID+27, 15105, 1, -1091.7, -17.997, 140.475, 1.13446, 300, 300, 100, 5, 10), +(@CGUID+28, 15105, 1, -1090.22, -15.3547, 140.657, 4.15388, 300, 300, 100, 5, 10), +(@CGUID+29, 15105, 0, 1258.96, 348.256, -63.6283, 0.977384, 300, 300, 100, 5, 10), +(@CGUID+30, 15105, 0, 1260.82, 351.139, -63.618, 4.15388, 300, 300, 100, 5, 10), +(@CGUID+31, 15105, 0, 1521.09, 238.709, -41.3065, 1.18682, 300, 300, 100, 5, 10), +(@CGUID+32, 15105, 0, 1522.57, 242.055, -41.3065, 4.2586, 300, 300, 100, 5, 10), +(@CGUID+33, 15105, 0, 1593.22, 166.868, -41.3411, 5.81195, 300, 300, 100, 5, 10), +(@CGUID+34, 15105, 0, 1593.71, 316.03, -41.3411, 6.21337, 300, 300, 100, 5, 10), +(@CGUID+35, 15105, 0, 1596.57, 315.891, -41.3411, 3.12414, 300, 300, 100, 5, 10), +(@CGUID+36, 15105, 0, 1597.46, 164.685, -41.3411, 2.6529, 300, 300, 100, 5, 10), +(@CGUID+37, 15105, 1, 1658.86, -4389.01, 23.7694, 1.13446, 300, 300, 100, 5, 10), +(@CGUID+38, 15105, 1, 1660.66, -4385.63, 23.9798, 4.11898, 300, 300, 100, 5, 10), +(@CGUID+39, 15105, 1, 1665.84, -4344.94, 61.3295, 5.37561, 300, 300, 100, 5, 10), +(@CGUID+40, 15105, 1, 1667.64, -4346.96, 61.3295, 2.37365, 300, 300, 100, 5, 10), +(@CGUID+41, 15105, 1, 1743.73, -3966.88, 49.2422, 0.418879, 300, 300, 100, 5, 10), +(@CGUID+42, 15105, 1, 1747.5, -3965.36, 49.8576, 3.49066, 300, 300, 100, 5, 10), +(@CGUID+43, 15105, 1, 1936.91, -4712.06, 37.1041, 1.18682, 300, 300, 100, 5, 10), +(@CGUID+44, 15105, 1, 1937.18, -4707.45, 35.5453, 4.36332, 300, 300, 100, 5, 10), +(@CGUID+45, 15102, 1, 9724.21, 2545, 1335.76, 5.58505, 300, 300, 100, 5, 10), +(@CGUID+46, 15102, 1, 9727.12, 2542.52, 1335.24, 2.42601, 300, 300, 100, 5, 10), +(@CGUID+47, 15102, 1, 9959.42, 2484.32, 1316.13, 0.750492, 300, 300, 100, 5, 10), +(@CGUID+48, 15102, 1, 9961.1, 2179.29, 1327.8, 5.13127, 300, 300, 100, 5, 10), +(@CGUID+49, 15102, 1, 9962.13, 2487.17, 1316.12, 3.9968, 300, 300, 100, 5, 10), +(@CGUID+50, 15102, 1, 9962.88, 2175.22, 1327.8, 1.97222, 300, 300, 100, 5, 10), +(@CGUID+51, 15102, 1, 9983.62, 2350.23, 1330.87, 4.92183, 300, 300, 100, 5, 10), +(@CGUID+52, 15102, 1, 9984.56, 2345.23, 1330.87, 1.74533, 300, 300, 100, 5, 10); + +INSERT INTO `game_event_creature` (`guid`, `event`) VALUES +(@CGUID+1, 19), +(@CGUID+2, 19), +(@CGUID+3, 19), +(@CGUID+4, 19), +(@CGUID+5, 19), +(@CGUID+6, 19), +(@CGUID+7, 19), +(@CGUID+8, 19), +(@CGUID+9, 19), +(@CGUID+10, 19), +(@CGUID+11, 19), +(@CGUID+12, 19), +(@CGUID+13, 19), +(@CGUID+14, 19), +(@CGUID+15, 19), +(@CGUID+16, 19), +(@CGUID+17, 19), +(@CGUID+18, 19), +(@CGUID+19, 19), +(@CGUID+20, 19), +(@CGUID+21, 19), +(@CGUID+22, 19), +(@CGUID+23, 19), +(@CGUID+24, 19), +(@CGUID+25, 19), +(@CGUID+26, 19), +(@CGUID+27, 19), +(@CGUID+28, 19), +(@CGUID+29, 19), +(@CGUID+30, 19), +(@CGUID+31, 19), +(@CGUID+32, 19), +(@CGUID+33, 19), +(@CGUID+34, 19), +(@CGUID+35, 19), +(@CGUID+36, 19), +(@CGUID+37, 19), +(@CGUID+38, 19), +(@CGUID+39, 19), +(@CGUID+40, 19), +(@CGUID+41, 19), +(@CGUID+42, 19), +(@CGUID+43, 19), +(@CGUID+44, 19), +(@CGUID+45, 19), +(@CGUID+46, 19), +(@CGUID+47, 19), +(@CGUID+48, 19), +(@CGUID+49, 19), +(@CGUID+50, 19), +(@CGUID+51, 19), +(@CGUID+52, 19); + +-- EVENT 20 AB (14990 14991) +SET @CGUID = 28620; +INSERT INTO `creature` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `health_percent`, `patch_min`, `patch_max`) VALUES +(@CGUID+1, 14991, 0, -8876.83, 542.382, 106.366, 0.558505, 300, 300, 100, 5, 10), +(@CGUID+2, 14991, 0, -8873.52, 544.724, 106.367, 3.82227, 300, 300, 100, 5, 10), +(@CGUID+3, 14991, 0, -8853.08, 587.01, 94.0289, 0.680678, 300, 300, 100, 5, 10), +(@CGUID+4, 14991, 0, -8850.69, 589.49, 93.7805, 4.06662, 300, 300, 100, 5, 10), +(@CGUID+5, 14991, 0, -8840.63, 652.959, 97.1951, 5.60251, 300, 300, 100, 5, 10), +(@CGUID+6, 14991, 0, -8838.8, 651.394, 96.8924, 2.42601, 300, 300, 100, 5, 10), +(@CGUID+7, 14991, 0, -8416.18, 329.05, 120.969, 5.53269, 300, 300, 100, 5, 10), +(@CGUID+8, 14991, 0, -8414.17, 326.23, 120.969, 2.30383, 300, 300, 100, 5, 10), +(@CGUID+9, 14991, 0, -8411.89, 575.031, 92.3179, 0.855211, 300, 300, 100, 5, 10), +(@CGUID+10, 14991, 0, -8409.07, 578.255, 92.0611, 3.9968, 300, 300, 100, 5, 10), +(@CGUID+11, 14991, 0, -5037.07, -1261.52, 505.383, 5.42797, 300, 300, 100, 5, 10), +(@CGUID+12, 14991, 0, -5033.87, -1266.07, 505.383, 2.07694, 300, 300, 100, 5, 10), +(@CGUID+13, 14991, 0, -5033.75, -931.287, 501.743, 1.32645, 300, 300, 100, 5, 10), +(@CGUID+14, 14991, 0, -5032.97, -926.68, 501.743, 4.64258, 300, 300, 100, 5, 10), +(@CGUID+15, 14991, 0, -4916.61, -852.305, 501.745, 1.48353, 300, 300, 100, 5, 10), +(@CGUID+16, 14991, 0, -4916.43, -848.374, 501.745, 4.72984, 300, 300, 100, 5, 10), +(@CGUID+17, 14991, 0, -4839.37, -1169.09, 502.279, 5.37561, 300, 300, 100, 5, 10), +(@CGUID+18, 14991, 0, -4836.85, -1171.63, 502.277, 2.44346, 300, 300, 100, 5, 10), +(@CGUID+19, 14991, 0, -4683.46, -985.091, 501.627, 6.03884, 300, 300, 100, 5, 10), +(@CGUID+20, 14991, 0, -4680.56, -985.584, 501.646, 3.08923, 300, 300, 100, 5, 10), +(@CGUID+21, 14990, 1, -1381.3, -61.6688, 159.135, 0.0174533, 300, 300, 100, 5, 10), +(@CGUID+22, 14990, 1, -1277.94, 138.47, 131.94, 5.35816, 300, 300, 100, 5, 10), +(@CGUID+23, 14990, 1, -1275.75, 135.88, 132.1, 2.32129, 300, 300, 100, 5, 10), +(@CGUID+24, 14990, 1, -1247.75, 54.7024, 127.217, 1.0472, 300, 300, 100, 5, 10), +(@CGUID+25, 14990, 1, -1245.48, 58.3111, 127.087, 4.11898, 300, 300, 100, 5, 10), +(@CGUID+26, 14990, 1, -1091.7, -17.997, 140.475, 1.13446, 300, 300, 100, 5, 10), +(@CGUID+27, 14990, 1, -1090.22, -15.3547, 140.657, 4.15388, 300, 300, 100, 5, 10), +(@CGUID+28, 14990, 1, -1050.61, 235.155, 134.653, 2.93215, 300, 300, 100, 5, 10), +(@CGUID+29, 14990, 0, 1284.94, 282.267, -63.6046, 6.19592, 300, 300, 100, 5, 10), +(@CGUID+30, 14990, 0, 1288.96, 281.482, -63.6061, 2.86234, 300, 300, 100, 5, 10), +(@CGUID+31, 14990, 0, 1521.09, 238.709, -41.3065, 1.13446, 300, 300, 100, 5, 10), +(@CGUID+32, 14990, 0, 1522.88, 242.33, -41.3065, 4.29351, 300, 300, 100, 5, 10), +(@CGUID+33, 14990, 0, 1593.48, 166.616, -41.3411, 5.84685, 300, 300, 100, 5, 10), +(@CGUID+34, 14990, 0, 1593.71, 316.03, -41.3411, 6.17847, 300, 300, 100, 5, 10), +(@CGUID+35, 14990, 0, 1596.16, 315.656, -41.3411, 2.98451, 300, 300, 100, 5, 10), +(@CGUID+36, 14990, 0, 1597.46, 164.685, -41.3411, 2.70526, 300, 300, 100, 5, 10), +(@CGUID+37, 14990, 1, 1658.86, -4389.01, 23.7694, 1.13446, 300, 300, 100, 5, 10), +(@CGUID+38, 14990, 1, 1660.66, -4385.63, 23.9798, 4.11898, 300, 300, 100, 5, 10), +(@CGUID+39, 14990, 1, 1665.84, -4344.94, 61.3295, 5.37561, 300, 300, 100, 5, 10), +(@CGUID+40, 14990, 1, 1667.64, -4346.96, 61.3295, 2.37365, 300, 300, 100, 5, 10), +(@CGUID+41, 14990, 1, 1743.73, -3966.88, 49.2422, 0.418879, 300, 300, 100, 5, 10), +(@CGUID+42, 14990, 1, 1747.5, -3965.36, 49.8576, 3.49066, 300, 300, 100, 5, 10), +(@CGUID+43, 14990, 1, 1936.46, -4710.1, 36.5287, 1.18682, 300, 300, 100, 5, 10), +(@CGUID+44, 14990, 1, 1937.02, -4707.39, 35.5506, 4.36332, 300, 300, 100, 5, 10), +(@CGUID+45, 14991, 1, 9724.21, 2545, 1335.76, 5.58505, 300, 300, 100, 5, 10), +(@CGUID+46, 14991, 1, 9727.12, 2542.52, 1335.24, 2.42601, 300, 300, 100, 5, 10), +(@CGUID+47, 14991, 1, 9959.42, 2484.32, 1316.13, 0.750492, 300, 300, 100, 5, 10), +(@CGUID+48, 14991, 1, 9961.1, 2179.29, 1327.8, 5.13127, 300, 300, 100, 5, 10), +(@CGUID+49, 14991, 1, 9962.13, 2487.17, 1316.12, 3.9968, 300, 300, 100, 5, 10), +(@CGUID+50, 14991, 1, 9962.88, 2175.22, 1327.8, 1.97222, 300, 300, 100, 5, 10), +(@CGUID+51, 14991, 1, 9983.62, 2350.23, 1330.87, 4.92183, 300, 300, 100, 5, 10), +(@CGUID+52, 14991, 1, 9984.56, 2345.23, 1330.87, 1.74533, 300, 300, 100, 5, 10), +(@CGUID+53, 14990, 0, -1377.62, -61.9991, 159.279, 2.93215, 300, 300, 100, 5, 10); + +INSERT INTO `game_event_creature` (`guid`, `event`) VALUES +(@CGUID+1, 20), +(@CGUID+2, 20), +(@CGUID+3, 20), +(@CGUID+4, 20), +(@CGUID+5, 20), +(@CGUID+6, 20), +(@CGUID+7, 20), +(@CGUID+8, 20), +(@CGUID+9, 20), +(@CGUID+10, 20), +(@CGUID+11, 20), +(@CGUID+12, 20), +(@CGUID+13, 20), +(@CGUID+14, 20), +(@CGUID+15, 20), +(@CGUID+16, 20), +(@CGUID+17, 20), +(@CGUID+18, 20), +(@CGUID+19, 20), +(@CGUID+20, 20), +(@CGUID+21, 20), +(@CGUID+22, 20), +(@CGUID+23, 20), +(@CGUID+24, 20), +(@CGUID+25, 20), +(@CGUID+26, 20), +(@CGUID+27, 20), +(@CGUID+28, 20), +(@CGUID+29, 20), +(@CGUID+30, 20), +(@CGUID+31, 20), +(@CGUID+32, 20), +(@CGUID+33, 20), +(@CGUID+34, 20), +(@CGUID+35, 20), +(@CGUID+36, 20), +(@CGUID+37, 20), +(@CGUID+38, 20), +(@CGUID+39, 20), +(@CGUID+40, 20), +(@CGUID+41, 20), +(@CGUID+42, 20), +(@CGUID+43, 20), +(@CGUID+44, 20), +(@CGUID+45, 20), +(@CGUID+46, 20), +(@CGUID+47, 20), +(@CGUID+48, 20), +(@CGUID+49, 20), +(@CGUID+50, 20), +(@CGUID+51, 20), +(@CGUID+52, 20), +(@CGUID+53, 20); + +-- OBJECTS +-- EVENT 18 AV (180395 180397 180399) +SET @OGUID = 24799; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180399, 0, -8869.83, 543.576, 106.861, 4.67748, 0, 0, -0.719339, 0.694659, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+2, 180399, 0, -8847.33, 594.026, 94.0901, 5.58505, 0, 0, -0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+3, 180399, 0, -8843.05, 654.157, 97.8323, 3.75246, 0, 0, -0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+4, 180399, 0, -8418.02, 347.772, 121.629, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+5, 180399, 0, -8402.93, 576.101, 92.1175, 5.32326, 0, 0, -0.461748, 0.887011, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+6, 180399, 0, -5036.72, -920.928, 502.333, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+7, 180399, 0, -5034.39, -1263.01, 505.994, 0.663223, 0, 0, 0.325567, 0.945519, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+8, 180399, 0, -4918.03, -843.841, 502.425, 3.87463, 0, 0, -0.93358, 0.358368, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+9, 180399, 0, -4833.56, -1172.25, 502.923, 1.20428, 0, 0, 0.566406, 0.824126, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+10, 180399, 0, -4675.35, -984.821, 502.297, 4.4855, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+11, 180395, 1, -1379.01, -58.6698, 158.927, 3.4034, 0, 0, -0.991445, 0.130528, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+12, 180395, 1, -1273.59, 134.621, 132.174, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+13, 180395, 1, -1249.68, 52.2836, 127.186, 1.90241, 0, 0, 0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+14, 180395, 1, -1091.78, -20.9857, 140.129, 0.296705, 0, 0, 0.147809, 0.989016, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+15, 180395, 0, 1331.46, 337.249, -63.7058, 3.4383, 0, 0, -0.989016, 0.147811, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+16, 180395, 0, 1524.65, 242.972, -41.3899, 4.72984, 0, 0, -0.700909, 0.713251, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+17, 180395, 0, 1592.72, 168.947, -41.4244, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+18, 180395, 0, 1598.8, 311.823, -41.4244, 3.14159, 0, 0, -1, 0, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+19, 180395, 1, 1657.65, -4385.68, 23.5493, 5.02655, 0, 0, -0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+20, 180395, 1, 1663.65, -4343.05, 61.2462, 0.750491, 0, 0, 0.366501, 0.930418, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+21, 180395, 1, 1749.5, -3963.36, 49.7743, 3.75246, 0, 0, -0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+22, 180395, 1, 1934.82, -4711.71, 37.2294, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+23, 180399, 1, 9723.84, 2541.49, 1336.3, 5.88176, 0, 0, -0.199368, 0.979925, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+24, 180399, 1, 9920.2, 2349.05, 1331.37, 4.72984, 0, 0, -0.700909, 0.713251, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+25, 180399, 1, 9963.14, 2488.85, 1316.42, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+26, 180399, 1, 9964.96, 2178.06, 1328.47, 0.471238, 0, 0, 0.233445, 0.97237, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+27, 180397, 0, -8869.82, 544.096, 106.284, 3.10665, 0, 0, 0.999847, 0.0174693, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+28, 180397, 0, -8846.94, 593.738, 93.4625, 2.42601, 0, 0, 0.936672, 0.350207, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+29, 180397, 0, -8842.54, 654.447, 97.2713, 3.75246, 0, 0, -0.953716, 0.300708, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+30, 180397, 0, -8417.59, 348.152, 120.886, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+31, 180397, 0, -8403.31, 576.532, 91.5694, 5.32326, 0, 0, -0.461748, 0.887011, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+32, 180397, 0, -5037.26, -920.918, 501.659, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+33, 180397, 0, -5034.8, -1263.32, 505.3, 0.680677, 0, 0, 0.333806, 0.942642, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+34, 180397, 0, -4917.61, -843.449, 501.661, 3.87463, 0, 0, -0.93358, 0.358368, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+35, 180397, 0, -4833.71, -1172.75, 502.193, 5.93412, 0, 0, -0.173648, 0.984808, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+36, 180397, 0, -4675.45, -985.328, 501.659, 1.3439, 0, 0, 0.622514, 0.782609, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+37, 180397, 1, 9723.25, 2541.69, 1335.68, 4.31097, 0, 0, -0.833885, 0.551938, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+38, 180397, 1, 9920.18, 2349.57, 1330.78, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+39, 180397, 1, 9963.71, 2488.86, 1315.88, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+40, 180397, 1, 9965.34, 2178.41, 1327.95, 3.59538, 0, 0, -0.97437, 0.224951, 180, 180, 100, 1, 0, 0, 5, 10); + +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+1, 18), +(@OGUID+2, 18), +(@OGUID+3, 18), +(@OGUID+4, 18), +(@OGUID+5, 18), +(@OGUID+6, 18), +(@OGUID+7, 18), +(@OGUID+8, 18), +(@OGUID+9, 18), +(@OGUID+10, 18), +(@OGUID+11, 18), +(@OGUID+12, 18), +(@OGUID+13, 18), +(@OGUID+14, 18), +(@OGUID+15, 18), +(@OGUID+16, 18), +(@OGUID+17, 18), +(@OGUID+18, 18), +(@OGUID+19, 18), +(@OGUID+20, 18), +(@OGUID+21, 18), +(@OGUID+22, 18), +(@OGUID+23, 18), +(@OGUID+24, 18), +(@OGUID+25, 18), +(@OGUID+26, 18), +(@OGUID+27, 18), +(@OGUID+28, 18), +(@OGUID+29, 18), +(@OGUID+30, 18), +(@OGUID+31, 18), +(@OGUID+32, 18), +(@OGUID+33, 18), +(@OGUID+34, 18), +(@OGUID+35, 18), +(@OGUID+36, 18), +(@OGUID+37, 18), +(@OGUID+38, 18), +(@OGUID+39, 18), +(@OGUID+40, 18); + +-- EVENT 19 WSG (180394 180397 180400) +SET @OGUID = 27517; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180400, 0, -8870.22, 544.18, 107.381, 1.88495, 0, 0, 0.809016, 0.587786, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+2, 180400, 0, -8847.87, 594.554, 94.5125, 5.5676, 0, 0, -0.350207, 0.936672, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+3, 180400, 0, -8843.32, 654.261, 98.6822, 0.645772, 0, 0, 0.317305, 0.948324, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+4, 180400, 0, -8460.94, 313.787, 121.997, 3.82227, 0, 0, -0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+5, 180400, 0, -8403.57, 576.764, 93.0165, 5.28835, 0, 0, -0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+6, 180400, 0, -5035.72, -922.074, 502.826, 2.9845, 0, 0, 0.996917, 0.0784664, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+7, 180400, 0, -5034.64, -1263.19, 506.717, 3.85718, 0, 0, -0.936671, 0.35021, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+8, 180400, 0, -4919.79, -844.952, 503.127, 0.663223, 0, 0, 0.325567, 0.945519, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+9, 180400, 0, -4832.72, -1171.25, 503.501, 4.45059, 0, 0, -0.793353, 0.608762, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+10, 180400, 0, -4675.23, -985.175, 503.026, 4.4855, 0, 0, -0.782608, 0.622515, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+11, 180394, 1, -1377.53, -58.1542, 158.909, 3.26377, 0, 0, -0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+12, 180394, 1, -1273.51, 134.157, 132.078, 3.927, 0, 0, -0.923879, 0.382686, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+13, 180394, 1, -1249.68, 52.4457, 127.18, 1.90241, 0, 0, 0.814116, 0.580703, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+14, 180394, 1, -1091.86, -20.8769, 140.129, 0.279252, 0, 0, 0.139173, 0.990268, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+15, 180394, 0, 1262.65, 353.735, -63.693, 5.48033, 0, 0, -0.390731, 0.920505, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+16, 180394, 0, 1524.69, 243.914, -41.3899, 4.72984, 0, 0, -0.700909, 0.713251, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+17, 180394, 0, 1592.2, 168.617, -41.4244, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+18, 180394, 0, 1599, 311.549, -41.4244, 3.15906, 0, 0, -0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+19, 180394, 1, 1657.46, -4385.4, 23.5797, 5.2709, 0, 0, -0.484809, 0.87462, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+20, 180394, 1, 1663.59, -4343.19, 61.2462, 0.750491, 0, 0, 0.366501, 0.930418, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+21, 180394, 1, 1749.5, -3963.36, 49.7743, 3.4034, 0, 0, -0.991445, 0.130528, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+22, 180394, 1, 1933.51, -4709.62, 36.7444, 1.62316, 0, 0, 0.725374, 0.688355, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+23, 180400, 1, 9720.44, 2545, 1336.91, 2.14675, 0, 0, 0.878817, 0.47716, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+24, 180400, 1, 9963.42, 2490.15, 1317.3, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+25, 180400, 1, 9965.23, 2179.72, 1329.41, 0.541051, 0, 0, 0.267238, 0.963631, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+26, 180400, 1, 9984.69, 2342.52, 1331.81, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+27, 180397, 1, 9985.21, 2342.41, 1330.79, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+28, 180397, 0, -8870.4, 544.658, 106.284, 5.06146, 0, 0, -0.573576, 0.819152, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+29, 180397, 0, -8847.53, 594.128, 93.4274, 2.42601, 0, 0, 0.936672, 0.350207, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+30, 180397, 0, -8842.86, 654.543, 97.2775, 3.80482, 0, 0, -0.945518, 0.325568, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+31, 180397, 0, -8461.34, 313.517, 120.886, 0.698131, 0, 0, 0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+32, 180397, 0, -8404.05, 577.197, 91.9778, 5.28835, 0, 0, -0.477159, 0.878817, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+33, 180397, 0, -5036.14, -921.804, 501.659, 6.16101, 0, 0, -0.0610485, 0.998135, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+34, 180397, 0, -5035.03, -1263.47, 505.3, 0.698131, 0, 0, 0.34202, 0.939693, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+35, 180397, 0, -4919.31, -844.615, 501.661, 5.42797, 0, 0, -0.414693, 0.909961, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+36, 180397, 0, -4832.88, -1171.66, 502.195, 1.309, 0, 0, 0.608761, 0.793354, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+37, 180397, 0, -4675.27, -985.681, 501.659, 1.36136, 0, 0, 0.62932, 0.777146, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+38, 180397, 1, 9720.18, 2545.46, 1335.68, 5.3058, 0, 0, -0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+39, 180397, 1, 9963.93, 2490.04, 1316.05, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+40, 180397, 1, 9965.64, 2179.93, 1328.07, 3.73501, 0, 0, -0.956305, 0.292372, 180, 180, 100, 1, 0, 0, 5, 10); + +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+1, 19), +(@OGUID+2, 19), +(@OGUID+3, 19), +(@OGUID+4, 19), +(@OGUID+5, 19), +(@OGUID+6, 19), +(@OGUID+7, 19), +(@OGUID+8, 19), +(@OGUID+9, 19), +(@OGUID+10, 19), +(@OGUID+11, 19), +(@OGUID+12, 19), +(@OGUID+13, 19), +(@OGUID+14, 19), +(@OGUID+15, 19), +(@OGUID+16, 19), +(@OGUID+17, 19), +(@OGUID+18, 19), +(@OGUID+19, 19), +(@OGUID+20, 19), +(@OGUID+21, 19), +(@OGUID+22, 19), +(@OGUID+23, 19), +(@OGUID+24, 19), +(@OGUID+25, 19), +(@OGUID+26, 19), +(@OGUID+27, 19), +(@OGUID+28, 19), +(@OGUID+29, 19), +(@OGUID+30, 19), +(@OGUID+31, 19), +(@OGUID+32, 19), +(@OGUID+33, 19), +(@OGUID+34, 19), +(@OGUID+35, 19), +(@OGUID+36, 19), +(@OGUID+37, 19), +(@OGUID+38, 19), +(@OGUID+39, 19), +(@OGUID+40, 19); + +-- EVENT 20 AB (180396 180398) +SET @OGUID = 5963; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@OGUID+1, 180398, 0, -8870.97, 545.69, 106.284, 4.72984, 0, 0, -0.700909, 0.713251, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+2, 180398, 0, -8849.03, 591.574, 93.5795, 2.44346, 0, 0, 0.939692, 0.34202, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+3, 180398, 0, -8842.61, 654.864, 97.3015, 3.78737, 0, 0, -0.948323, 0.317306, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+4, 180398, 0, -8411.64, 327.647, 120.886, 3.01941, 0, 0, 0.998135, 0.0610518, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+5, 180398, 0, -8403.36, 576.668, 91.5761, 2.18166, 0, 0, 0.887011, 0.461749, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+6, 180398, 0, -5038.93, -1258.81, 505.3, 0.715585, 0, 0, 0.350207, 0.936672, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+7, 180398, 0, -5035.22, -921.683, 501.659, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+8, 180398, 0, -4917.68, -844.409, 501.661, 3.82227, 0, 0, -0.942641, 0.333808, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+9, 180398, 0, -4833.52, -1171.66, 502.195, 1.25664, 0, 0, 0.587785, 0.809017, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+10, 180398, 0, -4675.3, -985.274, 501.659, 1.37881, 0, 0, 0.636078, 0.771625, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+11, 180396, 1, -1273.78, 134.171, 132.044, 3.9619, 0, 0, -0.91706, 0.39875, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+12, 180396, 1, -1249.95, 52.8591, 127.187, 1.88495, 0, 0, 0.809016, 0.587786, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+13, 180396, 1, -1091.66, -20.7783, 140.086, 0.279252, 0, 0, 0.139173, 0.990268, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+14, 180396, 1, -1049.53, 232.828, 134.71, 0.977383, 0, 0, 0.469471, 0.882948, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+15, 180396, 0, 1282.28, 283.433, -63.6946, 1.3439, 0, 0, 0.622514, 0.782609, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+16, 180396, 0, 1525.18, 243.557, -41.3899, 4.7473, 0, 0, -0.694658, 0.71934, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+17, 180396, 0, 1592.34, 168.966, -41.4244, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+18, 180396, 0, 1599.25, 311.107, -41.4244, 3.15906, 0, 0, -0.999962, 0.00873464, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+19, 180396, 1, 1657.95, -4384.94, 23.7052, 4.88692, 0, 0, -0.642787, 0.766045, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+20, 180396, 1, 1663.83, -4343.29, 61.2462, 0.767944, 0, 0, 0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+21, 180396, 1, 1749.5, -3963.36, 49.7743, 3.50812, 0, 0, -0.983254, 0.182238, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+22, 180396, 1, 1933.43, -4708.68, 36.4909, 1.5708, 0, 0, 0.707107, 0.707107, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+23, 180398, 1, 9722.7, 2542.97, 1335.68, 5.51524, 0, 0, -0.374606, 0.927184, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+24, 180398, 1, 9963.71, 2489.41, 1316.03, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+25, 180398, 1, 9964.45, 2179.26, 1327.95, 3.83973, 0, 0, -0.939692, 0.34202, 180, 180, 100, 1, 0, 0, 5, 10), +(@OGUID+26, 180398, 1, 9985.22, 2348.01, 1330.79, 0, 0, 0, 0, 1, 180, 180, 100, 1, 0, 0, 5, 10); + +INSERT INTO `game_event_gameobject` (`guid`, `event`) VALUES +(@OGUID+1, 20), +(@OGUID+2, 20), +(@OGUID+3, 20), +(@OGUID+4, 20), +(@OGUID+5, 20), +(@OGUID+6, 20), +(@OGUID+7, 20), +(@OGUID+8, 20), +(@OGUID+9, 20), +(@OGUID+10, 20), +(@OGUID+11, 20), +(@OGUID+12, 20), +(@OGUID+13, 20), +(@OGUID+14, 20), +(@OGUID+15, 20), +(@OGUID+16, 20), +(@OGUID+17, 20), +(@OGUID+18, 20), +(@OGUID+19, 20), +(@OGUID+20, 20), +(@OGUID+21, 20), +(@OGUID+22, 20), +(@OGUID+23, 20), +(@OGUID+24, 20), +(@OGUID+25, 20), +(@OGUID+26, 20); + +UPDATE `creature` SET `movement_type` = 0, `wander_distance` = 0 WHERE `id` IN (13843, 15103, 15106, 13842, 15102, 15105, 14990, 14991) AND `guid` NOT IN (190496, 190498, 190500, 190512, 190514, 190516, 190520, 190522, 190524, 190532, 190548, 190556, 190497, 190499, 190501, 190513, 190515, 190517, 190521, 190523, 190525, 190533, 190549, 190557); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 3cdffb8dd964f8fcef87b82781966e98a59ee44b Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Mon, 21 Aug 2023 16:12:16 +0100 Subject: [PATCH 169/426] Add Correct Spawns and Patrols - Dire Maul Entrance (#2140) --- sql/migrations/20230729130435_world.sql | 529 ++++++++++++++++++++++++ 1 file changed, 529 insertions(+) create mode 100644 sql/migrations/20230729130435_world.sql diff --git a/sql/migrations/20230729130435_world.sql b/sql/migrations/20230729130435_world.sql new file mode 100644 index 00000000000..3798af81f8e --- /dev/null +++ b/sql/migrations/20230729130435_world.sql @@ -0,0 +1,529 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230729130435'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230729130435'); +-- Add your query below. + + +-- Add Correct Spawns +UPDATE `creature` SET `movement_type` = 0, `wander_distance` = 0 WHERE `guid` IN (51016, 51089, 51084); +UPDATE `creature` SET `position_x` = -4453.125, `position_y` = 1449.7388, `position_z` = 127.01061, `orientation` = 4.837978363037109375 WHERE `guid` = 51022; +UPDATE `creature` SET `position_x` = -4445.987, `position_y` = 1516.5454, `position_z` = 126.46534, `orientation` = 3.122159719467163085 WHERE `guid` = 51079; +UPDATE `creature` SET `position_x` = -4485.658, `position_y` = 1414.0709, `position_z` = 127.02765, `orientation` = 0.841518938541412353 WHERE `guid` = 51092; +UPDATE `creature` SET `position_x` = -4615.8574, `position_y` = 1351.7311, `position_z` = 102.85461, `orientation` = 0.266002804040908813 WHERE `guid` = 51129; +UPDATE `creature` SET `position_x` = -4360.3965, `position_y` = 1330.485, `position_z` = 159.28914, `orientation` = 1.640096902847290039 WHERE `guid` = 51030; +UPDATE `creature` SET `position_x` = -4348.142, `position_y` = 1373.4885, `position_z` = 157.46828, `orientation` = 1.085126519203186035 WHERE `guid` = 51130; +UPDATE `creature` SET `position_x` = -4348.97, `position_y` = 1291.337, `position_z` = 158.18484, `orientation` = 1.465876102447509765 WHERE `guid` = 51131; +UPDATE `creature` SET `position_x` = -4367.583, `position_y` = 1508.7891, `position_z` = 150.6499, `orientation` = 3.600060939788818359 WHERE `guid` = 51132; +UPDATE `creature` SET `position_x` = -4349.9233, `position_y` = 1457.9415, `position_z` = 150.64963, `orientation` = 2.781168937683105468 WHERE `guid` = 51032; +UPDATE `creature` SET `position_x` = -4471.221, `position_y` = 1622.9948, `position_z` = 150.65579, `orientation` = 3.009937047958374023 WHERE `guid` = 51067; +UPDATE `creature` SET `position_x` = -4451.278, `position_y` = 1601.6882, `position_z` = 150.65485, `orientation` = 3.426462173461914062 WHERE `guid` = 51082; +UPDATE `creature` SET `position_x` = -4475.442, `position_y` = 1685.6525, `position_z` = 150.66737, `orientation` = 1.505134224891662597 WHERE `guid` = 51071; +UPDATE `creature` SET `position_x` = -4479.558, `position_y` = 1650.5725, `position_z` = 150.6599, `orientation` = 4.887346267700195312 WHERE `guid` = 51019; +UPDATE `creature` SET `position_x` = -4444.0767, `position_y` = 1712.7028, `position_z` = 150.665, `orientation` = 0.114011988043785095 WHERE `guid` = 51072; +UPDATE `creature` SET `position_x` = -4352.2847, `position_y` = 1202.9615, `position_z` = 150.64972, `orientation` = 5.669431686401367187 WHERE `guid` = 51035; +UPDATE `creature` SET `position_x` = -4369.346, `position_y` = 1155.6742, `position_z` = 150.65012, `orientation` = 3.623343467712402343 WHERE `guid` = 51021; +UPDATE `creature` SET `position_x` = -4389.2925, `position_y` = 1136.6418, `position_z` = 150.6547, `orientation` = 5.690884113311767578 WHERE `guid` = 51086; +UPDATE `creature` SET `position_x` = -4458.31, `position_y` = 1058.263, `position_z` = 150.65561, `orientation` = 1.381864786148071289 WHERE `guid` = 51015; +UPDATE `creature` SET `position_x` = -4426.1616, `position_y` = 949.4542, `position_z` = 150.6655, `orientation` = 1.524081707000732421 WHERE `guid` = 51091; +UPDATE `creature` SET `position_x` = -4483.385, `position_y` = 1012.6897, `position_z` = 150.65958, `orientation` = 0.84520888328552246 WHERE `guid` = 51088; +UPDATE `creature` SET `position_x` = -4401.3203, `position_y` = 925.32465, `position_z` = 150.66638, `orientation` = 3.033296108245849609 WHERE `guid` = 51014; +UPDATE `creature` SET `position_x` = -4474.427, `position_y` = 974.2574, `position_z` = 150.66719, `orientation` = 2.384093284606933593 WHERE `guid` = 51066; +UPDATE `creature` SET `position_x` = -4182.179, `position_y` = 1302.7013, `position_z` = 161.26115, `orientation` = 4.727330684661865234 WHERE `guid` = 51037; +UPDATE `creature` SET `position_x` = -4182.6235, `position_y` = 1145.8236, `position_z` = 161.26901, `orientation` = 4.180980682373046875 WHERE `guid` = 51110; +UPDATE `creature` SET `position_x` = -4045.1384, `position_y` = 1143.2349, `position_z` = 159.81036, `orientation` = 3.354994535446166992 WHERE `guid` = 51028; +UPDATE `creature` SET `position_x` = -4033.5696, `position_y` = 1120.1909, `position_z` = 159.76436, `orientation` = 3.273650884628295898 WHERE `guid` = 51111; +UPDATE `creature` SET `position_x` = -4034.7322, `position_y` = 1064.8562, `position_z` = 159.76224, `orientation` = 5.280138969421386718 WHERE `guid` = 51059; +UPDATE `creature` SET `position_x` = -4032.0325, `position_y` = 1010.0499, `position_z` = 159.74928, `orientation` = 5.354701995849609375 WHERE `guid` = 51112; +UPDATE `creature` SET `position_x` = -4025.2183, `position_y` = 889.29083, `position_z` = 159.7305, `orientation` = 1.3256760835647583 WHERE `guid` = 51050; +UPDATE `creature` SET `position_x` = -4033.6345, `position_y` = 957.85126, `position_z` = 159.75502, `orientation` = 2.763689517974853515 WHERE `guid` = 51018; +UPDATE `creature` SET `position_x` = -4038.6802, `position_y` = 946.57153, `position_z` = 159.7871, `orientation` = 5.178121089935302734 WHERE `guid` = 51047; +UPDATE `creature` SET `position_x` = -4036.144, `position_y` = 899.5466, `position_z` = 159.77715, `orientation` = 4.225707054138183593 WHERE `guid` = 51087; +UPDATE `creature` SET `position_x` = -4041.7583, `position_y` = 882.6287, `position_z` = 159.79884, `orientation` = 0.738361299037933349 WHERE `guid` = 51098; +UPDATE `creature` SET `position_x` = -4023.6355, `position_y` = 1321.6704, `position_z` = 159.7563, `orientation` = 3.72686004638671875 WHERE `guid` = 51023; +UPDATE `creature` SET `position_x` = -4036.2786, `position_y` = 1330.8223, `position_z` = 159.8088, `orientation` = 0.415911614894866943 WHERE `guid` = 51055; +UPDATE `creature` SET `position_x` = -4034.6853, `position_y` = 1257.5017, `position_z` = 159.77908, `orientation` = 0.387499868869781494 WHERE `guid` = 51078; +UPDATE `creature` SET `position_x` = -4035.6885, `position_y` = 1200.462, `position_z` = 159.77168, `orientation` = 0.420495033264160156 WHERE `guid` = 51115; +UPDATE `creature` SET `position_x` = -3843.2053, `position_y` = 1195.6122, `position_z` = 149.6832, `orientation` = 1.409304499626159667 WHERE `guid` = 51060; +UPDATE `creature` SET `position_x` = -3918.9548, `position_y` = 1193.9281, `position_z` = 149.73822, `orientation` = 4.436206340789794921 WHERE `guid` = 51058; +UPDATE `creature` SET `position_x` = -3867.7432, `position_y` = 1152.0613, `position_z` = 154.83313, `orientation` = 1.76018381118774414 WHERE `guid` = 51061; +UPDATE `creature` SET `position_x` = -3883.8103, `position_y` = 1095.6268, `position_z` = 154.83313, `orientation` = 1.393362760543823242 WHERE `guid` = 51120; +UPDATE `creature` SET `position_x` = -3848.9363, `position_y` = 1131.5297, `position_z` = 154.8334, `orientation` = 1.666965126991271972 WHERE `guid` = 51118; +UPDATE `creature` SET `position_x` = -3927.9268, `position_y` = 1008.3636, `position_z` = 149.02483, `orientation` = 0.319256871938705444 WHERE `guid` = 51048; +UPDATE `creature` SET `position_x` = -3927.971, `position_y` = 1058.0214, `position_z` = 147.71402, `orientation` = 2.545480728149414062 WHERE `guid` = 51090; +UPDATE `creature` SET `position_x` = -3899.88, `position_y` = 987.15515, `position_z` = 148.15858, `orientation` = 0.363297522068023681 WHERE `guid` = 51074; +UPDATE `creature` SET `position_x` = -3839.131, `position_y` = 996.7229, `position_z` = 150.98323, `orientation` = 0.102264203131198883 WHERE `guid` = 51121; +UPDATE `creature` SET `position_x` = -3836.2239, `position_y` = 1054.4117, `position_z` = 154.83353, `orientation` = 2.594856500625610351 WHERE `guid` = 51062; +UPDATE `creature` SET `position_x` = -3870.1975, `position_y` = 1042.199, `position_z` = 154.83311, `orientation` = 2.878004789352416992 WHERE `guid` = 51119; +UPDATE `creature` SET `position_x` = -3733.9329, `position_y` = 979.04266, `position_z` = 150.03871, `orientation` = 1.735468149185180664 WHERE `guid` = 51065; +UPDATE `creature` SET `position_x` = -3712.0166, `position_y` = 1019.5955, `position_z` = 154.83328, `orientation` = 2.171266555786132812 WHERE `guid` = 51124; +UPDATE `creature` SET `position_x` = -3751.99, `position_y` = 1014.1583, `position_z` = 154.82066, `orientation` = 2.229166746139526367 WHERE `guid` = 51123; +UPDATE `creature` SET `position_x` = -3664.816, `position_y` = 997.65137, `position_z` = 147.55994, `orientation` = 0.830614924430847167 WHERE `guid` = 51127; +UPDATE `creature` SET `position_x` = -3789.4788, `position_y` = 1020.5936, `position_z` = 154.83337, `orientation` = 6.164378166198730468 WHERE `guid` = 51122; +UPDATE `creature` SET `position_x` = -3669.0696, `position_y` = 1038.3977, `position_z` = 154.83328, `orientation` = 2.491628646850585937 WHERE `guid` = 51125; +UPDATE `creature` SET `position_x` = -3624.4016, `position_y` = 1054.351, `position_z` = 154.83313, `orientation` = 4.920390605926513671 WHERE `guid` = 51063; +UPDATE `creature` SET `position_x` = -3594.9849, `position_y` = 988.037, `position_z` = 151.20627, `orientation` = 2.597206592559814453 WHERE `guid` = 51049; +UPDATE `creature` SET `position_x` = -3614.944, `position_y` = 1087.9945, `position_z` = 154.83313, `orientation` = 3.18982100486755371 WHERE `guid` = 51096; +UPDATE `creature` SET `position_x` = -3577.622, `position_y` = 1050.787, `position_z` = 148.08627, `orientation` = 6.039739131927490234 WHERE `guid` = 51064; +UPDATE `creature` SET `position_x` = -3633.5742, `position_y` = 1029.5052, `position_z` = 154.83313, `orientation` = 3.18167281150817871 WHERE `guid` = 51126; +UPDATE `creature` SET `position_x` = -3687.6033, `position_y` = 929.0791, `position_z` = 137.8767, `orientation` = 1.672535300254821777 WHERE `guid` = 51010; +UPDATE `creature` SET `position_x` = -3638.135, `position_y` = 1147.7373, `position_z` = 154.83311, `orientation` = 3.227643489837646484 WHERE `guid` = 51095; +UPDATE `creature` SET `position_x` = -3640.478, `position_y` = 1117.3896, `position_z` = 154.83179, `orientation` = 1.83396768569946289 WHERE `guid` = 51100; +UPDATE `creature` SET `position_x` = -3576.8594, `position_y` = 1165.3522, `position_z` = 150.05795, `orientation` = 5.658123016357421875 WHERE `guid` = 51053; +UPDATE `creature` SET `position_x` = -3621.2004, `position_y` = 1200.0653, `position_z` = 151.7106, `orientation` = 3.907045364379882812 WHERE `guid` = 51093; +UPDATE `creature` SET `position_x` = -3587.521, `position_y` = 1192.0405, `position_z` = 152.23831, `orientation` = 2.439187049865722656 WHERE `guid` = 51052; +UPDATE `creature` SET `position_x` = -3668.347, `position_y` = 1151.5942, `position_z` = 154.83319, `orientation` = 2.532033920288085937 WHERE `guid` = 51057; +UPDATE `creature` SET `position_x` = -3719.0156, `position_y` = 1203.6069, `position_z` = 151.83781, `orientation` = 5.263335704803466796 WHERE `guid` = 51051; +UPDATE `creature` SET `position_x` = -3754.1784, `position_y` = 1174.2265, `position_z` = 154.7865, `orientation` = 5.263335704803466756 WHERE `guid` = 51056; +UPDATE `creature` SET `position_x` = -3785.6657, `position_y` = 1171.4470, `position_z` = 154.7886, `orientation` = 5.263335704803466786 WHERE `guid` = 51102; + +-- Remove Custom Patrol +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 15 WHERE `guid` = 51128; +DELETE FROM `creature_movement` WHERE `id` = 51128; +UPDATE `creature` SET `position_x` = -4551.8584, `position_y` = 1332.3763, `position_z` = 114.02061, `orientation` = 4.899235725402832031 WHERE `guid` = 51128; + +-- Remove Custom Spawn +DELETE FROM `creature` WHERE `guid` = 51054; + +-- Remove Uneeded Gordok Hyena Patrols +DELETE FROM `creature` WHERE `guid` IN (50413, 50410, 50421, 50412, 50409, 50422, 50419, 50411, 50418, 50417); +DELETE FROM `creature_movement` WHERE `id` IN (50413, 50410, 50421, 50412, 50409, 50422, 50419, 50411, 50418, 50417); + +-- Gordok Hyena Pack 1 +SET @NPC = 3530; +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 15, 100, 0, 1, 0, 0, 0, 10); +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-4473.4165,`position_y`=1424.0602,`position_z`=126.91493 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-4473.4165,1424.0602,126.91493,100,0,0,0), +(@NPC,2,-4461.6626,1438.4277,127.47117,100,0,0,0), +(@NPC,3,-4448.6187,1457.6039,127.4354,100,0,0,0), +(@NPC,4,-4434.653,1476.5903,127.47724,100,0,0,0), +(@NPC,5,-4431.252,1499.1736,128.1352,100,0,0,0), +(@NPC,6,-4450.4224,1520.0326,126.74824,100,0,0,0), +(@NPC,7,-4466.053,1529.2223,127.56599,100,0,0,0), +(@NPC,8,-4469.8613,1535.5299,126.809364,100,0,0,0), +(@NPC,9,-4479.362,1557.5558,126.144325,100,0,0,0), +(@NPC,10,-4484.3823,1567.5636,126.62212,100,0,0,0), +(@NPC,11,-4479.362,1557.5558,126.144325,100,0,0,0), +(@NPC,12,-4469.8613,1535.5299,126.809364,100,0,0,0), +(@NPC,13,-4466.053,1529.2223,127.56599,100,0,0,0), +(@NPC,14,-4450.549,1520.0996,126.7602,100,0,0,0), +(@NPC,15,-4431.252,1499.1736,128.1352,100,0,0,0), +(@NPC,16,-4434.653,1476.5903,127.47724,100,0,0,0), +(@NPC,17,-4448.6187,1457.6039,127.4354,100,0,0,0), +(@NPC,18,-4461.6626,1438.4277,127.47117,100,0,0,0), +(@NPC,19,-4473.4165,1424.0602,126.91493,100,0,0,0), +(@NPC,20,-4474.376,1393.1151,126.35228,100,0,0,0), +(@NPC,21,-4473.0234,1374.3662,125.61595,100,0,0,0), +(@NPC,22,-4471.091,1344.7452,124.321686,100,0,0,0), +(@NPC,23,-4450.591,1332.8683,126.194046,100,0,0,0), +(@NPC,24,-4418.4644,1332.773,133.9039,100,0,0,0), +(@NPC,25,-4398.795,1334.0239,142.97153,100,0,0,0), +(@NPC,26,-4375.746,1329.4534,153.78157,100,0,0,0), +(@NPC,27,-4398.795,1334.0239,142.97153,100,0,0,0), +(@NPC,28,-4418.4644,1332.773,133.9039,100,0,0,0), +(@NPC,29,-4450.591,1332.8683,126.194046,100,0,0,0), +(@NPC,30,-4471.091,1344.7452,124.321686,100,0,0,0), +(@NPC,31,-4473.0234,1374.3662,125.61595,100,0,0,0), +(@NPC,32,-4474.376,1393.1151,126.35228,100,0,0,0); + +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC+1, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+2, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+3, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10); +UPDATE `creature` SET `position_x`=-4473.4165,`position_y`=1424.0602,`position_z`=126.91493 WHERE `guid` IN (@NPC+1, @NPC+2, @NPC+3); + +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(@NPC, @NPC, 0, 6.25244, 11), +(@NPC, @NPC+1, 5, 3.14, 11), +(@NPC, @NPC+2, 7, 3, 11), +(@NPC, @NPC+3, 9, 3.3, 11); + +-- Gordok Hyena Pack 2 +SET @NPC = 3534; +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 15, 100, 0, 1, 0, 0, 0, 10); +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-4493.14,`position_y`=1278.2858,`position_z`=128.05365 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-4493.14,1278.2858,128.05365,100,0,0,0), +(@NPC,2,-4478.269,1272.2859,127.32075,100,0,0,0), +(@NPC,3,-4473.8633,1253.4996,127.66678,100,0,0,0), +(@NPC,4,-4473.5205,1239.3378,127.13138,100,0,0,0), +(@NPC,5,-4459.0894,1224.492,126.96106,100,0,0,0), +(@NPC,6,-4445.384,1208.6725,126.19092,100,0,0,0), +(@NPC,7,-4436.603,1189.6877,125.96265,100,0,0,0), +(@NPC,8,-4441.0615,1174.7817,126.2229,100,0,0,0), +(@NPC,9,-4436.466,1163.1088,126.848145,100,0,0,0), +(@NPC,10,-4437.2637,1146.8473,127.11926,100,0,0,0), +(@NPC,11,-4447.346,1120.6438,126.17297,100,0,0,0), +(@NPC,12,-4461.2437,1103.9635,126.58765,100,0,0,0), +(@NPC,13,-4447.346,1120.6438,126.17297,100,0,0,0), +(@NPC,14,-4437.283,1146.7842,127.08765,100,0,0,0), +(@NPC,15,-4436.466,1163.1088,126.848145,100,0,0,0), +(@NPC,16,-4441.0615,1174.7817,126.2229,100,0,0,0), +(@NPC,17,-4436.603,1189.6877,125.96265,100,0,0,0), +(@NPC,18,-4445.384,1208.6725,126.19092,100,0,0,0), +(@NPC,19,-4459.0894,1224.492,126.96106,100,0,0,0), +(@NPC,20,-4473.5205,1239.3378,127.13138,100,0,0,0), +(@NPC,21,-4473.8633,1253.4996,127.66678,100,0,0,0), +(@NPC,22,-4478.269,1272.2859,127.32075,100,0,0,0), +(@NPC,23,-4493.14,1278.2858,128.05365,100,0,0,0), +(@NPC,24,-4509.82,1288.0223,127.41528,100,0,0,0), +(@NPC,25,-4516.506,1303.0729,126.112465,100,0,0,0), +(@NPC,26,-4515.492,1316.9537,120.58097,100,0,0,0), +(@NPC,27,-4515.936,1333.0367,118.568886,100,0,0,0), +(@NPC,28,-4515.2046,1358.3607,124.37174,100,0,0,0), +(@NPC,29,-4515.936,1333.0367,118.568886,100,0,0,0), +(@NPC,30,-4515.498,1317.0371,120.54374,100,0,0,0), +(@NPC,31,-4516.506,1303.0729,126.112465,100,0,0,0), +(@NPC,32,-4509.82,1288.0223,127.41528,100,0,0,0); + +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC+1, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+2, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10); +UPDATE `creature` SET `position_x`=-4493.14,`position_y`=1278.2858,`position_z`=128.05365 WHERE `guid` IN (@NPC+1, @NPC+2); + +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(@NPC, @NPC, 0, 6.25244, 11), +(@NPC, @NPC+1, 4, 3.14, 11), +(@NPC, @NPC+2, 3, 2.6, 11); + +-- Gordok Hyena Pack 3 +SET @NPC := 3537; +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 15, 100, 0, 1, 0, 0, 0, 10); +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-4144.677,`position_y`=1132.4553,`position_z`=161.32524 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-4144.677,1132.4553,161.32524,100,0,0,0), +(@NPC,2,-4172.4824,1135.0138,161.37204,100,0,0,0), +(@NPC,3,-4180.79,1158.6846,161.41153,100,0,0,0), +(@NPC,4,-4180.9863,1191.6404,161.32523,100,0,0,0), +(@NPC,5,-4180.8823,1226.1372,161.32524,100,0,0,0), +(@NPC,6,-4181.1797,1249.9987,161.32524,100,0,0,0), +(@NPC,7,-4173.3633,1283.2123,161.32523,100,0,0,0), +(@NPC,8,-4189.9077,1299.2076,161.32524,100,0,0,0), +(@NPC,9,-4189.236,1322.2933,161.32524,100,0,0,0), +(@NPC,10,-4204.546,1330.0702,161.32524,100,0,0,0), +(@NPC,11,-4250.3696,1329.897,161.32523,100,0,0,0), +(@NPC,12,-4278.9473,1331.1113,161.35535,100,0,0,0), +(@NPC,13,-4250.3696,1329.897,161.32523,100,0,0,0), +(@NPC,14,-4204.546,1330.0702,161.32524,100,0,0,0), +(@NPC,15,-4189.236,1322.2933,161.32524,100,0,0,0), +(@NPC,16,-4189.9077,1299.2076,161.32524,100,0,0,0), +(@NPC,17,-4173.3633,1283.2123,161.32523,100,0,0,0), +(@NPC,18,-4181.1797,1249.9987,161.32524,100,0,0,0), +(@NPC,19,-4180.8823,1226.1372,161.32524,100,0,0,0), +(@NPC,20,-4180.9863,1191.6404,161.32523,100,0,0,0), +(@NPC,21,-4180.79,1158.6846,161.41153,100,0,0,0), +(@NPC,22,-4172.4824,1135.0138,161.37204,100,0,0,0), +(@NPC,23,-4144.677,1132.4553,161.32524,100,0,0,0), +(@NPC,24,-4114.9116,1135.7633,161.32524,100,0,0,0), +(@NPC,25,-4086.6575,1134.458,161.32524,100,0,0,0), +(@NPC,26,-4114.9116,1135.7633,161.32524,100,0,0,0); + +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC+1, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+2, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10); +UPDATE `creature` SET `position_x`=-4144.677,`position_y`=1132.4553,`position_z`=161.32524 WHERE `guid` IN (@NPC+1, @NPC+2); + +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(@NPC, @NPC, 0, 6.25244, 11), +(@NPC, @NPC+1, 5, 3.12, 11), +(@NPC, @NPC+2, 9, 3.12, 11); + +-- Gordok Hyena Pack 4 +SET @NPC := 3540; +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 15, 100, 0, 1, 0, 0, 0, 10); +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-4038.1926,`position_y`=1102.3224,`position_z`=159.89561 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-4038.1926,1102.3224,159.89561,100,0,0,0), +(@NPC,2,-4036.2354,1056.2366,159.90698,100,0,0,0), +(@NPC,3,-4037.0764,1028.9843,159.85197,100,0,0,0), +(@NPC,4,-4036.5344,947.6264,159.85197,100,0,0,0), +(@NPC,5,-4037.0637,915.67786,159.9768,100,0,0,0), +(@NPC,6,-4036.5344,947.6264,159.85197,100,0,0,0), +(@NPC,7,-4036.9028,988.73267,159.9015,100,0,0,0), +(@NPC,8,-4037.0764,1028.9843,159.85197,100,0,0,0), +(@NPC,9,-4036.2354,1056.2366,159.90698,100,0,0,0), +(@NPC,10,-4038.1926,1102.3224,159.89561,100,0,0,0), +(@NPC,11,-4036.5051,1136.2891,159.79637,100,0,0,0), +(@NPC,12,-4035.6423,1166.3257,159.79233,100,0,0,0), +(@NPC,13,-4034.6455,1201.4677,159.80653,100,0,0,0), +(@NPC,14,-4033.7002,1230.9417,159.77034,100,0,0,0), +(@NPC,15,-4032.737,1271.0085,159.9062,100,0,0,0), +(@NPC,16,-4034.9792,1303.0753,159.84329,100,0,0,0), +(@NPC,17,-4032.737,1271.0085,159.9062,100,0,0,0), +(@NPC,18,-4033.7002,1230.9417,159.77034,100,0,0,0), +(@NPC,19,-4034.6455,1201.4677,159.80653,100,0,0,0), +(@NPC,20,-4035.6423,1166.3257,159.79233,100,0,0,0), +(@NPC,21,-4036.5051,1136.2891,159.79637,100,0,0,0); + +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC+1, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+2, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+3, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10); +UPDATE `creature` SET `position_x`=-4038.1926,`position_y`=1102.3224,`position_z`=159.89561 WHERE `guid` IN (@NPC+1, @NPC+2, @NPC+3); + +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(@NPC, @NPC, 0, 6.25244, 11), +(@NPC, @NPC+1, 5, 3.14, 11), +(@NPC, @NPC+2, 7, 3, 11), +(@NPC, @NPC+3, 9, 3.3, 11); + +-- Gordok Hyena Pack 5 +SET @NPC := 8071; +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 15, 100, 0, 1, 0, 0, 0, 10); +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-4385.1353,`position_y`=1529.6548,`position_z`=150.75537 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-4385.1353,1529.6548,150.75537,100,0,0,0), +(@NPC,2,-4373.5386,1499.5323,150.80077,100,0,0,0), +(@NPC,3,-4362.7373,1476.5573,150.75537,100,0,0,0), +(@NPC,4,-4354.7446,1442.4744,150.75537,100,0,0,0), +(@NPC,5,-4351.7114,1421.1202,150.75536,100,0,0,0), +(@NPC,6,-4350.647,1387.7485,152.92055,100,0,0,0), +(@NPC,7,-4350.5293,1370.4497,158.61177,100,0,0,0), +(@NPC,8,-4354.607,1332.9551,159.35538,100,0,0,0), +(@NPC,9,-4329.3027,1306.5382,161.33012,100,0,0,0), +(@NPC,10,-4354.607,1332.9551,159.35538,100,0,0,0), +(@NPC,11,-4350.5293,1370.4497,158.61177,100,0,0,0), +(@NPC,12,-4350.647,1387.7485,152.92055,100,0,0,0), +(@NPC,13,-4351.7114,1421.1202,150.75536,100,0,0,0), +(@NPC,14,-4354.7446,1442.4744,150.75537,100,0,0,0), +(@NPC,15,-4362.7373,1476.5573,150.75537,100,0,0,0), +(@NPC,16,-4373.5386,1499.5323,150.80077,100,0,0,0), +(@NPC,17,-4385.12,1529.6337,150.75537,100,0,0,0), +(@NPC,18,-4404.8423,1556.9662,150.75537,100,0,0,0), +(@NPC,19,-4423.9175,1578.5505,150.75449,100,0,0,0), +(@NPC,20,-4440.604,1596.2639,150.7554,100,0,0,0), +(@NPC,21,-4460.3657,1622.4169,150.61508,100,0,0,0), +(@NPC,22,-4468.565,1647.9095,151.38011,100,0,0,0), +(@NPC,23,-4485.386,1664.781,150.93875,100,0,0,0), +(@NPC,24,-4477.906,1682.5796,150.8151,100,0,0,0), +(@NPC,25,-4458.565,1696.3735,150.8151,100,0,0,0), +(@NPC,26,-4477.906,1682.5796,150.8151,100,0,0,0), +(@NPC,27,-4485.386,1664.781,150.93875,100,0,0,0), +(@NPC,28,-4468.565,1647.9095,151.38011,100,0,0,0), +(@NPC,29,-4460.3657,1622.4169,150.61508,100,0,0,0), +(@NPC,30,-4440.604,1596.2639,150.7554,100,0,0,0), +(@NPC,31,-4423.9175,1578.5505,150.75449,100,0,0,0), +(@NPC,32,-4404.8423,1556.9662,150.75537,100,0,0,0); + +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC+1, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+2, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10); +UPDATE `creature` SET `position_x`=-4385.1353,`position_y`=1529.6548,`position_z`=150.75537 WHERE `guid` IN (@NPC+1, @NPC+2); + +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(@NPC, @NPC, 0, 6.25244, 11), +(@NPC, @NPC+1, 4, 3.14, 11), +(@NPC, @NPC+2, 3, 2.6, 11); + +-- Gordok Hyena Pack 6 +SET @NPC := 8074; +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 15, 100, 0, 1, 0, 0, 0, 10); +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-4363.678,`position_y`=1188.2168,`position_z`=150.75537 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-4363.678,1188.2168,150.75537,100,0,0,0), +(@NPC,2,-4357.2056,1223.9696,150.75536,100,0,0,0), +(@NPC,3,-4350.0728,1258.8488,150.78635,100,0,0,0), +(@NPC,4,-4351.0654,1286.3151,156.60811,100,0,0,0), +(@NPC,5,-4340.919,1319.5724,159.35538,100,0,0,0), +(@NPC,6,-4329.9956,1353.3462,161.35535,100,0,0,0), +(@NPC,7,-4340.919,1319.5724,159.35538,100,0,0,0), +(@NPC,8,-4351.0654,1286.3151,156.60811,100,0,0,0), +(@NPC,9,-4350.0728,1258.8488,150.78635,100,0,0,0), +(@NPC,10,-4357.2056,1223.9696,150.75536,100,0,0,0), +(@NPC,11,-4363.678,1188.2168,150.75537,100,0,0,0), +(@NPC,12,-4376.261,1154.545,150.85655,100,0,0,0), +(@NPC,13,-4391.5073,1130.5735,150.75537,100,0,0,0), +(@NPC,14,-4407.237,1106.8875,150.75537,100,0,0,0), +(@NPC,15,-4428.0854,1082.863,150.75537,100,0,0,0), +(@NPC,16,-4448.125,1068.4376,150.75537,100,0,0,0), +(@NPC,17,-4469.615,1052.818,150.73135,100,0,0,0), +(@NPC,18,-4467.528,1036.2064,150.73134,100,0,0,0), +(@NPC,19,-4463.461,1017.0369,152.13133,100,0,0,0), +(@NPC,20,-4466.8823,1002.7987,152.13135,100,0,0,0), +(@NPC,21,-4473.622,990.1126,150.73135,100,0,0,0), +(@NPC,22,-4473.2983,972.7656,150.73132,100,0,0,0), +(@NPC,23,-4450.488,955.0374,150.73134,100,0,0,0), +(@NPC,24,-4473.2983,972.7656,150.73132,100,0,0,0), +(@NPC,25,-4473.622,990.1126,150.73135,100,0,0,0), +(@NPC,26,-4466.8823,1002.7987,152.13135,100,0,0,0), +(@NPC,27,-4463.461,1017.0369,152.13133,100,0,0,0), +(@NPC,28,-4467.528,1036.2064,150.73134,100,0,0,0), +(@NPC,29,-4469.615,1052.818,150.73135,100,0,0,0), +(@NPC,30,-4448.125,1068.4376,150.75537,100,0,0,0), +(@NPC,31,-4428.0854,1082.863,150.75537,100,0,0,0), +(@NPC,32,-4407.237,1106.8875,150.75537,100,0,0,0), +(@NPC,33,-4391.586,1130.4502,150.75537,100,0,0,0), +(@NPC,34,-4376.261,1154.545,150.85655,100,0,0,0); + +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC+1, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+2, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10); +UPDATE `creature` SET `position_x`=-4363.678,`position_y`=1188.2168,`position_z`=150.75537 WHERE `guid` IN (@NPC+1, @NPC+2); + +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(@NPC, @NPC, 0, 6.25244, 11), +(@NPC, @NPC+1, 5, 3.12, 11), +(@NPC, @NPC+2, 9, 3.12, 11); + +-- Gordok Hyena Pack 7 +SET @NPC := 8077; +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 15, 100, 0, 1, 0, 0, 0, 10); +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-3854.757,`position_y`=1055.2886,`position_z`=154.85199 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-3854.757,1055.2886,154.85199,100,0,0,0), +(@NPC,2,-3838.9792,1038.8668,154.79144,100,0,0,0), +(@NPC,3,-3808.2756,1036.1785,154.85197,100,0,0,0), +(@NPC,4,-3788.809,1023.2459,154.87454,100,0,0,0), +(@NPC,5,-3761.4788,1011.7324,154.88667,100,0,0,0), +(@NPC,6,-3730.2996,1013.7999,154.93872,100,0,0,0), +(@NPC,7,-3705.808,1031.8496,154.96916,100,0,0,0), +(@NPC,8,-3681.9849,1042.3816,154.93872,100,0,0,0), +(@NPC,9,-3653.636,1050.5006,154.9387,100,0,0,0), +(@NPC,10,-3640.0898,1041.0651,154.9387,100,0,0,0), +(@NPC,11,-3638.81,1065.2158,154.9387,100,0,0,0), +(@NPC,12,-3632.4846,1085.2767,154.97789,100,0,0,0), +(@NPC,13,-3623.5986,1094.6659,154.97789,100,0,0,0), +(@NPC,14,-3630.5989,1112.7216,154.97787,100,0,0,0), +(@NPC,15,-3644.803,1134.8741,154.97787,100,0,0,0), +(@NPC,16,-3664.6028,1146.6139,154.97789,100,0,0,0), +(@NPC,17,-3689.0479,1147.8257,154.97789,100,0,0,0), +(@NPC,18,-3717.072,1159.2408,154.97786,100,0,0,0), +(@NPC,19,-3734.3074,1174.2196,154.92525,100,0,0,0), +(@NPC,20,-3768.7075,1172.8936,154.92522,100,0,0,0), +(@NPC,21,-3792.5256,1161.4977,154.92525,100,0,0,0), +(@NPC,22,-3803.356,1152.3892,154.92525,100,0,0,0), +(@NPC,23,-3828.7427,1147.1897,154.90793,100,0,0,0), +(@NPC,24,-3859.2478,1137.666,154.98383,100,0,0,0), +(@NPC,25,-3872.4622,1105.3127,154.92525,100,0,0,0), +(@NPC,26,-3869.2861,1078.4419,154.92525,100,0,0,0); + +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC+1, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+2, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+3, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10); +UPDATE `creature` SET `position_x`=-3854.757,`position_y`=1055.2886,`position_z`=154.85199 WHERE `guid` IN (@NPC+1, @NPC+2, @NPC+3); + +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(@NPC, @NPC, 0, 6.25244, 11), +(@NPC, @NPC+1, 5, 3.14, 11), +(@NPC, @NPC+2, 7, 3, 11), +(@NPC, @NPC+3, 9, 3.3, 11); + +-- Gordok Hyena Pack 8 +SET @NPC := 8081; +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 15, 100, 0, 1, 0, 0, 0, 10); +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-3881.3862,`position_y`=999.5604,`position_z`=148.6356 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-3881.3862,999.5604,148.6356,100,0,0,0), +(@NPC,2,-3843.207,996.24945,151.20163,100,0,0,0), +(@NPC,3,-3818.408,988.13544,149.97023,100,0,0,0), +(@NPC,4,-3798.7417,989.5629,149.65198,100,0,0,0), +(@NPC,5,-3756.467,987.6762,148.88925,100,0,0,0), +(@NPC,6,-3733.8547,977.47784,150.26524,100,0,0,0), +(@NPC,7,-3700.5408,986.18805,149.47476,100,0,0,0), +(@NPC,8,-3671.3164,991.7395,146.73665,100,0,0,0), +(@NPC,9,-3637.387,992.26184,149.8261,100,0,0,0), +(@NPC,10,-3596.0618,991.4527,151.55872,100,0,0,0), +(@NPC,11,-3584.2468,1014.3939,151.7474,100,0,0,0), +(@NPC,12,-3588.667,1047.005,148.5866,100,0,0,0), +(@NPC,13,-3579.9,1086.7368,149.17354,100,0,0,0), +(@NPC,14,-3582.006,1126.3955,148.07864,100,0,0,0), +(@NPC,15,-3584.4,1172.2588,150.91505,100,0,0,0), +(@NPC,16,-3600.1836,1189.1289,152.4143,100,0,0,0), +(@NPC,17,-3649.0933,1196.5315,149.76454,100,0,0,0), +(@NPC,18,-3687.391,1193.4586,150.6299,100,0,0,0), +(@NPC,19,-3720.2495,1199.6938,151.16347,100,0,0,0), +(@NPC,20,-3758.4448,1199.5457,149.7253,100,0,0,0), +(@NPC,21,-3791.4524,1195.7223,149.72525,100,0,0,0), +(@NPC,22,-3828.2354,1197.1246,149.8218,100,0,0,0), +(@NPC,23,-3862.4497,1196.2867,149.72525,100,0,0,0), +(@NPC,24,-3898.2808,1192.2937,151.30144,100,0,0,0), +(@NPC,25,-3921.4124,1187.3982,150.12813,100,0,0,0), +(@NPC,26,-3924.5713,1164.501,150.66974,100,0,0,0), +(@NPC,27,-3917.4805,1139.8783,148.94948,100,0,0,0), +(@NPC,28,-3928.0786,1100.5227,148.73526,100,0,0,0), +(@NPC,29,-3925.9424,1056.8346,147.65553,100,0,0,0), +(@NPC,30,-3928.1814,1017.8178,148.55779,100,0,0,0), +(@NPC,31,-3915.9094,994.5428,150.31097,100,0,0,0); + +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC+1, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+2, 12418, 0, 0, 0, 0, 1, -4446.51, 1122.8, 126.278, 1.20334, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10); +UPDATE `creature` SET `position_x`=-3881.3862,`position_y`=999.5604,`position_z`=148.6356 WHERE `guid` IN (@NPC+1, @NPC+2); + +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(@NPC, @NPC, 0, 6.25244, 11), +(@NPC, @NPC+1, 4, 3.14, 11), +(@NPC, @NPC+2, 3, 2.6, 11); + +-- Add Missing Selleping Gordok Hyenas +SET @NPC := 4804; +DELETE FROM `creature` WHERE `guid` IN (50415, 50414, 50416); +DELETE FROM `creature_addon` WHERE `guid` IN (50415, 50414, 50416); + +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(@NPC+1, 12418, 0, 0, 0, 0, 1, -3784.26, 1193.9, 127.213, 1.32645, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+2, 12418, 0, 0, 0, 0, 1, -3783.88, 1205.62, 127.213, 1.97222, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+3, 12418, 0, 0, 0, 0, 1, -3783.85, 1171.2, 127.203, 5.18363, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+4, 12418, 0, 0, 0, 0, 1, -3783.54, 1163.41, 127.203, 0.820305, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+5, 12418, 0, 0, 0, 0, 1, -3783.24, 1167.47, 127.213, 5.63741, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+6, 12418, 0, 0, 0, 0, 1, -3782.28, 1160.62, 127.213, 1.37881, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+7, 12418, 0, 0, 0, 0, 1, -3782.13, 1196.91, 127.213, 2.58309, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+8, 12418, 0, 0, 0, 0, 1, -3781.93, 1201.75, 127.213, 4.67748, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+9, 12418, 0, 0, 0, 0, 1, -3739.6, 1185.84, 127.213, 2.00713, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+10, 12418, 0, 0, 0, 0, 1, -3739.02, 1181.37, 127.213, 4.62512, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+11, 12418, 0, 0, 0, 0, 1, -3738.2, 1177.24, 127.213, 0.0698132, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10), +(@NPC+12, 12418, 0, 0, 0, 0, 1, -3737.05, 1189.64, 127.213, 3.29867, 300, 300, 0, 100, 0, 0, 0, 0, 0, 10); + +INSERT INTO `creature_addon` (`guid`, `patch`, `display_id`, `mount_display_id`, `equipment_id`, `stand_state`, `sheath_state`, `emote_state`, `auras`) VALUES +(@NPC+1, 0, 0, 0, -1, 7, 1, 0, '16093'), +(@NPC+2, 0, 0, 0, -1, 7, 1, 0, '16093'), +(@NPC+3, 0, 0, 0, -1, 7, 1, 0, '16093'), +(@NPC+4, 0, 0, 0, -1, 7, 1, 0, '16093'), +(@NPC+5, 0, 0, 0, -1, 7, 1, 0, '16093'), +(@NPC+6, 0, 0, 0, -1, 7, 1, 0, '16093'), +(@NPC+7, 0, 0, 0, -1, 7, 1, 0, '16093'), +(@NPC+8, 0, 0, 0, -1, 7, 1, 0, '16093'), +(@NPC+9, 0, 0, 0, -1, 7, 1, 0, '16093'), +(@NPC+10, 0, 0, 0, -1, 7, 1, 0, '16093'), +(@NPC+11, 0, 0, 0, -1, 7, 1, 0, '16093'), +(@NPC+12, 0, 0, 0, -1, 7, 1, 0, '16093'); + +-- Add Missing Gordok Hyenas +INSERT INTO `creature` (`guid`, `id`, `id2`, `id3`, `id4`, `id5`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecsmin`, `spawntimesecsmax`, `wander_distance`, `health_percent`, `mana_percent`, `movement_type`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES +(302710, 12418, 0, 0, 0, 0, 1, -4352.57, 1430.03, 150.608, 4.84256, 300, 300, 10, 100, 100, 1, 0, 0, 0, 10), +(302711, 12418, 0, 0, 0, 0, 1, -4353.58, 1436.75, 150.608, 1.7206, 300, 300, 10, 100, 100, 1, 0, 0, 0, 10), +(302712, 12418, 0, 0, 0, 0, 1, -4348.6, 1433.91, 150.608, 5.7654, 300, 300, 10, 100, 100, 1, 0, 0, 0, 10), +(302713, 12418, 0, 0, 0, 0, 1, -4358.11, 1432.41, 150.608, 3.25213, 300, 300, 10, 100, 100, 1, 0, 0, 0, 10), +(302714, 12418, 0, 0, 0, 0, 1, -4367.24, 1184.19, 150.61, 1.09853, 300, 300, 10, 100, 100, 1, 0, 0, 0, 10), +(302715, 12418, 0, 0, 0, 0, 1, -4369.32, 1178.43, 150.61, 4.36579, 300, 300, 10, 100, 100, 1, 0, 0, 0, 10), +(302716, 12418, 0, 0, 0, 0, 1, -4372.09, 1182.48, 150.61, 1.93105, 300, 300, 10, 100, 100, 1, 0, 0, 0, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 9bbf9b9b4f68e98d20295aaa45f91704b0083041 Mon Sep 17 00:00:00 2001 From: cdkr <775481991@qq.com> Date: Tue, 22 Aug 2023 18:12:58 +0800 Subject: [PATCH 170/426] Fix missing break in npc_grimstoneAI::UpdateAI (#2171) --- .../burning_steppes/blackrock_depths/blackrock_depths.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.cpp b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.cpp index cb6b88aa8d8..10ef82605ab 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.cpp +++ b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.cpp @@ -444,6 +444,7 @@ struct npc_grimstoneAI : public npc_escortAI case 12: DoCastSpellIfCan(m_creature, SPELL_GRIMSTONE_TELEPORT); Event_Timer = 2000; + break; case 13: m_creature->SetVisibility(VISIBILITY_OFF); SummonRingBoss(); From 346f99c20996f1689996d65e34203f112d05dd9d Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 22 Aug 2023 17:35:22 +0300 Subject: [PATCH 171/426] Correct equipment for creatures. --- sql/migrations/20230820120331_world.sql | 1687 +++++++++++++++++ src/game/Database/SQLStorages.cpp | 2 - src/game/Database/SQLStorages.h | 1 - src/game/GameEventMgr.cpp | 2 +- src/game/ObjectMgr.cpp | 88 +- src/game/ObjectMgr.h | 10 +- src/game/Objects/Creature.cpp | 58 +- src/game/Objects/Creature.h | 4 +- src/game/Objects/CreatureDefines.h | 33 +- .../blackrock_spire/boss_warmaster_voone.cpp | 104 +- .../eastern_kingdoms/westfall/westfall.cpp | 2 +- .../feralas/dire_maul/instance_dire_maul.cpp | 2 +- src/scripts/kalimdor/silithus/silithus.cpp | 18 +- 13 files changed, 1904 insertions(+), 107 deletions(-) create mode 100644 sql/migrations/20230820120331_world.sql diff --git a/sql/migrations/20230820120331_world.sql b/sql/migrations/20230820120331_world.sql new file mode 100644 index 00000000000..38b0b330b7a --- /dev/null +++ b/sql/migrations/20230820120331_world.sql @@ -0,0 +1,1687 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230820120331'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230820120331'); +-- Add your query below. + + +ALTER TABLE `creature_equip_template` + ADD COLUMN `probability` MEDIUMINT UNSIGNED NOT NULL DEFAULT '1' AFTER `patch`, + CHANGE COLUMN `equipentry1` `item1` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `probability`, + CHANGE COLUMN `equipentry2` `item2` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `item1`, + CHANGE COLUMN `equipentry3` `item3` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `item2`, + DROP PRIMARY KEY, + ADD PRIMARY KEY (`entry`, `item1`, `item2`, `item3`); + +-- Riverpaw Taskmaster +DELETE FROM `creature_equip_template` WHERE `entry`=98; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (98, 0, 1, 1897, 2051, 0); + +-- Defias Pathstalker +DELETE FROM `creature_equip_template` WHERE `entry`=121; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (121, 0, 1, 2711, 2051, 0); + +-- Maybell Maclure +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (251, 0, 0, 3699, 0, 0); +UPDATE `creature_template` SET `equipment_id`=251 WHERE `entry`=251 && `patch` >= 0; +-- Creature changes equipment during end script for quest The Escape. +DELETE FROM `quest_end_scripts` WHERE `id`=114; +INSERT INTO `quest_end_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(114, 0, 4, 147, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'The Escape: Maybell Maclure - Remove Npc Flags'), +(114, 2, 19, 0, 0, 0, 0, 0, 0, 0, 0, 3699, -1, -1, 0, 0, 0, 0, 0, 0, 'The Escape: Maybell Maclure - Set Equipment'), +(114, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1862, 0, 0, 0, 0, 0, 0, 0, 0, 'The Escape: Maybell Maclure - Say Text'), +(114, 5, 1, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'The Escape: Maybell Maclure - Emote OneShotEatNoSheathe'), +(114, 9, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'The Escape: Maybell Maclure - Despawn Creature'); +UPDATE `creature` SET `spawntimesecsmin`=10, `spawntimesecsmax`=10 WHERE `id`=251; + +-- William Pestle +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (253, 0, 0, 3699, 3697, 0); +UPDATE `creature_template` SET `equipment_id`=253 WHERE `entry`=253 && `patch` >= 0; +-- Creature changes equipment during end script for quest Collecting Kelp. +DELETE FROM `quest_end_scripts` WHERE `id`=112; +INSERT INTO `quest_end_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1851, 0, 0, 0, 0, 0, 0, 0, 0, 'Collecting Kelp: William Pestle - Say Text'), +(112, 0, 35, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.5708, 0, 'Collecting Kelp: William Pestle - Set Orientation'), +(112, 0, 1, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Collecting Kelp: William Pestle - Set Emote State to STATE_USESTANDING_NOSHEATHE'), +(112, 0, 4, 147, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Collecting Kelp: William Pestle - Remove Npc Flags'), +(112, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 3699, 3697, -1, 0, 0, 0, 0, 0, 0, 'Collecting Kelp: William Pestle - Set Equipment'), +(112, 5, 35, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.98451, 0, 'Collecting Kelp: William Pestle - Set Orientation'), +(112, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Collecting Kelp: William Pestle - Set Emote State to ONESHOT_NONE'), +(112, 6, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 'Collecting Kelp: William Pestle - Set Equipment'), +(112, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1853, 0, 0, 0, 0, 0, 0, 0, 0, 'Collecting Kelp: William Pestle - Say Text'), +(112, 9, 4, 147, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Collecting Kelp: William Pestle - Add Npc Flags'); + +-- Kendor Kabonka +DELETE FROM `creature_equip_template` WHERE `entry`=340; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (340, 0, 1, 2705, 12860, 0); + +-- Mor'Ladim +DELETE FROM `creature_equip_template` WHERE `entry`=522; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (522, 0, 1, 4991, 2081, 0); + +-- Shadowhide Warrior +DELETE FROM `creature_equip_template` WHERE `entry`=568; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (568, 0, 1, 1905, 2051, 0); + +-- Defias Henchman +DELETE FROM `creature_equip_template` WHERE `entry`=594; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (594, 0, 1, 2184, 2051, 0); + +-- Rhahk'Zor +DELETE FROM `creature_equip_template` WHERE `entry`=644; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (644, 0, 1, 5187, 0, 0); + +-- Mr. Smite +-- Creature changes equipment during combat. +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (646, 0, 0, 2183, 2183, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (646, 0, 0, 10756, 0, 0); + +-- Protector Deni +DELETE FROM `creature_equip_template` WHERE `entry`=870; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (870, 0, 1, 1897, 2053, 0); + +-- Protector Korelor +DELETE FROM `creature_equip_template` WHERE `entry`=874; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (874, 0, 1, 1896, 2053, 0); + +-- Protector Leick +DELETE FROM `creature_equip_template` WHERE `entry`=876; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (876, 0, 1, 1896, 2052, 0); + +-- Thultash +DELETE FROM `creature_equip_template` WHERE `entry`=982; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (982, 0, 1, 2196, 13854, 0); + +-- Dragonmaw Swamprunner +DELETE FROM `creature_equip_template` WHERE `entry`=1035; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (1035, 0, 1, 1896, 2051, 0); + +-- Dark Iron Saboteur +UPDATE `creature_equip_template` SET `probability`=1 WHERE `entry`=1052 && `item1`=1896 && `item2`=2052 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (1052, 0, 0, 2884, 2052, 0); +-- This mob changes equipment before he blows himself up. +DELETE FROM `creature_ai_scripts` WHERE `id`=105202; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(105202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 638, 0, 0, 0, 0, 0, 0, 0, 0, 'Dark Iron Saboteur - Say Text'), +(105202, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 637, 0, 0, 0, 0, 0, 0, 0, 0, 'Dark Iron Saboteur - Say Text'), +(105202, 0, 2, 19, 0, 0, 0, 0, 0, 0, 0, 0, 2884, 2052, 0, 0, 0, 0, 0, 0, 0, 'Dark Iron Saboteur - Set Equipment'), +(105202, 0, 3, 15, 3204, 1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Dark Iron Saboteur - Cast Spell Sapper Explode'); + +-- Captain Halyndor +DELETE FROM `creature_equip_template` WHERE `entry`=1160; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (1160, 0, 1, 1897, 2051, 0); + +-- Dark Iron Sapper +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (1222, 0, 0, 2884, 0, 0); +-- This mob changes equipment before he blows himself up. +DELETE FROM `creature_ai_scripts` WHERE `id`=122202; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(122202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 638, 0, 0, 0, 0, 0, 0, 0, 0, 'Dark Iron Sapper - Say Text'), +(122202, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 637, 0, 0, 0, 0, 0, 0, 0, 0, 'Dark Iron Sapper - Say Text'), +(122202, 0, 2, 19, 0, 0, 0, 0, 0, 0, 0, 0, 2884, 0, 0, 0, 0, 0, 0, 0, 0, 'Dark Iron Sapper - Set Equipment'), +(122202, 0, 3, 15, 3204, 1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Dark Iron Sapper - Cast Spell Sapper Explode'); + +-- Alyssa Griffith +DELETE FROM `creature_equip_template` WHERE `entry`=1321; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (1321, 0, 1, 12854, 0, 0); + +-- Cook Ghilm +UPDATE `creature_equip_template` SET `probability`=1 WHERE `entry`=1355 && `item1`=2827 && `item2`=0 && `item3`=0; +-- Equipment changes from waypoint script. +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (1355, 0, 0, 2196, 0, 0); + +-- Magosh +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (1399, 0, 1, 1907, 0, 0); +UPDATE `creature_template` SET `equipment_id`=1399 WHERE `entry`=1399 && `patch` >= 0; + +-- Lord Baurles K. Wishock +UPDATE `creature_equip_template` SET `probability`=116 WHERE `entry`=1439 && `item1`=12751 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (1439, 0, 0, 2703, 0, 0); +-- Creature changes equipment during end script for quest A Noble Brew. +DELETE FROM `quest_end_scripts` WHERE `id`=336; +INSERT INTO `quest_end_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(336, 0, 3, 0, 3482, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, -8560.68, 362.366, 108.386, 0, 0, 'A Noble Brew: Lord Baurles K. Wishock - Move'), +(336, 0, 4, 147, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'A Noble Brew: Lord Baurles K. Wishock - Remove Npc Flags'), +(336, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 2703, -1, -1, 0, 0, 0, 0, 0, 0, 'A Noble Brew: Lord Baurles K. Wishock - Set Equipment'), +(336, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 387, 0, 0, 0, 0, 0, 0, 0, 0, 'A Noble Brew: Lord Baurles K. Wishock - Say Text'), +(336, 1, 3, 0, 4103, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, -8557.23, 365.081, 108.386, 0, 0, 'A Noble Brew: Lord Baurles K. Wishock - Move'), +(336, 6, 15, 2596, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'A Noble Brew: Lord Baurles K. Wishock - Cast Spell Touch of the Black Claw'), +(336, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 388, 0, 0, 0, 0, 0, 0, 0, 0, 'A Noble Brew: Lord Baurles K. Wishock - Say Text'), +(336, 11, 4, 147, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'A Noble Brew: Lord Baurles K. Wishock - Add Npc Flags'), +(336, 11, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'A Noble Brew: Lord Baurles K. Wishock - Despawn Creature'); +UPDATE `creature` SET `spawntimesecsmin`=60, `spawntimesecsmax`=60 WHERE `id`=1439; + +-- Magistrate Sevren +DELETE FROM `creature_equip_template` WHERE `entry`=1499; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (1499, 0, 1, 12862, 0, 0); + +-- Grand Inquisitor Isillien +DELETE FROM `creature_equip_template` WHERE `entry`=1840; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (1840, 0, 1, 12591, 0, 0); + +-- Foreman Marcrid +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (1844, 0, 1, 12285, 0, 0); +UPDATE `creature_template` SET `equipment_id`=1844 WHERE `entry`=1844 && `patch` >= 0; + +-- Scarlet Smith +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (1885, 0, 1, 1903, 12980, 0); +UPDATE `creature_template` SET `equipment_id`=1885 WHERE `entry`=1885 && `patch` >= 0; + +-- Stormwind City Patroller +UPDATE `creature_equip_template` SET `probability`=1 WHERE `entry`=1976 && `item1`=1899 && `item2`=143 && `item3`=0; +-- Creature changes equipment during Night event. +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (1976, 0, 0, 2715, 143, 0); + +-- Dark Iron Ambusher +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (1981, 0, 1, 1900, 0, 0); +UPDATE `creature_template` SET `equipment_id`=1981 WHERE `entry`=1981 && `patch` >= 0; + +-- Natheril Raincaller +DELETE FROM `creature_equip_template` WHERE `entry`=2084; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2084, 0, 1, 12744, 0, 0); + +-- Mrs. Winters +DELETE FROM `creature_equip_template` WHERE `entry`=2134; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2134, 0, 1, 12744, 0, 0); + +-- Dark Iron Raider +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2149, 0, 1, 1900, 0, 0); +UPDATE `creature_template` SET `equipment_id`=2149 WHERE `entry`=2149 && `patch` >= 0; + +-- Captured Mountaineer +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2211, 0, 0, 2705, 0, 0); +UPDATE `creature_template` SET `equipment_id`=2211 WHERE `entry`=2211 && `patch` >= 0; +-- Creature changes equipment during end script for quest A New Plague. +DELETE FROM `quest_end_scripts` WHERE `id`=492; +INSERT INTO `quest_end_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(492, 0, 4, 147, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'A New Plague: Captured Mountaineer - Remove Npc Flags'), +(492, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 2705, -1, -1, 0, 0, 0, 0, 0, 0, 'A New Plague: Captured Mountaineer - Set Equipment'), +(492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 'A New Plague: Captured Mountaineer - Say Text'), +(492, 0, 1, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'A New Plague: Captured Mountaineer - Emote OneShotEatNoSheathe'), +(492, 3, 15, 3617, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'A New Plague: Captured Mountaineer - Cast Spell Quiet Suicide'), +(492, 10, 4, 147, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'A New Plague: Captured Mountaineer - Add Npc Flags'); +UPDATE `creature` SET `spawntimesecsmin`=10, `spawntimesecsmax`=10 WHERE `id`=2211; + +-- Argus Shadow Mage +UPDATE `creature_equip_template` SET `probability`=1 WHERE `entry`=2318 && `item1`=2559 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2318, 0, 0, 2179, 2179, 0); +-- Creature changes equipment after transforming into skeleton. +DELETE FROM `creature_ai_scripts` WHERE `id`=231801; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(231801, 0, 0, 39, 1, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 'Argus Shadow Mage - Start Melee Attack and Combat Movement'), +(231801, 0, 1, 15, 4063, 1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Argus Shadow Mage - Cast Spell Argus Shadow Mage Transform'), +(231801, 0, 2, 19, 0, 0, 0, 0, 0, 0, 0, 0, 2179, 2179, 0, 0, 0, 0, 0, 0, 0, 'Argus Shadow Mage - Set Equipment'), +(231801, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 789, 0, 0, 0, 0, 0, 0, 0, 0, 'Argus Shadow Mage - Say Text'), +(231801, 0, 4, 55, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 'Argus Shadow Mage - Remove Spells Template'); + +-- Dun Garok Mountaineer +UPDATE `creature_equip_template` SET `probability`=204 WHERE `entry`=2344 && `item1`=12934 && `item2`=1985 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 2, 2765, 1985, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 2, 12934, 2220, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 1417, 1985, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 1514, 1985, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 15259, 1985, 2780); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 1821, 1985, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 1515, 1985, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 935, 1985, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 2138, 1985, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 1827, 1985, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 1819, 1985, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 12934, 1985, 2780); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 1811, 1985, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 1817, 1985, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 2763, 1985, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 2766, 1985, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 3199, 1985, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 12934, 2214, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 3210, 1985, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 12934, 1985, 2773); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 12934, 1985, 2777); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 12934, 2210, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 12934, 2213, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 12934, 2221, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 1411, 1985, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2344, 0, 1, 1831, 1985, 0); + +-- Dun Garok Rifleman +UPDATE `creature_equip_template` SET `probability`=116 WHERE `entry`=2345 && `item1`=1901 && `item2`=0 && `item3`=2552; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2345, 0, 1, 15224, 0, 2552); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2345, 0, 1, 1414, 0, 2552); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2345, 0, 1, 1415, 0, 2552); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2345, 0, 1, 1901, 2214, 2552); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2345, 0, 1, 1513, 0, 2552); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2345, 0, 1, 1814, 0, 2552); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2345, 0, 1, 1819, 0, 2552); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2345, 0, 1, 1824, 0, 2552); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2345, 0, 1, 1901, 0, 2774); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2345, 0, 1, 1812, 0, 2552); + +-- Dun Garok Priest +UPDATE `creature_equip_template` SET `probability`=50 WHERE `entry`=2346 && `item1`=2809 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2346, 0, 1, 1819, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2346, 0, 1, 2763, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2346, 0, 1, 2766, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2346, 0, 1, 1831, 0, 0); + +-- Kundric Zanden +DELETE FROM `creature_equip_template` WHERE `entry`=2378; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2378, 0, 1, 12862, 0, 0); + +-- Southshore Crier +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2435, 0, 1, 0, 13610, 0); +UPDATE `creature_template` SET `equipment_id`=2435 WHERE `entry`=2435 && `patch` >= 0; + +-- Keeper Bel'varil +DELETE FROM `creature_equip_template` WHERE `entry`=2437; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2437, 0, 1, 12862, 0, 0); + +-- Nimar the Slayer +DELETE FROM `creature_equip_template` WHERE `entry`=2606; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2606, 0, 1, 3433, 0, 0); + +-- Theldurin the Lost +-- Creature changes equipment during end script for quest The Lost Fragments. +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2785, 0, 1, 1908, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2785, 0, 0, 1911, 0, 0); +UPDATE `creature_template` SET `equipment_id`=2785 WHERE `entry`=2785 && `patch` >= 0; + +-- Malygen +DELETE FROM `creature_equip_template` WHERE `entry`=2803; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2803, 0, 1, 12744, 0, 0); + +-- Bale +DELETE FROM `creature_equip_template` WHERE `entry`=2806; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2806, 0, 1, 12744, 0, 0); + +-- Vikki Lonsav +DELETE FROM `creature_equip_template` WHERE `entry`=2808; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2808, 0, 1, 12744, 0, 0); + +-- Myizz Luckycatch +DELETE FROM `creature_equip_template` WHERE `entry`=2834; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2834, 0, 1, 6225, 0, 0); + +-- Torn +DELETE FROM `creature_equip_template` WHERE `entry`=2996; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (2996, 0, 1, 12854, 0, 0); + +-- Tand +DELETE FROM `creature_equip_template` WHERE `entry`=3016; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3016, 0, 1, 12744, 12745, 0); + +-- K'waii +DELETE FROM `creature_equip_template` WHERE `entry`=3186; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3186, 0, 1, 12744, 0, 0); + +-- Venture Co. Overseer +UPDATE `creature_equip_template` SET `probability`=632 WHERE `entry`=3286 && `item1`=2147 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3286, 0, 32, 5285, 0, 0); + +-- Koma +DELETE FROM `creature_equip_template` WHERE `entry`=3318; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3318, 0, 1, 12856, 12859, 0); + +-- Bael'dun Foreman +UPDATE `creature_equip_template` SET `probability`=1 WHERE `entry`=3375 && `item1`=1906 && `item2`=0 && `item3`=6088; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3375, 0, 0, 0, 0, 6088); +-- Creature unequips its melee weapon on aggro. +DELETE FROM `creature_ai_events` WHERE `creature_id`=3375; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (337501, 3375, 0, 4, 0, 100, 0, 0, 0, 0, 0, 337501, 0, 0, 'Bael\'Dun Foreman - Toss Torch on Aggro'); +DELETE FROM `creature_ai_scripts` WHERE `id`=337501; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(337501, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6088, 0, 0, 0, 0, 0, 0, 'Bael\'Dun Foreman - Set Equipment'), +(337501, 0, 0, 15, 6257, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Bael\'Dun Foreman - Cast Spell Torch Toss'); +UPDATE `creature_template` SET `spell_list_id`=0, `ai_name`='EventAI' WHERE `entry`=3375; +DELETE FROM `creature_spells` WHERE `entry`=33750; + +-- Gazlowe +DELETE FROM `creature_equip_template` WHERE `entry`=3391; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3391, 0, 1, 4994, 13855, 12523); + +-- Zel'mak +DELETE FROM `creature_equip_template` WHERE `entry`=3408; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3408, 0, 1, 12348, 0, 0); + +-- Mebok Mizzyrix +UPDATE `creature_equip_template` SET `probability`=1 WHERE `entry`=3446 && `item1`=2704 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3446, 0, 0, 2198, 0, 0); +-- Creature changes equipment during end script for quest Raptor Horns. +DELETE FROM `quest_end_scripts` WHERE `id`=865; +INSERT INTO `quest_end_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(865, 0, 1, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Raptor Horns: Mebok Mizzyrix - Emote OneShotEatNoSheathe'), +(865, 0, 35, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.45657, 0, 'Raptor Horns: Mebok Mizzyrix - Set Orientation'), +(865, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 2198, -1, -1, 0, 0, 0, 0, 0, 0, 'Raptor Horns: Mebok Mizzyrix - Set Equipment'), +(865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2078, 0, 0, 0, 0, 0, 0, 0, 0, 'Raptor Horns: Mebok Mizzyrix - Say Text'), +(865, 5, 1, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Raptor Horns: Mebok Mizzyrix - Emote OneShotWoundCritical'), +(865, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2079, 0, 0, 0, 0, 0, 0, 0, 0, 'Raptor Horns: Mebok Mizzyrix - Say Text'), +(865, 8, 1, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Raptor Horns: Mebok Mizzyrix - Emote OneShotShot'), +(865, 12, 35, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.08923, 0, 'Raptor Horns: Mebok Mizzyrix - Set Orientation'), +(865, 13, 19, 0, 0, 0, 0, 0, 0, 0, 0, 2704, -1, -1, 0, 0, 0, 0, 0, 0, 'Raptor Horns: Mebok Mizzyrix - Set Equipment'); + +-- Kalyimah Stormcloud +DELETE FROM `creature_equip_template` WHERE `entry`=3487; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3487, 0, 1, 12744, 12745, 0); + +-- Fuzruckle +DELETE FROM `creature_equip_template` WHERE `entry`=3496; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3496, 0, 1, 12850, 12859, 0); + +-- Jazzik +DELETE FROM `creature_equip_template` WHERE `entry`=3498; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3498, 0, 1, 12744, 0, 0); + +-- Sarah Raycroft +DELETE FROM `creature_equip_template` WHERE `entry`=3541; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3541, 0, 1, 12744, 0, 0); + +-- Martine Tramblay +DELETE FROM `creature_equip_template` WHERE `entry`=3550; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3550, 0, 1, 6227, 6225, 0); + +-- Aldia +DELETE FROM `creature_equip_template` WHERE `entry`=3608; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3608, 0, 1, 12854, 0, 0); + +-- Dark Strand Enforcer +UPDATE `creature_equip_template` SET `probability`=1 WHERE `entry`=3727 && `item1`=5289 && `item2`=0 && `item3`=0; +-- This equipment is only seed on a temporary spawn in a given position. +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3727, 0, 0, 1821, 0, 0); + +-- Dark Strand Assassin +DELETE FROM `creature_equip_template` WHERE `entry`=3879; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3879, 0, 1, 1897, 0, 0); + +-- Aligar the Tormentor +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3898, 0, 1, 2179, 0, 0); +UPDATE `creature_template` SET `equipment_id`=3898 WHERE `entry`=3898 && `patch` >= 0; + +-- Balizar the Umbrage +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3899, 0, 1, 2559, 0, 0); +UPDATE `creature_template` SET `equipment_id`=3899 WHERE `entry`=3899 && `patch` >= 0; + +-- Librarian Mae Paledust +DELETE FROM `creature_equip_template` WHERE `entry`=3979; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3979, 0, 1, 12862, 0, 0); + +-- Raleigh the Devout +DELETE FROM `creature_equip_template` WHERE `entry`=3980; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3980, 0, 1, 12883, 12860, 0); +-- Creature changes equipment during end script for quest Down the Scarlet Path. +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (3980, 0, 0, 1906, 12860, 0); + +-- Illyanie +DELETE FROM `creature_equip_template` WHERE `entry`=4188; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4188, 0, 1, 12854, 0, 0); + +-- Laird +DELETE FROM `creature_equip_template` WHERE `entry`=4200; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4200, 0, 1, 6225, 0, 0); + +-- Scarlet Scryer +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4293, 0, 1, 4993, 0, 0); +UPDATE `creature_template` SET `equipment_id`=4293 WHERE `entry`=4293 && `patch` >= 0; + +-- Firemane Scalebane +DELETE FROM `creature_equip_template` WHERE `entry`=4328; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4328, 0, 1, 3361, 2051, 0); + +-- Jonathan Chambers +DELETE FROM `creature_equip_template` WHERE `entry`=4590; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4590, 0, 1, 12744, 12745, 0); + +-- Twilight Acolyte +UPDATE `creature_equip_template` SET `probability`=38 WHERE `entry`=4809 && `item1`=2176 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4809, 0, 1, 2176, 2215, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4809, 0, 1, 2176, 0, 2785); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4809, 0, 1, 2176, 0, 2774); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4809, 0, 1, 1825, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4809, 0, 1, 1511, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4809, 0, 1, 1823, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4809, 0, 1, 2176, 2211, 0); + +-- Twilight Reaver +UPDATE `creature_equip_template` SET `probability`=49 WHERE `entry`=4810 && `item1`=4991 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4810, 0, 1, 1830, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4810, 0, 1, 1811, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4810, 0, 1, 4991, 2214, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4810, 0, 1, 1416, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4810, 0, 1, 3196, 0, 0); + +-- Twilight Aquamancer +DELETE FROM `creature_equip_template` WHERE `entry`=4811; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4811, 0, 1, 1411, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4811, 0, 1, 0, 0, 2786); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4811, 0, 1, 2766, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4811, 0, 1, 1825, 0, 0); + +-- Twilight Loreseeker +UPDATE `creature_equip_template` SET `probability`=40 WHERE `entry`=4812 && `item1`=1907 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4812, 0, 1, 1828, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4812, 0, 1, 1414, 0, 0); + +-- Twilight Shadowmage +UPDATE `creature_equip_template` SET `probability`=29 WHERE `entry`=4813 && `item1`=2559 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4813, 0, 1, 1818, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4813, 0, 1, 2559, 2211, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4813, 0, 1, 1826, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4813, 0, 1, 2559, 2217, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4813, 0, 1, 1417, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4813, 0, 1, 1827, 0, 0); + +-- Twilight Elementalist +UPDATE `creature_equip_template` SET `probability`=40 WHERE `entry`=4814 && `item1`=2177 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4814, 0, 1, 1510, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4814, 0, 1, 1811, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4814, 0, 1, 1514, 0, 0); + +-- Twilight Lord Kelris +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4832, 0, 3, 1155, 0, 0); +UPDATE `creature_equip_template` SET `probability`=2 WHERE `entry`=4832 && `item1`=5303 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4832, 0, 1, 2763, 0, 0); + +-- "Stinky" Ignatz +DELETE FROM `creature_equip_template` WHERE `entry`=4880; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4880, 0, 1, 0, 12855, 0); + +-- Charity Mipsy +DELETE FROM `creature_equip_template` WHERE `entry`=4896; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4896, 0, 1, 12744, 0, 0); + +-- Lady Jaina Proudmoore +DELETE FROM `creature_equip_template` WHERE `entry`=4968; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4968, 0, 1, 2177, 12869, 0); + +-- Kagoro +DELETE FROM `creature_equip_template` WHERE `entry`=4972; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (4972, 0, 1, 1897, 0, 0); + +-- Theramore Deserter +DELETE FROM `creature_equip_template` WHERE `entry`=5057; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5057, 0, 1, 1895, 0, 0); + +-- Clerk Lendry +DELETE FROM `creature_equip_template` WHERE `entry`=5083; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5083, 0, 1, 0, 12743, 0); + +-- Sentry Point Captain +DELETE FROM `creature_equip_template` WHERE `entry`=5086; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5086, 0, 1, 1899, 1984, 0); + +-- Infiltrator Marksen +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5416, 0, 0, 2703, 0, 0); +UPDATE `creature_template` SET `equipment_id`=5416 WHERE `entry`=5416 && `patch` >= 0; +-- Creature changes equipment during end script for quest Nothing But The Truth. +DELETE FROM `quest_end_scripts` WHERE `id`=1391; +INSERT INTO `quest_end_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1391, 0, 1, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Nothing But The Truth: Infiltrator Marksen - Emote OneShotEatNoSheathe'), +(1391, 0, 4, 147, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Nothing But The Truth: Infiltrator Marksen - Remove Npc Flags'), +(1391, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 2703, -1, -1, 0, 0, 0, 0, 0, 0, 'Nothing But The Truth: Infiltrator Marksen - Set Equipment'), +(1391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1858, 0, 0, 0, 0, 0, 0, 0, 0, 'Nothing But The Truth: Infiltrator Marksen - Say Text'), +(1391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1857, 0, 0, 0, 0, 0, 0, 0, 0, 'Nothing But The Truth: Infiltrator Marksen - Say Text'), +(1391, 6, 1, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Nothing But The Truth: Infiltrator Marksen - Set Emote State to STATE_STUN_NOSHEATHE'), +(1391, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1859, 0, 0, 0, 0, 0, 0, 0, 0, 'Nothing But The Truth: Infiltrator Marksen - Say Text'), +(1391, 12, 3, 0, 2645, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, -10421.6, -3237.93, 20.303, 0, 0, 'Nothing But The Truth: Infiltrator Marksen - Move'), +(1391, 12, 15, 7293, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Nothing But The Truth: Infiltrator Marksen - Cast Spell Zombie Form'), +(1391, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1861, 0, 0, 0, 0, 0, 0, 0, 0, 'Nothing But The Truth: Infiltrator Marksen - Say Text'), +(1391, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1860, 0, 0, 0, 0, 0, 0, 0, 0, 'Nothing But The Truth: Infiltrator Marksen - Say Text'), +(1391, 14, 3, 0, 3180, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, -10422.9, -3239.26, 20.303, 0, 0, 'Nothing But The Truth: Infiltrator Marksen - Move'), +(1391, 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Nothing But The Truth: Infiltrator Marksen - Set Emote State to ONESHOT_NONE'), +(1391, 17, 15, 3617, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Nothing But The Truth: Infiltrator Marksen - Cast Spell Quiet Suicide'); + +-- Raging Dune Smasher +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5470, 0, 1, 2813, 0, 0); +UPDATE `creature_template` SET `equipment_id`=5470 WHERE `entry`=5470 && `patch` >= 0; + +-- Theresa +-- Equipment changes from OOC script on Gerard Abernathy. +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5697, 0, 0, 2717, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5697, 0, 0, 2716, 0, 0); +UPDATE `creature_template` SET `equipment_id`=5697 WHERE `entry`=5697 && `patch` >= 0; + +-- Samantha Shackleton +DELETE FROM `creature_equip_template` WHERE `entry`=5700; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5700, 0, 1, 12862, 0, 0); + +-- Apothecary Lycanus +DELETE FROM `creature_equip_template` WHERE `entry`=5733; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5733, 0, 1, 12862, 0, 0); + +-- Apothecary Keever +-- Equipment changes from OOC script on the creature. +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5734, 0, 0, 2199, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5734, 0, 0, 3696, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5734, 0, 0, 2198, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5734, 0, 0, 2201, 0, 0); +UPDATE `creature_template` SET `equipment_id`=5734 WHERE `entry`=5734 && `patch` >= 0; + +-- Foreman Grills +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5835, 0, 0, 5285, 5278, 0); +-- Creature changes his equipment at 10% health. +DELETE FROM `creature_ai_events` WHERE `creature_id`=5835; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (583501, 5835, 0, 9, 0, 100, 1, 0, 5, 7000, 11000, 583501, 0, 0, 'Foreman Grills - Cast Hamstring'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (583502, 5835, 0, 2, 0, 100, 1, 10, 1, 5000, 10000, 583502, 0, 0, 'Foreman Grills - Change Weapon at 10% HP'); +DELETE FROM `creature_ai_scripts` WHERE `id`=583502; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(583502, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 5285, 5278, 0, 0, 0, 0, 0, 0, 0, 'Foreman Grills - Set Equipment'), +(583502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1385, 0, 0, 0, 0, 0, 0, 0, 0, 'Foreman Grills - Emote Text'); + +-- Captain Gerogg Hammertoe +DELETE FROM `creature_equip_template` WHERE `entry`=5851; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5851, 0, 1, 3361, 1984, 0); + +-- Twilight Dark Shaman +UPDATE `creature_equip_template` SET `probability`=646 WHERE `entry`=5860 && `item1`=5277 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 5, 1415, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 4, 3784, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 3, 1512, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 3, 1818, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 3, 4020, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 3, 2764, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 3, 1823, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 3, 4022, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 2, 1412, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 2, 1514, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 2, 1821, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 2, 5277, 3986, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 2, 1830, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 2, 2766, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 2, 3785, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 2, 3786, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 2, 3787, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 2, 1820, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 2, 5277, 2222, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 2, 5277, 0, 2780); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 2, 4024, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 2, 5277, 2211, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 1824, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 3782, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 1813, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 1819, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 5277, 2216, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 1510, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 2763, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 3201, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 4023, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 1416, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 1413, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 4017, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 1511, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 5277, 0, 2778); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 15245, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 1994, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 4018, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 2765, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 1625, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 4568, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 4575, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 5277, 0, 2777); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 1417, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 5277, 0, 2782); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 5277, 2219, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 5277, 0, 4026); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 5277, 0, 8181); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 5277, 2212, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 4019, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 5277, 3817, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 5277, 0, 13824); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 5277, 15912, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 15263, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 4566, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 15274, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 1825, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 1829, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 3186, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 3783, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 5277, 2215, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5860, 0, 1, 15270, 0, 0); + +-- Twilight Fire Guard +UPDATE `creature_equip_template` SET `probability`=1533 WHERE `entry`=5861 && `item1`=3361 && `item2`=1984 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 7, 1511, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 7, 13823, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 6, 1830, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 5, 1823, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 5, 2763, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 4, 3784, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 4, 2765, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 4, 1512, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 4, 1831, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 4, 1814, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 4, 3361, 1984, 13824); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 4, 4023, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 4, 4021, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 4, 3361, 1984, 4025); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 4, 1417, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 4020, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 1820, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 1510, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 1826, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 3779, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 1414, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 1828, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 2764, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 1812, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 1513, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 1824, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 3361, 1984, 2780); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 1514, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 2138, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 1815, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 1816, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 1817, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 1818, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 1822, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 3361, 1984, 15287); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 3361, 2210, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 3361, 2219, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 4017, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 3361, 3816, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 3, 4018, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 3361, 1984, 2777); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 3361, 2211, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 3361, 1984, 2781); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 1811, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 1821, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 3361, 2213, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 3361, 1984, 2773); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 1516, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 2766, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 3781, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 3782, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 3783, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 3361, 1984, 8188); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 3786, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 3787, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 3361, 2221, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 3361, 2216, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 3361, 1984, 4026); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 1416, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 4022, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 1415, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 1412, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 3361, 2212, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 2, 13822, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 4562, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 7537, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 768, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 2214, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 2215, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 1984, 3037); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 2220, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 1819, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 2222, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 1825, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 9764, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 2079, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3208, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 2140, 1984, 2778); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3201, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3785, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 1639, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3193, 3986, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 1984, 2782); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 1984, 5069); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 4019, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 1984, 2785); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 864, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 2217, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 1984, 5216); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 4024, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 4575, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 1411, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 15210, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 15250, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 15253, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 866, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 1413, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 1813, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3197, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 1984, 2783); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 1984, 3778); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 1984, 4089); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 1984, 3780); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 3652, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 3361, 3986, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 4565, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 8006, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 8177, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 13816, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 13820, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 4566, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 15244, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5861, 0, 1, 15249, 1984, 0); + +-- Twilight Geomancer +UPDATE `creature_equip_template` SET `probability`=913 WHERE `entry`=5862 && `item1`=5303 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 5, 2763, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 4, 4022, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 4, 4020, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 4, 1824, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 3, 1512, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 3781, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 1820, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 1816, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 2138, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 5303, 0, 13824); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 5303, 2211, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 1818, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 1417, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 1513, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 1514, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 1821, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 1416, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 1515, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 5303, 0, 4026); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 5303, 2220, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 1825, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 4021, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 1826, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 4024, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 5303, 2214, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 5303, 0, 2786); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 1830, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 13822, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 5303, 0, 3780); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 1414, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 3779, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 5303, 2212, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 5303, 0, 3778); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 2, 5303, 0, 5216); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 1510, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 767, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 5303, 0, 8180); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 1413, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 2765, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 4566, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 1822, 0, 8179); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 1822, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 5303, 0, 3039); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 15263, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 5303, 2217, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 1827, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 2078, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 15228, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 13820, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 5303, 0, 2782); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 3783, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 3785, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 4017, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 15230, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 4018, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 5303, 0, 2783); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 5303, 0, 4025); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 12992, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 13816, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 5303, 0, 2774); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 5303, 0, 2777); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 5303, 3816, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 5303, 3986, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 5303, 3989, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 5303, 15935, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 1412, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 15226, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 15245, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 15249, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 1415, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 5303, 2219, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 5303, 0, 2780); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 1516, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 1813, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 1814, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 13820, 0, 8181); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 1828, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 1829, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 5303, 0, 8181); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 8178, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5862, 0, 1, 15275, 0, 0); + +-- Gan'rul Bloodeye +DELETE FROM `creature_equip_template` WHERE `entry`=5875; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5875, 0, 1, 12864, 0, 0); + +-- Zansoa +DELETE FROM `creature_equip_template` WHERE `entry`=5942; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5942, 0, 1, 6227, 6225, 0); + +-- Nethergarde Foreman +UPDATE `creature_equip_template` SET `probability`=432 WHERE `entry`=5998 && `item1`=2182 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 2, 2182, 0, 2778); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 2, 2182, 0, 2785); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 2, 3783, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 2, 4019, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 1, 1416, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 1, 15243, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 1, 1608, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 1, 2182, 0, 3780); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 1, 2182, 0, 13824); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 1, 2182, 2211, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 1, 2182, 2217, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 1, 2766, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 1, 4021, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 1, 1814, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 1, 2182, 15937, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 1, 3779, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 1, 3784, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5998, 0, 1, 13822, 0, 0); + +-- Nethergarde Soldier +UPDATE `creature_equip_template` SET `probability`=1935 WHERE `entry`=5999 && `item1`=2178 && `item2`=1984 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 3, 1830, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 3, 2178, 1984, 2773); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 3, 2178, 1984, 13824); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 3, 1826, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 1413, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 2178, 2215, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 3782, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 3786, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 2178, 1984, 2781); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 1415, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 1416, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 2080, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 2765, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 3785, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 3787, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 4018, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 4021, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 13820, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 13822, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 15227, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 2178, 1984, 2780); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 2, 2178, 1984, 2786); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1821, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1825, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1831, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 4019, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 2178, 1984, 3036); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 2766, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 2178, 1984, 4087); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1823, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 2178, 1984, 15285); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 2178, 3987, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 2178, 2210, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1811, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 15215, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 2178, 2221, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 863, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 4023, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 3784, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1820, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1510, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 2178, 1984, 4026); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1812, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 15230, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 2178, 3816, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1414, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 4022, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1818, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 8178, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1516, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 4017, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1817, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 15216, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1411, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 15243, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 2178, 1984, 3039); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 15249, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1813, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1511, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1815, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1829, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 2178, 1984, 2782); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 1515, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 2178, 1984, 5212); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 2178, 2217, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 2178, 3986, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 2178, 3989, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 2632, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 3201, 1984, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (5999, 0, 1, 15268, 1984, 0); + +-- Nethergarde Cleric +UPDATE `creature_equip_template` SET `probability`=159 WHERE `entry`=6000 && `item1`=2176 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6000, 0, 1, 1811, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6000, 0, 1, 1819, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6000, 0, 1, 2176, 0, 2773); + +-- Nethergarde Riftwatcher +UPDATE `creature_equip_template` SET `probability`=104 WHERE `entry`=6002 && `item1`=2177 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6002, 0, 1, 1825, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6002, 0, 1, 1829, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6002, 0, 1, 2177, 0, 2778); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6002, 0, 1, 1414, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6002, 0, 1, 1827, 0, 0); + +-- Nethergarde Officer +UPDATE `creature_equip_template` SET `probability`=125 WHERE `entry`=6003 && `item1`=5305 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6003, 0, 1, 1510, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6003, 0, 1, 1414, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6003, 0, 1, 5305, 0, 4026); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6003, 0, 1, 3784, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6003, 0, 1, 4021, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6003, 0, 1, 5305, 2216, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6003, 0, 1, 3783, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6003, 0, 1, 5305, 0, 15280); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6003, 0, 1, 5305, 2217, 0); + +-- Shadowsworn Cultist +UPDATE `creature_equip_template` SET `probability`=501 WHERE `entry`=6004 && `item1`=5280 && `item2`=0 && `item3`=6886; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6004, 0, 2, 1815, 0, 6886); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6004, 0, 1, 5280, 3817, 6886); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6004, 0, 1, 15242, 0, 6886); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6004, 0, 1, 5280, 3986, 6886); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6004, 0, 1, 5280, 0, 2785); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6004, 0, 1, 3781, 0, 6886); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6004, 0, 1, 2765, 0, 6886); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6004, 0, 1, 5280, 0, 2773); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6004, 0, 1, 1415, 0, 6886); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6004, 0, 1, 5280, 9790, 6886); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6004, 0, 1, 5280, 3816, 6886); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6004, 0, 1, 3190, 0, 6886); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6004, 0, 1, 5280, 2214, 6886); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6004, 0, 1, 1820, 0, 6886); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6004, 0, 1, 5280, 0, 2781); + +-- Shadowsworn Thug +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 300, 0, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 0, 0, 2773); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 1817, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 0, 0, 2777); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 0, 0, 2786); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 1416, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 0, 0, 2774); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 15233, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 1411, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 0, 7555, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 0, 15895, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 1829, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 3784, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 3787, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 4021, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 1511, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 1827, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6005, 0, 1, 2763, 0, 0); +UPDATE `creature_template` SET `equipment_id`=6005 WHERE `entry`=6005 && `patch` >= 0; + +-- Shadowsworn Adept +UPDATE `creature_equip_template` SET `probability`=398 WHERE `entry`=6006 && `item1`=1907 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6006, 0, 3, 1818, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6006, 0, 2, 13822, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6006, 0, 1, 1907, 0, 2783); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6006, 0, 1, 1416, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6006, 0, 1, 1907, 2213, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6006, 0, 1, 3783, 0, 5071); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6006, 0, 1, 1822, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6006, 0, 1, 1907, 0, 2785); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6006, 0, 1, 1907, 0, 2780); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6006, 0, 1, 1907, 0, 2786); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6006, 0, 1, 4018, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6006, 0, 1, 13818, 0, 0); + +-- Shadowsworn Enforcer +UPDATE `creature_equip_template` SET `probability`=96 WHERE `entry`=6007 && `item1`=6224 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6007, 0, 1, 1828, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6007, 0, 1, 864, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6007, 0, 1, 6224, 0, 2777); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6007, 0, 1, 4018, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6007, 0, 1, 1512, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6007, 0, 1, 6224, 0, 2780); + +-- Shadowsworn Warlock +UPDATE `creature_equip_template` SET `probability`=100 WHERE `entry`=6008 && `item1`=2559 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6008, 0, 1, 1819, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6008, 0, 1, 13822, 0, 0); + +-- Shadowsworn Dreadweaver +DELETE FROM `creature_equip_template` WHERE `entry`=6009; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6009, 0, 1, 1814, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6009, 0, 1, 3199, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6009, 0, 1, 3785, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6009, 0, 1, 4020, 0, 0); + +-- Tog Rustsprocket +DELETE FROM `creature_equip_template` WHERE `entry`=6119; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6119, 0, 1, 12862, 0, 0); + +-- Daphne Stilwell +-- Equipment changed from core script for quest The Tome of Valor. +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6182, 0, 0, 6946, 0, 0); + +-- Jorah Annison +DELETE FROM `creature_equip_template` WHERE `entry`=6293; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6293, 0, 1, 2714, 12743, 0); + +-- Monnos the Elder +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6646, 0, 1, 5303, 0, 0); +UPDATE `creature_template` SET `equipment_id`=6646 WHERE `entry`=6646 && `patch` >= 0; + +-- Harlown Darkweave +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (6731, 0, 1, 5278, 0, 0); +UPDATE `creature_template` SET `equipment_id`=6731 WHERE `entry`=6731 && `patch` >= 0; + +-- Jaedenar Enforcer +DELETE FROM `creature_equip_template` WHERE `entry`=7114; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7114, 0, 1, 5291, 2051, 0); + +-- Dun Garok Soldier +UPDATE `creature_equip_template` SET `probability`=11 WHERE `entry`=7360 && `item1`=2695 && `item2`=1985 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7360, 0, 1, 1510, 1985, 0); + +-- Kalin Windflight +DELETE FROM `creature_equip_template` WHERE `entry`=7772; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7772, 0, 1, 5303, 0, 0); + +-- Nethergarde Elite +UPDATE `creature_equip_template` SET `probability`=441 WHERE `entry`=7851 && `item1`=4991 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 4, 2763, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 3, 4991, 0, 2783); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 3, 4017, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 3, 4991, 0, 2780); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 2, 1510, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 2, 4991, 0, 13824); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 2, 3782, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 2, 1417, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 2, 4991, 2211, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 2, 1513, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 2, 4991, 0, 2785); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 2, 4991, 0, 4025); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 2, 13823, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 1815, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 13820, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 1516, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 0, 2777); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 1816, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 1825, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 0, 5207); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 1828, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 2077, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 2138, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 0, 2774); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 9858, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 2764, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 2766, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 3783, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 3784, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4019, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4022, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 13821, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 10093, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 1821, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 1827, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 0, 2778); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 0, 3778); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 0, 2782); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 13818, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 1411, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 1416, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 3986, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 1414, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 0, 13825); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 0, 15295); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 2210, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 2219, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 2565, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 3989, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 863, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 15226, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 15231, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 1811, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 1823, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 1824, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4018, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4020, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4024, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 0, 15291); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 4991, 2217, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7851, 0, 1, 15262, 0, 0); + +-- Tran'rek +DELETE FROM `creature_equip_template` WHERE `entry`=7876; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7876, 0, 1, 1903, 12857, 0); + +-- Daryn Lightwind +DELETE FROM `creature_equip_template` WHERE `entry`=7907; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (7907, 0, 1, 12862, 0, 0); + +-- Zikkel +DELETE FROM `creature_equip_template` WHERE `entry`=8119; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (8119, 0, 1, 12744, 12857, 0); + +-- Jabbey +DELETE FROM `creature_equip_template` WHERE `entry`=8139; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (8139, 0, 1, 12744, 0, 0); + +-- Witherheart the Stalker +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (8218, 0, 1, 10617, 5285, 0); +UPDATE `creature_template` SET `equipment_id`=8218 WHERE `entry`=8218 && `patch` >= 0; + +-- Highlord Mastrogonde +UPDATE `creature_equip_template` SET `probability`=15 WHERE `entry`=8282 && `item1`=2177 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (8282, 0, 1, 766, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (8282, 0, 1, 2177, 0, 4025); + +-- Alenndaar Lapidaar +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (8308, 0, 1, 6680, 0, 0); +UPDATE `creature_template` SET `equipment_id`=8308 WHERE `entry`=8308 && `patch` >= 0; + +-- Dark Iron Marksman +DELETE FROM `creature_equip_template` WHERE `entry`=8338; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (8338, 0, 1, 0, 0, 2552); + +-- Chesmu +DELETE FROM `creature_equip_template` WHERE `entry`=8356; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (8356, 0, 1, 12744, 0, 0); + +-- Pakwa +DELETE FROM `creature_equip_template` WHERE `entry`=8364; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (8364, 0, 1, 12744, 12745, 0); + +-- Kalaran Windblade +UPDATE `creature_equip_template` SET `probability`=139 WHERE `entry`=8479 && `item1`=2179 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (8479, 0, 1, 2179, 2179, 0); + +-- Dark Iron Sentry +DELETE FROM `creature_equip_template` WHERE `entry`=8504; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (8504, 0, 1, 2147, 0, 0); + +-- Auctioneer Beardo +DELETE FROM `creature_equip_template` WHERE `entry`=8661; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (8661, 0, 1, 0, 12859, 0); + +-- War Master Voone +-- Creature changes equipment after casting Throw Axe in core script. +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (9237, 0, 0, 12348, 0, 0); + +-- Warlord Krom'zar +DELETE FROM `creature_equip_template` WHERE `entry`=9456; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (9456, 0, 1, 3433, 0, 0); + +-- Horde Axe Thrower +DELETE FROM `creature_equip_template` WHERE `entry`=9458; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (9458, 0, 1, 10611, 0, 5856); + +-- Blackrock Ambusher +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (9522, 0, 1, 1909, 2052, 0); +UPDATE `creature_template` SET `equipment_id`=9522 WHERE `entry`=9522 && `patch` >= 0; + +-- Furmund +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (9550, 0, 1, 5303, 0, 0); +UPDATE `creature_template` SET `equipment_id`=9550 WHERE `entry`=9550 && `patch` >= 0; + +-- Hahk'Zor +DELETE FROM `creature_equip_template` WHERE `entry`=9602; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (9602, 0, 1, 1909, 0, 0); + +-- Blackrock Raider +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (9605, 0, 1, 2557, 0, 0); +UPDATE `creature_template` SET `equipment_id`=9605 WHERE `entry`=9605 && `patch` >= 0; + +-- Locheed +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (9876, 0, 1, 2557, 0, 0); +UPDATE `creature_template` SET `equipment_id`=9876 WHERE `entry`=9876 && `patch` >= 0; + +-- Rexxar +DELETE FROM `creature_equip_template` WHERE `entry`=10182; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (10182, 0, 1, 10612, 10612, 0); + +-- Scholomance Student +DELETE FROM `creature_equip_template` WHERE `entry`=10475; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (10475, 0, 1, 12862, 0, 0); + +-- Jandice Barov +DELETE FROM `creature_equip_template` WHERE `entry`=10503; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (10503, 0, 1, 12866, 0, 0); + +-- Rookery Hatcher +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (10683, 0, 1, 10825, 0, 0); +UPDATE `creature_template` SET `equipment_id`=10683 WHERE `entry`=10683 && `patch` >= 0; + +-- Royal Overseer Bauhaus +DELETE FROM `creature_equip_template` WHERE `entry`=10781; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (10781, 0, 1, 12750, 0, 0); + +-- Aurius +DELETE FROM `creature_equip_template` WHERE `entry`=10917; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (10917, 0, 1, 12883, 12860, 0); + +-- Wizlo Bearingshiner +DELETE FROM `creature_equip_template` WHERE `entry`=10941; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (10941, 0, 1, 0, 12857, 0); + +-- Davil Lightfire +DELETE FROM `creature_equip_template` WHERE `entry`=10944; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (10944, 0, 1, 12901, 0, 0); + +-- Jeziba +DELETE FROM `creature_equip_template` WHERE `entry`=10976; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (10976, 0, 1, 12862, 0, 0); + +-- Legacki +DELETE FROM `creature_equip_template` WHERE `entry`=10978; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (10978, 0, 1, 12862, 0, 0); + +-- Jhag +DELETE FROM `creature_equip_template` WHERE `entry`=11066; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (11066, 0, 1, 0, 12860, 0); + +-- Argent Guard +DELETE FROM `creature_equip_template` WHERE `entry`=11099; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (11099, 0, 1, 5305, 12980, 0); + +-- Awenasa +DELETE FROM `creature_equip_template` WHERE `entry`=11117; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (11117, 0, 1, 12744, 0, 0); + +-- Zealot Lor'Khan +DELETE FROM `creature_equip_template` WHERE `entry`=11347; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (11347, 5, 1, 5291, 12749, 0); + +-- King Gordok +DELETE FROM `creature_equip_template` WHERE `entry`=11501; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (11501, 1, 1, 13316, 0, 0); + +-- Horde Peon +DELETE FROM `creature_equip_template` WHERE `entry`=11656; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (11656, 3, 1, 19014, 0, 0); + +-- Mor'vek +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (11701, 0, 1, 2703, 0, 0); +UPDATE `creature_template` SET `equipment_id`=11701 WHERE `entry`=11701 && `patch` >= 0; + +-- Arin'sor +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (11702, 0, 1, 2827, 0, 0); +UPDATE `creature_template` SET `equipment_id`=11702 WHERE `entry`=11702 && `patch` >= 0; + +-- Burning Blade Toxicologist +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (12319, 0, 1, 2184, 0, 0); +UPDATE `creature_template` SET `equipment_id`=12319 WHERE `entry`=12319 && `patch` >= 0; + +-- Stormscale Toxicologist +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (12321, 0, 1, 4993, 0, 0); +UPDATE `creature_template` SET `equipment_id`=12321 WHERE `entry`=12321 && `patch` >= 0; + +-- Augustus the Touched +DELETE FROM `creature_equip_template` WHERE `entry`=12384; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (12384, 0, 1, 12854, 0, 0); + +-- Lord Kazzak +DELETE FROM `creature_equip_template` WHERE `entry`=12397; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (12397, 1, 1, 13623, 0, 0); + +-- Blackwing Legionnaire +DELETE FROM `creature_equip_template` WHERE `entry`=12416; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (12416, 4, 1, 17383, 0, 0); + +-- Framnali +DELETE FROM `creature_equip_template` WHERE `entry`=12720; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (12720, 0, 1, 12744, 0, 0); + +-- Mitsuwa +DELETE FROM `creature_equip_template` WHERE `entry`=12721; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (12721, 0, 1, 12744, 0, 0); + +-- Duriel Moonfire +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (12860, 0, 1, 13632, 0, 0); +UPDATE `creature_template` SET `equipment_id`=12860 WHERE `entry`=12860 && `patch` >= 0; + +-- Nergal +DELETE FROM `creature_equip_template` WHERE `entry`=12959; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (12959, 0, 1, 12744, 0, 0); + +-- Lieutenant Rugba +DELETE FROM `creature_equip_template` WHERE `entry`=13137; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (13137, 3, 1, 12290, 0, 5262); + +-- Lieutenant Grummus +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (13145, 3, 1, 12593, 0, 5260); +UPDATE `creature_template` SET `equipment_id`=13145 WHERE `entry`=13145 && `patch` >= 3; + +-- Lieutenant Murp +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (13146, 3, 1, 12593, 0, 14118); +UPDATE `creature_template` SET `equipment_id`=13146 WHERE `entry`=13146 && `patch` >= 3; + +-- Commander Louis Philips +DELETE FROM `creature_equip_template` WHERE `entry`=13154; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (13154, 3, 1, 13627, 0, 2551); + +-- Thanthaldis Snowgleam +DELETE FROM `creature_equip_template` WHERE `entry`=13217; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (13217, 3, 1, 12854, 0, 0); + +-- Seasoned Mountaineer +DELETE FROM `creature_equip_template` WHERE `entry`=13325; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (13325, 3, 1, 10591, 0, 5259); + +-- Veteran Mountaineer +DELETE FROM `creature_equip_template` WHERE `entry`=13335; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (13335, 3, 1, 13312, 0, 11021); + +-- Stormpike Bowman +DELETE FROM `creature_equip_template` WHERE `entry`=13358; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (13358, 3, 1, 0, 0, 5262); + +-- Champion Mountaineer +DELETE FROM `creature_equip_template` WHERE `entry`=13426; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (13426, 3, 1, 14533, 0, 5260); + +-- Blackwing Technician +DELETE FROM `creature_equip_template` WHERE `entry`=13996; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (13996, 4, 1, 2717, 3757, 0); + +-- Dirk Swindle +DELETE FROM `creature_equip_template` WHERE `entry`=14188; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14188, 3, 1, 12298, 0, 0); + +-- Gravis Slipknot +DELETE FROM `creature_equip_template` WHERE `entry`=14221; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14221, 0, 1, 2147, 0, 0); + +-- Jimmy the Bleeder +DELETE FROM `creature_equip_template` WHERE `entry`=14281; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14281, 0, 1, 10617, 0, 0); + +-- Cho'Rush the Observer +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14324, 1, 3, 2176, 0, 0); +UPDATE `creature_equip_template` SET `probability`=2 WHERE `entry`=14324 && `item1`=14618 && `item2`=0 && `item3`=0; + +-- Blackwing Guardsman +DELETE FROM `creature_equip_template` WHERE `entry`=14456; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14456, 4, 1, 17383, 0, 0); + +-- Scourge Archer +DELETE FROM `creature_equip_template` WHERE `entry`=14489; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14489, 2, 1, 0, 0, 14105); + +-- Zapped Shore Strider +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14603, 3, 1, 5292, 0, 0); +UPDATE `creature_template` SET `equipment_id`=14603 WHERE `entry`=14603 && `patch` >= 3; + +-- Zapped Land Walker +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14604, 3, 1, 5293, 0, 0); +UPDATE `creature_template` SET `equipment_id`=14604 WHERE `entry`=14604 && `patch` >= 3; + +-- Lookout Captain Lolo Longstriker +DELETE FROM `creature_equip_template` WHERE `entry`=14634; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14634, 3, 1, 2703, 13859, 0); + +-- Zapped Cliff Giant +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14640, 3, 1, 5301, 0, 0); +UPDATE `creature_template` SET `equipment_id`=14640 WHERE `entry`=14640 && `patch` >= 3; + +-- Horde Laborer +DELETE FROM `creature_equip_template` WHERE `entry`=14718; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14718, 3, 1, 19014, 0, 0); + +-- Gelvas Grimegate +DELETE FROM `creature_equip_template` WHERE `entry`=14828; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14828, 4, 1, 0, 12851, 0); + +-- Herald +DELETE FROM `creature_equip_template` WHERE `entry`=14848; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14848, 3, 1, 2714, 0, 5259); + +-- Darkmoon Faire Carnie +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14849, 4, 49, 5292, 0, 0); +UPDATE `creature_equip_template` SET `probability`=21 WHERE `entry`=14849 && `item1`=3362 && `item2`=13604 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14849, 4, 18, 3362, 13605, 0); + +-- Gruk +-- Creature changes equipment from waypoint script. +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14850, 4, 0, 2197, 0, 0); +UPDATE `creature_template` SET `equipment_id`=14850 WHERE `entry`=14850 && `patch` >= 4; + +-- Erk +DELETE FROM `creature_equip_template` WHERE `entry`=14857; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14857, 4, 1, 0, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14857, 4, 0, 6256, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14857, 4, 0, 6256, 13917, 0); +-- Delete old waypoints and scripts. +DELETE FROM `creature_movement_template` WHERE `entry`=14857; +DELETE FROM `creature_movement_scripts` WHERE `id` IN (1485701, 1485702, 1485703, 1485704, 1485705, 1485718); +-- Add new waypoints. +INSERT INTO `creature_movement_template` (`entry`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `wander_distance`, `script_id`) VALUES +(14857, 1, -28.861338, -2613.758057, 97.242439, 100.000000, 0, 0.000000, 0), +(14857, 2, -25.789497, -2611.342041, 97.360809, 100.000000, 352, 0.000000, 0), +(14857, 3, -25.789497, -2611.342041, 97.360809, 6.265732, 10483, 0.000000, 1485703), +(14857, 4, -24.330542, -2614.235596, 97.360809, 100.000000, 0, 0.000000, 0), +(14857, 5, -14.748810, -2620.326416, 96.281067, 100.000000, 0, 0.000000, 0), +(14857, 6, 4.128147, -2622.176025, 89.652901, 100.000000, 20773, 0.000000, 1485706), +(14857, 7, -7.710447, -2639.855957, 94.662231, 100.000000, 0, 0.000000, 0), +(14857, 8, -17.632507, -2645.074219, 95.887306, 100.000000, 0, 0.000000, 0), +(14857, 9, -28.323160, -2642.914063, 96.111916, 100.000000, 0, 0.000000, 0), +(14857, 10, -32.274570, -2636.906982, 96.218987, 100.000000, 0, 0.000000, 0), +(14857, 11, -29.166016, -2632.446289, 96.034386, 100.000000, 5207, 0.000000, 1485711), +(14857, 12, -33.265347, -2638.038818, 96.481369, 100.000000, 0, 0.000000, 0), +(14857, 13, -33.406860, -2641.800781, 96.503281, 100.000000, 0, 0.000000, 0), +(14857, 14, -11.607338, -2642.863037, 95.800758, 100.000000, 0, 0.000000, 0), +(14857, 15, 3.762316, -2633.401611, 90.247932, 100.000000, 24631, 0.000000, 1485715), +(14857, 16, 10.486939, -2641.620117, 90.781586, 100.000000, 0, 0.000000, 0), +(14857, 17, 38.454910, -2660.857178, 91.909752, 100.000000, 0, 0.000000, 0), +(14857, 18, 60.803261, -2685.470215, 92.924774, 100.000000, 0, 0.000000, 0), +(14857, 19, 63.849571, -2695.362061, 92.538544, 100.000000, 0, 0.000000, 0), +(14857, 20, 54.940594, -2697.130127, 92.041649, 100.000000, 16213, 0.000000, 1485720), +(14857, 21, 41.134552, -2703.052979, 91.811745, 100.000000, 0, 0.000000, 0), +(14857, 22, 23.574120, -2695.836182, 91.988129, 100.000000, 0, 0.000000, 0), +(14857, 23, 6.167767, -2669.069336, 91.840866, 100.000000, 0, 0.000000, 0), +(14857, 24, -8.951588, -2650.943115, 95.669487, 100.000000, 0, 0.000000, 0), +(14857, 25, -15.688093, -2624.230713, 96.249153, 100.000000, 0, 0.000000, 0), +(14857, 26, -31.136230, -2615.651611, 97.248772, 100.000000, 160000, 5.000000, 1485726); +-- Waypoint scripts +INSERT INTO `creature_movement_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1485703, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10249, 0, 0, 0, 0, 0, 0, 0, 0, 'Erk - Say Text'), +(1485703, 5, 19, 0, 0, 0, 0, 0, 0, 0, 0, 6256, 0, 0, 0, 0, 0, 0, 0, 0, 'Erk - Set Equipment'), +(1485706, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10250, 0, 0, 0, 0, 0, 0, 0, 0, 'Erk - Say Text'), +(1485706, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10195, 0, 0, 0, 0, 0, 0, 0, 0, 'Erk - Say Text'), +(1485711, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10196, 0, 0, 0, 0, 0, 0, 0, 0, 'Erk - Say Text'), +(1485715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10197, 0, 0, 0, 0, 0, 0, 0, 0, 'Erk - Say Text'), +(1485715, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10205, 0, 0, 0, 0, 0, 0, 0, 0, 'Erk - Say Text'), +(1485715, 24, 19, 0, 0, 0, 0, 0, 0, 0, 0, 6256, 13917, 0, 0, 0, 0, 0, 0, 0, 'Erk - Set Equipment'), +(1485715, 24, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Erk - Set Run'), +(1485720, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Erk - Set Walk'), +(1485720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10198, 0, 0, 0, 0, 0, 0, 0, 0, 'Erk - Say Text'), +(1485720, 4, 35, 1, 0, 0, 0, 13579, 0, 9, 2, 0, 0, 0, 0, 0, 0, 0, 6.04953, 0, 'Guard Kurall - Set Orientation'), +(1485720, 6, 1, 21, 0, 0, 0, 13579, 0, 9, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Guard Kurall - Emote OneShotApplaud'), +(1485720, 6, 0, 0, 0, 0, 0, 13579, 0, 9, 2, 10223, 0, 0, 0, 0, 0, 0, 0, 0, 'Guard Kurall - Say Text'), +(1485720, 9, 1, 7, 0, 0, 0, 13579, 0, 9, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Guard Kurall - Emote OneShotEat'), +(1485720, 9, 1, 92, 0, 0, 0, 19412, 0, 9, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Horde Guard - Emote OneShotEatNoSheathe'), +(1485720, 9, 19, 0, 0, 0, 0, 0, 0, 0, 0, 6256, 0, 0, 0, 0, 0, 0, 0, 0, 'Erk - Set Equipment'), +(1485720, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10206, 0, 0, 0, 0, 0, 0, 0, 0, 'Erk - Say Text'), +(1485726, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Erk - Set Equipment'); + +-- Guard Taruc +UPDATE `creature_equip_template` SET `probability`=1 WHERE `entry`=14859 && `item1`=12285 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14859, 4, 0, 2197, 0, 0); +-- Equipment changes from Gruk's waypoint script. +DELETE FROM `creature_movement_scripts` WHERE `id`=1485002; +INSERT INTO `creature_movement_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1485002, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10184, 0, 0, 0, 0, 0, 0, 0, 0, 'Gruk - Say Text'), +(1485002, 4, 0, 19, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Gruk - Set Equip'), +(1485002, 7, 0, 0, 0, 0, 0, 0, 13170, 0, 9, 2, 10265, 0, 0, 0, 0, 0, 0, 0, 0, 'Guard Taruc - Say Text'), +(1485002, 7, 0, 19, 0, 0, 0, 0, 13170, 0, 9, 2, 2197, 0, 0, 0, 0, 0, 0, 0, 0, 'Guard Taruc - Set Equip'), +(1485002, 10, 0, 19, 0, 0, 0, 0, 13170, 0, 9, 2, 12285, 0, 0, 0, 0, 0, 0, 0, 0, 'Guard Taruc - Set Equip'), +(1485002, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10266, 0, 0, 0, 0, 0, 0, 0, 0, 'Gruk - Say Text'); + +-- Karu +-- Creature changes equipment from its waypoint script. +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14874, 4, 0, 12744, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14874, 4, 0, 2196, 0, 0); +UPDATE `creature_template` SET `equipment_id`=14874 WHERE `entry`=14874 && `patch` >= 4; + +-- Peon +UPDATE `creature_equip_template` SET `probability`=1 WHERE `entry`=14901 && `item1`=12629 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14901, 0, 0, 1910, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14901, 0, 0, 1910, 13605, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14901, 0, 0, 1910, 2081, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14901, 0, 0, 1910, 13604, 0); +-- Different equipment for specific spawns. +INSERT INTO `creature_equip_template` (`entry`, `probability`, `item1`, `item2`, `item3`) VALUES (149010, 1, 1910, 13604, 0); +UPDATE `creature_addon` SET `equipment_id`=149010 WHERE `guid`=13752; +INSERT INTO `creature_equip_template` (`entry`, `probability`, `item1`, `item2`, `item3`) VALUES (149011, 1, 1910, 13605, 0); +UPDATE `creature_addon` SET `equipment_id`=149011 WHERE `guid`=13757; + +-- Mogg +-- Equipment changes from waypoint script. +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14908, 4, 0, 3350, 0, 0); +UPDATE `creature_template` SET `equipment_id`=14908 WHERE `entry`=14908 && `patch` >= 4; + +-- Rin'wosho the Trader +DELETE FROM `creature_equip_template` WHERE `entry`=14921; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14921, 4, 1, 11314, 12851, 0); + +-- Gapp Jinglepocket +DELETE FROM `creature_equip_template` WHERE `entry`=14963; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (14963, 5, 1, 12854, 0, 0); + +-- Arathi Farmer +UPDATE `creature_equip_template` SET `probability`=34 WHERE `entry`=15045 && `item1`=3367 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15045, 5, 8, 12801, 0, 0); + +-- Forsaken Farmer +UPDATE `creature_equip_template` SET `probability`=212 WHERE `entry`=15046 && `item1`=3367 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15046, 5, 26, 13608, 0, 0); + +-- Arathi Lumberjack +UPDATE `creature_equip_template` SET `probability`=187 WHERE `entry`=15062 && `item1`=19015 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15062, 5, 13, 1903, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15062, 5, 4, 1911, 0, 0); + +-- Arathi Blacksmith +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15063, 5, 0, 1903, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15063, 5, 0, 2705, 0, 0); +UPDATE `creature_template` SET `equipment_id`=15063 WHERE `entry`=15063 && `patch` >= 5; + +-- Forsaken Blacksmith +UPDATE `creature_equip_template` SET `probability`=40 WHERE `entry`=15064 && `item1`=1903 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15064, 5, 1, 2704, 0, 0); + +-- Forsaken Miner +UPDATE `creature_equip_template` SET `probability`=169 WHERE `entry`=15075 && `item1`=1910 && `item2`=0 && `item3`=0; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15075, 5, 22, 12862, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15075, 5, 0, 2704, 0, 0); + +-- Riggle Bassbait +DELETE FROM `creature_equip_template` WHERE `entry`=15077; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15077, 5, 1, 1117, 0, 0); + +-- Forsaken Stablehand +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15087, 5, 0, 3367, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15087, 5, 0, 1910, 0, 0); +UPDATE `creature_template` SET `equipment_id`=15087 WHERE `entry`=15087 && `patch` >= 5; + +-- Forsaken Lumberjack +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15089, 5, 0, 19015, 0, 0); +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15089, 5, 0, 1903, 0, 0); +UPDATE `creature_template` SET `equipment_id`=15089 WHERE `entry`=15089 && `patch` >= 5; + +-- The Banshee Queen +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15193, 6, 1, 2179, 0, 14118); +UPDATE `creature_template` SET `equipment_id`=15193 WHERE `entry`=15193 && `patch` >= 6; + +-- Sergeant Hartman +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15199, 6, 1, 12890, 11041, 0); +UPDATE `creature_template` SET `equipment_id`=15199 WHERE `entry`=15199 && `patch` >= 6; + +-- Anachronos the Ancient +-- Equipment changes from core script for quest A Pawn on the Eternal Board. +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15381, 7, 0, 20738, 0, 0); +UPDATE `creature_template` SET `equipment_id`=15381 WHERE `entry`=15381 && `patch` >= 7; + +-- Fandral Staghelm +-- Equipment changes from core script for quest A Pawn on the Eternal Board. +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15382, 7, 0, 20738, 0, 0); +UPDATE `creature_template` SET `equipment_id`=15382 WHERE `entry`=15382 && `patch` >= 7; + +-- Kaldorei Infantry +DELETE FROM `creature_equip_template` WHERE `entry`=15423; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15423, 7, 1, 14881, 14881, 0); + +-- Kandrostrasz +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15503, 7, 1, 13723, 0, 0); +UPDATE `creature_template` SET `equipment_id`=15503 WHERE `entry`=15503 && `patch` >= 7; + +-- Cenarion Outrider +DELETE FROM `creature_equip_template` WHERE `entry`=15545; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15545, 6, 1, 14882, 20417, 0); + +-- Doctor Weavil +DELETE FROM `creature_equip_template` WHERE `entry`=15552; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15552, 7, 1, 21129, 12869, 0); + +-- Dark Iron Kidnapper +DELETE FROM `creature_equip_template` WHERE `entry`=15692; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15692, 6, 1, 2147, 0, 0); + +-- Lieutenant General Nokhor +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15818, 7, 1, 13706, 0, 0); +UPDATE `creature_template` SET `equipment_id`=15818 WHERE `entry`=15818 && `patch` >= 7; + +-- Tauren Primalist +DELETE FROM `creature_equip_template` WHERE `entry`=15856; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15856, 7, 1, 13337, 0, 0); + +-- Malagav the Tactician +DELETE FROM `creature_equip_template` WHERE `entry`=15869; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (15869, 7, 1, 0, 0, 21554); + +-- Unrelenting Deathknight +DELETE FROM `creature_equip_template` WHERE `entry`=16125; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (16125, 9, 1, 12304, 23356, 0); + +-- Unrelenting Rider +DELETE FROM `creature_equip_template` WHERE `entry`=16126; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (16126, 9, 1, 2181, 0, 0); + +-- Death Touched Warrior +DELETE FROM `creature_equip_template` WHERE `entry`=16158; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (16158, 9, 1, 1903, 0, 0); + +-- Deathknight Cavalier +DELETE FROM `creature_equip_template` WHERE `entry`=16163; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (16163, 9, 1, 2181, 0, 0); + +-- Necro Knight +DELETE FROM `creature_equip_template` WHERE `entry`=16165; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (16165, 9, 1, 5305, 0, 0); + +-- Unholy Staff +DELETE FROM `creature_equip_template` WHERE `entry`=16215; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (16215, 9, 1, 13622, 0, 0); + +-- Infectious Ghoul +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (16244, 9, 1, 22213, 0, 0); +UPDATE `creature_template` SET `equipment_id`=16244 WHERE `entry`=16244 && `patch` >= 9; + +-- Argent Dawn Initiate +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (16384, 9, 1, 19053, 0, 0); +UPDATE `creature_template` SET `equipment_id`=16384 WHERE `entry`=16384 && `patch` >= 9; + +-- Deathchill Servant +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (16390, 9, 1, 2147, 0, 0); +UPDATE `creature_template` SET `equipment_id`=16390 WHERE `entry`=16390 && `patch` >= 9; + +-- Plagued Ghoul +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (16447, 9, 1, 22213, 0, 0); +UPDATE `creature_template` SET `equipment_id`=16447 WHERE `entry`=16447 && `patch` >= 9; + +-- Naxxramas Follower +DELETE FROM `creature_equip_template` WHERE `entry`=16505; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (16505, 9, 1, 5491, 0, 0); + +-- Death Lord +DELETE FROM `creature_equip_template` WHERE `entry`=16861; +INSERT INTO `creature_equip_template` (`entry`, `patch`, `probability`, `item1`, `item2`, `item3`) VALUES (16861, 9, 1, 13623, 0, 0); + +ALTER TABLE `creature_equip_template` + CHANGE COLUMN `patch` `patch_min` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Minimum content patch to load this entry' AFTER `item3`, + ADD COLUMN `patch_max` TINYINT(3) UNSIGNED NOT NULL DEFAULT '10' COMMENT 'Maximum content patch to load this entry' AFTER `patch_min`; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Database/SQLStorages.cpp b/src/game/Database/SQLStorages.cpp index 8b1f452923c..a0a2ac4c271 100644 --- a/src/game/Database/SQLStorages.cpp +++ b/src/game/Database/SQLStorages.cpp @@ -29,7 +29,6 @@ char const CreatureInfodstfmt[] = "iiiiiffffiiiiiissiiiiifffffiffffffiiiiiiiiiii char const CreatureDataAddonInfofmt[] = "iiiibbis"; char const CreatureDisplayInfoAddonfmt[] = "iffffbi"; char const GameObjectDisplayInfoAddonfmt[] = "iffffff"; -char const EquipmentInfofmt[] = "iiii"; char const GameObjectInfosrcfmt[] = "iiisiifiiiiiiiiiiiiiiiiiiiiiiiiiis"; char const GameObjectInfodstfmt[] = "iiisiifiiiiiiiiiiiiiiiiiiiiiiiiiii"; char const PageTextfmt[] = "isi"; @@ -45,7 +44,6 @@ SQLStorage sCreatureStorage(CreatureInfosrcfmt, CreatureInfodstfmt, "entry", "cr SQLStorage sCreatureDataAddonStorage(CreatureDataAddonInfofmt, "guid", "creature_addon"); SQLStorage sCreatureDisplayInfoAddonStorage(CreatureDisplayInfoAddonfmt, "display_id", "creature_display_info_addon"); SQLStorage sGameObjectDisplayInfoAddonStorage(GameObjectDisplayInfoAddonfmt, "display_id", "gameobject_display_info_addon"); -SQLStorage sEquipmentStorage(EquipmentInfofmt, "entry", "creature_equip_template"); SQLStorage sPageTextStore(PageTextfmt, "entry", "page_text"); SQLStorage sMapStorage(MapEntrysrcfmt, MapEntrydstfmt, "entry", "map_template"); SQLStorage sConditionStorage(ConditionsSrcFmt, ConditionsDstFmt, "condition_entry", "conditions"); diff --git a/src/game/Database/SQLStorages.h b/src/game/Database/SQLStorages.h index 4871c16e1a3..88ea5b50058 100644 --- a/src/game/Database/SQLStorages.h +++ b/src/game/Database/SQLStorages.h @@ -29,7 +29,6 @@ extern SQLStorage sCreatureStorage; extern SQLStorage sCreatureDataAddonStorage; extern SQLStorage sCreatureDisplayInfoAddonStorage; extern SQLStorage sGameObjectDisplayInfoAddonStorage; -extern SQLStorage sEquipmentStorage; extern SQLStorage sPageTextStore; extern SQLStorage sMapStorage; extern SQLStorage sConditionStorage; diff --git a/src/game/GameEventMgr.cpp b/src/game/GameEventMgr.cpp index af625eea306..46e80699125 100644 --- a/src/game/GameEventMgr.cpp +++ b/src/game/GameEventMgr.cpp @@ -496,7 +496,7 @@ void GameEventMgr::LoadFromDB() newData.spell_id_start = fields[5].GetUInt32(); newData.spell_id_end = fields[6].GetUInt32(); - if (newData.equipment_id && !sObjectMgr.GetEquipmentInfo(newData.equipment_id)) + if (newData.equipment_id && !sObjectMgr.GetEquipmentTemplate(newData.equipment_id)) { sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Table `game_event_creature_data` have creature (Guid: %u) with equipment_id %u not found in table `creature_equip_template`, set to no equipment.", guid, newData.equipment_id); newData.equipment_id = 0; diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index 9f585e91f67..5110451471c 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -1429,7 +1429,7 @@ void ObjectMgr::CheckCreatureTemplates() if (cInfo->equipment_id > 0) // 0 no equipment { - if (!GetEquipmentInfo(cInfo->equipment_id)) + if (!GetEquipmentTemplate(cInfo->equipment_id)) { sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Table `creature_template` have creature (Entry: %u) with equipment_id %u not found in table `creature_equip_template`, set to no equipment.", cInfo->entry, cInfo->equipment_id); sLog.Out(LOG_DBERRFIX, LOG_LVL_MINIMAL, "UPDATE `creature_template` SET `equipment_id`=0 WHERE `entry`=%u;", cInfo->entry); @@ -1525,7 +1525,7 @@ void ObjectMgr::LoadCreatureAddons(SQLStorage& creatureaddons, char const* entry if (addon->equipment_id > 0) { - if (!GetEquipmentInfo(addon->equipment_id)) + if (!GetEquipmentTemplate(addon->equipment_id)) { sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Creature (%s %u) have invalid equipment id (%i) defined in `%s`.", entryName, addon->guid, addon->equipment_id, creatureaddons.GetTableName()); const_cast(addon)->equipment_id = -1; @@ -1566,36 +1566,71 @@ void ObjectMgr::LoadCreatureAddons() sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Creature (GUID: %u) does not exist but has a record in `creature_addon`", addon->guid); } -EquipmentInfo const* ObjectMgr::GetEquipmentInfo(uint32 entry) -{ - return sEquipmentStorage.LookupEntry(entry); -} - void ObjectMgr::LoadEquipmentTemplates() { - sEquipmentStorage.LoadProgressive(sWorld.GetWowPatch(), "patch", true); + m_CreatureEquipmentMap.clear(); // need for reload case - for (uint32 i = 0; i < sEquipmentStorage.GetMaxEntry(); ++i) + // 0 1 2 3 4 + std::unique_ptr result(WorldDatabase.PQuery("SELECT `entry`, `probability`, `item1`, `item2`, `item3` FROM `creature_equip_template` WHERE %u BETWEEN `patch_min` AND `patch_max`", sWorld.GetWowPatch())); + + if (!result) { - EquipmentInfo const* eqInfo = sEquipmentStorage.LookupEntry(i); + BarGoLink bar(1); + bar.step(); - if (!eqInfo) - continue; + sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ""); + sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ">> Loaded 0 creature equipment templates. DB table `creature_equip_template` is empty."); + return; + } + + BarGoLink bar(result->GetRowCount()); + + do + { + bar.step(); + Field* fields = result->Fetch(); + + uint32 entry = fields[0].GetUInt32(); + EquipmentEntry equipEntry; + equipEntry.probability = fields[1].GetUInt32(); + equipEntry.item[0] = fields[2].GetUInt32(); + equipEntry.item[1] = fields[3].GetUInt32(); + equipEntry.item[2] = fields[4].GetUInt32(); - for (uint8 j = 0; j < 3; ++j) + auto itr = m_CreatureEquipmentMap.find(entry); + if (itr != m_CreatureEquipmentMap.end()) { - if (!eqInfo->equipentry[j]) - continue; + itr->second.totalProbability += equipEntry.probability; + itr->second.equipment.push_back(equipEntry); + } + else + { + EquipmentTemplate equipTemplate; + equipTemplate.totalProbability = equipEntry.probability; + equipTemplate.equipment.push_back(equipEntry); + m_CreatureEquipmentMap.insert(std::make_pair(entry, equipTemplate)); + } - ItemPrototype const* itemProto = GetItemPrototype(eqInfo->equipentry[j]); - if (!itemProto) + } while (result->NextRow()); + + for (auto& itrTemplate : m_CreatureEquipmentMap) + { + for (auto& itrEntry : itrTemplate.second.equipment) + { + for (uint8 j = 0; j < 3; ++j) { - sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Unknown item (entry=%u) in creature_equip_template.equipentry%u for entry = %u, forced to 0.", eqInfo->equipentry[j], j + 1, i); - const_cast(eqInfo)->equipentry[j] = 0; - continue; - } + if (!itrEntry.item[j]) + continue; - if (itemProto->InventoryType != INVTYPE_WEAPON && + ItemPrototype const* itemProto = GetItemPrototype(itrEntry.item[j]); + if (!itemProto) + { + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Unknown item (entry=%u) in creature_equip_template.item%u for entry = %u, forced to 0.", itrEntry.item[j], j + 1, itrTemplate.first); + itrEntry.item[j] = 0; + continue; + } + + if (itemProto->InventoryType != INVTYPE_WEAPON && itemProto->InventoryType != INVTYPE_SHIELD && itemProto->InventoryType != INVTYPE_RANGED && itemProto->InventoryType != INVTYPE_2HWEAPON && @@ -1605,14 +1640,15 @@ void ObjectMgr::LoadEquipmentTemplates() itemProto->InventoryType != INVTYPE_THROWN && itemProto->InventoryType != INVTYPE_RANGEDRIGHT && itemProto->InventoryType != INVTYPE_RELIC) - { - sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Item (entry=%u) in creature_equip_template.equipentry%u for entry = %u is not equipable in a hand, forced to 0.", eqInfo->equipentry[j], j + 1, i); - const_cast(eqInfo)->equipentry[j] = 0; + { + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Item (entry=%u) in creature_equip_template.item%u for entry = %u is not equipable in a hand, forced to 0.", itrEntry.item[j], j + 1, itrTemplate.first); + itrEntry.item[j] = 0; + } } } } - sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ">> Loaded %u equipment template", sEquipmentStorage.GetRecordCount()); + sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ">> Loaded %u equipment template", (uint32)m_CreatureEquipmentMap.size()); sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ""); } diff --git a/src/game/ObjectMgr.h b/src/game/ObjectMgr.h index 3afc08177b2..64f85be3d9e 100644 --- a/src/game/ObjectMgr.h +++ b/src/game/ObjectMgr.h @@ -127,6 +127,7 @@ struct SoundEntriesEntry typedef std::unordered_map CreatureSpellsMap; typedef std::unordered_map> CreatureCLSMap; +typedef std::unordered_map CreatureEquipmentMap; typedef std::map CellCorpseSet; struct CellObjectGuids @@ -630,7 +631,13 @@ class ObjectMgr CreatureDisplayInfoAddon const* GetCreatureDisplayInfoAddon(uint32 display_id); CreatureDisplayInfoAddon const* GetCreatureDisplayInfoRandomGender(uint32 display_id); - EquipmentInfo const* GetEquipmentInfo(uint32 entry); + EquipmentTemplate const* GetEquipmentTemplate(uint32 entry) + { + auto itr = m_CreatureEquipmentMap.find(entry); + if (itr != m_CreatureEquipmentMap.end()) + return &itr->second; + return nullptr; + } static CreatureDataAddon const* GetCreatureAddon(uint32 lowguid) { return sCreatureDataAddonStorage.LookupEntry(lowguid); @@ -1523,6 +1530,7 @@ class ObjectMgr CreatureLocaleMap m_CreatureLocaleMap; CreatureSpellsMap m_CreatureSpellsMap; CreatureCLSMap m_CreatureCLSMap; + CreatureEquipmentMap m_CreatureEquipmentMap; GameObjectDataMap m_GameObjectDataMap; GameObjectLocaleMap m_GameObjectLocaleMap; ItemLocaleMap m_ItemLocaleMap; diff --git a/src/game/Objects/Creature.cpp b/src/game/Objects/Creature.cpp index 844f5c94849..955baf53312 100644 --- a/src/game/Objects/Creature.cpp +++ b/src/game/Objects/Creature.cpp @@ -351,21 +351,7 @@ bool Creature::InitEntry(uint32 entry, GameEventCreatureData const* eventData /* SetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_GENDER, minfo->gender); // Load creature equipment - if (eventData && eventData->equipment_id) - { - // use event equipment if any for active event - LoadEquipment(eventData->equipment_id); - } - else if (m_creatureDataAddon && m_creatureDataAddon->equipment_id >= 0) - { - // override with per spawn data - LoadEquipment(m_creatureDataAddon->equipment_id, true); - } - else - { - // use default from the template - LoadEquipment(cinfo->equipment_id, true); - } + LoadDefaultEquipment(eventData); #if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_12_1 SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f); @@ -671,12 +657,12 @@ void Creature::Update(uint32 update_diff, uint32 diff) if (newCreatureId != m_originalEntry) m_originalEntry = newCreatureId; + // need to preserve game event state + GameEventCreatureData const* eventData = sGameEventMgr.GetCreatureUpdateDataForActiveEvent(GetGUIDLow()); if (newCreatureId != GetEntry()) - { - // need to preserve game event state - GameEventCreatureData const* eventData = sGameEventMgr.GetCreatureUpdateDataForActiveEvent(GetGUIDLow()); UpdateEntry(newCreatureId, eventData); - } + else + LoadDefaultEquipment(eventData); SelectLevel(m_creatureData ? m_creatureData->health_percent : 100.0f, m_creatureData ? m_creatureData->mana_percent : 100.0f); UpdateAllStats(); @@ -1839,9 +1825,9 @@ bool Creature::LoadFromDB(uint32 guidlow, Map* map, bool force) return true; } -void Creature::LoadEquipment(uint32 equip_entry, bool force) +void Creature::LoadEquipment(uint32 equipmentId, bool force) { - if (equip_entry == 0) + if (equipmentId == 0) { if (force) { @@ -1852,11 +1838,33 @@ void Creature::LoadEquipment(uint32 equip_entry, bool force) return; } - if (EquipmentInfo const* einfo = sObjectMgr.GetEquipmentInfo(equip_entry)) + if (EquipmentTemplate const* pEquipTemplate = sObjectMgr.GetEquipmentTemplate(equipmentId)) { - m_equipmentId = equip_entry; - for (uint8 i = 0; i < MAX_VIRTUAL_ITEM_SLOT; ++i) - SetVirtualItem(VirtualItemSlot(i), einfo->equipentry[i]); + m_equipmentId = equipmentId; + if (EquipmentEntry const* pEquipEntry = pEquipTemplate->ChooseEquipmentEntry()) + { + for (uint8 i = 0; i < MAX_VIRTUAL_ITEM_SLOT; ++i) + SetVirtualItem(VirtualItemSlot(i), pEquipEntry->item[i]); + } + } +} + +void Creature::LoadDefaultEquipment(GameEventCreatureData const* eventData) +{ + if (eventData && eventData->equipment_id) + { + // use event equipment if any for active event + LoadEquipment(eventData->equipment_id); + } + else if (m_creatureDataAddon && m_creatureDataAddon->equipment_id >= 0) + { + // override with per spawn data + LoadEquipment(m_creatureDataAddon->equipment_id, true); + } + else + { + // use default from the template + LoadEquipment(m_creatureInfo->equipment_id, true); } } diff --git a/src/game/Objects/Creature.h b/src/game/Objects/Creature.h index 78e8f60df85..eff3a7d8794 100644 --- a/src/game/Objects/Creature.h +++ b/src/game/Objects/Creature.h @@ -109,7 +109,8 @@ class Creature : public Unit CreatureClassLevelStats const* GetClassLevelStats() const; void SelectLevel(float percentHealth = 100.0f, float percentMana = 100.0f); void InitStatsForLevel(float percentHealth = 100.0f, float percentMana = 100.0f); - void LoadEquipment(uint32 equip_entry, bool force=false); + void LoadEquipment(uint32 equipmentId, bool force = false); + void LoadDefaultEquipment(GameEventCreatureData const* eventData = nullptr); bool HasStaticDBSpawnData() const; // listed in `creature` table and have fixed in DB guid uint32 GetDBTableGUIDLow() const; @@ -121,7 +122,6 @@ class Creature : public Unit virtual void RegenerateAll(uint32 update_diff, bool skipCombatCheck = false); void GetRespawnCoord(float &x, float &y, float &z, float* ori = nullptr, float* dist = nullptr) const; - uint32 GetEquipmentId() const { return m_equipmentId; } void SaveHomePosition() { SetHomePosition(GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation()); } void SetHomePosition(float x, float y, float z, float o); diff --git a/src/game/Objects/CreatureDefines.h b/src/game/Objects/CreatureDefines.h index 92507c98eab..0f15d860992 100644 --- a/src/game/Objects/CreatureDefines.h +++ b/src/game/Objects/CreatureDefines.h @@ -266,10 +266,37 @@ struct CreatureInfo } }; -struct EquipmentInfo +struct EquipmentEntry { - uint32 entry; - uint32 equipentry[3]; + uint32 probability = 0; + uint32 item[3] = { 0, 0, 0 }; +}; + +struct EquipmentTemplate +{ + uint32 totalProbability = 0; + std::vector equipment; + + EquipmentEntry const* ChooseEquipmentEntry() const + { + if (!totalProbability) + return nullptr; + + uint32 const roll = urand(0, totalProbability - 1); + uint32 sum = 0; + + for (auto const& itr : equipment) + { + if (!itr.probability) + continue; + + sum += itr.probability; + if (roll < sum) + return &itr; + } + + return nullptr; + } }; #define MAX_CREATURE_IDS_PER_SPAWN 5 diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/boss_warmaster_voone.cpp b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/boss_warmaster_voone.cpp index 4f530cbbb13..e86431cc58a 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/boss_warmaster_voone.cpp +++ b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/boss_warmaster_voone.cpp @@ -29,6 +29,7 @@ EndScriptData */ #define SPELL_MORTALSTRIKE 15708 #define SPELL_PUMMEL 15615 #define SPELL_THROWAXE 16075 +#define SPELL_UNARMED_PASSIVE 16076 struct boss_warmastervooneAI : public ScriptedAI { @@ -37,21 +38,47 @@ struct boss_warmastervooneAI : public ScriptedAI Reset(); } - uint32 Snapkick_Timer; - uint32 Cleave_Timer; - uint32 Uppercut_Timer; - uint32 MortalStrike_Timer; - uint32 Pummel_Timer; - uint32 ThrowAxe_Timer; + uint32 m_snapKickTimer; + uint32 m_cleaveTimer; + uint32 m_uppercutTimer; + uint32 m_mortalStrikeTimer; + uint32 m_pummelTimer; + uint32 m_throwAxeTimer; + uint32 m_axesThrownCount; void Reset() override { - Snapkick_Timer = 8000; - Cleave_Timer = 14000; - Uppercut_Timer = 20000; - MortalStrike_Timer = 12000; - Pummel_Timer = 32000; - ThrowAxe_Timer = 1000; + m_snapKickTimer = 8000; + m_cleaveTimer = 14000; + m_uppercutTimer = 20000; + m_mortalStrikeTimer = 12000; + m_pummelTimer = 32000; + m_throwAxeTimer = 1000; + m_axesThrownCount = 0; + } + + void SpellHitTarget(Unit* pTarget, SpellEntry const* pSpellEntry) override + { + if (pSpellEntry->Id == SPELL_THROWAXE) + { + switch (m_axesThrownCount) + { + case 0: + { + m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, 12348); + m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_1, 0); + break; + } + case 1: + { + m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, 0); + m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_1, 0); + m_creature->CastSpell(m_creature, SPELL_UNARMED_PASSIVE, true); + break; + } + } + m_axesThrownCount++; + } } void UpdateAI(uint32 const diff) override @@ -60,53 +87,56 @@ struct boss_warmastervooneAI : public ScriptedAI if (!m_creature->SelectHostileTarget() || !m_creature->GetVictim()) return; - //Snapkick_Timer - if (Snapkick_Timer < diff) + //m_snapKickTimer + if (m_snapKickTimer < diff) { DoCastSpellIfCan(m_creature->GetVictim(), SPELL_SNAPKICK); - Snapkick_Timer = 6000; + m_snapKickTimer = 6000; } - else Snapkick_Timer -= diff; + else m_snapKickTimer -= diff; - //Cleave_Timer - if (Cleave_Timer < diff) + //m_cleaveTimer + if (m_cleaveTimer < diff) { DoCastSpellIfCan(m_creature->GetVictim(), SPELL_CLEAVE); - Cleave_Timer = 12000; + m_cleaveTimer = 12000; } - else Cleave_Timer -= diff; + else m_cleaveTimer -= diff; - //Uppercut_Timer - if (Uppercut_Timer < diff) + //m_uppercutTimer + if (m_uppercutTimer < diff) { DoCastSpellIfCan(m_creature->GetVictim(), SPELL_UPPERCUT); - Uppercut_Timer = 14000; + m_uppercutTimer = 14000; } - else Uppercut_Timer -= diff; + else m_uppercutTimer -= diff; - //MortalStrike_Timer - if (MortalStrike_Timer < diff) + //m_mortalStrikeTimer + if (m_mortalStrikeTimer < diff) { DoCastSpellIfCan(m_creature->GetVictim(), SPELL_MORTALSTRIKE); - MortalStrike_Timer = 10000; + m_mortalStrikeTimer = 10000; } - else MortalStrike_Timer -= diff; + else m_mortalStrikeTimer -= diff; - //Pummel_Timer - if (Pummel_Timer < diff) + //m_pummelTimer + if (m_pummelTimer < diff) { DoCastSpellIfCan(m_creature->GetVictim(), SPELL_PUMMEL); - Pummel_Timer = 16000; + m_pummelTimer = 16000; } - else Pummel_Timer -= diff; + else m_pummelTimer -= diff; - //ThrowAxe_Timer - if (ThrowAxe_Timer < diff) + if (!m_creature->HasAura(SPELL_UNARMED_PASSIVE)) { - DoCastSpellIfCan(m_creature->GetVictim(), SPELL_THROWAXE); - ThrowAxe_Timer = 8000; + //m_throwAxeTimer + if (m_throwAxeTimer < diff) + { + DoCastSpellIfCan(m_creature->GetVictim(), SPELL_THROWAXE); + m_throwAxeTimer = 8000; + } + else m_throwAxeTimer -= diff; } - else ThrowAxe_Timer -= diff; DoMeleeAttackIfReady(); } diff --git a/src/scripts/eastern_kingdoms/westfall/westfall.cpp b/src/scripts/eastern_kingdoms/westfall/westfall.cpp index 5a7de71045e..6b3fd389203 100644 --- a/src/scripts/eastern_kingdoms/westfall/westfall.cpp +++ b/src/scripts/eastern_kingdoms/westfall/westfall.cpp @@ -87,7 +87,7 @@ struct npc_daphne_stilwellAI : public npc_escortAI switch (uiPoint) { case 4: - SetEquipmentSlots(false, 20728, EQUIP_NO_CHANGE, 20728); + m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, 6946); m_creature->SetSheath(SHEATH_STATE_RANGED); m_creature->HandleEmoteCommand(EMOTE_STATE_USESTANDING_NOSHEATHE); break; diff --git a/src/scripts/kalimdor/feralas/dire_maul/instance_dire_maul.cpp b/src/scripts/kalimdor/feralas/dire_maul/instance_dire_maul.cpp index 8f6e72f66fa..b1657b8f755 100644 --- a/src/scripts/kalimdor/feralas/dire_maul/instance_dire_maul.cpp +++ b/src/scripts/kalimdor/feralas/dire_maul/instance_dire_maul.cpp @@ -1068,7 +1068,7 @@ struct GordokBruteAI : public ScriptedAI GordokBruteAI(Creature* pCreature) : ScriptedAI(pCreature) { /** Save current equipment of the creature */ - m_uiEquipment_id = m_creature->GetEquipmentId(); + m_uiEquipment_id = m_creature->GetCurrentEquipmentId(); Reset(); } diff --git a/src/scripts/kalimdor/silithus/silithus.cpp b/src/scripts/kalimdor/silithus/silithus.cpp index 0b786f72e38..533b2fe9fbd 100644 --- a/src/scripts/kalimdor/silithus/silithus.cpp +++ b/src/scripts/kalimdor/silithus/silithus.cpp @@ -1374,6 +1374,8 @@ enum EMOTE_ANACHRONOS_PICKUP = -1000782, SAY_ANACHRONOS_EPILOGUE_8 = -1000783, + ITEM_SCEPTER_OF_THE_SHIFTING_SANDS = 20738, + // The transform spell for Anachronos was removed from DBC //DISPLAY_ID_BRONZE_DRAGON = 15500, @@ -2155,24 +2157,25 @@ struct npc_anachronos_the_ancientAI : public ScriptedAI m_uiEventTimer = 15000; break; case 40: - // ToDo: Make Fandral equip the scepter + m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, ITEM_SCEPTER_OF_THE_SHIFTING_SANDS); if (Creature* pFandral = m_creature->GetMap()->GetCreature(m_uiFandralGUID)) DoScriptText(EMOTE_ANACHRONOS_SCEPTER, m_creature, pFandral); - m_creature->SetStandState(UNIT_STAND_STATE_KNEEL); - m_uiEventTimer = 3000; + m_uiEventTimer = 1500; break; case 41: + m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, 0); + m_creature->HandleEmote(EMOTE_ONESHOT_BEG); + m_uiEventTimer = 1500; + break; + case 42: if (Creature* pFandral = m_creature->GetMap()->GetCreature(m_uiFandralGUID)) { + pFandral->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, ITEM_SCEPTER_OF_THE_SHIFTING_SANDS); pFandral->SetStandState(UNIT_STAND_STATE_STAND); DoScriptText(SAY_FANDRAL_EPILOGUE_4, pFandral); } m_uiEventTimer = 3000; break; - case 42: - m_creature->SetStandState(UNIT_STAND_STATE_STAND); - m_uiEventTimer = 4000; - break; case 43: if (Creature* pFandral = m_creature->GetMap()->GetCreature(m_uiFandralGUID)) DoScriptText(SAY_FANDRAL_EPILOGUE_5, pFandral); @@ -2183,6 +2186,7 @@ struct npc_anachronos_the_ancientAI : public ScriptedAI { pFandral->CastSpell(pFandral, SPELL_SHATTER_HAMMER, false); DoScriptText(EMOTE_FANDRAL_SHATTER, pFandral); + pFandral->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, 0); } m_uiEventTimer = 3000; break; From eeb6d45574e2666ac62dc8fec0d8e9b83584cc65 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 23 Aug 2023 17:18:37 +0300 Subject: [PATCH 172/426] Fix warden scans terminator logic. This fixes module 2B1837AFD92A1BC289C7BD6F75D33209 where one of the scan opcodes is 0. Thanks to Blu for researching it. --- src/game/Anticheat/WardenAnticheat/Warden.cpp | 2 +- .../Anticheat/WardenAnticheat/WardenModule.cpp | 17 +++++++++++++++++ .../Anticheat/WardenAnticheat/WardenModule.hpp | 3 +++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/game/Anticheat/WardenAnticheat/Warden.cpp b/src/game/Anticheat/WardenAnticheat/Warden.cpp index 9f13c7d5661..4c7a80f7b64 100644 --- a/src/game/Anticheat/WardenAnticheat/Warden.cpp +++ b/src/game/Anticheat/WardenAnticheat/Warden.cpp @@ -323,7 +323,7 @@ void Warden::RequestScans(std::vector>&& scans) if (m_clientOS == CLIENT_OS_WIN && !m_maiev) { // indicates to the client that there are no further requests in this packet - buff << m_xor; + buff << uint8(m_module->scanTerminator ^ m_xor); } BeginTimeoutClock(); diff --git a/src/game/Anticheat/WardenAnticheat/WardenModule.cpp b/src/game/Anticheat/WardenAnticheat/WardenModule.cpp index 571e4d6876c..ecf5c4534a7 100644 --- a/src/game/Anticheat/WardenAnticheat/WardenModule.cpp +++ b/src/game/Anticheat/WardenAnticheat/WardenModule.cpp @@ -102,6 +102,23 @@ WardenModule::WardenModule(std::string const& bin, std::string const& kf, std::s if (Windows()) { + for (uint8 i = 0; i <= UINT8_MAX; i++) + { + if (opcodes[0] != i && + opcodes[1] != i && + opcodes[2] != i && + opcodes[3] != i && + opcodes[4] != i && + opcodes[5] != i && + opcodes[6] != i && + opcodes[7] != i && + opcodes[8] != i) + { + scanTerminator = i; + break; + } + } + if (!memoryRead) throw std::runtime_error("Module data does not include memory read information"); diff --git a/src/game/Anticheat/WardenAnticheat/WardenModule.hpp b/src/game/Anticheat/WardenAnticheat/WardenModule.hpp index d2ce6486967..3325da68ef5 100644 --- a/src/game/Anticheat/WardenAnticheat/WardenModule.hpp +++ b/src/game/Anticheat/WardenAnticheat/WardenModule.hpp @@ -73,6 +73,9 @@ class WardenModule // mapping of scan function to the numerical value of the opcode uint8_t opcodes[ScanTypeCount]; + // invalid opcode value that signifies scans are over + uint8 scanTerminator; + // pregenerated challenge, responses, and encryption keys for this module std::vector crk; }; From 1a869f96745bbc8552c0718751fc5af02c39f479 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 25 Aug 2023 02:02:13 +0300 Subject: [PATCH 173/426] New script for quest The Calling. --- sql/migrations/20230824230019_world.sql | 36 ++++++++++++++++++++++ src/scripts/kalimdor/silithus/silithus.cpp | 25 --------------- 2 files changed, 36 insertions(+), 25 deletions(-) create mode 100644 sql/migrations/20230824230019_world.sql diff --git a/sql/migrations/20230824230019_world.sql b/sql/migrations/20230824230019_world.sql new file mode 100644 index 00000000000..f592e8fe3a0 --- /dev/null +++ b/sql/migrations/20230824230019_world.sql @@ -0,0 +1,36 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230824230019'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230824230019'); +-- Add your query below. + + +-- 9208: Extra Targets Of Scripted Map Event 9208 Satisfy Condition (121: Not (Target Is Alive)) +INSERT INTO `conditions` (`condition_entry`, `type`, `value1`, `value2`, `value3`, `value4`, `flags`) VALUES (9208, 47, 9208, 121, 0, 0, 0); + +-- New script for using Glyphs of Calling during quest The Calling. +DELETE FROM `event_scripts` WHERE `id`=9208; +INSERT INTO `event_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(9208, 0, 0, 61, 9208, 7200, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Glyphs of Calling: Start Scripted Map Event'), +(9208, 3, 0, 10, 15286, 7200000, 0, 0, 0, 0, 0, 0, 0, 920801, -1, 1, -7258.49, 828.158, 3.21053, 4.29351, 0, 'Glyphs of Calling: Summon Creature Xil\'xix'), +(9208, 3, 0, 10, 15288, 7200000, 0, 0, 0, 0, 0, 0, 0, 920801, -1, 1, -7223.8, 820.815, 4.89979, 0.0872665, 0, 'Glyphs of Calling: Summon Creature Aluntir'), +(9208, 3, 0, 10, 15290, 7200000, 0, 0, 0, 0, 0, 0, 0, 920801, -1, 1, -7268.27, 878.263, 1.88339, 1.85005, 0, 'Glyphs of Calling: Summon Creature Arakis'), +(9208, 4, 0, 69, 9208, 0, 0, 0, 0, 0, 0, 0, 9208, 920802, 0, 0, 0, 0, 0, 0, 0, 'Glyphs of Calling: Edit Scripted Map Event'); +DELETE FROM `generic_scripts` WHERE `id`=920801; +INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(920801, 0, 0, 63, 9208, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 'The Calling: Adds - Add to Map Event'); +DELETE FROM `generic_scripts` WHERE `id`=920802; +INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(920802, 0, 0, 10, 14862, 7200000, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -7307.85, 838.671, 1.64449, 0.750492, 0, 'The Calling: Summon Creature Emissary Roman\'khan'); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/scripts/kalimdor/silithus/silithus.cpp b/src/scripts/kalimdor/silithus/silithus.cpp index 533b2fe9fbd..27ed3a2960f 100644 --- a/src/scripts/kalimdor/silithus/silithus.cpp +++ b/src/scripts/kalimdor/silithus/silithus.cpp @@ -1145,22 +1145,9 @@ struct npc_Emissary_RomankhanAI : public ScriptedAI { npc_Emissary_RomankhanAI(Creature* pCreature) : ScriptedAI(pCreature) { - pCreature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - pCreature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SPAWNING); - pCreature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); - pCreature->SetVisibility(VISIBILITY_OFF); - - OverlordCount = 0; - if (Creature* add = pCreature->SummonCreature(15288, -7233.39f, 906.415f, -1.76649f, 1.81259f, TEMPSUMMON_DEAD_DESPAWN, 0)) // Aluntir - add->JoinCreatureGroup(pCreature, 0, 0, OPTION_RESPAWN_TOGETHER); - if (Creature* add = pCreature->SummonCreature(15286, -7212.16f, 911.711f, -1.76649f, 2.58543f, TEMPSUMMON_DEAD_DESPAWN, 0)) // Xil'xix - add->JoinCreatureGroup(pCreature, 0, 0, OPTION_RESPAWN_TOGETHER); - if (Creature* add = pCreature->SummonCreature(15290, -7210.3f, 895.014f, -1.76649f, 0.544185f, TEMPSUMMON_DEAD_DESPAWN, 0)) // Arakis - add->JoinCreatureGroup(pCreature, 0, 0, OPTION_RESPAWN_TOGETHER); Reset(); } - int OverlordCount; uint32 m_uiWiltTimer; uint32 m_uiSchockTimer; uint32 m_uiSanityTimer; @@ -1183,18 +1170,6 @@ struct npc_Emissary_RomankhanAI : public ScriptedAI guid = 0; } - void SummonedCreatureJustDied(Creature* unit) override - { - ++OverlordCount; - if (OverlordCount >= 3) - { - m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SPAWNING); - m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); - m_creature->SetVisibility(VISIBILITY_ON); - } - } - void Aggro(Unit* pWho) override { m_creature->AddCreatureState(CSTATE_REGEN_MANA); From f629142186407ca50b64717ef8cb664ad27cdd73 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 25 Aug 2023 18:23:07 +0300 Subject: [PATCH 174/426] Apply speed aura mods at cast time. Closes https://github.com/vmangos/core/issues/1307 --- src/game/Objects/SpellCaster.cpp | 14 ++++++++++++++ src/game/Spells/Spell.cpp | 1 + src/game/Spells/SpellAuras.cpp | 20 +++++++++++++------- src/game/Spells/SpellAuras.h | 5 ++++- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/game/Objects/SpellCaster.cpp b/src/game/Objects/SpellCaster.cpp index 6ef0716e73f..4cbb7354b98 100644 --- a/src/game/Objects/SpellCaster.cpp +++ b/src/game/Objects/SpellCaster.cpp @@ -923,7 +923,21 @@ float SpellCaster::CalculateSpellEffectValue(Unit const* target, SpellEntry cons if (pUnit) { if (Player* modOwner = pUnit->GetSpellModOwner()) + { modOwner->ApplySpellMod(spellProto->Id, SPELLMOD_ALL_EFFECTS, value, spell); + + // Apply speed aura mods at cast time. + // Fixes Curse of Exhaustion not removing Amplify Curse. + switch (spellProto->EffectApplyAuraName[effect_index]) + { + case SPELL_AURA_MOD_INCREASE_SPEED: + case SPELL_AURA_MOD_SPEED_ALWAYS: + case SPELL_AURA_MOD_SPEED_NOT_STACK: + case SPELL_AURA_MOD_DECREASE_SPEED: + modOwner->ApplySpellMod(spellProto->Id, SPELLMOD_SPEED, value, spell); + break; + } + } } if (spellProto->HasAttribute(SPELL_ATTR_SCALES_WITH_CREATURE_LEVEL) && spellProto->spellLevel && diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index af765207a84..aa50484f885 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -1796,6 +1796,7 @@ void Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask) unit->IncrDiminishing(m_diminishGroup); m_spellAuraHolder = CreateSpellAuraHolder(m_spellInfo, unit, pRealUnitCaster ? pRealUnitCaster : unit, m_caster, m_CastItem); + m_spellAuraHolder->SetAddedBySpell(true); m_spellAuraHolder->SetTriggered(IsTriggered()); m_spellAuraHolder->SetReflected(isReflected); m_spellAuraHolder->setDiminishGroup(m_diminishGroup); diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index 80b5a8fc42a..4888e3d88ce 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -4160,9 +4160,12 @@ void Aura::HandleAuraModIncreaseSpeed(bool apply, bool Real) if (!Real) return; - if (Unit* caster = GetCaster()) - if (Player* modOwner = caster->GetSpellModOwner()) - modOwner->ApplySpellMod(GetSpellProto()->Id, SPELLMOD_SPEED, m_modifier.m_amount); + if (apply && !GetHolder()->IsAddedBySpell()) + { + if (Unit* caster = GetCaster()) + if (Player* modOwner = caster->GetSpellModOwner()) + modOwner->ApplySpellMod(GetSpellProto()->Id, SPELLMOD_SPEED, m_modifier.m_amount); + } GetTarget()->UpdateSpeed(MOVE_RUN, false); } @@ -4191,9 +4194,12 @@ void Aura::HandleAuraModDecreaseSpeed(bool apply, bool Real) if (!Real) return; - if (Unit* caster = GetCaster()) - if (Player* modOwner = caster->GetSpellModOwner()) - modOwner->ApplySpellMod(GetSpellProto()->Id, SPELLMOD_SPEED, m_modifier.m_amount); + if (apply && !GetHolder()->IsAddedBySpell()) + { + if (Unit* caster = GetCaster()) + if (Player* modOwner = caster->GetSpellModOwner()) + modOwner->ApplySpellMod(GetSpellProto()->Id, SPELLMOD_SPEED, m_modifier.m_amount); + } Unit* target = GetTarget(); @@ -6746,7 +6752,7 @@ SpellAuraHolder::SpellAuraHolder(SpellEntry const* spellproto, Unit* target, Uni m_stackAmount(1), m_removeMode(AURA_REMOVE_BY_DEFAULT), m_AuraDRGroup(DIMINISHING_NONE), m_timeCla(1000), m_permanent(false), m_isRemovedOnShapeLost(true), m_deleted(false), m_in_use(0), m_debuffLimitAffected(false), m_debuffLimitScore(0), _heartBeatRandValue(0), _pveHeartBeatData(nullptr), - m_spellTriggered(false), m_isReflected(false), m_AuraDRLevel(DIMINISHING_LEVEL_1) + m_spellTriggered(false), m_isReflected(false), m_addedBySpell(false), m_AuraDRLevel(DIMINISHING_LEVEL_1) { MANGOS_ASSERT(target); MANGOS_ASSERT(spellproto && spellproto == sSpellMgr.GetSpellEntry(spellproto->Id) && "`info` must be pointer to a sSpellMgr element"); diff --git a/src/game/Spells/SpellAuras.h b/src/game/Spells/SpellAuras.h index a90b05459a3..810021014a7 100644 --- a/src/game/Spells/SpellAuras.h +++ b/src/game/Spells/SpellAuras.h @@ -232,10 +232,12 @@ class SpellAuraHolder void SetTargetSecondaryThreatFocus(bool v) { m_makesTargetSecondaryFocus = v; } bool IsTargetSecondaryThreatFocus() const { return m_makesTargetSecondaryFocus; } - void SetTriggered(bool t) { m_spellTriggered = t; } + void SetTriggered(bool triggered) { m_spellTriggered = triggered; } bool IsTriggered() const { return m_spellTriggered; } void SetReflected(bool reflected) { m_isReflected = reflected; } bool IsReflected() const { return m_isReflected; } + void SetAddedBySpell(bool spell) { m_addedBySpell = spell; } + bool IsAddedBySpell() const { return m_addedBySpell; } ~SpellAuraHolder(); private: @@ -271,6 +273,7 @@ class SpellAuraHolder bool m_makesTargetSecondaryFocus; bool m_spellTriggered; // applied by a triggered spell (used in debuff priority computation) bool m_isReflected; // applied by a reflected spell (used to prevent death in duel) + bool m_addedBySpell; // whether aura was applied by spell cast or added directly uint32 m_in_use; // > 0 while in SpellAuraHolder::ApplyModifiers call/SpellAuraHolder::Update/etc }; From 6b2a8ed34bfc04df8ba776ee816f330c11d7c97f Mon Sep 17 00:00:00 2001 From: codestothestars Date: Sat, 26 Aug 2023 13:29:24 -0400 Subject: [PATCH 175/426] Fix equipped item model display for 1.5 client (#2180) --- src/game/Objects/Item.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/game/Objects/Item.h b/src/game/Objects/Item.h index 46fedc9e3e6..8c2279d132b 100644 --- a/src/game/Objects/Item.h +++ b/src/game/Objects/Item.h @@ -159,7 +159,11 @@ enum EnchantmentSlot MAX_ENCHANTMENT_SLOT = 7 }; +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_5_1 #define MAX_VISIBLE_ITEM_OFFSET 12 +#else +#define MAX_VISIBLE_ITEM_OFFSET 11 +#endif enum EnchantmentOffset { From bc37c0210daf25139de9cd9d10a44b103a842919 Mon Sep 17 00:00:00 2001 From: codestothestars Date: Sat, 26 Aug 2023 13:29:57 -0400 Subject: [PATCH 176/426] Disable some patch 1.6+ fields in 1.5 and below (#2181) Honor progress bar was added in 1.6. "This Week" section of Honor tab was added in 1.6. PLAYER_FIELD_BYTES2 was added in 1.6. Invisibility and stealth function in 1.5 without these flags. Love is in the Air was added in 1.9. Some build errors remain, which require more extensive changes. --- src/game/Commands/CharacterCommands.cpp | 15 ++++++++++++ src/game/Handlers/MiscHandler.cpp | 32 ++++++++++++++++++++++++- src/game/HonorMgr.cpp | 8 +++++++ src/game/Objects/Player.cpp | 2 ++ src/game/Spells/SpellAuras.cpp | 16 +++++++++++++ 5 files changed, 72 insertions(+), 1 deletion(-) diff --git a/src/game/Commands/CharacterCommands.cpp b/src/game/Commands/CharacterCommands.cpp index f1824397134..a66b1f23f5c 100644 --- a/src/game/Commands/CharacterCommands.cpp +++ b/src/game/Commands/CharacterCommands.cpp @@ -2278,8 +2278,12 @@ bool ChatHandler::HandleHonorShow(char* /*args*/) uint32 today_dishonorable_kills = target->GetUInt16Value(PLAYER_FIELD_SESSION_KILLS, 1); uint32 yesterday_kills = target->GetUInt32Value(PLAYER_FIELD_YESTERDAY_KILLS); uint32 yesterday_honor = target->GetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION); +// World of Warcraft Client Patch 1.6.0 (2005-07-12) +// - There is a new "This Week" section of the Honor tab, which will display PvP accomplishments of the current week. +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 uint32 this_week_kills = target->GetUInt32Value(PLAYER_FIELD_THIS_WEEK_KILLS); uint32 this_week_honor = target->GetUInt32Value(PLAYER_FIELD_THIS_WEEK_CONTRIBUTION); +#endif uint32 last_week_kills = target->GetUInt32Value(PLAYER_FIELD_LAST_WEEK_KILLS); uint32 last_week_honor = target->GetUInt32Value(PLAYER_FIELD_LAST_WEEK_CONTRIBUTION); uint32 last_week_standing = target->GetUInt32Value(PLAYER_FIELD_LAST_WEEK_RANK); @@ -2360,7 +2364,9 @@ bool ChatHandler::HandleHonorShow(char* /*args*/) PSendSysMessage(LANG_RANK, target->GetName(), rank_name, honor_rank); PSendSysMessage(LANG_HONOR_TODAY, today_honorable_kills, today_dishonorable_kills); PSendSysMessage(LANG_HONOR_YESTERDAY, yesterday_kills, yesterday_honor); +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 PSendSysMessage(LANG_HONOR_THIS_WEEK, this_week_kills, this_week_honor); +#endif PSendSysMessage(LANG_HONOR_LAST_WEEK, last_week_kills, last_week_honor, last_week_standing); PSendSysMessage(LANG_HONOR_LIFE, target->GetHonorMgr().GetRankPoints(), honorable_kills, dishonorable_kills, highest_rank, hrank_name); @@ -2432,8 +2438,13 @@ bool ChatHandler::HandleModifyHonorCommand(char* args) { if (amount < 0 || amount > 255) return false; + +// World of Warcraft Client Patch 1.6.0 (2005-07-12) +// - There is now a progress bar on the Honor tab of your character window that displays how close you are to your next rank. +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 // rank points is sent to client with same size of uint8(255) for each rank target->SetByteValue(PLAYER_FIELD_BYTES2, PLAYER_FIELD_BYTES_2_OFFSET_HONOR_RANK_BAR, amount); +#endif } else if (hasStringAbbr(field, "rank")) { @@ -2447,10 +2458,14 @@ bool ChatHandler::HandleModifyHonorCommand(char* args) target->SetUInt32Value(PLAYER_FIELD_YESTERDAY_KILLS, (uint32)amount); else if (hasStringAbbr(field, "yesterdayhonor")) target->SetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION, (uint32)amount); +// World of Warcraft Client Patch 1.6.0 (2005-07-12) +// - There is a new "This Week" section of the Honor tab, which will display PvP accomplishments of the current week. +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 else if (hasStringAbbr(field, "thisweekkills")) target->SetUInt32Value(PLAYER_FIELD_THIS_WEEK_KILLS, (uint32)amount); else if (hasStringAbbr(field, "thisweekhonor")) target->SetUInt32Value(PLAYER_FIELD_THIS_WEEK_CONTRIBUTION, (uint32)amount); +#endif else if (hasStringAbbr(field, "lastweekkills")) target->SetUInt32Value(PLAYER_FIELD_LAST_WEEK_KILLS, (uint32)amount); else if (hasStringAbbr(field, "lastweekhonor")) diff --git a/src/game/Handlers/MiscHandler.cpp b/src/game/Handlers/MiscHandler.cpp index 5e385c50ae5..837baff96d8 100644 --- a/src/game/Handlers/MiscHandler.cpp +++ b/src/game/Handlers/MiscHandler.cpp @@ -1040,7 +1040,31 @@ void WorldSession::HandleInspectHonorStatsOpcode(WorldPacket& recv_data) if (_player->IsValidAttackTarget(pTarget)) return; - WorldPacket data(MSG_INSPECT_HONOR_STATS, (8 + 1 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 1)); + WorldPacket data(MSG_INSPECT_HONOR_STATS, ( + 8 + + 1 + + 4 + + 4 + + 4 +// World of Warcraft Client Patch 1.6.0 (2005-07-12) +// - There is a new "This Week" section of the Honor tab, which will display PvP accomplishments of the current week. +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 + + 4 +#endif + + 4 + + 4 + + 4 + + 4 +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 + + 4 +#endif + + 4 +// World of Warcraft Client Patch 1.6.0 (2005-07-12) +// - There is now a progress bar on the Honor tab of your character window that displays how close you are to your next rank. +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 + + 1 +#endif + )); // player guid data << guid; @@ -1063,11 +1087,13 @@ void WorldSession::HandleInspectHonorStatsOpcode(WorldPacket& recv_data) // Unknown (deprecated, last week dishonourable?) data << (uint16)0; +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 // This Week Honorable kills data << pTarget->GetUInt16Value(PLAYER_FIELD_THIS_WEEK_KILLS, 0); // Unknown (deprecated, this week dishonourable?) data << (uint16)0; +#endif // Lifetime Honorable Kills data << pTarget->GetUInt32Value(PLAYER_FIELD_LIFETIME_HONORBALE_KILLS); @@ -1081,14 +1107,18 @@ void WorldSession::HandleInspectHonorStatsOpcode(WorldPacket& recv_data) // Last Week Honor data << pTarget->GetUInt32Value(PLAYER_FIELD_LAST_WEEK_CONTRIBUTION); +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 // This Week Honor data << pTarget->GetUInt32Value(PLAYER_FIELD_THIS_WEEK_CONTRIBUTION); +#endif // Last Week Standing data << pTarget->GetUInt32Value(PLAYER_FIELD_LAST_WEEK_RANK); +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 // Rank progress bar data << (uint8)pTarget->GetByteValue(PLAYER_FIELD_BYTES2, PLAYER_FIELD_BYTES_2_OFFSET_HONOR_RANK_BAR); +#endif SendPacket(&data); } diff --git a/src/game/HonorMgr.cpp b/src/game/HonorMgr.cpp index 9f3a1b6b2b6..f1910d36b17 100644 --- a/src/game/HonorMgr.cpp +++ b/src/game/HonorMgr.cpp @@ -864,11 +864,15 @@ void HonorMgr::Update() // RANK (Patent) m_owner->SetByteValue(PLAYER_BYTES_3, PLAYER_BYTES_3_OFFSET_HONOR_RANK, m_rank.rank); +// World of Warcraft Client Patch 1.6.0 (2005-07-12) +// - There is now a progress bar on the Honor tab of your character window that displays how close you are to your next rank. +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 uint32 honorBar = uint32(m_rankPoints >= 0.0f ? m_rankPoints : -1 * m_rankPoints); honorBar = uint8(((honorBar - m_rank.minRP) / (m_rank.maxRP - m_rank.minRP)) * (m_rank.positive ? 255 : -255)); // PLAYER_FIELD_HONOR_BAR m_owner->SetByteValue(PLAYER_FIELD_BYTES2, PLAYER_FIELD_BYTES_2_OFFSET_HONOR_RANK_BAR, honorBar); +#endif // TODAY m_owner->SetUInt16Value(PLAYER_FIELD_SESSION_KILLS, 0, todayHK); @@ -878,9 +882,13 @@ void HonorMgr::Update() m_owner->SetUInt32Value(PLAYER_FIELD_YESTERDAY_KILLS, yesterdayKills); m_owner->SetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION, uint32(yesterdayCP > 0.0f ? yesterdayCP : 0.0f)); +// World of Warcraft Client Patch 1.6.0 (2005-07-12) +// - There is a new "This Week" section of the Honor tab, which will display PvP accomplishments of the current week. +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 // THIS WEEK m_owner->SetUInt32Value(PLAYER_FIELD_THIS_WEEK_KILLS, thisWeekKills); m_owner->SetUInt32Value(PLAYER_FIELD_THIS_WEEK_CONTRIBUTION, uint32(thisWeekCP > 0.0f ? thisWeekCP : 0.0f)); +#endif // LAST WEEK m_owner->SetUInt32Value(PLAYER_FIELD_LAST_WEEK_KILLS, m_lastWeekHK); diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index 6c698015be9..6eca06527a4 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -3756,8 +3756,10 @@ void Player::InitStatsForLevel(bool reapplyMods) // one form stealth modified bytes RemoveByteFlag(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, UNIT_VIS_FLAGS_ALL); +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 // restore if need some important flags SetUInt32Value(PLAYER_FIELD_BYTES2, 0); // flags empty by default +#endif if (reapplyMods) //reapply stats values only on .reset stats (level) command _ApplyAllStatBonuses(); diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index 4888e3d88ce..f4e093c2ef8 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -3847,8 +3847,12 @@ void Aura::HandleModStealth(bool apply, bool Real) if (Real) { target->SetByteFlag(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, UNIT_VIS_FLAGS_CREEP); + +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 if (target->GetTypeId() == TYPEID_PLAYER) target->SetByteFlag(PLAYER_FIELD_BYTES2, PLAYER_FIELD_BYTES_2_OFFSET_FLAGS, PLAYER_FIELD_BYTE2_STEALTH); +#endif + // apply only if not in GM invisibility (and overwrite invisibility state) if (target->GetVisibility() != VISIBILITY_OFF) { @@ -3886,8 +3890,12 @@ void Aura::HandleModStealth(bool apply, bool Real) if (target->GetVisibility() != VISIBILITY_OFF) { target->RemoveByteFlag(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, UNIT_VIS_FLAGS_CREEP); + +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 if (target->GetTypeId() == TYPEID_PLAYER) target->RemoveByteFlag(PLAYER_FIELD_BYTES2, PLAYER_FIELD_BYTES_2_OFFSET_FLAGS, PLAYER_FIELD_BYTE2_STEALTH); +#endif + // restore invisibility if any if (target->HasAuraType(SPELL_AURA_MOD_INVISIBILITY)) { @@ -3910,11 +3918,13 @@ void Aura::HandleInvisibility(bool apply, bool Real) target->m_invisibilityMask |= (1 << m_modifier.m_miscvalue); target->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_STEALTH_INVIS_CANCELS); +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 if (Real && target->GetTypeId() == TYPEID_PLAYER) { // apply glow vision target->SetByteFlag(PLAYER_FIELD_BYTES2, PLAYER_FIELD_BYTES_2_OFFSET_FLAGS, PLAYER_FIELD_BYTE2_INVISIBILITY_GLOW); } +#endif // apply only if not in GM invisibility and not stealth if (target->GetVisibility() == VISIBILITY_ON) @@ -3935,9 +3945,11 @@ void Aura::HandleInvisibility(bool apply, bool Real) // only at real aura remove and if not have different invisibility auras. if (Real && target->m_invisibilityMask == 0) { +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 // remove glow vision if (target->GetTypeId() == TYPEID_PLAYER) target->RemoveByteFlag(PLAYER_FIELD_BYTES2, PLAYER_FIELD_BYTES_2_OFFSET_FLAGS, PLAYER_FIELD_BYTE2_INVISIBILITY_GLOW); +#endif // apply only if not in GM invisibility & not stealthed while invisible if (target->GetVisibility() != VISIBILITY_OFF) { @@ -3969,10 +3981,14 @@ void Aura::HandleInvisibilityDetect(bool apply, bool Real) void Aura::HandleDetectAmore(bool apply, bool /*real*/) { +// World of Warcraft Client Patch 1.9.3 (2006-02-07) +// - Love is in the Air added. +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_9_4 if (!GetTarget()->IsPlayer()) return; GetTarget()->ApplyModByteFlag(PLAYER_FIELD_BYTES2, PLAYER_FIELD_BYTES_2_OFFSET_FLAGS, PLAYER_FIELD_BYTE2_DETECT_AMORE, apply); +#endif } void Aura::HandleAuraModRoot(bool apply, bool Real) From 8e35ae2152ba22e07c9a10d7e43463faab173b40 Mon Sep 17 00:00:00 2001 From: codestothestars Date: Sat, 26 Aug 2023 13:31:12 -0400 Subject: [PATCH 177/426] Enable using self-resurrection spells on 1.5 client (#2182) * Correct comment position * Enable self-resurrection spells for 1.5 client Fixes build errors related to self-resurrection and enables self- resurrection to work on the 1.5 client, per the 1.6 patch notes. > Self-resurrection spells show their name on the button in the release > spirit dialog. The update field PLAYER_SELF_RES_SPELL did not exist in patch 1.5, and so the ID of the self-resurrection spell was not sent to the client. Decompiled 1.5 client code shows that it instead checks the player flag 0x1000 (currently PLAYER_FLAGS_PARTIAL_PLAY_TIME) to determine whether the player can self-resurrect, meaning this flag was repurposed on or after patch 1.6. As this means we cannot store the spell ID in the player's update fields, for these clients we instead store the ID purely server-side to read after the player dies. --- src/game/Handlers/SpellHandler.cpp | 14 ++++++++++++++ src/game/Objects/Player.cpp | 28 +++++++++++++++++++++++++--- src/game/Objects/Player.h | 13 +++++++++++-- src/game/Objects/Unit.cpp | 24 ++++++++++++++++++++++-- 4 files changed, 72 insertions(+), 7 deletions(-) diff --git a/src/game/Handlers/SpellHandler.cpp b/src/game/Handlers/SpellHandler.cpp index 28fb6e2acf4..e34af6aa0a4 100644 --- a/src/game/Handlers/SpellHandler.cpp +++ b/src/game/Handlers/SpellHandler.cpp @@ -496,6 +496,9 @@ void WorldSession::HandleCancelChanneling(WorldPacket& recv_data) void WorldSession::HandleSelfResOpcode(WorldPacket& /*recv_data*/) { +// World of Warcraft Client Patch 1.6.0 (2005-07-12) +// - Self-resurrection spells show their name on the button in the release spirit dialog. +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 if (_player->GetUInt32Value(PLAYER_SELF_RES_SPELL)) { SpellEntry const* spellInfo = sSpellMgr.GetSpellEntry(_player->GetUInt32Value(PLAYER_SELF_RES_SPELL)); @@ -504,4 +507,15 @@ void WorldSession::HandleSelfResOpcode(WorldPacket& /*recv_data*/) _player->SetUInt32Value(PLAYER_SELF_RES_SPELL, 0); } +#else + if (_player->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_CAN_SELF_RESURRECT)) + { + SpellEntry const* spellInfo = sSpellMgr.GetSpellEntry(_player->GetResurrectionSpellId()); + if (spellInfo) + _player->CastSpell(_player, spellInfo, false); + + _player->SetResurrectionSpellId(0); + _player->RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_CAN_SELF_RESURRECT); + } +#endif } diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index 6eca06527a4..c27e35f06ae 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -701,6 +701,10 @@ Player::Player(WorldSession* session) : Unit(), m_lastFromClientCastedSpellID = 0; +#if SUPPORTED_CLIENT_BUILD < CLIENT_BUILD_1_6_1 + m_resurrectionSpellId = 0; +#endif + // Anti undermap m_undermapPosValid = false; session->InitCheatData(this); @@ -1933,12 +1937,18 @@ void Player::SetDeathState(DeathState s) if (ObjectGuid lootGuid = GetLootGuid()) GetSession()->DoLootRelease(lootGuid); +// World of Warcraft Client Patch 1.6.0 (2005-07-12) +// - Self-resurrection spells show their name on the button in the release spirit dialog. +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 // save value before aura remove in Unit::SetDeathState ressSpellId = GetUInt32Value(PLAYER_SELF_RES_SPELL); +#else + ressSpellId = GetResurrectionSpellId(); +#endif // passive spell if (!ressSpellId) - ressSpellId = GetResurrectionSpellId(); + ressSpellId = SelectResurrectionSpellId(); if (m_zoneScript) m_zoneScript->OnPlayerDeath(this); @@ -1948,12 +1958,24 @@ void Player::SetDeathState(DeathState s) // restore resurrection spell id for player after aura remove if (s == JUST_DIED && cur && ressSpellId) + { +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 SetUInt32Value(PLAYER_SELF_RES_SPELL, ressSpellId); +#else + SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_CAN_SELF_RESURRECT); + SetResurrectionSpellId(ressSpellId); +#endif + } if (IsAlive() && !cur) { - //clear aura case after resurrection by another way (spells will be applied before next death) + //clear self-resurrection state after resurrection by another way (spells will be applied before next death) +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 SetUInt32Value(PLAYER_SELF_RES_SPELL, 0); +#else + RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_CAN_SELF_RESURRECT); + SetResurrectionSpellId(0); +#endif UpdatePvPContested(false, true); } @@ -20012,7 +20034,7 @@ void Player::RemoveItemDependentAurasAndCasts(Item* pItem) } } -uint32 Player::GetResurrectionSpellId() const +uint32 Player::SelectResurrectionSpellId() const { // search priceless resurrection possibilities uint32 prio = 0; diff --git a/src/game/Objects/Player.h b/src/game/Objects/Player.h index e72535c6a5d..8f988e16f49 100644 --- a/src/game/Objects/Player.h +++ b/src/game/Objects/Player.h @@ -321,6 +321,9 @@ enum PlayerFlags PLAYER_FLAGS_PVP_DESIRED = 0x00000200, // Stores player's permanent PvP flag preference PLAYER_FLAGS_HIDE_HELM = 0x00000400, PLAYER_FLAGS_HIDE_CLOAK = 0x00000800, +#if SUPPORTED_CLIENT_BUILD < CLIENT_BUILD_1_6_1 + PLAYER_FLAGS_CAN_SELF_RESURRECT = 0x00001000, +#endif PLAYER_FLAGS_PARTIAL_PLAY_TIME = 0x00001000, // played long time PLAYER_FLAGS_NO_PLAY_TIME = 0x00002000, // played too long time PLAYER_FLAGS_UNK15 = 0x00004000, @@ -1501,7 +1504,9 @@ class Player final: public Unit SpellModList m_spellMods[MAX_SPELLMOD]; uint32 m_lastFromClientCastedSpellID; std::map m_itemSetEffects; - +#if SUPPORTED_CLIENT_BUILD < CLIENT_BUILD_1_6_1 + uint32 m_resurrectionSpellId; +#endif bool IsNeedCastPassiveLikeSpellAtLearn(SpellEntry const* spellInfo) const; void SendInitialSpells() const; bool AddSpell(uint32 spellId, bool active, bool learning, bool dependent, bool disabled); @@ -2263,7 +2268,11 @@ class Player final: public Unit void SpawnCorpseBones(); Corpse* CreateCorpse(); void KillPlayer(); - uint32 GetResurrectionSpellId() const; +#if SUPPORTED_CLIENT_BUILD < CLIENT_BUILD_1_6_1 + uint32 GetResurrectionSpellId() const { return m_resurrectionSpellId; } + void SetResurrectionSpellId(uint32 resurrectionSpellId) { m_resurrectionSpellId = resurrectionSpellId; } +#endif + uint32 SelectResurrectionSpellId() const; void ResurrectPlayer(float restore_percent, bool applySickness = false); void BuildPlayerRepop(); void RepopAtGraveyard(); diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index bd617e6b81b..ef2ac17c981 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -1107,9 +1107,17 @@ void Unit::Kill(Unit* pVictim, SpellEntry const* spellProto, bool durabilityLoss pVictim->SetHealth(0); DEBUG_FILTER_LOG(LOG_FILTER_DAMAGE, "SET JUST_DIED"); pVictim->SetDeathState(JUST_DIED); - // Nostalrius: Instantly send values update for health + +// World of Warcraft Client Patch 1.6.0 (2005-07-12) +// - Self-resurrection spells show their name on the button in the release spirit dialog. +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 if (pPlayerVictim && pVictim->GetUInt32Value(PLAYER_SELF_RES_SPELL)) pVictim->DirectSendPublicValueUpdate(PLAYER_SELF_RES_SPELL); +#else + if (pPlayerVictim && pVictim->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_CAN_SELF_RESURRECT)) + pVictim->DirectSendPublicValueUpdate(PLAYER_FLAGS); +#endif + // Nostalrius: Instantly send values update for health pVictim->DirectSendPublicValueUpdate(UNIT_FIELD_HEALTH); } else @@ -1135,15 +1143,27 @@ void Unit::Kill(Unit* pVictim, SpellEntry const* spellProto, bool durabilityLoss if (spiritOfRedemtionTalentImmune) { // save value before aura remove - uint32 ressSpellId = pVictim->GetUInt32Value(PLAYER_SELF_RES_SPELL); + uint32 ressSpellId = 0; +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 + ressSpellId = pVictim->GetUInt32Value(PLAYER_SELF_RES_SPELL); if (!ressSpellId) + ressSpellId = ((Player*)pVictim)->SelectResurrectionSpellId(); +#else + if (HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_CAN_SELF_RESURRECT)) ressSpellId = ((Player*)pVictim)->GetResurrectionSpellId(); +#endif //Remove all expected to remove at death auras (most important negative case like DoT or periodic triggers) pVictim->RemoveAllAurasOnDeath(); // restore for use at real death +#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_6_1 pVictim->SetUInt32Value(PLAYER_SELF_RES_SPELL, ressSpellId); +#else + pPlayerVictim->SetResurrectionSpellId(ressSpellId); + if (ressSpellId) + SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_CAN_SELF_RESURRECT); +#endif // FORM_SPIRITOFREDEMPTION and related auras pVictim->AddAura(27827, ADD_AURA_NO_OPTION, pVictim); From f137320f4eca539bc0899e1d2340c1e94a15eaee Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 1 Sep 2023 02:55:20 +0300 Subject: [PATCH 178/426] Only init warden after session is added to world. --- src/game/Protocol/WorldSocket.cpp | 2 +- src/game/World.cpp | 5 +++++ src/game/WorldSession.cpp | 5 +++-- src/game/WorldSession.h | 5 ++++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/game/Protocol/WorldSocket.cpp b/src/game/Protocol/WorldSocket.cpp index 1fb950c4cb7..ff7000063ed 100644 --- a/src/game/Protocol/WorldSocket.cpp +++ b/src/game/Protocol/WorldSocket.cpp @@ -314,9 +314,9 @@ int WorldSocket::HandleAuthSession(WorldPacket& recvPacket) m_Session->SetAccountFlags(accFlags); m_Session->SetOS(clientOs); m_Session->SetPlatform(clientPlatform); + m_Session->SetSessionKey(K); m_Session->LoadGlobalAccountData(); m_Session->LoadTutorialsData(); - m_Session->InitWarden(&K); // In case needed sometime the second arg is in microseconds 1 000 000 = 1 sec ACE_OS::sleep(ACE_Time_Value(0, 10000)); diff --git a/src/game/World.cpp b/src/game/World.cpp index 4ec41bd0c8c..ef98faecca4 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -315,6 +315,9 @@ void World::AddSession_(WorldSession* s) UpdateMaxSessionCounters(); + // Only init warden after session has been added + s->InitWarden(); + // Updates the population if (playerLimit > 0) { @@ -400,6 +403,7 @@ bool World::RemoveQueuedSession(WorldSession* sess) pop_sess->SetInQueue(false); pop_sess->m_idleTime = WorldTimer::getMSTime(); pop_sess->SendAuthWaitQue(0); + pop_sess->InitWarden(); m_QueuedSessions.pop_front(); // update iter to point first queued socket or end() if queue is empty now @@ -2683,6 +2687,7 @@ void World::UpdateSessions(uint32 diff) pop_sess->SetInQueue(false); pop_sess->m_idleTime = WorldTimer::getMSTime(); pop_sess->SendAuthWaitQue(0); + pop_sess->InitWarden(); m_QueuedSessions.pop_front(); } diff --git a/src/game/WorldSession.cpp b/src/game/WorldSession.cpp index 17e77b73674..742b62197e2 100644 --- a/src/game/WorldSession.cpp +++ b/src/game/WorldSession.cpp @@ -1088,9 +1088,10 @@ void WorldSession::ExecuteOpcode(OpcodeHandler const& opHandle, WorldPacket* pac LogUnprocessedTail(packet); } -void WorldSession::InitWarden(BigNumber* k) +void WorldSession::InitWarden() { - m_warden = sAnticheatMgr->CreateWardenFor(this, k); + MANGOS_ASSERT(!m_warden); + m_warden = sAnticheatMgr->CreateWardenFor(this, &m_sessionKey); } void WorldSession::InitCheatData(Player* pPlayer) diff --git a/src/game/WorldSession.h b/src/game/WorldSession.h index 521773896dd..440448cb588 100644 --- a/src/game/WorldSession.h +++ b/src/game/WorldSession.h @@ -31,6 +31,7 @@ #include "Chat/AbstractPlayer.h" #include "SniffFile.h" #include "ClientDefines.h" +#include "Auth/BigNumber.h" struct ItemPrototype; struct AuctionEntry; @@ -374,7 +375,8 @@ class WorldSession void SetBot(std::shared_ptr const& b) { m_bot = b; } // Warden / Anticheat - void InitWarden(BigNumber* K); + void InitWarden(); + void SetSessionKey(BigNumber const& sessionKey) { m_sessionKey = sessionKey; } Warden* GetWarden() const { return m_warden; } void InitCheatData(Player* pPlayer); MovementAnticheat* GetCheatData(); @@ -909,6 +911,7 @@ class WorldSession uint32 m_exhaustionState; uint32 m_charactersCount; uint32 m_characterMaxLevel; + BigNumber m_sessionKey; AccountData m_accountData[NUM_ACCOUNT_DATA_TYPES]; uint32 m_tutorials[ACCOUNT_TUTORIALS_COUNT]; TutorialDataState m_tutorialState; From 05d8f8a3b72e97bd5c806343eab967a053634762 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 3 Sep 2023 00:15:49 +0300 Subject: [PATCH 179/426] Fix Nature's Ally buff resetting pvp timer. --- src/game/Spells/Spell.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index aa50484f885..b0f3610c3cf 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -1771,6 +1771,7 @@ void Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask) } } else if (unit->IsPvP() && unit->IsCharmerOrOwnerPlayerOrPlayerItself() && + unit->GetCharmerOrOwnerOrOwnGuid() != pRealUnitCaster->GetObjectGuid() && IsFriendlyTarget(m_spellInfo->EffectImplicitTargetA[GetFirstEffectIndexInMask(effectMask)])) { if (Player* pPlayer = pRealUnitCaster->GetCharmerOrOwnerPlayerOrPlayerItself()) From 59f727035aded41e4f0d2fded63210091f76054c Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 4 Sep 2023 23:21:13 +0300 Subject: [PATCH 180/426] Implement creature group based selection of creature ids. --- sql/migrations/20230904190328_world.sql | 26 ++++ src/game/CreatureGroups.cpp | 156 +++++++++++++++++++++++- src/game/CreatureGroups.h | 8 +- src/game/Objects/Creature.cpp | 12 +- src/game/Objects/CreatureDefines.h | 4 + 5 files changed, 197 insertions(+), 9 deletions(-) create mode 100644 sql/migrations/20230904190328_world.sql diff --git a/sql/migrations/20230904190328_world.sql b/sql/migrations/20230904190328_world.sql new file mode 100644 index 00000000000..17c03567418 --- /dev/null +++ b/sql/migrations/20230904190328_world.sql @@ -0,0 +1,26 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230904190328'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230904190328'); +-- Add your query below. + + +-- Add table to allow limiting number of times a creature id is selected in group. +CREATE TABLE IF NOT EXISTS `creature_groups_entry_limit` ( + `leader_guid` int(11) unsigned NOT NULL, + `creature_id` int(11) unsigned NOT NULL, + `min_count` int(11) unsigned NOT NULL DEFAULT '0', + `max_count` int(11) unsigned NOT NULL DEFAULT '1', + PRIMARY KEY (`leader_guid`,`creature_id`) +) ENGINE=MyISAM; + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/CreatureGroups.cpp b/src/game/CreatureGroups.cpp index d7ec9f98308..3e748d4ecb1 100644 --- a/src/game/CreatureGroups.cpp +++ b/src/game/CreatureGroups.cpp @@ -303,6 +303,93 @@ void CreatureGroup::SaveToDb() m_originalLeaderGuid.GetCounter(), itr.first.GetCounter(), itr.second.followDistance, itr.second.followAngle, itr.second.memberFlags); } +uint32 CreatureGroup::ChooseCreatureId(ObjectGuid guid, CreatureData const* pData, Map* pMap) const +{ + if (m_entryLimits.empty()) + return pData->ChooseCreatureId(); + + ObjectGuidSet nonSpawnedMembers; // at first load of spawn the other members might not be loaded yet + std::map> currentLimits = m_entryLimits; + for (auto const& itr : m_members) + { + if (itr.first == guid) + continue; + + if (Creature* pOtherMember = pMap->GetCreature(itr.first)) + { + auto itr2 = currentLimits.find(pOtherMember->GetEntry()); + if (itr2 != currentLimits.end()) + { + --itr2->second.first; + --itr2->second.second; + } + } + else + nonSpawnedMembers.insert(itr.first); + } + if (guid != GetOriginalLeaderGuid()) + { + if (Creature* pLeader = pMap->GetCreature(GetOriginalLeaderGuid())) + { + auto itr2 = currentLimits.find(pLeader->GetEntry()); + if (itr2 != currentLimits.end()) + { + --itr2->second.first; + --itr2->second.second; + } + } + else + nonSpawnedMembers.insert(GetOriginalLeaderGuid()); + } + + std::set availableIds; + for (int i = 0; i < MAX_CREATURE_IDS_PER_SPAWN; ++i) + { + uint32 creatureId = pData->creature_id[i]; + if (!creatureId) + break; + + auto itr2 = currentLimits.find(creatureId); + if (itr2 == currentLimits.end() || itr2->second.second > 0) + availableIds.insert(creatureId); + } + + if (availableIds.empty()) + { + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "CREATURE GROUPS: Unable to select creature id for %s", guid.GetString().c_str()); + return pData->ChooseCreatureId(); + } + + // check minimum count + for (auto const& itr : currentLimits) + { + if (itr.second.first > 0 && availableIds.find(itr.first) != availableIds.end()) + { + if (nonSpawnedMembers.empty()) + return itr.first; + + uint32 otherSpawnsWithEntryCount = 0; + for (auto const& memberGuid : nonSpawnedMembers) + { + if (CreatureData const* pMemberData = sObjectMgr.GetCreatureData(memberGuid.GetCounter())) + { + if (pMemberData->HasCreatureId(itr.first)) + otherSpawnsWithEntryCount++; + } + } + + // Not enough unspawned points left to satisfy min limit. We must select this creature id. + if (otherSpawnsWithEntryCount <= itr.second.first) + return itr.first; + } + } + + uint32 selectedIndex = urand(0, availableIds.size() - 1); + auto itr3 = availableIds.begin(); + std::advance(itr3, selectedIndex); + return *itr3; +} + bool CreatureGroupMember::ComputeRelativePosition(float leaderAngle, float &x, float &y) const { x = cos(followAngle + leaderAngle) * followDistance; @@ -372,18 +459,79 @@ void CreatureGroupsManager::Load() } while (result->NextRow()); + result.reset(WorldDatabase.Query("SELECT `leader_guid`, `creature_id`, `min_count`, `max_count` FROM `creature_groups_entry_limit` ORDER BY `leader_guid`")); + + if (result) + { + Field* fields; + CreatureGroup *currentGroup = nullptr; + + do + { + fields = result->Fetch(); + + //Load group member data + ObjectGuid leaderGuid = ConvertDBGuid(fields[0].GetUInt32()); + uint32 creatureId = fields[1].GetUInt32(); + int32 minCount = fields[2].GetInt32(); + int32 maxCount = fields[3].GetInt32(); + + if (maxCount <= 0) + maxCount = INT_MAX; + else if (minCount > maxCount) + { + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "CREATURE GROUPS: Min count %u is bigger than Max count %u for id %u in group with leader guid %u", minCount, maxCount, creatureId, fields[0].GetUInt32()); + continue; + } + + if (!sObjectMgr.GetCreatureTemplate(creatureId)) + { + if (!sObjectMgr.IsExistingCreatureId(creatureId)) + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "CREATURE GROUPS: Bad creature id %u", creatureId); + continue; + } + + if (leaderGuid.IsEmpty()) + { + if (!sObjectMgr.IsExistingCreatureGuid(fields[0].GetUInt32())) + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "CREATURE GROUPS: Bad leader guid %u", fields[0].GetUInt32()); + } + else + { + if (!currentGroup || leaderGuid != currentGroup->GetOriginalLeaderGuid()) + { + currentGroup = nullptr; + for (const auto& itr : m_groups) + { + if (itr.first == leaderGuid) + { + currentGroup = itr.second; + break; + } + } + } + + if (!currentGroup) + { + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "CREATURE GROUPS: Bad leader guid %u", fields[0].GetUInt32()); + continue; + } + + currentGroup->m_entryLimits[creatureId] = std::make_pair(minCount, maxCount); + } + } while (result->NextRow()); + } + sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ""); sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ">> Loaded %u creature groups in %u ms", count, WorldTimer::getMSTime() - oldMSTime); } -void CreatureGroupsManager::LoadCreatureGroup(Creature* creature, CreatureGroup*& group) +void CreatureGroupsManager::LoadCreatureGroup(ObjectGuid guid, CreatureGroup*& group) { group = nullptr; - if (!creature->HasStaticDBSpawnData()) - return; for (const auto& itr : m_groups) { - if (itr.first == creature->GetObjectGuid() || itr.second->ContainsGuid(creature->GetObjectGuid())) + if (itr.first == guid || itr.second->ContainsGuid(guid)) { group = itr.second; break; diff --git a/src/game/CreatureGroups.h b/src/game/CreatureGroups.h index 999d468b6b8..a06137b400f 100644 --- a/src/game/CreatureGroups.h +++ b/src/game/CreatureGroups.h @@ -27,6 +27,7 @@ class Unit; class Creature; class CreatureGroup; +struct CreatureData; enum OptionFlags { @@ -50,8 +51,11 @@ struct CreatureGroupMember uint32 memberFlags = 0; }; +class CreatureGroupsManager; + class CreatureGroup { + friend class CreatureGroupsManager; public: CreatureGroup(ObjectGuid leader) : m_leaderGuid(leader), m_originalLeaderGuid(leader), m_options(0), m_assistGuard(false), m_respawnGuard(false), m_deleted(false), m_lastReachedWaypoint(0) { @@ -70,6 +74,7 @@ class CreatureGroup bool IsFormation() const { return m_options & OPTION_FORMATION_MOVE; } bool HasGroupFlag(uint32 flag) const { return m_options & flag; } void SetLastReachedWaypoint(uint32 point) { m_lastReachedWaypoint = point; } + uint32 ChooseCreatureId(ObjectGuid guid, CreatureData const* pData, Map* pMap) const; void OnMemberAttackStart(Creature* member, Unit* target); void OnMemberDied(Creature* member); @@ -87,6 +92,7 @@ class CreatureGroup bool m_deleted; uint32 m_lastReachedWaypoint; std::map m_members; + std::map> m_entryLimits; }; class CreatureGroupsManager @@ -97,7 +103,7 @@ class CreatureGroupsManager static CreatureGroupsManager* i = new CreatureGroupsManager(); return i; } - void LoadCreatureGroup(Creature* creature, CreatureGroup*& group); + void LoadCreatureGroup(ObjectGuid guid, CreatureGroup*& group); void RegisterNewGroup(CreatureGroup* group) { m_groups[group->GetOriginalLeaderGuid()] = group; } void Load(); void EraseCreatureGroup(ObjectGuid leaderGuid) { m_groups.erase(leaderGuid); } diff --git a/src/game/Objects/Creature.cpp b/src/game/Objects/Creature.cpp index 955baf53312..7cebacc236a 100644 --- a/src/game/Objects/Creature.cpp +++ b/src/game/Objects/Creature.cpp @@ -231,7 +231,9 @@ void Creature::AddToWorld() if (!IsInWorld() && GetObjectGuid().GetHigh() == HIGHGUID_UNIT) GetMap()->InsertObject(GetObjectGuid(), this); - sCreatureGroupsManager->LoadCreatureGroup(this, m_creatureGroup); + if (!m_creatureGroup && HasStaticDBSpawnData()) + sCreatureGroupsManager->LoadCreatureGroup(GetObjectGuid(), m_creatureGroup); + if (m_creatureGroup) { if (m_creatureGroup->IsFormation()) @@ -652,7 +654,7 @@ void Creature::Update(uint32 update_diff, uint32 diff) RemoveAllAuras(); // pick a new creature id if db spawn has multiple - uint32 const newCreatureId = m_creatureData ? m_creatureData->ChooseCreatureId() : m_originalEntry; + uint32 const newCreatureId = m_creatureData ? (m_creatureGroup ? m_creatureGroup->ChooseCreatureId(GetObjectGuid(), m_creatureData, GetMap()) : m_creatureData->ChooseCreatureId()) : m_originalEntry; if (newCreatureId != m_originalEntry) m_originalEntry = newCreatureId; @@ -1724,10 +1726,12 @@ bool Creature::LoadFromDB(uint32 guidlow, Map* map, bool force) if (!force && (data->spawn_flags & SPAWN_FLAG_DISABLED)) return false; + ObjectGuid fullGuid = ObjectGuid(HIGHGUID_UNIT, data->creature_id[0], guidlow); m_creatureData = data; m_creatureDataAddon = sObjectMgr.GetCreatureAddon(guidlow); + sCreatureGroupsManager->LoadCreatureGroup(fullGuid, m_creatureGroup); - uint32 const creatureId = data->ChooseCreatureId(); + uint32 const creatureId = m_creatureGroup ? m_creatureGroup->ChooseCreatureId(fullGuid, data, map) : data->ChooseCreatureId(); CreatureInfo const* cinfo = ObjectMgr::GetCreatureTemplate(creatureId); if (!cinfo) { @@ -1738,7 +1742,7 @@ bool Creature::LoadFromDB(uint32 guidlow, Map* map, bool force) GameEventCreatureData const* eventData = sGameEventMgr.GetCreatureUpdateDataForActiveEvent(guidlow); // Creature can be loaded already in map if grid has been unloaded while creature walk to another grid - if (map->GetCreature(cinfo->GetObjectGuid(guidlow))) + if (map->GetCreature(fullGuid)) return false; CreatureCreatePos pos(map, data->position.x, data->position.y, data->position.z, data->position.o); diff --git a/src/game/Objects/CreatureDefines.h b/src/game/Objects/CreatureDefines.h index 0f15d860992..a2be8437a66 100644 --- a/src/game/Objects/CreatureDefines.h +++ b/src/game/Objects/CreatureDefines.h @@ -335,6 +335,10 @@ struct CreatureData return creatureId; } + bool HasCreatureId(uint32 id) const + { + return std::find(creature_id.begin(), creature_id.end(), id) != creature_id.end(); + } uint32 GetCreatureIdCount() const { uint32 creatureIdCount = 0; From 850dcf88f7940c15b0621d3ecb21f3cd9d8a6f01 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 13 Sep 2023 14:35:14 +0300 Subject: [PATCH 181/426] Fix texts for quest The Horde Needs Spotted Yellowtail! --- sql/migrations/20230913113357_world.sql | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 sql/migrations/20230913113357_world.sql diff --git a/sql/migrations/20230913113357_world.sql b/sql/migrations/20230913113357_world.sql new file mode 100644 index 00000000000..20c89aeac44 --- /dev/null +++ b/sql/migrations/20230913113357_world.sql @@ -0,0 +1,21 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230913113357'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230913113357'); +-- Add your query below. + + +-- Fix texts for quest The Horde Needs Spotted Yellowtail!. +UPDATE `quest_template` SET `OfferRewardText`='Oh ya, this be the good stuff. I pack it up real nice so it not go to waste. Thanks be to you for helpin\' me out like this. I\'m thinkin\' you an A-number-one fisherman for all this spotted yellowtail. An if you happen to fish up and cook even more, you bring it to me here; I make sure everyone know you did!', `RequestItemsText`='Back so soon with the spotted yellowtail, $C? You rememba\' to cook it up nice? We not servin\' raw fish to the soldiers out in the hot desert sun, to be sure.' WHERE `entry`=8613; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 1acabe1376bf4ba36c265193588ef99410564cf1 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 13 Sep 2023 17:50:41 +0300 Subject: [PATCH 182/426] Restore old version of some STV quests. --- sql/migrations/20230913143410_world.sql | 61 +++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 sql/migrations/20230913143410_world.sql diff --git a/sql/migrations/20230913143410_world.sql b/sql/migrations/20230913143410_world.sql new file mode 100644 index 00000000000..b7db74e3a5e --- /dev/null +++ b/sql/migrations/20230913143410_world.sql @@ -0,0 +1,61 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230913143410'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230913143410'); +-- Add your query below. + + +-- Monogrammed Sash +DELETE FROM `item_template` WHERE `entry`=3985; +INSERT INTO `item_template` (`entry`, `patch`, `class`, `subclass`, `name`, `description`, `display_id`, `quality`, `flags`, `buy_count`, `buy_price`, `sell_price`, `inventory_type`, `allowable_class`, `allowable_race`, `item_level`, `required_level`, `required_skill`, `required_skill_rank`, `required_spell`, `required_honor_rank`, `required_city_rank`, `required_reputation_faction`, `required_reputation_rank`, `max_count`, `stackable`, `container_slots`, `stat_type1`, `stat_value1`, `stat_type2`, `stat_value2`, `stat_type3`, `stat_value3`, `stat_type4`, `stat_value4`, `stat_type5`, `stat_value5`, `stat_type6`, `stat_value6`, `stat_type7`, `stat_value7`, `stat_type8`, `stat_value8`, `stat_type9`, `stat_value9`, `stat_type10`, `stat_value10`, `delay`, `range_mod`, `ammo_type`, `dmg_min1`, `dmg_max1`, `dmg_type1`, `dmg_min2`, `dmg_max2`, `dmg_type2`, `dmg_min3`, `dmg_max3`, `dmg_type3`, `dmg_min4`, `dmg_max4`, `dmg_type4`, `dmg_min5`, `dmg_max5`, `dmg_type5`, `block`, `armor`, `holy_res`, `fire_res`, `nature_res`, `frost_res`, `shadow_res`, `arcane_res`, `spellid_1`, `spelltrigger_1`, `spellcharges_1`, `spellppmrate_1`, `spellcooldown_1`, `spellcategory_1`, `spellcategorycooldown_1`, `spellid_2`, `spelltrigger_2`, `spellcharges_2`, `spellppmrate_2`, `spellcooldown_2`, `spellcategory_2`, `spellcategorycooldown_2`, `spellid_3`, `spelltrigger_3`, `spellcharges_3`, `spellppmrate_3`, `spellcooldown_3`, `spellcategory_3`, `spellcategorycooldown_3`, `spellid_4`, `spelltrigger_4`, `spellcharges_4`, `spellppmrate_4`, `spellcooldown_4`, `spellcategory_4`, `spellcategorycooldown_4`, `spellid_5`, `spelltrigger_5`, `spellcharges_5`, `spellppmrate_5`, `spellcooldown_5`, `spellcategory_5`, `spellcategorycooldown_5`, `bonding`, `page_text`, `page_language`, `page_material`, `start_quest`, `lock_id`, `material`, `sheath`, `random_property`, `set_id`, `max_durability`, `area_bound`, `map_bound`, `duration`, `bag_family`, `disenchant_id`, `food_type`, `min_money_loot`, `max_money_loot`, `wrapped_gift`, `extra_flags`, `other_team_entry`) VALUES (3985, 0, 4, 1, 'Monogrammed Sash', '', 16829, 2, 2048, 1, 0, 0, 6, -1, -1, 40, 35, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 7, 5, 5, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 620, 0, 7, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1); +INSERT INTO `item_template` (`entry`, `patch`, `class`, `subclass`, `name`, `description`, `display_id`, `quality`, `flags`, `buy_count`, `buy_price`, `sell_price`, `inventory_type`, `allowable_class`, `allowable_race`, `item_level`, `required_level`, `required_skill`, `required_skill_rank`, `required_spell`, `required_honor_rank`, `required_city_rank`, `required_reputation_faction`, `required_reputation_rank`, `max_count`, `stackable`, `container_slots`, `stat_type1`, `stat_value1`, `stat_type2`, `stat_value2`, `stat_type3`, `stat_value3`, `stat_type4`, `stat_value4`, `stat_type5`, `stat_value5`, `stat_type6`, `stat_value6`, `stat_type7`, `stat_value7`, `stat_type8`, `stat_value8`, `stat_type9`, `stat_value9`, `stat_type10`, `stat_value10`, `delay`, `range_mod`, `ammo_type`, `dmg_min1`, `dmg_max1`, `dmg_type1`, `dmg_min2`, `dmg_max2`, `dmg_type2`, `dmg_min3`, `dmg_max3`, `dmg_type3`, `dmg_min4`, `dmg_max4`, `dmg_type4`, `dmg_min5`, `dmg_max5`, `dmg_type5`, `block`, `armor`, `holy_res`, `fire_res`, `nature_res`, `frost_res`, `shadow_res`, `arcane_res`, `spellid_1`, `spelltrigger_1`, `spellcharges_1`, `spellppmrate_1`, `spellcooldown_1`, `spellcategory_1`, `spellcategorycooldown_1`, `spellid_2`, `spelltrigger_2`, `spellcharges_2`, `spellppmrate_2`, `spellcooldown_2`, `spellcategory_2`, `spellcategorycooldown_2`, `spellid_3`, `spelltrigger_3`, `spellcharges_3`, `spellppmrate_3`, `spellcooldown_3`, `spellcategory_3`, `spellcategorycooldown_3`, `spellid_4`, `spelltrigger_4`, `spellcharges_4`, `spellppmrate_4`, `spellcooldown_4`, `spellcategory_4`, `spellcategorycooldown_4`, `spellid_5`, `spelltrigger_5`, `spellcharges_5`, `spellppmrate_5`, `spellcooldown_5`, `spellcategory_5`, `spellcategorycooldown_5`, `bonding`, `page_text`, `page_language`, `page_material`, `start_quest`, `lock_id`, `material`, `sheath`, `random_property`, `set_id`, `max_durability`, `area_bound`, `map_bound`, `duration`, `bag_family`, `disenchant_id`, `food_type`, `min_money_loot`, `max_money_loot`, `wrapped_gift`, `extra_flags`, `other_team_entry`) VALUES (3985, 7, 4, 1, 'Monogrammed Sash', '', 16829, 2, 2048, 1, 0, 0, 6, -1, -1, 40, 35, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 7, 5, 5, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8552, 0, 7, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1); + +-- The Captain's Chest +DELETE FROM `creature_questrelation` WHERE `quest` IN (614, 8551); +INSERT INTO `creature_questrelation` (`id`, `quest`, `patch_min`, `patch_max`) VALUES (2500, 614, 0, 6); +INSERT INTO `creature_questrelation` (`id`, `quest`, `patch_min`, `patch_max`) VALUES (2500, 8551, 7, 10); +DELETE FROM `creature_involvedrelation` WHERE `quest` IN (614, 8551); +INSERT INTO `creature_involvedrelation` (`id`, `quest`, `patch_min`, `patch_max`) VALUES (2500, 614, 0, 6); +INSERT INTO `creature_involvedrelation` (`id`, `quest`, `patch_min`, `patch_max`) VALUES (2500, 8551, 7, 10); + +-- The Monogrammed Sash +DELETE FROM `quest_template` WHERE `entry` IN (620, 8552); +INSERT INTO `quest_template` (`entry`, `patch`, `Method`, `ZoneOrSort`, `MinLevel`, `MaxLevel`, `QuestLevel`, `Type`, `RequiredClasses`, `RequiredRaces`, `RequiredSkill`, `RequiredSkillValue`, `RequiredCondition`, `RepObjectiveFaction`, `RepObjectiveValue`, `RequiredMinRepFaction`, `RequiredMinRepValue`, `RequiredMaxRepFaction`, `RequiredMaxRepValue`, `SuggestedPlayers`, `LimitTime`, `QuestFlags`, `SpecialFlags`, `PrevQuestId`, `NextQuestId`, `ExclusiveGroup`, `BreadcrumbForQuestId`, `NextQuestInChain`, `SrcItemId`, `SrcItemCount`, `SrcSpell`, `Title`, `Details`, `Objectives`, `OfferRewardText`, `RequestItemsText`, `EndText`, `ObjectiveText1`, `ObjectiveText2`, `ObjectiveText3`, `ObjectiveText4`, `ReqItemId1`, `ReqItemId2`, `ReqItemId3`, `ReqItemId4`, `ReqItemCount1`, `ReqItemCount2`, `ReqItemCount3`, `ReqItemCount4`, `ReqSourceId1`, `ReqSourceId2`, `ReqSourceId3`, `ReqSourceId4`, `ReqSourceCount1`, `ReqSourceCount2`, `ReqSourceCount3`, `ReqSourceCount4`, `ReqCreatureOrGOId1`, `ReqCreatureOrGOId2`, `ReqCreatureOrGOId3`, `ReqCreatureOrGOId4`, `ReqCreatureOrGOCount1`, `ReqCreatureOrGOCount2`, `ReqCreatureOrGOCount3`, `ReqCreatureOrGOCount4`, `ReqSpellCast1`, `ReqSpellCast2`, `ReqSpellCast3`, `ReqSpellCast4`, `RewChoiceItemId1`, `RewChoiceItemId2`, `RewChoiceItemId3`, `RewChoiceItemId4`, `RewChoiceItemId5`, `RewChoiceItemId6`, `RewChoiceItemCount1`, `RewChoiceItemCount2`, `RewChoiceItemCount3`, `RewChoiceItemCount4`, `RewChoiceItemCount5`, `RewChoiceItemCount6`, `RewItemId1`, `RewItemId2`, `RewItemId3`, `RewItemId4`, `RewItemCount1`, `RewItemCount2`, `RewItemCount3`, `RewItemCount4`, `RewRepFaction1`, `RewRepFaction2`, `RewRepFaction3`, `RewRepFaction4`, `RewRepFaction5`, `RewRepValue1`, `RewRepValue2`, `RewRepValue3`, `RewRepValue4`, `RewRepValue5`, `RewXP`, `RewOrReqMoney`, `RewMoneyMaxLevel`, `RewSpell`, `RewSpellCast`, `RewMailTemplateId`, `RewMailDelaySecs`, `RewMailMoney`, `PointMapId`, `PointX`, `PointY`, `PointOpt`, `DetailsEmote1`, `DetailsEmote2`, `DetailsEmote3`, `DetailsEmote4`, `DetailsEmoteDelay1`, `DetailsEmoteDelay2`, `DetailsEmoteDelay3`, `DetailsEmoteDelay4`, `IncompleteEmote`, `CompleteEmote`, `OfferRewardEmote1`, `OfferRewardEmote2`, `OfferRewardEmote3`, `OfferRewardEmote4`, `OfferRewardEmoteDelay1`, `OfferRewardEmoteDelay2`, `OfferRewardEmoteDelay3`, `OfferRewardEmoteDelay4`, `StartScript`, `CompleteScript`) VALUES (620, 0, 2, 33, 35, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3985, 1, 0, 'The Monogrammed Sash', 'This fine sash has the letters "HS" embroidered along its hem.', 'Return the Monogrammed Sash to its owner.', 'You recovered my sash? Then...you must have killed Mok\'rash the sea giant! Hooray!$B$BI\'m glad the scurvy villain\'s dead - Mok\'rash was one of three sea giants who smashed my ships and killed my crew.$B$BThree times.$B$BYou are a $c of worth, $N.', 'Hello. Do you have business with me?', '', '', NULL, NULL, NULL, 3985, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 87, 0, 0, 0, 50, -250, 0, 0, 0, 2350, 0, 1440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +INSERT INTO `quest_template` (`entry`, `patch`, `Method`, `ZoneOrSort`, `MinLevel`, `MaxLevel`, `QuestLevel`, `Type`, `RequiredClasses`, `RequiredRaces`, `RequiredSkill`, `RequiredSkillValue`, `RequiredCondition`, `RepObjectiveFaction`, `RepObjectiveValue`, `RequiredMinRepFaction`, `RequiredMinRepValue`, `RequiredMaxRepFaction`, `RequiredMaxRepValue`, `SuggestedPlayers`, `LimitTime`, `QuestFlags`, `SpecialFlags`, `PrevQuestId`, `NextQuestId`, `ExclusiveGroup`, `BreadcrumbForQuestId`, `NextQuestInChain`, `SrcItemId`, `SrcItemCount`, `SrcSpell`, `Title`, `Details`, `Objectives`, `OfferRewardText`, `RequestItemsText`, `EndText`, `ObjectiveText1`, `ObjectiveText2`, `ObjectiveText3`, `ObjectiveText4`, `ReqItemId1`, `ReqItemId2`, `ReqItemId3`, `ReqItemId4`, `ReqItemCount1`, `ReqItemCount2`, `ReqItemCount3`, `ReqItemCount4`, `ReqSourceId1`, `ReqSourceId2`, `ReqSourceId3`, `ReqSourceId4`, `ReqSourceCount1`, `ReqSourceCount2`, `ReqSourceCount3`, `ReqSourceCount4`, `ReqCreatureOrGOId1`, `ReqCreatureOrGOId2`, `ReqCreatureOrGOId3`, `ReqCreatureOrGOId4`, `ReqCreatureOrGOCount1`, `ReqCreatureOrGOCount2`, `ReqCreatureOrGOCount3`, `ReqCreatureOrGOCount4`, `ReqSpellCast1`, `ReqSpellCast2`, `ReqSpellCast3`, `ReqSpellCast4`, `RewChoiceItemId1`, `RewChoiceItemId2`, `RewChoiceItemId3`, `RewChoiceItemId4`, `RewChoiceItemId5`, `RewChoiceItemId6`, `RewChoiceItemCount1`, `RewChoiceItemCount2`, `RewChoiceItemCount3`, `RewChoiceItemCount4`, `RewChoiceItemCount5`, `RewChoiceItemCount6`, `RewItemId1`, `RewItemId2`, `RewItemId3`, `RewItemId4`, `RewItemCount1`, `RewItemCount2`, `RewItemCount3`, `RewItemCount4`, `RewRepFaction1`, `RewRepFaction2`, `RewRepFaction3`, `RewRepFaction4`, `RewRepFaction5`, `RewRepValue1`, `RewRepValue2`, `RewRepValue3`, `RewRepValue4`, `RewRepValue5`, `RewXP`, `RewOrReqMoney`, `RewMoneyMaxLevel`, `RewSpell`, `RewSpellCast`, `RewMailTemplateId`, `RewMailDelaySecs`, `RewMailMoney`, `PointMapId`, `PointX`, `PointY`, `PointOpt`, `DetailsEmote1`, `DetailsEmote2`, `DetailsEmote3`, `DetailsEmote4`, `DetailsEmoteDelay1`, `DetailsEmoteDelay2`, `DetailsEmoteDelay3`, `DetailsEmoteDelay4`, `IncompleteEmote`, `CompleteEmote`, `OfferRewardEmote1`, `OfferRewardEmote2`, `OfferRewardEmote3`, `OfferRewardEmote4`, `OfferRewardEmoteDelay1`, `OfferRewardEmoteDelay2`, `OfferRewardEmoteDelay3`, `OfferRewardEmoteDelay4`, `StartScript`, `CompleteScript`) VALUES (8552, 7, 2, 33, 35, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3985, 1, 0, 'The Monogrammed Sash', 'This fine sash has the letters "HS" embroidered along its hem.', 'Return the Monogrammed Sash to its owner.', 'You recovered my sash? Then...you must have killed Mok\'rash the sea giant! Hooray!$B$BI\'m glad the scurvy villain\'s dead - Mok\'rash was one of three sea giants who smashed my ships and killed my crew.$B$BThree times.$B$BYou are a $c of worth, $N.', 'Hello. Do you have business with me?', '', '', '', '', '', 3985, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 87, 0, 0, 0, 50, -250, 0, 0, 0, 2350, 0, 1440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +DELETE FROM `creature_involvedrelation` WHERE `quest` IN (620, 8552); +INSERT INTO `creature_involvedrelation` (`id`, `quest`, `patch_min`, `patch_max`) VALUES (2500, 620, 0, 6); +INSERT INTO `creature_involvedrelation` (`id`, `quest`, `patch_min`, `patch_max`) VALUES (2500, 8552, 7, 10); + +-- The Captain's Cutlass +DELETE FROM `quest_template` WHERE `entry` IN (615, 8553); +INSERT INTO `quest_template` (`entry`, `patch`, `Method`, `ZoneOrSort`, `MinLevel`, `MaxLevel`, `QuestLevel`, `Type`, `RequiredClasses`, `RequiredRaces`, `RequiredSkill`, `RequiredSkillValue`, `RequiredCondition`, `RepObjectiveFaction`, `RepObjectiveValue`, `RequiredMinRepFaction`, `RequiredMinRepValue`, `RequiredMaxRepFaction`, `RequiredMaxRepValue`, `SuggestedPlayers`, `LimitTime`, `QuestFlags`, `SpecialFlags`, `PrevQuestId`, `NextQuestId`, `ExclusiveGroup`, `BreadcrumbForQuestId`, `NextQuestInChain`, `SrcItemId`, `SrcItemCount`, `SrcSpell`, `Title`, `Details`, `Objectives`, `OfferRewardText`, `RequestItemsText`, `EndText`, `ObjectiveText1`, `ObjectiveText2`, `ObjectiveText3`, `ObjectiveText4`, `ReqItemId1`, `ReqItemId2`, `ReqItemId3`, `ReqItemId4`, `ReqItemCount1`, `ReqItemCount2`, `ReqItemCount3`, `ReqItemCount4`, `ReqSourceId1`, `ReqSourceId2`, `ReqSourceId3`, `ReqSourceId4`, `ReqSourceCount1`, `ReqSourceCount2`, `ReqSourceCount3`, `ReqSourceCount4`, `ReqCreatureOrGOId1`, `ReqCreatureOrGOId2`, `ReqCreatureOrGOId3`, `ReqCreatureOrGOId4`, `ReqCreatureOrGOCount1`, `ReqCreatureOrGOCount2`, `ReqCreatureOrGOCount3`, `ReqCreatureOrGOCount4`, `ReqSpellCast1`, `ReqSpellCast2`, `ReqSpellCast3`, `ReqSpellCast4`, `RewChoiceItemId1`, `RewChoiceItemId2`, `RewChoiceItemId3`, `RewChoiceItemId4`, `RewChoiceItemId5`, `RewChoiceItemId6`, `RewChoiceItemCount1`, `RewChoiceItemCount2`, `RewChoiceItemCount3`, `RewChoiceItemCount4`, `RewChoiceItemCount5`, `RewChoiceItemCount6`, `RewItemId1`, `RewItemId2`, `RewItemId3`, `RewItemId4`, `RewItemCount1`, `RewItemCount2`, `RewItemCount3`, `RewItemCount4`, `RewRepFaction1`, `RewRepFaction2`, `RewRepFaction3`, `RewRepFaction4`, `RewRepFaction5`, `RewRepValue1`, `RewRepValue2`, `RewRepValue3`, `RewRepValue4`, `RewRepValue5`, `RewXP`, `RewOrReqMoney`, `RewMoneyMaxLevel`, `RewSpell`, `RewSpellCast`, `RewMailTemplateId`, `RewMailDelaySecs`, `RewMailMoney`, `PointMapId`, `PointX`, `PointY`, `PointOpt`, `DetailsEmote1`, `DetailsEmote2`, `DetailsEmote3`, `DetailsEmote4`, `DetailsEmoteDelay1`, `DetailsEmoteDelay2`, `DetailsEmoteDelay3`, `DetailsEmoteDelay4`, `IncompleteEmote`, `CompleteEmote`, `OfferRewardEmote1`, `OfferRewardEmote2`, `OfferRewardEmote3`, `OfferRewardEmote4`, `OfferRewardEmoteDelay1`, `OfferRewardEmoteDelay2`, `OfferRewardEmoteDelay3`, `OfferRewardEmoteDelay4`, `StartScript`, `CompleteScript`) VALUES (615, 0, 2, 33, 35, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 620, 0, 0, 0, 618, 0, 0, 0, 'The Captain\'s Cutlass', 'After I lost my first ship to those giants, I bought another. Named Smotts\' Revenge, I filled it with supplies and crew, and set out to find the villains. I found them, but...they beat me. They smashed Smotts\' Revenge, killed my second crew and set me on another lifeboat.$B$BThis time another of the giants, Negolash, stole my cutlass.$B$BFace Negolash and bring me my cutlass!$B$BSpeak with Sprogger. He was my cook on the Smotts\' Revenge, and survived the last attack. He can help you find the giant.', 'Speak with Sprogger.', 'Hello hello, $N. Captain told me you\'re going after Negolash, eh?', NULL, '', '', '', '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 470, 0, 270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +INSERT INTO `quest_template` (`entry`, `patch`, `Method`, `ZoneOrSort`, `MinLevel`, `MaxLevel`, `QuestLevel`, `Type`, `RequiredClasses`, `RequiredRaces`, `RequiredSkill`, `RequiredSkillValue`, `RequiredCondition`, `RepObjectiveFaction`, `RepObjectiveValue`, `RequiredMinRepFaction`, `RequiredMinRepValue`, `RequiredMaxRepFaction`, `RequiredMaxRepValue`, `SuggestedPlayers`, `LimitTime`, `QuestFlags`, `SpecialFlags`, `PrevQuestId`, `NextQuestId`, `ExclusiveGroup`, `BreadcrumbForQuestId`, `NextQuestInChain`, `SrcItemId`, `SrcItemCount`, `SrcSpell`, `Title`, `Details`, `Objectives`, `OfferRewardText`, `RequestItemsText`, `EndText`, `ObjectiveText1`, `ObjectiveText2`, `ObjectiveText3`, `ObjectiveText4`, `ReqItemId1`, `ReqItemId2`, `ReqItemId3`, `ReqItemId4`, `ReqItemCount1`, `ReqItemCount2`, `ReqItemCount3`, `ReqItemCount4`, `ReqSourceId1`, `ReqSourceId2`, `ReqSourceId3`, `ReqSourceId4`, `ReqSourceCount1`, `ReqSourceCount2`, `ReqSourceCount3`, `ReqSourceCount4`, `ReqCreatureOrGOId1`, `ReqCreatureOrGOId2`, `ReqCreatureOrGOId3`, `ReqCreatureOrGOId4`, `ReqCreatureOrGOCount1`, `ReqCreatureOrGOCount2`, `ReqCreatureOrGOCount3`, `ReqCreatureOrGOCount4`, `ReqSpellCast1`, `ReqSpellCast2`, `ReqSpellCast3`, `ReqSpellCast4`, `RewChoiceItemId1`, `RewChoiceItemId2`, `RewChoiceItemId3`, `RewChoiceItemId4`, `RewChoiceItemId5`, `RewChoiceItemId6`, `RewChoiceItemCount1`, `RewChoiceItemCount2`, `RewChoiceItemCount3`, `RewChoiceItemCount4`, `RewChoiceItemCount5`, `RewChoiceItemCount6`, `RewItemId1`, `RewItemId2`, `RewItemId3`, `RewItemId4`, `RewItemCount1`, `RewItemCount2`, `RewItemCount3`, `RewItemCount4`, `RewRepFaction1`, `RewRepFaction2`, `RewRepFaction3`, `RewRepFaction4`, `RewRepFaction5`, `RewRepValue1`, `RewRepValue2`, `RewRepValue3`, `RewRepValue4`, `RewRepValue5`, `RewXP`, `RewOrReqMoney`, `RewMoneyMaxLevel`, `RewSpell`, `RewSpellCast`, `RewMailTemplateId`, `RewMailDelaySecs`, `RewMailMoney`, `PointMapId`, `PointX`, `PointY`, `PointOpt`, `DetailsEmote1`, `DetailsEmote2`, `DetailsEmote3`, `DetailsEmote4`, `DetailsEmoteDelay1`, `DetailsEmoteDelay2`, `DetailsEmoteDelay3`, `DetailsEmoteDelay4`, `IncompleteEmote`, `CompleteEmote`, `OfferRewardEmote1`, `OfferRewardEmote2`, `OfferRewardEmote3`, `OfferRewardEmote4`, `OfferRewardEmoteDelay1`, `OfferRewardEmoteDelay2`, `OfferRewardEmoteDelay3`, `OfferRewardEmoteDelay4`, `StartScript`, `CompleteScript`) VALUES (8553, 7, 2, 33, 35, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 8552, 0, 0, 0, 8554, 0, 0, 0, 'The Captain\'s Cutlass', 'After I lost my first ship to those giants, I bought another. Named Smotts\' Revenge, I filled it with supplies and crew, and set out to find the villains. I found them, but...they beat me. They smashed Smotts\' Revenge, killed my second crew and set me on another lifeboat.$B$BThis time another of the giants, Negolash, stole my cutlass.$B$BFace Negolash and bring me my cutlass!$B$BSpeak with Sprogger. He was my cook on the Smotts\' Revenge, and survived the last attack. He can help you find the giant.', 'Speak with Sprogger.', 'Hello hello, $N. Captain told me you\'re going after Negolash, eh?', NULL, '', '', '', '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 470, 0, 270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +DELETE FROM `creature_involvedrelation` WHERE `quest` IN (615, 8553); +INSERT INTO `creature_involvedrelation` (`id`, `quest`, `patch_min`, `patch_max`) VALUES (2594, 615, 0, 6); +INSERT INTO `creature_involvedrelation` (`id`, `quest`, `patch_min`, `patch_max`) VALUES (2594, 8553, 7, 10); +DELETE FROM `creature_questrelation` WHERE `quest` IN (615, 8553); +INSERT INTO `creature_questrelation` (`id`, `quest`, `patch_min`, `patch_max`) VALUES (2500, 615, 0, 6); +INSERT INTO `creature_questrelation` (`id`, `quest`, `patch_min`, `patch_max`) VALUES (2500, 8553, 7, 10); + +-- Facing Negolash +DELETE FROM `quest_template` WHERE `entry` IN (618, 8554); +INSERT INTO `quest_template` (`entry`, `patch`, `Method`, `ZoneOrSort`, `MinLevel`, `MaxLevel`, `QuestLevel`, `Type`, `RequiredClasses`, `RequiredRaces`, `RequiredSkill`, `RequiredSkillValue`, `RequiredCondition`, `RepObjectiveFaction`, `RepObjectiveValue`, `RequiredMinRepFaction`, `RequiredMinRepValue`, `RequiredMaxRepFaction`, `RequiredMaxRepValue`, `SuggestedPlayers`, `LimitTime`, `QuestFlags`, `SpecialFlags`, `PrevQuestId`, `NextQuestId`, `ExclusiveGroup`, `BreadcrumbForQuestId`, `NextQuestInChain`, `SrcItemId`, `SrcItemCount`, `SrcSpell`, `Title`, `Details`, `Objectives`, `OfferRewardText`, `RequestItemsText`, `EndText`, `ObjectiveText1`, `ObjectiveText2`, `ObjectiveText3`, `ObjectiveText4`, `ReqItemId1`, `ReqItemId2`, `ReqItemId3`, `ReqItemId4`, `ReqItemCount1`, `ReqItemCount2`, `ReqItemCount3`, `ReqItemCount4`, `ReqSourceId1`, `ReqSourceId2`, `ReqSourceId3`, `ReqSourceId4`, `ReqSourceCount1`, `ReqSourceCount2`, `ReqSourceCount3`, `ReqSourceCount4`, `ReqCreatureOrGOId1`, `ReqCreatureOrGOId2`, `ReqCreatureOrGOId3`, `ReqCreatureOrGOId4`, `ReqCreatureOrGOCount1`, `ReqCreatureOrGOCount2`, `ReqCreatureOrGOCount3`, `ReqCreatureOrGOCount4`, `ReqSpellCast1`, `ReqSpellCast2`, `ReqSpellCast3`, `ReqSpellCast4`, `RewChoiceItemId1`, `RewChoiceItemId2`, `RewChoiceItemId3`, `RewChoiceItemId4`, `RewChoiceItemId5`, `RewChoiceItemId6`, `RewChoiceItemCount1`, `RewChoiceItemCount2`, `RewChoiceItemCount3`, `RewChoiceItemCount4`, `RewChoiceItemCount5`, `RewChoiceItemCount6`, `RewItemId1`, `RewItemId2`, `RewItemId3`, `RewItemId4`, `RewItemCount1`, `RewItemCount2`, `RewItemCount3`, `RewItemCount4`, `RewRepFaction1`, `RewRepFaction2`, `RewRepFaction3`, `RewRepFaction4`, `RewRepFaction5`, `RewRepValue1`, `RewRepValue2`, `RewRepValue3`, `RewRepValue4`, `RewRepValue5`, `RewXP`, `RewOrReqMoney`, `RewMoneyMaxLevel`, `RewSpell`, `RewSpellCast`, `RewMailTemplateId`, `RewMailDelaySecs`, `RewMailMoney`, `PointMapId`, `PointX`, `PointY`, `PointOpt`, `DetailsEmote1`, `DetailsEmote2`, `DetailsEmote3`, `DetailsEmote4`, `DetailsEmoteDelay1`, `DetailsEmoteDelay2`, `DetailsEmoteDelay3`, `DetailsEmoteDelay4`, `IncompleteEmote`, `CompleteEmote`, `OfferRewardEmote1`, `OfferRewardEmote2`, `OfferRewardEmote3`, `OfferRewardEmote4`, `OfferRewardEmoteDelay1`, `OfferRewardEmoteDelay2`, `OfferRewardEmoteDelay3`, `OfferRewardEmoteDelay4`, `StartScript`, `CompleteScript`) VALUES (618, 0, 2, 33, 37, 0, 50, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 615, -619, 0, 0, 0, 0, 0, 0, 'Facing Negolash', 'Negolash is a hungry giant.$B$BWhen the giants destroyed our ship, Negolash went straight for my kitchen. He wasn\'t hungry for crew like the other giants. Negolash wanted wine...and my Barbecued Buzzard Wings. They\'re my specialty, and I had to go all the way to the Badlands for the recipe!$B$BIf you want to lure the giant, then get some wine and a heap of buzzard wings. Put them in our old lifeboat, southeast of here along the coast. When Negolash smells all that food, he\'ll come for sure!', 'Bring 10 Barbecued Buzzard Wings and 5 bottles of Junglevine Wine to Captain Smotts\' Lifeboat.$B$BKill Negolash, and bring Smotts\' Cutlass to Captain Smotts in Stranglethorn.', 'You got my cutlass from Negolash! I can\'t believe my fortune, $N! Meeting you has turned my luck to the better, make no mistake there!$B$BThank you! And if I ever get a new ship and you\'re looking to sail the seas, you would be my honored guest.', 'Did you get my cutlass, $N?', '', '', '', '', '', 3935, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4130, 0, 0, 0, 1, 0, 0, 0, 21, 87, 0, 0, 0, 200, -1000, 0, 0, 0, 7100, 0, 4200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +INSERT INTO `quest_template` (`entry`, `patch`, `Method`, `ZoneOrSort`, `MinLevel`, `MaxLevel`, `QuestLevel`, `Type`, `RequiredClasses`, `RequiredRaces`, `RequiredSkill`, `RequiredSkillValue`, `RequiredCondition`, `RepObjectiveFaction`, `RepObjectiveValue`, `RequiredMinRepFaction`, `RequiredMinRepValue`, `RequiredMaxRepFaction`, `RequiredMaxRepValue`, `SuggestedPlayers`, `LimitTime`, `QuestFlags`, `SpecialFlags`, `PrevQuestId`, `NextQuestId`, `ExclusiveGroup`, `BreadcrumbForQuestId`, `NextQuestInChain`, `SrcItemId`, `SrcItemCount`, `SrcSpell`, `Title`, `Details`, `Objectives`, `OfferRewardText`, `RequestItemsText`, `EndText`, `ObjectiveText1`, `ObjectiveText2`, `ObjectiveText3`, `ObjectiveText4`, `ReqItemId1`, `ReqItemId2`, `ReqItemId3`, `ReqItemId4`, `ReqItemCount1`, `ReqItemCount2`, `ReqItemCount3`, `ReqItemCount4`, `ReqSourceId1`, `ReqSourceId2`, `ReqSourceId3`, `ReqSourceId4`, `ReqSourceCount1`, `ReqSourceCount2`, `ReqSourceCount3`, `ReqSourceCount4`, `ReqCreatureOrGOId1`, `ReqCreatureOrGOId2`, `ReqCreatureOrGOId3`, `ReqCreatureOrGOId4`, `ReqCreatureOrGOCount1`, `ReqCreatureOrGOCount2`, `ReqCreatureOrGOCount3`, `ReqCreatureOrGOCount4`, `ReqSpellCast1`, `ReqSpellCast2`, `ReqSpellCast3`, `ReqSpellCast4`, `RewChoiceItemId1`, `RewChoiceItemId2`, `RewChoiceItemId3`, `RewChoiceItemId4`, `RewChoiceItemId5`, `RewChoiceItemId6`, `RewChoiceItemCount1`, `RewChoiceItemCount2`, `RewChoiceItemCount3`, `RewChoiceItemCount4`, `RewChoiceItemCount5`, `RewChoiceItemCount6`, `RewItemId1`, `RewItemId2`, `RewItemId3`, `RewItemId4`, `RewItemCount1`, `RewItemCount2`, `RewItemCount3`, `RewItemCount4`, `RewRepFaction1`, `RewRepFaction2`, `RewRepFaction3`, `RewRepFaction4`, `RewRepFaction5`, `RewRepValue1`, `RewRepValue2`, `RewRepValue3`, `RewRepValue4`, `RewRepValue5`, `RewXP`, `RewOrReqMoney`, `RewMoneyMaxLevel`, `RewSpell`, `RewSpellCast`, `RewMailTemplateId`, `RewMailDelaySecs`, `RewMailMoney`, `PointMapId`, `PointX`, `PointY`, `PointOpt`, `DetailsEmote1`, `DetailsEmote2`, `DetailsEmote3`, `DetailsEmote4`, `DetailsEmoteDelay1`, `DetailsEmoteDelay2`, `DetailsEmoteDelay3`, `DetailsEmoteDelay4`, `IncompleteEmote`, `CompleteEmote`, `OfferRewardEmote1`, `OfferRewardEmote2`, `OfferRewardEmote3`, `OfferRewardEmote4`, `OfferRewardEmoteDelay1`, `OfferRewardEmoteDelay2`, `OfferRewardEmoteDelay3`, `OfferRewardEmoteDelay4`, `StartScript`, `CompleteScript`) VALUES (8554, 7, 2, 33, 35, 0, 50, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 8553, -619, 0, 0, 0, 0, 0, 0, 'Facing Negolash', 'Negolash is a hungry giant.$B$BWhen the giants destroyed our ship, Negolash went straight for my kitchen. He wasn\'t hungry for crew like the other giants. Negolash wanted wine...and my Barbecued Buzzard Wings. They\'re my specialty, and I had to go all the way to the Badlands for the recipe!$B$BIf you want to lure the giant, then get some wine and a heap of buzzard wings. Put them in our old lifeboat, southeast of here along the coast. When Negolash smells all that food, he\'ll come for sure!', 'Bring 10 Barbecued Buzzard Wings and 5 bottles of Junglevine Wine to Captain Smotts\' Lifeboat.$B$BKill Negolash, and bring Smotts\' Cutlass to Captain Smotts in Stranglethorn.', 'You got my cutlass from Negolash! I can\'t believe my fortune, $N! Meeting you has turned my luck to the better, make no mistake there!$B$BThank you! And if I ever get a new ship and you\'re looking to sail the seas, you would be my honored guest.', 'Did you get my cutlass, $N?', '', '', '', '', '', 3935, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4130, 0, 0, 0, 1, 0, 0, 0, 21, 87, 0, 0, 0, 200, -1000, 0, 0, 0, 7100, 0, 4200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +DELETE FROM `creature_involvedrelation` WHERE `quest` IN (618, 8554); +INSERT INTO `creature_involvedrelation` (`id`, `quest`, `patch_min`, `patch_max`) VALUES (2500, 618, 0, 6); +INSERT INTO `creature_involvedrelation` (`id`, `quest`, `patch_min`, `patch_max`) VALUES (2500, 8554, 7, 10); +DELETE FROM `creature_questrelation` WHERE `quest` IN (618, 8554); +INSERT INTO `creature_questrelation` (`id`, `quest`, `patch_min`, `patch_max`) VALUES (2594, 618, 0, 6); +INSERT INTO `creature_questrelation` (`id`, `quest`, `patch_min`, `patch_max`) VALUES (2594, 8554, 7, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From f840413d743d41c4a12578ca54a44c444160fb03 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 13 Sep 2023 17:59:07 +0300 Subject: [PATCH 183/426] Add some missing quest greetings. --- sql/migrations/20230913145819_world.sql | 29 +++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 sql/migrations/20230913145819_world.sql diff --git a/sql/migrations/20230913145819_world.sql b/sql/migrations/20230913145819_world.sql new file mode 100644 index 00000000000..b168f7d10c3 --- /dev/null +++ b/sql/migrations/20230913145819_world.sql @@ -0,0 +1,29 @@ +SET NAMES utf8; +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230913145819'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230913145819'); +-- Add your query below. + + +SET NAMES utf8; +INSERT INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `emote_id`, `emote_delay`) VALUES (2500, 0, 'They\'re out there! I can hear them at night, laughing. Oh, they\'ll pay! They...will...pay!!', '저 밖에 있어요! 밤에 웃는 소리가 들립니다. 아, 지불할 거예요! 그들은... 지불할 것입니다!!', 'Ils sont dehors ! Je peux les entendre la nuit rire. Oh, ils paieront ! Ils... paieront... !!', 'Sie sind da draußen! Ich kann sie nachts lachen hören. Oh, sie werden bezahlen! Sie werden bezahlen!!', '他们就在那里! 晚上我能听到他们的笑声。 哦,他们会付钱的! 他们……会……付出代价!', '他們就在那裡! 晚上我能聽到他們的笑聲。 哦,他們會付錢的! 他們……會……付出代價!', '¡Están ahí fuera! Puedo oírlos por la noche, riendo. ¡Oh, pagarán! ¡¡Ellos...pagarán!!', NULL, 'Они там! Я слышу их смех по ночам. О, они заплатят! Они... заплатят!!', 0, 0); +INSERT INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `emote_id`, `emote_delay`) VALUES (2934, 0, 'Knowledge is both tool and weapon to those with the will to use it.', '지식은 그것을 사용하려는 의지를 가진 사람들에게 도구이자 무기입니다.', 'La connaissance est à la fois un outil et une arme pour ceux qui ont la volonté de l’utiliser.', 'Wissen ist sowohl Werkzeug als auch Waffe für diejenigen, die es nutzen wollen.', '对于那些愿意使用知识的人来说,知识既是工具也是武器。', '對於那些願意使用知識的人來說,知識既是工具也是武器。', 'El conocimiento es a la vez herramienta y arma para quienes tienen la voluntad de utilizarlo.', NULL, 'Знания являются одновременно инструментом и оружием для тех, кто хочет их использовать.', 1, 0); +INSERT INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `emote_id`, `emote_delay`) VALUES (4048, 0, 'You look as though you have traveled from afar, $r.', '$r님, 마치 먼 곳에서 여행 온 것 같군요.', 'Vous avez l\'air d\'avoir voyagé de loin, $r.', 'Du siehst aus, als wärst du von weit her gereist, $r.', '你看起来就像是从远方来的一样,$r。', '你看起來就像是從遠方來的一樣,$r。', 'Parece que has viajado desde lejos, $r.', NULL, 'Ты выглядишь так, будто прилетел издалека, $r.', 2, 0); +INSERT INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `emote_id`, `emote_delay`) VALUES (5878, 0, 'My vision has darkened, but there are many kinds of sight...', '시력이 어두워졌지만 시력은 여러 가지가 있습니다 ...', 'Ma vision s\'est obscurcie, mais il existe de nombreux types de vision...', 'Meine Sicht hat sich verdunkelt, aber es gibt viele Arten von Sicht ...', '我的视野变暗了,但是视线有很多种……', '我的視野變暗了,但是視線有很多種……', 'Mi visión se ha oscurecido, pero hay muchas clases de visión...', NULL, 'В глазах моём потемнело, но есть много видов зрения...', 0, 0); +INSERT INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `emote_id`, `emote_delay`) VALUES (6142, 0, 'The craft of the night elves ranges beyond the woods and its denizens. We know much of the earth below, and of the metals within it.', '나이트 엘프의 기술은 숲과 그 거주민 너머에까지 미치고 있습니다. 우리는 아래의 지구와 그 안에 있는 금속에 대해 많이 알고 있습니다.', 'L\'artisanat des elfes de la nuit s\'étend au-delà des bois et de leurs habitants. Nous connaissons une grande partie de la terre et des métaux qu’elle contient.', 'Das Handwerk der Nachtelfen reicht über den Wald und seine Bewohner hinaus. Wir wissen viel über die Erde darunter und die Metalle darin.', '暗夜精灵的技艺超出了森林及其居民的范围。 我们对下面的地球及其内部的金属了解很多。', '暗夜精靈的技藝超出了森林及其居民的範圍。 我們對下面的地球及其內部的金屬了解很多。', 'El oficio de los elfos de la noche va más allá de los bosques y sus habitantes. Sabemos mucho de la tierra que hay debajo y de los metales que contiene.', NULL, 'Ремесло ночных эльфов выходит за рамки леса и его обитателей. Мы многое знаем о земле под ней и о металлах, находящихся в ней.', 1, 0); +INSERT INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `emote_id`, `emote_delay`) VALUES (6166, 0, 'You think you have guts? Well I have something for you if you do...', '당신은 용기가 있다고 생각하십니까? 그렇다면 당신에게 드릴 말씀이 있습니다...', 'Tu penses que tu as du cran ? Eh bien, j\'ai quelque chose pour toi si tu le fais...', 'Glaubst du, du hast Mut? Nun, ich habe etwas für dich, wenn du es tust ...', '你觉得你有胆量吗? 好吧,如果你愿意的话,我有东西给你......', '你覺得你有膽量嗎? 好吧,如果你願意的話,我有東西給你......', '¿Crees que tienes agallas? Bueno, tengo algo para ti si lo haces...', NULL, 'Думаешь, у тебя есть смелость? Ну, у меня есть кое-что для тебя, если хочешь...', 1, 0); +INSERT INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `emote_id`, `emote_delay`) VALUES (11036, 0, 'Through knowledge, may we find salvation.', '지식을 통해 우리가 구원을 찾을 수 있기를 바랍니다.', 'Grâce à la connaissance, puissions-nous trouver le salut.', 'Mögen wir durch Wissen Erlösung finden.', '通过知识,愿我们找到救赎。', '通過知識,願我們找到救贖。', 'Que a través del conocimiento podamos encontrar la salvación.', NULL, 'Через знание да обретем мы спасение.', 1, 0); +INSERT INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `emote_id`, `emote_delay`) VALUES (14567, 0, 'These Mithril Order guys are sissies.', '이 미스릴 기사단 놈들은 계집애들이야.', 'Ces gars de l’Ordre du Mithril sont des poules mouillées.', 'Diese Jungs vom Mithril-Orden sind Weicheier.', '这些秘银教团的家伙都是胆小鬼。', '這些秘銀教團的傢伙都是膽小鬼。', 'Estos chicos de Mithril Order son unos maricas.', NULL, 'Эти ребята из Мифрилового Ордена - бабы.', 1, 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 4619124291b282870813410fccfc52fd2b17201b Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 16 Sep 2023 13:03:08 +0300 Subject: [PATCH 184/426] Unsummon guardians when Isalien evades. --- sql/migrations/20230916100208_world.sql | 29 +++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 sql/migrations/20230916100208_world.sql diff --git a/sql/migrations/20230916100208_world.sql b/sql/migrations/20230916100208_world.sql new file mode 100644 index 00000000000..ac365cb3c58 --- /dev/null +++ b/sql/migrations/20230916100208_world.sql @@ -0,0 +1,29 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230916100208'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230916100208'); +-- Add your query below. + + +-- Events list for Isalien +DELETE FROM `creature_ai_events` WHERE `creature_id`=16097; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1609701, 16097, 0, 4, 0, 100, 0, 0, 0, 0, 0, 1609701, 0, 0, 'Isalien - Remove Auras on Aggro'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1609702, 16097, 0, 11, 0, 100, 1, 0, 0, 0, 0, 1609702, 0, 0, 'Isalien - Yell Text and Cast Immune All and Ghost Visual on Spawn'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1609703, 16097, 0, 2, 0, 100, 0, 90, 85, 0, 0, 1609703, 0, 0, 'Isalien - Cast Call Pet at 90% HP'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1609704, 16097, 0, 6, 0, 100, 0, 0, 0, 0, 0, 1609704, 0, 0, 'Isalien - Say Text on Death'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1609705, 16097, 0, 7, 0, 100, 0, 0, 0, 0, 0, 1609705, 0, 0, 'Isalien - Remove Guardians on Evade'); +DELETE FROM `creature_ai_scripts` WHERE `id`=1609705; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1609705, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Isalien - Remove Guardians'); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 060a4e0feebe28d80ea21323aa1a36e980376cd2 Mon Sep 17 00:00:00 2001 From: Gamemechanic Date: Sat, 16 Sep 2023 12:56:45 +0200 Subject: [PATCH 185/426] Fix Elemental sharpening stones applied to an offhand weapon. (#2167) --- src/game/Objects/Player.cpp | 4 +--- src/game/Objects/UnitDefines.h | 1 - src/game/Spells/SpellAuras.cpp | 1 - src/game/StatSystem.cpp | 2 -- 4 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index c27e35f06ae..fa0c2709d0b 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -7524,10 +7524,8 @@ void Player::_ApplyWeaponDependentAuraCritMod(Item* item, WeaponAttackType attac switch (attackType) { case BASE_ATTACK: - mod = CRIT_PERCENTAGE; - break; case OFF_ATTACK: - mod = OFFHAND_CRIT_PERCENTAGE; + mod = CRIT_PERCENTAGE; break; case RANGED_ATTACK: mod = RANGED_CRIT_PERCENTAGE; diff --git a/src/game/Objects/UnitDefines.h b/src/game/Objects/UnitDefines.h index 8dc39acd249..693e0ff8c28 100644 --- a/src/game/Objects/UnitDefines.h +++ b/src/game/Objects/UnitDefines.h @@ -363,7 +363,6 @@ enum BaseModGroup { CRIT_PERCENTAGE, RANGED_CRIT_PERCENTAGE, - OFFHAND_CRIT_PERCENTAGE, SHIELD_BLOCK_VALUE, BASEMOD_END }; diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index f4e093c2ef8..81f2a456d60 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -5191,7 +5191,6 @@ void Aura::HandleAuraModCritPercent(bool apply, bool Real) if (GetSpellProto()->EquippedItemClass == -1) { ((Player*)target)->HandleBaseModValue(CRIT_PERCENTAGE, FLAT_MOD, m_modifier.m_amount, apply); - ((Player*)target)->HandleBaseModValue(OFFHAND_CRIT_PERCENTAGE, FLAT_MOD, m_modifier.m_amount, apply); ((Player*)target)->HandleBaseModValue(RANGED_CRIT_PERCENTAGE, FLAT_MOD, m_modifier.m_amount, apply); } else diff --git a/src/game/StatSystem.cpp b/src/game/StatSystem.cpp index 6cb51f39c42..e4e657767ba 100644 --- a/src/game/StatSystem.cpp +++ b/src/game/StatSystem.cpp @@ -525,11 +525,9 @@ void Player::UpdateAllCritPercentages() float value = GetMeleeCritFromAgility(); SetBaseModValue(CRIT_PERCENTAGE, PCT_MOD, value); - SetBaseModValue(OFFHAND_CRIT_PERCENTAGE, PCT_MOD, value); SetBaseModValue(RANGED_CRIT_PERCENTAGE, PCT_MOD, value); UpdateCritPercentage(BASE_ATTACK); - UpdateCritPercentage(OFF_ATTACK); UpdateCritPercentage(RANGED_ATTACK); } From ffc93e2c9f6858b932bd95c50fa84a8a2ae5d0c8 Mon Sep 17 00:00:00 2001 From: coolzoom Date: Sun, 17 Sep 2023 16:56:50 +0800 Subject: [PATCH 186/426] CI: Fix openssl binary path (#2196) information from Daribon: windows build curently failing in actions since openssl can't be found it now installs it at C:\Program Files\OpenSSL-Win64\ while it tries to find it in C:\Program Files\OpenSSL\ --- .github/workflows/dev-release.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/dev-release.yml b/.github/workflows/dev-release.yml index 7f5d2a14a74..ce27e69ab1e 100644 --- a/.github/workflows/dev-release.yml +++ b/.github/workflows/dev-release.yml @@ -83,8 +83,8 @@ jobs: copy ${{github.workspace}}/ACE_wrappers/lib/ACE.dll ${{github.workspace}}/bin/Release/ACE.dll copy c:/mysql/lib/libmysql.dll ${{github.workspace}}/bin/Release/libmysql.dll - copy "c:/Program Files/OpenSSL/bin/libssl-1_1-x64.dll" ${{github.workspace}}/bin/Release/libssl-1_1-x64.dll - copy "c:/Program Files/OpenSSL/bin/libcrypto-1_1-x64.dll" ${{github.workspace}}/bin/Release/libcrypto-1_1-x64.dll + copy "c:/Program Files/OpenSSL-Win64/bin/libssl-1_1-x64.dll" ${{github.workspace}}/bin/Release/libssl-1_1-x64.dll + copy "c:/Program Files/OpenSSL-Win64/bin/libcrypto-1_1-x64.dll" ${{github.workspace}}/bin/Release/libcrypto-1_1-x64.dll copy ${{github.workspace}}/dep/windows/lib/x64_release/libeay32.dll ${{github.workspace}}/bin/Release/libeay32.dll 7z a -tzip ${{env.ARCHIVE_FILENAME}} Release @@ -126,8 +126,8 @@ jobs: copy ${{github.workspace}}/ACE_wrappers/lib/ACE.dll ${{github.workspace}}/bin/Release/ACE.dll copy c:/mysql/lib/libmysql.dll ${{github.workspace}}/bin/Release/libmysql.dll - copy "c:/Program Files/OpenSSL/bin/libssl-1_1-x64.dll" ${{github.workspace}}/bin/Release/libssl-1_1-x64.dll - copy "c:/Program Files/OpenSSL/bin/libcrypto-1_1-x64.dll" ${{github.workspace}}/bin/Release/libcrypto-1_1-x64.dll + copy "c:/Program Files/OpenSSL-Win64/bin/libssl-1_1-x64.dll" ${{github.workspace}}/bin/Release/libssl-1_1-x64.dll + copy "c:/Program Files/OpenSSL-Win64/bin/libcrypto-1_1-x64.dll" ${{github.workspace}}/bin/Release/libcrypto-1_1-x64.dll copy ${{github.workspace}}/dep/windows/lib/x64_release/libeay32.dll ${{github.workspace}}/bin/Release/libeay32.dll 7z a -tzip ${{env.ARCHIVE_FILENAME}} Release From 70c42c4a931a021eb6c1c7dce07191a55e005dbd Mon Sep 17 00:00:00 2001 From: codestothestars Date: Sun, 17 Sep 2023 05:00:44 -0400 Subject: [PATCH 187/426] Fix gossip menu options for client version 1.5 (#2193) * Fix gossip menu options for client version 1.5 Decompiled 1.5 client code shows that... 1. The icon is read as a 32-bit integer instead of 8-bit. 2. The "coded" field is not read at all, indicating that that field was added in patch 1.6. This lines up with the Blue Murloc Egg being likely the first item obtainable by gossip-code in late 2005. Before this change, opening a gossip menu with options would crash the client. * Correct version check style --- src/game/GossipDef.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/game/GossipDef.cpp b/src/game/GossipDef.cpp index a27bf3a4a15..a9803984101 100644 --- a/src/game/GossipDef.cpp +++ b/src/game/GossipDef.cpp @@ -163,8 +163,12 @@ void PlayerMenu::SendGossipMenu(uint32 textId, ObjectGuid objectGuid) constexpr size_t gossipPartSize = sizeof(uint32) + // index +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_5_1 sizeof(uint8) + // icon sizeof(uint8) + // coded +#else + sizeof(uint32) + // icon +#endif 128; // message (average) constexpr size_t questPartSize = @@ -182,8 +186,12 @@ void PlayerMenu::SendGossipMenu(uint32 textId, ObjectGuid objectGuid) { GossipMenuItem const& gItem = mGossipMenu.GetItem(iI); data << uint32(iI); +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_5_1 data << uint8(gItem.m_gIcon); data << uint8(gItem.m_gCoded); // makes pop up box password +#else + data << uint32(gItem.m_gIcon); +#endif data << gItem.m_gMessage; // text for gossip item, max 0x800 } From 171e919bb32a06a762bbb19bdf3c59c65cc957cb Mon Sep 17 00:00:00 2001 From: jackpoz Date: Mon, 18 Sep 2023 19:53:59 +0300 Subject: [PATCH 188/426] [Core/MMAP] Reduce chances of breaking tile connections. https://github.com/cmangos/mangos-classic/commit/b4da8e2ca935d45695d2b996739843f43f902a85 --- contrib/mmap/src/MapBuilder.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/contrib/mmap/src/MapBuilder.cpp b/contrib/mmap/src/MapBuilder.cpp index 08c374541c6..4d357fd4d73 100644 --- a/contrib/mmap/src/MapBuilder.cpp +++ b/contrib/mmap/src/MapBuilder.cpp @@ -680,10 +680,15 @@ namespace MMAP Tile liquidsTile; // Calculate the per tile bounding box. - tileCfg.bmin[0] = config.bmin[0] + float(x * config.tileSize - config.borderSize) * config.cs; - tileCfg.bmin[2] = config.bmin[2] + float(y * config.tileSize - config.borderSize) * config.cs; - tileCfg.bmax[0] = config.bmin[0] + float((x + 1) * config.tileSize + config.borderSize) * config.cs; - tileCfg.bmax[2] = config.bmin[2] + float((y + 1) * config.tileSize + config.borderSize) * config.cs; + tileCfg.bmin[0] = config.bmin[0] + x * float(config.tileSize * config.cs); + tileCfg.bmin[2] = config.bmin[2] + y * float(config.tileSize * config.cs); + tileCfg.bmax[0] = config.bmin[0] + (x + 1) * float(config.tileSize * config.cs); + tileCfg.bmax[2] = config.bmin[2] + (y + 1) * float(config.tileSize * config.cs); + + tileCfg.bmin[0] -= tileCfg.borderSize * tileCfg.cs; + tileCfg.bmin[2] -= tileCfg.borderSize * tileCfg.cs; + tileCfg.bmax[0] += tileCfg.borderSize * tileCfg.cs; + tileCfg.bmax[2] += tileCfg.borderSize * tileCfg.cs; // NOSTALRIUS - MMAPS TILE GENERATION /// 1. Alloc heightfield for walkable areas From deb66bd4f5aec9b18c04e9e23a8e701a544cba0a Mon Sep 17 00:00:00 2001 From: codestothestars Date: Wed, 20 Sep 2023 05:27:53 -0400 Subject: [PATCH 189/426] Fix Orb of Deception for patch 1.6 and below (#2190) Before patch 1.7, Orb of Deception was applied as a Dummy aura instead of a Transform aura. Otherwise the spell is nearly identical, so we simply reuse the existing Transform aura handling. --- src/game/Spells/SpellAuras.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index 81f2a456d60..723e84821bc 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -1786,6 +1786,8 @@ void Aura::HandleAuraDummy(bool apply, bool Real) m_modifier.periodictime = 5 * IN_MILLISECONDS; // expected to tick with 5 sec period return; } + case 16739: // Orb of Deception (before patch 1.7) + return HandleAuraTransform(apply, Real); case 21827: // Frostwolf Aura DND case 21863: // Alterac Ram Aura DND { @@ -1966,6 +1968,8 @@ void Aura::HandleAuraDummy(bool apply, bool Real) return; } + case 16739: // Orb of Deception (before patch 1.7) + return HandleAuraTransform(apply, Real); case 20939: // Undying Soul - Dummy aura used for Unstuck command { if (m_removeMode == AURA_REMOVE_BY_EXPIRE) From 15b22ded429e508bfcac4fdb24324e96a49da5ae Mon Sep 17 00:00:00 2001 From: Gamemechanic Date: Wed, 20 Sep 2023 11:32:51 +0200 Subject: [PATCH 190/426] Minor refactor of filterLedgeSpans (#2187) --- contrib/mmap/src/MapBuilder.cpp | 78 ++++++++++++++++----------------- 1 file changed, 37 insertions(+), 41 deletions(-) diff --git a/contrib/mmap/src/MapBuilder.cpp b/contrib/mmap/src/MapBuilder.cpp index 4d357fd4d73..49572c93863 100644 --- a/contrib/mmap/src/MapBuilder.cpp +++ b/contrib/mmap/src/MapBuilder.cpp @@ -16,7 +16,6 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include #include #include "MMapCommon.h" #include "MapBuilder.h" @@ -120,33 +119,31 @@ bool IsModelArea(int area) } void filterLedgeSpans(const int walkableHeight, const int walkableClimbTransition, const int walkableClimbTerrain, - rcHeightfield& solid) + rcHeightfield& heightfield) { - const int w = solid.width; - const int h = solid.height; + const int w = heightfield.width; + const int h = heightfield.height; const int MAX_HEIGHT = 0xffff; - std::list nullSpans; - std::list steepSlopes; for (int y = 0; y < h; ++y) { for (int x = 0; x < w; ++x) { - for (rcSpan* s = solid.spans[x + y*w]; s; s = s->next) + for (rcSpan* span = heightfield.spans[x + y*w]; span; span = span->next) { // Skip non walkable spans. - if (s->area == RC_NULL_AREA) + if (span->area == RC_NULL_AREA) continue; - const int bot = (int)(s->smax); - const int top = s->next ? (int)(s->next->smin) : MAX_HEIGHT; + const int bot = (int)(span->smax); + const int top = span->next ? (int)(span->next->smin) : MAX_HEIGHT; // Find neighbours minimum height. - int minh = MAX_HEIGHT; + int minNeighborHeight = MAX_HEIGHT; // Min and max height of accessible neighbours. - int asmin = s->smax; - int asmax = s->smax; + int accessibleNeighborMinHeight = span->smax; + int accessibleNeighborMaxHeight = span->smax; bool hasAllNbTerrain = true; bool hasAllNbModel = true; @@ -157,35 +154,36 @@ void filterLedgeSpans(const int walkableHeight, const int walkableClimbTransitio // Skip neighbours which are out of bounds. if (dx < 0 || dy < 0 || dx >= w || dy >= h) { - //minh = rcMin(minh, -walkableClimbTerrain - bot); + //TODO: Figure out why this is commented out. + //minNeighborHeight = rcMin(minNeighborHeight , -walkableClimbTerrain - bot); continue; } // From minus infinity to the first span. - rcSpan* ns = solid.spans[dx + dy*w]; + rcSpan* neighborSpan = heightfield.spans[dx + dy*w]; int nbot = -walkableClimbTerrain; - int ntop = ns ? (int)ns->smin : MAX_HEIGHT; + int ntop = neighborSpan ? (int)neighborSpan->smin : MAX_HEIGHT; // Skip neighbour if the gap between the spans is too small. if (rcMin(top,ntop) - rcMax(bot,nbot) > walkableHeight) - minh = rcMin(minh, nbot - bot); + minNeighborHeight = rcMin(minNeighborHeight, nbot - bot); // Rest of the spans. - for (ns = solid.spans[dx + dy*w]; ns; ns = ns->next) + for (neighborSpan = heightfield.spans[dx + dy*w]; neighborSpan; neighborSpan = neighborSpan->next) { - if (ns->area == RC_NULL_AREA) + if (neighborSpan->area == RC_NULL_AREA) continue; - nbot = (int)ns->smax; - ntop = ns->next ? (int)ns->next->smin : MAX_HEIGHT; + nbot = (int)neighborSpan->smax; + ntop = neighborSpan->next ? (int)neighborSpan->next->smin : MAX_HEIGHT; // Skip neightbour if the gap between the spans is too small. if (rcMin(top,ntop) - rcMax(bot,nbot) > walkableHeight) { - minh = rcMin(minh, nbot - bot); + minNeighborHeight = rcMin(minNeighborHeight, nbot - bot); // Find min/max accessible neighbour height. if (rcAbs(nbot - bot) <= walkableClimbTerrain) { - if (nbot < asmin) asmin = nbot; - if (nbot > asmax) asmax = nbot; - if (!IsModelArea(ns->area)) + if (nbot < accessibleNeighborMinHeight) accessibleNeighborMinHeight = nbot; + if (nbot > accessibleNeighborMaxHeight) accessibleNeighborMaxHeight = nbot; + if (!IsModelArea(neighborSpan->area)) hasAllNbModel = false; else hasAllNbTerrain = false; @@ -196,31 +194,27 @@ void filterLedgeSpans(const int walkableHeight, const int walkableClimbTransitio // The current span is close to a ledge if the drop to any // neighbour span is less than the walkableClimb. - bool modelToTerrainTransition = (IsModelArea(s->area) && !hasAllNbModel) || (!IsModelArea(s->area) && !hasAllNbTerrain); + bool modelToTerrainTransition = (IsModelArea(span->area) && !hasAllNbModel) || (!IsModelArea(span->area) && !hasAllNbTerrain); int currentMaxClimb = walkableClimbTerrain; // Model -> Terrain or Terrain -> Model if (modelToTerrainTransition) currentMaxClimb = walkableClimbTransition; - if (minh < -currentMaxClimb) - nullSpans.push_front(s); + if (minNeighborHeight < -currentMaxClimb) + span->area = RC_NULL_AREA; // If the difference between all neighbours is too large, // we are at steep slope, mark the span as it - else if ((asmax - asmin) > currentMaxClimb) + else if ((accessibleNeighborMaxHeight - accessibleNeighborMinHeight) > currentMaxClimb) { if (modelToTerrainTransition) - nullSpans.push_front(s); + span->area = RC_NULL_AREA; else - steepSlopes.push_front(s); + span->area = AREA_STEEP_SLOPE; } } } } - for (std::list::iterator it = nullSpans.begin(); it != nullSpans.end(); ++it) - (*it)->area = RC_NULL_AREA; - for (std::list::iterator it = steepSlopes.begin(); it != steepSlopes.end(); ++it) - (*it)->area = AREA_STEEP_SLOPE; } void from_json(const json& j, rcConfig& config) @@ -373,8 +367,7 @@ namespace MMAP float bmin[3] = { 0, 0, 0 }; float bmax[3] = { 0, 0, 0 }; - float lmin[3] = { 0, 0, 0 }; - float lmax[3] = { 0, 0, 0 }; + MeshData meshData; // make sure we process maps which don't have tiles @@ -389,6 +382,9 @@ namespace MMAP // get the coord bounds of the model data if (meshData.solidVerts.size() && meshData.liquidVerts.size()) { + float lmin[3] = { 0, 0, 0 }; + float lmax[3] = { 0, 0, 0 }; + rcCalcBounds(meshData.solidVerts.getCArray(), meshData.solidVerts.size() / 3, bmin, bmax); rcCalcBounds(meshData.liquidVerts.getCArray(), meshData.liquidVerts.size() / 3, lmin, lmax); rcVmin(bmin, lmin); @@ -397,7 +393,7 @@ namespace MMAP else if (meshData.solidVerts.size()) rcCalcBounds(meshData.solidVerts.getCArray(), meshData.solidVerts.size() / 3, bmin, bmax); else - rcCalcBounds(meshData.liquidVerts.getCArray(), meshData.liquidVerts.size() / 3, lmin, lmax); + rcCalcBounds(meshData.liquidVerts.getCArray(), meshData.liquidVerts.size() / 3, bmin, bmax); // convert coord bounds to grid bounds maxX = 32 - bmin[0] / GRID_SIZE; @@ -716,7 +712,7 @@ namespace MMAP // - We are on a model (WMO...) // - Also we want to remove under-terrain triangles unsigned char* areas = new unsigned char[tTriCount]; - memset(areas, 0, tTriCount * sizeof(unsigned char)); + memset(areas, AREA_NONE, tTriCount * sizeof(unsigned char)); float norm[3]; const float playerClimbLimit = cosf(52.0f/180.0f*RC_PI); const float maxClimbLimitTerrain = cosf(75.0f/180.0f*RC_PI); @@ -761,7 +757,7 @@ namespace MMAP if (m_terrainBuilder->IsUnderMap(&verts[0]) && m_terrainBuilder->IsUnderMap(&verts[3]) && m_terrainBuilder->IsUnderMap(&verts[6])) { - areas[i] = 0; + areas[i] = AREA_NONE; continue; } } @@ -1280,7 +1276,7 @@ namespace MMAP return; } unsigned char* m_triareas = new unsigned char[tTriCount]; - memset(m_triareas, 0, tTriCount*sizeof(unsigned char)); + memset(m_triareas, AREA_NONE, tTriCount*sizeof(unsigned char)); rcMarkWalkableTriangles(m_rcContext, config.walkableSlopeAngle, tVerts, tVertCount, tTris, tTriCount, m_triareas); rcRasterizeTriangles(m_rcContext, tVerts, tVertCount, tTris, m_triareas, tTriCount, *tile.solid, config.walkableClimb); rcFilterLowHangingWalkableObstacles(m_rcContext, config.walkableClimb, *tile.solid); From b2833abf05ddff46fa25cb253a7b3d81953e9ad0 Mon Sep 17 00:00:00 2001 From: Gamemechanic Date: Wed, 20 Sep 2023 11:33:35 +0200 Subject: [PATCH 191/426] Remove unused variable in PoolManager (#2186) --- src/game/Maps/Pool/PoolManager.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/game/Maps/Pool/PoolManager.cpp b/src/game/Maps/Pool/PoolManager.cpp index 29085937552..db4505c25d8 100644 --- a/src/game/Maps/Pool/PoolManager.cpp +++ b/src/game/Maps/Pool/PoolManager.cpp @@ -233,7 +233,6 @@ PoolObject* PoolGroup::RollOne(SpawnedPoolData& spawns, uint32 triggerFrom) if (!EqualChanced.empty()) { - uint32 index = urand(0, EqualChanced.size() - 1); // Fill a list of possible rolls std::vector possible_rolls; for (int i = 0; i < EqualChanced.size(); ++i) @@ -241,7 +240,7 @@ PoolObject* PoolGroup::RollOne(SpawnedPoolData& spawns, uint32 triggerFrom) possible_rolls.push_back(i); if (!possible_rolls.empty()) { - index = urand(0, possible_rolls.size() - 1); + uint32 index = urand(0, possible_rolls.size() - 1); return &EqualChanced[possible_rolls[index]]; } } From 7fc53573026c077340de03be086170da2f78dae7 Mon Sep 17 00:00:00 2001 From: Gamemechanic Date: Thu, 21 Sep 2023 21:51:14 +0200 Subject: [PATCH 192/426] Add missing spaces to translations in mangos_string (#2200) --- sql/migrations/20230921171542_world.sql | 26 +++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 sql/migrations/20230921171542_world.sql diff --git a/sql/migrations/20230921171542_world.sql b/sql/migrations/20230921171542_world.sql new file mode 100644 index 00000000000..9cf0d3aa9e9 --- /dev/null +++ b/sql/migrations/20230921171542_world.sql @@ -0,0 +1,26 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230921171542'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230921171542'); + +UPDATE `mangos_string` SET + `content_loc1` = CONCAT( `content_loc1` , ' '), + `content_loc2` = CONCAT( `content_loc2` , ' '), + `content_loc3` = CONCAT( `content_loc3` , ' '), + `content_loc4` = CONCAT( `content_loc4` , ' '), + `content_loc6` = CONCAT( `content_loc6` , ' '), + `content_loc8` = CONCAT( `content_loc8` , ' ') +WHERE `entry` IN (30, 45, 61, 62, 100, 206, 439, 441, 514, 515, 516, 518, 519, 520, 581, 1137, 1400, 1401, 1402, 1403, 1404, 1405, + 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, + 1427, 1428, 1429, 1430, 1431, 1432, 1433, 2003, 2004, 2017, 2018, 2019, 2020, 2021, 2025, 2030, 618, 1176); + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 992ff0bfb51394f24b8ffc25f329b330007f4771 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 23 Sep 2023 13:46:37 +0300 Subject: [PATCH 193/426] Correct coordinates for Gnomeregan Explosion spells. --- sql/migrations/20230923104520_world.sql | 22 +++++++++++++++++++ .../dun_morogh/gnomeregan/gnomeregan.cpp | 4 ++-- 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 sql/migrations/20230923104520_world.sql diff --git a/sql/migrations/20230923104520_world.sql b/sql/migrations/20230923104520_world.sql new file mode 100644 index 00000000000..72a99a27d56 --- /dev/null +++ b/sql/migrations/20230923104520_world.sql @@ -0,0 +1,22 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230923104520'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230923104520'); +-- Add your query below. + + +-- Correct coordinates for Gnomeregan Explosion spells. +UPDATE `spell_target_position` SET `target_position_x`=-478.448, `target_position_y`=-89.3074, `target_position_z`=-146.602 WHERE `id`=12158; +UPDATE `spell_target_position` SET `target_position_x`=-562.7, `target_position_y`=-121.674, `target_position_z`=-150.862 WHERE `id`=12159; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/scripts/eastern_kingdoms/dun_morogh/gnomeregan/gnomeregan.cpp b/src/scripts/eastern_kingdoms/dun_morogh/gnomeregan/gnomeregan.cpp index c607619deda..57944af102e 100644 --- a/src/scripts/eastern_kingdoms/dun_morogh/gnomeregan/gnomeregan.cpp +++ b/src/scripts/eastern_kingdoms/dun_morogh/gnomeregan/gnomeregan.cpp @@ -65,8 +65,8 @@ enum GOSSIP_ITEM_START = 4084, - SPELL_EXPLOSION_NORTH = 12159, - SPELL_EXPLOSION_SOUTH = 12158, + SPELL_EXPLOSION_NORTH = 12158, + SPELL_EXPLOSION_SOUTH = 12159, SPELL_FIREWORKS_RED = 11542, //GO_EXPLOSIVE_CHARGE = 144065, //A USE From 799dc9c5b95a20f4c09067ddee92ae7704a4fadc Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 23 Sep 2023 15:42:05 +0300 Subject: [PATCH 194/426] Do not check effect index for Mother's Milk aura condition. --- sql/migrations/20230923124032_world.sql | 21 +++++++++++++++++++++ src/game/Conditions.cpp | 5 ++++- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 sql/migrations/20230923124032_world.sql diff --git a/sql/migrations/20230923124032_world.sql b/sql/migrations/20230923124032_world.sql new file mode 100644 index 00000000000..6545d314957 --- /dev/null +++ b/sql/migrations/20230923124032_world.sql @@ -0,0 +1,21 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230923124032'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230923124032'); +-- Add your query below. + + +-- Do not check effect index for Mother's Milk aura condition. +UPDATE `conditions` SET `value2`=-1 WHERE `type`=1 && `value1`=16468; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Conditions.cpp b/src/game/Conditions.cpp index 5de2466978f..287306fcb40 100644 --- a/src/game/Conditions.cpp +++ b/src/game/Conditions.cpp @@ -175,7 +175,10 @@ bool inline ConditionEntry::Evaluate(WorldObject const* target, Map const* map, } case CONDITION_AURA: { - return target->ToUnit()->HasAura(m_value1, SpellEffectIndex(m_value2)); + if (m_value2 < EFFECT_INDEX_0) + return target->ToUnit()->HasAura(m_value1); + else + return target->ToUnit()->HasAura(m_value1, SpellEffectIndex(m_value2)); } case CONDITION_ITEM: { From 77091f90ba86b7301a00d365799d756d18f1a4b6 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 23 Sep 2023 15:45:06 +0300 Subject: [PATCH 195/426] Fix copy paste mistake in continent instance checks. --- src/game/Maps/MapManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/Maps/MapManager.cpp b/src/game/Maps/MapManager.cpp index 748dd4aef11..9f3905af533 100644 --- a/src/game/Maps/MapManager.cpp +++ b/src/game/Maps/MapManager.cpp @@ -727,7 +727,7 @@ uint32 MapManager::GetContinentInstanceId(uint32 mapId, float x, float y, bool* return MAP0_IRONFORGE_AREA; if (IsNorthTo(x, y, stormwindAreaNorthLimit, sizeof(stormwindAreaNorthLimit) / (2 * sizeof(float)))) return MAP0_MIDDLE; - if (IsNorthTo(x, y, stormwindAreaSouthLimit, sizeof(stormwindAreaNorthLimit) / (2 * sizeof(float)))) + if (IsNorthTo(x, y, stormwindAreaSouthLimit, sizeof(stormwindAreaSouthLimit) / (2 * sizeof(float)))) return MAP0_STORMWIND_AREA; return MAP0_SOUTH; } From beb58852b034272f20e1eaa19be9630de8b93e27 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 24 Sep 2023 18:18:01 +0300 Subject: [PATCH 196/426] Implement using Seal of Ascension during UBRS Stadium Event. --- sql/migrations/20230924151636_world.sql | 104 ++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 sql/migrations/20230924151636_world.sql diff --git a/sql/migrations/20230924151636_world.sql b/sql/migrations/20230924151636_world.sql new file mode 100644 index 00000000000..62b76754ac6 --- /dev/null +++ b/sql/migrations/20230924151636_world.sql @@ -0,0 +1,104 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230924151636'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230924151636'); +-- Add your query below. + + +-- Text used in the event. +UPDATE `broadcast_text` SET `chat_type`=1, `emote_id1`=1 WHERE `entry`=5748; +UPDATE `broadcast_text` SET `chat_type`=1, `emote_id1`=5 WHERE `entry`=5760; +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=5761; +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=5596; +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=5776; +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=5777; +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=5778; + +-- Events list for Vaelastrasz the Red +DELETE FROM `creature_ai_events` WHERE `creature_id`=10340; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1034001, 10340, 0, 8, 0, 100, 0, 16404, -1, 0, 0, 1034001, 0, 0, 'Vaelastrasz the Red - Despawn on Hit By Spell Banishment of Scale'); +DELETE FROM `creature_ai_scripts` WHERE `id`=1034001; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1034001, 0, 0, 39, 4625, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 'Vaelastrasz the Red - Start Script'); +UPDATE `creature_template` SET `unit_flags`=576, `spawn_spell_id`=16634, `ai_name`='EventAI' WHERE `entry`=10340; + +-- Spell list for Vaelstrasz. +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES (105380, 'Blackrock Spire - Vaelastrasz', 16396, 100, 1, 0, 0, 0, 7, 8, 10, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +UPDATE `creature_template` SET `spell_list_id`=105380, `unit_flags`=33554496 WHERE `entry`=10538; + +-- 4622: Current Map Id Is 229 +INSERT INTO `conditions` (`condition_entry`, `type`, `value1`, `value2`, `value3`, `value4`, `flags`) VALUES (4622, 33, 229, 0, 0, 0, 0); +-- 4623: Stored Value In Index 3 From Instance Script Is Equal To 1 +INSERT INTO `conditions` (`condition_entry`, `type`, `value1`, `value2`, `value3`, `value4`, `flags`) VALUES (4623, 34, 3, 1, 0, 0, 0); +-- 4624: (4622: Current Map Id Is 229) And (4623: Stored Value In Index 3 From Instance Script Is Equal To 1) +INSERT INTO `conditions` (`condition_entry`, `type`, `value1`, `value2`, `value3`, `value4`, `flags`) VALUES (4624, -1, 4622, 4623, 0, 0, 0); + +-- Script upon using item Seal of Ascension. +DELETE FROM `event_scripts` WHERE `id`=4622; +INSERT INTO `event_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(4622, 0, 0, 39, 4622, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 4624, 'Call of Vaelastrasz: Summon Vaelstrasz during Stadium Event in UBRS'); + +-- 10339: Creature 10339 Is Alive Within 100 Yards Of The Target +INSERT INTO `conditions` (`condition_entry`, `type`, `value1`, `value2`, `value3`, `value4`, `flags`) VALUES (10339, 20, 10339, 100, 0, 0, 0); +-- 10340: Not (10339: Creature 10339 Is Alive Within 100 Yards Of The Target) +INSERT INTO `conditions` (`condition_entry`, `type`, `value1`, `value2`, `value3`, `value4`, `flags`) VALUES (10340, -3, 10339, 0, 0, 0, 0); + +-- Script to spawn Vaelastrasz in different position depending on if Gyth is there. +DELETE FROM `generic_scripts` WHERE `id`=4622; +INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(4622, 0, 0, 10, 10340, 70000, 1, 100, 0, 0, 0, 4, 8, 4623, -1, 1, 168.818, -420.429, 110.556, 6.21337, 10339, 'Call of Vaelastrasz: Summon Creature Vaelastrasz the Red (Combat)'), +(4622, 0, 0, 10, 10340, 70000, 1, 100, 0, 0, 0, 4, 8, 4624, -1, 1, 182.742, -413.81, 110.556, 4.623, 10340, 'Call of Vaelastrasz: Summon Creature Vaelastrasz the Red (OOC)'); + +-- Spawn script for Vaelastrasz the Red before Gyth is there. +DELETE FROM `generic_scripts` WHERE `id`=4624; +INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(4624, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Call of Vaelastrasz OOC: Vaelastrasz the Red - Set React State to Passive'), +(4624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5748, 0, 0, 0, 0, 0, 0, 0, 0, 'Call of Vaelastrasz OOC: Vaelastrasz the Red - Say Text'), +(4624, 3, 0, 15, 16319, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Call of Vaelastrasz OOC: Vaelastrasz the Red - Cast Spell Touch of Vaelstrasz'), +(4624, 6, 0, 15, 16354, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 'Call of Vaelastrasz OOC: Vaelastrasz the Red - Cast Spell Vaelstrasz Spawn'), +(4624, 8, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 'Call of Vaelastrasz OOC: Vaelastrasz the Red - Despawn'), +(4624, 9, 0, 39, 4623, 0, 0, 0, 0, 0, 0, 16, 100, 0, 0, 0, 0, 0, 0, 0, 0, 'Call of Vaelastrasz OOC: Vaelastrasz the Red - Start Script'); + +-- Spawn script for Vaelastrasz the Red when Gyth is there. +DELETE FROM `generic_scripts` WHERE `id`=4623; +INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(4623, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Call of Vaelastrasz Combat: Vaelastrasz the Red - Set React State to Passive'), +(4623, 1, 0, 35, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.443758, 0, 'Call of Vaelastrasz Combat: Vaelastrasz the Red - Set Orientation'), +(4623, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5760, 0, 0, 0, 0, 0, 0, 0, 0, 'Call of Vaelastrasz Combat: Vaelastrasz the Red - Say Text'), +(4623, 3, 0, 27, 10538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Call of Vaelastrasz Combat: Vaelastrasz the Red - Update Entry to Vaelstrasz'), +(4623, 3, 1, 4, 46, 512, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Call of Vaelastrasz Combat: Vaelastrasz the Red - Remove Immune to NPC Flag'), +(4623, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5761, 0, 0, 0, 0, 0, 0, 0, 0, 'Call of Vaelastrasz Combat: Vaelastrasz the Red - Say Text'), +(4623, 8, 0, 59, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Call of Vaelastrasz Combat: Vaelastrasz the Red - Set React State to Aggressive'), +(4623, 8, 1, 26, 0, 0, 0, 0, 10339, 100, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Call of Vaelastrasz Combat: Vaelastrasz the Red - Attack Gyth'), +(4623, 8, 2, 0, 0, 0, 0, 0, 10162, 100, 8, 2, 5596, 0, 0, 0, 0, 0, 0, 0, 0, 'Call of Vaelastrasz Combat: Lord Victor Nefarius - Say Text'), +(4623, 14, 0, 0, 0, 0, 0, 0, 10162, 100, 8, 2, 5776, 0, 0, 0, 0, 0, 0, 0, 0, 'Call of Vaelastrasz Combat: Lord Victor Nefarius - Say Text'), +(4623, 18, 0, 0, 0, 0, 0, 0, 10162, 100, 8, 2, 5777, 0, 0, 0, 0, 0, 0, 0, 0, 'Call of Vaelastrasz Combat: Lord Victor Nefarius - Say Text'), +(4623, 24, 0, 15, 16404, 0, 0, 0, 10162, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Call of Vaelastrasz Combat: Lord Victor Nefarius - Cast Spell Banishment of Scale'); + +-- Script when Vaelastrasz is hit by Banishment of Scale. +DELETE FROM `generic_scripts` WHERE `id`=4625; +INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(4625, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Vaelastrasz the Red - Set React State to Passive'), +(4625, 0, 1, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Vaelastrasz the Red - Disable Combat Movement'), +(4625, 0, 2, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Vaelastrasz the Red - Disable Melee Attack'), +(4625, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5778, 0, 0, 0, 0, 0, 0, 0, 0, 'Vaelastrasz the Red - Say Text'), +(4625, 0, 4, 34, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Vaelastrasz the Red - Set Home Position'), +(4625, 1, 0, 27, 10340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Vaelastrasz the Red - Update Entry'), +(4625, 2, 0, 15, 16354, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Vaelastrasz the Red - Cast Spell Vaelstrasz Spawn'), +(4625, 5, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Vaelastrasz the Red - Despawn'); + +-- Define targets for Banishment of Scale. +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `conditionId`, `inverseEffectMask`, `build_min`, `build_max`) VALUES +(16404, 1, 10538, 0, 0, 0, 5875); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From de7bde51c08772fb7403c44992321f0bf6227315 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 26 Sep 2023 00:12:29 +0300 Subject: [PATCH 197/426] Add config option for max realmd session duration. --- src/realmd/BufferedSocket.cpp | 18 ++++++++++++++++++ src/realmd/BufferedSocket.h | 10 ++++++---- src/realmd/realmd.conf.dist.in | 5 +++++ 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/realmd/BufferedSocket.cpp b/src/realmd/BufferedSocket.cpp index 46ca08ca6d8..950a5dde287 100644 --- a/src/realmd/BufferedSocket.cpp +++ b/src/realmd/BufferedSocket.cpp @@ -24,6 +24,7 @@ */ #include "BufferedSocket.h" +#include "Config/Config.h" #include #include @@ -48,6 +49,12 @@ BufferedSocket::BufferedSocket(void): if(Base::open(arg) == -1) return -1; + if (time_t timer = sConfig.GetIntDefault("MaxSessionDuration", 300)) + { + ACE_Time_Value interval(timer); + Base::reactor_timer_interface()->schedule_timer(this, NULL, interval); + } + ACE_INET_Addr addr; if(peer().get_remote_addr(addr) == -1) @@ -257,6 +264,17 @@ bool BufferedSocket::send(const char *buf, size_t len) return 0; } +int BufferedSocket::handle_timeout(ACE_Time_Value const& current_time, void const* act) +{ + this->close_connection(); + + this->OnClose(); + + Base::handle_close(); + + return 0; +} + void BufferedSocket::close_connection(void) { this->peer().close_reader(); diff --git a/src/realmd/BufferedSocket.h b/src/realmd/BufferedSocket.h index a1956f7008a..f395c952b2b 100644 --- a/src/realmd/BufferedSocket.h +++ b/src/realmd/BufferedSocket.h @@ -57,15 +57,17 @@ class BufferedSocket: public ACE_Svc_Handler const std::string& get_remote_address(void) const; - virtual int open(void *); + virtual int open(void *) override; void close_connection(void); - virtual int handle_input(ACE_HANDLE = ACE_INVALID_HANDLE); - virtual int handle_output(ACE_HANDLE = ACE_INVALID_HANDLE); + virtual int handle_input(ACE_HANDLE = ACE_INVALID_HANDLE) override; + virtual int handle_output(ACE_HANDLE = ACE_INVALID_HANDLE) override; virtual int handle_close(ACE_HANDLE = ACE_INVALID_HANDLE, - ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK); + ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK) override; + virtual int handle_timeout(ACE_Time_Value const& current_time, + void const* act = 0) override; private: ssize_t noblk_send(ACE_Message_Block &message_block); diff --git a/src/realmd/realmd.conf.dist.in b/src/realmd/realmd.conf.dist.in index 6de3c3e5220..95a2d9385df 100644 --- a/src/realmd/realmd.conf.dist.in +++ b/src/realmd/realmd.conf.dist.in @@ -148,6 +148,10 @@ ConfVersion=2020010501 # The SendGrid template GUID for geolocking emails # Default: "" # +# MaxSessionDuration +# Maximum time in seconds that sessions can stay open +# Default: 300 (5 minutes) +# ################################################################################################################### LoginDatabaseInfo = "127.0.0.1;3306;mangos;mangos;realmd" @@ -179,3 +183,4 @@ MailFrom = "" MailCertChecks = 1 SendGridKey = "" GeolockGUID = "" +MaxSessionDuration = 300 From 696f131e07eadd8fea978730d0444bdb94aa8247 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 28 Sep 2023 17:32:50 +0300 Subject: [PATCH 198/426] Fix battleground spawns respawning prematurely. Should fix AV becoming totally broken after running for multiple days. --- src/game/Battlegrounds/BattleGround.cpp | 75 +++++++++++------------ src/game/Battlegrounds/BattleGround.h | 8 +-- src/game/Battlegrounds/BattleGroundAB.cpp | 8 +-- src/game/Maps/Map.cpp | 6 ++ 4 files changed, 49 insertions(+), 48 deletions(-) diff --git a/src/game/Battlegrounds/BattleGround.cpp b/src/game/Battlegrounds/BattleGround.cpp index 5daa3473bb6..e01a958dd3f 100644 --- a/src/game/Battlegrounds/BattleGround.cpp +++ b/src/game/Battlegrounds/BattleGround.cpp @@ -1196,7 +1196,7 @@ void BattleGround::UpdatePlayerScore(Player* source, uint32 type, uint32 value) } } -bool BattleGround::AddObject(uint32 type, uint32 entry, float x, float y, float z, float o, float rotation0, float rotation1, float rotation2, float rotation3, uint32 /*respawnTime*/) +bool BattleGround::AddObject(uint32 type, uint32 entry, float x, float y, float z, float o, float rotation0, float rotation1, float rotation2, float rotation3) { // must be created this way, adding to godatamap would add it to the base map of the instance // and when loading it (in go::LoadFromDB()), a new guid would be assigned to the object, and a new object would be created @@ -1210,28 +1210,7 @@ bool BattleGround::AddObject(uint32 type, uint32 entry, float x, float y, float delete go; return false; } - /* - uint32 guid = go->GetGUIDLow(); - - // without this, UseButtonOrDoor caused the crash, since it tried to get go info from godata - // iirc that was changed, so adding to go data map is no longer required if that was the only function using godata from GameObject without checking if it existed - GameObjectData& data = sObjectMgr.NewGOData(guid); - - data.id = entry; - data.position.mapId = GetMapId(); - data.position.x = x; - data.position.y = y; - data.position.z = z; - data.orientation = o; - data.rotation0 = rotation0; - data.rotation1 = rotation1; - data.rotation2 = rotation2; - data.rotation3 = rotation3; - data.spawntimesecs = respawnTime; - data.spawnMask = 1; - data.animprogress = 100; - data.go_state = 1; - */ + // add to world, so it can be later looked up from HashMapHolder go->AddToWorld(); m_bgObjects[type] = go->GetObjectGuid(); @@ -1250,7 +1229,7 @@ void BattleGround::DoorClose(ObjectGuid guid) { //change state to allow door to be closed obj->SetLootState(GO_READY); - obj->UseDoorOrButton(RESPAWN_ONE_DAY); + obj->UseDoorOrButton(RESPAWN_NEVER); } } else @@ -1264,7 +1243,7 @@ void BattleGround::DoorOpen(ObjectGuid guid) { //change state to be sure they will be opened obj->SetLootState(GO_READY); - obj->UseDoorOrButton(RESPAWN_ONE_DAY); + obj->UseDoorOrButton(RESPAWN_NEVER); } else sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "BattleGround: Door %s not found! - doors will be closed.", guid.GetString().c_str()); @@ -1324,7 +1303,7 @@ void BattleGround::OnObjectDBLoad(GameObject* obj) { m_eventObjects[MAKE_PAIR32(i.event1, i.event2)].gameobjects.push_back(obj->GetObjectGuid()); if (!IsActiveEvent(i.event1, i.event2)) - SpawnBGObject(obj->GetObjectGuid(), RESPAWN_ONE_DAY); + SpawnBGObject(obj->GetObjectGuid(), RESPAWN_NEVER); else { // it's possible, that doors aren't spawned anymore (wsg) @@ -1438,7 +1417,7 @@ void BattleGround::SpawnEvent(uint8 event1, uint8 event2, bool spawn, bool force BGObjects::const_iterator itr2 = m_eventObjects[MAKE_PAIR32(event1, event2)].gameobjects.begin(); for (; itr2 != m_eventObjects[MAKE_PAIR32(event1, event2)].gameobjects.end(); ++itr2) - SpawnBGObject(*itr2, (spawn) ? delay : RESPAWN_ONE_DAY); + SpawnBGObject(*itr2, (spawn) ? delay : RESPAWN_NEVER); OnEventStateChanged(event1, event2, spawn); } @@ -1471,12 +1450,23 @@ void BattleGround::SetSpawnEventMode(uint8 event1, uint8 event2, BattleGroundCre void BattleGround::SpawnBGObject(ObjectGuid guid, uint32 respawnTime) { Map* map = GetBgMap(); - GameObject* obj = map->GetGameObject(guid); - if (!obj) - return; - if (respawnTime != RESPAWN_ONE_DAY) + + if (respawnTime != RESPAWN_NEVER) { + bool justLoaded = false; + if (!obj) + { + // try loading it if spawn is not found + obj = GameObject::CreateGameObject(guid.GetEntry()); + if (!obj->LoadFromDB(guid.GetCounter(), map, true)) + { + delete obj; + return; + } + justLoaded = true; + } + //we need to change state from GO_JUST_DEACTIVATED to GO_READY in case battleground is starting again if (obj->getLootState() == GO_JUST_DEACTIVATED) obj->SetLootState(GO_READY); @@ -1488,16 +1478,23 @@ void BattleGround::SpawnBGObject(ObjectGuid guid, uint32 respawnTime) if (obj->GetEntry() == 178786 || obj->GetEntry() == 178787 || obj->GetEntry() == 178788 || obj->GetEntry() == 178789) obj->SetRespawnDelay(60); - if (!obj->GetRespawnTime()) + if (justLoaded || !obj->GetRespawnTime()) map->Add(obj); } else { - if (obj->GetGOInfo()->type != GAMEOBJECT_TYPE_FLAGSTAND) - obj->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE); + if (obj) + { + if (obj->GetGOInfo()->type != GAMEOBJECT_TYPE_FLAGSTAND) + obj->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE); - obj->SetRespawnTime(respawnTime); - obj->SetLootState(GO_JUST_DEACTIVATED); + obj->SetRespawnTime(respawnTime); + obj->SetLootState(GO_JUST_DEACTIVATED); + + // remove from map and delete the object + if (obj->HasStaticDBSpawnData()) + obj->AddObjectToRemoveList(); + } } } @@ -1517,7 +1514,7 @@ void BattleGround::SpawnBGCreature(ObjectGuid guid, BattleGroundCreatureSpawnMod } else if (mode == DESPAWN_FORCED) { - obj->SetRespawnDelay(RESPAWN_FOUR_DAYS); + obj->SetRespawnDelay(RESPAWN_NEVER); obj->SetDeathState(JUST_DIED); obj->RemoveCorpse(); } @@ -1529,7 +1526,7 @@ void BattleGround::SpawnBGCreature(ObjectGuid guid, BattleGroundCreatureSpawnMod } else if (mode == RESPAWN_STOP) { - obj->SetRespawnDelay(RESPAWN_FOUR_DAYS); + obj->SetRespawnDelay(RESPAWN_NEVER); if (obj->IsDespawned()) { obj->SetDeathState(JUST_DIED); @@ -1654,7 +1651,7 @@ void BattleGround::HandleTriggerBuff(ObjectGuid goGuid) if (m_buffChange && entry != g_buffEntries[buff]) { //despawn current buff - SpawnBGObject(m_bgObjects[index], RESPAWN_ONE_DAY); + SpawnBGObject(m_bgObjects[index], RESPAWN_NEVER); //set index for new one for (uint8 currBuffTypeIndex = 0; currBuffTypeIndex < 3; ++currBuffTypeIndex) { diff --git a/src/game/Battlegrounds/BattleGround.h b/src/game/Battlegrounds/BattleGround.h index 30a1a5edb79..3a59e886661 100644 --- a/src/game/Battlegrounds/BattleGround.h +++ b/src/game/Battlegrounds/BattleGround.h @@ -136,12 +136,10 @@ enum BattleGroundTimeIntervals INVITE_ACCEPT_WAIT_TIME = 80000, // ms TIME_TO_AUTOREMOVE = 120000, // ms MAX_OFFLINE_TIME = 30, // secs - RESPAWN_ONE_DAY = 86400, // secs RESPAWN_IMMEDIATELY = 0, // secs + RESPAWN_2MINUTES = 120, // secs BUFF_RESPAWN_TIME = 180, // secs - RESPAWN_FOUR_DAYS = 345600, // secs - DESPAWN_IMMEDIATELY = 345601, // secs - RESPAWN_2MINUTES = 120 + RESPAWN_NEVER = 31536000, // secs (1 year) }; enum BattleGroundStartTimeIntervals @@ -531,7 +529,7 @@ class BattleGround // TODO drop m_BGObjects BGObjects m_bgObjects; void SpawnBGObject(ObjectGuid guid, uint32 respawnTime); - bool AddObject(uint32 type, uint32 entry, float x, float y, float z, float o, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime = 0); + bool AddObject(uint32 type, uint32 entry, float x, float y, float z, float o, float rotation0, float rotation1, float rotation2, float rotation3); void SpawnBGCreature(ObjectGuid guid, BattleGroundCreatureSpawnMode mode); bool DelObject(uint32 type); diff --git a/src/game/Battlegrounds/BattleGroundAB.cpp b/src/game/Battlegrounds/BattleGroundAB.cpp index 5285f0a43af..ebb0835ab49 100644 --- a/src/game/Battlegrounds/BattleGroundAB.cpp +++ b/src/game/Battlegrounds/BattleGroundAB.cpp @@ -152,7 +152,7 @@ void BattleGroundAB::StartingEventCloseDoors() { // despawn buffs for (int i = 0; i < BG_AB_NODES_MAX * 3; ++i) - SpawnBGObject(m_bgObjects[BG_AB_OBJECT_SPEEDBUFF_STABLES + i], RESPAWN_ONE_DAY); + SpawnBGObject(m_bgObjects[BG_AB_OBJECT_SPEEDBUFF_STABLES + i], RESPAWN_NEVER); } void BattleGroundAB::StartingEventOpenDoors() @@ -452,9 +452,9 @@ bool BattleGroundAB::SetupBattleGround() //buffs for (int i = 0; i < BG_AB_NODES_MAX; ++i) { - if (!AddObject(BG_AB_OBJECT_SPEEDBUFF_STABLES + 3 * i, g_buffEntries[0], BG_AB_BuffPositions[i][0], BG_AB_BuffPositions[i][1], BG_AB_BuffPositions[i][2], BG_AB_BuffPositions[i][3], 0, 0, sin(BG_AB_BuffPositions[i][3] / 2), cos(BG_AB_BuffPositions[i][3] / 2), RESPAWN_ONE_DAY) - || !AddObject(BG_AB_OBJECT_SPEEDBUFF_STABLES + 3 * i + 1, g_buffEntries[1], BG_AB_BuffPositions[i][0], BG_AB_BuffPositions[i][1], BG_AB_BuffPositions[i][2], BG_AB_BuffPositions[i][3], 0, 0, sin(BG_AB_BuffPositions[i][3] / 2), cos(BG_AB_BuffPositions[i][3] / 2), RESPAWN_ONE_DAY) - || !AddObject(BG_AB_OBJECT_SPEEDBUFF_STABLES + 3 * i + 2, g_buffEntries[2], BG_AB_BuffPositions[i][0], BG_AB_BuffPositions[i][1], BG_AB_BuffPositions[i][2], BG_AB_BuffPositions[i][3], 0, 0, sin(BG_AB_BuffPositions[i][3] / 2), cos(BG_AB_BuffPositions[i][3] / 2), RESPAWN_ONE_DAY) + if (!AddObject(BG_AB_OBJECT_SPEEDBUFF_STABLES + 3 * i, g_buffEntries[0], BG_AB_BuffPositions[i][0], BG_AB_BuffPositions[i][1], BG_AB_BuffPositions[i][2], BG_AB_BuffPositions[i][3], 0, 0, sin(BG_AB_BuffPositions[i][3] / 2), cos(BG_AB_BuffPositions[i][3] / 2)) + || !AddObject(BG_AB_OBJECT_SPEEDBUFF_STABLES + 3 * i + 1, g_buffEntries[1], BG_AB_BuffPositions[i][0], BG_AB_BuffPositions[i][1], BG_AB_BuffPositions[i][2], BG_AB_BuffPositions[i][3], 0, 0, sin(BG_AB_BuffPositions[i][3] / 2), cos(BG_AB_BuffPositions[i][3] / 2)) + || !AddObject(BG_AB_OBJECT_SPEEDBUFF_STABLES + 3 * i + 2, g_buffEntries[2], BG_AB_BuffPositions[i][0], BG_AB_BuffPositions[i][1], BG_AB_BuffPositions[i][2], BG_AB_BuffPositions[i][3], 0, 0, sin(BG_AB_BuffPositions[i][3] / 2), cos(BG_AB_BuffPositions[i][3] / 2)) ) sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "BatteGroundAB: Failed to spawn buff object!"); } diff --git a/src/game/Maps/Map.cpp b/src/game/Maps/Map.cpp index b0a37658fb9..e47ab2e122c 100644 --- a/src/game/Maps/Map.cpp +++ b/src/game/Maps/Map.cpp @@ -3627,6 +3627,12 @@ Creature* Map::LoadCreatureSpawn(uint32 dbGuid, bool delaySpawn) if (!pSpawnData) return nullptr; + if (GetId() != pSpawnData->position.mapId) + { + sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "Attempt to load creature spawn guid %u on wrong map %u.", dbGuid, GetId()); + return nullptr; + } + Creature* pCreature; ObjectGuid guid = pSpawnData->GetObjectGuid(dbGuid); if (pCreature = GetCreature(guid)) From bf1a1285d5a9369c2195eabb39700678c4ebeef4 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 30 Sep 2023 19:38:58 +0300 Subject: [PATCH 199/426] Fix first phase of Kel'thuzad fight. Closes https://github.com/vmangos/core/issues/2205 --- src/game/Objects/Creature.cpp | 6 +++++- .../naxxramas/boss_kelthuzad.cpp | 15 +++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/game/Objects/Creature.cpp b/src/game/Objects/Creature.cpp index 7cebacc236a..c7ef3772dba 100644 --- a/src/game/Objects/Creature.cpp +++ b/src/game/Objects/Creature.cpp @@ -2806,7 +2806,11 @@ bool Creature::MeetsSelectAttackingRequirement(Unit* pTarget, SpellEntry const* return false; } - if (!IsValidAttackTarget(pTarget)) + // It makes more sense to check IsValidAttackTarget, but will break Kel'Thuzad script. + // He is immune to players in first phase, but picks random targets from threat list for summons to attack. + if (pTarget->IsDead() || + pTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SPAWNING | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_NON_ATTACKABLE_2 | UNIT_FLAG_TAXI_FLIGHT | UNIT_FLAG_NOT_SELECTABLE) || + IsFriendlyTo(pTarget)) return false; if (pSpellInfo) diff --git a/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/boss_kelthuzad.cpp b/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/boss_kelthuzad.cpp index 83767904dfe..69b8aac896f 100644 --- a/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/boss_kelthuzad.cpp +++ b/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/boss_kelthuzad.cpp @@ -864,6 +864,8 @@ struct mob_abomAI : public kt_p1AddAI void Reset() override { mortalWoundTimer = 7500; + m_creature->SetMaxHealth(90000); + m_creature->SetHealth(90000); } void UpdateAI(uint32 const diff) override @@ -891,7 +893,11 @@ struct mob_soldierAI : public kt_p1AddAI Reset(); } - void Reset() override { } + void Reset() override + { + m_creature->SetMaxHealth(2000); + m_creature->SetHealth(2000); + } void UpdateAI(uint32 const diff) override { @@ -914,13 +920,18 @@ struct mob_soldierAI : public kt_p1AddAI struct mob_soulweaverAI : public kt_p1AddAI { - mob_soulweaverAI(Creature* pCreature) : kt_p1AddAI(pCreature) { } + mob_soulweaverAI(Creature* pCreature) : kt_p1AddAI(pCreature) + { + Reset(); + } bool hasHitSomeone; void Reset() override { hasHitSomeone = false; + m_creature->SetMaxHealth(70000); + m_creature->SetHealth(70000); } void UpdateAI(uint32 const diff) override From b50cc5fe5b8b810c5f9aa77d5bdd7e1e5414f0e7 Mon Sep 17 00:00:00 2001 From: TuriansNotBad <54774532+TuriansNotBad@users.noreply.github.com> Date: Sun, 1 Oct 2023 09:22:03 +0500 Subject: [PATCH 200/426] Fix group set leader pre 1.12 (#2208) --- src/game/Handlers/GroupHandler.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/game/Handlers/GroupHandler.cpp b/src/game/Handlers/GroupHandler.cpp index 629b5253403..48372923158 100644 --- a/src/game/Handlers/GroupHandler.cpp +++ b/src/game/Handlers/GroupHandler.cpp @@ -309,13 +309,24 @@ void WorldSession::HandleGroupUninviteOpcode(WorldPacket& recv_data) void WorldSession::HandleGroupSetLeaderOpcode(WorldPacket& recv_data) { ObjectGuid guid; +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_11_2 recv_data >> guid; +#else + std::string name; + recv_data >> name; +#endif Group* group = GetPlayer()->GetGroup(); if (!group) return; +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_11_2 Player* player = sObjectMgr.GetPlayer(guid); +#else + Player* player = sObjectMgr.GetPlayer(name.c_str()); + if (player) + guid = player->GetObjectGuid(); +#endif /** error handling **/ if (!player || !group->IsLeader(GetPlayer()->GetObjectGuid()) || player->GetGroup() != group) From ff760c37b721d5c0118c40a854dcdc1beaffb0e0 Mon Sep 17 00:00:00 2001 From: TuriansNotBad <54774532+TuriansNotBad@users.noreply.github.com> Date: Sun, 1 Oct 2023 09:56:43 +0500 Subject: [PATCH 201/426] Fix raid group set assistant leader pre 1.12 (#2209) --- src/game/Handlers/GroupHandler.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/game/Handlers/GroupHandler.cpp b/src/game/Handlers/GroupHandler.cpp index 48372923158..3a54f4822e0 100644 --- a/src/game/Handlers/GroupHandler.cpp +++ b/src/game/Handlers/GroupHandler.cpp @@ -586,7 +586,12 @@ void WorldSession::HandleGroupAssistantLeaderOpcode(WorldPacket& recv_data) { ObjectGuid guid; uint8 flag; +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_11_2 recv_data >> guid; +#else + std::string name; + recv_data >> name; +#endif recv_data >> flag; Group* group = GetPlayer()->GetGroup(); @@ -598,6 +603,13 @@ void WorldSession::HandleGroupAssistantLeaderOpcode(WorldPacket& recv_data) return; /********************/ +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_11_2 + if (Player* player = sObjectMgr.GetPlayer(name.c_str())) + guid = player->GetObjectGuid(); + else + return; +#endif + // everything is fine, do it group->SetAssistant(guid, (flag != 0)); } From beb24ce4f2462cd42886efc6bacead4ea568feda Mon Sep 17 00:00:00 2001 From: coolzoom Date: Sun, 1 Oct 2023 21:36:25 +0800 Subject: [PATCH 202/426] CI: remove choco openssl package (#2210) choco package changes the openssl way too often, we should just use our internal openssl --- .github/workflows/dev-release.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/dev-release.yml b/.github/workflows/dev-release.yml index ce27e69ab1e..3edb2174224 100644 --- a/.github/workflows/dev-release.yml +++ b/.github/workflows/dev-release.yml @@ -47,7 +47,7 @@ jobs: unzip tbb-$TBB_VERSION-win.zip rm tbb-$TBB_VERSION-win.zip #openssl - choco install -y openssl --version=1.1.1.500 + #choco install -y openssl --version=1.1.1.500 #git bash shell shell: bash @@ -83,8 +83,8 @@ jobs: copy ${{github.workspace}}/ACE_wrappers/lib/ACE.dll ${{github.workspace}}/bin/Release/ACE.dll copy c:/mysql/lib/libmysql.dll ${{github.workspace}}/bin/Release/libmysql.dll - copy "c:/Program Files/OpenSSL-Win64/bin/libssl-1_1-x64.dll" ${{github.workspace}}/bin/Release/libssl-1_1-x64.dll - copy "c:/Program Files/OpenSSL-Win64/bin/libcrypto-1_1-x64.dll" ${{github.workspace}}/bin/Release/libcrypto-1_1-x64.dll + # copy "c:/Program Files/OpenSSL-Win64/bin/libssl-1_1-x64.dll" ${{github.workspace}}/bin/Release/libssl-1_1-x64.dll + # copy "c:/Program Files/OpenSSL-Win64/bin/libcrypto-1_1-x64.dll" ${{github.workspace}}/bin/Release/libcrypto-1_1-x64.dll copy ${{github.workspace}}/dep/windows/lib/x64_release/libeay32.dll ${{github.workspace}}/bin/Release/libeay32.dll 7z a -tzip ${{env.ARCHIVE_FILENAME}} Release @@ -126,8 +126,8 @@ jobs: copy ${{github.workspace}}/ACE_wrappers/lib/ACE.dll ${{github.workspace}}/bin/Release/ACE.dll copy c:/mysql/lib/libmysql.dll ${{github.workspace}}/bin/Release/libmysql.dll - copy "c:/Program Files/OpenSSL-Win64/bin/libssl-1_1-x64.dll" ${{github.workspace}}/bin/Release/libssl-1_1-x64.dll - copy "c:/Program Files/OpenSSL-Win64/bin/libcrypto-1_1-x64.dll" ${{github.workspace}}/bin/Release/libcrypto-1_1-x64.dll + # copy "c:/Program Files/OpenSSL-Win64/bin/libssl-1_1-x64.dll" ${{github.workspace}}/bin/Release/libssl-1_1-x64.dll + # copy "c:/Program Files/OpenSSL-Win64/bin/libcrypto-1_1-x64.dll" ${{github.workspace}}/bin/Release/libcrypto-1_1-x64.dll copy ${{github.workspace}}/dep/windows/lib/x64_release/libeay32.dll ${{github.workspace}}/bin/Release/libeay32.dll 7z a -tzip ${{env.ARCHIVE_FILENAME}} Release From 8cd811a989e5cc4c1229b24a6ff7a720868f3ecf Mon Sep 17 00:00:00 2001 From: Gamemechanic Date: Sun, 1 Oct 2023 23:10:11 +0200 Subject: [PATCH 203/426] Flightmasters at Valors Rest in Silithus were added in 1.3 (#2211) --- sql/migrations/20231001202124_world.sql | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 sql/migrations/20231001202124_world.sql diff --git a/sql/migrations/20231001202124_world.sql b/sql/migrations/20231001202124_world.sql new file mode 100644 index 00000000000..82554f2c76c --- /dev/null +++ b/sql/migrations/20231001202124_world.sql @@ -0,0 +1,22 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231001202124'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231001202124'); +-- Add your query below. + +-- Flightmasters at Valors Rest in Silithus was added in 1.3 +UPDATE `creature` SET `patch_min`=1 WHERE `guid`=14; +UPDATE `creature` SET `patch_min`=1 WHERE `guid`=18; +UPDATE `creature_template` SET `patch`=1 WHERE `entry`=1233 AND `patch`=0; +UPDATE `creature_template` SET `patch`=1 WHERE `entry`=14242 AND `patch`=0; + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 762490862235907e91837d3495483954552dbb3e Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 3 Oct 2023 05:16:04 +0300 Subject: [PATCH 204/426] New script for quest Ammo for Rumbleshot. --- sql/migrations/20231003020047_world.sql | 354 +++++ src/game/AI/CreatureAI.cpp | 2 +- src/scripts/CMakeLists.txt | 1 - .../dun_morogh/dun_morogh.cpp | 1400 ----------------- .../eastern_kingdoms/dun_morogh/dun_morogh.h | 268 ---- 5 files changed, 355 insertions(+), 1670 deletions(-) create mode 100644 sql/migrations/20231003020047_world.sql delete mode 100644 src/scripts/eastern_kingdoms/dun_morogh/dun_morogh.h diff --git a/sql/migrations/20231003020047_world.sql b/sql/migrations/20231003020047_world.sql new file mode 100644 index 00000000000..c7724028e99 --- /dev/null +++ b/sql/migrations/20231003020047_world.sql @@ -0,0 +1,354 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231003020047'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231003020047'); +-- Add your query below. + + +-- Assign script to quest Ammo for Rumbleshot. +DELETE FROM `quest_end_scripts` WHERE `id`=5541; +INSERT INTO `quest_end_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(5541, 0, 0, 61, 5541, 360, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Start Scripted Map Event'), +(5541, 1, 0, 39, 5541, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Start Script'); +UPDATE `quest_template` SET `CompleteScript`=5541 WHERE `entry`=5541; + +-- Main script +DELETE FROM `generic_scripts` WHERE `id`=5541; +INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(5541, 1, 0, 16, 6598, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Angus - Play Sound B_MortarTeamYes4'), +(5541, 1, 0, 1, 1, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Angus - Emote OneShotTalk'), +(5541, 4, 0, 3, 0, 9930, 1, 2, 10805, 100, 8, 2, 0, 0, 0, 0, -6022.7, -179.703, 411.123, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Move'), +(5541, 8, 0, 3, 0, 0, 1, 2, 10610, 100, 8, 2, 0, 0, 0, 0, -6014.13, -206.867, 408.041, 0, 0, 'Ammo for Rumbleshot: Angus - Move'), +(5541, 10, 0, 3, 0, 0, 1, 2, 10804, 100, 8, 2, 0, 0, 0, 0, -6016.43, -209.397, 408.8, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Move'), +(5541, 10, 0, 3, 0, 8016, 1, 2, 10610, 100, 8, 2, 0, 0, 0, 0, -6021.67, -218.564, 411.337, 0, 0, 'Ammo for Rumbleshot: Angus - Move'), +(5541, 12, 0, 3, 0, 0, 1, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6009.37, -204.8, 407.425, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 12, 0, 3, 0, 0, 1, 2, 10803, 100, 8, 2, 0, 0, 0, 0, -6012.57, -199.28, 407.022, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Move'), +(5541, 12, 0, 3, 0, 9389, 1, 2, 10804, 100, 8, 2, 0, 0, 0, 0, -6029.31, -224.705, 412.964, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Move'), +(5541, 14, 0, 3, 0, 4223, 1, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6013.85, -207.432, 408.143, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 14, 0, 3, 0, 8585, 1, 2, 10803, 100, 8, 2, 0, 0, 0, 0, -6020.35, -212.33, 410.228, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Move'), +(5541, 15, 0, 3, 0, 2673, 1, 2, 10805, 100, 8, 2, 0, 0, 0, 0, -6037.08, -192.324, 418.966, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Move'), +(5541, 15, 0, 3, 0, 6535, 1, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6017.99, -216.217, 410.498, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 17, 0, 3, 0, 7082, 1, 2, 10610, 100, 8, 2, 0, 0, 0, 0, -6027.43, -230.878, 413.652, 0, 0, 'Ammo for Rumbleshot: Angus - Move'), +(5541, 17, 0, 3, 0, 3183, 1, 2, 10805, 100, 8, 2, 0, 0, 0, 0, -6052.63, -198.484, 421.83, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Move'), +(5541, 19, 0, 3, 0, 3286, 1, 2, 10805, 100, 8, 2, 0, 0, 0, 0, -6065.43, -202.013, 424.483, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Move'), +(5541, 20, 0, 3, 0, 7743, 1, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6025.08, -229.169, 413.447, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 20, 0, 3, 0, 3360, 1, 2, 10804, 100, 8, 2, 0, 0, 0, 0, -6034.12, -223.338, 413.481, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Move'), +(5541, 20, 0, 3, 0, 6931, 1, 2, 10803, 100, 8, 2, 0, 0, 0, 0, -6027.47, -221.388, 412.622, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Move'), +(5541, 22, 0, 3, 0, 4083, 1, 2, 10610, 100, 8, 2, 0, 0, 0, 0, -6031.16, -230.264, 414.361, 0, 0, 'Ammo for Rumbleshot: Angus - Move'), +(5541, 23, 0, 35, 1, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 5.70723, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Set Orientation'), +(5541, 23, 1, 34, 0, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, -6065.43, -202.013, 424.483, 5.70723, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Set Home Position'), +(5541, 25, 0, 3, 0, 3912, 1, 2, 10803, 100, 8, 2, 0, 0, 0, 0, -6031.93, -221.088, 413.153, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Move'), +(5541, 27, 0, 35, 1, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 1.97406, 0, 'Ammo for Rumbleshot: Angus - Set Orientation'), +(5541, 27, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.21657, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 27, 0, 3, 0, 4017, 1, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6029.46, -234.346, 414.297, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 28, 0, 3, 0, 3960, 1, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6032.97, -235.862, 415.046, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 30, 0, 3, 0, 3741, 1, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6035.97, -234.216, 415.038, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 30, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.3911, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 31, 0, 1, 25, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Emote OneShotPoint'), +(5541, 31, 0, 3, 0, 4385, 1, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6033.03, -229.694, 414.447, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 32, 0, 0, 0, 0, 0, 0, 10804, 100, 8, 2, 6107, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Say Text'), +(5541, 33, 0, 3, 0, 3602, 1, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6031.59, -228.182, 414.403, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 35, 0, 3, 0, 2168, 1, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6031.9, -227.887, 414.42, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 35, 1, 34, 0, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, -6031.9, -227.887, 414.42, 2.0248, 0, 'Ammo for Rumbleshot: Shorty - Set Home Position'), +(5541, 38, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.21657, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 38, 0, 15, 16768, 0, 0, 0, 10804, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Cast Spell Shoot'), +(5541, 38, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.0248, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 38, 0, 0, 0, 0, 0, 0, 10804, 100, 8, 2, 6140, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Say Text'), +(5541, 41, 0, 1, 6, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Emote OneShotQuestion'), +(5541, 45, 0, 0, 0, 0, 0, 0, 10804, 100, 8, 2, 6106, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Say Text'), +(5541, 46, 0, 16, 6247, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Play Sound B_RiflemanReady1'), +(5541, 49, 0, 15, 16772, 0, 0, 0, 10804, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Cast Spell Shoot'), +(5541, 49, 0, 0, 0, 0, 0, 0, 10804, 100, 8, 2, 6141, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Say Text'), +(5541, 49, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.21657, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 52, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0.799634, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 54, 0, 1, 11, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Emote OneShotLaugh'), +(5541, 54, 0, 1, 5, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Emote OneShotExclamation'), +(5541, 57, 0, 1, 11, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Emote OneShotLaugh'), +(5541, 57, 0, 1, 273, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Angus - Emote OneShotYes'), +(5541, 57, 0, 1, 274, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Emote OneShotNo'), +(5541, 61, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.21657, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 62, 0, 0, 0, 0, 0, 0, 10803, 100, 8, 2, 6118, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Say Text'), +(5541, 62, 0, 1, 25, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Emote OneShotPoint'), +(5541, 67, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.3911, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 67, 0, 15, 16767, 0, 0, 0, 10803, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Cast Spell Shoot'), +(5541, 67, 0, 0, 0, 0, 0, 0, 10803, 100, 8, 2, 6142, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Say Text'), +(5541, 70, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 3.94123, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 72, 0, 1, 21, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Emote OneShotApplaud'), +(5541, 72, 0, 16, 6249, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Play Sound B_RiflemanWhat3'), +(5541, 72, 0, 1, 25, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Emote OneShotPoint'), +(5541, 73, 0, 1, 21, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Angus - Emote OneShotApplaud'), +(5541, 73, 0, 1, 21, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Emote OneShotApplaud'), +(5541, 75, 0, 1, 23, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Emote OneShotFlex'), +(5541, 77, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 1.88496, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 78, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.44346, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 78, 0, 0, 0, 0, 0, 0, 10804, 100, 8, 2, 6120, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Say Text'), +(5541, 82, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 1.88496, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 82, 0, 15, 16777, 0, 0, 0, 10804, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Cast Spell Shoot'), +(5541, 83, 0, 0, 0, 0, 0, 0, 10804, 100, 8, 2, 6140, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Say Text'), +(5541, 85, 0, 1, 15, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Emote OneShotRoar'), +(5541, 88, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 3.94123, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 88, 0, 1, 20, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Emote OneShotBeg'), +(5541, 90, 0, 1, 6, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Emote OneShotQuestion'), +(5541, 90, 0, 16, 6248, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Play Sound B_RiflemanWhat2'), +(5541, 93, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.23402, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 94, 0, 28, 2, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Stand State to UNIT_STAND_STATE_SIT_CHAIR'), +(5541, 95, 0, 0, 0, 0, 0, 0, 10804, 100, 8, 2, 6121, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Say Text'), +(5541, 98, 0, 0, 0, 0, 0, 0, 10804, 100, 8, 2, 6141, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Say Text'), +(5541, 98, 0, 15, 16780, 0, 0, 0, 10804, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Cast Spell Shoot'), +(5541, 98, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 1.88496, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 101, 0, 1, 18, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Emote OneShotCry'), +(5541, 107, 0, 15, 16775, 0, 0, 0, 10803, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Cast Spell Shoot'), +(5541, 107, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.23402, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 108, 0, 28, 0, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Stand State to UNIT_STAND_STATE_STAND'), +(5541, 108, 0, 0, 0, 0, 0, 0, 10803, 100, 8, 2, 6124, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Say Text'), +(5541, 109, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.07694, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 109, 0, 0, 0, 0, 0, 0, 10803, 100, 8, 2, 6122, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Say Text'), +(5541, 112, 0, 0, 0, 0, 0, 0, 10803, 100, 8, 2, 6123, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Say Text'), +(5541, 112, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.07694, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 112, 0, 15, 16778, 0, 0, 0, 10803, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Cast Spell Shoot'), +(5541, 114, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 3.94123, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 115, 0, 1, 5, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Emote OneShotExclamation'), +(5541, 117, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0.799634, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 119, 0, 1, 25, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Emote OneShotPoint'), +(5541, 120, 0, 1, 11, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Emote OneShotLaugh'), +(5541, 125, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.21657, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 127, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.21657, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 127, 0, 28, 2, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Stand State to UNIT_STAND_STATE_SIT_CHAIR'), +(5541, 127, 0, 16, 6250, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Play Sound B_RiflemanYesAttack1'), +(5541, 127, 0, 15, 16572, 0, 0, 0, 10804, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Cast Spell Shoot'), +(5541, 127, 0, 28, 0, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Stand State to UNIT_STAND_STATE_STAND'), +(5541, 127, 0, 0, 0, 0, 0, 0, 10804, 100, 8, 2, 6137, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Say Text'), +(5541, 128, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.30383, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 130, 0, 15, 16776, 0, 0, 0, 10804, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Cast Spell Shoot'), +(5541, 130, 0, 0, 0, 0, 0, 0, 10804, 100, 8, 2, 6136, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Say Text'), +(5541, 130, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.05949, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 130, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.05949, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 130, 0, 16, 6250, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Play Sound B_RiflemanYesAttack1'), +(5541, 133, 0, 0, 0, 0, 0, 0, 10804, 100, 8, 2, 6138, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Say Text'), +(5541, 133, 0, 16, 6250, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Play Sound B_RiflemanYesAttack1'), +(5541, 133, 0, 15, 16779, 0, 0, 0, 10804, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Cast Spell Shoot'), +(5541, 133, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 1.88496, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 133, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 1.88496, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 136, 0, 1, 71, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Emote OneShotCheerNoSheathe'), +(5541, 136, 0, 16, 6246, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Play Sound B_RiflemanPissed1'), +(5541, 141, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0.799634, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 144, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 3.94123, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 144, 0, 1, 21, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Emote OneShotApplaud'), +(5541, 144, 0, 1, 21, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Emote OneShotApplaud'), +(5541, 144, 0, 1, 21, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Angus - Emote OneShotApplaud'), +(5541, 146, 0, 1, 2, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Emote OneShotBow'), +(5541, 146, 0, 1, 21, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Emote OneShotApplaud'), +(5541, 149, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 5.1664, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 153, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 4.71734, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 153, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.84489, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 153, 0, 35, 1, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.82743, 0, 'Ammo for Rumbleshot: Angus - Set Orientation'), +(5541, 156, 0, 3, 0, 8390, 1, 2, 10805, 100, 8, 2, 0, 0, 0, 0, -6077.43, -213.256, 424.05, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Move'), +(5541, 156, 0, 1, 4, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Angus - Emote OneShotCheer'), +(5541, 156, 0, 1, 4, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Emote OneShotCheer'), +(5541, 156, 0, 16, 6256, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Angus - Play Sound B_MortarTeamReady1'), +(5541, 166, 0, 15, 18634, 0, 0, 0, 10805, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Cast Spell Target Dummy - Event 001'), +(5541, 169, 0, 3, 0, 1999, 1, 2, 10805, 100, 8, 2, 0, 0, 0, 0, -6065.9, -202.298, 424.369, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Move'), +(5541, 172, 0, 35, 1, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 5.60543, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Set Orientation'), +(5541, 174, 0, 1, 3, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Emote OneShotWave'), +(5541, 177, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 4.83533, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 177, 0, 35, 1, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 3.83972, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Set Orientation'), +(5541, 177, 0, 3, 0, 359, 0, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6031.35, -228.597, 414.389, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 180, 0, 1, 69, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Set Emote State to STATE_USESTANDING'), +(5541, 180, 0, 1, 16, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Emote OneShotKneel'), +(5541, 185, 0, 1, 0, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Set Emote State to ONESHOT_NONE'), +(5541, 186, 0, 3, 0, 250, 0, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6031.53, -227.909, 414.404, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 188, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.87979, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 190, 0, 15, 18655, 0, 0, 0, 10611, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Cast Spell Mortar Animate'), +(5541, 190, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.9147, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 190, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 3.01942, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 190, 0, 1, 25, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Angus - Emote OneShotPoint'), +(5541, 193, 0, 15, 16786, 0, 0, 0, 10611, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Cast Spell Mortar Shot'), +(5541, 193, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.87979, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 196, 0, 1, 17, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Emote OneShotKiss'), +(5541, 199, 0, 1, 1, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Angus - Emote OneShotTalk'), +(5541, 199, 0, 16, 6252, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Angus - Play Sound B_MortarTeamPissed2'), +(5541, 199, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 4.86788, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 200, 0, 3, 0, 7144, 1, 2, 10805, 100, 8, 2, 0, 0, 0, 0, -6075.23, -213.59, 423.508, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Move'), +(5541, 201, 0, 1, 4, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Emote OneShotCheer'), +(5541, 204, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.87979, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 209, 0, 15, 18907, 0, 0, 0, 10805, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Cast Spell Target Dummy - Event 002'), +(5541, 212, 0, 3, 0, 1521, 1, 2, 10805, 100, 8, 2, 0, 0, 0, 0, -6071.88, -212.831, 422.929, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Move'), +(5541, 216, 0, 1, 66, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Emote OneShotSalute'), +(5541, 219, 0, 3, 0, 1137, 1, 2, 10805, 100, 8, 2, 0, 0, 0, 0, -6067.04, -205.921, 423.301, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Move'), +(5541, 222, 0, 3, 0, 187, 0, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6031.62, -228.859, 414.397, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 222, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 4.56243, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 222, 0, 35, 1, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 4.10152, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Set Orientation'), +(5541, 225, 0, 28, 8, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Set Stand State to UNIT_STAND_STATE_KNEEL'), +(5541, 227, 0, 16, 6254, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Play Sound B_MortarTeamPissed8'), +(5541, 230, 0, 1, 69, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Set Emote State to STATE_USESTANDING'), +(5541, 232, 0, 3, 0, 197, 0, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6031.5, -228.082, 414.401, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 232, 0, 1, 0, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Set Emote State to ONESHOT_NONE'), +(5541, 232, 0, 28, 0, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Set Stand State to UNIT_STAND_STATE_STAND'), +(5541, 233, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.87979, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 235, 0, 1, 25, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Emote OneShotPoint'), +(5541, 235, 0, 16, 6255, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Play Sound B_MortarTeamPissed9'), +(5541, 237, 0, 15, 18655, 0, 0, 0, 10611, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Cast Spell Mortar Animate'), +(5541, 240, 0, 15, 16786, 0, 0, 0, 10611, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Cast Spell Mortar Shot'), +(5541, 240, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.87979, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 241, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 4.86621, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 241, 0, 35, 1, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 1.72461, 0, 'Ammo for Rumbleshot: Angus - Set Orientation'), +(5541, 243, 0, 16, 6251, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Play Sound B_MortarTeamPissed1'), +(5541, 243, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 5.21647, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 243, 0, 1, 1, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Angus - Emote OneShotTalk'), +(5541, 243, 0, 1, 25, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Emote OneShotPoint'), +(5541, 245, 0, 1, 21, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Emote OneShotApplaud'), +(5541, 245, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 4.79595, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 246, 0, 35, 1, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.82743, 0, 'Ammo for Rumbleshot: Angus - Set Orientation'), +(5541, 246, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.87979, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 246, 0, 3, 0, 6616, 1, 2, 10805, 100, 8, 2, 0, 0, 0, 0, -6077.06, -212.226, 423.851, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Move'), +(5541, 248, 0, 1, 4, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Emote OneShotCheer'), +(5541, 256, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.9147, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 256, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 3.01942, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 258, 0, 15, 19723, 0, 0, 0, 10805, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Cast Spell Advanced Target Dummy - Event 003'), +(5541, 261, 0, 3, 0, 2275, 1, 2, 10805, 100, 8, 2, 0, 0, 0, 0, -6071.55, -212.96, 422.894, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Move'), +(5541, 264, 0, 35, 1, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 5.92214, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Set Orientation'), +(5541, 266, 0, 1, 25, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Emote OneShotPoint'), +(5541, 267, 0, 1, 11, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Emote OneShotLaugh'), +(5541, 267, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.78054, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 267, 0, 35, 1, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.73678, 0, 'Ammo for Rumbleshot: Angus - Set Orientation'), +(5541, 269, 0, 16, 6258, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Play Sound B_MortarTeamYesAttack4'), +(5541, 269, 0, 1, 15, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Emote OneShotRoar'), +(5541, 269, 0, 1, 5, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Angus - Emote OneShotExclamation'), +(5541, 271, 0, 1, 5, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Emote OneShotExclamation'), +(5541, 271, 0, 15, 18655, 0, 0, 0, 10611, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Cast Spell Mortar Animate'), +(5541, 274, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.78054, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 274, 0, 3, 0, 5521, 1, 2, 10805, 100, 8, 2, 0, 0, 0, 0, -6040.96, -221.929, 414.921, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Move'), +(5541, 274, 0, 15, 16786, 0, 0, 0, 10611, 100, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Cast Spell Mortar Shot'), +(5541, 275, 0, 1, 10, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Angus - Set Emote State to STATE_DANCE'), +(5541, 275, 0, 1, 10, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Set Emote State to STATE_DANCE'), +(5541, 280, 0, 35, 1, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 5.70657, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Set Orientation'), +(5541, 282, 0, 1, 14, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Emote OneShotRude'), +(5541, 285, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.56498, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 285, 0, 1, 0, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Set Emote State to ONESHOT_NONE'), +(5541, 285, 0, 1, 0, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Angus - Set Emote State to ONESHOT_NONE'), +(5541, 285, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 3.23445, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 285, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.93859, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 285, 0, 35, 1, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.43675, 0, 'Ammo for Rumbleshot: Angus - Set Orientation'), +(5541, 285, 0, 1, 14, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Emote OneShotRude'), +(5541, 287, 0, 1, 11, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Emote OneShotLaugh'), +(5541, 287, 0, 1, 11, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Angus - Emote OneShotLaugh'), +(5541, 288, 0, 1, 11, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Emote OneShotLaugh'), +(5541, 288, 0, 1, 11, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Emote OneShotLaugh'), +(5541, 290, 0, 1, 11, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Angus - Emote OneShotLaugh'), +(5541, 290, 0, 1, 11, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Emote OneShotLaugh'), +(5541, 292, 0, 1, 11, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Emote OneShotLaugh'), +(5541, 292, 0, 1, 11, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Emote OneShotLaugh'), +(5541, 293, 0, 3, 0, 12018, 1, 2, 10805, 100, 8, 2, 0, 0, 0, 0, -6004.26, -199.009, 406.63, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Move'), +(5541, 295, 0, 3, 0, 3757, 1, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6025.35, -225.434, 412.854, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 295, 0, 3, 0, 3703, 1, 2, 10804, 100, 8, 2, 0, 0, 0, 0, -6025.15, -221.917, 412.408, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Move'), +(5541, 296, 0, 3, 0, 2647, 1, 2, 10803, 100, 8, 2, 0, 0, 0, 0, -6025.58, -219.791, 412.21, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Move'), +(5541, 296, 0, 3, 0, 3394, 1, 2, 10610, 100, 8, 2, 0, 0, 0, 0, -6023.85, -227.594, 413.132, 0, 0, 'Ammo for Rumbleshot: Angus - Move'), +(5541, 296, 0, 3, 0, 4770, 1, 2, 10804, 100, 8, 2, 0, 0, 0, 0, -6020.98, -216.882, 411.052, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Move'), +(5541, 296, 0, 3, 0, 4096, 1, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6022.63, -221.544, 411.964, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 298, 0, 3, 0, 3090, 1, 2, 10803, 100, 8, 2, 0, 0, 0, 0, -6022.66, -215.729, 411.134, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Move'), +(5541, 298, 0, 3, 0, 3433, 1, 2, 10610, 100, 8, 2, 0, 0, 0, 0, -6022.45, -223.844, 412.259, 0, 0, 'Ammo for Rumbleshot: Angus - Move'), +(5541, 300, 0, 3, 0, 3787, 1, 2, 10610, 100, 8, 2, 0, 0, 0, 0, -6019.88, -219.816, 411.273, 0, 0, 'Ammo for Rumbleshot: Angus - Move'), +(5541, 300, 0, 3, 0, 3962, 1, 2, 10803, 100, 8, 2, 0, 0, 0, 0, -6019.62, -210.561, 409.634, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Move'), +(5541, 300, 0, 3, 0, 5287, 1, 2, 10804, 100, 8, 2, 0, 0, 0, 0, -6016.72, -208.953, 408.759, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Move'), +(5541, 300, 0, 3, 0, 3751, 1, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6018.57, -215.868, 410.484, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 301, 0, 3, 0, 5324, 1, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6014.18, -209.504, 408.665, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 301, 0, 3, 0, 5160, 1, 2, 10803, 100, 8, 2, 0, 0, 0, 0, -6016.22, -204.702, 407.772, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Move'), +(5541, 301, 0, 3, 0, 4978, 1, 2, 10610, 100, 8, 2, 0, 0, 0, 0, -6016.5, -213.851, 409.876, 0, 0, 'Ammo for Rumbleshot: Angus - Move'), +(5541, 303, 0, 3, 0, 4648, 1, 2, 10804, 100, 8, 2, 0, 0, 0, 0, -6014.79, -202.942, 407.427, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Move'), +(5541, 304, 0, 3, 0, 5305, 1, 2, 10610, 100, 8, 2, 0, 0, 0, 0, -6011.84, -206.613, 407.865, 0, 0, 'Ammo for Rumbleshot: Angus - Move'), +(5541, 304, 0, 3, 0, 5653, 1, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6007.59, -203.733, 407.27, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 304, 0, 3, 0, 5430, 1, 2, 10803, 100, 8, 2, 0, 0, 0, 0, -6011.58, -197.707, 406.85, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Move'), +(5541, 306, 0, 3, 0, 1332, 0, 2, 10805, 100, 8, 2, 0, 0, 0, 0, -6007.3, -200.348, 406.864, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Move'), +(5541, 308, 0, 3, 0, 684, 1, 2, 10804, 100, 8, 2, 0, 0, 0, 0, -6010.67, -199.434, 406.865, 0, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Move'), +(5541, 308, 0, 35, 1, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 3.29867, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Set Orientation'), +(5541, 308, 1, 34, 2, 0, 0, 0, 10805, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Spotter Klemmy - Reset Home Position'), +(5541, 309, 0, 35, 1, 0, 0, 0, 10804, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 5.53269, 0, 'Ammo for Rumbleshot: Rifleman Middlecamp - Set Orientation'), +(5541, 311, 0, 3, 0, 604, 1, 2, 10610, 100, 8, 2, 0, 0, 0, 0, -6009.25, -202.65, 407.015, 0, 0, 'Ammo for Rumbleshot: Angus - Move'), +(5541, 311, 0, 3, 0, 1351, 0, 2, 10803, 100, 8, 2, 0, 0, 0, 0, -6008.53, -199.145, 406.857, 0, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Move'), +(5541, 311, 0, 3, 0, 637, 0, 2, 10611, 100, 8, 2, 0, 0, 0, 0, -6007.46, -202.158, 407.081, 0, 0, 'Ammo for Rumbleshot: Shorty - Move'), +(5541, 313, 0, 35, 1, 0, 0, 0, 10610, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 1.58825, 0, 'Ammo for Rumbleshot: Angus - Set Orientation'), +(5541, 313, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.47837, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 313, 0, 35, 1, 0, 0, 0, 10803, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 4.24115, 0, 'Ammo for Rumbleshot: Rifleman Wheeler - Set Orientation'), +(5541, 317, 0, 35, 1, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 2.4379, 0, 'Ammo for Rumbleshot: Shorty - Set Orientation'), +(5541, 317, 1, 34, 2, 0, 0, 0, 10611, 100, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ammo for Rumbleshot: Shorty - Reset Home Position'), +(5541, 320, 0, 35, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0349066, 0, 'Ammo for Rumbleshot: Hegnar Rumbleshot - Set Orientation'); + +-- Define correct coordinates for spells. +REPLACE INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`, `build_min`, `build_max`) VALUES (16768, 0, -6051.39, -206.749, 418.159, 0, 0, 5875); +REPLACE INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`, `build_min`, `build_max`) VALUES (16772, 0, -6046.84, -204.535, 416.897, 0, 0, 5875); +REPLACE INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`, `build_min`, `build_max`) VALUES (16767, 0, -6046.73, -207.159, 417.267, 0, 0, 5875); +REPLACE INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`, `build_min`, `build_max`) VALUES (16777, 0, -6044.53, -202.912, 416.756, 0, 0, 5875); +REPLACE INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`, `build_min`, `build_max`) VALUES (16780, 0, -6044.79, -196.959, 419.19, 0, 0, 5875); +REPLACE INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`, `build_min`, `build_max`) VALUES (16775, 0, -6044.47, -205.783, 417.267, 0, 0, 5875); +REPLACE INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`, `build_min`, `build_max`) VALUES (16778, 0, -6042.18, -204.949, 416.336, 0, 0, 5875); +REPLACE INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`, `build_min`, `build_max`) VALUES (16572, 0, -6046.85, -207.329, 418.304, 0, 0, 5875); +REPLACE INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`, `build_min`, `build_max`) VALUES (16776, 0, -6044.54, -205.562, 417.663, 0, 0, 5875); +REPLACE INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`, `build_min`, `build_max`) VALUES (16779, 0, -6042.02, -204.134, 416.894, 0, 0, 5875); +REPLACE INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`, `build_min`, `build_max`) VALUES (18634, 0, -6076, -215, 424, 6.06, 0, 5875); +REPLACE INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`, `build_min`, `build_max`) VALUES (16786, 0, -6078.3, -211.89, 424.197, 0, 0, 5875); +REPLACE INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`, `build_min`, `build_max`) VALUES (18907, 0, -6074, -215, 423, 6.06, 0, 5875); +REPLACE INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`, `build_min`, `build_max`) VALUES (19723, 0, -6074, -215, 423, 6.06, 0, 5875); + +-- Events list for Mortar Team Target Dummy +DELETE FROM `creature_ai_events` WHERE `creature_id`=11875; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1187501, 11875, 0, 8, 0, 100, 0, 16786, -1, 0, 0, 1187501, 0, 0, 'Mortar Team Target Dummy - Cast Spell Quiet Suicide on Hit By Spell Mortar Shot'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1187502, 11875, 0, 1, 0, 100, 0, 0, 0, 0, 0, 1187502, 0, 0, 'Mortar Team Target Dummy - Stop Moving OOC'); +DELETE FROM `creature_ai_scripts` WHERE `id`=1187501; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1187501, 0, 0, 15, 3617, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Mortar Team Target Dummy - Cast Spell Quiet Suicide'); +DELETE FROM `creature_ai_scripts` WHERE `id`=1187502; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1187502, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Mortar Team Target Dummy - Set Command State to Stay'), +(1187502, 0, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Mortar Team Target Dummy - Move Idle'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=11875; + +-- Events list for Mortar Team Advanced Target Dummy +DELETE FROM `creature_ai_events` WHERE `creature_id`=12385; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1238501, 12385, 0, 8, 0, 100, 0, 16786, -1, 0, 0, 1238501, 0, 0, 'Mortar Team Advanced Target Dummy - Cast Spell Quiet Suicide on Hit By Spell Mortar Shot'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1238502, 12385, 0, 1, 0, 100, 0, 0, 0, 0, 0, 1238502, 0, 0, 'Mortar Team Advanced Target Dummy - Stop Moving OOC'); +DELETE FROM `creature_ai_scripts` WHERE `id`=1238501; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1238501, 0, 0, 15, 3617, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Mortar Team Advanced Target Dummy - Cast Spell Quiet Suicide'); +DELETE FROM `creature_ai_scripts` WHERE `id`=1238502; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1238502, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Mortar Team Advanced Target Dummy - Set Command State to Stay'), +(1238502, 0, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Mortar Team Advanced Target Dummy - Move Idle'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=12385; + +-- Remove old scripts. + +-- go_mortar +UPDATE `gameobject_template` SET `script_name`='' WHERE `entry`=176557; +-- npc_angus +UPDATE `creature_template` SET `script_name`='' WHERE `entry`=10610; +-- npc_mortar_team_target_dummy +UPDATE `creature_template` SET `script_name`='' WHERE `entry`=11875; +UPDATE `creature_template` SET `script_name`='' WHERE `entry`=12385; +-- npc_mortar_team_watcher +DELETE FROM `creature` WHERE `id`=20113; +DELETE FROM `creature_template` WHERE `entry`=20113; +-- npc_rifleman_middlecamp +UPDATE `creature_template` SET `script_name`='' WHERE `entry`=10804; +-- npc_rifleman_wheeler +UPDATE `creature_template` SET `script_name`='' WHERE `entry`=10803; +-- npc_shorty +UPDATE `creature_template` SET `script_name`='' WHERE `entry`=10611; +-- npc_spotter_klemmy +UPDATE `creature_template` SET `script_name`='' WHERE `entry`=10805; + +-- Remove not needed game event. +-- This script is triggered by turning in a quest, not periodically. +DELETE FROM `game_event` WHERE `entry`=67; +DELETE FROM `game_event_creature` WHERE `event`=67; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/AI/CreatureAI.cpp b/src/game/AI/CreatureAI.cpp index 529304d6ee5..4eddf286b20 100644 --- a/src/game/AI/CreatureAI.cpp +++ b/src/game/AI/CreatureAI.cpp @@ -286,7 +286,7 @@ struct EnterEvadeModeHelper { if (unit->IsCreature() && unit->ToCreature()->IsTotem()) ((Totem*)unit)->UnSummon(); - else + else if (unit->IsAlive()) { unit->GetMotionMaster()->Clear(false); // for a controlled unit this will result in a follow move diff --git a/src/scripts/CMakeLists.txt b/src/scripts/CMakeLists.txt index 3a3e46cdae0..90429d27cde 100644 --- a/src/scripts/CMakeLists.txt +++ b/src/scripts/CMakeLists.txt @@ -9,7 +9,6 @@ set (SCRIPTS_SRCS eastern_kingdoms/burning_steppes/blackrock_spire/blackrock_spire.h eastern_kingdoms/burning_steppes/blackwing_lair/blackwing_lair.h eastern_kingdoms/burning_steppes/molten_core/molten_core.h - eastern_kingdoms/dun_morogh/dun_morogh.h eastern_kingdoms/dun_morogh/gnomeregan/gnomeregan.h eastern_kingdoms/eastern_plaguelands/naxxramas/naxxramas.h eastern_kingdoms/eastern_plaguelands/stratholme/stratholme.h diff --git a/src/scripts/eastern_kingdoms/dun_morogh/dun_morogh.cpp b/src/scripts/eastern_kingdoms/dun_morogh/dun_morogh.cpp index f538cc57e3e..f3befc289fe 100644 --- a/src/scripts/eastern_kingdoms/dun_morogh/dun_morogh.cpp +++ b/src/scripts/eastern_kingdoms/dun_morogh/dun_morogh.cpp @@ -3,7 +3,6 @@ */ #include "scriptPCH.h" -#include "dun_morogh.h" /*###### ## npc_narm_faulk @@ -60,1365 +59,6 @@ CreatureAI* GetAI_npc_narm_faulk(Creature* pCreature) return new npc_narm_faulkAI(pCreature); } -/* -* Angus (Mortar Team event support) -*/ - -npc_angusAI::npc_angusAI(Creature* pCreature) : ScriptedAI(pCreature) -{ - m_bEventProcessed = false; - m_bActionPosReached = false; - m_bReturningHome = false; - m_bSubEventProcessed = false; - m_uiDoTimer = 0; - m_uiAction = 0; - - npc_angusAI::Reset(); -} - -void npc_angusAI::Reset() { } - -void npc_angusAI::StartEvent() -{ - m_bEventProcessed = true; - m_creature->GetMotionMaster()->MovePoint(0, AngusMove[0][0], AngusMove[0][1], AngusMove[0][2], MOVE_PATHFINDING, 0, 1.778f); -} - -void npc_angusAI::FinishEvent() -{ - m_bActionPosReached = false; - m_bReturningHome = true; - m_creature->GetMotionMaster()->MovePoint(EPOS_ANGUS, AngusMove[EPOS_ANGUS][0], AngusMove[EPOS_ANGUS][1], AngusMove[EPOS_ANGUS][2], MOVE_PATHFINDING); -} - -void npc_angusAI::StartSubEvent() -{ - m_bSubEventProcessed = true; -} - -void npc_angusAI::MovementInform(uint32 uiType, uint32 uiPointId) -{ - if (!m_bEventProcessed || uiType != POINT_MOTION_TYPE) - return; - - if (m_bActionPosReached) - return; - - if (uiPointId == EPOS_ANGUS && !m_bReturningHome) - { - m_bActionPosReached = true; - return; - } - - if (!uiPointId && m_bReturningHome) - { - m_bReturningHome = false; - m_bEventProcessed = false; - m_bSubEventProcessed = false; - m_uiDoTimer = 0; - m_uiAction = 0; - return; - } - - float orient = m_bReturningHome ? (uiPointId == 1 ? 1.778f : -10.0f) : uiPointId == EPOS_ANGUS - 1 ? 1.76f : -10.0f; - uint8 nPoint = m_bReturningHome ? uiPointId - 1 : uiPointId + 1; - - m_creature->GetMotionMaster()->MovePoint(nPoint, AngusMove[nPoint][0], AngusMove[nPoint][1], AngusMove[nPoint][2], MOVE_PATHFINDING, 0, orient); -} - -void npc_angusAI::UpdateAI(uint32 const uiDiff) -{ - if (!m_bSubEventProcessed) - { - ScriptedAI::UpdateAI(uiDiff); - return; - } - - if (m_uiDoTimer < uiDiff) - { - switch (m_uiAction) - { - case 0: - m_creature->SetFacingTo(2.76f); - m_creature->SetOrientation(2.76f); - m_uiDoTimer = 1000; - ++m_uiAction; - break; - case 1: - m_creature->HandleEmote(EMOTE_ONESHOT_CHEER); - m_bSubEventProcessed = false; - ++m_uiAction; - break; - case 2: - break; - } - } - else - m_uiDoTimer -= uiDiff; -} - -CreatureAI* GetAI_npc_angus(Creature* pCreature) -{ - return new npc_angusAI(pCreature); -} - -/* -* Rifleman Middlecamp (Mortar Team event support) -*/ - -npc_rifleman_middlecampAI::npc_rifleman_middlecampAI(Creature* pCreature) : ScriptedAI(pCreature) -{ - m_bEventProcessed = false; - m_bActionPosReached = false; - m_bSubEventProcessed = false; - m_bReturningHome = false; - m_uiDoTimer = 0; - m_uiAction = 0; - - npc_rifleman_middlecampAI::Reset(); -} - -void npc_rifleman_middlecampAI::Reset() { } - -void npc_rifleman_middlecampAI::StartEvent() -{ - m_bEventProcessed = true; - m_creature->GetMotionMaster()->MovePoint(0, MiddlecampMove[0][0], MiddlecampMove[0][1], MiddlecampMove[0][2], MOVE_PATHFINDING, 0, 5.587f); -} - -void npc_rifleman_middlecampAI::FinishEvent() -{ - m_bActionPosReached = false; - m_bReturningHome = true; - m_creature->GetMotionMaster()->MovePoint(EPOS_MIDDLECAMP, MiddlecampMove[EPOS_MIDDLECAMP][0], MiddlecampMove[EPOS_MIDDLECAMP][1], MiddlecampMove[EPOS_MIDDLECAMP][2], MOVE_PATHFINDING); -} - -void npc_rifleman_middlecampAI::StartSubEvent() -{ - m_bSubEventProcessed = true; -} - -void npc_rifleman_middlecampAI::MovementInform(uint32 uiType, uint32 uiPointId) -{ - if (!m_bEventProcessed || uiType != POINT_MOTION_TYPE) - return; - - if (m_bActionPosReached) - return; - - if (uiPointId == EPOS_MIDDLECAMP && !m_bReturningHome) - { - m_bActionPosReached = true; - return; - } - - if (!uiPointId && m_bReturningHome) - { - m_bReturningHome = false; - m_bEventProcessed = false; - m_bSubEventProcessed = false; - m_uiDoTimer = 0; - m_uiAction = 0; - return; - } - - float orient = m_bReturningHome ? (uiPointId == 1 ? 5.587f : -10.0f) : uiPointId == EPOS_MIDDLECAMP - 1 ? 2.05f : -10.0f; - uint8 nPoint = m_bReturningHome ? uiPointId - 1 : uiPointId + 1; - - m_creature->GetMotionMaster()->MovePoint(nPoint, MiddlecampMove[nPoint][0], MiddlecampMove[nPoint][1], MiddlecampMove[nPoint][2], MOVE_PATHFINDING, 0, orient); -} - -void npc_rifleman_middlecampAI::UpdateAI(uint32 const uiDiff) -{ - if (!m_bSubEventProcessed) - { - ScriptedAI::UpdateAI(uiDiff); - return; - } - - if (m_uiDoTimer < uiDiff) - { - switch (m_uiAction) - { - case 0: - DoScriptText(SHOOT1EMOTE1, m_creature); - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 1: - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 2: - DoCastSpellIfCan(m_creature, SPELL_SHOOT_1); - DoScriptText(SHOOT1EMOTE2, m_creature); - m_creature->SetSheath(SHEATH_STATE_UNARMED); - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 3: - m_creature->HandleEmote(EMOTE_ONESHOT_QUESTION); - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 4: - DoScriptText(SHOOT2EMOTE1, m_creature); - DoCastSpellIfCan(m_creature, SPELL_SHOOT_2); - DoPlaySoundToSet(m_creature, SOUND_RIFLEMAN_2); - m_uiDoTimer = 4000; - ++m_uiAction; - break; - case 5: - DoScriptText(SHOOT2EMOTE2, m_creature); - m_creature->SetSheath(SHEATH_STATE_UNARMED); - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 6: - if (auto pWheeler = m_creature->FindNearestCreature(NPC_RIFLEMAN_WHEELER, 30)) - { - m_creature->SetFacingToObject(pWheeler); - m_creature->HandleEmote(EMOTE_ONESHOT_EXCLAMATION); - pWheeler->HandleEmote(EMOTE_ONESHOT_LAUGH); - } - - if (auto pAngus = m_creature->FindNearestCreature(NPC_ANGUS, 30)) - { - pAngus->HandleEmote(EMOTE_ONESHOT_YES); - } - - if (auto pShorty = m_creature->FindNearestCreature(NPC_SHORTY, 30)) - { - pShorty->HandleEmote(EMOTE_ONESHOT_NO); - } - - m_uiDoTimer = 8000; - ++m_uiAction; - break; - case 7: - m_creature->SetFacingTo(2.05f); - m_creature->SetOrientation(2.05f); - m_uiDoTimer = 10000; - ++m_uiAction; - break; - case 8: - DoCastSpellIfCan(m_creature, SPELL_SHOOT_4); - DoScriptText(SHOOT4EMOTE1, m_creature); - m_uiDoTimer = 3000; - ++m_uiAction; - break; - case 9: - DoScriptText(SHOOT1EMOTE2, m_creature); - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 10: - m_creature->HandleEmote(EMOTE_ONESHOT_BEG); // roar? - m_uiDoTimer = 8000; - ++m_uiAction; - break; - case 11: - DoCastSpellIfCan(m_creature, SPELL_SHOOT_5); - DoScriptText(SHOOT5EMOTE1, m_creature); - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 12: - DoScriptText(SHOOT2EMOTE2, m_creature); - m_uiDoTimer = 1000; - ++m_uiAction; - break; - case 13: - m_creature->HandleEmote(EMOTE_ONESHOT_CRY); - m_uiDoTimer = 14000; - ++m_uiAction; - break; - case 14: - if (auto pWheeler = m_creature->FindNearestCreature(NPC_RIFLEMAN_WHEELER, 30)) - { - m_creature->SetFacingToObject(pWheeler); - m_creature->HandleEmote(EMOTE_ONESHOT_POINT); - } - m_uiDoTimer = 1000; - ++m_uiAction; - break; - case 15: - m_creature->HandleEmote(EMOTE_ONESHOT_LAUGH); - m_uiDoTimer = 4000; - ++m_uiAction; - break; - case 16: - m_creature->SetFacingTo(2.05f); - m_creature->SetOrientation(2.05f); - m_uiDoTimer = 1000; - ++m_uiAction; - break; - case 17: - DoPlaySoundToSet(m_creature, SOUND_RIFLEMAN_5); - DoCastSpellIfCan(m_creature, SPELL_SHOOT_8); - DoScriptText(SHOOT8EMOTE1, m_creature); - m_uiDoTimer = 1000; - ++m_uiAction; - break; - case 18: - DoPlaySoundToSet(m_creature, SOUND_RIFLEMAN_5); - DoCastSpellIfCan(m_creature, SPELL_SHOOT_9); - DoScriptText(SHOOT9EMOTE1, m_creature); - m_uiDoTimer = 1000; - ++m_uiAction; - break; - case 19: - DoPlaySoundToSet(m_creature, SOUND_RIFLEMAN_5); - DoCastSpellIfCan(m_creature, SPELL_SHOOT_10); - DoScriptText(SHOOT10EMOTE1, m_creature); - m_uiDoTimer = 1000; - ++m_uiAction; - break; - case 20: - m_creature->HandleEmote(EMOTE_ONESHOT_CHEER_NOSHEATHE); - DoPlaySoundToSet(m_creature, SOUND_RIFLEMAN_1); - m_uiDoTimer = 6000; - ++m_uiAction; - break; - case 21: - if (auto pWheeler = m_creature->FindNearestCreature(NPC_RIFLEMAN_WHEELER, 30)) - { - m_creature->SetFacingToObject(pWheeler); - pWheeler->SetFacingToObject(m_creature); - m_creature->HandleEmote(EMOTE_ONESHOT_BOW); - pWheeler->HandleEmote(EMOTE_ONESHOT_APPLAUD); - } - - if (auto pArgus = m_creature->FindNearestCreature(NPC_ANGUS, 30)) - { - pArgus->HandleEmote(EMOTE_ONESHOT_APPLAUD); - } - - if (auto pShorty = m_creature->FindNearestCreature(NPC_SHORTY, 30)) - { - pShorty->HandleEmote(EMOTE_ONESHOT_APPLAUD); - } - - m_uiDoTimer = 3000; - ++m_uiAction; - break; - case 22: - if (auto pShorty = m_creature->FindNearestCreature(NPC_SHORTY, 30)) - { - m_creature->SetFacingToObject(pShorty); - } - - ++m_uiAction; - break; - } - } - else - m_uiDoTimer -= uiDiff; -} - -CreatureAI* GetAI_npc_rifleman_middlecamp(Creature* pCreature) -{ - return new npc_rifleman_middlecampAI(pCreature); -} - -/* -* Rifleman Wheeler (Mortar Team event support) -*/ - -npc_rifleman_wheelerAI::npc_rifleman_wheelerAI(Creature* pCreature) : ScriptedAI(pCreature) -{ - m_bEventProcessed = false; - m_bActionPosReached = false; - m_bSubEventProcessed = false; - m_bReturningHome = false; - m_uiDoTimer = 22000; - m_uiAction = 0; - - npc_rifleman_wheelerAI::Reset(); -} - -void npc_rifleman_wheelerAI::Reset() { } - -void npc_rifleman_wheelerAI::StartEvent() -{ - m_bEventProcessed = true; - m_creature->GetMotionMaster()->MovePoint(0, WheelerMove[0][0], WheelerMove[0][1], WheelerMove[0][2], MOVE_PATHFINDING, 0, 4.66f); -} - -void npc_rifleman_wheelerAI::FinishEvent() -{ - m_bActionPosReached = false; - m_bReturningHome = true; - m_creature->GetMotionMaster()->MovePoint(EPOS_WHEELER, WheelerMove[EPOS_WHEELER][0], WheelerMove[EPOS_WHEELER][1], WheelerMove[EPOS_WHEELER][2], MOVE_PATHFINDING); -} - -void npc_rifleman_wheelerAI::StartSubEvent() -{ - m_bSubEventProcessed = true; -} - -void npc_rifleman_wheelerAI::PokeMortarGuys() const -{ - auto pShorty = m_creature->FindNearestCreature(NPC_SHORTY, 50); - auto pAngus = m_creature->FindNearestCreature(NPC_ANGUS, 50); - auto pKlemmy = m_creature->FindNearestCreature(NPC_SPOTTER_KLEMMY, 80); - - if (!pShorty || !pAngus || !pKlemmy) - { - return; - } - - auto pShortyAI = static_cast(pShorty->AI()); - auto pAngusAI = static_cast(pAngus->AI()); - auto pKlemmyAI = static_cast(pKlemmy->AI()); - - if (!pShortyAI || !pAngusAI || !pKlemmyAI) - { - return; - } - - pShortyAI->StartSubEvent(); - pAngusAI->StartSubEvent(); - pKlemmyAI->StartSubEvent(); -} - -void npc_rifleman_wheelerAI::MovementInform(uint32 uiType, uint32 uiPointId) -{ - if (!m_bEventProcessed || uiType != POINT_MOTION_TYPE) - return; - - if (m_bActionPosReached) - return; - - if (uiPointId == EPOS_WHEELER && !m_bReturningHome) - { - m_bActionPosReached = true; - return; - } - - if (!uiPointId && m_bReturningHome) - { - m_bReturningHome = false; - m_bEventProcessed = false; - m_bSubEventProcessed = false; - m_uiDoTimer = 22000; - m_uiAction = 0; - return; - } - - float orient = m_bReturningHome ? (uiPointId == 1 ? 4.66f : -10.0f) : uiPointId == EPOS_WHEELER - 1 ? 2.39f : -10.0f; - uint8 nPoint = m_bReturningHome ? uiPointId - 1 : uiPointId + 1; - - m_creature->GetMotionMaster()->MovePoint(nPoint, WheelerMove[nPoint][0], WheelerMove[nPoint][1], WheelerMove[nPoint][2], MOVE_PATHFINDING, 0, orient); -} - -void npc_rifleman_wheelerAI::UpdateAI(uint32 const uiDiff) -{ - if (!m_bSubEventProcessed) - { - ScriptedAI::UpdateAI(uiDiff); - return; - } - - if (m_uiDoTimer < uiDiff) - { - switch (m_uiAction) - { - case 0: - DoScriptText(SHOOT3EMOTE1, m_creature); - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 1: - DoCastSpellIfCan(m_creature, SPELL_SHOOT_3); - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 2: - DoScriptText(SHOOT3EMOTE2, m_creature); - m_uiDoTimer = 1000; - ++m_uiAction; - break; - case 3: - if (auto pMiddlecamp = m_creature->FindNearestCreature(NPC_RIFLEMAN_MIDDLECAMP, 30)) - { - m_creature->SetFacingToObject(pMiddlecamp); - m_creature->HandleEmote(EMOTE_ONESHOT_POINT); - DoPlaySoundToSet(m_creature, SOUND_RIFLEMAN_4); - } - - if (auto pArgus = m_creature->FindNearestCreature(NPC_ANGUS, 30)) - { - pArgus->HandleEmote(EMOTE_ONESHOT_APPLAUD); - } - - if (auto pShorty = m_creature->FindNearestCreature(NPC_SHORTY, 30)) - { - pShorty->HandleEmote(EMOTE_ONESHOT_APPLAUD); - } - - m_uiDoTimer = 3000; - ++m_uiAction; - break; - case 4: - m_creature->HandleEmote(EMOTE_ONESHOT_FLEX); - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 5: - m_creature->SetOrientation(2.39f); - m_uiDoTimer = 7000; - ++m_uiAction; - break; - case 6: - if (auto pMiddlecamp = m_creature->FindNearestCreature(NPC_RIFLEMAN_MIDDLECAMP, 30)) - { - m_creature->SetFacingToObject(pMiddlecamp); - m_creature->HandleEmote(EMOTE_ONESHOT_QUESTION); - DoPlaySoundToSet(m_creature, SOUND_RIFLEMAN_3); - } - - m_uiDoTimer = 4000; - ++m_uiAction; - break; - case 7: - m_creature->SetFacingTo(2.39f); - m_creature->SetOrientation(2.39f); - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 8: - DoCastSpellIfCan(m_creature, SPELL_SHOOT_6); - m_uiDoTimer = 11000; - ++m_uiAction; - break; - case 9: // 56 s - DoScriptText(SHOOT6EMOTE1, m_creature); - DoCastSpellIfCan(m_creature, SPELL_SHOOT_7); - DoScriptText(SHOOT7EMOTE1, m_creature); - m_uiDoTimer = 5000; - ++m_uiAction; - break; - case 10: - DoScriptText(SHOOT7EMOTE2, m_creature); - if (auto pMiddlecamp = m_creature->FindNearestCreature(NPC_RIFLEMAN_MIDDLECAMP, 30)) - { - m_creature->SetFacingToObject(pMiddlecamp); - m_creature->HandleEmote(EMOTE_ONESHOT_EXCLAMATION); - } - - m_uiDoTimer = 19000; - ++m_uiAction; - break; - case 11: - if (auto pShorty = m_creature->FindNearestCreature(NPC_SHORTY, 30)) - { - m_creature->SetFacingToObject(pShorty); - } - - PokeMortarGuys(); - ++m_uiAction; - break; - } - } - else - m_uiDoTimer -= uiDiff; -} - -CreatureAI* GetAI_npc_rifleman_wheeler(Creature* pCreature) -{ - return new npc_rifleman_wheelerAI(pCreature); -} - -/* -* Shorty (Mortar Team event support) -*/ - -npc_shortyAI::npc_shortyAI(Creature* pCreature) : ScriptedAI(pCreature) -{ - m_bEventProcessed = false; - m_bActionPosReached = false; - m_bReturningHome = false; - m_bEventProcessed = false; - m_bSubEventProcessed = false; - m_uiDoTimer = 0; - m_uiAction = 0; - - npc_shortyAI::Reset(); -} - -void npc_shortyAI::Reset() { } - -void npc_shortyAI::StartEvent() -{ - m_bEventProcessed = true; - m_creature->GetMotionMaster()->MovePoint(0, ShortyMove[0][0], ShortyMove[0][1], ShortyMove[0][2], MOVE_PATHFINDING, 3.0f, 2.473f); -} - -void npc_shortyAI::FinishEvent() -{ - m_bActionPosReached = false; - m_bReturningHome = true; - m_creature->GetMotionMaster()->MovePoint(EPOS_SHORTY, ShortyMove[EPOS_SHORTY][0], ShortyMove[EPOS_SHORTY][1], ShortyMove[EPOS_SHORTY][2], MOVE_PATHFINDING, 3.0f); -} - -void npc_shortyAI::StartSubEvent() -{ - m_bSubEventProcessed = true; -} - -void npc_shortyAI::PokeRiflemen() const -{ - auto pRiflemanMiddlecamp = m_creature->FindNearestCreature(NPC_RIFLEMAN_MIDDLECAMP, 30); - auto pRiflemanWheeler = m_creature->FindNearestCreature(NPC_RIFLEMAN_WHEELER, 30); - - if (!pRiflemanMiddlecamp || !pRiflemanWheeler) - { - return; - } - - auto pRiflemanMiddlecampAI = static_cast(pRiflemanMiddlecamp->AI()); - auto pRiflemanWheelerAI = static_cast(pRiflemanWheeler->AI()); - - if (!pRiflemanMiddlecampAI || !pRiflemanWheelerAI) - { - return; - } - - pRiflemanMiddlecampAI->StartSubEvent(); - pRiflemanWheelerAI->StartSubEvent(); -} - -void npc_shortyAI::MovementInform(uint32 uiType, uint32 uiPointId) -{ - if (!m_bEventProcessed || uiType != POINT_MOTION_TYPE) - return; - - if (m_bActionPosReached) - return; - - if (uiPointId == EPOS_SHORTY && !m_bReturningHome) - { - PokeRiflemen(); - m_bActionPosReached = true; - return; - } - - if (!uiPointId && m_bReturningHome) - { - m_bReturningHome = false; - m_bEventProcessed = false; - m_bSubEventProcessed = false; - m_uiDoTimer = 0; - m_uiAction = 0; - return; - } - - float orient = m_bReturningHome ? (uiPointId == 1 ? 2.473f : -10.0f) : uiPointId == EPOS_SHORTY - 1 ? 2.09f : -10.0f; - uint8 nPoint = m_bReturningHome ? uiPointId - 1 : uiPointId + 1; - - m_creature->GetMotionMaster()->MovePoint(nPoint, ShortyMove[nPoint][0], ShortyMove[nPoint][1], ShortyMove[nPoint][2], MOVE_PATHFINDING, 3.0f, orient); -} - -void npc_shortyAI::UpdateAI(uint32 const uiDiff) -{ - if (!m_bSubEventProcessed) - { - //ScriptedAI::UpdateAI(uiDiff); - return; - } - - if (m_uiDoTimer < uiDiff) - { - switch (m_uiAction) - { - case 0: - m_creature->SetFacingTo(2.82f); - m_creature->SetOrientation(2.82f); - m_uiDoTimer = 1000; - ++m_uiAction; - break; - case 1: - DoPlaySoundToSet(m_creature, SOUND_MORTAR_TEAM_5); - m_creature->HandleEmote(EMOTE_ONESHOT_CHEER); - m_bSubEventProcessed = false; - ++m_uiAction; - break; - case 2: - m_creature->SetFacingTo(4.37f); - m_creature->SetOrientation(4.37f); - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 3: - m_creature->HandleEmote(EMOTE_STATE_USESTANDING); - m_uiDoTimer = 4000; - ++m_uiAction; - break; - case 4: - m_creature->HandleEmote(EMOTE_STATE_NONE); - m_creature->SetFacingTo(2.82f); - m_creature->SetOrientation(2.82f); - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 5: - if (auto pMiddlecamp = m_creature->FindNearestCreature(NPC_RIFLEMAN_MIDDLECAMP, 50)) - { - pMiddlecamp->SetFacingTo(2.99f); - } - - if (auto pWheeler = m_creature->FindNearestCreature(NPC_RIFLEMAN_WHEELER, 50)) - { - pWheeler->SetFacingTo(2.97f); - } - - if (auto pAngus = m_creature->FindNearestCreature(NPC_ANGUS, 30)) - { - pAngus->HandleEmote(EMOTE_ONESHOT_POINT); - } - - DoCastSpellIfCan(m_creature, SPELL_MORTAR_ANIMATE); - m_uiDoTimer = 3000; - ++m_uiAction; - break; - case 6: - DoCastSpellIfCan(m_creature, SPELL_MORTAR_SHOT); - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 7: - m_creature->HandleEmote(EMOTE_ONESHOT_TALK); - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 8: - m_creature->SetFacingTo(4.37f); - m_creature->SetOrientation(4.37f); - DoPlaySoundToSet(m_creature, SOUND_MORTAR_TEAM_2); - - if (auto pKlemmy = m_creature->FindNearestCreature(NPC_SPOTTER_KLEMMY, 80)) - { - if (auto pKlemmyAI = static_cast(pKlemmy->AI())) - pKlemmyAI->StartSubEvent(); - } - - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 9: - m_creature->HandleEmote(EMOTE_ONESHOT_CHEER); - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 10: - m_creature->SetFacingTo(2.82f); - m_creature->SetOrientation(2.82f); - m_bSubEventProcessed = false; - ++m_uiAction; - break; - case 11: - m_creature->SetFacingTo(4.37f); - m_creature->SetOrientation(4.37f); - m_uiDoTimer = 2000; - ++m_uiAction; - break; - case 12: - m_creature->SetStandState(UNIT_STAND_STATE_KNEEL); - DoPlaySoundToSet(m_creature, SOUND_MORTAR_TEAM_3); - m_uiDoTimer = 3000; - ++m_uiAction; - break; - case 13: - //m_creature->HandleEmote(EMOTE_STATE_USESTANDING); // does not work while kneeling; no choice? - m_uiDoTimer = 1000; - ++m_uiAction; - break; - case 14: - m_creature->HandleEmote(EMOTE_STATE_NONE); - m_creature->SetStandState(UNIT_STAND_STATE_STAND); - m_creature->SetFacingTo(2.82f); - m_creature->SetOrientation(2.82f); - m_uiDoTimer = 1000; - ++m_uiAction; - break; - case 15: - m_creature->HandleEmote(EMOTE_ONESHOT_POINT); - DoPlaySoundToSet(m_creature, SOUND_MORTAR_TEAM_4); - m_uiDoTimer = 1000; - ++m_uiAction; - break; - case 16: - DoCastSpellIfCan(m_creature, SPELL_MORTAR_ANIMATE); - m_uiDoTimer = 3000; - ++m_uiAction; - break; - case 17: - DoCastSpellIfCan(m_creature, SPELL_MORTAR_SHOT); - m_uiDoTimer = 1000; - ++m_uiAction; - break; - case 18: - if (auto pAngus = m_creature->FindNearestCreature(NPC_ANGUS, 30)) - { - pAngus->SetFacingToObject(m_creature); - pAngus->HandleEmote(EMOTE_ONESHOT_TALK); - m_creature->SetFacingToObject(pAngus); - m_creature->HandleEmote(EMOTE_ONESHOT_POINT); - } - - DoPlaySoundToSet(m_creature, SOUND_MORTAR_TEAM_1); - m_uiDoTimer = 3000; - ++m_uiAction; - break; - case 19: - if (auto pMiddlecamp = m_creature->FindNearestCreature(NPC_RIFLEMAN_MIDDLECAMP, 50)) - { - pMiddlecamp->SetFacingToObject(m_creature); - pMiddlecamp->HandleEmote(EMOTE_ONESHOT_APPLAUD); - } - - if (auto pWheeler = m_creature->FindNearestCreature(NPC_RIFLEMAN_WHEELER, 50)) - { - pWheeler->SetFacingToObject(m_creature); - pWheeler->HandleEmote(EMOTE_ONESHOT_CHEER); - } - - if (auto pAngus = m_creature->FindNearestCreature(NPC_ANGUS, 30)) - { - pAngus->SetFacingTo(2.76f); - pAngus->SetOrientation(2.76f); - } - - m_creature->SetFacingTo(2.82f); - m_creature->SetOrientation(2.82f); - - if (auto pKlemmy = m_creature->FindNearestCreature(NPC_SPOTTER_KLEMMY, 80)) - { - if (auto pKlemmyAI = static_cast(pKlemmy->AI())) - pKlemmyAI->StartSubEvent(); - } - - m_bSubEventProcessed = false; - ++m_uiAction; - break; - case 20: - DoPlaySoundToSet(m_creature, SOUND_MORTAR_TEAM_6); - DoCastSpellIfCan(m_creature, SPELL_MORTAR_ANIMATE); - - if (auto pAngus = m_creature->FindNearestCreature(NPC_ANGUS, 30)) - { - pAngus->HandleEmote(EMOTE_ONESHOT_EXCLAMATION); - } - - m_creature->HandleEmote(EMOTE_ONESHOT_ROAR); - m_uiDoTimer = 3000; - ++m_uiAction; - break; - case 21: - DoCastSpellIfCan(m_creature, SPELL_MORTAR_SHOT); - - if (auto pKlemmy = m_creature->FindNearestCreature(NPC_SPOTTER_KLEMMY, 80)) - { - if (auto pKlemmyAI = static_cast(pKlemmy->AI())) - pKlemmyAI->StartSubEvent(); - } - - m_bSubEventProcessed = false; - ++m_uiAction; - break; - } - } - else - m_uiDoTimer -= uiDiff; -} - -CreatureAI* GetAI_npc_shorty(Creature* pCreature) -{ - return new npc_shortyAI(pCreature); -} - -/* -* Spotter Klemmy (Mortar Team event support) -*/ - -npc_spotter_klemmyAI::npc_spotter_klemmyAI(Creature* pCreature) : ScriptedAI(pCreature) -{ - m_bEventProcessed = false; - m_bActionPosReached = false; - m_bReturningHome = false; - m_bEventProcessed = false; - m_bSubEventProcessed = false; - m_bSubMoveProcessed = false; - m_uiDoTimer = 0; - m_uiAction = 0; - - npc_spotter_klemmyAI::Reset(); -} - -void npc_spotter_klemmyAI::Reset() { } - -void npc_spotter_klemmyAI::StartEvent() -{ - m_bEventProcessed = true; - m_creature->SetWalk(false); - m_creature->GetMotionMaster()->MovePoint(0, KlemmyMove[0][0], KlemmyMove[0][1], KlemmyMove[0][2], MOVE_PATHFINDING, 0, 3.321f); -} - -void npc_spotter_klemmyAI::FinishEvent() -{ - m_bActionPosReached = false; - m_bReturningHome = true; - m_creature->RemoveGuardians(); - m_creature->SetWalk(false); - m_creature->GetMotionMaster()->MovePoint(EPOS_KLEMMY, KlemmyMove[EPOS_KLEMMY][0], KlemmyMove[EPOS_KLEMMY][1], KlemmyMove[EPOS_KLEMMY][2], MOVE_PATHFINDING); -} - -void npc_spotter_klemmyAI::StartSubEvent() -{ - m_bSubEventProcessed = true; -} - -void npc_spotter_klemmyAI::MovementInform(uint32 uiType, uint32 uiPointId) -{ - if (!m_bEventProcessed || uiType != POINT_MOTION_TYPE) - return; - - switch (uiPointId) - { - case 100: - if (!m_uiAction) - { - DoCastSpellIfCan(m_creature, SPELL_TARGET_DUMMY_1); - m_bSubMoveProcessed = false; - m_uiDoTimer = 3000; - ++m_uiAction; - } - - break; - case 101: - if (m_uiAction == 1) - { - m_creature->HandleEmote(EMOTE_ONESHOT_WAVE); - m_bSubMoveProcessed = false; - m_uiDoTimer = 1000; - ++m_uiAction; - } - - break; - case 102: - if (m_uiAction == 3) - { - DoCastSpellIfCan(m_creature, SPELL_TARGET_DUMMY_2); - m_bSubMoveProcessed = false; - m_uiDoTimer = 1000; - ++m_uiAction; - } - - break; - case 103: - if (m_uiAction == 4) - { - m_creature->HandleEmote(EMOTE_ONESHOT_SALUTE); - m_bSubMoveProcessed = false; - m_creature->SetWalk(false); - m_uiDoTimer = 3000; - ++m_uiAction; - } - - break; - case 104: - if (m_uiAction == 5) - { - m_creature->SetWalk(true); - m_bSubMoveProcessed = false; - - if (auto pShorty = m_creature->FindNearestCreature(NPC_SHORTY, 80)) - { - if (auto pShortyAI = static_cast(pShorty->AI())) - pShortyAI->StartSubEvent(); - } - - m_bSubEventProcessed = false; - ++m_uiAction; - } - - break; - case 105: - if (m_uiAction == 6) - { - m_bSubMoveProcessed = false; - - if (auto pMiddlecamp = m_creature->FindNearestCreature(NPC_RIFLEMAN_MIDDLECAMP, 50)) - { - pMiddlecamp->SetFacingToObject(m_creature); - } - - if (auto pWheeler = m_creature->FindNearestCreature(NPC_RIFLEMAN_WHEELER, 50)) - { - pWheeler->SetFacingToObject(m_creature); - } - - DoCastSpellIfCan(m_creature, SPELL_TARGET_DUMMY_3); - m_uiDoTimer = 1000; - ++m_uiAction; - } - - break; - case 106: - if (m_uiAction == 7) - { - m_bSubMoveProcessed = false; - m_creature->HandleEmote(EMOTE_ONESHOT_POINT); - m_uiDoTimer = 1000; - ++m_uiAction; - } - - break; - case 107: - if (m_uiAction == 10) - { - m_creature->GetMotionMaster()->MovePoint(108, KlemmySubMove[4][0], KlemmySubMove[4][1], KlemmySubMove[4][2], MOVE_PATHFINDING); - } - - break; - case 108: - if (m_uiAction == 10) - { - m_creature->GetMotionMaster()->MovePoint(109, KlemmySubMove[5][0], KlemmySubMove[5][1], KlemmySubMove[5][2], MOVE_PATHFINDING); - } - - break; - case 109: - if (m_uiAction == 10) - { - m_bSubMoveProcessed = false; - m_uiDoTimer = 2000; - ++m_uiAction; - } - - break; - } - - if (m_bActionPosReached) - return; - - if (uiPointId == EPOS_KLEMMY && !m_bReturningHome) - { - m_creature->SetWalk(true); - m_bActionPosReached = true; - return; - } - - if (!uiPointId && m_bReturningHome) - { - m_bReturningHome = false; - m_bEventProcessed = false; - m_bSubEventProcessed = false; - m_bSubMoveProcessed = false; - m_creature->SetWalk(true); - m_uiDoTimer = 0; - m_uiAction = 0; - return; - } - - float orient = m_bReturningHome ? (uiPointId == 1 ? 3.321f : -10.0f) : uiPointId == EPOS_KLEMMY - 1 ? 5.81f : -10.0f; - uint8 nPoint = m_bReturningHome ? uiPointId - 1 : uiPointId + 1; - - m_creature->GetMotionMaster()->MovePoint(nPoint, KlemmyMove[nPoint][0], KlemmyMove[nPoint][1], KlemmyMove[nPoint][2], MOVE_PATHFINDING, 0, orient); -} - -void npc_spotter_klemmyAI::UpdateAI(uint32 const uiDiff) -{ - if (!m_bSubEventProcessed) - { - ScriptedAI::UpdateAI(uiDiff); - return; - } - - if (m_bSubMoveProcessed) return; - - if (m_uiDoTimer < uiDiff) - { - switch (m_uiAction) - { - case 0: - m_creature->GetMotionMaster()->MovePoint(100, KlemmySubMove[0][0], KlemmySubMove[0][1], KlemmySubMove[0][2], MOVE_PATHFINDING, 0, 6.06f); - m_bSubMoveProcessed = true; - break; - case 1: - m_creature->GetMotionMaster()->MovePoint(101, KlemmyMove[EPOS_KLEMMY][0], KlemmyMove[EPOS_KLEMMY][1], KlemmyMove[EPOS_KLEMMY][2], MOVE_PATHFINDING, 0, 5.81f); - m_bSubMoveProcessed = true; - break; - case 2: - m_creature->SetOrientation(4.24f); - - if (auto pShorty = m_creature->FindNearestCreature(NPC_SHORTY, 80)) - { - if (auto pShortyAI = static_cast(pShorty->AI())) - pShortyAI->StartSubEvent(); - } - - m_bSubEventProcessed = false; - ++m_uiAction; - break; - case 3: - m_creature->GetMotionMaster()->MovePoint(102, KlemmySubMove[0][0], KlemmySubMove[0][1], KlemmySubMove[0][2], MOVE_PATHFINDING, 0, 6.06f); - m_bSubMoveProcessed = true; - break; - case 4: - m_creature->GetMotionMaster()->MovePoint(103, KlemmySubMove[1][0], KlemmySubMove[1][1], KlemmySubMove[1][2], MOVE_PATHFINDING, 0, 5.94f); - m_bSubMoveProcessed = true; - break; - case 5: - m_creature->GetMotionMaster()->MovePoint(104, KlemmySubMove[2][0], KlemmySubMove[2][1], KlemmySubMove[2][2], MOVE_PATHFINDING, 0, 4.2f); - m_bSubMoveProcessed = true; - break; - case 6: - m_creature->GetMotionMaster()->MovePoint(105, KlemmySubMove[0][0], KlemmySubMove[0][1], KlemmySubMove[0][2], MOVE_PATHFINDING, 0, 6.06f); - m_bSubMoveProcessed = true; - break; - case 7: - m_creature->GetMotionMaster()->MovePoint(106, KlemmySubMove[1][0], KlemmySubMove[1][1], KlemmySubMove[1][2], MOVE_PATHFINDING, 0, 5.94f); - m_bSubMoveProcessed = true; - break; - case 8: - m_creature->HandleEmote(EMOTE_ONESHOT_LAUGH); - - if (auto pShorty = m_creature->FindNearestCreature(NPC_SHORTY, 80)) - { - if (auto pShortyAI = static_cast(pShorty->AI())) - pShortyAI->StartSubEvent(); - } - - m_bSubEventProcessed = false; - ++m_uiAction; - break; - case 9: - m_creature->SetWalk(false); - m_creature->GetMotionMaster()->MovePoint(107, KlemmySubMove[3][0], KlemmySubMove[3][1], KlemmySubMove[3][2], MOVE_PATHFINDING); - m_bSubMoveProcessed = true; - - if (auto pAngus = m_creature->FindNearestCreature(NPC_ANGUS, 80)) - { - pAngus->HandleEmote(EMOTE_ONESHOT_DANCE); - } - - if (auto pShorty = m_creature->FindNearestCreature(NPC_SHORTY, 80)) - { - pShorty->HandleEmote(EMOTE_ONESHOT_DANCE); - } - - ++m_uiAction; - break; - case 10: - m_creature->HandleEmote(EMOTE_ONESHOT_RUDE); - m_uiDoTimer = 3000; - ++m_uiAction; - break; - case 11: - m_creature->HandleEmote(EMOTE_ONESHOT_RUDE); - - if (auto pMiddlecamp = m_creature->FindNearestCreature(NPC_RIFLEMAN_MIDDLECAMP, 50)) - { - pMiddlecamp->HandleEmote(EMOTE_ONESHOT_LAUGH); - } - - if (auto pWheeler = m_creature->FindNearestCreature(NPC_RIFLEMAN_WHEELER, 50)) - { - pWheeler->HandleEmote(EMOTE_ONESHOT_LAUGH); - } - - if (auto pAngus = m_creature->FindNearestCreature(NPC_ANGUS, 30)) - { - pAngus->HandleEmote(EMOTE_ONESHOT_LAUGH); - } - - if (auto pShorty = m_creature->FindNearestCreature(NPC_SHORTY, 30)) - { - pShorty->HandleEmote(EMOTE_ONESHOT_LAUGH); - } - - m_uiDoTimer = 3000; - ++m_uiAction; - break; - case 12: - if (auto pMiddlecamp = m_creature->FindNearestCreature(NPC_RIFLEMAN_MIDDLECAMP, 50)) - { - pMiddlecamp->HandleEmote(EMOTE_ONESHOT_LAUGH); - } - - if (auto pWheeler = m_creature->FindNearestCreature(NPC_RIFLEMAN_WHEELER, 50)) - { - pWheeler->HandleEmote(EMOTE_ONESHOT_LAUGH); - } - - if (auto pAngus = m_creature->FindNearestCreature(NPC_ANGUS, 30)) - { - pAngus->HandleEmote(EMOTE_ONESHOT_LAUGH); - } - - if (auto pShorty = m_creature->FindNearestCreature(NPC_SHORTY, 30)) - { - pShorty->HandleEmote(EMOTE_ONESHOT_LAUGH); - } - - m_uiDoTimer = 5000; - ++m_uiAction; - break; - case 13: - m_bSubEventProcessed = false; - - if (auto pWatcher = m_creature->FindNearestCreature(NPC_EVENT_WATCHER, 100)) - { - if (auto pWatcherAI = static_cast(pWatcher->AI())) - pWatcherAI->PokeAll(false); - } - - ++m_uiAction; - break; - } - } - else - m_uiDoTimer -= uiDiff; -} - -CreatureAI* GetAI_npc_spotter_klemmy(Creature* pCreature) -{ - return new npc_spotter_klemmyAI(pCreature); -} - -/* -* Mortar Team Watcher (Mortar Team event support) -*/ - -npc_mortar_team_watcherAI::npc_mortar_team_watcherAI(Creature* pCreature) : ScriptedAI(pCreature) -{ - m_bEventStartSent = false; - m_bEventFinishSent = false; - m_uiEventTimer = 4 * MINUTE * IN_MILLISECONDS; - - npc_mortar_team_watcherAI::Reset(); -} - -void npc_mortar_team_watcherAI::Reset() { } - -void npc_mortar_team_watcherAI::PokeAll(bool start) -{ - // creatures lookup - auto pAngus = m_creature->FindNearestCreature(NPC_ANGUS, DEFAULT_VISIBILITY_DISTANCE); - auto pShorty = m_creature->FindNearestCreature(NPC_SHORTY, DEFAULT_VISIBILITY_DISTANCE); - auto pRiflemanWheeler = m_creature->FindNearestCreature(NPC_RIFLEMAN_WHEELER, DEFAULT_VISIBILITY_DISTANCE); - auto pRiflemanMiddlecamp = m_creature->FindNearestCreature(NPC_RIFLEMAN_MIDDLECAMP, DEFAULT_VISIBILITY_DISTANCE); - auto pSpotterKlemmy = m_creature->FindNearestCreature(NPC_SPOTTER_KLEMMY, DEFAULT_VISIBILITY_DISTANCE); - - if (!pAngus || !pShorty || !pRiflemanWheeler || !pRiflemanMiddlecamp || !pSpotterKlemmy) - { - return; - } - - // creatures' AI trycast - auto pAngusAI = static_cast(pAngus->AI()); - auto pShortyAI = static_cast(pShorty->AI()); - auto pRiflemanWheelerAI = static_cast(pRiflemanWheeler->AI()); - auto pRiflemanMiddlecampAI = static_cast(pRiflemanMiddlecamp->AI()); - auto pSpotterKlemmyAI = static_cast(pSpotterKlemmy->AI()); - - if (!pAngusAI || !pShortyAI || !pRiflemanWheelerAI || !pRiflemanMiddlecampAI || !pSpotterKlemmyAI) - { - return; - } - - if (start) - { - pAngusAI->StartEvent(); - pShortyAI->StartEvent(); - pRiflemanWheelerAI->StartEvent(); - pRiflemanMiddlecampAI->StartEvent(); - pSpotterKlemmyAI->StartEvent(); - m_bEventStartSent = true; - } - else - { - pAngusAI->FinishEvent(); - pShortyAI->FinishEvent(); - pRiflemanWheelerAI->FinishEvent(); - pRiflemanMiddlecampAI->FinishEvent(); - pSpotterKlemmyAI->FinishEvent(); - m_bEventFinishSent = true; - } -} - -void npc_mortar_team_watcherAI::UpdateAI(uint32 const uiDiff) -{ - if (!m_bEventStartSent) - { - PokeAll(); - } - - if (!m_bEventFinishSent) - { - if (m_uiEventTimer < uiDiff) - { - PokeAll(false); - } - else - m_uiEventTimer -= uiDiff; - } -} - -CreatureAI* GetAI_npc_mortar_team_watcher(Creature* pCreature) -{ - return new npc_mortar_team_watcherAI(pCreature); -} - -/* - * Dwarver Mortar (Mortar Team event support) - */ - -struct go_mortarAI : GameObjectAI -{ - explicit go_mortarAI(GameObject* pGo) : GameObjectAI(pGo) { } - - bool OnUse(Unit* pCaster) override - { - me->SendGameObjectCustomAnim(); - - return true; - } -}; - -GameObjectAI* GetAI_go_mortar(GameObject* pGo) -{ - return new go_mortarAI(pGo); -} - -/* -* Mortar Team Target Dummy (Mortar Team event support) -*/ - -npc_mortar_team_target_dummyAI::npc_mortar_team_target_dummyAI(Creature* pCreature) : ScriptedAI(pCreature) -{ - npc_mortar_team_target_dummyAI::Reset(); -} - -void npc_mortar_team_target_dummyAI::Reset() { } - -void npc_mortar_team_target_dummyAI::SpellHit(SpellCaster*, SpellEntry const* pSpell) -{ - if (pSpell->Id == SPELL_MORTAR_SHOT) - { - m_creature->DoKillUnit(m_creature); - } -} - -void npc_mortar_team_target_dummyAI::UpdateAI(uint32 const uiDiff) { } - -CreatureAI* GetAI_npc_mortar_team_target_dummy(Creature* pCreature) -{ - return new npc_mortar_team_target_dummyAI(pCreature); -} - void AddSC_dun_morogh() { Script* newscript; @@ -1427,44 +67,4 @@ void AddSC_dun_morogh() newscript->Name = "npc_narm_faulk"; newscript->GetAI = &GetAI_npc_narm_faulk; newscript->RegisterSelf(); - - newscript = new Script; - newscript->Name = "npc_mortar_team_watcher"; - newscript->GetAI = &GetAI_npc_mortar_team_watcher; - newscript->RegisterSelf(); - - newscript = new Script; - newscript->Name = "npc_angus"; - newscript->GetAI = &GetAI_npc_angus; - newscript->RegisterSelf(); - - newscript = new Script; - newscript->Name = "npc_shorty"; - newscript->GetAI = &GetAI_npc_shorty; - newscript->RegisterSelf(); - - newscript = new Script; - newscript->Name = "npc_rifleman_wheeler"; - newscript->GetAI = &GetAI_npc_rifleman_wheeler; - newscript->RegisterSelf(); - - newscript = new Script; - newscript->Name = "npc_rifleman_middlecamp"; - newscript->GetAI = &GetAI_npc_rifleman_middlecamp; - newscript->RegisterSelf(); - - newscript = new Script; - newscript->Name = "npc_spotter_klemmy"; - newscript->GetAI = &GetAI_npc_spotter_klemmy; - newscript->RegisterSelf(); - - newscript = new Script; - newscript->Name = "go_mortar"; - newscript->GOGetAI = &GetAI_go_mortar; - newscript->RegisterSelf(); - - newscript = new Script; - newscript->Name = "npc_mortar_team_target_dummy"; - newscript->GetAI = &GetAI_npc_mortar_team_target_dummy; - newscript->RegisterSelf(); } diff --git a/src/scripts/eastern_kingdoms/dun_morogh/dun_morogh.h b/src/scripts/eastern_kingdoms/dun_morogh/dun_morogh.h deleted file mode 100644 index 201847f17cb..00000000000 --- a/src/scripts/eastern_kingdoms/dun_morogh/dun_morogh.h +++ /dev/null @@ -1,268 +0,0 @@ -#ifndef DEF_DUNMOROGH_H -#define DEF_DUNMOROGH_H - -#include "scriptPCH.h" - -enum EventData -{ - NPC_ANGUS = 10610, - NPC_SHORTY = 10611, - NPC_RIFLEMAN_WHEELER = 10803, - NPC_RIFLEMAN_MIDDLECAMP = 10804, - NPC_SPOTTER_KLEMMY = 10805, - - NPC_DUMMY = 11875, - NPC_ADVANCED_DUMMY = 12385, - - NPC_EVENT_WATCHER = 20113, - - SPELL_TARGET_DUMMY_1 = 18634, - SPELL_TARGET_DUMMY_2 = 18907, - SPELL_TARGET_DUMMY_3 = 19723, - SPELL_MORTAR_ANIMATE = 18655, - SPELL_MORTAR_SHOT = 16786, - - SPELL_SHOOT_1 = 16572, - SPELL_SHOOT_2 = 16767, - SPELL_SHOOT_3 = 16768, - SPELL_SHOOT_4 = 16772, - SPELL_SHOOT_5 = 16775, - SPELL_SHOOT_6 = 16776, - SPELL_SHOOT_7 = 16777, - SPELL_SHOOT_8 = 16778, - SPELL_SHOOT_9 = 16779, - SPELL_SHOOT_10 = 16780, - - EPOS_ANGUS = 2, - EPOS_SHORTY = 4, - EPOS_WHEELER = 1, - EPOS_MIDDLECAMP = 1, - EPOS_KLEMMY = 5, - - SOUND_MORTAR_TEAM_1 = 6251, - SOUND_MORTAR_TEAM_2 = 6252, - SOUND_MORTAR_TEAM_3 = 6254, - SOUND_MORTAR_TEAM_4 = 6255, - SOUND_MORTAR_TEAM_5 = 6256, - SOUND_MORTAR_TEAM_6 = 6258, - - SOUND_RIFLEMAN_1 = 6246, - SOUND_RIFLEMAN_2 = 6247, - SOUND_RIFLEMAN_3 = 6248, - SOUND_RIFLEMAN_4 = 6249, - SOUND_RIFLEMAN_5 = 6250, - - SHOOT1EMOTE1 = 6107, - SHOOT1EMOTE2 = 6140, - SHOOT2EMOTE1 = 6106, - SHOOT2EMOTE2 = 6141, - SHOOT3EMOTE1 = 6118, - SHOOT3EMOTE2 = 6142, - SHOOT4EMOTE1 = 6120, - SHOOT5EMOTE1 = 6121, - SHOOT6EMOTE1 = 6124, - SHOOT7EMOTE1 = 6122, - SHOOT7EMOTE2 = 6123, - SHOOT8EMOTE1 = 6137, - SHOOT9EMOTE1 = 6136, - SHOOT10EMOTE1 = 6138 -}; - -static float const AngusMove[3][3] = -{ - { -6008.86f, -203.437f, 407.109f }, - { -6026.91f, -229.77f, 413.516f }, - { -6031.005f, -230.541f, 414.352f } -}; - -static float const ShortyMove[5][3] = -{ - { -6007.53f, -202.155f, 407.448f }, - { -6024.688f, -229.102f, 413.319f }, - { -6030.384f, -235.56f, 414.562f }, - { -6036.222f, -234.658f, 415.189f }, - { -6031.382f, -228.204f, 414.394f } -}; - -static float const WheelerMove[2][3] = -{ - { -6009.09f, -198.498f, 406.676f }, - { -6031.93f, -221.088f, 413.134f } -}; - -static float const MiddlecampMove[2][3] = -{ - { -6011.36f, -198.926f, 406.795f }, - { -6034.14f, -223.333f, 413.481f } -}; - -static float const KlemmyMove[6][3] = -{ - { -6007.24f, -200.258f, 406.765f }, - { -6011.1f, -197.1f, 406.759f }, - { -6015.579f, -180.775f, 408.181f }, - { -6036.183f, -185.032f, 420.112f }, - { -6052.63f, -198.484f, 421.852f }, - { -6065.057f, -203.547f, 423.924f } -}; - -static float const KlemmySubMove[6][3] = -{ - { -6077.19f, -213.034f, 423.954f }, - { -6069.06f, -213.475f, 422.496f }, - { -6066.45f, -206.174f, 423.246f }, - { -6059.34f, -209.405f, 421.426f }, - { -6055.81f, -224.631f, 419.216f }, - { -6041.05f, -223.555f, 415.293f } -}; - -/* -* Angus (Mortar Team event support) -*/ - -struct npc_angusAI : ScriptedAI -{ - explicit npc_angusAI(Creature* pCreature); - - bool m_bEventProcessed; - bool m_bActionPosReached; - bool m_bReturningHome; - bool m_bSubEventProcessed; - uint32 m_uiDoTimer; - uint8 m_uiAction; - - void Reset() override; - void StartEvent(); - void FinishEvent(); - void StartSubEvent(); - void MovementInform(uint32 uiType, uint32 uiPointId) override; - void UpdateAI(uint32 const uiDiff) override; -}; - -/* -* Rifleman Middlecamp (Mortar Team event support) -*/ - -struct npc_rifleman_middlecampAI : ScriptedAI -{ - explicit npc_rifleman_middlecampAI(Creature* pCreature); - - bool m_bEventProcessed; - bool m_bActionPosReached; - bool m_bSubEventProcessed; - bool m_bReturningHome; - uint32 m_uiDoTimer; - uint8 m_uiAction; - - void Reset() override; - void StartEvent(); - void FinishEvent(); - void StartSubEvent(); - void MovementInform(uint32 uiType, uint32 uiPointId) override; - void UpdateAI(uint32 const uiDiff) override; -}; - -/* -* Rifleman Wheeler (Mortar Team event support) -*/ - -struct npc_rifleman_wheelerAI : ScriptedAI -{ - explicit npc_rifleman_wheelerAI(Creature* pCreature); - - bool m_bEventProcessed; - bool m_bActionPosReached; - bool m_bSubEventProcessed; - bool m_bReturningHome; - uint32 m_uiDoTimer; - uint8 m_uiAction; - - void Reset() override; - void StartEvent(); - void FinishEvent(); - void StartSubEvent(); - void PokeMortarGuys() const; - void MovementInform(uint32 uiType, uint32 uiPointId) override; - void UpdateAI(uint32 const uiDiff) override; -}; - -/* -* Shorty (Mortar Team event support) -*/ - -struct npc_shortyAI : ScriptedAI -{ - explicit npc_shortyAI(Creature* pCreature); - - bool m_bEventProcessed; - bool m_bActionPosReached; - bool m_bReturningHome; - bool m_bSubEventProcessed; - uint32 m_uiDoTimer; - uint8 m_uiAction; - - void Reset() override; - void StartEvent(); - void FinishEvent(); - void StartSubEvent(); - void PokeRiflemen() const; - void MovementInform(uint32 uiType, uint32 uiPointId) override; - void UpdateAI(uint32 const uiDiff) override; -}; - -/* -* Spotter Klemmy (Mortar Team event support) -*/ - -struct npc_spotter_klemmyAI : ScriptedAI -{ - explicit npc_spotter_klemmyAI(Creature* pCreature); - - bool m_bEventProcessed; - bool m_bActionPosReached; - bool m_bReturningHome; - bool m_bSubEventProcessed; - bool m_bSubMoveProcessed; - uint32 m_uiDoTimer; - uint8 m_uiAction; - uint16 m_uiSubCount; - - void Reset() override; - void StartEvent(); - void FinishEvent(); - void StartSubEvent(); - void MovementInform(uint32 uiType, uint32 uiPointId) override; - void UpdateAI(uint32 const uiDiff) override; -}; - -/* -* Mortar Team Watcher (Mortar Team event support) -*/ - -struct npc_mortar_team_watcherAI : ScriptedAI -{ - explicit npc_mortar_team_watcherAI(Creature* pCreature); - - bool m_bEventStartSent; - bool m_bEventFinishSent; - uint32 m_uiEventTimer; - - void Reset() override; - void PokeAll(bool start = true); - void UpdateAI(uint32 const uiDiff) override; -}; - -/* -* Mortar Team Target Dummy (Mortar Team event support) -*/ - -struct npc_mortar_team_target_dummyAI : ScriptedAI -{ - explicit npc_mortar_team_target_dummyAI(Creature* pCreature); - - void Reset() override; - void SpellHit(SpellCaster* /*pCaster*/, SpellEntry const* pSpell) override; - void UpdateAI(uint32 const uiDiff) override; -}; - -#endif From d4622efcde2d05c542c7dbbd23cbc4f59f47adb0 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 3 Oct 2023 19:32:18 +0300 Subject: [PATCH 205/426] Implement aura Illusion Passive. Closes https://github.com/vmangos/core/issues/2206 --- sql/migrations/20231003163102_world.sql | 22 ++++++++++++++++++++++ src/game/UnitAuraProcHandler.cpp | 7 +++++++ 2 files changed, 29 insertions(+) create mode 100644 sql/migrations/20231003163102_world.sql diff --git a/sql/migrations/20231003163102_world.sql b/sql/migrations/20231003163102_world.sql new file mode 100644 index 00000000000..f41cd8735d1 --- /dev/null +++ b/sql/migrations/20231003163102_world.sql @@ -0,0 +1,22 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231003163102'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231003163102'); +-- Add your query below. + + +-- Add missing aura Illusion Passive to mobs. +UPDATE `creature_template` SET `auras`='7131' WHERE `entry` IN (4785, 5097, 6493, 6932, 11027, 11263); +DELETE FROM `spell_proc_event` WHERE `entry`=7131; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/UnitAuraProcHandler.cpp b/src/game/UnitAuraProcHandler.cpp index bec6693daad..b0a8733a68f 100644 --- a/src/game/UnitAuraProcHandler.cpp +++ b/src/game/UnitAuraProcHandler.cpp @@ -570,6 +570,13 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit* pVictim, uint32 damage, Aura { switch (dummySpell->Id) { + // Illusion Passive + case 7131: + { + if (Creature* pCreature = ToCreature()) + pCreature->DespawnOrUnsummon(1); + return SPELL_AURA_PROC_OK; + } #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 // Eye for an Eye case 9799: From a8a71e62c198044526211ee5df093f82bda0ad87 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 4 Oct 2023 22:54:05 +0300 Subject: [PATCH 206/426] Improve active mover handling. Closes https://github.com/vmangos/core/issues/2213 --- src/game/Handlers/MovementHandler.cpp | 67 ++++++++++++++------------- src/game/Objects/Player.cpp | 17 ++----- src/game/Objects/Player.h | 6 +-- src/game/Objects/Unit.cpp | 5 ++ src/game/WorldSession.h | 1 + 5 files changed, 47 insertions(+), 49 deletions(-) diff --git a/src/game/Handlers/MovementHandler.cpp b/src/game/Handlers/MovementHandler.cpp index 54968197075..8b014f9c718 100644 --- a/src/game/Handlers/MovementHandler.cpp +++ b/src/game/Handlers/MovementHandler.cpp @@ -280,9 +280,8 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvData) if (recvData.GetPacketTime() <= m_moveRejectTime) return; - Unit* pMover = _player->GetMover(); - - if (pMover->GetObjectGuid() != m_clientMoverGuid) + Unit* pMover = _player->GetConfirmedMover(); + if (!pMover) return; if (pMover->HasPendingSplineDone()) @@ -904,41 +903,43 @@ void WorldSession::HandleSetActiveMoverOpcode(WorldPacket& recvData) ObjectGuid guid; recvData >> guid; - ObjectGuid serverMoverGuid = _player->GetMover()->GetObjectGuid(); - - // Before 1.10, client sends 0 as guid if it has no control. -#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_9_4 - if ((serverMoverGuid == _player->GetObjectGuid()) && !_player->HasSelfMovementControl()) - serverMoverGuid = ObjectGuid(); -#endif - - if (serverMoverGuid != guid) - { - sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "HandleSetActiveMoverOpcode: incorrect mover guid: mover is %s and should be %s", - _player->GetMover()->GetGuidStr().c_str(), guid.GetString().c_str()); - m_clientMoverGuid = _player->GetMover()->GetObjectGuid(); - return; - } - if (!guid.IsEmpty()) { - Unit* pMover = _player->GetMap()->GetUnit(guid); + ObjectGuid serverMoverGuid = _player->GetMover()->GetObjectGuid(); + if (serverMoverGuid != guid) + { + sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "HandleSetActiveMoverOpcode: incorrect mover guid: mover is %s and should be %s", + _player->GetMover()->GetGuidStr().c_str(), guid.GetString().c_str()); + m_clientMoverGuid = _player->GetMover()->GetObjectGuid(); + return; + } - if (pMover && pMover->IsCreature() && pMover->IsRooted()) - MovementPacketSender::AddMovementFlagChangeToController(pMover, MOVEFLAG_ROOT, true); - } + if (guid.IsAnyTypeCreature()) + { + if (Unit* pMover = _player->GetMap()->GetUnit(guid)) + { + if (pMover->IsRooted()) + MovementPacketSender::AddMovementFlagChangeToController(pMover, MOVEFLAG_ROOT, true); - // mover swap after Eyes of the Beast, PetAI::UpdateAI handle the pet's return - // Check if we actually have a pet before looking up - if (_player->GetPetGuid() && _player->GetPetGuid() == m_clientMoverGuid) - { - if (Pet* pet = _player->GetPet()) + // Older clients do not send spline done opcode for splines that started before they took control. +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_8_4 + pMover->SetSplineDonePending(false); +#endif + } + } + + // mover swap after Eyes of the Beast, PetAI::UpdateAI handle the pet's return + // Check if we actually have a pet before looking up + if (_player->GetPetGuid() && _player->GetPetGuid() == m_clientMoverGuid) { - pet->ClearUnitState(UNIT_STAT_POSSESSED); - pet->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED); - // out of range pet dismissed - if (!pet->IsWithinDistInMap(_player, pet->GetMap()->GetGridActivationDistance())) - _player->RemovePet(PET_SAVE_REAGENTS); + if (Pet* pet = _player->GetPet()) + { + pet->ClearUnitState(UNIT_STAT_POSSESSED); + pet->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED); + // out of range pet dismissed + if (!pet->IsWithinDistInMap(_player, pet->GetMap()->GetGridActivationDistance())) + _player->RemovePet(PET_SAVE_REAGENTS); + } } } diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index fa0c2709d0b..5bfcd600bf8 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -20257,20 +20257,11 @@ void Player::SetClientControl(Unit* target, uint8 allowMove) #endif } -bool Player::HasSelfMovementControl() const +Unit* Player::GetConfirmedMover() const { - // Using Mind Vision - if (GetUInt64Value(PLAYER_FARSIGHT)) - return false; - - // Using Far Sight - if (m_longSightSpell) - return false; - - if (HasUnitState(UNIT_STAT_LOST_CONTROL | UNIT_STAT_CONFUSED | UNIT_STAT_TAXI_FLIGHT)) - return false; - - return true; + if (m_mover->GetObjectGuid() == m_session->GetClientMoverGuid()) + return m_mover; + return nullptr; } void Player::UpdateZoneDependentAuras() diff --git a/src/game/Objects/Player.h b/src/game/Objects/Player.h index 8f988e16f49..21379fc371e 100644 --- a/src/game/Objects/Player.h +++ b/src/game/Objects/Player.h @@ -1914,12 +1914,12 @@ class Player final: public Unit void HandleFall(MovementInfo const& movementInfo); bool IsFalling() const { return GetPositionZ() < m_lastFallZ; } - bool IsControlledByOwnClient() const { return m_session->HasClientMovementControl(); } + bool IsControlledByOwnClient() const { return m_session->GetClientMoverGuid() == GetObjectGuid(); } void SetClientControl(Unit* target, uint8 allowMove); void SetMover(Unit* target) { m_mover = target ? target : this; } - Unit* GetMover() const { return m_mover; } + Unit* GetMover() const { return m_mover; } // can never be null + Unit* GetConfirmedMover() const; // only returns mover confirmed by client, can be null bool IsSelfMover() const { return m_mover == this; } // normal case for player not controlling other unit - bool HasSelfMovementControl() const; bool IsOutdoorOnTransport() const; ObjectGuid const& GetFarSightGuid() const { return GetGuidValue(PLAYER_FARSIGHT); } diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index ef2ac17c981..f5551276a24 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -10529,7 +10529,12 @@ void Unit::UpdateSplineMovement(uint32 t_diff) bool arrived = movespline->Finalized(); if (arrived) + { DisableSpline(); + + if (HasPendingSplineDone() && !IsPlayer() && !GetPossessorGuid().IsPlayer()) + SetSplineDonePending(false); + } else if (!movespline->isCyclic() && movespline->getLastPointSent() >= 0 && movespline->getLastPointSent() < (movespline->currentPathIdx() + 3)) { WorldPacket data(SMSG_MONSTER_MOVE, 64); diff --git a/src/game/WorldSession.h b/src/game/WorldSession.h index 440448cb588..c04198e834b 100644 --- a/src/game/WorldSession.h +++ b/src/game/WorldSession.h @@ -383,6 +383,7 @@ class WorldSession void ProcessAnticheatAction(char const* detector, char const* reason, uint32 action, uint32 banTime = 0 /* Perm ban */); uint32 GetFingerprint() const { return 0; } // TODO void CleanupFingerprintHistory() {} // TODO + ObjectGuid const& GetClientMoverGuid() const { return m_clientMoverGuid; } bool HasClientMovementControl() const { return !m_clientMoverGuid.IsEmpty(); } bool HasUsedClickToMove() const; From bf33a58ddb1a9b75d867159e7d5df78a90188f17 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 4 Oct 2023 23:23:32 +0300 Subject: [PATCH 207/426] There is no need to lookup the mover here. --- src/game/Handlers/MovementHandler.cpp | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/game/Handlers/MovementHandler.cpp b/src/game/Handlers/MovementHandler.cpp index 8b014f9c718..0cd87b4c270 100644 --- a/src/game/Handlers/MovementHandler.cpp +++ b/src/game/Handlers/MovementHandler.cpp @@ -905,27 +905,24 @@ void WorldSession::HandleSetActiveMoverOpcode(WorldPacket& recvData) if (!guid.IsEmpty()) { - ObjectGuid serverMoverGuid = _player->GetMover()->GetObjectGuid(); - if (serverMoverGuid != guid) + Unit* pMover = _player->GetMover(); + if (pMover->GetObjectGuid() != guid) { sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "HandleSetActiveMoverOpcode: incorrect mover guid: mover is %s and should be %s", - _player->GetMover()->GetGuidStr().c_str(), guid.GetString().c_str()); - m_clientMoverGuid = _player->GetMover()->GetObjectGuid(); + pMover->GetGuidStr().c_str(), guid.GetString().c_str()); + m_clientMoverGuid = pMover->GetObjectGuid(); return; } - if (guid.IsAnyTypeCreature()) + if (pMover->IsCreature()) { - if (Unit* pMover = _player->GetMap()->GetUnit(guid)) - { - if (pMover->IsRooted()) - MovementPacketSender::AddMovementFlagChangeToController(pMover, MOVEFLAG_ROOT, true); + if (pMover->IsRooted()) + MovementPacketSender::AddMovementFlagChangeToController(pMover, MOVEFLAG_ROOT, true); - // Older clients do not send spline done opcode for splines that started before they took control. + // Older clients do not send spline done opcode for splines that started before they took control. #if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_8_4 - pMover->SetSplineDonePending(false); + pMover->SetSplineDonePending(false); #endif - } } // mover swap after Eyes of the Beast, PetAI::UpdateAI handle the pet's return From 7e533c0e5dbfe0ac977a72607250e6bacf4c9fcf Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 5 Oct 2023 02:16:31 +0300 Subject: [PATCH 208/426] Optimize mover lookup in movement handler. --- src/game/Handlers/CharacterHandler.cpp | 2 +- src/game/Handlers/MovementHandler.cpp | 46 ++++++++++---------------- src/game/WorldSession.cpp | 1 + src/game/WorldSession.h | 5 ++- 4 files changed, 24 insertions(+), 30 deletions(-) diff --git a/src/game/Handlers/CharacterHandler.cpp b/src/game/Handlers/CharacterHandler.cpp index dbdeaa12628..8585c8619a9 100644 --- a/src/game/Handlers/CharacterHandler.cpp +++ b/src/game/Handlers/CharacterHandler.cpp @@ -739,8 +739,8 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder *holder) pCurrChar->SetStandState(UNIT_STAND_STATE_STAND); m_playerLoading = false; - m_clientMoverGuid = pCurrChar->GetObjectGuid(); delete holder; + if (alreadyOnline) { pCurrChar->UpdateControl(); diff --git a/src/game/Handlers/MovementHandler.cpp b/src/game/Handlers/MovementHandler.cpp index 0cd87b4c270..218707a1ef0 100644 --- a/src/game/Handlers/MovementHandler.cpp +++ b/src/game/Handlers/MovementHandler.cpp @@ -435,10 +435,6 @@ void WorldSession::HandleForceSpeedChangeAckOpcodes(WorldPacket& recvData) movementInfo.UpdateTime(recvData.GetPacketTime()); /*----------------*/ - // now can skip not our packet - if (guid != m_clientMoverGuid && guid != _player->GetObjectGuid() && guid != _player->GetMover()->GetObjectGuid()) - return; - UnitMoveType move_type; switch (opcode) { @@ -465,8 +461,7 @@ void WorldSession::HandleForceSpeedChangeAckOpcodes(WorldPacket& recvData) return; } - Unit* pMover = _player->GetMap()->GetUnit(guid); - + Unit* pMover = GetMoverFromGuid(guid); if (!pMover) return; @@ -557,12 +552,7 @@ void WorldSession::HandleMovementFlagChangeToggleAck(WorldPacket& recvData) bool applyReceived = applyInt != 0u; /*----------------*/ - // make sure this client is allowed to control the unit which guid is provided - if (guid != m_clientMoverGuid && guid != _player->GetObjectGuid() && guid != _player->GetMover()->GetObjectGuid()) - return; - - Unit* pMover = _player->GetMap()->GetUnit(guid); - + Unit* pMover = GetMoverFromGuid(guid); if (!pMover) return; @@ -676,12 +666,7 @@ void WorldSession::HandleMoveRootAck(WorldPacket& recvData) movementInfo.UpdateTime(recvData.GetPacketTime()); /*----------------*/ - // make sure this client is allowed to control the unit which guid is provided - if (guid != m_clientMoverGuid && guid != _player->GetObjectGuid() && guid != _player->GetMover()->GetObjectGuid()) - return; - - Unit* pMover = _player->GetMap()->GetUnit(guid); - + Unit* pMover = GetMoverFromGuid(guid); if (!pMover) return; @@ -789,11 +774,7 @@ void WorldSession::HandleMoveKnockBackAck(WorldPacket& recvData) movementInfo.UpdateTime(recvData.GetPacketTime()); /*----------------*/ - if (guid != m_clientMoverGuid && guid != _player->GetObjectGuid() && guid != _player->GetMover()->GetObjectGuid()) - return; - - Unit* pMover = _player->GetMap()->GetUnit(guid); - + Unit* pMover = GetMoverFromGuid(guid); if (!pMover) return; @@ -1043,11 +1024,7 @@ void WorldSession::HandleMoveTimeSkippedOpcode(WorldPacket& recvData) uint32 lag; recvData >> lag; - if (guid != m_clientMoverGuid && guid != _player->GetObjectGuid() && guid != _player->GetMover()->GetObjectGuid()) - return; - - Unit* pMover = _player->GetMap()->GetUnit(guid); - + Unit* pMover = GetMoverFromGuid(guid); if (!pMover) return; @@ -1078,6 +1055,19 @@ void WorldSession::HandleMoveTimeSkippedOpcode(WorldPacket& recvData) #endif } +// make sure this client is allowed to control the unit which guid is provided +Unit* WorldSession::GetMoverFromGuid(ObjectGuid const& guid) const +{ + if (guid == _player->GetMover()->GetObjectGuid()) + return _player->GetMover(); + if (guid == _player->GetObjectGuid()) + return _player; + if (guid == m_clientMoverGuid) + return _player->GetMap()->GetUnit(guid);; + + return nullptr; +} + bool WorldSession::VerifyMovementInfo(MovementInfo const& movementInfo) const { if (!MaNGOS::IsValidMapCoord(movementInfo.GetPos().x, movementInfo.GetPos().y, movementInfo.GetPos().z, movementInfo.GetPos().o)) diff --git a/src/game/WorldSession.cpp b/src/game/WorldSession.cpp index 742b62197e2..fe8c1ce66fe 100644 --- a/src/game/WorldSession.cpp +++ b/src/game/WorldSession.cpp @@ -756,6 +756,7 @@ void WorldSession::LogoutPlayer(bool Save) m_masterPlayer = nullptr; } + m_clientMoverGuid.Clear(); m_playerLogout = false; m_playerSave = false; m_playerRecentlyLogout = true; diff --git a/src/game/WorldSession.h b/src/game/WorldSession.h index c04198e834b..5d2ac60bb5e 100644 --- a/src/game/WorldSession.h +++ b/src/game/WorldSession.h @@ -383,9 +383,12 @@ class WorldSession void ProcessAnticheatAction(char const* detector, char const* reason, uint32 action, uint32 banTime = 0 /* Perm ban */); uint32 GetFingerprint() const { return 0; } // TODO void CleanupFingerprintHistory() {} // TODO + bool HasUsedClickToMove() const; + + // Movement + Unit* GetMoverFromGuid(ObjectGuid const& guid) const; ObjectGuid const& GetClientMoverGuid() const { return m_clientMoverGuid; } bool HasClientMovementControl() const { return !m_clientMoverGuid.IsEmpty(); } - bool HasUsedClickToMove() const; void SetReceivedWhoRequest(bool v) { m_who_recvd = v; } bool ReceivedWhoRequest() const { return m_who_recvd; } From 8f7f0c5f3044a884510edfd54ea3550059b85aa4 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 5 Oct 2023 02:24:23 +0300 Subject: [PATCH 209/426] Remove double semicolons. --- src/game/Anticheat/Anticheat.cpp | 2 +- src/game/Commands/CharacterCommands.cpp | 2 +- src/game/Handlers/MovementHandler.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/game/Anticheat/Anticheat.cpp b/src/game/Anticheat/Anticheat.cpp index 772a19a8e00..d21775b0147 100644 --- a/src/game/Anticheat/Anticheat.cpp +++ b/src/game/Anticheat/Anticheat.cpp @@ -160,7 +160,7 @@ void AnticheatManager::RemoveWardenSessionInternal(Warden* warden) if (m_wardenSessions[i] == warden) { m_wardenSessions[i] = nullptr; - break;; + break; } } diff --git a/src/game/Commands/CharacterCommands.cpp b/src/game/Commands/CharacterCommands.cpp index a66b1f23f5c..a7040d08cfb 100644 --- a/src/game/Commands/CharacterCommands.cpp +++ b/src/game/Commands/CharacterCommands.cpp @@ -5719,7 +5719,7 @@ bool ChatHandler::HandleListExploredAreasCommand(char* args) sObjectMgr.GetAreaLocaleString(itr->Id, GetSessionDbLocaleIndex(), &name); if (!itr->ExploreFlag || itr->ExploreFlag == 0xffff) - continue;; + continue; int offset = itr->ExploreFlag / 32; if (offset >= PLAYER_EXPLORED_ZONES_SIZE) diff --git a/src/game/Handlers/MovementHandler.cpp b/src/game/Handlers/MovementHandler.cpp index 218707a1ef0..62da53a8573 100644 --- a/src/game/Handlers/MovementHandler.cpp +++ b/src/game/Handlers/MovementHandler.cpp @@ -1063,7 +1063,7 @@ Unit* WorldSession::GetMoverFromGuid(ObjectGuid const& guid) const if (guid == _player->GetObjectGuid()) return _player; if (guid == m_clientMoverGuid) - return _player->GetMap()->GetUnit(guid);; + return _player->GetMap()->GetUnit(guid); return nullptr; } From b3b19fce24631a959a322493cd9a3cb38fb82e5d Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 5 Oct 2023 03:42:34 +0300 Subject: [PATCH 210/426] CI: Use mysql dll bundled with core. --- .github/workflows/dev-release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-release.yml b/.github/workflows/dev-release.yml index 3edb2174224..3df9427fad2 100644 --- a/.github/workflows/dev-release.yml +++ b/.github/workflows/dev-release.yml @@ -82,7 +82,7 @@ jobs: copy ${{github.workspace}}/tbb/bin/intel64/vc14/tbbmalloc_proxy_debug.dll ${{github.workspace}}/bin/Release/tbbmalloc_proxy_debug.dll copy ${{github.workspace}}/ACE_wrappers/lib/ACE.dll ${{github.workspace}}/bin/Release/ACE.dll - copy c:/mysql/lib/libmysql.dll ${{github.workspace}}/bin/Release/libmysql.dll + copy ${{github.workspace}}/dep/windows/lib/x64_release/libmySQL.dll ${{github.workspace}}/bin/Release/libmySQL.dll # copy "c:/Program Files/OpenSSL-Win64/bin/libssl-1_1-x64.dll" ${{github.workspace}}/bin/Release/libssl-1_1-x64.dll # copy "c:/Program Files/OpenSSL-Win64/bin/libcrypto-1_1-x64.dll" ${{github.workspace}}/bin/Release/libcrypto-1_1-x64.dll copy ${{github.workspace}}/dep/windows/lib/x64_release/libeay32.dll ${{github.workspace}}/bin/Release/libeay32.dll @@ -125,7 +125,7 @@ jobs: copy ${{github.workspace}}/tbb/bin/intel64/vc14/tbbmalloc_proxy_debug.dll ${{github.workspace}}/bin/Release/tbbmalloc_proxy_debug.dll copy ${{github.workspace}}/ACE_wrappers/lib/ACE.dll ${{github.workspace}}/bin/Release/ACE.dll - copy c:/mysql/lib/libmysql.dll ${{github.workspace}}/bin/Release/libmysql.dll + copy ${{github.workspace}}/dep/windows/lib/x64_release/libmySQL.dll ${{github.workspace}}/bin/Release/libmySQL.dll # copy "c:/Program Files/OpenSSL-Win64/bin/libssl-1_1-x64.dll" ${{github.workspace}}/bin/Release/libssl-1_1-x64.dll # copy "c:/Program Files/OpenSSL-Win64/bin/libcrypto-1_1-x64.dll" ${{github.workspace}}/bin/Release/libcrypto-1_1-x64.dll copy ${{github.workspace}}/dep/windows/lib/x64_release/libeay32.dll ${{github.workspace}}/bin/Release/libeay32.dll From 071c3b1f932ce1f712a93232f40b9b21b2b505d4 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 6 Oct 2023 02:39:11 +0300 Subject: [PATCH 211/426] Fix Tranquility and Starshards channeling visual disappearing. Closes https://github.com/vmangos/core/issues/2214 --- sql/migrations/20231005233649_world.sql | 21 +++++++++++++++++ src/game/Database/DBCStores.cpp | 2 ++ src/game/Database/DBCStores.h | 1 + src/game/Database/DBCStructure.h | 20 ++++++++++++++++ src/game/Database/DBCfmt.h | 1 + src/game/Spells/Spell.cpp | 31 ++++++++++++++++++++++++- src/game/Spells/Spell.h | 3 +++ src/game/Spells/SpellDefines.h | 1 + 8 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 sql/migrations/20231005233649_world.sql diff --git a/sql/migrations/20231005233649_world.sql b/sql/migrations/20231005233649_world.sql new file mode 100644 index 00000000000..971819ad892 --- /dev/null +++ b/sql/migrations/20231005233649_world.sql @@ -0,0 +1,21 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231005233649'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231005233649'); +-- Add your query below. + + +-- Fix Tranquility and Starshards channeling visual disappearing. +UPDATE `spell_template` SET `customFlags`=(`customFlags` | 0x800) WHERE `entry` IN (10797, 19296, 19299, 19302, 19303, 19304, 19305, 22822, 22823, 27636, 740, 8918, 9862, 9863, 21791, 25817, 21793); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Database/DBCStores.cpp b/src/game/Database/DBCStores.cpp index 2418b971ead..2fcea448a0c 100644 --- a/src/game/Database/DBCStores.cpp +++ b/src/game/Database/DBCStores.cpp @@ -94,6 +94,7 @@ DBCStorage sSpellFocusObjectStore(SpellFocusObjectfmt); DBCStorage sSpellRadiusStore(SpellRadiusfmt); DBCStorage sSpellRangeStore(SpellRangefmt); DBCStorage sSpellShapeshiftFormStore(SpellShapeshiftfmt); +DBCStorage sSpellVisualStore(SpellVisualfmt); DBCStorage sStableSlotPricesStore(StableSlotPricesfmt); DBCStorage sTalentStore(TalentEntryfmt); TalentSpellPosMap sTalentSpellPosMap; @@ -320,6 +321,7 @@ void LoadDBCStores(std::string const& dataPath) LoadDBC(availableDbcLocales, bar, badDbcFiles, sSpellRadiusStore, dbcPath, "SpellRadius.dbc"); LoadDBC(availableDbcLocales, bar, badDbcFiles, sSpellRangeStore, dbcPath, "SpellRange.dbc"); LoadDBC(availableDbcLocales, bar, badDbcFiles, sSpellShapeshiftFormStore, dbcPath, "SpellShapeshiftForm.dbc"); + LoadDBC(availableDbcLocales, bar, badDbcFiles, sSpellVisualStore, dbcPath, "SpellVisual.dbc"); LoadDBC(availableDbcLocales, bar, badDbcFiles, sStableSlotPricesStore, dbcPath, "StableSlotPrices.dbc"); LoadDBC(availableDbcLocales, bar, badDbcFiles, sTalentStore, dbcPath, "Talent.dbc"); diff --git a/src/game/Database/DBCStores.h b/src/game/Database/DBCStores.h index 1d68001d339..7168c0e193f 100644 --- a/src/game/Database/DBCStores.h +++ b/src/game/Database/DBCStores.h @@ -93,6 +93,7 @@ extern PetFamilySpellsStore sPetFamilySpellsStore; extern DBCStorage sSpellRadiusStore; extern DBCStorage sSpellRangeStore; extern DBCStorage sSpellShapeshiftFormStore; +extern DBCStorage sSpellVisualStore; extern DBCStorage sStableSlotPricesStore; extern DBCStorage sTalentStore; extern DBCStorage sTalentTabStore; diff --git a/src/game/Database/DBCStructure.h b/src/game/Database/DBCStructure.h index 92832508696..01d56103cd8 100644 --- a/src/game/Database/DBCStructure.h +++ b/src/game/Database/DBCStructure.h @@ -619,6 +619,26 @@ struct SpellShapeshiftFormEntry //uint32 unk1; // 13 m_attackIconID }; +struct SpellVisualEntry +{ + uint32 id; + uint32 precastKit; + uint32 castKit; + uint32 impactKit; + uint32 stateKit; + uint32 channelKit; + uint32 hasMissile; + uint32 missileModel; + uint32 missilePathType; + uint32 missileDestinationAttachment; + uint32 missileSound; + uint32 hasAreaEffect; + uint32 areaModel; + uint32 areaKit; + uint32 animEventSoundID; + uint32 flags; +}; + struct SpellDurationEntry { uint32 ID; // m_ID diff --git a/src/game/Database/DBCfmt.h b/src/game/Database/DBCfmt.h index e460a9d8ab9..d472bc947b5 100644 --- a/src/game/Database/DBCfmt.h +++ b/src/game/Database/DBCfmt.h @@ -76,6 +76,7 @@ char const SpellItemEnchantmentfmt[]="niiiiiixxxiiissssssssxii"; char const SpellRadiusfmt[]="nfxx"; char const SpellRangefmt[]="nffxxxxxxxxxxxxxxxxxxx"; char const SpellShapeshiftfmt[]="nxssssssssxiix"; +char const SpellVisualfmt[] = "niiiiiiiiiiiiiii"; char const StableSlotPricesfmt[] = "ni"; char const TalentEntryfmt[]="niiiiiiiixxxxixxixxxi"; char const TalentTabEntryfmt[]="nxxxxxxxxxxxiix"; diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index b0f3610c3cf..62ac592b39f 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -47,7 +47,7 @@ using namespace Spells; -#define SPELL_CHANNEL_UPDATE_INTERVAL (1 * IN_MILLISECONDS) +#define SPELL_CHANNEL_VISUAL_TIMER 800 extern pEffect SpellEffects[TOTAL_SPELL_EFFECTS]; @@ -4021,6 +4021,7 @@ void Spell::handle_immediate() SendChannelStart(m_duration); if (m_caster->IsPlayer()) m_caster->ToPlayer()->RemoveSpellMods(this); + InitializeChanneledVisualTimer(); } m_targetNum = 0; @@ -4436,6 +4437,18 @@ void Spell::update(uint32 difftime) finish(); } + // Periodically send the spell visual kit for some channeled spells + // This fixes Tranquility and Starshards visuals + else if (m_channeledVisualKit && m_casterUnit) + { + if (difftime >= m_channeledVisualTimer) + { + m_casterUnit->SendPlaySpellVisual(m_channeledVisualKit); + m_channeledVisualTimer = SPELL_CHANNEL_VISUAL_TIMER; + } + else + m_channeledVisualTimer -= difftime; + } } break; default: @@ -5160,6 +5173,22 @@ void Spell::SendChannelStart(uint32 duration) } } +void Spell::InitializeChanneledVisualTimer() +{ + if (!(m_spellInfo->Custom & SPELL_CUSTOM_SEND_CHANNEL_VISUAL)) + return; + + if (!m_spellInfo->SpellVisual) + return; + + SpellVisualEntry const* pSpellVisual = sSpellVisualStore.LookupEntry(m_spellInfo->SpellVisual); + if (!pSpellVisual || !pSpellVisual->channelKit) + return; + + m_channeledVisualKit = pSpellVisual->channelKit; + m_channeledVisualTimer = SPELL_CHANNEL_VISUAL_TIMER; +} + void Spell::SendResurrectRequest(Player* target, bool sickness) { // Both players and NPCs can resurrect using spells - have a look at creature 28487 for example diff --git a/src/game/Spells/Spell.h b/src/game/Spells/Spell.h index 8af45d8b55d..ff5699b87c8 100644 --- a/src/game/Spells/Spell.h +++ b/src/game/Spells/Spell.h @@ -529,6 +529,9 @@ class Spell typedef std::list SpellAuraHolderList; SpellAuraHolderList m_channeledHolders; // aura holders of spell on targets for channeled spells. process in sync with spell SpellAuraHolderList::iterator m_channeledUpdateIterator; // maintain an iterator to the current update element so we can handle removal of multiple auras + uint32 m_channeledVisualKit = 0; // id from SpellVisualKit.dbc that needs to be sent in SMSG_PLAY_SPELL_VISUAL periodically + uint32 m_channeledVisualTimer = 0; // timer for sending the visual kit + void InitializeChanneledVisualTimer(); // These vars are used in both delayed spell system and modified immediate spell system bool m_referencedFromCurrentSpell = false; // mark as references to prevent deleted and access by dead pointers diff --git a/src/game/Spells/SpellDefines.h b/src/game/Spells/SpellDefines.h index 93f9e6c3021..a21d45acf64 100644 --- a/src/game/Spells/SpellDefines.h +++ b/src/game/Spells/SpellDefines.h @@ -881,6 +881,7 @@ enum SpellAttributesCustom SPELL_CUSTOM_SINGLE_TARGET_AURA = 0x100, // Aura applied by spell can only be on 1 target at a time SPELL_CUSTOM_AURA_APPLY_BREAKS_STEALTH = 0x200, // Stealth is removed when this aura is applied SPELL_CUSTOM_NOT_REMOVED_ON_EVADE = 0x400, // Aura persists after creature evades + SPELL_CUSTOM_SEND_CHANNEL_VISUAL = 0x800, // Will periodically send the channeling spell visual kit }; // Custom flags assigned by the core based on spell template data From ebb3f26415c96e9635ed5701ae07eb145a35f26d Mon Sep 17 00:00:00 2001 From: balakethelock <111737968+balakethelock@users.noreply.github.com> Date: Fri, 6 Oct 2023 05:04:18 +0100 Subject: [PATCH 212/426] Implement SPELL_ATTR_EX_NO_AUTOCAST_AI for charmed players (#2104) --- src/game/AI/PlayerAI.cpp | 50 ++++------------------------------------ 1 file changed, 4 insertions(+), 46 deletions(-) diff --git a/src/game/AI/PlayerAI.cpp b/src/game/AI/PlayerAI.cpp index c669b2db416..3061dfc52f4 100644 --- a/src/game/AI/PlayerAI.cpp +++ b/src/game/AI/PlayerAI.cpp @@ -24,18 +24,6 @@ #include "MotionMaster.h" #include "Spell.h" -// Misc spells we dont want players to cast -static std::vector priestSkipSpells = -{ - 453,8123,8192,8193,10953,10954, // mind soothe - 1150,2096,2097,10909,10910, // mind vision - 1265,9580,9581,9593,10943,10944, // fade -}; -static std::vector hunterSkipSpells = -{ - 75, // auto shot -}; - void PlayerAI::Remove() { me->SetAI(nullptr); @@ -132,32 +120,15 @@ PlayerControlledAI::PlayerControlledAI(Player* pPlayer, Unit* caster) : PlayerAI continue; if (spellInfo->Attributes & (SPELL_ATTR_PASSIVE | 0x80)) continue; + if (spellInfo->AttributesEx & SPELL_ATTR_EX_NO_AUTOCAST_AI) + continue; if (spellInfo->HasAuraInterruptFlag(AURA_INTERRUPT_DAMAGE_CANCELS)) continue; if (Spells::IsPositiveSpell(spell.first) && !enablePositiveSpells) continue; - switch (pPlayer->GetClass()) - { - case CLASS_WARRIOR: - case CLASS_ROGUE: - case CLASS_PALADIN: - case CLASS_DRUID: - case CLASS_SHAMAN: - case CLASS_MAGE: - case CLASS_WARLOCK: - break; - case CLASS_HUNTER: - if (std::find(hunterSkipSpells.begin(), hunterSkipSpells.end(), spell.first) != hunterSkipSpells.end()) - continue; - break; - case CLASS_PRIEST: - if (std::find(priestSkipSpells.begin(), priestSkipSpells.end(), spell.first) != priestSkipSpells.end()) - continue; - break; - } usableSpells.push_back(spell.first); } - // Suppression des sorts dont on a deja des rangs superieurs + // Ignore non-max rank for (std::vector::iterator it = usableSpells.begin(); it != usableSpells.end();) { bool foundSupRank = false; @@ -169,7 +140,7 @@ PlayerControlledAI::PlayerControlledAI(Player* pPlayer, Unit* caster) : PlayerAI { if (Spells::CompareAuraRanks(pCurrSpell_1->Id, pCurrSpell_2->Id) < 0) // pCurrSpell_1 < pCurrSpell_2 { - // Donc on supprime pCurrSpell_1 + // So we ignore pCurrSpell_1 foundSupRank = true; break; } @@ -356,19 +327,6 @@ void PlayerControlledAI::UpdateAI(uint32 const uiDiff) if (uiGlobalCD < uiDiff) { - if (me->GetClass() == CLASS_HUNTER) - { - float dist = me->GetDistance(victim); - if (dist > 10.0f) - { - if (Spell* pSpell = me->GetCurrentSpell(CURRENT_AUTOREPEAT_SPELL)) - { - if (pSpell->m_spellInfo && pSpell->m_spellInfo->Id != 75) // auto shoot - me->CastSpell(victim, 75, true); - } - } - } - if (me->IsNonMeleeSpellCasted(true)) uiGlobalCD = 200; else From 46de366423855b88bb2810b4f46fbdc7a797c869 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 7 Oct 2023 00:32:43 +0300 Subject: [PATCH 213/426] Fix local time condition. --- src/game/Conditions.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/game/Conditions.cpp b/src/game/Conditions.cpp index 287306fcb40..e0cedc29d43 100644 --- a/src/game/Conditions.cpp +++ b/src/game/Conditions.cpp @@ -602,7 +602,10 @@ bool inline ConditionEntry::Evaluate(WorldObject const* target, Map const* map, struct tm* timeinfo; timeinfo = localtime(&rawtime); - return (timeinfo->tm_hour >= m_value1) && (timeinfo->tm_min >= m_value2) && (timeinfo->tm_hour <= m_value3) && (timeinfo->tm_min <= m_value4); + return (timeinfo->tm_hour >= m_value1) && + ((timeinfo->tm_hour > m_value1) || (timeinfo->tm_min >= m_value2)) && + (timeinfo->tm_hour <= m_value3) && + ((timeinfo->tm_hour < m_value3) || (timeinfo->tm_min <= m_value4)); } case CONDITION_DISTANCE_TO_POSITION: { From 8434d79c09dc452e57271c91105db0303f6bbee1 Mon Sep 17 00:00:00 2001 From: Gamemechanic Date: Fri, 6 Oct 2023 23:51:05 +0200 Subject: [PATCH 214/426] Add an offmesh connection to SM graveyard. (#2218) Allows a Haunting Phantasm to path out of its spawn position. --- contrib/mmap/offmesh.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/mmap/offmesh.txt b/contrib/mmap/offmesh.txt index f1d120a7579..cb89ff58138 100644 --- a/contrib/mmap/offmesh.txt +++ b/contrib/mmap/offmesh.txt @@ -1,3 +1,4 @@ 30 32,33 (-759.16 -350.45 68.96) (-758.2 -348.56 67.56) 2.5 // AV 30 32,33 (-761.69 -349.45 69.0) (-761 -347.83 67.61) 2.5 -30 32,33 (-765?1 -348 69) (-764.53 -346.58 67.66) 2.5 \ No newline at end of file +30 32,33 (-765.1 -348 69) (-764.53 -346.58 67.66) 2.5 +189 29,28 (1827.839478 1315.610962 17.235508) (1830.25244 1315.189697 19.016930) 2.5 \ No newline at end of file From d8db25a9bec2022cec23630c64329d5406ceeb5b Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 7 Oct 2023 05:57:39 +0300 Subject: [PATCH 215/426] Correct SMSG_ITEM_ENCHANT_TIME_UPDATE structure before 1.11.0. --- src/game/Handlers/ItemHandler.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/game/Handlers/ItemHandler.cpp b/src/game/Handlers/ItemHandler.cpp index dc8dc9ca3b6..c21d8901ffc 100644 --- a/src/game/Handlers/ItemHandler.cpp +++ b/src/game/Handlers/ItemHandler.cpp @@ -1090,12 +1090,13 @@ void WorldSession::HandleSetAmmoOpcode(WorldPacket& recv_data) void WorldSession::SendItemEnchantTimeUpdate(ObjectGuid playerGuid, ObjectGuid itemGuid, uint32 slot, uint32 duration) { - // last check 2.0.10 WorldPacket data(SMSG_ITEM_ENCHANT_TIME_UPDATE, (8 + 4 + 4 + 8)); data << ObjectGuid(itemGuid); data << uint32(slot); data << uint32(duration); +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_10_2 data << ObjectGuid(playerGuid); +#endif SendPacket(&data); } From 12908fc8f45237944571c38cf695dcd4f6d8acd4 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 8 Oct 2023 00:15:21 +0300 Subject: [PATCH 216/426] Fix account data types in older versions. If you logged in with a pre 1.9 client and then a newer one or vice versa, your settings would get messed up because the account data type indexes changed. --- src/game/AccountData.h | 108 +++++++++++++++++++++++++ src/game/CMakeLists.txt | 1 + src/game/Handlers/CharacterHandler.cpp | 2 +- src/game/Handlers/MiscHandler.cpp | 38 +++++++-- src/game/WorldSession.cpp | 29 ++++--- src/game/WorldSession.h | 31 +------ 6 files changed, 165 insertions(+), 44 deletions(-) create mode 100644 src/game/AccountData.h diff --git a/src/game/AccountData.h b/src/game/AccountData.h new file mode 100644 index 00000000000..d950869f4ab --- /dev/null +++ b/src/game/AccountData.h @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2005-2011 MaNGOS + * Copyright (C) 2009-2011 MaNGOSZero + * Copyright (C) 2011-2016 Nostalrius + * Copyright (C) 2016-2017 Elysium Project + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef _ACCDATA_H +#define _ACCDATA_H + +#include "Common.h" +#include "Policies/Singleton.h" +#include + +namespace OldAccountData // 1.8 and earlier +{ + enum AccountDataType + { + GLOBAL_CONFIG_CACHE = 0, // 0x01 g + GLOBAL_BINDINGS_CACHE = 1, // 0x04 g + GLOBAL_MACROS_CACHE = 2, // 0x08 g + PER_CHARACTER_LAYOUT_CACHE = 3, // 0x10 p + PER_CHARACTER_CHAT_CACHE = 4, // 0x20 p + NUM_ACCOUNT_DATA_TYPES = 5 + }; + + constexpr uint32 GLOBAL_CACHE_MASK = 0xD; + constexpr uint32 PER_CHARACTER_CACHE_MASK = 0x30; +} + +namespace NewAccountData // 1.9 and later +{ + enum AccountDataType + { + GLOBAL_CONFIG_CACHE = 0, // 0x01 g + PER_CHARACTER_CONFIG_CACHE = 1, // 0x02 p + GLOBAL_BINDINGS_CACHE = 2, // 0x04 g + PER_CHARACTER_BINDINGS_CACHE = 3, // 0x08 p + GLOBAL_MACROS_CACHE = 4, // 0x10 g + PER_CHARACTER_MACROS_CACHE = 5, // 0x20 p + PER_CHARACTER_LAYOUT_CACHE = 6, // 0x40 p + PER_CHARACTER_CHAT_CACHE = 7, // 0x80 p + NUM_ACCOUNT_DATA_TYPES = 8 + }; + + constexpr uint32 GLOBAL_CACHE_MASK = 0x15; + constexpr uint32 PER_CHARACTER_CACHE_MASK = 0xEA; +} + +inline NewAccountData::AccountDataType ConvertOldAccountDataToNew(uint32 index) +{ + switch (index) + { + case OldAccountData::GLOBAL_CONFIG_CACHE: + return NewAccountData::GLOBAL_CONFIG_CACHE; + case OldAccountData::GLOBAL_BINDINGS_CACHE: + return NewAccountData::GLOBAL_BINDINGS_CACHE; + case OldAccountData::GLOBAL_MACROS_CACHE: + return NewAccountData::GLOBAL_MACROS_CACHE; + case OldAccountData::PER_CHARACTER_LAYOUT_CACHE: + return NewAccountData::PER_CHARACTER_LAYOUT_CACHE; + case OldAccountData::PER_CHARACTER_CHAT_CACHE: + return NewAccountData::PER_CHARACTER_CHAT_CACHE; + } + return NewAccountData::NUM_ACCOUNT_DATA_TYPES; +} + +inline OldAccountData::AccountDataType ConvertNewAccountDataToOld(uint32 index) +{ + switch (index) + { + case NewAccountData::GLOBAL_CONFIG_CACHE: + return OldAccountData::GLOBAL_CONFIG_CACHE; + case NewAccountData::GLOBAL_BINDINGS_CACHE: + return OldAccountData::GLOBAL_BINDINGS_CACHE; + case NewAccountData::GLOBAL_MACROS_CACHE: + return OldAccountData::GLOBAL_MACROS_CACHE; + case NewAccountData::PER_CHARACTER_LAYOUT_CACHE: + return OldAccountData::PER_CHARACTER_LAYOUT_CACHE; + case NewAccountData::PER_CHARACTER_CHAT_CACHE: + return OldAccountData::PER_CHARACTER_CHAT_CACHE; + } + return OldAccountData::NUM_ACCOUNT_DATA_TYPES; +} + +struct AccountData +{ + AccountData() : timestamp(0), data("") {} + + time_t timestamp; + std::string data; +}; + +#endif diff --git a/src/game/CMakeLists.txt b/src/game/CMakeLists.txt index 50029dd0b66..f396ab36be4 100644 --- a/src/game/CMakeLists.txt +++ b/src/game/CMakeLists.txt @@ -216,6 +216,7 @@ set (game_SRCS vmap/VMapFactory.cpp vmap/VMapManager2.cpp vmap/WorldModel.cpp + AccountData.h AccountMgr.h AuraRemovalMgr.h AutoBroadCastMgr.h diff --git a/src/game/Handlers/CharacterHandler.cpp b/src/game/Handlers/CharacterHandler.cpp index 8585c8619a9..6e9c2485ef6 100644 --- a/src/game/Handlers/CharacterHandler.cpp +++ b/src/game/Handlers/CharacterHandler.cpp @@ -556,7 +556,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder *holder) SendPacket(&data); // load player specific part before send times - LoadAccountData(holder->GetResult(PLAYER_LOGIN_QUERY_LOADACCOUNTDATA), PER_CHARACTER_CACHE_MASK); + LoadAccountData(holder->GetResult(PLAYER_LOGIN_QUERY_LOADACCOUNTDATA), NewAccountData::PER_CHARACTER_CACHE_MASK); SendAccountDataTimes(); pCurrChar->GetSocial()->SendFriendList(); diff --git a/src/game/Handlers/MiscHandler.cpp b/src/game/Handlers/MiscHandler.cpp index 837baff96d8..aa61e99da71 100644 --- a/src/game/Handlers/MiscHandler.cpp +++ b/src/game/Handlers/MiscHandler.cpp @@ -876,12 +876,24 @@ void WorldSession::HandleUpdateAccountData(WorldPacket& recv_data) { uint32 type, decompressedSize; recv_data >> type >> decompressedSize; - if (type > NUM_ACCOUNT_DATA_TYPES) + + NewAccountData::AccountDataType dataType; + if (GetGameBuild() <= CLIENT_BUILD_1_8_4) + dataType = ConvertOldAccountDataToNew(type); + else + dataType = (NewAccountData::AccountDataType)type; + + if (dataType >= NewAccountData::NUM_ACCOUNT_DATA_TYPES) + { + std::stringstream oss; + oss << "Client sent invalid account data type " << type << " in CMSG_UPDATE_ACCOUNT_DATA."; + ProcessAnticheatAction("PassiveAnticheat", oss.str().c_str(), CHEAT_ACTION_LOG); return; + } if (decompressedSize == 0) // erase { - SetAccountData(AccountDataType(type), ""); + SetAccountData(dataType, ""); return; } @@ -902,23 +914,35 @@ void WorldSession::HandleUpdateAccountData(WorldPacket& recv_data) recv_data.rpos(recv_data.wpos()); // uncompress read (recv_data.size() - recv_data.rpos()) std::string adata((char*)dest.data(), dest.size()); - SetAccountData(AccountDataType(type), adata); + SetAccountData(dataType, adata); } void WorldSession::HandleRequestAccountData(WorldPacket& recv_data) { uint32 type; recv_data >> type; - if (type > NUM_ACCOUNT_DATA_TYPES) + + NewAccountData::AccountDataType dataType; + if (GetGameBuild() <= CLIENT_BUILD_1_8_4) + dataType = ConvertOldAccountDataToNew(type); + else + dataType = (NewAccountData::AccountDataType)type; + + if (dataType >= NewAccountData::NUM_ACCOUNT_DATA_TYPES) + { + std::stringstream oss; + oss << "Client requested invalid account data type " << type << " in CMSG_REQUEST_ACCOUNT_DATA."; + ProcessAnticheatAction("PassiveAnticheat", oss.str().c_str(), CHEAT_ACTION_LOG); return; + } - AccountData* adata = GetAccountData(AccountDataType(type)); + AccountData* adata = GetAccountData(dataType); uint32 size = adata->data.size(); if (!size) { WorldPacket data(SMSG_UPDATE_ACCOUNT_DATA, 4 + 4); - data << uint32(type); // type (0-7) + data << uint32(type); // use the original type sent by client data << uint32(0); // decompressed length SendPacket(&data); } @@ -931,7 +955,7 @@ void WorldSession::HandleRequestAccountData(WorldPacket& recv_data) compress(const_cast(dest.contents()), &destSize, (uint8*)adata->data.c_str(), size); WorldPacket data(SMSG_UPDATE_ACCOUNT_DATA, 4 + 4 + destSize + 1); - data << uint32(type); // type (0-7) + data << uint32(type); // use the original type sent by client data << uint32(size); // decompressed length data.append(dest); // compressed data SendPacket(&data); diff --git a/src/game/WorldSession.cpp b/src/game/WorldSession.cpp index fe8c1ce66fe..3beda7bb392 100644 --- a/src/game/WorldSession.cpp +++ b/src/game/WorldSession.cpp @@ -881,7 +881,7 @@ void WorldSession::LoadGlobalAccountData() QueryResult* result = CharacterDatabase.PQuery("SELECT `type`, `time`, `data` FROM `account_data` WHERE `account`=%u", GetAccountId()); LoadAccountData( result, - GLOBAL_CACHE_MASK + NewAccountData::GLOBAL_CACHE_MASK ); if (result) delete result; @@ -889,7 +889,7 @@ void WorldSession::LoadGlobalAccountData() void WorldSession::LoadAccountData(QueryResult* result, uint32 mask) { - for (uint32 i = 0; i < NUM_ACCOUNT_DATA_TYPES; ++i) + for (uint32 i = 0; i < NewAccountData::NUM_ACCOUNT_DATA_TYPES; ++i) if (mask & (1 << i)) m_accountData[i] = AccountData(); @@ -901,17 +901,17 @@ void WorldSession::LoadAccountData(QueryResult* result, uint32 mask) Field* fields = result->Fetch(); uint32 type = fields[0].GetUInt32(); - if (type >= NUM_ACCOUNT_DATA_TYPES) + if (type >= NewAccountData::NUM_ACCOUNT_DATA_TYPES) { sLog.Out(LOG_DBERROR, LOG_LVL_ERROR, "Table `%s` have invalid account data type (%u), ignore.", - mask == GLOBAL_CACHE_MASK ? "account_data" : "character_account_data", type); + mask == NewAccountData::GLOBAL_CACHE_MASK ? "account_data" : "character_account_data", type); continue; } if ((mask & (1 << type)) == 0) { sLog.Out(LOG_DBERROR, LOG_LVL_ERROR, "Table `%s` have non appropriate for table account data type (%u), ignore.", - mask == GLOBAL_CACHE_MASK ? "account_data" : "character_account_data", type); + mask == NewAccountData::GLOBAL_CACHE_MASK ? "account_data" : "character_account_data", type); continue; } @@ -920,10 +920,10 @@ void WorldSession::LoadAccountData(QueryResult* result, uint32 mask) } while (result->NextRow()); } -void WorldSession::SetAccountData(AccountDataType type, const std::string& data) +void WorldSession::SetAccountData(NewAccountData::AccountDataType type, const std::string& data) { time_t const currentTime = time(nullptr); - if ((1 << type) & GLOBAL_CACHE_MASK) + if ((1 << type) & NewAccountData::GLOBAL_CACHE_MASK) { uint32 acc = GetAccountId(); @@ -972,9 +972,20 @@ void WorldSession::SetAccountData(AccountDataType type, const std::string& data) void WorldSession::SendAccountDataTimes() { - WorldPacket data(SMSG_ACCOUNT_DATA_MD5, NUM_ACCOUNT_DATA_TYPES * MD5_DIGEST_LENGTH); - for (AccountData const& itr : m_accountData) + bool const isOldClient = GetGameBuild() <= CLIENT_BUILD_1_8_4; + uint32 const dataCount = isOldClient ? OldAccountData::NUM_ACCOUNT_DATA_TYPES : NewAccountData::NUM_ACCOUNT_DATA_TYPES; + WorldPacket data(SMSG_ACCOUNT_DATA_MD5, dataCount * MD5_DIGEST_LENGTH); + for (uint32 index = 0; index < NewAccountData::NUM_ACCOUNT_DATA_TYPES; ++index) { + // Skip indexes that dont exist in old clients + if (isOldClient) + { + OldAccountData::AccountDataType oldIndex = ConvertNewAccountDataToOld(index); + if (oldIndex == OldAccountData::NUM_ACCOUNT_DATA_TYPES) + continue; + } + + AccountData const& itr = m_accountData[index]; if (itr.data.empty()) { for (int i = 0; i < MD5_DIGEST_LENGTH; i++) diff --git a/src/game/WorldSession.h b/src/game/WorldSession.h index 5d2ac60bb5e..db7c469a519 100644 --- a/src/game/WorldSession.h +++ b/src/game/WorldSession.h @@ -32,6 +32,7 @@ #include "SniffFile.h" #include "ClientDefines.h" #include "Auth/BigNumber.h" +#include "AccountData.h" struct ItemPrototype; struct AuctionEntry; @@ -58,30 +59,6 @@ class MasterPlayer; struct OpcodeHandler; struct PlayerBotEntry; -enum AccountDataType -{ - GLOBAL_CONFIG_CACHE = 0, // 0x01 g - PER_CHARACTER_CONFIG_CACHE = 1, // 0x02 p - GLOBAL_BINDINGS_CACHE = 2, // 0x04 g - PER_CHARACTER_BINDINGS_CACHE = 3, // 0x08 p - GLOBAL_MACROS_CACHE = 4, // 0x10 g - PER_CHARACTER_MACROS_CACHE = 5, // 0x20 p - PER_CHARACTER_LAYOUT_CACHE = 6, // 0x40 p - PER_CHARACTER_CHAT_CACHE = 7, // 0x80 p - NUM_ACCOUNT_DATA_TYPES = 8 -}; - -#define GLOBAL_CACHE_MASK 0x15 -#define PER_CHARACTER_CACHE_MASK 0xEA - -struct AccountData -{ - AccountData() : timestamp(0), data("") {} - - time_t timestamp; - std::string data; -}; - enum PartyOperation { PARTY_OP_INVITE = 0, @@ -468,8 +445,8 @@ class WorldSession bool CheckStableMaster(ObjectGuid guid); // Account Data - AccountData* GetAccountData(AccountDataType type) { return &m_accountData[type]; } - void SetAccountData(AccountDataType type, const std::string& data); + AccountData* GetAccountData(NewAccountData::AccountDataType type) { return &m_accountData[type]; } + void SetAccountData(NewAccountData::AccountDataType type, const std::string& data); void SendAccountDataTimes(); void LoadGlobalAccountData(); void LoadAccountData(QueryResult* result, uint32 mask); @@ -916,7 +893,7 @@ class WorldSession uint32 m_charactersCount; uint32 m_characterMaxLevel; BigNumber m_sessionKey; - AccountData m_accountData[NUM_ACCOUNT_DATA_TYPES]; + AccountData m_accountData[NewAccountData::NUM_ACCOUNT_DATA_TYPES]; uint32 m_tutorials[ACCOUNT_TUTORIALS_COUNT]; TutorialDataState m_tutorialState; From 0265c0a688da80680ddc743e500e7ec6a398addb Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 11 Oct 2023 06:06:53 +0300 Subject: [PATCH 217/426] Correct creature damage and armor. Based on calculation of damage done and taken from melee damage packets. --- sql/migrations/20231011030405_world.sql | 8558 +++++++++++++++++++++++ 1 file changed, 8558 insertions(+) create mode 100644 sql/migrations/20231011030405_world.sql diff --git a/sql/migrations/20231011030405_world.sql b/sql/migrations/20231011030405_world.sql new file mode 100644 index 00000000000..b88046d1436 --- /dev/null +++ b/sql/migrations/20231011030405_world.sql @@ -0,0 +1,8558 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231011030405'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231011030405'); +-- Add your query below. + + +-- Murloc Coastrunner +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=126; -- old 0.45, level 13, hits 9 + +-- Gryan Stoutmantle +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=234; -- old 3.25, level 35, hits 8 + +-- Commander Althea Ebonlocke +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.8 WHERE `entry`=264; -- old 0.95, level 45, hits 3 + +-- Jitters +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=288; -- old 0.9, level 25, hits 7 + +-- Eliza +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=314; -- old 1, level 31, hits 22 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.75 WHERE `entry`=314; -- old 6, level 31, hits 6 + +-- Singe +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.6 WHERE `entry`=335; -- old 4.15, level 24, hits 10 + +-- Corporal Keeshan +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=349; -- old 2.8, level 25, hits 35 + +-- Stitches +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=412; -- old 3.3, level 35, hits 454 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=412; -- old 5.75, level 35, hits 116 + +-- Black Dragon Whelp +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=441; -- old 1, level 18, hits 104 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.17 WHERE `entry`=441; -- old 0.14, level 17, hits 47 + +-- Watcher Keefer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=495; -- old 0.9, level 40, hits 9 + +-- Watcher Paige +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.2 WHERE `entry`=499; -- old 0.95, level 29, hits 5 + +-- Lord Malathrom +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=503; -- old 4.5, level 31, hits 32 + +-- Mor'Ladim +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=522; -- old 3.95, level 35, hits 10 + +-- Fire Elemental +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=575; -- old 1.35, level 35, hits 5 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=575; -- old 0.75, level 35, hits 46 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=575; -- old 0.14, level 35, hits 46 + +-- Defias Pillager +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=589; -- old 1.5, level 14, hits 5 + +-- Defias Looter +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=590; -- old 0.85, level 14, hits 467 + +-- Brainwashed Noble +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=596; -- old 3.7, level 18, hits 9 + +-- Marisa du'Paige +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=599; -- old 3.7, level 18, hits 8 + +-- Goblin Engineer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=622; -- old 2.65, level 19, hits 17 + +-- Skeletal Miner +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.65 WHERE `entry`=623; -- old 2.8, level 17, hits 36 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=623; -- old 0.14, level 17, hits 36 + +-- Undead Excavator +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=624; -- old 2.8, level 18, hits 78 + +-- Undead Dynamiter +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.65 WHERE `entry`=625; -- old 2.8, level 17, hits 25 + +-- Foreman Thistlenettle +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=626; -- old 3.2, level 20, hits 19 + +-- Defias Overseer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=634; -- old 2.8, level 18, hits 57 + +-- Defias Blackguard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.65 WHERE `entry`=636; -- old 2.7, level 19, hits 74 + +-- Edwin VanCleef +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.8 WHERE `entry`=639; -- old 2.9, level 21, hits 61 + +-- Goblin Woodcarver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=641; -- old 2.65, level 18, hits 77 + +-- Rhahk'Zor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.3 WHERE `entry`=644; -- old 3.6, level 19, hits 27 + +-- Cookie +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=645; -- old 2.9, level 20, hits 58 + +-- Mr. Smite +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=646; -- old 3, level 20, hits 22 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=646; -- old 0.14, level 20, hits 22 + +-- Defias Pirate +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.65 WHERE `entry`=657; -- old 2.7, level 19, hits 175 + +-- Lesser Water Elemental +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=691; -- old 0.65, level 36, hits 108 + +-- Adolescent Whelp +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=740; -- old 0, level 34, hits 102 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=740; -- old 1.45, level 34, hits 65 + +-- Dreaming Whelp +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=741; -- old 1.15, level 36, hits 81 + +-- Swampwalker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=764; -- old 1.45, level 39, hits 44 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=764; -- old 0.14, level 39, hits 44 + +-- Swampwalker Elder +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=765; -- old 0.55, level 39, hits 30 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=765; -- old 0.85, level 39, hits 24 + +-- Tangled Horror +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=766; -- old 0, level 41, hits 20 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=766; -- old 1.3, level 41, hits 36 + +-- Commander Felstrom +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=771; -- old 3.75, level 32, hits 9 + +-- Bookie Herod +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=815; -- old 2.45, level 35, hits 3 + +-- Watcher Mocarski +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=827; -- old 0.85, level 38, hits 7 + +-- Dust Devil +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=832; -- old 0.65, level 18, hits 22 + +-- Ghoul +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=846; -- old 1.6, level 15, hits 56 + +-- Stonard Cartographer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=867; -- old 0.85, level 52, hits 6 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=867; -- old 2.05, level 52, hits 8 + +-- Watcher Jordan +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.2 WHERE `entry`=887; -- old 1, level 39, hits 24 + +-- Lord Grayson Shadowbreaker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=928; -- old 0.9, level 60, hits 21 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=928; -- old 1.05, level 60, hits 107 + +-- Watcher Hutchins +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1001; -- old 1.3, level 20, hits 3 + +-- Black Slime +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.3 WHERE `entry`=1030; -- old 1.5, level 20, hits 10 + +-- Gan'zulah +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.85 WHERE `entry`=1061; -- old 3.2, level 41, hits 38 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=1061; -- old 0.14, level 41, hits 38 + +-- Watcher Merant +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1098; -- old 1.3, level 20, hits 7 + +-- Watcher Gelwin +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1099; -- old 1.3, level 20, hits 6 + +-- Watcher Selkin +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1100; -- old 1.3, level 20, hits 7 + +-- Watcher Thayer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1101; -- old 1.3, level 20, hits 13 + +-- Cursed Sailor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1157; -- old 1.1, level 27, hits 439 + +-- Captain Halyndor +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=1160; -- old 1, level 30, hits 38 + +-- Watcher Sarys +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=1203; -- old 0.55, level 35, hits 9 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1203; -- old 1.5, level 35, hits 123 + +-- Watcher Corwin +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1204; -- old 1.55, level 38, hits 88 + +-- Balgaras the Foul +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=1364; -- old 4.35, level 34, hits 9 + +-- Miran +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.7 WHERE `entry`=1379; -- old 0.8, level 15, hits 52 + +-- Watcher Cutford +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=1436; -- old 1.6, level 37, hits 5 + +-- Zanzil Zombie +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1488; -- old 1.2, level 44, hits 316 + +-- Zanzil Hunter +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=1489; -- old 1.2, level 44, hits 243 + +-- Zanzil Naga +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1491; -- old 1.15, level 44, hits 506 + +-- Gorlash +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=1492; -- old 0.8, level 47, hits 73 + +-- Mindless Zombie +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.65 WHERE `entry`=1501; -- old 0.95, level 1, hits 169 + +-- Konda +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1516; -- old 3.75, level 43, hits 141 + +-- Rattlecage Soldier +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1520; -- old 0.85, level 6, hits 46 + +-- Darkeye Bonecaster +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.8 WHERE `entry`=1522; -- old 1.4, level 7, hits 57 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=1522; -- old 1.05, level 7, hits 50 + +-- Rotting Dead +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=1525; -- old 1, level 5, hits 17 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.85 WHERE `entry`=1525; -- old 1.1, level 5, hits 40 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.03 WHERE `entry`=1525; -- old 0.14, level 5, hits 40 + +-- Ravaged Corpse +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=1526; -- old 0.7, level 7, hits 44 + +-- Bleeding Horror +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=1529; -- old 0.6, level 10, hits 28 + +-- Lost Soul +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=1531; -- old 1.75, level 7, hits 85 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.19 WHERE `entry`=1531; -- old 0.14, level 7, hits 85 + +-- Tormented Spirit +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.95 WHERE `entry`=1533; -- old 1.65, level 9, hits 46 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.08 WHERE `entry`=1533; -- old 0.14, level 9, hits 46 + +-- Deathguard Burgess +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1652; -- old 0.9, level 24, hits 5 + +-- Nissa Agamand +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.95 WHERE `entry`=1655; -- old 1.05, level 10, hits 19 + +-- Thurman Agamand +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=1656; -- old 1.05, level 10, hits 50 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=1656; -- old 0.14, level 10, hits 50 + +-- Devlin Agamand +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=1657; -- old 1.9, level 9, hits 18 + +-- Defias Evoker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.6 WHERE `entry`=1729; -- old 3.8, level 18, hits 17 + +-- Goblin Craftsman +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.65 WHERE `entry`=1731; -- old 2.65, level 18, hits 85 + +-- Defias Squallshaper +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=1732; -- old 3.65, level 19, hits 74 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.17 WHERE `entry`=1732; -- old 0.14, level 19, hits 74 + +-- Deathguard Mort +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1744; -- old 0.9, level 24, hits 3 + +-- Highlord Bolvar Fordragon +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=1748; -- old 1.3, level 63, hits 237 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=1748; -- old 13.05, level 63, hits 403 + +-- Lord Gregor Lescovar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1754; -- old 1.3, level 31, hits 31 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=1754; -- old 0.14, level 31, hits 31 + +-- Stormwind Royal Guard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=1756; -- old 1.2, level 60, hits 16 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1756; -- old 5, level 60, hits 172 + +-- Gilnid +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.3 WHERE `entry`=1763; -- old 2.9, level 20, hits 22 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=1763; -- old 0.14, level 20, hits 22 + +-- Skeletal Warlord +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.65 WHERE `entry`=1788; -- old 3.5, level 57, hits 86 + +-- Flesh Golem +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=1805; -- old 3.6, level 57, hits 111 + +-- Grand Inquisitor Isillien +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=1840; -- old 1.4, level 63, hits 258 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8 WHERE `entry`=1840; -- old 5.8, level 63, hits 135 + +-- Highlord Taelan Fordring +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=1842; -- old 2.2, level 63, hits 40 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=1842; -- old 7.2, level 63, hits 270 + +-- Foulmane +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1847; -- old 3.7, level 52, hits 18 + +-- Putridius +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1850; -- old 3.7, level 58, hits 69 + +-- Araj the Summoner +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.2 WHERE `entry`=1852; -- old 5.95, level 61, hits 14 + +-- Darkmaster Gandling +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=1853; -- old 1.35, level 61, hits 36 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=1853; -- old 8.4, level 61, hits 93 + +-- Tirion Fordring +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=1855; -- old 44.8, level 61, hits 5 + +-- Dalaran Apprentice +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1867; -- old 1.15, level 13, hits 12 + +-- Eliza's Guard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1871; -- old 1.35, level 29, hits 57 + +-- Dalaran Watcher +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=1888; -- old 1, level 19, hits 27 + +-- Rattlecage Skeleton +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=1890; -- old 0.35, level 3, hits 3 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.65 WHERE `entry`=1890; -- old 1.1, level 3, hits 147 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.05 WHERE `entry`=1890; -- old 0.14, level 3, hits 147 + +-- Pyrewood Elder +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=1895; -- old 1, level 15, hits 148 + +-- Dalaran Mage +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=1914; -- old 1, level 15, hits 62 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1914; -- old 1.2, level 15, hits 22 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.18 WHERE `entry`=1914; -- old 0.14, level 15, hits 22 + +-- Dalaran Conjuror +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=1915; -- old 1, level 18, hits 44 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1915; -- old 1.2, level 18, hits 24 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.18 WHERE `entry`=1915; -- old 0.14, level 18, hits 24 + +-- Stephen Bhartec +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.92 WHERE `entry`=1916; -- old 1.1, level 3, hits 4 + +-- Daniel Ulfman +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.85 WHERE `entry`=1917; -- old 1.25, level 2, hits 4 + +-- Samuel Fipps +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.85 WHERE `entry`=1919; -- old 1.1, level 5, hits 19 + +-- Rot Hide Brute +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=1939; -- old 1, level 17, hits 245 + +-- Rot Hide Plague Weaver +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=1940; -- old 1, level 17, hits 111 + +-- Raging Rot Hide +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.7 WHERE `entry`=1943; -- old 0.95, level 19, hits 226 + +-- Lillith Nefara +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1946; -- old 1.7, level 12, hits 15 + +-- Snarlmane +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1948; -- old 3.2, level 23, hits 3 + +-- Elder Lake Creeper +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=1956; -- old 1, level 18, hits 49 + +-- Greenpaw +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=1993; -- old 1, level 10, hits 11 + +-- Bloodfeather Fury +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=2019; -- old 1, level 10, hits 27 + +-- Timberling +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.85 WHERE `entry`=2022; -- old 1.1, level 5, hits 262 + +-- Ancient Protector +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=2041; -- old 1.35, level 60, hits 5 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.6 WHERE `entry`=2041; -- old 1.6, level 60, hits 16 + +-- Forlorn Spirit +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=2044; -- old 0, level 26, hits 6 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2044; -- old 1.8, level 25, hits 21 + +-- Haggard Refugee +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2053; -- old 0.85, level 18, hits 25 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=2053; -- old 0.14, level 18, hits 25 + +-- Sickly Refugee +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=2054; -- old 0, level 19, hits 14 + +-- Councilman Smithers +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.95 WHERE `entry`=2060; -- old 1.1, level 12, hits 30 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.65 WHERE `entry`=2060; -- old 1.9, level 12, hits 13 + +-- Councilman Higarth +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=2066; -- old 1, level 13, hits 35 + +-- Mountaineer Dokkin +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.10 WHERE `entry`=2105; -- old 1, level 30, hits 6 + +-- Gnarlpine Ambusher +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.7 WHERE `entry`=2152; -- old 1, level 7, hits 11 + +-- Gravelflint Scout +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2158; -- old 1.5, level 19, hits 67 + +-- Gravelflint Bonesnapper +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2159; -- old 1.35, level 20, hits 5 + +-- Gravelflint Geomancer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=2160; -- old 1.6, level 20, hits 7 + +-- Agal +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=2162; -- old 0.75, level 8, hits 4 + +-- Oakenscowl +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=2166; -- old 1, level 9, hits 24 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.3 WHERE `entry`=2166; -- old 1.75, level 9, hits 23 + +-- Cursed Highborne +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2176; -- old 0.5, level 10, hits 48 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=2176; -- old 0.14, level 10, hits 48 + +-- Writhing Highborne +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=2177; -- old 1, level 12, hits 74 + +-- Vile Sprite +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=2189; -- old 1, level 10, hits 85 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=2189; -- old 0.5, level 10, hits 151 + +-- Greymist Tidehunter +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=2208; -- old 1, level 20, hits 24 + +-- High Executor Darthalia +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=10 WHERE `entry`=2215; -- old 2.55, level 60, hits 7 + +-- Zora Guthrek +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2225; -- old 1.4, level 55, hits 341 + +-- Stone Fury +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2258; -- old 3.55, level 37, hits 24 + +-- Hillsbrad Apprentice Blacksmith +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.45 WHERE `entry`=2265; -- old 1, level 24, hits 40 + +-- Hillsbrad Sentry +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=2270; -- old 2, level 28, hits 21 + +-- Enraged Stanley +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.35 WHERE `entry`=2275; -- old 1, level 24, hits 6 + +-- Magistrate Henry Maleb +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=10 WHERE `entry`=2276; -- old 1.85, level 60, hits 15 + +-- Ravenclaw Regent +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2283; -- old 3.7, level 22, hits 19 + +-- Andrew Brownell +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2308; -- old 1.1, level 40, hits 27 + +-- Thomas Arlento +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2309; -- old 1.2, level 5, hits 4 + +-- Dalaran Summoner +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2358; -- old 1.15, level 35, hits 75 + +-- Elemental Slave +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=2359; -- old 0, level 34, hits 241 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=2359; -- old 0.95, level 33, hits 143 + +-- Southshore Guard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=2386; -- old 1.3, level 55, hits 142 + +-- Warden Belamoore +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=2415; -- old 1.6, level 36, hits 7 + +-- Varimathras +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=2425; -- old 1.5, level 62, hits 275 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=10 WHERE `entry`=2425; -- old 13.85, level 62, hits 57 + +-- Helcular's Remains +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=2433; -- old 5.8, level 44, hits 15 + +-- Southshore Crier +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=2435; -- old 0.85, level 32, hits 3 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2435; -- old 1.45, level 32, hits 13 + +-- Narillasanz +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.35 WHERE `entry`=2447; -- old 3.85, level 44, hits 8 + +-- Clerk Horrace Whitesteed +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=2448; -- old 1.5, level 26, hits 31 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2448; -- old 1.15, level 26, hits 60 + +-- Miner Hackett +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=2450; -- old 1.1, level 29, hits 12 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2450; -- old 1.1, level 29, hits 36 + +-- Flesh Eating Worm +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=2462; -- old 0.9, level 25, hits 267 + +-- Watcher Fraizer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.2 WHERE `entry`=2470; -- old 0.85, level 37, hits 15 + +-- Remote-Controlled Golem +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=3 WHERE `entry`=2520; -- old 1, level 18, hits 22 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2520; -- old 2.6, level 18, hits 76 + +-- Dalaran Serpent +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.2 WHERE `entry`=2540; -- old 1.3, level 14, hits 178 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.06 WHERE `entry`=2540; -- old 0.14, level 15, hits 103 + +-- Archmage Ansirem Runeweaver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2543; -- old 1.5, level 40, hits 6 + +-- Brutus +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=5.75 WHERE `entry`=2551; -- old 999.6, level 43, hits 46 + +-- Dabyrie Militia +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=2581; -- old 0.85, level 31, hits 59 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2581; -- old 1.35, level 31, hits 71 + +-- Dabyrie Laborer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2582; -- old 1.3, level 30, hits 114 + +-- Fozruk +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.15 WHERE `entry`=2611; -- old 4.25, level 42, hits 77 + +-- Spirit of Old +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2623; -- old 1.5, level 33, hits 6 + +-- Compact Harvest Reaper +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=2676; -- old 0, level 40, hits 40 + +-- Highvale Outrunner +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2691; -- old 1.2, level 44, hits 327 + +-- Highvale Scout +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2692; -- old 1.1, level 45, hits 446 + +-- Highvale Ranger +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=2694; -- old 1.1, level 47, hits 280 + +-- Kinelory +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=2713; -- old 1.2, level 38, hits 65 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2713; -- old 1.15, level 38, hits 100 + +-- Scorched Guardian +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.45 WHERE `entry`=2726; -- old 3, level 45, hits 100 + +-- Lesser Rock Elemental +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=2735; -- old 1.9, level 39, hits 729 + +-- Greater Rock Elemental +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=2736; -- old 1.75, level 43, hits 71 + +-- Shadowforge Commander +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2744; -- old 3.6, level 40, hits 4 + +-- Archaedas +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=2748; -- old 0.7, level 47, hits 83 + +-- Siege Golem +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.4 WHERE `entry`=2749; -- old 3.8, level 40, hits 15 + +-- War Golem +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2751; -- old 3.55, level 36, hits 3 + +-- Rumbler +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2752; -- old 3.15, level 45, hits 28 + +-- Barnabus +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=2753; -- old 2.1, level 38, hits 5 + +-- Anathemus +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.75 WHERE `entry`=2754; -- old 3.4, level 45, hits 9 + +-- Myzrael +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=2755; -- old 4.6, level 44, hits 40 + +-- Burning Exile +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2760; -- old 0.65, level 38, hits 142 + +-- Cresting Exile +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2761; -- old 0.75, level 39, hits 244 + +-- Thundering Exile +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2762; -- old 0.55, level 39, hits 102 + +-- Thenan +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=2763; -- old 1.5, level 42, hits 27 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.2 WHERE `entry`=2763; -- old 4.25, level 42, hits 31 + +-- Vengeful Surge +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=2776; -- old 1.5, level 40, hits 78 + +-- Enraged Rock Elemental +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=2791; -- old 1.85, level 42, hits 276 + +-- Summoned Guardian +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=2794; -- old 0, level 38, hits 135 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.8 WHERE `entry`=2794; -- old 2.35, level 38, hits 98 + +-- Prismatic Exile +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2887; -- old 1.4, level 43, hits 99 + +-- Prospector Remtravel +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2917; -- old 0.75, level 16, hits 169 + +-- Fam'retor Guardian +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2919; -- old 1.35, level 45, hits 22 + +-- Puppet of Helcular +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=2946; -- old 1.5, level 42, hits 49 + +-- Palemane Tanner +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.8 WHERE `entry`=2949; -- old 1, level 6, hits 42 + +-- Palemane Poacher +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=2951; -- old 1, level 8, hits 45 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=2951; -- old 0.75, level 8, hits 99 + +-- Venture Co. Hireling +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.85 WHERE `entry`=2975; -- old 1.1, level 6, hits 93 + +-- Bael'dun Appraiser +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.8 WHERE `entry`=2990; -- old 1.6, level 8, hits 37 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=2990; -- old 1.1, level 8, hits 58 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=2990; -- old 0.14, level 8, hits 58 + +-- Unseen +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3094; -- old 1.75, level 49, hits 115 + +-- Makrura Clacker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.3 WHERE `entry`=3103; -- old 1.5, level 7, hits 20 + +-- Makrura Shellhide +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.1 WHERE `entry`=3104; -- old 1.5, level 7, hits 10 + +-- Razormane Dustrunner +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.8 WHERE `entry`=3113; -- old 0.95, level 9, hits 35 + +-- Gazz'uz +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3204; -- old 1.1, level 14, hits 5 + +-- Zalazane +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=3205; -- old 1, level 10, hits 20 + +-- Hexed Troll +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=3207; -- old 1, level 9, hits 23 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=3207; -- old 0.7, level 9, hits 25 + +-- Margoz +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3208; -- old 0.8, level 18, hits 4 + +-- Brave Darksky +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.8 WHERE `entry`=3220; -- old 1, level 14, hits 5 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3220; -- old 0.75, level 14, hits 8 + +-- "Squealer" Thornmantle +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=3229; -- old 1, level 5, hits 7 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.85 WHERE `entry`=3229; -- old 1.2, level 5, hits 40 + +-- Silithid Harvester +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3253; -- old 3.05, level 24, hits 33 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=3253; -- old 0.14, level 24, hits 33 + +-- Bristleback Water Seeker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=3260; -- old 1, level 16, hits 70 + +-- Bristleback Geomancer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=3263; -- old 1, level 20, hits 90 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.95 WHERE `entry`=3263; -- old 1.15, level 20, hits 48 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=3263; -- old 0.14, level 19, hits 30 + +-- Sludge Beast +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.95 WHERE `entry`=3295; -- old 3.8, level 19, hits 30 + +-- Sergra Darkthorn +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=10 WHERE `entry`=3338; -- old 2.6, level 60, hits 4 + +-- Grelkor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3343; -- old 1.65, level 55, hits 205 + +-- Bael'dun Excavator +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3374; -- old 1.1, level 22, hits 52 + +-- Burning Blade Bruiser +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=3379; -- old 1, level 11, hits 29 + +-- Theramore Preserver +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=3386; -- old 1, level 17, hits 102 + +-- Prospector Khazgorm +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3392; -- old 1.1, level 24, hits 23 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.875 WHERE `entry`=3392; -- old 1.3, level 24, hits 45 + +-- Verog the Dervish +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=3395; -- old 1, level 18, hits 11 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.7 WHERE `entry`=3395; -- old 1.45, level 18, hits 18 + +-- Gesharahan +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=3398; -- old 3.2, level 20, hits 18 + +-- General Twinbraid +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3414; -- old 1.1, level 30, hits 15 + +-- Living Flame +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.45 WHERE `entry`=3417; -- old 1, level 17, hits 82 + +-- Kuz +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3436; -- old 1.2, level 21, hits 9 + +-- Wizzlecrank's Shredder +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3439; -- old 0.8, level 18, hits 47 + +-- Tonga Runetotem +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3448; -- old 0.85, level 22, hits 4 + +-- Cannoneer Whessan +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=3455; -- old 1, level 19, hits 14 + +-- Gilthares Firebough +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3465; -- old 0.7, level 17, hits 188 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=3465; -- old 0.14, level 17, hits 188 + +-- Nargal Deatheye +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=3479; -- old 1.05, level 35, hits 3 + +-- Wrahk +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=3485; -- old 0.8, level 18, hits 3 + +-- Pyrewood Tailor +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=3530; -- old 1, level 15, hits 11 + +-- Blackmoss the Fetid +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3535; -- old 2.7, level 13, hits 9 + +-- Overwatch Mark I +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3538; -- old 1.35, level 32, hits 2 + +-- Mist +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.85 WHERE `entry`=3568; -- old 0.75, level 10, hits 6 + +-- Therylune +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3584; -- old 0.6, level 17, hits 24 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3584; -- old 0.7, level 17, hits 62 + +-- Devrak +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3615; -- old 1.4, level 55, hits 7 + +-- Lordaeron Citizen +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3617; -- old 1.3, level 15, hits 62 + +-- Rarck +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3625; -- old 1.45, level 55, hits 177 + +-- Devouring Ectoplasm +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=3638; -- old 2.95, level 16, hits 47 + +-- Evolving Ectoplasm +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=3640; -- old 2.8, level 18, hits 60 + +-- Mutanus the Devourer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.3 WHERE `entry`=3654; -- old 3.65, level 22, hits 23 + +-- Jorb +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3659; -- old 0.85, level 37, hits 10 + +-- Delgren the Purifier +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3663; -- old 0.75, level 19, hits 9 + +-- Skum +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=3674; -- old 2.75, level 21, hits 4 + +-- Disciple of Naralex +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3678; -- old 2.7, level 20, hits 61 + +-- Volcor +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3692; -- old 0.55, level 19, hits 16 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3692; -- old 0.75, level 19, hits 62 + +-- Gruna +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3708; -- old 0.25, level 52, hits 14 + +-- Mystlash Hydra +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=3721; -- old 1, level 19, hits 19 + +-- Dark Strand Cultist +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.8 WHERE `entry`=3725; -- old 1, level 19, hits 77 + +-- Dark Strand Adept +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=3728; -- old 1, level 19, hits 55 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3728; -- old 1.15, level 19, hits 11 + +-- Dark Strand Excavator +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=3730; -- old 1, level 20, hits 45 + +-- Forsaken Herbalist +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=3733; -- old 1, level 19, hits 48 + +-- Forsaken Thug +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.95 WHERE `entry`=3734; -- old 1.05, level 20, hits 54 + +-- Apothecary Falthis +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.8 WHERE `entry`=3735; -- old 1, level 22, hits 9 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3735; -- old 5, level 22, hits 8 + +-- Cenarion Protector +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=3797; -- old 1.5, level 25, hits 80 + +-- Severed Druid +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=3799; -- old 1.2, level 29, hits 25 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=3799; -- old 1.6, level 29, hits 21 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=3799; -- old 0.14, level 29, hits 21 + +-- Severed Dreamer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=3802; -- old 0, level 30, hits 22 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3802; -- old 1.35, level 30, hits 27 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.17 WHERE `entry`=3802; -- old 0.14, level 30, hits 27 + +-- Severed Keeper +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=3803; -- old 0, level 29, hits 69 + +-- Cenarion Vindicator +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3833; -- old 1.15, level 27, hits 40 + +-- Biletoad +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.65 WHERE `entry`=3835; -- old 1.3, level 1, hits 8 + +-- Deathstalker Adamant +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.65 WHERE `entry`=3849; -- old 3, level 18, hits 9 + +-- Shadowfang Wolfguard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.6 WHERE `entry`=3854; -- old 3.3, level 20, hits 3 + +-- Shadowfang Darksoul +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.65 WHERE `entry`=3855; -- old 3.5, level 21, hits 126 + +-- Bleak Worg +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=3861; -- old 4.95, level 25, hits 21 + +-- Slavering Worg +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3862; -- old 3.2, level 18, hits 119 + +-- Lupine Horror +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.95 WHERE `entry`=3863; -- old 0.85, level 24, hits 49 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=3863; -- old 2.95, level 24, hits 111 + +-- Fel Steed +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=3864; -- old 3.4, level 20, hits 18 + +-- Shadow Charger +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=3865; -- old 3.1, level 20, hits 22 + +-- Vile Bat +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=3866; -- old 2.7, level 22, hits 6 + +-- Blood Seeker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.95 WHERE `entry`=3868; -- old 0.85, level 23, hits 10 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=3868; -- old 3.05, level 23, hits 4 + +-- Tormented Officer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=3873; -- old 2.9, level 24, hits 38 + +-- Haunted Servitor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=3875; -- old 3.3, level 20, hits 149 + +-- Wailing Guardsman +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=3877; -- old 3.15, level 22, hits 145 + +-- Dark Strand Assassin +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3879; -- old 1.6, level 21, hits 59 + +-- Baron Silverlaine +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.95 WHERE `entry`=3887; -- old 0.85, level 24, hits 10 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=3887; -- old 3.2, level 24, hits 35 + +-- Forsaken Scout +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3893; -- old 1.55, level 23, hits 31 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.08 WHERE `entry`=3893; -- old 0.14, level 23, hits 31 + +-- Aligar the Tormentor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3898; -- old 1.6, level 24, hits 17 + +-- Balizar the Umbrage +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=3899; -- old 1, level 24, hits 7 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.95 WHERE `entry`=3899; -- old 2.15, level 24, hits 5 + +-- Stoneclaw Totem II +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3911; -- old 0, level 21, hits 6 + +-- Stoneclaw Totem III +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3912; -- old 0, level 31, hits 16 + +-- Stoneclaw Totem IV +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3913; -- old 0, level 49, hits 79 + +-- Befouled Water Elemental +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3917; -- old 0.65, level 23, hits 142 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.06 WHERE `entry`=3917; -- old 0.14, level 23, hits 142 + +-- Withered Ancient +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=3919; -- old 1, level 26, hits 15 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=3919; -- old 0.14, level 26, hits 23 + +-- Bloodtooth Guard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.4 WHERE `entry`=3932; -- old 1, level 27, hits 101 + +-- Taneel Darkwood +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=3940; -- old 1, level 32, hits 22 + +-- Uthil Mooncall +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.8 WHERE `entry`=3941; -- old 1, level 32, hits 6 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3941; -- old 1.45, level 32, hits 9 + +-- Mavoris Cloudsbreak +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=3942; -- old 1, level 32, hits 14 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3942; -- old 1.45, level 32, hits 9 + +-- Goblin Shipbuilder +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=3947; -- old 2.7, level 20, hits 82 + +-- Houndmaster Loksey +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.6 WHERE `entry`=3974; -- old 4.35, level 34, hits 12 + +-- Herod +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3975; -- old 0.8, level 40, hits 62 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.4 WHERE `entry`=3975; -- old 3.8, level 40, hits 16 + +-- Scarlet Commander Mograine +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.85 WHERE `entry`=3976; -- old 4.55, level 42, hits 269 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.06 WHERE `entry`=3976; -- old 0.14, level 42, hits 269 + +-- High Inquisitor Whitemane +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.15 WHERE `entry`=3977; -- old 4.55, level 42, hits 23 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.05 WHERE `entry`=3977; -- old 0.14, level 42, hits 23 + +-- Sap Beast +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=4020; -- old 0, level 23, hits 112 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.06 WHERE `entry`=4020; -- old 0.14, level 23, hits 148 + +-- Enraged Stone Spirit +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=4034; -- old 1, level 25, hits 6 + +-- Furious Stone Spirit +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.3 WHERE `entry`=4035; -- old 2.1, level 26, hits 7 + +-- Rogue Flame Spirit +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4036; -- old 0.65, level 23, hits 30 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.06 WHERE `entry`=4036; -- old 0.14, level 23, hits 30 + +-- Burning Ravager +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4037; -- old 0.65, level 24, hits 42 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=4037; -- old 0.14, level 24, hits 42 + +-- Burning Destroyer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4038; -- old 0.65, level 27, hits 20 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=4038; -- old 0.14, level 27, hits 20 + +-- Magatha Grimtotem +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=4046; -- old 1.15, level 62, hits 7 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4046; -- old 1.6, level 62, hits 28 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.06 WHERE `entry`=4046; -- old 0.14, level 62, hits 28 + +-- Nal'taszar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.15 WHERE `entry`=4066; -- old 3.65, level 30, hits 18 + +-- Venture Co. Builder +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=4070; -- old 4.95, level 20, hits 8 + +-- Gravelsnout Digger +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4113; -- old 1.5, level 29, hits 23 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=4113; -- old 0.14, level 29, hits 23 + +-- Silithid Ravager +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4132; -- old 3.55, level 36, hits 9 + +-- Silithid Swarm +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=4196; -- old 0.85, level 49, hits 93 + +-- Brogus Thunderbrew +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4255; -- old 1.45, level 55, hits 116 + +-- Lana Thunderbrew +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4257; -- old 1.65, level 55, hits 2002 + +-- Daelyshia +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=4267; -- old 1.4, level 55, hits 2 + +-- Fenrus the Devourer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.95 WHERE `entry`=4274; -- old 0.85, level 25, hits 9 + +-- Archmage Arugal +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.95 WHERE `entry`=4275; -- old 0.85, level 26, hits 25 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.7 WHERE `entry`=4275; -- old 3.7, level 26, hits 17 + +-- Commander Springvale +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=4278; -- old 3.6, level 24, hits 26 + +-- Scarlet Sorcerer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4294; -- old 4.95, level 38, hits 102 + +-- Scarlet Defender +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=4298; -- old 1.3, level 38, hits 51 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4298; -- old 3.65, level 38, hits 88 + +-- Scarlet Wizard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.9 WHERE `entry`=4300; -- old 4.8, level 39, hits 138 + +-- Scarlet Centurion +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.75 WHERE `entry`=4301; -- old 3.5, level 38, hits 159 + +-- Scarlet Champion +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=4302; -- old 3.65, level 40, hits 120 + +-- Scarlet Abbot +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=4303; -- old 3.65, level 39, hits 69 + +-- Gorm Grimtotem +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=4309; -- old 1.15, level 62, hits 2 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4309; -- old 3.45, level 62, hits 41 + +-- Cor Grimtotem +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4310; -- old 3.45, level 62, hits 36 + +-- Searing Hatchling +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4323; -- old 1.15, level 42, hits 443 + +-- Firemane Ash Tail +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=4331; -- old 0.85, level 43, hits 169 + +-- Brimgore +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.45 WHERE `entry`=4339; -- old 1.15, level 45, hits 5 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.65 WHERE `entry`=4339; -- old 3.3, level 45, hits 7 + +-- Strashaz Hydra +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=4374; -- old 5.45, level 60, hits 71 + + +-- Withervine Rager +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=4385; -- old 0.85, level 39, hits 3 + +-- Withervine Bark Ripper +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4386; -- old 1.7, level 37, hits 15 + +-- Swamp Ooze +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=4391; -- old 1.3, level 39, hits 29 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4391; -- old 1.55, level 37, hits 24 + +-- Corrosive Swamp Ooze +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4392; -- old 1.55, level 40, hits 46 + +-- Muckshell Clacker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.4 WHERE `entry`=4401; -- old 0.9, level 40, hits 1 + +-- Muckshell Snapclaw +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.45 WHERE `entry`=4402; -- old 1.2, level 40, hits 26 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4402; -- old 1.9, level 40, hits 35 + +-- Muckshell Scrabbler +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=4404; -- old 0.75, level 42, hits 31 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4404; -- old 0.75, level 42, hits 21 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=4404; -- old 0.14, level 42, hits 21 + +-- Muckshell Razorclaw +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=4405; -- old 1.2, level 44, hits 61 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.2 WHERE `entry`=4405; -- old 1.65, level 43, hits 69 + +-- Defias Taskmaster +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4417; -- old 2.85, level 19, hits 39 + +-- Defias Wizard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.6 WHERE `entry`=4418; -- old 3.6, level 19, hits 3 + +-- Overlord Ramtusk +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=4420; -- old 0.85, level 32, hits 26 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.6 WHERE `entry`=4420; -- old 4.25, level 32, hits 4 + +-- Charlga Razorflank +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=4421; -- old 0.85, level 33, hits 15 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.65 WHERE `entry`=4421; -- old 4.3, level 33, hits 15 + +-- Agathelos the Raging +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=4422; -- old 0.85, level 33, hits 5 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4422; -- old 3.45, level 33, hits 19 + +-- Aggem Thorncurse +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4424; -- old 3.65, level 30, hits 10 + +-- Jade Sludge +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=4468; -- old 3.3, level 47, hits 126 + +-- Emerald Ooze +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.6 WHERE `entry`=4469; -- old 4.15, level 46, hits 13 + +-- Rotting Cadaver +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=4474; -- old 0.7, level 54, hits 437 + +-- Blighted Zombie +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4475; -- old 0.75, level 52, hits 428 + +-- Feero Ironhand +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4484; -- old 0.85, level 20, hits 56 + +-- Parqual Fintallas +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=4488; -- old 1.05, level 35, hits 133 + +-- Grenka Bloodscreech +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.95 WHERE `entry`=4490; -- old 0.85, level 31, hits 10 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4490; -- old 2, level 31, hits 18 + +-- Rok'Alim the Pounder +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4499; -- old 3, level 30, hits 34 + +-- Overlord Mok'Morokk +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.2 WHERE `entry`=4500; -- old 3, level 45, hits 26 + +-- Frostmaw +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4504; -- old 1.7, level 37, hits 33 + +-- Willix the Importer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4508; -- old 2.9, level 27, hits 202 + +-- Agam'ar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4511; -- old 5.15, level 25, hits 85 + +-- Rotting Agam'ar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4512; -- old 3.35, level 28, hits 36 + +-- Raging Agam'ar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4514; -- old 2.85, level 25, hits 97 + +-- Death's Head Sage +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4518; -- old 3.35, level 29, hits 36 + +-- Razorfen Earthbreaker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4525; -- old 4.7, level 31, hits 44 + +-- Wind Howler +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=4526; -- old 1.75, level 26, hits 17 + +-- Stone Rumbler +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=2 WHERE `entry`=4528; -- old 1.75, level 22, hits 9 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4528; -- old 3.85, level 22, hits 36 + +-- Razorfen Beast Trainer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4531; -- old 3.1, level 28, hits 37 + +-- Tamed Hyena +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=4534; -- old 2.8, level 27, hits 43 + +-- Tamed Battleboar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4535; -- old 2.7, level 23, hits 17 + +-- Kraul Bat +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=4538; -- old 0.85, level 30, hits 64 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4538; -- old 3.05, level 31, hits 105 + +-- Greater Kraul Bat +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=4539; -- old 0.85, level 32, hits 9 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4539; -- old 3.25, level 32, hits 64 + +-- Blood of Agamaggan +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4541; -- old 3.35, level 27, hits 40 + +-- High Inquisitor Fairbanks +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.9 WHERE `entry`=4542; -- old 4.35, level 40, hits 29 + +-- Arugal's Voidwalker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.95 WHERE `entry`=4627; -- old 0.85, level 24, hits 10 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4627; -- old 1.4, level 24, hits 56 + +-- Maraudine Scout +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4654; -- old 3.65, level 37, hits 27 + +-- Maraudine Bonepaw +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4660; -- old 1.6, level 38, hits 6 + +-- Burning Blade Augur +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=4663; -- old 1, level 31, hits 152 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4663; -- old 1.2, level 31, hits 86 + +-- Deepstrider Giant +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.4 WHERE `entry`=4686; -- old 3.9, level 38, hits 9 + +-- Deepstrider Searcher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.4 WHERE `entry`=4687; -- old 3.4, level 40, hits 8 + +-- Slitherblade Sorceress +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4712; -- old 1.15, level 32, hits 43 + +-- Illusionary Nightmare +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.8 WHERE `entry`=4785; -- old 1.5, level 29, hits 3 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4785; -- old 1.4, level 29, hits 25 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=4785; -- old 0.14, level 29, hits 25 + +-- Dawnwatcher Shaedlass +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4786; -- old 0.85, level 22, hits 3 + +-- Force of Nature +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4795; -- old 1.25, level 17, hits 63 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=4795; -- old 0.14, level 17, hits 63 + +-- Skittering Crustacean +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4821; -- old 2.85, level 23, hits 42 + +-- Barbed Crustacean +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=4823; -- old 2.85, level 26, hits 144 + +-- Aku'mai Fisher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4824; -- old 3.2, level 24, hits 13 + +-- Aku'mai Snapjaw +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=2 WHERE `entry`=4825; -- old 1.75, level 27, hits 70 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=4825; -- old 2.9, level 26, hits 152 + +-- Deep Pool Threshfin +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4827; -- old 3.1, level 25, hits 10 + +-- Aku'mai +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.5 WHERE `entry`=4829; -- old 3.35, level 28, hits 45 + +-- Old Serra'kis +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4830; -- old 3.45, level 26, hits 20 + +-- Twilight Lord Kelris +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4832; -- old 3.55, level 27, hits 52 + +-- Theramore Infiltrator +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4834; -- old 1.25, level 36, hits 130 + +-- Shadowforge Darkcaster +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=4848; -- old 0.7, level 43, hits 36 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=4848; -- old 3.95, level 43, hits 17 + +-- Shadowforge Archaeologist +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=4849; -- old 0.7, level 43, hits 13 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=4849; -- old 3.7, level 43, hits 8 + +-- Stonevault Geomancer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=4853; -- old 0.7, level 43, hits 62 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=4853; -- old 3.95, level 44, hits 31 + +-- Grimlok +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=4854; -- old 0.75, level 45, hits 40 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=4854; -- old 3.55, level 45, hits 11 + +-- Stonevault Brawler +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.3 WHERE `entry`=4855; -- old 0.2, level 44, hits 251 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=4855; -- old 3.7, level 44, hits 389 + +-- Stone Keeper +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=2 WHERE `entry`=4857; -- old 1.4, level 46, hits 120 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.2 WHERE `entry`=4857; -- old 3.45, level 46, hits 111 + +-- Stone Steward +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=2 WHERE `entry`=4860; -- old 1.45, level 44, hits 475 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=4860; -- old 3.7, level 44, hits 533 + +-- Shrike Bat +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.9 WHERE `entry`=4861; -- old 2.75, level 39, hits 133 + +-- Ghamoo-ra +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=7.6 WHERE `entry`=4887; -- old 932.45, level 25, hits 53 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4887; -- old 2.1, level 25, hits 60 + +-- Haunting Spirit +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4958; -- old 1.25, level 21, hits 10 + +-- Slim's Friend +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4971; -- old 1.6, level 34, hits 124 + +-- Murkshallow Softshell +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.7 WHERE `entry`=4977; -- old 1.4, level 25, hits 160 + +-- Aku'mai Servant +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.2 WHERE `entry`=4978; -- old 2.25, level 26, hits 59 + +-- Theramore Guard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=4979; -- old 1.1, level 56, hits 9 + +-- Stockade Guard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=4995; -- old 0.95, level 45, hits 10 + +-- Defias Rioter +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5043; -- old 1.3, level 20, hits 39 + +-- Theramore Skirmisher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5044; -- old 1.65, level 36, hits 161 + +-- Private Hallan +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5045; -- old 0.7, level 36, hits 12 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5045; -- old 1.55, level 36, hits 71 + +-- Lieutenant Caldwell +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5046; -- old 1.65, level 37, hits 36 + +-- Lupine Delusion +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5097; -- old 0.85, level 24, hits 3 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=5097; -- old 2.8, level 25, hits 42 + +-- Jonivera Farmountain +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5134; -- old 1.45, level 55, hits 298 + +-- Svalbrad Farmountain +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5135; -- old 1.45, level 55, hits 977 + +-- Kurdrum Barleybeard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5139; -- old 1.45, level 55, hits 1347 + +-- Murk Worm +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=5226; -- old 3.7, level 47, hits 239 + +-- Saturated Ooze +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=5228; -- old 3.3, level 48, hits 119 + +-- Fungal Ooze +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.65 WHERE `entry`=5235; -- old 3.45, level 45, hits 56 + +-- Gordunni Ogre Mage +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5237; -- old 0.85, level 42, hits 60 + +-- Cursed Atal'ai +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.6 WHERE `entry`=5243; -- old 3.45, level 46, hits 52 + +-- Atal'ai Warrior +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.9 WHERE `entry`=5256; -- old 3.25, level 49, hits 175 + +-- Atal'ai Witch Doctor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=5259; -- old 3.7, level 50, hits 194 + +-- Enthralled Atal'ai +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.6 WHERE `entry`=5261; -- old 3.45, level 46, hits 92 + +-- Mummified Atal'ai +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=5263; -- old 0.7, level 47, hits 63 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.7 WHERE `entry`=5263; -- old 3.35, level 46, hits 108 + +-- Atal'ai Deathwalker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.1 WHERE `entry`=5271; -- old 4.25, level 50, hits 301 + +-- Atal'ai High Priest +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.1 WHERE `entry`=5273; -- old 4.15, level 51, hits 36 + +-- Nightmare Scalebane +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.1 WHERE `entry`=5277; -- old 3.75, level 51, hits 240 + +-- Nightmare Wyrmkin +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.1 WHERE `entry`=5280; -- old 3.9, level 51, hits 159 + +-- Hakkari Frostwing +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=5291; -- old 3.5, level 49, hits 30 + +-- Enraged Feral Scar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5295; -- old 2.95, level 44, hits 176 + +-- Phantim +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=5314; -- old 7.45, level 62, hits 21 + +-- Hatecrest Screamer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5335; -- old 0.95, level 42, hits 3 + +-- Bloodroar the Stalker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5346; -- old 3.15, level 48, hits 8 + +-- Land Walker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.8 WHERE `entry`=5357; -- old 3.25, level 49, hits 4 + +-- Cliff Giant +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=5358; -- old 3.05, level 49, hits 17 + +-- Shore Strider +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.25 WHERE `entry`=5359; -- old 3.4, level 48, hits 7 + +-- Deep Strider +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5360; -- old 1.25, level 49, hits 3 + +-- Galen Goodward +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5391; -- old 0.85, level 37, hits 92 + +-- Khan Hratha +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=5402; -- old 4.25, level 42, hits 3 + +-- Deathstalker Zraedus +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5418; -- old 1.1, level 40, hits 19 + +-- Centipaar Worker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5458; -- old 0.5, level 49, hits 49 + +-- Sea Elemental +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5461; -- old 0.65, level 49, hits 282 + +-- Sea Spray +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5462; -- old 0.65, level 48, hits 107 + +-- Coast Strider +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.9 WHERE `entry`=5466; -- old 3.25, level 49, hits 8 + +-- Dune Smasher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.55 WHERE `entry`=5469; -- old 3.1, level 48, hits 6 + +-- Thistleshrub Dew Collector +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5481; -- old 1.55, level 47, hits 268 + +-- Thistleshrub Rootshaper +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5485; -- old 1.85, level 49, hits 173 + +-- Wastewander Thief +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5616; -- old 1.25, level 40, hits 321 + +-- Wastewander Bandit +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5618; -- old 1.25, level 42, hits 351 + +-- Undercity Guardian +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5624; -- old 1.2, level 55, hits 14783 + +-- Dalinda Malem +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5644; -- old 1.25, level 35, hits 67 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.06 WHERE `entry`=5644; -- old 0.14, level 35, hits 67 + +-- Tyler +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5653; -- old 0.85, level 20, hits 3091 + +-- Edward +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5654; -- old 0.85, level 20, hits 3090 + +-- Richard Van Brunt +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5656; -- old 0.85, level 20, hits 32 + +-- Andrew Hartwell +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5659; -- old 0.85, level 20, hits 31 + +-- Travist Bosk +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5663; -- old 0.85, level 20, hits 7231 + +-- Eldin Partridge +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5664; -- old 0.85, level 20, hits 5369 + +-- Alyssa Blaye +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5665; -- old 0.85, level 20, hits 6749 + +-- Summoned Voidwalker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=5676; -- old 1.6, level 10, hits 34 + +-- Summoned Succubus +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=5677; -- old 0, level 20, hits 16 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5677; -- old 1.4, level 20, hits 23 + +-- Male Human Captive +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.85 WHERE `entry`=5680; -- old 1.6, level 5, hits 226 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.01 WHERE `entry`=5680; -- old 0.14, level 5, hits 226 + +-- Dalin Forgewright +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=5682; -- old 1, level 20, hits 15 + +-- Captive Ghoul +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=5685; -- old 0.65, level 10, hits 577 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.08 WHERE `entry`=5685; -- old 0.14, level 10, hits 577 + +-- Captive Zombie +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=5686; -- old 0.8, level 8, hits 376 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.09 WHERE `entry`=5686; -- old 0.14, level 8, hits 376 + +-- Captive Abomination +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5687; -- old 0.3, level 20, hits 3112 + +-- Spawn of Hakkar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=5708; -- old 3.45, level 51, hits 25 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=5708; -- old 0.14, level 51, hits 25 + +-- Shade of Eranikus +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=5709; -- old 7.45, level 55, hits 137 + +-- Jammal'an the Prophet +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.4 WHERE `entry`=5710; -- old 3.8, level 54, hits 28 + +-- Ogom the Wretched +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.4 WHERE `entry`=5711; -- old 4.05, level 53, hits 7 + +-- Zolo +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=5712; -- old 4.25, level 51, hits 24 + +-- Gasher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.5 WHERE `entry`=5713; -- old 3.95, level 51, hits 33 + +-- Hukku +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.25 WHERE `entry`=5715; -- old 5.3, level 52, hits 13 + +-- Zul'Lor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.4 WHERE `entry`=5716; -- old 3.85, level 52, hits 83 + +-- Mijan +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.2 WHERE `entry`=5717; -- old 4.15, level 52, hits 44 + +-- Rothos +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=16.5 WHERE `entry`=5718; -- old 5.25, level 62, hits 3 + +-- Weaver +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5720; -- old 0.85, level 51, hits 118 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=5720; -- old 3.45, level 51, hits 78 + +-- Dreamscythe +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5721; -- old 0.8, level 53, hits 76 + +-- Deviate Shambler +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=5761; -- old 4.05, level 20, hits 103 + +-- Deviate Moccasin +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=5762; -- old 2.9, level 21, hits 23 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.09 WHERE `entry`=5762; -- old 0.14, level 21, hits 23 + +-- Nightmare Ectoplasm +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5763; -- old 1.6, level 21, hits 36 + +-- Verdan the Everliving +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=8.1 WHERE `entry`=5775; -- old 6.1, level 21, hits 15 + +-- Cloned Ectoplasm +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.6 WHERE `entry`=5780; -- old 3.35, level 16, hits 4 + +-- Silithid Creeper Egg +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=5781; -- old 0, level 21, hits 1 + +-- Sister Hatelash +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5785; -- old 1.5, level 11, hits 4 + +-- Snagglespear +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=5786; -- old 1.2, level 9, hits 22 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=5786; -- old 0.14, level 9, hits 22 + +-- Enforcer Emilgund +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.55 WHERE `entry`=5787; -- old 2.1, level 11, hits 5 + +-- Aean Swiftriver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=5797; -- old 3.25, level 25, hits 33 + +-- Thora Feathermoon +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=5798; -- old 3.25, level 25, hits 63 + +-- Hannah Bladeleaf +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=5799; -- old 3.5, level 24, hits 37 + +-- Marcus Bel +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=5800; -- old 3.5, level 24, hits 49 + +-- Margol the Rager +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5833; -- old 0.85, level 48, hits 7 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.75 WHERE `entry`=5833; -- old 3.2, level 48, hits 11 + +-- Heggin Stonewhisker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.25 WHERE `entry`=5847; -- old 3.05, level 24, hits 8 + +-- Malgin Barleybrew +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5848; -- old 3.1, level 25, hits 6 + +-- Digger Flameforge +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5849; -- old 3.05, level 24, hits 11 + +-- Blazing Elemental +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5850; -- old 0.65, level 47, hits 61 + +-- Inferno Elemental +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5852; -- old 0.65, level 49, hits 132 + +-- Hagg Taurenbane +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=5859; -- old 1, level 26, hits 11 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.3 WHERE `entry`=5859; -- old 3.45, level 26, hits 20 + +-- Cursed Sycamore +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5881; -- old 1.5, level 45, hits 35 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5881; -- old 1.15, level 45, hits 32 + +-- Minor Manifestation of Fire +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5893; -- old 0.7, level 12, hits 50 + +-- Deviate Faerie Dragon +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=5912; -- old 3.35, level 20, hits 7 + +-- Sentinel Amarassan +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5916; -- old 1.25, level 27, hits 13 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=5916; -- old 3.55, level 27, hits 6 + +-- Clara Charles +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=5917; -- old 1.75, level 2, hits 7 + +-- Sister Riven +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.65 WHERE `entry`=5930; -- old 3.6, level 28, hits 8 + +-- Taskmaster Whipfang +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5932; -- old 10.3, level 22, hits 25 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=5932; -- old 4, level 22, hits 10 + +-- Tooga +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=2 WHERE `entry`=5955; -- old 0.55, level 45, hits 12 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.2 WHERE `entry`=5955; -- old 0.95, level 45, hits 84 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.09 WHERE `entry`=5955; -- old 0.14, level 45, hits 84 + +-- Dreadmaul Ogre +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5974; -- old 0.5, level 46, hits 25 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5974; -- old 0.75, level 46, hits 45 + +-- Dreadmaul Ogre Mage +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5975; -- old 1.4, level 47, hits 10 + +-- Wretched Lost One +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5979; -- old 1.15, level 47, hits 48 + +-- Nethergarde Foreman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5998; -- old 0.25, level 48, hits 2 + +-- Aqua Guardian +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=6047; -- old 0, level 23, hits 34 + +-- Earthgrab Totem +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=6066; -- old 0, level 49, hits 1 + +-- Warug's Bodyguard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6068; -- old 1.25, level 35, hits 5 + +-- Maraudine Khan Guard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6069; -- old 1.55, level 40, hits 6 + +-- Maraudine Khan Advisor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6070; -- old 1.7, level 38, hits 5 + +-- Bartleby +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=6090; -- old 0.75, level 10, hits 33 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=6090; -- old 0.14, level 10, hits 33 + +-- Highborne Apparition +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6116; -- old 1.1, level 46, hits 95 + +-- Highborne Lichling +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6117; -- old 1.45, level 47, hits 16 + +-- Varo'then's Ghost +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6118; -- old 3.25, level 48, hits 11 + +-- Shade of Elura +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=6133; -- old 1, level 11, hits 9 + +-- Arkkoran Muckdweller +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=6136; -- old 1.5, level 53, hits 10 + +-- Hetaera +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.3 WHERE `entry`=6140; -- old 3.25, level 55, hits 5 + +-- Son of Arkkoroc +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.6 WHERE `entry`=6144; -- old 3.65, level 54, hits 4 + +-- School of Fish +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.65 WHERE `entry`=6145; -- old 1.3, level 1, hits 17 + +-- Cliff Breaker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.4 WHERE `entry`=6146; -- old 3.65, level 55, hits 36 + +-- Cliff Thunderer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.2 WHERE `entry`=6147; -- old 3.35, level 54, hits 19 + +-- Cliff Walker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=6148; -- old 0.9, level 52, hits 10 + +-- Roogug +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.6 WHERE `entry`=6168; -- old 3.6, level 28, hits 6 + +-- Defias Raider +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6180; -- old 1.45, level 18, hits 59 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=6180; -- old 0.14, level 18, hits 59 + +-- Blood Elf Surveyor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6198; -- old 1.3, level 51, hits 239 + +-- Blood Elf Reclaimer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=6199; -- old 1.5, level 53, hits 84 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6199; -- old 1.55, level 53, hits 58 + +-- Caverndeep Burrower +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=6206; -- old 3.35, level 27, hits 28 + +-- Caverndeep Invader +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=6208; -- old 3.45, level 25, hits 50 + +-- Caverndeep Pillager +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=6210; -- old 1.4, level 25, hits 97 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=6210; -- old 2.95, level 25, hits 121 + +-- Caverndeep Reaver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=6211; -- old 3.25, level 28, hits 44 + +-- Dark Iron Agent +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=6212; -- old 0.85, level 32, hits 43 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=6212; -- old 4.15, level 33, hits 345 + +-- Irradiated Invader +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=6213; -- old 1.9, level 25, hits 35 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.65 WHERE `entry`=6213; -- old 4.7, level 26, hits 10 + +-- Irradiated Slime +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.75 WHERE `entry`=6218; -- old 3.25, level 28, hits 10 + +-- Corrosive Lurker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.65 WHERE `entry`=6219; -- old 3.1, level 29, hits 28 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=6219; -- old 0.14, level 29, hits 28 + +-- Irradiated Horror +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=6220; -- old 0, level 29, hits 44 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=6220; -- old 2.35, level 29, hits 17 + +-- Leprous Defender +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=6223; -- old 3.1, level 29, hits 49 + +-- Dark Iron Ambassador +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.65 WHERE `entry`=6228; -- old 3.7, level 33, hits 7 + +-- Techbot +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=6231; -- old 3.45, level 26, hits 5 + +-- Stockade Archer +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=6237; -- old 0.95, level 45, hits 21 + +-- Big Will +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6238; -- old 1.85, level 33, hits 10 + +-- Cyclonian +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=6239; -- old 2.6, level 40, hits 10 + +-- Affray Challenger +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6240; -- old 1.35, level 27, hits 22 + +-- Summoned Felhunter +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=6268; -- old 0, level 30, hits 21 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6268; -- old 1.45, level 30, hits 28 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=6268; -- old 0.14, level 30, hits 28 + +-- Irradiated Pillager +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=6329; -- old 3.7, level 25, hits 53 + +-- Kurzen Mindslave +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=6366; -- old 0.55, level 44, hits 26 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6366; -- old 0.7, level 44, hits 63 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=6366; -- old 0.14, level 44, hits 63 + +-- Zanzil Skeleton +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6388; -- old 1.35, level 45, hits 16 + +-- Ulag the Cleaver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6390; -- old 1.4, level 11, hits 23 + +-- Skeleton +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6412; -- old 1.15, level 53, hits 663 + +-- Anguished Dead +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=6426; -- old 4.15, level 33, hits 195 + +-- Haunting Phantasm +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=6427; -- old 4.15, level 33, hits 178 + +-- Arcanist Doan +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=6487; -- old 5.1, level 37, hits 48 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=6487; -- old 0.14, level 37, hits 48 + +-- Fallen Champion +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=6488; -- old 3.75, level 33, hits 7 + +-- Ironspine +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=6489; -- old 3.6, level 33, hits 28 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.09 WHERE `entry`=6489; -- old 0.14, level 33, hits 28 + +-- Azshir the Sleepless +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=6490; -- old 2.4, level 33, hits 1 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=6490; -- old 4.05, level 33, hits 4 + +-- Rift Spawn +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6492; -- old 0.8, level 16, hits 122 + +-- Illusionary Phantasm +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=6493; -- old 3.15, level 32, hits 56 + +-- Scorching Elemental +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6520; -- old 0.65, level 53, hits 100 + +-- Living Blaze +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6521; -- old 0.65, level 54, hits 400 + +-- Demon of the Orb +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=6549; -- old 3.4, level 40, hits 27 + +-- Mana Surge +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=6550; -- old 1.15, level 40, hits 2 + +-- Stone Guardian +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=6560; -- old 1.4, level 60, hits 5 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.2 WHERE `entry`=6560; -- old 3.4, level 60, hits 10 + +-- Scarlet Trainee +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6575; -- old 1.95, level 30, hits 60 + +-- Clutchmother Zavas +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6582; -- old 3.35, level 54, hits 10 + +-- Gruff +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.7 WHERE `entry`=6583; -- old 3.6, level 57, hits 3 + +-- Overseer Glibby +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=6606; -- old 1, level 16, hits 18 + +-- Harroc +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.86 WHERE `entry`=6607; -- old 1.2, level 5, hits 9 + +-- The Threshwackonator 4100 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.2 WHERE `entry`=6669; -- old 2.5, level 20, hits 19 + +-- Calvin Montague +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.85 WHERE `entry`=6784; -- old 1.2, level 5, hits 8 + +-- Tracking Hound +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=6867; -- old 1.45, level 30, hits 33 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=6867; -- old 0.14, level 30, hits 33 + +-- Baelog +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=6906; -- old 1.3, level 41, hits 17 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=6906; -- old 4.55, level 41, hits 12 + +-- Eric "The Swift" +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=6907; -- old 3.4, level 40, hits 7 + +-- Olaf +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.25 WHERE `entry`=6908; -- old 3.8, level 40, hits 18 + +-- Revelosh +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=6910; -- old 3.8, level 40, hits 13 + +-- Defias Dockworker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.85 WHERE `entry`=6927; -- old 0.95, level 8, hits 5 + +-- Swamp Spirit +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6932; -- old 1.55, level 40, hits 9 + +-- Earthen Rocksmasher +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7011; -- old 0.75, level 42, hits 90 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.55 WHERE `entry`=7011; -- old 1.25, level 42, hits 137 + +-- Earthen Sculptor +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7012; -- old 0.8, level 42, hits 24 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.15 WHERE `entry`=7012; -- old 0.9, level 43, hits 10 + +-- Venomlash Scorpid +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7022; -- old 0.85, level 40, hits 100 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=7022; -- old 2.95, level 40, hits 88 + +-- Shadowforge Geologist +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7030; -- old 0.85, level 41, hits 48 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=7030; -- old 4.7, level 41, hits 35 + +-- Greater Obsidian Elemental +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=7032; -- old 1.15, level 56, hits 16 + +-- Black Dragonspawn +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.85 WHERE `entry`=7040; -- old 3.8, level 52, hits 150 + +-- Black Wyrmkin +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.4 WHERE `entry`=7041; -- old 5.1, level 54, hits 49 + +-- Flamescale Dragonspawn +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.6 WHERE `entry`=7042; -- old 3.5, level 57, hits 27 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=7042; -- old 0.14, level 57, hits 27 + +-- Flamescale Wyrmkin +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.85 WHERE `entry`=7043; -- old 4.7, level 57, hits 16 + +-- Scalding Drake +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.6 WHERE `entry`=7045; -- old 3.25, level 54, hits 4 + +-- Searscale Drake +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7046; -- old 0.9, level 58, hits 14 + +-- Condemned Monk +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.3 WHERE `entry`=7069 && `patch`=8; -- old 6.05, level 58, hits 3 + +-- Earthen Guardian +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.3 WHERE `entry`=7076; -- old 0.8, level 44, hits 5 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.4 WHERE `entry`=7076; -- old 1, level 44, hits 24 + +-- Earthen Hallshaper +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7077; -- old 0.7, level 45, hits 1 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.2 WHERE `entry`=7077; -- old 0.85, level 44, hits 27 + +-- Cleft Scorpid +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7078; -- old 1.2, level 36, hits 220 + +-- Viscous Fallout +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.65 WHERE `entry`=7079; -- old 2.1, level 30, hits 9 + +-- Cursed Ooze +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7086; -- old 0.85, level 50, hits 115 + +-- Shadowforge Ambusher +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7091; -- old 0.7, level 44, hits 4 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.75 WHERE `entry`=7091 && `patch`=10; -- old 1.25, level 44, hits 6 + +-- Jaedenar Cultist +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7112; -- old 1.15, level 51, hits 133 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.18 WHERE `entry`=7112; -- old 0.14, level 51, hits 133 + +-- Jaedenar Adept +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7115; -- old 1.15, level 52, hits 118 + +-- Toxic Horror +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7132; -- old 0.65, level 54, hits 285 + +-- Ancient Stone Keeper +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=2 WHERE `entry`=7206; -- old 1.55, level 44, hits 26 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.2 WHERE `entry`=7206; -- old 3.7, level 44, hits 47 + +-- Obsidian Shard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7209; -- old 0, level 35, hits 8 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.25 WHERE `entry`=7209; -- old 1.5, level 35, hits 36 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=7209; -- old 0.14, level 35, hits 36 + +-- Sand Storm +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.2 WHERE `entry`=7226; -- old 0.6, level 44, hits 24 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.08 WHERE `entry`=7226; -- old 0.14, level 44, hits 24 + +-- Ironaya +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.5 WHERE `entry`=7228; -- old 4.8, level 40, hits 24 + +-- Taskmaster Fizzule +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.2 WHERE `entry`=7233; -- old 3, level 30, hits 24 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=7233; -- old 0.14, level 30, hits 24 + +-- Sandfury Soul Eater +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.6 WHERE `entry`=7247; -- old 3.7, level 46, hits 176 + +-- Sandfury Guardian +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.2 WHERE `entry`=7268; -- old 0.7, level 46, hits 195 + +-- Witch Doctor Zum'rah +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.6 WHERE `entry`=7271; -- old 3.7, level 46, hits 71 + +-- Shadowpriest Sezz'ziz +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.7 WHERE `entry`=7275; -- old 3.5, level 47, hits 23 + +-- Zul'Farrak Dead Hero +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=7276; -- old 1, level 45, hits 25 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.2 WHERE `entry`=7276 && `patch`=10; -- old 1, level 45, hits 64 + +-- Zul'Farrak Zombie +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7286; -- old 0, level 44, hits 891 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=7286; -- old 3.7, level 44, hits 2138 + +-- Grand Foreman Puzik Gallywix +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.6 WHERE `entry`=7288; -- old 2.85, level 23, hits 19 + +-- Shadowforge Sharpshooter +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7290; -- old 0.7, level 44, hits 75 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=7290; -- old 3.7, level 44, hits 38 + +-- Galgann Firehammer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7291; -- old 0.7, level 45, hits 71 + +-- Earthen Custodian +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=7309; -- old 1, level 45, hits 8 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=7309; -- old 1.15, level 45, hits 50 + +-- Rageclaw +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=7318; -- old 1, level 10, hits 68 + +-- Stonevault Mauler +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.3 WHERE `entry`=7320; -- old 0.2, level 44, hits 105 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=7320; -- old 3.5, level 44, hits 130 + +-- Stonevault Flameweaver +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7321; -- old 0.7, level 44, hits 41 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=7321; -- old 4.8, level 44, hits 42 + +-- Withered Warrior +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=7327; -- old 1, level 35, hits 52 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=7327; -- old 3.95, level 35, hits 132 + +-- Withered Reaver +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7328; -- old 0, level 36, hits 53 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=7328; -- old 3.85, level 36, hits 91 + +-- Withered Quilguard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=7329; -- old 0, level 36, hits 106 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=7329; -- old 3.85, level 36, hits 185 + +-- Withered Spearhide +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=7332; -- old 3.95, level 34, hits 84 + +-- Battle Boar Horror +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7334; -- old 0, level 37, hits 55 + +-- Skeletal Shadowcaster +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7340; -- old 2.55, level 36, hits 9 + +-- Skeletal Frostweaver +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7341; -- old 0.85, level 37, hits 31 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.8 WHERE `entry`=7341; -- old 4.95, level 37, hits 20 + +-- Skeletal Summoner +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7342; -- old 0.8, level 39, hits 28 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=7342; -- old 4.8, level 39, hits 21 + +-- Splinterbone Warrior +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=7344; -- old 1.25, level 38, hits 82 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=7344; -- old 1.35, level 38, hits 245 + +-- Splinterbone Captain +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7345; -- old 0.75, level 39, hits 65 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=7345; -- old 3.8, level 39, hits 7 + +-- Splinterbone Centurion +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7346; -- old 0.8, level 38, hits 93 + +-- Boneflayer Ghoul +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7347; -- old 0.8, level 39, hits 107 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.9 WHERE `entry`=7347; -- old 3.5, level 39, hits 182 + +-- Thorn Eater Ghoul +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.8 WHERE `entry`=7348; -- old 3.65, level 38, hits 189 + +-- Tomb Fiend +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7349; -- old 1.55, level 35, hits 160 + +-- Tomb Reaver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=7351; -- old 3.45, level 37, hits 112 + +-- Frozen Soul +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7352; -- old 0.85, level 37, hits 39 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.8 WHERE `entry`=7352; -- old 3.9, level 37, hits 42 + +-- Freezing Spirit +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7353; -- old 0.8, level 40, hits 21 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=7353; -- old 3.65, level 40, hits 76 + +-- Ragglesnout +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=7354; -- old 3.15, level 40, hits 8 + +-- Tuten'kash +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7355; -- old 0.8, level 40, hits 9 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=7355; -- old 3.7, level 40, hits 20 + +-- Plaguemaw the Rotting +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7356; -- old 0.8, level 40, hits 31 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=7356; -- old 3.8, level 40, hits 79 + +-- Mordresh Fire Eye +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7357; -- old 0.9, level 39, hits 9 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=7357; -- old 5.2, level 39, hits 6 + +-- Amnennar the Coldbringer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.2 WHERE `entry`=7358; -- old 4.85, level 41, hits 4 + +-- Dun Garok Soldier +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7360; -- old 1.5, level 28, hits 13 + +-- Grubbis +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=7361; -- old 4.25, level 32, hits 15 + +-- Restless Shade +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7370; -- old 2.15, level 59, hits 5 + +-- Earthen Stonebreaker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7396; -- old 0.7, level 44, hits 147 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=7396; -- old 1.2, level 44, hits 350 + +-- Earthen Stonecarver +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7397; -- old 0.75, level 44, hits 24 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=7397; -- old 1.05, level 44, hits 25 + +-- Stoneclaw Totem V +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7398; -- old 0, level 54, hits 118 + +-- Stoneclaw Totem VI +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7399; -- old 0, level 60, hits 257 + +-- Deadly Cleft Scorpid +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7405; -- old 0.7, level 42, hits 71 + +-- Spigot Operator Luglunket +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7408; -- old 1.1, level 40, hits 36 + +-- Frostmaul Giant +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.1 WHERE `entry`=7428; -- old 5.2, level 59, hits 37 + +-- Frostmaul Preserver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=7429; -- old 5.4, level 60, hits 38 + +-- Cobalt Wyrmkin +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.4 WHERE `entry`=7435; -- old 4.75, level 55, hits 10 + +-- Cobalt Scalebane +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.8 WHERE `entry`=7436; -- old 4.65, level 57, hits 17 + +-- Cobalt Mageweaver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.8 WHERE `entry`=7437; -- old 6.25, level 58, hits 7 + +-- Hederine Manastalker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7462; -- old 0.9, level 59, hits 5 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=7462; -- old 5, level 60, hits 15 + +-- Hederine Slayer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7463; -- old 0.9, level 60, hits 35 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.2 WHERE `entry`=7463; -- old 5.15, level 59, hits 8 + +-- Suffering Highborne +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7523; -- old 1.15, level 55, hits 24 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7523; -- old 1.2, level 55, hits 108 + +-- Anguished Highborne +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7524; -- old 1.2, level 56, hits 64 + +-- Goblin Land Mine +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7527; -- old 0, level 43, hits 80 + +-- Wandering Forest Walker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7584; -- old 3.7, level 46, hits 155 + +-- Sergeant Bly +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.25 WHERE `entry`=7604; -- old 3.5, level 45, hits 1118 + +-- Raven +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0 WHERE `entry`=7605; -- old 1, level 44, hits 191 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.9 WHERE `entry`=7605; -- old 3.7, level 44, hits 817 + +-- Oro Eyegouge +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.2 WHERE `entry`=7606; -- old 5.05, level 44, hits 171 + +-- Weegli Blastfuse +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.15 WHERE `entry`=7607; -- old 3.2, level 43, hits 802 + +-- Murta Grimgut +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.2 WHERE `entry`=7608; -- old 3.95, level 44, hits 403 + +-- Razelikh the Defiler +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7 WHERE `entry`=7664; -- old 5.45, level 60, hits 5 + +-- Grol the Destroyer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.5 WHERE `entry`=7665; -- old 3.6, level 58, hits 25 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=7665; -- old 0.14, level 58, hits 25 + +-- Senior Surveyor Fizzledowser +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=7724; -- old 0.14, level 44, hits 100 + +-- Ilifar +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7734; -- old 1.35, level 60, hits 5 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=7734; -- old 5.7, level 60, hits 21 + +-- Felcular +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7735; -- old 1.35, level 60, hits 8 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=7735; -- old 5.55, level 60, hits 44 + +-- Witherbark Felhunter +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7767; -- old 0, level 45, hits 2 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7767; -- old 1.5, level 46, hits 15 + +-- Witherbark Bloodling +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=7768; -- old 1.4, level 25, hits 104 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=7768; -- old 0.14, level 25, hits 104 + +-- Hazzali Parasite +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=7769; -- old 1.35, level 45, hits 241 + +-- Skeleton of Zum'rah +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7786; -- old 1.5, level 35, hits 99 + +-- Sandfury Slave +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7787; -- old 1.35, level 44, hits 650 + +-- Ruuzlu +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.7 WHERE `entry`=7797; -- old 3.45, level 46, hits 35 + +-- Wastewander Scofflaw +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7805; -- old 1.6, level 45, hits 33 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=7805; -- old 0.14, level 45, hits 33 + +-- Marauding Owlbeast +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7808; -- old 1.55, level 46, hits 102 + +-- Vilebranch Ambusher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7809; -- old 1.45, level 47, hits 174 + +-- Bera Stonehammer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7823; -- old 1.4, level 55, hits 7 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.65 WHERE `entry`=7823; -- old 3.25, level 55, hits 5 + +-- Teremus the Devourer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7846; -- old 1.5, level 60, hits 22 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=9.5 WHERE `entry`=7846; -- old 7.2, level 60, hits 18 + +-- Lurking Feral Scar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.25 WHERE `entry`=7848; -- old 1.5, level 46, hits 153 + +-- Lingering Highborne +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7864; -- old 0, level 49, hits 10 + +-- Hadoken Swiftstrider +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.9 WHERE `entry`=7875; -- old 1.75, level 57, hits 8 + +-- Treasure Hunting Pirate +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7899; -- old 1.55, level 44, hits 79 + +-- Treasure Hunting Swashbuckler +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7901; -- old 1.55, level 44, hits 60 + +-- Treasure Hunting Buccaneer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7902; -- old 1.6, level 45, hits 44 + +-- Captured Sprite Darter +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=7997; -- old 0, level 42, hits 189 + +-- Blastmaster Emi Shortfuse +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=7998; -- old 2.9, level 27, hits 49 + +-- Barrens Guard +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8016; -- old 5.75, level 40, hits 10 + +-- Dark Iron Land Mine +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8035; -- old 0, level 57, hits 7 + +-- Thelsamar Mountaineer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8055; -- old 1.1, level 40, hits 41 + +-- Protector of the People +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8096; -- old 1.1, level 40, hits 24 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=8096; -- old 0.14, level 40, hits 24 + +-- Witch Doctor Uzer'i +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=8115; -- old 1.4, level 50, hits 4 + +-- Sul'lithuz Abomination +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8120; -- old 1.25, level 47, hits 54 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=8120 && `patch`=10; -- old 3.25, level 47, hits 130 + +-- Antu'sul +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.3 WHERE `entry`=8127; -- old 3.55, level 48, hits 95 + +-- Sul'lithuz Broodling +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8138; -- old 2.5, level 39, hits 15 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8138; -- old 2.2, level 39, hits 118 + +-- Nijel's Point Guard +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8151; -- old 5.65, level 45, hits 18 + +-- Ghost Walker Brave +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8154; -- old 5.2, level 50, hits 26 + +-- Greater Healing Ward +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8179; -- old 0, level 45, hits 2 + +-- Occulus +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=8196; -- old 3.35, level 50, hits 3 + +-- Chronalis +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8197; -- old 1.15, level 61, hits 27 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=9 WHERE `entry`=8197; -- old 5.2, level 61, hits 41 + +-- Tick +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.9 WHERE `entry`=8198; -- old 3.5, level 52, hits 4 + +-- Kregg Keelhaul +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8203; -- old 3.2, level 47, hits 16 + +-- Jalinde Summerdrake +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8214; -- old 3.55, level 49, hits 46 + +-- Smoldar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8278; -- old 3.45, level 50, hits 19 + +-- Faulty War Golem +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=8279; -- old 0.15, level 46, hits 7 + +-- Mojo the Twisted +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8296; -- old 4.45, level 48, hits 19 + +-- Atal'ai Deathwalker's Spirit +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.5 WHERE `entry`=8317; -- old 5.6, level 50, hits 105 + +-- Hakkari Sapper +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=8336; -- old 3.5, level 50, hits 24 + +-- Sentinel Keldara Sunblade +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8397; -- old 0.9, level 44, hits 4 + +-- Obsidion +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8400; -- old 1.8, level 52, hits 48 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.5 WHERE `entry`=8400; -- old 3.75, level 52, hits 86 + +-- Hakkari Minion +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8437; -- old 0.35, level 46, hits 259 + +-- Hakkari Bloodkeeper +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=8438; -- old 3.4, level 50, hits 23 + +-- Avatar of Hakkar +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8443; -- old 1.5, level 49, hits 15 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.1 WHERE `entry`=8443; -- old 7.05, level 49, hits 14 + +-- Skeletal Servant +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8477; -- old 0.35, level 58, hits 13 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8477; -- old 0.45, level 58, hits 124 + +-- Nightmare Suppressor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=8497; -- old 3.4, level 50, hits 84 + +-- Atal'ai Totem +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8510; -- old 0, level 51, hits 1 + +-- Blighted Surge +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8519; -- old 0.65, level 54, hits 4 + +-- Plague Ravager +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=8520; -- old 0.5, level 55, hits 22 + +-- Blighted Horror +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8521; -- old 0.65, level 57, hits 26 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=8521; -- old 0.14, level 57, hits 26 + +-- Plague Monstrosity +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8522; -- old 0.65, level 58, hits 46 + +-- Cursed Mage +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8524; -- old 1.6, level 54, hits 43 + +-- Dark Caster +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8526; -- old 1.4, level 57, hits 19 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8526; -- old 1.6, level 57, hits 6 + +-- Dread Weaver +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8528; -- old 1.2, level 59, hits 191 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8528; -- old 1.5, level 59, hits 162 + +-- Unseen Servant +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8538; -- old 0.85, level 55, hits 26 + +-- Chief Sharptusk Thornmantle +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.55 WHERE `entry`=8554; -- old 0.95, level 5, hits 11 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.85 WHERE `entry`=8554; -- old 1.1, level 5, hits 41 + +-- Ranger +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8564; -- old 2.4, level 59, hits 96 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8564; -- old 1.55, level 59, hits 92 + +-- Glutton +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8567; -- old 0.8, level 40, hits 3 + +-- Magus Rimtori +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8578; -- old 2.2, level 55, hits 3 + +-- Atal'alarion +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=9 WHERE `entry`=8580; -- old 4.65, level 50, hits 21 + +-- Blood Elf Defender +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8581; -- old 0.8, level 51, hits 15 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8581; -- old 1.45, level 51, hits 17 + +-- Frost Spectre +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8585; -- old 0, level 41, hits 8 + +-- Angered Infernal +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8608; -- old 1.4, level 53, hits 8 + +-- Mithril Dragonling +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=8615; -- old 0.1, level 60, hits 24 + +-- Infernal Servant +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8616; -- old 1.45, level 55, hits 33 + +-- Hukku's Voidwalker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.45 WHERE `entry`=8656; -- old 1.5, level 52, hits 29 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=8656; -- old 0.14, level 52, hits 29 + +-- Gusting Vortex +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8667; -- old 0.6, level 43, hits 15 + +-- Auctioneer Leeka +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8672; -- old 0.85, level 50, hits 16 + +-- Dreadlord +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8716; -- old 1.5, level 62, hits 3 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=9.7 WHERE `entry`=8716; -- old 5.75, level 62, hits 24 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=8716; -- old 0.14, level 62, hits 24 + +-- Felguard Elite +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=10 WHERE `entry`=8717; -- old 5.15, level 61, hits 18 + +-- Manahound +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=10 WHERE `entry`=8718; -- old 5.45, level 60, hits 3 + +-- Auctioneer Epitwee +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8721; -- old 0.85, level 50, hits 24 + +-- Muck Splash +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8837; -- old 0.65, level 47, hits 30 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.09 WHERE `entry`=8837; -- old 0.14, level 47, hits 30 + +-- Sandfury Acolyte +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.2 WHERE `entry`=8876; -- old 1.45, level 44, hits 19 + +-- Anvilrage Guardsman +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.1 WHERE `entry`=8891; -- old 3.95, level 50, hits 1334 + +-- Anvilrage Footman +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.6 WHERE `entry`=8892; -- old 4.1, level 51, hits 699 + +-- Anvilrage Soldier +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.3 WHERE `entry`=8893; -- old 10.05, level 53, hits 50 + +-- Anvilrage Medic +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.3 WHERE `entry`=8894; -- old 6.4, level 53, hits 10 + +-- Anvilrage Officer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.4 WHERE `entry`=8895; -- old 7.3, level 54, hits 10 + +-- Anvilrage Marshal +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.5 WHERE `entry`=8898; -- old 8.15, level 55, hits 236 + +-- Warbringer Construct +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=8905; -- old 0.95, level 54, hits 277 + +-- Molten War Golem +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.5 WHERE `entry`=8908; -- old 2.45, level 56, hits 91 + +-- Fireguard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.2 WHERE `entry`=8909; -- old 2.4, level 52, hits 100 + +-- Blazing Fireguard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.4 WHERE `entry`=8910; -- old 2.3, level 54, hits 114 + +-- Fireguard Destroyer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8911; -- old 0.85, level 54, hits 289 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.6 WHERE `entry`=8911; -- old 2.05, level 54, hits 441 + +-- Twilight's Hammer Torturer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.1 WHERE `entry`=8912; -- old 4.25, level 51, hits 310 + +-- Twilight Emissary +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.3 WHERE `entry`=8913; -- old 5.2, level 52, hits 124 + +-- Twilight Bodyguard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.4 WHERE `entry`=8914; -- old 4, level 53, hits 83 + +-- Arena Spectator +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=8916; -- old 1.25, level 54, hits 10 + +-- Weapon Technician +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8920; -- old 0.8, level 54, hits 153 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.8 WHERE `entry`=8920; -- old 1.05, level 54, hits 285 + +-- Panzor the Invincible +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=8923; -- old 3.5, level 57, hits 35 + +-- Dredge Worm +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8925; -- old 0.5, level 51, hits 54 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=8925; -- old 1.5, level 51, hits 34 + +-- Deep Stinger +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=8926; -- old 0.5, level 50, hits 42 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.7 WHERE `entry`=8926; -- old 1.85, level 50, hits 35 + +-- Dark Screecher +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8927; -- old 0.5, level 52, hits 41 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.6 WHERE `entry`=8927; -- old 1.85, level 52, hits 116 + +-- Burrowing Thundersnout +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8928; -- old 0.5, level 51, hits 84 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=8928; -- old 1.4, level 51, hits 42 + +-- Princess Moira Bronzebeard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.5 WHERE `entry`=8929; -- old 3.7, level 58, hits 55 + +-- Borer Beetle +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8932; -- old 0.65, level 50, hits 43 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.6 WHERE `entry`=8932; -- old 1.4, level 50, hits 62 + +-- Cave Creeper +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8933; -- old 0.5, level 50, hits 78 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=8933; -- old 1.95, level 50, hits 28 + +-- Pet Bomb +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8937; -- old 6.65, level 39, hits 9 + +-- Hematos +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.8 WHERE `entry`=8976; -- old 5.45, level 60, hits 6 + +-- Malfunctioning Reaver +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=8981; -- old 0.85, level 56, hits 18 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.85 WHERE `entry`=8981; -- old 3.4, level 56, hits 36 + +-- Golem Lord Argelmach +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.25 WHERE `entry`=8983; -- old 5.65, level 57, hits 79 + +-- Voidwalker Minion +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=8996; -- old 0, level 57, hits 29 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.2 WHERE `entry`=8996; -- old 0.2, level 57, hits 106 + +-- Bael'Gar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.3 WHERE `entry`=9016; -- old 3.6, level 54, hits 29 + +-- Lord Incendius +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=9017; -- old 4.5, level 55, hits 51 + +-- High Interrogator Gerstahn +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.3 WHERE `entry`=9018; -- old 3.95, level 52, hits 49 + +-- Marshal Windsor +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=9023; -- old 0.85, level 52, hits 108 + +-- Pyromancer Loregrain +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.6 WHERE `entry`=9024; -- old 4.75, level 52, hits 18 + +-- Overmaster Pyron +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.2 WHERE `entry`=9026; -- old 2.4, level 52, hits 129 + +-- Gorosh the Dervish +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.05 WHERE `entry`=9027; -- old 0.75, level 56, hits 5 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.4 WHERE `entry`=9027; -- old 3.55, level 56, hits 20 + +-- Grizzle +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=9028; -- old 3.6, level 54, hits 17 + +-- Eviscerator +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.9 WHERE `entry`=9029; -- old 4, level 54, hits 76 + +-- Ok'thor the Breaker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=9030; -- old 0.8, level 53, hits 11 + +-- Anub'shiah +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=9031; -- old 0.8, level 54, hits 7 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.35 WHERE `entry`=9031; -- old 3.8, level 54, hits 7 + +-- Hedrum the Creeper +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=9032; -- old 0.65, level 53, hits 73 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.66 WHERE `entry`=9032; -- old 3.5, level 53, hits 58 + +-- General Angerforge +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.9 WHERE `entry`=9033; -- old 0.95, level 57, hits 52 + +-- Anger'rel +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.85 WHERE `entry`=9035; -- old 3.45, level 55, hits 13 + +-- Gloom'rel +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.5WHERE `entry`=9037; -- old 3.4, level 56, hits 12 + +-- Dope'rel +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.6 WHERE `entry`=9040; -- old 0.5, level 56, hits 12 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=9040; -- old 3.4, level 56, hits 15 + +-- Fineous Darkvire +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.2 WHERE `entry`=9056; -- old 4, level 54, hits 100 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.09 WHERE `entry`=9056; -- old 0.14, level 54, hits 100 + +-- Hierophant Theodora Mulvadania +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=9079; -- old 1.15, level 58, hits 9 + +-- Rage Talon Dragonspawn +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=9096; -- old 7.8, level 59, hits 589 + +-- Ambassador Flamelash +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=9156; -- old 1, level 57, hits 21 + +-- Bloodpetal Pest +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.03 WHERE `entry`=9157; -- old 0.1, level 40, hits 1627 + +-- Burning Spirit +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=9178; -- old 1.05, level 30, hits 70 + +-- Highlord Omokk +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.9 WHERE `entry`=9196; -- old 3.8, level 59, hits 52 + +-- Spirestone Battle Mage +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=9197; -- old 3.8, level 58, hits 74 + +-- Spirestone Mystic +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=9198; -- old 3.95, level 56, hits 75 + +-- Spirestone Enforcer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=9199; -- old 3.65, level 55, hits 219 + +-- Spirestone Reaver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=9200; -- old 3.65, level 56, hits 204 + +-- Spirestone Ogre Magus +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=9201; -- old 3.9, level 55, hits 140 + +-- Spirestone Battle Lord +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=9218; -- old 3.5, level 58, hits 32 + +-- Spirestone Butcher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=9219; -- old 3.2, level 57, hits 12 + +-- War Master Voone +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.5 WHERE `entry`=9237; -- old 3.45, level 59, hits 56 + +-- Scarshield Warlock +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.5 WHERE `entry`=9257; -- old 3.9, level 54, hits 39 + +-- Firebrand Grunt +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=9259; -- old 3.6, level 57, hits 212 + +-- Firebrand Darkweaver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=9261; -- old 3.85, level 56, hits 80 + +-- Firebrand Invoker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=9262; -- old 3.85, level 56, hits 72 + +-- Firebrand Dreadweaver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=9263; -- old 3.85, level 57, hits 31 + +-- Firebrand Pyromancer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=9264; -- old 3.95, level 58, hits 49 + +-- Smolderthorn Shadow Hunter +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0 WHERE `entry`=9265; -- old 1, level 56, hits 34 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=9265; -- old 3.85, level 56, hits 52 + +-- Blazerunner +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.5 WHERE `entry`=9376; -- old 2.2, level 56, hits 76 + +-- Swirling Vortex +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=9377; -- old 0, level 33, hits 29 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=9377; -- old 0.7, level 33, hits 40 + +-- Ground Pounder +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.2 WHERE `entry`=9396; -- old 1.55, level 42, hits 10 + +-- Spawn of Bael'Gar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=9436; -- old 1.35, level 50, hits 126 + +-- Dark Keeper Pelver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.55 WHERE `entry`=9443; -- old 4, level 55, hits 4 + +-- Warlord Krom'zar +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=9456; -- old 1.2, level 20, hits 24 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=9456; -- old 5.05, level 20, hits 42 + +-- Horde Defender +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.3 WHERE `entry`=9457; -- old 0.8, level 18, hits 1065 + +-- Horde Axe Thrower +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.3 WHERE `entry`=9458; -- old 0.7, level 18, hits 143 + +-- Watchman Doomgrip +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=9476; -- old 4, level 55, hits 72 + +-- Cloned Ooze +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=9477; -- old 0, level 50, hits 59 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=9477; -- old 1.75, level 50, hits 78 + +-- Gorishi Grub +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=9498; -- old 1.4, level 48, hits 23 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=9498; -- old 0.14, level 48, hits 23 + +-- Plugger Spazzring +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.5 WHERE `entry`=9499; -- old 3.9, level 55, hits 9 + +-- Phalanx +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7 WHERE `entry`=9502; -- old 3.65, level 55, hits 41 + +-- Kolkar Stormseer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=9523; -- old 1.2, level 15, hits 141 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=9523; -- old 1.75, level 15, hits 119 + +-- Kolkar Invader +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=9524; -- old 1.5, level 17, hits 548 + +-- Blackbreath Crony +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.3 WHERE `entry`=9541; -- old 3.8, level 53, hits 198 + +-- Ribbly Screwspigot +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=2.7 WHERE `entry`=9543; -- old 3.6, level 53, hits 11 + +-- Guzzling Patron +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.6 WHERE `entry`=9547; -- old 1.8, level 50, hits 19 + +-- Hammered Patron +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=9554; -- old 0.85, level 48, hits 21 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.2 WHERE `entry`=9554; -- old 3.65, level 49, hits 67 + +-- Bloodaxe Veteran +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0 WHERE `entry`=9583; -- old 1, level 59, hits 136 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=9583; -- old 3.45, level 59, hits 321 + +-- Bannok Grimaxe +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=9596; -- old 3.3, level 59, hits 14 + +-- Blackrock Raider +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.8 WHERE `entry`=9605; -- old 1.5, level 59, hits 5 + +-- Gargantuan Ooze +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=9621; -- old 0, level 52, hits 7 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=9621; -- old 1.6, level 52, hits 6 + +-- Ograbisi +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=9677; -- old 1.4, level 55, hits 57 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=9677; -- old 3.65, level 55, hits 42 + +-- Crest Killer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=9680; -- old 3.7, level 54, hits 17 + +-- Jaz +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.6 WHERE `entry`=9681; -- old 1, level 53, hits 27 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.5 WHERE `entry`=9681; -- old 4.05, level 53, hits 17 + +-- Marshal Reginald Windsor +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=2 WHERE `entry`=9682; -- old 1, level 52, hits 223 + +-- Bloodaxe Worg +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=9696; -- old 2.05, level 57, hits 376 + +-- Spire Scorpid +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=9701; -- old 1.45, level 58, hits 232 + +-- Burning Imp +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0 WHERE `entry`=9708; -- old 1, level 54, hits 10 + +-- Ghok Bashguud +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.9 WHERE `entry`=9718; -- old 3.2, level 59, hits 5 + +-- Quartermaster Zigris +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=9736; -- old 3.3, level 59, hits 53 + +-- Pyroguard Emberseer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=9816; -- old 5.2, level 60, hits 74 + +-- Blackhand Dreadweaver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=9817; -- old 7.25, level 59, hits 117 + +-- Blackhand Summoner +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=9818; -- old 6.85, level 59, hits 62 + +-- Blackhand Veteran +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=9819; -- old 7.15, level 59, hits 578 + +-- Entropic Beast +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=9878; -- old 0.65, level 51, hits 91 + +-- Entropic Horror +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=9879; -- old 0.7, level 53, hits 82 + +-- Magmus +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8.25 WHERE `entry`=9938; -- old 3.6, level 57, hits 34 + +-- Gorishi Hive Guard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10040; -- old 1.5, level 54, hits 477 + +-- Gorishi Hive Queen +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.25 WHERE `entry`=10041; -- old 1.45, level 56, hits 32 + +-- Ribbly's Crony +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.2 WHERE `entry`=10043; -- old 3.75, level 51, hits 34 + +-- Sandarr Dunereaver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=10080; -- old 0.6, level 45, hits 5 + +-- Dustwraith +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.6 WHERE `entry`=10081; -- old 1, level 45, hits 11 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=10081; -- old 0.6, level 45, hits 6 + +-- Zerillis +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=10082; -- old 3.1, level 45, hits 13 + +-- Rage Talon Flamescale +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.9 WHERE `entry`=10083; -- old 6.15, level 58, hits 125 + +-- Volchan +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10119; -- old 1.1, level 60, hits 14 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.1 WHERE `entry`=10119; -- old 5.85, level 60, hits 35 + +-- Vault Warder +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=4.6 WHERE `entry`=10120; -- old 6.7, level 45, hits 17 + +-- Raging Moonkin +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10160; -- old 0.85, level 14, hits 52 + +-- Rookery Whelp +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=10161; -- old 2.95, level 57, hits 293 + +-- Spire Scarab +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10177; -- old 1.5, level 58, hits 257 + +-- Lady Sylvanas Windrunner +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10181; -- old 1.3, level 63, hits 18 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15.5 WHERE `entry`=10181; -- old 13.05, level 63, hits 15 + +-- Onyxia +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10184; -- old 1.3, level 63, hits 1 + +-- Rookery Guardian +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=10258; -- old 7.25, level 59, hits 21 + +-- Burning Felhound +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0 WHERE `entry`=10261; -- old 1, level 54, hits 6 + +-- Burning Felguard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0 WHERE `entry`=10263; -- old 1, level 56, hits 4 + +-- Solakar Flamewreath +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.15 WHERE `entry`=10264; -- old 11, level 60, hits 6 + +-- Gizrul the Slavener +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.5 WHERE `entry`=10268; -- old 5.2, level 60, hits 64 + +-- Jaron Stoneshaper +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=9.6 WHERE `entry`=10301; -- old 1.05, level 55, hits 8 + +-- Blackhand Incarcerator +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10316; -- old 1.1, level 59, hits 167 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=10316; -- old 3.85, level 59, hits 123 + +-- Blackhand Elite +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10317; -- old 1.15, level 60, hits 262 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.9 WHERE `entry`=10317; -- old 9.3, level 60, hits 258 + +-- Blackhand Assassin +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.5 WHERE `entry`=10318; -- old 0.6, level 60, hits 183 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.5 WHERE `entry`=10318; -- old 4.55, level 60, hits 144 + +-- Blackhand Iron Guard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=2 WHERE `entry`=10319; -- old 2.3, level 60, hits 257 + +-- Emberstrife +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10321; -- old 1.4, level 61, hits 15 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.6 WHERE `entry`=10321; -- old 5.1, level 61, hits 8 + +-- Murkdeep +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=10323; -- old 1, level 19, hits 17 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.1 WHERE `entry`=10323; -- old 1.5, level 19, hits 205 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=10323; -- old 0.14, level 19, hits 205 + +-- Gyth +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10339; -- old 1.2, level 62, hits 4 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=10339; -- old 7, level 62, hits 74 + +-- Fellicent's Shade +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10358; -- old 3.15, level 12, hits 20 + +-- General Drakkisath +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10363; -- old 1.2, level 62, hits 12 + +-- Rage Talon Dragon Guard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=10366; -- old 1.75, level 60, hits 256 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=10366; -- old 7.2, level 60, hits 305 + +-- Shrye Ragefist +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10367; -- old 1.65, level 55, hits 65 + +-- Rage Talon Captain +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10371; -- old 1.2, level 62, hits 85 + +-- Rage Talon Fire Tongue +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10372; -- old 1.15, level 60, hits 165 + +-- Xabraxxis +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10373; -- old 1.45, level 19, hits 14 + +-- Spire Spider +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=10374; -- old 3.5, level 58, hits 202 + +-- Spire Spiderling +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.1 WHERE `entry`=10375; -- old 1.35, level 55, hits 1798 + +-- Crystal Fang +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.9 WHERE `entry`=10376; -- old 4.9, level 60, hits 12 + +-- Broken Cadaver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10383; -- old 1.65, level 55, hits 13 + +-- Vengeful Phantom +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10387; -- old 0.85, level 57, hits 11 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.7 WHERE `entry`=10387; -- old 1.45, level 57, hits 94 + +-- Spiteful Phantom +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10388; -- old 1.5, level 59, hits 10 + +-- Wrath Phantom +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10389; -- old 1.15, level 60, hits 2 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10389; -- old 1.55, level 61, hits 7 + +-- Black Guard Sentry +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10394; -- old 1.35, level 58, hits 140 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=10394; -- old 2.95, level 58, hits 113 + +-- Thuzadin Shadowcaster +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10398; -- old 2, level 59, hits 147 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.9 WHERE `entry`=10398; -- old 4.75, level 59, hits 97 + +-- Thuzadin Acolyte +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10399; -- old 1.6, level 59, hits 461 + +-- Thuzadin Necromancer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10400; -- old 2.05, level 60, hits 192 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.1 WHERE `entry`=10400; -- old 4.65, level 61, hits 195 + +-- Plague Ghoul +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.3 WHERE `entry`=10405; -- old 3.5, level 58, hits 503 + +-- Rockwing Gargoyle +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=10408; -- old 3.5, level 57, hits 338 + +-- Eye of Naxxramas +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10411; -- old 1.45, level 57, hits 8 + +-- Crypt Crawler +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.9 WHERE `entry`=10412; -- old 3.45, level 59, hits 160 + +-- Crypt Beast +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=10413; -- old 5, level 60, hits 233 + +-- Patchwork Horror +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8.4 WHERE `entry`=10414; -- old 3.4, level 58, hits 86 + +-- Bile Spewer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=10416; -- old 5, level 60, hits 179 + +-- Venom Belcher +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10417; -- old 1.15, level 60, hits 222 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.1 WHERE `entry`=10417; -- old 3.6, level 60, hits 298 + +-- Crimson Conjuror +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.8 WHERE `entry`=10419; -- old 4.8, level 57, hits 61 + +-- Crimson Sorcerer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10422; -- old 1.4, level 58, hits 1 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.9 WHERE `entry`=10422; -- old 4.75, level 59, hits 97 + +-- Crimson Priest +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=10423; -- old 4.75, level 59, hits 22 + +-- Crimson Gallant +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=10424; -- old 5.4, level 60, hits 336 + +-- Crimson Battle Mage +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=10425; -- old 7.3, level 60, hits 53 + +-- Crimson Inquisitor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=10426; -- old 5.4, level 59, hits 73 + +-- Warchief Rend Blackhand +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10429; -- old 1.2, level 62, hits 14 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.65 WHERE `entry`=10429; -- old 13, level 62, hits 51 + +-- The Beast +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10430; -- old 1.2, level 62, hits 14 + +-- Vectus +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.7 WHERE `entry`=10432; -- old 5.55, level 60, hits 10 + +-- Marduk Blackpool +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.25 WHERE `entry`=10433; -- old 3.7, level 58, hits 12 + +-- Magistrate Barthilas +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=9 WHERE `entry`=10435; -- old 3.7, level 58, hits 13 + +-- Baroness Anastari +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.65 WHERE `entry`=10436; -- old 3.7, level 59, hits 6 + +-- Nerub'enkan +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.55 WHERE `entry`=10437; -- old 5.2, level 60, hits 110 + +-- Maleki the Pallid +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.05 WHERE `entry`=10438; -- old 7.8, level 61, hits 44 + +-- Ramstein the Gorger +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=11 WHERE `entry`=10439; -- old 5.5, level 61, hits 57 + +-- Baron Rivendare +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10440; -- old 1.4, level 62, hits 31 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8 WHERE `entry`=10440; -- old 5.95, level 62, hits 82 + +-- Plagued Rat +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=10441; -- old 0.15, level 55, hits 1260 + +-- Chromatic Whelp +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.9 WHERE `entry`=10442; -- old 4.3, level 57, hits 126 + +-- Chromatic Dragonspawn +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.75 WHERE `entry`=10447; -- old 5.5, level 59, hits 382 + +-- Plagued Insect +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=10461; -- old 0.1, level 55, hits 763 + +-- Wailing Banshee +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.9 WHERE `entry`=10464; -- old 3.45, level 59, hits 162 + +-- Scholomance Neophyte +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.8 WHERE `entry`=10470; -- old 4.8, level 58, hits 94 + +-- Splintered Skeleton +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=10478; -- old 5, level 59, hits 422 + +-- Unstable Corpse +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=10480; -- old 1, level 59, hits 437 + +-- Risen Warrior +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.25 WHERE `entry`=10486; -- old 3.3, level 60, hits 56 + +-- Risen Protector +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.9 WHERE `entry`=10487; -- old 5.4, level 58, hits 90 + +-- Risen Construct +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.5 WHERE `entry`=10488; -- old 3.3, level 61, hits 163 + +-- Diseased Ghoul +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.75 WHERE `entry`=10495; -- old 3.45, level 58, hits 521 + +-- Spectral Tutor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=10498; -- old 5.4, level 60, hits 110 + +-- Spectral Researcher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.9 WHERE `entry`=10499; -- old 5.7, level 59, hits 51 + +-- Lady Illucia Barov +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10502; -- old 1.1, level 60, hits 44 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.5 WHERE `entry`=10502; -- old 5.55, level 60, hits 93 + +-- Jandice Barov +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10503; -- old 1.15, level 61, hits 30 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=10503; -- old 3.9, level 61, hits 29 + +-- Lord Alexei Barov +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=10504; -- old 5.2, level 60, hits 109 + +-- Instructor Malicia +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=10505; -- old 5.55, level 60, hits 80 + +-- Kirtonos the Herald +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=12 WHERE `entry`=10506; -- old 5.85, level 60, hits 59 + +-- The Ravenian +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7 WHERE `entry`=10507; -- old 5.2, level 60, hits 103 + +-- Ras Frostwhisper +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10508; -- old 1.5, level 62, hits 1 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=10508; -- old 5.6, level 62, hits 114 + +-- Jed Runewatcher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.8 WHERE `entry`=10509; -- old 7.3, level 59, hits 8 + +-- Plagued Maggot +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=10536; -- old 0.1, level 55, hits 763 + +-- Vaelastrasz +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.9 WHERE `entry`=10538; -- old 5, level 62, hits 16 + +-- Lazy Peon +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=10556; -- old 1.15, level 4, hits 4 + +-- Hearthsinger Forresten +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.9 WHERE `entry`=10558; -- old 3.2, level 57, hits 26 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=10558; -- old 0.14, level 57, hits 26 + +-- Crypt Scarab +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=10577; -- old 0.1, level 58, hits 5484 + +-- Urok Doomhowl +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8 WHERE `entry`=10584; -- old 5.55, level 60, hits 18 + +-- Mother Smolderweb +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.3 WHERE `entry`=10596; -- old 5.4, level 59, hits 146 + +-- Hulfnar Stonetotem +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=10599; -- old 1, level 10, hits 11 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=10599; -- old 0.75, level 10, hits 20 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=10599; -- old 0.14, level 10, hits 20 + +-- Thontek Rumblehoof +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=10600; -- old 1, level 11, hits 20 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10600; -- old 0.8, level 11, hits 13 + +-- Urok Enforcer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=10601; -- old 3.35, level 55, hits 62 + +-- Urok Ogre Magus +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=10602; -- old 3.9, level 54, hits 72 + +-- Branch Snapper +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=10641; -- old 3.1, level 25, hits 4 + +-- Spellmaw +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.65 WHERE `entry`=10662; -- old 3.55, level 56, hits 11 + +-- Manaclaw +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.75 WHERE `entry`=10663; -- old 4.55, level 58, hits 10 + +-- Plagued Hatchling +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.9 WHERE `entry`=10678; -- old 1.05, level 57, hits 245 + +-- Summoned Blackhand Dreadweaver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.25 WHERE `entry`=10680; -- old 7.25, level 59, hits 4 + +-- Summoned Blackhand Veteran +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=10681; -- old 7.15, level 59, hits 58 + +-- Rookery Hatcher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.5 WHERE `entry`=10683; -- old 6.45, level 59, hits 20 + +-- Bile Slime +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10697; -- old 0.7, level 59, hits 57 + +-- Summoned Zombie +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10698; -- old 1.45, level 53, hits 27 + +-- Carrion Scarab +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=10699; -- old 1.95, level 57, hits 68 + +-- Galak Assassin +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10720; -- old 0.85, level 27, hits 49 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10720; -- old 1.65, level 27, hits 67 + +-- Novice Warrior +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.85 WHERE `entry`=10721; -- old 1.2, level 5, hits 3 + +-- Shy-Rotam +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10737; -- old 1.1, level 60, hits 12 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=10737; -- old 5.3, level 60, hits 20 + +-- Sian-Rotam +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10741; -- old 0.5, level 60, hits 3 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.25 WHERE `entry`=10741; -- old 5.45, level 60, hits 7 + +-- Blackhand Dragon Handler +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=10742; -- old 5.25, level 59, hits 155 + +-- Scalding Elemental +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=10756; -- old 0.95, level 28, hits 94 + +-- Boiling Elemental +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=10757; -- old 0.95, level 27, hits 145 + +-- Grimtotem Reaver +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.5 WHERE `entry`=10761; -- old 0.5, level 28, hits 68 + +-- Blackhand Thug +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.5 WHERE `entry`=10762; -- old 7.25, level 60, hits 6 + +-- Royal Overseer Bauhaus +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10781; -- old 1.1, level 40, hits 1382 + +-- Timmy the Cruel +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=9.2 WHERE `entry`=10808; -- old 3.25, level 58, hits 83 + +-- Archivist Galford +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10811; -- old 1.1, level 60, hits 19 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.55 WHERE `entry`=10811; -- old 5.55, level 60, hits 42 + +-- Grand Crusader Dathrohan +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10812; -- old 1.25, level 62, hits 7 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8.6 WHERE `entry`=10812; -- old 5.7, level 62, hits 41 + +-- Balnazzar +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10813; -- old 1.4, level 62, hits 2 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8.9 WHERE `entry`=10813; -- old 7.35, level 62, hits 26 + +-- Duggan Wildhammer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.3 WHERE `entry`=10817; -- old 3.4, level 55, hits 3 + +-- Hed'mush the Rotting +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.25 WHERE `entry`=10821; -- old 3.4, level 57, hits 22 + +-- Ranger Lord Hawkspear +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.2 WHERE `entry`=10824; -- old 5.2, level 60, hits 7 + +-- Farmer Dalson +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.8 WHERE `entry`=10836; -- old 1.45, level 56, hits 6 + +-- Commander Ashlam Valorfist +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10838; -- old 1.75, level 61, hits 58 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=10838; -- old 0.14, level 61, hits 58 + +-- Argent Officer Garush +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=10839; -- old 1, level 60, hits 3 + +-- Undead Scarab +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.8 WHERE `entry`=10876; -- old 2, level 57, hits 94 + +-- Goraluk Anvilcrack +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10899; -- old 1.15, level 61, hits 8 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.1 WHERE `entry`=10899; -- old 7.25, level 61, hits 7 + +-- Lorekeeper Polkelt +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=10901; -- old 5.2, level 60, hits 129 + +-- Succubus Minion +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.75 WHERE `entry`=10928; -- old 0, level 42, hits 68 + +-- Decrepit Guardian +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.8 WHERE `entry`=10943; -- old 3.2, level 55, hits 591 + +-- Davil Lightfire +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10944; -- old 1.35, level 60, hits 3 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7 WHERE `entry`=10944; -- old 5.4, level 60, hits 56 + +-- Horgus the Ravager +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.65 WHERE `entry`=10946; -- old 5.45, level 60, hits 14 + +-- Darrowshire Defender +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10948; -- old 1.45, level 58, hits 207 + +-- Silver Hand Disciple +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10949; -- old 1.2, level 57, hits 113 + +-- Marauding Corpse +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10951; -- old 1.45, level 57, hits 86 + +-- Marauding Skeleton +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10952; -- old 1.45, level 57, hits 93 + +-- Servant of Horgus +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.8 WHERE `entry`=10953; -- old 3.25, level 57, hits 209 + +-- Bloodletter +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=10954; -- old 3.25, level 57, hits 5 + +-- Summoned Water Elemental +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10955; -- old 0.85, level 56, hits 45 + +-- Frostwolf +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10981; -- old 0.75, level 51, hits 170 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10981; -- old 1.8, level 51, hits 452 + +-- Whitewhisker Vermin +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10982; -- old 0.85, level 53, hits 37 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=10982; -- old 3.9, level 52, hits 29 + +-- Snowblind Harpy +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10986; -- old 0.85, level 53, hits 247 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10986; -- old 1.65, level 53, hits 454 + +-- Irondeep Trogg +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10987; -- old 0.85, level 53, hits 3494 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=10987; -- old 3.9, level 53, hits 8248 + +-- Alterac Ram +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10990; -- old 0.75, level 51, hits 684 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10990; -- old 1.8, level 51, hits 2320 + +-- Wildpaw Gnoll +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=10991; -- old 0.85, level 53, hits 82 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=10991; -- old 1.7, level 53, hits 194 + +-- Fallen Hero +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=10996; -- old 5, level 60, hits 23 + +-- Cannon Master Willey +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7 WHERE `entry`=10997; -- old 5.45, level 60, hits 52 + +-- Captured Arko'narin +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=11016; -- old 0.95, level 48, hits 479 + +-- Alexi Barov +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.6 WHERE `entry`=11022; -- old 5, level 60, hits 42 + +-- Weldon Barov +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=12 WHERE `entry`=11023; -- old 5, level 60, hits 3 + +-- Illusory Wraith +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=11027; -- old 1.45, level 51, hits 118 + +-- Mindless Undead +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11030; -- old 1.45, level 56, hits 281 + +-- Malor the Zealous +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.75 WHERE `entry`=11032; -- old 5.85, level 60, hits 53 + +-- Crimson Rifleman +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11054; -- old 2.2, level 60, hits 11 + +-- Fras Siabi +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11058; -- old 1.15, level 61, hits 32 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8.5 WHERE `entry`=11058; -- old 5.45, level 61, hits 16 + +-- Cauldron Lord Bilemaw +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11075; -- old 1.45, level 53, hits 52 + +-- Cauldron Lord Razarch +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11076; -- old 2.2, level 56, hits 4 + +-- Cauldron Lord Malvinious +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11077; -- old 1.55, level 55, hits 8 + +-- Cauldron Lord Soulwrath +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11078; -- old 1.45, level 58, hits 41 + +-- Stratholme Courier +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.65 WHERE `entry`=11082; -- old 3.5, level 57, hits 17 + +-- Argent Rider +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11102; -- old 1.3, level 60, hits 4 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.9 WHERE `entry`=11102; -- old 0.95, level 60, hits 34 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=11102; -- old 0.14, level 60, hits 34 + +-- Yugrek +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11139; -- old 1.4, level 55, hits 2 + +-- Spirit of Trey Lightforge +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=11141; -- old 3.45, level 53, hits 34 + +-- Undead Postman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11142; -- old 0.8, level 58, hits 69 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.55 WHERE `entry`=11142; -- old 3.35, level 58, hits 46 + +-- Postmaster Malown +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11143; -- old 1.35, level 60, hits 8 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8.8 WHERE `entry`=11143; -- old 5.55, level 60, hits 13 + +-- Argent Defender +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11194; -- old 1.4, level 55, hits 1 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.1 WHERE `entry`=11194; -- old 1.7, level 55, hits 14 + +-- Mindless Skeleton +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11197; -- old 2.15, level 60, hits 170 + +-- Summoned Skeleton +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11200; -- old 0.85, level 60, hits 241 + +-- Kerlonian Evershade +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11218; -- old 0.85, level 20, hits 88 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=11218; -- old 0.14, level 20, hits 88 + +-- Scholomance Handler +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=11257; -- old 5.4, level 59, hits 116 + +-- Doctor Theolen Krastinov +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8.1 WHERE `entry`=11261; -- old 5.2, level 60, hits 56 + +-- Spectral Projection +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11263; -- old 2.15, level 58, hits 135 + +-- Dark Shade +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.8 WHERE `entry`=11284; -- old 3.6, level 58, hits 105 + +-- Unliving Mossflayer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11291; -- old 1.2, level 55, hits 338 + +-- Earthborer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=11320; -- old 2.8, level 14, hits 29 + +-- Molten Elemental +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.65 WHERE `entry`=11321; -- old 2.9, level 15, hits 18 + +-- Hakkari Shadowcaster +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11338; -- old 1.15, level 61, hits 186 + +-- Hakkari Shadow Hunter +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11339; -- old 1.15, level 61, hits 431 + +-- Hakkari Blood Priest +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11340; -- old 1.15, level 61, hits 153 + +-- Zealot Lor'Khan +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=12 WHERE `entry`=11347; -- old 14.2, level 62, hits 149 + +-- Gurubashi Headhunter +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11351; -- old 1.1, level 60, hits 221 + +-- Gurubashi Berserker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11352; -- old 1.2, level 62, hits 142 + +-- Gurubashi Blood Drinker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11353; -- old 1.1, level 60, hits 858 + +-- Gurubashi Champion +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11356; -- old 1.15, level 61, hits 709 + +-- Son of Hakkar +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11357; -- old 1.65, level 60, hits 819 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=11357; -- old 7.15, level 60, hits 3140 + +-- Soulflayer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11359; -- old 1.15, level 61, hits 283 + +-- Zulian Cub +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11360; -- old 1.1, level 60, hits 155 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11360; -- old 3.1, level 60, hits 367 + +-- Zulian Tiger +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=11361; -- old 8.85, level 60, hits 955 + +-- Zulian Panther +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11365; -- old 1.1, level 60, hits 1485 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=11365; -- old 15.7, level 60, hits 1825 + +-- Bloodseeker Bat +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11368; -- old 1.1, level 60, hits 460 + +-- Razzashi Broodwidow +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11370; -- old 1.15, level 61, hits 279 + +-- Razzashi Serpent +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11371; -- old 1.1, level 60, hits 1108 + +-- Razzashi Cobra +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=11373; -- old 9.4, level 60, hits 433 + +-- Jin'do the Hexxer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11380; -- old 1.3, level 63, hits 2 + +-- Bloodlord Mandokir +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11382; -- old 1.3, level 63, hits 10 + +-- Sandfury Speaker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11387; -- old 1.15, level 61, hits 18 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=11387; -- old 9.05, level 61, hits 50 + +-- Witherbark Speaker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11388; -- old 1.55, level 61, hits 9 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.2 WHERE `entry`=11388; -- old 7.4, level 61, hits 4 + +-- Vilebranch Speaker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11391; -- old 1.25, level 61, hits 37 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=11391; -- old 9.05, level 61, hits 41 + +-- Illusion of Jandice Barov +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11439; -- old 1.15, level 61, hits 15 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=11439; -- old 1.1, level 61, hits 492 + +-- Gordok Brute +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8.2 WHERE `entry`=11441; -- old 6.65, level 57, hits 53 + +-- Gordok Captain +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=11445; -- old 8.35, level 59, hits 18 + +-- Gordok Warlock +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.1 WHERE `entry`=11448; -- old 6.9, level 60, hits 49 + +-- Gordok Reaver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=11450; -- old 8.7, level 58, hits 83 + +-- Wildspawn Rogue +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=11452; -- old 3.6, level 57, hits 39 + +-- Wildspawn Felsworn +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.8 WHERE `entry`=11455; -- old 5, level 56, hits 4 + +-- Wildspawn Shadowstalker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.7 WHERE `entry`=11456; -- old 3.65, level 56, hits 114 + +-- Ironbark Protector +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=11459; -- old 3.5, level 58, hits 267 + +-- Warpwood Stomper +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.8 WHERE `entry`=11465; -- old 3.5, level 57, hits 46 + +-- Highborne Summoner +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11466; -- old 1.3, level 55, hits 19 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=11466; -- old 1.65, level 55, hits 39 + +-- Eldreth Seether +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.1 WHERE `entry`=11469; -- old 3.5, level 59, hits 31 + +-- Eldreth Spirit +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=11472; -- old 3.5, level 58, hits 110 + +-- Eldreth Phantasm +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.5 WHERE `entry`=11475; -- old 3.45, level 58, hits 81 + +-- Rotting Highborne +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11477; -- old 1.55, level 58, hits 57 + +-- Arcane Aberration +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=11480; -- old 3.45, level 60, hits 111 + +-- Mana Remnant +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=11483; -- old 2.4, level 59, hits 149 + +-- Residual Monstrosity +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=11484; -- old 3.75, level 59, hits 9 + +-- Prince Tortheldrin +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.5 WHERE `entry`=11486; -- old 5.2, level 61, hits 36 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.05 WHERE `entry`=11486; -- old 0.14, level 61, hits 36 + +-- Magister Kalendris +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11487; -- old 1.1, level 60, hits 5 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7 WHERE `entry`=11487; -- old 5.7, level 60, hits 16 + +-- Tendris Warpwood +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11489; -- old 1.1, level 60, hits 9 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8 WHERE `entry`=11489; -- old 6, level 60, hits 98 + +-- Zevrim Thornhoof +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=11490; -- old 3.6, level 57, hits 4 + +-- Immol'thar +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11496; -- old 1.15, level 61, hits 27 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.75 WHERE `entry`=11496; -- old 6.45, level 61, hits 8 + +-- The Razza +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11497; -- old 1.25, level 60, hits 3 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=12.1 WHERE `entry`=11497; -- old 5.85, level 60, hits 17 + +-- Skarr the Unbreakable +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11498; -- old 1.1, level 58, hits 7 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=10.5 WHERE `entry`=11498; -- old 3.8, level 58, hits 4 + +-- King Gordok +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11501; -- old 1.2, level 62, hits 1 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=11501; -- old 7.75, level 62, hits 14 + +-- Ragnaros +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11502; -- old 1.3, level 63, hits 3 + +-- Necrofiend +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11551; -- old 5, level 60, hits 149 + +-- Timbermaw Mystic +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11552; -- old 1.65, level 54, hits 18 + +-- Gorn One Eye +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11555; -- old 1.4, level 55, hits 8 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.09 WHERE `entry`=11555; -- old 0.14, level 55, hits 20 + +-- Meilosh +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11557; -- old 1.4, level 55, hits 6 + +-- Kernda +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11558; -- old 1.4, level 55, hits 10 + +-- Outcast Necromancer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11559; -- old 1.4, level 39, hits 10 + +-- Magrami Spectre +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11560; -- old 1.55, level 38, hits 202 + +-- Undead Ravager +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.6 WHERE `entry`=11561; -- old 0.7, level 37, hits 262 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11561; -- old 1.15, level 38, hits 410 + +-- Whirlwind Ripper +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11576; -- old 0, level 32, hits 66 + +-- Whirlwind Stormwalker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11577; -- old 0, level 36, hits 16 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11577; -- old 0.75, level 36, hits 47 + +-- Whirlwind Shredder +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11578; -- old 0, level 33, hits 78 + +-- Nefarian +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11583; -- old 1.3, level 63, hits 7 + +-- Risen Guardian +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.35 WHERE `entry`=11598; -- old 1.6, level 59, hits 45 + +-- Irondeep Shaman +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=11600; -- old 4.1, level 54, hits 833 + +-- Irondeep Skullthumper +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=11602; -- old 3.75, level 54, hits 2719 + +-- Whitewhisker Digger +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11603; -- old 0.85, level 53, hits 305 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=11603; -- old 3.9, level 52, hits 685 + +-- Whitewhisker Geomancer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=11604; -- old 4.1, level 54, hits 36 + +-- Whitewhisker Overseer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.7 WHERE `entry`=11605; -- old 3.75, level 55, hits 225 + +-- Alexia Ironknife +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11609; -- old 1.1, level 51, hits 49 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=11609; -- old 0.14, level 51, hits 49 + +-- Nathaniel Dumah +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11616; -- old 1.4, level 55, hits 6 + +-- Rattlegore +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11622; -- old 1.15, level 61, hits 24 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7 WHERE `entry`=11622; -- old 5.6, level 61, hits 117 + +-- Servant of Weldon Barov +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11636; -- old 0.9, level 60, hits 1 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=11636; -- old 0.6, level 60, hits 243 + +-- Servant of Alexi Barov +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11637; -- old 0.9, level 60, hits 17 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=11637; -- old 0.6, level 60, hits 201 + +-- Morloch +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11657; -- old 1.25, level 58, hits 26 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11657; -- old 5.8, level 58, hits 24 + +-- Molten Giant +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11658; -- old 1.2, level 62, hits 85 + +-- Molten Destroyer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11659; -- old 1.3, level 63, hits 29 + +-- Flamewaker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11661; -- old 1.25, level 62, hits 18 + +-- Flamewaker Priest +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11662; -- old 1.25, level 62, hits 139 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=11 WHERE `entry`=11662; -- old 13, level 62, hits 193 + +-- Flamewaker Elite +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=11664; -- old 1.55, level 62, hits 46 + +-- Lava Annihilator +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11665; -- old 1.2, level 62, hits 99 + +-- Firewalker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11666; -- old 1.2, level 61, hits 128 + +-- Flameguard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11667; -- old 1.2, level 61, hits 61 + +-- Firelord +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11668; -- old 1.2, level 61, hits 92 + +-- Flame Imp +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11669; -- old 1.2, level 61, hits 206 + +-- Ancient Core Hound +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11673; -- old 1.2, level 62, hits 119 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=11673; -- old 0.14, level 62, hits 57 + +-- Snowblind Windcaller +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11675; -- old 1.75, level 54, hits 55 + +-- Taskmaster Snivvle +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11677; -- old 1.25, level 58, hits 5 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11677; -- old 5.8, level 58, hits 6 + +-- Snowblind Ambusher +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11678; -- old 0.85, level 53, hits 50 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11678; -- old 1.7, level 53, hits 139 + +-- Maraudine Priest +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11685; -- old 1.4, level 42, hits 15 + +-- Ghostly Raider +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11686; -- old 0, level 40, hits 46 + +-- Ghostly Marauder +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11687; -- old 1.2, level 41, hits 62 + +-- Cursed Centaur +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11688; -- old 3.7, level 43, hits 9 + +-- Gnarlpine Instigator +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.8 WHERE `entry`=11690; -- old 1, level 8, hits 10 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=11690; -- old 1.8, level 8, hits 99 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.09 WHERE `entry`=11690; -- old 0.14, level 8, hits 99 + +-- Blackwood Tracker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=11713; -- old 1, level 15, hits 24 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.95 WHERE `entry`=11713; -- old 1.4, level 15, hits 52 + +-- Marosh the Devious +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=11714; -- old 1.75, level 16, hits 7 + +-- Hive'Ashi Sandstalker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.15 WHERE `entry`=11723; -- old 3.5, level 59, hits 39 + +-- Hive'Zora Reaver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.4 WHERE `entry`=11728; -- old 5.45, level 59, hits 20 + +-- Hive'Zora Hive Sister +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.4 WHERE `entry`=11729; -- old 5.45, level 60, hits 35 + +-- Hive'Regal Ambusher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.25 WHERE `entry`=11730; -- old 5.2, level 60, hits 31 + +-- Hive'Regal Spitfire +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.5 WHERE `entry`=11732; -- old 5.3, level 59, hits 11 + +-- Hive'Regal Slavemaker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.5 WHERE `entry`=11733; -- old 5.3, level 59, hits 9 + +-- Dust Stormer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11744; -- old 0.65, level 56, hits 194 + +-- Desert Rumbler +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11746; -- old 0.8, level 56, hits 77 + +-- Samantha Swifthoof +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11748; -- old 1.1, level 40, hits 6 + +-- Meggi Peppinrocker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11754; -- old 2.15, level 60, hits 3 + +-- Shadowshard Rumbler +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=11777; -- old 3.85, level 40, hits 79 + +-- Shadowshard Smasher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=11778; -- old 3.65, level 42, hits 40 + +-- Ambershard Crusher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.3 WHERE `entry`=11781; -- old 3.85, level 41, hits 24 + +-- Ambershard Destroyer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=11782; -- old 3.4, level 43, hits 44 + +-- Putridus Satyr +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.9 WHERE `entry`=11790; -- old 3.7, level 44, hits 84 + +-- Putridus Trickster +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=11791; -- old 3.5, level 44, hits 117 + +-- Putridus Shadowstalker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11792; -- old 0.9, level 42, hits 49 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.6 WHERE `entry`=11792; -- old 3.7, level 44, hits 26 + +-- Celebrian Dryad +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=11793; -- old 3.7, level 46, hits 59 + +-- Sister of Celebrian +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.65 WHERE `entry`=11794; -- old 3.35, level 47, hits 32 + +-- Mylentha Riverbend +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11795; -- old 1.7, level 60, hits 3 + +-- Bessany Plainswind +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.05 WHERE `entry`=11796; -- old 1.7, level 60, hits 5 + +-- Moren Riverbend +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11797; -- old 1.7, level 60, hits 3 + +-- Bunthen Plainswind +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11798; -- old 1.7, level 60, hits 8 + +-- Silva Fil'naveth +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11800; -- old 3.85, level 60, hits 14 + +-- Twilight Keeper Exeter +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11803; -- old 1.1, level 60, hits 11 + +-- Kerr Ironsight +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11813; -- old 1.05, level 41, hits 9 + +-- Hakkari Priest +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11830; -- old 1.1, level 60, hits 809 + +-- Hakkari Witch Doctor +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11831; -- old 1.1, level 60, hits 335 + +-- Keeper Remulos +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11832; -- old 1.4, level 62, hits 24 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=11832; -- old 2.25, level 62, hits 49 + +-- Rahauro +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11833; -- old 0.85, level 20, hits 6 + +-- Wildpaw Shaman +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11837; -- old 1.75, level 54, hits 129 + +-- Wildpaw Mystic +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11838; -- old 1.15, level 57, hits 25 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11838; -- old 1.7, level 57, hits 10 + +-- Wildpaw Brute +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.75 WHERE `entry`=11839; -- old 1, level 56, hits 19 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.25 WHERE `entry`=11839; -- old 1.6, level 56, hits 49 + +-- Wildpaw Alpha +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11840; -- old 1.5, level 59, hits 9 + +-- Kaya Flathoof +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=11856; -- old 1, level 15, hits 8 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11856; -- old 0.8, level 15, hits 30 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=11856; -- old 0.14, level 15, hits 30 + +-- Spectral Attendant +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11873; -- old 1.1, level 60, hits 2 + +-- Nathanos Blightcaller +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.5 WHERE `entry`=11878; -- old 3.95, level 62, hits 10 + +-- Mercutio Filthgorger +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=11886; -- old 1.45, level 57, hits 63 + +-- Grimtotem Sorcerer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.85 WHERE `entry`=11913; -- old 1, level 15, hits 38 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11913; -- old 1.2, level 15, hits 15 + +-- Gogger Geomancer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=11917; -- old 1, level 17, hits 18 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11917; -- old 1.3, level 17, hits 14 + +-- Gogger Stonepounder +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.5 WHERE `entry`=11918; -- old 1, level 17, hits 5 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.6 WHERE `entry`=11918; -- old 0.95, level 17, hits 14 + +-- Umber +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11939; -- old 1.4, level 55, hits 9 + +-- Drek'Thar +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11946; -- old 1.4, level 62, hits 20 + +-- Captain Galvangar +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11947; -- old 1.15, level 61, hits 16 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=10 WHERE `entry`=11947; -- old 7.25, level 61, hits 32 + +-- Vanndar Stormpike +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.7 WHERE `entry`=11948; -- old 1.4, level 62, hits 9 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=11948; -- old 16.35, level 62, hits 23 + +-- Captain Balinda Stonehearth +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11949; -- old 0.75, level 61, hits 154 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=10 WHERE `entry`=11949; -- old 3.9, level 61, hits 71 + +-- Flamegor +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11981; -- old 1.3, level 63, hits 1 + +-- Magmadar +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11982; -- old 1.3, level 63, hits 1 + +-- Firemaw +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11983; -- old 1.3, level 63, hits 5 + +-- Golemagg the Incinerator +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11988; -- old 1.3, level 63, hits 1 + +-- Broodlord Lashlayer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12017; -- old 1.3, level 63, hits 3 + +-- Stormpike Mountaineer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=17 WHERE `entry`=12047; -- old 0.7, level 55, hits 2350 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=12047; -- old 1.65, level 55, hits 4414 + +-- Alliance Sentinel +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12048; -- old 0.7, level 55, hits 871 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=12048; -- old 1.65, level 55, hits 2645 + +-- Stormpike Defender +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.35 WHERE `entry`=12050; -- old 0.65, level 58, hits 722 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=12050; -- old 1.95, level 58, hits 6112 + +-- Frostwolf Legionnaire +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=12051; -- old 2.85, level 57, hits 1829 + +-- Frostwolf Warrior +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12052; -- old 0.7, level 55, hits 722 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=12052; -- old 1.65, level 55, hits 2058 + +-- Frostwolf Guardian +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.35 WHERE `entry`=12053; -- old 0.65, level 58, hits 673 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=12053; -- old 1.95, level 58, hits 3989 + +-- Baron Geddon +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12056; -- old 1.3, level 63, hits 2 + +-- Garr +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12057; -- old 1.3, level 63, hits 8 + +-- Lava Elemental +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12076; -- old 1.2, level 61, hits 155 + +-- Stormpike Quartermaster +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=12096; -- old 1.65, level 55, hits 121 + +-- Sulfuron Harbinger +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=12098; -- old 1.6, level 63, hits 7 + +-- Lava Reaver +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12100; -- old 1.3, level 62, hits 46 + +-- Lava Surger +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12101; -- old 1.2, level 61, hits 68 + +-- Lucifron +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12118; -- old 1.3, level 63, hits 4 + +-- Flamewaker Protector +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12119; -- old 1.25, level 62, hits 67 + +-- Draka +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=12121; -- old 5.45, level 60, hits 166 + +-- Duros +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=12122; -- old 5.45, level 60, hits 172 + +-- Lord Tirion Fordring +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=4 WHERE `entry`=12126; -- old 1.65, level 63, hits 29 +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=12.25 WHERE `entry`=12126; -- old 44.15, level 63, hits 375 + +-- Stormpike Guardsman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12127; -- old 0.65, level 57, hits 1559 + +-- Onyxian Warder +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12129; -- old 1.3, level 62, hits 14 + +-- Son of Flame +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=12 WHERE `entry`=12143; -- old 7, level 60, hits 182 + +-- Tortured Druid +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=12178; -- old 1.2, level 55, hits 86 + +-- Princess Theradras +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=12201; -- old 3.95, level 51, hits 320 + +-- Landslide +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=12203; -- old 3.4, level 50, hits 53 + +-- Primordial Behemoth +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.25 WHERE `entry`=12206; -- old 3.25, level 49, hits 264 + +-- Thessala Hydra +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.8 WHERE `entry`=12207; -- old 3.05, level 46, hits 116 + +-- Conquered Soul of the Blightcaller +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=12208; -- old 1.5, level 58, hits 233 + +-- Vile Larva +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12218; -- old 0.9, level 45, hits 113 + +-- Barbed Lasher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=12219; -- old 3, level 44, hits 276 + +-- Constrictor Vine +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.6 WHERE `entry`=12220; -- old 3.05, level 46, hits 688 + +-- Noxious Slime +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12221; -- old 0.9, level 47, hits 132 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.3 WHERE `entry`=12221; -- old 3.35, level 47, hits 114 + +-- Creeping Sludge +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.9 WHERE `entry`=12222; -- old 3.45, level 46, hits 67 + +-- Celebras the Cursed +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.6 WHERE `entry`=12225; -- old 3.65, level 49, hits 10 + +-- Lord Vyletongue +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.9 WHERE `entry`=12236; -- old 3.35, level 47, hits 23 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=12236; -- old 0.14, level 47, hits 23 + +-- Spirit of Kolk +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.3 WHERE `entry`=12240; -- old 3.2, level 43, hits 5 + +-- Spirit of Magra +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.15 WHERE `entry`=12241; -- old 3.2, level 43, hits 3 + +-- Infiltrator Hameya +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12248; -- old 1.1, level 60, hits 25 + +-- Mechanical Yeti +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=12257; -- old 0.1, level 58, hits 40 + +-- Razorlash +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=12258; -- old 3.4, level 48, hits 38 + +-- Gehennas +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12259; -- old 1.3, level 63, hits 4 + +-- Infected Mossflayer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=12261; -- old 1.5, level 58, hits 50 + +-- Ziggurat Protector +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=12262; -- old 3.5, level 58, hits 35 + +-- Shazzrah +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12264; -- old 1.3, level 63, hits 4 + +-- Lava Spawn +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.75 WHERE `entry`=12265; -- old 4.8, level 60, hits 579 + +-- Melizza Brimbuzzle +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12277; -- old 0.75, level 39, hits 3 + +-- Burning Blade Crusher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=12320; -- old 1.55, level 13, hits 7 + +-- Stormscale Toxicologist +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=12321; -- old 1.5, level 15, hits 4 + +-- Quel'Lithien Protector +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=12322; -- old 1.8, level 60, hits 25 + +-- Demetria +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.4 WHERE `entry`=12339; -- old 10.7, level 61, hits 4 + +-- Scarlet Trooper +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=12352; -- old 1.55, level 58, hits 8 + +-- Lord Kragaru +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=12369; -- old 1.55, level 38, hits 37 + +-- Unliving Caretaker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=12379; -- old 1.6, level 60, hits 10 + +-- Unliving Resident +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.25 WHERE `entry`=12380; -- old 1.6, level 60, hits 73 + +-- Doomguard Commander +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12396; -- old 1.15, level 61, hits 1 + +-- Lord Kazzak +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=18 WHERE `entry`=12397; -- old 21.3, level 63, hits 22 + +-- Blackwing Legionnaire +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7 WHERE `entry`=12416; -- old 9.7, level 60, hits 2961 + +-- Blackwing Mage +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=12420; -- old 9.55, level 60, hits 1101 + +-- Death Talon Dragonspawn +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12422; -- old 1.2, level 60, hits 1679 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=14 WHERE `entry`=12422; -- old 24.45, level 60, hits 2319 + +-- Razorgore the Untamed +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12435; -- old 1.3, level 63, hits 916 + +-- Blackwing Spellbinder +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12457; -- old 1.25, level 62, hits 409 + +-- Blackwing Taskmaster +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12458; -- old 1.25, level 62, hits 230 + +-- Blackwing Warlock +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12459; -- old 1.15, level 61, hits 239 + +-- Death Talon Wyrmguard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12460; -- old 1.3, level 63, hits 12 + +-- Death Talon Overseer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12461; -- old 1.2, level 62, hits 45 + +-- Death Talon Flamescale +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12463; -- old 1.2, level 62, hits 24 + +-- Death Talon Seether +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12464; -- old 1.2, level 62, hits 8 + +-- Death Talon Wyrmkin +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12465; -- old 1.15, level 61, hits 45 + +-- Death Talon Captain +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12467; -- old 1.2, level 62, hits 17 + +-- Death Talon Hatcher +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12468; -- old 1.15, level 61, hits 66 + +-- Emeraldon Boughguard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12474; -- old 1.2, level 62, hits 2 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=12474; -- old 5.25, level 62, hits 8 + +-- Emeraldon Tree Warder +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=12475; -- old 5.2, level 60, hits 32 + +-- Emeraldon Oracle +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12476; -- old 1.15, level 61, hits 10 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=12476; -- old 5.45, level 61, hits 14 + +-- Verdantine Boughguard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.8 WHERE `entry`=12477; -- old 1.2, level 62, hits 42 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=12477; -- old 5.1, level 62, hits 72 + +-- Verdantine Oracle +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12478; -- old 1.45, level 61, hits 110 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=14.6 WHERE `entry`=12478; -- old 5.75, level 61, hits 35 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=12478; -- old 0.14, level 61, hits 35 + +-- Verdantine Tree Warder +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=12479; -- old 1.1, level 60, hits 21 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=12479; -- old 5.45, level 60, hits 53 + +-- Melris Malagan +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=12480; -- old 3.3, level 58, hits 638 + +-- Justine Demalier +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=12481; -- old 1.05, level 57, hits 736 + +-- Dreamtracker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=12496; -- old 5.35, level 62, hits 3 + +-- Dreamstalker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=12498; -- old 7.45, level 62, hits 21 + +-- Grethok the Controller +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12557; -- old 1.25, level 62, hits 8 + +-- Georgia +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12636; -- old 1.4, level 55, hits 2 + +-- Ursangous +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=12678; -- old 1, level 25, hits 13 + +-- Onyxia's Elite Guard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7 WHERE `entry`=12739; -- old 4.9, level 60, hits 1438 + +-- Tideress +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.15 WHERE `entry`=12759; -- old 0.75, level 27, hits 38 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.04 WHERE `entry`=12759; -- old 0.14, level 27, hits 38 + +-- Ruul Snowhoof +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12818; -- old 1.5, level 26, hits 213 + +-- Wandering Protector +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=12836; -- old 3.95, level 35, hits 47 + +-- Splintertree Raider +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=12859; -- old 0.8, level 22, hits 187 + +-- Duriel Moonfire +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=12860; -- old 1.75, level 24, hits 39 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=12860; -- old 0.14, level 24, hits 39 + +-- Baron Aquanis +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=12876; -- old 2.3, level 28, hits 6 + +-- Axtroz +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=9 WHERE `entry`=12899; -- old 3.65, level 62, hits 10 + +-- Somnus +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12900; -- old 1.2, level 62, hits 3 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=9.2 WHERE `entry`=12900; -- old 5.25, level 62, hits 16 + +-- Chief Murgut +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=12918; -- old 1.65, level 26, hits 3 + +-- Enraged Foulweald +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=12921; -- old 1, level 23, hits 32 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=12921; -- old 1.35, level 23, hits 48 + +-- Imp Minion +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.6 WHERE `entry`=12922; -- old 0, level 54, hits 60 + +-- Vorsha the Lasher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=12940; -- old 1.55, level 22, hits 39 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=12940; -- old 0.14, level 22, hits 39 + +-- Kolkar Waylayer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=12976; -- old 1.9, level 34, hits 38 + +-- Kolkar Ambusher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=12977; -- old 1.8, level 34, hits 145 + +-- Deeprun Rat +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.65 WHERE `entry`=13016; -- old 1.3, level 1, hits 9 + +-- Vaelastrasz the Corrupt +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13020; -- old 1.3, level 63, hits 6 + +-- Warpwood Crusher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.5 WHERE `entry`=13021; -- old 12.75, level 56, hits 68 + +-- Umi Thorson +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13078; -- old 1, level 58, hits 254 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=13078; -- old 3.6, level 58, hits 155 + +-- Keetar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=13079; -- old 3.4, level 58, hits 19 + +-- Irondeep Guard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13080; -- old 1.05, level 55, hits 1845 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=13080; -- old 3.65, level 55, hits 1471 + +-- Irondeep Raider +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13081; -- old 0.85, level 55, hits 172 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=13081; -- old 3.55, level 55, hits 233 + +-- Aggi Rumblestomp +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.3 WHERE `entry`=13086; -- old 0.8, level 58, hits 7 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=13086; -- old 3.35, level 58, hits 11 + +-- Coldmine Invader +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13087; -- old 0.75, level 55, hits 48 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=13087; -- old 3.65, level 55, hits 76 + +-- Coldmine Guard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.55 WHERE `entry`=13089; -- old 3.75, level 54, hits 23 + +-- Coldmine Explorer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13096; -- old 1.05, level 55, hits 28 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=13096; -- old 3.8, level 55, hits 36 + +-- Coldmine Surveyor +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13097; -- old 1.25, level 54, hits 26 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=13097; -- old 4, level 54, hits 9 + +-- Irondeep Surveyor +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13098; -- old 0.95, level 54, hits 1399 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=13098; -- old 3.6, level 54, hits 673 + +-- Irondeep Explorer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.4 WHERE `entry`=13099; -- old 4, level 54, hits 103 + +-- Hive'Ashi Drone +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.2 WHERE `entry`=13136; -- old 1.55, level 57, hits 119 + +-- Lieutenant Rugba +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=13137; -- old 12.35, level 59, hits 168 + +-- Lieutenant Spencer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13138; -- old 1.1, level 59, hits 675 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=13138; -- old 12.35, level 59, hits 657 + +-- Commander Randolph +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13139; -- old 1.4, level 61, hits 338 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=13139; -- old 15.2, level 61, hits 575 + +-- Commander Dardosh +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13140; -- old 1.4, level 61, hits 148 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=13140; -- old 15.2, level 61, hits 169 + +-- Deeprot Stomper +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13141; -- old 0.9, level 43, hits 79 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=13141; -- old 3.7, level 43, hits 111 + +-- Deeprot Tangler +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.6 WHERE `entry`=13142; -- old 3.5, level 44, hits 83 + +-- Lieutenant Stronghoof +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=13143; -- old 12.35, level 59, hits 133 + +-- Lieutenant Vol'talar +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13144; -- old 1.1, level 59, hits 307 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=13144; -- old 12.35, level 59, hits 182 + +-- Lieutenant Grummus +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=13145; -- old 12.35, level 59, hits 180 + +-- Lieutenant Murp +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13146; -- old 1.1, level 59, hits 220 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=13146; -- old 12.35, level 59, hits 141 + +-- Lieutenant Lewis +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13147; -- old 1.1, level 59, hits 370 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=13147; -- old 12.35, level 59, hits 167 + +-- Commander Malgor +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13152; -- old 1.4, level 61, hits 120 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=13152; -- old 15.2, level 61, hits 95 + +-- Commander Mulfort +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13153; -- old 1.4, level 61, hits 159 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=13153; -- old 15.2, level 61, hits 106 + +-- Commander Louis Philips +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13154; -- old 1.4, level 61, hits 217 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=13154; -- old 15.2, level 61, hits 174 + +-- Makasgar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=13157; -- old 1.05, level 12, hits 17 + +-- Carrion Swarmer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=13160; -- old 1.35, level 57, hits 50 + +-- Smith Regzar +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13176; -- old 1.1, level 60, hits 26 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=13176; -- old 5.45, level 60, hits 80 + +-- Vahgruk +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13177; -- old 0.35, level 55, hits 5 + +-- Wing Commander Guse +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=13179; -- old 3.5, level 59, hits 519 + +-- Wing Commander Jeztor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=13180; -- old 3.35, level 58, hits 762 + +-- Wing Commander Mulverick +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=13181; -- old 5, level 60, hits 858 + +-- Phase Lasher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=13196; -- old 3.35, level 55, hits 43 + +-- Fel Lash +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=13197; -- old 3.5, level 56, hits 25 + +-- Gaelden Hammersmith +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13216; -- old 0.8, level 58, hits 165 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=13216; -- old 3.35, level 58, hits 202 + +-- Grunnda Wolfheart +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=13218; -- old 3.35, level 58, hits 114 + +-- Primalist Thurloga +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13236; -- old 1.35, level 60, hits 37 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=13236; -- old 5.85, level 60, hits 27 + +-- Murgot Deepforge +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13257; -- old 1.1, level 60, hits 515 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=13257; -- old 5.45, level 60, hits 1264 + +-- Discordant Surge +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13279; -- old 1.5, level 56, hits 2 + +-- Hydrospawn +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.6 WHERE `entry`=13280; -- old 2.45, level 57, hits 20 + +-- Noxxion +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.5 WHERE `entry`=13282; -- old 2.2, level 48, hits 23 + +-- Frostwolf Shaman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13284; -- old 1.25, level 58, hits 279 + +-- Death Lash +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=13285; -- old 3.5, level 57, hits 39 + +-- Lieutenant Largent +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13296; -- old 1.1, level 59, hits 476 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=13296; -- old 12.35, level 59, hits 491 + +-- Lieutenant Stouthandle +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13297; -- old 1.1, level 59, hits 666 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=13297; -- old 12.35, level 59, hits 621 + +-- Lieutenant Greywand +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13298; -- old 1.1, level 59, hits 566 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=13298; -- old 12.35, level 59, hits 437 + +-- Lieutenant Lonadin +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13299; -- old 1.1, level 59, hits 550 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=13299; -- old 12.35, level 59, hits 377 + +-- Lieutenant Mancuso +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13300; -- old 1.1, level 59, hits 439 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=13300; -- old 12.35, level 59, hits 372 + +-- Coldmine Peon +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13316; -- old 0.85, level 52, hits 15 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.3 WHERE `entry`=13316; -- old 3.9, level 53, hits 90 + +-- Coldmine Miner +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13317; -- old 1.1, level 53, hits 286 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.3 WHERE `entry`=13317; -- old 3.8, level 53, hits 517 + +-- Commander Mortimer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13318; -- old 1.4, level 61, hits 392 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=13318; -- old 15.2, level 61, hits 1257 + +-- Commander Duffy +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13319; -- old 1.4, level 61, hits 405 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=13319; -- old 15.2, level 61, hits 691 + +-- Commander Karl Philips +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13320; -- old 1.4, level 61, hits 247 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=13320; -- old 15.2, level 61, hits 574 + +-- Frog +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.65 WHERE `entry`=13321; -- old 2.55, level 1, hits 30 + +-- Seasoned Guardsman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13324; -- old 0.75, level 58, hits 321 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=13324; -- old 2.35, level 58, hits 990 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.23 WHERE `entry`=13324; -- old 0.14, level 58, hits 990 + +-- Seasoned Mountaineer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13325; -- old 0.75, level 56, hits 110 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.6 WHERE `entry`=13325; -- old 2.35, level 56, hits 193 + +-- Seasoned Defender +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13326; -- old 0.75, level 59, hits 184 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.9 WHERE `entry`=13326; -- old 2.5, level 59, hits 1379 + +-- Seasoned Sentinel +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13327; -- old 0.75, level 56, hits 130 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.6 WHERE `entry`=13327; -- old 2.35, level 56, hits 518 + +-- Seasoned Guardian +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13328; -- old 0.75, level 59, hits 74 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.9 WHERE `entry`=13328; -- old 2.5, level 59, hits 620 + +-- Seasoned Legionnaire +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=13329; -- old 2.35, level 58, hits 105 + +-- Seasoned Warrior +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.65 WHERE `entry`=13330; -- old 2.35, level 56, hits 11 + +-- Veteran Defender +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13331; -- old 0.8, level 60, hits 101 + +-- Veteran Guardian +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13332; -- old 0.8, level 60, hits 97 + +-- Veteran Guardsman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13333; -- old 0.8, level 59, hits 206 + +-- Veteran Mountaineer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13335; -- old 0.8, level 57, hits 59 + +-- Veteran Sentinel +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13336; -- old 0.8, level 57, hits 41 + +-- Veteran Warrior +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13337; -- old 0.8, level 57, hits 8 + +-- Stormpike Bowman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13358; -- old 0.2, level 59, hits 758 + +-- Frostwolf Bowman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13359; -- old 0.2, level 59, hits 369 + +-- Irondeep Miner +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13396; -- old 0.85, level 53, hits 6292 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.3 WHERE `entry`=13396; -- old 3.9, level 53, hits 8138 + +-- Irondeep Peon +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13397; -- old 1.7, level 53, hits 925 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.3 WHERE `entry`=13397; -- old 15.3, level 53, hits 1697 + +-- Champion Guardian +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13421; -- old 0.85, level 61, hits 49 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=13421; -- old 3.9, level 61, hits 228 + +-- Champion Defender +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13422; -- old 0.85, level 61, hits 11 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.1 WHERE `entry`=13422; -- old 4, level 61, hits 285 + +-- Champion Guardsman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13424; -- old 0.85, level 60, hits 56 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=13424; -- old 5.7, level 60, hits 151 + +-- Champion Legionnaire +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=13425; -- old 5.7, level 60, hits 69 + +-- Champion Mountaineer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13426; -- old 0.85, level 58, hits 13 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=13426; -- old 5.7, level 58, hits 5 + +-- Champion Sentinel +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13427; -- old 0.85, level 58, hits 13 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.85 WHERE `entry`=13427; -- old 5.7, level 58, hits 10 + +-- Champion Warrior +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13428; -- old 0.85, level 58, hits 40 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=13428; -- old 5.7, level 58, hits 115 + +-- Wing Commander Slidore +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=13438; -- old 3.6, level 58, hits 421 + +-- Wing Commander Vipore +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=13439; -- old 3.35, level 59, hits 119 + +-- Arch Druid Renferal +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13442; -- old 1.35, level 60, hits 165 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=13442; -- old 5.4, level 60, hits 282 + +-- Druid of the Grove +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13443; -- old 1.35, level 60, hits 366 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.5 WHERE `entry`=13443; -- old 5.7, level 60, hits 812 + +-- Corporal Noreg Stormpike +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13447; -- old 1, level 59, hits 146 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=13447; -- old 3.6, level 58, hits 445 + +-- Sergeant Yazra Bloodsnarl +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=13448; -- old 1.6, level 57, hits 120 + +-- Veteran Coldmine Guard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.8 WHERE `entry`=13535; -- old 3.2, level 58, hits 3 + +-- Veteran Coldmine Surveyor +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13538; -- old 1.2, level 59, hits 6 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.6 WHERE `entry`=13538; -- old 3.45, level 59, hits 3 + +-- Seasoned Irondeep Explorer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=13540; -- old 3.65, level 56, hits 23 + +-- Veteran Irondeep Explorer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.6 WHERE `entry`=13541; -- old 3.3, level 58, hits 47 + +-- Champion Irondeep Explorer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13542; -- old 1.35, level 60, hits 61 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.7 WHERE `entry`=13542; -- old 5.15, level 60, hits 51 + +-- Seasoned Irondeep Raider +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=13543; -- old 3.6, level 56, hits 31 + +-- Veteran Irondeep Raider +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.6 WHERE `entry`=13544; -- old 3.35, level 59, hits 173 + +-- Champion Irondeep Raider +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13545; -- old 1.1, level 60, hits 71 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.7 WHERE `entry`=13545; -- old 4.55, level 60, hits 117 + +-- Seasoned Coldmine Explorer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13546; -- old 0.9, level 57, hits 52 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=13546; -- old 3.85, level 57, hits 34 + +-- Veteran Coldmine Explorer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.6 WHERE `entry`=13547; -- old 3.65, level 59, hits 17 + +-- Seasoned Coldmine Invader +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13549; -- old 0.75, level 57, hits 48 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=13549; -- old 3.7, level 57, hits 59 + +-- Veteran Coldmine Invader +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13550; -- old 1, level 58, hits 26 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.6 WHERE `entry`=13550; -- old 3.45, level 58, hits 63 + +-- Champion Coldmine Invader +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13551; -- old 1.1, level 60, hits 3 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.7 WHERE `entry`=13551; -- old 5, level 60, hits 10 + +-- Seasoned Irondeep Guard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13552; -- old 1, level 56, hits 444 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=13552; -- old 4.55, level 56, hits 405 + +-- Veteran Irondeep Guard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13553; -- old 1, level 58, hits 198 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.6 WHERE `entry`=13553; -- old 4.75, level 58, hits 174 + +-- Champion Irondeep Guard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.25 WHERE `entry`=13554; -- old 1.1, level 60, hits 140 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.7 WHERE `entry`=13554; -- old 4.8, level 60, hits 125 + +-- Seasoned Irondeep Surveyor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=13555; -- old 3.25, level 56, hits 171 + +-- Veteran Irondeep Surveyor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.6 WHERE `entry`=13556; -- old 2.35, level 59, hits 58 + +-- Champion Irondeep Surveyor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.7 WHERE `entry`=13557; -- old 5.35, level 60, hits 62 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.09 WHERE `entry`=13557; -- old 0.14, level 60, hits 62 + +-- Stormpike Ram Rider Commander +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=13577; -- old 5.45, level 60, hits 182 + +-- Rotgrip +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.8 WHERE `entry`=13596; -- old 3.4, level 50, hits 82 + +-- Tinkerer Gizlock +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.5 WHERE `entry`=13601; -- old 3.4, level 50, hits 22 + +-- Stormpike Stable Master +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13617; -- old 1.1, level 60, hits 709 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=13617; -- old 5.3, level 60, hits 864 + +-- Noxxious Scion +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=13696; -- old 2.1, level 46, hits 75 + +-- The Nameless Prophet +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=13718; -- old 4.85, level 41, hits 85 + +-- Veng +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.7 WHERE `entry`=13738; -- old 3.35, level 47, hits 8 + +-- Maraudos +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.7 WHERE `entry`=13739; -- old 3.35, level 46, hits 9 + +-- Magra +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.3 WHERE `entry`=13740; -- old 4, level 43, hits 8 + +-- Gelk +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.3 WHERE `entry`=13741; -- old 4.25, level 42, hits 10 + +-- Kolk +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.3 WHERE `entry`=13742; -- old 4, level 43, hits 46 + +-- Corrupt Force of Nature +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13743; -- old 0.9, level 44, hits 36 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=13743; -- old 0.9, level 44, hits 109 + +-- Mountaineer Boombellow +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.1 WHERE `entry`=13797; -- old 3.65, level 61, hits 560 + +-- Jotek +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.1 WHERE `entry`=13798; -- old 5.45, level 60, hits 157 + +-- Prospector Stonehewer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13816; -- old 1.2, level 61, hits 56 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=13816; -- old 1.6, level 61, hits 129 + +-- Royal Dreadguard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13839; -- old 1.2, level 60, hits 7292 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=13839; -- old 5, level 60, hits 2325 + +-- Frostwolf Ambassador Rokhstrom +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=13842; -- old 1.6, level 60, hits 8 + +-- Lieutenant Rotimer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=13843; -- old 3.2, level 60, hits 4 + +-- Alterac Yeti +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.9 WHERE `entry`=13959; -- old 5.1, level 61, hits 18 + +-- Chromaggus +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14020; -- old 1.3, level 63, hits 2 + +-- Enraged Felguard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0 WHERE `entry`=14101; -- old 1.1, level 60, hits 13 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=17.15 WHERE `entry`=14101; -- old 15, level 60, hits 12 + +-- Najak Hexxen +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14185; -- old 1.6, level 59, hits 92 + +-- Ravak Grimtotem +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14186; -- old 0.9, level 60, hits 18 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14186; -- old 2.2, level 60, hits 112 + +-- Athramanis +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14187; -- old 0.9, level 60, hits 80 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14187; -- old 2.3, level 60, hits 497 + +-- Dirk Swindle +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14188; -- old 1.6, level 59, hits 511 + +-- Drogoth the Roamer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14231; -- old 3.55, level 37, hits 7 + +-- Lord Angler +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=14236; -- old 0.95, level 44, hits 19 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.2 WHERE `entry`=14236; -- old 3.55, level 44, hits 16 + +-- Blue Drakonid +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14261; -- old 1.1, level 60, hits 271 + +-- Red Drakonid +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14264; -- old 1.1, level 60, hits 147 + +-- Emogg the Crusher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=14267; -- old 4, level 19, hits 11 + +-- Seeker Aqualon +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14269; -- old 2.2, level 21, hits 25 + +-- Boulderheart +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14273; -- old 3.1, level 25, hits 49 + +-- Scargil +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=14276; -- old 1, level 30, hits 11 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14276; -- old 3.25, level 30, hits 13 + +-- Frostwolf Bloodhound +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14282; -- old 1.7, level 54, hits 512 + +-- Stormpike Owl +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14283; -- old 0, level 53, hits 57 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14283; -- old 1.7, level 53, hits 1157 + +-- Frostwolf Battleguard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.35 WHERE `entry`=14285; -- old 1, level 61, hits 38 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.1 WHERE `entry`=14285; -- old 7.4, level 61, hits 71 + +-- Brinna Valanaar +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14301; -- old 0.85, level 45, hits 9 + +-- Chromatic Drakonid +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=14302; -- old 5, level 60, hits 346 + +-- Petrified Guardian +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.1 WHERE `entry`=14303; -- old 3.5, level 58, hits 10 + +-- Ferra +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=14308; -- old 5.3, level 60, hits 33 + +-- Guard Slip'kik +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.1 WHERE `entry`=14323; -- old 3.45, level 59, hits 19 + +-- Cho'Rush the Observer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=14324; -- old 5.7, level 60, hits 12 + +-- Captain Kromcrush +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14325; -- old 1.15, level 61, hits 4 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8.1 WHERE `entry`=14325; -- old 3.65, level 61, hits 10 + +-- Guard Mol'dar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7 WHERE `entry`=14326; -- old 3.45, level 59, hits 21 + +-- Alshirr Banebreath +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14340; -- old 3.55, level 54, hits 10 + +-- Ragepaw +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14342; -- old 3.4, level 51, hits 23 + +-- The Ongar +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14345; -- old 0, level 51, hits 9 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14345; -- old 3.3, level 51, hits 24 + +-- Hydroling +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.2 WHERE `entry`=14350; -- old 0.15, level 57, hits 13 + +-- Pusillin +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=14354; -- old 6.2, level 57, hits 20 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=14354; -- old 0.14, level 57, hits 20 + +-- Thief Catcher Farmountain +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.1 WHERE `entry`=14365; -- old 5, level 60, hits 3 + +-- Cadaverous Worm +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=14370; -- old 0.95, level 60, hits 76 + +-- Winterfall Ambusher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=14372; -- old 1.45, level 56, hits 11 + +-- Scout Stronghand +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=14375; -- old 5, level 60, hits 4 + +-- Scout Manslayer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=14376; -- old 5, level 60, hits 6 + +-- Scout Tharr +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=14377; -- old 5, level 60, hits 4 + +-- Doomguard Minion +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=14385; -- old 2.4, level 60, hits 55 + +-- Netherwalker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=14389; -- old 4.9, level 60, hits 12 + +-- Expeditionary Mountaineer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=14390; -- old 3.05, level 40, hits 95 + +-- Expeditionary Priest +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14393; -- old 1.55, level 41, hits 1 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.75 WHERE `entry`=14393; -- old 0.85, level 41, hits 8 + +-- Eye of Immol'thar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=14396; -- old 5.15, level 61, hits 18 + +-- Arcane Torrent +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=14399; -- old 3.55, level 60, hits 9 + +-- Arcane Feedback +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14400; -- old 0.55, level 60, hits 13 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14400; -- old 1.5, level 59, hits 42 + +-- Seeker Cromwell +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14402; -- old 1.1, level 60, hits 1381 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=14402; -- old 5, level 60, hits 546 + +-- Seeker Nahr +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=14403; -- old 5, level 60, hits 636 + +-- Seeker Thompson +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=14404; -- old 5, level 60, hits 907 + +-- Officer Jaxon +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14423; -- old 1.1, level 60, hits 592 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=14423; -- old 5, level 60, hits 202 + +-- Officer Pomeroy +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14438; -- old 1.1, level 60, hits 94 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=14438; -- old 5, level 60, hits 34 + +-- Officer Brady +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14439; -- old 1.1, level 60, hits 229 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=14439; -- old 5, level 60, hits 80 + +-- Lord Captain Wyrmak +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.55 WHERE `entry`=14445; -- old 3.5, level 45, hits 3 + +-- Gilmorian +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14447; -- old 3.35, level 43, hits 19 + +-- Molt Thorn +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.25 WHERE `entry`=14448; -- old 3.6, level 42, hits 6 + +-- The Windreaver +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=14454; -- old 3.4, level 60, hits 3 + +-- Whirling Invader +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14455; -- old 1.5, level 57, hits 137 + +-- Blackwing Guardsman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14456; -- old 1.15, level 61, hits 130 + +-- Princess Tempestria +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14457; -- old 1.1, level 60, hits 4 + +-- Watery Invader +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14458; -- old 1.5, level 58, hits 14 + +-- Thundering Invader +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.4 WHERE `entry`=14462; -- old 0.8, level 56, hits 1 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14462; -- old 2.3, level 55, hits 22 + +-- Kroshius +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=14467; -- old 3.25, level 55, hits 18 + +-- Setis +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.65 WHERE `entry`=14471; -- old 5.15, level 61, hits 5 + +-- Gretheer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14472; -- old 3.4, level 57, hits 17 + +-- Dread Guard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.5 WHERE `entry`=14483; -- old 4.9, level 60, hits 147 + +-- Injured Peasant +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14484; -- old 0.85, level 52, hits 8 + +-- Plagued Peasant +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14485; -- old 0.5, level 52, hits 2 + +-- Scourge Footsoldier +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.7 WHERE `entry`=14486; -- old 0.55, level 59, hits 42 + +-- Verifonix +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14492; -- old 3.5, level 42, hits 14 + +-- Xorothian Dreadsteed +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14502; -- old 1.2, level 62, hits 4 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=14502; -- old 5.3, level 62, hits 10 + +-- Lord Hel'nurath +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14506; -- old 1.5, level 62, hits 3 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=9.7 WHERE `entry`=14506; -- old 5.9, level 62, hits 11 + +-- High Priest Venoxis +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14507; -- old 1.3, level 63, hits 6 + +-- High Priestess Mar'li +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14510; -- old 1.3, level 63, hits 9 + +-- Shadowed Spirit +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14511; -- old 1.35, level 60, hits 34 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.1 WHERE `entry`=14511; -- old 5.4, level 60, hits 17 + +-- Corrupted Spirit +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=14512; -- old 4.9, level 60, hits 30 + +-- Malicious Spirit +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=14513; -- old 4.9, level 59, hits 28 + +-- Banal Spirit +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14514; -- old 2.2, level 60, hits 60 + +-- High Priestess Arlokk +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14515; -- old 1.3, level 63, hits 27 + +-- Aspect of Banality +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14518; -- old 1.35, level 60, hits 5 + +-- Aspect of Corruption +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.3 WHERE `entry`=14519; -- old 5.45, level 60, hits 8 + +-- Aspect of Malice +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=14520; -- old 5.45, level 60, hits 9 + +-- Razzashi Venombrood +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14532; -- old 1.1, level 60, hits 592 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=14532; -- old 10, level 60, hits 1172 + +-- Precious the Devourer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14538; -- old 1.1, level 60, hits 1 + +-- Ebonroc +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14601; -- old 1.3, level 63, hits 6 + +-- Zapped Shore Strider +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=14603; -- old 1.35, level 49, hits 67 + +-- Bone Construct +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=14605; -- old 3.4, level 60, hits 1680 + +-- Zapped Deep Strider +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14639; -- old 1.25, level 49, hits 45 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=14639; -- old 1.5, level 49, hits 41 + +-- Zapped Cliff Giant +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.7 WHERE `entry`=14640; -- old 1.45, level 50, hits 71 + +-- Stinglasher +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14661; -- old 1.25, level 47, hits 31 + +-- Corrupted Fire Nova Totem V +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14662; -- old 0, level 52, hits 69 + +-- Corrupted Healing Stream Totem V +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14664; -- old 0, level 60, hits 8 + +-- Corrupted Windfury Totem III +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14666; -- old 0, level 60, hits 138 + +-- Corrupted Infernal +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=14668; -- old 2.35, level 60, hits 147 + +-- Sever +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=14682; -- old 5.6, level 25, hits 87 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=14682; -- old 0.14, level 25, hits 87 + +-- Lady Falther'ess +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=14686; -- old 0.14, level 40, hits 103 + +-- Scorn +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.06 WHERE `entry`=14693; -- old 0.14, level 34, hits 84 + +-- Lord Blackwood +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=14695; -- old 0.14, level 60, hits 61 + +-- Lumbering Horror +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14697; -- old 1.15, level 61, hits 72 + +-- Silverwing Elite +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.1 WHERE `entry`=14715; -- old 3.25, level 55, hits 16 + +-- Horde Elite +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.9 WHERE `entry`=14717; -- old 3.25, level 55, hits 8 + +-- Horde Laborer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14718; -- old 0.9, level 27, hits 3 + +-- High Overlord Saurfang +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14720; -- old 1.2, level 62, hits 700 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=14720; -- old 5.9, level 62, hits 124 + +-- Vilebranch Kidnapper +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14748; -- old 1.4, level 49, hits 265 + +-- Gurubashi Bat Rider +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14750; -- old 1.15, level 61, hits 372 + +-- Dun Baldar North Marshal +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14762; -- old 1.4, level 60, hits 49 + +-- Dun Baldar South Marshal +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14763; -- old 1.4, level 60, hits 12 + +-- Icewing Marshal +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14764; -- old 1.4, level 60, hits 18 + +-- Stonehearth Marshal +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14765; -- old 1.4, level 60, hits 9 +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=14765; -- old 13.5, level 60, hits 20 + +-- Iceblood Marshal +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14766; -- old 1.4, level 60, hits 42 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=14766; -- old 13.5, level 60, hits 37 + +-- Tower Point Marshal +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14767; -- old 1.4, level 60, hits 39 + +-- East Frostwolf Marshal +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14768; -- old 1.4, level 60, hits 77 + +-- West Frostwolf Marshal +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14769; -- old 1.4, level 60, hits 32 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=14769; -- old 13.5, level 60, hits 28 + +-- Dun Baldar North Warmaster +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14770; -- old 1.4, level 60, hits 1 + +-- Dun Baldar South Warmaster +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14771; -- old 1.4, level 60, hits 21 +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=14771; -- old 13.5, level 60, hits 7 + +-- East Frostwolf Warmaster +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14772; -- old 1.4, level 60, hits 41 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=14772; -- old 13.5, level 60, hits 26 + +-- Iceblood Warmaster +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14773; -- old 1.4, level 60, hits 4 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=14773; -- old 13.5, level 60, hits 14 + +-- Icewing Warmaster +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14774; -- old 1.4, level 60, hits 15 + +-- Stonehearth Warmaster +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14775; -- old 1.4, level 60, hits 40 + +-- Tower Point Warmaster +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14776; -- old 1.4, level 60, hits 13 + +-- West Frostwolf Warmaster +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14777; -- old 1.4, level 60, hits 38 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=14777; -- old 13.5, level 60, hits 20 + +-- Withered Mistress +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14825; -- old 1.1, level 60, hits 1172 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=14825; -- old 11.7, level 60, hits 1540 + +-- Sacrificed Troll +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14826; -- old 1.5, level 60, hits 1007 + +-- Hakkar +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14834; -- old 1.3, level 63, hits 136 + +-- Blood Steward of Kirtonos +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14861; -- old 1.15, level 61, hits 2 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.65 WHERE `entry`=14861; -- old 3.9, level 61, hits 6 + +-- Razzashi Skitterer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=14880; -- old 4.15, level 58, hits 1207 + +-- Atal'ai Mistress +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.5 WHERE `entry`=14882; -- old 9.6, level 60, hits 1798 + +-- Voodoo Slave +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=14883; -- old 10.3, level 60, hits 151 + +-- Parasitic Serpent +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.65 WHERE `entry`=14884; -- old 595.15, level 1, hits 3 + +-- Emeriss +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14889; -- old 1.3, level 63, hits 5 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=20 WHERE `entry`=14889; -- old 10.3, level 63, hits 14 + +-- Taerar +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14890; -- old 1.3, level 63, hits 56 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=20 WHERE `entry`=14890; -- old 12.65, level 63, hits 10 + +-- Peon +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=14901; -- old 1.15, level 4, hits 9 + +-- Frenzied Bloodseeker Bat +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=14965; -- old 5.45, level 60, hits 399 + +-- Field Marshal Oslight +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14983; -- old 1.6, level 62, hits 13 + +-- Shade of Jin'do +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14986; -- old 1.1, level 60, hits 141 + +-- Powerful Healing Ward +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14987; -- old 1.2, level 60, hits 65 + +-- Voodoo Spirit +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=15009; -- old 0.1, level 60, hits 68 + +-- Jungle Toad +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.65 WHERE `entry`=15010; -- old 6.65, level 1, hits 49 + +-- Spawn of Mar'li +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15041; -- old 1.1, level 60, hits 190 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.5 WHERE `entry`=15041; -- old 4.85, level 60, hits 161 + +-- Zulian Stalker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15067; -- old 1.15, level 61, hits 11 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.15 WHERE `entry`=15067; -- old 6.2, level 61, hits 8 + +-- Zulian Guardian +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15068; -- old 1.2, level 60, hits 85 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5.65 WHERE `entry`=15068; -- old 3, level 60, hits 265 + +-- Renataki +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15084; -- old 1.3, level 63, hits 5 + +-- Booty Bay Elite +-- Damage Multiplier (DIRTY!!!) +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=15088; -- old 2.45, level 61, hits 4 + +-- Zulian Prowler +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15101; -- old 1.1, level 60, hits 712 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.8 WHERE `entry`=15101; -- old 2.25, level 60, hits 2701 + +-- Warsong Emissary +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15105; -- old 1.55, level 30, hits 10 + +-- Mad Servant +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15111; -- old 1.15, level 61, hits 231 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=15111; -- old 7.45, level 61, hits 363 + +-- Brain Wash Totem +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15112; -- old 0, level 60, hits 376 + +-- Gahz'ranka +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15114; -- old 1.3, level 63, hits 1 + +-- Rutherford Twing +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=10.6 WHERE `entry`=15126; -- old 7.95, level 55, hits 8 + +-- Defiler Elite +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=15128; -- old 4.75, level 55, hits 47 + +-- League of Arathor Elite +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=15130; -- old 4.75, level 55, hits 117 + +-- Hammerfall Elite +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=15136; -- old 1.55, level 55, hits 47 + +-- Mad Voidwalker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=15146; -- old 5, level 60, hits 935 + +-- Runk Windtamer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15178; -- old 1.4, level 55, hits 17 + +-- Cenarion Hold Infantry +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=15184; -- old 8.6, level 60, hits 624 + +-- Anachronos +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15192; -- old 3.25, level 63, hits 4 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=45 WHERE `entry`=15192; -- old 12.25, level 63, hits 7 + +-- Wickerman Guardian +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=14 WHERE `entry`=15195; -- old 2.45, level 60, hits 3 + +-- Twilight Keeper Mayna +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15200; -- old 1.1, level 60, hits 15 + +-- Vyral the Vile +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15202; -- old 1.15, level 61, hits 5 + +-- High Marshal Whirlaxis +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15204; -- old 1.2, level 63, hits 1 + +-- Baron Kazum +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=24 WHERE `entry`=15205; -- old 15.35, level 63, hits 4 + +-- The Duke of Shards +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=9.2 WHERE `entry`=15208; -- old 2.65, level 62, hits 7 + +-- Crimson Templar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=15209; -- old 1.7, level 60, hits 16 + +-- Hoary Templar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=15212; -- old 2.6, level 60, hits 11 + +-- Mistress Natalia Mar'alith +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15215; -- old 1.4, level 62, hits 2 + +-- The Duke of Zephyrs +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15220; -- old 1.15, level 62, hits 3 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=9 WHERE `entry`=15220; -- old 2.65, level 62, hits 6 + +-- Vekniss Soldier +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15229; -- old 1.15, level 61, hits 105 + +-- Vekniss Warrior +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15230; -- old 1.15, level 61, hits 89 + +-- Vekniss Guardian +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15233; -- old 1.35, level 61, hits 587 + +-- Vekniss Stinger +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15235; -- old 1.2, level 62, hits 46 + +-- Vekniss Wasp +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15236; -- old 1.1, level 60, hits 493 + +-- Vekniss Hive Crawler +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15240; -- old 1.2, level 62, hits 40 + +-- Qiraji Mindslayer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=01 WHERE `entry`=15246; -- old 1.15, level 61, hits 176 + +-- Qiraji Brainwasher +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15247; -- old 1.15, level 61, hits 39 + +-- Qiraji Lasher +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15249; -- old 1.15, level 61, hits 37 + +-- Qiraji Slayer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15250; -- old 1.15, level 61, hits 174 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.17 WHERE `entry`=15250; -- old 0.14, level 61, hits 1000 + +-- Qiraji Champion +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15252; -- old 1.3, level 63, hits 7 + +-- Obsidian Eradicator +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15262; -- old 1.55, level 60, hits 31 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=20.25 WHERE `entry`=15262; -- old 22.5, level 60, hits 160 + +-- The Prophet Skeram +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15263; -- old 1.3, level 63, hits 252 + +-- Anubisath Sentinel +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15264; -- old 1.15, level 61, hits 53 + +-- Emperor Vek'nilash +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15275; -- old 1.3, level 63, hits 87 + +-- Anubisath Defender +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15277; -- old 1.2, level 62, hits 94 + +-- Vekniss Drone +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15300; -- old 1.1, level 60, hits 1899 + +-- Shade of Taerar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=15302; -- old 12.65, level 63, hits 5 + +-- Earthen Templar +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.9 WHERE `entry`=15307; -- old 2.6, level 60, hits 8 + +-- Anubisath Warder +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15311; -- old 1.3, level 63, hits 7 + +-- Obsidian Nullifier +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15312; -- old 1.45, level 61, hits 59 + +-- Qiraji Scarab +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15316; -- old 1.1, level 60, hits 3242 + +-- Hive'Zara Drone +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=15318; -- old 7.9, level 60, hits 34 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=15318; -- old 0.14, level 60, hits 34 + +-- Hive'Zara Collector +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=15319; -- old 12.3, level 60, hits 32 + +-- Hive'Zara Soldier +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15320; -- old 1.15, level 61, hits 108 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8 WHERE `entry`=15320; -- old 20.3, level 61, hits 308 + +-- Hive'Zara Sandstalker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15323; -- old 1.15, level 61, hits 130 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=15323; -- old 6.5, level 61, hits 471 + +-- Qiraji Gladiator +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15324; -- old 1.35, level 61, hits 75 + +-- Hive'Zara Wasp +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15325; -- old 1.15, level 61, hits 882 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=10 WHERE `entry`=15325; -- old 12.6, level 61, hits 2129 + +-- Hive'Zara Stinger +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15327; -- old 1.15, level 61, hits 508 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=15327; -- old 12.6, level 61, hits 1587 + +-- Silicate Feeder +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=15333; -- old 5.05, level 55, hits 400 + +-- Giant Eye Tentacle +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15334; -- old 1.35, level 60, hits 180 + +-- Flesh Hunter +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15335; -- old 1.2, level 62, hits 65 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=10 WHERE `entry`=15335; -- old 15.95, level 62, hits 364 + +-- Hive'Zara Tail Lasher +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15336; -- old 1.15, level 61, hits 1 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8 WHERE `entry`=15336; -- old 12.1, level 61, hits 28 + +-- Obsidian Destroyer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15338; -- old 1.65, level 61, hits 66 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=14 WHERE `entry`=15338; -- old 4.95, level 61, hits 387 + +-- Ossirian the Unscarred +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15339; -- old 1.3, level 63, hits 4 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=22 WHERE `entry`=15339; -- old 33.35, level 63, hits 208 + +-- Moam +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15340; -- old 1.8, level 63, hits 5 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=17 WHERE `entry`=15340; -- old 10.25, level 63, hits 153 + +-- General Rajaxx +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15341; -- old 1.3, level 63, hits 34 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=18 WHERE `entry`=15341; -- old 15.3, level 63, hits 73 + +-- Qiraji Swarmguard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15343; -- old 1.35, level 61, hits 88 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=15343; -- old 17.65, level 61, hits 202 + +-- Swarmguard Needler +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15344; -- old 1.2, level 61, hits 1365 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=15344; -- old 12.1, level 61, hits 1449 + +-- Kurinnaxx +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15348; -- old 1.3, level 63, hits 1 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=16.1 WHERE `entry`=15348; -- old 18.05, level 63, hits 83 + +-- Anubisath Guardian +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15355; -- old 1.3, level 62, hits 63 + +-- Ayamiss the Hunter +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15369; -- old 1.3, level 63, hits 11 + +-- Buru the Gorger +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15370; -- old 1.3, level 63, hits 12 + +-- Colonel Zerran +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15385; -- old 1.3, level 63, hits 49 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=18.1 WHERE `entry`=15385; -- old 11.65, level 63, hits 40 + +-- Major Yeggeth +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15386; -- old 1.3, level 63, hits 43 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=18.1 WHERE `entry`=15386; -- old 11.65, level 63, hits 78 + +-- Qiraji Warrior +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15387; -- old 1.15, level 61, hits 1599 + +-- Major Pakkon +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15388; -- old 1.3, level 63, hits 11 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=18 WHERE `entry`=15388; -- old 11.65, level 63, hits 35 + +-- Captain Drenn +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15389; -- old 1.3, level 63, hits 20 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=17.5 WHERE `entry`=15389; -- old 11.65, level 63, hits 39 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=15389; -- old 0.14, level 63, hits 39 + +-- Captain Xurrem +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15390; -- old 1.3, level 63, hits 17 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=18.1 WHERE `entry`=15390; -- old 11.65, level 63, hits 32 + +-- Captain Qeez +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15391; -- old 1.2, level 63, hits 4 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=18 WHERE `entry`=15391; -- old 11.65, level 63, hits 65 + +-- Captain Tuubid +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15392; -- old 1.3, level 63, hits 9 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=18.35 WHERE `entry`=15392; -- old 14.9, level 63, hits 42 + +-- Qiraji Wasp +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=15414; -- old 3.4, level 60, hits 1657 + +-- Qiraji Drone +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.4 WHERE `entry`=15421; -- old 3.4, level 60, hits 1976 + +-- Qiraji Tank +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=15422; -- old 3.4, level 60, hits 1831 + +-- Kaldorei Infantry +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15423; -- old 0.9, level 59, hits 1067 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15423; -- old 0.6, level 59, hits 1930 + +-- Anubisath Conqueror +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15424; -- old 1.15, level 61, hits 655 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7 WHERE `entry`=15424; -- old 3.4, level 61, hits 247 + +-- Captain Blackanvil +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=10 WHERE `entry`=15440; -- old 3.15, level 60, hits 95 + +-- Ironforge Brigade Rifleman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15441; -- old 1.2, level 60, hits 44 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=15441; -- old 1.05, level 60, hits 116 + +-- Ironforge Brigade Footman +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=15442; -- old 1.05, level 60, hits 425 + +-- Janela Stouthammer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15443; -- old 1.35, level 60, hits 8 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=15443; -- old 3.5, level 60, hits 102 + +-- Arcanist Nozzlespring +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15444; -- old 2.15, level 60, hits 16 + +-- Hive'Zora Abomination +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15449; -- old 1.35, level 60, hits 123 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8.5 WHERE `entry`=15449; -- old 9.8, level 60, hits 68 + +-- Shrieker Scarab +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.4 WHERE `entry`=15461; -- old 2.9, level 60, hits 291 + +-- Spitting Scarab +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15462; -- old 1.2, level 60, hits 303 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.4 WHERE `entry`=15462; -- old 4.15, level 60, hits 333 + +-- Omen +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15467; -- old 1.3, level 63, hits 70 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=15467; -- old 13.3, level 63, hits 280 + +-- Lieutenant General Andorov +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7 WHERE `entry`=15471; -- old 13, level 61, hits 901 + +-- Kaldorei Elite +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15473; -- old 0.7, level 60, hits 807 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.75 WHERE `entry`=15473; -- old 12.3, level 60, hits 3114 + +-- Eranikus, Tyrant of the Dream +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.5 WHERE `entry`=15491; -- old 1.3, level 63, hits 35 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=23 WHERE `entry`=15491; -- old 13, level 63, hits 17 + +-- Nighthaven Defender +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15495; -- old 1.35, level 61, hits 239 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=15495; -- old 3.6, level 61, hits 575 + +-- Canal Frenzy +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15505; -- old 1.1, level 60, hits 9 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.4 WHERE `entry`=15505; -- old 12.3, level 60, hits 39 + +-- Princess Huhuran +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15509; -- old 1.3, level 63, hits 6 + +-- Fankriss the Unyielding +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15510; -- old 1.3, level 63, hits 1 + +-- Battleguard Sartura +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15516; -- old 1.3, level 63, hits 2 + +-- Ouro +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15517; -- old 1.3, level 63, hits 4 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.08 WHERE `entry`=15517; -- old 0.14, level 63, hits 25 + +-- Hive'Zara Hatchling +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=15521; -- old 12.3, level 60, hits 605 + +-- Anubisath Warrior +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15537; -- old 1.15, level 62, hits 313 + +-- Anubisath Swarmguard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15538; -- old 1.15, level 62, hits 163 + +-- Twilight Marauder Morna +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.9 WHERE `entry`=15541; -- old 1.7, level 60, hits 23 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.23 WHERE `entry`=15541; -- old 0.14, level 60, hits 23 + +-- Twilight Marauder +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.21 WHERE `entry`=15542; -- old 0.14, level 58, hits 72 +UPDATE `creature_template` SET `damage_variance`=0.22 WHERE `entry`=15542; -- old 0.14, level 59, hits 59 + +-- Cenarion Outrider +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15545; -- old 1.1, level 60, hits 632 + +-- Hive'Zara Swarmer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15546; -- old 1.1, level 60, hits 6 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=15546; -- old 1.1, level 60, hits 71 + +-- Doctor Weavil +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15552; -- old 3.8, level 63, hits 1 + +-- Maws +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15571; -- old 1.3, level 63, hits 1 + +-- Eye of C'Thun +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15589; -- old 1.3, level 63, hits 7 + +-- Minion of Weavil +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=15591; -- old 13.95, level 60, hits 54 + +-- Krug Skullsplit +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=9.5 WHERE `entry`=15612; -- old 4.15, level 60, hits 88 + +-- Merok Longstride +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=15613; -- old 2.75, level 60, hits 91 + +-- Orgrimmar Legion Grunt +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=15616; -- old 1.05, level 60, hits 284 + +-- Orgrimmar Legion Axe Thrower +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=15617; -- old 1.05, level 60, hits 319 + +-- Hive'Regal Hunter-Killer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15620; -- old 1.35, level 60, hits 67 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8.5 WHERE `entry`=15620; -- old 9.8, level 60, hits 15 + +-- Yauj Brood +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.75 WHERE `entry`=15621; -- old 3.3, level 60, hits 761 + +-- Vekniss Borer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15622; -- old 1.1, level 60, hits 700 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8 WHERE `entry`=15622; -- old 7.05, level 60, hits 2654 + +-- Twilight Corrupter +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15625; -- old 1.95, level 63, hits 2 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=21.15 WHERE `entry`=15625; -- old 16.1, level 63, hits 16 + +-- Nightmare Phantasm +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15629; -- old 1.2, level 62, hits 518 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=9.1 WHERE `entry`=15629; -- old 3.4, level 62, hits 209 + +-- Spawn of Fankriss +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15630; -- old 1.3, level 63, hits 35 + +-- Priestess of the Moon +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15634; -- old 1.35, level 60, hits 6004 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=15634; -- old 3.65, level 60, hits 2091 + +-- Auctioneer Stockton +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15675; -- old 0.85, level 50, hits 12 + +-- Auctioneer Yarly +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15676; -- old 0.85, level 50, hits 9 + +-- Auctioneer Cain +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15682; -- old 0.85, level 50, hits 29 + +-- Auctioneer Naxxremis +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15683; -- old 0.85, level 50, hits 83 + +-- Auctioneer Rhyker +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15686; -- old 0.85, level 50, hits 93 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=15686; -- old 0.14, level 50, hits 93 + +-- Ouro Scarab +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15718; -- old 0.7, level 60, hits 295 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=15718; -- old 2.25, level 60, hits 1781 + +-- Claw Tentacle +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15725; -- old 1.35, level 60, hits 142 + +-- Eye Tentacle +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15726; -- old 1.35, level 60, hits 983 + +-- Giant Claw Tentacle +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15728; -- old 1.35, level 60, hits 130 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=15728; -- old 0.14, level 60, hits 85 + +-- Colossus of Zora +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.15 WHERE `entry`=15740; -- old 2.6, level 63, hits 2 + +-- Colossus of Ashi +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.996966 WHERE `entry`=15742; -- old 2.6, level 63, hits 500 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=60 WHERE `entry`=15742; -- old 39.95, level 63, hits 72 + +-- Colossal Anubisath Warbringer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15743; -- old 2.3, level 61, hits 40643 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=22 WHERE `entry`=15743; -- old 12.45, level 62, hits 7097 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.22 WHERE `entry`=15743; -- old 0.14, level 61, hits 6196 + +-- Imperial Qiraji Destroyer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15744; -- old 2.55, level 62, hits 3962 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=24 WHERE `entry`=15744; -- old 16.75, level 62, hits 1771 + +-- Qiraji Captain +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15747; -- old 1.4, level 35, hits 2 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=15747; -- old 9.3, level 35, hits 56 + +-- Lesser Anubisath Warbringer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15748; -- old 1.5, level 33, hits 26 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.2 WHERE `entry`=15748; -- old 7, level 35, hits 48 + +-- Lesser Silithid Flayer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15749; -- old 1.35, level 31, hits 76 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.2 WHERE `entry`=15749; -- old 4.35, level 31, hits 164 + +-- Qiraji Major +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.9 WHERE `entry`=15750; -- old 8.65, level 48, hits 14 + +-- Anubisath Warbringer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.4 WHERE `entry`=15751; -- old 6.2, level 45, hits 17 + +-- Silithid Flayer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15752; -- old 0.9, level 44, hits 12 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.2 WHERE `entry`=15752; -- old 5.5, level 44, hits 79 + +-- Qiraji Brigadier General +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=15753; -- old 7.75, level 60, hits 184 + +-- Greater Anubisath Warbringer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=5 WHERE `entry`=15754; -- old 6.55, level 58, hits 511 + +-- Greater Silithid Flayer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.2 WHERE `entry`=15756; -- old 5.3, level 57, hits 620 + +-- Qiraji Lieutenant General +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15757; -- old 2.05, level 63, hits 431 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=14.25 WHERE `entry`=15757; -- old 11.9, level 63, hits 55 + +-- Supreme Anubisath Warbringer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15758; -- old 1.8, level 62, hits 27 + +-- Supreme Silithid Flayer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15759; -- old 1.65, level 61, hits 206 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.2 WHERE `entry`=15759; -- old 6.55, level 60, hits 111 + +-- Officer Maloof +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15766; -- old 1.4, level 55, hits 53 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15766; -- old 3.7, level 55, hits 340 + +-- Officer Gothena +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15768; -- old 0.6, level 55, hits 3633 + +-- Flesh Tentacle +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15802; -- old 1.35, level 60, hits 200 + +-- Qiraji Lieutenant +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15806; -- old 1.4, level 28, hits 1 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=15806; -- old 7.5, level 28, hits 388 + +-- Minor Anubisath Warbringer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15807; -- old 1.3, level 25, hits 15 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.2 WHERE `entry`=15807; -- old 4.25, level 25, hits 415 + +-- Minor Silithid Flayer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15808; -- old 1.15, level 23, hits 2 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.2 WHERE `entry`=15808; -- old 3.85, level 23, hits 287 + +-- Eroded Anubisath Warbringer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=15810; -- old 3.75, level 18, hits 178 + +-- Faltering Silithid Flayer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15811; -- old 0.4, level 13, hits 3 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.2 WHERE `entry`=15811; -- old 3.5, level 14, hits 237 + +-- Qiraji Officer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=15812; -- old 7.45, level 20, hits 186 + +-- Qiraji Officer Zod +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.8 WHERE `entry`=15813; -- old 8.65, level 20, hits 169 + +-- Qiraji Captain Ka'ark +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=15815; -- old 9.05, level 40, hits 19 + +-- Qiraji Brigadier General Pax-lish +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15817; -- old 1.7, level 60, hits 622 + +-- Lieutenant General Nokhor +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=21.25 WHERE `entry`=15818; -- old 14.65, level 63, hits 4 + +-- Might of Kalimdor Sergeant +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=15840; -- old 1.05, level 15, hits 5 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15840; -- old 0.1, level 16, hits 7 + +-- Might of Kalimdor Lieutenant +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15841; -- old 0.05, level 45, hits 19 + +-- Might of Kalimdor Mage +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=15842; -- old 1.9, level 36, hits 8 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15842; -- old 0.05, level 36, hits 10 + +-- Might of Kalimdor Priest +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15843; -- old 1.65, level 56, hits 3 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15843; -- old 0.05, level 55, hits 4 + +-- Might of Kalimdor Captain +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15845; -- old 1.3, level 26, hits 3 + +-- Might of Kalimdor Archer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=15846; -- old 2, level 46, hits 13 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15846; -- old 0.05, level 46, hits 3 + +-- Might of Kalimdor Shaman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15847; -- old 1.25, level 25, hits 9 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15847; -- old 0.75, level 25, hits 6 + +-- Might of Kalimdor Infantry +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15848; -- old 0.05, level 59, hits 98 + +-- Might of Kalimdor Druid +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15849; -- old 1.35, level 36, hits 11 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15849; -- old 0.05, level 35, hits 6 + +-- Might of Kalimdor Skirmisher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15850; -- old 0.05, level 35, hits 27 + +-- Might of Kalimdor Marshal +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15851; -- old 0.05, level 59, hits 4 + +-- Orgrimmar Elite Shieldguard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=4 WHERE `entry`=15852; -- old 0.85, level 60, hits 32 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4 WHERE `entry`=15852; -- old 1.35, level 60, hits 120 + +-- Orgrimmar Elite Infantryman +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=15853; -- old 6.7, level 59, hits 68 + +-- Orgrimmar Elite Cavalryman +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8.2 WHERE `entry`=15854; -- old 5.55, level 61, hits 681 + +-- Tauren Rifleman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.05 WHERE `entry`=15855; -- old 1.35, level 60, hits 1577 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=10.1 WHERE `entry`=15855; -- old 3.65, level 60, hits 479 + +-- Tauren Primalist +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15856; -- old 6.45, level 60, hits 170 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=15856; -- old 4.2, level 60, hits 18 + +-- Stormwind Cavalryman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=15857; -- old 1.15, level 61, hits 1489 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8.3 WHERE `entry`=15857; -- old 5, level 61, hits 177 + +-- Stormwind Infantryman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=2 WHERE `entry`=15858; -- old 1.1, level 59, hits 82 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=15858; -- old 3.45, level 59, hits 64 + +-- Stormwind Archmage +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15859; -- old 1.5, level 62, hits 486 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=15859; -- old 2.3, level 62, hits 71 + +-- Kaldorei Marksman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15860; -- old 1.35, level 60, hits 989 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=13.6 WHERE `entry`=15860; -- old 3.65, level 60, hits 331 + +-- Ironforge Infantryman +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=15861; -- old 6.7, level 60, hits 52 + +-- Ironforge Cavalryman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15862; -- old 1.15, level 61, hits 824 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8.2 WHERE `entry`=15862; -- old 5.55, level 61, hits 1143 + +-- Darkspear Shaman +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15863; -- old 1.35, level 60, hits 84 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=15863; -- old 1.1, level 60, hits 40 + +-- Might of Kalimdor Major +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15865; -- old 0.85, level 56, hits 23 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15865; -- old 0.05, level 56, hits 9 + +-- High Commander Lynore Windstryke +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.05 WHERE `entry`=15866; -- old 1.3, level 63, hits 1670 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=30 WHERE `entry`=15866; -- old 4.85, level 63, hits 74 + +-- Might of Kalimdor Archmage +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15867; -- old 2, level 60, hits 4 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=15867; -- old 0.05, level 60, hits 3 + +-- Highlord Leoric Von Zeldig +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=4.15 WHERE `entry`=15868; -- old 1.6, level 63, hits 1408 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=20 WHERE `entry`=15868; -- old 6.05, level 63, hits 66 + +-- Malagav the Tactician +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.1 WHERE `entry`=15869; -- old 1.35, level 60, hits 1226 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=28 WHERE `entry`=15869; -- old 5.6, level 60, hits 70 + +-- Duke August Foehammer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=4 WHERE `entry`=15870; -- old 1.3, level 63, hits 1926 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=20 WHERE `entry`=15870; -- old 5.75, level 63, hits 206 + +-- Sergeant Carnes +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=15903; -- old 4.25, level 60, hits 93 + +-- Grobbulus +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15931; -- old 1.3, level 63, hits 2 + +-- Gluth +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15932; -- old 1.3, level 63, hits 2 + +-- Hive'Zara Hornet +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15934; -- old 1.15, level 61, hits 4 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7 WHERE `entry`=15934; -- old 10, level 61, hits 18 + +-- Heigan the Unclean +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15936; -- old 1.3, level 63, hits 2 + +-- Maexxna +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15952; -- old 1.3, level 63, hits 4 + +-- Grand Widow Faerlina +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15953; -- old 1.3, level 63, hits 5 + +-- Noth the Plaguebringer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15954; -- old 1.3, level 63, hits 1 + +-- Anub'Rekhan +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15956; -- old 1.3, level 63, hits 4 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=15956; -- old 0.14, level 63, hits 86 + +-- Lunar Festival Sentinel +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.1 WHERE `entry`=15961; -- old 4.8, level 60, hits 45 + +-- Vekniss Hatchling +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15962; -- old 1.1, level 60, hits 153 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=9 WHERE `entry`=15962; -- old 7.95, level 60, hits 1544 + +-- Dread Creeper +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15974; -- old 1.15, level 61, hits 302 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=24 WHERE `entry`=15974; -- old 19.4, level 61, hits 741 + +-- Carrion Spinner +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15975; -- old 1.15, level 61, hits 546 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=22 WHERE `entry`=15975; -- old 26.4, level 61, hits 1038 + +-- Venom Stalker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15976; -- old 1.15, level 61, hits 66 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=32 WHERE `entry`=15976; -- old 27.35, level 61, hits 129 + +-- Infectious Skitterer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15977; -- old 1.15, level 61, hits 3095 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=10 WHERE `entry`=15977; -- old 11.5, level 61, hits 3711 + +-- Crypt Reaver +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15978; -- old 1.15, level 61, hits 43 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=30 WHERE `entry`=15978; -- old 26.95, level 61, hits 73 + +-- Tomb Horror +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15979; -- old 1.15, level 61, hits 35 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=32 WHERE `entry`=15979; -- old 27.35, level 61, hits 51 + +-- Naxxramas Cultist +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15980; -- old 2.2, level 61, hits 854 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=14 WHERE `entry`=15980; -- old 30.75, level 61, hits 1710 + +-- Naxxramas Acolyte +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15981; -- old 2.2, level 61, hits 1219 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=14 WHERE `entry`=15981; -- old 30.75, level 61, hits 609 + +-- Sartura's Royal Guard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15984; -- old 1.15, level 61, hits 46 + +-- Sapphiron +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15989; -- old 1.3, level 63, hits 14 + +-- Kel'Thuzad +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=15990; -- old 1.3, level 63, hits 4 + +-- Loatheb +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16011; -- old 1.5, level 63, hits 122 + +-- Mokvar +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16012; -- old 2.4, level 60, hits 5 + +-- Deliana +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16013; -- old 1.85, level 60, hits 60 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.15 WHERE `entry`=16013; -- old 2.3, level 60, hits 16 + +-- Patchwork Golem +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16017; -- old 1.15, level 61, hits 157 + +-- Bile Retcher +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16018; -- old 1.15, level 61, hits 138 + +-- Mad Scientist +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16020; -- old 1.15, level 61, hits 458 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=16020; -- old 22.6, level 61, hits 886 + +-- Living Monstrosity +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16021; -- old 1.2, level 62, hits 85 + +-- Surgical Assistant +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16022; -- old 1.1, level 60, hits 1034 + +-- Stitched Spewer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16025; -- old 1.3, level 63, hits 13 + +-- Patchwerk +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16028; -- old 1.5, level 63, hits 8 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.03 WHERE `entry`=16028; -- old 0.14, level 63, hits 40 + +-- Sludge Belcher +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16029; -- old 1.2, level 62, hits 20 + +-- Plague Beast +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16034; -- old 1.15, level 61, hits 30 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=22 WHERE `entry`=16034; -- old 1, level 61, hits 135 + +-- Frenzied Bat +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16036; -- old 1.1, level 60, hits 1149 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.5 WHERE `entry`=16036; -- old 0.75, level 60, hits 2252 + +-- Plagued Bat +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16037; -- old 1.1, level 60, hits 1238 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=16037; -- old 1, level 60, hits 1877 + +-- Korv +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.8 WHERE `entry`=16053; -- old 3.65, level 60, hits 3 + +-- Diseased Maggot +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16056; -- old 1.1, level 60, hits 34 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=12.3 WHERE `entry`=16056; -- old 6.65, level 60, hits 195 + +-- Theldren +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.3 WHERE `entry`=16059; -- old 1.1, level 60, hits 6 + +-- Gothik the Harvester +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16060; -- old 1.3, level 63, hits 6 + +-- Instructor Razuvious +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16061; -- old 1.3, level 63, hits 36 + +-- Highlord Mograine +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16062; -- old 1.3, level 63, hits 25 + +-- Sir Zeliek +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16063; -- old 1.3, level 63, hits 33 + +-- Thane Korth'azz +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16064; -- old 1.3, level 63, hits 7 + +-- Lady Blaumeux +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16065; -- old 1.3, level 63, hits 78 + +-- Skeletal Steed +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16067; -- old 1.15, level 61, hits 92 + +-- Commander Eligor Dawnbringer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.6 WHERE `entry`=16115; -- old 66.7, level 60, hits 5 + +-- Unrelenting Deathknight +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16125; -- old 1.15, level 61, hits 440 + +-- Unrelenting Rider +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16126; -- old 1.25, level 62, hits 63 + +-- Spectral Trainee +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16127; -- old 1.15, level 61, hits 1267 + +-- Cenarion Hold Reservist +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16139; -- old 1.1, level 60, hits 34 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=16139; -- old 3.4, level 60, hits 256 + +-- Ghoul Berserker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16141; -- old 1.1, level 59, hits 5225 + +-- Bile Sludge +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16142; -- old 1.15, level 62, hits 30 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=16142; -- old 13.95, level 62, hits 151 + +-- Shadow of Doom +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16143; -- old 1.1, level 60, hits 2260 + +-- Deathknight Captain +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16145; -- old 1.15, level 61, hits 150 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=45 WHERE `entry`=16145; -- old 31.5, level 61, hits 127 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=16145; -- old 0.14, level 61, hits 127 + +-- Deathknight +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.2 WHERE `entry`=16146; -- old 1.45, level 61, hits 152 + +-- Spectral Deathknight +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16148; -- old 1.2, level 62, hits 437 + +-- Spectral Horse +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=33.5 WHERE `entry`=16149; -- old 26.3, level 63, hits 96 + +-- Spectral Rider +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16150; -- old 1.3, level 63, hits 66 + +-- Risen Deathknight +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16154; -- old 1.15, level 61, hits 132 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=22 WHERE `entry`=16154; -- old 25, level 61, hits 379 + +-- Dark Touched Warrior +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16156; -- old 1.15, level 61, hits 45 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=22 WHERE `entry`=16156; -- old 25, level 61, hits 190 + +-- Doom Touched Warrior +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16157; -- old 1.15, level 61, hits 54 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=22 WHERE `entry`=16157; -- old 17.1, level 61, hits 157 + +-- Death Touched Warrior +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16158; -- old 1.15, level 61, hits 82 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=22 WHERE `entry`=16158; -- old 25, level 61, hits 252 + +-- Deathknight Cavalier +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16163; -- old 1.15, level 61, hits 79 + +-- Shade of Naxxramas +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16164; -- old 1.15, level 61, hits 47 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=22 WHERE `entry`=16164; -- old 37.35, level 61, hits 198 + +-- Necro Knight +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16165; -- old 1.15, level 61, hits 68 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=21 WHERE `entry`=16165; -- old 31.1, level 61, hits 114 + +-- Bony Construct +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16167; -- old 1.15, level 61, hits 45 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=26.3 WHERE `entry`=16167; -- old 22.6, level 61, hits 85 + +-- Stoneskin Gargoyle +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16168; -- old 1.45, level 61, hits 385 + +-- Skeletal Smith +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16193; -- old 1.15, level 61, hits 40 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=12 WHERE `entry`=16193; -- old 22.6, level 61, hits 203 + +-- Unholy Axe +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16194; -- old 1.15, level 61, hits 39 + +-- Unholy Staff +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16215; -- old 1.15, level 61, hits 32 + +-- Unholy Swords +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16216; -- old 1.15, level 61, hits 22 + +-- Guard Didier +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16226; -- old 1.1, level 60, hits 1380 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=16226; -- old 3.65, level 60, hits 1025 + +-- Argent Dawn Infantry +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16228; -- old 2.4, level 60, hits 53 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=16228; -- old 3.65, level 60, hits 120 + +-- Caravan Mule +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16232; -- old 0, level 50, hits 947 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.1 WHERE `entry`=16232; -- old 3.75, level 50, hits 2140 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=16232; -- old 0.14, level 50, hits 2140 + +-- Eye Stalk +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16236; -- old 1.15, level 61, hits 17 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=16236; -- old 22.6, level 61, hits 9 + +-- Argent Recruiter +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=16241; -- old 0.05, level 55, hits 9 + +-- Plague Slime +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16243; -- old 1.15, level 61, hits 255 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=54 WHERE `entry`=16243; -- old 81.2, level 61, hits 152 + +-- Infectious Ghoul +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16244; -- old 1.15, level 61, hits 150 + +-- Argent Scout +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=16255; -- old 0.05, level 55, hits 11 + +-- Argent Emissary +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=16285; -- old 0.05, level 55, hits 8 + +-- Spore +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16286; -- old 0.7, level 60, hits 195 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.1 WHERE `entry`=16286; -- old 0.6, level 60, hits 823 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.09 WHERE `entry`=16286; -- old 0.14, level 60, hits 823 + +-- Fallout Slime +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=29 WHERE `entry`=16290; -- old 46.2, level 60, hits 202 + +-- Mutated Grub +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16297; -- old 1.15, level 61, hits 758 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=8 WHERE `entry`=16297; -- old 1, level 61, hits 1066 + +-- Skeletal Shocktrooper +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16299; -- old 1.1, level 59, hits 4859 + +-- Zombie Chow +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16360; -- old 1.1, level 60, hits 311 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=7.5 WHERE `entry`=16360; -- old 3.4, level 60, hits 2053 + +-- Necropolis Acolyte +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16368; -- old 1.25, level 62, hits 177 + +-- Sewage Slime +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16375; -- old 1.1, level 60, hits 147 + +-- Argent Sentry +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=16378; -- old 1.7, level 60, hits 62 + +-- Spirit of the Damned +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16379; -- old 1.15, level 61, hits 24 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=16379; -- old 0.14, level 61, hits 33 + +-- Bone Witch +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16380; -- old 1.15, level 61, hits 43 + +-- Lightning Totem +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16385; -- old 1.15, level 62, hits 48 + +-- Atiesh +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16387; -- old 1.35, level 63, hits 1 + +-- Deathchill Servant +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16390; -- old 1.15, level 61, hits 91 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=24 WHERE `entry`=16390; -- old 30.1, level 61, hits 187 + +-- Ghost of Naxxramas +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=27 WHERE `entry`=16419; -- old 15.05, level 60, hits 7 + +-- Soldier of the Frozen Wastes +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=16427; -- old 8.1, level 60, hits 15 + +-- Unstoppable Abomination +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=48 WHERE `entry`=16428; -- old 74.45, level 60, hits 121 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=16428; -- old 0.14, level 60, hits 121 + +-- Soul Weaver +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16429; -- old 1.1, level 60, hits 121 + +-- Argent Dawn Priest +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=16436; -- old 0.05, level 55, hits 4 + +-- Skeletal Trooper +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.08 WHERE `entry`=16438; -- old 0.14, level 9, hits 166 + +-- Guardian of Icecrown +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16441; -- old 1.1, level 60, hits 88 + +-- Plagued Gargoyle +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16446; -- old 1.45, level 61, hits 103 + +-- Plagued Ghoul +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16447; -- old 1.15, level 61, hits 376 + +-- Plagued Deathhound +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16448; -- old 1.15, level 61, hits 3 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=30.4 WHERE `entry`=16448; -- old 22.6, level 61, hits 11 + +-- Spirit of Naxxramas +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16449; -- old 1.15, level 61, hits 51 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=25 WHERE `entry`=16449; -- old 37.35, level 61, hits 113 + +-- Deathknight Vindicator +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16451; -- old 1.25, level 62, hits 8 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=39 WHERE `entry`=16451; -- old 32.85, level 62, hits 40 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.11 WHERE `entry`=16451; -- old 0.14, level 62, hits 40 + +-- Necro Knight Guardian +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16452; -- old 1.25, level 62, hits 26 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=22 WHERE `entry`=16452; -- old 26, level 62, hits 118 + +-- Necro Stalker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16453; -- old 1.15, level 61, hits 119 + +-- Naxxramas Follower +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16505; -- old 1.15, level 61, hits 56 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=50 WHERE `entry`=16505; -- old 59.2, level 61, hits 104 + +-- Crypt Guard +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16573; -- old 1.15, level 61, hits 45 + +-- Corpse Scarab +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16698; -- old 0.7, level 60, hits 880 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.5 WHERE `entry`=16698; -- old 2.1, level 60, hits 13419 + +-- Spirit of Mograine +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=16.5 WHERE `entry`=16775; -- old 3, level 63, hits 12 + +-- Spirit of Blaumeux +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=25.5 WHERE `entry`=16776; -- old 1.7, level 63, hits 6 + +-- Spirit of Zeliek +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=25 WHERE `entry`=16777; -- old 1.7, level 63, hits 8 + +-- Spirit of Korth'azz +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=26.5 WHERE `entry`=16778; -- old 1.7, level 63, hits 5 + +-- Argent Quartermaster +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.1 WHERE `entry`=16786; -- old 0.05, level 55, hits 5 + +-- Argent Outfitter +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3 WHERE `entry`=16787; -- old 0.05, level 55, hits 14 + +-- Death Lord +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16861; -- old 1.15, level 61, hits 11 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=40.5 WHERE `entry`=16861; -- old 35.85, level 61, hits 30 + +-- Plagued Guardian +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16981; -- old 1.15, level 61, hits 9 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=20 WHERE `entry`=16981; -- old 24.25, level 61, hits 4 + +-- Plagued Champion +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16983; -- old 1.15, level 61, hits 172 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=16 WHERE `entry`=16983; -- old 26.85, level 61, hits 392 + +-- Plagued Warrior +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16984; -- old 1.15, level 61, hits 324 + +-- Mr. Bigglesworth +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.85 WHERE `entry`=16998; -- old 400, level 5, hits 142 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.1 WHERE `entry`=16998; -- old 0.14, level 5, hits 142 + +-- Cinder Elemental +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.8 WHERE `entry`=17003; -- old 1.3, level 58, hits 16 + +-- Maexxna Spiderling +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=17055; -- old 1.1, level 60, hits 203 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=17055; -- old 1.85, level 60, hits 6101 + +-- Alliance Silithyst Sentinel +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=17765; -- old 3.65, level 60, hits 5 + +-- Horde Silithyst Sentinel +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6 WHERE `entry`=17766; -- old 3, level 60, hits 5 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 2513bc3db939b852e367f68002f52cdde92f2000 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 11 Oct 2023 06:08:39 +0300 Subject: [PATCH 218/426] Update two packets. --- src/game/Objects/Player.cpp | 3 ++- src/game/Spells/Spell.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index 5bfcd600bf8..fcec5eabb6e 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -12290,8 +12290,9 @@ void Player::SendNewItem(Item* item, uint32 count, bool received, bool created, data << uint32(item->GetEntry()); // item id data << uint32(item->GetItemSuffixFactor()); // SuffixFactor data << uint32(item->GetItemRandomPropertyId()); // random item property id +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_10_2 data << uint32(count); // count of items - //data << uint32(GetItemCount(item->GetEntry())); // [-ZERO] count of items in inventory +#endif if (broadcast && GetGroup()) GetGroup()->BroadcastPacket(&data, true); diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 62ac592b39f..81f8dac1e35 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -5010,11 +5010,11 @@ void Spell::SendLogExecute() void Spell::SendInterrupted(uint8 result) { - // Nostalrius : fix animation de cast a l'interruption d'un sort - // Ce premier paquet ne sert apparement a rien ... - // Ce second paquet informe les joueurs aux alentours que le sort a ete interrompu. + // Nostalrius: fix cast animation when a spell is interrupted + // This first packet is apparently useless... + // This second packet informs surrounding players that the spell has been interrupted. WorldPacket data(SMSG_SPELL_FAILED_OTHER, (8 + 4)); - data << m_caster->GetObjectGuid(); // Pareil que pour SMSG_SPELL_FAILURE + data << m_caster->GetObjectGuid(); // Same as for SMSG_SPELL_FAILURE data << m_spellInfo->Id; m_caster->SendObjectMessageToSet(&data, true); } From bf8d6ad13e64fc2f4ab6454e8b3890216d6f949e Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 12 Oct 2023 04:34:04 +0300 Subject: [PATCH 219/426] Fix deadlock error with account data tables. Closes https://github.com/vmangos/core/issues/2220 --- src/game/WorldSession.cpp | 44 ++++++++++++++------------------------- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/src/game/WorldSession.cpp b/src/game/WorldSession.cpp index 3beda7bb392..c33dd3f807f 100644 --- a/src/game/WorldSession.cpp +++ b/src/game/WorldSession.cpp @@ -925,23 +925,16 @@ void WorldSession::SetAccountData(NewAccountData::AccountDataType type, const st time_t const currentTime = time(nullptr); if ((1 << type) & NewAccountData::GLOBAL_CACHE_MASK) { - uint32 acc = GetAccountId(); - - static SqlStatementID delId; - static SqlStatementID insId; - - CharacterDatabase.BeginTransaction(); - - SqlStatement stmt = CharacterDatabase.CreateStatement(delId, "DELETE FROM `account_data` WHERE `account`=? AND `type`=?"); - stmt.PExecute(acc, uint32(type)); - - if (!data.empty()) + if (data.empty()) { - stmt = CharacterDatabase.CreateStatement(insId, "INSERT INTO `account_data` VALUES (?,?,?,?)"); - stmt.PExecute(acc, uint32(type), uint64(currentTime), data.c_str()); + CharacterDatabase.PExecute("DELETE FROM `account_data` WHERE `account`=%u AND `type`=%u", GetAccountId(), uint32(type)); + } + else + { + std::string escapedData = data; + CharacterDatabase.escape_string(escapedData); + CharacterDatabase.PExecute("REPLACE INTO `account_data` VALUES (%u, %u, %u, '%s')", GetAccountId(), uint32(type), uint64(currentTime), escapedData.c_str()); } - - CharacterDatabase.CommitTransaction(); } else { @@ -949,21 +942,16 @@ void WorldSession::SetAccountData(NewAccountData::AccountDataType type, const st if (!m_currentPlayerGuid) return; - static SqlStatementID delId; - static SqlStatementID insId; - - CharacterDatabase.BeginTransaction(); - - SqlStatement stmt = CharacterDatabase.CreateStatement(delId, "DELETE FROM `character_account_data` WHERE `guid`=? AND `type`=?"); - stmt.PExecute(m_currentPlayerGuid.GetCounter(), uint32(type)); - - if (!data.empty()) + if (data.empty()) { - stmt = CharacterDatabase.CreateStatement(insId, "INSERT INTO `character_account_data` VALUES (?,?,?,?)"); - stmt.PExecute(m_currentPlayerGuid.GetCounter(), uint32(type), uint64(currentTime), data.c_str()); + CharacterDatabase.PExecute("DELETE FROM `character_account_data` WHERE `guid`=%u AND `type`=%u", m_currentPlayerGuid.GetCounter(), uint32(type)); + } + else + { + std::string escapedData = data; + CharacterDatabase.escape_string(escapedData); + CharacterDatabase.PExecute("REPLACE INTO `character_account_data` VALUES (%u, %u, %u, '%s')", m_currentPlayerGuid.GetCounter(), uint32(type), uint64(currentTime), escapedData.c_str()); } - - CharacterDatabase.CommitTransaction(); } m_accountData[type].timestamp = currentTime; From e3fe9462ae67db618efeae16625708053983c927 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 17 Oct 2023 13:50:50 +0300 Subject: [PATCH 220/426] Process chat packets on separate threads. --- src/game/Chat/Chat.cpp | 19 +++++++++++- src/game/World.cpp | 54 +++++++++++++++++++++++++++++--- src/game/World.h | 5 +++ src/game/WorldSession.cpp | 65 +++++++++++++++++++++++++++++---------- src/game/WorldSession.h | 19 +++++++++--- 5 files changed, 134 insertions(+), 28 deletions(-) diff --git a/src/game/Chat/Chat.cpp b/src/game/Chat/Chat.cpp index 810e55a2b5a..fac73c645e7 100644 --- a/src/game/Chat/Chat.cpp +++ b/src/game/Chat/Chat.cpp @@ -1884,7 +1884,24 @@ bool ChatHandler::ParseCommands(char const* text) if (text[0] == '!' || text[0] == '.') ++text; - ExecuteCommand(text); + // we need to make sure commands are executed on the world thread, + // because the chat packet handler can run asynchronously + if (m_session) + { + sWorld.GetMessager().AddMessage([text, accountId = m_session->GetAccountId(), sessionGuid = m_session->GetGUID()](World* world) + { + if (WorldSession* session = world->FindSession(accountId)) + { + if (session->GetGUID() == sessionGuid) + { + ChatHandler handler(session); + handler.ExecuteCommand(text); + } + } + }); + } + else + ExecuteCommand(text); return true; } diff --git a/src/game/World.cpp b/src/game/World.cpp index ef98faecca4..213c72f37d3 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -122,7 +122,8 @@ World::World(): m_startTime(m_gameTime), m_wowPatch(WOW_PATCH_102), m_defaultDbcLocale(LOCALE_enUS), - m_timeRate(1.0f) + m_timeRate(1.0f), + m_canProcessAsyncPackets(false) { m_ShutdownMask = 0; m_ShutdownTimer = 0; @@ -181,6 +182,13 @@ World::~World() m_lfgQueueThread.reset(nullptr); } + if (m_asyncPacketsThread) + { + if (m_asyncPacketsThread->joinable()) + m_asyncPacketsThread->join(); + m_asyncPacketsThread.reset(nullptr); + } + //TODO free addSessQueue } @@ -196,6 +204,9 @@ void World::Shutdown() if (m_lfgQueueThread && m_lfgQueueThread->joinable()) m_lfgQueueThread->join(); + if (m_asyncPacketsThread && m_asyncPacketsThread->joinable()) + m_asyncPacketsThread->join(); + sAnticheatMgr->StopWardenUpdateThread(); } @@ -1855,6 +1866,7 @@ void World::SetInitialWorldSettings() std::chrono::milliseconds(getConfig(CONFIG_UINT32_PACKET_BCAST_FREQUENCY))); m_charDbWorkerThread.reset(new std::thread(&CharactersDatabaseWorkerThread)); + m_asyncPacketsThread.reset(new std::thread(&World::ProcessAsyncPackets, this)); sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ""); sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "=========================================================="); @@ -1913,6 +1925,30 @@ void World::DetectDBCLang() sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ""); } +// Only processes packets while session update, the messager, and cli commands processing are NOT running +void World::ProcessAsyncPackets() +{ + while (!sWorld.IsStopped()) + { + do + { + std::this_thread::sleep_for(std::chrono::milliseconds(20)); + } while (!m_canProcessAsyncPackets); + + for (auto const& itr : m_sessions) + { + WorldSession* pSession = itr.second; + + MapSessionFilter updater(pSession); + updater.SetProcessType(PACKET_PROCESS_ASYNC); + pSession->ProcessPackets(updater); + + if (!m_canProcessAsyncPackets) + break; + } + } +} + // Update the World ! void World::Update(uint32 diff) { @@ -1932,8 +1968,6 @@ void World::Update(uint32 diff) // Update the game time and check for shutdown time _UpdateGameTime(); - GetMessager().Execute(this); - // Update mass mailer tasks if any sMassMailMgr.Update(); @@ -1947,6 +1981,10 @@ void World::Update(uint32 diff) sAuctionMgr.Update(); } + m_canProcessAsyncPackets = false; + + GetMessager().Execute(this); + //
  • Handle session updates uint32 updateSessionsTime = WorldTimer::getMSTime(); UpdateSessions(diff); @@ -1954,6 +1992,8 @@ void World::Update(uint32 diff) if (getConfig(CONFIG_UINT32_PERFLOG_SLOW_SESSIONS_UPDATE) && updateSessionsTime > getConfig(CONFIG_UINT32_PERFLOG_SLOW_SESSIONS_UPDATE)) sLog.Out(LOG_PERFORMANCE, LOG_LVL_MINIMAL, "Update sessions: %ums", updateSessionsTime); + m_canProcessAsyncPackets = true; + //
  • Update uptime table if (m_timers[WUPDATE_UPTIME].Passed()) { @@ -2055,16 +2095,20 @@ void World::Update(uint32 diff) else m_MaintenanceTimeChecker -= diff; - //Update PlayerBotMgr + // Update PlayerBotMgr sPlayerBotMgr.Update(diff); // Update AutoBroadcast sAutoBroadCastMgr.Update(diff); - // Update liste des ban si besoin + // Update ban list if necessary sAccountMgr.Update(diff); + m_canProcessAsyncPackets = false; + // And last, but not least handle the issued cli commands ProcessCliCommands(); + m_canProcessAsyncPackets = true; + //cleanup unused GridMap objects as well as VMaps if (getConfig(CONFIG_BOOL_CLEANUP_TERRAIN)) sTerrainMgr.Update(diff); diff --git a/src/game/World.h b/src/game/World.h index 8c49b8f7ddf..8579d919fd6 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -1008,6 +1008,11 @@ class World LFGQueue m_lfgQueue; std::unique_ptr m_lfgQueueThread; + // This thread handles packets while the world sessions update is not running + std::unique_ptr m_asyncPacketsThread; + bool m_canProcessAsyncPackets; + void ProcessAsyncPackets(); + // for max speed access static float m_MaxVisibleDistanceOnContinents; static float m_MaxVisibleDistanceInInstances; diff --git a/src/game/WorldSession.cpp b/src/game/WorldSession.cpp index c33dd3f807f..7080f691b18 100644 --- a/src/game/WorldSession.cpp +++ b/src/game/WorldSession.cpp @@ -215,6 +215,37 @@ void WorldSession::SendPacket(WorldPacket const* packet) m_socket->CloseSocket(); } +uint32 GetChatPacketProcessingType(uint32 chatType) +{ + switch (chatType) + { + // These can be handled at any time session update in world thread is not running. + case CHAT_MSG_CHANNEL: + case CHAT_MSG_WHISPER: + case CHAT_MSG_PARTY: + case CHAT_MSG_GUILD: + case CHAT_MSG_OFFICER: + case CHAT_MSG_RAID: +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_10_2 + case CHAT_MSG_RAID_LEADER: + case CHAT_MSG_RAID_WARNING: +#endif +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_11_2 + case CHAT_MSG_BATTLEGROUND: + case CHAT_MSG_BATTLEGROUND_LEADER: +#endif + case CHAT_MSG_DND: + return PACKET_PROCESS_ASYNC; + // These can be handled on the map thread. + case CHAT_MSG_SAY: + case CHAT_MSG_EMOTE: + case CHAT_MSG_YELL: + return PACKET_PROCESS_MAP; + } + + return PACKET_PROCESS_WORLD; +} + // Add an incoming packet to the queue void WorldSession::QueuePacket(std::unique_ptr newPacket) { @@ -224,27 +255,27 @@ void WorldSession::QueuePacket(std::unique_ptr newPacket) if (_player && MovementAnticheat::IsLoggedOpcode(newPacket->GetOpcode())) GetCheatData()->LogMovementPacket(true, *newPacket); - OpcodeHandler const& opHandle = opcodeTable[newPacket->GetOpcode()]; - uint32 const processing = opHandle.packetProcessing; + uint32 processing; - if (processing >= PACKET_PROCESS_MAX_TYPE) + // Handle chat packets on async thread when possible + if (newPacket->GetOpcode() == CMSG_MESSAGECHAT && + newPacket->size() >= sizeof(uint32)) + processing = GetChatPacketProcessingType(*((uint32*)newPacket->contents())); + else { - sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "SESSION: opcode %s (0x%.4X) will be skipped", - LookupOpcodeName(newPacket->GetOpcode()), - newPacket->GetOpcode()); - return; - } + OpcodeHandler const& opHandle = opcodeTable[newPacket->GetOpcode()]; + processing = opHandle.packetProcessing; - // handle query packets in place to reduce load on world - // they dont access player or write anything so its safe - if (processing == PACKET_PROCESS_DB_QUERY) - { - // all these packets require STATUS_LOGGEDIN - if (_player) - (this->*opHandle.handler)(*newPacket); + if (processing >= PACKET_PROCESS_MAX_TYPE) + { + sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "SESSION: opcode %s (0x%.4X) will be skipped", + LookupOpcodeName(newPacket->GetOpcode()), + newPacket->GetOpcode()); + return; + } } - else - m_recvQueue[processing].add(std::move(newPacket)); + + m_recvQueue[processing].add(std::move(newPacket)); } // Logging helper for unexpected opcodes diff --git a/src/game/WorldSession.h b/src/game/WorldSession.h index db7c469a519..4172470baa7 100644 --- a/src/game/WorldSession.h +++ b/src/game/WorldSession.h @@ -153,12 +153,15 @@ enum PacketProcessing */ PACKET_PROCESS_MOVEMENT, /* - * PACKET_PROCESS_DB_QUERY - * Does not write anything. Can be processed in any environment. - * Reads static data (usually data from World DB) - * Currently executed directly in the network thread. + * PACKET_PROCESS_ASYNC + * Handled whenever session update is not running. + * Never at the same time as PACKET_PROCESS_WORLD. + * Never while cli and gm commands are being executed. + * Can be at the same time as maps are being updated. + * Be careful touching the player. + * Never touch the map. */ - PACKET_PROCESS_DB_QUERY, + PACKET_PROCESS_ASYNC, PACKET_PROCESS_MAX_TYPE, // no handler for this packet (server side, or not implemented) /* * PACKET_PROCESS_SELF_ITEMS @@ -173,6 +176,12 @@ enum PacketProcessing * - No other modification / no read allowed */ PACKET_PROCESS_SELF_ITEMS = PACKET_PROCESS_MAP, + /* + * PACKET_PROCESS_DB_QUERY + * Does not write anything. Can be processed as long as containers are not being reloaded. + * Reads static data (usually data from World DB) + */ + PACKET_PROCESS_DB_QUERY = PACKET_PROCESS_ASYNC, /* * PACKET_PROCESS_CHANNEL * Allowed: From 380a8b8f93366b77c3f020ff728700479a0dd1c3 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 17 Oct 2023 15:48:51 +0300 Subject: [PATCH 221/426] Don't check skills for known languages. Not thread safe if chat is handled async. --- src/game/Handlers/ChatHandler.cpp | 20 +++++++------------- src/game/Objects/Player.cpp | 4 ++-- src/game/Objects/Player.h | 5 +++++ src/game/Spells/Spell.cpp | 15 +++++++-------- src/game/Spells/Spell.h | 1 + src/game/Spells/SpellEffects.cpp | 11 ++++++++++- 6 files changed, 32 insertions(+), 24 deletions(-) diff --git a/src/game/Handlers/ChatHandler.cpp b/src/game/Handlers/ChatHandler.cpp index fe5b7b7c512..a8d5caf415f 100644 --- a/src/game/Handlers/ChatHandler.cpp +++ b/src/game/Handlers/ChatHandler.cpp @@ -154,19 +154,6 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recv_data) return; } - // prevent talking at unknown language (cheating) - LanguageDesc const* langDesc = GetLanguageDescByID(lang); - if (!langDesc) - { - SendNotification(LANG_UNKNOWN_LANGUAGE); - return; - } - if (_player && langDesc->skill_id != 0 && !_player->HasSkill(langDesc->skill_id)) - { - SendNotification(LANG_NOT_LEARNED_LANGUAGE); - return; - } - if (lang == LANG_ADDON) { // Disabled addon channel? @@ -176,6 +163,13 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recv_data) // LANG_ADDON should not be changed nor be affected by flood control else { + // prevent talking at unknown language (cheating) + if (_player && !_player->KnowsLanguage(lang)) + { + SendNotification(LANG_NOT_LEARNED_LANGUAGE); + return; + } + // send in universal language if player in .gmon mode (ignore spell effects) if (_player && _player->IsGameMaster()) lang = LANG_UNIVERSAL; diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index fcec5eabb6e..a303efe3dcf 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -548,8 +548,8 @@ void TradeData::SetAccepted(bool state, bool crosssend /*= false*/) //== Player ==================================================== Player::Player(WorldSession* session) : Unit(), - m_mover(this), m_camera(this), m_reputationMgr(this), m_saveDisabled(false), - m_enableInstanceSwitch(true), m_currentTicketCounter(0), m_repopAtGraveyardPending(false), + m_mover(this), m_camera(this), m_reputationMgr(this), m_saveDisabled(false), m_enableInstanceSwitch(true), + m_currentTicketCounter(0), m_repopAtGraveyardPending(false), m_knownLanguagesMask(0), m_honorMgr(this), m_personalXpRate(-1.0f), m_isStandUpScheduled(false), m_foodEmoteTimer(0) { m_objectType |= TYPEMASK_PLAYER; diff --git a/src/game/Objects/Player.h b/src/game/Objects/Player.h index 21379fc371e..bdcedf2f260 100644 --- a/src/game/Objects/Player.h +++ b/src/game/Objects/Player.h @@ -2307,6 +2307,7 @@ class Player final: public Unit JoinedChannelsList m_channels; void UpdateLocalChannels(uint32 newZone); std::string m_name; + uint64 m_knownLanguagesMask; public: void JoinedChannel(Channel* c); void LeftChannel(Channel* c); @@ -2335,6 +2336,10 @@ class Player final: public Unit void Yell(char const* text, uint32 const language) const; void TextEmote(char const* text) const; + void LearnLanguage(uint64 languageId) { m_knownLanguagesMask |= (1llu << languageId); } + void RemoveLanguage(uint64 languageId) { m_knownLanguagesMask &= ~(1llu << languageId);} + bool KnowsLanguage(uint64 languageId) const { return (m_knownLanguagesMask & (1llu << languageId)) != 0; } + /*********************************************************/ /*** FACTION SYSTEM ***/ /*********************************************************/ diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 81f8dac1e35..77a2aa6d6ee 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -393,14 +393,13 @@ void Spell::FillTargetMap() // TODO: find a way so this is not needed? // for area auras always add caster as target (needed for totems for example) - if (m_casterUnit && IsAreaAuraEffect(m_spellInfo->Effect[i])) - AddUnitTarget(m_casterUnit, SpellEffectIndex(i)); - -#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_11_2 - // Pre 1.12 most of the quest complete spells don't have correct target set. - if (m_casterUnit && m_spellInfo->Effect[i] == SPELL_EFFECT_QUEST_COMPLETE) - AddUnitTarget(m_casterUnit, SpellEffectIndex(i)); -#endif + if (m_casterUnit) + { + if (IsAreaAuraEffect(m_spellInfo->Effect[i]) || + m_spellInfo->Effect[i] == SPELL_EFFECT_LANGUAGE || + m_spellInfo->Effect[i] == SPELL_EFFECT_QUEST_COMPLETE) + AddUnitTarget(m_casterUnit, SpellEffectIndex(i)); + } // If same target already filled, use it // Example: AoE fear has effects speedup and modfear, with maxtargets = 1 diff --git a/src/game/Spells/Spell.h b/src/game/Spells/Spell.h index ff5699b87c8..d787113288a 100644 --- a/src/game/Spells/Spell.h +++ b/src/game/Spells/Spell.h @@ -253,6 +253,7 @@ class Spell void EffectSummon(SpellEffectIndex effIdx); void EffectLearnSpell(SpellEffectIndex effIdx); void EffectDispel(SpellEffectIndex effIdx); + void EffectLanguage(SpellEffectIndex effIdx); void EffectDualWield(SpellEffectIndex effIdx); void EffectPickPocket(SpellEffectIndex effIdx); void EffectAddFarsight(SpellEffectIndex effIdx); diff --git a/src/game/Spells/SpellEffects.cpp b/src/game/Spells/SpellEffects.cpp index 04350a0f1f1..d673c06b3ba 100644 --- a/src/game/Spells/SpellEffects.cpp +++ b/src/game/Spells/SpellEffects.cpp @@ -94,7 +94,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS] = &Spell::EffectLearnSpell, // 36 SPELL_EFFECT_LEARN_SPELL &Spell::EffectEmpty, // 37 SPELL_EFFECT_SPELL_DEFENSE one spell: SPELLDEFENSE (DND) &Spell::EffectDispel, // 38 SPELL_EFFECT_DISPEL - &Spell::EffectEmpty, // 39 SPELL_EFFECT_LANGUAGE misc store lang id + &Spell::EffectLanguage, // 39 SPELL_EFFECT_LANGUAGE misc store lang id &Spell::EffectDualWield, // 40 SPELL_EFFECT_DUAL_WIELD &Spell::EffectSummonWild, // 41 SPELL_EFFECT_SUMMON_WILD &Spell::EffectSummonGuardian, // 42 SPELL_EFFECT_SUMMON_GUARDIAN @@ -3305,6 +3305,15 @@ void Spell::EffectDispel(SpellEffectIndex effIdx) AddExecuteLogInfo(effIdx, ExecuteLogInfo(unitTarget->GetObjectGuid())); } +void Spell::EffectLanguage(SpellEffectIndex effIdx) +{ + Player* pPlayer = ToPlayer(unitTarget); + if (!pPlayer) + return; + + pPlayer->LearnLanguage(m_spellInfo->EffectMiscValue[effIdx]); +} + void Spell::EffectDualWield(SpellEffectIndex /*effIdx*/) { if (unitTarget && unitTarget->GetTypeId() == TYPEID_PLAYER) From 6187d4503e55e5fd6461b3a958553a33673db1cb Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 17 Oct 2023 16:16:55 +0300 Subject: [PATCH 222/426] Fix use after free with gm commands. The amazing thing is it wasn't crashing on windows, even though 'text' was a pointer inside the packet buffer. --- src/game/Chat/Chat.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/game/Chat/Chat.cpp b/src/game/Chat/Chat.cpp index fac73c645e7..eb687774121 100644 --- a/src/game/Chat/Chat.cpp +++ b/src/game/Chat/Chat.cpp @@ -1711,8 +1711,6 @@ ChatCommandSearchResult ChatHandler::FindCommand(ChatCommand* table, char const* */ void ChatHandler::ExecuteCommand(char const* text) { - std::string fullcmd = text; // original `text` can't be used. It content destroyed in command code processing. - ChatCommand* command = nullptr; ChatCommand* parentCommand = nullptr; @@ -1888,14 +1886,14 @@ bool ChatHandler::ParseCommands(char const* text) // because the chat packet handler can run asynchronously if (m_session) { - sWorld.GetMessager().AddMessage([text, accountId = m_session->GetAccountId(), sessionGuid = m_session->GetGUID()](World* world) + sWorld.GetMessager().AddMessage([txt = std::string(text), accountId = m_session->GetAccountId(), sessionGuid = m_session->GetGUID()](World* world) { if (WorldSession* session = world->FindSession(accountId)) { if (session->GetGUID() == sessionGuid) { ChatHandler handler(session); - handler.ExecuteCommand(text); + handler.ExecuteCommand(txt.c_str()); } } }); From c891e370e1380aaafaf37bfa3eff9c31c1aa924d Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 17 Oct 2023 19:33:26 +0300 Subject: [PATCH 223/426] Fix unit target variable confusion in spell code. unitTarget is a member of the spell class, it was mistaken for a local variable. --- src/game/Spells/Spell.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 77a2aa6d6ee..5ad9293eea6 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -3379,7 +3379,7 @@ void Spell::SetTargetMap(SpellEffectIndex effIndex, uint32 targetMode, UnitList& z = waterLevel; } - if (!MapManager::IsValidMapCoord(unitTarget->GetMapId(), x, y, z)) + if (!MapManager::IsValidMapCoord(pUnitTarget->GetMapId(), x, y, z)) break; pUnitTarget->GetMap()->GetLosHitPosition(srcX, srcY, srcZ, x, y, z, -0.5f); @@ -6478,11 +6478,11 @@ SpellCastResult Spell::CheckCast(bool strict) if (strict) { SpellRangeEntry const* spellRange = sSpellRangeStore.LookupEntry(m_spellInfo->rangeIndex); - Unit* unitTarget = m_targets.getUnitTarget(); - if (unitTarget && spellRange && spellRange->maxRange > 0.0f) + Unit* pUnitTarget = m_targets.getUnitTarget(); + if (pUnitTarget && spellRange && spellRange->maxRange > 0.0f) { float x, y, z; - unitTarget->GetPosition(x, y, z); + pUnitTarget->GetPosition(x, y, z); if (!m_casterUnit->IsInWater()) { From 4e93afa61350955898c7972a134051ca45620cae Mon Sep 17 00:00:00 2001 From: oowow-core <148252525+oowow-core@users.noreply.github.com> Date: Wed, 18 Oct 2023 00:37:25 +0800 Subject: [PATCH 224/426] Fix issues with some Chinese page text locales (#2232) Closes https://github.com/vmangos/core/issues/2224 --- sql/migrations/20231017230102_world.sql | 37 +++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 sql/migrations/20231017230102_world.sql diff --git a/sql/migrations/20231017230102_world.sql b/sql/migrations/20231017230102_world.sql new file mode 100644 index 00000000000..d03b2362f06 --- /dev/null +++ b/sql/migrations/20231017230102_world.sql @@ -0,0 +1,37 @@ +SET NAMES utf8; +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231017230102'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231017230102'); +-- Add your query below. + + +-- Fix issues with some Chinese page text locales. +SET NAMES utf8; +UPDATE `locales_page_text` SET `Text_loc4` = '\r\n\r\n

    军衔概述

    \r\n
    \r\n
    \r\n\r\n
    \r\n

    以下是

    \r\n

    联盟的军衔概述,

    \r\n

    同时包括部落种族

    \r\n

    的军衔信息。


    \r\n

    每一个阵营都

    \r\n

    包含两个章节。

    \r\n

    军官和士兵的军阶,

    \r\n

    按照由高到低的顺序排列。


    \r\n

    联盟万岁!

    \r\n\r\n' WHERE `locales_page_text`.`entry` = 2654; +UPDATE `locales_page_text` SET `Text_loc4` = '\r\n\r\n

    联盟军官军衔


    \r\n

    第一章

    \r\n
    \r\n

    大元帅


    \r\n
    \r\n

    元帅


    \r\n
    \r\n

    统帅


    \r\n
    \r\n

    司令


    \r\n
    \r\n

    少校


    \r\n\r\n' WHERE `locales_page_text`.`entry` = 2655; +UPDATE `locales_page_text` SET `Text_loc4` = '\r\n\r\n

    联盟军官军衔


    \r\n

    第二章

    \r\n
    \r\n

    护卫骑士


    \r\n
    \r\n

    骑士队长


    \r\n
    \r\n

    骑士中尉


    \r\n
    \r\n

    骑士


    \r\n\r\n' WHERE `locales_page_text`.`entry` = 2656; +UPDATE `locales_page_text` SET `Text_loc4` = '\r\n\r\n

    联盟士兵军衔


    \r\n
    \r\n

    士官长


    \r\n
    \r\n

    军士长


    \r\n
    \r\n

    中士


    \r\n
    \r\n

    下士


    \r\n
    \r\n

    列兵


    \r\n\r\n' WHERE `locales_page_text`.`entry` = 2657; +UPDATE `locales_page_text` SET `Text_loc4` = '\r\n\r\n

    部落军官军衔


    \r\n

    第一章

    \r\n
    \r\n

    高阶督军


    \r\n
    \r\n

    督军


    \r\n
    \r\n

    将军


    \r\n
    \r\n

    中将


    \r\n
    \r\n

    勇士


    \r\n\r\n' WHERE `locales_page_text`.`entry` = 2658; +UPDATE `locales_page_text` SET `Text_loc4` = '\r\n\r\n

    部落士兵军衔


    \r\n
    \r\n

    一等军士长


    \r\n
    \r\n

    高阶军士


    \r\n
    \r\n

    中士


    \r\n
    \r\n

    步兵


    \r\n
    \r\n

    侦察兵


    \r\n\r\n' WHERE `locales_page_text`.`entry` = 2660; +UPDATE `locales_page_text` SET `Text_loc4` = '\r\n\r\n

    军衔概述

    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Loktar Ogar!

    \r\n

    本书中列出了

    \r\n

    部落的军衔,

    \r\n

    以及弱小的联盟。


    \r\n

    首先是部落的,

    \r\n

    然后是联盟的。

    \r\n

    囊括军官和军阶列表,

    \r\n

    按等级高低排列。

    \r\n

    等级最高的排在首位,

    \r\n

    等级低的列于下位。

    \r\n\r\n' WHERE `locales_page_text`.`entry` = 2661; +UPDATE `locales_page_text` SET `Text_loc4` = '\r\n\r\n

    部落军官军衔


    \r\n

    第一章

    \r\n
    \r\n

    高阶督军


    \r\n
    \r\n

    督军


    \r\n
    \r\n

    将军


    \r\n
    \r\n

    中将


    \r\n
    \r\n

    勇士


    \r\n\r\n' WHERE `locales_page_text`.`entry` = 2662; +UPDATE `locales_page_text` SET `Text_loc4` = '\r\n\r\n

    部落军官军衔


    \r\n

    第二章

    \r\n
    \r\n

    百夫长


    \r\n
    \r\n

    军团士兵


    \r\n
    \r\n

    血卫士


    \r\n
    \r\n

    石头守卫


    \r\n\r\n' WHERE `locales_page_text`.`entry` = 2663; +UPDATE `locales_page_text` SET `Text_loc4` = '\r\n\r\n

    部落士兵军衔


    \r\n
    \r\n

    一等军士长


    \r\n
    \r\n

    高阶军士


    \r\n
    \r\n

    中士


    \r\n
    \r\n

    步兵


    \r\n
    \r\n

    侦察兵


    \r\n\r\n' WHERE `locales_page_text`.`entry` = 2664; +UPDATE `locales_page_text` SET `Text_loc4` = '\r\n\r\n

    联盟军官军衔


    \r\n

    第一章

    \r\n
    \r\n

    大元帅


    \r\n
    \r\n

    元帅


    \r\n
    \r\n

    统帅


    \r\n
    \r\n

    司令


    \r\n
    \r\n

    少校


    \r\n\r\n' WHERE `locales_page_text`.`entry` = 2665; +UPDATE `locales_page_text` SET `Text_loc4` = '\r\n\r\n

    部落军官军衔


    \r\n

    第二章

    \r\n
    \r\n

    百夫长



    \r\n
    \r\n

    军团士兵



    \r\n
    \r\n

    血卫士



    \r\n
    \r\n

    石头守卫



    \r\n\r\n' WHERE `locales_page_text`.`entry` = 2854; +UPDATE `locales_page_text` SET `Text_loc4` = '\r\n\r\n

    部落士兵军衔


    \r\n
    \r\n

    一等军士长


    \r\n
    \r\n

    高阶军士


    \r\n
    \r\n

    中士


    \r\n
    \r\n

    步兵


    \r\n
    \r\n

    侦察兵


    \r\n\r\n' WHERE `locales_page_text`.`entry` = 2855; +UPDATE `locales_page_text` SET `Text_loc4` = '\r\n\r\n

    联盟军官军衔


    \r\n

    第二章

    \r\n
    \r\n

    护卫骑士


    \r\n
    \r\n

    骑士队长


    \r\n
    \r\n

    骑士中尉


    \r\n
    \r\n

    骑士


    \r\n\r\n' WHERE `locales_page_text`.`entry` = 2856; +UPDATE `locales_page_text` SET `Text_loc4` = '\r\n\r\n

    联盟士兵军衔


    \r\n
    \r\n

    士官长


    \r\n
    \r\n

    军士长


    \r\n
    \r\n

    中士


    \r\n
    \r\n

    下士


    \r\n
    \r\n

    列兵


    \r\n\r\n' WHERE `locales_page_text`.`entry` = 2857; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 6ed13a039d154423aa0f8fa27124ac8aace0e816 Mon Sep 17 00:00:00 2001 From: Daribon Date: Tue, 17 Oct 2023 18:45:29 +0200 Subject: [PATCH 225/426] Correct waypoints for Rippa. (#2231) --- sql/migrations/20231017014137_world.sql | 251 ++++++++++++++++++++++++ 1 file changed, 251 insertions(+) create mode 100644 sql/migrations/20231017014137_world.sql diff --git a/sql/migrations/20231017014137_world.sql b/sql/migrations/20231017014137_world.sql new file mode 100644 index 00000000000..cbe0f9a033f --- /dev/null +++ b/sql/migrations/20231017014137_world.sql @@ -0,0 +1,251 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231017014137'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231017014137'); +-- Add your query below. + + +-- Pathing for Rippa Entry: 14490 +SET @NPC := 49058; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-13599.317,`position_y`=482.80338,`position_z`=-33.83112 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-13599.317,482.80338,-33.83112,100,0,0,0), +(@NPC,2,-13598.65,509.7756,-36.740017,100,0,0,0), +(@NPC,3,-13599.674,543.69104,-33.79606,100,0,0,0), +(@NPC,4,-13602.465,583.86194,-25.600332,100,0,0,0), +(@NPC,5,-13603.837,619.86993,-23.445839,100,0,0,0), +(@NPC,6,-13619.041,650.68225,-24.928144,100,0,0,0), +(@NPC,7,-13649.499,682.7406,-17.401283,100,0,0,0), +(@NPC,8,-13677.504,715.35834,-11.965721,100,0,0,0), +(@NPC,9,-13708.599,742.5452,-9.775061,100,0,0,0), +(@NPC,10,-13753.924,761.0713,-16.163416,100,0,0,0), +(@NPC,11,-13784.7,753.77466,-16.997635,100,0,0,0), +(@NPC,12,-13827.145,752.9053,-20.912271,100,0,0,0), +(@NPC,13,-13855.948,764.192,-21.384867,100,0,0,0), +(@NPC,14,-13878.53,760.578,-20.862938,100,0,0,0), +(@NPC,15,-13919.708,763.7973,-24.067316,100,0,0,0), +(@NPC,16,-13952.532,774.4817,-32.148792,100,0,0,0), +(@NPC,17,-13980.819,775.1719,-38.074554,100,0,0,0), +(@NPC,18,-14013.576,773.79694,-40.23244,100,0,0,0), +(@NPC,19,-14049.292,746.2865,-35.943634,100,0,0,0), +(@NPC,20,-14052.063,710.98,-35.44348,100,0,0,0), +(@NPC,21,-14058.994,673.77765,-37.177265,100,0,0,0), +(@NPC,22,-14076.373,645.84204,-37.07272,100,0,0,0), +(@NPC,23,-14087.294,620.3597,-34.513844,100,0,0,0), +(@NPC,24,-14090.892,588.76184,-35.400856,100,0,0,0), +(@NPC,25,-14093.914,555.2918,-35.19764,100,0,0,0), +(@NPC,26,-14103.939,587.2703,-36.871178,100,0,0,0), +(@NPC,27,-14116.841,618.95575,-35.976295,100,0,0,0), +(@NPC,28,-14143.373,624.4559,-35.94092,100,0,0,0), +(@NPC,29,-14179.699,623.78314,-38.633663,100,0,0,0), +(@NPC,30,-14217.33,627.5491,-35.691883,100,0,0,0), +(@NPC,31,-14249.558,632.3591,-35.896046,100,0,0,0), +(@NPC,32,-14283.402,622.8789,-36.51411,100,0,0,0), +(@NPC,33,-14313.984,589.3092,-34.70801,100,0,0,0), +(@NPC,34,-14342.816,553.2767,-34.08088,100,0,0,0), +(@NPC,35,-14359.443,518.0469,-35.107197,100,0,0,0), +(@NPC,36,-14377.985,486.7914,-34.823307,100,0,0,0), +(@NPC,37,-14357.149,523.2408,-35.276875,100,0,0,0), +(@NPC,38,-14341.638,552.8797,-34.03548,100,0,0,0), +(@NPC,39,-14318.343,569.3211,-36.076027,100,0,0,0), +(@NPC,40,-14312.551,613.63916,-36.90389,100,0,0,0), +(@NPC,41,-14308.883,655.3929,-38.37233,100,0,0,0), +(@NPC,42,-14316.119,681.80615,-37.134594,100,0,0,0), +(@NPC,43,-14341.623,717.2535,-38.621807,100,0,0,0), +(@NPC,44,-14352.899,752.86237,-37.92459,100,0,0,0), +(@NPC,45,-14386.985,785.2885,-38.380886,100,0,0,0), +(@NPC,46,-14421.113,789.08527,-31.454868,100,0,0,0), +(@NPC,47,-14458.736,783.7591,-33.934082,100,0,0,0), +(@NPC,48,-14487.854,782.71747,-35.19825,100,0,0,0), +(@NPC,49,-14521.602,776.6795,-31.786003,100,0,0,0), +(@NPC,50,-14551.669,774.1331,-27.57752,100,0,0,0), +(@NPC,51,-14584.122,751.0087,-25.904697,100,0,0,0), +(@NPC,52,-14621.083,718.0926,-25.867285,100,0,0,0), +(@NPC,53,-14650.986,684.4698,-25.842873,100,0,0,0), +(@NPC,54,-14675.384,656.9312,-25.842873,100,0,0,0), +(@NPC,55,-14681.88,619.86755,-34.623913,100,0,0,0), +(@NPC,56,-14711.591,599.35657,-34.62392,100,0,0,0), +(@NPC,57,-14748.567,592.0217,-34.548798,100,0,0,0), +(@NPC,58,-14771.531,605.1746,-34.623917,100,0,0,0), +(@NPC,59,-14780.375,581.26184,-31.843384,100,0,0,0), +(@NPC,60,-14788.63,557.59064,-14.196043,100,0,0,0), +(@NPC,61,-14816.486,543.4945,-13.656937,100,0,0,0), +(@NPC,62,-14817.67,513.87366,-13.493818,100,0,0,0), +(@NPC,63,-14795.509,490.2246,-14.162451,100,0,0,0), +(@NPC,64,-14772.563,449.99985,-14.162445,100,0,0,0), +(@NPC,65,-14754.174,420.29938,-24.361935,100,0,0,0), +(@NPC,66,-14770.705,401.38748,-24.50952,100,0,0,0), +(@NPC,67,-14777.873,376.03458,-23.30894,100,0,0,0), +(@NPC,68,-14790.13,351.81207,-19.158892,100,0,0,0), +(@NPC,69,-14790.029,327.94742,-19.395405,100,0,0,0), +(@NPC,70,-14786.198,304.50266,-7.146605,100,0,0,0), +(@NPC,71,-14793.323,286.2301,-7.333588,100,0,0,0), +(@NPC,72,-14820.354,281.44098,-14.32761,100,0,0,0), +(@NPC,73,-14843.558,264.41156,-10.516706,100,0,0,0), +(@NPC,74,-14835.004,223.21571,-16.173136,100,0,0,0), +(@NPC,75,-14826.306,192.78358,-19.737635,100,0,0,0), +(@NPC,76,-14819.712,148.44075,-19.847204,100,0,0,0), +(@NPC,77,-14812.014,112.47157,-23.948189,100,0,0,0), +(@NPC,78,-14789.491,88.72569,-23.235798,100,0,0,0), +(@NPC,79,-14759.708,78.04069,-19.482958,100,0,0,0), +(@NPC,80,-14737.208,72.14573,-17.465084,100,0,0,0), +(@NPC,81,-14722.087,51.1913,-5.1391315,100,0,0,0), +(@NPC,82,-14686.389,48.60265,-17.91841,100,0,0,0), +(@NPC,83,-14654.604,55.97591,-17.626701,100,0,0,0), +(@NPC,84,-14624.545,41.53776,-17.748295,100,0,0,0), +(@NPC,85,-14587.578,10.351346,-16.83552,100,0,0,0), +(@NPC,86,-14550.417,-3.382161,-13.140339,100,0,0,0), +(@NPC,87,-14521.161,-30.365234,-11.515009,100,0,0,0), +(@NPC,88,-14475.322,-36.568794,-10.081616,100,0,0,0), +(@NPC,89,-14452.453,-45.06597,-14.866688,100,0,0,0), +(@NPC,90,-14409.159,-56.859375,-13.315947,100,0,0,0), +(@NPC,91,-14377.109,-49.166885,-23.308414,100,0,0,0), +(@NPC,92,-14351.504,-56.023872,-23.838514,100,0,0,0), +(@NPC,93,-14321.692,-58.460938,-16.643755,100,0,0,0), +(@NPC,94,-14287.934,-89.20649,-16.231857,100,0,0,0), +(@NPC,95,-14271.271,-122.67036,-10.922466,100,0,0,0), +(@NPC,96,-14262.703,-155.8088,-9.423357,100,0,0,0), +(@NPC,97,-14247.952,-189.04015,-20.907944,100,0,0,0), +(@NPC,98,-14215.614,-188.88303,-16.887642,100,0,0,0), +(@NPC,99,-14175.656,-190.63498,-15.133757,100,0,0,0), +(@NPC,100,-14148.552,-217.18771,-12.524636,100,0,0,0), +(@NPC,101,-14120.337,-223.45888,-17.050901,100,0,0,0), +(@NPC,102,-14089.724,-241.44856,-15.50493,100,0,0,0), +(@NPC,103,-14052.934,-254.47461,-9.180743,100,0,0,0), +(@NPC,104,-14019.872,-258.86145,-13.216421,100,0,0,0), +(@NPC,105,-14011.616,-282.3134,-12.74716,100,0,0,0), +(@NPC,106,-13990.708,-310.5793,-13.312315,100,0,0,0), +(@NPC,107,-13956.38,-325.03516,-15.976398,100,0,0,0), +(@NPC,108,-13941.401,-350.61774,-20.351627,100,0,0,0), +(@NPC,109,-13915.872,-361.9059,-17.541744,100,0,0,0), +(@NPC,110,-13919.317,-379.33258,-18.21197,100,0,0,0), +(@NPC,111,-13911.549,-413.86978,-18.767641,100,0,0,0), +(@NPC,112,-13883.348,-422.77344,-15.203973,100,0,0,0), +(@NPC,113,-13848.938,-426.71323,-16.365189,100,0,0,0), +(@NPC,114,-13813.107,-425.1337,-17.154865,100,0,0,0), +(@NPC,115,-13848.938,-426.71323,-16.365189,100,0,0,0), +(@NPC,116,-13883.348,-422.77344,-15.203973,100,0,0,0), +(@NPC,117,-13911.549,-413.86978,-18.767641,100,0,0,0), +(@NPC,118,-13919.317,-379.33258,-18.21197,100,0,0,0), +(@NPC,119,-13915.872,-361.9059,-17.541744,100,0,0,0), +(@NPC,120,-13941.401,-350.61774,-20.351627,100,0,0,0), +(@NPC,121,-13956.38,-325.03516,-15.976398,100,0,0,0), +(@NPC,122,-13990.708,-310.5793,-13.312315,100,0,0,0), +(@NPC,123,-14011.616,-282.3134,-12.74716,100,0,0,0), +(@NPC,124,-14019.872,-258.86145,-13.216421,100,0,0,0), +(@NPC,125,-14052.934,-254.47461,-9.180743,100,0,0,0), +(@NPC,126,-14089.724,-241.44856,-15.50493,100,0,0,0), +(@NPC,127,-14120.337,-223.45888,-17.050901,100,0,0,0), +(@NPC,128,-14148.552,-217.18771,-12.524636,100,0,0,0), +(@NPC,129,-14175.656,-190.63498,-15.133757,100,0,0,0), +(@NPC,130,-14215.614,-188.88303,-16.887642,100,0,0,0), +(@NPC,131,-14247.952,-189.04015,-20.907944,100,0,0,0), +(@NPC,132,-14262.703,-155.8088,-9.423357,100,0,0,0), +(@NPC,133,-14271.271,-122.67036,-10.922466,100,0,0,0), +(@NPC,134,-14287.934,-89.20649,-16.231857,100,0,0,0), +(@NPC,135,-14321.692,-58.460938,-16.643755,100,0,0,0), +(@NPC,136,-14351.504,-56.023872,-23.838514,100,0,0,0), +(@NPC,137,-14377.109,-49.166885,-23.308414,100,0,0,0), +(@NPC,138,-14409.159,-56.859375,-13.315947,100,0,0,0), +(@NPC,139,-14452.453,-45.06597,-14.866688,100,0,0,0), +(@NPC,140,-14475.322,-36.568794,-10.081616,100,0,0,0), +(@NPC,141,-14521.161,-30.365234,-11.515009,100,0,0,0), +(@NPC,142,-14550.417,-3.382161,-13.140339,100,0,0,0), +(@NPC,143,-14587.578,10.351346,-16.83552,100,0,0,0), +(@NPC,144,-14624.545,41.53776,-17.748295,100,0,0,0), +(@NPC,145,-14654.604,55.97591,-17.626701,100,0,0,0), +(@NPC,146,-14686.389,48.60265,-17.91841,100,0,0,0), +(@NPC,147,-14722.087,51.1913,-5.1391315,100,0,0,0), +(@NPC,148,-14737.208,72.14573,-17.465084,100,0,0,0), +(@NPC,149,-14759.708,78.04069,-19.482958,100,0,0,0), +(@NPC,150,-14789.491,88.72569,-23.235798,100,0,0,0), +(@NPC,151,-14812.014,112.47157,-23.948189,100,0,0,0), +(@NPC,152,-14819.712,148.44075,-19.847204,100,0,0,0), +(@NPC,153,-14826.306,192.78358,-19.737635,100,0,0,0), +(@NPC,154,-14835.004,223.21571,-16.173136,100,0,0,0), +(@NPC,155,-14843.558,264.41156,-10.516706,100,0,0,0), +(@NPC,156,-14820.354,281.44098,-14.32761,100,0,0,0), +(@NPC,157,-14793.323,286.2301,-7.333588,100,0,0,0), +(@NPC,158,-14786.198,304.50266,-7.146605,100,0,0,0), +(@NPC,159,-14790.029,327.94742,-19.395405,100,0,0,0), +(@NPC,160,-14790.13,351.81207,-19.158892,100,0,0,0), +(@NPC,161,-14777.873,376.03458,-23.30894,100,0,0,0), +(@NPC,162,-14770.705,401.38748,-24.50952,100,0,0,0), +(@NPC,163,-14754.174,420.29938,-24.361935,100,0,0,0), +(@NPC,164,-14772.563,449.99985,-14.162445,100,0,0,0), +(@NPC,165,-14795.509,490.2246,-14.162451,100,0,0,0), +(@NPC,166,-14817.67,513.87366,-13.493818,100,0,0,0), +(@NPC,167,-14816.486,543.4945,-13.656937,100,0,0,0), +(@NPC,168,-14788.63,557.59064,-14.196043,100,0,0,0), +(@NPC,169,-14780.375,581.26184,-31.843384,100,0,0,0), +(@NPC,170,-14771.531,605.1746,-34.623917,100,0,0,0), +(@NPC,171,-14748.567,592.0217,-34.548798,100,0,0,0), +(@NPC,172,-14711.591,599.35657,-34.62392,100,0,0,0), +(@NPC,173,-14681.88,619.86755,-34.623913,100,0,0,0), +(@NPC,174,-14675.384,656.9312,-25.842873,100,0,0,0), +(@NPC,175,-14650.986,684.4698,-25.842873,100,0,0,0), +(@NPC,176,-14621.083,718.0926,-25.867285,100,0,0,0), +(@NPC,177,-14584.122,751.0087,-25.904697,100,0,0,0), +(@NPC,178,-14551.669,774.1331,-27.57752,100,0,0,0), +(@NPC,179,-14521.602,776.6795,-31.786003,100,0,0,0), +(@NPC,180,-14487.854,782.71747,-35.19825,100,0,0,0), +(@NPC,181,-14458.736,783.7591,-33.934082,100,0,0,0), +(@NPC,182,-14421.113,789.08527,-31.454868,100,0,0,0), +(@NPC,183,-14386.985,785.2885,-38.380886,100,0,0,0), +(@NPC,184,-14352.899,752.86237,-37.92459,100,0,0,0), +(@NPC,185,-14341.623,717.2535,-38.621807,100,0,0,0), +(@NPC,186,-14316.119,681.80615,-37.134594,100,0,0,0), +(@NPC,187,-14308.883,655.3929,-38.37233,100,0,0,0), +(@NPC,188,-14312.551,613.63916,-36.90389,100,0,0,0), +(@NPC,189,-14318.343,569.3211,-36.076027,100,0,0,0), +(@NPC,190,-14341.638,552.8797,-34.03548,100,0,0,0), +(@NPC,191,-14357.149,523.2408,-35.276875,100,0,0,0), +(@NPC,192,-14377.985,486.7914,-34.823307,100,0,0,0), +(@NPC,193,-14359.443,518.0469,-35.107197,100,0,0,0), +(@NPC,194,-14342.816,553.2767,-34.08088,100,0,0,0), +(@NPC,195,-14313.984,589.3092,-34.70801,100,0,0,0), +(@NPC,196,-14283.402,622.8789,-36.51411,100,0,0,0), +(@NPC,197,-14249.558,632.3591,-35.896046,100,0,0,0), +(@NPC,198,-14217.33,627.5491,-35.691883,100,0,0,0), +(@NPC,199,-14179.699,623.78314,-38.633663,100,0,0,0), +(@NPC,200,-14143.373,624.4559,-35.94092,100,0,0,0), +(@NPC,201,-14116.841,618.95575,-35.976295,100,0,0,0), +(@NPC,202,-14103.939,587.2703,-36.871178,100,0,0,0), +(@NPC,203,-14093.914,555.2918,-35.19764,100,0,0,0), +(@NPC,204,-14090.892,588.76184,-35.400856,100,0,0,0), +(@NPC,205,-14087.294,620.3597,-34.513844,100,0,0,0), +(@NPC,206,-14076.373,645.84204,-37.07272,100,0,0,0), +(@NPC,207,-14058.994,673.77765,-37.177265,100,0,0,0), +(@NPC,208,-14052.063,710.98,-35.44348,100,0,0,0), +(@NPC,209,-14049.292,746.2865,-35.943634,100,0,0,0), +(@NPC,210,-14013.576,773.79694,-40.23244,100,0,0,0), +(@NPC,211,-13980.819,775.1719,-38.074554,100,0,0,0), +(@NPC,212,-13952.532,774.4817,-32.148792,100,0,0,0), +(@NPC,213,-13919.708,763.7973,-24.067316,100,0,0,0), +(@NPC,214,-13878.53,760.578,-20.862938,100,0,0,0), +(@NPC,215,-13855.948,764.192,-21.384867,100,0,0,0), +(@NPC,216,-13827.145,752.9053,-20.912271,100,0,0,0), +(@NPC,217,-13784.7,753.77466,-16.997635,100,0,0,0), +(@NPC,218,-13753.924,761.0713,-16.163416,100,0,0,0), +(@NPC,219,-13708.599,742.5452,-9.775061,100,0,0,0), +(@NPC,220,-13677.504,715.35834,-11.965721,100,0,0,0), +(@NPC,221,-13649.499,682.7406,-17.401283,100,0,0,0), +(@NPC,222,-13619.041,650.68225,-24.928144,100,0,0,0), +(@NPC,223,-13603.837,619.86993,-23.445839,100,0,0,0), +(@NPC,224,-13602.465,583.86194,-25.600332,100,0,0,0), +(@NPC,225,-13599.674,543.69104,-33.79606,100,0,0,0), +(@NPC,226,-13598.65,509.7756,-36.740017,100,0,0,0); +-- .go xyz -13599.317 482.80338 -33.83112 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From abc6da573bb51b541f05a44f7fc315e09cf1ec18 Mon Sep 17 00:00:00 2001 From: Daribon Date: Wed, 18 Oct 2023 10:04:06 +0200 Subject: [PATCH 226/426] Correct misc waypoints and spawns. (#2233) --- sql/migrations/20231017191618_world.sql | 788 ++++++++++++++++++++++++ 1 file changed, 788 insertions(+) create mode 100644 sql/migrations/20231017191618_world.sql diff --git a/sql/migrations/20231017191618_world.sql b/sql/migrations/20231017191618_world.sql new file mode 100644 index 00000000000..4573174753c --- /dev/null +++ b/sql/migrations/20231017191618_world.sql @@ -0,0 +1,788 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231017191618'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231017191618'); +-- Add your query below. + + +-- Pathing for Meggi Peppinrocker Entry: 11754 +SET @NPC := 42312; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=6712.424,`position_y`=-4694.905,`position_z`=721.4019 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,6712.424,-4694.905,721.4019,100,0,0,0), +(@NPC,2,6721.999,-4669.791,720.9736,100,0,0,0), +(@NPC,3,6745.51,-4669.717,722.9445,100,0,0,0), +(@NPC,4,6757.705,-4671.697,723.9316,100,0,0,0), +(@NPC,5,6745.629,-4669.687,723.0085,100,0,0,0), +(@NPC,6,6721.999,-4669.791,720.9736,100,0,0,0), +(@NPC,7,6712.424,-4694.905,721.4019,100,0,0,0), +(@NPC,8,6720.713,-4657.241,720.9419,100,0,0,0), +(@NPC,9,6727.289,-4634.758,721.0771,100,0,0,0), +(@NPC,10,6726.451,-4618.407,721.0268,100,0,0,0), +(@NPC,11,6727.289,-4634.758,721.0771,100,0,0,0), +(@NPC,12,6720.713,-4657.241,720.9419,100,0,0,0); +-- .go xyz 6712.424 -4694.905 721.4019 + +-- Pathing for Gadgetzan Bruiser Entry: 9460 +SET @NPC := 23574; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-7176.78,`position_y`=-3786.48,`position_z`=8.45713, `orientation`=1.37062 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-7176.066,-3782.855,8.494802,100,0,0,0), +(@NPC,2,-7174.341,-3774.461,8.494802,100,0,0,0), +(@NPC,3,-7168.987,-3765.671,8.4948,100,0,0,0), +(@NPC,4,-7161.991,-3755.583,8.470134,100,0,0,0), +(@NPC,5,-7155.807,-3750.344,8.470134,100,0,0,0), +(@NPC,6,-7146.562,-3744.295,8.470134,100,0,0,0), +(@NPC,7,-7138.168,-3741.932,8.470134,100,0,0,0), +(@NPC,8,-7131.735,-3742.635,8.456431,100,0,0,0), +(@NPC,9,-7127.003,-3743.257,8.456431,100,0,0,0), +(@NPC,10,-7117.987,-3749.063,8.456431,100,0,0,0), +(@NPC,11,-7112.508,-3755.256,8.456431,100,0,0,0), +(@NPC,12,-7109.489,-3763.145,8.456431,100,0,0,0), +(@NPC,13,-7108.184,-3776.282,8.619409,100,0,0,0), +(@NPC,14,-7107.608,-3786.073,8.494409,100,0,0,0), +(@NPC,15,-7110.442,-3799.096,8.494409,100,0,0,0), +(@NPC,16,-7113.263,-3806.811,8.494409,100,0,0,0), +(@NPC,17,-7118.754,-3819.464,8.494409,100,0,0,0), +(@NPC,18,-7128.461,-3824.538,8.494409,100,0,0,0), +(@NPC,19,-7134.276,-3825.595,8.494802,100,0,0,0), +(@NPC,20,-7144.804,-3827.123,8.494802,100,0,0,0), +(@NPC,21,-7154.484,-3823.713,8.494802,100,0,0,0), +(@NPC,22,-7166.102,-3813.337,8.494802,100,0,0,0), +(@NPC,23,-7174.249,-3797.551,8.494802,100,0,0,0); +-- .go xyz -7176.066 -3782.855 8.494802 + +-- Pathing for Gadgetzan Bruiser Entry: 9460 +SET @NPC := 23570; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-7183.59,`position_y`=-3850.61,`position_z`=9.07167, `orientation`=2.58309 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-7183.338,-3849.927,8.807791,100,0,0,0), +(@NPC,2,-7180.19,-3840.474,8.635672,100,0,0,0), +(@NPC,3,-7176.548,-3829.155,9.119802,100,0,0,0), +(@NPC,4,-7173.867,-3823.532,9.119802,100,0,0,0), +(@NPC,5,-7158.03,-3820.096,8.494802,100,0,0,0), +(@NPC,6,-7145.749,-3824.311,8.672048,100,0,0,0), +(@NPC,7,-7135.521,-3823.348,8.494802,100,0,0,0), +(@NPC,8,-7119.781,-3825.909,8.558129,100,0,0,0), +(@NPC,9,-7108.362,-3829.184,9.558862,100,0,0,0), +(@NPC,10,-7111.663,-3837.394,10.0345,100,0,0,0), +(@NPC,11,-7117.092,-3844.873,9.42097,100,0,0,0), +(@NPC,12,-7128.118,-3853.502,9.517161,100,0,0,0), +(@NPC,13,-7131.41,-3866.42,10.48567,100,0,0,0), +(@NPC,14,-7141.612,-3870.367,9.748546,100,0,0,0), +(@NPC,15,-7159.92,-3863.409,9.166189,100,0,0,0), +(@NPC,16,-7175,-3859.084,9.02239,100,0,0,0), +(@NPC,17,-7181.881,-3857.015,9.412283,100,0,0,0); +-- .go xyz -7183.338 -3849.927 8.807791 + +-- Pathing for Gadgetzan Bruiser Entry: 9460 +SET @NPC := 23575; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-7140,`position_y`=-3814.85,`position_z`=9.17645, `orientation`=5.79449 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-7138.69,-3814.225,9.119802,100,0,0,0), +(@NPC,2,-7126.971,-3811.693,8.744409,100,0,0,0), +(@NPC,3,-7116.857,-3803.883,8.494409,100,0,0,0), +(@NPC,4,-7111.98,-3787.063,8.494409,100,0,0,0), +(@NPC,5,-7115.765,-3776.998,8.698754,100,0,0,0), +(@NPC,6,-7117.159,-3762.148,8.453013,100,0,0,0), +(@NPC,7,-7125.475,-3755.373,8.783092,100,0,0,0), +(@NPC,8,-7135.885,-3755.68,9.214274,100,0,0,0), +(@NPC,9,-7152.627,-3760.519,8.542399,100,0,0,0), +(@NPC,10,-7165.76,-3773.929,8.4948,100,0,0,0), +(@NPC,11,-7171.473,-3784.72,8.494802,100,0,0,0), +(@NPC,12,-7168.043,-3794.855,8.892018,100,0,0,0), +(@NPC,13,-7164.325,-3804.394,8.713307,100,0,0,0), +(@NPC,14,-7152.052,-3811.553,8.994802,100,0,0,0); +-- .go xyz -7138.69 -3814.225 9.119802 + +-- Pathing for Gadgetzan Bruiser Entry: 9460 +SET @NPC := 23586; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-7136.45,`position_y`=-3703.79,`position_z`=9.47267, `orientation`=5.63741 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-7137.959,-3702.868,9.208591,100,0,0,0), +(@NPC,2,-7147.056,-3701.081,9.076266,100,0,0,0), +(@NPC,3,-7158.31,-3706.74,9.511081,100,0,0,0), +(@NPC,4,-7167.938,-3719.48,9.619808,100,0,0,0), +(@NPC,5,-7178.012,-3734.715,9.016528,100,0,0,0), +(@NPC,6,-7176.58,-3761.706,8.4948,100,0,0,0), +(@NPC,7,-7168.661,-3766.066,8.4948,100,0,0,0), +(@NPC,8,-7157.015,-3755.967,8.470134,100,0,0,0), +(@NPC,9,-7146.816,-3750.354,8.470134,100,0,0,0), +(@NPC,10,-7132.403,-3746.406,8.456431,100,0,0,0), +(@NPC,11,-7106.71,-3744.646,8.456431,100,0,0,0), +(@NPC,12,-7102.137,-3737.292,8.831431,100,0,0,0), +(@NPC,13,-7105.467,-3724.7,8.846464,100,0,0,0), +(@NPC,14,-7117.679,-3717.516,8.880156,100,0,0,0), +(@NPC,15,-7125.375,-3711.695,11.59549,100,0,0,0); +-- .go xyz -7137.959 -3702.868 9.208591 + +-- Pathing for Gadgetzan Bruiser Entry: 9460 +SET @NPC := 23594; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-7198.44,`position_y`=-3778.12,`position_z`=8.4634, `orientation`=3.82227 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-7199.577,-3777.644,8.494802,100,0,0,0), +(@NPC,2,-7217.438,-3772.997,8.494802,100,0,0,0), +(@NPC,3,-7218.223,-3761.291,8.952322,100,0,0,0), +(@NPC,4,-7208.93,-3743.44,8.494802,100,0,0,0), +(@NPC,5,-7201.552,-3734.939,8.494802,100,0,0,0), +(@NPC,6,-7194.897,-3736.132,8.4948,100,0,0,0), +(@NPC,7,-7184.88,-3748.332,8.4948,100,0,0,0), +(@NPC,8,-7170.151,-3761.111,8.4948,100,0,0,0), +(@NPC,9,-7149.903,-3757.382,8.470134,100,0,0,0), +(@NPC,10,-7129.627,-3754.529,9.168345,100,0,0,0), +(@NPC,11,-7103.061,-3755.546,8.456431,100,0,0,0), +(@NPC,12,-7083.393,-3755.723,8.744067,100,0,0,0), +(@NPC,13,-7078.975,-3768.649,8.870678,100,0,0,0), +(@NPC,14,-7081.307,-3787.739,8.676342,100,0,0,0), +(@NPC,15,-7086.559,-3798.405,8.495678,100,0,0,0), +(@NPC,16,-7100.719,-3797.739,8.494409,100,0,0,0), +(@NPC,17,-7118.827,-3809.278,8.494409,100,0,0,0), +(@NPC,18,-7129.359,-3818.396,8.560082,100,0,0,0), +(@NPC,19,-7143.384,-3819.459,8.847096,100,0,0,0), +(@NPC,20,-7156.702,-3813.151,8.604177,100,0,0,0), +(@NPC,21,-7172.139,-3798.79,8.494802,100,0,0,0), +(@NPC,22,-7185.893,-3786.555,8.494802,100,0,0,0); +-- .go xyz -7199.577 -3777.644 8.494802 + +-- Pathing for Everlook Bruiser Entry: 11190 +SET @NPC := 42289; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=6712.801,`position_y`=-4640.004,`position_z`=721.4033 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,6712.801,-4640.004,721.4033,100,1000,0,0), +(@NPC,2,6718.815,-4649.531,721.1697,100,0,0,0), +(@NPC,3,6719.494,-4656.592,721.0881,100,0,0,0), +(@NPC,4,6716.95,-4663.692,720.99,100,0,0,0), +(@NPC,5,6711.768,-4667.429,721.0986,100,1000,0,0), +(@NPC,6,6716.95,-4663.692,720.99,100,0,0,0), +(@NPC,7,6719.494,-4656.592,721.0881,100,0,0,0), +(@NPC,8,6718.815,-4649.531,721.1697,100,0,0,0); +-- .go xyz 6712.801 -4640.004 721.4033 + +-- Pathing for Everlook Bruiser Entry: 11190 +SET @NPC := 42293; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=6714.022,`position_y`=-4691.308,`position_z`=721.3486 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,6714.022,-4691.308,721.3486,100,0,0,0), +(@NPC,2,6717.968,-4679.837,721.1166,100,0,0,0), +(@NPC,3,6724.618,-4671.613,721.0676,100,0,0,0), +(@NPC,4,6728.09,-4670.169,720.8073,100,0,0,0), +(@NPC,5,6735.956,-4669.475,721.4467,100,0,0,0), +(@NPC,6,6744.62,-4670.933,722.7365,100,0,0,0), +(@NPC,7,6757.797,-4670.824,723.8214,100,0,0,0), +(@NPC,8,6753.273,-4669.212,723.9066,100,0,0,0), +(@NPC,9,6740.137,-4666.286,722.3732,100,0,0,0), +(@NPC,10,6732.994,-4661.645,720.905,100,0,0,0), +(@NPC,11,6733.887,-4654.246,721.3657,100,0,0,0), +(@NPC,12,6738.181,-4643.156,721.6838,100,0,0,0), +(@NPC,13,6744.223,-4645.468,722.178,100,0,0,0), +(@NPC,14,6749.959,-4651.49,724.4252,100,0,0,0), +(@NPC,15,6750.333,-4660.228,724.7289,100,0,0,0), +(@NPC,16,6746.749,-4666.85,723.5728,100,0,0,0), +(@NPC,17,6741.206,-4667.995,722.3617,100,0,0,0), +(@NPC,18,6732.619,-4665.083,720.9668,100,0,0,0), +(@NPC,19,6725.346,-4656.443,720.865,100,0,0,0), +(@NPC,20,6723.433,-4648.296,721.115,100,0,0,0), +(@NPC,21,6725.489,-4639.336,721.24,100,0,0,0), +(@NPC,22,6725.974,-4625.182,720.91,100,0,0,0), +(@NPC,23,6725.201,-4617.709,721.2608,100,0,0,0), +(@NPC,24,6726.097,-4632.547,721.035,100,0,0,0), +(@NPC,25,6722.884,-4647.296,721.115,100,0,0,0), +(@NPC,26,6718.971,-4660.717,720.99,100,0,0,0), +(@NPC,27,6718.08,-4669.557,720.9736,100,0,0,0), +(@NPC,28,6717.741,-4679.664,721.0959,100,0,0,0); +-- .go xyz 6714.022 -4691.308 721.3486 + +-- Update Everlook Bruiser position +UPDATE `creature` SET `position_x`=6727.17,`position_y`=-4654.55,`position_z`=721.007, `orientation`=2.5573 WHERE `guid`=42290; + +-- Pathing for Lord Kazzak Entry: 12397 +SET @NPC := 156950; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-12260.24,`position_y`=-2442.24,`position_z`=3.430978 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-12260.24,-2442.24,3.430978,5.480334,0,0,0), +(@NPC,2,-12226.76,-2433.571,1.828683,100,0,0,0), +(@NPC,3,-12199.39,-2443.944,-0.7508845,100,0,0,0), +(@NPC,4,-12176.75,-2463.179,-0.6481013,100,0,0,0), +(@NPC,5,-12162.13,-2490.048,1.366774,100,0,0,0), +(@NPC,6,-12129.58,-2509.904,3.587029,100,0,0,0), +(@NPC,7,-12105.12,-2514.273,3.377312,100,0,0,0), +(@NPC,8,-12185.21,-2510.919,0.1409316,100,0,0,0), +(@NPC,9,-12202.61,-2521.488,1.035176,100,0,0,0), +(@NPC,10,-12200.35,-2529.228,1.605,100,0,0,0), +(@NPC,11,-12220.61,-2521.741,1.535176,100,0,0,0), +(@NPC,12,-12254.35,-2523.169,1.328878,100,0,0,0), +(@NPC,13,-12283.78,-2530.946,5.201876,100,0,0,0), +(@NPC,14,-12281.98,-2493.777,5.096412,100,0,0,0), +(@NPC,15,-12281.54,-2458.933,5.138525,100,0,0,0), +(@NPC,16,-12272.15,-2450.711,4.348242,100,0,0,0); +-- .go xyz -12260.24 -2442.24 3.430978 + +-- Pathing for Feathermoon Sentinel Entry: 7939 +SET @NPC := 49977; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-4492.235,`position_y`=3249.824,`position_z`=11.19775 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-4492.235,3249.824,11.19775,100,0,0,0), +(@NPC,2,-4487.403,3257.882,11.73058,100,0,0,0), +(@NPC,3,-4483.56,3266.073,11.90636,100,0,0,0), +(@NPC,4,-4481.206,3272.186,11.50963,100,0,0,0), +(@NPC,5,-4475.127,3275.971,11.25963,100,0,0,0), +(@NPC,6,-4464.258,3277.783,11.2362,100,0,0,0), +(@NPC,7,-4458.422,3276.395,11.75963,100,0,0,0), +(@NPC,8,-4444.554,3276.981,11.88463,100,0,0,0), +(@NPC,9,-4437.29,3275.923,11.88463,100,0,0,0), +(@NPC,10,-4434.73,3272.417,11.73986,100,0,0,0), +(@NPC,11,-4435.162,3259.731,11.59671,100,0,0,0), +(@NPC,12,-4435.778,3249.712,11.59671,100,0,0,0), +(@NPC,13,-4438.908,3235.844,11.73294,100,0,0,0), +(@NPC,14,-4435.328,3250.432,11.60745,100,0,0,0), +(@NPC,15,-4434.434,3263.361,11.72171,100,0,0,0), +(@NPC,16,-4434.104,3271.15,11.75963,100,0,0,0), +(@NPC,17,-4432.815,3276.464,11.69438,100,0,0,0), +(@NPC,18,-4419,3283.278,11.81938,100,0,0,0), +(@NPC,19,-4411.474,3291.167,12.19438,100,0,0,0), +(@NPC,20,-4405.729,3299.063,13.01945,100,0,0,0), +(@NPC,21,-4398.124,3303.507,13.04439,100,0,0,0), +(@NPC,22,-4392.737,3305,13.066,100,0,0,0), +(@NPC,23,-4401.931,3300.659,13.15779,100,0,0,0), +(@NPC,24,-4408.975,3294.774,12.50468,100,0,0,0), +(@NPC,25,-4418.45,3284.844,11.81938,100,0,0,0), +(@NPC,26,-4425.491,3281.187,11.81938,100,0,0,0), +(@NPC,27,-4432.89,3279.537,11.91752,100,0,0,0), +(@NPC,28,-4442.861,3277.892,11.88463,100,0,0,0), +(@NPC,29,-4451.866,3276.966,12.00963,100,0,0,0), +(@NPC,30,-4457.539,3278.462,12.00963,100,0,0,0), +(@NPC,31,-4469.577,3275.757,11.25963,100,0,0,0), +(@NPC,32,-4480.475,3269.403,11.74377,100,0,0,0), +(@NPC,33,-4485.726,3259.336,11.87414,100,0,0,0); +-- .go xyz -4492.235 3249.824 11.19775 + +-- Pathing for Scholar Runethorn Entry: 14374 +SET @NPC := 50011; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-4434.478,`position_y`=3274.137,`position_z`=11.66845 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-4434.478,3274.137,11.66845,100,0,0,0), +(@NPC,2,-4424.573,3280.727,11.69413,100,0,0,0), +(@NPC,3,-4416.88,3285.675,11.91288,100,0,0,0), +(@NPC,4,-4401.731,3275.461,12.31938,100,0,0,0), +(@NPC,5,-4384.45,3273.314,13.84571,100,0,0,0), +(@NPC,6,-4374.603,3271.167,13.65119,100,0,0,0), +(@NPC,7,-4375.006,3251.661,12.68514,100,0,0,0), +(@NPC,8,-4377.151,3233.96,12.10176,100,0,0,0), +(@NPC,9,-4389.308,3230.345,12.14654,100,0,0,0), +(@NPC,10,-4403.13,3225.249,11.7395,100,0,0,0), +(@NPC,11,-4422.025,3224.992,11.75854,100,0,0,0), +(@NPC,12,-4437.809,3234.865,11.85037,100,0,0,0), +(@NPC,13,-4435.035,3255.315,11.47171,100,0,0,0); +-- .go xyz -4434.478 3274.137 11.66845 + +-- Pathing for Elder Mesa Buzzard Entry: 2580 +SET @NPC := 11369; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-1845.108,`position_y`=-1537.111,`position_z`=65.40875 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-1845.108,-1537.111,65.40875,100,0,0,0), +(@NPC,2,-1843.599,-1521.414,60.91593,100,0,0,0), +(@NPC,3,-1842.447,-1508.195,57.16911,100,0,0,0), +(@NPC,4,-1833.756,-1502.528,62.44181,100,0,0,0), +(@NPC,5,-1827.709,-1497.279,66.00378,100,0,0,0), +(@NPC,6,-1819.846,-1487.347,68.12878,100,0,0,0), +(@NPC,7,-1823.38,-1478.947,71.59093,100,0,0,0), +(@NPC,8,-1818.173,-1473.913,67.01379,100,0,0,0), +(@NPC,9,-1808.265,-1461.171,63.07932,100,0,0,0), +(@NPC,10,-1796.005,-1455.686,67.54326,100,0,0,0), +(@NPC,11,-1786.106,-1460.192,68.13554,100,0,0,0), +(@NPC,12,-1775.654,-1462.791,68.13554,100,0,0,0), +(@NPC,13,-1767.397,-1459.255,68.13554,100,0,0,0), +(@NPC,14,-1761.548,-1454.997,68.23097,100,0,0,0), +(@NPC,15,-1756.665,-1449.461,68.23097,100,0,0,0), +(@NPC,16,-1747.367,-1452.755,67.40749,100,0,0,0), +(@NPC,17,-1742.178,-1457.133,69.03346,100,0,0,0), +(@NPC,18,-1736.242,-1458.009,73.54128,100,0,0,0), +(@NPC,19,-1727.696,-1460.599,67.59557,100,0,0,0), +(@NPC,20,-1725.897,-1469.652,65.71997,100,0,0,0), +(@NPC,21,-1720.486,-1473.564,64.82056,100,0,0,0), +(@NPC,22,-1715.711,-1471.995,61.79223,100,0,0,0), +(@NPC,23,-1725.897,-1469.652,65.71997,100,0,0,0), +(@NPC,24,-1727.696,-1460.599,67.59557,100,0,0,0), +(@NPC,25,-1736.242,-1458.009,73.54128,100,0,0,0), +(@NPC,26,-1742.178,-1457.133,69.03346,100,0,0,0), +(@NPC,27,-1747.367,-1452.755,67.40749,100,0,0,0), +(@NPC,28,-1756.665,-1449.461,68.23097,100,0,0,0), +(@NPC,29,-1761.548,-1454.997,68.23097,100,0,0,0), +(@NPC,30,-1767.397,-1459.255,68.13554,100,0,0,0), +(@NPC,31,-1775.654,-1462.791,68.13554,100,0,0,0), +(@NPC,32,-1786.106,-1460.192,68.13554,100,0,0,0), +(@NPC,33,-1796.005,-1455.686,67.54326,100,0,0,0), +(@NPC,34,-1808.265,-1461.171,63.07932,100,0,0,0), +(@NPC,35,-1818.173,-1473.913,67.01379,100,0,0,0), +(@NPC,36,-1823.38,-1478.947,71.59093,100,0,0,0), +(@NPC,37,-1819.881,-1487.244,68.00378,100,0,0,0), +(@NPC,38,-1827.714,-1497.284,65.92443,100,0,0,0), +(@NPC,39,-1833.762,-1502.533,62.37516,100,0,0,0), +(@NPC,40,-1842.447,-1508.195,57.16911,100,0,0,0), +(@NPC,41,-1843.599,-1521.414,60.91593,100,0,0,0); +-- .go xyz -1845.108 -1537.111 65.40875 + +-- Pathing for Boulderfist Lord Entry: 2571 +SET @NPC := 11658; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-1787.068,`position_y`=-1519.569,`position_z`=78.26667 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-1787.068,-1519.569,78.26667,100,0,0,0), +(@NPC,2,-1783.133,-1523.462,78.28279,100,0,0,0), +(@NPC,3,-1777.671,-1524.568,79.37039,100,0,0,0), +(@NPC,4,-1768.864,-1520.528,82.38766,100,0,0,0), +(@NPC,5,-1765.722,-1514.994,84.23361,100,0,0,0), +(@NPC,6,-1765.568,-1509.044,84.88705,100,0,0,0), +(@NPC,7,-1767.216,-1506.247,85.09273,100,0,0,0), +(@NPC,8,-1771.831,-1509.441,85.12987,100,0,0,0), +(@NPC,9,-1778.485,-1513.008,85.33758,100,0,0,0), +(@NPC,10,-1780.662,-1509.464,84.70084,100,0,0,0), +(@NPC,11,-1782.649,-1506.446,83.29977,100,0,0,0), +(@NPC,12,-1786.436,-1502.757,81.59764,100,0,0,0), +(@NPC,13,-1789.515,-1505.83,80.88887,100,0,0,0), +(@NPC,14,-1790.921,-1510.939,79.23459,100,0,0,0), +(@NPC,15,-1790.198,-1515.494,78.58383,100,0,0,0); +-- .go xyz -1787.068 -1519.569 78.26667 + +-- Pathing for Boulderfist Lord Entry: 2571 +SET @NPC := 11652; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-1773.165,`position_y`=-1516.006,`position_z`=75.08616 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-1773.165,-1516.006,75.08616,100,0,0,0), +(@NPC,2,-1770.06,-1511.038,72.20582,100,0,0,0), +(@NPC,3,-1770.966,-1507.84,70.35487,100,0,0,0), +(@NPC,4,-1772.347,-1504.272,69.59764,100,0,0,0), +(@NPC,5,-1767.672,-1504.722,69.72246,100,0,0,0), +(@NPC,6,-1765.533,-1515.222,65.90397,100,0,0,0), +(@NPC,7,-1768.77,-1518.182,64.99765,100,0,0,0), +(@NPC,8,-1772.903,-1517.783,64.99765,100,0,0,0), +(@NPC,9,-1776.978,-1514.561,64.99765,100,0,0,0), +(@NPC,10,-1777.663,-1511.805,64.99765,100,0,0,0), +(@NPC,11,-1772.903,-1517.783,64.99765,100,0,0,0), +(@NPC,12,-1768.797,-1518.206,64.99765,100,0,0,0), +(@NPC,13,-1765.533,-1515.222,65.90397,100,0,0,0), +(@NPC,14,-1765.531,-1509.426,68.00388,100,0,0,0), +(@NPC,15,-1767.616,-1504.786,69.70332,100,0,0,0), +(@NPC,16,-1769.725,-1502.373,69.59763,100,0,0,0), +(@NPC,17,-1772.347,-1504.272,69.59764,100,0,0,0), +(@NPC,18,-1770.966,-1507.84,70.35487,100,0,0,0), +(@NPC,19,-1770.06,-1511.038,72.20582,100,0,0,0); +-- 0x20516C00000282C000001200001D3507 .go xyz -1773.165 -1516.006 75.08616 + +-- Pathing for Boulderfist Shaman Entry: 2570 +SET @NPC := 11651; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-1779.104,`position_y`=-1525.453,`position_z`=90.68996 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-1779.104,-1525.453,90.68996,100,0,0,0), +(@NPC,2,-1787.832,-1522.945,90.72302,100,0,0,0), +(@NPC,3,-1792.385,-1516.236,90.74519,100,0,0,0), +(@NPC,4,-1792.107,-1508.027,90.79764,100,0,0,0), +(@NPC,5,-1787.824,-1501.817,90.69627,100,0,0,0), +(@NPC,6,-1780.531,-1496.547,90.73058,100,0,0,0), +(@NPC,7,-1772.366,-1497.809,90.71568,100,0,0,0), +(@NPC,8,-1767.031,-1500.861,90.7571,100,0,0,0), +(@NPC,9,-1765.412,-1512.501,90.68889,100,0,0,0), +(@NPC,10,-1767.458,-1519.41,90.67276,100,0,0,0), +(@NPC,11,-1773.587,-1524.809,90.69104,100,0,0,0); +-- .go xyz -1779.104 -1525.453 90.68996 + +-- Pathing for Boulderfist Shaman Entry: 2570 +SET @NPC := 11683; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-1780.002,`position_y`=-1524.046,`position_z`=64.99765 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-1780.002,-1524.046,64.99765,100,0,0,0), +(@NPC,2,-1788.88,-1518.838,68.45383,100,0,0,0), +(@NPC,3,-1789.906,-1512.857,70.42406,100,0,0,0), +(@NPC,4,-1790.338,-1509.854,71.61338,100,0,0,0), +(@NPC,5,-1788.771,-1505.967,72.39764,100,0,0,0), +(@NPC,6,-1787.159,-1503.2,72.39764,100,0,0,0), +(@NPC,7,-1784.028,-1502.155,72.39764,100,0,0,0), +(@NPC,8,-1777.255,-1514.407,75.60347,100,0,0,0), +(@NPC,9,-1774.516,-1518.338,75.45952,100,0,0,0), +(@NPC,10,-1771.719,-1523.118,75.39764,100,0,0,0), +(@NPC,11,-1777.255,-1514.407,75.60347,100,0,0,0), +(@NPC,12,-1779.24,-1510.243,75.18117,100,0,0,0), +(@NPC,13,-1780.899,-1507.463,74.39077,100,0,0,0), +(@NPC,14,-1784.028,-1502.155,72.39764,100,0,0,0), +(@NPC,15,-1787.159,-1503.2,72.39764,100,0,0,0), +(@NPC,16,-1788.771,-1505.967,72.39764,100,0,0,0), +(@NPC,17,-1790.338,-1509.854,71.61338,100,0,0,0), +(@NPC,18,-1789.906,-1512.857,70.42406,100,0,0,0), +(@NPC,19,-1788.888,-1518.792,68.47718,100,0,0,0), +(@NPC,20,-1784.59,-1522.349,66.52057,100,0,0,0); +-- .go xyz -1780.002 -1524.046 64.99765 + +-- Pathing for Beetix Ficklespragg Entry: 15189 +SET @NPC := 42916; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-6855.655,`position_y`=739.6216,`position_z`=55.05116 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-6855.655,739.6216,55.05116,100,5000,0,0), +(@NPC,2,-6852.965,733.1834,55.05116,100,2000,0,0); +-- .go xyz -6855.655 739.6216 55.05116 + +-- Update Cenarion Hold Infantry position to is_spawn +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-6758.98,`position_y`=761.723,`position_z`=87.0481, `orientation`=3.71755 WHERE `guid`=42897; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-6757.06,`position_y`=762.689,`position_z`=87.3247, `orientation`=3.49066 WHERE `guid`=60006; + +-- Pathing for Cenarion Hold Infantry Entry: 15184 +SET @NPC := 42897; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-6758.621,760.6922,87.04973,100,0,0,0), +(@NPC,2,-6766.431,753.6038,85.08977,100,0,0,0), +(@NPC,3,-6779.673,750.002,79.01744,100,0,0,0), +(@NPC,4,-6787.776,755.208,74.94444,100,0,0,0), +(@NPC,5,-6793.854,766.7786,68.64055,100,0,0,0), +(@NPC,6,-6792.49,786.3465,52.47892,100,0,0,0), +(@NPC,7,-6805.73,794.1757,51.00132,100,0,0,0), +(@NPC,8,-6822.387,816.8485,50.26434,100,0,0,0), +(@NPC,9,-6815.217,833.3524,49.71984,100,0,0,0), +(@NPC,10,-6799.795,838.4564,48.49956,100,0,0,0), +(@NPC,11,-6769.241,840.9318,42.76591,100,0,0,0), +(@NPC,12,-6764.696,849.5421,35.99612,100,0,0,0), +(@NPC,13,-6771.036,862.9793,26.40056,100,0,0,0), +(@NPC,14,-6766.45,869.8455,23.53795,100,0,0,0), +(@NPC,15,-6742.604,847.0293,15.90433,100,0,0,0), +(@NPC,16,-6766.45,869.8455,23.53795,100,0,0,0), +(@NPC,17,-6771.036,862.9793,26.40056,100,0,0,0), +(@NPC,18,-6764.696,849.5421,35.99612,100,0,0,0), +(@NPC,19,-6769.241,840.9318,42.76591,100,0,0,0), +(@NPC,20,-6799.795,838.4564,48.49956,100,0,0,0), +(@NPC,21,-6815.217,833.3524,49.71984,100,0,0,0), +(@NPC,22,-6822.387,816.8485,50.26434,100,0,0,0), +(@NPC,23,-6805.816,794.29,51.01291,100,0,0,0), +(@NPC,24,-6792.49,786.3465,52.47892,100,0,0,0), +(@NPC,25,-6793.854,766.7786,68.64055,100,0,0,0), +(@NPC,26,-6787.776,755.208,74.94444,100,0,0,0), +(@NPC,27,-6779.673,750.002,79.01744,100,0,0,0), +(@NPC,28,-6766.431,753.6038,85.08977,100,0,0,0); +-- .go xyz -6758.621 760.6922 87.04973 + +-- Lady Jaina Proudmoore should have random movement +UPDATE `creature` SET `wander_distance`=1.5,`movement_type`=1 WHERE `guid`=7895; + +-- Vincent Hyal should not have any equipment in vanilla +DELETE FROM `creature_equip_template` WHERE `entry`=5082 AND `item1`=2705 AND `item2`=0 AND `item3`=0; +UPDATE `creature_template` SET `equipment_id`=0 WHERE `entry`=5082; + +-- Pathing for Guard Clarke Entry: 934 +SET @NPC := 10088; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-9266.45,`position_y`=-2182.234,`position_z`=64.1563 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-9266.45,-2182.234,64.1563,100,0,0,0), +(@NPC,2,-9268.26,-2200.005,64.1563,100,0,0,0), +(@NPC,3,-9269.661,-2222.433,64.1563,100,0,0,0), +(@NPC,4,-9270.646,-2245.761,64.04616,100,0,0,0), +(@NPC,5,-9271.06,-2266.026,66.2466,100,0,0,0), +(@NPC,6,-9275.419,-2273.584,67.4109,100,0,0,0), +(@NPC,7,-9281.135,-2260.52,65.97218,100,0,0,0), +(@NPC,8,-9283.647,-2243.695,63.57106,100,0,0,0), +(@NPC,9,-9284.114,-2226.769,63.39107,100,0,0,0), +(@NPC,10,-9285.208,-2216.076,63.25996,100,0,0,0), +(@NPC,11,-9297.224,-2212.776,61.95629,100,0,0,0), +(@NPC,12,-9311.435,-2210.67,61.95629,100,0,0,0), +(@NPC,13,-9322.396,-2210.031,61.9563,100,0,0,0), +(@NPC,14,-9335.028,-2207.953,61.95629,100,0,0,0), +(@NPC,15,-9344.355,-2206.349,61.95629,100,0,0,0), +(@NPC,16,-9335.028,-2207.953,61.95629,100,0,0,0), +(@NPC,17,-9322.396,-2210.031,61.9563,100,0,0,0), +(@NPC,18,-9311.435,-2210.67,61.95629,100,0,0,0), +(@NPC,19,-9297.224,-2212.776,61.95629,100,0,0,0), +(@NPC,20,-9285.208,-2216.076,63.25996,100,0,0,0), +(@NPC,21,-9284.114,-2226.769,63.39107,100,0,0,0), +(@NPC,22,-9283.647,-2243.695,63.57106,100,0,0,0), +(@NPC,23,-9281.135,-2260.52,65.97218,100,0,0,0), +(@NPC,24,-9275.419,-2273.584,67.4109,100,0,0,0), +(@NPC,25,-9271.06,-2266.026,66.2466,100,0,0,0), +(@NPC,26,-9270.646,-2245.761,64.04616,100,0,0,0), +(@NPC,27,-9269.661,-2222.433,64.1563,100,0,0,0), +(@NPC,28,-9268.26,-2200.005,64.1563,100,0,0,0); +-- .go xyz -9266.45 -2182.234 64.1563 + +-- Delete prespawned Lakeshire Guard +DELETE FROM `creature` WHERE `guid`=31839; + +-- Pathing for Southshore Guard Entry: 2386 +SET @NPC := 15323; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-680.8098,`position_y`=-422.5727,`position_z`=66.93989 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-680.8098,-422.5727,66.93989,100,0,0,0), +(@NPC,2,-682.9655,-427.8931,67.04997,100,0,0,0), +(@NPC,3,-680.9497,-431.634,66.95007,100,0,0,0), +(@NPC,4,-676.5903,-434.4274,66.93056,100,0,0,0), +(@NPC,5,-672.2703,-434.1398,66.99996,100,0,0,0), +(@NPC,6,-670.167,-432.3922,66.93301,100,0,0,0), +(@NPC,7,-667.9529,-428.7198,67.00827,100,0,0,0), +(@NPC,8,-667.6899,-424.5533,67.00462,100,0,0,0), +(@NPC,9,-669.7689,-422.3329,66.8884,100,0,0,0), +(@NPC,10,-672.7508,-420.1314,66.97158,100,0,0,0), +(@NPC,11,-677.3453,-420.2057,66.99928,100,0,0,0); +-- .go xyz -680.8098 -422.5727 66.93989 + +-- Pathing for Southshore Guard Entry: 2386 +SET @NPC := 15928; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-797.3588,`position_y`=-525.4022,`position_z`=17.23382 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-797.3588,-525.4022,17.23382,100,0,0,0), +(@NPC,2,-808.3094,-528.867,15.45718,100,0,0,0), +(@NPC,3,-830.2421,-521.8862,12.47403,100,0,0,0), +(@NPC,4,-843.0829,-527.0458,11.30999,100,0,0,0), +(@NPC,5,-866.6998,-538.3126,8.527973,100,0,0,0), +(@NPC,6,-876.2786,-542.1104,7.753315,100,0,0,0), +(@NPC,7,-890.7396,-540.6976,6.96938,100,0,0,0), +(@NPC,8,-876.2786,-542.1104,7.753315,100,0,0,0), +(@NPC,9,-866.6998,-538.3126,8.527973,100,0,0,0), +(@NPC,10,-843.0829,-527.0458,11.30999,100,0,0,0), +(@NPC,11,-830.2421,-521.8862,12.47403,100,0,0,0), +(@NPC,12,-808.3094,-528.867,15.45718,100,0,0,0); +-- .go xyz -797.3588 -525.4022 17.23382 + +-- Pathing for Southshore Guard Entry: 2386 +SET @NPC := 15672; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-663.7242,`position_y`=-411.809,`position_z`=31.61638 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-663.7242,-411.809,31.61638,100,0,0,0), +(@NPC,2,-671.3255,-408.9535,31.69665,100,0,0,0), +(@NPC,3,-682.3085,-407.823,31.69808,100,0,0,0), +(@NPC,4,-688.3499,-413.3312,31.64048,100,0,0,0), +(@NPC,5,-692.722,-418.8364,31.71779,100,0,0,0), +(@NPC,6,-694.8457,-425.3675,31.69657,100,0,0,0), +(@NPC,7,-695.1766,-431.1532,31.69657,100,0,0,0), +(@NPC,8,-690.6848,-438.8092,31.69657,100,0,0,0), +(@NPC,9,-683.988,-444.3011,31.5941,100,0,0,0), +(@NPC,10,-673.6478,-446.6058,31.69658,100,0,0,0), +(@NPC,11,-664.2532,-443.7435,31.63104,100,0,0,0), +(@NPC,12,-657.4524,-434.3368,31.69657,100,0,0,0), +(@NPC,13,-656.3378,-424.8232,31.6325,100,0,0,0), +(@NPC,14,-660.5198,-416.8098,31.69658,100,0,0,0); +-- .go xyz -663.7242 -411.809 31.61638 + +-- Delete custom path for Southshore Guard and set random movement +DELETE FROM `creature_movement` WHERE `id`=15668; +UPDATE `creature` SET `wander_distance`=3,`movement_type`=1 WHERE `guid`=15668; + +-- Correct position of Southshore Guard +UPDATE `creature` SET `position_x`=-869.167, `position_y`=-513.7, `position_z`=11.6632, `orientation`=4.76475 WHERE `guid`=15327; + +-- Correct position of Tarren Mill Deathguard +UPDATE `creature` SET `position_x`=1.27648, `position_y`=-920.911, `position_z`=56.8078, `orientation`=0.366519 WHERE `guid`=15537; + +-- Mountainer Angst should have random movement +UPDATE `creature` SET `wander_distance`=5, `movement_type`=1 WHERE `guid`=8242; + +-- Pathing for Southshore Guard Entry: 2386 +SET @NPC := 16387; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-838.3504,`position_y`=-685.415,`position_z`=8.660884 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-838.3504,-685.415,8.660884,100,0,0,0), +(@NPC,2,-826.8138,-689.3942,8.764832,100,0,0,0), +(@NPC,3,-814.6146,-689.7004,7.719421,100,0,0,0), +(@NPC,4,-802.3196,-688.4636,7.7724,100,0,0,0), +(@NPC,5,-792.9668,-686.6743,9.574158,100,0,0,0), +(@NPC,6,-779.313,-685.7726,10.1142,100,0,0,0), +(@NPC,7,-762.2469,-688.8851,10.8293,100,0,0,0), +(@NPC,8,-748.2556,-684.8719,11.89351,100,0,0,0), +(@NPC,9,-762.2469,-688.8851,10.8293,100,0,0,0), +(@NPC,10,-779.313,-685.7726,10.1142,100,0,0,0), +(@NPC,11,-792.9668,-686.6743,9.574158,100,0,0,0), +(@NPC,12,-802.3196,-688.4636,7.7724,100,0,0,0), +(@NPC,13,-814.6146,-689.7004,7.719421,100,0,0,0), +(@NPC,14,-826.8138,-689.3942,8.764832,100,0,0,0); +-- .go xyz -838.3504 -685.415 8.660884 + +-- Pathing for Menethil Sentry Entry: 1434 +SET @NPC := 9553; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-3702.036,`position_y`=-814.3842,`position_z`=10.33128 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-3702.036,-814.3842,10.33128,100,0,0,0), +(@NPC,2,-3678.112,-827.6763,9.913949,100,0,0,0), +(@NPC,3,-3656.101,-841.0471,9.926273,100,0,0,0), +(@NPC,4,-3634.194,-850.5345,10.0799,100,0,0,0), +(@NPC,5,-3613.517,-860.9927,12.50108,100,0,0,0), +(@NPC,6,-3597.684,-868.6395,13.05111,100,0,0,0), +(@NPC,7,-3577.651,-878.9908,12.96002,100,0,0,0), +(@NPC,8,-3558.783,-888.7969,11.9978,100,0,0,0), +(@NPC,9,-3536.671,-899.8129,8.931274,100,0,0,0), +(@NPC,10,-3558.783,-888.7969,11.9978,100,0,0,0), +(@NPC,11,-3577.651,-878.9908,12.96002,100,0,0,0), +(@NPC,12,-3597.684,-868.6395,13.05111,100,0,0,0), +(@NPC,13,-3613.517,-860.9927,12.50108,100,0,0,0), +(@NPC,14,-3634.194,-850.5345,10.0799,100,0,0,0), +(@NPC,15,-3656.101,-841.0471,9.926273,100,0,0,0), +(@NPC,16,-3678.112,-827.6763,9.913949,100,0,0,0); +-- .go xyz -3702.036 -814.3842 10.33128 + +-- Pathing for Menethil Sentry Entry: 1434 +SET @NPC := 9516; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-3725.996,`position_y`=-827.8249,`position_z`=11.68747 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-3725.996,-827.8249,11.68747,100,0,0,0), +(@NPC,2,-3711.971,-808.1677,10.17311,100,0,0,0), +(@NPC,3,-3703.448,-786.9999,11.67935,100,0,0,0), +(@NPC,4,-3715.001,-780.3721,11.64425,100,0,0,0), +(@NPC,5,-3726.325,-803.9718,11.53127,100,0,0,0), +(@NPC,6,-3738.466,-821.5736,11.6555,100,0,0,0); +-- .go xyz -3725.996 -827.8249 11.68747 + +-- Pathing for Menethil Sentry Entry: 1434 +SET @NPC := 9451; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-3857.57,`position_y`=-851.9611,`position_z`=6.655662 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-3857.57,-851.9611,6.655662,100,0,0,0), +(@NPC,2,-3852.601,-872.1973,7.949479,100,0,0,0), +(@NPC,3,-3838.928,-890.0887,6.677262,100,0,0,0), +(@NPC,4,-3825.319,-905.2488,6.728694,100,0,0,0), +(@NPC,5,-3808.665,-917.5515,5.773372,100,0,0,0), +(@NPC,6,-3793.158,-921.8026,6.754763,100,0,0,0), +(@NPC,7,-3808.665,-917.5515,5.773372,100,0,0,0), +(@NPC,8,-3825.319,-905.2488,6.728694,100,0,0,0), +(@NPC,9,-3838.928,-890.0887,6.677262,100,0,0,0), +(@NPC,10,-3852.601,-872.1973,7.949479,100,0,0,0); +-- 0x205160000001668000020500039E5F5A .go xyz -3857.57 -851.9611 6.655662 + +-- Pathing for Menethil Sentry Entry: 1434 +SET @NPC := 9514; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-3808.185,`position_y`=-765.5248,`position_z`=8.131272 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-3808.185,-765.5248,8.131272,100,0,0,0), +(@NPC,2,-3822.523,-767.0237,8.218322,100,0,0,0), +(@NPC,3,-3838.22,-778.4105,4.448983,100,0,0,0), +(@NPC,4,-3833.177,-808.2225,9.69239,100,0,0,0), +(@NPC,5,-3856.571,-822.2552,8.652298,100,0,0,0), +(@NPC,6,-3856.179,-833.0389,9.192093,100,0,0,0), +(@NPC,7,-3856.571,-822.2552,8.652298,100,0,0,0), +(@NPC,8,-3833.177,-808.2225,9.69239,100,0,0,0), +(@NPC,9,-3838.22,-778.4105,4.448983,100,0,0,0), +(@NPC,10,-3822.523,-767.0237,8.218322,100,0,0,0); +-- .go xyz -3808.185 -765.5248 8.131272 + +-- Pathing for Menethil Sentry Entry: 1434 +SET @NPC := 9557; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-3742.756,`position_y`=-798.3773,`position_z`=11.53127 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-3742.756,-798.3773,11.53127,100,0,0,0), +(@NPC,2,-3737.791,-787.0203,15.53127,100,0,0,0), +(@NPC,3,-3722.656,-794.8729,20.33127,100,0,0,0), +(@NPC,4,-3730.861,-808.1197,20.33127,100,0,0,0), +(@NPC,5,-3722.656,-794.8729,20.33127,100,0,0,0), +(@NPC,6,-3737.777,-786.9871,15.53127,100,0,0,0); +-- .go xyz -3742.756 -798.3773 11.53127 + +-- Pathing for Menethil Sentry Entry: 1434 +SET @NPC := 9696; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-3717.036,`position_y`=-732.6176,`position_z`=11.13578 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-3717.036,-732.6176,11.13578,100,0,0,0), +(@NPC,2,-3718.424,-726.033,10.69022,100,0,0,0), +(@NPC,3,-3710.911,-719.7656,9.716347,100,0,0,0), +(@NPC,4,-3706.72,-711.1649,8.714394,100,0,0,0), +(@NPC,5,-3686.314,-694.7046,5.121346,100,0,0,0), +(@NPC,6,-3706.72,-711.1649,8.714394,100,0,0,0), +(@NPC,7,-3710.911,-719.7656,9.716347,100,0,0,0), +(@NPC,8,-3718.424,-726.033,10.69022,100,0,0,0); +-- .go xyz -3717.036 -732.6176 11.13578 + +-- Pathing for Stromgarde Defender Entry: 2584 +SET @NPC := 12007; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-1549.325,`position_y`=-1901.269,`position_z`=67.82639 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-1549.325,-1901.269,67.82639,100,0,0,0), +(@NPC,2,-1549.696,-1894.195,67.73683,100,0,0,0), +(@NPC,3,-1549.717,-1887.33,67.74586,100,0,0,0), +(@NPC,4,-1549.705,-1878.791,67.7361,100,0,0,0), +(@NPC,5,-1549.157,-1871.896,67.49586,100,0,0,0), +(@NPC,6,-1548.986,-1865.27,67.42509,100,0,0,0), +(@NPC,7,-1544.397,-1859.491,67.10917,100,0,0,0), +(@NPC,8,-1537.813,-1856.054,67.50907,100,0,0,0), +(@NPC,9,-1529.115,-1852.296,67.62733,100,0,0,0), +(@NPC,10,-1528.478,-1844.241,67.87733,100,0,0,0), +(@NPC,11,-1528.312,-1836.913,67.91737,100,0,0,0), +(@NPC,12,-1528.36,-1830.106,68.25278,100,0,0,0), +(@NPC,13,-1528.312,-1836.913,67.91737,100,0,0,0), +(@NPC,14,-1528.478,-1844.241,67.87733,100,0,0,0), +(@NPC,15,-1529.115,-1852.296,67.62733,100,0,0,0), +(@NPC,16,-1537.813,-1856.054,67.50907,100,0,0,0), +(@NPC,17,-1544.397,-1859.491,67.10917,100,0,0,0), +(@NPC,18,-1548.986,-1865.27,67.42509,100,0,0,0), +(@NPC,19,-1549.157,-1871.896,67.49586,100,0,0,0), +(@NPC,20,-1549.705,-1878.791,67.7361,100,0,0,0), +(@NPC,21,-1549.717,-1887.33,67.74586,100,0,0,0), +(@NPC,22,-1549.696,-1894.195,67.73683,100,0,0,0); +-- .go xyz -1549.325 -1901.269 67.82639 + +-- Add random movement to Stromgrade Vindicator +UPDATE `creature` SET `wander_distance`=3, `movement_type`=1 WHERE `guid`=12014; +UPDATE `creature` SET `wander_distance`=3, `movement_type`=1 WHERE `guid`=14611; +UPDATE `creature` SET `wander_distance`=3, `movement_type`=1 WHERE `guid`=14618; +UPDATE `creature` SET `wander_distance`=3, `movement_type`=1 WHERE `guid`=12008; + +-- Add random movement to Prince Galen Trollbane +UPDATE `creature` SET `wander_distance`=2, `movement_type`=1 WHERE `guid`=12013; + +-- Delete custom Stromgarde Troll Hunter spawn +DELETE FROM `creature_movement` WHERE `id`=14607; +DELETE FROM `creature` WHERE `guid`=14607; + +-- Add and correct random movement for Stromgarde Troll Hunter +UPDATE `creature` SET `wander_distance`=3, `movement_type`=1 WHERE `guid`=14608; +UPDATE `creature` SET `wander_distance`=3, `movement_type`=1 WHERE `guid`=14610; +UPDATE `creature` SET `wander_distance`=3, `movement_type`=1 WHERE `guid`=14614; +UPDATE `creature` SET `wander_distance`=3, `movement_type`=1 WHERE `guid`=14617; +UPDATE `creature` SET `wander_distance`=3, `movement_type`=1 WHERE `guid`=14620; +UPDATE `creature` SET `wander_distance`=3, `movement_type`=1 WHERE `guid`=14623; +UPDATE `creature` SET `wander_distance`=3, `movement_type`=1 WHERE `guid`=11537; +UPDATE `creature` SET `wander_distance`=3, `movement_type`=1 WHERE `guid`=14757; +UPDATE `creature` SET `wander_distance`=3, `movement_type`=1 WHERE `guid`=14622; +UPDATE `creature` SET `wander_distance`=3, `movement_type`=1 WHERE `guid`=14612; + +-- Add random movement to Caretakers +UPDATE `creature` SET `wander_distance`=2, `movement_type`=1 WHERE `guid`=11531; +UPDATE `creature` SET `wander_distance`=2, `movement_type`=1 WHERE `guid`=11532; +UPDATE `creature` SET `wander_distance`=2, `movement_type`=1 WHERE `guid`=11527; + +-- Add missing campfire to Bear's Head, Azshara +INSERT INTO `gameobject` VALUES (21105, 88496, 1, 3962.28, -5029.25, 137.339, 3.14159, 0, 0, 1, 0, 180, 180, 100, 1, 0, 0, 0, 10); + +-- Table `creature` have creature (GUID: 40486 Entry: 10083) with `MovementType`=0 (idle) have `wander_distance`<>0, set to 0. +-- Table `creature` have creature (GUID: 40483 Entry: 10083) with `MovementType`=0 (idle) have `wander_distance`<>0, set to 0. +UPDATE `creature` SET `movement_type`=1 WHERE `guid` IN (40486, 40483); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From e1ac6740bb9716769a2fb5fc34a36d0bde37627c Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 20 Oct 2023 11:13:55 +0300 Subject: [PATCH 227/426] Correct damage school of creatures. --- sql/migrations/20231020080914_world.sql | 58 +++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 sql/migrations/20231020080914_world.sql diff --git a/sql/migrations/20231020080914_world.sql b/sql/migrations/20231020080914_world.sql new file mode 100644 index 00000000000..6fa3ba8b33b --- /dev/null +++ b/sql/migrations/20231020080914_world.sql @@ -0,0 +1,58 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231020080914'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231020080914'); +-- Add your query below. + + +-- Correct damage school of creatures. +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=9377; -- Swirling Vortex should do Physical damage, not Nature +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=4526; -- Wind Howler should do Physical damage, not Nature +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=11577; -- Whirlwind Stormwalker should do Physical damage, not Nature +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=11576; -- Whirlwind Ripper should do Physical damage, not Nature +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=8667; -- Gusting Vortex should do Physical damage, not Nature +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=6492; -- Rift Spawn should do Physical damage, not Arcane +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=11578; -- Whirlwind Shredder should do Physical damage, not Nature +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=9376; -- Blazerunner should do Physical damage, not Fire +UPDATE `creature_template` SET `damage_school`=2 WHERE `entry`=9436; -- Spawn of Bael'Gar should do Fire damage, not Physical +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=8908; -- Molten War Golem should do Physical damage, not Fire +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=6550; -- Mana Surge should do Physical damage, not Arcane +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=8521; -- Blighted Horror should do Physical damage, not Frost +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=13279; -- Discordant Surge should do Physical damage, not Frost +UPDATE `creature_template` SET `damage_school`=4 WHERE `entry`=10387; -- Vengeful Phantom should do Frost damage, not Physical +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=1842; -- Highlord Taelan Fordring should do Physical damage, not Holy +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=10394; -- Black Guard Sentry should do Physical damage, not Shadow +UPDATE `creature_template` SET `damage_school`=5 WHERE `entry`=10436; -- Baroness Anastari should do Shadow damage, not Physical +UPDATE `creature_template` SET `damage_school`=6 WHERE `entry`=14400; -- Arcane Feedback should do Arcane damage, not Nature +UPDATE `creature_template` SET `damage_school`=6 WHERE `entry`=14399; -- Arcane Torrent should do Arcane damage, not Nature +UPDATE `creature_template` SET `damage_school`=5 WHERE `entry`=8539; -- Eyeless Watcher should do Shadow damage, not Physical +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=8520; -- Plague Ravager should do Physical damage, not Frost +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=7132; -- Toxic Horror should do Physical damage, not Frost +UPDATE `creature_template` SET `damage_school`=5 WHERE `entry`=5676; -- Summoned Voidwalker should do Shadow damage, not Physical +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=8522; -- Plague Monstrosity should do Physical damage, not Frost +UPDATE `creature_template` SET `damage_school`=3 WHERE `entry`=15212; -- Hoary Templar should do Nature damage, not Physical +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=17003; -- Cinder Elemental should do Physical damage, not Fire +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=14269; -- Seeker Aqualon should do Physical damage, not Frost +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=3917; -- Befouled Water Elemental should do Physical damage, not Frost +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=12876; -- Baron Aquanis should do Physical damage, not Frost +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=8519; -- Blighted Surge should do Physical damage, not Frost +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=9397; -- Living Storm should do Physical damage, not Nature +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=6220; -- Irradiated Horror should do Physical damage, not Frost +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=7079; -- Viscous Fallout should do Physical damage, not Frost +UPDATE `creature_template` SET `damage_school`=2 WHERE `entry`=4785; -- Illusionary Nightmare should do Fire damage, not Physical +UPDATE `creature_template` SET `damage_school`=5 WHERE `entry`=703; -- Lieutenant Fangore should do Shadow damage, not Physical +UPDATE `creature_template` SET `damage_school`=0 WHERE `entry`=2794; -- Summoned Guardian should do Physical damage, not Frost +UPDATE `creature_template` SET `damage_school`=2 WHERE `entry`=14467; -- Kroshius should do Fire damage, not Physical +UPDATE `creature_template` SET `damage_school`=2 WHERE `entry`=3736; -- Darkslayer Mordenthal should do Fire damage, not Physical + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 256b1e3ab3f30e0283b338cee364123c0d582298 Mon Sep 17 00:00:00 2001 From: TuriansNotBad <54774532+TuriansNotBad@users.noreply.github.com> Date: Fri, 20 Oct 2023 15:52:58 +0500 Subject: [PATCH 228/426] Druid's Rip and Ferocious Bite did not scale with AP before 1.2 (#2238) --- src/game/Spells/SpellAuras.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index 723e84821bc..e73171c7b53 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -4532,6 +4532,7 @@ float Aura::CalculateDotDamage() const { case SPELLFAMILY_DRUID: { +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_11_2 // Rip if (spellProto->IsFitToFamilyMask()) { @@ -4544,6 +4545,7 @@ float Aura::CalculateDotDamage() const damage += caster->GetTotalAttackPowerValue(BASE_ATTACK) * cp / 100; } } +#endif break; } case SPELLFAMILY_ROGUE: From 284d8380956921eb68a46b8b7a858605be789a59 Mon Sep 17 00:00:00 2001 From: TuriansNotBad <54774532+TuriansNotBad@users.noreply.github.com> Date: Fri, 20 Oct 2023 15:55:21 +0500 Subject: [PATCH 229/426] Fix affect mask for Improved Instant Poison before 1.12 (#2234) --- sql/migrations/20231018192830_world.sql | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 sql/migrations/20231018192830_world.sql diff --git a/sql/migrations/20231018192830_world.sql b/sql/migrations/20231018192830_world.sql new file mode 100644 index 00000000000..df517330dc3 --- /dev/null +++ b/sql/migrations/20231018192830_world.sql @@ -0,0 +1,22 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231018192830'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231018192830'); +-- Add your query below. + +UPDATE `spell_affect` SET `build_min`='5875' WHERE `entry`=14113 AND `effectId`=0; +UPDATE `spell_affect` SET `build_min`='5875' WHERE `entry`=14114 AND `effectId`=0; +UPDATE `spell_affect` SET `build_min`='5875' WHERE `entry`=14115 AND `effectId`=0; +UPDATE `spell_affect` SET `build_min`='5875' WHERE `entry`=14116 AND `effectId`=0; +UPDATE `spell_affect` SET `build_min`='5875' WHERE `entry`=14117 AND `effectId`=0; + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 6c70671cb8c0b84de786c9b4c6c372dcd589bd16 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 21 Oct 2023 10:15:57 +0300 Subject: [PATCH 230/426] Move max instances per hour limit to config option. Closes https://github.com/vmangos/core/issues/2235 --- src/game/Objects/Player.cpp | 2 +- src/game/World.cpp | 1 + src/game/World.h | 1 + src/mangosd/mangosd.conf.dist.in | 4 ++++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index a303efe3dcf..deb0a88e8b4 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -17483,7 +17483,7 @@ void Player::SendResetInstanceFailed(uint32 reason, uint32 MapId) const /** Implementation of hourly maximum instances per account */ bool Player::CheckInstanceCount(uint32 instanceId) const { - return IsGameMaster() || sAccountMgr.CheckInstanceCount(GetSession()->GetAccountId(), instanceId, MAX_INSTANCE_PER_ACCOUNT_PER_HOUR); + return IsGameMaster() || sAccountMgr.CheckInstanceCount(GetSession()->GetAccountId(), instanceId, sWorld.getConfig(CONFIG_UINT32_INSTANCE_PER_HOUR_LIMIT)); } void Player::AddInstanceEnterTime(uint32 instanceId, time_t enterTime) const diff --git a/src/game/World.cpp b/src/game/World.cpp index 213c72f37d3..c272a448f3a 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -643,6 +643,7 @@ void World::LoadConfigSettings(bool reload) setConfig(CONFIG_BOOL_INSTANCE_IGNORE_RAID, "Instance.IgnoreRaid", false); setConfig(CONFIG_UINT32_INSTANCE_RESET_TIME_HOUR, "Instance.ResetTimeHour", 4); setConfig(CONFIG_UINT32_INSTANCE_UNLOAD_DELAY, "Instance.UnloadDelay", 30 * MINUTE * IN_MILLISECONDS); + setConfig(CONFIG_UINT32_INSTANCE_PER_HOUR_LIMIT, "Instance.PerHourLimit", MAX_INSTANCE_PER_ACCOUNT_PER_HOUR); setConfig(CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL, "MaxPrimaryTradeSkill", 2); setConfigMinMax(CONFIG_UINT32_MIN_PETITION_SIGNS, "MinPetitionSigns", 9, 0, 9); diff --git a/src/game/World.h b/src/game/World.h index 8579d919fd6..95e96a2d77d 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -196,6 +196,7 @@ enum eConfigUInt32Values CONFIG_UINT32_MIN_HONOR_KILLS, CONFIG_UINT32_INSTANCE_RESET_TIME_HOUR, CONFIG_UINT32_INSTANCE_UNLOAD_DELAY, + CONFIG_UINT32_INSTANCE_PER_HOUR_LIMIT, CONFIG_UINT32_MAX_SPELL_CASTS_IN_CHAIN, CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL, CONFIG_UINT32_MIN_PETITION_SIGNS, diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index eebbf9536a0..e8bb182cc7b 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -908,6 +908,10 @@ PerformanceLog.SlowPacketBroadcast = 0 # Default: 1800000 (miliseconds, i.e 30 minutes) # 0 (instance maps are kept in memory until they are reset) # +# Instance.PerHourLimit +# How many instances players can enter per hour per account. +# Default: 5 +# # Item.InstantSaveQuality # Save character inventory instantly on receiving item of this quality or higher. # Default: 6 - Artifact From 05b3258484226bc54044ec5387acad2cb90f15ab Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 21 Oct 2023 10:16:43 +0300 Subject: [PATCH 231/426] Forgot to add it to config. --- src/mangosd/mangosd.conf.dist.in | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index e8bb182cc7b..9e399830859 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -1089,6 +1089,7 @@ Instance.IgnoreLevel = 0 Instance.IgnoreRaid = 0 Instance.ResetTimeHour = 4 Instance.UnloadDelay = 1800000 +Instance.PerHourLimit = 5 Item.InstantSaveQuality = 6 Item.PreventDataMining = 1 Quests.LowLevelHideDiff = 4 From 394019df113ed0e5854e30eacdc1d4aa5e495060 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 21 Oct 2023 12:29:26 +0300 Subject: [PATCH 232/426] Allow bots to equip PvP items and show visual ranks. --- src/game/PlayerBots/CombatBotBaseAI.cpp | 71 ++++++++++++++++++++++++- src/game/PlayerBots/CombatBotBaseAI.h | 3 ++ 2 files changed, 72 insertions(+), 2 deletions(-) diff --git a/src/game/PlayerBots/CombatBotBaseAI.cpp b/src/game/PlayerBots/CombatBotBaseAI.cpp index bd89758bf23..d30170c83e3 100644 --- a/src/game/PlayerBots/CombatBotBaseAI.cpp +++ b/src/game/PlayerBots/CombatBotBaseAI.cpp @@ -2701,6 +2701,9 @@ void CombatBotBaseAI::EquipRandomGearInEmptySlots() { LearnArmorProficiencies(); + bool const onlyPvE = urand(0, 1) != 0; + uint8 const honorRank = onlyPvE ? 0 : urand(5, 18); + std::map> itemsPerSlot; for (auto const& itr : sObjectMgr.GetItemPrototypeMap()) { @@ -2745,7 +2748,10 @@ void CombatBotBaseAI::EquipRandomGearInEmptySlots() if ((pProto->ItemLevel + sWorld.getConfig(CONFIG_UINT32_PARTY_BOT_RANDOM_GEAR_LEVEL_DIFFERENCE)) < me->GetLevel()) continue; - if (me->CanUseItem(pProto) != EQUIP_ERR_OK) + if (me->CanUseItem(pProto, onlyPvE) != EQUIP_ERR_OK) + continue; + + if (pProto->RequiredHonorRank > honorRank) continue; if (pProto->RequiredReputationFaction && uint32(me->GetReputationRank(pProto->RequiredReputationFaction)) < pProto->RequiredReputationRank) @@ -2799,7 +2805,8 @@ void CombatBotBaseAI::EquipRandomGearInEmptySlots() } } - // Remove items that don't have our primary stat from the list + // 1. Remove items that don't have our primary stat from the list + // 2. Remove non-pvp items if we have a pvp item available uint32 const primaryStat = GetPrimaryItemStatForClassAndRole(me->GetClass(), m_role); for (auto& itr : itemsPerSlot) { @@ -2815,6 +2822,9 @@ void CombatBotBaseAI::EquipRandomGearInEmptySlots() break; } } + + if (hasPrimaryStatItem) + break; } if (hasPrimaryStatItem) @@ -2836,6 +2846,27 @@ void CombatBotBaseAI::EquipRandomGearInEmptySlots() }), itr.second.end()); } + + bool hasPvpItem = false; + + for (auto const& pItem : itr.second) + { + if (pItem->RequiredHonorRank) + { + hasPvpItem = true; + break; + } + } + + if (hasPvpItem) + { + itr.second.erase(std::remove_if(itr.second.begin(), itr.second.end(), + [](ItemPrototype const* & pItem) + { + return pItem->RequiredHonorRank == 0; + }), + itr.second.end()); + } } for (auto const& itr : itemsPerSlot) @@ -2874,6 +2905,8 @@ void CombatBotBaseAI::AutoEquipGear(uint32 option) EquipPremadeGearTemplate(); break; } + + UpdateVisualHonorRankBasedOnItems(); } bool CombatBotBaseAI::CanTryToCastSpell(Unit const* pTarget, SpellEntry const* pSpellEntry) const @@ -3061,6 +3094,31 @@ void CombatBotBaseAI::EquipOrUseNewItem() } } +uint8 CombatBotBaseAI::GetHighestHonorRankFromEquippedItems() const +{ + uint8 maxRank = 0; + for (int i = EQUIPMENT_SLOT_START; i < EQUIPMENT_SLOT_END; ++i) + { + if (Item* pItem = me->GetItemByPos(INVENTORY_SLOT_BAG_0, i)) + { + if (pItem->GetProto()->RequiredHonorRank > maxRank) + maxRank = pItem->GetProto()->RequiredHonorRank; + } + } + return maxRank; +} + +void CombatBotBaseAI::UpdateVisualHonorRankBasedOnItems() +{ + uint8 rank = GetHighestHonorRankFromEquippedItems(); + if (rank > m_visualHonorRank) + m_visualHonorRank = rank; + + // This is purely visual. + me->SetByteValue(PLAYER_BYTES_3, PLAYER_BYTES_3_OFFSET_HONOR_RANK, m_visualHonorRank); + me->SetByteValue(PLAYER_FIELD_BYTES, PLAYER_FIELD_BYTES_OFFSET_HIGHEST_HONOR_RANK, m_visualHonorRank); +} + bool CombatBotBaseAI::SummonShamanTotems() { if (m_spells.shaman.pAirTotem && @@ -3252,6 +3310,14 @@ void CombatBotBaseAI::OnPacketReceived(WorldPacket const* packet) me->GetSession()->QueuePacket(std::move(data)); break; } + case SMSG_LOGIN_SETTIMESPEED: + { + if (!me) + return; + + UpdateVisualHonorRankBasedOnItems(); + break; + } case SMSG_TRADE_STATUS: { if (!me) @@ -3272,6 +3338,7 @@ void CombatBotBaseAI::OnPacketReceived(WorldPacket const* packet) else if (status == TRADE_STATUS_TRADE_COMPLETE) { EquipOrUseNewItem(); + UpdateVisualHonorRankBasedOnItems(); } break; } diff --git a/src/game/PlayerBots/CombatBotBaseAI.h b/src/game/PlayerBots/CombatBotBaseAI.h index b020006e059..e1200f5e86e 100644 --- a/src/game/PlayerBots/CombatBotBaseAI.h +++ b/src/game/PlayerBots/CombatBotBaseAI.h @@ -127,6 +127,8 @@ class CombatBotBaseAI : public PlayerBotAI void EquipOrUseNewItem(); void AddItemToInventory(uint32 itemId, uint32 count = 1); void AddHunterAmmo(); + uint8 GetHighestHonorRankFromEquippedItems() const; + void UpdateVisualHonorRankBasedOnItems(); bool SummonShamanTotems(); SpellCastResult CastWeaponBuff(SpellEntry const* pSpellEntry, EquipmentSlots slot); @@ -549,6 +551,7 @@ class CombatBotBaseAI : public PlayerBotAI bool m_initialized = false; bool m_isBuffing = false; bool m_receivedBgInvite = false; + uint8 m_visualHonorRank = 0; CombatBotRoles m_role = ROLE_INVALID; }; From 40ec4ceb7c8af958088fabd0b815e61109809bc0 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 21 Oct 2023 23:44:03 +0300 Subject: [PATCH 233/426] Fix learn all languages command. --- src/game/Commands/CharacterCommands.cpp | 7 ++++++- src/game/Handlers/ChatHandler.cpp | 17 +++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/game/Commands/CharacterCommands.cpp b/src/game/Commands/CharacterCommands.cpp index a7040d08cfb..d9379a32b0b 100644 --- a/src/game/Commands/CharacterCommands.cpp +++ b/src/game/Commands/CharacterCommands.cpp @@ -2864,7 +2864,12 @@ bool ChatHandler::HandleLearnAllLangCommand(char* /*args*/) // skipping UNIVERSAL language (0) for (int i = 1; i < LANGUAGES_COUNT; ++i) - pPlayer->LearnSpell(lang_description[i].spell_id, false); + { + if (lang_description[i].spell_id) + pPlayer->LearnSpell(lang_description[i].spell_id, false); + if (lang_description[i].skill_id) + pPlayer->SetSkill(lang_description[i].skill_id, 300, 300); + } SendSysMessage(LANG_COMMAND_LEARN_ALL_LANG); return true; diff --git a/src/game/Handlers/ChatHandler.cpp b/src/game/Handlers/ChatHandler.cpp index a8d5caf415f..0ff344d0f2d 100644 --- a/src/game/Handlers/ChatHandler.cpp +++ b/src/game/Handlers/ChatHandler.cpp @@ -98,9 +98,18 @@ bool WorldSession::IsLanguageAllowedForChatType(uint32 lang, uint32 msgType) #endif case CHAT_MSG_CHANNEL: return true; - default: - return false; } + return false; + } + case LANG_UNIVERSAL: + { + switch (msgType) + { + case CHAT_MSG_AFK: + case CHAT_MSG_DND: + return true; + } + return false; } default: return true; @@ -163,8 +172,8 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recv_data) // LANG_ADDON should not be changed nor be affected by flood control else { - // prevent talking at unknown language (cheating) - if (_player && !_player->KnowsLanguage(lang)) + // prevent talking in unknown language (cheating) + if (lang != LANG_UNIVERSAL && _player && !_player->KnowsLanguage(lang)) { SendNotification(LANG_NOT_LEARNED_LANGUAGE); return; From a25e6be250f9dca2ca077f68924cb5909f051c35 Mon Sep 17 00:00:00 2001 From: Neto <79717052+Neto-WoW@users.noreply.github.com> Date: Sun, 22 Oct 2023 14:31:09 -0400 Subject: [PATCH 234/426] Mining Node fix for Mother Pools (#2246) --- src/game/Maps/Pool/PoolManager.cpp | 15 +++++++++++---- src/game/Maps/Pool/PoolManager.h | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/game/Maps/Pool/PoolManager.cpp b/src/game/Maps/Pool/PoolManager.cpp index db4505c25d8..b224c0b4f55 100644 --- a/src/game/Maps/Pool/PoolManager.cpp +++ b/src/game/Maps/Pool/PoolManager.cpp @@ -347,7 +347,7 @@ void PoolGroup::RemoveOneRelation(uint16 child_pool_id) } template -void PoolGroup::SpawnObject(MapPersistentState& mapState, uint32 limit, uint32 triggerFrom, bool instantly) +void PoolGroup::SpawnObject(MapPersistentState& mapState, uint32 limit, uint32 triggerFrom, bool instantly, uint16 motherPool) { SpawnedPoolData& spawns = mapState.GetSpawnedPoolData(); // GameObjects are processed differently than Creatures @@ -355,6 +355,7 @@ void PoolGroup::SpawnObject(MapPersistentState& mapState, uint32 limit, uint3 bool isTriggerSpawned = spawns.IsSpawnedObject(triggerFrom); uint32 lastDespawned = 0; + uint32 sub_pool = triggerFrom; // save sub pool for later use int count = limit - spawns.GetSpawnedObjects(poolId); // If triggered from some object respawn this object is still marked as spawned @@ -398,6 +399,9 @@ void PoolGroup::SpawnObject(MapPersistentState& mapState, uint32 limit, uint3 // This will try to spawn the rest of pool, not guaranteed for (int i = 0; i < count; ++i) { + if (motherPool) + triggerFrom = motherPool; + PoolObject* obj = RollOne(spawns, triggerFrom); if (!obj) continue; @@ -418,6 +422,9 @@ void PoolGroup::SpawnObject(MapPersistentState& mapState, uint32 limit, uint3 if (triggerFrom && isTriggerSpawned) { + if (motherPool) // redirect trigger to the sub pool for disposal + triggerFrom = sub_pool; + // One spawn one despawn no count increase DespawnObject(mapState, triggerFrom); lastDespawned = triggerFrom; @@ -1011,7 +1018,7 @@ template<> void PoolManager::SpawnPoolGroup(MapPersistentState& mapState, uint16 pool_id, uint32 db_guid, bool instantly) { if (!mPoolCreatureGroups[pool_id].isEmpty()) - mPoolCreatureGroups[pool_id].SpawnObject(mapState, mPoolTemplate[pool_id].GetSpawnCount(), db_guid, instantly); + mPoolCreatureGroups[pool_id].SpawnObject(mapState, mPoolTemplate[pool_id].GetSpawnCount(), db_guid, instantly, false); } // Call to spawn a pool, if cache if true the method will spawn only if cached entry is different @@ -1020,7 +1027,7 @@ template<> void PoolManager::SpawnPoolGroup(MapPersistentState& mapState, uint16 pool_id, uint32 db_guid, bool instantly) { if (!mPoolGameobjectGroups[pool_id].isEmpty()) - mPoolGameobjectGroups[pool_id].SpawnObject(mapState, mPoolTemplate[pool_id].GetSpawnCount(), db_guid, instantly); + mPoolGameobjectGroups[pool_id].SpawnObject(mapState, mPoolTemplate[pool_id].GetSpawnCount(), db_guid, instantly, false); } // Call to spawn a pool, if cache if true the method will spawn only if cached entry is different @@ -1029,7 +1036,7 @@ template<> void PoolManager::SpawnPoolGroup(MapPersistentState& mapState, uint16 pool_id, uint32 sub_pool_id, bool instantly) { if (!mPoolPoolGroups[pool_id].isEmpty()) - mPoolPoolGroups[pool_id].SpawnObject(mapState, mPoolTemplate[pool_id].GetSpawnCount(), sub_pool_id, instantly); + mPoolPoolGroups[pool_id].SpawnObject(mapState, mPoolTemplate[pool_id].GetSpawnCount(), sub_pool_id, instantly, pool_id); } /*! diff --git a/src/game/Maps/Pool/PoolManager.h b/src/game/Maps/Pool/PoolManager.h index 6a98b96fb5a..72bc05a0dbf 100644 --- a/src/game/Maps/Pool/PoolManager.h +++ b/src/game/Maps/Pool/PoolManager.h @@ -130,7 +130,7 @@ class PoolGroup PoolObject* RollOne(SpawnedPoolData& spawns, uint32 triggerFrom); void DespawnObject(MapPersistentState& mapState, uint32 guid=0); void Despawn1Object(MapPersistentState& mapState, uint32 guid); - void SpawnObject(MapPersistentState& mapState, uint32 limit, uint32 triggerFrom, bool instantly); + void SpawnObject(MapPersistentState& mapState, uint32 limit, uint32 triggerFrom, bool instantly, uint16 motherPool); void SetExcludeObject(uint32 guid, bool state); void Spawn1Object(MapPersistentState& mapState, PoolObject* obj, bool instantly); From b8a6a7b13e04c6e51da6712fae9dce98573c7722 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 23 Oct 2023 00:41:17 +0300 Subject: [PATCH 235/426] Fix chat in GM mode. --- src/game/Handlers/ChatHandler.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/game/Handlers/ChatHandler.cpp b/src/game/Handlers/ChatHandler.cpp index 0ff344d0f2d..36cd13f3aee 100644 --- a/src/game/Handlers/ChatHandler.cpp +++ b/src/game/Handlers/ChatHandler.cpp @@ -43,9 +43,6 @@ bool WorldSession::CheckChatMessageValidity(char* msg, uint32 lang, uint32 msgType) { - if (!IsLanguageAllowedForChatType(lang, msgType)) - return false; - if (lang != LANG_ADDON) { // strip invisible characters for non-addon messages @@ -163,6 +160,12 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recv_data) return; } + if (!IsLanguageAllowedForChatType(lang, type)) + { + sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "CHAT: Wrong language %u received for chat type %u.", lang, type); + return; + } + if (lang == LANG_ADDON) { // Disabled addon channel? From eb409e7bf293500189bd5911d3bd0ddc125920da Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 23 Oct 2023 00:46:23 +0300 Subject: [PATCH 236/426] Add deplenish command. --- src/game/Chat/Chat.cpp | 1 + src/game/Chat/Chat.h | 1 + src/game/Commands/UnitCommands.cpp | 16 ++++++++++++++++ 3 files changed, 18 insertions(+) diff --git a/src/game/Chat/Chat.cpp b/src/game/Chat/Chat.cpp index eb687774121..74a476e6619 100644 --- a/src/game/Chat/Chat.cpp +++ b/src/game/Chat/Chat.cpp @@ -1162,6 +1162,7 @@ ChatCommand * ChatHandler::getCommandTable() { "charge", SEC_GAMEMASTER, false, &ChatHandler::HandleChargeCommand, "", nullptr }, { "cheat", SEC_GAMEMASTER, false, nullptr, "", cheatCommandTable }, { "debug", SEC_TICKETMASTER, true, nullptr, "", debugCommandTable }, + { "deplenish", SEC_GAMEMASTER, false, &ChatHandler::HandleDeplenishCommand, "", nullptr }, { "replenish", SEC_GAMEMASTER, false, &ChatHandler::HandleReplenishCommand, "", nullptr }, { "event", SEC_GAMEMASTER, false, nullptr, "", eventCommandTable }, { "gm", SEC_PLAYER, true, nullptr, "", gmCommandTable }, diff --git a/src/game/Chat/Chat.h b/src/game/Chat/Chat.h index db41e902e46..5afdaeab77f 100644 --- a/src/game/Chat/Chat.h +++ b/src/game/Chat/Chat.h @@ -942,6 +942,7 @@ class ChatHandler bool HandleDamageCommand(char* args); bool HandleAoEDamageCommand(char* args); bool HandleReviveCommand(char* args); + bool HandleDeplenishCommand(char* args); bool HandleReplenishCommand(char* args); bool HandleModifyMorphCommand(char* args); bool HandleNameAuraCommand(char* args); diff --git a/src/game/Commands/UnitCommands.cpp b/src/game/Commands/UnitCommands.cpp index 2cbb6a9af25..6880d1f003e 100644 --- a/src/game/Commands/UnitCommands.cpp +++ b/src/game/Commands/UnitCommands.cpp @@ -2258,6 +2258,22 @@ bool ChatHandler::HandleModifyManaCommand(char* args) return true; } +bool ChatHandler::HandleDeplenishCommand(char* args) +{ + Unit* pUnit = GetSelectedUnit(); + if (!pUnit || !pUnit->IsAlive()) + { + SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE); + SetSentErrorMessage(true); + return false; + } + + pUnit->SetHealth(1); + pUnit->SetPower(pUnit->GetPowerType(), 0); + + return true; +} + bool ChatHandler::HandleReplenishCommand(char* args) { Unit* pUnit = GetSelectedUnit(); From 47558c35fc23e3233e0764e0ad5c2ab85ab0ee90 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 23 Oct 2023 01:27:01 +0300 Subject: [PATCH 237/426] Add command to learn all spells from items. --- src/game/Chat/Chat.cpp | 1 + src/game/Chat/Chat.h | 1 + src/game/Commands/CharacterCommands.cpp | 52 +++++++++++++++++++++++++ 3 files changed, 54 insertions(+) diff --git a/src/game/Chat/Chat.cpp b/src/game/Chat/Chat.cpp index 74a476e6619..f1595f619f8 100644 --- a/src/game/Chat/Chat.cpp +++ b/src/game/Chat/Chat.cpp @@ -492,6 +492,7 @@ ChatCommand * ChatHandler::getCommandTable() { "all_mytaxis", SEC_TICKETMASTER, false, &ChatHandler::HandleLearnAllMyTaxisCommand, "", nullptr }, { "all_recipes", SEC_GAMEMASTER, false, &ChatHandler::HandleLearnAllRecipesCommand, "", nullptr }, { "all_trainer", SEC_GAMEMASTER, false, &ChatHandler::HandleLearnAllTrainerCommand, "", nullptr }, + { "all_items", SEC_GAMEMASTER, false, &ChatHandler::HandleLearnAllItemsCommand, "", nullptr }, { "", SEC_DEVELOPER, false, &ChatHandler::HandleLearnCommand, "", nullptr }, { nullptr, 0, false, nullptr, "", nullptr } }; diff --git a/src/game/Chat/Chat.h b/src/game/Chat/Chat.h index 5afdaeab77f..349b2134c26 100644 --- a/src/game/Chat/Chat.h +++ b/src/game/Chat/Chat.h @@ -582,6 +582,7 @@ class ChatHandler bool HandleLearnAllMyTalentsCommand(char* args); bool HandleLearnAllMyTaxisCommand(char* args); bool HandleLearnAllTrainerCommand(char* args); + bool HandleLearnAllItemsCommand(char* args); bool HandleListAurasCommand(char* args); bool HandleListCreatureCommand(char* args); diff --git a/src/game/Commands/CharacterCommands.cpp b/src/game/Commands/CharacterCommands.cpp index d9379a32b0b..6342895310a 100644 --- a/src/game/Commands/CharacterCommands.cpp +++ b/src/game/Commands/CharacterCommands.cpp @@ -2833,6 +2833,58 @@ void ChatHandler::HandleLearnTrainerHelper(Player* player, TrainerSpellData cons } while (learnedAnything); } +bool ChatHandler::HandleLearnAllItemsCommand(char* args) +{ + Player* pPlayer = m_session->GetPlayer(); + + for (auto const& itr : sObjectMgr.GetItemPrototypeMap()) + { + ItemPrototype const* pProto = &itr.second; + + if (pProto->ExtraFlags & ITEM_EXTRA_NOT_OBTAINABLE) + continue; + + SpellEntry const* pLearnSpell = nullptr; + for (uint32 i = 0; i < MAX_ITEM_PROTO_SPELLS; ++i) + { + if (!pProto->Spells[i].SpellId) + continue; + + if (pProto->Spells[i].SpellTrigger != ITEM_SPELLTRIGGER_ON_USE) + continue; + + SpellEntry const* pSpellEntry = sSpellMgr.GetSpellEntry(pProto->Spells[i].SpellId); + if (pSpellEntry->HasEffect(SPELL_EFFECT_LEARN_SPELL)) + pLearnSpell = pSpellEntry; + + // items have only one on use effect + break; + } + + if (!pLearnSpell) + continue; + + if (pPlayer->CanUseItem(pProto) != EQUIP_ERR_OK) + continue; + + for (uint32 i = 0; i < MAX_EFFECT_INDEX; ++i) + { + uint32 spellId = pLearnSpell->EffectTriggerSpell[i]; + if (spellId && pLearnSpell->Effect[i] == SPELL_EFFECT_LEARN_SPELL) + { + SkillLineAbilityMapBounds bounds = sSpellMgr.GetSkillLineAbilityMapBoundsBySpellId(spellId); + if (bounds.first == bounds.second) + continue; + + pPlayer->LearnSpell(spellId, false); + } + } + } + + SendSysMessage("Learned all available spells from items."); + return true; +} + bool ChatHandler::HandleLearnAllMyTaxisCommand(char* /*args*/) { Player* player = m_session->GetPlayer(); From 7dba5179ce5207fa5727c97f1ccb080c300c04e7 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 24 Oct 2023 01:45:48 +0300 Subject: [PATCH 238/426] Fix Fel Curse effect. Closes https://github.com/vmangos/core/issues/2247 Closes https://github.com/vmangos/core/issues/2226 --- sql/migrations/20231023221415_world.sql | 70 +++++ src/game/Spells/Spell.cpp | 374 +++++++++++------------- src/game/Spells/Spell.h | 2 + 3 files changed, 248 insertions(+), 198 deletions(-) create mode 100644 sql/migrations/20231023221415_world.sql diff --git a/sql/migrations/20231023221415_world.sql b/sql/migrations/20231023221415_world.sql new file mode 100644 index 00000000000..a0952560f6e --- /dev/null +++ b/sql/migrations/20231023221415_world.sql @@ -0,0 +1,70 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231023221415'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231023221415'); +-- Add your query below. + + +-- Events list for Grol the Destroyer +DELETE FROM `creature_ai_events` WHERE `creature_id`=7665; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (766501, 7665, 0, 1, 0, 100, 0, 0, 0, 0, 0, 766501, 0, 0, 'Grol the Destroyer - Set Invincible at 1 HP and Reset Phase OOC'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (766502, 7665, 0, 8, 2, 100, 0, 12938, -1, 0, 0, 766502, 0, 0, 'Grol the Destroyer - Remove Invincible and Set Phase 2 on Fel Curse Spellhit (Phase 1)'); +DELETE FROM `creature_ai_scripts` WHERE `id`=766501; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(766501, 0, 0, 52, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Grol the Destroyer - Set Invincible'), +(766501, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Grol the Destroyer - Set Phase to 0'); +DELETE FROM `creature_ai_scripts` WHERE `id`=766502; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(766502, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Grol the Destroyer - Disable Invincibility'), +(766502, 0, 0, 44, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Grol the Destroyer - Set Phase to 1'), +(766502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4539, 0, 0, 0, 0, 0, 0, 0, 0, 'Grol the Destroyer - Say Emoted Text'), +(766502, 0, 0, 15, 12941, 1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Grol the Destroyer - Cast Spell Fel Curse Effect'); +DELETE FROM `creature_ai_scripts` WHERE `id` IN (766503, 766504, 766505, 766506); +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES (76650, 'Blasted Lands - Grol the Destroyer', 10101, 100, 1, 0, 0, 0, 20, 25, 40, 45, 0, 12734, 100, 1, 0, 0, 0, 8, 11, 18, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +UPDATE `creature_template` SET `spell_list_id`=76650, `auras`='3417' WHERE `entry`=7665; + +-- Events list for Archmage Allistarj +DELETE FROM `creature_ai_events` WHERE `creature_id`=7666; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (766601, 7666, 0, 11, 0, 100, 0, 0, 0, 0, 0, 766601, 0, 0, 'Archmage Allistarj - Set Invincible at 1 HP and Reset Phase OOC'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (766602, 7666, 0, 1, 0, 100, 1, 1000, 1000, 1800000, 1800000, 766602, 0, 0, 'Archmage Allistarj - Cast Frost Armor on Spawn'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (766603, 7666, 0, 8, 2, 100, 0, 12938, -1, 0, 0, 766603, 0, 0, 'Archmage Allistarj - Remove Invincible on Fel Curse Spellhit'); +DELETE FROM `creature_ai_scripts` WHERE `id`=766601; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(766601, 0, 0, 52, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Allistarj - Set Invincible'), +(766601, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Allistarj - Set Phase to 0'); +DELETE FROM `creature_ai_scripts` WHERE `id`=766603; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(766603, 0, 0, 44, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Allistarj - Set Phase to 1'), +(766603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4541, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Allistarj - Say Text'), +(766603, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Allistarj - Disable Invincibility'), +(766603, 0, 0, 15, 12942, 1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Allistarj - Cast Spell Fell Curse Effect'); +DELETE FROM `creature_ai_scripts` WHERE `id` IN (766615, 766616, 766617); + +-- Events list for Lady Sevine +DELETE FROM `creature_ai_events` WHERE `creature_id`=7667; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (766701, 7667, 0, 1, 0, 100, 0, 0, 0, 0, 0, 766701, 0, 0, 'Lady Sevine - Set Invincible at 1 HP and Reset Phase OOC'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (766702, 7667, 0, 1, 0, 100, 1, 1000, 1000, 1800000, 1800000, 766702, 0, 0, 'Lady Sevine - Cast Frost Armor on Spawn'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (766703, 7667, 0, 8, 2, 100, 0, 12938, -1, 0, 0, 766703, 0, 0, 'Lady Sevine - Remove Invincible on Fel Curse Spellhit'); +DELETE FROM `creature_ai_scripts` WHERE `id`=766701; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(766701, 0, 0, 52, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Lady Sevine - Set Invincible'), +(766701, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Lady Sevine - Set Phase to 0'); +DELETE FROM `creature_ai_scripts` WHERE `id`=766703; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(766703, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Lady Sevine - Disable Invincibility'), +(766703, 0, 0, 44, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Lady Sevine - Set Phase to 1'), +(766703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4540, 0, 0, 0, 0, 0, 0, 0, 0, 'Lady Sevine - Say Emoted Text'), +(766703, 0, 0, 15, 12943, 1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Lady Sevine - Cast Spell'); +DELETE FROM `creature_ai_scripts` WHERE `id` IN (766715, 766716, 766717); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 5ad9293eea6..555a09b92e9 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -382,15 +382,6 @@ void Spell::FillTargetMap() if (m_spellInfo->Effect[i] == SPELL_EFFECT_NONE) continue; - // targets for TARGET_LOCATION_SCRIPT_NEAR_CASTER (A) and TARGET_UNIT_SCRIPT_NEAR_CASTER - // for TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER (A) all is checked in Spell::CheckCast and in Spell::CheckItem - // filled in Spell::CheckCast call - if (m_spellInfo->EffectImplicitTargetA[i] == TARGET_LOCATION_SCRIPT_NEAR_CASTER || - m_spellInfo->EffectImplicitTargetA[i] == TARGET_UNIT_SCRIPT_NEAR_CASTER || - m_spellInfo->EffectImplicitTargetA[i] == TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER || - (m_spellInfo->EffectImplicitTargetB[i] == TARGET_UNIT_SCRIPT_NEAR_CASTER && m_spellInfo->EffectImplicitTargetA[i] != TARGET_UNIT_CASTER)) - continue; - // TODO: find a way so this is not needed? // for area auras always add caster as target (needed for totems for example) if (m_casterUnit) @@ -644,9 +635,6 @@ void Spell::FillTargetMap() case TARGET_LOCATION_CASTER_DEST: SetTargetMap(SpellEffectIndex(i), m_spellInfo->EffectImplicitTargetA[i], tmpUnitMap); break; - case TARGET_LOCATION_SCRIPT_NEAR_CASTER: // B case filled in CheckCast but we need fill unit list base at A case - SetTargetMap(SpellEffectIndex(i), m_spellInfo->EffectImplicitTargetA[i], tmpUnitMap); - break; default: SetTargetMap(SpellEffectIndex(i), m_spellInfo->EffectImplicitTargetA[i], tmpUnitMap); SetTargetMap(SpellEffectIndex(i), m_spellInfo->EffectImplicitTargetB[i], tmpUnitMap); @@ -706,6 +694,173 @@ void Spell::FillTargetMap() } } +SpellCastResult Spell::CheckScriptTargeting(SpellEffectIndex effIndex, uint32 chainTargets, float radius, uint32 targetMode, UnitList& tempUnitList) +{ + SpellScriptTargetBounds bounds = sSpellMgr.GetSpellScriptTargetBounds(m_spellInfo->Id); + + if (bounds.first == bounds.second) + { + if (m_spellInfo->EffectImplicitTargetA[effIndex] == TARGET_UNIT_SCRIPT_NEAR_CASTER || m_spellInfo->EffectImplicitTargetB[effIndex] == TARGET_UNIT_SCRIPT_NEAR_CASTER) + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Spell entry %u, effect %i has EffectImplicitTargetA/EffectImplicitTargetB = TARGET_UNIT_SCRIPT_NEAR_CASTER, but creature are not defined in `spell_script_target`", m_spellInfo->Id, effIndex); + + if (m_spellInfo->EffectImplicitTargetA[effIndex] == TARGET_LOCATION_SCRIPT_NEAR_CASTER || m_spellInfo->EffectImplicitTargetB[effIndex] == TARGET_LOCATION_SCRIPT_NEAR_CASTER) + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Spell entry %u, effect %i has EffectImplicitTargetA/EffectImplicitTargetB = TARGET_LOCATION_SCRIPT_NEAR_CASTER, but gameobject or creature are not defined in `spell_script_target`", m_spellInfo->Id, effIndex); + + if (m_spellInfo->EffectImplicitTargetA[effIndex] == TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER) + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Spell entry %u, effect %i has EffectImplicitTargetA/EffectImplicitTargetB = TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER, but gameobject are not defined in `spell_script_target`", m_spellInfo->Id, effIndex); + + return SPELL_FAILED_BAD_TARGETS; + } + + Creature* targetExplicit = nullptr; // used for cases where a target is provided (by script for example) + Creature* creatureScriptTarget = nullptr; + GameObject* goScriptTarget = nullptr; + + for (auto i_spellST = bounds.first; i_spellST != bounds.second; ++i_spellST) + { + if (i_spellST->second.CanNotHitWithSpellEffect(SpellEffectIndex(effIndex))) + continue; + + switch (i_spellST->second.type) + { + case SPELL_TARGET_TYPE_GAMEOBJECT: + { + GameObject* p_GameObject = nullptr; + + if (i_spellST->second.targetEntry) + { + MaNGOS::NearestGameObjectEntryFitConditionInObjectRangeCheck go_check(*m_caster, i_spellST->second.targetEntry, radius, i_spellST->second.conditionId); + MaNGOS::GameObjectLastSearcher checker(p_GameObject, go_check); + Cell::VisitGridObjects(m_caster, checker, radius); + + if (p_GameObject) + { + // remember found target and range, next attempt will find more near target with another entry + creatureScriptTarget = nullptr; + goScriptTarget = p_GameObject; + radius = go_check.GetLastRange(); + } + } + else if (focusObject) // Focus Object + { + float frange = m_caster->GetDistance(focusObject); + if (radius >= frange) + { + creatureScriptTarget = nullptr; + goScriptTarget = focusObject; + radius = frange; + } + } + break; + } + case SPELL_TARGET_TYPE_CREATURE: + case SPELL_TARGET_TYPE_DEAD: + default: + { + Creature* p_Creature = nullptr; + + // check if explicit target is provided and check it up against database valid target entry/state + if (Unit* pTarget = m_targets.getUnitTarget()) + { + if (pTarget->IsCreature() && pTarget->GetEntry() == i_spellST->second.targetEntry) + { + if (i_spellST->second.type == SPELL_TARGET_TYPE_DEAD && ((Creature*)pTarget)->IsCorpse()) + { + // always use spellMaxRange, in case GetLastRange returned different in a previous pass + if (pTarget->IsWithinDistInMap(m_caster, radius)) + targetExplicit = (Creature*)pTarget; + } + else if (i_spellST->second.type == SPELL_TARGET_TYPE_CREATURE && pTarget->IsAlive()) + { + // always use spellMaxRange, in case GetLastRange returned different in a previous pass + if (pTarget->IsWithinDistInMap(m_caster, radius)) + targetExplicit = (Creature*)pTarget; + } + } + } + + // no target provided or it was not valid, so use closest in range + if (!targetExplicit) + { + MaNGOS::NearestCreatureEntryFitConditionInObjectRangeCheck u_check(*m_caster, i_spellST->second.targetEntry, i_spellST->second.type != SPELL_TARGET_TYPE_DEAD, radius, i_spellST->second.conditionId); + MaNGOS::CreatureLastSearcher searcher(p_Creature, u_check); + + // Visit all, need to find also Pet* objects + Cell::VisitAllObjects(m_caster, searcher, radius); + + radius = u_check.GetLastRange(); + } + + // always prefer provided target if it's valid + if (targetExplicit) + creatureScriptTarget = targetExplicit; + else if (p_Creature) + creatureScriptTarget = p_Creature; + + if (creatureScriptTarget) + goScriptTarget = nullptr; + + break; + } + } + } + + if (creatureScriptTarget) + { + // store explicit target for TARGET_UNIT_SCRIPT_NEAR_CASTER + if (targetMode == TARGET_UNIT_SCRIPT_NEAR_CASTER) + { + // Fixes Toss Fuel on Bonfire (28806) and Dominion of Soul (16053) + if (m_CastItem) + m_targets.setUnitTarget(creatureScriptTarget); + + tempUnitList.push_back(creatureScriptTarget); + } + // store coordinates for TARGET_LOCATION_SCRIPT_NEAR_CASTER + else if (targetMode == TARGET_LOCATION_SCRIPT_NEAR_CASTER) + { + m_targets.setDestination(creatureScriptTarget->GetPositionX(), creatureScriptTarget->GetPositionY(), creatureScriptTarget->GetPositionZ()); + + if (m_spellInfo->EffectImplicitTargetA[effIndex] == TARGET_LOCATION_SCRIPT_NEAR_CASTER && m_spellInfo->Effect[effIndex] != SPELL_EFFECT_PERSISTENT_AREA_AURA) + tempUnitList.push_back(creatureScriptTarget); + } + } + else if (goScriptTarget) + { + // store coordinates for TARGET_LOCATION_SCRIPT_NEAR_CASTER + if (targetMode == TARGET_LOCATION_SCRIPT_NEAR_CASTER) + { + m_targets.setDestination(goScriptTarget->GetPositionX(), goScriptTarget->GetPositionY(), goScriptTarget->GetPositionZ()); + + if (m_spellInfo->EffectImplicitTargetA[effIndex] == TARGET_LOCATION_SCRIPT_NEAR_CASTER && m_spellInfo->Effect[effIndex] != SPELL_EFFECT_PERSISTENT_AREA_AURA) + AddGOTarget(goScriptTarget, SpellEffectIndex(effIndex)); + } + // store explicit target for TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER + else + { + if (targetMode == TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER) + AddGOTarget(goScriptTarget, SpellEffectIndex(effIndex)); + } + } + //Missing DB Entry or targets for this spellEffect. + else + { + /* For TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER makes DB targets optional not required for now + * TODO: Makes more research for this target type + */ + if (targetMode != TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER) + { + // not report target not existence for triggered spells + if (m_triggeredByAuraSpell || m_IsTriggeredSpell) + return SPELL_FAILED_DONT_REPORT; + else + return SPELL_FAILED_BAD_TARGETS; + } + } + + return SPELL_CAST_OK; +} + void Spell::prepareDataForTriggerSystem() { //========================================================================================== @@ -2987,11 +3142,16 @@ void Spell::SetTargetMap(SpellEffectIndex effIndex, uint32 targetMode, UnitList& break; } case TARGET_UNIT_SCRIPT_NEAR_CASTER: + case TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER: + case TARGET_LOCATION_SCRIPT_NEAR_CASTER: { - if (m_targets.getUnitTarget()) - targetUnitMap.push_back(m_targets.getUnitTarget()); - if (m_targets.getItemTarget()) - AddItemTarget(m_targets.getItemTarget(), effIndex); + SpellCastResult result = CheckScriptTargeting(effIndex, 0, radius, targetMode, targetUnitMap); + if (result != SPELL_CAST_OK) + { + SendCastResult(result); + finish(false); + return; + } break; } case TARGET_LOCATION_CASTER_FISHING_SPOT: @@ -6021,188 +6181,6 @@ SpellCastResult Spell::CheckCast(bool strict) return castResult; } - // Database based targets from spell_target_script - if (m_UniqueTargetInfo.empty()) // skip second CheckCast apply (for delayed spells for example) - { - for (uint8 j = 0; j < MAX_EFFECT_INDEX; ++j) - { - if (m_spellInfo->EffectImplicitTargetA[j] == TARGET_UNIT_SCRIPT_NEAR_CASTER || - (m_spellInfo->EffectImplicitTargetB[j] == TARGET_UNIT_SCRIPT_NEAR_CASTER && m_spellInfo->EffectImplicitTargetA[j] != TARGET_UNIT_CASTER) || - m_spellInfo->EffectImplicitTargetA[j] == TARGET_LOCATION_SCRIPT_NEAR_CASTER || - m_spellInfo->EffectImplicitTargetB[j] == TARGET_LOCATION_SCRIPT_NEAR_CASTER || - m_spellInfo->EffectImplicitTargetA[j] == TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER) - { - - SpellScriptTargetBounds bounds = sSpellMgr.GetSpellScriptTargetBounds(m_spellInfo->Id); - - if (bounds.first == bounds.second) - { - if (m_spellInfo->EffectImplicitTargetA[j] == TARGET_UNIT_SCRIPT_NEAR_CASTER || m_spellInfo->EffectImplicitTargetB[j] == TARGET_UNIT_SCRIPT_NEAR_CASTER) - sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Spell entry %u, effect %i has EffectImplicitTargetA/EffectImplicitTargetB = TARGET_UNIT_SCRIPT_NEAR_CASTER, but creature are not defined in `spell_script_target`", m_spellInfo->Id, j); - - if (m_spellInfo->EffectImplicitTargetA[j] == TARGET_LOCATION_SCRIPT_NEAR_CASTER || m_spellInfo->EffectImplicitTargetB[j] == TARGET_LOCATION_SCRIPT_NEAR_CASTER) - sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Spell entry %u, effect %i has EffectImplicitTargetA/EffectImplicitTargetB = TARGET_LOCATION_SCRIPT_NEAR_CASTER, but gameobject or creature are not defined in `spell_script_target`", m_spellInfo->Id, j); - - if (m_spellInfo->EffectImplicitTargetA[j] == TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER) - sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Spell entry %u, effect %i has EffectImplicitTargetA/EffectImplicitTargetB = TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER, but gameobject are not defined in `spell_script_target`", m_spellInfo->Id, j); - } - - SpellRangeEntry const* srange = sSpellRangeStore.LookupEntry(m_spellInfo->rangeIndex); - float range = GetSpellMaxRange(srange); - - Creature* targetExplicit = nullptr; // used for cases where a target is provided (by script for example) - Creature* creatureScriptTarget = nullptr; - GameObject* goScriptTarget = nullptr; - - for (auto i_spellST = bounds.first; i_spellST != bounds.second; ++i_spellST) - { - if (i_spellST->second.CanNotHitWithSpellEffect(SpellEffectIndex(j))) - continue; - - switch (i_spellST->second.type) - { - case SPELL_TARGET_TYPE_GAMEOBJECT: - { - GameObject* p_GameObject = nullptr; - - if (i_spellST->second.targetEntry) - { - MaNGOS::NearestGameObjectEntryFitConditionInObjectRangeCheck go_check(*m_caster, i_spellST->second.targetEntry, range, i_spellST->second.conditionId); - MaNGOS::GameObjectLastSearcher checker(p_GameObject, go_check); - Cell::VisitGridObjects(m_caster, checker, range); - - if (p_GameObject) - { - // remember found target and range, next attempt will find more near target with another entry - creatureScriptTarget = nullptr; - goScriptTarget = p_GameObject; - range = go_check.GetLastRange(); - } - } - else if (focusObject) // Focus Object - { - float frange = m_caster->GetDistance(focusObject); - if (range >= frange) - { - creatureScriptTarget = nullptr; - goScriptTarget = focusObject; - range = frange; - } - } - break; - } - case SPELL_TARGET_TYPE_CREATURE: - case SPELL_TARGET_TYPE_DEAD: - default: - { - Creature* p_Creature = nullptr; - - // check if explicit target is provided and check it up against database valid target entry/state - if (Unit* pTarget = m_targets.getUnitTarget()) - { - if (pTarget->IsCreature() && pTarget->GetEntry() == i_spellST->second.targetEntry) - { - if (i_spellST->second.type == SPELL_TARGET_TYPE_DEAD && ((Creature*)pTarget)->IsCorpse()) - { - // always use spellMaxRange, in case GetLastRange returned different in a previous pass - if (pTarget->IsWithinDistInMap(m_caster, GetSpellMaxRange(srange))) - targetExplicit = (Creature*)pTarget; - } - else if (i_spellST->second.type == SPELL_TARGET_TYPE_CREATURE && pTarget->IsAlive()) - { - // always use spellMaxRange, in case GetLastRange returned different in a previous pass - if (pTarget->IsWithinDistInMap(m_caster, GetSpellMaxRange(srange))) - targetExplicit = (Creature*)pTarget; - } - } - } - - // no target provided or it was not valid, so use closest in range - if (!targetExplicit) - { - MaNGOS::NearestCreatureEntryFitConditionInObjectRangeCheck u_check(*m_caster, i_spellST->second.targetEntry, i_spellST->second.type != SPELL_TARGET_TYPE_DEAD, range, i_spellST->second.conditionId); - MaNGOS::CreatureLastSearcher searcher(p_Creature, u_check); - - // Visit all, need to find also Pet* objects - Cell::VisitAllObjects(m_caster, searcher, range); - - range = u_check.GetLastRange(); - } - - // always prefer provided target if it's valid - if (targetExplicit) - creatureScriptTarget = targetExplicit; - else if (p_Creature) - creatureScriptTarget = p_Creature; - - if (creatureScriptTarget) - goScriptTarget = nullptr; - - break; - } - } - } - - if (creatureScriptTarget) - { - // store explicit target for TARGET_UNIT_SCRIPT_NEAR_CASTER - if (m_spellInfo->EffectImplicitTargetA[j] == TARGET_UNIT_SCRIPT_NEAR_CASTER || - m_spellInfo->EffectImplicitTargetB[j] == TARGET_UNIT_SCRIPT_NEAR_CASTER) - { - // Fixes Toss Fuel on Bonfire (28806) and Dominion of Soul (16053) - if (m_CastItem) - m_targets.setUnitTarget(creatureScriptTarget); - - AddUnitTarget(creatureScriptTarget, SpellEffectIndex(j)); - } - // store coordinates for TARGET_LOCATION_SCRIPT_NEAR_CASTER - else if (m_spellInfo->EffectImplicitTargetA[j] == TARGET_LOCATION_SCRIPT_NEAR_CASTER || - m_spellInfo->EffectImplicitTargetB[j] == TARGET_LOCATION_SCRIPT_NEAR_CASTER) - { - m_targets.setDestination(creatureScriptTarget->GetPositionX(), creatureScriptTarget->GetPositionY(), creatureScriptTarget->GetPositionZ()); - - if (m_spellInfo->EffectImplicitTargetA[j] == TARGET_LOCATION_SCRIPT_NEAR_CASTER && m_spellInfo->Effect[j] != SPELL_EFFECT_PERSISTENT_AREA_AURA) - AddUnitTarget(creatureScriptTarget, SpellEffectIndex(j)); - } - } - else if (goScriptTarget) - { - // store coordinates for TARGET_LOCATION_SCRIPT_NEAR_CASTER - if (m_spellInfo->EffectImplicitTargetA[j] == TARGET_LOCATION_SCRIPT_NEAR_CASTER || - m_spellInfo->EffectImplicitTargetB[j] == TARGET_LOCATION_SCRIPT_NEAR_CASTER) - { - m_targets.setDestination(goScriptTarget->GetPositionX(), goScriptTarget->GetPositionY(), goScriptTarget->GetPositionZ()); - - if (m_spellInfo->EffectImplicitTargetA[j] == TARGET_LOCATION_SCRIPT_NEAR_CASTER && m_spellInfo->Effect[j] != SPELL_EFFECT_PERSISTENT_AREA_AURA) - AddGOTarget(goScriptTarget, SpellEffectIndex(j)); - } - // store explicit target for TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER - else - { - if (m_spellInfo->EffectImplicitTargetA[j] == TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER || - m_spellInfo->EffectImplicitTargetB[j] == TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER) - AddGOTarget(goScriptTarget, SpellEffectIndex(j)); - } - } - //Missing DB Entry or targets for this spellEffect. - else - { - /* For TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER makes DB targets optional not required for now - * TODO: Makes more research for this target type - */ - if (m_spellInfo->EffectImplicitTargetA[j] != TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER) - { - // not report target not existence for triggered spells - if (m_triggeredByAuraSpell || m_IsTriggeredSpell) - return SPELL_FAILED_DONT_REPORT; - else - return SPELL_FAILED_BAD_TARGETS; - } - } - } - } - } - if (!m_IsTriggeredSpell) { if (!m_triggeredByAuraSpell) diff --git a/src/game/Spells/Spell.h b/src/game/Spells/Spell.h index d787113288a..2f0e73f2643 100644 --- a/src/game/Spells/Spell.h +++ b/src/game/Spells/Spell.h @@ -609,6 +609,8 @@ class Spell }; bool m_destroyed = false; + SpellCastResult CheckScriptTargeting(SpellEffectIndex effIndex, uint32 chainTargets, float radius, uint32 targetMode, UnitList& tempUnitList); + #ifndef USE_STANDARD_MALLOC typedef tbb::concurrent_vector TargetList; typedef tbb::concurrent_vector GOTargetList; From 1e82e5b1fc096625df6a1152529df990a9526b25 Mon Sep 17 00:00:00 2001 From: Daribon Date: Tue, 24 Oct 2023 13:06:42 +0200 Subject: [PATCH 239/426] Correct Auberdine Sentinel waypoints. (#2248) --- sql/migrations/20231024003010_world.sql | 190 ++++++++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 sql/migrations/20231024003010_world.sql diff --git a/sql/migrations/20231024003010_world.sql b/sql/migrations/20231024003010_world.sql new file mode 100644 index 00000000000..b4b36f579a4 --- /dev/null +++ b/sql/migrations/20231024003010_world.sql @@ -0,0 +1,190 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231024003010'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231024003010'); +-- Add your query below. + + +-- Delete duplicate Auberdine Sentinel Guid: 38993 +DELETE FROM `creature` WHERE `guid`=38993; +DELETE FROM `creature_movement` WHERE `id`=38993; + +-- Pathing for Auberdine Sentinel Entry: 6086 +SET @NPC := 38992; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=6370.97,`position_y`=357.7523,`position_z`=21.32085 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,6370.97,357.7523,21.32085,100,0,0,0), +(@NPC,2,6379.86,358.31467,20.204288,100,0,0,0), +(@NPC,3,6390.5425,358.17667,18.779434,100,0,0,0), +(@NPC,4,6395.5073,361.53452,17.852531,100,0,0,0), +(@NPC,5,6399.4375,364.0235,17.201603,100,0,0,0), +(@NPC,6,6404.511,371.2272,15.529269,100,0,0,0), +(@NPC,7,6406.2056,374.54605,15.05849,100,0,0,0), +(@NPC,8,6409.579,382.6261,13.62527,100,0,0,0), +(@NPC,9,6413.611,389.123,12.646601,100,0,0,0), +(@NPC,10,6422.258,399.4292,11.146321,100,0,0,0), +(@NPC,11,6430.588,405.14166,10.980362,100,0,0,0), +(@NPC,12,6441.7075,410.7721,10.8836775,100,0,0,0), +(@NPC,13,6453.1846,410.46692,11.043987,100,0,0,0), +(@NPC,14,6458.066,411.1137,10.933033,100,0,0,0), +(@NPC,15,6464.9736,413.08545,11.082148,100,0,0,0), +(@NPC,16,6472.5884,417.08398,10.663545,100,0,0,0), +(@NPC,17,6477.39,420.12906,10.570096,100,0,0,0), +(@NPC,18,6484.006,423.77005,11.501895,100,0,0,0), +(@NPC,19,6494.374,429.44107,6.650973,100,0,0,0), +(@NPC,20,6501.9897,434.0671,6.2910223,100,0,0,0), +(@NPC,21,6505.645,443.9272,5.9810715,100,0,0,0), +(@NPC,22,6503.608,456.58176,5.9366984,100,0,0,0), +(@NPC,23,6500.407,466.87598,6.244925,100,0,0,0), +(@NPC,24,6497.54,478.1485,6.073428,100,0,0,0), +(@NPC,25,6487.3174,480.21838,6.399365,100,0,0,0), +(@NPC,26,6477.44,479.59924,7.145113,100,0,0,0), +(@NPC,27,6463.5923,480.62082,10.266797,100,0,0,0), +(@NPC,28,6457.982,480.54736,9.501382,100,0,0,0), +(@NPC,29,6452.7866,480.7809,8.172089,100,0,0,0), +(@NPC,30,6445.294,482.2431,8.03171,100,0,0,0), +(@NPC,31,6438.2065,481.4414,7.5345078,100,0,0,0), +(@NPC,32,6435.249,477.64203,7.2355566,100,0,0,0), +(@NPC,33,6432.538,466.23166,7.6902094,100,0,0,0), +(@NPC,34,6432.4907,458.44525,7.8765936,100,0,0,0), +(@NPC,35,6432.065,449.98303,8.209666,100,0,0,0), +(@NPC,36,6434.6587,441.89786,10.850488,100,0,0,0), +(@NPC,37,6437.5635,432.1977,11.934133,100,0,0,0), +(@NPC,38,6439.273,422.3527,11.297636,100,0,0,0), +(@NPC,39,6439.0845,414.146,10.948944,100,0,0,0), +(@NPC,40,6435.042,410.01535,10.928198,100,0,0,0), +(@NPC,41,6427.926,404.55008,10.982686,100,0,0,0), +(@NPC,42,6421.0044,398.08713,11.27943,100,0,0,0), +(@NPC,43,6413.016,388.00314,12.763433,100,0,0,0), +(@NPC,44,6407.297,376.47607,14.71068,100,0,0,0), +(@NPC,45,6404.8164,372.33942,15.373289,100,0,0,0), +(@NPC,46,6401.2847,367.14035,16.615904,100,0,0,0), +(@NPC,47,6395.221,361.58035,17.881895,100,0,0,0), +(@NPC,48,6385.6787,359.696,19.186064,100,0,0,0); +-- 0x204CB0002005F18000007300001C65F2 .go xyz 6370.97 357.7523 21.32085 + +-- Pathing for Auberdine Sentinel Entry: 6086 +SET @NPC := 38996; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=6452.4053,`position_y`=409.54263,`position_z`=11.084499 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,6452.4053,409.54263,11.084499,100,0,0,0), +(@NPC,2,6445.1616,409.475,10.958604,100,0,0,0), +(@NPC,3,6441.638,414.12048,11.00724,100,0,0,0), +(@NPC,4,6438.8623,422.09805,11.297828,100,0,0,0), +(@NPC,5,6437.651,430.35498,11.427738,100,0,0,0), +(@NPC,6,6435.5474,438.34018,12.366342,100,0,0,0), +(@NPC,7,6434.132,444.10727,9.474491,100,0,0,0), +(@NPC,8,6431.816,451.74084,8.152277,100,0,0,0), +(@NPC,9,6432.145,459.20236,7.8595867,100,0,0,0), +(@NPC,10,6432.5566,464.65393,7.7328715,100,0,0,0), +(@NPC,11,6433.5103,470.6288,7.279891,100,0,0,0), +(@NPC,12,6434.1787,477.01535,7.106474,100,0,0,0), +(@NPC,13,6435.1504,483.93646,7.1083884,100,0,0,0), +(@NPC,14,6436.1064,491.05655,7.238331,100,0,0,0), +(@NPC,15,6440.4688,496.99603,7.3978796,100,0,0,0), +(@NPC,16,6446.2695,503.9539,7.0625467,100,0,0,0), +(@NPC,17,6448.636,508.71442,7.160055,100,0,0,0), +(@NPC,18,6444.846,511.33203,7.197237,100,0,0,0), +(@NPC,19,6436.05,514.73065,8.508163,100,0,0,0), +(@NPC,20,6421.5435,519.08826,8.810343,100,0,0,0), +(@NPC,21,6396.7153,527.7264,8.825086,100,0,0,0), +(@NPC,22,6385.694,530.0828,8.716717,100,0,0,0), +(@NPC,23,6380.165,533.5661,8.230995,100,0,0,0), +(@NPC,24,6375.4,535.3117,8.352715,100,0,0,0), +(@NPC,25,6372.3906,535.59125,8.5448675,100,0,0,0), +(@NPC,26,6370.441,530.62463,9.028212,100,0,0,0), +(@NPC,27,6370.2056,524.24286,9.418837,100,0,0,0), +(@NPC,28,6371.2925,519.69147,9.621962,100,0,0,0), +(@NPC,29,6375.5205,514.0625,8.70687,100,0,0,0), +(@NPC,30,6381.2417,508.82275,8.432012,100,0,0,0), +(@NPC,31,6388.085,504.14627,7.7457647,100,0,0,0), +(@NPC,32,6392.6875,500.62848,7.475828,100,0,0,0), +(@NPC,33,6399.2773,498.26367,7.491496,100,0,0,0), +(@NPC,34,6406.545,497.0062,7.7659826,100,0,0,0), +(@NPC,35,6412.9946,495.3047,7.804269,100,0,0,0), +(@NPC,36,6424.7686,490.71478,7.7268543,100,0,0,0), +(@NPC,37,6437.299,487.23633,7.1626787,100,0,0,0), +(@NPC,38,6445.472,486.2322,7.976465,100,0,0,0), +(@NPC,39,6455.283,483.55838,8.657665,100,0,0,0), +(@NPC,40,6464.498,483.86224,10.330338,100,0,0,0), +(@NPC,41,6480.1284,481.57687,6.727401,100,0,0,0), +(@NPC,42,6494.321,480.32016,6.0262265,100,0,0,0), +(@NPC,43,6499.9795,473.5,6.225542,100,0,0,0), +(@NPC,44,6502.1455,465.00336,6.1481094,100,0,0,0), +(@NPC,45,6502.9287,457.2761,6.0077834,100,0,0,0), +(@NPC,46,6503.893,450.01068,5.8769474,100,0,0,0), +(@NPC,47,6504.6704,445.11026,5.8989105,100,0,0,0), +(@NPC,48,6503.0894,438.45795,6.328868,100,0,0,0), +(@NPC,49,6499.4326,431.2034,6.4994965,100,0,0,0), +(@NPC,50,6493.326,428.60324,6.9104376,100,0,0,0), +(@NPC,51,6484.817,424.02078,11.167041,100,0,0,0), +(@NPC,52,6478.639,420.07413,10.813484,100,0,0,0), +(@NPC,53,6473.6914,417.16043,10.469109,100,0,0,0), +(@NPC,54,6469.389,414.68692,10.89707,100,0,0,0), +(@NPC,55,6461.9956,411.63968,11.064846,100,0,0,0); +-- 0x204CB0002005F18000007300009C65F1 .go xyz 6452.4053 409.54263 11.084499 + +-- Pathing for Auberdine Sentinel Entry: 6086 +SET @NPC := 38997; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=6532.733,`position_y`=894.6737,`position_z`=6.674153 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,6532.733,894.6737,6.674153,100,0,0,0), +(@NPC,2,6524.1553,868.82715,6.43564,100,0,0,0), +(@NPC,3,6512.5938,845.8619,7.694217,100,0,0,0), +(@NPC,4,6509.552,825.90753,6.8173513,100,0,0,0), +(@NPC,5,6501.6597,800.2203,8.015973,100,0,0,0), +(@NPC,6,6517.019,787.3334,6.3343534,100,0,0,0), +(@NPC,7,6548.3804,776.90393,6.6387,100,0,0,0), +(@NPC,8,6566.5493,773.31946,6.155142,100,0,0,0), +(@NPC,9,6531.7285,783.4608,7.419198,100,0,0,0), +(@NPC,10,6500.628,794.2159,7.977165,100,0,0,0), +(@NPC,11,6474.542,801.2359,6.2183537,100,0,0,0), +(@NPC,12,6445.473,811.46765,6.6381783,100,0,0,0), +(@NPC,13,6434.2026,814.83453,5.801962,100,0,0,0), +(@NPC,14,6463.2607,805.6153,6.977165,100,0,0,0), +(@NPC,15,6493.0884,796.90607,8.045996,100,0,0,0), +(@NPC,16,6498.7207,789.40497,8.150688,100,0,0,0), +(@NPC,17,6492.7627,770.2416,8.395404,100,0,0,0), +(@NPC,18,6482.8335,741.49603,8.18029,100,0,0,0), +(@NPC,19,6469.376,713.80804,9.4758625,100,0,0,0), +(@NPC,20,6463.172,684.7984,8.879026,100,0,0,0), +(@NPC,21,6458.2173,670.1253,9.36779,100,0,0,0), +(@NPC,22,6445.116,633.23517,9.253143,100,0,0,0), +(@NPC,23,6432.2383,593.0826,9.341423,100,0,0,0), +(@NPC,24,6445.116,633.23517,9.253143,100,0,0,0), +(@NPC,25,6458.2173,670.1253,9.36779,100,0,0,0), +(@NPC,26,6463.1543,684.7462,8.918137,100,0,0,0), +(@NPC,27,6469.3643,713.75415,9.41106,100,0,0,0), +(@NPC,28,6482.8335,741.49603,8.18029,100,0,0,0), +(@NPC,29,6492.7363,770.1561,8.36779,100,0,0,0), +(@NPC,30,6498.7207,789.40497,8.150688,100,0,0,0), +(@NPC,31,6493.0884,796.90607,8.045996,100,0,0,0), +(@NPC,32,6463.391,805.5739,6.984513,100,0,0,0), +(@NPC,33,6434.2026,814.83453,5.801962,100,0,0,0), +(@NPC,34,6445.473,811.46765,6.6381783,100,0,0,0), +(@NPC,35,6474.542,801.2359,6.2183537,100,0,0,0), +(@NPC,36,6500.628,794.2159,7.977165,100,0,0,0), +(@NPC,37,6531.7285,783.4608,7.419198,100,0,0,0), +(@NPC,38,6566.5493,773.31946,6.155142,100,0,0,0), +(@NPC,39,6548.3804,776.90393,6.6387,100,0,0,0), +(@NPC,40,6517.019,787.3334,6.3343534,100,0,0,0), +(@NPC,41,6501.6597,800.2203,8.015973,100,0,0,0), +(@NPC,42,6509.552,825.90753,6.8173513,100,0,0,0), +(@NPC,43,6512.5938,845.8619,7.694217,100,0,0,0), +(@NPC,44,6524.1553,868.82715,6.43564,100,0,0,0); +-- 0x204CB0002005F18000007300029C65F1 .go xyz 6532.733 894.6737 6.674153 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 24463dbaeee0085727b9cff9fbc7e58f6df00d81 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 24 Oct 2023 14:18:42 +0300 Subject: [PATCH 240/426] Fix quest Dancing for Marzipan. Fixes https://github.com/vmangos/core/issues/2244 --- sql/migrations/20231024111757_world.sql | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 sql/migrations/20231024111757_world.sql diff --git a/sql/migrations/20231024111757_world.sql b/sql/migrations/20231024111757_world.sql new file mode 100644 index 00000000000..fc3bb5e2d5a --- /dev/null +++ b/sql/migrations/20231024111757_world.sql @@ -0,0 +1,25 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231024111757'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231024111757'); +-- Add your query below. + + +-- Fix quest Dancing for Marzipan. +DELETE FROM `creature_ai_scripts` WHERE `id`=674601; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(674601, 0, 0, 8, 6746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Innkeeper Pala - Complete Quest Dancing for Marzipan'), +(674601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10800, 0, 0, 0, 0, 0, 0, 0, 0, 'Innkeeper Pala - Say Text'); +UPDATE `quest_template` SET `SpecialFlags`=1 WHERE `entry`=8360; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 9128f9e566bcc1ed5d7502026fc941037b39807c Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 24 Oct 2023 15:03:39 +0300 Subject: [PATCH 241/426] Fix PvP not being disabled on flight paths. --- src/game/Objects/Player.cpp | 28 ++++++++++++++++++++++------ src/game/Objects/Player.h | 2 ++ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index deb0a88e8b4..2b029a42dbe 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -7207,7 +7207,7 @@ void Player::CheckDuelDistance(time_t currTime) bool Player::IsOutdoorPvPActive() const { return (IsAlive() && !IsGameMaster() && !HasInvisibilityAura() && !HasStealthAura() && - (HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_PVP_DESIRED) || sWorld.IsPvPRealm()) && !IsTaxiFlying()); + (IsPvPDesired() || sWorld.IsPvPRealm()) && !IsTaxiFlying()); } void Player::DuelComplete(DuelCompleteType type) @@ -14989,10 +14989,10 @@ bool Player::LoadFromDB(ObjectGuid guid, SqlQueryHolder* holder) SetUInt32Value(PLAYER_FLAGS, fields[15].GetUInt32() & ~(PLAYER_FLAGS_PARTIAL_PLAY_TIME | PLAYER_FLAGS_NO_PLAY_TIME)); - if (HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_PVP_DESIRED)) + if (IsPvPDesired()) { UpdatePvP(true); - RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_PVP_DESIRED); + SetPvPDesired(false); } time_t const now = time(nullptr); @@ -17498,7 +17498,7 @@ void Player::AddInstanceEnterTime(uint32 instanceId, time_t enterTime) const void Player::UpdatePvPFlagTimer(uint32 diff) { // Freeze flag timer while participating in PvP combat, in pvp enforced zone, in capture points, when carrying flag or on player preference - if (!pvpInfo.inPvPCombat && !pvpInfo.inPvPEnforcedArea && !pvpInfo.inPvPCapturePoint && !pvpInfo.isPvPFlagCarrier && !HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_PVP_DESIRED)) + if (!pvpInfo.inPvPCombat && !pvpInfo.inPvPEnforcedArea && !pvpInfo.inPvPCapturePoint && !pvpInfo.isPvPFlagCarrier && !IsPvPDesired()) pvpInfo.timerPvPRemaining -= std::min(pvpInfo.timerPvPRemaining, diff); // Timer tries to drop flag if all conditions are met and time has passed @@ -17515,6 +17515,14 @@ void Player::UpdatePvPContestedFlagTimer(uint32 diff) UpdatePvPContested(false); } +void Player::SetPvPDesired(bool state) +{ + if (state) + SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_PVP_DESIRED); + else + RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_PVP_DESIRED); +} + void Player::SetFFAPvP(bool state) { if (state) @@ -18281,8 +18289,16 @@ bool Player::ActivateTaxiPathTo(std::vector const& nodes, Creature* npc return false; } - // Remove pvp flag when starting a flight - UpdatePvP(false); + // World of Warcraft Client Patch 1.6.0 (2005-07-12) + // - If you have PvP combat toggled on, it will no longer be cleared when + // taking a flight. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_5_1 + if (!IsPvPDesired()) + UpdatePvP(false, true); +#else + SetPvPDesired(false); + UpdatePvP(false, true); +#endif //Checks and preparations done, DO FLIGHT ModifyMoney(-(int32)sourceCost); diff --git a/src/game/Objects/Player.h b/src/game/Objects/Player.h index bdcedf2f260..2bf8f109655 100644 --- a/src/game/Objects/Player.h +++ b/src/game/Objects/Player.h @@ -2384,6 +2384,8 @@ class Player final: public Unit void UpdatePvP(bool state, bool overriding = false); void UpdatePvPContested(bool state, bool overriding = false); + bool IsPvPDesired() const { return HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_PVP_DESIRED); } + void SetPvPDesired(bool state); bool IsFFAPvP() const { return HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_FFA_PVP); } void SetFFAPvP(bool state); bool IsInInterFactionMode() const; From d391cd1e771a1468d8d94f6ad31e3a32008b2d26 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 24 Oct 2023 15:27:02 +0300 Subject: [PATCH 242/426] It was not possible to parry with fist weapons before 1.6. --- src/game/Objects/Player.cpp | 23 +++++++++++++++++++++++ src/game/Objects/Unit.cpp | 11 ++--------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index 2b029a42dbe..5333257ae20 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -8956,6 +8956,29 @@ Item* Player::GetWeaponForAttack(WeaponAttackType attackType, bool nonbroken, bo return item; } +bool Player::HasWeaponForParry() const +{ + Item* pWeapon = GetWeaponForAttack(BASE_ATTACK, true, true); + + // World of Warcraft Client Patch 1.6.0 (2005-07-12) + // - Fist Weapons will now have the normal chance to parry that all + // weapons use. +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_5_1 + if (pWeapon && pWeapon->GetProto()->SubClass == ITEM_SUBCLASS_WEAPON_FIST) + pWeapon = nullptr; +#endif + + if (!pWeapon) + pWeapon = GetWeaponForAttack(OFF_ATTACK, true, true); + +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_5_1 + if (pWeapon && pWeapon->GetProto()->SubClass == ITEM_SUBCLASS_WEAPON_FIST) + pWeapon = nullptr; +#endif + + return pWeapon != nullptr; +} + uint32 Player::GetAttackBySlot(uint8 slot) { switch (slot) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index f5551276a24..2a9d342198f 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -2684,15 +2684,8 @@ float Unit::GetUnitParryChance() const if (Player const* pPlayer = ToPlayer()) { - if (pPlayer->CanParry()) - { - Item* tmpitem = pPlayer->GetWeaponForAttack(BASE_ATTACK, true, true); - if (!tmpitem) - tmpitem = pPlayer->GetWeaponForAttack(OFF_ATTACK, true, true); - - if (tmpitem) - chance = GetFloatValue(PLAYER_PARRY_PERCENTAGE); - } + if (pPlayer->CanParry() && pPlayer->HasWeaponForParry()) + chance = GetFloatValue(PLAYER_PARRY_PERCENTAGE); } else { From 8b90f79858863e9ab100d87b9aac3982662ab1f4 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 24 Oct 2023 17:22:11 +0300 Subject: [PATCH 243/426] Fix build. --- src/game/Objects/Player.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/game/Objects/Player.h b/src/game/Objects/Player.h index 2bf8f109655..229510ce115 100644 --- a/src/game/Objects/Player.h +++ b/src/game/Objects/Player.h @@ -1093,6 +1093,7 @@ class Player final: public Unit Item* GetItemByPos(uint8 bag, uint8 slot) const; Item* GetWeaponForAttack(WeaponAttackType attackType) const { return GetWeaponForAttack(attackType,false,false); } Item* GetWeaponForAttack(WeaponAttackType attackType, bool nonbroken, bool useable) const; + bool HasWeaponForParry() const; static uint32 GetAttackBySlot(uint8 slot); // MAX_ATTACK if not weapon slot uint32 GetHighestKnownArmorProficiency() const; std::vector& GetItemUpdateQueue() { return m_itemUpdateQueue; } From e8cb6cdda6d58916e6d1e0f39a87a2e830c0007a Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 25 Oct 2023 01:38:04 +0300 Subject: [PATCH 244/426] Punctured Voodoo Doll should only drop from Jinxed Hoodoo Pile. --- sql/migrations/20231024223737_world.sql | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 sql/migrations/20231024223737_world.sql diff --git a/sql/migrations/20231024223737_world.sql b/sql/migrations/20231024223737_world.sql new file mode 100644 index 00000000000..faa25174c3a --- /dev/null +++ b/sql/migrations/20231024223737_world.sql @@ -0,0 +1,21 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231024223737'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231024223737'); +-- Add your query below. + + +-- Punctured Voodoo Doll should only drop from Jinxed Hoodoo Pile. +DELETE FROM `creature_loot_template` WHERE `item` IN (19813, 19814, 19815, 19816, 19817, 19818, 19819, 19820, 19821); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 49dae01237e83f0504e00d28f0203ae6b07ec043 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 25 Oct 2023 01:52:47 +0300 Subject: [PATCH 245/426] Make bots learn trainers spells if no spec template exists. --- src/game/Chat/Chat.h | 1 + src/game/PlayerBots/CombatBotBaseAI.cpp | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/game/Chat/Chat.h b/src/game/Chat/Chat.h index 349b2134c26..a0a42f50fdc 100644 --- a/src/game/Chat/Chat.h +++ b/src/game/Chat/Chat.h @@ -90,6 +90,7 @@ class BattleBotAI; class ChatHandler { + friend class CombatBotBaseAI; friend class PartyBotAI; friend class BattleBotAI; public: diff --git a/src/game/PlayerBots/CombatBotBaseAI.cpp b/src/game/PlayerBots/CombatBotBaseAI.cpp index d30170c83e3..b077288a54b 100644 --- a/src/game/PlayerBots/CombatBotBaseAI.cpp +++ b/src/game/PlayerBots/CombatBotBaseAI.cpp @@ -8,6 +8,7 @@ #include "WorldPacket.h" #include "Spell.h" #include "SpellAuras.h" +#include "Chat.h" #include "CharacterDatabaseCache.h" enum CombatBotSpells @@ -2609,7 +2610,7 @@ void CombatBotBaseAI::LearnPremadeSpecForClass() for (const auto itr : vSpecs) { if (itr->role == m_role && - (!pSpec || pSpec->level < itr->level)) + (!pSpec || pSpec->level < itr->level)) { pSpec = itr; } @@ -2622,6 +2623,12 @@ void CombatBotBaseAI::LearnPremadeSpecForClass() if (m_role == ROLE_INVALID) m_role = pSpec->role; } + else + { + // Use gm command to learn spells on trainers and items. + ChatHandler(me).HandleLearnAllTrainerCommand(""); + ChatHandler(me).HandleLearnAllItemsCommand(""); + } } void CombatBotBaseAI::EquipPremadeGearTemplate() From 773fb4c2899274106f41eb21fe85d95a050ec926 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 25 Oct 2023 01:53:32 +0300 Subject: [PATCH 246/426] I did not add this space. --- src/game/PlayerBots/CombatBotBaseAI.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/PlayerBots/CombatBotBaseAI.cpp b/src/game/PlayerBots/CombatBotBaseAI.cpp index b077288a54b..95f7a7659f0 100644 --- a/src/game/PlayerBots/CombatBotBaseAI.cpp +++ b/src/game/PlayerBots/CombatBotBaseAI.cpp @@ -2610,7 +2610,7 @@ void CombatBotBaseAI::LearnPremadeSpecForClass() for (const auto itr : vSpecs) { if (itr->role == m_role && - (!pSpec || pSpec->level < itr->level)) + (!pSpec || pSpec->level < itr->level)) { pSpec = itr; } From 414ca58bd6a5124d7c3eb79013712936ddbe3feb Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 25 Oct 2023 02:55:54 +0300 Subject: [PATCH 247/426] Allow bots to learn random talents. --- src/game/Objects/Player.cpp | 27 +++++----- src/game/Objects/Player.h | 2 +- src/game/PlayerBots/CombatBotBaseAI.cpp | 65 ++++++++++++++++++++++++- src/game/PlayerBots/CombatBotBaseAI.h | 1 + 4 files changed, 80 insertions(+), 15 deletions(-) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index 5333257ae20..77fd71dcac5 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -20886,29 +20886,29 @@ void Player::HandleFall(MovementInfo const& movementInfo) } } -void Player::LearnTalent(uint32 talentId, uint32 talentRank) +bool Player::LearnTalent(uint32 talentId, uint32 talentRank) { uint32 CurTalentPoints = GetFreeTalentPoints(); if (CurTalentPoints == 0) - return; + return false; if (talentRank >= MAX_TALENT_RANK) - return; + return false; TalentEntry const* talentInfo = sTalentStore.LookupEntry(talentId); if (!talentInfo) - return; + return false; TalentTabEntry const* talentTabInfo = sTalentTabStore.LookupEntry(talentInfo->TalentTab); if (!talentTabInfo) - return; + return false; // prevent learn talent for different class (cheating) if ((GetClassMask() & talentTabInfo->ClassMask) == 0) - return; + return false; // find current max talent rank uint32 curtalent_maxrank = 0; @@ -20923,11 +20923,11 @@ void Player::LearnTalent(uint32 talentId, uint32 talentRank) // we already have same or higher talent rank learned if (curtalent_maxrank >= (talentRank + 1)) - return; + return false; // check if we have enough talent points if (CurTalentPoints < (talentRank - curtalent_maxrank + 1)) - return; + return false; // Check if it requires another talent if (talentInfo->DependsOn > 0) @@ -20943,13 +20943,13 @@ void Player::LearnTalent(uint32 talentId, uint32 talentRank) } if (!hasEnoughRank) - return; + return false; } } // Check if it requires spell if (talentInfo->DependsOnSpell && !HasSpell(talentInfo->DependsOnSpell)) - return; + return false; // Find out how many points we have in this field uint32 spentPoints = 0; @@ -20981,23 +20981,24 @@ void Player::LearnTalent(uint32 talentId, uint32 talentRank) // not have required min points spent in talent tree if (spentPoints < (talentInfo->Row * MAX_TALENT_RANK)) - return; + return false; // spell not set in talent.dbc uint32 spellid = talentInfo->RankID[talentRank]; if (spellid == 0) { sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "Talent.dbc have for talent: %u Rank: %u spell id = 0", talentId, talentRank); - return; + return false; } // already known if (HasSpell(spellid)) - return; + return false; // learn! (other talent ranks will unlearned at learning) LearnSpell(spellid, false, true); sLog.Out(LOG_BASIC, LOG_LVL_DETAIL, "TalentID: %u Rank: %u Spell: %u\n", talentId, talentRank, spellid); + return true; } void Player::UpdateFallInformationIfNeed(MovementInfo const& minfo, uint16 opcode) diff --git a/src/game/Objects/Player.h b/src/game/Objects/Player.h index 229510ce115..27eb9ddeeaa 100644 --- a/src/game/Objects/Player.h +++ b/src/game/Objects/Player.h @@ -1601,7 +1601,7 @@ class Player final: public Unit void SetFreeTalentPoints(uint32 points) { SetUInt32Value(PLAYER_CHARACTER_POINTS1, points); } bool ResetTalents(bool no_cost = false); void InitTalentForLevel(); - void LearnTalent(uint32 talentId, uint32 talentRank); + bool LearnTalent(uint32 talentId, uint32 talentRank); /*********************************************************/ /*** STAT SYSTEM ***/ diff --git a/src/game/PlayerBots/CombatBotBaseAI.cpp b/src/game/PlayerBots/CombatBotBaseAI.cpp index 95f7a7659f0..a58b7096995 100644 --- a/src/game/PlayerBots/CombatBotBaseAI.cpp +++ b/src/game/PlayerBots/CombatBotBaseAI.cpp @@ -1,4 +1,4 @@ -#include +#include "World.h" #include "CombatBotBaseAI.h" #include "ObjectMgr.h" #include "Player.h" @@ -10,6 +10,7 @@ #include "SpellAuras.h" #include "Chat.h" #include "CharacterDatabaseCache.h" +#include enum CombatBotSpells { @@ -2626,11 +2627,73 @@ void CombatBotBaseAI::LearnPremadeSpecForClass() else { // Use gm command to learn spells on trainers and items. + LearnRandomTalents(); ChatHandler(me).HandleLearnAllTrainerCommand(""); ChatHandler(me).HandleLearnAllItemsCommand(""); } } +void CombatBotBaseAI::LearnRandomTalents() +{ + if (!me->GetFreeTalentPoints()) + return; + + std::vector talentTabsForClass; + for (uint32 talentTab = 0; talentTab < sTalentTabStore.GetNumRows(); ++talentTab) + { + TalentTabEntry const* talentTabInfo = sTalentTabStore.LookupEntry(talentTab); + if (!talentTabInfo) + continue; + + if ((me->GetClassMask() & talentTabInfo->ClassMask) == 0) + continue; + + talentTabsForClass.push_back(talentTab); + } + + if (talentTabsForClass.empty()) + return; + + uint32 chosenTab = SelectRandomContainerElement(talentTabsForClass); + + std::map>> possibleTalents; + for (uint32 talentId = 0; talentId < sTalentStore.GetNumRows(); ++talentId) + { + TalentEntry const* talentInfo = sTalentStore.LookupEntry(talentId); + if (!talentInfo) + continue; + + if (talentInfo->TalentTab != chosenTab) + continue; + + uint32 ranks; + for (ranks = 0; ranks < MAX_TALENT_RANK && talentInfo->RankID[ranks]; ++ranks); + possibleTalents[talentInfo->Row].push_back({ talentId, ranks }); + } + + if (possibleTalents.empty()) + return; + + auto seed = std::chrono::system_clock::now().time_since_epoch().count(); + for (auto& itrRow : possibleTalents) + { + std::shuffle(itrRow.second.begin(), itrRow.second.end(), std::default_random_engine(seed)); + for (auto const& itrTalent: itrRow.second) + { + for (uint32 rank = 0; rank < itrTalent.second; ++rank) + { + if (me->LearnTalent(itrTalent.first, rank)) + { + if (!me->GetFreeTalentPoints()) + return; + } + else + break; + } + } + } +} + void CombatBotBaseAI::EquipPremadeGearTemplate() { std::vector vGear; diff --git a/src/game/PlayerBots/CombatBotBaseAI.h b/src/game/PlayerBots/CombatBotBaseAI.h index e1200f5e86e..0ecccdd7545 100644 --- a/src/game/PlayerBots/CombatBotBaseAI.h +++ b/src/game/PlayerBots/CombatBotBaseAI.h @@ -97,6 +97,7 @@ class CombatBotBaseAI : public PlayerBotAI void EquipPremadeGearTemplate(); void EquipRandomGearInEmptySlots(); void AutoEquipGear(uint32 option); + void LearnRandomTalents(); uint8 GetAttackersInRangeCount(float range) const; Unit* SelectAttackerDifferentFrom(Unit const* pExcept) const; From 579f4c94e3011b49a92b5f54fd909eb64bc93059 Mon Sep 17 00:00:00 2001 From: ratkosrb <35845488+ratkosrb@users.noreply.github.com> Date: Fri, 27 Oct 2023 16:01:33 +0300 Subject: [PATCH 248/426] Fix zone and area update on teleport. --- src/game/Objects/Unit.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 2a9d342198f..5a8cce35964 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -9731,9 +9731,12 @@ void Unit::TeleportPositionRelocation(float x, float y, float z, float orientati { Player* player = ToPlayer(); Creature* crea = ToCreature(); - uint32 old_zone = 0; + uint32 oldZone = 0; + uint32 oldArea = 0; if (player) { + oldZone = player->GetCachedZoneId(); + oldArea = player->GetCachedAreaId(); player->SetPosition(x, y, z, orientation, true); player->m_movementInfo.ChangePosition(x, y, z, orientation); } @@ -9748,10 +9751,12 @@ void Unit::TeleportPositionRelocation(float x, float y, float z, float orientati // new zone if (player) { - uint32 newzone, newarea; - GetZoneAndAreaId(newzone, newarea); - if (old_zone != newzone) - player->UpdateZone(newzone, newarea); + uint32 newZone, newArea; + GetZoneAndAreaId(newZone, newArea); + if (oldZone != newZone) + player->UpdateZone(newZone, newArea); + else if (oldArea != newArea) + player->UpdateArea(newArea); // honorless target if (!player->pvpInfo.inPvPEnforcedArea) player->RemoveDelayedOperation(DELAYED_CAST_HONORLESS_TARGET); From e139aff2b9ce4e8fa7829ed18f47a340c4bf1e10 Mon Sep 17 00:00:00 2001 From: balakethelock <111737968+balakethelock@users.noreply.github.com> Date: Sat, 28 Oct 2023 15:16:29 +0100 Subject: [PATCH 249/426] Naxxramas Worshipper should always die when casting Widow's Embrace (#2254) --- src/game/Spells/SpellEffects.cpp | 6 ++++++ .../eastern_plaguelands/naxxramas/boss_faerlina.cpp | 3 --- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/game/Spells/SpellEffects.cpp b/src/game/Spells/SpellEffects.cpp index d673c06b3ba..406962c2bd9 100644 --- a/src/game/Spells/SpellEffects.cpp +++ b/src/game/Spells/SpellEffects.cpp @@ -5259,6 +5259,12 @@ void Spell::EffectScriptEffect(SpellEffectIndex effIdx) return; } + case 28732: // Naxxramas Worshipper - Widow's Embrace + { + if (m_casterUnit) + m_casterUnit->Kill(m_casterUnit, nullptr); + return; + } } break; } diff --git a/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/boss_faerlina.cpp b/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/boss_faerlina.cpp index e3a70c95f62..0461d3bd191 100644 --- a/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/boss_faerlina.cpp +++ b/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/boss_faerlina.cpp @@ -117,9 +117,6 @@ struct boss_faerlinaAI : public ScriptedAI { m_uiEnrageTimer = std::max(m_uiEnrageTimer, (uint32)30000); m_creature->RemoveAurasDueToSpell(SPELL_ENRAGE); - - if (Unit* pUnit = pCaster->ToUnit()) - pUnit->Kill(pUnit, nullptr); } } From 747b1d80cd1e2d0d3a6de72b35d8bd56d317bd44 Mon Sep 17 00:00:00 2001 From: ratkosrb <35845488+ratkosrb@users.noreply.github.com> Date: Sat, 28 Oct 2023 17:24:07 +0300 Subject: [PATCH 250/426] Move case up so ids are in order. --- src/game/Spells/SpellEffects.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/game/Spells/SpellEffects.cpp b/src/game/Spells/SpellEffects.cpp index 406962c2bd9..827a8bbf928 100644 --- a/src/game/Spells/SpellEffects.cpp +++ b/src/game/Spells/SpellEffects.cpp @@ -5228,12 +5228,16 @@ void Spell::EffectScriptEffect(SpellEffectIndex effIdx) } return; } - case 29710: + case 28732: // Naxxramas Worshipper - Widow's Embrace + { + if (m_casterUnit && m_casterUnit->IsAlive()) + m_casterUnit->Kill(m_casterUnit, nullptr); + return; + } + case 29710: // Test Ribbon Pole Channel Trigger { if (Player* pPlayerTarget = ToPlayer(unitTarget)) - { pPlayerTarget->CastSpell(pPlayerTarget, PickRandomValue(29705, 29726, 29727), false); - } return; } case 30882: // EPL PvP A Game of Towers: Tower Capture Test (DND) @@ -5256,13 +5260,6 @@ void Spell::EffectScriptEffect(SpellEffectIndex effIdx) { if (Player* pTarget = ToPlayer(unitTarget)) pTarget->CastSpell(pTarget, 32061, true); - - return; - } - case 28732: // Naxxramas Worshipper - Widow's Embrace - { - if (m_casterUnit) - m_casterUnit->Kill(m_casterUnit, nullptr); return; } } From d5c3428f8a2e8a2973f0fac1684bc85fafd3057a Mon Sep 17 00:00:00 2001 From: Daribon Date: Sat, 28 Oct 2023 16:29:42 +0200 Subject: [PATCH 251/426] Correct Splintertree Guard waypoints. (#2250) --- sql/migrations/20231024182151_world.sql | 77 +++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 sql/migrations/20231024182151_world.sql diff --git a/sql/migrations/20231024182151_world.sql b/sql/migrations/20231024182151_world.sql new file mode 100644 index 00000000000..00df0bea2e1 --- /dev/null +++ b/sql/migrations/20231024182151_world.sql @@ -0,0 +1,77 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231024182151'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231024182151'); +-- Add your query below. + + +-- Pathing for Splintertree Guard Entry: 12903 +-- https://www.youtube.com/live/4uDKl_r7OIw?si=cs2WtZKzu2B3ZnWM&t=232 +SET @NPC := 32623; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=2305.6536,`position_y`=-2550.2715,`position_z`=100.70346 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,2305.6536,-2550.2715,100.70346,100,0,0,0), +(@NPC,2,2320.4414,-2544.7986,100.68983,100,0,0,0), +(@NPC,3,2336.4138,-2536.1184,101.829575,100,0,0,0), +(@NPC,4,2348.8645,-2534.3699,102.11692,100,0,0,0), +(@NPC,5,2342.5828,-2526.8362,103.06633,100,0,0,0), +(@NPC,6,2324.8792,-2520.156,103.037346,100,0,0,0), +(@NPC,7,2316.6108,-2524.2607,102.05329,100,0,0,0), +(@NPC,8,2305.7375,-2532.9563,100.88463,100,0,0,0), +(@NPC,9,2285.1802,-2527.936,97.85593,100,0,0,0), +(@NPC,10,2262.4934,-2518.56,98.617035,100,0,0,0), +(@NPC,11,2264.2805,-2529.6611,94.087814,100,0,0,0), +(@NPC,12,2252.7747,-2533.5344,91.64225,100,0,0,0), +(@NPC,13,2240.312,-2532.841,89.443016,100,0,0,0), +(@NPC,14,2245.8562,-2550.6584,89.95945,100,0,0,0), +(@NPC,15,2273.6265,-2542.931,94.59833,100,0,0,0), +(@NPC,16,2282.1138,-2548.865,97.44248,100,0,0,0), +(@NPC,17,2279.5781,-2563.7222,103.19528,100,0,0,0), +(@NPC,18,2293.5852,-2547.6506,99.13072,100,0,0,0); +-- 0x204CB000200C99C000007400019C65F2 .go xyz 2305.6536 -2550.2715 100.70346 + +-- Pathing for Splintertree Guard Entry: 12903 +SET @NPC := 32620; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=2389.056,`position_y`=-2524.0889,`position_z`=111.42044 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,2389.056,-2524.0889,111.42044,100,0,0,0), +(@NPC,2,2369.499,-2529.2454,107.823845,100,0,0,0), +(@NPC,3,2353.0435,-2531.489,102.14075,100,0,0,0), +(@NPC,4,2333.2283,-2537.964,101.37258,100,0,0,0), +(@NPC,5,2311.78,-2535.9263,100.4012,100,0,0,0), +(@NPC,6,2290.931,-2541.0503,97.81742,100,0,0,0), +(@NPC,7,2259.7087,-2539.0344,91.77838,100,0,0,0), +(@NPC,8,2211.571,-2538.0688,83.18335,100,0,0,0), +(@NPC,9,2187.3528,-2517.154,81.10344,100,0,0,0), +(@NPC,10,2150.718,-2495.4524,79.76278,100,0,0,0), +(@NPC,11,2126.2083,-2481.109,80.54295,100,0,0,0), +(@NPC,12,2103.798,-2462.6853,82.396904,100,0,0,0), +(@NPC,13,2077.4724,-2436.4202,85.90849,100,0,0,0), +(@NPC,14,2041.5533,-2409.3213,87.79275,100,0,0,0), +(@NPC,15,2077.4724,-2436.4202,85.90849,100,0,0,0), +(@NPC,16,2103.669,-2462.58,82.39989,100,0,0,0), +(@NPC,17,2126.2083,-2481.109,80.54295,100,0,0,0), +(@NPC,18,2150.718,-2495.4524,79.76278,100,0,0,0), +(@NPC,19,2187.3528,-2517.154,81.10344,100,0,0,0), +(@NPC,20,2211.571,-2538.0688,83.18335,100,0,0,0), +(@NPC,21,2259.7087,-2539.0344,91.77838,100,0,0,0), +(@NPC,22,2290.931,-2541.0503,97.81742,100,0,0,0), +(@NPC,23,2311.78,-2535.9263,100.4012,100,0,0,0), +(@NPC,24,2333.2283,-2537.964,101.37258,100,0,0,0), +(@NPC,25,2353.0435,-2531.489,102.14075,100,0,0,0), +(@NPC,26,2369.499,-2529.2454,107.823845,100,0,0,0); +-- 0x204CB000200C99C000007400001C65F2 .go xyz 2389.056 -2524.0889 111.42044 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 6810237d856815c88acca93c699d2e816503d733 Mon Sep 17 00:00:00 2001 From: Daribon Date: Sat, 28 Oct 2023 16:34:45 +0200 Subject: [PATCH 252/426] Correct Stonetalon Grunt waypoints. (#2253) --- sql/migrations/20231024231735_world.sql | 80 +++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 sql/migrations/20231024231735_world.sql diff --git a/sql/migrations/20231024231735_world.sql b/sql/migrations/20231024231735_world.sql new file mode 100644 index 00000000000..03143a48f05 --- /dev/null +++ b/sql/migrations/20231024231735_world.sql @@ -0,0 +1,80 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231024231735'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231024231735'); +-- Add your query below. + + +-- Pathing for Stonetalon Grunt Entry: 7730 +SET @NPC := 29225; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=918.57745,`position_y`=1063.6381,`position_z`=105.48613 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,918.57745,1063.6381,105.48613,100,0,0,0), +(@NPC,2,924.49524,1057.6725,105.318115,100,0,0,0), +(@NPC,3,926.7589,1040.2358,105.65347,100,0,0,0), +(@NPC,4,923.363,1022.2447,102.83465,100,0,0,0), +(@NPC,5,926.2235,1006.6331,105.61268,100,0,0,0), +(@NPC,6,928.36914,994.52716,102.83914,100,0,0,0), +(@NPC,7,932.93317,982.3051,102.64874,100,0,0,0), +(@NPC,8,940.7857,969.80927,103.11479,100,0,0,0), +(@NPC,9,940.15625,961.43146,103.29346,100,0,0,0), +(@NPC,10,935.6819,945.2628,103.284996,100,0,0,0), +(@NPC,11,935.22266,934.243,104.140854,100,0,0,0), +(@NPC,12,933.8903,921.1858,103.841606,100,0,0,0), +(@NPC,13,936.9965,911.3036,104.413994,100,0,0,0), +(@NPC,14,931.44293,903.93634,104.42827,100,0,0,0), +(@NPC,15,923.4308,906.7333,105.03448,100,0,0,0), +(@NPC,16,931.44293,903.93634,104.42827,100,0,0,0), +(@NPC,17,936.9965,911.3036,104.413994,100,0,0,0), +(@NPC,18,933.8903,921.1858,103.841606,100,0,0,0), +(@NPC,19,935.22266,934.243,104.140854,100,0,0,0), +(@NPC,20,935.6846,945.2324,103.30251,100,0,0,0), +(@NPC,21,940.15625,961.43146,103.29346,100,0,0,0), +(@NPC,22,940.7857,969.80927,103.11479,100,0,0,0), +(@NPC,23,932.93317,982.3051,102.64874,100,0,0,0), +(@NPC,24,928.36914,994.52716,102.83914,100,0,0,0), +(@NPC,25,926.2235,1006.6331,105.61268,100,0,0,0), +(@NPC,26,923.363,1022.2447,102.83465,100,0,0,0), +(@NPC,27,926.7589,1040.2358,105.65347,100,0,0,0), +(@NPC,28,924.49524,1057.6725,105.318115,100,0,0,0); +-- 0x204CB00020078C8000007800009C65EE .go xyz 918.57745 1063.6381 105.48613 + +-- Pathing for Stonetalon Grunt Entry: 7730 +SET @NPC := 29231; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=930.31036,`position_y`=822.6024,`position_z`=105.069115 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,930.31036,822.6024,105.069115,100,0,0,0), +(@NPC,2,930.3479,844.14966,105.52287,100,0,0,0), +(@NPC,3,929.8289,864.2955,105.3141,100,0,0,0), +(@NPC,4,935.5893,882.4848,104.43348,100,0,0,0), +(@NPC,5,933.9421,896.86426,104.3853,100,0,0,0), +(@NPC,6,937.62823,911.3337,104.40768,100,0,0,0), +(@NPC,7,948.3455,914.2003,104.78436,100,0,0,0), +(@NPC,8,961.7512,920.89966,104.610146,100,0,0,0), +(@NPC,9,967.3431,941.7137,104.65217,100,0,0,0), +(@NPC,10,976.31165,959.5086,104.483734,100,0,0,0), +(@NPC,11,981.21027,970.241,104.51577,100,0,0,0), +(@NPC,12,976.31165,959.5086,104.483734,100,0,0,0), +(@NPC,13,967.3431,941.7137,104.65217,100,0,0,0), +(@NPC,14,961.7512,920.89966,104.610146,100,0,0,0), +(@NPC,15,948.3455,914.2003,104.78436,100,0,0,0), +(@NPC,16,937.62823,911.3337,104.40768,100,0,0,0), +(@NPC,17,933.9421,896.86426,104.3853,100,0,0,0), +(@NPC,18,935.5893,882.4848,104.43348,100,0,0,0), +(@NPC,19,929.8289,864.2955,105.3141,100,0,0,0), +(@NPC,20,930.3479,844.14966,105.52287,100,0,0,0); +-- 0x204CB00020078C8000007800029C65F0 .go xyz 930.31036 822.6024 105.069115 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 1e3e00a6412e781fa6753085ce5d052483250c11 Mon Sep 17 00:00:00 2001 From: TuriansNotBad <54774532+TuriansNotBad@users.noreply.github.com> Date: Sat, 28 Oct 2023 20:10:59 +0500 Subject: [PATCH 253/426] Druid talent Furor did not work with Cat Form in 1.11.2 (#2239) --- src/game/Spells/SpellAuras.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index e73171c7b53..06fb2c3c552 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -2597,6 +2597,11 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real) switch (form) { case FORM_CAT: +#if SUPPORTED_CLIENT_BUILD == CLIENT_BUILD_1_11_2 + // World of Warcraft Client Patch 1.12.0 (2006-08-22) + // - Furor: This talent now works correctly with Cat Form again. + break; +#endif case FORM_BEAR: case FORM_DIREBEAR: { From 0d6efb7963d2b5d8eca4bbab6a7ef68fbca02132 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 30 Oct 2023 15:12:41 +0200 Subject: [PATCH 254/426] Talisman of Ascendance should most likely only proc once per cast. --- sql/migrations/20231030131142_world.sql | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 sql/migrations/20231030131142_world.sql diff --git a/sql/migrations/20231030131142_world.sql b/sql/migrations/20231030131142_world.sql new file mode 100644 index 00000000000..5410581c0a9 --- /dev/null +++ b/sql/migrations/20231030131142_world.sql @@ -0,0 +1,21 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231030131142'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231030131142'); +-- Add your query below. + + +-- Talisman of Ascendance should most likely only proc once per cast. +INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`, `build_min`, `build_max`) VALUES (28200, 0, 0, 0, 0, 0, 0, 524288, 0, 0, 0, 5464, 5875); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From f85877f7e2adcf691376edadd18ee022ceeeeebe Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 30 Oct 2023 19:01:24 +0200 Subject: [PATCH 255/426] AV did not award honor for owning graveyards before patch 1.7. --- src/game/Battlegrounds/BattleGroundAV.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/game/Battlegrounds/BattleGroundAV.cpp b/src/game/Battlegrounds/BattleGroundAV.cpp index b46c3dc2727..8682b6e313b 100644 --- a/src/game/Battlegrounds/BattleGroundAV.cpp +++ b/src/game/Battlegrounds/BattleGroundAV.cpp @@ -960,16 +960,25 @@ void BattleGroundAV::EndBattleGround(Team winner) RewardHonorToTeam(uint32(GetBonusHonorFromKill(towersSurvived[i] * BG_AV_KILL_SURVIVING_TOWER) * GetHonorModifier()), team[i]); } sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "BattleGroundAV: EndbattleGround: bgteam: %u towers:%u honor:%u rep:%u", i, towersSurvived[i], GetBonusHonorFromKill(towersSurvived[i] * BG_AV_KILL_SURVIVING_TOWER), towersSurvived[i] * BG_AV_REP_SURVIVING_TOWER); - if (gravesOwned[i]) + + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - Alterac Valley now correctly rewards honor for owning graveyards at + // the end of the game. + if (sWorld.GetWowPatch() >= WOW_PATCH_107) { - RewardReputationToTeam(faction[i], gravesOwned[i] * m_repOwnedGrave, team[i]); - RewardHonorToTeam(uint32(GetBonusHonorFromKill(gravesOwned[i] * BG_AV_KILL_SURVIVING_GRAVE) * GetHonorModifier()), team[i]); + if (gravesOwned[i]) + { + RewardReputationToTeam(faction[i], gravesOwned[i] * m_repOwnedGrave, team[i]); + RewardHonorToTeam(uint32(GetBonusHonorFromKill(gravesOwned[i] * BG_AV_KILL_SURVIVING_GRAVE) * GetHonorModifier()), team[i]); + } } + if (minesOwned[i]) { RewardReputationToTeam(faction[i], minesOwned[i] * m_repOwnedMine, team[i]); RewardHonorToTeam(uint32(GetBonusHonorFromKill(minesOwned[i] * BG_AV_KILL_SURVIVING_MINE) * GetHonorModifier()), team[i]); } + // captain survived?: if (!IsActiveEvent(BG_AV_NodeEventCaptainDead_A + GetTeamIndexByTeamId(team[i]), 0)) { From a9e2d972c8c44068191a6b16974f980ae3985511 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 30 Oct 2023 19:52:58 +0200 Subject: [PATCH 256/426] Leaving BG through portal always sent you to exit before patch 1.7. --- sql/migrations/20231030173812_world.sql | 26 ++++++++++++++ src/game/Battlegrounds/BattleGround.h | 2 +- src/game/Battlegrounds/BattleGroundAB.cpp | 21 ++++++----- src/game/Battlegrounds/BattleGroundAB.h | 2 +- src/game/Battlegrounds/BattleGroundAV.cpp | 37 +++++++++++-------- src/game/Battlegrounds/BattleGroundAV.h | 2 +- src/game/Battlegrounds/BattleGroundWS.cpp | 44 +++++++++++++---------- src/game/Battlegrounds/BattleGroundWS.h | 2 +- src/game/Handlers/MiscHandler.cpp | 4 +-- src/game/Language.h | 4 +-- 10 files changed, 95 insertions(+), 49 deletions(-) create mode 100644 sql/migrations/20231030173812_world.sql diff --git a/sql/migrations/20231030173812_world.sql b/sql/migrations/20231030173812_world.sql new file mode 100644 index 00000000000..d1d394851fc --- /dev/null +++ b/sql/migrations/20231030173812_world.sql @@ -0,0 +1,26 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231030173812'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231030173812'); +-- Add your query below. + + +-- Horde battleground exit triggers. +UPDATE `areatrigger_teleport` SET `required_condition`=2 WHERE `id` IN (2606, 3949, 3669); +-- Alliance battleground exit triggers. +UPDATE `areatrigger_teleport` SET `required_condition`=3 WHERE `id` IN (2608, 3948, 3671); + +-- Remove texts that exist elsewhere. +DELETE FROM `mangos_string` WHERE `entry` IN (752, 753); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Battlegrounds/BattleGround.h b/src/game/Battlegrounds/BattleGround.h index 3a59e886661..fa7a0986720 100644 --- a/src/game/Battlegrounds/BattleGround.h +++ b/src/game/Battlegrounds/BattleGround.h @@ -474,7 +474,7 @@ class BattleGround /* Triggers handle */ // must be implemented in BG subclass - virtual void HandleAreaTrigger(Player* /*source*/, uint32 /*trigger*/) {} + virtual bool HandleAreaTrigger(Player* /*source*/, uint32 /*trigger*/) { return false; } // must be implemented in BG subclass if need AND call base class generic code virtual void HandleKillPlayer(Player* pVictim, Player* pKiller); virtual void HandleKillUnit(Creature* /*unit*/, Player* /*killer*/) { }; diff --git a/src/game/Battlegrounds/BattleGroundAB.cpp b/src/game/Battlegrounds/BattleGroundAB.cpp index ebb0835ab49..4039a9c8159 100644 --- a/src/game/Battlegrounds/BattleGroundAB.cpp +++ b/src/game/Battlegrounds/BattleGroundAB.cpp @@ -181,22 +181,24 @@ void BattleGroundAB::RemovePlayer(Player* /*player*/, ObjectGuid /*guid*/) } -void BattleGroundAB::HandleAreaTrigger(Player* source, uint32 trigger) +bool BattleGroundAB::HandleAreaTrigger(Player* source, uint32 trigger) { switch (trigger) { case 3948: // Arathi Basin Alliance Exit. - if (source->GetTeam() != ALLIANCE) - source->GetSession()->SendNotification(LANG_BATTLEGROUND_ONLY_ALLIANCE_USE); - else + if (source->GetTeam() == ALLIANCE) + { source->LeaveBattleground(); - break; + return true; + } + return false; case 3949: // Arathi Basin Horde Exit. - if (source->GetTeam() != HORDE) - source->GetSession()->SendNotification(LANG_BATTLEGROUND_ONLY_HORDE_USE); - else + if (source->GetTeam() == HORDE) + { source->LeaveBattleground(); - break; + return true; + } + return false; case 3866: // Stables case 3869: // Gold Mine case 3867: // Farm @@ -210,6 +212,7 @@ void BattleGroundAB::HandleAreaTrigger(Player* source, uint32 trigger) //source->GetSession()->SendAreaTriggerMessage("Warning: Unhandled AreaTrigger in Battleground: %u", trigger); break; } + return false; } /* type: 0-neutral, 1-contested, 3-occupied diff --git a/src/game/Battlegrounds/BattleGroundAB.h b/src/game/Battlegrounds/BattleGroundAB.h index a523894975f..ef3caeab488 100644 --- a/src/game/Battlegrounds/BattleGroundAB.h +++ b/src/game/Battlegrounds/BattleGroundAB.h @@ -205,7 +205,7 @@ class BattleGroundAB : public BattleGround virtual void StartingEventCloseDoors(); virtual void StartingEventOpenDoors(); void RemovePlayer(Player* player, ObjectGuid guid); - void HandleAreaTrigger(Player* source, uint32 trigger); + bool HandleAreaTrigger(Player* source, uint32 trigger); virtual bool SetupBattleGround(); virtual void Reset(); void EndBattleGround(Team winner); diff --git a/src/game/Battlegrounds/BattleGroundAV.cpp b/src/game/Battlegrounds/BattleGroundAV.cpp index 8682b6e313b..281a51bbddc 100644 --- a/src/game/Battlegrounds/BattleGroundAV.cpp +++ b/src/game/Battlegrounds/BattleGroundAV.cpp @@ -1003,24 +1003,32 @@ void BattleGroundAV::RemovePlayer(Player* /*player*/, ObjectGuid /*guid*/) { } -void BattleGroundAV::HandleAreaTrigger(Player* source, uint32 trigger) +bool BattleGroundAV::HandleAreaTrigger(Player* source, uint32 trigger) { - // this is wrong way to implement these things. On official it done by gameobject spell cast. switch (trigger) { - case 95: - case 2608: - if (source->GetTeam() != ALLIANCE) - source->GetSession()->SendNotification(LANG_BATTLEGROUND_ONLY_ALLIANCE_USE); - else + case 2608: // Alterac Valley - Alliance Exit + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - Characters that use the Battlemaster to enter a Battleground will + // now port back to that Battlemaster when they leave the Battleground + // for any reason. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 + if (source->GetTeam() == ALLIANCE) + { source->LeaveBattleground(); - break; - case 2606: - if (source->GetTeam() != HORDE) - source->GetSession()->SendNotification(LANG_BATTLEGROUND_ONLY_HORDE_USE); - else + return true; + } +#endif + return false; + case 2606: // Alterac Valley - Horde Exit +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 + if (source->GetTeam() == HORDE) + { source->LeaveBattleground(); - break; + return true; + } +#endif + return false; case 3326: case 3327: case 3328: @@ -1028,12 +1036,13 @@ void BattleGroundAV::HandleAreaTrigger(Player* source, uint32 trigger) case 3330: case 3331: //source->Unmount(); - break; + return true; default: sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "BattleGroundAV: WARNING: Unhandled AreaTrigger in Battleground: %u", trigger); // source->GetSession()->SendAreaTriggerMessage("Warning: Unhandled AreaTrigger in Battleground: %u", trigger); break; } + return false; } void BattleGroundAV::UpdatePlayerScore(Player* source, uint32 type, uint32 value) diff --git a/src/game/Battlegrounds/BattleGroundAV.h b/src/game/Battlegrounds/BattleGroundAV.h index c34e978e9b2..70ff097c9c5 100644 --- a/src/game/Battlegrounds/BattleGroundAV.h +++ b/src/game/Battlegrounds/BattleGroundAV.h @@ -482,7 +482,7 @@ class BattleGroundAV : public BattleGround void FillInitialWorldStates(WorldPacket& data, uint32& count) override; void RemovePlayer(Player* plr, ObjectGuid guid) override; - void HandleAreaTrigger(Player* source, uint32 trigger) override; + bool HandleAreaTrigger(Player* source, uint32 trigger) override; void Reset() override; void ResetTamedEvent(uint32 teamIdx); diff --git a/src/game/Battlegrounds/BattleGroundWS.cpp b/src/game/Battlegrounds/BattleGroundWS.cpp index 1bc140fadc8..9b1ba9c991e 100644 --- a/src/game/Battlegrounds/BattleGroundWS.cpp +++ b/src/game/Battlegrounds/BattleGroundWS.cpp @@ -522,14 +522,11 @@ void BattleGroundWS::UpdateTeamScore(Team team) UpdateWorldState(BG_WS_FLAG_CAPTURES_HORDE, GetTeamScore(team)); } -void BattleGroundWS::HandleAreaTrigger(Player* source, uint32 trigger) +bool BattleGroundWS::HandleAreaTrigger(Player* source, uint32 trigger) { - // this is wrong way to implement these things. On official it done by gameobject spell cast. if (GetStatus() != STATUS_IN_PROGRESS) - return; + return false; - //uint32 SpellId = 0; - //uint64 buff_guid = 0; switch (trigger) { case 3686: // Alliance elixir of speed spawn. Trigger not working, because located inside other areatrigger, can be replaced by IsWithinDist(object, dist) in BattleGround::Update(). @@ -538,29 +535,39 @@ void BattleGroundWS::HandleAreaTrigger(Player* source, uint32 trigger) case 3708: // Horde elixir of regeneration spawn case 3707: // Alliance elixir of berserk spawn case 3709: // Horde elixir of berserk spawn - break; + return true; case AREATRIGGER_ALLIANCE_FLAG_SPAWN: // Alliance Flag spawn if (m_flagState[BG_TEAM_HORDE] && !m_flagState[BG_TEAM_ALLIANCE]) if (GetHordeFlagPickerGuid() == source->GetObjectGuid()) EventPlayerCapturedFlag(source); - break; + return true; case AREATRIGGER_HORDE_FLAG_SPAWN: // Horde Flag spawn if (m_flagState[BG_TEAM_ALLIANCE] && !m_flagState[BG_TEAM_HORDE]) if (GetAllianceFlagPickerGuid() == source->GetObjectGuid()) EventPlayerCapturedFlag(source); - break; - case 3669: // horde portal - if (source->GetTeam() != HORDE) - source->GetSession()->SendNotification(LANG_BATTLEGROUND_ONLY_HORDE_USE); - else + return true; + case 3669: // Warsong Gulch - Horde Exit + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - Characters that use the Battlemaster to enter a Battleground will + // now port back to that Battlemaster when they leave the Battleground + // for any reason. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 + if (source->GetTeam() == HORDE) + { source->LeaveBattleground(); - break; - case 3671: // alliance portal - if (source->GetTeam() != ALLIANCE) - source->GetSession()->SendNotification(LANG_BATTLEGROUND_ONLY_ALLIANCE_USE); - else + return true; + } +#endif + return false; + case 3671: // Warsong Gulch - Alliance Exit +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 + if (source->GetTeam() == ALLIANCE) + { source->LeaveBattleground(); - break; + return true; + } +#endif + return false; /*case 3649: // unk1 case 3688: // unk2 case 4628: // unk3 @@ -571,6 +578,7 @@ void BattleGroundWS::HandleAreaTrigger(Player* source, uint32 trigger) source->GetSession()->SendAreaTriggerMessage("Warning: Unhandled AreaTrigger in Battleground: %u", trigger); break; } + return false; } bool BattleGroundWS::SetupBattleGround() diff --git a/src/game/Battlegrounds/BattleGroundWS.h b/src/game/Battlegrounds/BattleGroundWS.h index 0f87ff7de6e..bd6b7ef55f8 100644 --- a/src/game/Battlegrounds/BattleGroundWS.h +++ b/src/game/Battlegrounds/BattleGroundWS.h @@ -148,7 +148,7 @@ class BattleGroundWS : public BattleGround virtual void EventPlayerCapturedFlag(Player* source); void RemovePlayer(Player* player, ObjectGuid guid); - void HandleAreaTrigger(Player* source, uint32 trigger); + bool HandleAreaTrigger(Player* source, uint32 trigger); void HandleKillPlayer(Player* pVictim, Player* pKiller); bool SetupBattleGround(); virtual void Reset(); diff --git a/src/game/Handlers/MiscHandler.cpp b/src/game/Handlers/MiscHandler.cpp index aa61e99da71..06eee4f077f 100644 --- a/src/game/Handlers/MiscHandler.cpp +++ b/src/game/Handlers/MiscHandler.cpp @@ -772,8 +772,8 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket& recv_data) if (pPlayer->InBattleGround()) { if (BattleGround* bg = pPlayer->GetBattleGround()) - bg->HandleAreaTrigger(pPlayer, triggerId); - return; + if (bg->HandleAreaTrigger(pPlayer, triggerId)) + return; } if (ZoneScript* pZoneScript = pPlayer->GetZoneScript()) { diff --git a/src/game/Language.h b/src/game/Language.h index fc9cd9bfd08..998eaf75f5e 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -775,8 +775,8 @@ enum MangosStrings // = 749, not used LANG_BATTLEGROUND_PREMATURE_FINISH_WARNING = 750, // "Not enough players. This game will close in %u mins." LANG_BATTLEGROUND_PREMATURE_FINISH_WARNING_SECS = 751, // "Not enough players. This game will close in %u seconds." - LANG_BATTLEGROUND_ONLY_ALLIANCE_USE = 752, // "Only The Alliance can use that portal" - LANG_BATTLEGROUND_ONLY_HORDE_USE = 753, // "Only The Horde can use that portal" +// = 752, not used +// = 753, not used // = 754, not used // = 755, not used // = 756, not used From 97de7f804a325ada9700218d48e67ae74371310e Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 30 Oct 2023 20:51:32 +0200 Subject: [PATCH 257/426] Corrections to faction leaders. --- sql/migrations/20231030181825_world.sql | 55 +++++++++++++++++++++++++ src/game/HonorMgr.h | 9 ++++ src/game/Objects/Player.cpp | 5 +-- 3 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 sql/migrations/20231030181825_world.sql diff --git a/sql/migrations/20231030181825_world.sql b/sql/migrations/20231030181825_world.sql new file mode 100644 index 00000000000..0eed2fb5545 --- /dev/null +++ b/sql/migrations/20231030181825_world.sql @@ -0,0 +1,55 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231030181825'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231030181825'); +-- Add your query below. + + +-- Highlord Bolvar Fordragon is a racial leader. +UPDATE `creature_template` SET `racial_leader`=1 WHERE `entry`=1748; + +-- Archbishop Benedictus is NOT a racial leader. +UPDATE `creature_template` SET `racial_leader`=0 WHERE `entry`=1284; +-- Varimathras is NOT a racial leader. +UPDATE `creature_template` SET `racial_leader`=0 WHERE `entry`=2425; +-- High Tinker Mekkatorque is NOT a racial leader. +UPDATE `creature_template` SET `racial_leader`=0 WHERE `entry`=7937; +-- Vol'jin is NOT a racial leader. +UPDATE `creature_template` SET `racial_leader`=0 WHERE `entry`=10540; + +/* +World of Warcraft Client Patch 1.7.0 (2005-09-13) +- Racial "Leaders" have been strengthened, and are now worth slightly + less honor. +*/ +DELETE FROM `creature_template` WHERE `entry` IN (1748, 2784, 3057, 3516, 4949, 10181); +INSERT INTO `creature_template` (`entry`, `patch`, `display_id1`, `display_id2`, `display_id3`, `display_id4`, `display_scale1`, `display_scale2`, `display_scale3`, `display_scale4`, `display_probability1`, `display_probability2`, `display_probability3`, `display_probability4`, `display_total_probability`, `mount_display_id`, `name`, `subname`, `gossip_menu_id`, `level_min`, `level_max`, `faction`, `npc_flags`, `speed_walk`, `speed_run`, `detection_range`, `call_for_help_range`, `leash_range`, `rank`, `xp_multiplier`, `health_multiplier`, `mana_multiplier`, `armor_multiplier`, `damage_multiplier`, `damage_variance`, `damage_school`, `base_attack_time`, `ranged_attack_time`, `holy_res`, `fire_res`, `nature_res`, `frost_res`, `shadow_res`, `arcane_res`, `unit_class`, `unit_flags`, `pet_family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `type`, `type_flags`, `loot_id`, `pickpocket_loot_id`, `skinning_loot_id`, `gold_min`, `gold_max`, `spell_id1`, `spell_id2`, `spell_id3`, `spell_id4`, `spell_list_id`, `pet_spell_list_id`, `spawn_spell_id`, `auras`, `ai_name`, `movement_type`, `inhabit_type`, `civilian`, `racial_leader`, `regeneration`, `equipment_id`, `trainer_id`, `vendor_id`, `mechanic_immune_mask`, `school_immune_mask`, `flags_extra`, `script_name`) VALUES +-- Pre 1.7 (guesswork) +-- Assuming 50% buff +-- health_multiplier 200->300 +-- damage_multiplier 10->15 +(1748, 0, 5566, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 'Highlord Bolvar Fordragon', NULL, 0, 63, 63, 12, 2, 1, 1.14286, 20, 5, 0, 3, 1, 200, 20, 1, 10, 0.14, 0, 2000, 2000, 0, 15, 15, 15, 15, 15, 2, 4096, 0, 0, 0, 0, 0, 7, 12, 0, 0, 0, 1, 866, 20683, 18819, 0, 0, 17480, 0, 0, '8990 18943', 'EventAI', 0, 3, 0, 1, 3, 1748, 0, 0, 1691041627, 0, 557064, ''), +(2784, 0, 3597, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 'King Magni Bronzebeard', 'Lord of Ironforge', 0, 63, 63, 55, 2, 1, 1.14286, 20, 5, 0, 3, 1, 200, 20, 1, 10, 0.14, 0, 2000, 2000, 0, 15, 15, 15, 15, 15, 1, 4160, 0, 0, 0, 0, 0, 7, 12, 0, 0, 0, 1, 866, 19135, 20685, 20686, 0, 27840, 0, 0, NULL, 'EventAI', 0, 3, 0, 1, 3, 2784, 0, 0, 1691041627, 0, 557064, ''), +(3057, 0, 4307, 0, 0, 0, 1.62, 0, 0, 0, 1, 0, 0, 0, 1, 0, 'Cairne Bloodhoof', 'High Chieftain', 5851, 63, 63, 104, 3, 1, 1.14286, 20, 5, 50, 3, 1, 200, 16, 1, 10, 0.14, 0, 2000, 2000, 0, 15, 15, 15, 15, 15, 1, 4160, 0, 0, 0, 0, 0, 7, 4, 0, 0, 0, 1, 866, 0, 0, 0, 0, 30570, 0, 0, NULL, 'EventAI', 0, 1, 0, 1, 3, 3057, 0, 0, 1691041627, 0, 557064, ''), +(3516, 0, 1542, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 'Arch Druid Fandral Staghelm', NULL, 1630, 63, 63, 80, 3, 1, 1.14286, 20, 5, 40, 3, 1, 200, 20, 1, 10, 0.14, 0, 2000, 2000, 0, 630, 504, 504, 504, 504, 2, 4160, 0, 0, 0, 0, 0, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35160, 0, 0, NULL, '', 0, 3, 0, 1, 3, 3516, 0, 0, 1691041627, 0, 557064, ''), +(4949, 0, 4527, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 100, 0, 'Thrall', 'Warchief', 3664, 63, 63, 125, 3, 1, 1.14286, 20, 5, 120, 3, 1, 200, 15, 1, 10, 0.14, 0, 2000, 2000, 0, 15, 15, 15, 15, 15, 2, 4160, 0, 0, 0, 0, 0, 7, 12, 0, 0, 0, 1, 866, 0, 0, 0, 0, 49490, 0, 0, NULL, 'EventAI', 0, 3, 0, 1, 3, 4949, 0, 0, 1691041627, 0, 557064, ''), +(10181, 0, 11657, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 100, 0, 'Lady Sylvanas Windrunner', 'Banshee Queen', 0, 63, 63, 118, 2, 1, 1.14286, 20, 5, 0, 3, 1, 200, 20, 1, 10, 0.14, 0, 2000, 2000, 0, 15, 15, 15, 15, 15, 2, 36928, 0, 0, 0, 0, 0, 7, 12, 0, 0, 0, 1, 866, 0, 0, 0, 0, 0, 0, 0, NULL, '', 0, 3, 0, 1, 3, 10181, 0, 0, 1691041627, 0, 2654216, 'npc_lady_sylvanas_windrunner'), +-- Post 1.7 +(1748, 5, 5566, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 'Highlord Bolvar Fordragon', NULL, 0, 63, 63, 12, 2, 1, 1.14286, 20, 5, 0, 3, 1, 300, 20, 1, 15, 0.14, 0, 2000, 2000, 0, 15, 15, 15, 15, 15, 2, 4096, 0, 0, 0, 0, 0, 7, 12, 0, 0, 0, 1, 866, 20683, 18819, 0, 0, 17480, 0, 0, '8990 18943', 'EventAI', 0, 3, 0, 1, 3, 1748, 0, 0, 1691041627, 0, 557064, ''), +(2784, 5, 3597, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 'King Magni Bronzebeard', 'Lord of Ironforge', 0, 63, 63, 55, 2, 1, 1.14286, 20, 5, 0, 3, 1, 300, 20, 1, 15, 0.14, 0, 2000, 2000, 0, 15, 15, 15, 15, 15, 1, 4160, 0, 0, 0, 0, 0, 7, 12, 0, 0, 0, 1, 866, 19135, 20685, 20686, 0, 27840, 0, 0, NULL, 'EventAI', 0, 3, 0, 1, 3, 2784, 0, 0, 1691041627, 0, 557064, ''), +(3057, 5, 4307, 0, 0, 0, 1.62, 0, 0, 0, 1, 0, 0, 0, 1, 0, 'Cairne Bloodhoof', 'High Chieftain', 5851, 63, 63, 104, 3, 1, 1.14286, 20, 5, 50, 3, 1, 300, 16, 1, 15, 0.14, 0, 2000, 2000, 0, 15, 15, 15, 15, 15, 1, 4160, 0, 0, 0, 0, 0, 7, 4, 0, 0, 0, 1, 866, 0, 0, 0, 0, 30570, 0, 0, NULL, 'EventAI', 0, 1, 0, 1, 3, 3057, 0, 0, 1691041627, 0, 557064, ''), +(3516, 5, 1542, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 'Arch Druid Fandral Staghelm', NULL, 1630, 63, 63, 80, 3, 1, 1.14286, 20, 5, 40, 3, 1, 300, 20, 1, 15, 0.14, 0, 2000, 2000, 0, 630, 504, 504, 504, 504, 2, 4160, 0, 0, 0, 0, 0, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35160, 0, 0, NULL, '', 0, 3, 0, 1, 3, 3516, 0, 0, 1691041627, 0, 557064, ''), +(4949, 5, 4527, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 100, 0, 'Thrall', 'Warchief', 3664, 63, 63, 125, 3, 1, 1.14286, 20, 5, 120, 3, 1, 300, 15, 1, 15, 0.14, 0, 2000, 2000, 0, 15, 15, 15, 15, 15, 2, 4160, 0, 0, 0, 0, 0, 7, 12, 0, 0, 0, 1, 866, 0, 0, 0, 0, 49490, 0, 0, NULL, 'EventAI', 0, 3, 0, 1, 3, 4949, 0, 0, 1691041627, 0, 557064, ''), +(10181, 5, 11657, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 100, 0, 'Lady Sylvanas Windrunner', 'Banshee Queen', 0, 63, 63, 118, 2, 1, 1.14286, 20, 5, 0, 3, 1, 300, 20, 1, 15, 0.14, 0, 2000, 2000, 0, 15, 15, 15, 15, 15, 2, 36928, 0, 0, 0, 0, 0, 7, 12, 0, 0, 0, 1, 866, 0, 0, 0, 0, 0, 0, 0, NULL, '', 0, 3, 0, 1, 3, 10181, 0, 0, 1691041627, 0, 2654216, 'npc_lady_sylvanas_windrunner'); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/HonorMgr.h b/src/game/HonorMgr.h index 84a8e9f9e88..ed00ded34fd 100644 --- a/src/game/HonorMgr.h +++ b/src/game/HonorMgr.h @@ -142,6 +142,15 @@ typedef std::list HonorCPMap; #define POSITIVE_HONOR_RANK_COUNT 15 #define HONOR_RANK_COUNT 19 +// World of Warcraft Client Patch 1.7.0 (2005-09-13) +// - Racial "Leaders" have been strengthened, and are now worth slightly +// less honor. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 +#define RACIAL_LEADER_HONOR 488.0f +#else +#define RACIAL_LEADER_HONOR 500.0f // guess +#endif + class HonorMgr { public: diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index 77fd71dcac5..06cd5bbde5e 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -21957,9 +21957,7 @@ void Player::RewardHonor(Unit* uVictim, uint32 groupSize) if (cVictim->IsRacialLeader()) { - m_honorMgr.Add(488.0, HONORABLE, cVictim); - //honor_points = MaNGOS::XP::xp_in_group_rate(groupsize, false) * 15000.0f / groupsize; - //kill_type = HONORABLE; + m_honorMgr.Add(RACIAL_LEADER_HONOR, HONORABLE, cVictim); return; } } @@ -22045,7 +22043,6 @@ void Player::OnReceivedItem(Item* item) SetSaveTimer(1); } - bool Player::HasFreeBattleGroundQueueId() const { for (uint32 i = 0; i < sWorld.getConfig(CONFIG_UINT32_BATTLEGROUND_QUEUES_COUNT); ++i) From 0bea718be7d0dca32ef296234b6e7c8ced752ed5 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 31 Oct 2023 00:04:48 +0200 Subject: [PATCH 258/426] Dark Whelpling item was called Tiny Black Whelping before 1.4. --- sql/migrations/20231030220353_world.sql | 28 +++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 sql/migrations/20231030220353_world.sql diff --git a/sql/migrations/20231030220353_world.sql b/sql/migrations/20231030220353_world.sql new file mode 100644 index 00000000000..4ba8b67f730 --- /dev/null +++ b/sql/migrations/20231030220353_world.sql @@ -0,0 +1,28 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231030220353'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231030220353'); +-- Add your query below. + + +/* +World of Warcraft Client Patch 1.4.0 (2005-04-19) +- Tiny Black Whelping item changed to Dark Whelpling to reflect the + name of the creature summoned. +*/ +-- https://web.archive.org/web/20050503151443/http://wow.allakhazam.com/db/itemhistory.html?witem=10822 +DELETE FROM `item_template` WHERE `entry`=10822; +INSERT INTO `item_template` (`entry`, `patch`, `class`, `subclass`, `name`, `description`, `display_id`, `quality`, `flags`, `buy_count`, `buy_price`, `sell_price`, `inventory_type`, `allowable_class`, `allowable_race`, `item_level`, `required_level`, `required_skill`, `required_skill_rank`, `required_spell`, `required_honor_rank`, `required_city_rank`, `required_reputation_faction`, `required_reputation_rank`, `max_count`, `stackable`, `container_slots`, `stat_type1`, `stat_value1`, `stat_type2`, `stat_value2`, `stat_type3`, `stat_value3`, `stat_type4`, `stat_value4`, `stat_type5`, `stat_value5`, `stat_type6`, `stat_value6`, `stat_type7`, `stat_value7`, `stat_type8`, `stat_value8`, `stat_type9`, `stat_value9`, `stat_type10`, `stat_value10`, `delay`, `range_mod`, `ammo_type`, `dmg_min1`, `dmg_max1`, `dmg_type1`, `dmg_min2`, `dmg_max2`, `dmg_type2`, `dmg_min3`, `dmg_max3`, `dmg_type3`, `dmg_min4`, `dmg_max4`, `dmg_type4`, `dmg_min5`, `dmg_max5`, `dmg_type5`, `block`, `armor`, `holy_res`, `fire_res`, `nature_res`, `frost_res`, `shadow_res`, `arcane_res`, `spellid_1`, `spelltrigger_1`, `spellcharges_1`, `spellppmrate_1`, `spellcooldown_1`, `spellcategory_1`, `spellcategorycooldown_1`, `spellid_2`, `spelltrigger_2`, `spellcharges_2`, `spellppmrate_2`, `spellcooldown_2`, `spellcategory_2`, `spellcategorycooldown_2`, `spellid_3`, `spelltrigger_3`, `spellcharges_3`, `spellppmrate_3`, `spellcooldown_3`, `spellcategory_3`, `spellcategorycooldown_3`, `spellid_4`, `spelltrigger_4`, `spellcharges_4`, `spellppmrate_4`, `spellcooldown_4`, `spellcategory_4`, `spellcategorycooldown_4`, `spellid_5`, `spelltrigger_5`, `spellcharges_5`, `spellppmrate_5`, `spellcooldown_5`, `spellcategory_5`, `spellcategorycooldown_5`, `bonding`, `page_text`, `page_language`, `page_material`, `start_quest`, `lock_id`, `material`, `sheath`, `random_property`, `set_id`, `max_durability`, `area_bound`, `map_bound`, `duration`, `bag_family`, `disenchant_id`, `food_type`, `min_money_loot`, `max_money_loot`, `wrapped_gift`, `extra_flags`, `other_team_entry`) VALUES (10822, 0, 15, 0, 'Tiny Black Whelpling', '', 20655, 1, 0, 1, 10000, 2500, 0, -1, -1, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10695, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1); +INSERT INTO `item_template` (`entry`, `patch`, `class`, `subclass`, `name`, `description`, `display_id`, `quality`, `flags`, `buy_count`, `buy_price`, `sell_price`, `inventory_type`, `allowable_class`, `allowable_race`, `item_level`, `required_level`, `required_skill`, `required_skill_rank`, `required_spell`, `required_honor_rank`, `required_city_rank`, `required_reputation_faction`, `required_reputation_rank`, `max_count`, `stackable`, `container_slots`, `stat_type1`, `stat_value1`, `stat_type2`, `stat_value2`, `stat_type3`, `stat_value3`, `stat_type4`, `stat_value4`, `stat_type5`, `stat_value5`, `stat_type6`, `stat_value6`, `stat_type7`, `stat_value7`, `stat_type8`, `stat_value8`, `stat_type9`, `stat_value9`, `stat_type10`, `stat_value10`, `delay`, `range_mod`, `ammo_type`, `dmg_min1`, `dmg_max1`, `dmg_type1`, `dmg_min2`, `dmg_max2`, `dmg_type2`, `dmg_min3`, `dmg_max3`, `dmg_type3`, `dmg_min4`, `dmg_max4`, `dmg_type4`, `dmg_min5`, `dmg_max5`, `dmg_type5`, `block`, `armor`, `holy_res`, `fire_res`, `nature_res`, `frost_res`, `shadow_res`, `arcane_res`, `spellid_1`, `spelltrigger_1`, `spellcharges_1`, `spellppmrate_1`, `spellcooldown_1`, `spellcategory_1`, `spellcategorycooldown_1`, `spellid_2`, `spelltrigger_2`, `spellcharges_2`, `spellppmrate_2`, `spellcooldown_2`, `spellcategory_2`, `spellcategorycooldown_2`, `spellid_3`, `spelltrigger_3`, `spellcharges_3`, `spellppmrate_3`, `spellcooldown_3`, `spellcategory_3`, `spellcategorycooldown_3`, `spellid_4`, `spelltrigger_4`, `spellcharges_4`, `spellppmrate_4`, `spellcooldown_4`, `spellcategory_4`, `spellcategorycooldown_4`, `spellid_5`, `spelltrigger_5`, `spellcharges_5`, `spellppmrate_5`, `spellcooldown_5`, `spellcategory_5`, `spellcategorycooldown_5`, `bonding`, `page_text`, `page_language`, `page_material`, `start_quest`, `lock_id`, `material`, `sheath`, `random_property`, `set_id`, `max_durability`, `area_bound`, `map_bound`, `duration`, `bag_family`, `disenchant_id`, `food_type`, `min_money_loot`, `max_money_loot`, `wrapped_gift`, `extra_flags`, `other_team_entry`) VALUES (10822, 2, 15, 0, 'Dark Whelpling', '', 20655, 1, 0, 1, 10000, 2500, 0, -1, -1, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10695, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From f6e00aa8a5665d4f3706d97a261f1cdc7bc38fa6 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 31 Oct 2023 00:10:18 +0200 Subject: [PATCH 259/426] Pimgib's Collar was made unique in 1.4. --- sql/migrations/20231030220939_world.sql | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 sql/migrations/20231030220939_world.sql diff --git a/sql/migrations/20231030220939_world.sql b/sql/migrations/20231030220939_world.sql new file mode 100644 index 00000000000..16db2e9a756 --- /dev/null +++ b/sql/migrations/20231030220939_world.sql @@ -0,0 +1,27 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231030220939'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231030220939'); +-- Add your query below. + + +/* +World of Warcraft Client Patch 1.4.0 (2005-04-19) +- Pimgib's Collar is now unique. +*/ +-- https://web.archive.org/web/20050503103231/http://wow.allakhazam.com/db/itemhistory.html?witem=18354 +DELETE FROM `item_template` WHERE `entry`=18354; +INSERT INTO `item_template` (`entry`, `patch`, `class`, `subclass`, `name`, `description`, `display_id`, `quality`, `flags`, `buy_count`, `buy_price`, `sell_price`, `inventory_type`, `allowable_class`, `allowable_race`, `item_level`, `required_level`, `required_skill`, `required_skill_rank`, `required_spell`, `required_honor_rank`, `required_city_rank`, `required_reputation_faction`, `required_reputation_rank`, `max_count`, `stackable`, `container_slots`, `stat_type1`, `stat_value1`, `stat_type2`, `stat_value2`, `stat_type3`, `stat_value3`, `stat_type4`, `stat_value4`, `stat_type5`, `stat_value5`, `stat_type6`, `stat_value6`, `stat_type7`, `stat_value7`, `stat_type8`, `stat_value8`, `stat_type9`, `stat_value9`, `stat_type10`, `stat_value10`, `delay`, `range_mod`, `ammo_type`, `dmg_min1`, `dmg_max1`, `dmg_type1`, `dmg_min2`, `dmg_max2`, `dmg_type2`, `dmg_min3`, `dmg_max3`, `dmg_type3`, `dmg_min4`, `dmg_max4`, `dmg_type4`, `dmg_min5`, `dmg_max5`, `dmg_type5`, `block`, `armor`, `holy_res`, `fire_res`, `nature_res`, `frost_res`, `shadow_res`, `arcane_res`, `spellid_1`, `spelltrigger_1`, `spellcharges_1`, `spellppmrate_1`, `spellcooldown_1`, `spellcategory_1`, `spellcategorycooldown_1`, `spellid_2`, `spelltrigger_2`, `spellcharges_2`, `spellppmrate_2`, `spellcooldown_2`, `spellcategory_2`, `spellcategorycooldown_2`, `spellid_3`, `spelltrigger_3`, `spellcharges_3`, `spellppmrate_3`, `spellcooldown_3`, `spellcategory_3`, `spellcategorycooldown_3`, `spellid_4`, `spelltrigger_4`, `spellcharges_4`, `spellppmrate_4`, `spellcooldown_4`, `spellcategory_4`, `spellcategorycooldown_4`, `spellid_5`, `spelltrigger_5`, `spellcharges_5`, `spellppmrate_5`, `spellcooldown_5`, `spellcategory_5`, `spellcategorycooldown_5`, `bonding`, `page_text`, `page_language`, `page_material`, `start_quest`, `lock_id`, `material`, `sheath`, `random_property`, `set_id`, `max_durability`, `area_bound`, `map_bound`, `duration`, `bag_family`, `disenchant_id`, `food_type`, `min_money_loot`, `max_money_loot`, `wrapped_gift`, `extra_flags`, `other_team_entry`) VALUES (18354, 1, 4, 0, 'Pimgib\'s Collar', '', 1399, 3, 0, 1, 69864, 17466, 12, 31488, -1, 60, 55, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22855, 1, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 1); +INSERT INTO `item_template` (`entry`, `patch`, `class`, `subclass`, `name`, `description`, `display_id`, `quality`, `flags`, `buy_count`, `buy_price`, `sell_price`, `inventory_type`, `allowable_class`, `allowable_race`, `item_level`, `required_level`, `required_skill`, `required_skill_rank`, `required_spell`, `required_honor_rank`, `required_city_rank`, `required_reputation_faction`, `required_reputation_rank`, `max_count`, `stackable`, `container_slots`, `stat_type1`, `stat_value1`, `stat_type2`, `stat_value2`, `stat_type3`, `stat_value3`, `stat_type4`, `stat_value4`, `stat_type5`, `stat_value5`, `stat_type6`, `stat_value6`, `stat_type7`, `stat_value7`, `stat_type8`, `stat_value8`, `stat_type9`, `stat_value9`, `stat_type10`, `stat_value10`, `delay`, `range_mod`, `ammo_type`, `dmg_min1`, `dmg_max1`, `dmg_type1`, `dmg_min2`, `dmg_max2`, `dmg_type2`, `dmg_min3`, `dmg_max3`, `dmg_type3`, `dmg_min4`, `dmg_max4`, `dmg_type4`, `dmg_min5`, `dmg_max5`, `dmg_type5`, `block`, `armor`, `holy_res`, `fire_res`, `nature_res`, `frost_res`, `shadow_res`, `arcane_res`, `spellid_1`, `spelltrigger_1`, `spellcharges_1`, `spellppmrate_1`, `spellcooldown_1`, `spellcategory_1`, `spellcategorycooldown_1`, `spellid_2`, `spelltrigger_2`, `spellcharges_2`, `spellppmrate_2`, `spellcooldown_2`, `spellcategory_2`, `spellcategorycooldown_2`, `spellid_3`, `spelltrigger_3`, `spellcharges_3`, `spellppmrate_3`, `spellcooldown_3`, `spellcategory_3`, `spellcategorycooldown_3`, `spellid_4`, `spelltrigger_4`, `spellcharges_4`, `spellppmrate_4`, `spellcooldown_4`, `spellcategory_4`, `spellcategorycooldown_4`, `spellid_5`, `spelltrigger_5`, `spellcharges_5`, `spellppmrate_5`, `spellcooldown_5`, `spellcategory_5`, `spellcategorycooldown_5`, `bonding`, `page_text`, `page_language`, `page_material`, `start_quest`, `lock_id`, `material`, `sheath`, `random_property`, `set_id`, `max_durability`, `area_bound`, `map_bound`, `duration`, `bag_family`, `disenchant_id`, `food_type`, `min_money_loot`, `max_money_loot`, `wrapped_gift`, `extra_flags`, `other_team_entry`) VALUES (18354, 2, 4, 0, 'Pimgib\'s Collar', '', 1399, 3, 0, 1, 69864, 17466, 12, 31488, -1, 60, 55, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22855, 1, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 1); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From dfafb9b5c02882e0ed72d37b3ce25d5c7a2617ec Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 31 Oct 2023 00:20:03 +0200 Subject: [PATCH 260/426] Fix shaman sapta quests. Thanks to Wall. --- sql/migrations/20231030221913_world.sql | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 sql/migrations/20231030221913_world.sql diff --git a/sql/migrations/20231030221913_world.sql b/sql/migrations/20231030221913_world.sql new file mode 100644 index 00000000000..04bcf1d4561 --- /dev/null +++ b/sql/migrations/20231030221913_world.sql @@ -0,0 +1,24 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231030221913'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231030221913'); +-- Add your query below. + + +-- Fix shaman sapta quests. +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `conditionId`, `inverseEffectMask`, `build_min`, `build_max`) VALUES (8202, 0, 100028, 0, 0, 0, 5875); +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `conditionId`, `inverseEffectMask`, `build_min`, `build_max`) VALUES (8202, 0, 101749, 0, 0, 0, 5875); +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `conditionId`, `inverseEffectMask`, `build_min`, `build_max`) VALUES (8898, 0, 101748, 0, 0, 0, 5875); +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `conditionId`, `inverseEffectMask`, `build_min`, `build_max`) VALUES (8899, 0, 101750, 0, 0, 0, 5875); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 98ba18f6858c73db5237414119d197113da5a8cf Mon Sep 17 00:00:00 2001 From: Gosha <284210+Lordron@users.noreply.github.com> Date: Tue, 31 Oct 2023 03:35:46 +0200 Subject: [PATCH 261/426] Use ByteBuffer from UpdateData instead of copying to it after. https://github.com/TrinityCore/TrinityCore/commit/81bf8de9895e050d5800a8a37316c0e6874b5e40 --- src/game/Objects/Object.cpp | 13 ++++--------- src/game/Objects/Player.cpp | 3 +-- src/game/Objects/UpdateData.cpp | 4 ++-- src/game/Objects/UpdateData.h | 2 +- 4 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/game/Objects/Object.cpp b/src/game/Objects/Object.cpp index 671a37a6e54..285bb166959 100644 --- a/src/game/Objects/Object.cpp +++ b/src/game/Objects/Object.cpp @@ -261,14 +261,12 @@ void Object::SendForcedObjectUpdate() void Object::BuildMovementUpdateBlock(UpdateData& data, uint8 flags) const { - ByteBuffer buf(500); + ByteBuffer& buf = data.AddUpdateBlockAndGetBuffer(); buf << uint8(UPDATETYPE_MOVEMENT); buf << GetObjectGuid(); BuildMovementUpdate(&buf, flags); - - data.AddUpdateBlock(buf); } void Object::BuildCreateUpdateBlockForPlayer(UpdateData& data, Player* target) const @@ -295,7 +293,7 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData& data, Player* target) c //sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "BuildCreateUpdate: update-type: %u, object-type: %u got updateFlags: %X", updatetype, m_objectTypeId, updateFlags); - ByteBuffer buf(500); + ByteBuffer& buf = data.AddUpdateBlockAndGetBuffer(); buf << (uint8)updatetype; #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 buf << GetPackGUID(); @@ -331,7 +329,6 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData& data, Player* target) c updateMask.SetCount(m_valuesCount); _SetCreateBits(updateMask, target); BuildValuesUpdate(updatetype, &buf, &updateMask, target); - data.AddUpdateBlock(buf); } void Object::SendCreateUpdateToPlayer(Player* player) @@ -360,7 +357,7 @@ void WorldObject::DirectSendPublicValueUpdate(uint32 index, uint32 count) return; UpdateData data; - ByteBuffer buf(50); + ByteBuffer& buf = data.AddUpdateBlockAndGetBuffer(); buf << uint8(UPDATETYPE_VALUES); #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 buf << GetPackGUID(); @@ -378,7 +375,6 @@ void WorldObject::DirectSendPublicValueUpdate(uint32 index, uint32 count) for (int i = 0; i < count; i++) buf << uint32(m_uint32Values[index + i]); - data.AddUpdateBlock(buf); WorldPacket packet; data.BuildPacket(&packet); SendObjectMessageToSet(&packet, true); @@ -405,7 +401,7 @@ void Object::BuildValuesUpdateBlockForPlayerWithFlags(UpdateData& data, Player* void Object::BuildValuesUpdateBlockForPlayer(UpdateData& data, UpdateMask& updateMask, Player* target) const { - ByteBuffer buf(500); + ByteBuffer& buf = data.AddUpdateBlockAndGetBuffer(); buf << uint8(UPDATETYPE_VALUES); #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 @@ -415,7 +411,6 @@ void Object::BuildValuesUpdateBlockForPlayer(UpdateData& data, UpdateMask& updat #endif BuildValuesUpdate(UPDATETYPE_VALUES, &buf, &updateMask, target); - data.AddUpdateBlock(buf); } void Object::BuildOutOfRangeUpdateBlock(UpdateData& data) const diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index 06cd5bbde5e..c381068ddbe 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -21852,7 +21852,7 @@ void Player::RefreshBitsForVisibleUnits(UpdateMask* mask, uint32 objectTypeMask) { if (Object* obj = GetObjectByTypeMask(guid, TypeMask(objectTypeMask))) { - ByteBuffer buff(50); + ByteBuffer& buff = data.AddUpdateBlockAndGetBuffer(); buff << uint8(UPDATETYPE_VALUES); #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 @@ -21861,7 +21861,6 @@ void Player::RefreshBitsForVisibleUnits(UpdateMask* mask, uint32 objectTypeMask) buff << obj->GetGUID(); #endif obj->BuildValuesUpdate(UPDATETYPE_VALUES, &buff, mask, this); - data.AddUpdateBlock(buff); } } data.Send(GetSession()); diff --git a/src/game/Objects/UpdateData.cpp b/src/game/Objects/UpdateData.cpp index 30bf3fca610..4fee4b803b0 100644 --- a/src/game/Objects/UpdateData.cpp +++ b/src/game/Objects/UpdateData.cpp @@ -50,7 +50,7 @@ void UpdateData::AddOutOfRangeGUID(ObjectGuid const& guid) m_outOfRangeGUIDs.insert(guid); } -void UpdateData::AddUpdateBlock(ByteBuffer const& block) +ByteBuffer& UpdateData::AddUpdateBlockAndGetBuffer() { if (m_datas.empty()) m_datas.push_back(UpdatePacket()); @@ -62,8 +62,8 @@ void UpdateData::AddUpdateBlock(ByteBuffer const& block) it = m_datas.end(); --it; } - it->data.append(block); ++it->blockCount; + return it->data; } void PacketCompressor::Compress(void* dst, uint32* dst_size, void* src, int src_size) diff --git a/src/game/Objects/UpdateData.h b/src/game/Objects/UpdateData.h index 437498b2b9c..062c393e7e1 100644 --- a/src/game/Objects/UpdateData.h +++ b/src/game/Objects/UpdateData.h @@ -78,7 +78,7 @@ class UpdateData void AddOutOfRangeGUID(ObjectGuidSet& guids); void AddOutOfRangeGUID(ObjectGuid const& guid); - void AddUpdateBlock(ByteBuffer const& block); + ByteBuffer& AddUpdateBlockAndGetBuffer(); void Send(WorldSession* session, bool hasTransport = false); bool BuildPacket(WorldPacket* packet, bool hasTransport = false); bool BuildPacket(WorldPacket* packet, UpdatePacket const* updPacket, bool hasTransport = false); From 94f52d905dcdd6dcc527075f85197c0700d07f4a Mon Sep 17 00:00:00 2001 From: Gosha <284210+Lordron@users.noreply.github.com> Date: Tue, 31 Oct 2023 04:03:02 +0200 Subject: [PATCH 262/426] Change Map::Visit to not call EnsureGridLoaded if cell.NoCreate is true. https://github.com/TrinityCore/TrinityCore/commit/71b7cc6361d6db9dd445aef617a40b8435393729 --- src/game/Maps/Map.cpp | 7 ++++--- src/game/Maps/Map.h | 12 +++++------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/game/Maps/Map.cpp b/src/game/Maps/Map.cpp index e47ab2e122c..417d7af2c0b 100644 --- a/src/game/Maps/Map.cpp +++ b/src/game/Maps/Map.cpp @@ -371,7 +371,7 @@ bool Map::EnsureGridLoaded(Cell const& cell) ASSERT(false); } - if (!isGridObjectDataLoaded(cell.GridX(), cell.GridY())) + if (!grid->isGridObjectDataLoaded()) { //it's important to set it loaded before loading! //otherwise there is a possibility of infinity chain (grid loading will be called many times for the same grid) @@ -379,7 +379,7 @@ bool Map::EnsureGridLoaded(Cell const& cell) //active object A(loaded with loader.LoadN call and added to the map) //summons some active object B, while B added to map grid loading called again and so on.. ASSERT(!m_unloading && "Trying to load grid while unloading the whole map !"); - setGridObjectDataLoaded(true, cell.GridX(), cell.GridY()); + grid->setGridObjectDataLoaded(true); ObjectGridLoader loader(*grid, this, cell); loader.LoadN(); @@ -669,7 +669,8 @@ void Map::MessageDistBroadcast(WorldObject const* obj, WorldPacket* msg, float d bool Map::loaded(GridPair const& p) const { - return (getNGrid(p.x_coord, p.y_coord) && isGridObjectDataLoaded(p.x_coord, p.y_coord)); + NGridType const* grid = getNGrid(p.x_coord, p.y_coord); + return (grid && grid->isGridObjectDataLoaded()); } void Map::UpdateSync(uint32 const diff) diff --git a/src/game/Maps/Map.h b/src/game/Maps/Map.h index a1b14662780..aefeb61dab3 100644 --- a/src/game/Maps/Map.h +++ b/src/game/Maps/Map.h @@ -626,9 +626,6 @@ class Map : public GridRefManager return i_grids[x][y]; } - bool isGridObjectDataLoaded(uint32 x, uint32 y) const { return getNGrid(x,y)->isGridObjectDataLoaded(); } - void setGridObjectDataLoaded(bool pLoaded, uint32 x, uint32 y) { getNGrid(x,y)->setGridObjectDataLoaded(pLoaded); } - void setNGrid(NGridType* grid, uint32 x, uint32 y); void ScriptsProcess(); bool FindScriptInitialTargets(WorldObject*& source, WorldObject*& target, ScriptAction const& step); @@ -1036,10 +1033,11 @@ void Map::Visit(Cell const& cell, TypeContainerVisitor& visitor) uint32 const cell_x = cell.CellX(); uint32 const cell_y = cell.CellY(); - if (!cell.NoCreate() || loaded(GridPair(x,y))) - { + if (!cell.NoCreate()) EnsureGridLoaded(cell); - getNGrid(x, y)->Visit(cell_x, cell_y, visitor); - } + + NGridType* grid = getNGrid(x, y); + if (grid && grid->isGridObjectDataLoaded()) + grid->Visit(cell_x, cell_y, visitor); } #endif From 5280d9b7632fb813734c22bd9611082682b2f0d3 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 31 Oct 2023 05:00:52 +0200 Subject: [PATCH 263/426] Replace some locks with shared locks. Suggested by Chero. --- src/game/Guild/GuildMgr.cpp | 24 +++++++++---------- src/game/Guild/GuildMgr.h | 12 +++++----- src/game/Objects/GameObject.cpp | 10 ++++---- src/game/Objects/GameObject.h | 3 ++- .../PacketBroadcast/MovementBroadcaster.cpp | 10 ++++---- .../PacketBroadcast/MovementBroadcaster.h | 2 +- src/game/SocialMgr.cpp | 6 ++--- src/game/SocialMgr.h | 2 +- 8 files changed, 35 insertions(+), 34 deletions(-) diff --git a/src/game/Guild/GuildMgr.cpp b/src/game/Guild/GuildMgr.cpp index bcc594e6a6e..b06cf09bd62 100644 --- a/src/game/Guild/GuildMgr.cpp +++ b/src/game/Guild/GuildMgr.cpp @@ -51,19 +51,19 @@ void GuildMgr::CleanUpPetitions() void GuildMgr::AddGuild(Guild* guild) { - std::lock_guard guard(m_guildMutex); + std::lock_guard guard(m_guildMutex); m_GuildMap[guild->GetId()] = guild; } void GuildMgr::RemoveGuild(uint32 guildId) { - std::lock_guard guard(m_guildMutex); + std::lock_guard guard(m_guildMutex); m_GuildMap.erase(guildId); } Guild* GuildMgr::GetGuildById(uint32 guildId) const { - std::lock_guard guard(m_guildMutex); + std::shared_lock guard(m_guildMutex); GuildMap::const_iterator itr = m_GuildMap.find(guildId); if (itr != m_GuildMap.end()) return itr->second; @@ -73,7 +73,7 @@ Guild* GuildMgr::GetGuildById(uint32 guildId) const Guild* GuildMgr::GetGuildByName(std::string const& name) const { - std::lock_guard guard(m_guildMutex); + std::shared_lock guard(m_guildMutex); for (const auto& itr : m_GuildMap) if (itr.second->GetName() == name) return itr.second; @@ -83,7 +83,7 @@ Guild* GuildMgr::GetGuildByName(std::string const& name) const Guild* GuildMgr::GetGuildByLeader(ObjectGuid const& guid) const { - std::lock_guard guard(m_guildMutex); + std::shared_lock guard(m_guildMutex); for (const auto& itr : m_GuildMap) if (itr.second->GetLeaderGuid() == guid) return itr.second; @@ -93,7 +93,7 @@ Guild* GuildMgr::GetGuildByLeader(ObjectGuid const& guid) const std::string GuildMgr::GetGuildNameById(uint32 guildId) const { - std::lock_guard guard(m_guildMutex); + std::shared_lock guard(m_guildMutex); GuildMap::const_iterator itr = m_GuildMap.find(guildId); if (itr != m_GuildMap.end()) return itr->second->GetName(); @@ -266,13 +266,13 @@ void GuildMgr::CreatePetition(uint32 id, Player* player, ObjectGuid const& chart petition->SetTeam(player->GetTeam()); petition->SaveToDB(); - std::lock_guard guard(m_petitionsMutex); + std::lock_guard guard(m_petitionsMutex); m_petitionMap[petition->GetId()] = petition; } void GuildMgr::DeletePetition(Petition* petition) { - std::lock_guard guard(m_petitionsMutex); + std::lock_guard guard(m_petitionsMutex); m_petitionMap.erase(petition->GetId()); petition->Delete(); @@ -281,7 +281,7 @@ void GuildMgr::DeletePetition(Petition* petition) Petition* GuildMgr::GetPetitionById(uint32 id) { - std::lock_guard guard(m_petitionsMutex); + std::shared_lock guard(m_petitionsMutex); PetitionMap::iterator iter = m_petitionMap.find(id); if (iter != m_petitionMap.end()) return iter->second; @@ -291,7 +291,7 @@ Petition* GuildMgr::GetPetitionById(uint32 id) Petition* GuildMgr::GetPetitionByCharterGuid(ObjectGuid const& charterGuid) { - std::lock_guard guard(m_petitionsMutex); + std::shared_lock guard(m_petitionsMutex); for (const auto& iter : m_petitionMap) { Petition* petition = iter.second; @@ -304,7 +304,7 @@ Petition* GuildMgr::GetPetitionByCharterGuid(ObjectGuid const& charterGuid) Petition* GuildMgr::GetPetitionByOwnerGuid(ObjectGuid const& ownerGuid) { - std::lock_guard guard(m_petitionsMutex); + std::shared_lock guard(m_petitionsMutex); for (const auto& iter : m_petitionMap) { Petition* petition = iter.second; @@ -317,7 +317,7 @@ Petition* GuildMgr::GetPetitionByOwnerGuid(ObjectGuid const& ownerGuid) void GuildMgr::DeletePetitionSignaturesByPlayer(ObjectGuid guid, uint32 exceptPetitionId) { - std::lock_guard guard(m_petitionsMutex); + std::lock_guard guard(m_petitionsMutex); for (const auto& iter : m_petitionMap) { if (iter.first == exceptPetitionId) diff --git a/src/game/Guild/GuildMgr.h b/src/game/Guild/GuildMgr.h index 80ce0ce2727..86241087ee5 100644 --- a/src/game/Guild/GuildMgr.h +++ b/src/game/Guild/GuildMgr.h @@ -47,17 +47,17 @@ class GuildMgr void GuildMemberAdded(uint32 guildId, uint32 memberGuid) { - std::lock_guard guard(m_guid2GuildMutex); + std::lock_guard guard(m_guid2GuildMutex); m_guid2guild[memberGuid] = guildId; } void GuildMemberRemoved(uint32 memberGuid) { - std::lock_guard guard(m_guid2GuildMutex); + std::lock_guard guard(m_guid2GuildMutex); m_guid2guild.erase(memberGuid); } Guild* GetPlayerGuild(uint32 lowguid) { - std::lock_guard guard(m_guid2GuildMutex); + std::shared_lock guard(m_guid2GuildMutex); std::map::iterator it = m_guid2guild.find(lowguid); if (it != m_guid2guild.end()) return GetGuildById(it->second); @@ -75,12 +75,12 @@ class GuildMgr void LoadPetitions(); private: void CleanUpPetitions(); - mutable std::mutex m_guildMutex; + mutable std::shared_mutex m_guildMutex; GuildMap m_GuildMap; - std::mutex m_guid2GuildMutex; + std::shared_mutex m_guid2GuildMutex; std::map m_guid2guild; - std::mutex m_petitionsMutex; + std::shared_mutex m_petitionsMutex; PetitionMap m_petitionMap; }; diff --git a/src/game/Objects/GameObject.cpp b/src/game/Objects/GameObject.cpp index abec8ea13a9..17828cf66be 100644 --- a/src/game/Objects/GameObject.cpp +++ b/src/game/Objects/GameObject.cpp @@ -726,7 +726,7 @@ void GameObject::Refresh() void GameObject::AddUniqueUse(Player* player) { - std::unique_lock guard(m_UniqueUsers_lock); + std::unique_lock guard(m_UniqueUsers_lock); AddUse(); @@ -761,7 +761,7 @@ void GameObject::AddUniqueUse(Player* player) void GameObject::RemoveUniqueUse(Player* player) { - const std::lock_guard guard(m_UniqueUsers_lock); + const std::lock_guard guard(m_UniqueUsers_lock); auto itr = m_UniqueUsers.find(player->GetObjectGuid()); if (itr == m_UniqueUsers.end()) @@ -790,7 +790,7 @@ void GameObject::RemoveUniqueUse(Player* player) void GameObject::FinishRitual() { - std::unique_lock guard(m_UniqueUsers_lock); + std::unique_lock guard(m_UniqueUsers_lock); if (GameObjectInfo const* info = GetGOInfo()) { @@ -820,13 +820,13 @@ void GameObject::FinishRitual() bool GameObject::HasUniqueUser(Player* player) { - const std::lock_guard guard(m_UniqueUsers_lock); + const std::shared_lock guard(m_UniqueUsers_lock); return m_UniqueUsers.find(player->GetObjectGuid()) != m_UniqueUsers.end(); } uint32 GameObject::GetUniqueUseCount() { - const std::lock_guard guard(m_UniqueUsers_lock); + const std::shared_lock guard(m_UniqueUsers_lock); return m_UniqueUsers.size(); } diff --git a/src/game/Objects/GameObject.h b/src/game/Objects/GameObject.h index 1c5d13096b3..211bf0bd03c 100644 --- a/src/game/Objects/GameObject.h +++ b/src/game/Objects/GameObject.h @@ -28,6 +28,7 @@ #include "SpellCaster.h" #include "LootMgr.h" #include "Util.h" +#include class Unit; class GameObjectAI; @@ -272,7 +273,7 @@ class GameObject : public SpellCaster // collected only for GAMEOBJECT_TYPE_SUMMONING_RITUAL ObjectGuid m_firstUser; // first GO user, in most used cases owner, but in some cases no, for example non-summoned multi-use GAMEOBJECT_TYPE_SUMMONING_RITUAL GuidsSet m_UniqueUsers; // all players who use item, some items activated after specific amount unique uses - std::mutex m_UniqueUsers_lock; + std::shared_mutex m_UniqueUsers_lock; ObjectGuid m_summonTarget; // The player who is being summoned uint64 m_rotation; diff --git a/src/game/PacketBroadcast/MovementBroadcaster.cpp b/src/game/PacketBroadcast/MovementBroadcaster.cpp index 09449e34ae2..9c923d81a7f 100644 --- a/src/game/PacketBroadcast/MovementBroadcaster.cpp +++ b/src/game/PacketBroadcast/MovementBroadcaster.cpp @@ -25,7 +25,7 @@ void MovementBroadcaster::StartThreads() ASSERT(m_threads.empty()); // Create new mutex vector - can't resize a vector of locks (non-copyable) - std::vector locks(m_num_threads); + std::vector locks(m_num_threads); m_thread_locks = std::move(locks); m_thread_players.resize(m_num_threads); m_thread_update_stats.resize(m_num_threads); @@ -44,7 +44,7 @@ void MovementBroadcaster::RegisterPlayer(std::shared_ptr cons return; std::size_t index = player->GetGUID().GetRawValue() % m_num_threads; - std::lock_guard guard(m_thread_locks[index]); + std::lock_guard guard(m_thread_locks[index]); m_thread_players[index].insert(player); } @@ -54,7 +54,7 @@ void MovementBroadcaster::RemovePlayer(std::shared_ptr const& return; std::size_t index = player->GetGUID().GetRawValue() % m_num_threads; - std::lock_guard guard(m_thread_locks[index]); + std::lock_guard guard(m_thread_locks[index]); auto it = m_thread_players[index].find(player); if (it != m_thread_players[index].end()) @@ -91,7 +91,7 @@ uint32 MovementBroadcaster::IdentifySlowMap(std::size_t thread_id) { std::map map_packets; - std::lock_guard guard(m_thread_locks[thread_id]); + std::shared_lock guard(m_thread_locks[thread_id]); for (auto& player : m_thread_players[thread_id]) map_packets[player->instanceId] += player->lastUpdatePackets; @@ -111,7 +111,7 @@ void MovementBroadcaster::BroadcastPackets(std::size_t index, uint32& num_packet { PlayersBCastSet my_players; { - std::lock_guard guard(m_thread_locks[index]); + std::shared_lock guard(m_thread_locks[index]); my_players = m_thread_players[index]; } diff --git a/src/game/PacketBroadcast/MovementBroadcaster.h b/src/game/PacketBroadcast/MovementBroadcaster.h index c3603d59f91..999fcc8d3b3 100644 --- a/src/game/PacketBroadcast/MovementBroadcaster.h +++ b/src/game/PacketBroadcast/MovementBroadcaster.h @@ -22,7 +22,7 @@ class MovementBroadcaster final std::chrono::milliseconds m_sleep_timer; std::vector m_thread_players; - std::vector m_thread_locks; + std::vector m_thread_locks; void Work(std::size_t thread_id); void BroadcastPackets(std::size_t index, uint32& num_packets); diff --git a/src/game/SocialMgr.cpp b/src/game/SocialMgr.cpp index abf0cec06c5..b3c78e2e898 100644 --- a/src/game/SocialMgr.cpp +++ b/src/game/SocialMgr.cpp @@ -285,7 +285,7 @@ void SocialMgr::BroadcastToFriendListers(MasterPlayer* player, WorldPacket* pack AccountTypes gmLevelInWhoList = AccountTypes(sWorld.getConfig(CONFIG_UINT32_GM_LEVEL_IN_WHO_LIST)); bool allowTwoSideWhoList = sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_WHO_LIST); - std::unique_lock guard(_socialMapLock); + std::shared_lock guard(_socialMapLock); for (const auto& itr : m_socialMap) { PlayerSocialMap::const_iterator itr2 = itr.second.m_playerSocialMap.find(guid); @@ -306,7 +306,7 @@ void SocialMgr::BroadcastToFriendListers(MasterPlayer* player, WorldPacket* pack PlayerSocial* SocialMgr::LoadFromDB(QueryResult* result, ObjectGuid guid) { - std::unique_lock guard(_socialMapLock); + std::unique_lock guard(_socialMapLock); PlayerSocial *social = &m_socialMap[guid.GetCounter()]; social->SetPlayerGuid(guid); @@ -348,6 +348,6 @@ PlayerSocial* SocialMgr::LoadFromDB(QueryResult* result, ObjectGuid guid) void SocialMgr::RemovePlayerSocial(uint32 guid) { - std::unique_lock guard(_socialMapLock); + std::unique_lock guard(_socialMapLock); m_socialMap.erase(guid); } diff --git a/src/game/SocialMgr.h b/src/game/SocialMgr.h index 5d39895d3c1..4faddc7e687 100644 --- a/src/game/SocialMgr.h +++ b/src/game/SocialMgr.h @@ -157,7 +157,7 @@ class SocialMgr private: SocialMap m_socialMap; - std::mutex _socialMapLock; + std::shared_mutex _socialMapLock; }; #define sSocialMgr MaNGOS::Singleton::Instance() From 6ae8e142785daa182641ec056462d3251ce410ca Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 31 Oct 2023 15:19:47 +0200 Subject: [PATCH 264/426] Use shared_timed_mutex instead of shared_mutex. Turns out that shared_mutex is a c++17 feature, yet Visual Studio 2015 has it implemented, but it uses a Windows 7 api so it causes the core not to run on XP anymore. And it broke build on GCC and Clang since they have strict language standard checks unlike MSVC. https://devblogs.microsoft.com/cppblog/vs-2015-update-2s-stl-is-c17-so-far-feature-complete/ --- src/game/Guild/GuildMgr.cpp | 24 +++++++++---------- src/game/Guild/GuildMgr.h | 12 +++++----- src/game/Objects/GameObject.cpp | 10 ++++---- src/game/Objects/GameObject.h | 2 +- .../PacketBroadcast/MovementBroadcaster.cpp | 10 ++++---- .../PacketBroadcast/MovementBroadcaster.h | 2 +- src/game/SocialMgr.cpp | 6 ++--- src/game/SocialMgr.h | 2 +- 8 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/game/Guild/GuildMgr.cpp b/src/game/Guild/GuildMgr.cpp index b06cf09bd62..80dafb1705d 100644 --- a/src/game/Guild/GuildMgr.cpp +++ b/src/game/Guild/GuildMgr.cpp @@ -51,19 +51,19 @@ void GuildMgr::CleanUpPetitions() void GuildMgr::AddGuild(Guild* guild) { - std::lock_guard guard(m_guildMutex); + std::lock_guard guard(m_guildMutex); m_GuildMap[guild->GetId()] = guild; } void GuildMgr::RemoveGuild(uint32 guildId) { - std::lock_guard guard(m_guildMutex); + std::lock_guard guard(m_guildMutex); m_GuildMap.erase(guildId); } Guild* GuildMgr::GetGuildById(uint32 guildId) const { - std::shared_lock guard(m_guildMutex); + std::shared_lock guard(m_guildMutex); GuildMap::const_iterator itr = m_GuildMap.find(guildId); if (itr != m_GuildMap.end()) return itr->second; @@ -73,7 +73,7 @@ Guild* GuildMgr::GetGuildById(uint32 guildId) const Guild* GuildMgr::GetGuildByName(std::string const& name) const { - std::shared_lock guard(m_guildMutex); + std::shared_lock guard(m_guildMutex); for (const auto& itr : m_GuildMap) if (itr.second->GetName() == name) return itr.second; @@ -83,7 +83,7 @@ Guild* GuildMgr::GetGuildByName(std::string const& name) const Guild* GuildMgr::GetGuildByLeader(ObjectGuid const& guid) const { - std::shared_lock guard(m_guildMutex); + std::shared_lock guard(m_guildMutex); for (const auto& itr : m_GuildMap) if (itr.second->GetLeaderGuid() == guid) return itr.second; @@ -93,7 +93,7 @@ Guild* GuildMgr::GetGuildByLeader(ObjectGuid const& guid) const std::string GuildMgr::GetGuildNameById(uint32 guildId) const { - std::shared_lock guard(m_guildMutex); + std::shared_lock guard(m_guildMutex); GuildMap::const_iterator itr = m_GuildMap.find(guildId); if (itr != m_GuildMap.end()) return itr->second->GetName(); @@ -266,13 +266,13 @@ void GuildMgr::CreatePetition(uint32 id, Player* player, ObjectGuid const& chart petition->SetTeam(player->GetTeam()); petition->SaveToDB(); - std::lock_guard guard(m_petitionsMutex); + std::lock_guard guard(m_petitionsMutex); m_petitionMap[petition->GetId()] = petition; } void GuildMgr::DeletePetition(Petition* petition) { - std::lock_guard guard(m_petitionsMutex); + std::lock_guard guard(m_petitionsMutex); m_petitionMap.erase(petition->GetId()); petition->Delete(); @@ -281,7 +281,7 @@ void GuildMgr::DeletePetition(Petition* petition) Petition* GuildMgr::GetPetitionById(uint32 id) { - std::shared_lock guard(m_petitionsMutex); + std::shared_lock guard(m_petitionsMutex); PetitionMap::iterator iter = m_petitionMap.find(id); if (iter != m_petitionMap.end()) return iter->second; @@ -291,7 +291,7 @@ Petition* GuildMgr::GetPetitionById(uint32 id) Petition* GuildMgr::GetPetitionByCharterGuid(ObjectGuid const& charterGuid) { - std::shared_lock guard(m_petitionsMutex); + std::shared_lock guard(m_petitionsMutex); for (const auto& iter : m_petitionMap) { Petition* petition = iter.second; @@ -304,7 +304,7 @@ Petition* GuildMgr::GetPetitionByCharterGuid(ObjectGuid const& charterGuid) Petition* GuildMgr::GetPetitionByOwnerGuid(ObjectGuid const& ownerGuid) { - std::shared_lock guard(m_petitionsMutex); + std::shared_lock guard(m_petitionsMutex); for (const auto& iter : m_petitionMap) { Petition* petition = iter.second; @@ -317,7 +317,7 @@ Petition* GuildMgr::GetPetitionByOwnerGuid(ObjectGuid const& ownerGuid) void GuildMgr::DeletePetitionSignaturesByPlayer(ObjectGuid guid, uint32 exceptPetitionId) { - std::lock_guard guard(m_petitionsMutex); + std::lock_guard guard(m_petitionsMutex); for (const auto& iter : m_petitionMap) { if (iter.first == exceptPetitionId) diff --git a/src/game/Guild/GuildMgr.h b/src/game/Guild/GuildMgr.h index 86241087ee5..1d0eb8d9fca 100644 --- a/src/game/Guild/GuildMgr.h +++ b/src/game/Guild/GuildMgr.h @@ -47,17 +47,17 @@ class GuildMgr void GuildMemberAdded(uint32 guildId, uint32 memberGuid) { - std::lock_guard guard(m_guid2GuildMutex); + std::lock_guard guard(m_guid2GuildMutex); m_guid2guild[memberGuid] = guildId; } void GuildMemberRemoved(uint32 memberGuid) { - std::lock_guard guard(m_guid2GuildMutex); + std::lock_guard guard(m_guid2GuildMutex); m_guid2guild.erase(memberGuid); } Guild* GetPlayerGuild(uint32 lowguid) { - std::shared_lock guard(m_guid2GuildMutex); + std::shared_lock guard(m_guid2GuildMutex); std::map::iterator it = m_guid2guild.find(lowguid); if (it != m_guid2guild.end()) return GetGuildById(it->second); @@ -75,12 +75,12 @@ class GuildMgr void LoadPetitions(); private: void CleanUpPetitions(); - mutable std::shared_mutex m_guildMutex; + mutable std::shared_timed_mutex m_guildMutex; GuildMap m_GuildMap; - std::shared_mutex m_guid2GuildMutex; + std::shared_timed_mutex m_guid2GuildMutex; std::map m_guid2guild; - std::shared_mutex m_petitionsMutex; + std::shared_timed_mutex m_petitionsMutex; PetitionMap m_petitionMap; }; diff --git a/src/game/Objects/GameObject.cpp b/src/game/Objects/GameObject.cpp index 17828cf66be..685796817ff 100644 --- a/src/game/Objects/GameObject.cpp +++ b/src/game/Objects/GameObject.cpp @@ -726,7 +726,7 @@ void GameObject::Refresh() void GameObject::AddUniqueUse(Player* player) { - std::unique_lock guard(m_UniqueUsers_lock); + std::unique_lock guard(m_UniqueUsers_lock); AddUse(); @@ -761,7 +761,7 @@ void GameObject::AddUniqueUse(Player* player) void GameObject::RemoveUniqueUse(Player* player) { - const std::lock_guard guard(m_UniqueUsers_lock); + const std::lock_guard guard(m_UniqueUsers_lock); auto itr = m_UniqueUsers.find(player->GetObjectGuid()); if (itr == m_UniqueUsers.end()) @@ -790,7 +790,7 @@ void GameObject::RemoveUniqueUse(Player* player) void GameObject::FinishRitual() { - std::unique_lock guard(m_UniqueUsers_lock); + std::unique_lock guard(m_UniqueUsers_lock); if (GameObjectInfo const* info = GetGOInfo()) { @@ -820,13 +820,13 @@ void GameObject::FinishRitual() bool GameObject::HasUniqueUser(Player* player) { - const std::shared_lock guard(m_UniqueUsers_lock); + const std::shared_lock guard(m_UniqueUsers_lock); return m_UniqueUsers.find(player->GetObjectGuid()) != m_UniqueUsers.end(); } uint32 GameObject::GetUniqueUseCount() { - const std::shared_lock guard(m_UniqueUsers_lock); + const std::shared_lock guard(m_UniqueUsers_lock); return m_UniqueUsers.size(); } diff --git a/src/game/Objects/GameObject.h b/src/game/Objects/GameObject.h index 211bf0bd03c..dfb3355de46 100644 --- a/src/game/Objects/GameObject.h +++ b/src/game/Objects/GameObject.h @@ -273,7 +273,7 @@ class GameObject : public SpellCaster // collected only for GAMEOBJECT_TYPE_SUMMONING_RITUAL ObjectGuid m_firstUser; // first GO user, in most used cases owner, but in some cases no, for example non-summoned multi-use GAMEOBJECT_TYPE_SUMMONING_RITUAL GuidsSet m_UniqueUsers; // all players who use item, some items activated after specific amount unique uses - std::shared_mutex m_UniqueUsers_lock; + std::shared_timed_mutex m_UniqueUsers_lock; ObjectGuid m_summonTarget; // The player who is being summoned uint64 m_rotation; diff --git a/src/game/PacketBroadcast/MovementBroadcaster.cpp b/src/game/PacketBroadcast/MovementBroadcaster.cpp index 9c923d81a7f..c0bb13bfc77 100644 --- a/src/game/PacketBroadcast/MovementBroadcaster.cpp +++ b/src/game/PacketBroadcast/MovementBroadcaster.cpp @@ -25,7 +25,7 @@ void MovementBroadcaster::StartThreads() ASSERT(m_threads.empty()); // Create new mutex vector - can't resize a vector of locks (non-copyable) - std::vector locks(m_num_threads); + std::vector locks(m_num_threads); m_thread_locks = std::move(locks); m_thread_players.resize(m_num_threads); m_thread_update_stats.resize(m_num_threads); @@ -44,7 +44,7 @@ void MovementBroadcaster::RegisterPlayer(std::shared_ptr cons return; std::size_t index = player->GetGUID().GetRawValue() % m_num_threads; - std::lock_guard guard(m_thread_locks[index]); + std::lock_guard guard(m_thread_locks[index]); m_thread_players[index].insert(player); } @@ -54,7 +54,7 @@ void MovementBroadcaster::RemovePlayer(std::shared_ptr const& return; std::size_t index = player->GetGUID().GetRawValue() % m_num_threads; - std::lock_guard guard(m_thread_locks[index]); + std::lock_guard guard(m_thread_locks[index]); auto it = m_thread_players[index].find(player); if (it != m_thread_players[index].end()) @@ -91,7 +91,7 @@ uint32 MovementBroadcaster::IdentifySlowMap(std::size_t thread_id) { std::map map_packets; - std::shared_lock guard(m_thread_locks[thread_id]); + std::shared_lock guard(m_thread_locks[thread_id]); for (auto& player : m_thread_players[thread_id]) map_packets[player->instanceId] += player->lastUpdatePackets; @@ -111,7 +111,7 @@ void MovementBroadcaster::BroadcastPackets(std::size_t index, uint32& num_packet { PlayersBCastSet my_players; { - std::shared_lock guard(m_thread_locks[index]); + std::shared_lock guard(m_thread_locks[index]); my_players = m_thread_players[index]; } diff --git a/src/game/PacketBroadcast/MovementBroadcaster.h b/src/game/PacketBroadcast/MovementBroadcaster.h index 999fcc8d3b3..c6752f69379 100644 --- a/src/game/PacketBroadcast/MovementBroadcaster.h +++ b/src/game/PacketBroadcast/MovementBroadcaster.h @@ -22,7 +22,7 @@ class MovementBroadcaster final std::chrono::milliseconds m_sleep_timer; std::vector m_thread_players; - std::vector m_thread_locks; + std::vector m_thread_locks; void Work(std::size_t thread_id); void BroadcastPackets(std::size_t index, uint32& num_packets); diff --git a/src/game/SocialMgr.cpp b/src/game/SocialMgr.cpp index b3c78e2e898..f9cabad05f3 100644 --- a/src/game/SocialMgr.cpp +++ b/src/game/SocialMgr.cpp @@ -285,7 +285,7 @@ void SocialMgr::BroadcastToFriendListers(MasterPlayer* player, WorldPacket* pack AccountTypes gmLevelInWhoList = AccountTypes(sWorld.getConfig(CONFIG_UINT32_GM_LEVEL_IN_WHO_LIST)); bool allowTwoSideWhoList = sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_WHO_LIST); - std::shared_lock guard(_socialMapLock); + std::shared_lock guard(_socialMapLock); for (const auto& itr : m_socialMap) { PlayerSocialMap::const_iterator itr2 = itr.second.m_playerSocialMap.find(guid); @@ -306,7 +306,7 @@ void SocialMgr::BroadcastToFriendListers(MasterPlayer* player, WorldPacket* pack PlayerSocial* SocialMgr::LoadFromDB(QueryResult* result, ObjectGuid guid) { - std::unique_lock guard(_socialMapLock); + std::unique_lock guard(_socialMapLock); PlayerSocial *social = &m_socialMap[guid.GetCounter()]; social->SetPlayerGuid(guid); @@ -348,6 +348,6 @@ PlayerSocial* SocialMgr::LoadFromDB(QueryResult* result, ObjectGuid guid) void SocialMgr::RemovePlayerSocial(uint32 guid) { - std::unique_lock guard(_socialMapLock); + std::unique_lock guard(_socialMapLock); m_socialMap.erase(guid); } diff --git a/src/game/SocialMgr.h b/src/game/SocialMgr.h index 4faddc7e687..1ec0e1c8a75 100644 --- a/src/game/SocialMgr.h +++ b/src/game/SocialMgr.h @@ -157,7 +157,7 @@ class SocialMgr private: SocialMap m_socialMap; - std::shared_mutex _socialMapLock; + std::shared_timed_mutex _socialMapLock; }; #define sSocialMgr MaNGOS::Singleton::Instance() From eedd248821e1d4949d4b9c36de66e1a92c9bdd68 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 31 Oct 2023 22:04:22 +0200 Subject: [PATCH 265/426] Add option to automatically add battlebots. --- src/game/Chat/Chat.cpp | 1 + src/game/Chat/Chat.h | 1 + src/game/PlayerBots/PlayerBotMgr.cpp | 220 ++++++++++++++++----------- src/game/PlayerBots/PlayerBotMgr.h | 5 + src/mangosd/mangosd.conf.dist.in | 5 + 5 files changed, 145 insertions(+), 87 deletions(-) diff --git a/src/game/Chat/Chat.cpp b/src/game/Chat/Chat.cpp index f1595f619f8..49b4d1f7830 100644 --- a/src/game/Chat/Chat.cpp +++ b/src/game/Chat/Chat.cpp @@ -123,6 +123,7 @@ ChatCommand * ChatHandler::getCommandTable() { { "add", SEC_ADMINISTRATOR, true, nullptr, "Add a new bot", battleBotAddCommandTable }, { "remove", SEC_ADMINISTRATOR, false, &ChatHandler::HandleBattleBotRemoveCommand, "", nullptr }, + { "removeall", SEC_ADMINISTRATOR, true, &ChatHandler::HandleBattleBotRemoveAllCommand, "", nullptr }, { "showpath", SEC_ADMINISTRATOR, false, &ChatHandler::HandleBattleBotShowPathCommand, "", nullptr }, { "showallpaths", SEC_ADMINISTRATOR, false, &ChatHandler::HandleBattleBotShowAllPathsCommand, "", nullptr }, { nullptr, 0, false, nullptr, "", nullptr }, diff --git a/src/game/Chat/Chat.h b/src/game/Chat/Chat.h index a0a42f50fdc..03dd59c37de 100644 --- a/src/game/Chat/Chat.h +++ b/src/game/Chat/Chat.h @@ -278,6 +278,7 @@ class ChatHandler bool HandleBattleBotAddArathiCommand(char* args); bool HandleBattleBotAddWarsongCommand(char* args); bool HandleBattleBotRemoveCommand(char* args); + bool HandleBattleBotRemoveAllCommand(char* args); bool HandleBattleBotShowPathCommand(char* args); bool HandleBattleBotShowAllPathsCommand(char* args); diff --git a/src/game/PlayerBots/PlayerBotMgr.cpp b/src/game/PlayerBots/PlayerBotMgr.cpp index 7fba39b3301..b1135c89854 100644 --- a/src/game/PlayerBots/PlayerBotMgr.cpp +++ b/src/game/PlayerBots/PlayerBotMgr.cpp @@ -13,6 +13,7 @@ #include "PartyBotAI.h" #include "BattleBotAI.h" #include "BattleBotWaypoints.h" +#include "BattleGroundMgr.h" #include "Language.h" #include "Spell.h" @@ -31,6 +32,7 @@ PlayerBotMgr::PlayerBotMgr() m_confUpdateDiff = 10000; m_confEnableRandomBots = false; m_confDebug = false; + m_confBattleBotAutoJoin = false; // Time m_elapsedTime = 0; @@ -52,6 +54,7 @@ void PlayerBotMgr::LoadConfig() m_confAllowSaving = sConfig.GetBoolDefault("PlayerBot.AllowSaving", false); m_confDebug = sConfig.GetBoolDefault("PlayerBot.Debug", false); m_confUpdateDiff = sConfig.GetIntDefault("PlayerBot.UpdateMs", 10000); + m_confBattleBotAutoJoin = sConfig.GetBoolDefault("BattleBot.AutoJoin", false); if (!sWorld.getConfig(CONFIG_BOOL_FORCE_LOGOUT_DELAY)) m_tempBots.clear(); @@ -290,14 +293,69 @@ void PlayerBotMgr::Update(uint32 diff) ++iter; } - if (!m_confEnableRandomBots) - return; + if (m_confBattleBotAutoJoin && (m_lastBattleBotQueueUpdate <= (sWorld.GetGameTime() - 10))) + { + m_lastBattleBotQueueUpdate = sWorld.GetGameTime(); + for (uint32 queueType = BATTLEGROUND_QUEUE_AV; queueType < MAX_BATTLEGROUND_QUEUE_TYPES; ++queueType) + { + uint32 queuedAllianceCount[MAX_BATTLEGROUND_BRACKETS] = {}; + uint32 queuedHordeCount[MAX_BATTLEGROUND_BRACKETS] = {}; + BattleGroundQueue const& bgQueue = sBattleGroundMgr.m_battleGroundQueues[queueType]; + for (auto const& itr : bgQueue.m_queuedPlayers) + { + if (itr.second.groupInfo->isInvitedToBgInstanceGuid) + continue; + + if (Player* pPlayer = sObjectAccessor.FindPlayer(itr.first)) + { + if (pPlayer->IsBot()) + continue; + + BattleGroundTypeId bgTypeId = itr.second.groupInfo->bgTypeId; + BattleGroundBracketId bgBracketId = pPlayer->GetBattleGroundBracketIdFromLevel(bgTypeId); + if (bgBracketId == BG_BRACKET_ID_NONE) + continue; + + if (itr.second.groupInfo->groupTeam == ALLIANCE) + ++queuedAllianceCount[bgBracketId]; + else + ++queuedHordeCount[bgBracketId]; + } + } - uint32 updatesCount = (m_elapsedTime - m_lastBotsRefresh) / m_confRandomBotsRefresh; - for (uint32 i = 0; i < updatesCount; ++i) + for (uint32 bracketId = BG_BRACKET_ID_FIRST; bracketId < MAX_BATTLEGROUND_BRACKETS; ++bracketId) + { + if (!queuedAllianceCount[bracketId] && !queuedHordeCount[bracketId]) + continue; + + BattleGroundTypeId bgTypeId = BattleGroundMgr::BgTemplateId(BattleGroundQueueTypeId(queueType)); + BattleGround* bg = sBattleGroundMgr.GetBattleGroundTemplate(bgTypeId); + ASSERT(bg); + + uint32 botLevel = bg->GetMinLevel() + 10 * bracketId; + + for (uint32 i = queuedAllianceCount[bracketId]; i < bg->GetMinPlayersPerTeam(); ++i) + { + sLog.Out(LOG_BG, LOG_LVL_BASIC, "[PlayerBotMgr] Adding level %u alliance battlebot to bg queue %u.", botLevel, queueType); + AddBattleBot(BattleGroundQueueTypeId(queueType), ALLIANCE, botLevel); + } + for (uint32 i = queuedHordeCount[bracketId]; i < bg->GetMinPlayersPerTeam(); ++i) + { + sLog.Out(LOG_BG, LOG_LVL_BASIC, "[PlayerBotMgr] Adding level %u horde battlebot to bg queue %u.", botLevel, queueType); + AddBattleBot(BattleGroundQueueTypeId(queueType), HORDE, botLevel); + } + } + } + } + + if (m_confEnableRandomBots) { - AddOrRemoveBot(); - m_lastBotsRefresh += m_confRandomBotsRefresh; + uint32 updatesCount = (m_elapsedTime - m_lastBotsRefresh) / m_confRandomBotsRefresh; + for (uint32 i = 0; i < updatesCount; ++i) + { + AddOrRemoveBot(); + m_lastBotsRefresh += m_confRandomBotsRefresh; + } } } @@ -478,6 +536,61 @@ bool PlayerBotMgr::DeleteRandomBot() return false; } +uint8 SelectRandomRaceForClass(uint8 playerClass, Team playerTeam) +{ + std::vector validRaces; + for (uint32 raceId = 1; raceId < MAX_RACES; ++raceId) + { + if (playerTeam == ALLIANCE) + { + if (!((1 << (raceId - 1)) & RACEMASK_ALLIANCE)) + continue; + } + else if (playerTeam == HORDE) + { + if (!((1 << (raceId - 1)) & RACEMASK_HORDE)) + continue; + } + + if (sObjectMgr.GetPlayerInfo(raceId, playerClass)) + validRaces.push_back(raceId); + } + + if (validRaces.empty()) + return 0; + + return SelectRandomContainerElement(validRaces); +} + +void PlayerBotMgr::AddBattleBot(BattleGroundQueueTypeId queueType, Team botTeam, uint32 botLevel) +{ + std::vector availableClasses = { CLASS_WARRIOR, CLASS_HUNTER, CLASS_ROGUE, CLASS_MAGE, CLASS_WARLOCK, CLASS_PRIEST, CLASS_DRUID }; + if (botTeam == HORDE) + availableClasses.push_back(CLASS_SHAMAN); + else + availableClasses.push_back(CLASS_PALADIN); + + uint8 botClass = SelectRandomContainerElement(availableClasses); + uint8 botRace = SelectRandomRaceForClass(botClass, botTeam); + if (!botRace) + return; + + // Spawn bot on GM Island + uint32 const instanceId = sMapMgr.GetContinentInstanceId(1, 16224.356f, 16284.763f); + BattleBotAI* ai = new BattleBotAI(botRace, botClass, botLevel, 1, instanceId, 16224.356f, 16284.763f, 13.175f, 4.56f, queueType); + AddBot(ai); +} + +void PlayerBotMgr::DeleteBattleBots() +{ + for (auto const& itr : m_bots) + { + if (dynamic_cast(itr.second->ai.get())) + itr.second->requestRemoval = true; + } + m_confBattleBotAutoJoin = false; +} + bool PlayerBotMgr::ForceAccountConnection(WorldSession* sess) { if (sess->GetBot()) @@ -617,75 +730,6 @@ bool ChatHandler::HandleBotStartCommand(char * args) return true; } -uint8 SelectRandomRaceForClass(uint8 playerClass, Team playerTeam) -{ - switch (playerClass) - { - case CLASS_WARRIOR: - { - if (playerTeam == ALLIANCE) - return PickRandomValue(RACE_HUMAN, RACE_DWARF, RACE_NIGHTELF, RACE_GNOME); - else - return PickRandomValue(RACE_ORC, RACE_UNDEAD, RACE_TAUREN, RACE_TROLL); - break; - } - case CLASS_PALADIN: - { - return urand(0, 1) ? RACE_HUMAN : RACE_DWARF; - } - case CLASS_HUNTER: - { - if (playerTeam == ALLIANCE) - return urand(0, 1) ? RACE_DWARF : RACE_NIGHTELF; - else - return PickRandomValue(RACE_ORC, RACE_TAUREN, RACE_TROLL); - break; - } - case CLASS_ROGUE: - { - if (playerTeam == ALLIANCE) - return PickRandomValue(RACE_HUMAN, RACE_DWARF, RACE_NIGHTELF, RACE_GNOME); - else - return PickRandomValue(RACE_ORC, RACE_UNDEAD, RACE_TROLL); - break; - } - case CLASS_PRIEST: - { - if (playerTeam == ALLIANCE) - return PickRandomValue(RACE_HUMAN, RACE_DWARF, RACE_NIGHTELF); - else - return urand(0, 1) ? RACE_UNDEAD : RACE_TROLL; - break; - } - case CLASS_SHAMAN: - { - return PickRandomValue(RACE_ORC, RACE_TAUREN, RACE_TROLL); - } - case CLASS_MAGE: - { - if (playerTeam == ALLIANCE) - return urand(0, 1) ? RACE_HUMAN : RACE_GNOME; - else - return urand(0, 1) ? RACE_UNDEAD : RACE_TROLL; - break; - } - case CLASS_WARLOCK: - { - if (playerTeam == ALLIANCE) - return urand(0, 1) ? RACE_HUMAN : RACE_GNOME; - else - return urand(0, 1) ? RACE_ORC : RACE_UNDEAD; - break; - } - case CLASS_DRUID: - { - return playerTeam == ALLIANCE ? RACE_NIGHTELF : RACE_TAUREN; - } - } - - return 0; -} - bool ChatHandler::PartyBotAddRequirementCheck(Player const* pPlayer, Player const* pTarget) { if (pPlayer->IsTaxiFlying()) @@ -849,6 +893,12 @@ bool ChatHandler::HandlePartyBotAddCommand(char* args) } uint8 botRace = SelectRandomRaceForClass(botClass, pPlayer->GetTeam()); + if (!botRace) + { + SendSysMessage("Unable to select race for bot."); + SetSentErrorMessage(true); + return false; + } float x, y, z; pPlayer->GetNearPoint(pPlayer, x, y, z, 0, 5.0f, frand(0.0f, 6.0f)); @@ -1667,18 +1717,7 @@ bool ChatHandler::HandleBattleBotAddCommand(char* args, uint8 bg) ExtractUInt32(&args, botLevel); } - std::vector dpsClasses = { CLASS_WARRIOR, CLASS_HUNTER, CLASS_ROGUE, CLASS_MAGE, CLASS_WARLOCK, CLASS_PRIEST, CLASS_DRUID }; - if (botTeam == HORDE) - dpsClasses.push_back(CLASS_SHAMAN); - else - dpsClasses.push_back(CLASS_PALADIN); - uint8 botClass = SelectRandomContainerElement(dpsClasses); - uint8 botRace = SelectRandomRaceForClass(botClass, botTeam); - - // Spawn bot on GM Island - uint32 const instanceId = sMapMgr.GetContinentInstanceId(1, 16224.356f, 16284.763f); - BattleBotAI* ai = new BattleBotAI(botRace, botClass, botLevel, 1, instanceId, 16224.356f, 16284.763f, 13.175f, 4.56f, bg); - sPlayerBotMgr.AddBot(ai); + sPlayerBotMgr.AddBattleBot(BattleGroundQueueTypeId(bg), botTeam, botLevel); if (bg == BATTLEGROUND_QUEUE_WS) PSendSysMessage("Added %s battle bot and queuing for WS", option.c_str()); @@ -1716,6 +1755,13 @@ bool ChatHandler::HandleBattleBotRemoveCommand(char* args) return false; } +bool ChatHandler::HandleBattleBotRemoveAllCommand(char* args) +{ + sPlayerBotMgr.DeleteBattleBots(); + SendSysMessage("Removed all battlebots."); + return true; +} + #define SPELL_RED_GLOW 20370 void ShowBattleBotPathHelper(Map* pMap, BattleBotPath* pPath, uint32 id) diff --git a/src/game/PlayerBots/PlayerBotMgr.h b/src/game/PlayerBots/PlayerBotMgr.h index 30f2cc1d020..a7243a58768 100644 --- a/src/game/PlayerBots/PlayerBotMgr.h +++ b/src/game/PlayerBots/PlayerBotMgr.h @@ -86,6 +86,9 @@ class PlayerBotMgr bool AddRandomBot(); bool DeleteRandomBot(); + void AddBattleBot(BattleGroundQueueTypeId queueType, Team botTeam, uint32 botLevel); + void DeleteBattleBots(); + void DeleteAll(); void AddAllBots(); @@ -110,6 +113,7 @@ class PlayerBotMgr uint32 m_lastUpdate; uint32 m_totalChance; uint32 m_maxAccountId; + time_t m_lastBattleBotQueueUpdate; std::map> m_bots; std::map m_tempBots; @@ -122,6 +126,7 @@ class PlayerBotMgr bool m_confAllowSaving; bool m_confDebug; bool m_confEnableRandomBots; + bool m_confBattleBotAutoJoin; }; #define sPlayerBotMgr MaNGOS::Singleton::Instance() diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index 9e399830859..93b01cb2894 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -2916,6 +2916,11 @@ AHBot.itemcount = 50 # 0 (normal starting items) # 2 (premade gear template) # +# BattleBot.AutoJoin +# Adds enough battlebots for battleground to start when a player queues. +# Default: 0 - off +# 1 - on +# ################################################################################################################### RandomBot.Enable = 0 RandomBot.MinBots = 0 From a2b14806bc5dad2c0fe02afe4f80ddda81f0eb02 Mon Sep 17 00:00:00 2001 From: Ilya Date: Wed, 1 Nov 2023 12:57:51 +0300 Subject: [PATCH 266/426] Add BattleBot.AutoJoin option in config. (#2258) --- src/mangosd/mangosd.conf.dist.in | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index 93b01cb2894..8e251ae3592 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -2938,6 +2938,7 @@ PartyBot.AutoEquip = 1 PartyBot.RandomGearLevelDifference = 10 BattleBot.AutoEquip = 1 +BattleBot.AutoJoin = 0 ################################################################################################################### # Database-based chat From cc8b19c8c15661af7d97dced51147fc8430a9066 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 1 Nov 2023 21:37:07 +0200 Subject: [PATCH 267/426] Make ip bans loading async. --- src/game/AccountMgr.cpp | 26 +++++++++++++++----------- src/game/AccountMgr.h | 7 +++++-- src/game/Commands/ServerCommands.cpp | 2 +- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/game/AccountMgr.cpp b/src/game/AccountMgr.cpp index 1409c33c3fa..ae3d2cfd24f 100644 --- a/src/game/AccountMgr.cpp +++ b/src/game/AccountMgr.cpp @@ -21,6 +21,7 @@ #include "AccountMgr.h" #include "Database/DatabaseEnv.h" +#include "Database/DatabaseImpl.h" #include "ObjectAccessor.h" #include "ObjectGuid.h" #include "Player.h" @@ -253,7 +254,7 @@ void AccountMgr::Load() sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ">> %u GM ranks loaded for realm %u", m_accountSecurity.size(), realmID); sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, ""); LoadAccountBanList(); - LoadIPBanList(); + LoadIPBanList(LoginDatabase.Query(LOAD_IP_BANS_QUERY)); LoadAccountWarnings(); } @@ -368,21 +369,19 @@ void AccountMgr::Update(uint32 diff) if (m_banlistUpdateTimer < diff) { m_banlistUpdateTimer = sWorld.getConfig(CONFIG_UINT32_BANLIST_RELOAD_TIMER) * 1000; - LoadIPBanList(true); + LoginDatabase.AsyncQuery(this, &AccountMgr::LoadIPBanList, true, LOAD_IP_BANS_QUERY); //LoadAccountBanList(true); } else m_banlistUpdateTimer -= diff; } -void AccountMgr::LoadIPBanList(bool silent) +void AccountMgr::LoadIPBanList(QueryResult* result, bool silent) { if (!silent) sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Loading ip_banned ..."); - std::unique_ptr banresult(LoginDatabase.PQuery("SELECT `ip`, `unbandate`, `bandate` FROM `ip_banned` WHERE (`unbandate` > UNIX_TIMESTAMP() OR `bandate` = `unbandate`)")); - - if (!banresult) + if (!result) { if (!silent) { @@ -395,19 +394,23 @@ void AccountMgr::LoadIPBanList(bool silent) return; } - m_ipBanned.clear(); - std::unique_ptr bar = silent ? nullptr : std::make_unique(banresult->GetRowCount()); + std::map ipBanned; + std::unique_ptr bar = silent ? nullptr : std::make_unique(result->GetRowCount()); do { if (bar) bar->step(); - Field* fields = banresult->Fetch(); + Field* fields = result->Fetch(); uint32 unbandate = fields[1].GetUInt32(); uint32 bandate = fields[2].GetUInt32(); if (unbandate == bandate) unbandate = 0xFFFFFFFF; - m_ipBanned[fields[0].GetString()] = unbandate; - } while (banresult->NextRow()); + ipBanned.emplace(std::make_pair(fields[0].GetString(), unbandate)); + } while (result->NextRow()); + delete result; + + std::lock_guard lock(m_ipBannedMutex); + std::swap(ipBanned, m_ipBanned); if (!silent) { @@ -459,6 +462,7 @@ void AccountMgr::LoadAccountBanList(bool silent) bool AccountMgr::IsIPBanned(std::string const& ip) const { + std::shared_lock lock(m_ipBannedMutex); std::map::const_iterator it = m_ipBanned.find(ip); return !(it == m_ipBanned.end() || it->second < time(nullptr)); } diff --git a/src/game/AccountMgr.h b/src/game/AccountMgr.h index b2794514d6e..7540519c636 100644 --- a/src/game/AccountMgr.h +++ b/src/game/AccountMgr.h @@ -25,6 +25,7 @@ #include "Common.h" #include "Policies/Singleton.h" #include +#include enum AccountOpResult { @@ -36,13 +37,14 @@ enum AccountOpResult AOR_DB_INTERNAL_ERROR }; - class WorldSession; class ChatHandler; class MasterPlayer; #define MAX_ACCOUNT_STR 16 +#define LOAD_IP_BANS_QUERY "SELECT `ip`, `unbandate`, `bandate` FROM `ip_banned` WHERE (`unbandate` > UNIX_TIMESTAMP() OR `bandate` = `unbandate`)" + class AccountPersistentData { // WHISP FLOOD @@ -97,7 +99,7 @@ class AccountMgr static bool normalizeString(std::string& utf8str); // Nostalrius void Update(uint32 diff); - void LoadIPBanList(bool silent=false); + void LoadIPBanList(QueryResult* result, bool silent=false); void LoadAccountBanList(bool silent=false); void BanIP(std::string const& ip, uint32 unbandate) { m_ipBanned[ip] = unbandate; } void UnbanIP(std::string const& ip) { m_ipBanned.erase(ip); } @@ -126,6 +128,7 @@ class AccountMgr std::map m_accountSecurity; uint32 m_banlistUpdateTimer; std::map m_ipBanned; + mutable std::shared_timed_mutex m_ipBannedMutex; std::map m_accountBanned; typedef std::map InstanceEnterTimesMap; typedef std::map AccountInstanceEnterTimesMap; diff --git a/src/game/Commands/ServerCommands.cpp b/src/game/Commands/ServerCommands.cpp index f2b6dffed38..92a1413e821 100644 --- a/src/game/Commands/ServerCommands.cpp +++ b/src/game/Commands/ServerCommands.cpp @@ -1837,7 +1837,7 @@ bool ChatHandler::HandleReloadCreatureDisplayInfoAddon(char*) bool ChatHandler::HandleReloadIPBanList(char*) { - sAccountMgr.LoadIPBanList(); + sAccountMgr.LoadIPBanList(LoginDatabase.Query(LOAD_IP_BANS_QUERY)); SendSysMessage(">> Table `ip_banned` reloaded."); return true; } From 017c2625e113954119336df6e707cfe4bf66029a Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 1 Nov 2023 21:42:27 +0200 Subject: [PATCH 268/426] Forgot to initialize battlebot auto join time. --- src/game/PlayerBots/PlayerBotMgr.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/game/PlayerBots/PlayerBotMgr.cpp b/src/game/PlayerBots/PlayerBotMgr.cpp index b1135c89854..c5b30a430a2 100644 --- a/src/game/PlayerBots/PlayerBotMgr.cpp +++ b/src/game/PlayerBots/PlayerBotMgr.cpp @@ -38,6 +38,7 @@ PlayerBotMgr::PlayerBotMgr() m_elapsedTime = 0; m_lastBotsRefresh = 0; m_lastUpdate = 0; + m_lastBattleBotQueueUpdate = 0; } PlayerBotMgr::~PlayerBotMgr() From 36a386fc554fd5f4272c9ba9438205f53bbbb010 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 4 Nov 2023 22:50:55 +0200 Subject: [PATCH 269/426] Skip not selectable unit check for TARGET_LOCATION_SCRIPT_NEAR_CASTER. Closes https://github.com/vmangos/core/issues/2262 --- src/game/Spells/Spell.cpp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 555a09b92e9..083733ede38 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -8190,18 +8190,20 @@ bool Spell::CheckTarget(Unit* target, SpellEffectIndex eff) if (target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SPAWNING)) return false; - // unselectable targets skipped in all cases except TARGET_UNIT_SCRIPT_NEAR_CASTER targeting - // in case TARGET_UNIT_SCRIPT_NEAR_CASTER target selected by server always and can't be cheated + // unselectable targets skipped in all cases except db defined script targets + // in that case the target is selected by server, not by client, so no cheating if ((!m_IsTriggeredSpell || target != m_targets.getUnitTarget()) && - target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE) && - m_spellInfo->EffectImplicitTargetA[eff] != TARGET_UNIT_SCRIPT_NEAR_CASTER && - m_spellInfo->EffectImplicitTargetB[eff] != TARGET_UNIT_SCRIPT_NEAR_CASTER && - m_spellInfo->EffectImplicitTargetA[eff] != TARGET_ENUM_UNITS_SCRIPT_AOE_AT_SRC_LOC && - m_spellInfo->EffectImplicitTargetB[eff] != TARGET_ENUM_UNITS_SCRIPT_AOE_AT_SRC_LOC && - m_spellInfo->EffectImplicitTargetA[eff] != TARGET_ENUM_UNITS_SCRIPT_AOE_AT_DEST_LOC && - m_spellInfo->EffectImplicitTargetB[eff] != TARGET_ENUM_UNITS_SCRIPT_AOE_AT_DEST_LOC && - m_spellInfo->EffectImplicitTargetA[eff] != TARGET_ENUM_UNITS_SCRIPT_IN_CONE_60 && - m_spellInfo->EffectImplicitTargetB[eff] != TARGET_ENUM_UNITS_SCRIPT_IN_CONE_60) + target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE) && + m_spellInfo->EffectImplicitTargetA[eff] != TARGET_UNIT_SCRIPT_NEAR_CASTER && + m_spellInfo->EffectImplicitTargetB[eff] != TARGET_UNIT_SCRIPT_NEAR_CASTER && + m_spellInfo->EffectImplicitTargetA[eff] != TARGET_ENUM_UNITS_SCRIPT_AOE_AT_SRC_LOC && + m_spellInfo->EffectImplicitTargetB[eff] != TARGET_ENUM_UNITS_SCRIPT_AOE_AT_SRC_LOC && + m_spellInfo->EffectImplicitTargetA[eff] != TARGET_ENUM_UNITS_SCRIPT_AOE_AT_DEST_LOC && + m_spellInfo->EffectImplicitTargetB[eff] != TARGET_ENUM_UNITS_SCRIPT_AOE_AT_DEST_LOC && + m_spellInfo->EffectImplicitTargetA[eff] != TARGET_ENUM_UNITS_SCRIPT_IN_CONE_60 && + m_spellInfo->EffectImplicitTargetB[eff] != TARGET_ENUM_UNITS_SCRIPT_IN_CONE_60 && + m_spellInfo->EffectImplicitTargetA[eff] != TARGET_LOCATION_SCRIPT_NEAR_CASTER && + m_spellInfo->EffectImplicitTargetB[eff] != TARGET_LOCATION_SCRIPT_NEAR_CASTER) return false; } From bd9cca7b9d16d3e88c15ed378a893faebaf353f1 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 5 Nov 2023 00:57:15 +0200 Subject: [PATCH 270/426] Fix camera bug when enabling flying on transport. --- src/game/Objects/Player.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index c381068ddbe..0de3a8be9e2 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -4949,6 +4949,14 @@ void Player::SetFly(bool enable) { if (enable) { + if (GenericTransport* pTransport = GetTransport()) + { + // Remove client from transport by sending regular monster move packet. + // Otherwise camera will bug out and get stuck in a weird position. + pTransport->RemovePassenger(this); + StopMoving(true); + } + m_movementInfo.moveFlags = (MOVEFLAG_LEVITATING | MOVEFLAG_SWIMMING | MOVEFLAG_CAN_FLY | MOVEFLAG_FLYING); AddUnitState(UNIT_STAT_FLYING_ALLOWED); } From 8e0150ee26f7638cc65dce8e9a27de696c6d6c70 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 5 Nov 2023 06:51:59 +0200 Subject: [PATCH 271/426] Some spell target check changes. --- sql/migrations/20231105013729_world.sql | 21 ++++++++++ src/game/Maps/GridNotifiersImpl.h | 41 +++++++++--------- src/game/Objects/DynamicObject.cpp | 5 +++ src/game/Objects/DynamicObject.h | 2 + src/game/Objects/Object.cpp | 42 +++++++++++++++++++ src/game/Objects/Object.h | 1 + src/game/Objects/Unit.cpp | 41 ++++++++++-------- src/game/Objects/Unit.h | 2 +- src/game/Spells/Spell.cpp | 55 +++++++++++-------------- src/game/Spells/SpellAuras.cpp | 38 ++++++++++++----- 10 files changed, 168 insertions(+), 80 deletions(-) create mode 100644 sql/migrations/20231105013729_world.sql diff --git a/sql/migrations/20231105013729_world.sql b/sql/migrations/20231105013729_world.sql new file mode 100644 index 00000000000..921bf0db3de --- /dev/null +++ b/sql/migrations/20231105013729_world.sql @@ -0,0 +1,21 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231105013729'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231105013729'); +-- Add your query below. + + +-- Remove custom change to icon of Consecration. +DELETE FROM `spell_mod` WHERE `Id` IN (20116, 20922, 20923, 20924, 26573); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Maps/GridNotifiersImpl.h b/src/game/Maps/GridNotifiersImpl.h index 0180a772460..9cd51a14d46 100644 --- a/src/game/Maps/GridNotifiersImpl.h +++ b/src/game/Maps/GridNotifiersImpl.h @@ -127,33 +127,27 @@ inline void MaNGOS::DynamicObjectUpdater::VisitHelper(Unit* target) if (!target->CanSeeInWorld(i_check)) return; - if (!target->IsAlive() || target->IsTaxiFlying()) - return; - - if (target->GetTypeId() == TYPEID_UNIT && ((Creature*)target)->IsImmuneToAoe()) - return; - if (!i_dynobject.IsWithinDistInMap(target, i_dynobject.GetRadius())) return; - //Check targets for not_selectable unit flag and remove - if (target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SPAWNING | UNIT_FLAG_NOT_SELECTABLE)) - return; - - if (i_dynobject.GetCasterGuid().IsPlayer() && target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PLAYER)) - return; - - // Evade target - if (target->GetTypeId()==TYPEID_UNIT && ((Creature*)target)->IsInEvadeMode()) - return; + if (target->IsCreature()) + { + if (((Creature*)target)->IsImmuneToAoe()) + return; - //Check player targets and remove if in GM mode or GM invisibility (for not self casting case) - if (target->GetTypeId() == TYPEID_PLAYER && target != i_check && (((Player*)target)->IsGameMaster() || ((Player*)target)->GetVisibility() == VISIBILITY_OFF)) - return; + if (((Creature*)target)->IsInEvadeMode()) + return; + } + else + { + //Check player targets and remove if in GM mode or GM invisibility (for not self casting case) + if (target != i_check && (((Player*)target)->IsGameMaster() || ((Player*)target)->GetVisibility() == VISIBILITY_OFF)) + return; + } if (!i_positive && !i_check->IsValidAttackTarget(target)) return; - if (i_positive && !i_check->IsFriendlyTo(target)) + if (i_positive && !i_check->IsValidHelpfulTarget(target)) return; // Must check LoS with the target to prevent casting through objects by targeting @@ -166,14 +160,19 @@ inline void MaNGOS::DynamicObjectUpdater::VisitHelper(Unit* target) Unit* pUnit = i_check->ToUnit(); - // Negative AoE from non flagged players cannot target other players + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - Consecration and other similar spells can no longer be used by + // non-PvP flagged players to damage PvP flagged enemies. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 if (!i_positive) { + // Negative AoE from non flagged players cannot target other players if (Player* attackerPlayer = pUnit ? pUnit->GetCharmerOrOwnerPlayerOrPlayerItself() : nullptr) if (Player* attackedPlayer = target->GetCharmerOrOwnerPlayerOrPlayerItself()) if (!attackerPlayer->IsPvP() && !(attackerPlayer->IsFFAPvP() && attackedPlayer->IsFFAPvP()) && !attackerPlayer->IsInDuelWith(attackedPlayer)) return; } +#endif SpellEntry const* spellInfo = sSpellMgr.GetSpellEntry(i_dynobject.GetSpellId()); SpellEffectIndex eff_index = i_dynobject.GetEffIndex(); diff --git a/src/game/Objects/DynamicObject.cpp b/src/game/Objects/DynamicObject.cpp index b5fb1b7c569..871cccbb8c0 100644 --- a/src/game/Objects/DynamicObject.cpp +++ b/src/game/Objects/DynamicObject.cpp @@ -158,6 +158,11 @@ Unit* DynamicObject::GetUnitCaster() const return nullptr; } +Player* DynamicObject::GetAffectingPlayer() const +{ + return ::ToPlayer(GetUnitCaster()); +} + uint32 DynamicObject::GetFactionTemplateId() const { return GetCaster()->GetFactionTemplateId(); diff --git a/src/game/Objects/DynamicObject.h b/src/game/Objects/DynamicObject.h index d5ad0805acf..e9a54dc65a5 100644 --- a/src/game/Objects/DynamicObject.h +++ b/src/game/Objects/DynamicObject.h @@ -52,6 +52,8 @@ class DynamicObject : public WorldObject ObjectGuid const& GetCasterGuid() const { return GetGuidValue(DYNAMICOBJECT_CASTER); } SpellCaster* GetCaster() const; Unit* GetUnitCaster() const; + Player* GetAffectingPlayer() const final; + bool IsCharmerOrOwnerPlayerOrPlayerItself() const final { return GetCasterGuid().IsPlayer(); } float GetRadius() const { return m_radius; } DynamicObjectType GetType() const { return (DynamicObjectType)GetByteValue(DYNAMICOBJECT_BYTES,0); } bool NeedsRefresh(Unit* unit) const; diff --git a/src/game/Objects/Object.cpp b/src/game/Objects/Object.cpp index 285bb166959..b2ef2ed31d1 100644 --- a/src/game/Objects/Object.cpp +++ b/src/game/Objects/Object.cpp @@ -3653,3 +3653,45 @@ bool WorldObject::IsValidAttackTarget(Unit const* target, bool checkAlive) const } return true; } + +bool WorldObject::IsValidHelpfulTarget(Unit const* target, bool checkAlive) const +{ + ASSERT(target); + + // this unit flag prevents casting on friendly or self too + if (target == this) + return !HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE_2); + + if (FindMap() != target->FindMap()) + return false; + + if (!target->IsTargetableBy(this, false, checkAlive, true)) + return false; + + if (GetReactionTo(target) < REP_UNFRIENDLY || + target->GetReactionTo(this) < REP_UNFRIENDLY) + return false; + + Player const* playerAffectingAttacker = GetAffectingPlayer(); + Player const* playerAffectingTarget = target->GetAffectingPlayer(); + + // PvP checks + if (playerAffectingAttacker && playerAffectingTarget) + { + // pet and owner + if (playerAffectingAttacker == playerAffectingTarget) + return true; + + // cannot help others in duels + if (playerAffectingAttacker->duel && playerAffectingAttacker->duel->startTime != 0 || + playerAffectingTarget->duel && playerAffectingTarget->duel->startTime != 0) + return false; + + // group forces friendly relations in ffa pvp + if (playerAffectingAttacker->IsFFAPvP() && playerAffectingTarget->IsFFAPvP() && + !playerAffectingAttacker->IsInSameRaidWith(playerAffectingTarget)) + return false; + } + + return true; +} diff --git a/src/game/Objects/Object.h b/src/game/Objects/Object.h index 4d42613bf99..e7a19574a8c 100644 --- a/src/game/Objects/Object.h +++ b/src/game/Objects/Object.h @@ -906,6 +906,7 @@ class WorldObject : public Object virtual ReputationRank GetReactionTo(WorldObject const* target) const; ReputationRank static GetFactionReactionTo(FactionTemplateEntry const* factionTemplateEntry, WorldObject const* target); bool IsValidAttackTarget(Unit const* target, bool checkAlive = true) const; + bool IsValidHelpfulTarget(Unit const* target, bool checkAlive = true) const; virtual void SaveRespawnTime() {} void AddObjectToRemoveList(); diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 5a8cce35964..af0c65c2d5a 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -6119,7 +6119,6 @@ void Unit::SetInCombatWithVictim(Unit* pVictim, bool touchOnly/* = false*/, uint } } - void Unit::ClearInCombat() { m_combatTimer = 0; @@ -6133,37 +6132,45 @@ void Unit::ClearInCombat() } } -bool Unit::IsTargetableBy(WorldObject const* pAttacker, bool forAoE, bool checkAlive) const +bool Unit::IsTargetableBy(WorldObject const* pCaster, bool forAoE, bool checkAlive, bool helpful) const { - if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE)) + // applies to both harmful and helpful + if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE_2)) return false; if (checkAlive && !IsAlive()) return false; - if (Player const* pPlayer = ToPlayer()) + if (!helpful) { - if (pPlayer->IsGameMaster() || pPlayer->GetCurrentCinematicEntry() != 0) + if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SPAWNING | UNIT_FLAG_TAXI_FLIGHT | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_NOT_SELECTABLE)) return false; - } - if (pAttacker) - { - if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SPAWNING | UNIT_FLAG_TAXI_FLIGHT | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_NON_ATTACKABLE_2)) - return false; + if (Player const* pPlayer = ToPlayer()) + { + if (pPlayer->IsGameMaster()) + return false; - if (IsTaxiFlying()) - return false; + if (pPlayer->GetCurrentCinematicEntry() != 0) + return false; + + if (IsTaxiFlying()) + return false; + } if (!forAoE && !CanBeDetected()) return false; + } - if (pAttacker->IsCharmerOrOwnerPlayerOrPlayerItself()) + if (pCaster) + { + if (pCaster->IsCharmerOrOwnerPlayerOrPlayerItself()) { + // applies to both harmful and helpful if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PLAYER)) return false; } - else // non player attacker + else if (!helpful) // non player attacker { if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC)) return false; @@ -6173,16 +6180,16 @@ bool Unit::IsTargetableBy(WorldObject const* pAttacker, bool forAoE, bool checkA } // attacker flags prevent attacking victim too - if (pAttacker->IsUnit()) + if (!helpful && pCaster->IsUnit()) { if (IsCharmerOrOwnerPlayerOrPlayerItself()) { - if (pAttacker->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PLAYER)) + if (pCaster->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PLAYER)) return false; } else // non player victim { - if (pAttacker->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC)) + if (pCaster->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC)) return false; } } diff --git a/src/game/Objects/Unit.h b/src/game/Objects/Unit.h index af0a92f8067..09ea7e5c369 100644 --- a/src/game/Objects/Unit.h +++ b/src/game/Objects/Unit.h @@ -1014,7 +1014,7 @@ class Unit : public SpellCaster void AddExtraAttackOnUpdate() { m_doExtraAttacks = true; }; bool CanAttack(Unit const* target, bool force = false) const; - bool IsTargetableBy(WorldObject const* pAttacker, bool forAoE = false, bool checkAlive = true) const; + bool IsTargetableBy(WorldObject const* pCaster, bool forAoE = false, bool checkAlive = true, bool helpful = false) const; bool CanReachWithMeleeAutoAttack(Unit const* pVictim, float flat_mod = 0.0f) const; bool CanReachWithMeleeAutoAttackAtPosition(Unit const* pVictim, float x, float y, float z, float flat_mod = 0.0f) const; diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 083733ede38..f5a0277f491 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -2751,7 +2751,7 @@ void Spell::SetTargetMap(SpellEffectIndex effIndex, uint32 targetMode, UnitList& // remove not targetable units if spell has no script targets for (UnitList::iterator itr = targetUnitMap.begin(); itr != targetUnitMap.end();) { - if (!(*itr)->IsTargetableBy(m_caster, true, false) || !m_spellInfo->CanTargetAliveState((*itr)->IsAlive())) + if (!(*itr)->IsTargetableBy(m_caster, true, false, m_spellInfo->IsPositiveSpell(m_caster, *itr)) || !m_spellInfo->CanTargetAliveState((*itr)->IsAlive())) targetUnitMap.erase(itr++); else ++itr; @@ -5956,20 +5956,6 @@ SpellCastResult Spell::CheckCast(bool strict) if (strict && m_spellInfo->HasAttribute(SPELL_ATTR_EX3_ONLY_ON_PLAYER) && target->GetTypeId() != TYPEID_PLAYER && !m_spellInfo->IsAreaOfEffectSpell()) return SPELL_FAILED_BAD_TARGETS; } - // Can't help a friend in duel | sorry, not enough time to figure out why this is necessary - if (m_spellInfo->IsPositiveSpell() && m_spellInfo->Id != 28697) - { - Player* casterOwner = m_casterUnit ? m_casterUnit->GetCharmerOrOwnerPlayerOrPlayerItself() : nullptr; - Player* targetOwner = target->GetCharmerOrOwnerPlayerOrPlayerItself(); - - if (m_spellInfo->Id == 7266 && targetOwner && targetOwner->duel && casterOwner && !casterOwner->IsInDuelWith(targetOwner)) - { - return SPELL_FAILED_TARGET_DUELING; - } - - if (targetOwner && casterOwner != targetOwner && targetOwner->duel && targetOwner->duel->startTime && casterOwner && !casterOwner->IsInDuelWith(targetOwner)) - return SPELL_FAILED_TARGET_DUELING; - } } else if (m_caster == target) { @@ -6048,7 +6034,6 @@ SpellCastResult Spell::CheckCast(bool strict) // simple cases bool explicit_target_mode = false; - bool target_hostile = false; bool target_hostile_checked = false; bool target_friendly_checked = false; for (uint32 k : m_spellInfo->EffectImplicitTargetA) @@ -6058,12 +6043,9 @@ SpellCastResult Spell::CheckCast(bool strict) if (!target_hostile_checked) { target_hostile_checked = true; - target_hostile = m_caster->IsHostileTo(target); + if (!m_caster->IsValidHelpfulTarget(target, false)) + return SPELL_FAILED_BAD_TARGETS; } - - if (target_hostile) - return SPELL_FAILED_BAD_TARGETS; - explicit_target_mode = true; } else if (IsExplicitNegativeTarget(k)) @@ -6085,10 +6067,7 @@ SpellCastResult Spell::CheckCast(bool strict) // check correctness positive/negative cast target (pet cast real check and cheating check) if (m_spellInfo->IsPositiveSpell()) { - if (!target_hostile_checked) - target_hostile = m_caster->IsHostileTo(target); - - if (target_hostile) + if (!target_hostile_checked && m_caster->IsHostileTo(target)) return SPELL_FAILED_BAD_TARGETS; } else @@ -6759,9 +6738,19 @@ SpellCastResult Spell::CheckCast(bool strict) } case SPELL_EFFECT_DUEL: { - Unit* target = m_targets.getUnitTarget(); - if (target && target->GetTransport() != m_caster->GetTransport()) + if (!m_caster->IsPlayer()) + return SPELL_FAILED_BAD_TARGETS; + + Player* target = ToPlayer(m_targets.getUnitTarget()); + if (!target) + return SPELL_FAILED_BAD_TARGETS; + + if (target->GetTransport() != m_caster->GetTransport()) return SPELL_FAILED_NOT_ON_TRANSPORT; + + if (target->duel) + return SPELL_FAILED_TARGET_DUELING; + break; } case SPELL_EFFECT_SCRIPT_EFFECT: @@ -7165,11 +7154,12 @@ SpellCastResult Spell::CheckPetCast(Unit* target) // for target dead/target not valid if (_target && IsExplicitlySelectedUnitTarget(m_spellInfo->EffectImplicitTargetA[0])) { - if (!_target->IsTargetableBy(m_spellInfo->IsPositiveSpell() ? nullptr : m_casterUnit)) + bool const positive = m_spellInfo->IsPositiveSpell(m_caster, _target); + if (!_target->IsTargetableBy(m_casterUnit, false, true, positive)) return SPELL_FAILED_BAD_TARGETS; // guessed error // SPELL_EFFECT_DISPEL -> Positive or negative depending on the target - if (m_spellInfo->IsPositiveSpell() && !m_spellInfo->HasEffect(SPELL_EFFECT_DISPEL)) + if (positive) { if (m_casterUnit->IsHostileTo(_target)) return SPELL_FAILED_BAD_TARGETS; @@ -8172,9 +8162,12 @@ bool Spell::CheckTarget(Unit* target, SpellEffectIndex eff) Player* casterOwner = m_casterUnit->GetCharmerOrOwnerPlayerOrPlayerItself(); Player* targetOwner = target->GetCharmerOrOwnerPlayerOrPlayerItself(); - if (targetOwner && casterOwner != targetOwner && targetOwner->duel && casterOwner && !casterOwner->IsInDuelWith(targetOwner)) + if (targetOwner && casterOwner && casterOwner != targetOwner && + targetOwner->duel && targetOwner->duel->startTime != 0 && + targetOwner->duel->opponent != casterOwner) return false; } + // Check targets for creature type mask and remove not appropriate (skip explicit self target case, maybe need other explicit targets) if (m_spellInfo->EffectImplicitTargetA[eff] != TARGET_UNIT_CASTER) { @@ -8572,7 +8565,7 @@ class SpellNotifierCreatureAndPlayer if (i_TargetType != SPELL_TARGETS_ALL) { bool const forAttack = i_TargetType == SPELL_TARGETS_HOSTILE || i_TargetType == SPELL_TARGETS_NOT_FRIENDLY || i_TargetType == SPELL_TARGETS_AOE_DAMAGE; - if (!unit->IsTargetableBy(forAttack ? i_originalCaster : nullptr, true, false) || !i_spell.m_spellInfo->CanTargetAliveState(unit->IsAlive())) + if (!unit->IsTargetableBy(i_originalCaster, true, false, !forAttack) || !i_spell.m_spellInfo->CanTargetAliveState(unit->IsAlive())) continue; } diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index 06fb2c3c552..a2eb4d16945 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -5984,10 +5984,16 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data if (!pCaster) return; - if (spellProto->Effect[GetEffIndex()] == SPELL_EFFECT_PERSISTENT_AREA_AURA && - pCaster->SpellHitResult(target, spellProto, GetEffIndex(), false) != SPELL_MISS_NONE) - return; - + if (spellProto->Effect[GetEffIndex()] == SPELL_EFFECT_PERSISTENT_AREA_AURA) + { + SpellMissInfo result = pCaster->SpellHitResult(target, spellProto, GetEffIndex(), false); + if (result != SPELL_MISS_NONE) + { + pCaster->SendSpellMiss(target, GetId(), result); + return; + } + } + // Check for immune (not use charges) if (!spellProto->HasAttribute(SPELL_ATTR_NO_IMMUNITIES)) // confirmed Impaling spine goes through immunity { @@ -6092,9 +6098,15 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data if (!pCaster->IsInWorld() || !pCaster->IsAlive()) return; - if (spellProto->Effect[GetEffIndex()] == SPELL_EFFECT_PERSISTENT_AREA_AURA && - pCaster->SpellHitResult(target, spellProto, GetEffIndex(), false) != SPELL_MISS_NONE) - return; + if (spellProto->Effect[GetEffIndex()] == SPELL_EFFECT_PERSISTENT_AREA_AURA) + { + SpellMissInfo result = pCaster->SpellHitResult(target, spellProto, GetEffIndex(), false); + if (result != SPELL_MISS_NONE) + { + pCaster->SendSpellMiss(target, GetId(), result); + return; + } + } // Check for immune if (!spellProto->HasAttribute(SPELL_ATTR_NO_IMMUNITIES)) @@ -6281,9 +6293,15 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data if (!pCaster->IsAlive()) return; - if (GetSpellProto()->Effect[GetEffIndex()] == SPELL_EFFECT_PERSISTENT_AREA_AURA && - pCaster->SpellHitResult(target, spellProto, GetEffIndex(), false) != SPELL_MISS_NONE) - return; + if (spellProto->Effect[GetEffIndex()] == SPELL_EFFECT_PERSISTENT_AREA_AURA) + { + SpellMissInfo result = pCaster->SpellHitResult(target, spellProto, GetEffIndex(), false); + if (result != SPELL_MISS_NONE) + { + pCaster->SendSpellMiss(target, GetId(), result); + return; + } + } // Check for immune (not use charges) if (!spellProto->HasAttribute(SPELL_ATTR_NO_IMMUNITIES)) // confirmed Impaling spine goes through immunity From f232701b71cf7fc1e27385b8cae8e48f195015b3 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 5 Nov 2023 21:56:52 +0200 Subject: [PATCH 272/426] Properly check for higher rank of spell in bot code. --- src/game/PlayerBots/CombatBotBaseAI.cpp | 795 ++++++++---------------- src/game/Spells/SpellEntry.cpp | 13 + src/game/Spells/SpellEntry.h | 1 + 3 files changed, 287 insertions(+), 522 deletions(-) diff --git a/src/game/PlayerBots/CombatBotBaseAI.cpp b/src/game/PlayerBots/CombatBotBaseAI.cpp index a58b7096995..9b6d51bfca8 100644 --- a/src/game/PlayerBots/CombatBotBaseAI.cpp +++ b/src/game/PlayerBots/CombatBotBaseAI.cpp @@ -220,200 +220,180 @@ void CombatBotBaseAI::PopulateSpellData() if (pSpellEntry->HasAttribute(SPELL_ATTR_DO_NOT_DISPLAY)) continue; + auto IsHigherRankSpell = [pSpellEntry](SpellEntry const* pOldSpell) + { + if (!pOldSpell) + return true; + + uint32 newRank = pSpellEntry->GetRank(); + if (newRank) + return newRank > pOldSpell->GetRank(); + + return pSpellEntry->Id > pOldSpell->Id; + }; + switch (me->GetClass()) { case CLASS_PALADIN: { if (pSpellEntry->SpellName[0].find("Seal of Righteousness") != std::string::npos) { - if (!pSealOfRighteousness || - pSealOfRighteousness->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pSealOfRighteousness)) pSealOfRighteousness = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Seal of Command") != std::string::npos) { - if (!pSealOfCommand || - pSealOfCommand->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pSealOfCommand)) pSealOfCommand = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Judgement") != std::string::npos) { - if (!m_spells.paladin.pJudgement || - m_spells.paladin.pJudgement->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pJudgement)) m_spells.paladin.pJudgement = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Hammer of Justice") != std::string::npos) { - if (!m_spells.paladin.pHammerOfJustice || - m_spells.paladin.pHammerOfJustice->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pHammerOfJustice)) m_spells.paladin.pHammerOfJustice = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Blessing of Sacrifice") != std::string::npos) { - if (!m_spells.paladin.pBlessingOfSacrifice || - m_spells.paladin.pBlessingOfSacrifice->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pBlessingOfSacrifice)) m_spells.paladin.pBlessingOfSacrifice = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Blessing of Freedom") != std::string::npos) { - if (!m_spells.paladin.pBlessingOfFreedom || - m_spells.paladin.pBlessingOfFreedom->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pBlessingOfFreedom)) m_spells.paladin.pBlessingOfFreedom = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Blessing of Protection") != std::string::npos) { - if (!m_spells.paladin.pBlessingOfProtection || - m_spells.paladin.pBlessingOfProtection->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pBlessingOfProtection)) m_spells.paladin.pBlessingOfProtection = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Blessing of Sanctuary") != std::string::npos) { - if (!pBlessingOfSanctuary || - pBlessingOfSanctuary->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pBlessingOfSanctuary)) pBlessingOfSanctuary = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Blessing of Kings") != std::string::npos) { - if (!pBlessingOfKings || - pBlessingOfKings->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pBlessingOfKings)) pBlessingOfKings = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Blessing of Wisdom") != std::string::npos) { - if (!pBlessingOfWisdom || - pBlessingOfWisdom->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pBlessingOfWisdom)) pBlessingOfWisdom = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Blessing of Might") != std::string::npos) { - if (!pBlessingOfMight || - pBlessingOfMight->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pBlessingOfMight)) pBlessingOfMight = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Blessing of Light") != std::string::npos) { - if (!pBlessingOfLight || - pBlessingOfLight->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pBlessingOfLight)) pBlessingOfLight = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Devotion Aura") != std::string::npos) { - if (!pDevotionAura || - pDevotionAura->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pDevotionAura)) pDevotionAura = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Retribution Aura") != std::string::npos) { - if (!pRetributionAura || - pRetributionAura->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pRetributionAura)) pRetributionAura = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Concentration Aura") != std::string::npos) { - if (!pConcentrationAura || - pConcentrationAura->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pConcentrationAura)) pConcentrationAura = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Sanctity Aura") != std::string::npos) { - if (!pSanctityAura || - pSanctityAura->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pSanctityAura)) pSanctityAura = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Shadow Resistance Aura") != std::string::npos) { - if (!pShadowResistanceAura || - pShadowResistanceAura->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pShadowResistanceAura)) pShadowResistanceAura = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Frost Resistance Aura") != std::string::npos) { - if (!pFrostResistanceAura || - pFrostResistanceAura->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pFrostResistanceAura)) pFrostResistanceAura = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Fire Resistance Aura") != std::string::npos) { - if (!pFireResistanceAura || - pFireResistanceAura->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pFireResistanceAura)) pFireResistanceAura = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Exorcism") != std::string::npos) { - if (!m_spells.paladin.pExorcism || - m_spells.paladin.pExorcism->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pExorcism)) m_spells.paladin.pExorcism = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Consecration") != std::string::npos) { - if (!m_spells.paladin.pConsecration || - m_spells.paladin.pConsecration->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pConsecration)) m_spells.paladin.pConsecration = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Hammer of Wrath") != std::string::npos) { - if (!m_spells.paladin.pHammerOfWrath || - m_spells.paladin.pHammerOfWrath->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pHammerOfWrath)) m_spells.paladin.pHammerOfWrath = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Cleanse") != std::string::npos) { - if (!m_spells.paladin.pCleanse || - m_spells.paladin.pCleanse->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pCleanse)) m_spells.paladin.pCleanse = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Divine Shield") != std::string::npos) { - if (!m_spells.paladin.pDivineShield || - m_spells.paladin.pDivineShield->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pDivineShield)) m_spells.paladin.pDivineShield = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Lay on Hands") != std::string::npos) { - if (!m_spells.paladin.pLayOnHands || - m_spells.paladin.pLayOnHands->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pLayOnHands)) m_spells.paladin.pLayOnHands = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Righteous Fury") != std::string::npos) // post 1.9 { - if (!m_spells.paladin.pRighteousFury || - m_spells.paladin.pRighteousFury->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pRighteousFury)) m_spells.paladin.pRighteousFury = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Seal of Fury") != std::string::npos) // pre 1.9 { - if (!pSealOfFury || - pSealOfFury->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pSealOfFury)) pSealOfFury = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Holy Shock") != std::string::npos) { - if (!m_spells.paladin.pHolyShock || - m_spells.paladin.pHolyShock->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pHolyShock)) m_spells.paladin.pHolyShock = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Divine Favor") != std::string::npos) { - if (!m_spells.paladin.pDivineFavor || - m_spells.paladin.pDivineFavor->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pDivineFavor)) m_spells.paladin.pDivineFavor = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Holy Wrath") != std::string::npos) { - if (!m_spells.paladin.pHolyWrath || - m_spells.paladin.pHolyWrath->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pHolyWrath)) m_spells.paladin.pHolyWrath = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Turn Evil") != std::string::npos) { - if (!m_spells.paladin.pTurnEvil || - m_spells.paladin.pTurnEvil->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pTurnEvil)) m_spells.paladin.pTurnEvil = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Holy Shield") != std::string::npos) { - if (!m_spells.paladin.pHolyShield || - m_spells.paladin.pHolyShield->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.paladin.pHolyShield)) m_spells.paladin.pHolyShield = pSpellEntry; } break; @@ -422,206 +402,172 @@ void CombatBotBaseAI::PopulateSpellData() { if (pSpellEntry->SpellName[0].find("Lightning Bolt") != std::string::npos) { - if (!m_spells.shaman.pLightningBolt || - m_spells.shaman.pLightningBolt->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.shaman.pLightningBolt)) m_spells.shaman.pLightningBolt = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Chain Lightning") != std::string::npos) { - if (!m_spells.shaman.pChainLightning || - m_spells.shaman.pChainLightning->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.shaman.pChainLightning)) m_spells.shaman.pChainLightning = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Earth Shock") != std::string::npos) { - if (!m_spells.shaman.pEarthShock || - m_spells.shaman.pEarthShock->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.shaman.pEarthShock)) m_spells.shaman.pEarthShock = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Flame Shock") != std::string::npos) { - if (!m_spells.shaman.pFlameShock || - m_spells.shaman.pFlameShock->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.shaman.pFlameShock)) m_spells.shaman.pFlameShock = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Frost Shock") != std::string::npos) { - if (!m_spells.shaman.pFrostShock || - m_spells.shaman.pFrostShock->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.shaman.pFrostShock)) m_spells.shaman.pFrostShock = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Purge") != std::string::npos) { - if (!m_spells.shaman.pPurge || - m_spells.shaman.pPurge->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.shaman.pPurge)) m_spells.shaman.pPurge = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Stormstrike") != std::string::npos) { - if (!m_spells.shaman.pStormstrike || - m_spells.shaman.pStormstrike->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.shaman.pStormstrike)) m_spells.shaman.pStormstrike = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Elemental Mastery") != std::string::npos) { - if (!m_spells.shaman.pElementalMastery || - m_spells.shaman.pElementalMastery->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.shaman.pElementalMastery)) m_spells.shaman.pElementalMastery = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Lightning Shield") != std::string::npos) { - if (!m_spells.shaman.pLightningShield || - m_spells.shaman.pLightningShield->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.shaman.pLightningShield)) m_spells.shaman.pLightningShield = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Ghost Wolf") != std::string::npos) { - if (!m_spells.shaman.pGhostWolf || - m_spells.shaman.pGhostWolf->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.shaman.pGhostWolf)) m_spells.shaman.pGhostWolf = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Frostbrand Weapon") != std::string::npos) { - if (!pFrostbrandWeapon || - pFrostbrandWeapon->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pFrostbrandWeapon)) pFrostbrandWeapon = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Rockbiter Weapon") != std::string::npos) { - if (!pRockbiterWeapon || - pRockbiterWeapon->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pRockbiterWeapon)) pRockbiterWeapon = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Windfury Weapon") != std::string::npos) { - if (!pWindfuryWeapon || - pWindfuryWeapon->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pWindfuryWeapon)) pWindfuryWeapon = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Grace of Air Totem") != std::string::npos) { - if (!pGraceOfAirTotem || - pGraceOfAirTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pGraceOfAirTotem)) pGraceOfAirTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Nature Resistance Totem") != std::string::npos) { - if (!pNatureResistanceTotem || - pNatureResistanceTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pNatureResistanceTotem)) pNatureResistanceTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Windfury Totem") != std::string::npos) { - if (!pWindfuryTotem || - pWindfuryTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pWindfuryTotem)) pWindfuryTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Windwall Totem") != std::string::npos) { - if (!pWindwallTotem || - pWindwallTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pWindwallTotem)) pWindwallTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Tranquil Air Totem") != std::string::npos) { - if (!pTranquilAirTotem || - pTranquilAirTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pTranquilAirTotem)) pTranquilAirTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Earthbind Totem") != std::string::npos) { - if (!pEarthbindTotem || - pEarthbindTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pEarthbindTotem)) pEarthbindTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Stoneclaw Totem") != std::string::npos) { - if (!pStoneclawtotem || - pStoneclawtotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pStoneclawtotem)) pStoneclawtotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Stoneskin Totem") != std::string::npos) { - if (!pStoneskinTotem || - pStoneskinTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pStoneskinTotem)) pStoneskinTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Strength of Earth Totem") != std::string::npos) { - if (!pStrengthOfEarthTotem || - pStrengthOfEarthTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pStrengthOfEarthTotem)) pStrengthOfEarthTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Tremor Totem") != std::string::npos) { - if (!pTremorTotem || - pTremorTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pTremorTotem)) pTremorTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Fire Nova Totem") != std::string::npos) { - if (!pFireNovaTotem || - pFireNovaTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pFireNovaTotem)) pFireNovaTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Magma Totem") != std::string::npos) { - if (!pMagmaTotem || - pMagmaTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pMagmaTotem)) pMagmaTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Searing Totem") != std::string::npos) { - if (!pSearingTotem || - pSearingTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pSearingTotem)) pSearingTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Flametongue Totem") != std::string::npos) { - if (!pFlametongueTotem || - pFlametongueTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pFlametongueTotem)) pFlametongueTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Frost Resistance Totem") != std::string::npos) { - if (!pFrostResistanceTotem || - pFrostResistanceTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pFrostResistanceTotem)) pFrostResistanceTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Fire Resistance Totem") != std::string::npos) { - if (!pFireResistanceTotem || - pFireResistanceTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pFireResistanceTotem)) pFireResistanceTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Disease Resistance Totem") != std::string::npos) { - if (!pDiseaseCleansingTotem || - pDiseaseCleansingTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pDiseaseCleansingTotem)) pDiseaseCleansingTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Healing Stream Totem") != std::string::npos) { - if (!pHealingStreamTotem || - pHealingStreamTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pHealingStreamTotem)) pHealingStreamTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Mana Spring Totem") != std::string::npos) { - if (!pManaSpringTotem || - pManaSpringTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pManaSpringTotem)) pManaSpringTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Poison Cleansing Totem") != std::string::npos) { - if (!pPoisonCleansingTotem || - pPoisonCleansingTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pPoisonCleansingTotem)) pPoisonCleansingTotem = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Mana Tide Totem") != std::string::npos) { - if (!m_spells.shaman.pManaTideTotem || - m_spells.shaman.pManaTideTotem->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.shaman.pManaTideTotem)) m_spells.shaman.pManaTideTotem = pSpellEntry; } break; @@ -630,98 +576,82 @@ void CombatBotBaseAI::PopulateSpellData() { if (pSpellEntry->SpellName[0].find("Aspect of the Cheetah") != std::string::npos) { - if (!m_spells.hunter.pAspectOfTheCheetah || - m_spells.hunter.pAspectOfTheCheetah->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.hunter.pAspectOfTheCheetah)) m_spells.hunter.pAspectOfTheCheetah = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Aspect of the Hawk") != std::string::npos) { - if (!m_spells.hunter.pAspectOfTheHawk || - m_spells.hunter.pAspectOfTheHawk->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.hunter.pAspectOfTheHawk)) m_spells.hunter.pAspectOfTheHawk = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Aspect of the Monkey") != std::string::npos) { - if (!m_spells.hunter.pAspectOfTheMonkey || - m_spells.hunter.pAspectOfTheMonkey->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.hunter.pAspectOfTheMonkey)) m_spells.hunter.pAspectOfTheMonkey = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Serpent Sting") != std::string::npos) { - if (!m_spells.hunter.pSerpentSting || - m_spells.hunter.pSerpentSting->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.hunter.pSerpentSting)) m_spells.hunter.pSerpentSting = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Arcane Shot") != std::string::npos) { - if (!m_spells.hunter.pArcaneShot || - m_spells.hunter.pArcaneShot->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.hunter.pArcaneShot)) m_spells.hunter.pArcaneShot = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Aimed Shot") != std::string::npos) { - if (!m_spells.hunter.pAimedShot || - m_spells.hunter.pAimedShot->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.hunter.pAimedShot)) m_spells.hunter.pAimedShot = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Multi-Shot") != std::string::npos) { - if (!m_spells.hunter.pMultiShot || - m_spells.hunter.pMultiShot->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.hunter.pMultiShot)) m_spells.hunter.pMultiShot = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Concussive Shot") != std::string::npos) { - if (!m_spells.hunter.pConcussiveShot || - m_spells.hunter.pConcussiveShot->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.hunter.pConcussiveShot)) m_spells.hunter.pConcussiveShot = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Wing Clip") != std::string::npos) { - if (!m_spells.hunter.pWingClip || - m_spells.hunter.pWingClip->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.hunter.pWingClip)) m_spells.hunter.pWingClip = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Hunter's Mark") != std::string::npos) { - if (!m_spells.hunter.pHuntersMark || - m_spells.hunter.pHuntersMark->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.hunter.pHuntersMark)) m_spells.hunter.pHuntersMark = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Mongoose Bite") != std::string::npos) { - if (!m_spells.hunter.pMongooseBite || - m_spells.hunter.pMongooseBite->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.hunter.pMongooseBite)) m_spells.hunter.pMongooseBite = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Raptor Strike") != std::string::npos) { - if (!m_spells.hunter.pRaptorStrike || - m_spells.hunter.pRaptorStrike->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.hunter.pRaptorStrike)) m_spells.hunter.pRaptorStrike = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Disengage") != std::string::npos) { - if (!m_spells.hunter.pDisengage || - m_spells.hunter.pDisengage->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.hunter.pDisengage)) m_spells.hunter.pDisengage = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Feign Death") != std::string::npos) { - if (!m_spells.hunter.pFeignDeath || - m_spells.hunter.pFeignDeath->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.hunter.pFeignDeath)) m_spells.hunter.pFeignDeath = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Scare Beast") != std::string::npos) { - if (!m_spells.hunter.pScareBeast || - m_spells.hunter.pScareBeast->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.hunter.pScareBeast)) m_spells.hunter.pScareBeast = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Volley") != std::string::npos) { - if (!m_spells.hunter.pVolley || - m_spells.hunter.pVolley->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.hunter.pVolley)) m_spells.hunter.pVolley = pSpellEntry; } break; @@ -730,170 +660,142 @@ void CombatBotBaseAI::PopulateSpellData() { if (pSpellEntry->SpellName[0].find("Ice Armor") != std::string::npos) { - if (!m_spells.mage.pIceArmor || - m_spells.mage.pIceArmor->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pIceArmor)) m_spells.mage.pIceArmor = pSpellEntry; } if (pSpellEntry->SpellName[0].find("Frost Armor") != std::string::npos) { - if (!pFrostArmor || - pFrostArmor->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pFrostArmor)) pFrostArmor = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Ice Barrier") != std::string::npos) { - if (!m_spells.mage.pIceBarrier || - m_spells.mage.pIceBarrier->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pIceBarrier)) m_spells.mage.pIceBarrier = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Mana Shield") != std::string::npos) { - if (!m_spells.mage.pManaShield || - m_spells.mage.pManaShield->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pManaShield)) m_spells.mage.pManaShield = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Arcane Intellect") != std::string::npos) { - if (!m_spells.mage.pArcaneIntellect || - m_spells.mage.pArcaneIntellect->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pArcaneIntellect)) m_spells.mage.pArcaneIntellect = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Arcane Brilliance") != std::string::npos) { - if (!m_spells.mage.pArcaneBrilliance || - m_spells.mage.pArcaneBrilliance->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pArcaneBrilliance)) m_spells.mage.pArcaneBrilliance = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Frostbolt") != std::string::npos) { - if (!m_spells.mage.pFrostbolt || - m_spells.mage.pFrostbolt->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pFrostbolt)) m_spells.mage.pFrostbolt = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Fire Blast") != std::string::npos) { - if (!m_spells.mage.pFireBlast || - m_spells.mage.pFireBlast->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pFireBlast)) m_spells.mage.pFireBlast = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Fireball") != std::string::npos) { - if (!m_spells.mage.pFireball || - m_spells.mage.pFireball->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pFireball)) m_spells.mage.pFireball = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Arcane Explosion") != std::string::npos) { - if (!m_spells.mage.pArcaneExplosion || - m_spells.mage.pArcaneExplosion->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pArcaneExplosion)) m_spells.mage.pArcaneExplosion = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Frost Nova") != std::string::npos) { - if (!m_spells.mage.pFrostNova || - m_spells.mage.pFrostNova->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pFrostNova)) m_spells.mage.pFrostNova = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Cone of Cold") != std::string::npos) { - if (!m_spells.mage.pConeofCold || - m_spells.mage.pConeofCold->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pConeofCold)) m_spells.mage.pConeofCold = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Blink") != std::string::npos) { - if (!m_spells.mage.pBlink || - m_spells.mage.pBlink->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pBlink)) m_spells.mage.pBlink = pSpellEntry; } else if (pSpellEntry->SpellName[0] == "Polymorph") // Sheep { - if (!pPolymorphSheep || - pPolymorphSheep->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pPolymorphSheep)) pPolymorphSheep = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Polymorph: Cow") != std::string::npos) { - if (!pPolymorphCow || - pPolymorphCow->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pPolymorphCow)) pPolymorphCow = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Polymorph: Pig") != std::string::npos) { - if (!pPolymorphPig || - pPolymorphPig->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pPolymorphPig)) pPolymorphPig = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Polymorph: Turtle") != std::string::npos) { - if (!pPolymorphTurtle || - pPolymorphTurtle->Id < pSpellEntry->Id) + if (IsHigherRankSpell(pPolymorphTurtle)) pPolymorphTurtle = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Counterspell") != std::string::npos) { - if (!m_spells.mage.pCounterspell || - m_spells.mage.pCounterspell->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pCounterspell)) m_spells.mage.pCounterspell = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Presence of Mind") != std::string::npos) { - if (!m_spells.mage.pPresenceOfMind || - m_spells.mage.pPresenceOfMind->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pPresenceOfMind)) m_spells.mage.pPresenceOfMind = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Arcane Power") != std::string::npos) { - if (!m_spells.mage.pArcanePower || - m_spells.mage.pArcanePower->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pArcanePower)) m_spells.mage.pArcanePower = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Remove Lesser Curse") != std::string::npos) { - if (!m_spells.mage.pRemoveLesserCurse || - m_spells.mage.pRemoveLesserCurse->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pRemoveLesserCurse)) m_spells.mage.pRemoveLesserCurse = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Scorch") != std::string::npos) { - if (!m_spells.mage.pScorch || - m_spells.mage.pScorch->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pScorch)) m_spells.mage.pScorch = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Pyroblast") != std::string::npos) { - if (!m_spells.mage.pPyroblast || - m_spells.mage.pPyroblast->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pPyroblast)) m_spells.mage.pPyroblast = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Evocation") != std::string::npos) { - if (!m_spells.mage.pEvocation || - m_spells.mage.pEvocation->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pEvocation)) m_spells.mage.pEvocation = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Ice Block") != std::string::npos) { - if (!m_spells.mage.pIceBlock || - m_spells.mage.pIceBlock->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pIceBlock)) m_spells.mage.pIceBlock = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Blizzard") != std::string::npos) { - if (!m_spells.mage.pBlizzard || - m_spells.mage.pBlizzard->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pBlizzard)) m_spells.mage.pBlizzard = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Blast Wave") != std::string::npos) { - if (!m_spells.mage.pBlastWave || - m_spells.mage.pBlastWave->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pBlastWave)) m_spells.mage.pBlastWave = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Combustion") != std::string::npos) { - if (!m_spells.mage.pCombustion || - m_spells.mage.pCombustion->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.mage.pCombustion)) m_spells.mage.pCombustion = pSpellEntry; } break; @@ -902,146 +804,122 @@ void CombatBotBaseAI::PopulateSpellData() { if (pSpellEntry->SpellName[0].find("Power Word: Fortitude") != std::string::npos) { - if (!m_spells.priest.pPowerWordFortitude || - m_spells.priest.pPowerWordFortitude->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pPowerWordFortitude)) m_spells.priest.pPowerWordFortitude = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Divine Spirit") != std::string::npos) { - if (!m_spells.priest.pDivineSpirit || - m_spells.priest.pDivineSpirit->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pDivineSpirit)) m_spells.priest.pDivineSpirit = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Prayer of Spirit") != std::string::npos) { - if (!m_spells.priest.pPrayerofSpirit || - m_spells.priest.pPrayerofSpirit->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pPrayerofSpirit)) m_spells.priest.pPrayerofSpirit = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Prayer of Fortitude") != std::string::npos) { - if (!m_spells.priest.pPrayerofFortitude || - m_spells.priest.pPrayerofFortitude->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pPrayerofFortitude)) m_spells.priest.pPrayerofFortitude = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Inner Fire") != std::string::npos) { - if (!m_spells.priest.pInnerFire || - m_spells.priest.pInnerFire->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pInnerFire)) m_spells.priest.pInnerFire = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Shadow Protection") != std::string::npos) { - if (!m_spells.priest.pShadowProtection || - m_spells.priest.pShadowProtection->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pShadowProtection)) m_spells.priest.pShadowProtection = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Power Word: Shield") != std::string::npos) { - if (!m_spells.priest.pPowerWordShield || - m_spells.priest.pPowerWordShield->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pPowerWordShield)) m_spells.priest.pPowerWordShield = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Holy Nova") != std::string::npos) { - if (!m_spells.priest.pHolyNova || - m_spells.priest.pHolyNova->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pHolyNova)) m_spells.priest.pHolyNova = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Holy Fire") != std::string::npos) { - if (!m_spells.priest.pHolyFire || - m_spells.priest.pHolyFire->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pHolyFire)) m_spells.priest.pHolyFire = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Mind Blast") != std::string::npos) { - if (!m_spells.priest.pMindBlast || - m_spells.priest.pMindBlast->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pMindBlast)) m_spells.priest.pMindBlast = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Mind Flay") != std::string::npos) { - if (!m_spells.priest.pMindFlay || - m_spells.priest.pMindFlay->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pMindFlay)) m_spells.priest.pMindFlay = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Shadow Word: Pain") != std::string::npos) { - if (!m_spells.priest.pShadowWordPain || - m_spells.priest.pShadowWordPain->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pShadowWordPain)) m_spells.priest.pShadowWordPain = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Inner Focus") != std::string::npos) { - if (!m_spells.priest.pInnerFocus || - m_spells.priest.pInnerFocus->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pInnerFocus)) m_spells.priest.pInnerFocus = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Abolish Disease") != std::string::npos) { - if (!m_spells.priest.pAbolishDisease || - m_spells.priest.pAbolishDisease->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pAbolishDisease)) m_spells.priest.pAbolishDisease = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Dispel Magic") != std::string::npos) { - if (!m_spells.priest.pDispelMagic || - m_spells.priest.pDispelMagic->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pDispelMagic)) m_spells.priest.pDispelMagic = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Mana Burn") != std::string::npos) { - if (!m_spells.priest.pManaBurn || - m_spells.priest.pManaBurn->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pManaBurn)) m_spells.priest.pManaBurn = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Devouring Plague") != std::string::npos) { - if (!m_spells.priest.pDevouringPlague || - m_spells.priest.pDevouringPlague->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pDevouringPlague)) m_spells.priest.pDevouringPlague = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Psychic Scream") != std::string::npos) { - if (!m_spells.priest.pPsychicScream || - m_spells.priest.pPsychicScream->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pPsychicScream)) m_spells.priest.pPsychicScream = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Shadowform") != std::string::npos) { - if (!m_spells.priest.pShadowform || - m_spells.priest.pShadowform->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pShadowform)) m_spells.priest.pShadowform = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Vampiric Embrace") != std::string::npos) { - if (!m_spells.priest.pVampiricEmbrace || - m_spells.priest.pVampiricEmbrace->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pVampiricEmbrace)) m_spells.priest.pVampiricEmbrace = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Silence") != std::string::npos) { - if (!m_spells.priest.pSilence || - m_spells.priest.pSilence->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pSilence)) m_spells.priest.pSilence = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Fade") != std::string::npos) { - if (!m_spells.priest.pFade || - m_spells.priest.pFade->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pFade)) m_spells.priest.pFade = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Shackle Undead") != std::string::npos) { - if (!m_spells.priest.pShackleUndead || - m_spells.priest.pShackleUndead->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pShackleUndead)) m_spells.priest.pShackleUndead = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Smite") != std::string::npos) { - if (!m_spells.priest.pSmite || - m_spells.priest.pSmite->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.priest.pSmite)) m_spells.priest.pSmite = pSpellEntry; } break; @@ -1050,140 +928,117 @@ void CombatBotBaseAI::PopulateSpellData() { if (pSpellEntry->SpellName[0].find("Demon Armor") != std::string::npos) { - if (!m_spells.warlock.pDemonArmor || - m_spells.warlock.pDemonArmor->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pDemonArmor)) m_spells.warlock.pDemonArmor = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Death Coil") != std::string::npos) { - if (!m_spells.warlock.pDeathCoil || - m_spells.warlock.pDeathCoil->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pDeathCoil)) m_spells.warlock.pDeathCoil = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Detect Invisibility") != std::string::npos) { - if (!m_spells.warlock.pDetectInvisibility || - m_spells.warlock.pDetectInvisibility->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pDetectInvisibility)) m_spells.warlock.pDetectInvisibility = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Shadow Ward") != std::string::npos) { - if (!m_spells.warlock.pShadowWard || - m_spells.warlock.pShadowWard->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pShadowWard)) m_spells.warlock.pShadowWard = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Shadow Bolt") != std::string::npos) { - if (!m_spells.warlock.pShadowBolt || - m_spells.warlock.pShadowBolt->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pShadowBolt)) m_spells.warlock.pShadowBolt = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Corruption") != std::string::npos) { - if (!m_spells.warlock.pCorruption || - m_spells.warlock.pCorruption->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pCorruption)) m_spells.warlock.pCorruption = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Conflagrate") != std::string::npos) { - if (!m_spells.warlock.pConflagrate || - m_spells.warlock.pConflagrate->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pConflagrate)) m_spells.warlock.pConflagrate = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Shadowburn") != std::string::npos) { - if (!m_spells.warlock.pShadowburn || - m_spells.warlock.pShadowburn->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pShadowburn)) m_spells.warlock.pShadowburn = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Searing Pain") != std::string::npos) { - if (!m_spells.warlock.pSearingPain || - m_spells.warlock.pSearingPain->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pSearingPain)) m_spells.warlock.pSearingPain = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Immolate") != std::string::npos) { - if (!m_spells.warlock.pImmolate || - m_spells.warlock.pImmolate->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pImmolate)) m_spells.warlock.pImmolate = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Rain of Fire") != std::string::npos) { - if (!m_spells.warlock.pRainOfFire || - m_spells.warlock.pRainOfFire->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pRainOfFire)) m_spells.warlock.pRainOfFire = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Demonic Sacrifice") != std::string::npos) { - if (!m_spells.warlock.pDemonicSacrifice || - m_spells.warlock.pDemonicSacrifice->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pDemonicSacrifice)) m_spells.warlock.pDemonicSacrifice = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Drain Life") != std::string::npos) { - if (!m_spells.warlock.pDrainLife || - m_spells.warlock.pDrainLife->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pDrainLife)) m_spells.warlock.pDrainLife = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Siphon Life") != std::string::npos) { - if (!m_spells.warlock.pSiphonLife || - m_spells.warlock.pSiphonLife->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pSiphonLife)) m_spells.warlock.pSiphonLife = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Banish") != std::string::npos) { - if (!m_spells.warlock.pBanish || - m_spells.warlock.pBanish->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pBanish)) m_spells.warlock.pBanish = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Fear") != std::string::npos) { - if (!m_spells.warlock.pFear || - m_spells.warlock.pFear->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pFear)) m_spells.warlock.pFear = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Howl of Terror") != std::string::npos) { - if (!m_spells.warlock.pHowlofTerror || - m_spells.warlock.pHowlofTerror->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pHowlofTerror)) m_spells.warlock.pHowlofTerror = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Curse of Agony") != std::string::npos) { - if (!m_spells.warlock.pCurseofAgony || - m_spells.warlock.pCurseofAgony->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pCurseofAgony)) m_spells.warlock.pCurseofAgony = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Curse of the Elements") != std::string::npos) { - if (!m_spells.warlock.pCurseoftheElements || - m_spells.warlock.pCurseoftheElements->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pCurseoftheElements)) m_spells.warlock.pCurseoftheElements = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Curse of Shadow") != std::string::npos) { - if (!m_spells.warlock.pCurseofShadow || - m_spells.warlock.pCurseofShadow->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pCurseofShadow)) m_spells.warlock.pCurseofShadow = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Curse of Recklessness") != std::string::npos) { - if (!m_spells.warlock.pCurseofRecklessness || - m_spells.warlock.pCurseofRecklessness->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pCurseofRecklessness)) m_spells.warlock.pCurseofRecklessness = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Curse of Tongues") != std::string::npos) { - if (!m_spells.warlock.pCurseofTongues || - m_spells.warlock.pCurseofTongues->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pCurseofTongues)) m_spells.warlock.pCurseofTongues = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Life Tap") != std::string::npos) { - if (!m_spells.warlock.pLifeTap || - m_spells.warlock.pLifeTap->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warlock.pLifeTap)) m_spells.warlock.pLifeTap = pSpellEntry; } break; @@ -1192,206 +1047,172 @@ void CombatBotBaseAI::PopulateSpellData() { if (pSpellEntry->SpellName[0].find("Battle Stance") != std::string::npos) { - if (!m_spells.warrior.pBattleStance || - m_spells.warrior.pBattleStance->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pBattleStance)) m_spells.warrior.pBattleStance = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Berserker Stance") != std::string::npos) { - if (!m_spells.warrior.pBerserkerStance || - m_spells.warrior.pBerserkerStance->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pBerserkerStance)) m_spells.warrior.pBerserkerStance = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Defensive Stance") != std::string::npos) { - if (!m_spells.warrior.pDefensiveStance || - m_spells.warrior.pDefensiveStance->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pDefensiveStance)) m_spells.warrior.pDefensiveStance = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Charge") != std::string::npos) { - if (!m_spells.warrior.pCharge || - m_spells.warrior.pCharge->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pCharge)) m_spells.warrior.pCharge = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Intercept") != std::string::npos) { - if (!m_spells.warrior.pIntercept || - m_spells.warrior.pIntercept->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pIntercept)) m_spells.warrior.pIntercept = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Overpower") != std::string::npos) { - if (!m_spells.warrior.pOverpower || - m_spells.warrior.pOverpower->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pOverpower)) m_spells.warrior.pOverpower = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Heroic Strike") != std::string::npos) { - if (!m_spells.warrior.pHeroicStrike || - m_spells.warrior.pHeroicStrike->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pHeroicStrike)) m_spells.warrior.pHeroicStrike = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Cleave") != std::string::npos) { - if (!m_spells.warrior.pCleave || - m_spells.warrior.pCleave->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pCleave)) m_spells.warrior.pCleave = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Execute") != std::string::npos) { - if (!m_spells.warrior.pExecute || - m_spells.warrior.pExecute->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pExecute)) m_spells.warrior.pExecute = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Mortal Strike") != std::string::npos) { - if (!m_spells.warrior.pMortalStrike || - m_spells.warrior.pMortalStrike->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pMortalStrike)) m_spells.warrior.pMortalStrike = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Bloodthirst") != std::string::npos) { - if (!m_spells.warrior.pBloodthirst || - m_spells.warrior.pBloodthirst->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pBloodthirst)) m_spells.warrior.pBloodthirst = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Bloodrage") != std::string::npos) { - if (!m_spells.warrior.pBloodrage || - m_spells.warrior.pBloodrage->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pBloodrage)) m_spells.warrior.pBloodrage = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Berserker Rage") != std::string::npos) { - if (!m_spells.warrior.pBerserkerRage || - m_spells.warrior.pBerserkerRage->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pBerserkerRage)) m_spells.warrior.pBerserkerRage = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Recklessness") != std::string::npos) { - if (!m_spells.warrior.pRecklessness || - m_spells.warrior.pRecklessness->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pRecklessness)) m_spells.warrior.pRecklessness = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Retaliation") != std::string::npos) { - if (!m_spells.warrior.pRetaliation || - m_spells.warrior.pRetaliation->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pRetaliation)) m_spells.warrior.pRetaliation = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Death Wish") != std::string::npos) { - if (!m_spells.warrior.pDeathWish || - m_spells.warrior.pDeathWish->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pDeathWish)) m_spells.warrior.pDeathWish = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Intimidating Shout") != std::string::npos) { - if (!m_spells.warrior.pIntimidatingShout || - m_spells.warrior.pIntimidatingShout->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pIntimidatingShout)) m_spells.warrior.pIntimidatingShout = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Pummel") != std::string::npos) { - if (!m_spells.warrior.pPummel || - m_spells.warrior.pPummel->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pPummel)) m_spells.warrior.pPummel = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Rend") != std::string::npos) { - if (!m_spells.warrior.pRend || - m_spells.warrior.pRend->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pRend)) m_spells.warrior.pRend = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Disarm") != std::string::npos) { - if (!m_spells.warrior.pDisarm || - m_spells.warrior.pDisarm->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pDisarm)) m_spells.warrior.pDisarm = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Whirlwind") != std::string::npos) { - if (!m_spells.warrior.pWhirlwind || - m_spells.warrior.pWhirlwind->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pWhirlwind)) m_spells.warrior.pWhirlwind = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Battle Shout") != std::string::npos) { - if (!m_spells.warrior.pBattleShout || - m_spells.warrior.pBattleShout->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pBattleShout)) m_spells.warrior.pBattleShout = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Demoralizing Shout") != std::string::npos) { - if (!m_spells.warrior.pDemoralizingShout || - m_spells.warrior.pDemoralizingShout->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pDemoralizingShout)) m_spells.warrior.pDemoralizingShout = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Hamstring") != std::string::npos) { - if (!m_spells.warrior.pHamstring || - m_spells.warrior.pHamstring->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pHamstring)) m_spells.warrior.pHamstring = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Thunder Clap") != std::string::npos) { - if (!m_spells.warrior.pThunderClap || - m_spells.warrior.pThunderClap->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pThunderClap)) m_spells.warrior.pThunderClap = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Sweeping Strikes") != std::string::npos) { - if (!m_spells.warrior.pSweepingStrikes || - m_spells.warrior.pSweepingStrikes->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pSweepingStrikes)) m_spells.warrior.pSweepingStrikes = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Last Stand") != std::string::npos) { - if (!m_spells.warrior.pLastStand || - m_spells.warrior.pLastStand->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pLastStand)) m_spells.warrior.pLastStand = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Shield Block") != std::string::npos) { - if (!m_spells.warrior.pShieldBlock || - m_spells.warrior.pShieldBlock->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pShieldBlock)) m_spells.warrior.pShieldBlock = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Shield Wall") != std::string::npos) { - if (!m_spells.warrior.pShieldWall || - m_spells.warrior.pShieldWall->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pShieldWall)) m_spells.warrior.pShieldWall = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Shield Bash") != std::string::npos) { - if (!m_spells.warrior.pShieldBash || - m_spells.warrior.pShieldBash->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pShieldBash)) m_spells.warrior.pShieldBash = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Shield Slam") != std::string::npos) { - if (!m_spells.warrior.pShieldSlam || - m_spells.warrior.pShieldSlam->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pShieldSlam)) m_spells.warrior.pShieldSlam = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Sunder Armor") != std::string::npos) { - if (!m_spells.warrior.pSunderArmor || - m_spells.warrior.pSunderArmor->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pSunderArmor)) m_spells.warrior.pSunderArmor = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Concussion Blow") != std::string::npos) { - if (!m_spells.warrior.pConcussionBlow || - m_spells.warrior.pConcussionBlow->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pConcussionBlow)) m_spells.warrior.pConcussionBlow = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Piercing Howl") != std::string::npos) { - if (!m_spells.warrior.pPiercingHowl || - m_spells.warrior.pPiercingHowl->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.warrior.pPiercingHowl)) m_spells.warrior.pPiercingHowl = pSpellEntry; } break; @@ -1400,152 +1221,127 @@ void CombatBotBaseAI::PopulateSpellData() { if (pSpellEntry->SpellName[0].find("Slice and Dice") != std::string::npos) { - if (!m_spells.rogue.pSliceAndDice || - m_spells.rogue.pSliceAndDice->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pSliceAndDice)) m_spells.rogue.pSliceAndDice = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Sinister Strike") != std::string::npos) { - if (!m_spells.rogue.pSinisterStrike || - m_spells.rogue.pSinisterStrike->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pSinisterStrike)) m_spells.rogue.pSinisterStrike = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Adrenaline Rush") != std::string::npos) { - if (!m_spells.rogue.pAdrenalineRush || - m_spells.rogue.pAdrenalineRush->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pAdrenalineRush)) m_spells.rogue.pAdrenalineRush = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Eviscerate") != std::string::npos) { - if (!m_spells.rogue.pEviscerate || - m_spells.rogue.pEviscerate->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pEviscerate)) m_spells.rogue.pEviscerate = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Stealth") != std::string::npos) { - if (!m_spells.rogue.pStealth || - m_spells.rogue.pStealth->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pStealth)) m_spells.rogue.pStealth = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Garrote") != std::string::npos) { - if (!m_spells.rogue.pGarrote || - m_spells.rogue.pGarrote->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pGarrote)) m_spells.rogue.pGarrote = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Ambush") != std::string::npos) { - if (!m_spells.rogue.pAmbush || - m_spells.rogue.pAmbush->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pAmbush)) m_spells.rogue.pAmbush = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Cheap Shot") != std::string::npos) { - if (!m_spells.rogue.pCheapShot || - m_spells.rogue.pCheapShot->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pCheapShot)) m_spells.rogue.pCheapShot = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Premeditation") != std::string::npos) { - if (!m_spells.rogue.pPremeditation || - m_spells.rogue.pPremeditation->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pPremeditation)) m_spells.rogue.pPremeditation = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Backstab") != std::string::npos) { - if (!m_spells.rogue.pBackstab || - m_spells.rogue.pBackstab->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pBackstab)) m_spells.rogue.pBackstab = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Hemorrhage") != std::string::npos) { - if (!m_spells.rogue.pHemorrhage || - m_spells.rogue.pHemorrhage->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pHemorrhage)) m_spells.rogue.pHemorrhage = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Ghostly Strike") != std::string::npos) { - if (!m_spells.rogue.pGhostlyStrike || - m_spells.rogue.pGhostlyStrike->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pGhostlyStrike)) m_spells.rogue.pGhostlyStrike = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Gouge") != std::string::npos) { - if (!m_spells.rogue.pGouge || - m_spells.rogue.pGouge->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pGouge)) m_spells.rogue.pGouge = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Rupture") != std::string::npos) { - if (!m_spells.rogue.pRupture || - m_spells.rogue.pRupture->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pRupture)) m_spells.rogue.pRupture = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Expose Armor") != std::string::npos) { - if (!m_spells.rogue.pExposeArmor || - m_spells.rogue.pExposeArmor->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pExposeArmor)) m_spells.rogue.pExposeArmor = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Kidney Shot") != std::string::npos) { - if (!m_spells.rogue.pKidneyShot || - m_spells.rogue.pKidneyShot->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pKidneyShot)) m_spells.rogue.pKidneyShot = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Cold Blood") != std::string::npos) { - if (!m_spells.rogue.pColdBlood || - m_spells.rogue.pColdBlood->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pColdBlood)) m_spells.rogue.pColdBlood = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Blade Flurry") != std::string::npos) { - if (!m_spells.rogue.pBladeFlurry || - m_spells.rogue.pBladeFlurry->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pBladeFlurry)) m_spells.rogue.pBladeFlurry = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Vanish") != std::string::npos) { - if (!m_spells.rogue.pVanish || - m_spells.rogue.pVanish->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pVanish)) m_spells.rogue.pVanish = pSpellEntry; } else if (pSpellEntry->IsFitToFamily()) { - if (!m_spells.rogue.pBlind || - m_spells.rogue.pBlind->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pBlind)) m_spells.rogue.pBlind = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Preparation") != std::string::npos) { - if (!m_spells.rogue.pPreparation || - m_spells.rogue.pPreparation->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pPreparation)) m_spells.rogue.pPreparation = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Evasion") != std::string::npos) { - if (!m_spells.rogue.pEvasion || - m_spells.rogue.pEvasion->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pEvasion)) m_spells.rogue.pEvasion = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Riposte") != std::string::npos) { - if (!m_spells.rogue.pRiposte || - m_spells.rogue.pRiposte->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pRiposte)) m_spells.rogue.pRiposte = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Kick") != std::string::npos) { - if (!m_spells.rogue.pKick || - m_spells.rogue.pKick->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pKick)) m_spells.rogue.pKick = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Sprint") != std::string::npos) { - if (!m_spells.rogue.pSprint || - m_spells.rogue.pSprint->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.rogue.pSprint)) m_spells.rogue.pSprint = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Deadly Poison") != std::string::npos) @@ -1574,272 +1370,227 @@ void CombatBotBaseAI::PopulateSpellData() { if (pSpellEntry->SpellName[0].find("Bear Form") != std::string::npos) { - if (!m_spells.druid.pBearForm || - m_spells.druid.pBearForm->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pBearForm)) m_spells.druid.pBearForm = pSpellEntry; } else if (pSpellEntry->Id == (768)) // Cat Form { - if (!m_spells.druid.pCatForm || - m_spells.druid.pCatForm->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pCatForm)) m_spells.druid.pCatForm = pSpellEntry; } else if (pSpellEntry->Id == (783)) // Travel Form { - if (!m_spells.druid.pTravelForm || - m_spells.druid.pTravelForm->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pTravelForm)) m_spells.druid.pTravelForm = pSpellEntry; } else if (pSpellEntry->Id == (1066)) // Aquatic Form { - if (!m_spells.druid.pAquaticForm || - m_spells.druid.pAquaticForm->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pAquaticForm)) m_spells.druid.pAquaticForm = pSpellEntry; } else if (pSpellEntry->Id == (24858)) // Moonkin Form { - if (!m_spells.druid.pMoonkinForm || - m_spells.druid.pMoonkinForm->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pMoonkinForm)) m_spells.druid.pMoonkinForm = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Wrath") != std::string::npos) { - if (!m_spells.druid.pWrath || - m_spells.druid.pWrath->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pWrath)) m_spells.druid.pWrath = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Moonfire") != std::string::npos) { - if (!m_spells.druid.pMoonfire || - m_spells.druid.pMoonfire->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pMoonfire)) m_spells.druid.pMoonfire = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Starfire") != std::string::npos) { - if (!m_spells.druid.pStarfire || - m_spells.druid.pStarfire->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pStarfire)) m_spells.druid.pStarfire = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Hurricane") != std::string::npos) { - if (!m_spells.druid.pHurricane || - m_spells.druid.pHurricane->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pHurricane)) m_spells.druid.pHurricane = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Insect Swarm") != std::string::npos) { - if (!m_spells.druid.pInsectSwarm || - m_spells.druid.pInsectSwarm->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pInsectSwarm)) m_spells.druid.pInsectSwarm = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Barkskin") != std::string::npos) { - if (!m_spells.druid.pBarkskin || - m_spells.druid.pBarkskin->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pBarkskin)) m_spells.druid.pBarkskin = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Nature's Grasp") != std::string::npos) { - if (!m_spells.druid.pNaturesGrasp || - m_spells.druid.pNaturesGrasp->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pNaturesGrasp)) m_spells.druid.pNaturesGrasp = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Mark of the Wild") != std::string::npos) { - if (!m_spells.druid.pMarkoftheWild || - m_spells.druid.pMarkoftheWild->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pMarkoftheWild)) m_spells.druid.pMarkoftheWild = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Gift of the Wild") != std::string::npos) { - if (!m_spells.druid.pGiftoftheWild || - m_spells.druid.pGiftoftheWild->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pGiftoftheWild)) m_spells.druid.pGiftoftheWild = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Thorns") != std::string::npos) { - if (!m_spells.druid.pThorns || - m_spells.druid.pThorns->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pThorns)) m_spells.druid.pThorns = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Remove Curse") != std::string::npos) { - if (!m_spells.druid.pRemoveCurse || - m_spells.druid.pRemoveCurse->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pRemoveCurse)) m_spells.druid.pRemoveCurse = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Cure Poison") != std::string::npos) { - if (!m_spells.druid.pCurePoison || - m_spells.druid.pCurePoison->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pCurePoison)) m_spells.druid.pCurePoison = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Abolish Poison") != std::string::npos) { - if (!m_spells.druid.pAbolishPoison || - m_spells.druid.pAbolishPoison->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pAbolishPoison)) m_spells.druid.pAbolishPoison = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Rebirth") != std::string::npos) { - if (!m_spells.druid.pRebirth || - m_spells.druid.pRebirth->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pRebirth)) m_spells.druid.pRebirth = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Innervate") != std::string::npos) { - if (!m_spells.druid.pInnervate || - m_spells.druid.pInnervate->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pInnervate)) m_spells.druid.pInnervate = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Nature's Swiftness") != std::string::npos) { - if (!m_spells.druid.pNaturesSwiftness || - m_spells.druid.pNaturesSwiftness->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pNaturesSwiftness)) m_spells.druid.pNaturesSwiftness = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Entangling Roots") != std::string::npos) { - if (!m_spells.druid.pEntanglingRoots || - m_spells.druid.pEntanglingRoots->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pEntanglingRoots)) m_spells.druid.pEntanglingRoots = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Hibernate") != std::string::npos) { - if (!m_spells.druid.pHibernate || - m_spells.druid.pHibernate->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pHibernate)) m_spells.druid.pHibernate = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Pounce") != std::string::npos) { - if (!m_spells.druid.pPounce || - m_spells.druid.pPounce->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pPounce)) m_spells.druid.pPounce = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Ravage") != std::string::npos) { - if (!m_spells.druid.pRavage || - m_spells.druid.pRavage->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pRavage)) m_spells.druid.pRavage = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Claw") != std::string::npos) { - if (!m_spells.druid.pClaw || - m_spells.druid.pClaw->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pClaw)) m_spells.druid.pClaw = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Shred") != std::string::npos) { - if (!m_spells.druid.pShred || - m_spells.druid.pShred->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pShred)) m_spells.druid.pShred = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Rake") != std::string::npos) { - if (!m_spells.druid.pRake || - m_spells.druid.pRake->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pRake)) m_spells.druid.pRake = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Rip") != std::string::npos) { - if (!m_spells.druid.pRip || - m_spells.druid.pRip->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pRip)) m_spells.druid.pRip = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Ferocious Bite") != std::string::npos) { - if (!m_spells.druid.pFerociousBite || - m_spells.druid.pFerociousBite->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pFerociousBite)) m_spells.druid.pFerociousBite = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Tiger's Fury") != std::string::npos) { - if (!m_spells.druid.pTigersFury || - m_spells.druid.pTigersFury->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pTigersFury)) m_spells.druid.pTigersFury = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Dash") != std::string::npos) { - if (!m_spells.druid.pDash || - m_spells.druid.pDash->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pDash)) m_spells.druid.pDash = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Cower") != std::string::npos) { - if (!m_spells.druid.pCower || - m_spells.druid.pCower->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pCower)) m_spells.druid.pCower = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Faerie Fire (Feral)") != std::string::npos) { - if (!m_spells.druid.pFaerieFireFeral || - m_spells.druid.pFaerieFireFeral->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pFaerieFireFeral)) m_spells.druid.pFaerieFireFeral = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Faerie Fire") != std::string::npos) { - if (!m_spells.druid.pFaerieFire || - m_spells.druid.pFaerieFire->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pFaerieFire)) m_spells.druid.pFaerieFire = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Growl") != std::string::npos) { - if (!m_spells.druid.pGrowl || - m_spells.druid.pGrowl->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pGrowl)) m_spells.druid.pGrowl = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Challenging Roar") != std::string::npos) { - if (!m_spells.druid.pChallengingRoar || - m_spells.druid.pChallengingRoar->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pChallengingRoar)) m_spells.druid.pChallengingRoar = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Demoralizing Roar") != std::string::npos) { - if (!m_spells.druid.pDemoralizingRoar || - m_spells.druid.pDemoralizingRoar->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pDemoralizingRoar)) m_spells.druid.pDemoralizingRoar = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Enrage") != std::string::npos) { - if (!m_spells.druid.pEnrage || - m_spells.druid.pEnrage->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pEnrage)) m_spells.druid.pEnrage = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Frenzied Regeneration") != std::string::npos) { - if (!m_spells.druid.pFrenziedRegeneration || - m_spells.druid.pFrenziedRegeneration->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pFrenziedRegeneration)) m_spells.druid.pFrenziedRegeneration = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Swipe") != std::string::npos) { - if (!m_spells.druid.pSwipe || - m_spells.druid.pSwipe->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pSwipe)) m_spells.druid.pSwipe = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Maul") != std::string::npos) { - if (!m_spells.druid.pMaul || - m_spells.druid.pMaul->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pMaul)) m_spells.druid.pMaul = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Bash") != std::string::npos) { - if (!m_spells.druid.pBash || - m_spells.druid.pBash->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pBash)) m_spells.druid.pBash = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Feral Charge") != std::string::npos) { - if (!m_spells.druid.pFeralCharge || - m_spells.druid.pFeralCharge->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pFeralCharge)) m_spells.druid.pFeralCharge = pSpellEntry; } else if (pSpellEntry->SpellName[0].find("Prowl") != std::string::npos) { - if (!m_spells.druid.pProwl || - m_spells.druid.pProwl->Id < pSpellEntry->Id) + if (IsHigherRankSpell(m_spells.druid.pProwl)) m_spells.druid.pProwl = pSpellEntry; } break; diff --git a/src/game/Spells/SpellEntry.cpp b/src/game/Spells/SpellEntry.cpp index e6e10de784e..be355f3aa1f 100644 --- a/src/game/Spells/SpellEntry.cpp +++ b/src/game/Spells/SpellEntry.cpp @@ -767,6 +767,19 @@ uint16 SpellEntry::GetAuraMaxTicks() const return 6; } +uint32 SpellEntry::GetRank() const +{ + if (Rank[0].length() > 5 && + Rank[0][0] == 'R' && + Rank[0][1] == 'a' && + Rank[0][2] == 'n' && + Rank[0][3] == 'k' && + Rank[0][4] == ' ') + return strtoul(Rank[0].c_str() + 5, NULL, 10); + + return 0; +} + bool SpellEntry::IsPositiveSpell(WorldObject const* caster, WorldObject const* victim) const { if (Attributes & SPELL_ATTR_AURA_IS_DEBUFF) diff --git a/src/game/Spells/SpellEntry.h b/src/game/Spells/SpellEntry.h index bad3f7cd744..e5cc7009257 100644 --- a/src/game/Spells/SpellEntry.h +++ b/src/game/Spells/SpellEntry.h @@ -1113,6 +1113,7 @@ class SpellEntry uint32 GetCastTime(SpellCaster const* caster, Spell* spell = nullptr) const; uint32 GetCastTimeForBonus(DamageEffectType damagetype) const; uint16 GetAuraMaxTicks() const; + uint32 GetRank() const; WeaponAttackType GetWeaponAttackType() const; int32 CalculateSimpleValue(SpellEffectIndex eff) const { return EffectBasePoints[eff] + int32(EffectBaseDice[eff]); } float CalculateDefaultCoefficient(DamageEffectType const damagetype) const; From 03a7537f52422f9d1322c1a486ccc987b72a199e Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 5 Nov 2023 23:34:26 +0200 Subject: [PATCH 273/426] Trigger damage shields from melee damage spells. This needs to be tested on classic era to confirm its correct. --- src/game/Objects/Unit.cpp | 103 ++++++++++++++++++++------------------ src/game/Objects/Unit.h | 1 + src/game/Spells/Spell.cpp | 10 +++- 3 files changed, 63 insertions(+), 51 deletions(-) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index af0c65c2d5a..6282dc5530f 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -1714,67 +1714,72 @@ void Unit::DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss) ((Player*)this)->CastItemCombatSpell(pVictim, damageInfo->attackType); // victim's damage shield - std::set alreadyDone; - AuraList const& vDamageShields = pVictim->GetAurasByType(SPELL_AURA_DAMAGE_SHIELD); - for (AuraList::const_iterator i = vDamageShields.begin(); i != vDamageShields.end();) + TriggerDamageShields(pVictim); + } +} + +void Unit::TriggerDamageShields(Unit* pVictim) +{ + std::set alreadyDone; + AuraList const& vDamageShields = pVictim->GetAurasByType(SPELL_AURA_DAMAGE_SHIELD); + for (AuraList::const_iterator i = vDamageShields.begin(); i != vDamageShields.end();) + { + if (alreadyDone.find(*i) == alreadyDone.end()) { - if (alreadyDone.find(*i) == alreadyDone.end()) - { - alreadyDone.insert(*i); - SpellEntry const* pSpellProto = (*i)->GetSpellProto(); + alreadyDone.insert(*i); + SpellEntry const* pSpellProto = (*i)->GetSpellProto(); - // Damage shield can be resisted... - if (SpellMissInfo missInfo = pVictim->SpellHitResult(this, pSpellProto, (*i)->GetEffIndex())) - { - pVictim->SendSpellMiss(this, pSpellProto->Id, missInfo); - continue; - } + // Damage shield can be resisted... + if (SpellMissInfo missInfo = pVictim->SpellHitResult(this, pSpellProto, (*i)->GetEffIndex())) + { + pVictim->SendSpellMiss(this, pSpellProto->Id, missInfo); + continue; + } - // ...or immuned - if (IsImmuneToDamage(pSpellProto->GetSpellSchoolMask())) - { - pVictim->SendSpellOrDamageImmune(this, pSpellProto->Id); - continue; - } + // ...or immuned + if (IsImmuneToDamage(pSpellProto->GetSpellSchoolMask())) + { + pVictim->SendSpellOrDamageImmune(this, pSpellProto->Id); + continue; + } - float fdamage = (*i)->GetModifier()->m_amount; + float fdamage = (*i)->GetModifier()->m_amount; - // Damage shield effects do benefit from damage done bonuses, including spell power if bonus coefficient is set. - // For example Flame Wrath has a coefficient of 1, making it scale with 100% of spell power. - fdamage = pVictim->SpellDamageBonusDone(this, pSpellProto, (*i)->GetEffIndex(), fdamage, SPELL_DIRECT_DAMAGE, (*i)->GetStackAmount()); + // Damage shield effects do benefit from damage done bonuses, including spell power if bonus coefficient is set. + // For example Flame Wrath has a coefficient of 1, making it scale with 100% of spell power. + fdamage = pVictim->SpellDamageBonusDone(this, pSpellProto, (*i)->GetEffIndex(), fdamage, SPELL_DIRECT_DAMAGE, (*i)->GetStackAmount()); - // apply SpellBaseDamageBonusTaken for mobs only - // for example, Death Talon Seethers with Aura of Flames reflect 1200 damage to tanks with Mark of Flame - if (pVictim->IsCreature()) - { - int32 spellDmgTakenBonus = this->SpellBaseDamageBonusTaken(pSpellProto->GetSpellSchoolMask()); - // don't allow damage shields to be reduced by Blessing of Sanctuary, etc. - if (spellDmgTakenBonus > 0) fdamage += spellDmgTakenBonus; - } + // apply SpellBaseDamageBonusTaken for mobs only + // for example, Death Talon Seethers with Aura of Flames reflect 1200 damage to tanks with Mark of Flame + if (pVictim->IsCreature()) + { + int32 spellDmgTakenBonus = this->SpellBaseDamageBonusTaken(pSpellProto->GetSpellSchoolMask()); + // don't allow damage shields to be reduced by Blessing of Sanctuary, etc. + if (spellDmgTakenBonus > 0) fdamage += spellDmgTakenBonus; + } - //Calculate absorb resist ??? no data in opcode for this possibly unable to absorb or resist? - //uint32 absorb; - //uint32 resist; - //CalcAbsorbResist(pVictim, SpellSchools(spellProto->School), SPELL_DIRECT_DAMAGE, damage, &absorb, &resist); - //damage-=absorb + resist; + //Calculate absorb resist ??? no data in opcode for this possibly unable to absorb or resist? + //uint32 absorb; + //uint32 resist; + //CalcAbsorbResist(pVictim, SpellSchools(spellProto->School), SPELL_DIRECT_DAMAGE, damage, &absorb, &resist); + //damage-=absorb + resist; - uint32 damage = ditheru(fdamage); - pVictim->DealDamageMods(this, damage, nullptr); + uint32 damage = ditheru(fdamage); + pVictim->DealDamageMods(this, damage, nullptr); - WorldPacket data(SMSG_SPELLDAMAGESHIELD, (8 + 8 + 4 + 4)); - data << pVictim->GetObjectGuid(); - data << GetObjectGuid(); - data << uint32(damage); - data << uint32(pSpellProto->School); - pVictim->SendObjectMessageToSet(&data, true); + WorldPacket data(SMSG_SPELLDAMAGESHIELD, (8 + 8 + 4 + 4)); + data << pVictim->GetObjectGuid(); + data << GetObjectGuid(); + data << uint32(damage); + data << uint32(pSpellProto->School); + pVictim->SendObjectMessageToSet(&data, true); - pVictim->DealDamage(this, damage, nullptr, SPELL_DIRECT_DAMAGE, pSpellProto->GetSpellSchoolMask(), pSpellProto, true); + pVictim->DealDamage(this, damage, nullptr, SPELL_DIRECT_DAMAGE, pSpellProto->GetSpellSchoolMask(), pSpellProto, true); - i = vDamageShields.begin(); - } - else - ++i; + i = vDamageShields.begin(); } + else + ++i; } } diff --git a/src/game/Objects/Unit.h b/src/game/Objects/Unit.h index 09ea7e5c369..36a92dae308 100644 --- a/src/game/Objects/Unit.h +++ b/src/game/Objects/Unit.h @@ -841,6 +841,7 @@ class Unit : public SpellCaster void ProcDamageAndSpellFor(bool isVictim, Unit* pTarget, ProcSystemArguments const& data, ProcTriggeredList& triggeredList, ProcessProcsAuraType processAurasType); void ProcSkillsAndReactives(bool isVictim, Unit* pTarget, uint32 procFlag, uint32 procExtra, WeaponAttackType attType, SpellEntry const* procSpell); void HandleTriggers(Unit* pVictim, uint32 procExtra, uint32 amount, SpellEntry const* procSpell, ProcTriggeredList const& procTriggered); + void TriggerDamageShields(Unit* pVictim); SpellProcEventTriggerCheck IsTriggeredAtSpellProcEvent(Unit* pVictim, SpellAuraHolder* holder, SpellEntry const* procSpell, uint32 procFlag, uint32 procExtra, WeaponAttackType attType, bool isVictim, SpellProcEventEntry const*& spellProcEvent, bool isSpellTriggeredByAuraOrItem) const; // only to be used in proc handlers - basepoints is expected to be a MAX_EFFECT_INDEX sized array diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index f5a0277f491..d854d527984 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -1741,9 +1741,15 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target) this)); } - if (triggerWeaponProcs && m_caster->IsPlayer()) - ((Player*)m_caster)->CastItemCombatSpell(unitTarget, m_spellInfo->EquippedItemClass == ITEM_CLASS_WEAPON ? m_attackType : BASE_ATTACK); + if (triggerWeaponProcs && m_casterUnit) + { + if (m_casterUnit->IsPlayer() && unitTarget->IsAlive()) + ((Player*)m_casterUnit)->CastItemCombatSpell(unitTarget, m_spellInfo->EquippedItemClass == ITEM_CLASS_WEAPON ? m_attackType : BASE_ATTACK); + if (m_damage) + m_casterUnit->TriggerDamageShields(unitTarget); + } + if (missInfo != SPELL_MISS_NONE) return; From 99c53eff459fcf672c0af45b8299e8fe6ed9bd97 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 6 Nov 2023 05:29:34 +0200 Subject: [PATCH 274/426] Lunar Wand did not have a random property before 1.3. --- sql/migrations/20231106032848_world.sql | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 sql/migrations/20231106032848_world.sql diff --git a/sql/migrations/20231106032848_world.sql b/sql/migrations/20231106032848_world.sql new file mode 100644 index 00000000000..46ae5fbe9ca --- /dev/null +++ b/sql/migrations/20231106032848_world.sql @@ -0,0 +1,27 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231106032848'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231106032848'); +-- Add your query below. + + +/* +World of Warcraft Client Patch 1.3.0 (2005-03-22) +- Lunar Wands that drop should now have random properties. +*/ +-- https://web.archive.org/web/20050424040604/http://wow.allakhazam.com/db/itemhistory.html?witem=15283 +DELETE FROM `item_template` WHERE `entry`=15283; +INSERT INTO `item_template` (`entry`, `patch`, `class`, `subclass`, `name`, `description`, `display_id`, `quality`, `flags`, `buy_count`, `buy_price`, `sell_price`, `inventory_type`, `allowable_class`, `allowable_race`, `item_level`, `required_level`, `required_skill`, `required_skill_rank`, `required_spell`, `required_honor_rank`, `required_city_rank`, `required_reputation_faction`, `required_reputation_rank`, `max_count`, `stackable`, `container_slots`, `stat_type1`, `stat_value1`, `stat_type2`, `stat_value2`, `stat_type3`, `stat_value3`, `stat_type4`, `stat_value4`, `stat_type5`, `stat_value5`, `stat_type6`, `stat_value6`, `stat_type7`, `stat_value7`, `stat_type8`, `stat_value8`, `stat_type9`, `stat_value9`, `stat_type10`, `stat_value10`, `delay`, `range_mod`, `ammo_type`, `dmg_min1`, `dmg_max1`, `dmg_type1`, `dmg_min2`, `dmg_max2`, `dmg_type2`, `dmg_min3`, `dmg_max3`, `dmg_type3`, `dmg_min4`, `dmg_max4`, `dmg_type4`, `dmg_min5`, `dmg_max5`, `dmg_type5`, `block`, `armor`, `holy_res`, `fire_res`, `nature_res`, `frost_res`, `shadow_res`, `arcane_res`, `spellid_1`, `spelltrigger_1`, `spellcharges_1`, `spellppmrate_1`, `spellcooldown_1`, `spellcategory_1`, `spellcategorycooldown_1`, `spellid_2`, `spelltrigger_2`, `spellcharges_2`, `spellppmrate_2`, `spellcooldown_2`, `spellcategory_2`, `spellcategorycooldown_2`, `spellid_3`, `spelltrigger_3`, `spellcharges_3`, `spellppmrate_3`, `spellcooldown_3`, `spellcategory_3`, `spellcategorycooldown_3`, `spellid_4`, `spelltrigger_4`, `spellcharges_4`, `spellppmrate_4`, `spellcooldown_4`, `spellcategory_4`, `spellcategorycooldown_4`, `spellid_5`, `spelltrigger_5`, `spellcharges_5`, `spellppmrate_5`, `spellcooldown_5`, `spellcategory_5`, `spellcategorycooldown_5`, `bonding`, `page_text`, `page_language`, `page_material`, `start_quest`, `lock_id`, `material`, `sheath`, `random_property`, `set_id`, `max_durability`, `area_bound`, `map_bound`, `duration`, `bag_family`, `disenchant_id`, `food_type`, `min_money_loot`, `max_money_loot`, `wrapped_gift`, `extra_flags`, `other_team_entry`) VALUES (15283, 0, 2, 19, 'Lunar Wand', '', 28577, 2, 0, 1, 186826, 37365, 26, -1, -1, 64, 59, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1700, 100, 0, 67, 126, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 55, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 1); +INSERT INTO `item_template` (`entry`, `patch`, `class`, `subclass`, `name`, `description`, `display_id`, `quality`, `flags`, `buy_count`, `buy_price`, `sell_price`, `inventory_type`, `allowable_class`, `allowable_race`, `item_level`, `required_level`, `required_skill`, `required_skill_rank`, `required_spell`, `required_honor_rank`, `required_city_rank`, `required_reputation_faction`, `required_reputation_rank`, `max_count`, `stackable`, `container_slots`, `stat_type1`, `stat_value1`, `stat_type2`, `stat_value2`, `stat_type3`, `stat_value3`, `stat_type4`, `stat_value4`, `stat_type5`, `stat_value5`, `stat_type6`, `stat_value6`, `stat_type7`, `stat_value7`, `stat_type8`, `stat_value8`, `stat_type9`, `stat_value9`, `stat_type10`, `stat_value10`, `delay`, `range_mod`, `ammo_type`, `dmg_min1`, `dmg_max1`, `dmg_type1`, `dmg_min2`, `dmg_max2`, `dmg_type2`, `dmg_min3`, `dmg_max3`, `dmg_type3`, `dmg_min4`, `dmg_max4`, `dmg_type4`, `dmg_min5`, `dmg_max5`, `dmg_type5`, `block`, `armor`, `holy_res`, `fire_res`, `nature_res`, `frost_res`, `shadow_res`, `arcane_res`, `spellid_1`, `spelltrigger_1`, `spellcharges_1`, `spellppmrate_1`, `spellcooldown_1`, `spellcategory_1`, `spellcategorycooldown_1`, `spellid_2`, `spelltrigger_2`, `spellcharges_2`, `spellppmrate_2`, `spellcooldown_2`, `spellcategory_2`, `spellcategorycooldown_2`, `spellid_3`, `spelltrigger_3`, `spellcharges_3`, `spellppmrate_3`, `spellcooldown_3`, `spellcategory_3`, `spellcategorycooldown_3`, `spellid_4`, `spelltrigger_4`, `spellcharges_4`, `spellppmrate_4`, `spellcooldown_4`, `spellcategory_4`, `spellcategorycooldown_4`, `spellid_5`, `spelltrigger_5`, `spellcharges_5`, `spellppmrate_5`, `spellcooldown_5`, `spellcategory_5`, `spellcategorycooldown_5`, `bonding`, `page_text`, `page_language`, `page_material`, `start_quest`, `lock_id`, `material`, `sheath`, `random_property`, `set_id`, `max_durability`, `area_bound`, `map_bound`, `duration`, `bag_family`, `disenchant_id`, `food_type`, `min_money_loot`, `max_money_loot`, `wrapped_gift`, `extra_flags`, `other_team_entry`) VALUES (15283, 1, 2, 19, 'Lunar Wand', '', 28577, 2, 0, 1, 186826, 37365, 26, -1, -1, 64, 59, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1700, 100, 0, 67, 126, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 2, 0, 5850, 0, 55, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 1); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 79f4f09e2d778877587d6559bfdf7832ec20f85c Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 6 Nov 2023 09:38:04 +0200 Subject: [PATCH 275/426] Multiple fixes for patch 1.6. Some things apply to newer patches as well. Went down of rabbit hole and kept discovering things that were broken. --- src/game/Handlers/SpellHandler.cpp | 16 +++- src/game/Objects/Unit.cpp | 129 ++++++++++------------------- src/game/Objects/Unit.h | 8 +- src/game/Spells/Spell.cpp | 11 --- src/game/Spells/SpellAuras.cpp | 4 + src/game/Spells/SpellDefines.h | 4 + src/game/Spells/SpellEffects.cpp | 42 ++++++++-- src/game/StatSystem.cpp | 30 +++++-- src/game/UnitAuraProcHandler.cpp | 70 +++++++++++++++- 9 files changed, 200 insertions(+), 114 deletions(-) diff --git a/src/game/Handlers/SpellHandler.cpp b/src/game/Handlers/SpellHandler.cpp index e34af6aa0a4..40558fa6de9 100644 --- a/src/game/Handlers/SpellHandler.cpp +++ b/src/game/Handlers/SpellHandler.cpp @@ -374,16 +374,14 @@ void WorldSession::HandleCancelAuraOpcode(WorldPacket& recvPacket) uint32 spellId; recvPacket >> spellId; - // Buff MJ '.gm visible off'. - if (spellId == 16380 && !_player->IsGMVisible()) - return; - SpellEntry const* spellInfo = sSpellMgr.GetSpellEntry(spellId); if (!spellInfo) return; +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 if (spellInfo->Attributes & SPELL_ATTR_NO_AURA_CANCEL) return; +#endif if (spellInfo->IsPassiveSpell()) return; @@ -413,6 +411,16 @@ void WorldSession::HandleCancelAuraOpcode(WorldPacket& recvPacket) return; } + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - Druids should now be able to shapeshift back into caster form while Feared. +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_6_1 + if (_player->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING | UNIT_FLAG_POSSESSED)) +#else + // confirmed you cant remove buffs while mind controlled on wotlk ptr + if (_player->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED)) +#endif + return; + // channeled spell case (it currently casted then) if (spellInfo->IsChanneledSpell()) { diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 6282dc5530f..3caeda78366 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -570,76 +570,37 @@ void Unit::RemoveSpellsCausingAura(AuraType auraType, SpellAuraHolder* except) } } -// Nostalrius -void Unit::RemoveFearEffectsByDamageTaken(uint32 damage, uint32 exceptSpellId, DamageEffectType damagetype) +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_9_4 +void Unit::RemoveAurasByDamageTaken(uint32 damage, uint32 exceptSpellId) { - if (!HasAuraType(SPELL_AURA_MOD_FEAR)) - return; - - // Formula derived from Youfie's post here: - // https://forum.nostalrius.org/viewtopic.php?f=5&t=17424#p119432 - - // The chance to dispel an aura depends on the damage taken with respect to the caster's level. - uint32 max_dmg = GetLevel() > 8 ? 25 * GetLevel() - 150 : 50; - - // Players are 3x more likely to break fears -#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_10_2 - if (IsPlayer()) + for (SpellAuraHolderMap::iterator iter = m_spellAuraHolders.begin(); iter != m_spellAuraHolders.end();) + { +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 + if (iter->second->GetSpellProto()->HasAttribute(SPELL_ATTR_HEARTBEAT_RESIST) && + iter->second->GetSpellProto()->procChance < 101) +#elif SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 + if (iter->second->GetSpellProto()->HasAttribute(SPELL_ATTR_HEARTBEAT_RESIST)) #else - // World of Warcraft Client Patch 1.11.0 (2006-06-20) - // - Fear: The calculations to determine if Fear effects should break due - // to receiving damage have been changed. In addition, Intimidating - // Shout now follows that player versus non - player distinction, while - // previously it did not. - if (IsPlayer() && !HasAura(5246)) -#endif - max_dmg *= 0.333f; - - // World of Warcraft Client Patch 1.11.0 (2006-06-20) - // - Fear: The calculations to determine if Fear effects should break due - // to receiving damage have been changed. In addition, the chance for a - // damage over time spell to break Fear is now significantly lower. -#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_10_2 - // DOT spells are 3x less likely to break fears after 1.11 - if (damagetype == DOT) - max_dmg *= 3; + if (iter->second->GetSpellProto()->HasAttribute(SPELL_ATTR_CAN_BREAK_ON_DAMAGE)) #endif - - // for players, this means max_dmg = 450 at level 60, or 1350 if the damage source is a dot - // for mobs, this means max_dmg = 1350 at level 60, or 4050 if the damage source is a dot - - float chance = float(damage) / float(max_dmg) * 100.0f; - - if (!roll_chance_f(chance)) - return; - - for (AuraList::const_iterator iter = m_modAuras[SPELL_AURA_MOD_FEAR].begin(); iter != m_modAuras[SPELL_AURA_MOD_FEAR].end();) - { - // skip `except` aura - if ((*iter)->GetId() == exceptSpellId) - { - ++iter; - continue; - } - bool canRemoveAura = false; - switch ((*iter)->GetSpellProto()->Mechanic) - { - case MECHANIC_FEAR: - case MECHANIC_TURN: // [Turn Undead] #2878 - // only fears with proc flags mention that damage may interrupt the effect on tooltip - // example: Flash Bomb does not break on damage - canRemoveAura = (*iter)->GetSpellProto()->procFlags; - break; - } - if (!canRemoveAura) { - ++iter; - continue; + if (iter->first != exceptSpellId) + { + uint32 max_dmg = GetLevel() > 8 ? 25 * GetLevel() - 150 : 50; + float chance = float(damage) / max_dmg * 100.0f; + if (roll_chance_f(chance)) + { + RemoveSpellAuraHolder(iter->second); + iter = m_spellAuraHolders.begin(); + continue; + } + } } - RemoveAurasDueToSpell((*iter)->GetId()); - iter = m_modAuras[SPELL_AURA_MOD_FEAR].begin(); + + ++iter; } } +#endif void Unit::DoKillUnit(Unit* pVictim) { @@ -687,17 +648,11 @@ uint32 Unit::DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDa // Damage received under shield for example. if (cleanDamage->absorb) { - // Before 1.11 the calculation whether to break fear used base spell damage. - // Calling it from spell class for direct spell damage in this case. -#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_10_2 - if (!spellProto || !spellProto->HasAura(SPELL_AURA_MOD_FEAR)) -#else - if (!spellProto || ((damagetype != SPELL_DIRECT_DAMAGE) && !spellProto->HasAura(SPELL_AURA_MOD_FEAR))) + // In patch 1.10 proc flags were added to CC auras to make them break on damage. + // Before that chance to break on damage was handled by attributes. +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_9_4 + pVictim->RemoveAurasByDamageTaken(cleanDamage->absorb, spellProto ? spellProto->Id : 0); #endif - { - if (!(IsCreature() && ((Creature*)this)->IsWorldBoss())) - pVictim->RemoveFearEffectsByDamageTaken(cleanDamage->absorb, spellProto ? spellProto->Id : 0, damagetype); - } pVictim->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_DAMAGE_CANCELS, spellProto ? spellProto->Id : 0, true, SKIP_STEALTH); @@ -714,17 +669,11 @@ uint32 Unit::DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDa return 0; } - // Before 1.11 the calculation whether to break fear used base spell damage. - // Calling it from spell class for direct spell damage in this case. -#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_10_2 - if (!spellProto || !spellProto->HasAura(SPELL_AURA_MOD_FEAR)) -#else - if (!spellProto || ((damagetype != SPELL_DIRECT_DAMAGE) && !spellProto->HasAura(SPELL_AURA_MOD_FEAR))) + // In patch 1.10 proc flags were added to CC auras to make them break on damage. + // Before that chance to break on damage was handled by attributes. +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_9_4 + pVictim->RemoveAurasByDamageTaken(damage, spellProto ? spellProto->Id : 0); #endif - { - if (!(IsCreature() && ((Creature*)this)->IsWorldBoss())) - pVictim->RemoveFearEffectsByDamageTaken(damage, spellProto ? spellProto->Id : 0, damagetype); - } uint32 health = pVictim->GetHealth(); // duel ends when player has 1 or less hp @@ -5891,6 +5840,7 @@ bool Unit::IsShapeShifted() const bool Unit::IsNoWeaponShapeShift() const { + // Mirroring clientside gameplay logic if (ShapeshiftForm form = GetShapeshiftForm()) if (SpellShapeshiftFormEntry const* entry = sSpellShapeshiftFormStore.LookupEntry(form)) @@ -5899,6 +5849,19 @@ bool Unit::IsNoWeaponShapeShift() const return false; } +bool Unit::IsAttackSpeedOverridenShapeShift() const +{ + switch (GetShapeshiftForm()) + { + case FORM_CAT: + case FORM_BEAR: + case FORM_DIREBEAR: + return true; + } + + return false; +} + bool Unit::IsInDisallowedMountForm() const { ShapeshiftForm form = GetShapeshiftForm(); diff --git a/src/game/Objects/Unit.h b/src/game/Objects/Unit.h index 36a92dae308..8bf08a49031 100644 --- a/src/game/Objects/Unit.h +++ b/src/game/Objects/Unit.h @@ -541,6 +541,7 @@ class Unit : public SpellCaster void SetShapeshiftForm(ShapeshiftForm form) { SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_SHAPESHIFT_FORM, form); } bool IsShapeShifted() const; // mirrors clientside logic, moonkin form not counted as shapeshift bool IsNoWeaponShapeShift() const; + bool IsAttackSpeedOverridenShapeShift() const; bool IsInDisallowedMountForm() const; uint32 GetDisplayId() const { return GetUInt32Value(UNIT_FIELD_DISPLAYID); } void SetDisplayId(uint32 displayId); @@ -737,7 +738,9 @@ class Unit : public SpellCaster void RemoveAuraTypeOnDeath(AuraType auraType); void RemoveAllAurasOnDeath(); bool RemoveAuraDueToDebuffLimit(SpellAuraHolder* currentAura); // Returns true if we remove 'currentAura' - void RemoveFearEffectsByDamageTaken(uint32 damage, uint32 exceptSpellId, DamageEffectType damagetype); +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_9_4 + void RemoveAurasByDamageTaken(uint32 damage, uint32 exceptSpellId); +#endif uint32 GetNegativeAurasCount(); // Limit debuffs to 16 // removing specific aura FROM stack by diff reasons and selections @@ -860,6 +863,7 @@ class Unit : public SpellCaster SpellAuraProcResult HandleAddTargetTriggerAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); SpellAuraProcResult HandleModResistanceAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); SpellAuraProcResult HandleRemoveByDamageChanceProc(Unit *pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const *procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); + SpellAuraProcResult HandleRemoveFearByDamageChanceProc(Unit *pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const *procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); SpellAuraProcResult HandleInvisibilityAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); SpellAuraProcResult HandleModDamageAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); SpellAuraProcResult HandleNULLProc(Unit* /*pVictim*/, uint32 /*damage*/, Aura* /*triggeredByAura*/, SpellEntry const* /*procSpell*/, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) @@ -971,7 +975,7 @@ class Unit : public SpellCaster */ bool CanUseEquippedWeapon(WeaponAttackType attackType) const { - if (IsNoWeaponShapeShift()) + if (IsAttackSpeedOverridenShapeShift()) return false; switch(attackType) diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index d854d527984..339718e9162 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -1562,17 +1562,6 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target) damageInfo.spell = this; damageInfo.reflected = isReflected; - // World of Warcraft Client Patch 1.11.0 (2006-06-20) - // - Fear: The calculations to determine if Fear effects should break due - // to receiving damage have been changed.The old calculation used the - // base damage of the ability.The new calculation uses the final amount - // of damage dealt, after all modifiers. -#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_10_2 - // Has to be called from here instead of Unit::DealDamage to calculate with base damage. - if ((damage > 0) && unitTarget && !(m_caster->IsCreature() && static_cast(m_caster)->IsWorldBoss())) - unitTarget->RemoveFearEffectsByDamageTaken(damage, m_spellInfo->Id, SPELL_DIRECT_DAMAGE); -#endif - if (m_delayed) { damageInfo.damage = m_damage; diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index a2eb4d16945..bc892e134df 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -7651,7 +7651,11 @@ void SpellAuraHolder::SetAuraFlag(uint32 slot, bool add) { uint32 flags = AFLAG_NONE; +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 if (IsPositive() && !m_spellProto->HasAttribute(SPELL_ATTR_NO_AURA_CANCEL)) +#else + if (IsPositive()) +#endif flags |= AFLAG_CANCELABLE; if (GetAuraByEffectIndex(EFFECT_INDEX_0)) diff --git a/src/game/Spells/SpellDefines.h b/src/game/Spells/SpellDefines.h index a21d45acf64..dba4caec879 100644 --- a/src/game/Spells/SpellDefines.h +++ b/src/game/Spells/SpellDefines.h @@ -741,7 +741,11 @@ enum SpellAttributes SPELL_ATTR_NOT_IN_COMBAT_ONLY_PEACEFUL = 0x10000000, // 28 Cannot be used in combat SPELL_ATTR_NO_IMMUNITIES = 0x20000000, // 29 Unaffected by invulnerability SPELL_ATTR_HEARTBEAT_RESIST = 0x40000000, // 30 Chance for spell effects to break early (heartbeat resist) +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 SPELL_ATTR_NO_AURA_CANCEL = 0x80000000 // 31 Positive aura can't be canceled +#else + SPELL_ATTR_CAN_BREAK_ON_DAMAGE = 0x80000000 // 32 Taking damage has chance to remove the aura +#endif }; enum SpellAttributesEx diff --git a/src/game/Spells/SpellEffects.cpp b/src/game/Spells/SpellEffects.cpp index 827a8bbf928..0495a0cf1d8 100644 --- a/src/game/Spells/SpellEffects.cpp +++ b/src/game/Spells/SpellEffects.cpp @@ -1869,6 +1869,41 @@ void Spell::EffectDummy(SpellEffectIndex effIdx) unitTarget->CastCustomSpell(unitTarget, 25503, reductionMod, {}, {}, true); break; } +#endif +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_6_1 + // Ferocious Bite + case 22568: // Rank 1 + case 22827: // Rank 2 + case 22828: // Rank 3 + case 22829: // Rank 4 + { + if (!m_casterUnit || !unitTarget) + return; + + uint32 damageSpellId; + switch (m_spellInfo->Id) + { + case 22568: // Rank 1 + damageSpellId = 22851; + break; + case 22827: // Rank 2 + damageSpellId = 22853; + break; + case 22828: // Rank 3 + damageSpellId = 22861; + break; + case 22829: // Rank 4 + damageSpellId = 22862; + break; + default: + return; + } + + int32 dmg = m_casterUnit->GetPower(POWER_ENERGY) * m_spellInfo->DmgMultiplier[effIdx]; + m_casterUnit->CastCustomSpell(unitTarget, damageSpellId, dmg, {}, {}, true); + m_casterUnit->SetPower(POWER_ENERGY, 0); + break; + } #endif case 29201: // Loatheb Corrupted Mind triggered sub spells { @@ -6460,12 +6495,7 @@ void Spell::EffectDispelMechanic(SpellEffectIndex effIdx) next = iter; ++next; SpellEntry const* spell = iter->second->GetSpellProto(); - - // World of Warcraft Client Patch 1.7.0 (2005-09-13) - // - Escape Artist works with Frost Nova and Frost Trap again. - if (iter->second->HasMechanic(mechanic) && - // attribute removed from Frost Nova in 1.7, which likely means this effect ignores it - !spell->HasAttribute(SPELL_ATTR_NO_AURA_CANCEL)) + if (iter->second->HasMechanic(mechanic)) { unitTarget->RemoveAurasDueToSpell(spell->Id); if (Auras.empty()) diff --git a/src/game/StatSystem.cpp b/src/game/StatSystem.cpp index e4e657767ba..113dbcbccb8 100644 --- a/src/game/StatSystem.cpp +++ b/src/game/StatSystem.cpp @@ -247,6 +247,7 @@ float Unit::GetAttackPowerFromStrengthAndAgility(bool ranged, float strength, fl case CLASS_DRUID: { ShapeshiftForm form = GetShapeshiftForm(); + //Check if Predatory Strikes is skilled float mLevelMult = 0.0; switch (form) @@ -254,7 +255,6 @@ float Unit::GetAttackPowerFromStrengthAndAgility(bool ranged, float strength, fl case FORM_CAT: case FORM_BEAR: case FORM_DIREBEAR: - case FORM_MOONKIN: { Unit::AuraList const& mDummy = GetAurasByType(SPELL_AURA_DUMMY); for (const auto itr : mDummy) @@ -275,15 +275,16 @@ float Unit::GetAttackPowerFromStrengthAndAgility(bool ranged, float strength, fl switch (form) { case FORM_CAT: + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - Cat Form - Each point of agility now adds 1 attack power. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 val2 = GetLevel() * mLevelMult + strength * 2.0f + agility - 20.0f; break; +#endif case FORM_BEAR: case FORM_DIREBEAR: val2 = GetLevel() * mLevelMult + strength * 2.0f - 20.0f; break; - case FORM_MOONKIN: - val2 = GetLevel() * mLevelMult + strength * 2.0f - 20.0f; - break; default: val2 = strength * 2.0f - 20.0f; break; @@ -377,7 +378,7 @@ void Player::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, fl float weapon_mindamage = GetWeaponDamageRange(attType, MINDAMAGE, index); float weapon_maxdamage = GetWeaponDamageRange(attType, MAXDAMAGE, index); - if (IsNoWeaponShapeShift()) // check if player is in shapeshift which doesnt use weapon + if (IsAttackSpeedOverridenShapeShift()) // check if player is in shapeshift which doesnt use weapon { /* Druids don't use weapons so a weapon damage index > 0 should not affect their damage. Fixes crazy druid scaling @@ -395,8 +396,23 @@ void Player::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, fl if (lvl > 60) lvl = 60; - weapon_mindamage = lvl * 0.85f * att_speed; - weapon_maxdamage = lvl * 1.25f * att_speed; + switch (GetShapeshiftForm()) + { + // World of Warcraft Client Patch 1.7.0 (2005-09-13) + // - Cat Form - The base weapon damage of the form has been increased. +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_6_1 + case FORM_CAT: + // guessed + weapon_mindamage = lvl * 0.60f * att_speed; + weapon_maxdamage = lvl * 1.00f * att_speed; + break; +#endif + default: + weapon_mindamage = lvl * 0.85f * att_speed; + weapon_maxdamage = lvl * 1.25f * att_speed; + break; + } + total_value = 0.0f; // remove benefit from weapon enchants } } diff --git a/src/game/UnitAuraProcHandler.cpp b/src/game/UnitAuraProcHandler.cpp index b0a8733a68f..c355c2aa601 100644 --- a/src/game/UnitAuraProcHandler.cpp +++ b/src/game/UnitAuraProcHandler.cpp @@ -38,7 +38,7 @@ pAuraProcHandler AuraProcHandler[TOTAL_AURAS] = &Unit::HandleDummyAuraProc, // 4 SPELL_AURA_DUMMY &Unit::HandleNULLProc, // 5 SPELL_AURA_MOD_CONFUSE &Unit::HandleNULLProc, // 6 SPELL_AURA_MOD_CHARM - &Unit::HandleNULLProc, // 7 SPELL_AURA_MOD_FEAR + &Unit::HandleRemoveFearByDamageChanceProc, // 7 SPELL_AURA_MOD_FEAR &Unit::HandleNULLProc, // 8 SPELL_AURA_PERIODIC_HEAL &Unit::HandleNULLProc, // 9 SPELL_AURA_MOD_ATTACKSPEED &Unit::HandleNULLProc, // 10 SPELL_AURA_MOD_THREAT @@ -1946,6 +1946,74 @@ SpellAuraProcResult Unit::HandleRemoveByDamageChanceProc(Unit* pVictim, uint32 d return SPELL_AURA_PROC_FAILED; } +SpellAuraProcResult Unit::HandleRemoveFearByDamageChanceProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const *procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown) +{ + if (!damage) + return SPELL_AURA_PROC_FAILED; + + switch (triggeredByAura->GetSpellProto()->Mechanic) + { + case MECHANIC_FEAR: + case MECHANIC_TURN: + break; + default: + return SPELL_AURA_PROC_FAILED; + } + + // Formula derived from Youfie's post here: + // https://forum.nostalrius.org/viewtopic.php?f=5&t=17424#p119432 + + // The chance to dispel an aura depends on the damage taken with respect to the caster's level. + uint32 max_dmg = GetLevel() > 8 ? 25 * GetLevel() - 150 : 50; + + // Players are 3x more likely to break fears +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_10_2 + if (IsPlayer()) +#else + // World of Warcraft Client Patch 1.11.0 (2006-06-20) + // - Fear: The calculations to determine if Fear effects should break due + // to receiving damage have been changed. In addition, Intimidating + // Shout now follows that player versus non - player distinction, while + // previously it did not. + if (IsPlayer() && !HasAura(5246)) +#endif + max_dmg *= 0.333f; + + // World of Warcraft Client Patch 1.11.0 (2006-06-20) + // - Fear: The calculations to determine if Fear effects should break due + // to receiving damage have been changed. In addition, the chance for a + // damage over time spell to break Fear is now significantly lower. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_10_2 + // DOT spells are 3x less likely to break fears after 1.11 + if (procFlag & PROC_FLAG_TAKE_HARMFUL_PERIODIC) + max_dmg *= 3; +#endif + + // for players, this means max_dmg = 450 at level 60, or 1350 if the damage source is a dot + // for mobs, this means max_dmg = 1350 at level 60, or 4050 if the damage source is a dot + + // World of Warcraft Client Patch 1.11.0 (2006-06-20) + // - Fear: The calculations to determine if Fear effects should break due + // to receiving damage have been changed.The old calculation used the + // base damage of the ability.The new calculation uses the final amount + // of damage dealt, after all modifiers. +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_10_2 + if (procSpell && pVictim) + damage = pVictim->CalculateSpellEffectValue(this, procSpell, EFFECT_INDEX_0); +#endif + + float chance = float(damage) / float(max_dmg) * 100.0f; + if (roll_chance_f(chance)) + { + triggeredByAura->SetInUse(true); + RemoveAurasByCasterSpell(triggeredByAura->GetId(), triggeredByAura->GetCasterGuid()); + triggeredByAura->SetInUse(false); + return SPELL_AURA_PROC_OK; + } + + return SPELL_AURA_PROC_FAILED; +} + SpellAuraProcResult Unit::HandleInvisibilityAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const *procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown) { if (triggeredByAura->GetSpellProto()->HasAttribute(SPELL_ATTR_PASSIVE) || !triggeredByAura->GetSpellProto()->IsPositiveSpell()) From e38c0067e02920fa1233b42e3748eec1e4a7eb2b Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 6 Nov 2023 09:42:12 +0200 Subject: [PATCH 276/426] Fix wrong number in comment. --- src/game/Spells/SpellDefines.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/Spells/SpellDefines.h b/src/game/Spells/SpellDefines.h index dba4caec879..810305acfaa 100644 --- a/src/game/Spells/SpellDefines.h +++ b/src/game/Spells/SpellDefines.h @@ -744,7 +744,7 @@ enum SpellAttributes #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 SPELL_ATTR_NO_AURA_CANCEL = 0x80000000 // 31 Positive aura can't be canceled #else - SPELL_ATTR_CAN_BREAK_ON_DAMAGE = 0x80000000 // 32 Taking damage has chance to remove the aura + SPELL_ATTR_CAN_BREAK_ON_DAMAGE = 0x80000000 // 31 Taking damage has chance to remove the aura #endif }; From 0d7ef797a71876e197ee9c0c33699b7708c693a4 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 6 Nov 2023 09:49:23 +0200 Subject: [PATCH 277/426] Fix wrong build check for Ferocious Bite handler. --- src/game/Spells/SpellEffects.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/Spells/SpellEffects.cpp b/src/game/Spells/SpellEffects.cpp index 0495a0cf1d8..0cf2a482ade 100644 --- a/src/game/Spells/SpellEffects.cpp +++ b/src/game/Spells/SpellEffects.cpp @@ -1870,7 +1870,7 @@ void Spell::EffectDummy(SpellEffectIndex effIdx) break; } #endif -#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_6_1 +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_7_1 // Ferocious Bite case 22568: // Rank 1 case 22827: // Rank 2 From 021724d235a1031ef434d3dfd2410bb14e7c2e6a Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 6 Nov 2023 21:11:05 +0200 Subject: [PATCH 278/426] Disable this warning. --- src/game/StatSystem.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/game/StatSystem.cpp b/src/game/StatSystem.cpp index 113dbcbccb8..8478714d6e4 100644 --- a/src/game/StatSystem.cpp +++ b/src/game/StatSystem.cpp @@ -396,6 +396,9 @@ void Player::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, fl if (lvl > 60) lvl = 60; +#pragma warning( push ) +#pragma warning( disable : 4065) + switch (GetShapeshiftForm()) { // World of Warcraft Client Patch 1.7.0 (2005-09-13) @@ -412,6 +415,8 @@ void Player::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, fl weapon_maxdamage = lvl * 1.25f * att_speed; break; } + +#pragma warning( pop ) total_value = 0.0f; // remove benefit from weapon enchants } From c3986c5e5e80dfcebf8f1a5093decd8aca3ad8b7 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 10 Nov 2023 22:10:51 +0200 Subject: [PATCH 279/426] Fix Invalid Target error message with SoR. --- src/game/UnitAuraProcHandler.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/game/UnitAuraProcHandler.cpp b/src/game/UnitAuraProcHandler.cpp index c355c2aa601..8a791154cd7 100644 --- a/src/game/UnitAuraProcHandler.cpp +++ b/src/game/UnitAuraProcHandler.cpp @@ -1081,6 +1081,9 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit* pVictim, uint32 damage, Aura // Seal of Righteousness - melee proc dummy if ((dummySpell->IsFitToFamilyMask()) && triggeredByAura->GetEffIndex() == EFFECT_INDEX_0) { + if (!pVictim || !pVictim->IsAlive()) + return SPELL_AURA_PROC_FAILED; + if (GetTypeId() != TYPEID_PLAYER) return SPELL_AURA_PROC_FAILED; @@ -1435,8 +1438,15 @@ SpellAuraProcResult Unit::HandleProcTriggerSpellAuraProc(Unit* pVictim, uint32 d case SPELLFAMILY_PALADIN: { #if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_9_4 + // Seal of Righteousness - melee proc dummy if (auraSpellInfo->IsFitToFamilyMask()) { + if (!pVictim || !pVictim->IsAlive()) + return SPELL_AURA_PROC_FAILED; + + if (GetTypeId() != TYPEID_PLAYER) + return SPELL_AURA_PROC_FAILED; + uint32 spellId = 0; switch (auraSpellInfo->Id) { @@ -1698,6 +1708,9 @@ SpellAuraProcResult Unit::HandleProcTriggerDamageAuraProc(Unit* pVictim, uint32 DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "ProcDamageAndSpell: doing %u damage from spell id %u (triggered by auratype %u of spell %u)", triggeredByAura->GetModifier()->m_amount, spellInfo->Id, triggeredByAura->GetModifier()->m_auraname, triggeredByAura->GetId()); + if (!pVictim || !pVictim->IsAlive()) + return SPELL_AURA_PROC_FAILED; + // Trigger damage can be resisted... if (SpellMissInfo missInfo = SpellHitResult(pVictim, spellInfo, triggeredByAura->GetEffIndex(), false)) { From 9792fd0ccf77877a18059bf9729e0d1040c889e9 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 10 Nov 2023 22:29:28 +0200 Subject: [PATCH 280/426] Make auto joined battlebots temporary. Closes https://github.com/vmangos/core/issues/2271 --- src/game/PlayerBots/BattleBotAI.cpp | 12 +++++++++--- src/game/PlayerBots/BattleBotAI.h | 5 +++-- src/game/PlayerBots/PlayerBotMgr.cpp | 10 +++++----- src/game/PlayerBots/PlayerBotMgr.h | 2 +- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/game/PlayerBots/BattleBotAI.cpp b/src/game/PlayerBots/BattleBotAI.cpp index e8a3b9f10ee..67484fd4e92 100644 --- a/src/game/PlayerBots/BattleBotAI.cpp +++ b/src/game/PlayerBots/BattleBotAI.cpp @@ -463,11 +463,17 @@ void BattleBotAI::OnPacketReceived(WorldPacket const* packet) uint8 ended = *((uint8*)(*packet).contents()); if (ended) { - std::unique_ptr data = std::make_unique(CMSG_LEAVE_BATTLEFIELD); + // Temporary battlebots are removed after bg ends. + if (m_temporary) + botEntry->requestRemoval = true; + else + { + std::unique_ptr data = std::make_unique(CMSG_LEAVE_BATTLEFIELD); #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 - *data << uint32(me->GetMapId()); + *data << uint32(me->GetMapId()); #endif - me->GetSession()->QueuePacket(std::move(data)); + me->GetSession()->QueuePacket(std::move(data)); + } } return; } diff --git a/src/game/PlayerBots/BattleBotAI.h b/src/game/PlayerBots/BattleBotAI.h index 570c3e3744e..fada4fffbaa 100644 --- a/src/game/PlayerBots/BattleBotAI.h +++ b/src/game/PlayerBots/BattleBotAI.h @@ -37,8 +37,8 @@ class BattleBotAI : public CombatBotBaseAI { public: - BattleBotAI(uint8 race, uint8 class_, uint8 level, uint32 mapId, uint32 instanceId, float x, float y, float z, float o, uint8 bgId) - : CombatBotBaseAI(), m_race(race), m_class(class_), m_level(level), m_mapId(mapId), m_instanceId(instanceId), m_x(x), m_y(y), m_z(z), m_o(o), m_battlegroundId(bgId) + BattleBotAI(uint8 race, uint8 class_, uint8 level, uint32 mapId, uint32 instanceId, float x, float y, float z, float o, uint8 bgId, bool temporary) + : CombatBotBaseAI(), m_race(race), m_class(class_), m_level(level), m_mapId(mapId), m_instanceId(instanceId), m_x(x), m_y(y), m_z(z), m_o(o), m_battlegroundId(bgId), m_temporary(temporary) { m_updateTimer.Reset(2000); } @@ -99,6 +99,7 @@ class BattleBotAI : public CombatBotBaseAI float m_y = 0.0f; float m_z = 0.0f; float m_o = 0.0f; + bool m_temporary = false; bool m_wasDead = false; bool m_wasInBG = false; diff --git a/src/game/PlayerBots/PlayerBotMgr.cpp b/src/game/PlayerBots/PlayerBotMgr.cpp index c5b30a430a2..f3090afe513 100644 --- a/src/game/PlayerBots/PlayerBotMgr.cpp +++ b/src/game/PlayerBots/PlayerBotMgr.cpp @@ -338,12 +338,12 @@ void PlayerBotMgr::Update(uint32 diff) for (uint32 i = queuedAllianceCount[bracketId]; i < bg->GetMinPlayersPerTeam(); ++i) { sLog.Out(LOG_BG, LOG_LVL_BASIC, "[PlayerBotMgr] Adding level %u alliance battlebot to bg queue %u.", botLevel, queueType); - AddBattleBot(BattleGroundQueueTypeId(queueType), ALLIANCE, botLevel); + AddBattleBot(BattleGroundQueueTypeId(queueType), ALLIANCE, botLevel, true); } for (uint32 i = queuedHordeCount[bracketId]; i < bg->GetMinPlayersPerTeam(); ++i) { sLog.Out(LOG_BG, LOG_LVL_BASIC, "[PlayerBotMgr] Adding level %u horde battlebot to bg queue %u.", botLevel, queueType); - AddBattleBot(BattleGroundQueueTypeId(queueType), HORDE, botLevel); + AddBattleBot(BattleGroundQueueTypeId(queueType), HORDE, botLevel, true); } } } @@ -563,7 +563,7 @@ uint8 SelectRandomRaceForClass(uint8 playerClass, Team playerTeam) return SelectRandomContainerElement(validRaces); } -void PlayerBotMgr::AddBattleBot(BattleGroundQueueTypeId queueType, Team botTeam, uint32 botLevel) +void PlayerBotMgr::AddBattleBot(BattleGroundQueueTypeId queueType, Team botTeam, uint32 botLevel, bool temporary) { std::vector availableClasses = { CLASS_WARRIOR, CLASS_HUNTER, CLASS_ROGUE, CLASS_MAGE, CLASS_WARLOCK, CLASS_PRIEST, CLASS_DRUID }; if (botTeam == HORDE) @@ -578,7 +578,7 @@ void PlayerBotMgr::AddBattleBot(BattleGroundQueueTypeId queueType, Team botTeam, // Spawn bot on GM Island uint32 const instanceId = sMapMgr.GetContinentInstanceId(1, 16224.356f, 16284.763f); - BattleBotAI* ai = new BattleBotAI(botRace, botClass, botLevel, 1, instanceId, 16224.356f, 16284.763f, 13.175f, 4.56f, queueType); + BattleBotAI* ai = new BattleBotAI(botRace, botClass, botLevel, 1, instanceId, 16224.356f, 16284.763f, 13.175f, 4.56f, queueType, temporary); AddBot(ai); } @@ -1718,7 +1718,7 @@ bool ChatHandler::HandleBattleBotAddCommand(char* args, uint8 bg) ExtractUInt32(&args, botLevel); } - sPlayerBotMgr.AddBattleBot(BattleGroundQueueTypeId(bg), botTeam, botLevel); + sPlayerBotMgr.AddBattleBot(BattleGroundQueueTypeId(bg), botTeam, botLevel, false); if (bg == BATTLEGROUND_QUEUE_WS) PSendSysMessage("Added %s battle bot and queuing for WS", option.c_str()); diff --git a/src/game/PlayerBots/PlayerBotMgr.h b/src/game/PlayerBots/PlayerBotMgr.h index a7243a58768..dae134a3605 100644 --- a/src/game/PlayerBots/PlayerBotMgr.h +++ b/src/game/PlayerBots/PlayerBotMgr.h @@ -86,7 +86,7 @@ class PlayerBotMgr bool AddRandomBot(); bool DeleteRandomBot(); - void AddBattleBot(BattleGroundQueueTypeId queueType, Team botTeam, uint32 botLevel); + void AddBattleBot(BattleGroundQueueTypeId queueType, Team botTeam, uint32 botLevel, bool temporary); void DeleteBattleBots(); void DeleteAll(); From 62959f85356b1b8125c4853922f3d8f2abee93a7 Mon Sep 17 00:00:00 2001 From: Daribon Date: Fri, 10 Nov 2023 23:16:38 +0100 Subject: [PATCH 281/426] Correct waypoints for Forsaken Courier. (#2266) --- sql/migrations/20231105220915_world.sql | 178 ++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 sql/migrations/20231105220915_world.sql diff --git a/sql/migrations/20231105220915_world.sql b/sql/migrations/20231105220915_world.sql new file mode 100644 index 00000000000..ddc1525b573 --- /dev/null +++ b/sql/migrations/20231105220915_world.sql @@ -0,0 +1,178 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231105220915'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231105220915'); +-- Add your query below. + + +-- Pathing for Forsaken Courier Entry: 2714 +SET @NPC := 2714; +UPDATE `creature` SET `spawntimesecsmin`=300, `position_x`=-1552.2574,`position_y`=-3034.5396,`position_z`=13.729361, `orientation`=5.058968544006347656 WHERE `guid`=14772; -- CreateObject2 +DELETE FROM `creature_movement_template` WHERE `entry`=@NPC; +INSERT INTO `creature_movement_template` (`entry`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-1550.5396,-3063.7197,13.153982,100,0,0,0), +(@NPC,2,-1559.3317,-3069.132,13.224138,100,0,0,0), +(@NPC,3,-1574.5154,-3064.1624,13.014132,100,0,0,0), +(@NPC,4,-1596.2856,-3052.2166,13.811936,100,0,0,0), +(@NPC,5,-1627.7938,-3019.7805,17.626093,100,0,0,0), +(@NPC,6,-1644.7137,-2996.7366,22.271368,100,0,0,0), +(@NPC,7,-1647.0454,-2974.612,26.206776,100,0,0,0), +(@NPC,8,-1638.745,-2943.9448,28.510544,100,0,0,0), +(@NPC,9,-1637.8221,-2930.4207,28.01085,100,0,0,0), +(@NPC,10,-1644.2511,-2905.6404,26.343475,100,0,0,0), +(@NPC,11,-1641.7524,-2893.7244,26.690807,100,0,0,0), +(@NPC,12,-1629.529,-2859.1594,31.17086,100,0,0,0), +(@NPC,13,-1621.3707,-2823.1963,33.605366,100,0,0,0), +(@NPC,14,-1614.7848,-2787.255,35.600468,100,0,0,0), +(@NPC,15,-1612.2305,-2775.537,36.257774,100,0,0,0), +(@NPC,16,-1608.7706,-2745.1785,37.629112,100,0,0,0), +(@NPC,17,-1600.5686,-2727.4854,37.2911,100,0,0,0), +(@NPC,18,-1582.5442,-2705.3542,35.535637,100,0,0,0), +(@NPC,19,-1564.3455,-2686.7476,35.313774,100,0,0,0), +(@NPC,20,-1557.4377,-2663.8599,37.181084,100,0,0,0), +(@NPC,21,-1555.9431,-2640.7454,41.40903,100,0,0,0), +(@NPC,22,-1556.6326,-2616.0356,45.968483,100,0,0,0), +(@NPC,23,-1557.4188,-2604.809,47.80564,100,0,0,0), +(@NPC,24,-1565.931,-2580.6577,48.851364,100,0,0,0), +(@NPC,25,-1568.0028,-2557.4568,50.167168,100,0,0,0), +(@NPC,26,-1566.4523,-2541.855,51.137238,100,0,0,0), +(@NPC,27,-1555.2555,-2516.8293,53.243954,100,0,0,0), +(@NPC,28,-1549.1812,-2503.7979,54.04501,100,0,0,0), +(@NPC,29,-1547.7216,-2496.8203,54.32717,100,0,0,0), +(@NPC,30,-1527.9796,-2481.2585,53.451958,100,0,0,0), +(@NPC,31,-1503.3694,-2460.545,52.967335,100,0,0,0), +(@NPC,32,-1473.5493,-2434.7302,56.466362,100,0,0,0), +(@NPC,33,-1458.8331,-2421.2942,58.656948,100,0,0,0), +(@NPC,34,-1452.3053,-2402.9504,60.67887,100,0,0,0), +(@NPC,35,-1450.1532,-2373.218,61.44899,100,0,0,0), +(@NPC,36,-1451.1536,-2340.4387,61.64101,100,0,0,0), +(@NPC,37,-1450.4178,-2302.2532,61.781944,100,0,0,0), +(@NPC,38,-1446.4645,-2283.9849,62.001453,100,0,0,0), +(@NPC,39,-1429.0787,-2259.9133,63.329742,100,0,0,0), +(@NPC,40,-1413.9623,-2238.0234,63.76512,100,0,0,0), +(@NPC,41,-1405.9896,-2213.4133,63.83678,100,0,0,0), +(@NPC,42,-1397.8019,-2179.22,63.975334,100,0,0,0), +(@NPC,43,-1394.8337,-2157.2942,64.12083,100,0,0,0), +(@NPC,44,-1389.1965,-2130.726,64.30086,100,0,0,0), +(@NPC,45,-1386.084,-2093.0955,63.538784,100,0,0,0), +(@NPC,46,-1382.9713,-2064.3916,62.196663,100,0,0,0), +(@NPC,47,-1381.2926,-2024.9727,60.49669,100,0,0,0), +(@NPC,48,-1378.0903,-1991.1364,58.87672,100,0,0,0), +(@NPC,49,-1372.9749,-1969.6237,58.4894,100,0,0,0), +(@NPC,50,-1358.9327,-1937.6272,58.429527,100,0,0,0), +(@NPC,51,-1345.5436,-1900.9165,58.88335,100,0,0,0), +(@NPC,52,-1334.4801,-1873.9283,61.046577,100,0,0,0), +(@NPC,53,-1326.9805,-1844.8652,62.919468,100,0,0,0), +(@NPC,54,-1317.9423,-1828.1803,64.2181,100,0,0,0), +(@NPC,55,-1305.6846,-1814.4705,65.43024,100,0,0,0), +(@NPC,56,-1287.2552,-1802.0076,66.81915,100,0,0,0), +(@NPC,57,-1268.3904,-1790.3546,66.98339,100,0,0,0), +(@NPC,58,-1247.4291,-1780.4617,65.617584,100,0,0,0), +(@NPC,59,-1226.9957,-1765.1711,62.542084,100,0,0,0), +(@NPC,60,-1204.1685,-1744.7555,58.50273,100,0,0,0), +(@NPC,61,-1184.8517,-1727.0286,55.7396,100,0,0,0), +(@NPC,62,-1161.4525,-1714.4059,52.467422,100,0,0,0), +(@NPC,63,-1128.6226,-1704.3712,46.72372,100,0,0,0), +(@NPC,64,-1104.1973,-1697.0764,43.87498,100,0,0,0), +(@NPC,65,-1066.6626,-1687.9126,38.52332,100,0,0,0), +(@NPC,66,-1031.4158,-1685.6598,36.75798,100,0,0,0), +(@NPC,67,-989.87,-1685.7096,37.153557,100,0,0,0), +(@NPC,68,-954.4911,-1679.9586,39.846252,100,0,0,0), +(@NPC,69,-935.4559,-1673.2611,42.302216,100,0,0,0), +(@NPC,70,-904.6699,-1652.666,46.8469,100,0,0,0), +(@NPC,71,-879.7355,-1630.1259,50.646404,100,0,0,0), +(@NPC,72,-849.13745,-1600.462,53.653923,100,0,0,0), +(@NPC,73,-823.2393,-1568.6105,54.16692,100,0,0,0), +(@NPC,74,-803.49115,-1541.2704,54.32366,100,0,0,0), +(@NPC,75,-785.0775,-1514.2242,56.51477,100,0,0,0), +(@NPC,76,-774.65625,-1493.6953,59.338264,100,0,0,0), +(@NPC,77,-767.2293,-1466.985,63.069607,100,0,0,0), +(@NPC,78,-752.73285,-1436.9225,66.09219,100,0,0,0), +(@NPC,79,-739.00226,-1409.3284,67.84255,100,0,0,0), +(@NPC,80,-718.06006,-1383.163,68.17649,100,0,0,0), +(@NPC,81,-698.65546,-1354.9768,67.62379,100,0,0,0), +(@NPC,82,-668.78784,-1320.2452,66.49698,100,0,0,0), +(@NPC,83,-651.63995,-1292.4681,66.0947,100,0,0,0), +(@NPC,84,-639.0124,-1269.6914,66.09687,100,0,0,0), +(@NPC,85,-624.9419,-1245.1007,66.08201,100,0,0,0), +(@NPC,86,-612.69714,-1217.49,65.970436,100,0,0,0), +(@NPC,87,-600.3661,-1192.806,66.05884,100,0,0,0), +(@NPC,88,-590.01715,-1164.6335,66.230606,100,0,0,0), +(@NPC,89,-583.6057,-1143.0211,66.158844,100,0,0,0), +(@NPC,90,-574.55566,-1119.452,64.99346,100,0,0,0), +(@NPC,91,-561.2415,-1096.5105,60.820595,100,0,0,0), +(@NPC,92,-542.8525,-1077.1578,56.848763,100,0,0,0), +(@NPC,93,-528.6464,-1063.892,54.261414,100,0,0,0), +(@NPC,94,-511.96573,-1042.3118,49.25406,100,0,0,0), +(@NPC,95,-500.36957,-1018.0822,43.33515,100,0,0,0), +(@NPC,96,-496.20508,-992.4375,39.321293,100,0,0,0), +(@NPC,97,-491.97256,-960.6463,33.823174,100,0,0,0), +(@NPC,98,-480.21875,-916.9668,34.411404,100,0,0,0), +(@NPC,99,-466.58475,-893.22253,38.420345,100,0,0,0), +(@NPC,100,-444.16953,-865.1878,45.632973,100,0,0,0), +(@NPC,101,-424.6796,-841.2971,51.721687,100,0,0,0), +(@NPC,102,-407.0565,-818.828,53.868797,100,0,0,0), +(@NPC,103,-384.2671,-784.60156,54.59754,100,0,0,0), +(@NPC,104,-362.35455,-770.9019,54.143402,100,0,0,0), +(@NPC,105,-339.42163,-761.9837,53.706547,100,0,0,0), +(@NPC,106,-311.32858,-750.3938,54.61077,100,0,0,0), +(@NPC,107,-276.71762,-739.5008,56.650383,100,0,0,0), +(@NPC,108,-249.65782,-733.16046,58.205612,100,0,0,0), +(@NPC,109,-227.23259,-725.7258,60.692093,100,0,0,0), +(@NPC,110,-197.89236,-721.0297,62.80778,100,0,0,0), +(@NPC,111,-172.5492,-716.5685,63.705105,100,0,0,0), +(@NPC,112,-142.38582,-715.8494,64.54931,100,0,0,0), +(@NPC,113,-102.63151,-715.0204,65.735306,100,0,0,0), +(@NPC,114,-71.13481,-717.74457,67.9785,100,0,0,0), +(@NPC,115,-43.318794,-717.011,68.61642,100,0,0,0), +(@NPC,116,-25.086588,-714.46356,69.60387,100,0,0,0), +(@NPC,117,-19.629232,-718.618,69.3962,100,0,0,0), +(@NPC,118,-18.102865,-735.1451,66.66176,100,0,0,0), +(@NPC,119,-23.469294,-755.66504,63.061867,100,0,0,0), +(@NPC,120,-21.33903,-771.53516,60.74343,100,0,0,0), +(@NPC,121,-15.835612,-794.21344,59.328644,100,0,0,0), +(@NPC,122,-24.112576,-810.7386,57.798492,100,0,0,0), +(@NPC,123,-42.424915,-823.6989,57.177834,100,0,0,0), +(@NPC,124,-52.088596,-838.2867,56.467113,100,0,0,0), +(@NPC,125,-53.75716,-854.9446,56.123142,100,0,0,0), +(@NPC,126,-48.583767,-869.2076,55.545685,100,0,0,0), +(@NPC,127,-35.751953,-881.8281,56.09774,100,0,0,0), +(@NPC,128,-26.509169,-897.1533,56.041534,100,11000,0,309); +-- 0x204CB0000002A680000021000035D135 .go xyz -1550.5396 -3063.7197 13.153982 + +DELETE FROM `creature_movement_scripts` WHERE `id`=309; +INSERT INTO `creature_movement_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(309, 10, 0, 18, 0, 0, 0, 0, 2721, 10, 8, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Forsaken Courier - Despawn Nearby Bodyguard'), +(309, 10, 0, 18, 0, 0, 0, 0, 2721, 10, 8, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Forsaken Courier - Despawn Nearby Bodyguard'), +(309, 10, 0, 18, 0, 0, 0, 0, 2721, 10, 8, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Forsaken Courier - Despawn Nearby Bodyguard'), +(309, 10, 0, 18, 0, 0, 0, 0, 2721, 10, 8, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Forsaken Courier - Despawn Nearby Bodyguard'), +(309, 10, 1, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Forsaken Courier - Despawn self'); + +-- Correct positions for Forsaken Bodyguard Entry: 2714 +-- Bottom +UPDATE `creature` SET `spawntimesecsmin`=300, `position_x`=-1555.1652,`position_y`=-3046.3308,`position_z`=13.084437, `orientation`=1.329019546508789062 WHERE `guid`=14775; -- CreateObject2 +-- Left +UPDATE `creature` SET `spawntimesecsmin`=300, `position_x`=-1545.0703,`position_y`=-3043.7456,`position_z`=13.569029, `orientation`=2.233138084411621093 WHERE `guid`=14773; -- CreateObject2 +-- Right +UPDATE `creature` SET `spawntimesecsmin`=300, `position_x`=-1547.1117,`position_y`=-3036.405,`position_z`=13.128309, `orientation`=4.555309295654296875 WHERE `guid`=14776; -- CreateObject2 +-- Top +UPDATE `creature` SET `spawntimesecsmin`=300, `position_x`=-1553.7556,`position_y`=-3040.217,`position_z`=13.138359, `orientation`=6.091198921203613281 WHERE `guid`=14774; -- CreateObject2 + +-- Correct formations +UPDATE `creature_groups` SET `dist`=3 WHERE `member_guid`=14774; +UPDATE `creature_groups` SET `dist`=0, `angle`=0 WHERE `member_guid`=14772; +UPDATE `creature_groups` SET `dist`=3,`angle`=1.56 WHERE `member_guid`=14773; +UPDATE `creature_groups` SET `dist`=3, `angle`=3.12 WHERE `member_guid`=14775; +UPDATE `creature_groups` SET `dist`=3, `angle`=4.68 WHERE `member_guid`=14776; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 3877b48411951a98e8591ef70173e82b35013fd3 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 11 Nov 2023 02:21:47 +0200 Subject: [PATCH 282/426] Correct human rogue stats. --- sql/migrations/20231111002042_world.sql | 75 +++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 sql/migrations/20231111002042_world.sql diff --git a/sql/migrations/20231111002042_world.sql b/sql/migrations/20231111002042_world.sql new file mode 100644 index 00000000000..c55dfaca3f2 --- /dev/null +++ b/sql/migrations/20231111002042_world.sql @@ -0,0 +1,75 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231111002042'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231111002042'); +-- Add your query below. + + +-- Correct human rogue stats. +UPDATE `player_levelstats` SET `spi`=21 WHERE `race`=1 && `class`=4 && `level`=5; -- Old Strength 24 Agility 28 Stamina 24 Intellect 21 Spirit 22 +UPDATE `player_levelstats` SET `spi`=22 WHERE `race`=1 && `class`=4 && `level`=6; -- Old Strength 24 Agility 29 Stamina 24 Intellect 21 Spirit 23 +UPDATE `player_levelstats` SET `spi`=22 WHERE `race`=1 && `class`=4 && `level`=7; -- Old Strength 25 Agility 31 Stamina 25 Intellect 21 Spirit 23 +UPDATE `player_levelstats` SET `spi`=22 WHERE `race`=1 && `class`=4 && `level`=8; -- Old Strength 26 Agility 32 Stamina 25 Intellect 21 Spirit 23 +UPDATE `player_levelstats` SET `spi`=23 WHERE `race`=1 && `class`=4 && `level`=9; -- Old Strength 27 Agility 33 Stamina 26 Intellect 21 Spirit 24 +UPDATE `player_levelstats` SET `spi`=23 WHERE `race`=1 && `class`=4 && `level`=10; -- Old Strength 27 Agility 35 Stamina 27 Intellect 22 Spirit 24 +UPDATE `player_levelstats` SET `spi`=24 WHERE `race`=1 && `class`=4 && `level`=11; -- Old Strength 28 Agility 36 Stamina 28 Intellect 22 Spirit 25 +UPDATE `player_levelstats` SET `spi`=24 WHERE `race`=1 && `class`=4 && `level`=12; -- Old Strength 29 Agility 37 Stamina 28 Intellect 22 Spirit 25 +UPDATE `player_levelstats` SET `spi`=24 WHERE `race`=1 && `class`=4 && `level`=13; -- Old Strength 30 Agility 39 Stamina 29 Intellect 22 Spirit 25 +UPDATE `player_levelstats` SET `spi`=25 WHERE `race`=1 && `class`=4 && `level`=14; -- Old Strength 30 Agility 40 Stamina 30 Intellect 22 Spirit 26 +UPDATE `player_levelstats` SET `spi`=25 WHERE `race`=1 && `class`=4 && `level`=15; -- Old Strength 31 Agility 42 Stamina 30 Intellect 23 Spirit 26 +UPDATE `player_levelstats` SET `spi`=26 WHERE `race`=1 && `class`=4 && `level`=16; -- Old Strength 32 Agility 43 Stamina 31 Intellect 23 Spirit 27 +UPDATE `player_levelstats` SET `spi`=26 WHERE `race`=1 && `class`=4 && `level`=17; -- Old Strength 33 Agility 44 Stamina 32 Intellect 23 Spirit 27 +UPDATE `player_levelstats` SET `spi`=26 WHERE `race`=1 && `class`=4 && `level`=18; -- Old Strength 34 Agility 46 Stamina 33 Intellect 23 Spirit 27 +UPDATE `player_levelstats` SET `spi`=27 WHERE `race`=1 && `class`=4 && `level`=19; -- Old Strength 35 Agility 48 Stamina 33 Intellect 23 Spirit 28 +UPDATE `player_levelstats` SET `spi`=27 WHERE `race`=1 && `class`=4 && `level`=20; -- Old Strength 35 Agility 49 Stamina 34 Intellect 24 Spirit 28 +UPDATE `player_levelstats` SET `spi`=28 WHERE `race`=1 && `class`=4 && `level`=21; -- Old Strength 36 Agility 51 Stamina 35 Intellect 24 Spirit 29 +UPDATE `player_levelstats` SET `spi`=28 WHERE `race`=1 && `class`=4 && `level`=22; -- Old Strength 37 Agility 52 Stamina 36 Intellect 24 Spirit 29 +UPDATE `player_levelstats` SET `spi`=29 WHERE `race`=1 && `class`=4 && `level`=23; -- Old Strength 38 Agility 54 Stamina 37 Intellect 24 Spirit 30 +UPDATE `player_levelstats` SET `spi`=29 WHERE `race`=1 && `class`=4 && `level`=24; -- Old Strength 39 Agility 55 Stamina 37 Intellect 25 Spirit 30 +UPDATE `player_levelstats` SET `spi`=30 WHERE `race`=1 && `class`=4 && `level`=25; -- Old Strength 40 Agility 57 Stamina 38 Intellect 25 Spirit 31 +UPDATE `player_levelstats` SET `spi`=30 WHERE `race`=1 && `class`=4 && `level`=26; -- Old Strength 41 Agility 59 Stamina 39 Intellect 25 Spirit 31 +UPDATE `player_levelstats` SET `spi`=30 WHERE `race`=1 && `class`=4 && `level`=27; -- Old Strength 42 Agility 60 Stamina 40 Intellect 25 Spirit 31 +UPDATE `player_levelstats` SET `spi`=31 WHERE `race`=1 && `class`=4 && `level`=28; -- Old Strength 43 Agility 62 Stamina 41 Intellect 25 Spirit 32 +UPDATE `player_levelstats` SET `spi`=31 WHERE `race`=1 && `class`=4 && `level`=29; -- Old Strength 43 Agility 64 Stamina 42 Intellect 26 Spirit 32 +UPDATE `player_levelstats` SET `spi`=32 WHERE `race`=1 && `class`=4 && `level`=30; -- Old Strength 44 Agility 66 Stamina 42 Intellect 26 Spirit 33 +UPDATE `player_levelstats` SET `spi`=32 WHERE `race`=1 && `class`=4 && `level`=31; -- Old Strength 45 Agility 67 Stamina 43 Intellect 26 Spirit 33 +UPDATE `player_levelstats` SET `spi`=33 WHERE `race`=1 && `class`=4 && `level`=32; -- Old Strength 46 Agility 69 Stamina 44 Intellect 26 Spirit 34 +UPDATE `player_levelstats` SET `spi`=33 WHERE `race`=1 && `class`=4 && `level`=33; -- Old Strength 47 Agility 71 Stamina 45 Intellect 27 Spirit 34 +UPDATE `player_levelstats` SET `spi`=34 WHERE `race`=1 && `class`=4 && `level`=34; -- Old Strength 48 Agility 73 Stamina 46 Intellect 27 Spirit 35 +UPDATE `player_levelstats` SET `spi`=34 WHERE `race`=1 && `class`=4 && `level`=35; -- Old Strength 49 Agility 75 Stamina 47 Intellect 27 Spirit 35 +UPDATE `player_levelstats` SET `spi`=35 WHERE `race`=1 && `class`=4 && `level`=36; -- Old Strength 51 Agility 77 Stamina 48 Intellect 28 Spirit 36 +UPDATE `player_levelstats` SET `spi`=36 WHERE `race`=1 && `class`=4 && `level`=37; -- Old Strength 52 Agility 78 Stamina 49 Intellect 28 Spirit 37 +UPDATE `player_levelstats` SET `spi`=36 WHERE `race`=1 && `class`=4 && `level`=38; -- Old Strength 53 Agility 80 Stamina 50 Intellect 28 Spirit 37 +UPDATE `player_levelstats` SET `spi`=37 WHERE `race`=1 && `class`=4 && `level`=39; -- Old Strength 54 Agility 82 Stamina 51 Intellect 28 Spirit 38 +UPDATE `player_levelstats` SET `spi`=37 WHERE `race`=1 && `class`=4 && `level`=40; -- Old Strength 55 Agility 84 Stamina 52 Intellect 29 Spirit 38 +UPDATE `player_levelstats` SET `spi`=38 WHERE `race`=1 && `class`=4 && `level`=41; -- Old Strength 56 Agility 86 Stamina 53 Intellect 29 Spirit 39 +UPDATE `player_levelstats` SET `spi`=38 WHERE `race`=1 && `class`=4 && `level`=42; -- Old Strength 57 Agility 88 Stamina 54 Intellect 29 Spirit 39 +UPDATE `player_levelstats` SET `spi`=39 WHERE `race`=1 && `class`=4 && `level`=43; -- Old Strength 58 Agility 90 Stamina 55 Intellect 29 Spirit 40 +UPDATE `player_levelstats` SET `spi`=39 WHERE `race`=1 && `class`=4 && `level`=44; -- Old Strength 59 Agility 93 Stamina 56 Intellect 30 Spirit 40 +UPDATE `player_levelstats` SET `spi`=40 WHERE `race`=1 && `class`=4 && `level`=45; -- Old Strength 61 Agility 95 Stamina 57 Intellect 30 Spirit 42 +UPDATE `player_levelstats` SET `spi`=41 WHERE `race`=1 && `class`=4 && `level`=46; -- Old Strength 62 Agility 97 Stamina 58 Intellect 30 Spirit 43 +UPDATE `player_levelstats` SET `spi`=41 WHERE `race`=1 && `class`=4 && `level`=47; -- Old Strength 63 Agility 99 Stamina 59 Intellect 31 Spirit 43 +UPDATE `player_levelstats` SET `spi`=42 WHERE `race`=1 && `class`=4 && `level`=48; -- Old Strength 64 Agility 101 Stamina 60 Intellect 31 Spirit 44 +UPDATE `player_levelstats` SET `spi`=43 WHERE `race`=1 && `class`=4 && `level`=49; -- Old Strength 65 Agility 103 Stamina 62 Intellect 31 Spirit 45 +UPDATE `player_levelstats` SET `spi`=43 WHERE `race`=1 && `class`=4 && `level`=50; -- Old Strength 67 Agility 106 Stamina 63 Intellect 32 Spirit 45 +UPDATE `player_levelstats` SET `spi`=44 WHERE `race`=1 && `class`=4 && `level`=51; -- Old Strength 68 Agility 108 Stamina 64 Intellect 32 Spirit 46 +UPDATE `player_levelstats` SET `spi`=44 WHERE `race`=1 && `class`=4 && `level`=52; -- Old Strength 69 Agility 110 Stamina 65 Intellect 32 Spirit 46 +UPDATE `player_levelstats` SET `spi`=45 WHERE `race`=1 && `class`=4 && `level`=53; -- Old Strength 70 Agility 113 Stamina 66 Intellect 33 Spirit 47 +UPDATE `player_levelstats` SET `spi`=46 WHERE `race`=1 && `class`=4 && `level`=54; -- Old Strength 72 Agility 115 Stamina 67 Intellect 33 Spirit 48 +UPDATE `player_levelstats` SET `spi`=46 WHERE `race`=1 && `class`=4 && `level`=55; -- Old Strength 73 Agility 117 Stamina 69 Intellect 33 Spirit 48 +UPDATE `player_levelstats` SET `spi`=47 WHERE `race`=1 && `class`=4 && `level`=56; -- Old Strength 74 Agility 120 Stamina 70 Intellect 34 Spirit 49 +UPDATE `player_levelstats` SET `spi`=48 WHERE `race`=1 && `class`=4 && `level`=57; -- Old Strength 76 Agility 122 Stamina 71 Intellect 34 Spirit 50 +UPDATE `player_levelstats` SET `spi`=49 WHERE `race`=1 && `class`=4 && `level`=58; -- Old Strength 77 Agility 125 Stamina 72 Intellect 34 Spirit 51 +UPDATE `player_levelstats` SET `spi`=49 WHERE `race`=1 && `class`=4 && `level`=59; -- Old Strength 79 Agility 127 Stamina 74 Intellect 35 Spirit 51 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From cfd91701aaac4acd021d515cccde355e6a806d32 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 11 Nov 2023 02:51:46 +0200 Subject: [PATCH 283/426] Correct stats of some humanoids. Thanks to Kittnz for mind controlling these mobs. --- sql/migrations/20231111004914_world.sql | 100 ++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 sql/migrations/20231111004914_world.sql diff --git a/sql/migrations/20231111004914_world.sql b/sql/migrations/20231111004914_world.sql new file mode 100644 index 00000000000..410ae1f7aec --- /dev/null +++ b/sql/migrations/20231111004914_world.sql @@ -0,0 +1,100 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231111004914'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231111004914'); +-- Add your query below. + + +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.13 WHERE `entry`=3104; -- Makrura Shellhide (was 0.14) +UPDATE `creature_template` SET `damage_variance`=0.13 WHERE `entry`=3111; -- Razormane Quilboar (was 0.14) +UPDATE `creature_template` SET `damage_variance`=0.13 WHERE `entry`=3119; -- Kolkar Drudge (was 0.14) +UPDATE `creature_template` SET `damage_variance`=0.14 WHERE `entry`=3129; -- Kul Tiras Marine (was 0.13) +UPDATE `creature_template` SET `damage_variance`=0.17 WHERE `entry`=3204; -- Gazz'uz (was 0.14) +UPDATE `creature_template` SET `damage_variance`=0.12 WHERE `entry`=3293; -- Rezlak (was 0.14) +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=3989; -- Venture Co. Logger (was 0.14) +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=4022; -- Bloodfury Harpy (was 0.14) +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=4026; -- Bloodfury Windcaller (was 0.14) +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=4051; -- Cenarion Botanist (was 0.14) +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=4053; -- Daughter of Cenarius (was 0.14) +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=4057; -- Son of Cenarius (was 0.14) +UPDATE `creature_template` SET `damage_variance`=0.16 WHERE `entry`=4658; -- Maraudine Stormer (was 0.14) +UPDATE `creature_template` SET `damage_variance`=0.14 WHERE `entry`=5786; -- Snagglespear (was 0.1) +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=5931; -- Foreman Rigger (was 0.14) +UPDATE `creature_template` SET `damage_variance`=0.16 WHERE `entry`=6199; -- Blood Elf Reclaimer (was 0.14) +UPDATE `creature_template` SET `damage_variance`=0.16 WHERE `entry`=6370; -- Makrinni Scrabbler (was 0.14) +UPDATE `creature_template` SET `damage_variance`=0.16 WHERE `entry`=11685; -- Maraudine Priest (was 0.14) + +-- Damage Multipliers +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3103 && `patch` IN (0); -- Makrura Clacker (was 0.85) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3104 && `patch` IN (0); -- Makrura Shellhide (was 0.85) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3105 && `patch` IN (0); -- Makrura Snapclaw (was 0.95) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3111 && `patch` IN (0); -- Razormane Quilboar (was 0.85) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3112 && `patch` IN (0); -- Razormane Scout (was 0.95) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3115 && `patch` IN (0); -- Dustwind Harpy (was 0.95) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3116 && `patch` IN (0); -- Dustwind Pillager (was 0.95) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3118 && `patch` IN (0); -- Dustwind Storm Witch (was 0.95) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3119 && `patch` IN (0); -- Kolkar Drudge (was 0.85) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3141 && `patch` IN (0); -- Makrura Elder (was 0.95) +UPDATE `creature_template` SET `damage_multiplier`=1.86 WHERE `entry`=3195 && `patch` IN (0); -- Burning Blade Thug (was 1.75) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3196 && `patch` IN (0); -- Burning Blade Neophyte (was 0.9) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3197 && `patch` IN (0); -- Burning Blade Fanatic (was 0.9) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3205 && `patch` IN (0); -- Zalazane (was 0.95) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3207 && `patch` IN (0); -- Hexed Troll (was 0.9) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=3293 && `patch` IN (0); -- Rezlak (was 1.2) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4053 && `patch` IN (0); -- Daughter of Cenarius (was 0.95) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=4658 && `patch` IN (0); -- Maraudine Stormer (was 1.05) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5345 && `patch` IN (0); -- Diamond Head (was 3.15) +UPDATE `creature_template` SET `damage_multiplier`=2.625 WHERE `entry`=5786 && `patch` IN (0); -- Snagglespear (was 2.5) +UPDATE `creature_template` SET `damage_multiplier`=2.88 WHERE `entry`=5931 && `patch` IN (0); -- Foreman Rigger (was 3.2) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6020 && `patch` IN (0); -- Slimeshell Makrura (was 0.95) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6351 && `patch` IN (0); -- Storm Bay Oracle (was 1.2) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6370 && `patch` IN (0); -- Makrinni Scrabbler (was 1.15) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6371 && `patch` IN (0); -- Storm Bay Warrior (was 1.2) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=6372 && `patch` IN (0); -- Makrinni Snapclaw (was 0.15) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8420 && `patch` IN (0); -- Kim'jael (was 0.95) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11276 && `patch` IN (0, 5); -- Azshara Sentinel (was 0.95) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11752 && `patch` IN (0); -- Blaise Montgomery (was 0.95) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=12576 && `patch` IN (0); -- Grish Longrunner (was 0.9) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14301 && `patch` IN (1); -- Brinna Valanaar (was 0.95) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14373 && `patch` IN (1); -- Sage Korolusk (was 1.05) +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14479 && `patch` IN (2); -- Twilight Lord Everun (was 5.6) + +-- Armor Multipliers +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=3103 && `patch` IN (0); -- Makrura Clacker (was 1.3) +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=3104 && `patch` IN (0); -- Makrura Shellhide (was 1.1) +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3111 && `patch` IN (0); -- Razormane Quilboar (was 0.85) +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3112 && `patch` IN (0); -- Razormane Scout (was 0.85) +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3113 && `patch` IN (0); -- Razormane Dustrunner (was 0.8) +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3114 && `patch` IN (0); -- Razormane Battleguard (was 0.9) +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3115 && `patch` IN (0); -- Dustwind Harpy (was 0.9) +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3116 && `patch` IN (0); -- Dustwind Pillager (was 0.9) +UPDATE `creature_template` SET `armor_multiplier`=0.4 WHERE `entry`=3117 && `patch` IN (0); -- Dustwind Savage (was 0.35) +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3119 && `patch` IN (0); -- Kolkar Drudge (was 0.8) +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3205 && `patch` IN (0); -- Zalazane (was 0.9) +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3206 && `patch` IN (0); -- Voodoo Troll (was 0.9) +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3207 && `patch` IN (0); -- Hexed Troll (was 0.85) +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5797 && `patch` IN (0); -- Aean Swiftriver (was 0.9) +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=5800 && `patch` IN (0); -- Marcus Bel (was 0.95) +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=6371 && `patch` IN (0); -- Storm Bay Warrior (was 0.85) +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=6372 && `patch` IN (0); -- Makrinni Snapclaw (was 0.15) +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11752 && `patch` IN (0); -- Blaise Montgomery (was 0.8) +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=14479 && `patch` IN (2); -- Twilight Lord Everun (was 1.1) + +-- nature resistance +UPDATE `creature_template` SET `nature_res`=48 WHERE `entry`=4051 && `nature_res`=0; -- Cenarion Botanist + +-- arcane resistance +UPDATE `creature_template` SET `arcane_res`=0 WHERE `entry`=4053 && `arcane_res`=25; -- Daughter of Cenarius + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 1d8298ddf9b5c333b58e40b4c093591f6dbea214 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 11 Nov 2023 03:32:31 +0200 Subject: [PATCH 284/426] Small corrections to page texts. --- sql/migrations/20231111012143_world.sql | 203 ++++++++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 sql/migrations/20231111012143_world.sql diff --git a/sql/migrations/20231111012143_world.sql b/sql/migrations/20231111012143_world.sql new file mode 100644 index 00000000000..3cef09e1ffb --- /dev/null +++ b/sql/migrations/20231111012143_world.sql @@ -0,0 +1,203 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231111012143'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231111012143'); +-- Add your query below. + + +-- Small corrections to page text. +UPDATE `page_text` SET `text`='All goes well. I have summoned larger numbers of worgen to fight at my side. Though they are of simple mind, they have shown impressive ability to coordinate their attacks and function as a group.\n\nI have identified leaders in their packs. To them I have given command of small groups of warriors. We strike from many places in the forest at once, and my campaign against the demons is a fruitful one.\n\n\nMay Elune\'s blessings be upon me until my work is done.' WHERE `entry`=399; +UPDATE `page_text` SET `text`='The Venture Co. Letters are outside the mine... I think on some crates on the bottom level.\n\nGood luck, and remember...\n\nBlue Charge: lumber mill\nRed Charge: mine\n\nOh, and destroy this letter after you\'ve accomplished your mission. Hmm, maybe I should look into a way to make these things destroy themselves after they\'re read. That\'s not a bad idea...' WHERE `entry`=422; +UPDATE `page_text` SET `text`='The Disposal of the Beast:\n\nAfter thirty minutes, the beast will return to its home in the Nether.\n\nNote:\n\nIn its fervor, the beast MAY run off cliffs or fall off a mountain. Don\'t mourn the loss of the Felhound Tracker, summon another one instead.' WHERE `entry`=1293; +UPDATE `page_text` SET `text`='What was I thinking? \n\nPerhaps a better question would be: What am I doing writing a note while I\'m sitting captive inside the stomach of a giant?\n\nBoth good questions that I have no immediate answer for...\n\nAdmittedly, mine was not a mission of good will. I came in search of Azsharite, a unique crystal to southern Azshara. Oh the riches I would have had!\n\nBah! Now look at me...' WHERE `entry`=1313; +UPDATE `page_text` SET `text`='Should any manner of intelligent life find this note, they must ask themselves something: \"Why in the hell are they romping around with violent thirty foot tall giants?\"\n\n- Mook' WHERE `entry`=1314; +UPDATE `page_text` SET `text`='Harthal Truesight\nLord Paladin of the Scarlet Crusade \nCitizen of Azeroth - Knight of the Silver Hand\nLast seen entering the cursed city of Stratholme' WHERE `entry`=2173; +UPDATE `page_text` SET `text`='would deliver this message to you myself, but I fear to leave, lest I miss some event of great import.\n\nShould you wish to know more of my observations on the Tower of Althalaxx, the bearer of this message has provided no small amount of assistance to me, and I believe $g he : she; can be trusted.\n\nIn haste,\nBalthule Shadowstrike' WHERE `entry`=437; +UPDATE `page_text` SET `text`='SUPER CRITICAL TRIPLE-ENCODED DATA CARD\n\n01010100 01101000 01110010 01100001 01101100 01101100 00100000 01100001 01101110 01100100 00100000 01001010 01100001 01101001 01101110 01100001 00100000 01110011 01101001 01110100 01110100 01101001 01101110 01100111 00100000 01101001 01101110 00100000 01100001 00100000 01110100 01110010 01100101 01100101 00101100 00100000 01001011 00101101 01001001 00101101 01010011 00101101 01010011 00101101 01001001 00101101 01001110 00101101 01000111' WHERE `entry`=1131; +UPDATE `page_text` SET `text`='Within just a few days of my visit I found myself tutoring the local children from the nearby farmlands. The lessons went so well that the town mayor commissioned me to run a school and construction has begun on a brand new schoolhouse! From Silverpine to Stormwind and now Moonbrook -- who would have guessed I would see so much of Azeroth!\n\nWarm regards,\n\nStalvan Mistmantle' WHERE `entry`=17; +UPDATE `page_text` SET `text`='Arellas Fireleaf\nHigh Wizard of the Scarlet Crusade \nCitizen of Quel\'Thalas \nLocked in eternal combat with the Necromancer Diesalven' WHERE `entry`=2151; +UPDATE `page_text` SET `text`='Our world brims with history. History of races new and old. History behind wars long dead, and those which still smolder. \n\nHistory of gods visiting from the skies. And history of older gods who sleep in the earth.\n\nI speak now of those beings - the Old Gods. They who dwelt and raged across Azeroth when the world was new.' WHERE `entry`=794; +UPDATE `page_text` SET `text`='Bring me these items, the Star, the Hand and the Heart, and I will give you a copy of the Yagyin Digest.\n\n-The Keeper' WHERE `entry`=379; +UPDATE `page_text` SET `text`='The Legacy Heart\n\nOld texts say that he who posseses the Legacy Heart fears not the grave. Perhaps this is true, for the owner of the heart, the troll Mogh, is known as Mogh the Undying. A witchdoctor of the Skullsplitter tribe, Mogh dwells in Stranglethorn in the Ruins of Zul\'Mamwe.' WHERE `entry`=378; +UPDATE `page_text` SET `text`='The Hand of Dagun\n \nDagun is a creature of the deep waters, worshipped by Murlocs in Dustwallow Marsh. They entice him to the surface with a special sea kelp, enchanted by their shamans. Hunt the Murlocs, gather their enchanted kelp, then place it on the Murloc\'s altar. Dagun will come, and you will be waiting.\n\nI want that hand.' WHERE `entry`=377; +UPDATE `page_text` SET `text`='The Star of Xil\'yeh\n \nAn ogre in Alterac, Grel\'borg the Miser, was the last known owner of this gem, whispered to empower its owner with the ability to commune with other worlds. Sources tell us Grelborg wanders the Ruins of Alterac in the Alterac Mountains, searching the rubble and debris for more relics.' WHERE `entry`=376; +UPDATE `page_text` SET `text`='Brother Neals,\n\nMy grapes are saved! $N, the bearer of this manifest, braved my thug-infested vineyard and gathered the grapes that I could not. Although the Defias still roam across the river, nearly my entire crop has been salvaged.\n\nYou may add a full load of grape bushels to your stores.\n\nMay the Light protect us,\n-Milly Osworth' WHERE `entry`=1392; +UPDATE `page_text` SET `text`='Westfall Stew \n\n3 parts Stringy Vulture Meat \n3 Goretusk Snouts \n3 Murloc Eyes \n3 Okra\n\nMix together and bring to a boil. Let simmer for at least two hours before serving.' WHERE `entry`=213; +UPDATE `page_text` SET `text`='The Control of the Beast:\n\nFelhound Trackers only respond to beastial roars. In order to get your Felhound Tracker to track Azsharite formations, you must roar at it with vigor! (Target the Felhound Tracker and /roar).\n\nWhen the Felhound Tracker locates a formation, he will sprint to the formation with little to no regard for the entities that surround him. While you do not need to protect the Felhound, you may want to stay close so that you do not lose him.\n\n' WHERE `entry`=1292; +UPDATE `page_text` SET `text`='The Conjuring of the Beast:\n\nTo conjure the Felhound Tracker, you must use the supplied Fel Orb.\n\nNotes:\n\nThe conjured Felhound Tracker will only remain as an entity in this world for thirty minutes.\n\nThe conjured Felhound Tracker will only assist you in finding Azsharite formations.\n\nThe conjured Felhound Tracker WILL NOT do the following: Tricks, attack anything, assist anything, dance, destroy arcane beings.\n\nNext page please...' WHERE `entry`=1291; +UPDATE `page_text` SET `text`='Both Ajeck and Sir Erlgadin stood poised, guns leveled at the bristling overgrowth at the base of the swaying trees. The midday sun beat heavily upon us. A slow trickle of perspiration trailed down from Elrgadin\'s temple as he pulled the pin back. Upon the sound of the click, the thick flora parted and a large black panther -- a beautiful specimen -- darted out onto the plain.' WHERE `entry`=168; +UPDATE `page_text` SET `text`='Plan Beta- Windshear Mine:\n\nI saw the goblins using another wagon of explosives north of the mine\'s entrance. I think that should be a good enough place to plant NG-5 Charge (Red). After you set the charge in the back of the wagon, get some distance and hit the button. \n\nIf the goblins don\'t come running to check out the commotion, it\'s probably because the mountain came down on top of their heads.' WHERE `entry`=421; +UPDATE `page_text` SET `text`='When you\'re ready, hit the detonator.\n\nI\'ve ensured a strong signal by routing copper and silver wires with a Melthusian antenae array within the casing of the box. That should give you good range. Just be careful of the goblins nearby. They won\'t appreciate my creation if they catch you in their site.\n\nOh, just in case it wasn\'t obvious, don\'t be near the wagon when it blows... it\'ll hurt.' WHERE `entry`=420; +UPDATE `page_text` SET `text`='Before I get back into the details about my design, let me explain where you should place the explosives.\n\nPlan Alpha- the lumber mill:\nThere\'s a wagon out in front of the lumber mill (this is northeast of their deforestation and lumber collection construct). I suspect the engineering plans are inside of the lumber mill.\n\nTo plant the charge, head to the back of the wagon. Once it\'s set, make haste and get some distance.' WHERE `entry`=419; +UPDATE `page_text` SET `text`='Be careful with them by the way. The Nitromirglyceronium alone could reduce you to dust. I\'ve encased some of the liquid in copper tubes which should keep it stable and safe.\n\nThe scroll you got from Collin I used on the detonator boxes. They will now send a silent message to the NG-5 charges after you\'ve set them. I used a simple Stalthwargon mechanism to make sure the wire conductivity is optimal and the flow of the Nitroglyceronium between the differential fluid is better than average.' WHERE `entry`=418; +UPDATE `page_text` SET `text`='Okay, you should have your NG-5 charges and detonators ready. I\'ve labeled them for you... Blue is for the lumber mill. Red is for Windshear Mine.\n\nI did some scouting, and there are enough explosives throughout Windshear Crag that it shouldn\'t be a problem at all for you to get in, plant the explosives, and then get out before detonating them.\n\nRemember, this is a distraction. Get far from the wagons before the goblins get there to check out what happened, then sneak in behind them.' WHERE `entry`=417; +UPDATE `page_text` SET `text`='Blacknails--\n\nThe Sea awaits us. We need your supplies from the North. Strip everything: every railroad pike, every waterbucket. We need metal. A shipment is due from BB but long overdue. Come through for me, Blacknails. Send your supplies directly to the \"barn\" this time. No time to squander.\n\n--VanCleef' WHERE `entry`=48; +UPDATE `page_text` SET `text`='$N,\nBefore I go any further, let me thank you again for everything you\'ve done for my wife and I. You saved her life, and for that, I owe you far more than I could possibly repay in a hundred lives. She is everything to me. If she would have died... well, I don\'t know what I would have done.\n\nHere is the list of things you\'ll need to recover if I am going to forge a holy weapon for you. I put them in order of what I thought was easiest to hardest--I hope that makes it simpler for you.' WHERE `entry`=871; +UPDATE `page_text` SET `text`='The Council was wise to appoint you head of the Argus Wake, marshal of their strategies in the land of humans and dwarves. And I am honored to serve as the hand of your will in Alterac.\n\nIn Sargeras\' Name,\n\nNagaz, \nArgus Heirophant' WHERE `entry`=315; +UPDATE `page_text` SET `text`='To My Honorable King:\n\n\'Tis not the place of a lowly soldier\'s wife to question the actions of great leaders such as yourself. The battles that rage across our lands are being fought to preserve the great life we know and love, from the cool waters of Loch Modan to the brisk, snow-capped peaks of Dun Morogh.' WHERE `entry`=333; +UPDATE `page_text` SET `text`='[The words below were quickly scrawled on the back of the deed]\n\nWe leaned on Furlbrow and got his deed. Thought it might be handy if you wanted to forge one of these for your own place. The Furlbrows won\'t give us trouble. Last I saw them they were on their way out of Westfall, stuck with a broken wagon.' WHERE `entry`=56; +UPDATE `page_text` SET `text`='But the wars we wage in the name of preservation are to come at what cost? Upon the death of which fallen soldier do we realize that the very life we strive to save is slipping from us on the battlefield?\n\nUnder how many swords and axes must we throw our future? Under how many feet of sodden soil must we bury our past?' WHERE `entry`=334; +UPDATE `page_text` SET `text`='Aku\'mai, Princess of the Deep, serves the Old Gods. She dwells in Blackfathom Deeps, blessing its caves with her ancient wisdom. Brought to the Deeps by older mortals, Aku\'mai is a symbol of divinity. She has but a sliver of the Old Gods\' power and savagery, and yet hers is still beyond measure.\n\nAnd so she is worshipped. And she is feared, and loved.\n\n\n--Lorgalis' WHERE `entry`=797; +UPDATE `page_text` SET `text`='The plan is set in motion.\n\nTake that once-great bastion of faith, Heroes\' Vigil, as our base camp, and we\'ll begin to move reinforcements to you from Westfall once you have sent word that it has been suitably prepared.\n\nThe area is all but forgotten to the citizens and soldiers of Stormwind, and should prove a perfect staging point for our attacks. \n\nThe Defias will take back Stormwind!\n\nI await your response.' WHERE `entry`=811; +UPDATE `page_text` SET `text`='Lastly, I must restate my request for blastpowder. My supplies are very low, which severely hampers the success of the excavation. I was told a resupply of blastpowder was forthcoming, though I have not yet received it.\n\nWhat, may I ask, is the delay?\n\nRespectfully,\nProspector Darteus Ironband' WHERE `entry`=184; +UPDATE `page_text` SET `text`='Tommy Joe -\n\nWith each passing hour, my heart withers from your absence. Oh, if only our folks could see beyond the silly crimes they have done to each other, and know that the only true crime is hate. Hate consumes, and I fear in these dimming times that hate will take hold of more than just our families.\n\nIf they realized this then we could, at long last, be together. It is for that day I hope, and for that day I live.\n\nYour love,\nMaybell' WHERE `entry`=25; +UPDATE `page_text` SET `text`='Along with killing Dartol, the furbolg split up the rod into three parts so it couldn\'t be used against them again. It has been difficult, but I\'ve a good idea where all three parts were placed.\n\nThe Gem\nThe first part of the rod, a glowing gem, was hidden in a shrine in Northwestern Ashenvale. I believe now this shrine is the ruins at the center of Lake Falathim. The Sentinels tell me that it\'s been inhabited by murlocs now.' WHERE `entry`=408; +UPDATE `page_text` SET `text`='A pack is lost. I sent the worgen to range through the forest and identify areas of demonic infestation, but they did not return. I begin to worry about the leaders that I have entrusted control to. They are of simple mind, and this small bit of authority I have given them, they stretch to the utmost. Am I losing control? Perhaps I shall cease summoning additional worgen for the time being.\n\n\nMay Elune\'s blessings be upon me until my work is done.' WHERE `entry`=400; +UPDATE `page_text` SET `text`='Not all the furbolg have been corrupted. Some still live and try to protect the forest. During their corruption, some of the furbolg fled, many were killed, and others were forced out of their tribes.\n\nI found a venerable furbolg of the Foulweald tribe living above Lake Mystral--his name is Krolg.\n\nI\'ve watched him for days, and I think if I were to approach him in the guise of a furbolg, I could help him and discover a way to re-establish a bond between our people.' WHERE `entry`=407; +UPDATE `page_text` SET `text`='Greetings, Master,\n\nForgive me for the method of sending this message. My shadow mages in Alterac are intent on their tasks, forcing me to use a foreign messenger -- conscripted from our new \"allies\" -- to bring you this report. But I have encrypted this letter with one of our most esoteric ciphers. Its words are safe from these yokels.' WHERE `entry`=248; +UPDATE `page_text` SET `text`='I\'ve stood before a towering Infernal on the battlefield, the army of the Burning Legion advancing from all directions. An unruly band of Trolls seems as harmless as a jackrabbit in the hills of Dun Morogh.\n\nWe passed the Tkashi Ruins without event, much to Barnil\'s relief. The party proceeded to head westward, toward the Great Sea, skirting the Ruins of Zul\'Kunda just to the south. As we ascended the high sea bluffs we spotted our first Raptor.' WHERE `entry`=173; +UPDATE `page_text` SET `text`='Dun Modr of the Wetlands\n\nMy Dear Sara,\n\nThe indications are very strong that we shall move to take watch over the Thandol Span in a few days. Lest I shall not be able to write to you again. I feel impelled to write a few lines that may fall under your eye when I shall be no more.' WHERE `entry`=317; +UPDATE `page_text` SET `text`='To the Honorable Headmaster Crillian,\n\nMy former Master, I write to you so that you might know what your apprentice has been doing of late. Paying heed to your advice, I sought to build my knowledge and wisdom through travel outside the gates of our beloved Stormwind. My journeys took me to many places but I have decided to take up residence here in the lovely town of Moonbrook. The surrounding fields of Westfall are most beautiful as the harvest approaches.' WHERE `entry`=16; +UPDATE `page_text` SET `text`='Ajeck and Sir Erlgadin were anxious to learn how to hunt effectively with a Dwarven Rifle. I had the two humans leave their primitive range weapons at base camp. Barnil and I outfitted them with some of Ironforge\'s finest firearms.' WHERE `entry`=165; +UPDATE `page_text` SET `text`='Our assignment may be one of a few days duration and full of pleasure, and it may be one of severe conflict and death to me. If it is necessary that I should fall on the battlefield for the Alliance, I am ready. \n\nI have no misgivings about or lack of confidence in the cause in which I am engaged and my courage does not halt or falter.' WHERE `entry`=318; +UPDATE `page_text` SET `text`='I know I have but few and small claims upon Divine Providence but something whispers to me - perhaps it is the wafted prayer of my little Edgar - that I shall return to my loved ones unharmed. If I do not my dear Sara never forget how much I love you and when my last breath escapes me on the battlefield I shall whisper your name. \n\nForgive my many faults and the many pains I have caused you, how thoughtless, how foolish I have often times been.' WHERE `entry`=322; +UPDATE `page_text` SET `text`='Our hastily aimed shots were enough to buy Barnil\'s escape. Barnil clamored back down the hill and rejoined the party. We scurried off into the jungle; a pack of ferocious Lashtail Raptor\'s stalking our every move.\n\nThe hunters were now the hunted.' WHERE `entry`=176; +UPDATE `page_text` SET `text`='Valik,\nGuard the slave until our return. It\'s not safe to keep IT here any longer. We\'ll be moving it north, farther away from any possibility of being seen. \n\nThey\'re animals, but brutal animals nonetheless--given enough of them, we\'d have reason to be concerned. Better to hide any signs that would provoke them altogether. The last thing we want to give them is a reason to rally and attack us in force.' WHERE `entry`=249; +UPDATE `page_text` SET `text`='COMMENDATION:\n\nThe bearer of these documents is to be awarded Deputy status with the Stormwind Army, having served Northshire with eagerness and distinction. I am confident you will find this person useful in Elwynn Forest.\n\nsigned:\n-Marshal Douglas McBride, \nStormwind Army, Northshire' WHERE `entry`=212; +UPDATE `page_text` SET `text`='Invar One-Arm\nThe first Chief Assassin of the Scarlet Crusade \nCitizen of Dalaran\nLast seen on the shores of Northrend' WHERE `entry`=2175; +UPDATE `page_text` SET `text`='It is not the place of the lowly soldier\'s wife to ask such questions.\n\nYet I write to you now as the lowly soldier\'s widow. My husband might have been one soldier in the ranks of thousands to you. To me he was the great Sully Balloo, father of my children and my one partner in this life.\n\nForgive me if my questions to you, oh great leader, ring inappropriate. But the dead cannot ask these questions for themselves....\n\nYour Loyal Subject,\nSara Balloo' WHERE `entry`=335; +UPDATE `page_text` SET `text`='and understood me. By further channeling energy into the Scythe, the barriers weakened more, and I was able to draw worgen into our world. A score and half I was able to summon in my first attempt. They followed me into battle, and with their brutish strength at my command, we tore into the demons of Felwood.\n\nElune has granted my wishes. The forest will be cleansed.\n\n\nMay Elune\'s blessings be upon me until my work is done.' WHERE `entry`=398; +UPDATE `page_text` SET `text`='An evil force created these,\nHe sits on Dreadmist Peak at ease,\nHe laughs at thee and thy friend,\nHis elementals have no end,\n\nSoon you must confront this mage,\nFor only death will end his rage.' WHERE `entry`=394; +UPDATE `page_text` SET `text`='one another. As I\'m sure the elves would be, the furbolg were angered, but they reacted much more strongly and killed Dartol.\n\nThe furbolg, at least at this time, weren\'t the same corrupted creatures they\'ve become. They were still rational and intelligent--their relationship with our people amicable.\n\nI\'m hoping that if I can recreate the rod with the help of a dryad named Shael\'dryn, I can use its power to help our people... and the furbolg.' WHERE `entry`=406; +UPDATE `page_text` SET `text`='We now take refuge in a sheltered cavern, seemingly out of harm\'s way. But we are indeed trapped until a force can be sent to reckon with the Raptors. Whelgar is trying to continue work but I suspect he is still quite frightened. That is our situation, Tarrel. Please urge Longbraid to muster a rescue force at once.\n\nMy love for you remains strong, even through this dire time.\n\n--Merrin' WHERE `entry`=94; +UPDATE `page_text` SET `text`='whispers, of a wizard of the Kirin Tor named Arugal. From what I have heard, it is possible that he has also summoned worgen. I would consult with this wizard--distasteful as it may be--and see what he knows.\n\nThe worgen are dangerous, and I wish to stem the tide. On the morrow, I will travel to the port in the Barrens and book passage to the New World.\n\n\nMay Elune\'s blessings be upon me until my work is done.' WHERE `entry`=402; +UPDATE `page_text` SET `text`='Though I have not summoned additional worgen, their numbers continue to increase. It is as though the Scythe no longer requires my intervention for the summoning process. This is troubling. I have gathered as many of the packs as I could find, and ordered them to remain at the Shrine of Mel\'Thandris.\n\nMeanwhile, I have searched the libraries in Darnassus and consulted with the Circle of Ancients in Darkshore. Not one scrap of information about these worgen did I find. I have heard reports,' WHERE `entry`=401; +UPDATE `page_text` SET `text`='Stoutmantle --\n\nSome nerve sending a total stranger to discuss the Defias gang. Once you saved my life and now you put it in great peril.\n\nBut I owe you. The Defias Brotherhood is larger than you think. Every mine from Westfall to Elwynn Forest is under their control. Kobolds and Gnolls have been enlisted to do their dirty work. They have goblins crafting metal monsters to place in the Westfall fields to prey on the superstitions of the local residents.' WHERE `entry`=38; +UPDATE `page_text` SET `text`='in my hands, I received a vision of chaos. Wolf-men... the worgen... battled an incredible enemy. The worgen fought savagely, as fit their primitive race, but their enemy was unflinching: the Lords of the Emerald Flame.\n\nAnd that was when I realized the true power of the Scythe. By focusing on it, I became able to communicate with the worgen. It was not speech I used to contact them, however. It was something different... I could not describe it.\n\nWhat mattered was that the worgen heard' WHERE `entry`=397; +UPDATE `page_text` SET `text`='Elune has granted my wishes. The lives of my fallen comrades will not be in vain, and I shall avenge their deaths using the Scythe of Elune. It is an ancient thing, a branch, twisted and gnarled of wood that could be older than even the Kaldorei.\n\nFor many hours I examined the tool that the goddess granted to me. It is no ordinary weapon, that is for certain, nor is it a simple magical implement. With it... it is as though the barriers of time and space are weakened.\n\nHolding the Scythe' WHERE `entry`=396; +UPDATE `page_text` SET `text`='Bumbling fools!\n\nMy plans called for both bridges to be destroyed simultaneously. And what do you simple-minded thugs do? You only get half the job done and alert the entire Alliance as to our intentions. Fools I say!\n\nYou have one chance to make amends for your actions. We have a backup cache of explosives in Arathi Highlands, not far from the bridge. \n\nFinish the job if you value your measly lives!\n\n--Kam Deepfury' WHERE `entry`=316; +UPDATE `page_text` SET `text`='Master Delgren,\n\nIt is as you feared. Your theory about the Tower of Althalaxx has proven true. A cult has gathered at the tower with many warlocks amongst their number, including even a foul satyr. They call themselves the Cult of the Dark Strand. I cannot imagine what vile purpose brings them together, but it worries me.\n\nPlease forgive the terseness in which I have composed this missive, but danger lurks in the forest around me, and I can spare few words to describing the situation. I' WHERE `entry`=361; +UPDATE `page_text` SET `text`='ULTRA VITAL DATA! SECURITY RATING 5122!\n\n01001001 01100110 00100000 01111001 01101111 01110101 00100000 01100011 01100001 01101110 00100000 01110010 01100101 01100001 01100100 00100000 01110100 01101000 01101001 01110011 00101100 00100000 01111001 01101111 01110101 00100111 01110010 01100101 00100000 01110011 01110100 01100001 01101110 01100100 01101001 01101110 01100111 00100000 01110100 01101111 01101111 00100000 01100011 01101100 01101111 01110011 01100101' WHERE `entry`=1191; +UPDATE `page_text` SET `text`='Archbishop Alonsus Faol\n\nBenevolent patron of the Church of Light.\n\nThough he began his good work in Stratholme, Lordaeron, Archbishop Faol was a great friend to the people of Stormwind. In the dark days after the Second War, he helped to reform the Brotherhood of Northshire and raised vast funds to rebuild Stormwind city itself.\n\nThis Cathedral stands not only as a bastion of the Holy Light, but as a lasting testament to one man\'s noble spirit and generosity. ' WHERE `entry`=2291; +UPDATE `page_text` SET `text`='It\'s a gamble, but I have no other clues at this time...\n\nAs I find out more I\'ll put the details here; but until then, I shall work on finding the parts of the rod and helping Ashenvale.' WHERE `entry`=414; +UPDATE `page_text` SET `text`='He tells me he\'s been throughout all of Dor\'danil, and he\'s never seen a chest or any container that may hold the pommel. \n\nHe also tells me that rotting slimes have inhabited the area, and they devour almost anything smaller than them. He\'s seen them \"eat\" tables, sculptures, bears, and even gnomes!\n\nThe slimes seem to gain a great deal of sustenance from things magical. If the chest holding the pommel was enchanted at all, the slimes might have eaten it.' WHERE `entry`=413; +UPDATE `page_text` SET `text`='This may require more investigation. I\'m not sure I\'m powerful enough to fight the spirits of my dead kin...let alone delve into the depths of Dor\'danil and find the pommel.\n\n(Note: During my preparations in Astranaar, I\'ve recently met a dwarf hunter who has spent a good portion of his time in Ashenvale trying to help my people. He came from a place called Stormwind.\n\nWe spoke over a few ales one night, and his tales have given me new hope of finding the pommel...' WHERE `entry`=412; +UPDATE `page_text` SET `text`='Shael\'dryn is a dryad who protects the moonwell northeast of Lake Iris. She refuses to leave the forest or forsake it to the corruption. I know she has the power and knowledge to repair the rod, or to at least tell me how I can do it on my own.\n\nThe pommel\nThe pommel of the rod was given to the druids of Dor\'danil. There is one major problem with this though: the druids are dead.\n\nTheir spirits now inhabit the area and are no longer hospitable.' WHERE `entry`=411; +UPDATE `page_text` SET `text`='If I can\'t find the gem hidden in the shrine, it might be in the possession of one of the murlocs.\n\nThe shaft portion\nThis part of the rod was given to the treants near what is now called Felwood. Neither the furbolg nor my kind could have suspected that such magnificent creatures could ever fall to the corruption that\'s overtaken the land.\n\nMy research tells me that the guardians kept the piece in a small glade locked within a chest. To find out any more, I\'ll have to speak to Shael\'dryn.' WHERE `entry`=409; +UPDATE `page_text` SET `text`='Regardless, he was apparently more successful than naught in actualizing his plans. Did he want to attempt his machinations on the furbolg before trying on my people? Did the furbolg have something he coveted? Who knows?\n\nUsing an item he created (a rod or staff of some kind), he attempted to infiltrate the furbolg tribes of Ashenvale. At some point, and this is where many of the details are still unclear, he was discovered by the furbolg while trying to manipulate them into acting against' WHERE `entry`=405; +UPDATE `page_text` SET `text`='Where once I thought it preposterous that a human would come to our lands and learn our ways, this wizard, this evil man, came here and not only survived, but also gained some of our knowledge. I\'m still uncertain how...\n\nI never discovered his goals during my investigation, but his plan seemed simple: using druidic magic, he wanted to befriend and then control the furbolg. If it was in an attempt to harm my kin, or for some other malicious purpose, I hope to find out before my path ends.' WHERE `entry`=404; +UPDATE `page_text` SET `text`='I started this journal so I could keep notes on my quest to help Ashenvale. There is a mystery to some of the events that occurred not too long ago, and hopefully I will be able to unravel some of it in order to help my people.\n\nLet me start by putting down facts so they don\'t slip my mind at a later date.\n\nI\'ve recently found truth to the rumors of the wizard Dartol\'s efforts.' WHERE `entry`=403; +UPDATE `page_text` SET `text`='REPORT: Wolves\n\nThere has been an increase in reported animal attacks in Northshire. Eagan believes the wolves in the valley were scared here from Duskwood.\n\nAlthough the wolves rarely hunt human prey, the sheer number of them has caused some incidents with farmers. And many livestock have gone missing.' WHERE `entry`=211; +UPDATE `page_text` SET `text`='REPORT: Thieves\n\nMore alarming than the kobolds, a human gang of thieves has emerged in the valley. They wear red bandanas and call themselves a brotherhood. This level of organization may lead to trouble, both here and in all of Elwynn Forest.\n\nWe have identified one of their leaders--one Garrick Padfoot--and hope to bring him to justice soon.' WHERE `entry`=210; +UPDATE `page_text` SET `text`='REPORT: Kobolds\n\nThe activity of kobolds has increased in the vicinity of Northshire Valley. They camp north of the abbey and within the Echo Ridge Mine in alarming numbers. I have marshalled paladins, warriors and other local folk to aid me in ridding us of the vermin.\n\nThis progresses well. And I will update as needed.' WHERE `entry`=209; +UPDATE `page_text` SET `text`='But Oh Sara if the dead can come back to Azeroth and flit unseen around those they love, I shall always be near you in the gladdest day and in the darkest night amidst your happiest scenes and gloomiest hours always, always and if there be a soft breeze upon your cheeks it shall be my breath, as the cool air fans your throbbing temple, it shall be my spirit passing by.\n\nSara, do not mourn me dead, think I am gone and wait for thee, for we shall meet again.\n\n--Sully' WHERE `entry`=332; +UPDATE `page_text` SET `text`='How gladly would I wash out with my tears every little spot upon your happiness and struggle with all the misfortunes of this world to shield you and my dear children from harm.\n\nBut I cannot. \n\nI must watch you from the twisting nether and hover near you while you buffet the storms with your precious little freight and wait with sad patience till we meet to part no more.' WHERE `entry`=323; +UPDATE `page_text` SET `text`='My Dearest Tarrel -\n\nExcuse the haste with which this correspondence was written but time is not a luxury we have. \n\nThe dig crew was making significant progress unearthing important Titan artifacts. But we began to discover other ancient objects, specifically large bones.' WHERE `entry`=92; +UPDATE `page_text` SET `text`='They were the first masters of the world, and they ruled with might and terror. Though they are now chained and sleeping, their servants still roam and we small, frail mortals cannot match their strength.\n\nThose who try are devoured. But those who know their place, who kneel in supplication to the servants of the Old Gods, who willingly sacrifice mind and soul... only they will find favor.' WHERE `entry`=796; +UPDATE `page_text` SET `text`='The Old Gods are the will of our world. In every storm there roars the laughter of an Old God. The blaze of a wildfire is the heat of their gaze. As Old Gods walk, the earth trembles and breaks, and lesser things scream and tear at their own flesh in despair.\n\nAnd despair they should, for just as fire shows no mercy to a child\'s curious hand, the Old Gods have no care for those beneath them. At best, we are pawns. At worst, we are playthings.' WHERE `entry`=795; +UPDATE `page_text` SET `text`='The Earthmother\'s eyes shone down upon the lands she had breathed into creation. Her right eye, An\'she (the sun), gave warmth and light to the land. Her left eye, Mu\'sha (the moon), gave peace and sleep to the stirring creatures of the dawning. Such was the power of her gaze that the Earthmother closed one dreaming eye for every turning of the sky. Thus, her loving gaze turned day into night for the first dawning of the world. \n' WHERE `entry`=2296; +UPDATE `page_text` SET `text`='Security rating 10^10000 super sensitive data!\n\n01001000 01100101 01101100 01110000 00100001 00100000 00100000 01001001 00100111 01101101 00100000 01110100 01110010 01100001 01110000 01110000 01100101 01100100 00100000 01101001 01101110 00100000 01100001 00100000 01100010 01101001 01101110 01100001 01110010 01111001 00100000 01110000 01110101 01101110 01100011 01101000 00100000 01100011 01100001 01110010 01100100 00100000 01100110 01100001 01100011 01110100 01101111 01110010 01111001 00100001' WHERE `entry`=1193; +UPDATE `page_text` SET `text`='Do NOT let this information fall into enemy hands!\n\n01010100 01101000 01100101 00100000 01100111 01101110 01101111 01101101 01100101 00100000 01101011 01101001 01101110 01100111 00100000 01110111 01100101 01100001 01110010 01110011 00100000 01101110 01101001 01100111 01101000 01110100 00100000 01100101 01101100 01100110 00100000 01110101 01101110 01100100 01100101 01110010 01110111 01100101 01100001 01110010' WHERE `entry`=1192; +UPDATE `page_text` SET `text`='I shall travel to meet you in person when the winter rains subside and the roads are suitable for travel once again.\n\nUntil then,\n\nStalvan Mistmantle of Silverpine' WHERE `entry`=19; +UPDATE `page_text` SET `text`='Dear Noble Sir,\n\nWord of your need for a tutor for your children has traveled to me here in Goldshire, where I take up temporary residence in the Lion\'s Pride Inn. Due to the unfortunate state of events in the region, I was forced to abandon my post as Headmaster of the Moonbrook Schoolhouse. Please accept my application to serve as tutor for your offspring. Headmaster Crillian of the Academy can speak to you of my abilities if necessary.' WHERE `entry`=18; +UPDATE `page_text` SET `text`='And when this is done, the next stage of our plan may begin. With a nation of our own and a base of power in this region, we may then prepare the way for the Third Host.\n\nSoon, the Legion Lords will reward our works by raining fire from the skies once again!' WHERE `entry`=259; +UPDATE `page_text` SET `text`='Today the Syndicate holds little power in these lands, but they know the area well and have assembled sufficient manpower for the tasks ahead. With proper guiding I am confident that soon, the Syndicate will again rule Alterac.\n\nIn addition, we have urged the Syndicate to aim for the city of Stromgarde in the nearby Arathi Highlands. The city is a battlefield between our forces, ogres and the humans of Stromgarde, but we feel that with careful tactics we will own this once great city.' WHERE `entry`=258; +UPDATE `page_text` SET `text`='Our plans progress well; as mentioned, we made an alliance with a group of humans who call themselves the Syndicate. Its leaders were once the nobles of Alterac and they crave to once again hold sway here.\n\nAnd so they have struck a bargain with us. A bargain they will regret.' WHERE `entry`=257; +UPDATE `page_text` SET `text`='Master Carevin,\n\nThe bearer of this note has shown $g himself : herself; to be upstanding in the Light, capable of battling the undead and demons that plague the borders of Duskwood, and willing to join the Carevin family in their cause of Light.\n\nI would thereby suggest that you give this warrior of the Light further duties--perhaps to investigate some of the townsfolk that are under suspicion of succor to the enemies of the Light.\n\nYours faithfully,\nCalor' WHERE `entry`=63; +UPDATE `page_text` SET `text`='This is a deed to an expanse of land within the region of Westfall. It entitles the persons below with ownership rights of the designated area, as well as all items produced and any structures built within its borders.\n\nThe document is signed by:\n\n Theodore Furlbrow\n Verna Furlbrow' WHERE `entry`=55; +UPDATE `page_text` SET `text`='Hello Morgan,\n\nBusiness in Goldshire is brisk, so brisk that I haven\'t had time to send you any shipments! \n\nI commissioned the person bearing this note to bring you a package of large wax candles (you know, the ones the Kobolds like to wear on their heads?). \n\nPlease give this person our thanks, and fair payment.' WHERE `entry`=15; +UPDATE `page_text` SET `text`='A Kor Gem - From the tales I\'ve been told, the gems are used by some spell casters to hold energy for their magics, making them even deadlier. A night elf I once helped, Thundris Windweaver, can tell you more since you will be speaking on my behalf. I believe one of the gem\'s stored energies can be used in your weapon\'s creation.\n\nWhen last we spoke, Thundris was in Auberdine a town deep within Darkshore, the corrupted forest that dots the coast underneath the shadow of the night elf homeland.' WHERE `entry`=876; +UPDATE `page_text` SET `text`='Among them, the smithing hammer my father gave me. I doubted it in my youth, but he always told me the hammer was enchanted, and it\'s the last reminder I had of him before he was killed by the Scourge.\n\nBring me my hammer, $N, so I may use it as a focus for my passion. If it is indeed enchanted, then it will only aid us both.\n\nI left it in the stables in the main courtyard of the keep. Unless the creatures there have taken up smithing themselves, then I expect it to still be lying there.' WHERE `entry`=875; +UPDATE `page_text` SET `text`='Smithing Hammer - Before the coming of the Plague and Arthas\' betrayal, I lived in a town called Pyrewood, deep within the beautiful forest of Silverpine. The forest isn\'t nearly as beautiful as it once was, and the keep where I learned the secret of steel has long since become corrupt and foul, overrun with creatures of unimaginable evil.\n\nWhen my wife and I made our escape from what is now called Shadowfang Keep, we left some of our most precious possessions.' WHERE `entry`=874; +UPDATE `page_text` SET `text`='Refined Ore - There is a dwarf in Thelsamar, a smith that I trained with for some time, named Bailor Stonehand. He makes a very special alloy that I think would be perfect for your weapon. I expected a shipment of the alloy to arrive while I was in Ironforge, but I have yet to hear word from him.\n\nFind him and check on the shipment. And if he\'s no longer in Loch Modan, I would at least know what\'s happened to my old teacher.' WHERE `entry`=873; +UPDATE `page_text` SET `text`='Some good whitestone oak - Before it was taken over, the mines below Moonbrook in Westfall had an abundance of the lumber; they used it in the construction of some of their more important lattices and tools because of its resilience to heat and pressure.\n\nIt was brought down there after being shipped from overseas somewhere. It\'s a rare wood that is plenty strong enough to be used in the crafting of your weapon. If any of it\'s left in the mines, then the goblin woodcarvers would have it.' WHERE `entry`=872; +UPDATE `page_text` SET `text`='There has been one exception. The peculiarly carved idols found recently (a brief description of these was included in my last report) seem to have an effect on the Troggs at the site. They are drawn to the stone carvings, and some Troggs are driven berserk by them!\n\nMore study is required for any conclusions regarding these idols, but I remain hopeful that they will shed light on a link between the Troggs and the Titans.' WHERE `entry`=183; +UPDATE `page_text` SET `text`='Honorable Colleagues and Truthseekers\n\nThe site\'s excavation continues, but it is slowed by the Troggs mentioned in my last report. I am confident they can be dealt with, even if some of these Troggs are more aggressive than usual.\n\nMore artifacts were found recently, though in all cases but one (which I will discuss below), recent findings are of the same caliber as before - interesting, if not enlightening.' WHERE `entry`=182; +UPDATE `page_text` SET `text`='threat, just another death cult, perhaps. Little does he know that we are but one of the... strands of the Shadow Council.\n\nAs a child, I was once told of an insect whose bite could kill with ease, though it looked nothing more than a fly, a speck barely worthy of recognition. It is the things you dismiss which will hurt you the most, left to fester.' WHERE `entry`=444; +UPDATE `page_text` SET `text`='It never ceases to amaze me how easily hatred can be used to bend people to your will. The orcs and trolls were easiest, their hatred of the Alliance making them willing subjects to hear the message of the Dark Strand. Do they have any inkling of the greater power they serve?\n\nThat infuriating paladin, Delgren the Purifier, has been poking into our affairs in Ashenvale Forest, while his lackey, Balthule, spies on my tower, thinking his presence unknown to me. Delgren believes us a minor' WHERE `entry`=443; +UPDATE `page_text` SET `text`='A note is attached to the crate. It reads:\n\n\"Verner - sorry to hear Redridge is having such trouble. Here are the shoes you need. Please pay me 100 silver at your earliest convenience.\"\n\n\"Or if you like, you can pay me in underbelly scales from black dragon whelps (I hear Dragon Whelps are common in the Redridge Mountains). Because we\'re friends... 4 scales will be enough. Thanks --Argus\"' WHERE `entry`=29; +UPDATE `page_text` SET `text`='Having personally known Edwin VanCleef my entire life, I can tell you that facing him as a foe is quite a daunting task. You see, he was my childhood friend, and I personally trained him in the ways of the shadows thinking that one day he might consider a career alongside me. If VanCleef is heading up the Defias Brotherhood, may the Light have mercy on our souls.\n\nMaster Mathias Shaw\nStormwind Assassin\'s Guild' WHERE `entry`=43; +UPDATE `page_text` SET `text`='Lord Stoutmantle--\n\nLed by Edwin VanCleef, the Stonemason\'s Guild was composed of the most skilled builders among men. The Stonemasons helped to rebuild the broken city of Stormwind that was razed by the orcs during the First War. VanCleef and his tradesmen were peerless builders and their work and artistry was evident in the edifices of the Cathedral of Light and Stormwind Keep itself.' WHERE `entry`=41; +UPDATE `page_text` SET `text`='They have a vast underground network built. Bigger than you know, Stoutmantle. From Booty Bay right to Stormwind Keep. You may be a brave Paladin but you are a fool if you think you can shut them down. They are working on a weapon of mass destruction. After all, if there\'s one thing Stonemasons know, it\'s how to build big. You didn\'t think this was about pumpkin farms and vineyards, now did you? I repaid your favor. Now leave me be!\n\n--W' WHERE `entry`=39; +UPDATE `page_text` SET `text`='Osric,\n\nPlease find below the list of armor of which we are in need: \n\n10 Mail shirts\n20 Helms\n30 Armor Patches\n15 Mail Boots\n\nWe are, as always, in your debt. And should Westfall ever be free of the thieves who threaten it, it would ease the guilt in my heart if I could invite you to my family\'s home, for a fine meal cooked from the bounty this land was once so well known.\n\n-Lewis\nQuartermaster, Sentinel Hill\n\n' WHERE `entry`=2512; +UPDATE `page_text` SET `text`='Payment will be made through the usual channels. And do give the bearer of this request a standard, delivery stipend. You may add it to the cost of the shield.\n\n\n\nSincerely, and many thanks,\n--Gringer Stormpike' WHERE `entry`=650; +UPDATE `page_text` SET `text`='-Perfectly round, spanning from fist to elbow.\n\n-Studs along the edge. Silver.\n\n-One large stud in the center, spanning three finger widths. Silver.\n\n-Oaken, and reinforced with iron.\n\n-My name, Gringer Stormpike, etched across the top rim.\n' WHERE `entry`=649; +UPDATE `page_text` SET `text`='Master Longbeard,\n\nAs you know, we Stormpikes have an eye for excellence, and so the quality of your shields is no mystery to us.\n\nI, therefore, am keen to commission you for such a shield. I have included specifications on the following page:\n\n\n' WHERE `entry`=607; +UPDATE `page_text` SET `text`='\n\n
    \n
    \n

    \nEliza\n

    \n
    \n
    \n
    \n
    \n

    \nBeloved wife, may the earth sate your hunger.\n

    \n\n' WHERE `entry`=731; +UPDATE `page_text` SET `text`='Before long, Ajeck tracked the panther to the southwest. We walked quietly, guns at the ready, in anticipation of our prey. A snapping of twigs from a nearby copse of trees drew our attention immediately. Something was in there. One stern glance at Barnil was enough to convey my thoughts. Barnil slowly lowered his rifle. This kill was not for us; it was for our Human companions. Countless panthers had lost their lives in front of our smoking barrels. This kill would be for the Humans.' WHERE `entry`=167; +UPDATE `page_text` SET `text`='On this day we ventured to the south, following some fresh panther tracks. Soon we reached a ravine spanned by a tremendous rope bridge. I could not help but to think of Brann\'s descriptive writings of this region when I saw the engineering marvel. So often it was assumed that the native Trolls were a primitive and uneducated race yet as I gazed upon the master craftsmanship of the bridge I was able to recognize the skill with which the Troll builders overcame the seemingly impossible feat.' WHERE `entry`=166; +UPDATE `page_text` SET `text`='I had promised the expedition that we would spend the next day hunting panthers, as their furs are in high demand throughout Azeroth. It only makes sense that such demand should exist with all of the able-bodied hunters, trappers and fur-traders off giving their lives so valiantly in the name of the Alliance.' WHERE `entry`=164; +UPDATE `page_text` SET `text`='On a rocky precipice above, silhouetted by the setting sun, I could make out the largest cat of prey I have ever laid eyes upon. I was able to loose one clumsy volley with my rifle, but the cat held his ground. He growled once again, this time louder than the first, and vanished.\n\nWe gathered our belongings and headed solemnly back to camp.' WHERE `entry`=163; +UPDATE `page_text` SET `text`='The kill brought about a festive mood amongst the expedition. Barnil poured mead for all to enjoy. But our festivities were short-lived. As we were preparing the corpse for transport back to base camp we were all caught off guard by a horrendous growl. In all my years I have never heard anything so blood curdling.' WHERE `entry`=162; +UPDATE `page_text` SET `text`='The beast was a male Stranglethorn Tiger. Before I could cock my rifle, Erlgadin raised his crossbow and fired upon the beast. The bolt missed its mark and caught the beast heavily in the left flank. The tiger made a futile attempt to flee but its wound was too grave. The beast stumbled for a few tragic seconds until Barnil finished the kill with a thrown axe.' WHERE `entry`=161; +UPDATE `page_text` SET `text`='But I could not bask in the glory of the kill for long. For when I turned my eyes toward the horizon, several silhouettes appeared cresting the hill, just above poor Barnil. \n\n*Flee, Barnil!* I shouted. Ajeck, Sir Erlgadin and myself loosed a volley of bullets, arrows and bolts over Barnil and toward the pursuing raptors. One of us landed a kill amidst the confusion.' WHERE `entry`=175; +UPDATE `page_text` SET `text`='As the weeks passed our stockpile of panther and tiger skins grew immense. I decided it was time for the expedition to shift our focus to a new challenge: Raptors.\n\nThe Humans, while appreciative of the training Barnil and I offered, decided to refrain from hunting with firearms. Ajeck was much more comfortable with a finely strung bow and Sir Erlgadin never left camp without his sturdy crossbow.' WHERE `entry`=171; +UPDATE `page_text` SET `text`='The Humans trained their sites on the panther as it ran along the edge of the tree line. The barrels of their guns moved in perfect parallel tandem. Barnil gave me an urging glance but I shook my head no. This hunt was for the Humans, not Barnil or me. Erlgadin fired a booming shot, missing the panther altogether. Apparently he was unprepared for the violent kickback of the rifle blast.' WHERE `entry`=169; +UPDATE `page_text` SET `text`='They breathed skies and raging atmospheres into being - all part of their unfathomable, far-sighted plan to create order out of chaos. They even empowered primitive races to tend to their works and maintain the integrity of their respective worlds.\n\nThe Titans, ruled by an elite sect known as the Pantheon, brought order to a hundred million worlds scattered throughout the Great Dark Beyond during the first ages of creation. ' WHERE `entry`=577; +UPDATE `page_text` SET `text`='Though the exact origins of the chaotic universe remain unclear, it is clear that a race of powerful beings arose to bring order to the various worlds and ensure a safe future for the beings that would follow in their footsteps.\n\nThe Titans, colossal, metallic-skinned gods from the far reaches of the cosmos, came forward and set to work on the worlds they encountered. They shaped the form of their worlds by raising mighty mountains and dredging out vast seas.' WHERE `entry`=576; +UPDATE `page_text` SET `text`='Valea Twinblades \nWarrior of the Scarlet Crusade\nCitizen of Alterac \nLast seen deep in the Eastern Plaguelands' WHERE `entry`=2177; +UPDATE `page_text` SET `text`='Orman of Stromgarde\nThe first Captain General of the Scarlet Crusade \nCitizen of Stromgarde\nLost at the mouth of Icecrown Glacier' WHERE `entry`=2176; +UPDATE `page_text` SET `text`='The word BETRAYER is crudely scratched over the finely etched epitaph that reads:\n\nYuriv lies here.\nFather, Husband, Paladin.\nLet his children bear witness to the fact that his dedication to the Light was unquestionable.\nHe would never ask anything of them that he himself would not do.\n' WHERE `entry`=690; +UPDATE `page_text` SET `text`='The guards of this tower seem to be especially weak to my attacks. As I was scouting the backside of the tower, a patroller spotted me and attacked. I was able to easily dispatch the guard with a timely gouge followed by a backstab. \n\nI waited in hiding for her partner to come investigate the commotion. The patroller came towards the bushes where I had dragged the corpse and began a search. Slowly, carefully, I crept up behind him, not wanting my ambush to be discovered. ' WHERE `entry`=1051; +UPDATE `page_text` SET `text`='A while back, at the Explorers\' League headquarters in Ironforge, I remember a lecture given by Chief Archeologist Greywhisker. The old chap made mention of such a god, one which was revered by the strange elves of Darnassus because of his rumored altruistic nature--\n\nBah! One moment. I hear snorting outside the tent. Surely just some thistle boars trying to get at my apple stash....' WHERE `entry`=427; +UPDATE `page_text` SET `text`='--Day One--\n\nMy journey from Ironforge finally brings me to Kalimdor!\n\nProspector Khazgorm of Bael Modan is making great headway. He uncovered a fossil today which the site scholars believe to be a bone fragment of an ancient god. Khazgorm is certain the fossil is part of a greater mystery. While he oversees the excavation site, he has made it my quest to discover more fossils to piece together the story. \n\nMy assignment: head to the south in search of more clues.' WHERE `entry`=424; +UPDATE `page_text` SET `text`='\n\n\n\n\n' WHERE `entry`=1637; +UPDATE `page_text` SET `text`='Devlin despaired and sought an escape from our ill fortunes, and in doing so he made a pact with the Scourge. I do not know what price was promised him for his betrayal, but I\'m sure it was laced with lies.\n\nIf you see my brother, then flee from him. He is a fiend. A few nights ago he murdered two of our watchmen and let a small group of Scourge through the breach, leading them to where many more of us slept.' WHERE `entry`=253; +UPDATE `page_text` SET `text`='Devlin warned us that if we tried to face the Scourge, then we were doomed. He told us this when they first entered Tirisfal Glades, well before they encircled our home. Perhaps he was pleading with us to leave, or perhaps he was gloating.\n\nIt was always hard to understand Devlin\'s motives. Since he was a child, he was a mystery to us.' WHERE `entry`=255; +UPDATE `page_text` SET `text`='Greetings Ello Ebonlocke, Mayor of Darkshire. I\'m afraid I have news for your town. Grave news.\n\nYou see, I am a creator. I fooled the bearer of this note into aiding me in my latest, most dire creation - a fiend of flesh and bone and twisted metal! As you read this, it\'s likely outside my humble dwelling, gnashing its teeth and waiting for my word to go forth and slaughter.\n\nBut you\'ll know soon enough.\n\n-The Embalmer' WHERE `entry`=235; +UPDATE `page_text` SET `text`='For immediate dissemination to all Twilight\'s Hammer members.\n\nThe following information describes the use of wind stones for communication with our masters in the Abyssal Council.\n\nAll frivolous use of wind stones will be punished in a most painful manner.\n\n-Twilight Keeper Havunth' WHERE `entry`=2812; +UPDATE `page_text` SET `text`='When the opportunity was made available, I thrust my dagger into his backside! His lungs quickly gave way under the force of the attack as his corpse hit the ground with a dull thud.\n\nIt had been such a fast and violent ambush that the poor fool did not even have the time to scream in pain. Curiously, when I removed the blade from his backside, a foul odor leaked out of the perforated patroller.\n\n' WHERE `entry`=1052; +UPDATE `page_text` SET `text`='Eventually, the night elves were burned by the arcane fires they had sought to control. Their reckless use of magic had lured the demonic Burning Legion to the world. The demons crushed much of the night elves\' civilization. Though there are no records to indicate that the Legion attacked either troll civilization, it is likely that battles took place across the breadth of the continent. ' WHERE `entry`=2200; +UPDATE `page_text` SET `text`='Ultimately, Arthas submerged Kel\'Thuzad\'s remains within the holy waters of the Sunwell. Although the potent waters of Eternity were fouled by this act, Kel\'Thuzad was reborn as a sorcerous lich. Resurrected as a far more powerful being, Kel\'Thuzad explained the next phase of the Lich King\'s plan. ' WHERE `entry`=2070; +UPDATE `page_text` SET `text`='Curgle, \n\nI have been eagerly awaiting your newest invention. I can\'t wait to begin using it to document my studies.\n\nPlease entrust it to my messenger.\n\n\nWith kindest regards,\n\nDaryn Lightwind' WHERE `entry`=1156; +UPDATE `page_text` SET `text`='What I have noticed is that the fallout is extremely lethal. Imagine if Hahaha! ' WHERE `entry`=1152; +UPDATE `page_text` SET `text`='Quotes$B$B\"You want to know about goblin engineering? Try asking one of their best and brightest engineers about it - I think his name is \'Nubby Stumpfingers\'. Want to know why he\'s named that? THAT\'S goblin engineering.\"$B-- Ringo Tragediction, gnome engineer$B$B\"Say what you want about us goblins, but I will tell you this: WE HAVE EXPLOSIVES!\"$B-- Yazz Nitrospork, goblin bombardier' WHERE `entry`=1276; +UPDATE `page_text` SET `text`='For immediate dissemination to all Twilight\'s Hammer members.\n\nThe search for the traitor, Ortell, is progressing at a most satisfactory pace. Our scouts have narrowed his location to a network of caverns in Westfall.\n\nOrtell\'s betrayal shall not be forgiven and his escape presents a great security risk to our organization.\n\nAny individual found to be withholding information on Ortell\'s whereabouts will be duly punished.\n\n-Twilight Lord Everun\n' WHERE `entry`=2810; +UPDATE `page_text` SET `text`='Abyssal Templars\n\nAs an initiate you are permitted to establish contact with Abyssal Templars for routine rituals. Remember to always don the proper garb when utilizing wind stones to avoid activating our defensive enchantments.\n\nShould an unforeseen emergency arise with no overseers present, you are granted permission to summon an Abyssal Templar.\n\nFor details on the summoning rituals involved, refer to last month\'s True Believer.' WHERE `entry`=2813; +UPDATE `page_text` SET `text`='--Day 5--\n\nMy night elf cell mate suffers from grave wounds. The boar men have whipped him repeatedly and I believe he will perish before long unless by some miracle a rescue party braves this treacherous place. He slips in and out of consciousness. When he awakes, I try to give him what little water I have.' WHERE `entry`=430; +UPDATE `page_text` SET `text`='of a trio of the cemetary\'s attendants. As they tried to restrain him, he turned his focus to them, hurling accusations of guilt upon the innocent attendants, then killed them all.\n\nLater, when the rage had passed, realization crept into Morgan\'s mind, and he saw his bloody sword driven into the chests of one of the attendants. Driven to the brink by his emotions, he removed his belt knife and plunged it into his heart.\n\nMorgan Ladimore\'s body and the three bodies of his victims were found' WHERE `entry`=70; +UPDATE `page_text` SET `text`='\n\n\n\n\n\n' WHERE `entry`=1638; +UPDATE `page_text` SET `text`='\n\n\n\n\n' WHERE `entry`=1636; +UPDATE `page_text` SET `text`='Poor Heralath looks pale as bone. His fever grows worse by the minute. All the while the boar men are preparing for some great military action. I fear that if I do not attempt my escape soon, I will meet a fate similar to my elven cell mate. \n\nMy plan is to sneak out when the boar men leave for their next hunt. My guards are lazy and often sleep through their shifts.' WHERE `entry`=434; +UPDATE `page_text` SET `text`='\n\n\n\n\n' WHERE `entry`=1635; +UPDATE `page_text` SET `text`='\n\nThe pages herein contain memories of events that transpired in the collection and creation of the reagents required to craft lesser arcanum.\n\nMay our enemies never gain access to these libram. \n\nMay I live to see the pallid light of the moon shine upon Quel\'Thalas once again.\n\nMay I die but for the grace of Kael\'thas.\n\nMay I kill for the glory of Illidan.\n\n-Master Kariel Winthalus' WHERE `entry`=1631; +UPDATE `page_text` SET `text`='But he was right. We are doomed. The Agamand family line will end. Although I still live, I know I will soon be dead.\n\nI am not afraid, and I do not regret remaining with my family. But my last thoughts will be of you.\n\nLive on, my beloved Yvette, and I will find peace,\n-Thurman' WHERE `entry`=256; +UPDATE `page_text` SET `text`='If we can control which car is in top shape and which car is not, then... I don\'t need to explain to you the advantage in gambling this gives us.\n\nSo, from you, good Fizzlebub, we need that means in which to force the pit crews\' lapse.\n\nDoes Stranglethorn possess some plant or herb or drink we might use to addle the wits of gnomes and goblins?\n\n--K. Koalbeard' WHERE `entry`=446; +UPDATE `page_text` SET `text`='The rocket cars that race the flats are higly tuned and require extreme maintenance. So it\'s no surprise that pit crews are kept on the scene at all times. \n\nThese crews constantly test their cars and make fixes and modifications as needed. It is the only way to keep the cars in a state of top performance.\n\nSo... we\'re looking for a means to force a lapse in one of the pit crews\' dilligence, as any such lapse would cause the crew\'s car to fall quickly into disrepair.' WHERE `entry`=445; +UPDATE `page_text` SET `text`='Mr. Fizzlebub,\n\nThe bearer of this letter and I are devising a business venture that we welcome you to join. \n\nAs you know, I spend much of my time in the Shimmering Flats -- the aforementioned business venture deals with the races on these flats.\n\nIf racing and, more specifically gambling on races, interests you then please read on, for I feel that your knowledge of Stranglethorn would be useful in our scheme.' WHERE `entry`=439; +UPDATE `page_text` SET `text`='Am I going mad? Today I severed the head of one of my most trusted patrollers in order to get a better look at their soul. As I peered down their severed breathing passage, it occurred to me: I had not eaten anything in days!\n' WHERE `entry`=1153; +UPDATE `page_text` SET `text`='Argus, \n\nAs you know, I\'m up to my neck in repair requests from the Army. I can\'t complain about all the work, but it\'s depleting my supply of iron.\n\nI don\'t have enough iron for horseshoes. I know you always keep a large stock--I\'d like to borrow 50 pairs of shoes until I get my next shipment of iron.\n\nYou have my gratitude,\n-Verner' WHERE `entry`=28; +UPDATE `page_text` SET `text`='Heralath and his people seek to discover the source of corruption at this site. Agamaggan was believed to be a pure god, he told me. Why these foul creatures and malignant thorns scar the land is a mystery indeed.\n\nBefore I could press for more information, Heralath slipped into fitful sleep once again...' WHERE `entry`=432; +UPDATE `page_text` SET `text`='It would appear that whatever it is that Klaven has locked away in the chest is having adverse effects upon the inhabitants of the tower. I suspect that the other guards may have similar weaknesses and perhaps, even Klaven himself has fallen victim to the fallout. \n\nAgent Amber Kearnen\nSI:7 Ground Level Operative, R8' WHERE `entry`=1053; +UPDATE `page_text` SET `text`='Lordaeron. Morgan was called to the side of the legendary paladin Uther the Lightbringer to fight against the orcs and the undead. Leaving his wife and children in the safety of his home, Morgan left for war.\n\nThe years passed and the war dragged on, and Morgan would witness many horrific events, including the disbanding of the Paladins of the Silver Hand, the death of Uther and the spread of the plague. The only thing that kept him from the brink of madness was the knowledge that he would' WHERE `entry`=65; +UPDATE `page_text` SET `text`='The Venture Company It would seem that the fools nearly wiped out their entire operation in trying to stabilize the mixture.\n\n\n\n' WHERE `entry`=1151; +UPDATE `page_text` SET `text`='When word reached me that you were ready, I sent this sigil immediately. All of Cenarius\' druids take great satisfaction in seeing our numbers bolster. The spirits even seem to have become stronger with our enhanced presence. In time, and with some patience, hopefuly our strength will return to its former grandeur. Find me near the top of Aldrassil when you are ready. I will be your guide as long as you are in Shadowglen.$B$B- Mardant Strongoak, Druid Trainer' WHERE `entry`=2459; +UPDATE `page_text` SET `text`='his worst fear:\n\nLys Ladimore\nBeloved Wife and Mother\n\nMorgan\'s apprehension turned to dismay and then to grief, and he fell to his knees weeping. For hours he stared at that one grave, begging the cold stone for forgiveness and sobbing apologies. Then, hours later, something in him snapped, and he began to lash out. He brought his sword out of its scabbard and began to rain blows on the gravestones, screaming in rage. Blind in his fury, he lashed out and swung wildly, catching the notice' WHERE `entry`=69; +UPDATE `page_text` SET `text`='someday be reunited with his wife and children.\n\nMorgan would eventually return to his homeland, but find it nothing like how he remembered it. The once verdant forest was corrupted and teemed with the undead and other dark forces. Destroyed houses and farms could be found everywhere, and the cemetary near Raven\'s Hill now dominated much of the area. A shocked and bewildered Morgan eventually made his way to his home, only to find it in ruins. Not knowing what had befallen his homeland, he' WHERE `entry`=66; +UPDATE `page_text` SET `text`='The High Council of Abyssal Lords\n\nOnly Twilight Lords are permitted to contact Prince Skaldrenox, High Marshal Whirlaxis, Baron Kazum or Lord Skwol. \n\nUnder no circumstances are any low ranking members of the Twilight\'s Hammer allowed to initiate communication with the High Council. Any outsiders found using a wind stone in this manner will be reduced to ashes on the spot.\n' WHERE `entry`=2815; +UPDATE `page_text` SET `text`='Abyssal Dukes\n\nOnly acolytes in possession of a medallion of station are permitted to establish contact with the Abyssal Dukes. Medallions of station are only to be used by the individuals to whom they were originally issued.\n\nMembers of the Twilight\'s Hammer involved in unapproved communication with Abyssal Dukes or unauthorized use of medallions of station will be disciplined with by myself personally.\n' WHERE `entry`=2814; +UPDATE `page_text` SET `text`='With the insectoids driven into exile, the twin troll empires returned to business as usual. Despite their great victory, neither civilization expanded much farther than their original boundaries. However, ancient texts speak of a small faction of trolls that broke off from the Amani Empire and founded their own colony in the heart of the dark continent. ' WHERE `entry`=2196; +UPDATE `page_text` SET `text`='Tyrande, who had become the High Priestess of Elune, asked her love, Malfurion, not to leave her for Ysera\'s Emerald Dream. But Malfurion, honor bound to enter the changing Dreamways, bid the priestess farewell and swore that they would never be apart so long as they held true to their love. ' WHERE `entry`=1850; +UPDATE `page_text` SET `text`='The trolls fought them for many thousands of years, but never succeeded in winning a true victory over the aqir. Eventually, due to the troll\'s persistence, the aqiri kingdom split in half as its citizens fled to separate colonies in the far northern and southern regions of the continent. ' WHERE `entry`=2194; +UPDATE `page_text` SET `text`='The Gurubashi and Amani empires had little love for one another, but rarely warred against each other. At the time, their greatest common enemy was a third empire -- the civilization of Azj\'Aqir. The aqir were intelligent insectoids who ruled the lands of the far west. These clever insectoids were greatly expansionistic and incredibly evil. The aqir were obsessed with eradicating all non-insect life from the fields of Kalimdor. ' WHERE `entry`=2193; +UPDATE `page_text` SET `text`='The terrible war that ensued between Hakkar\'s followers and the rest of the Gurubashi tribes is spoken of only in whispers. The budding empire was shattered by the magic unleashed between the angry god and his rebel children. Just as the battle seemed most hopeless, the trolls succeeded in destroying Hakkar\'s avatar and banishing him from the world. ' WHERE `entry`=2206; +UPDATE `page_text` SET `text`='--Day 4--\n\nCaptured!\n\nMust... write... quickly. \n\nAttacked by boar men of the Razorfen tribe. Believed they were taking me to the great boar remains of the fallen god. Instead, they skirted the great fossils and headed directly west of the giant skull, across the Gold Road.' WHERE `entry`=428; +UPDATE `page_text` SET `text`='Thus, great chunks of both the Amani and Gurubashi Empires still exist in the present day lands of Quel\'Thalas and Stranglethorn (respectively). The Azj\'Aqir kingdoms of Azjol-Nerub and Ahn\'Qiraj have also survived in present day Northrend and Tanaris (respectively). \n\nBoth troll civilizations recoiled from the vast destruction of the primordial world they had known. The dauntless trolls rebuilt their ravaged cities and set about to reclaim some of their former power.' WHERE `entry`=2202; +UPDATE `page_text` SET `text`='--Day 6--\n\nHeralath\'s condition worsens.\n\nHis eyes opened only once today. He spoke with pained anguish but his message was clear. If I were to escape my doom here in Razorfen Kraul, word must be gotten to Falfindel Waywarder in Thalanaar that Charlga Razorflank was rousing minions in the southern Barrens. The power grows with each day. The Crone must be stopped before the plague of corruption can spread from the Kraul.' WHERE `entry`=433; +UPDATE `page_text` SET `text`='Your Honor--\n\nAll of Westfall mourns for your loss, but we are plagued with our own war in Westfall. The farmers have been run off by thieves and mechanical golems. Stormwind withdrew its troops, leaving the people defenseless. I mustered the People\'s Militia in the wake of Stormwind\'s abandonment to save what remains of this land. To take the Militia to Redridge would mean certain doom for Westfall.\n\nMy regrets,\nGryan Stoutmantle' WHERE `entry`=50; +UPDATE `page_text` SET `text`='I miss my tribe, and my home. I would gladly welcome the wind on the open plains or the sunset over Thunder Bluff to the heat of this jungle.\n\nI can see the ocean water not far from me, but it does nothing to cool my body or my temper. It only reminds me of my imprisonment.' WHERE `entry`=310; +UPDATE `page_text` SET `text`='the next day. He was quickly buried, without ceremony, in a hastily dug grave on the outskirts of the cemetary. Because Morgan committed murder against innocents, something that went completely against his beliefs and his nature, and because of the grief that he held in being unable to save his family, Morgan could not die a peaceful death, and lived on as one of the restless dead.\n\nOnly days later, his grave was disturbed, and his body could not be found. The being that was Morgan now' WHERE `entry`=71; +UPDATE `page_text` SET `text`='headed towards the village to find answers, and, he hoped, his wife and children.\n\nMorgan inquired about his family, but could not find any answers. A priest in Darkshire, as it was now called, said that he might search the cemetary at Raven Hill for a gravestone. Morgan refused to believe that his family was dead, and continued to search every farm and house in Duskwood, but to no avail.\n\nMorgan rode from Darkshire to nearby Lakeshire, thinking that perhaps his family had fled. On his way' WHERE `entry`=67; +UPDATE `page_text` SET `text`='Morgan Ladimore was a great and noble knight who fought in defense of the innocent, the poor, and the afflicted. For many years, he worked diligently throughout the outlying areas of Azeroth, bringing relief to the suffering and swift justice to evildoers.\n\nHe was married to a young girl named Lys in the summer of his eighteenth year. They were much in love with each other and would eventually produce three children, a son and two daughters.\n\nMorgan was thirty-two when war broke out in' WHERE `entry`=64; +UPDATE `page_text` SET `text`='Left alone to protect Kalimdor from the dangers of the new world, Tyrande assembled a powerful fighting force from amongst her night elf sisters. The fearless, highly trained warrior women who pledged themselves to Kalimdor\'s defense became known as the Sentinels. Though they preferred to patrol the shadowy forests of Ashenvale on their own, they had many allies upon which they could call in times of urgency. ' WHERE `entry`=1851; +UPDATE `page_text` SET `text`='With the departure of their wayward cousins, the night elves turned their attention back to the safekeeping of their enchanted homeland. The druids, sensing that their time of hibernation was drawing near, prepared to sleep and leave their loved ones and families behind. ' WHERE `entry`=1849; +UPDATE `page_text` SET `text`='Once free from the Kraul, I will head towards Thousand Needles and then west to Thalanaar on the border of the mysterious forest of Feralas. There I will seek the druid known as Falfindel Waywarder.\n\nWhat began as an attempt to explore the past of my people has turned into something much larger. The protection of the Alliance lies in my hands....' WHERE `entry`=435; +UPDATE `page_text` SET `text`='Last night he was able to speak for the first time. He is a druid, called Heralath, sent to these parts to examine the rumors of the fallen boar god. \n\nIn a weakened voice he told me that he believed the great boar skull to be the place where the great boar god Agamaggan fell battling the Burning Legion some 10,000 years ago during the War of the Ancients. His massive body flattened the land and his blood sank into the earth. Twisted spires of thorns grow where his blood fell...' WHERE `entry`=431; +UPDATE `page_text` SET `text`='Roughly dragged inside of a foul-smelling, thorn infested bramble called Razorfen Kraul. Thrown inside a crudely crafted hut and held captive along with a dying night elf.\n\nNo possessions on me save for this journal, my quill and my pocket watch... \n\nSomeone coming now...' WHERE `entry`=429; +UPDATE `page_text` SET `text`='--Day Three--\n\nOh great and splendid discovery!\n\nWhilst exploring today I came across a grand find: massive remains of what seems to have been a boar-like creature. Its skull towered many lengths above me. Each tooth of the beast could dwarf even... well a dwarf. Due to the sheer size of the find, I am lead to believe these are the remains of one of the rumored Old Gods.' WHERE `entry`=426; +UPDATE `page_text` SET `text`='--Day Two--\n\nThe lands of the Barrens are vast and expansive. My trek has been long and arduous and has yielded nothing of interest for the Explorers\' League archives so far. \n\nThe only incident of note took place near the gold road. Off in the distance I noticed some strange creatures. Half pig, half man it seemed. I quickly hid and let the foul beasts pass. My what a foul stench they left behind!' WHERE `entry`=425; +UPDATE `page_text` SET `text`='Their ambush was brutal. They slew a third of us before we could take them down. Now, we barely have enough men to watch our borders. It is only a matter of time before our wearying guard drops and the Scourge attack.\n\nAnd although I saw Devlin\'s face amidst the desperate men and gaunt-faced Scourge on that cursed night, he slipped away before I could catch him. He might be dead, or he might still live as an agent of the Scourge.\n\nEither way, he is a monster.' WHERE `entry`=254; +UPDATE `page_text` SET `text`='I fear my father made a grave error when he decided to remain and defend our home. The forces of the Scourge rage through Tirisfal Glades, and although we are well fortified and well stocked, after the betrayal of my brother Devlin we lack the strength and numbers to withstand their continued assault.\n\nIf you receive this letter, Yvette, then know that Devlin is a traitor.' WHERE `entry`=252; +UPDATE `page_text` SET `text`='Dearest Yvette,\n\nI will entrust this letter to our fastest runner. I pray he can find a way through the forces surrounding us. And I pray you read these words, for they are the last you will hear of me.\n\nMy only comfort in these dark days is the relief I feel, knowing that you are free of my fate.' WHERE `entry`=214; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From a54ec377487844363ec1123e2231e68232e00ff2 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 11 Nov 2023 03:38:09 +0200 Subject: [PATCH 285/426] Small corrections to npc texts. --- sql/migrations/20231111013543_world.sql | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 sql/migrations/20231111013543_world.sql diff --git a/sql/migrations/20231111013543_world.sql b/sql/migrations/20231111013543_world.sql new file mode 100644 index 00000000000..d439e4ef555 --- /dev/null +++ b/sql/migrations/20231111013543_world.sql @@ -0,0 +1,32 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231111013543'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231111013543'); +-- Add your query below. + + +-- Corrections to existing npc texts. Only changing probability from 0 to 1. +REPLACE INTO `npc_text` (`ID`, `Probability0`, `Probability1`, `Probability2`, `Probability3`, `Probability4`, `Probability5`, `Probability6`, `Probability7`, `BroadcastTextID0`, `BroadcastTextID1`, `BroadcastTextID2`, `BroadcastTextID3`, `BroadcastTextID4`, `BroadcastTextID5`, `BroadcastTextID6`, `BroadcastTextID7`) VALUES (2873, 1, 0, 0, 0, 0, 0, 0, 0, 5254, 0, 0, 0, 0, 0, 0, 0); +REPLACE INTO `npc_text` (`ID`, `Probability0`, `Probability1`, `Probability2`, `Probability3`, `Probability4`, `Probability5`, `Probability6`, `Probability7`, `BroadcastTextID0`, `BroadcastTextID1`, `BroadcastTextID2`, `BroadcastTextID3`, `BroadcastTextID4`, `BroadcastTextID5`, `BroadcastTextID6`, `BroadcastTextID7`) VALUES (3495, 1, 0, 0, 0, 0, 0, 0, 0, 5831, 0, 0, 0, 0, 0, 0, 0); +REPLACE INTO `npc_text` (`ID`, `Probability0`, `Probability1`, `Probability2`, `Probability3`, `Probability4`, `Probability5`, `Probability6`, `Probability7`, `BroadcastTextID0`, `BroadcastTextID1`, `BroadcastTextID2`, `BroadcastTextID3`, `BroadcastTextID4`, `BroadcastTextID5`, `BroadcastTextID6`, `BroadcastTextID7`) VALUES (3525, 1, 0, 0, 0, 0, 0, 0, 0, 5858, 0, 0, 0, 0, 0, 0, 0); +REPLACE INTO `npc_text` (`ID`, `Probability0`, `Probability1`, `Probability2`, `Probability3`, `Probability4`, `Probability5`, `Probability6`, `Probability7`, `BroadcastTextID0`, `BroadcastTextID1`, `BroadcastTextID2`, `BroadcastTextID3`, `BroadcastTextID4`, `BroadcastTextID5`, `BroadcastTextID6`, `BroadcastTextID7`) VALUES (5218, 1, 0, 0, 0, 0, 0, 0, 0, 7907, 0, 0, 0, 0, 0, 0, 0); +REPLACE INTO `npc_text` (`ID`, `Probability0`, `Probability1`, `Probability2`, `Probability3`, `Probability4`, `Probability5`, `Probability6`, `Probability7`, `BroadcastTextID0`, `BroadcastTextID1`, `BroadcastTextID2`, `BroadcastTextID3`, `BroadcastTextID4`, `BroadcastTextID5`, `BroadcastTextID6`, `BroadcastTextID7`) VALUES (5822, 1, 0, 0, 0, 0, 0, 0, 0, 8392, 0, 0, 0, 0, 0, 0, 0); +REPLACE INTO `npc_text` (`ID`, `Probability0`, `Probability1`, `Probability2`, `Probability3`, `Probability4`, `Probability5`, `Probability6`, `Probability7`, `BroadcastTextID0`, `BroadcastTextID1`, `BroadcastTextID2`, `BroadcastTextID3`, `BroadcastTextID4`, `BroadcastTextID5`, `BroadcastTextID6`, `BroadcastTextID7`) VALUES (7182, 1, 0, 0, 0, 0, 0, 0, 0, 9880, 0, 0, 0, 0, 0, 0, 0); +REPLACE INTO `npc_text` (`ID`, `Probability0`, `Probability1`, `Probability2`, `Probability3`, `Probability4`, `Probability5`, `Probability6`, `Probability7`, `BroadcastTextID0`, `BroadcastTextID1`, `BroadcastTextID2`, `BroadcastTextID3`, `BroadcastTextID4`, `BroadcastTextID5`, `BroadcastTextID6`, `BroadcastTextID7`) VALUES (8555, 1, 0, 0, 0, 0, 0, 0, 0, 12403, 0, 0, 0, 0, 0, 0, 0); + +-- Add missing npc texts. +INSERT INTO `npc_text` (`ID`, `Probability0`, `Probability1`, `Probability2`, `Probability3`, `Probability4`, `Probability5`, `Probability6`, `Probability7`, `BroadcastTextID0`, `BroadcastTextID1`, `BroadcastTextID2`, `BroadcastTextID3`, `BroadcastTextID4`, `BroadcastTextID5`, `BroadcastTextID6`, `BroadcastTextID7`) VALUES (7791, 1, 0, 0, 0, 0, 0, 0, 0, 10771, 0, 0, 0, 0, 0, 0, 0); +INSERT INTO `npc_text` (`ID`, `Probability0`, `Probability1`, `Probability2`, `Probability3`, `Probability4`, `Probability5`, `Probability6`, `Probability7`, `BroadcastTextID0`, `BroadcastTextID1`, `BroadcastTextID2`, `BroadcastTextID3`, `BroadcastTextID4`, `BroadcastTextID5`, `BroadcastTextID6`, `BroadcastTextID7`) VALUES (8054, 1, 0, 0, 0, 0, 0, 0, 0, 11262, 0, 0, 0, 0, 0, 0, 0); +INSERT INTO `npc_text` (`ID`, `Probability0`, `Probability1`, `Probability2`, `Probability3`, `Probability4`, `Probability5`, `Probability6`, `Probability7`, `BroadcastTextID0`, `BroadcastTextID1`, `BroadcastTextID2`, `BroadcastTextID3`, `BroadcastTextID4`, `BroadcastTextID5`, `BroadcastTextID6`, `BroadcastTextID7`) VALUES (8083, 1, 0, 0, 0, 0, 0, 0, 0, 11362, 0, 0, 0, 0, 0, 0, 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 5f355224e61c2788296eddf998e24bb67d7fddf6 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 11 Nov 2023 04:03:04 +0200 Subject: [PATCH 286/426] Correct quest emotes and texts. --- sql/migrations/20231111015434_world.sql | 394 ++++++++++++++++++++++++ 1 file changed, 394 insertions(+) create mode 100644 sql/migrations/20231111015434_world.sql diff --git a/sql/migrations/20231111015434_world.sql b/sql/migrations/20231111015434_world.sql new file mode 100644 index 00000000000..910ed416255 --- /dev/null +++ b/sql/migrations/20231111015434_world.sql @@ -0,0 +1,394 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231111015434'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231111015434'); +-- Add your query below. + + +-- Correct quest details. +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=29; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=272; +UPDATE `quest_template` SET `DetailsEmote1`=0, `DetailsEmote2`=0 WHERE `entry`=542; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=1103; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=1190; +UPDATE `quest_template` SET `DetailsEmote1`=0, `DetailsEmote2`=0 WHERE `entry`=1715; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1, `DetailsEmote3`=1 WHERE `entry`=1858; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1, `DetailsEmote3`=1 WHERE `entry`=1859; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=1960; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=5, `DetailsEmote3`=1 WHERE `entry`=1963; +UPDATE `quest_template` SET `DetailsEmote2`=0, `DetailsEmote3`=0 WHERE `entry`=2821; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=18, `DetailsEmoteDelay2`=200 WHERE `entry`=2844; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=0 WHERE `entry`=2845; +UPDATE `quest_template` SET `DetailsEmote2`=0, `DetailsEmote3`=0 WHERE `entry`=2869; +UPDATE `quest_template` SET `DetailsEmote2`=0, `DetailsEmote3`=0 WHERE `entry`=2870; +UPDATE `quest_template` SET `DetailsEmote2`=0 WHERE `entry`=2871; +UPDATE `quest_template` SET `DetailsEmote2`=0 WHERE `entry`=2941; +UPDATE `quest_template` SET `DetailsEmote2`=0 WHERE `entry`=2944; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=2969; +UPDATE `quest_template` SET `DetailsEmote3`=1 WHERE `entry`=2970; +UPDATE `quest_template` SET `DetailsEmote2`=0 WHERE `entry`=2982; +UPDATE `quest_template` SET `DetailsEmote2`=1 WHERE `entry`=3085; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=3096; +UPDATE `quest_template` SET `DetailsEmote1`=0, `DetailsEmote2`=0, `DetailsEmote3`=0 WHERE `entry`=3130; +UPDATE `quest_template` SET `DetailsEmote2`=0 WHERE `entry`=3633; +UPDATE `quest_template` SET `DetailsEmote2`=0, `DetailsEmote3`=0 WHERE `entry`=3639; +UPDATE `quest_template` SET `DetailsEmote1`=4, `DetailsEmote3`=1 WHERE `entry`=3841; +UPDATE `quest_template` SET `DetailsEmote3`=0 WHERE `entry`=3842; +UPDATE `quest_template` SET `DetailsEmote3`=1 WHERE `entry`=3843; +UPDATE `quest_template` SET `DetailsEmote1`=6, `DetailsEmote2`=1, `DetailsEmote3`=1 WHERE `entry`=4023; +UPDATE `quest_template` SET `DetailsEmote1`=6, `DetailsEmote2`=1, `DetailsEmote3`=5 WHERE `entry`=4121; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1, `DetailsEmote3`=1 WHERE `entry`=4122; +UPDATE `quest_template` SET `DetailsEmote2`=0, `DetailsEmote3`=0 WHERE `entry`=4125; +UPDATE `quest_template` SET `DetailsEmote2`=0 WHERE `entry`=4129; +UPDATE `quest_template` SET `DetailsEmote1`=64, `DetailsEmote2`=30, `DetailsEmoteDelay2`=2000 WHERE `entry`=4130; +UPDATE `quest_template` SET `DetailsEmote2`=0, `DetailsEmote3`=0 WHERE `entry`=4131; +UPDATE `quest_template` SET `DetailsEmote2`=0 WHERE `entry`=4266; +UPDATE `quest_template` SET `DetailsEmote1`=0, `DetailsEmote2`=0, `DetailsEmote3`=0 WHERE `entry`=4267; +UPDATE `quest_template` SET `DetailsEmote3`=0 WHERE `entry`=4297; +UPDATE `quest_template` SET `DetailsEmote1`=5, `DetailsEmote2`=1 WHERE `entry`=4298; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1, `DetailsEmote3`=11, `DetailsEmote4`=1 WHERE `entry`=4487; +UPDATE `quest_template` SET `DetailsEmote3`=1 WHERE `entry`=4965; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=5061; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=66, `DetailsEmote3`=1 WHERE `entry`=5513; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=5921; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=5923; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=5925; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=5929; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=5931; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=6001; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=6069; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=6123; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=6124; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=6125; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1, `DetailsEmote3`=5 WHERE `entry`=6625; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1 WHERE `entry`=6628; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1 WHERE `entry`=8062; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1 WHERE `entry`=8066; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1 WHERE `entry`=8067; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1 WHERE `entry`=8153; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=8321; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=8420; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=8692; +UPDATE `quest_template` SET `DetailsEmote1`=1 WHERE `entry`=8696; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=5, `DetailsEmoteDelay1`=0 WHERE `entry`=8861; +UPDATE `quest_template` SET `DetailsEmote1`=0, `DetailsEmote2`=0 WHERE `entry`=9051; +UPDATE `quest_template` SET `DetailsEmote1`=0, `DetailsEmote2`=0 WHERE `entry`=9052; +UPDATE `quest_template` SET `DetailsEmote1`=0, `DetailsEmote2`=0 WHERE `entry`=9053; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1, `DetailsEmote3`=1 WHERE `entry`=9055; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1, `DetailsEmote3`=1 WHERE `entry`=9059; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1, `DetailsEmote3`=1 WHERE `entry`=9060; +UPDATE `quest_template` SET `DetailsEmote1`=0 WHERE `entry`=9063; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1, `DetailsEmote3`=1, `DetailsEmote4`=1 WHERE `entry`=9208; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1, `DetailsEmote3`=1, `DetailsEmote4`=1 WHERE `entry`=9209; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1, `DetailsEmote3`=1, `DetailsEmote4`=1 WHERE `entry`=9210; +UPDATE `quest_template` SET `DetailsEmote1`=1, `DetailsEmote2`=1, `DetailsEmote3`=1 WHERE `entry`=9237; +-- Correct quest offer reward. +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='Salutations, young druid; the time has come for you to know our aquatic form. It is one that lets you move freely and indefinitely through water. You will find this aspect a useful tool and a blessing... but it is one that must be earned before it is mastered.$B$BYou will face two trials to overcome. The first will test your ability to work in water under pressure. The second will test your resolve to understand the aspects of the form itself.$B$BStand ready, as the time of testing is now upon us.' WHERE `entry`=26; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='Well now, it looks like yet another druid has successfully completed the Trial of the Lake! Well done, my young friend - well done.$B$BAs I\'ve said, my name is Tajarri. It is my duty and my privilege to serve as a warden for Moonglade, and specifically this shrine. Keeper Remulos guides the Cenarion Circle in preservation of nature and balance, and his shrine serves as a lasting tribute to such. By using the bauble here, it serves as a nod to the importance of this place within the Circle.' WHERE `entry`=29; +UPDATE `quest_template` SET `OfferRewardEmote1`=4, `OfferRewardEmote2`=1, `OfferRewardEmote3`=1 WHERE `entry`=96; +UPDATE `quest_template` SET `OfferRewardText`='Thank you, $N. I\'ll send these to be destroyed immediately.' WHERE `entry`=115; +UPDATE `quest_template` SET `OfferRewardText`='Again, thank you for your help. The Stormwind army is so busy dealing with the orcs, they don\'t have the troops to protect Redridge from local threats like the gnolls.' WHERE `entry`=126; +UPDATE `quest_template` SET `OfferRewardText`='I see you have fought valiantly against the Blackrock Clan, $C. Your service to our township is great indeed.' WHERE `entry`=128; +UPDATE `quest_template` SET `OfferRewardText`='Thank you for collecting these, $N. Your efforts will help bring peace to the dead in the wake of this tragedy. I will see to it that the families are notified.' WHERE `entry`=168; +UPDATE `quest_template` SET `OfferRewardText`='Fantastic work, $N! Gath\'Ilzogg led those brutes into battle, killing many innocent humans. Vindication is ours. This is the first step in reclaiming the keep for the kingdom of Stormwind!' WHERE `entry`=169; +UPDATE `quest_template` SET `OfferRewardText`='This is perfect, $N. The first step is complete!' WHERE `entry`=174; +UPDATE `quest_template` SET `OfferRewardText`='Most superb! This will work perfectly. Many thanks!' WHERE `entry`=177; +UPDATE `quest_template` SET `OfferRewardText`='At last! The stargazing device is complete! Thank you, $N. Now I can continue my research. . .' WHERE `entry`=181; +UPDATE `quest_template` SET `OfferRewardEmote1`=1 WHERE `entry`=205; +UPDATE `quest_template` SET `OfferRewardText`='Aha! You\'ve done it! You are a great force for good, $N, and may your strength never fade!$B$BI will study this Mind\'s Eye and determine if it may be used for good. If not...then it must be destroyed.' WHERE `entry`=206; +UPDATE `quest_template` SET `OfferRewardEmote1`=4, `OfferRewardEmote2`=1, `OfferRewardText`='You\'ve done it! Araj... the lich is finally defeated!$B$BYou\'ve done a tremendous service to the Alliance on this day, $N. Your bravery and perseverance are a testament to what it means to be a true hero. Please - accept this as a token for all to see and know that you have delivered the Alliance a victory for the ages!' WHERE `entry`=211; +UPDATE `quest_template` SET `OfferRewardEmote1`=0, `OfferRewardEmote2`=0, `OfferRewardEmote3`=0, `OfferRewardText`='You have done well, $N. In defeating the warlock Morganth, Stormwind is saved from a grave peril.$B$BI offer you this reward most humbly. And I would bid you peace, if these were peaceful times.$B$BBut instead, I will bid you luck with your trials, and victory in the conflicts ahead.' WHERE `entry`=249; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='You\'ve completed the Trial of the Sea Lion, $N - congratulations.$B$BEach task in acquiring the pendant shows that both agility and endurance are necessary to act in harmony with what you desire to do underwater. Neither can exist without the other, and both cannot be done without your willingness to embrace the aspect of the sea lion.$B$BRemember these lessons well, and count on them once you have gained your aquatic form.' WHERE `entry`=272; +UPDATE `quest_template` SET `OfferRewardEmote1`=0, `OfferRewardText`='Ah, so you\'ve seen Renato? Well here you are, $gsir:ma\'am;. A bottle of our special pinot noir. You\'ll not find its equal in all of Azeroth!' WHERE `entry`=332; +UPDATE `quest_template` SET `OfferRewardText`='Oh, blast! I thought forgetting my kit would free me from work. Now I guess I\'ll have to help the Larsons with their sewing...$B$BOh, well. Fun will come later I guess.' WHERE `entry`=334; +UPDATE `quest_template` SET `OfferRewardText`='So Kam Deepfury finally got to feel what it is like to be on the receiving end of Death? Good. Serves the cowardly Dark Iron scum right. You have done well, $c. The victims of the Thandol Span attack were but mere victims in a world torn with war and unrest. Their families will have the peace of knowing Deepfury got the punishment he deserved. Longbraid\'s brother\'s death has been avenged.' WHERE `entry`=378; +UPDATE `quest_template` SET `OfferRewardText`='Thank you, $N. My head rests a little easier, knowing that villain lost his.' WHERE `entry`=523; +UPDATE `quest_template` SET `OfferRewardEmote1`=0, `OfferRewardText`='Oh, you got them! Splendid! I must begin studying the Arm of Gri\'lek immediately!' WHERE `entry`=540; +UPDATE `quest_template` SET `OfferRewardEmote1`=0, `OfferRewardEmote2`=0, `OfferRewardEmote3`=0, `OfferRewardText`='My oh my! Look at these! I can\'t believe they survived the ruination of Alterac. And all those ogres too!$B$BThank you, $N. Thank you so much! You have helped preserve human knowledge, and you add to the grandeur of the Royal Library of Stormwind.' WHERE `entry`=542; +UPDATE `quest_template` SET `OfferRewardText`='You retrieved the eye! Your might is the stuff of legends, $N!$B$BAnd in getting the Eye, you must have defeated Mai\'Zoth and sent him to the Nether. That is why the spirits would not mention him before.$B$BIt is good that he is gone from the world of flesh and bone, but now that he is in the realm of spirits...I fear he will begin a new reign.$B$BBut that is a worry for another time. Now, I must perform a ritual to bend the Mind\'s Eye to our needs...' WHERE `entry`=591; +UPDATE `quest_template` SET `OfferRewardText`='You\'ve done it! You freed Yenniku from the will of Zanzil, and completed the mission I had thought was so desperate.$B$BOur tribe will remember your name in songs, $N, and we will etch your tale in stone so that it will live forever.' WHERE `entry`=592; +UPDATE `quest_template` SET `OfferRewardText`='You place the Soul Gem upon his forehead. He shudders as his soul is sucked in, leaving his body, a mindless husk, behind.' WHERE `entry`=593; +UPDATE `quest_template` SET `OfferRewardText`='What?! I got a lot better things to do then talk to the likes of you, $c. Make it worth my while or get outta my face.$B$BHuh? Bloads sent ya, huh? Well, whaddaya got for me?$B$B$B$BNot bad, not bad at all. Another bundle will make my client quite happy.$B$BI suppose yer next question\'s gonna be about money, huh, $c? Of course it is!$B$BHere, take this coin and some advice: get off my docks.' WHERE `entry`=623; +UPDATE `quest_template` SET `OfferRewardText`='Quite a day this is, $c. The blood of Trollbane will no longer haunt my people, and the sigils needed to take Trol\'kalar are in our possession. Soon, very soon, we will strike against the hated trolls of Zul\'Gurub.' WHERE `entry`=644; +UPDATE `quest_template` SET `OfferRewardText`='For generations, the forces of Strom and Arathor ravaged the trolls. Now their greatest weapon is in our hands. Our inching progress in the steamy forests of Zul\'Gurub will be no more.$b$bYour assistance has been great, $n, and the Darkspear trolls are indebted to you.$b$bI will be sure that the sword is delivered to Nimboya at Grom\'gol.' WHERE `entry`=646; +UPDATE `quest_template` SET `OfferRewardText`='These will work great! I just need to smash them into powder...then mix them with a little of this and a little of that.$B$BWatch out, scavengers! Prepare to be flashed!' WHERE `entry`=705; +UPDATE `quest_template` SET `OfferRewardText`='Good tidings you bring bearing the Sign, $n. The Sign of the Earth was created by the Dark Iron dwarves of Angor Fortress to bind two of Deathwing\'s ruthless lieutenants, the twins Blacklash and Hematus.' WHERE `entry`=732; +UPDATE `quest_template` SET `OfferRewardEmote1`=1 WHERE `entry`=972; +UPDATE `quest_template` SET `OfferRewardEmote1`=6, `OfferRewardEmote2`=1, `OfferRewardEmote3`=274, `OfferRewardText`='What makes you think I wish to be pestered by the likes of you, $c? Wait - let me stop the important duties I attend to on a daily basis so I can help you locate a doodad somewhere. By all means, the welfare of Darnassus - nay, all of Teldrassil - should come second to the acquisition of a bauble for your collection.$B$BThe fools in Moonglade waste my time with their call for assistance, and now I must endure this?' WHERE `entry`=1015; +UPDATE `quest_template` SET `OfferRewardEmote1`=6, `OfferRewardEmote2`=5, `OfferRewardEmoteDelay2`=1000, `OfferRewardText`='A note from Zamah? Her needs must be great to send word from so far. Let us see what she says...$B$BAh, splendid! I know exactly what to do!' WHERE `entry`=1065; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=1, `OfferRewardText`='Ahhh, den yur ready...$B$BI\'ll put me items in the brazier den, and you c\'n talk wit\' da spirit too.$B$BAn\' dontchu worry none \'bout seein\' into da spirit world wit\' da sapta... ol\' Tiev know a trick or two \'bout how da sapta magic works.$B$BCome now, head down wit\' me to the shrine and let\'s speak to da spirits together, $g brotha:sista;.' WHERE `entry`=1103; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=11, `OfferRewardEmoteDelay2`=2000, `OfferRewardText`='Ah, most of these are nearly bursting with venom, $N. Such are normally only gathered from young wyverns, or fertile females. It must have been quite a slaughter up there in Highperch!' WHERE `entry`=1135; +UPDATE `quest_template` SET `OfferRewardEmote1`=6, `OfferRewardEmote2`=5, `OfferRewardText`='$N, you\'re back! You found Martek? You spoke with him? What did he say? Can he help??$B$BTell me, tell me, tell me!!' WHERE `entry`=1137; +UPDATE `quest_template` SET `OfferRewardText`='Grenka was powerful, even by $r standards. You should be proud of your accomplishment this day.$B$BDuring your test of faith you displayed strength of spirit, and now you have shown endurance in battle by taking on the Roguefeather harpies, but the time has come for a new test.' WHERE `entry`=1150; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=1, `OfferRewardEmote3`=1, `OfferRewardText`='This is the book I sent you to search for.$B$B$B$BSo now you wish a question to prove your mind is as powerful as your body and spirit. If you have studied the book long enough, then I shall ask you your question and you can be done with these tests!' WHERE `entry`=1160; +UPDATE `quest_template` SET `OfferRewardEmote1`=1 WHERE `entry`=1191; +UPDATE `quest_template` SET `OfferRewardEmote1`=6, `OfferRewardEmote2`=1, `OfferRewardEmote3`=1, `OfferRewardText`='Indurium? Interesting... If it is capable of resisting heat to the degree that you say, it would explain the performance increase the gnomes have displayed of late.$b$bThis sample you\'ve brought to me will be invaluable, also. I will be able to perform some tests on this, but I\'ll need more for this to actually be of any use to us.' WHERE `entry`=1194; +UPDATE `quest_template` SET `OfferRewardEmote1`=36, `OfferRewardText`='He is dead! Khan Hratha is dead! And now the Maraudine will fall! When the Gelkis rule this land, $N, we will remember you. And the spirits of the earth will sing your name for all time.' WHERE `entry`=1380; +UPDATE `quest_template` SET `OfferRewardText`='What do you want, $g laddy:missy;? Can\'t you see I\'ve got problems to take care of here? Who has time to stand around yapping with some $r chatterbox?$b$bThere are trolls coming out of the woodwork! Make it snappy.' WHERE `entry`=1449; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='Andromath sent you? Very good. I have an important task for you...' WHERE `entry`=1477; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='So you\'re an engineer, eh? Well, for your help in getting me those pearls, here\'s the recipe for flash bombs.$B$BGood luck, and try not to blind yourself!' WHERE `entry`=1559; +UPDATE `quest_template` SET `OfferRewardEmote1`=0, `OfferRewardEmote2`=0 WHERE `entry`=1715; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=1, `OfferRewardText`='Hmmm, now this is interesting. You\'ve more than proved your worth with this, $N. I am quite impressed. Consider yourself the newest member of the Shattered Hand. And take this, it will be a great help to you in the future, I think.' WHERE `entry`=1858; +UPDATE `quest_template` SET `OfferRewardEmote1`=1 WHERE `entry`=1859; +UPDATE `quest_template` SET `OfferRewardEmote1`=1 WHERE `entry`=1961; +UPDATE `quest_template` SET `OfferRewardEmote1`=2 WHERE `entry`=1962; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=1 WHERE `entry`=1963; +UPDATE `quest_template` SET `OfferRewardEmoteDelay2`=800, `OfferRewardText`='I am astonished... Astonished that Keryn finally found a recruit that could possibly have the makings of a proper rogue. Take this blade, $N. A day will come when you will be called upon again to serve the SI:7. Hone your skills, keep your eyes open and that blade sharp.$B$BYou won\'t see us coming but you\'ll feel it when we get there...' WHERE `entry`=2206; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=1, `OfferRewardEmote3`=1, `OfferRewardText`='Fine work, $N. Here is one sample of the assay for you and the remaining nine will be used in my research.$B$BAnytime you require more of the ground scorpok assay, return to me and we shall work out a deal. ' WHERE `entry`=2586; +UPDATE `quest_template` SET `OfferRewardEmote1`=1 WHERE `entry`=2750; +UPDATE `quest_template` SET `OfferRewardText`='Ah, you want to help me? Great!$B$BThere\'s a part I want for an experiment I\'m working on, and I need a brave $c like you to help me get it!' WHERE `entry`=2769; +UPDATE `quest_template` SET `OfferRewardEmote2`=0, `OfferRewardEmote3`=0 WHERE `entry`=2821; +UPDATE `quest_template` SET `OfferRewardEmote1`=0 WHERE `entry`=2844; +UPDATE `quest_template` SET `OfferRewardEmote1`=0, `OfferRewardEmote2`=0, `OfferRewardText`='Welcome back, $n. Your report on this gazebo is most... disturbing. It would seem that even if the naga there were not planning on an attack, their continued presence bodes ill for our push into Feralas. At any rate, here is compensation for your investigation.$B$BIt would seem that Feathermoon Stronghold is in dire need of additional assistance concerning the Hatecrest naga. I\'d like to offer you the task, if you are so inclined. There is much to do.' WHERE `entry`=2867; +UPDATE `quest_template` SET `OfferRewardEmote2`=0, `OfferRewardEmote3`=0 WHERE `entry`=2869; +UPDATE `quest_template` SET `OfferRewardEmote2`=0, `OfferRewardEmote3`=0, `OfferRewardText`='Well played, $n! Lord Shalzaru\'s demise will throw the naga into disarray for some time, if not permanently. The threat they pose is now under more of our control than it has ever been, and we have you to thank for it.$B$BHere is more bounty money from the stronghold treasury - you\'ve earned every copper. You and yours are welcome in Feathermoon Stronghold anytime, my friend.$B$BOne more thing before you depart, $n... if you could...' WHERE `entry`=2870; +UPDATE `quest_template` SET `OfferRewardEmote3`=0, `OfferRewardEmoteDelay2`=2500 WHERE `entry`=2871; +UPDATE `quest_template` SET `OfferRewardText`='You apply some Cenarion plant salve to the songflower. It immediately begins to shed its corrupted form, blossoming into a vibrant and healthy plant.' WHERE `entry`=2878; +UPDATE `quest_template` SET `OfferRewardText`='I like to think that the last thing that went through his head as he collapsed to the ground was your foot, $r. With Thermaplugg dead, our plans to retake Gnomeregan are one step closer to becoming a reality.\n' WHERE `entry`=2929; +UPDATE `quest_template` SET `OfferRewardText`='Oh, so Troyas Moonbreeze sent you?$B$B...always bothering me with his wild notions that he found something important...$B$BLook, $N, I\'ll be blunt. Troyas always thinks he has found something important in those ruins. The truth is, anything that was truly valuable was probably hoarded away long ago by the ogres or the harpies that now reside there.$B$BYou\'re welcome to take a look around, but I don\'t know if you\'ll find any books here that will help you.' WHERE `entry`=2939; +UPDATE `quest_template` SET `OfferRewardEmote2`=0, `OfferRewardText`='So, you\'d like to borrow Feralas: A History?$B$BLet me think...$B$BI will allow you to borrow this book, $N, but only if you do something for me first.' WHERE `entry`=2940; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=4, `OfferRewardEmoteDelay2`=200, `OfferRewardText`='Are you another one of Daryn\'s interns? She\'s quite a knowledgeable historian, $N. You should be grateful to be studying under her leadership.$B$BNow, let me get the Super Snapper FX. You\'re gonna love it!' WHERE `entry`=2941; +UPDATE `quest_template` SET `OfferRewardEmote2`=2, `OfferRewardEmote3`=0, `OfferRewardEmoteDelay2`=300 WHERE `entry`=2942; +UPDATE `quest_template` SET `OfferRewardText`='The Sparklematic 5200 comes to life, lurching to and fro. Inside, the helpless grime that has encrusted the object placed within it is being pulverized by the machine\'s gnomish cleaning agent.$B$BThe Sparklematic 5200 comes to a halt, heralded by a familiar \"ding!\" The item receptacle of the machine spirals open, revealing a neatly wrapped box.' WHERE `entry`=2953; +UPDATE `quest_template` SET `OfferRewardEmote3`=1 WHERE `entry`=2969; +UPDATE `quest_template` SET `OfferRewardEmote1`=4, `OfferRewardEmote3`=1 WHERE `entry`=2970; +UPDATE `quest_template` SET `OfferRewardEmote3`=1, `OfferRewardEmote4`=2 WHERE `entry`=2972; +UPDATE `quest_template` SET `OfferRewardEmote1`=0 WHERE `entry`=2982; +UPDATE `quest_template` SET `OfferRewardEmote2`=1, `OfferRewardText`='As ya test yeself, ya\'ll find ya have better an\' better control o\'er da spirits--ya\'ll be callin\' on dem fer greata an\' greata tings... dat\'s where ol\' Ken\'jai come in. You come talk to ole Ken\'jai when ya feel yer ready. If da spirits agree, den we see \'bout teachin\' ya more powerful abilities... but only if da spirits agree.$B$BGo now, talk to da rest of da Valley\'s people. Speak to me again later.' WHERE `entry`=3085; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=1 WHERE `entry`=3096; +UPDATE `quest_template` SET `OfferRewardEmote2`=1, `OfferRewardEmote3`=1, `OfferRewardText`='You must return to me often if you are to become powerful enough to destroy those who would oppose us. The rules of magic still apply to you, $N. You will still find corruption follows you like hungry wolves in the night. You will find its caress is not unlike an addiction, an old lover still wanting to be by your side. But these things can be staved off. These things will only control you if you allow them to.$B$BGo now, return to me when you\'ve grown more powerful.' WHERE `entry`=3098; +UPDATE `quest_template` SET `OfferRewardEmote1`=0, `OfferRewardEmote2`=0, `OfferRewardText`='Excellent, $n - I value a \"can do\" attitude in those who I work with.$B$BI\'ve been tasked by General Feathermoon to address the naga in a direct manner. My plans are two fold: one, we will weaken their forces both in number and in command, and two, we will uncover what they are up to in the ruins. With your help, we\'ll counter the naga presence without sacrificing the general security of the stronghold.' WHERE `entry`=3130; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='Ah, what is this? This shell has an inner glow, as if it still pulses with life. Amazing! I must study it further.$B$BThank you, $N. With luck, this shell will hold a secret I can use to aid the poor land of Silverpine.' WHERE `entry`=3301; +UPDATE `quest_template` SET `OfferRewardText`='Would you like to see the view atop one of the twin colossals? I can send you there, $r.$B$BDo consider how you will get down, though. This is a one way trip only.' WHERE `entry`=3567; +UPDATE `quest_template` SET `OfferRewardEmote1`=0, `OfferRewardEmote2`=0, `OfferRewardText`='Well $N, you were wise to seek my tutelage! Any schlep can become an expert at the basics of engineering - the gnomes and their irradiated home of Gnomeregan are proof of that. It takes a strong mind and a steady hand (emphasis on STEADY) though to master the discipline of Goblin Engineering.$B$BKeep your ears perked $N, and you might learn something.' WHERE `entry`=3633; +UPDATE `quest_template` SET `OfferRewardEmote2`=0, `OfferRewardText`='Welcome aboard, Goblin Engineer $N! You soon will have access to the most powerful engineering schemata anywhere on Azeroth.$B$BNow that you have committed yourself to the pursuit of this knowledge, it is time to examine your goblin-oriented engineering work. From there, we\'ll help you build a plan to maximize your goblin engineering talents!' WHERE `entry`=3638; +UPDATE `quest_template` SET `OfferRewardEmote1`=4, `OfferRewardText`='Here is your first Goblin Engineer Membership Card!$B$BThis card has its dues paid for in advance for fourteen days; all cards expire after two weeks of activity. When it does, pay your next set of dues to any goblin engineer trainer in order to get another card; without the card, your membership will temporarily lapse and you cannot access new schemata.$B$BThis never affects what you already know; once a goblin engineer, always a goblin engineer.' WHERE `entry`=3639; +UPDATE `quest_template` SET `OfferRewardEmote1`=0, `OfferRewardEmote2`=0 WHERE `entry`=3791; +UPDATE `quest_template` SET `OfferRewardEmote3`=0 WHERE `entry`=3841; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=1 WHERE `entry`=3842; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=1, `OfferRewardEmote3`=1 WHERE `entry`=4023; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=1, `OfferRewardEmote3`=5, `OfferRewardEmote4`=1 WHERE `entry`=4081; +UPDATE `quest_template` SET `OfferRewardText`='You apply some Cenarion plant salve to the songflower. It immediately begins to shed its corrupted form, blossoming into a vibrant and healthy plant.' WHERE `entry`=4113; +UPDATE `quest_template` SET `OfferRewardText`='You apply some Cenarion plant salve to the songflower. It immediately begins to shed its corrupted form, blossoming into a vibrant and healthy plant.' WHERE `entry`=4116; +UPDATE `quest_template` SET `OfferRewardText`='Can you not see the power we gain by joining the legion of Blackrock? \n' WHERE `entry`=4122; +UPDATE `quest_template` SET `OfferRewardEmote2`=0 WHERE `entry`=4124; +UPDATE `quest_template` SET `OfferRewardEmote2`=0, `OfferRewardEmote3`=0 WHERE `entry`=4127; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=0 WHERE `entry`=4130; +UPDATE `quest_template` SET `OfferRewardEmote1`=1 WHERE `entry`=4261; +UPDATE `quest_template` SET `OfferRewardEmote3`=0 WHERE `entry`=4265; +UPDATE `quest_template` SET `OfferRewardEmote2`=0 WHERE `entry`=4266; +UPDATE `quest_template` SET `OfferRewardEmote1`=4, `OfferRewardEmote3`=0, `OfferRewardEmote4`=0, `OfferRewardText`='Elune be praised, the delivery from Feathermoon Stronghold has finally arrived!$B$BYour presence here indicates to me that perhaps some ill fate may have befallen Raschal, our usual courier. I hope that everything works out. I know that recently, the Woodpaw have become highly agitated from some source to their south. Maybe he fell to the wilds there; I would be careful, friend.$B$BRegardless, thank you again. Here is payment for this parcel\'s delivery.' WHERE `entry`=4281; +UPDATE `quest_template` SET `OfferRewardEmote1`=0, `OfferRewardEmote2`=0, `OfferRewardEmote3`=0, `OfferRewardText`='These\'ll do nicely, and if I\'m not mistaken, your little egg\'s just about ready to hatch. How does it feel? You know, you about to be a $g father:mother;? Haha, didn\'t think ya\'d have to deal with such responsibility, now did ya?' WHERE `entry`=4297; +UPDATE `quest_template` SET `OfferRewardEmote1`=11, `OfferRewardEmote3`=4, `OfferRewardText`='Here, take the egg... better you have it so it bonds to you and looks to you to be its $g dadda:momma;.$B$BCongrats, $N. You\'re a parent... kinda.' WHERE `entry`=4298; +UPDATE `quest_template` SET `OfferRewardText`='You apply some Cenarion plant salve to the songflower. It immediately begins to shed its corrupted form, blossoming into a vibrant and healthy plant.' WHERE `entry`=4401; +UPDATE `quest_template` SET `OfferRewardText`='You apply some Cenarion plant salve to the songflower. It immediately begins to shed its corrupted form, blossoming into a vibrant and healthy plant.' WHERE `entry`=4465; +UPDATE `quest_template` SET `OfferRewardEmote1`=2, `OfferRewardEmote2`=1 WHERE `entry`=4487; +UPDATE `quest_template` SET `OfferRewardText`='The Sparklematic 5200 comes to life, lurching to and fro. Inside, the helpless grime that has encrusted the object placed within it is being pulverized by the machine\'s gnomish cleaning agent.$B$BThe Sparklematic 5200 comes to a halt, heralded by a familiar \"ding!\" The item receptacle of the machine spirals open, revealing a neatly wrapped box.' WHERE `entry`=4604; +UPDATE `quest_template` SET `OfferRewardText`='You came from Stormwind? Wonderful -- I know of an object of art that Remington would kill to have in his museum, but extracting it won\'t be easy.$B$BThat\'s where you come in.' WHERE `entry`=4766; +UPDATE `quest_template` SET `OfferRewardEmote1`=2 WHERE `entry`=4802; +UPDATE `quest_template` SET `OfferRewardEmote1`=0, `OfferRewardText`='Again, I think you for your assistance. Please accept this gift. While you still may not know when to use such an item, perhaps in the future the path of time will reveal its true intentions to you. You could say that I\'ve seen as such happening to you, $N.' WHERE `entry`=4973; +UPDATE `quest_template` SET `OfferRewardEmote1`=4, `OfferRewardText`='Very impressive, $N. You are ready to learn your aquatic form, and it is my pleasure to teach it to you.$B$BAlso, in recognition of your achievement during the two trials, I give you this item. I hope you\'ll find it to be a welcome addition to your gear as a protector of nature and a keeper of the balance.' WHERE `entry`=5061; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='You have the libram and the shield!$B$BTheir history is entwined with the history of Darrowshire, and somehow, I know that fate will bring them together again.' WHERE `entry`=5168; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='You found them! Wonderful!$B$BAlthough I don\'t fully understand how they can help us, I feel their power and I know in my bones that they are linked to my home village of Darrowshire.' WHERE `entry`=5206; +UPDATE `quest_template` SET `OfferRewardText`='Well, here you are $N - the completed Skeleton Key. I am certain as I can be that this key will allow you within the confines of the Scholomance. There\'s only one way to be absolutely sure it works, though. Waste no time in trying it out, I say.$B$BGood luck, mighty hero. May you continue to bring light unto the darkness!' WHERE `entry`=5505; +UPDATE `quest_template` SET `OfferRewardText`='Good, then Kor\'ja lives and goes off to defend our town from those malicious humans. I often wish to remember days of battle; where power was shown in combat and it was the wise who often destroyed those who relied on just their strength.$B$BYou done good by me, $N. You take this robe now. Maybe it help, maybe you not care, but you earned it and I\'m proud to call you $gbrother:sister;.' WHERE `entry`=5648; +UPDATE `quest_template` SET `OfferRewardEmote1`=1 WHERE `entry`=5652; +UPDATE `quest_template` SET `OfferRewardText`='We\'ve got quite the costly skeleton key there, don\'t we $N? Still, it remains unfinished; the time has now come to put some focus behind our creation. To that end, you\'re going to have to face the ultimate foe we\'ve been working towards facing in Andorhal... the nefarious being that runs the show within the ruined city walls.$B$BI\'m speaking of Araj the Summoner - a lich, and one of the most powerful beings the Scourge calls as its own.' WHERE `entry`=5801; +UPDATE `quest_template` SET `OfferRewardText`='Yes, this is it! I... again, I\'m absolutely amazed at the depths of your heroism. It simply boggles the mind the lengths you are willing to go to achieve victory over the forces of darkness.$B$BAllow me now to play my small part in this. I\'ve prepared a special solvent that should allow me to secure the scarab on as the head of the key, infusing it with the power to breach the locked door of Scholomance.$B$BHere goes nothing...' WHERE `entry`=5803; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='Well done! I\'ll put these supplies to good use! Thanks, $N!' WHERE `entry`=5892; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='\"And so it begins, Father Cenarius. And so it begins.\"$B$BDendrite makes a quick, invisible gesture in the air above him. A slight aura of power falls over him.$B$B\"The first perspective of nature you must adapt to is that of the bear. I will put you on the path to understanding this aspect of druidic life, but it is you that must embrace it and propagate it - now and forever!\"' WHERE `entry`=5921; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='I\'m glad you found your way here today, young druid. The time has come for you to take a large step into a much larger world.$B$BInside each of Cenarius\' children is the call to serve nature. Animals and plants are our friends as well as our charges. We choose to devote our lives as preservers of balance for their sakes as well as our own. Your first step into this world will be to learn of the ways of the bear, and to learn strength of body and heart.$B$BReady yourself!' WHERE `entry`=5923; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='I\'m glad you found your way here today, young druid. The time has come for you to take a large step into a much larger world.$B$BInside each of Cenarius\' children is the call to serve nature. Animals and plants are our friends as well as our charges. We choose to devote our lives as preservers of balance for their sakes as well as our own. Your first step into this world will be to learn of the ways of the bear, and to learn strength of body and heart.$B$BReady yourself!' WHERE `entry`=5925; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='Dendrite makes another invisible gesture in the air above him as you approach. Another aura of power comes over him, and he smiles ever so slightly.$B$B\"I sense wisdom in you, young one, that was not present when we first met. You gaze upon me with strength and knowing intent, though this intent is yet not focused. You will now learn to focus your strength and adopt the nature of the bear into your work.\"' WHERE `entry`=5929; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='Welcome back, $N. I sense that your first meeting with the Great Bear Spirit is the same as it is with all druids when they first start down the path of the Claw... a little bewildering, but very intense. I know it was that way with me.$B$BThe Great Bear Spirit has been a part of Azeroth as long as Azeroth has existed in the heavens. We have come to rely on its wisdom and its power to fuel our purpose. The time has now come for your first test of this purpose. Listen closely...' WHERE `entry`=5931; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='Ah yes, there they are. Together they weave a powerful spell, one that will raise the spirits of Darrowshire.$B$BWith that spell, and with a little luck, we can save Joseph Redpath!' WHERE `entry`=5941; +UPDATE `quest_template` SET `OfferRewardEmote1`=4, `OfferRewardText`='You have finally taken your large step into a much larger world, $N. I sense the teaching of the Great Bear Spirit within you, and I sense that you have received the strength that Lunaclaw possessed.$B$BThere are no further obstacles in your way... let me now teach you what it means to be a Druid of the Claw!' WHERE `entry`=6001; +UPDATE `quest_template` SET `OfferRewardEmote1`=2, `OfferRewardText`='Yes, I believe you are ready to be trained...' WHERE `entry`=6069; +UPDATE `quest_template` SET `OfferRewardEmote1`=5, `OfferRewardText`='By Elune, this water is disgusting! No wonder the deer are sick.$B$BSomething is polluting the water, and in turn corrupting Darkshore\'s entire water table. Sick deer have been seen all over area, and not just by the river. While this water is most likely a primary source of the sickness spreading, there\'s something else at work here.$B$BThis water, believe it or not, will help us formulate a cure. While I research this water, I have need of some items to formulate a cure...' WHERE `entry`=6122; +UPDATE `quest_template` SET `OfferRewardEmote1`=4, `OfferRewardEmote2`=1, `OfferRewardText`='This is good, $N, so much so that it should be enough to make some ample doses of the salve - at least enough to start to make a difference.$B$BMaking a cure for poisons can be quite difficult at times because each one often requires a very specific antidote to counteract it. Imagine being able to cure a poison at will without having to worry about the exact ingredients of what the antidote must be!$B$BNow, let me get to work on this!' WHERE `entry`=6123; +UPDATE `quest_template` SET `OfferRewardEmote1`=1 WHERE `entry`=6124; +UPDATE `quest_template` SET `OfferRewardEmote1`=1 WHERE `entry`=6125; +UPDATE `quest_template` SET `OfferRewardEmote2`=1 WHERE `entry`=6628; +UPDATE `quest_template` SET `OfferRewardText`='You have done well, $c. The corrupted elementals you cured were an outrage to all bodies of water. Our strength lies in our purity and if we are to win our war with the others, we must remain strong.' WHERE `entry`=6804; +UPDATE `quest_template` SET `OfferRewardEmote1`=4, `OfferRewardEmote2`=1 WHERE `entry`=7733; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote3`=0 WHERE `entry`=7735; +UPDATE `quest_template` SET `OfferRewardText`='Wonderful! We thank you for your generous donation, $N!' WHERE `entry`=7798; +UPDATE `quest_template` SET `OfferRewardText`='Wonderful! We thank you for your generous donation, $N!' WHERE `entry`=7817; +UPDATE `quest_template` SET `OfferRewardEmote1`=5, `OfferRewardEmote2`=1 WHERE `entry`=8062; +UPDATE `quest_template` SET `OfferRewardEmote1`=5, `OfferRewardEmote2`=1 WHERE `entry`=8066; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=1, `OfferRewardEmote3`=1, `OfferRewardText`='Amongst the Zandalarians, the profession of hunter is revered. Our greatest hunters travel to the edge of the Maelstrom to prove their resolution.$B$BFrom the heart of the sea they pull strands of kelp known as Maelstrom Tendrils. The kelp is then woven into a talisman that is enchanted to improve their accuracy and power.$B$BI now grant you a single weaving of the Maelstrom\'s Tendril. As your bond with Zandalar grows, I shall weave more power into the talisman.' WHERE `entry`=8145; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='Let them seek atonement at the end of your munitions.' WHERE `entry`=8146; +UPDATE `quest_template` SET `OfferRewardText`='It is no longer my purpose to hunt, but to teach the hunter. That is what fate has handed to me.$b$bCraft with me a hunter\'s charm -- a collection of trophies from fallen prey that will remind you of your past trials and triumphs. In the end I will keep the charm, but reward you with something else.' WHERE `entry`=8151; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=2 WHERE `entry`=8183; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='Use it well, $c. Show the Hakkari no mercy!' WHERE `entry`=8187 && `patch`=9; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=2, `OfferRewardEmoteDelay2`=500 WHERE `entry`=8320; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='You\'ve done it! Vyral is killed! This can only mean doom for the Twilight Hammer\'s operations in Silithus. There may be more of them scurrying about, but the blow you dealt to the cult today is one from which they will not easily recover.' WHERE `entry`=8321; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='Wow! You are too kind. Especially for a warlock!$b$b$b$bOh how I love the feel of it, the way it burns your skin and weaves evil thoughts through the mind...' WHERE `entry`=8420; +UPDATE `quest_template` SET `OfferRewardEmote1`=2, `OfferRewardText`='Excellent! You\'ve shown your worth by defending our operations in Warsong Gulch! May word of your honor spread far and wide across our lands.' WHERE `entry`=8430; +UPDATE `quest_template` SET `OfferRewardText`='Well done, $c! You\'ve helped ensure the Horde\'s ownership over Warsong Gulch!' WHERE `entry`=8435; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=5, `OfferRewardEmoteDelay2`=1000, `OfferRewardText`='Must be a cold day in the Burning Steppes. Look here, it\'s $N, and $g he\'s : she\'s; brought me a gift. Twenty iron bars! Just what I always wanted.$B$BIn all seriousness though, thank you, $N. You\'re a credit to yourself and the Alliance. Now get back out there and bring in more stuff for the war effort!' WHERE `entry`=8495; +UPDATE `quest_template` SET `OfferRewardEmote1`=2, `OfferRewardEmote2`=1, `OfferRewardEmoteDelay2`=1000, `OfferRewardText`='I gladly accept your contribution on behalf of the Alliance, $N. Your efforts will directly lead to the creation of several potions and oils in support of our men and women in the field. Thank you, and should come across more, please consider returning to me.' WHERE `entry`=8506; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=1, `OfferRewardEmoteDelay2`=1000, `OfferRewardText`='Good work, $c. I must say that I\'m pleasantly surprised. You would not believe the number of people that have come by, offering to help, but never returning. Let me just get those into a crate and tallied with your name on it, and then we can talk again about whether I need anymore of those plants.' WHERE `entry`=8509; +UPDATE `quest_template` SET `OfferRewardEmote1`=4, `OfferRewardEmote2`=1, `OfferRewardEmoteDelay2`=1000, `OfferRewardText`='Simply outstanding, $N! You\'re a real credit to the Alliance. I\'ll make sure to get these herbs packed away until someone comes to make them into something useful for the war. Feel free to come back around anytime, especially if you have more Arthas\' Tears for me.' WHERE `entry`=8510; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardText`='You got my cutlass from Negolash! I can\'t believe my fortune, $N! Meeting you has turned my luck to the better, make no mistake there!$B$BThank you! And if I ever get a new ship and you\'re looking to sail the seas, you would be my honored guest.' WHERE `entry`=8554; +UPDATE `quest_template` SET `OfferRewardText`='Ah, yes. Mux will be quite happy with this.$B$BThose bracers were part of a larger armor set. If you\'re interested in providing me with further assistance, I\'d be willing to consider parting with the rest of it.' WHERE `entry`=8915; +UPDATE `quest_template` SET `OfferRewardText`='Our agreement remains in place. Just remember, this is but a taste of what awaits you. Free me of this cursed fate and I will reward you with items of truly great power.' WHERE `entry`=8939; +UPDATE `quest_template` SET `OfferRewardEmote1`=0, `OfferRewardEmote2`=0, `OfferRewardText`='Thank you, $n. You are brave and wise.$b$bTell me, how did the devilsaur react to the toxin?' WHERE `entry`=9051; +UPDATE `quest_template` SET `OfferRewardEmote1`=0, `OfferRewardText`='The ingredients at last!$b$bWith the Un\'Goro soil I have collected, the toxin is easily concocted...' WHERE `entry`=9052; +UPDATE `quest_template` SET `OfferRewardEmote1`=273, `OfferRewardEmote2`=1, `OfferRewardText`='As you don more of this armor, you will notice that your persona is changing. You will gain a preternatural ability for killing. Perhaps, even, a lust for blood.$B$BLet it be said that I will not be held responsible for what chaos you may invoke...' WHERE `entry`=9055; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=1, `OfferRewardEmoteDelay2`=1000, `OfferRewardText`='Let the rage of the crypt fiend guide your hand, $N.' WHERE `entry`=9059; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=1, `OfferRewardEmoteDelay2`=1000, `OfferRewardText`='A girdle fit for royalty! It\'s ready for you, $N.' WHERE `entry`=9060; +UPDATE `quest_template` SET `OfferRewardEmote1`=0, `OfferRewardText`='You have traveled far to meet with me, $c, and not a moment too soon.' WHERE `entry`=9063; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=1, `OfferRewardText`='A job well done, $N! As promised, the insignia is yours. Just remember, there\'s more where that came from...' WHERE `entry`=9128; +UPDATE `quest_template` SET `OfferRewardText`='You earned this, scrub. Now, don\'t cry about your orders. Fill \'em or destroy \'em.\n' WHERE `entry`=9142; +UPDATE `quest_template` SET `OfferRewardEmote1`=6, `OfferRewardEmote2`=1, `OfferRewardText`='Thorium tubes? Gee, thanks.$B$B\n' WHERE `entry`=9198; +UPDATE `quest_template` SET `OfferRewardEmote1`=1, `OfferRewardEmote2`=1, `OfferRewardEmote3`=1, `OfferRewardText`='$B$BThat\'s some hard work! Enjoy the pants, $c. At least you\'ll die in a clean pair now.' WHERE `entry`=9232; +-- Correct quest request items. +UPDATE `quest_template` SET `RequestItemsText`='$n, now is no time for idle chatter. If you still wish to prove yourself to The People\'s Militia you need to slay the Defias I notified you about earlier. Return to me when you have completed your duty.' WHERE `entry`=14; +UPDATE `quest_template` SET `CompleteEmote`=25, `RequestItemsText`='Return to me once you have killed 15 Skeletal Fiends and 15 Skeletal Horrors, $n.' WHERE `entry`=57; +UPDATE `quest_template` SET `CompleteEmote`=25, `RequestItemsText`='I need your assistance, $N. Travel to the cemetery to the northwest and rid the eastern mausoleum of 20 Plague Spreaders.$b$bReturn to me when your task is complete.' WHERE `entry`=58; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=63; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=96; +UPDATE `quest_template` SET `RequestItemsText`='How goes your conflict with the shadowcasters? Did you find the midnight orbs?' WHERE `entry`=115; +UPDATE `quest_template` SET `RequestItemsText`='Yowler is a dangerous creature, $N. If you\'re not ready for him, I understand.' WHERE `entry`=126; +UPDATE `quest_template` SET `RequestItemsText`='What do you have there, $r?' WHERE `entry`=169; +UPDATE `quest_template` SET `RequestItemsText`='I showed Cog the beginnings of our star-viewing machine. He was impressed. Did you happen to find a reflective device?' WHERE `entry`=177; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='Do you have those fetishes, $N? They might hold the secret to Kurzen\'s degradation...I must know!' WHERE `entry`=205; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='I give you my blessing. Mai\'Zoth\'s strength is matched only by his evil.' WHERE `entry`=206; +UPDATE `quest_template` SET `CompleteEmote`=6, `RequestItemsText`='Your task has been given to you, $N. Do you have a shard from the lich\'s phylactery as proof of the task being accomplished?' WHERE `entry`=211; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='You\'d best be careful when dealing with the spiders, I\'ve lost a few of my men to them, and trust me, it isn\'t a pleasant sight to see a man hanging upside down in their webs after the venom has started to soften them up.$b$bI wouldn\'t want to see one of the bugs having you for lunch.' WHERE `entry`=245; +UPDATE `quest_template` SET `IncompleteEmote`=0, `CompleteEmote`=0 WHERE `entry`=249; +UPDATE `quest_template` SET `IncompleteEmote`=0, `CompleteEmote`=0 WHERE `entry`=255; +UPDATE `quest_template` SET `IncompleteEmote`=1, `RequestItemsText`='Have you formed your pendant for me to inspect, $N? If you need help in locating the parts, try asking the local populace for information. Not only will you find what you seek, but it will give you a reason to explore this wondrous and sacred glade.' WHERE `entry`=272; +UPDATE `quest_template` SET `IncompleteEmote`=0, `CompleteEmote`=0, `RequestItemsText`='Battle hard, $N. And do not despair, for despair is evil\'s greatest weapon.' WHERE `entry`=323; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='Greetings and welcome, $gmaster:madam;. Have you yet tried one of our fine wines?' WHERE `entry`=332; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=334; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=356; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6, `RequestItemsText`='I see you have returned but your task is not complete. Perhaps you are at ease with the mere humans interfering with The Dark Lady\'s plan? Or perhaps you can heed the call of duty and slay Captain Vachon and his band of Scarlet Friars!' WHERE `entry`=371; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='Baron Vardus cannot think Southshore will allow him to send his thugs against us with impunity. I want his head!' WHERE `entry`=523; +UPDATE `quest_template` SET `IncompleteEmote`=0, `CompleteEmote`=0, `RequestItemsText`='$N, you\'ve returned! How did your foray into Alterac go? Did you bring anything back with you?' WHERE `entry`=542; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='The trolls truly possessed some amazing magical objects, $n. And now, perhaps, I have the opportunity to add one to my extensive collection. Did you have any luck finding the source of the rumor?' WHERE `entry`=578; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='$N. Kin\'weelay told me you set out to capture Yenniku.$B$BIs it true? Do you have him?' WHERE `entry`=592; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=593; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=619; +UPDATE `quest_template` SET `IncompleteEmote`=6 WHERE `entry`=623; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='$n! Do you have the second sigil?' WHERE `entry`=641; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='Valorcall will not be easy to track down, $n. Mounted on horseback, he can cover ground quickly. Nonetheless, we must have his sigil.' WHERE `entry`=643; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='You\'ve returned, $n. Is the line of Ignaeus Trollbane broken?' WHERE `entry`=644; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=645; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='$n! Have you taken the sword?' WHERE `entry`=646; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='The nomadic band of ogres travels between their camps across the Badlands; heat rising from the dry earth and the swirling winds will make it difficult to track their progress. I have heard that sometimes they travel through Camp Boff. If you are lost, you might try your search there.' WHERE `entry`=732; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6 WHERE `entry`=898; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='The Demon Seed still exists. I can sense its power...' WHERE `entry`=924; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=1065; +UPDATE `quest_template` SET `IncompleteEmote`=0 WHERE `entry`=1101; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6, `RequestItemsText`='Ya have the sapta, $g brotha:sista;?$B$BI know another that had trouble after defeating da corrupt water spirit--seems he waited too long and he came out of the spirit world too quick fer his taste. Hate to see dat happen to another, so I\'ll just wait here fer a bit to make sure no one else be needin\' me help.' WHERE `entry`=1103; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='Did you find Highperch, $N? Any luck with the wyverns there?' WHERE `entry`=1135; +UPDATE `quest_template` SET `IncompleteEmote`=1, `RequestItemsText`='I hope you made the Scarlet Crusade suffer some before stealing the book from them.$B$BMy views of their kind are not unwarranted. The Crusade may have been followers of the Light at one time, but now, they seek to destroy any creatures that have not sided with their religion. They believe all undead, Forsaken or otherwise, must be cleansed, and those traveling in their lands must either be insane, or subject to the undead\'s powerful magics. Idiots. Idiots and fools; all of them.' WHERE `entry`=1160; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=1249; +UPDATE `quest_template` SET `IncompleteEmote`=2, `CompleteEmote`=2 WHERE `entry`=1324; +UPDATE `quest_template` SET `RequestItemsText`='You have found a sickly, corrupted version of what appears to be a windblossom plant. The berries that hang from the plant appear rotten and poisonous. It desperately needs some sort of attention if it is to be turned back to normal.' WHERE `entry`=1514; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=1858; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=1961; +UPDATE `quest_template` SET `IncompleteEmote`=1 WHERE `entry`=1963; +UPDATE `quest_template` SET `IncompleteEmote`=0, `CompleteEmote`=0, `RequestItemsText`='Your mortality wanes with every moment you waste loitering in the barracks, $c. ' WHERE `entry`=2206; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=2586; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=2681; +UPDATE `quest_template` SET `IncompleteEmote`=25, `CompleteEmote`=25 WHERE `entry`=2821; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=2845; +UPDATE `quest_template` SET `RequestItemsText`='$n, if you\'re here to verify the task given to you, then excellent - it is ten Hatecrest scales I seek. If you are here for chit-chat, then I am currently unavailable for such trivialities.$B$BKnow this - we night elves are not warmongers. Our race is dedicated to the preservation of peace and harmony. This does not mean, however, that we will not proactively protect our own interests. This is my duty to General Feathermoon, and to the stronghold.' WHERE `entry`=2869; +UPDATE `quest_template` SET `IncompleteEmote`=5, `CompleteEmote`=5, `RequestItemsText`='Bringing down Lord Shalzaru would certainly set their plans back weeks, if not months. On top of that, the relic he uncovered is of definite interest to us.$B$BHave you performed the mission given to you, $n?' WHERE `entry`=2870; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6, `RequestItemsText`='Yes, may I assist you?$B$BHold on, you\'re the $c that has been helping General Feathermoon and Latro out with the naga threat, yes? I\'m Vestia, Latro\'s - erm, rather, Latronicus\' wife. It is a pleasure to meet you!$B$BI\'m sorry, you\'re here on business, of course. Do you have something for me - from him, perchance?' WHERE `entry`=2871; +UPDATE `quest_template` SET `RequestItemsText`='You have found a sickly, corrupted version of what appears to be a songflower plant. A pungent, unhealthy odor emanates from the plant. It desperately needs some sort of attention if it is to be turned back to normal.' WHERE `entry`=2878; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=2879; +UPDATE `quest_template` SET `IncompleteEmote`=5 WHERE `entry`=2926; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=2941; +UPDATE `quest_template` SET `IncompleteEmote`=0, `CompleteEmote`=0 WHERE `entry`=2942; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=2945; +UPDATE `quest_template` SET `IncompleteEmote`=5 WHERE `entry`=2947; +UPDATE `quest_template` SET `IncompleteEmote`=6 WHERE `entry`=2948; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=2953; +UPDATE `quest_template` SET `IncompleteEmote`=2, `CompleteEmote`=2 WHERE `entry`=2972; +UPDATE `quest_template` SET `IncompleteEmote`=0, `CompleteEmote`=0 WHERE `entry`=2982; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='Have you searched the cages, $N? We must find Sharpbeak!' WHERE `entry`=2988; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=2989; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=2994; +UPDATE `quest_template` SET `IncompleteEmote`=2 WHERE `entry`=3085; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6 WHERE `entry`=3096; +UPDATE `quest_template` SET `IncompleteEmote`=1 WHERE `entry`=3098; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='I can smell the dust of the Barrens on you, $c. You have traveled far.' WHERE `entry`=3301; +UPDATE `quest_template` SET `IncompleteEmote`=25, `CompleteEmote`=25, `RequestItemsText`='I can smell fresh recruits much like I can an excellent blasting powder - from a mile away. Have you come seeking to learn about the mastery of the explosion?' WHERE `entry`=3633; +UPDATE `quest_template` SET `IncompleteEmote`=1, `CompleteEmote`=1, `RequestItemsText`='If you\'ve signed the document and are ready to hand it to me, then that is that. You\'ve been told that this is a one way trip. If you\'re ready, then hop on board!' WHERE `entry`=3638; +UPDATE `quest_template` SET `RequestItemsText`='Once I receive your crafted engineering items for my review, I will hand you a genuine Goblin Engineer Membership Card! So long as the card is valid, you will have unlimited access to any goblin engineer trainer anywhere in the world.' WHERE `entry`=3639; +UPDATE `quest_template` SET `RequestItemsText`='Hello again, $N. My research is progressing fairly well, but if you have five more Morrowgrain I\'d be happy to take them off your hands. Well... happy is a figurative term in this case; the more I am around them, the more uncomfortable I feel. Still, my research demands I buckle down and get through this.' WHERE `entry`=3792; +UPDATE `quest_template` SET `IncompleteEmote`=2, `CompleteEmote`=2, `RequestItemsText`='Why hello, $c.$B$BDon\'t let my location fool you, I\'m really not here for the races... as entertaining as they may be.$B$BI\'m actually here in Thousand Needles investigating all I can to find out how salvageable the land is. It has become my crusade of sorts to revitalize and replenish the area with new, fertile soil. Perhaps I\'ll find there\'s a water source nearby.$B$BTell me you haven\'t noticed how odd the transition between Feralas and Thousand Needles is. Strange magic was afoot when that happened.' WHERE `entry`=3841; +UPDATE `quest_template` SET `IncompleteEmote`=6 WHERE `entry`=3843; +UPDATE `quest_template` SET `IncompleteEmote`=1 WHERE `entry`=3906; +UPDATE `quest_template` SET `IncompleteEmote`=15, `CompleteEmote`=15 WHERE `entry`=4023; +UPDATE `quest_template` SET `RequestItemsText`='You have found a sickly, corrupted version of what appears to be a songflower plant. A pungent, unhealthy odor emanates from the plant. It desperately needs some sort of attention if it is to be turned back to normal.' WHERE `entry`=4116; +UPDATE `quest_template` SET `IncompleteEmote`=1, `CompleteEmote`=1 WHERE `entry`=4127; +UPDATE `quest_template` SET `IncompleteEmote`=6 WHERE `entry`=4129; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=4185; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=4262; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='Welcome to Thalanaar, $c. Do you need assistance of some sort?' WHERE `entry`=4281; +UPDATE `quest_template` SET `IncompleteEmote`=1 WHERE `entry`=4512; +UPDATE `quest_template` SET `IncompleteEmote`=1 WHERE `entry`=4513; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=4604; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6 WHERE `entry`=4734; +UPDATE `quest_template` SET `RequestItemsText`='Yes, $N? Have you chosen? Infernal or felhound?$B$BEach choice is personal and should reflect your strengths and weaknesses. It is not unheard of for a warlock to enhance themselves further instead of making up in areas they lack. Sometimes overpowering an enemy is just as strong a tactic than becoming a more balanced spell caster.' WHERE `entry`=4963; +UPDATE `quest_template` SET `IncompleteEmote`=1 WHERE `entry`=5061; +UPDATE `quest_template` SET `CompleteEmote`=6, `RequestItemsText`='Do you have the skulls? Chromie said they will be critical for her spell, and that spell will give us the chance to save Darrowshire.' WHERE `entry`=5206; +UPDATE `quest_template` SET `IncompleteEmote`=6, `RequestItemsText`='Do you have the stem of the skeletal key finished? I\'m sorry you had to bear the brunt of the fee to purchase the mold, but we must all do our part to counter the Scourge. Once you hand me the unfinished key, you\'ll be ready for the final item needed to complete its construction.$B$BIt won\'t be easy at all, but the work you\'ve done to date in preparing for an assault on Andorhal will now start to pay for itself. You\'ll see.' WHERE `entry`=5801; +UPDATE `quest_template` SET `RequestItemsText`='You\'ve come this far $N - only the destruction of the physical form of Araj the Summoner will provide us with the means to finish the key. Get Araj\'s scarab by whatever means necessary and bring it to me - I will fuse it on as the head of the key.' WHERE `entry`=5803; +UPDATE `quest_template` SET `IncompleteEmote`=1, `RequestItemsText`='A Cenarion beacon allows a seasoned herbalist to spot insidious fel creep - a malfeasant product of Felwood\'s corruption. My work here has taught me the knowledge of purifying fel creep into a cleansing reagent... used in what we now refer to as Cenarion plant salve.$B$BWhen you gather herbs in Felwood, you should encounter the fel creep so long as you have the beacon. In exchange for what you bring to me, I will give you pre-made Cenarion plant salve.' WHERE `entry`=5884; +UPDATE `quest_template` SET `IncompleteEmote`=1, `RequestItemsText`='Do you have the supplies, $N? We can never have enough! ' WHERE `entry`=5892; +UPDATE `quest_template` SET `IncompleteEmote`=25, `CompleteEmote`=25 WHERE `entry`=5929; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6, `RequestItemsText`='I have been in contact with your friend Carlin. He feels great pain for the doom of his village, but he speaks very highly of you and knows that you can set things right.$B$BOh, but I\'m drifting from the subject at hand... $N, do you have the relics I asked for?' WHERE `entry`=5941; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=6001; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6, `RequestItemsText`='You\'re the one that the Cenarion Circle in Moonglade sent? That\'s wonderful! We\'ve quite the crisis our hands here regarding the poor deer, and we\'re happy for all the help we can get.$B$BDo you have the sample of water that Dendrite Starblaze said you\'d have? He notified me that you\'d draw one so we could work on a cure together...' WHERE `entry`=6122; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6, `RequestItemsText`='Have you got the reagents I need to make the salve? The deer aren\'t getting any better on their own, so we better hurry to help them out!' WHERE `entry`=6123; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6, `RequestItemsText`='Have you completed what was asked of you by Alanndarian Nightsong of Auberdine? Your work is not complete unless it is.' WHERE `entry`=6124; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=6805; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='Did you enter the Coldtooth mine in Horde territory, $N? Did you raid their supplies?' WHERE `entry`=6982; +UPDATE `quest_template` SET `IncompleteEmote`=5, `CompleteEmote`=5, `RequestItemsText`='$N, you have not yet assaulted a graveyard. Return to me when this task is complete!' WHERE `entry`=7081; +UPDATE `quest_template` SET `CompleteEmote`=0, `RequestItemsText`='You haven\'t yet assaulted a tower, $N! What are you waiting for?' WHERE `entry`=7102; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=7122; +UPDATE `quest_template` SET `IncompleteEmote`=0, `CompleteEmote`=0 WHERE `entry`=7488; +UPDATE `quest_template` SET `IncompleteEmote`=6 WHERE `entry`=7735; +UPDATE `quest_template` SET `RequestItemsText`='As with most other fabrics, our stocks of silk are at an all-time low. Our stores are such that we\'d only need sixty pieces of silk from you total; we should be able to reach our goal with the support of others.$B$BA benevolent gift such as silk, might I add, would certainly increase your local standing in the community! If you have the sixty pieces of silk cloth on you and are ready to donate them, I\'m able to take them from you now.' WHERE `entry`=7798; +UPDATE `quest_template` SET `RequestItemsText`='We are currently accepting donations for wool cloth. A donation of sixty pieces of wool cloth will net you full recognition by the Gnomeregan Exiles for your generous actions. Our stores are such on wool that we would only need sixty pieces from you total; we should be able to acquire enough from others in the realm to support our drive.$B$BIf you have the sixty pieces of wool cloth on you and are ready to donate them, I\'m able to take them from you now.' WHERE `entry`=7807; +UPDATE `quest_template` SET `RequestItemsText`='As with most other fabrics, our stocks of silk are at an all-time low. Our stores are such that we\'d only need sixty pieces of silk from you total; we should be able to reach our goal with the support of others.$B$BA benevolent gift such as silk, might I add, would certainly increase your local standing in the community! If you have the sixty pieces of silk cloth on you and are ready to donate them, I\'m able to take them from you now.' WHERE `entry`=7814; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6 WHERE `entry`=8062; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6 WHERE `entry`=8066; +UPDATE `quest_template` SET `IncompleteEmote`=1, `RequestItemsText`='Ah, $N, it is good to smell you again.$B$B$B$BYou\'ll have to excuse my sense of humor. It can be most foul at times.$B$BI sense that you have caused great anguish to our enemies. The forces of Hakkar cry out your name in anger. This is most excellent.$B$BYou have earned another weave on your talisman. Hand it to me.' WHERE `entry`=8146; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=8183; +UPDATE `quest_template` SET `IncompleteEmote`=5, `CompleteEmote`=5, `RequestItemsText`='Zanza can create the ancient troll enchantments with the right components.$B$BThe first is a primal Hakkari idol that must be taken from the most powerful of the Hakkari lieutenants: Jin\'do and the Bloodlord.$B$BThe second is a punctured voodoo doll. These can be found in the piles of refuse that litter this foul place. Look inside the jinxed hoodoo piles.$B$BBring me these things and I will create a powerful enchantment for you!\n' WHERE `entry`=8187 && `patch`=9; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=8281; +UPDATE `quest_template` SET `IncompleteEmote`=5, `CompleteEmote`=5, `RequestItemsText`='Enter the desert and find the Twilight geolords, $N. Return to me after they are slain.' WHERE `entry`=8320; +UPDATE `quest_template` SET `IncompleteEmote`=6 WHERE `entry`=8321; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6 WHERE `entry`=8420; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6, `RequestItemsText`='Ok, so it looks like I still need more Arthas\' Tears, $c. I would imagine that you will be able to find them in the general location that you gathered them up last time. The war effort is coming along nicely, but the quicker we get these, the faster we can start up the offensive against the forces at Ahn\'Qiraj.$B$BYou gonna help us out again, $N?' WHERE `entry`=8510; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=8554; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=8915; +UPDATE `quest_template` SET `CompleteEmote`=0 WHERE `entry`=8939; +UPDATE `quest_template` SET `IncompleteEmote`=0, `CompleteEmote`=0 WHERE `entry`=9051; +UPDATE `quest_template` SET `IncompleteEmote`=0, `CompleteEmote`=0 WHERE `entry`=9052; +UPDATE `quest_template` SET `IncompleteEmote`=0, `CompleteEmote`=0 WHERE `entry`=9053; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6, `RequestItemsText`='Do you have the items I asked for, $c?' WHERE `entry`=9055; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6, `RequestItemsText`='Do you have the items I asked for, $c?' WHERE `entry`=9059; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6, `RequestItemsText`='Do you have the items I asked for, $c?' WHERE `entry`=9060; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6, `RequestItemsText`='Filling a work order, $c?' WHERE `entry`=9198; +UPDATE `quest_template` SET `IncompleteEmote`=6, `CompleteEmote`=6, `RequestItemsText`='Filling a work order, $c?' WHERE `entry`=9200; +UPDATE `quest_template` SET `RequestItemsText`='They must be fools to think that we would allow them to establish bases so close to one of our capitals.$b$bWe will bleed their numbers until they turn tail and retreat back to the south.' WHERE `entry`=9665; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 86f12ff0bcc87b8370c1941669fdafe9e0e839d0 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 11 Nov 2023 04:27:49 +0200 Subject: [PATCH 287/426] Corrections to creature spawn positions. --- sql/migrations/20231111021653_world.sql | 1473 +++++++++++++++++++++++ 1 file changed, 1473 insertions(+) create mode 100644 sql/migrations/20231111021653_world.sql diff --git a/sql/migrations/20231111021653_world.sql b/sql/migrations/20231111021653_world.sql new file mode 100644 index 00000000000..1a01462fda4 --- /dev/null +++ b/sql/migrations/20231111021653_world.sql @@ -0,0 +1,1473 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231111021653'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231111021653'); +-- Add your query below. + + +-- Correct spawn position of various mobs. +UPDATE `creature` SET `position_x`=-5584.19, `position_y`=-3683.03, `position_z`=-58.6666, `orientation`=5.51181 WHERE `guid`=21380; -- Scorpid Reaver +UPDATE `creature` SET `id`=4140 WHERE `guid`=21380; -- Scorpid Reaver +UPDATE `creature` SET `id2`=4142 WHERE `guid`=21380; -- Sparkleshell Tortoise +UPDATE `creature` SET `position_x`=-250.766, `position_y`=-287.362, `position_z`=53.0017, `orientation`=0.617973 WHERE `guid`=16388; -- Ferocious Yeti +UPDATE `creature` SET `id`=2248 WHERE `guid`=16388; -- Cave Yeti +UPDATE `creature` SET `id2`=2249 WHERE `guid`=16388; -- Ferocious Yeti +UPDATE `creature` SET `position_x`=-949.659, `position_y`=985.585, `position_z`=89.8613, `orientation`=2.77852 WHERE `guid`=27024; -- Kolkar Windchaser +UPDATE `creature` SET `id`=4634 WHERE `guid`=27024; -- Kolkar Mauler +UPDATE `creature` SET `id2`=4635 WHERE `guid`=27024; -- Kolkar Windchaser +UPDATE `creature` SET `id3`=4636 WHERE `guid`=27024; -- Kolkar Battle Lord +UPDATE `creature` SET `id4`=4637 WHERE `guid`=27024; -- Kolkar Destroyer +UPDATE `creature` SET `position_x`=-11513.4, `position_y`=-285.028, `position_z`=38.6847, `orientation`=0.716658 WHERE `guid`=1691; -- Young Panther +UPDATE `creature` SET `id`=681 WHERE `guid`=1691; -- Young Stranglethorn Tiger +UPDATE `creature` SET `id2`=683 WHERE `guid`=1691; -- Young Panther +UPDATE `creature` SET `position_x`=-8370.97, `position_y`=-2984.35, `position_z`=8.58642, `orientation`=0.865984 WHERE `guid`=23172; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=-8247.64, `position_y`=-2996.96, `position_z`=8.71352, `orientation`=6.04627 WHERE `guid`=23177; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=-8480.08, `position_y`=-3074.01, `position_z`=10.4744, `orientation`=6.18827 WHERE `guid`=23194; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=-8265.5, `position_y`=-3064.66, `position_z`=10.6851, `orientation`=1.64061 WHERE `guid`=23186; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=-14938, `position_y`=353.601, `position_z`=18.2865, `orientation`=1.48219 WHERE `guid`=2589; -- Bloodsail Sea Dog +UPDATE `creature` SET `id`=1565 WHERE `guid`=2589; -- Bloodsail Sea Dog +UPDATE `creature` SET `id2`=1653 WHERE `guid`=2589; -- Bloodsail Elder Magus +UPDATE `creature` SET `id3`=4506 WHERE `guid`=2589; -- Bloodsail Swabby +UPDATE `creature` SET `position_x`=-15015.2, `position_y`=267.677, `position_z`=12.6559, `orientation`=0.122689 WHERE `guid`=2627; -- Bloodsail Deckhand +UPDATE `creature` SET `id`=1653 WHERE `guid`=2627; -- Bloodsail Elder Magus +UPDATE `creature` SET `id2`=4505 WHERE `guid`=2627; -- Bloodsail Deckhand +UPDATE `creature` SET `id3`=4506 WHERE `guid`=2627; -- Bloodsail Swabby +UPDATE `creature` SET `position_x`=-1549.33, `position_y`=-1899.96, `position_z`=68.0209, `orientation`=1.63356 WHERE `guid`=12007; -- Stromgarde Defender (WAYPOINTS) +UPDATE `creature` SET `position_x`=-150.078, `position_y`=-5084.01, `position_z`=21.5883, `orientation`=1.08641 WHERE `guid`=12300; -- Kul Tiras Marine +UPDATE `creature` SET `id`=3128 WHERE `guid`=12300; -- Kul Tiras Sailor +UPDATE `creature` SET `id2`=3129 WHERE `guid`=12300; -- Kul Tiras Marine +UPDATE `creature` SET `position_x`=-1143.92, `position_y`=-5570.52, `position_z`=9.99124, `orientation`=3.54579 WHERE `guid`=12378; -- Hexed Troll +UPDATE `creature` SET `id`=3206 WHERE `guid`=12378; -- Voodoo Troll +UPDATE `creature` SET `id2`=3207 WHERE `guid`=12378; -- Hexed Troll +UPDATE `creature` SET `position_x`=-1184.82, `position_y`=-5518.54, `position_z`=5.92517, `orientation`=5.02196 WHERE `guid`=13020; -- Hexed Troll +UPDATE `creature` SET `id`=3206 WHERE `guid`=13020; -- Voodoo Troll +UPDATE `creature` SET `id2`=3207 WHERE `guid`=13020; -- Hexed Troll +UPDATE `creature` SET `position_x`=82.2253, `position_y`=-4415.62, `position_z`=41.9412, `orientation`=2.15996 WHERE `guid`=6416; -- Razormane Quilboar +UPDATE `creature` SET `id`=3111 WHERE `guid`=6416; -- Razormane Quilboar +UPDATE `creature` SET `id2`=3112 WHERE `guid`=6416; -- Razormane Scout +UPDATE `creature` SET `position_x`=-6483.17, `position_y`=-3781.88, `position_z`=-58.6666, `orientation`=4.85158 WHERE `guid`=21500; -- Saltstone Gazer +UPDATE `creature` SET `id`=4150 WHERE `guid`=21500; -- Saltstone Gazer +UPDATE `creature` SET `id2`=4151 WHERE `guid`=21500; -- Saltstone Crystalhide +UPDATE `creature` SET `position_x`=2391.41, `position_y`=-2523.21, `position_z`=111.377, `orientation`=3.41045 WHERE `guid`=32620; -- Splintertree Guard (WAYPOINTS) +UPDATE `creature` SET `position_x`=180.612, `position_y`=100.176, `position_z`=104.798, `orientation`=3.36368 WHERE `guid`=91412; -- Diseased Ghoul +UPDATE `creature` SET `position_x`=-1434.35, `position_y`=2942.23, `position_z`=94.7834, `orientation`=0.533288 WHERE `guid`=29081; -- Ghostly Marauder +UPDATE `creature` SET `id`=11686 WHERE `guid`=29081; -- Ghostly Raider +UPDATE `creature` SET `id2`=11687 WHERE `guid`=29081; -- Ghostly Marauder +UPDATE `creature` SET `position_x`=-9823.09, `position_y`=82.6229, `position_z`=2.99877, `orientation`=1.08381 WHERE `guid`=80630; -- Kobold Miner +UPDATE `creature` SET `id`=40 WHERE `guid`=80630; -- Kobold Miner +UPDATE `creature` SET `id2`=475 WHERE `guid`=80630; -- Kobold Tunneler +UPDATE `creature` SET `position_x`=-9792.53, `position_y`=91.5334, `position_z`=4.9941, `orientation`=4.24115 WHERE `guid`=80637; -- Kobold Miner +UPDATE `creature` SET `id`=40 WHERE `guid`=80637; -- Kobold Miner +UPDATE `creature` SET `id2`=475 WHERE `guid`=80637; -- Kobold Tunneler +UPDATE `creature` SET `position_x`=-9800.33, `position_y`=103.975, `position_z`=24.8717, `orientation`=4.91676 WHERE `guid`=80632; -- Kobold Tunneler +UPDATE `creature` SET `id`=40 WHERE `guid`=80632; -- Kobold Miner +UPDATE `creature` SET `id2`=475 WHERE `guid`=80632; -- Kobold Tunneler +UPDATE `creature` SET `position_x`=-9252.35, `position_y`=-1183.44, `position_z`=68.055, `orientation`=3.89096 WHERE `guid`=81278; -- Murloc Forager +UPDATE `creature` SET `id`=46 WHERE `guid`=81278; -- Murloc Forager +UPDATE `creature` SET `id2`=732 WHERE `guid`=81278; -- Murloc Lurker +UPDATE `creature` SET `position_x`=-9282.38, `position_y`=-1182.82, `position_z`=70.9297, `orientation`=1.17962 WHERE `guid`=81281; -- Murloc Lurker +UPDATE `creature` SET `id`=46 WHERE `guid`=81281; -- Murloc Forager +UPDATE `creature` SET `id2`=732 WHERE `guid`=81281; -- Murloc Lurker +UPDATE `creature` SET `position_x`=-8206.65, `position_y`=-3029.46, `position_z`=10.7367, `orientation`=1.24876 WHERE `guid`=23185; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=-8232.18, `position_y`=-2953.19, `position_z`=11.8653, `orientation`=5.88762 WHERE `guid`=23146; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=-8291.24, `position_y`=-2893.84, `position_z`=10.5288, `orientation`=3.2229 WHERE `guid`=23144; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=-8230.15, `position_y`=-2928.9, `position_z`=15.4798, `orientation`=0.631691 WHERE `guid`=23169; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=-8318.6, `position_y`=-3163.25, `position_z`=13.6378, `orientation`=2.57397 WHERE `guid`=23183; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=-8328.57, `position_y`=-3131.45, `position_z`=8.91409, `orientation`=0.631058 WHERE `guid`=23153; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=6780.8, `position_y`=-4955.62, `position_z`=761.73, `orientation`=2.26935 WHERE `guid`=41020; -- Winterfall Ursa +UPDATE `creature` SET `position_x`=-8829.41, `position_y`=-2187.89, `position_z`=138.889, `orientation`=5.94672 WHERE `guid`=17873; -- Blackrock Champion +UPDATE `creature` SET `id`=435 WHERE `guid`=17873; -- Blackrock Champion +UPDATE `creature` SET `id2`=615 WHERE `guid`=17873; -- Blackrock Tracker +UPDATE `creature` SET `position_x`=-8748.18, `position_y`=-2208.83, `position_z`=153.475, `orientation`=1.36128 WHERE `guid`=17573; -- Blackrock Champion +UPDATE `creature` SET `id`=435 WHERE `guid`=17573; -- Blackrock Champion +UPDATE `creature` SET `id2`=615 WHERE `guid`=17573; -- Blackrock Tracker +UPDATE `creature` SET `position_x`=-3936.9, `position_y`=1651.11, `position_z`=134.545, `orientation`=5.67232 WHERE `guid`=51107; -- Ferocious Rage Scar +UPDATE `creature` SET `id`=5297 WHERE `guid`=51107; -- Elder Rage Scar +UPDATE `creature` SET `id2`=5299 WHERE `guid`=51107; -- Ferocious Rage Scar +UPDATE `creature` SET `position_x`=-8543.34, `position_y`=-2971.38, `position_z`=9.43386, `orientation`=2.35826 WHERE `guid`=23156; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=-8307, `position_y`=-2864.82, `position_z`=10.9717, `orientation`=6.25112 WHERE `guid`=23137; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=-8382.31, `position_y`=-2866.05, `position_z`=9.11404, `orientation`=0.964583 WHERE `guid`=23191; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=-9732.12, `position_y`=118.485, `position_z`=24.8803, `orientation`=3.26377 WHERE `guid`=80650; -- Kobold Miner +UPDATE `creature` SET `id`=40 WHERE `guid`=80650; -- Kobold Miner +UPDATE `creature` SET `id2`=475 WHERE `guid`=80650; -- Kobold Tunneler +UPDATE `creature` SET `position_x`=-11350, `position_y`=-2784.99, `position_z`=7.01573, `orientation`=2.34575 WHERE `guid`=3915; -- Snickerfang Hyena +UPDATE `creature` SET `id`=5985 WHERE `guid`=3915; -- Snickerfang Hyena +UPDATE `creature` SET `id2`=5988 WHERE `guid`=3915; -- Scorpok Stinger +UPDATE `creature` SET `id3`=5991 WHERE `guid`=3915; -- Redstone Crystalhide +UPDATE `creature` SET `id4`=5993 WHERE `guid`=3915; -- Helboar +UPDATE `creature` SET `id5`=8675 WHERE `guid`=3915; -- Felbeast +UPDATE `creature` SET `position_x`=-11517.5, `position_y`=-3084.68, `position_z`=-1.76611, `orientation`=2.44373 WHERE `guid`=3931; -- Snickerfang Hyena +UPDATE `creature` SET `id`=5985 WHERE `guid`=3931; -- Snickerfang Hyena +UPDATE `creature` SET `id2`=5988 WHERE `guid`=3931; -- Scorpok Stinger +UPDATE `creature` SET `id3`=5991 WHERE `guid`=3931; -- Redstone Crystalhide +UPDATE `creature` SET `id4`=5993 WHERE `guid`=3931; -- Helboar +UPDATE `creature` SET `position_x`=-11382.6, `position_y`=-2883.59, `position_z`=1.4664, `orientation`=4.61755 WHERE `guid`=3917; -- Snickerfang Hyena +UPDATE `creature` SET `id`=5985 WHERE `guid`=3917; -- Snickerfang Hyena +UPDATE `creature` SET `id2`=5988 WHERE `guid`=3917; -- Scorpok Stinger +UPDATE `creature` SET `id3`=5991 WHERE `guid`=3917; -- Redstone Crystalhide +UPDATE `creature` SET `id4`=5993 WHERE `guid`=3917; -- Helboar +UPDATE `creature` SET `position_x`=-11582.8, `position_y`=-3281.58, `position_z`=10.3927, `orientation`=3.95649 WHERE `guid`=3925; -- Snickerfang Hyena +UPDATE `creature` SET `id`=5985 WHERE `guid`=3925; -- Snickerfang Hyena +UPDATE `creature` SET `id2`=5988 WHERE `guid`=3925; -- Scorpok Stinger +UPDATE `creature` SET `id3`=5993 WHERE `guid`=3925; -- Helboar +UPDATE `creature` SET `id4`=8675 WHERE `guid`=3925; -- Felbeast +UPDATE `creature` SET `position_x`=6683.76, `position_y`=-5047.88, `position_z`=780.608, `orientation`=4.12161 WHERE `guid`=41019; -- Winterfall Ursa +UPDATE `creature` SET `position_x`=2113.58, `position_y`=-1548.58, `position_z`=67.9283, `orientation`=2.25156 WHERE `guid`=45733; -- Diseased Wolf +UPDATE `creature` SET `id`=1817 WHERE `guid`=45733; -- Diseased Wolf +UPDATE `creature` SET `id2`=1821 WHERE `guid`=45733; -- Carrion Lurker +UPDATE `creature` SET `position_x`=-10565.1, `position_y`=354.844, `position_z`=30.6313, `orientation`=5.15687 WHERE `guid`=4993; -- Skeletal Horror +UPDATE `creature` SET `id`=202 WHERE `guid`=4993; -- Skeletal Horror +UPDATE `creature` SET `id2`=531 WHERE `guid`=4993; -- Skeletal Fiend +UPDATE `creature` SET `position_x`=-10385.6, `position_y`=401.481, `position_z`=29.1629, `orientation`=1.37564 WHERE `guid`=5095; -- Skeletal Warder +UPDATE `creature` SET `id`=785 WHERE `guid`=5095; -- Skeletal Warder +UPDATE `creature` SET `id2`=1110 WHERE `guid`=5095; -- Skeletal Raider +UPDATE `creature` SET `position_x`=-1.09842, `position_y`=-3362.84, `position_z`=92.1662, `orientation`=3.33385 WHERE `guid`=20411; -- Razormane Geomancer +UPDATE `creature` SET `id`=3266 WHERE `guid`=20411; -- Razormane Defender +UPDATE `creature` SET `id2`=3269 WHERE `guid`=20411; -- Razormane Geomancer +UPDATE `creature` SET `position_x`=6720.03, `position_y`=-5013.56, `position_z`=766.317, `orientation`=2.07701 WHERE `guid`=41022; -- Winterfall Ursa +UPDATE `creature` SET `position_x`=-446.405, `position_y`=1680.27, `position_z`=117.463, `orientation`=5.24327 WHERE `guid`=27629; -- Burning Blade Augur +UPDATE `creature` SET `id`=4663 WHERE `guid`=27629; -- Burning Blade Augur +UPDATE `creature` SET `id2`=4665 WHERE `guid`=27629; -- Burning Blade Adept +UPDATE `creature` SET `id3`=4666 WHERE `guid`=27629; -- Burning Blade Felsworn +UPDATE `creature` SET `position_x`=1983.14, `position_y`=-1616.61, `position_z`=60.2881, `orientation`=1.76122 WHERE `guid`=48126; -- Diseased Wolf +UPDATE `creature` SET `id`=1817 WHERE `guid`=48126; -- Diseased Wolf +UPDATE `creature` SET `id2`=1821 WHERE `guid`=48126; -- Carrion Lurker +UPDATE `creature` SET `position_x`=-11518.6, `position_y`=-352.395, `position_z`=37.7957, `orientation`=4.05085 WHERE `guid`=2214; -- Young Stranglethorn Tiger +UPDATE `creature` SET `id`=681 WHERE `guid`=2214; -- Young Stranglethorn Tiger +UPDATE `creature` SET `id2`=683 WHERE `guid`=2214; -- Young Panther +UPDATE `creature` SET `position_x`=-3206, `position_y`=-958.213, `position_z`=8.22076, `orientation`=5.52538 WHERE `guid`=11043; -- Bluegill Puddlejumper +UPDATE `creature` SET `id`=1024 WHERE `guid`=11043; -- Bluegill Murloc +UPDATE `creature` SET `id2`=1025 WHERE `guid`=11043; -- Bluegill Puddlejumper +UPDATE `creature` SET `position_x`=-872.686, `position_y`=-520.334, `position_z`=11.9529, `orientation`=2.01085 WHERE `guid`=15327; -- Southshore Guard +UPDATE `creature` SET `position_x`=-8358.53, `position_y`=-3021.53, `position_z`=8.85765, `orientation`=3.36982 WHERE `guid`=23154; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=2929.28, `position_y`=-2664.37, `position_z`=95.6904, `orientation`=0.383972 WHERE `guid`=69683; -- Crypt Walker +UPDATE `creature` SET `id`=8555 WHERE `guid`=69683; -- Crypt Fiend +UPDATE `creature` SET `id2`=8556 WHERE `guid`=69683; -- Crypt Walker +UPDATE `creature` SET `position_x`=-9518.16, `position_y`=-1936.03, `position_z`=75.4516, `orientation`=2.98491 WHERE `guid`=10150; -- Redridge Thrasher +UPDATE `creature` SET `id`=423 WHERE `guid`=10150; -- Redridge Mongrel +UPDATE `creature` SET `id2`=712 WHERE `guid`=10150; -- Redridge Thrasher +UPDATE `creature` SET `position_x`=-12051.3, `position_y`=-950.534, `position_z`=47.1958, `orientation`=4.05341 WHERE `guid`=1865; -- Shadowmaw Panther +UPDATE `creature` SET `id`=684 WHERE `guid`=1865; -- Shadowmaw Panther +UPDATE `creature` SET `id2`=772 WHERE `guid`=1865; -- Stranglethorn Tigress +UPDATE `creature` SET `position_x`=-2807.94, `position_y`=-978.602, `position_z`=-0.657851, `orientation`=0.941709 WHERE `guid`=9933; -- Cursed Marine +UPDATE `creature` SET `id`=1157 WHERE `guid`=9933; -- Cursed Sailor +UPDATE `creature` SET `id2`=1158 WHERE `guid`=9933; -- Cursed Marine +UPDATE `creature` SET `position_x`=4715.26, `position_y`=316.133, `position_z`=51.7249, `orientation`=2.58799 WHERE `guid`=38650; -- Moonstalker Sire +UPDATE `creature` SET `id`=2165 WHERE `guid`=38650; -- Grizzled Thistle Bear +UPDATE `creature` SET `id2`=2237 WHERE `guid`=38650; -- Moonstalker Sire +UPDATE `creature` SET `position_x`=-9727.15, `position_y`=-2279.36, `position_z`=63.3278, `orientation`=0 WHERE `guid`=16228; -- Redridge Poacher +UPDATE `creature` SET `id`=423 WHERE `guid`=16228; -- Redridge Mongrel +UPDATE `creature` SET `id2`=424 WHERE `guid`=16228; -- Redridge Poacher +UPDATE `creature` SET `id3`=712 WHERE `guid`=16228; -- Redridge Thrasher +UPDATE `creature` SET `position_x`=-10448.5, `position_y`=871.94, `position_z`=40.0722, `orientation`=0 WHERE `guid`=89524; -- Goretusk +UPDATE `creature` SET `id`=157 WHERE `guid`=89524; -- Goretusk +UPDATE `creature` SET `id2`=1109 WHERE `guid`=89524; -- Fleshripper +UPDATE `creature` SET `position_x`=2182.03, `position_y`=-1550.25, `position_z`=71.014, `orientation`=3.09872 WHERE `guid`=48588; -- Carrion Lurker +UPDATE `creature` SET `id`=1817 WHERE `guid`=48588; -- Diseased Wolf +UPDATE `creature` SET `id2`=1821 WHERE `guid`=48588; -- Carrion Lurker +UPDATE `creature` SET `position_x`=-5447.69, `position_y`=1385.6, `position_z`=25.9815, `orientation`=0.690835 WHERE `guid`=50305; -- Gordunni Warlock +UPDATE `creature` SET `id`=5234 WHERE `guid`=50305; -- Gordunni Mauler +UPDATE `creature` SET `id2`=5240 WHERE `guid`=50305; -- Gordunni Warlock +UPDATE `creature` SET `position_x`=-9152.96, `position_y`=-2020.19, `position_z`=121.167, `orientation`=4.62243 WHERE `guid`=16350; -- Redridge Brute +UPDATE `creature` SET `id`=426 WHERE `guid`=16350; -- Redridge Brute +UPDATE `creature` SET `id2`=430 WHERE `guid`=16350; -- Redridge Mystic +UPDATE `creature` SET `position_x`=-1373.75, `position_y`=1807.38, `position_z`=51.1847, `orientation`=3.29867 WHERE `guid`=28303; -- Ancient Kodo +UPDATE `creature` SET `id`=4701 WHERE `guid`=28303; -- Dying Kodo +UPDATE `creature` SET `id2`=4702 WHERE `guid`=28303; -- Ancient Kodo +UPDATE `creature` SET `position_x`=-217.567, `position_y`=-2983.48, `position_z`=91.75, `orientation`=4.30805 WHERE `guid`=20388; -- Razormane Water Seeker (WAYPOINTS) +UPDATE `creature` SET `id`=3267 WHERE `guid`=20388; -- Razormane Water Seeker +UPDATE `creature` SET `id2`=3268 WHERE `guid`=20388; -- Razormane Thornweaver +UPDATE `creature` SET `position_x`=-10439.4, `position_y`=929.171, `position_z`=38.8605, `orientation`=0 WHERE `guid`=90325; -- Goretusk +UPDATE `creature` SET `id`=157 WHERE `guid`=90325; -- Goretusk +UPDATE `creature` SET `id2`=1109 WHERE `guid`=90325; -- Fleshripper +UPDATE `creature` SET `position_x`=-4316.34, `position_y`=547.933, `position_z`=55.6331, `orientation`=0.865731 WHERE `guid`=50851; -- Longtooth Runner +UPDATE `creature` SET `id`=5268 WHERE `guid`=50851; -- Ironfur Bear +UPDATE `creature` SET `id2`=5286 WHERE `guid`=50851; -- Longtooth Runner +UPDATE `creature` SET `position_x`=-6315.69, `position_y`=183.199, `position_z`=8.49212, `orientation`=2.83624 WHERE `guid`=42946; -- Twilight Avenger +UPDATE `creature` SET `id`=11880 WHERE `guid`=42946; -- Twilight Avenger +UPDATE `creature` SET `id2`=15213 WHERE `guid`=42946; -- Twilight Overlord +UPDATE `creature` SET `position_x`=7250.1, `position_y`=-12.0975, `position_z`=10.0536, `orientation`=0.532668 WHERE `guid`=36946; -- Moonstalker Runt +UPDATE `creature` SET `id`=2070 WHERE `guid`=36946; -- Moonstalker Runt +UPDATE `creature` SET `id2`=2163 WHERE `guid`=36946; -- Thistle Bear +UPDATE `creature` SET `position_x`=-8733.75, `position_y`=-2252.45, `position_z`=154.608, `orientation`=1.04224 WHERE `guid`=17958; -- Blackrock Tracker +UPDATE `creature` SET `id`=435 WHERE `guid`=17958; -- Blackrock Champion +UPDATE `creature` SET `id2`=615 WHERE `guid`=17958; -- Blackrock Tracker +UPDATE `creature` SET `position_x`=-4968.52, `position_y`=-2998.35, `position_z`=317.157, `orientation`=0 WHERE `guid`=9150; -- Tunnel Rat Digger +UPDATE `creature` SET `id`=1174 WHERE `guid`=9150; -- Tunnel Rat Geomancer +UPDATE `creature` SET `id2`=1175 WHERE `guid`=9150; -- Tunnel Rat Digger +UPDATE `creature` SET `position_x`=-4896.19, `position_y`=-2986.55, `position_z`=317.419, `orientation`=2.14675 WHERE `guid`=9327; -- Tunnel Rat Digger +UPDATE `creature` SET `id`=1174 WHERE `guid`=9327; -- Tunnel Rat Geomancer +UPDATE `creature` SET `id2`=1175 WHERE `guid`=9327; -- Tunnel Rat Digger +UPDATE `creature` SET `position_x`=1784.72, `position_y`=1351.44, `position_z`=89.2821, `orientation`=1.3439 WHERE `guid`=29881; -- Scarlet Convert +UPDATE `creature` SET `position_x`=-2878.92, `position_y`=-2819.36, `position_z`=38.0564, `orientation`=4.39354 WHERE `guid`=33903; -- Darkmist Spider +UPDATE `creature` SET `id`=4376 WHERE `guid`=33903; -- Darkmist Spider +UPDATE `creature` SET `id2`=4378 WHERE `guid`=33903; -- Darkmist Recluse +UPDATE `creature` SET `position_x`=-2750.23, `position_y`=-3998.18, `position_z`=34.5185, `orientation`=3.53845 WHERE `guid`=73193; -- Mirefin Murloc +UPDATE `creature` SET `id`=4358 WHERE `guid`=73193; -- Mirefin Puddlejumper +UPDATE `creature` SET `id2`=4359 WHERE `guid`=73193; -- Mirefin Murloc +UPDATE `creature` SET `position_x`=-3639.8, `position_y`=-2556.37, `position_z`=57.5535, `orientation`=3.11038 WHERE `guid`=10584; -- Dragonmaw Shadowwarder +UPDATE `creature` SET `id`=1036 WHERE `guid`=10584; -- Dragonmaw Centurion +UPDATE `creature` SET `id2`=1038 WHERE `guid`=10584; -- Dragonmaw Shadowwarder +UPDATE `creature` SET `position_x`=-4985.32, `position_y`=-2986.91, `position_z`=315.073, `orientation`=0 WHERE `guid`=9149; -- Tunnel Rat Digger +UPDATE `creature` SET `id`=1174 WHERE `guid`=9149; -- Tunnel Rat Geomancer +UPDATE `creature` SET `id2`=1175 WHERE `guid`=9149; -- Tunnel Rat Digger +UPDATE `creature` SET `position_x`=-4928, `position_y`=-2973, `position_z`=317.315, `orientation`=0 WHERE `guid`=9323; -- Tunnel Rat Digger +UPDATE `creature` SET `id`=1174 WHERE `guid`=9323; -- Tunnel Rat Geomancer +UPDATE `creature` SET `id2`=1175 WHERE `guid`=9323; -- Tunnel Rat Digger +UPDATE `creature` SET `position_x`=-11309.3, `position_y`=1592.38, `position_z`=36.4241, `orientation`=1.36098 WHERE `guid`=89564; -- Skeletal Miner +UPDATE `creature` SET `id`=623 WHERE `guid`=89564; -- Skeletal Miner +UPDATE `creature` SET `id2`=624 WHERE `guid`=89564; -- Undead Excavator +UPDATE `creature` SET `id3`=625 WHERE `guid`=89564; -- Undead Dynamiter +UPDATE `creature` SET `position_x`=-11306.2, `position_y`=1559.98, `position_z`=36.6472, `orientation`=4.35336 WHERE `guid`=89568; -- Skeletal Miner +UPDATE `creature` SET `id`=623 WHERE `guid`=89568; -- Skeletal Miner +UPDATE `creature` SET `id2`=624 WHERE `guid`=89568; -- Undead Excavator +UPDATE `creature` SET `id3`=625 WHERE `guid`=89568; -- Undead Dynamiter +UPDATE `creature` SET `position_x`=-11288.2, `position_y`=1580.64, `position_z`=36.4544, `orientation`=2.90631 WHERE `guid`=89566; -- Undead Dynamiter +UPDATE `creature` SET `id`=624 WHERE `guid`=89566; -- Undead Excavator +UPDATE `creature` SET `id2`=625 WHERE `guid`=89566; -- Undead Dynamiter +UPDATE `creature` SET `position_x`=-11285.2, `position_y`=1586.9, `position_z`=36.7016, `orientation`=1.70868 WHERE `guid`=89991; -- Skeletal Miner +UPDATE `creature` SET `id`=623 WHERE `guid`=89991; -- Skeletal Miner +UPDATE `creature` SET `id2`=625 WHERE `guid`=89991; -- Undead Dynamiter +UPDATE `creature` SET `position_x`=-11340.8, `position_y`=1573.52, `position_z`=33.5342, `orientation`=4.15377 WHERE `guid`=89995; -- Skeletal Miner +UPDATE `creature` SET `id`=623 WHERE `guid`=89995; -- Skeletal Miner +UPDATE `creature` SET `id2`=624 WHERE `guid`=89995; -- Undead Excavator +UPDATE `creature` SET `id3`=625 WHERE `guid`=89995; -- Undead Dynamiter +UPDATE `creature` SET `position_x`=-11326.6, `position_y`=1563.44, `position_z`=26.3387, `orientation`=2.9526 WHERE `guid`=90125; -- Undead Dynamiter +UPDATE `creature` SET `id`=623 WHERE `guid`=90125; -- Skeletal Miner +UPDATE `creature` SET `id2`=624 WHERE `guid`=90125; -- Undead Excavator +UPDATE `creature` SET `id3`=625 WHERE `guid`=90125; -- Undead Dynamiter +UPDATE `creature` SET `position_x`=-11223.5, `position_y`=1393.16, `position_z`=89.2163, `orientation`=5.0527 WHERE `guid`=54440; -- Defias Highwayman +UPDATE `creature` SET `id`=122 WHERE `guid`=54440; -- Defias Highwayman +UPDATE `creature` SET `id2`=449 WHERE `guid`=54440; -- Defias Knuckleduster +UPDATE `creature` SET `position_x`=-3816.28, `position_y`=-3019.99, `position_z`=12.1676, `orientation`=4.27606 WHERE `guid`=10747; -- Mosshide Mongrel +UPDATE `creature` SET `id`=1008 WHERE `guid`=10747; -- Mosshide Mongrel +UPDATE `creature` SET `id2`=1010 WHERE `guid`=10747; -- Mosshide Fenrunner +UPDATE `creature` SET `position_x`=-10329.7, `position_y`=193.229, `position_z`=34.4206, `orientation`=3.35103 WHERE `guid`=4979; -- Plague Spreader +UPDATE `creature` SET `position_x`=-10332.3, `position_y`=349.159, `position_z`=58.8688, `orientation`=5.89893 WHERE `guid`=4976; -- Plague Spreader +UPDATE `creature` SET `id`=604 WHERE `guid`=4976; -- Plague Spreader +UPDATE `creature` SET `id2`=1110 WHERE `guid`=4976; -- Skeletal Raider +UPDATE `creature` SET `position_x`=-10314, `position_y`=376.513, `position_z`=65.3526, `orientation`=3.735 WHERE `guid`=4802; -- Skeletal Warder +UPDATE `creature` SET `position_x`=-3411.34, `position_y`=-2291.15, `position_z`=52.0819, `orientation`=0.515875 WHERE `guid`=9625; -- Dragonmaw Raider +UPDATE `creature` SET `position_x`=-10344.5, `position_y`=369.417, `position_z`=58.6431, `orientation`=3.78736 WHERE `guid`=4977; -- Skeletal Raider +UPDATE `creature` SET `id`=604 WHERE `guid`=4977; -- Plague Spreader +UPDATE `creature` SET `id2`=1110 WHERE `guid`=4977; -- Skeletal Raider +UPDATE `creature` SET `position_x`=-10379.9, `position_y`=424.51, `position_z`=29.1629, `orientation`=3.86236 WHERE `guid`=5093; -- Skeletal Raider +UPDATE `creature` SET `id`=785 WHERE `guid`=5093; -- Skeletal Warder +UPDATE `creature` SET `id2`=1110 WHERE `guid`=5093; -- Skeletal Raider +UPDATE `creature` SET `position_x`=-10233.6, `position_y`=289.612, `position_z`=2.88275, `orientation`=1.75183 WHERE `guid`=4399; -- Plague Spreader +UPDATE `creature` SET `id`=570 WHERE `guid`=4399; -- Brain Eater +UPDATE `creature` SET `id2`=604 WHERE `guid`=4399; -- Plague Spreader +UPDATE `creature` SET `position_x`=-946.911, `position_y`=1051.87, `position_z`=89.619, `orientation`=2.92531 WHERE `guid`=27017; -- Kolkar Mauler +UPDATE `creature` SET `id`=4634 WHERE `guid`=27017; -- Kolkar Mauler +UPDATE `creature` SET `id2`=4635 WHERE `guid`=27017; -- Kolkar Windchaser +UPDATE `creature` SET `id3`=4637 WHERE `guid`=27017; -- Kolkar Destroyer +UPDATE `creature` SET `position_x`=-10227, `position_y`=245.889, `position_z`=2.88275, `orientation`=1.37881 WHERE `guid`=4396; -- Brain Eater +UPDATE `creature` SET `id`=570 WHERE `guid`=4396; -- Brain Eater +UPDATE `creature` SET `id2`=604 WHERE `guid`=4396; -- Plague Spreader +UPDATE `creature` SET `position_x`=-11047.7, `position_y`=-948.254, `position_z`=64.3879, `orientation`=1.06465 WHERE `guid`=4329; -- Nightbane Dark Runner +UPDATE `creature` SET `id`=205 WHERE `guid`=4329; -- Nightbane Dark Runner +UPDATE `creature` SET `id2`=533 WHERE `guid`=4329; -- Nightbane Shadow Weaver +UPDATE `creature` SET `position_x`=-10412.7, `position_y`=-915.84, `position_z`=46.4532, `orientation`=5.49779 WHERE `guid`=6073; -- Nightbane Shadow Weaver +UPDATE `creature` SET `id`=533 WHERE `guid`=6073; -- Nightbane Shadow Weaver +UPDATE `creature` SET `id2`=898 WHERE `guid`=6073; -- Nightbane Worgen +UPDATE `creature` SET `position_x`=-8676.98, `position_y`=-2268.68, `position_z`=155.451, `orientation`=5.38076 WHERE `guid`=17333; -- Blackrock Tracker +UPDATE `creature` SET `id`=435 WHERE `guid`=17333; -- Blackrock Champion +UPDATE `creature` SET `id2`=615 WHERE `guid`=17333; -- Blackrock Tracker +UPDATE `creature` SET `position_x`=-7766.48, `position_y`=-2871.77, `position_z`=133.511, `orientation`=2.43017 WHERE `guid`=4578; -- Black Wyrmkin +UPDATE `creature` SET `id`=7040 WHERE `guid`=4578; -- Black Dragonspawn +UPDATE `creature` SET `id2`=7041 WHERE `guid`=4578; -- Black Wyrmkin +UPDATE `creature` SET `position_x`=-5123.63, `position_y`=-1033.74, `position_z`=-5.3837, `orientation`=5.76365 WHERE `guid`=21139; -- Highperch Wyvern +UPDATE `creature` SET `id`=4107 WHERE `guid`=21139; -- Highperch Wyvern +UPDATE `creature` SET `id2`=4109 WHERE `guid`=21139; -- Highperch Consort +UPDATE `creature` SET `position_x`=-6775.07, `position_y`=815.446, `position_z`=55.8303, `orientation`=3.31613 WHERE `guid`=113001; -- High Overlord Saurfang +UPDATE `creature` SET `position_x`=-13269.1, `position_y`=-497.587, `position_z`=13.8957, `orientation`=0 WHERE `guid`=756; -- Ironjaw Basilisk +UPDATE `creature` SET `position_x`=-2.57726, `position_y`=-915.778, `position_z`=56.5364, `orientation`=3.23139 WHERE `guid`=15537; -- Tarren Mill Deathguard +UPDATE `creature` SET `position_x`=6729.07, `position_y`=-4662.94, `position_z`=720.875, `orientation`=5.9877 WHERE `guid`=42290; -- Everlook Bruiser +UPDATE `creature` SET `position_x`=-6683.93, `position_y`=1583.53, `position_z`=5.56161, `orientation`=3.22356 WHERE `guid`=42955; -- Twilight Avenger +UPDATE `creature` SET `id`=11880 WHERE `guid`=42955; -- Twilight Avenger +UPDATE `creature` SET `id2`=11881 WHERE `guid`=42955; -- Twilight Geolord +UPDATE `creature` SET `position_x`=-4121.18, `position_y`=658.961, `position_z`=86.102, `orientation`=2.895 WHERE `guid`=50029; -- Grimtotem Raider +UPDATE `creature` SET `position_x`=10109.6, `position_y`=2512.38, `position_z`=1322.25, `orientation`=1.81643 WHERE `guid`=46426; -- Deer +UPDATE `creature` SET `position_x`=-9182.66, `position_y`=414.549, `position_z`=89.6295, `orientation`=5.24799 WHERE `guid`=80287; -- Fawn +UPDATE `creature` SET `id`=883 WHERE `guid`=80287; -- Deer +UPDATE `creature` SET `id2`=890 WHERE `guid`=80287; -- Fawn +UPDATE `creature` SET `position_x`=4382.1, `position_y`=549.622, `position_z`=56.0422, `orientation`=0.633284 WHERE `guid`=36963; -- Moonstalker Matriarch +UPDATE `creature` SET `position_x`=6597.46, `position_y`=6.11507, `position_z`=29.7948, `orientation`=5.65036 WHERE `guid`=37813; -- Vile Sprite +UPDATE `creature` SET `position_x`=4416.89, `position_y`=522.26, `position_z`=47.4806, `orientation`=5.79592 WHERE `guid`=36964; -- Moonstalker Matriarch +UPDATE `creature` SET `position_x`=6652.87, `position_y`=55.1552, `position_z`=31.3106, `orientation`=0.174533 WHERE `guid`=37817; -- Vile Sprite +UPDATE `creature` SET `position_x`=7152.78, `position_y`=-686.864, `position_z`=47.4559, `orientation`=2.61793 WHERE `guid`=36999; -- Dark Strand Fanatic +UPDATE `creature` SET `position_x`=7201.23, `position_y`=-709.41, `position_z`=57.9633, `orientation`=5.37294 WHERE `guid`=36977; -- Dark Strand Fanatic +UPDATE `creature` SET `position_x`=7190.56, `position_y`=-709.169, `position_z`=58.3296, `orientation`=0.752851 WHERE `guid`=36975; -- Dark Strand Fanatic +UPDATE `creature` SET `position_x`=9976.46, `position_y`=882.661, `position_z`=1326.57, `orientation`=4.92692 WHERE `guid`=49900; -- Nightsaber +UPDATE `creature` SET `position_x`=7351.26, `position_y`=-448.676, `position_z`=2.20663, `orientation`=1.61277 WHERE `guid`=38579; -- Encrusted Tide Crawler +UPDATE `creature` SET `position_x`=7749.97, `position_y`=-985.944, `position_z`=27.4089, `orientation`=4.7895 WHERE `guid`=38645; -- Moonstalker Sire +UPDATE `creature` SET `position_x`=6876.28, `position_y`=-640.262, `position_z`=87.4086, `orientation`=1.20283 WHERE `guid`=37520; -- Stormscale Siren +UPDATE `creature` SET `position_x`=6152.12, `position_y`=553.051, `position_z`=5.50442, `orientation`=0.24052 WHERE `guid`=38534; -- Pygmy Tide Crawler +UPDATE `creature` SET `position_x`=7317.46, `position_y`=-481.943, `position_z`=2.57821, `orientation`=3.94095 WHERE `guid`=38584; -- Encrusted Tide Crawler +UPDATE `creature` SET `position_x`=6105.12, `position_y`=543.324, `position_z`=2.62353, `orientation`=0.13575 WHERE `guid`=37938; -- Greymist Raider +UPDATE `creature` SET `position_x`=10050.1, `position_y`=1477.13, `position_z`=1279.61, `orientation`=3.45575 WHERE `guid`=46397; -- Gnarlpine Ambusher +UPDATE `creature` SET `position_x`=10050.1, `position_y`=1438.5, `position_z`=1275.15, `orientation`=1.43117 WHERE `guid`=46402; -- Gnarlpine Ambusher +UPDATE `creature` SET `position_x`=4588.52, `position_y`=896.26, `position_z`=1.2968, `orientation`=5.72468 WHERE `guid`=38172; -- Greymist Oracle +UPDATE `creature` SET `position_x`=4599.77, `position_y`=890.573, `position_z`=1.32062, `orientation`=2.60949 WHERE `guid`=38173; -- Greymist Oracle +UPDATE `creature` SET `position_x`=6018.26, `position_y`=373.882, `position_z`=22.4277, `orientation`=5.23683 WHERE `guid`=37319; -- Blackwood Pathfinder +UPDATE `creature` SET `position_x`=-3047.65, `position_y`=-1702.53, `position_z`=10.6509, `orientation`=5.44456 WHERE `guid`=9992; -- Mosshide Trapper +UPDATE `creature` SET `position_x`=-2940.48, `position_y`=-1685.9, `position_z`=9.69197, `orientation`=1.59726 WHERE `guid`=9998; -- Mosshide Brute +UPDATE `creature` SET `position_x`=-2956.41, `position_y`=-1666.57, `position_z`=9.56085, `orientation`=5.20108 WHERE `guid`=9993; -- Mosshide Brute +UPDATE `creature` SET `position_x`=-2982.33, `position_y`=-1675.94, `position_z`=13.7804, `orientation`=0.301604 WHERE `guid`=10032; -- Mosshide Brute +UPDATE `creature` SET `position_x`=3104.71, `position_y`=510.132, `position_z`=5.01337, `orientation`=5.33071 WHERE `guid`=32942; -- Saltspittle Muckdweller +UPDATE `creature` SET `position_x`=-10875.5, `position_y`=-679.874, `position_z`=50.4452, `orientation`=1.1153 WHERE `guid`=6035; -- Young Black Ravager +UPDATE `creature` SET `position_x`=-8838.78, `position_y`=982.277, `position_z`=98.2998, `orientation`=4.12718 WHERE `guid`=90450; -- Rat +UPDATE `creature` SET `position_x`=-2799.5, `position_y`=-1013.49, `position_z`=-12.8674, `orientation`=5.44896 WHERE `guid`=9891; -- Cursed Marine +UPDATE `creature` SET `position_x`=-4114.63, `position_y`=-815.76, `position_z`=6.49488, `orientation`=1.97222 WHERE `guid`=10891; -- Bluegill Raider +UPDATE `creature` SET `position_x`=-4085.27, `position_y`=-811.075, `position_z`=2.15615, `orientation`=4.13028 WHERE `guid`=10906; -- Bluegill Raider +UPDATE `creature` SET `position_x`=-4082.64, `position_y`=-782.233, `position_z`=-10.7, `orientation`=5.06145 WHERE `guid`=10900; -- Bluegill Raider +UPDATE `creature` SET `position_x`=-10609.8, `position_y`=-1166.62, `position_z`=27.114, `orientation`=3.15905 WHERE `guid`=4242; -- Matt Johnson +UPDATE `creature` SET `position_x`=1703.88, `position_y`=-2279.16, `position_z`=59.1379, `orientation`=2.09077 WHERE `guid`=46287; -- Hungering Wraith +UPDATE `creature` SET `position_x`=-8415.83, `position_y`=-2915.99, `position_z`=8.70803, `orientation`=3.77724 WHERE `guid`=23204; -- Dunemaul Ogre (WAYPOINTS) +UPDATE `creature` SET `id`=5471 WHERE `guid`=23204; -- Dunemaul Ogre +UPDATE `creature` SET `id2`=5472 WHERE `guid`=23204; -- Dunemaul Enforcer +UPDATE `creature` SET `id3`=5473 WHERE `guid`=23204; -- Dunemaul Ogre Mage +UPDATE `creature` SET `id4`=5474 WHERE `guid`=23204; -- Dunemaul Brute +UPDATE `creature` SET `id5`=5475 WHERE `guid`=23204; -- Dunemaul Warlock +UPDATE `creature` SET `position_x`=-8504.58, `position_y`=-2860.84, `position_z`=10.5179, `orientation`=5.40393 WHERE `guid`=23145; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=-10487.2, `position_y`=-916.078, `position_z`=45.4734, `orientation`=1.90241 WHERE `guid`=5888; -- Nightbane Shadow Weaver +UPDATE `creature` SET `id`=205 WHERE `guid`=5888; -- Nightbane Dark Runner +UPDATE `creature` SET `id2`=533 WHERE `guid`=5888; -- Nightbane Shadow Weaver +UPDATE `creature` SET `position_x`=-8478.3, `position_y`=-2826.79, `position_z`=10.3821, `orientation`=6.03884 WHERE `guid`=23149; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=-13173.9, `position_y`=-278.423, `position_z`=6.34291, `orientation`=0.593967 WHERE `guid`=1270; -- Thrashtail Basilisk +UPDATE `creature` SET `position_x`=-8475.18, `position_y`=-2857.05, `position_z`=8.72244, `orientation`=5.01448 WHERE `guid`=23192; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=-10321.8, `position_y`=-882.665, `position_z`=39.1309, `orientation`=1.97222 WHERE `guid`=6071; -- Nightbane Worgen +UPDATE `creature` SET `position_x`=-10316.3, `position_y`=-1012.83, `position_z`=44.9725, `orientation`=3.95703 WHERE `guid`=6043; -- Black Ravager +UPDATE `creature` SET `position_x`=-926.829, `position_y`=-675.17, `position_z`=0.786674, `orientation`=5.72163 WHERE `guid`=15997; -- Daggerspine Siren +UPDATE `creature` SET `position_x`=-8949.97, `position_y`=-1991.74, `position_z`=137.563, `orientation`=0.296706 WHERE `guid`=11680; -- Redridge Basher +UPDATE `creature` SET `position_x`=-10646, `position_y`=-899.506, `position_z`=49.9652, `orientation`=0.645772 WHERE `guid`=6107; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=-10416, `position_y`=-848.527, `position_z`=48.8187, `orientation`=4.79966 WHERE `guid`=6108; -- Nightbane Dark Runner +UPDATE `creature` SET `id`=205 WHERE `guid`=6108; -- Nightbane Dark Runner +UPDATE `creature` SET `id2`=533 WHERE `guid`=6108; -- Nightbane Shadow Weaver +UPDATE `creature` SET `position_x`=-10432.9, `position_y`=-811.574, `position_z`=50.2523, `orientation`=4.99164 WHERE `guid`=6121; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=-9516.24, `position_y`=-115.956, `position_z`=60.815, `orientation`=0.946749 WHERE `guid`=79636; -- Mangy Wolf +UPDATE `creature` SET `position_x`=-12878, `position_y`=-883.569, `position_z`=55.0225, `orientation`=4.79944 WHERE `guid`=1957; -- Skullsplitter Warrior +UPDATE `creature` SET `position_x`=-10578.3, `position_y`=-848.727, `position_z`=49.4159, `orientation`=3.21141 WHERE `guid`=6059; -- Nightbane Shadow Weaver +UPDATE `creature` SET `id`=205 WHERE `guid`=6059; -- Nightbane Dark Runner +UPDATE `creature` SET `id2`=533 WHERE `guid`=6059; -- Nightbane Shadow Weaver +UPDATE `creature` SET `position_x`=-10349.3, `position_y`=-984.797, `position_z`=49.2722, `orientation`=2.32846 WHERE `guid`=6012; -- Black Ravager Mastiff +UPDATE `creature` SET `position_x`=-8706.85, `position_y`=-2326.41, `position_z`=156.991, `orientation`=4.84572 WHERE `guid`=17324; -- Blackrock Tracker +UPDATE `creature` SET `id`=435 WHERE `guid`=17324; -- Blackrock Champion +UPDATE `creature` SET `id2`=615 WHERE `guid`=17324; -- Blackrock Tracker +UPDATE `creature` SET `position_x`=-10582.6, `position_y`=-949.873, `position_z`=49.5139, `orientation`=5.27089 WHERE `guid`=5886; -- Nightbane Dark Runner +UPDATE `creature` SET `id`=205 WHERE `guid`=5886; -- Nightbane Dark Runner +UPDATE `creature` SET `id2`=533 WHERE `guid`=5886; -- Nightbane Shadow Weaver +UPDATE `creature` SET `position_x`=-12118.9, `position_y`=350.437, `position_z`=1.58413, `orientation`=1.96568 WHERE `guid`=2483; -- Elder Saltwater Crocolisk +UPDATE `creature` SET `position_x`=-10683.3, `position_y`=-816.291, `position_z`=61.1986, `orientation`=4.5204 WHERE `guid`=5891; -- Nightbane Worgen +UPDATE `creature` SET `position_x`=-3476.97, `position_y`=-2480.92, `position_z`=38.0587, `orientation`=2.63951 WHERE `guid`=10753; -- Dragonmaw Raider +UPDATE `creature` SET `position_x`=-8732.98, `position_y`=-2164.62, `position_z`=159.631, `orientation`=5.89921 WHERE `guid`=10158; -- Blackrock Summoner +UPDATE `creature` SET `position_x`=-8697.62, `position_y`=-2166.55, `position_z`=157.308, `orientation`=4.51488 WHERE `guid`=17325; -- Blackrock Tracker +UPDATE `creature` SET `position_x`=-10180.8, `position_y`=-2583.99, `position_z`=28.511, `orientation`=5.43542 WHERE `guid`=42816; -- Swampwalker +UPDATE `creature` SET `position_x`=-10483.8, `position_y`=-976.35, `position_z`=45.2102, `orientation`=3.7001 WHERE `guid`=5198; -- Nightbane Worgen +UPDATE `creature` SET `position_x`=-3475.11, `position_y`=-2331.17, `position_z`=62.9978, `orientation`=1.11316 WHERE `guid`=9827; -- Dragonmaw Raider +UPDATE `creature` SET `position_x`=-10610.5, `position_y`=-981.917, `position_z`=64.3357, `orientation`=1.74533 WHERE `guid`=5884; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=-10185.3, `position_y`=-2520.63, `position_z`=29.5837, `orientation`=3.90369 WHERE `guid`=42833; -- Swampwalker +UPDATE `creature` SET `id`=764 WHERE `guid`=42833; -- Swampwalker +UPDATE `creature` SET `id2`=765 WHERE `guid`=42833; -- Swampwalker Elder +UPDATE `creature` SET `position_x`=-10148, `position_y`=-2416.17, `position_z`=27.6206, `orientation`=1.09847 WHERE `guid`=42828; -- Swampwalker Elder +UPDATE `creature` SET `position_x`=-10450.7, `position_y`=-882.503, `position_z`=44.4315, `orientation`=0.0872665 WHERE `guid`=6060; -- Nightbane Dark Runner +UPDATE `creature` SET `id`=205 WHERE `guid`=6060; -- Nightbane Dark Runner +UPDATE `creature` SET `id2`=533 WHERE `guid`=6060; -- Nightbane Shadow Weaver +UPDATE `creature` SET `position_x`=-12908.4, `position_y`=-617.785, `position_z`=53.5924, `orientation`=0 WHERE `guid`=1368; -- Skullsplitter Hunter +UPDATE `creature` SET `position_x`=-6750.76, `position_y`=-1278.94, `position_z`=-269.204, `orientation`=1.23832 WHERE `guid`=24095; -- Tar Beast +UPDATE `creature` SET `position_x`=-11651.1, `position_y`=-748.181, `position_z`=32.5541, `orientation`=5.30529 WHERE `guid`=2250; -- Kurzen Jungle Fighter +UPDATE `creature` SET `position_x`=-11952.7, `position_y`=-717.421, `position_z`=18.7226, `orientation`=5.22542 WHERE `guid`=1425; -- Venture Co. Geologist +UPDATE `creature` SET `position_x`=-10119, `position_y`=-2517.71, `position_z`=28.4303, `orientation`=0.352936 WHERE `guid`=42817; -- Swampwalker Elder +UPDATE `creature` SET `position_x`=-11485.7, `position_y`=-783.635, `position_z`=51.0808, `orientation`=5.05264 WHERE `guid`=2256; -- Kurzen Jungle Fighter +UPDATE `creature` SET `position_x`=-11517.7, `position_y`=-850.74, `position_z`=68.3322, `orientation`=4.83526 WHERE `guid`=562; -- Crystal Spine Basilisk +UPDATE `creature` SET `position_x`=-10631.1, `position_y`=-875.728, `position_z`=49.3616, `orientation`=5.7909 WHERE `guid`=6120; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=-10647, `position_y`=-883.203, `position_z`=50.4648, `orientation`=0.031456 WHERE `guid`=6125; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=-10650.1, `position_y`=-912.49, `position_z`=52.2514, `orientation`=2.63575 WHERE `guid`=6119; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=-1794.21, `position_y`=-1594.88, `position_z`=53.5377, `orientation`=3.67491 WHERE `guid`=14627; -- Boulderfist Shaman +UPDATE `creature` SET `position_x`=-12550.1, `position_y`=-781.668, `position_z`=40.8392, `orientation`=0.549933 WHERE `guid`=2000; -- Skullsplitter Warrior +UPDATE `creature` SET `position_x`=-12583.8, `position_y`=-817.967, `position_z`=50.4329, `orientation`=1.50754 WHERE `guid`=2001; -- Skullsplitter Warrior +UPDATE `creature` SET `position_x`=-10246.3, `position_y`=-2584.26, `position_z`=27.0105, `orientation`=3.86381 WHERE `guid`=42841; -- Swampwalker +UPDATE `creature` SET `position_x`=-12529.2, `position_y`=-741.399, `position_z`=39.7588, `orientation`=0 WHERE `guid`=2039; -- Skullsplitter Warrior +UPDATE `creature` SET `position_x`=-12157.6, `position_y`=-50.2741, `position_z`=0.577247, `orientation`=4.48664 WHERE `guid`=1189; -- Murkgill Hunter +UPDATE `creature` SET `position_x`=-7219.97, `position_y`=-4646.93, `position_z`=9.41664, `orientation`=4.99429 WHERE `guid`=23520; -- Wastewander Thief +UPDATE `creature` SET `position_x`=-13259.7, `position_y`=-524.642, `position_z`=16.3927, `orientation`=0 WHERE `guid`=946; -- Ironjaw Basilisk +UPDATE `creature` SET `position_x`=-10213.8, `position_y`=-2484.35, `position_z`=27.3181, `orientation`=5.32656 WHERE `guid`=42829; -- Swampwalker +UPDATE `creature` SET `position_x`=-27.8911, `position_y`=-552.374, `position_z`=151.23, `orientation`=3.52097 WHERE `guid`=17387; -- Syndicate Footpad +UPDATE `creature` SET `position_x`=-10315.1, `position_y`=-949.926, `position_z`=40.7544, `orientation`=1.20536 WHERE `guid`=6013; -- Black Ravager Mastiff +UPDATE `creature` SET `position_x`=-37.743, `position_y`=-554.79, `position_z`=151.256, `orientation`=3.33358 WHERE `guid`=17381; -- Syndicate Footpad +UPDATE `creature` SET `position_x`=-27.9131, `position_y`=-540.693, `position_z`=151.369, `orientation`=4.46698 WHERE `guid`=17386; -- Syndicate Footpad +UPDATE `creature` SET `position_x`=-10289.3, `position_y`=-987.658, `position_z`=49.1081, `orientation`=1.04788 WHERE `guid`=6041; -- Black Ravager +UPDATE `creature` SET `position_x`=-50.3751, `position_y`=-581.484, `position_z`=154.143, `orientation`=5.95878 WHERE `guid`=17583; -- Syndicate Footpad +UPDATE `creature` SET `position_x`=-13259.7, `position_y`=-552.477, `position_z`=17.2964, `orientation`=3.48221 WHERE `guid`=952; -- Ironjaw Basilisk +UPDATE `creature` SET `position_x`=-10415.7, `position_y`=-982.013, `position_z`=45.3532, `orientation`=5.32325 WHERE `guid`=6065; -- Nightbane Worgen +UPDATE `creature` SET `position_x`=-9381.67, `position_y`=-3163.85, `position_z`=83.7268, `orientation`=1.29154 WHERE `guid`=7461; -- Shadowhide Gnoll +UPDATE `creature` SET `position_x`=-13285.9, `position_y`=-384.492, `position_z`=13.1508, `orientation`=2.84859 WHERE `guid`=1276; -- Thrashtail Basilisk +UPDATE `creature` SET `position_x`=-13817.5, `position_y`=82.7294, `position_z`=25.5978, `orientation`=4.05265 WHERE `guid`=2522; -- Elder Mistvale Gorilla +UPDATE `creature` SET `position_x`=-12845.5, `position_y`=-571.599, `position_z`=61.1235, `orientation`=5.24106 WHERE `guid`=1861; -- Skullsplitter Warrior +UPDATE `creature` SET `position_x`=-7286.26, `position_y`=-4555.05, `position_z`=9.86706, `orientation`=1.32463 WHERE `guid`=23514; -- Wastewander Thief +UPDATE `creature` SET `id`=5616 WHERE `guid`=23514; -- Wastewander Thief +UPDATE `creature` SET `id2`=5617 WHERE `guid`=23514; -- Wastewander Shadow Mage +UPDATE `creature` SET `id3`=5618 WHERE `guid`=23514; -- Wastewander Bandit +UPDATE `creature` SET `position_x`=-7276.41, `position_y`=-4541.95, `position_z`=8.9601, `orientation`=4.18879 WHERE `guid`=23555; -- Wastewander Thief +UPDATE `creature` SET `id`=5616 WHERE `guid`=23555; -- Wastewander Thief +UPDATE `creature` SET `id2`=5617 WHERE `guid`=23555; -- Wastewander Shadow Mage +UPDATE `creature` SET `id3`=5618 WHERE `guid`=23555; -- Wastewander Bandit +UPDATE `creature` SET `position_x`=-7487.84, `position_y`=-4514.49, `position_z`=10.9213, `orientation`=6.24349 WHERE `guid`=23546; -- Wastewander Rogue +UPDATE `creature` SET `position_x`=2516.32, `position_y`=777.398, `position_z`=46.9346, `orientation`=4.41568 WHERE `guid`=44450; -- Roach +UPDATE `creature` SET `position_x`=-12482.8, `position_y`=-915.69, `position_z`=39.9092, `orientation`=3.07726 WHERE `guid`=845; -- Mosh'Ogg Warmonger +UPDATE `creature` SET `position_x`=-12449.3, `position_y`=-947.535, `position_z`=41.7003, `orientation`=5.92347 WHERE `guid`=847; -- Mosh'Ogg Warmonger +UPDATE `creature` SET `position_x`=-7509.78, `position_y`=-4486.05, `position_z`=9.82121, `orientation`=2.80998 WHERE `guid`=23522; -- Wastewander Rogue +UPDATE `creature` SET `position_x`=-12434.5, `position_y`=-844.062, `position_z`=41.0555, `orientation`=0.750492 WHERE `guid`=1289; -- Mosh'Ogg Warmonger +UPDATE `creature` SET `position_x`=-12433.5, `position_y`=-836.305, `position_z`=40.3058, `orientation`=5.37561 WHERE `guid`=1290; -- Mosh'Ogg Warmonger +UPDATE `creature` SET `position_x`=-10084.5, `position_y`=-2419.16, `position_z`=27.0286, `orientation`=3.67605 WHERE `guid`=42825; -- Swampwalker Elder +UPDATE `creature` SET `position_x`=-10089, `position_y`=-2480.37, `position_z`=28.3087, `orientation`=2.06041 WHERE `guid`=42823; -- Swampwalker Elder +UPDATE `creature` SET `position_x`=-12385.9, `position_y`=-887.85, `position_z`=46.9098, `orientation`=3.40833 WHERE `guid`=1299; -- Mosh'Ogg Warmonger +UPDATE `creature` SET `position_x`=2583.47, `position_y`=955.228, `position_z`=52.3944, `orientation`=4.71239 WHERE `guid`=31965; -- Black Rat +UPDATE `creature` SET `position_x`=-10580.4, `position_y`=-1184.18, `position_z`=27.2808, `orientation`=6.15416 WHERE `guid`=5960; -- Watcher Fraizer +UPDATE `creature` SET `position_x`=379.689, `position_y`=-548.648, `position_z`=162.825, `orientation`=3.97033 WHERE `guid`=17105; -- Crushridge Ogre +UPDATE `creature` SET `position_x`=-4812.84, `position_y`=3451.87, `position_z`=12.3797, `orientation`=2.58899 WHERE `guid`=51546; -- Hatecrest Warrior +UPDATE `creature` SET `position_x`=-7915.28, `position_y`=-5181.62, `position_z`=3.59699, `orientation`=2.04176 WHERE `guid`=23341; -- Southsea Pirate +UPDATE `creature` SET `position_x`=-15013.2, `position_y`=266.118, `position_z`=18.2395, `orientation`=3.90131 WHERE `guid`=2621; -- Bloodsail Deckhand +UPDATE `creature` SET `id`=4505 WHERE `guid`=2621; -- Bloodsail Deckhand +UPDATE `creature` SET `id2`=4506 WHERE `guid`=2621; -- Bloodsail Swabby +UPDATE `creature` SET `position_x`=-415.149, `position_y`=2619.85, `position_z`=-6.51062, `orientation`=0.327703 WHERE `guid`=28525; -- Slitherblade Sorceress +UPDATE `creature` SET `position_x`=-7888.62, `position_y`=-5157.4, `position_z`=5.65338, `orientation`=0.0998853 WHERE `guid`=23291; -- Southsea Pirate +UPDATE `creature` SET `position_x`=-7876.6, `position_y`=-5136.7, `position_z`=6.22613, `orientation`=4.76625 WHERE `guid`=23336; -- Southsea Pirate +UPDATE `creature` SET `position_x`=432.62, `position_y`=-574.33, `position_z`=171.27, `orientation`=2.17984 WHERE `guid`=16775; -- Crushridge Brute +UPDATE `creature` SET `position_x`=-7851.96, `position_y`=-5083.82, `position_z`=5.44623, `orientation`=3.66456 WHERE `guid`=23293; -- Southsea Pirate +UPDATE `creature` SET `position_x`=2374.82, `position_y`=1045.27, `position_z`=25.352, `orientation`=4.88692 WHERE `guid`=87249; -- Roach +UPDATE `creature` SET `position_x`=5871.75, `position_y`=-697.42, `position_z`=380.946, `orientation`=1.30082 WHERE `guid`=39694; -- Felpaw Scavenger +UPDATE `creature` SET `position_x`=5816.76, `position_y`=-740.568, `position_z`=388.377, `orientation`=4.99614 WHERE `guid`=39509; -- Felpaw Scavenger +UPDATE `creature` SET `position_x`=5856.4, `position_y`=-699.014, `position_z`=379.651, `orientation`=4.56279 WHERE `guid`=39693; -- Felpaw Scavenger +UPDATE `creature` SET `position_x`=-7983.74, `position_y`=-5111.24, `position_z`=7.4834, `orientation`=3.88941 WHERE `guid`=23292; -- Southsea Pirate +UPDATE `creature` SET `position_x`=5849.95, `position_y`=-733.614, `position_z`=388.084, `orientation`=4.57313 WHERE `guid`=39505; -- Felpaw Scavenger +UPDATE `creature` SET `position_x`=-7521.77, `position_y`=-4282.31, `position_z`=10.7269, `orientation`=5.29673 WHERE `guid`=23531; -- Wastewander Rogue +UPDATE `creature` SET `position_x`=2338.3, `position_y`=1000.86, `position_z`=26.1588, `orientation`=2.74017 WHERE `guid`=87263; -- Roach +UPDATE `creature` SET `position_x`=-11849.4, `position_y`=-152.171, `position_z`=16.3182, `orientation`=5.62262 WHERE `guid`=1332; -- Mistvale Gorilla +UPDATE `creature` SET `position_x`=-6480.28, `position_y`=-1284.54, `position_z`=-272.845, `orientation`=0.809994 WHERE `guid`=24128; -- Tar Lurker +UPDATE `creature` SET `position_x`=2082.18, `position_y`=-1808.4, `position_z`=58.4124, `orientation`=5.70723 WHERE `guid`=45363; -- Scarlet Hunter +UPDATE `creature` SET `position_x`=-10451.6, `position_y`=-947.285, `position_z`=49.8712, `orientation`=5.48033 WHERE `guid`=5190; -- Nightbane Worgen +UPDATE `creature` SET `id`=533 WHERE `guid`=5190; -- Nightbane Shadow Weaver +UPDATE `creature` SET `id2`=898 WHERE `guid`=5190; -- Nightbane Worgen +UPDATE `creature` SET `position_x`=1615.49, `position_y`=-2294.11, `position_z`=59.5, `orientation`=6.13178 WHERE `guid`=45307; -- Hungering Wraith +UPDATE `creature` SET `position_x`=-12948.8, `position_y`=-146.727, `position_z`=13.6119, `orientation`=0.47711 WHERE `guid`=1194; -- Cold Eye Basilisk +UPDATE `creature` SET `position_x`=-4755.24, `position_y`=3421.27, `position_z`=16.2819, `orientation`=5.81037 WHERE `guid`=51549; -- Hatecrest Warrior +UPDATE `creature` SET `position_x`=1642.69, `position_y`=-2282.88, `position_z`=59.0728, `orientation`=1.25327 WHERE `guid`=48144; -- Hungering Wraith +UPDATE `creature` SET `position_x`=1693.8, `position_y`=-2286.95, `position_z`=59.292, `orientation`=1.05055 WHERE `guid`=47459; -- Hungering Wraith +UPDATE `creature` SET `position_x`=-4824.14, `position_y`=3385.28, `position_z`=14.7501, `orientation`=6.07857 WHERE `guid`=51484; -- Hatecrest Warrior +UPDATE `creature` SET `position_x`=-12947.9, `position_y`=217.52, `position_z`=18.204, `orientation`=1.90504 WHERE `guid`=1911; -- Jungle Stalker +UPDATE `creature` SET `position_x`=-1236.37, `position_y`=-2077.08, `position_z`=52.103, `orientation`=5.35039 WHERE `guid`=14233; -- Boulderfist Enforcer +UPDATE `creature` SET `position_x`=-1233.58, `position_y`=-2001.72, `position_z`=37.7907, `orientation`=5.61148 WHERE `guid`=11803; -- Witherbark Witch Doctor +UPDATE `creature` SET `position_x`=-1238, `position_y`=-2015.2, `position_z`=44.1085, `orientation`=6.11936 WHERE `guid`=14571; -- Boulderfist Enforcer +UPDATE `creature` SET `position_x`=-12484.4, `position_y`=-516.474, `position_z`=13.611, `orientation`=1.49658 WHERE `guid`=1169; -- Jungle Thunderer +UPDATE `creature` SET `position_x`=-1168.5, `position_y`=-2047.56, `position_z`=37.5313, `orientation`=0.733038 WHERE `guid`=13417; -- Boulderfist Enforcer +UPDATE `creature` SET `position_x`=-10038.8, `position_y`=-3524.65, `position_z`=21.9555, `orientation`=3.76991 WHERE `guid`=38901; -- Lost One Fisherman +UPDATE `creature` SET `position_x`=-4951.97, `position_y`=2217.77, `position_z`=-0.732018, `orientation`=3.74633 WHERE `guid`=50132; -- Sea Spray +UPDATE `creature` SET `position_x`=-7315.96, `position_y`=-2414.52, `position_z`=279.659, `orientation`=3.13207 WHERE `guid`=7691; -- Greater Rock Elemental +UPDATE `creature` SET `position_x`=-10980.2, `position_y`=-477.549, `position_z`=33.8447, `orientation`=1.30404 WHERE `guid`=4867; -- Defias Night Runner +UPDATE `creature` SET `position_x`=-7383.97, `position_y`=-4722.36, `position_z`=9.4878, `orientation`=1.14776 WHERE `guid`=23507; -- Wastewander Thief +UPDATE `creature` SET `position_x`=-11816.1, `position_y`=-516.36, `position_z`=16.7816, `orientation`=3.95316 WHERE `guid`=1868; -- Stranglethorn Tiger +UPDATE `creature` SET `position_x`=-7347.36, `position_y`=-2453.63, `position_z`=304.13, `orientation`=3.9244 WHERE `guid`=7242; -- Greater Rock Elemental +UPDATE `creature` SET `position_x`=-6858.78, `position_y`=-2507.83, `position_z`=241.143, `orientation`=4.99548 WHERE `guid`=7408; -- Giant Buzzard +UPDATE `creature` SET `position_x`=-10306.5, `position_y`=354.553, `position_z`=59.8763, `orientation`=5.06006 WHERE `guid`=5130; -- Skeletal Raider +UPDATE `creature` SET `id`=604 WHERE `guid`=5130; -- Plague Spreader +UPDATE `creature` SET `id2`=1110 WHERE `guid`=5130; -- Skeletal Raider +UPDATE `creature` SET `position_x`=-12050.1, `position_y`=-883.366, `position_z`=44.5503, `orientation`=3.78974 WHERE `guid`=1424; -- Shadowmaw Panther +UPDATE `creature` SET `position_x`=-3914.05, `position_y`=-2839.14, `position_z`=44.7877, `orientation`=2.95636 WHERE `guid`=73797; -- Theramore Deserter +UPDATE `creature` SET `position_x`=-3920.23, `position_y`=-2842.56, `position_z`=45.1626, `orientation`=3.1765 WHERE `guid`=33798; -- Theramore Deserter +UPDATE `creature` SET `position_x`=-10319.5, `position_y`=367.407, `position_z`=60.5871, `orientation`=3.76196 WHERE `guid`=5049; -- Skeletal Raider +UPDATE `creature` SET `id`=570 WHERE `guid`=5049; -- Brain Eater +UPDATE `creature` SET `id2`=1110 WHERE `guid`=5049; -- Skeletal Raider +UPDATE `creature` SET `position_x`=-10327.2, `position_y`=390.077, `position_z`=59.8763, `orientation`=4.19821 WHERE `guid`=5128; -- Plague Spreader +UPDATE `creature` SET `id`=604 WHERE `guid`=5128; -- Plague Spreader +UPDATE `creature` SET `id2`=1110 WHERE `guid`=5128; -- Skeletal Raider +UPDATE `creature` SET `position_x`=-10401.5, `position_y`=408.516, `position_z`=47.1134, `orientation`=0.911449 WHERE `guid`=5122; -- Skeletal Raider +UPDATE `creature` SET `position_x`=-10426.3, `position_y`=398.539, `position_z`=46.1249, `orientation`=5.64415 WHERE `guid`=5120; -- Skeletal Raider +UPDATE `creature` SET `position_x`=-10446, `position_y`=433.045, `position_z`=42.6208, `orientation`=5.45479 WHERE `guid`=5088; -- Skeletal Healer +UPDATE `creature` SET `position_x`=-10410.5, `position_y`=391.692, `position_z`=46.8337, `orientation`=3.86621 WHERE `guid`=5091; -- Skeletal Raider +UPDATE `creature` SET `position_x`=-6581.9, `position_y`=-1683.36, `position_z`=-270.382, `orientation`=5.22251 WHERE `guid`=24098; -- Tar Beast +UPDATE `creature` SET `position_x`=-6550.23, `position_y`=-1655.71, `position_z`=-275.467, `orientation`=3.94382 WHERE `guid`=24202; -- Tar Beast +UPDATE `creature` SET `position_x`=1413.83, `position_y`=-1686.17, `position_z`=67.6838, `orientation`=4.48092 WHERE `guid`=48283; -- Soulless Ghoul +UPDATE `creature` SET `position_x`=1536.27, `position_y`=-1859.45, `position_z`=60.5979, `orientation`=4.15413 WHERE `guid`=47127; -- Rotting Ghoul +UPDATE `creature` SET `position_x`=-10328.3, `position_y`=-1214.54, `position_z`=36.3849, `orientation`=4.36173 WHERE `guid`=6077; -- Fetid Corpse +UPDATE `creature` SET `position_x`=-11454.2, `position_y`=-269.32, `position_z`=45.2273, `orientation`=1.55713 WHERE `guid`=1644; -- Young Panther +UPDATE `creature` SET `id`=681 WHERE `guid`=1644; -- Young Stranglethorn Tiger +UPDATE `creature` SET `id2`=683 WHERE `guid`=1644; -- Young Panther +UPDATE `creature` SET `position_x`=-2088.18, `position_y`=-2061.98, `position_z`=2.40689, `orientation`=2.23472 WHERE `guid`=11197; -- Blackwater Deckhand +UPDATE `creature` SET `position_x`=-2100.86, `position_y`=-2047.79, `position_z`=4.63113, `orientation`=2.54657 WHERE `guid`=11198; -- Blackwater Deckhand +UPDATE `creature` SET `position_x`=-2120.15, `position_y`=-1990.42, `position_z`=4.05787, `orientation`=3.84837 WHERE `guid`=11707; -- Toad +UPDATE `creature` SET `position_x`=-2085.53, `position_y`=-2080.15, `position_z`=7.31516, `orientation`=4.20662 WHERE `guid`=11714; -- Toad +UPDATE `creature` SET `position_x`=2082.89, `position_y`=-2814.96, `position_z`=84.6237, `orientation`=5.15487 WHERE `guid`=92732; -- Plaguebat +UPDATE `creature` SET `position_x`=6484.06, `position_y`=-1483.76, `position_z`=438.2, `orientation`=4.02855 WHERE `guid`=39644; -- Warpwood Moss Flayer +UPDATE `creature` SET `position_x`=6382.53, `position_y`=-1518.68, `position_z`=441.28, `orientation`=4.78178 WHERE `guid`=39575; -- Warpwood Moss Flayer +UPDATE `creature` SET `position_x`=6496.13, `position_y`=-1549.58, `position_z`=438.474, `orientation`=4.77849 WHERE `guid`=40285; -- Warpwood Moss Flayer +UPDATE `creature` SET `position_x`=6451.2, `position_y`=-1609.99, `position_z`=434.144, `orientation`=1.40894 WHERE `guid`=40232; -- Warpwood Moss Flayer +UPDATE `creature` SET `position_x`=6377.33, `position_y`=-1779.09, `position_z`=420.898, `orientation`=2.93215 WHERE `guid`=39566; -- Warpwood Moss Flayer +UPDATE `creature` SET `position_x`=-10283.4, `position_y`=378.092, `position_z`=15.7686, `orientation`=2.584 WHERE `guid`=4885; -- Skeletal Raider +UPDATE `creature` SET `position_x`=-10238.2, `position_y`=378.083, `position_z`=10.4968, `orientation`=5.364 WHERE `guid`=4407; -- Skeletal Healer +UPDATE `creature` SET `position_x`=6327.27, `position_y`=-623.54, `position_z`=476.49, `orientation`=1.13602 WHERE `guid`=40706; -- Jadefire Hellcaller (WAYPOINTS) +UPDATE `creature` SET `position_x`=2031.63, `position_y`=1759.4, `position_z`=104.665, `orientation`=0.174533 WHERE `guid`=38456; -- Young Night Web Spider +UPDATE `creature` SET `position_x`=2016.17, `position_y`=1773.67, `position_z`=106.922, `orientation`=4.97419 WHERE `guid`=38449; -- Young Night Web Spider +UPDATE `creature` SET `position_x`=2129.67, `position_y`=1475.66, `position_z`=67.5486, `orientation`=4.2586 WHERE `guid`=44710; -- Ragged Scavenger +UPDATE `creature` SET `position_x`=2131.16, `position_y`=1485.47, `position_z`=68.565, `orientation`=2.75762 WHERE `guid`=44711; -- Young Scavenger +UPDATE `creature` SET `position_x`=1974.58, `position_y`=1370.32, `position_z`=64.3032, `orientation`=6.19592 WHERE `guid`=44670; -- Karrel Grayves +UPDATE `creature` SET `position_x`=1983.45, `position_y`=1419.62, `position_z`=62.8559, `orientation`=1.53589 WHERE `guid`=43921; -- Mangy Duskbat +UPDATE `creature` SET `position_x`=1959.6, `position_y`=1420.62, `position_z`=67.1388, `orientation`=5.8294 WHERE `guid`=44543; -- Ragged Scavenger +UPDATE `creature` SET `position_x`=1967.41, `position_y`=1378.61, `position_z`=64.0428, `orientation`=2.96706 WHERE `guid`=28441; -- Daniel Ulfman +UPDATE `creature` SET `position_x`=2050.94, `position_y`=1572.37, `position_z`=75.3036, `orientation`=0 WHERE `guid`=44696; -- Rattlecage Skeleton +UPDATE `creature` SET `position_x`=1939.12, `position_y`=1543.02, `position_z`=90.0672, `orientation`=3.49066 WHERE `guid`=44721; -- Rattlecage Skeleton +UPDATE `creature` SET `position_x`=1825.83, `position_y`=1520.08, `position_z`=90.2981, `orientation`=3.78736 WHERE `guid`=44535; -- Duskbat +UPDATE `creature` SET `position_x`=1972.54, `position_y`=1387.48, `position_z`=63.3034, `orientation`=1.0821 WHERE `guid`=28442; -- Stephen Bhartec +UPDATE `creature` SET `position_x`=2150.74, `position_y`=1682.39, `position_z`=84.2119, `orientation`=5.58505 WHERE `guid`=44692; -- Young Night Web Spider +UPDATE `creature` SET `position_x`=2162.59, `position_y`=1707.91, `position_z`=93.242, `orientation`=4.76475 WHERE `guid`=44690; -- Young Night Web Spider +UPDATE `creature` SET `position_x`=2021.58, `position_y`=1849.13, `position_z`=102.842, `orientation`=0 WHERE `guid`=44484; -- Night Web Spider +UPDATE `creature` SET `position_x`=2017.63, `position_y`=1852.77, `position_z`=102.902, `orientation`=3.57666 WHERE `guid`=44485; -- Night Web Spider +UPDATE `creature` SET `position_x`=2053.13, `position_y`=1905.26, `position_z`=101.451, `orientation`=4.76221 WHERE `guid`=44902; -- Night Web Spider +UPDATE `creature` SET `position_x`=2090.24, `position_y`=1796.98, `position_z`=105.122, `orientation`=3.735 WHERE `guid`=38455; -- Young Night Web Spider +UPDATE `creature` SET `position_x`=2047.8, `position_y`=1912.96, `position_z`=102.799, `orientation`=2.54153 WHERE `guid`=44699; -- Night Web Spider +UPDATE `creature` SET `position_x`=1841.7, `position_y`=1680.18, `position_z`=97.8177, `orientation`=1.23918 WHERE `guid`=44821; -- Duskbat +UPDATE `creature` SET `position_x`=1866.98, `position_y`=1672.36, `position_z`=92.5691, `orientation`=0 WHERE `guid`=44678; -- Duskbat +UPDATE `creature` SET `position_x`=1873.74, `position_y`=1301.18, `position_z`=91.6825, `orientation`=1.97222 WHERE `guid`=29809; -- Scarlet Convert +UPDATE `creature` SET `position_x`=1815.35, `position_y`=1284.25, `position_z`=97.9165, `orientation`=5.67977 WHERE `guid`=38323; -- Scarlet Convert +UPDATE `creature` SET `position_x`=1732.28, `position_y`=1319.55, `position_z`=109.822, `orientation`=2.73697 WHERE `guid`=44949; -- Scarlet Convert +UPDATE `creature` SET `position_x`=1798.19, `position_y`=1301.32, `position_z`=102.912, `orientation`=0.733038 WHERE `guid`=38321; -- Scarlet Convert +UPDATE `creature` SET `position_x`=1750.15, `position_y`=1320.46, `position_z`=101.817, `orientation`=1.09956 WHERE `guid`=44945; -- Scarlet Convert +UPDATE `creature` SET `position_x`=1843.71, `position_y`=1289.48, `position_z`=102.875, `orientation`=1.37881 WHERE `guid`=38324; -- Scarlet Convert +UPDATE `creature` SET `position_x`=1829.9, `position_y`=1326.95, `position_z`=86.6804, `orientation`=1.02378 WHERE `guid`=38325; -- Scarlet Initiate +UPDATE `creature` SET `position_x`=1805.91, `position_y`=1539.6, `position_z`=98.3121, `orientation`=5.00909 WHERE `guid`=29807; -- Young Scavenger +UPDATE `creature` SET `position_x`=1814.8, `position_y`=1487.46, `position_z`=90.5161, `orientation`=0 WHERE `guid`=44533; -- Young Scavenger +UPDATE `creature` SET `position_x`=-4950.58, `position_y`=-3916.88, `position_z`=305.17, `orientation`=4.29837 WHERE `guid`=9090; -- Mo'grosh Ogre +UPDATE `creature` SET `position_x`=-9659.17, `position_y`=-1084.49, `position_z`=43.1383, `orientation`=4.02547 WHERE `guid`=80878; -- Prowler (WAYPOINTS) +UPDATE `creature` SET `position_x`=-4915.16, `position_y`=-3850.5, `position_z`=304.532, `orientation`=0.307609 WHERE `guid`=9362; -- Mo'grosh Ogre +UPDATE `creature` SET `position_x`=-4984.04, `position_y`=-3916.28, `position_z`=306.439, `orientation`=5.60844 WHERE `guid`=9109; -- Mo'grosh Ogre +UPDATE `creature` SET `position_x`=-11456.6, `position_y`=9.30816, `position_z`=31.1821, `orientation`=0 WHERE `guid`=763; -- Stone Maw Basilisk +UPDATE `creature` SET `position_x`=-10511.9, `position_y`=-1271.47, `position_z`=40.9459, `orientation`=1.09537 WHERE `guid`=5161; -- Chicken +UPDATE `creature` SET `position_x`=-5385.77, `position_y`=-2782.78, `position_z`=364.75, `orientation`=4.76475 WHERE `guid`=9072; -- Stonesplinter Trogg +UPDATE `creature` SET `position_x`=-3938.64, `position_y`=-2879.53, `position_z`=46.5585, `orientation`=4.18648 WHERE `guid`=23508; -- Theramore Deserter +UPDATE `creature` SET `position_x`=-6547.73, `position_y`=-3385.69, `position_z`=274.802, `orientation`=5.20531 WHERE `guid`=7055; -- Crag Coyote +UPDATE `creature` SET `position_x`=-10914.7, `position_y`=554.742, `position_z`=34.7992, `orientation`=4.2237 WHERE `guid`=4406; -- Pygmy Venom Web Spider +UPDATE `creature` SET `position_x`=-9472.53, `position_y`=-220.045, `position_z`=56.4143, `orientation`=1.91132 WHERE `guid`=79635; -- Murloc +UPDATE `creature` SET `position_x`=-9487.19, `position_y`=-207.112, `position_z`=58.524, `orientation`=5.18608 WHERE `guid`=81083; -- Murloc +UPDATE `creature` SET `position_x`=-4878.39, `position_y`=-3885.75, `position_z`=303.939, `orientation`=1.44341 WHERE `guid`=9375; -- Mo'grosh Ogre +UPDATE `creature` SET `position_x`=-8980.82, `position_y`=-53.2186, `position_z`=91.7105, `orientation`=0.366519 WHERE `guid`=79934; -- Young Wolf +UPDATE `creature` SET `position_x`=-9187.59, `position_y`=-649.412, `position_z`=65.9369, `orientation`=2.06352 WHERE `guid`=80968; -- Kobold Miner +UPDATE `creature` SET `position_x`=-13719.8, `position_y`=537.835, `position_z`=36.4129, `orientation`=2.22822 WHERE `guid`=2626; -- Naga Explorer +UPDATE `creature` SET `position_x`=-9513, `position_y`=-301.072, `position_z`=55.4444, `orientation`=4.31508 WHERE `guid`=81066; -- Murloc Streamrunner (WAYPOINTS) +UPDATE `creature` SET `position_x`=-9486.01, `position_y`=-368.816, `position_z`=55.9826, `orientation`=0.266468 WHERE `guid`=81041; -- Murloc +UPDATE `creature` SET `position_x`=-10349.4, `position_y`=2050.22, `position_z`=6.28109, `orientation`=3.18764 WHERE `guid`=90095; -- Murloc Warrior +UPDATE `creature` SET `position_x`=-2148.77, `position_y`=-2549.92, `position_z`=93.041, `orientation`=1.926 WHERE `guid`=20198; -- Bristleback Thornweaver +UPDATE `creature` SET `position_x`=-5056.53, `position_y`=-3616.67, `position_z`=301.432, `orientation`=3.14342 WHERE `guid`=9202; -- Large Loch Crocolisk +UPDATE `creature` SET `position_x`=-8817.7, `position_y`=-254.639, `position_z`=82.6779, `orientation`=4.2586 WHERE `guid`=80121; -- Kobold Worker +UPDATE `creature` SET `position_x`=-4950.02, `position_y`=-3984.19, `position_z`=296.767, `orientation`=4.78831 WHERE `guid`=9216; -- Mo'grosh Ogre +UPDATE `creature` SET `position_x`=-8921.12, `position_y`=-40.7733, `position_z`=90.8214, `orientation`=0.174533 WHERE `guid`=79940; -- Young Wolf +UPDATE `creature` SET `position_x`=-8772.83, `position_y`=-102.228, `position_z`=86.6206, `orientation`=0 WHERE `guid`=80019; -- Kobold Vermin +UPDATE `creature` SET `position_x`=-4902.35, `position_y`=-3910.26, `position_z`=300.735, `orientation`=1.74533 WHERE `guid`=9363; -- Mo'grosh Ogre +UPDATE `creature` SET `position_x`=-6255.85, `position_y`=-3728.83, `position_z`=244.093, `orientation`=0.144993 WHERE `guid`=7838; -- Dustbelcher Mystic +UPDATE `creature` SET `position_x`=-9500.44, `position_y`=-1903.07, `position_z`=79.5204, `orientation`=5.44543 WHERE `guid`=16345; -- Redridge Mongrel +UPDATE `creature` SET `id`=423 WHERE `guid`=16345; -- Redridge Mongrel +UPDATE `creature` SET `id2`=712 WHERE `guid`=16345; -- Redridge Thrasher +UPDATE `creature` SET `position_x`=-6253.51, `position_y`=-3749.67, `position_z`=243.192, `orientation`=1.72112 WHERE `guid`=7837; -- Dustbelcher Warrior +UPDATE `creature` SET `position_x`=-5183.82, `position_y`=-3650.79, `position_z`=303.601, `orientation`=2.33874 WHERE `guid`=8734; -- Elder Mountain Boar +UPDATE `creature` SET `position_x`=-6317.09, `position_y`=216.869, `position_z`=4.32584, `orientation`=3.19568 WHERE `guid`=43089; -- Twilight Overlord +UPDATE `creature` SET `id`=11880 WHERE `guid`=43089; -- Twilight Avenger +UPDATE `creature` SET `id2`=15213 WHERE `guid`=43089; -- Twilight Overlord +UPDATE `creature` SET `position_x`=-6275.84, `position_y`=-3738.53, `position_z`=244.005, `orientation`=3.76991 WHERE `guid`=7195; -- Dustbelcher Mystic +UPDATE `creature` SET `position_x`=-6255.23, `position_y`=-3713.41, `position_z`=244.118, `orientation`=4.52611 WHERE `guid`=7835; -- Dustbelcher Warrior +UPDATE `creature` SET `position_x`=-3207.78, `position_y`=-1017.97, `position_z`=10.8661, `orientation`=6.00357 WHERE `guid`=11041; -- Bluegill Puddlejumper +UPDATE `creature` SET `position_x`=-9641.72, `position_y`=1151.77, `position_z`=5.15521, `orientation`=1.23644 WHERE `guid`=89933; -- Murloc Coastrunner +UPDATE `creature` SET `position_x`=-9849.48, `position_y`=584.998, `position_z`=40.5004, `orientation`=0.88345 WHERE `guid`=80492; -- Riverpaw Outrunner +UPDATE `creature` SET `position_x`=-9750.22, `position_y`=1515.24, `position_z`=44.0626, `orientation`=4.99706 WHERE `guid`=90332; -- Riverpaw Gnoll +UPDATE `creature` SET `position_x`=-8810.65, `position_y`=-216.676, `position_z`=83.7731, `orientation`=1.46608 WHERE `guid`=80108; -- Kobold Vermin +UPDATE `creature` SET `position_x`=-6299.03, `position_y`=-3766.72, `position_z`=243.559, `orientation`=4.11593 WHERE `guid`=7196; -- Dustbelcher Warrior +UPDATE `creature` SET `position_x`=-8779.66, `position_y`=-196.192, `position_z`=84.3202, `orientation`=0 WHERE `guid`=80000; -- Kobold Vermin +UPDATE `creature` SET `position_x`=-6278.94, `position_y`=-3680.63, `position_z`=244.227, `orientation`=3.70887 WHERE `guid`=7834; -- Dustbelcher Warrior +UPDATE `creature` SET `position_x`=-6313.95, `position_y`=-3687.64, `position_z`=258.389, `orientation`=5.38928 WHERE `guid`=7197; -- Dustbelcher Mystic +UPDATE `creature` SET `position_x`=-9595.09, `position_y`=1424.2, `position_z`=3.41648, `orientation`=5.12437 WHERE `guid`=89934; -- Murloc Coastrunner +UPDATE `creature` SET `position_x`=-9608.76, `position_y`=1433.49, `position_z`=6.62729, `orientation`=3.28562 WHERE `guid`=90088; -- Murloc Coastrunner +UPDATE `creature` SET `position_x`=-4816.31, `position_y`=-3016.63, `position_z`=310.572, `orientation`=0 WHERE `guid`=9088; -- Tunnel Rat Vermin +UPDATE `creature` SET `position_x`=-6384.89, `position_y`=185.885, `position_z`=7.08027, `orientation`=2.27053 WHERE `guid`=42945; -- Twilight Avenger +UPDATE `creature` SET `id`=11880 WHERE `guid`=42945; -- Twilight Avenger +UPDATE `creature` SET `id2`=15213 WHERE `guid`=42945; -- Twilight Overlord +UPDATE `creature` SET `position_x`=-4985.68, `position_y`=-3014.22, `position_z`=334.093, `orientation`=4.39272 WHERE `guid`=9238; -- Tunnel Rat Vermin +UPDATE `creature` SET `position_x`=-5000.78, `position_y`=-2974.06, `position_z`=314.48, `orientation`=0 WHERE `guid`=9151; -- Tunnel Rat Geomancer +UPDATE `creature` SET `id`=1174 WHERE `guid`=9151; -- Tunnel Rat Geomancer +UPDATE `creature` SET `id2`=1175 WHERE `guid`=9151; -- Tunnel Rat Digger +UPDATE `creature` SET `position_x`=-6351.7, `position_y`=253.998, `position_z`=5.92008, `orientation`=5.25337 WHERE `guid`=43090; -- Twilight Overlord +UPDATE `creature` SET `id`=11880 WHERE `guid`=43090; -- Twilight Avenger +UPDATE `creature` SET `id2`=15213 WHERE `guid`=43090; -- Twilight Overlord +UPDATE `creature` SET `position_x`=-9552.76, `position_y`=-250.245, `position_z`=61.8522, `orientation`=5.52825 WHERE `guid`=80760; -- Mangy Wolf +UPDATE `creature` SET `position_x`=677.784, `position_y`=-830.747, `position_z`=158.674, `orientation`=5.20284 WHERE `guid`=16751; -- Syndicate Spy +UPDATE `creature` SET `position_x`=-9883.49, `position_y`=1004.85, `position_z`=33.1495, `orientation`=1.52618 WHERE `guid`=90401; -- Rusty Harvest Golem +UPDATE `creature` SET `position_x`=-1991.32, `position_y`=-3695.46, `position_z`=18.409, `orientation`=2.29517 WHERE `guid`=13926; -- Theramore Marine +UPDATE `creature` SET `position_x`=-8692.91, `position_y`=-112.831, `position_z`=89.5734, `orientation`=2.33874 WHERE `guid`=80048; -- Kobold Worker +UPDATE `creature` SET `position_x`=-9583.12, `position_y`=-14.6455, `position_z`=62.2546, `orientation`=0 WHERE `guid`=80700; -- Forest Spider +UPDATE `creature` SET `position_x`=-13489.3, `position_y`=670.863, `position_z`=9.80752, `orientation`=0 WHERE `guid`=2605; -- Bloodsail Swashbuckler +UPDATE `creature` SET `position_x`=-8103.76, `position_y`=-2543.88, `position_z`=133.633, `orientation`=3.6885 WHERE `guid`=5448; -- Firegut Ogre +UPDATE `creature` SET `position_x`=-8582.07, `position_y`=-170.954, `position_z`=91.2449, `orientation`=0 WHERE `guid`=80081; -- Kobold Laborer +UPDATE `creature` SET `position_x`=-5250.81, `position_y`=2184.53, `position_z`=1.37458, `orientation`=4.71651 WHERE `guid`=51720; -- Shore Strider +UPDATE `creature` SET `position_x`=-8692.4, `position_y`=-102.111, `position_z`=89.4998, `orientation`=1.74533 WHERE `guid`=80049; -- Kobold Worker +UPDATE `creature` SET `position_x`=-5282.51, `position_y`=2216.24, `position_z`=1.20451, `orientation`=5.56287 WHERE `guid`=50141; -- Sea Spray +UPDATE `creature` SET `position_x`=-1948, `position_y`=1247.94, `position_z`=91.5974, `orientation`=1.90241 WHERE `guid`=27123; -- Magram Marauder +UPDATE `creature` SET `position_x`=-4949.72, `position_y`=-3083.95, `position_z`=314.532, `orientation`=4.60378 WHERE `guid`=9231; -- Tunnel Rat Vermin +UPDATE `creature` SET `position_x`=-13461.3, `position_y`=668.306, `position_z`=9.71882, `orientation`=4.29351 WHERE `guid`=988; -- Bloodsail Swashbuckler +UPDATE `creature` SET `position_x`=-5382.57, `position_y`=2249.73, `position_z`=5.776, `orientation`=1.04722 WHERE `guid`=50134; -- Sea Spray +UPDATE `creature` SET `position_x`=-8561.05, `position_y`=-217.528, `position_z`=85.6755, `orientation`=0 WHERE `guid`=80087; -- Kobold Laborer +UPDATE `creature` SET `position_x`=-8705.72, `position_y`=-132.77, `position_z`=86.2445, `orientation`=2.80998 WHERE `guid`=80045; -- Kobold Worker +UPDATE `creature` SET `position_x`=-9326.1, `position_y`=324.751, `position_z`=68.4006, `orientation`=0.431375 WHERE `guid`=80291; -- Cow +UPDATE `creature` SET `position_x`=-11277.7, `position_y`=1718.9, `position_z`=39.8882, `orientation`=4.77297 WHERE `guid`=89769; -- Defias Highwayman +UPDATE `creature` SET `position_x`=-4816.03, `position_y`=-3049.75, `position_z`=307.012, `orientation`=1.75378 WHERE `guid`=9334; -- Tunnel Rat Vermin +UPDATE `creature` SET `position_x`=-4793.43, `position_y`=-2981.48, `position_z`=323.409, `orientation`=1.5708 WHERE `guid`=9293; -- Tunnel Rat Forager +UPDATE `creature` SET `position_x`=-5653.05, `position_y`=-3996.49, `position_z`=325.712, `orientation`=0 WHERE `guid`=8990; -- Stonesplinter Geomancer +UPDATE `creature` SET `position_x`=-5678.14, `position_y`=-3994.95, `position_z`=327.453, `orientation`=2.13359 WHERE `guid`=8989; -- Stonesplinter Geomancer +UPDATE `creature` SET `position_x`=-8985.33, `position_y`=-149.461, `position_z`=82.0318, `orientation`=5.70723 WHERE `guid`=79945; -- Young Wolf +UPDATE `creature` SET `position_x`=-9662.96, `position_y`=-1150.91, `position_z`=40.3182, `orientation`=1.21476 WHERE `guid`=81180; -- Prowler +UPDATE `creature` SET `position_x`=-4751.22, `position_y`=-2982.52, `position_z`=318.621, `orientation`=3.50888 WHERE `guid`=8964; -- Tunnel Rat Vermin +UPDATE `creature` SET `position_x`=-6450.32, `position_y`=251.372, `position_z`=6.12523, `orientation`=3.62478 WHERE `guid`=43091; -- Twilight Overlord +UPDATE `creature` SET `position_x`=-11380.3, `position_y`=1828.07, `position_z`=2.73651, `orientation`=6.25914 WHERE `guid`=90106; -- Murloc Tidehunter +UPDATE `creature` SET `position_x`=-4882.84, `position_y`=-2752.08, `position_z`=324.438, `orientation`=5.70723 WHERE `guid`=9324; -- Forest Lurker +UPDATE `creature` SET `position_x`=-5215.28, `position_y`=2216.14, `position_z`=-1.71034, `orientation`=4.38358 WHERE `guid`=50133; -- Sea Spray +UPDATE `creature` SET `position_x`=-5751.58, `position_y`=-4149.2, `position_z`=387.762, `orientation`=3.35103 WHERE `guid`=8396; -- Grizzled Black Bear +UPDATE `creature` SET `position_x`=-5716.64, `position_y`=-4184.56, `position_z`=384.204, `orientation`=4.11898 WHERE `guid`=8824; -- Mountain Buzzard +UPDATE `creature` SET `position_x`=-9620.44, `position_y`=-882.494, `position_z`=48.8342, `orientation`=3.3003 WHERE `guid`=80922; -- Rockhide Boar +UPDATE `creature` SET `position_x`=-10751.5, `position_y`=-14.8679, `position_z`=33.1139, `orientation`=0.191602 WHERE `guid`=4923; -- Black Widow Hatchling +UPDATE `creature` SET `position_x`=-3317.98, `position_y`=-914.782, `position_z`=2.27458, `orientation`=2.71289 WHERE `guid`=10813; -- Bluegill Murloc +UPDATE `creature` SET `position_x`=-4750.74, `position_y`=-2751.52, `position_z`=325.158, `orientation`=3.45575 WHERE `guid`=8960; -- Elder Black Bear +UPDATE `creature` SET `position_x`=-10615.4, `position_y`=-17.3138, `position_z`=34.1721, `orientation`=2.45179 WHERE `guid`=4908; -- Black Widow Hatchling +UPDATE `creature` SET `position_x`=-9003.92, `position_y`=-364.526, `position_z`=74.6188, `orientation`=1.30109 WHERE `guid`=80223; -- Defias Thug +UPDATE `creature` SET `position_x`=-4787.38, `position_y`=-3028.44, `position_z`=301.479, `orientation`=2.47837 WHERE `guid`=9308; -- Tunnel Rat Forager +UPDATE `creature` SET `position_x`=-8936.64, `position_y`=-374.275, `position_z`=71.626, `orientation`=5.95157 WHERE `guid`=80255; -- Defias Thug +UPDATE `creature` SET `position_x`=-8916.97, `position_y`=-382.201, `position_z`=70.5228, `orientation`=3.54753 WHERE `guid`=80237; -- Defias Thug +UPDATE `creature` SET `position_x`=-5251.87, `position_y`=-3651.54, `position_z`=298.754, `orientation`=2.82799 WHERE `guid`=8898; -- Loch Crocolisk +UPDATE `creature` SET `position_x`=-11336.7, `position_y`=1833.85, `position_z`=9.5647, `orientation`=3.43252 WHERE `guid`=89505; -- Murloc Hunter +UPDATE `creature` SET `id`=127 WHERE `guid`=89505; -- Murloc Tidehunter +UPDATE `creature` SET `id2`=458 WHERE `guid`=89505; -- Murloc Hunter +UPDATE `creature` SET `id3`=517 WHERE `guid`=89505; -- Murloc Oracle +UPDATE `creature` SET `position_x`=-13550.7, `position_y`=684.477, `position_z`=1.03726, `orientation`=4.56449 WHERE `guid`=2604; -- Bloodsail Swashbuckler +UPDATE `creature` SET `position_x`=-9027.22, `position_y`=-383.425, `position_z`=75.1575, `orientation`=5.58918 WHERE `guid`=80226; -- Defias Thug +UPDATE `creature` SET `position_x`=-9033.46, `position_y`=-399.975, `position_z`=72.2962, `orientation`=1.989 WHERE `guid`=80224; -- Defias Thug +UPDATE `creature` SET `position_x`=-9048.83, `position_y`=-377.996, `position_z`=73.9888, `orientation`=5.97923 WHERE `guid`=80209; -- Defias Thug +UPDATE `creature` SET `position_x`=-716.94, `position_y`=1149.57, `position_z`=90.6961, `orientation`=2.0855 WHERE `guid`=27005; -- Kolkar Centaur +UPDATE `creature` SET `position_x`=16.5503, `position_y`=-2417.6, `position_z`=125.217, `orientation`=4.23636 WHERE `guid`=93091; -- Witherbark Zealot +UPDATE `creature` SET `position_x`=-6416.43, `position_y`=217.517, `position_z`=4.77489, `orientation`=0.794979 WHERE `guid`=42987; -- Twilight Avenger +UPDATE `creature` SET `id`=11880 WHERE `guid`=42987; -- Twilight Avenger +UPDATE `creature` SET `id2`=15213 WHERE `guid`=42987; -- Twilight Overlord +UPDATE `creature` SET `position_x`=-8763.45, `position_y`=-236.545, `position_z`=84.9702, `orientation`=0 WHERE `guid`=80102; -- Kobold Worker +UPDATE `creature` SET `position_x`=-766.526, `position_y`=-531.095, `position_z`=20.7171, `orientation`=4.85595 WHERE `guid`=15925; -- Southshore Guard +UPDATE `creature` SET `position_x`=-8781.03, `position_y`=-256.178, `position_z`=82.1465, `orientation`=1.93732 WHERE `guid`=80103; -- Kobold Worker +UPDATE `creature` SET `position_x`=-4848.24, `position_y`=-3050.97, `position_z`=316.533, `orientation`=0 WHERE `guid`=9086; -- Tunnel Rat Vermin +UPDATE `creature` SET `position_x`=-10783.5, `position_y`=550.629, `position_z`=32.5151, `orientation`=5.32325 WHERE `guid`=6019; -- Pygmy Venom Web Spider +UPDATE `creature` SET `position_x`=-9929.02, `position_y`=1804.06, `position_z`=10.2206, `orientation`=3.902 WHERE `guid`=89488; -- Murloc Warrior +UPDATE `creature` SET `position_x`=-10418.3, `position_y`=949.994, `position_z`=38.3723, `orientation`=3.70013 WHERE `guid`=89529; -- Goretusk +UPDATE `creature` SET `id`=157 WHERE `guid`=89529; -- Goretusk +UPDATE `creature` SET `id2`=1109 WHERE `guid`=89529; -- Fleshripper +UPDATE `creature` SET `position_x`=-10916.5, `position_y`=416.579, `position_z`=44.0231, `orientation`=0.506145 WHERE `guid`=4294; -- Venom Web Spider +UPDATE `creature` SET `position_x`=-2084.86, `position_y`=-1948.77, `position_z`=94.2002, `orientation`=3.67145 WHERE `guid`=20139; -- Bristleback Hunter +UPDATE `creature` SET `position_x`=-10819.3, `position_y`=879.579, `position_z`=33.345, `orientation`=3.44404 WHERE `guid`=90373; -- Harvest Reaper +UPDATE `creature` SET `position_x`=-9050.59, `position_y`=-409.338, `position_z`=71.9297, `orientation`=2.46711 WHERE `guid`=80218; -- Defias Thug +UPDATE `creature` SET `position_x`=-9115.08, `position_y`=-566.873, `position_z`=59.2631, `orientation`=4.73212 WHERE `guid`=80985; -- Kobold Miner +UPDATE `creature` SET `position_x`=-13417.2, `position_y`=666.517, `position_z`=8.63149, `orientation`=5.93613 WHERE `guid`=985; -- Bloodsail Swashbuckler +UPDATE `creature` SET `position_x`=-9905.73, `position_y`=1423.21, `position_z`=38.4895, `orientation`=2.54818 WHERE `guid`=89871; -- Defias Smuggler +UPDATE `creature` SET `position_x`=-9944.53, `position_y`=1474.25, `position_z`=39.7027, `orientation`=3.5083 WHERE `guid`=90126; -- Defias Smuggler +UPDATE `creature` SET `position_x`=-10515.6, `position_y`=441.647, `position_z`=37.9497, `orientation`=1.37881 WHERE `guid`=4971; -- Grave Robber +UPDATE `creature` SET `position_x`=-6380.76, `position_y`=147.04, `position_z`=5.40201, `orientation`=5.34653 WHERE `guid`=43082; -- Twilight Overlord +UPDATE `creature` SET `id`=11880 WHERE `guid`=43082; -- Twilight Avenger +UPDATE `creature` SET `id2`=15213 WHERE `guid`=43082; -- Twilight Overlord +UPDATE `creature` SET `position_x`=483.759, `position_y`=-581.67, `position_z`=178.162, `orientation`=0.523476 WHERE `guid`=17067; -- Crushridge Ogre +UPDATE `creature` SET `position_x`=-5551, `position_y`=-3616.37, `position_z`=297.698, `orientation`=4.04916 WHERE `guid`=8873; -- Loch Crocolisk +UPDATE `creature` SET `position_x`=-10931.9, `position_y`=2123.65, `position_z`=0.62267, `orientation`=0.366765 WHERE `guid`=48553; -- Shore Crawler +UPDATE `creature` SET `position_x`=-11300.3, `position_y`=1553.17, `position_z`=35.258, `orientation`=2.04121 WHERE `guid`=89992; -- Undead Dynamiter +UPDATE `creature` SET `id`=623 WHERE `guid`=89992; -- Skeletal Miner +UPDATE `creature` SET `id2`=624 WHERE `guid`=89992; -- Undead Excavator +UPDATE `creature` SET `id3`=625 WHERE `guid`=89992; -- Undead Dynamiter +UPDATE `creature` SET `position_x`=450.825, `position_y`=-649.573, `position_z`=167.149, `orientation`=5.07799 WHERE `guid`=17365; -- Crushridge Ogre +UPDATE `creature` SET `position_x`=517.615, `position_y`=-686.07, `position_z`=159.433, `orientation`=1.57813 WHERE `guid`=17002; -- Crushridge Ogre +UPDATE `creature` SET `position_x`=518.413, `position_y`=-652.495, `position_z`=160.806, `orientation`=3.69022 WHERE `guid`=17000; -- Crushridge Brute +UPDATE `creature` SET `position_x`=-11819.5, `position_y`=-414.43, `position_z`=10.173, `orientation`=0 WHERE `guid`=2495; -- Snapjaw Crocolisk +UPDATE `creature` SET `position_x`=1728.39, `position_y`=-2325.23, `position_z`=59.7239, `orientation`=3.74049 WHERE `guid`=48143; -- Hungering Wraith +UPDATE `creature` SET `position_x`=6300.06, `position_y`=-1658.39, `position_z`=428.024, `orientation`=5.16543 WHERE `guid`=39572; -- Warpwood Moss Flayer +UPDATE `creature` SET `position_x`=-11252.9, `position_y`=1650.26, `position_z`=50.8539, `orientation`=2.56865 WHERE `guid`=59385; -- Defias Highwayman +UPDATE `creature` SET `position_x`=6353.1, `position_y`=-1697.33, `position_z`=440.028, `orientation`=4.1999 WHERE `guid`=39731; -- Warpwood Moss Flayer +UPDATE `creature` SET `position_x`=431.193, `position_y`=-3325.16, `position_z`=121.082, `orientation`=3.77225 WHERE `guid`=93416; -- Jade Ooze +UPDATE `creature` SET `position_x`=-5516.13, `position_y`=-2886.1, `position_z`=355.368, `orientation`=1.83128 WHERE `guid`=9342; -- Squirrel +UPDATE `creature` SET `position_x`=-5416.86, `position_y`=-2750.04, `position_z`=368.374, `orientation`=0.890118 WHERE `guid`=9013; -- Stonesplinter Trogg +UPDATE `creature` SET `position_x`=-5552.6, `position_y`=-2750.48, `position_z`=364.84, `orientation`=0 WHERE `guid`=9005; -- Stonesplinter Trogg +UPDATE `creature` SET `position_x`=-6249.75, `position_y`=1649.03, `position_z`=5.28053, `orientation`=3.31925 WHERE `guid`=46139; -- Desert Rumbler +UPDATE `creature` SET `position_x`=403.874, `position_y`=-3385.65, `position_z`=119.649, `orientation`=5.62039 WHERE `guid`=93404; -- Green Sludge +UPDATE `creature` SET `position_x`=420.974, `position_y`=-3412.62, `position_z`=117.45, `orientation`=1.00817 WHERE `guid`=93401; -- Green Sludge +UPDATE `creature` SET `position_x`=-1710.05, `position_y`=-1715.9, `position_z`=53.8899, `orientation`=2.05912 WHERE `guid`=14592; -- Rat +UPDATE `creature` SET `position_x`=-11101.4, `position_y`=-457.88, `position_z`=32.7268, `orientation`=0.783305 WHERE `guid`=4318; -- Defias Night Blade +UPDATE `creature` SET `position_x`=-2252.57, `position_y`=1517.27, `position_z`=63.6714, `orientation`=1.75349 WHERE `guid`=27199; -- Undead Ravager +UPDATE `creature` SET `position_x`=-9908.3, `position_y`=180.969, `position_z`=31.7814, `orientation`=2.61799 WHERE `guid`=80612; -- Kobold Tunneler +UPDATE `creature` SET `position_x`=6402.55, `position_y`=-1689.16, `position_z`=418.954, `orientation`=0.294819 WHERE `guid`=40178; -- Warpwood Moss Flayer +UPDATE `creature` SET `position_x`=-9616.48, `position_y`=1198.66, `position_z`=3.81203, `orientation`=0.672767 WHERE `guid`=90405; -- Murloc Coastrunner +UPDATE `creature` SET `position_x`=-5316.57, `position_y`=-2751.5, `position_z`=354.802, `orientation`=1.8707 WHERE `guid`=9093; -- Tunnel Rat Vermin +UPDATE `creature` SET `position_x`=-9625.78, `position_y`=1133.22, `position_z`=3.15007, `orientation`=5.32861 WHERE `guid`=90398; -- Murloc Coastrunner +UPDATE `creature` SET `position_x`=-1150.02, `position_y`=-215.39, `position_z`=-7.57493, `orientation`=0.977384 WHERE `guid`=15495; -- Torn Fin Tidehunter +UPDATE `creature` SET `position_x`=-1084.78, `position_y`=-3185.78, `position_z`=91.8429, `orientation`=6.19364 WHERE `guid`=19947; -- Sunscale Screecher +UPDATE `creature` SET `position_x`=-7410.09, `position_y`=-4718.62, `position_z`=9.51417, `orientation`=6.20096 WHERE `guid`=23506; -- Wastewander Thief +UPDATE `creature` SET `position_x`=220.099, `position_y`=-3481.5, `position_z`=156.571, `orientation`=0.817912 WHERE `guid`=93095; -- Jade Ooze +UPDATE `creature` SET `position_x`=-4486.29, `position_y`=-482.526, `position_z`=23.6881, `orientation`=5.5548 WHERE `guid`=50684; -- Ironfur Bear +UPDATE `creature` SET `position_x`=-12748.9, `position_y`=149.269, `position_z`=12.5449, `orientation`=3.46314 WHERE `guid`=1843; -- Jungle Stalker +UPDATE `creature` SET `position_x`=1387.35, `position_y`=-1681.92, `position_z`=66.3727, `orientation`=5.61997 WHERE `guid`=47195; -- Skeletal Executioner +UPDATE `creature` SET `position_x`=-5282.26, `position_y`=-2718.91, `position_z`=342.496, `orientation`=5.39307 WHERE `guid`=9103; -- Tunnel Rat Forager +UPDATE `creature` SET `position_x`=-10028.4, `position_y`=-3651.85, `position_z`=19.101, `orientation`=3.88129 WHERE `guid`=38801; -- Lost One Muckdweller +UPDATE `creature` SET `position_x`=134.742, `position_y`=-3440.58, `position_z`=109.534, `orientation`=6.09796 WHERE `guid`=93165; -- Green Sludge +UPDATE `creature` SET `position_x`=257.836, `position_y`=-3457.81, `position_z`=153.388, `orientation`=1.26062 WHERE `guid`=93173; -- Green Sludge +UPDATE `creature` SET `position_x`=183.962, `position_y`=-3429.88, `position_z`=121.78, `orientation`=6.21165 WHERE `guid`=93171; -- Green Sludge +UPDATE `creature` SET `position_x`=214.779, `position_y`=-3463.82, `position_z`=157.363, `orientation`=0.4639 WHERE `guid`=93094; -- Green Sludge +UPDATE `creature` SET `position_x`=-13349.4, `position_y`=-28.628, `position_z`=22.4575, `orientation`=3.89868 WHERE `guid`=2225; -- Maury "Club Foot" Wilkins +UPDATE `creature` SET `position_x`=655.192, `position_y`=-807.203, `position_z`=162.498, `orientation`=0.667787 WHERE `guid`=16963; -- Syndicate Spy +UPDATE `creature` SET `position_x`=1703.54, `position_y`=-2355.6, `position_z`=60.6501, `orientation`=1.11634 WHERE `guid`=45303; -- Hungering Wraith +UPDATE `creature` SET `position_x`=623.961, `position_y`=-802.212, `position_z`=163.409, `orientation`=4.88642 WHERE `guid`=16962; -- Syndicate Spy +UPDATE `creature` SET `position_x`=1707.11, `position_y`=-2347.36, `position_z`=60.5869, `orientation`=4.20408 WHERE `guid`=46276; -- Hungering Wraith +UPDATE `creature` SET `position_x`=-5713.58, `position_y`=-3248.39, `position_z`=313.551, `orientation`=2.02458 WHERE `guid`=9196; -- Mangy Mountain Boar +UPDATE `creature` SET `position_x`=-12950.7, `position_y`=281.644, `position_z`=18.5106, `orientation`=4.86836 WHERE `guid`=1959; -- Jungle Stalker +UPDATE `creature` SET `position_x`=-4916.97, `position_y`=-3949.27, `position_z`=299.057, `orientation`=4.62459 WHERE `guid`=9082; -- Mo'grosh Ogre +UPDATE `creature` SET `position_x`=-9737.42, `position_y`=-835.728, `position_z`=40.4892, `orientation`=2.61886 WHERE `guid`=80835; -- Defias Bandit +UPDATE `creature` SET `position_x`=64.1604, `position_y`=-745.536, `position_z`=-19.1847, `orientation`=2.25147 WHERE `guid`=29336; -- Grimtotem Ruffian +UPDATE `creature` SET `position_x`=59.8496, `position_y`=-731.277, `position_z`=-20.699, `orientation`=0.436332 WHERE `guid`=29308; -- Grimtotem Ruffian +UPDATE `creature` SET `position_x`=-13719.4, `position_y`=249.076, `position_z`=28.5217, `orientation`=3.21141 WHERE `guid`=2521; -- Elder Mistvale Gorilla +UPDATE `creature` SET `position_x`=1495.29, `position_y`=-1891.68, `position_z`=59.767, `orientation`=4.98716 WHERE `guid`=45324; -- Rotting Ghoul +UPDATE `creature` SET `position_x`=-1183.35, `position_y`=-3248.68, `position_z`=30.698, `orientation`=4.52392 WHERE `guid`=14525; -- Highland Strider +UPDATE `creature` SET `position_x`=-9880.05, `position_y`=-816.436, `position_z`=28.1878, `orientation`=0.337136 WHERE `guid`=80843; -- Murloc Forager +UPDATE `creature` SET `position_x`=1927.22, `position_y`=-1627.36, `position_z`=60.6832, `orientation`=1.83071 WHERE `guid`=46291; -- Rotting Cadaver +UPDATE `creature` SET `position_x`=-6584.76, `position_y`=-984.337, `position_z`=-270.427, `orientation`=0.578166 WHERE `guid`=24054; -- Bloodpetal Trapper +UPDATE `creature` SET `position_x`=-3758.64, `position_y`=1780.46, `position_z`=153.911, `orientation`=4.81477 WHERE `guid`=51117; -- Ferocious Rage Scar +UPDATE `creature` SET `position_x`=-9819.11, `position_y`=-917.67, `position_z`=40.1688, `orientation`=6.25461 WHERE `guid`=80868; -- Defias Bandit +UPDATE `creature` SET `position_x`=2014.06, `position_y`=-1584.69, `position_z`=60.4694, `orientation`=0.757618 WHERE `guid`=48122; -- Carrion Lurker +UPDATE `creature` SET `position_x`=103.894, `position_y`=-3479.04, `position_z`=109.287, `orientation`=0.949017 WHERE `guid`=93167; -- Jade Ooze +UPDATE `creature` SET `position_x`=-7450.79, `position_y`=-1720.46, `position_z`=-277.076, `orientation`=3.78216 WHERE `guid`=24501; -- Diemetradon +UPDATE `creature` SET `position_x`=241.45, `position_y`=-3507.9, `position_z`=159.817, `orientation`=2.53311 WHERE `guid`=93078; -- Green Sludge +UPDATE `creature` SET `position_x`=6884.38, `position_y`=-1815.44, `position_z`=569.147, `orientation`=0.578772 WHERE `guid`=40604; -- Deadwood Den Watcher +UPDATE `creature` SET `position_x`=-5752.68, `position_y`=-3348.74, `position_z`=301.221, `orientation`=2.01313 WHERE `guid`=9198; -- Mangy Mountain Boar +UPDATE `creature` SET `position_x`=-5357.76, `position_y`=383.168, `position_z`=18.4146, `orientation`=4.73967 WHERE `guid`=50367; -- Zukk'ash Tunneler +UPDATE `creature` SET `position_x`=-1887.54, `position_y`=-3120.04, `position_z`=61.9228, `orientation`=2.6245 WHERE `guid`=14725; -- Witherbark Headhunter +UPDATE `creature` SET `position_x`=-11551, `position_y`=-3376.42, `position_z`=8.99447, `orientation`=4.63917 WHERE `guid`=2804; -- Shadowsworn Cultist +UPDATE `creature` SET `position_x`=1897.9, `position_y`=-1539.21, `position_z`=59.7254, `orientation`=5.36927 WHERE `guid`=45321; -- Blighted Zombie +UPDATE `creature` SET `position_x`=-7981.95, `position_y`=1946.53, `position_z`=4.77584, `orientation`=2.74399 WHERE `guid`=42964; -- Twilight Avenger +UPDATE `creature` SET `position_x`=-6111.02, `position_y`=-2921.15, `position_z`=418.864, `orientation`=4.67748 WHERE `guid`=9058; -- Stonesplinter Skullthumper +UPDATE `creature` SET `position_x`=-12181.9, `position_y`=-748.443, `position_z`=15.2752, `orientation`=6.05042 WHERE `guid`=1442; -- Venture Co. Geologist +UPDATE `creature` SET `position_x`=2747.48, `position_y`=-4782.34, `position_z`=75.8788, `orientation`=5.80428 WHERE `guid`=92185; -- Diseased Flayer +UPDATE `creature` SET `position_x`=-8111.26, `position_y`=-1418.05, `position_z`=133.293, `orientation`=1.98968 WHERE `guid`=5458; -- Gor'tesh (WAYPOINTS) +UPDATE `creature` SET `position_x`=-11453.2, `position_y`=-3317.18, `position_z`=8.12806, `orientation`=5.49239 WHERE `guid`=2850; -- Shadowsworn Cultist +UPDATE `creature` SET `position_x`=-1082.51, `position_y`=-2717.23, `position_z`=43.2882, `orientation`=3.09006 WHERE `guid`=13277; -- Highland Strider +UPDATE `creature` SET `position_x`=-3687.45, `position_y`=-1324.83, `position_z`=12.6233, `orientation`=5.89921 WHERE `guid`=11163; -- Mottled Screecher +UPDATE `creature` SET `position_x`=6816.98, `position_y`=-1818.95, `position_z`=562.421, `orientation`=0.640278 WHERE `guid`=40305; -- Deadwood Den Watcher +UPDATE `creature` SET `position_x`=-6096.96, `position_y`=-2973.61, `position_z`=418.864, `orientation`=5.70723 WHERE `guid`=9056; -- Stonesplinter Skullthumper +UPDATE `creature` SET `position_x`=-1018.43, `position_y`=-482.782, `position_z`=-4.87795, `orientation`=4.7473 WHERE `guid`=15618; -- Torn Fin Oracle +UPDATE `creature` SET `position_x`=15.8407, `position_y`=-2682.2, `position_z`=130.719, `orientation`=4.10733 WHERE `guid`=93487; -- Witherbark Hideskinner +UPDATE `creature` SET `position_x`=-11479.8, `position_y`=-3364.67, `position_z`=7.3626, `orientation`=1.1683 WHERE `guid`=3701; -- Servant of Allistarj +UPDATE `creature` SET `position_x`=-6099.98, `position_y`=-3049.72, `position_z`=400.858, `orientation`=5.49084 WHERE `guid`=9080; -- Stonesplinter Bonesnapper +UPDATE `creature` SET `position_x`=-11449.5, `position_y`=-3380.13, `position_z`=9.64685, `orientation`=5.61934 WHERE `guid`=2663; -- Shadowsworn Cultist +UPDATE `creature` SET `position_x`=-3494.32, `position_y`=-1457.65, `position_z`=10.1848, `orientation`=1.22173 WHERE `guid`=11015; -- Mottled Screecher +UPDATE `creature` SET `position_x`=-6101.32, `position_y`=-3044.54, `position_z`=400.906, `orientation`=1.51652 WHERE `guid`=9081; -- Stonesplinter Bonesnapper +UPDATE `creature` SET `position_x`=-1914.69, `position_y`=1255.11, `position_z`=93.1548, `orientation`=4.27987 WHERE `guid`=27088; -- Magram Wrangler +UPDATE `creature` SET `position_x`=-5583.34, `position_y`=-3849.97, `position_z`=324.309, `orientation`=2.16602 WHERE `guid`=9007; -- Stonesplinter Geomancer +UPDATE `creature` SET `position_x`=-7846.79, `position_y`=-2652.65, `position_z`=221.251, `orientation`=4.17841 WHERE `guid`=5408; -- Firegut Ogre Mage +UPDATE `creature` SET `position_x`=2424.9, `position_y`=1834.26, `position_z`=365.048, `orientation`=3.54302 WHERE `guid`=32225; -- Cenarion Druid +UPDATE `creature` SET `position_x`=-6950.63, `position_y`=-3648.36, `position_z`=244.224, `orientation`=2.38637 WHERE `guid`=7092; -- Ridge Huntress +UPDATE `creature` SET `position_x`=6849, `position_y`=-1814.84, `position_z`=564.159, `orientation`=2.26723 WHERE `guid`=40605; -- Deadwood Den Watcher +UPDATE `creature` SET `position_x`=-5572.51, `position_y`=-3875.15, `position_z`=327.93, `orientation`=3.66519 WHERE `guid`=8886; -- Stonesplinter Geomancer +UPDATE `creature` SET `position_x`=-6027.69, `position_y`=-2824.35, `position_z`=411.282, `orientation`=2.96706 WHERE `guid`=9057; -- Stonesplinter Skullthumper +UPDATE `creature` SET `position_x`=-11241.5, `position_y`=1293.61, `position_z`=90.6579, `orientation`=6.07375 WHERE `guid`=54605; -- Defias Knuckleduster +UPDATE `creature` SET `id`=122 WHERE `guid`=54605; -- Defias Highwayman +UPDATE `creature` SET `id2`=449 WHERE `guid`=54605; -- Defias Knuckleduster +UPDATE `creature` SET `position_x`=-4915.47, `position_y`=-2783.51, `position_z`=328.335, `orientation`=4.27606 WHERE `guid`=9398; -- Mountain Boar +UPDATE `creature` SET `position_x`=-5591.12, `position_y`=-3893.31, `position_z`=329.295, `orientation`=0.10472 WHERE `guid`=8890; -- Stonesplinter Geomancer +UPDATE `creature` SET `position_x`=-11282.2, `position_y`=1685.04, `position_z`=44.5262, `orientation`=5.61628 WHERE `guid`=89771; -- Defias Highwayman +UPDATE `creature` SET `position_x`=-6144.47, `position_y`=-3026.99, `position_z`=393.467, `orientation`=1.95495 WHERE `guid`=8972; -- Stonesplinter Bonesnapper +UPDATE `creature` SET `position_x`=-6158.86, `position_y`=-2958.64, `position_z`=400.672, `orientation`=4.96189 WHERE `guid`=8338; -- Stonesplinter Skullthumper +UPDATE `creature` SET `position_x`=-1981.99, `position_y`=1148.19, `position_z`=95.1349, `orientation`=1.80331 WHERE `guid`=27073; -- Magram Wrangler +UPDATE `creature` SET `position_x`=-2049, `position_y`=1215.74, `position_z`=107.947, `orientation`=5.06671 WHERE `guid`=27074; -- Magram Wrangler +UPDATE `creature` SET `position_x`=373.745, `position_y`=-3361.12, `position_z`=120.878, `orientation`=2.84489 WHERE `guid`=93426; -- Green Sludge +UPDATE `creature` SET `position_x`=-6781.25, `position_y`=1682.4, `position_z`=4.92628, `orientation`=3.54506 WHERE `guid`=43022; -- Twilight Geolord +UPDATE `creature` SET `position_x`=-11217.6, `position_y`=-3499.58, `position_z`=7.98982, `orientation`=2.21693 WHERE `guid`=2806; -- Shadowsworn Cultist +UPDATE `creature` SET `position_x`=-11225.7, `position_y`=-3488.15, `position_z`=8.85386, `orientation`=1.16925 WHERE `guid`=3034; -- Shadowsworn Cultist +UPDATE `creature` SET `position_x`=-6132.18, `position_y`=-2976.95, `position_z`=399.905, `orientation`=0 WHERE `guid`=9262; -- Stonesplinter Skullthumper +UPDATE `creature` SET `position_x`=-6138.51, `position_y`=-2948.78, `position_z`=396.877, `orientation`=0 WHERE `guid`=8341; -- Stonesplinter Skullthumper +UPDATE `creature` SET `position_x`=-9583.26, `position_y`=15.1122, `position_z`=60.2775, `orientation`=3.90487 WHERE `guid`=80699; -- Rabbit +UPDATE `creature` SET `position_x`=-6141.35, `position_y`=-2897.53, `position_z`=403.76, `orientation`=0.044755 WHERE `guid`=9258; -- Stonesplinter Skullthumper +UPDATE `creature` SET `position_x`=-6218.4, `position_y`=-2980.85, `position_z`=397.75, `orientation`=1.85759 WHERE `guid`=8962; -- Stonesplinter Bonesnapper +UPDATE `creature` SET `position_x`=-4780.45, `position_y`=3583.79, `position_z`=10.1191, `orientation`=0.737704 WHERE `guid`=51485; -- Hatecrest Warrior (WAYPOINTS) +UPDATE `creature` SET `position_x`=-11122.5, `position_y`=1177.78, `position_z`=63.0486, `orientation`=5.21632 WHERE `guid`=54442; -- Defias Highwayman +UPDATE `creature` SET `position_x`=4052.75, `position_y`=850.184, `position_z`=7.32193, `orientation`=5.67232 WHERE `guid`=32755; -- Wrathtail Wave Rider +UPDATE `creature` SET `position_x`=-9648.04, `position_y`=-51.6883, `position_z`=43.688, `orientation`=0.198651 WHERE `guid`=80701; -- Defias Bandit +UPDATE `creature` SET `position_x`=-5584.71, `position_y`=-3883.26, `position_z`=-58.6666, `orientation`=1.95802 WHERE `guid`=21361; -- Scorpid Reaver +UPDATE `creature` SET `position_x`=-9681.32, `position_y`=-82.0457, `position_z`=40.7322, `orientation`=1.92401 WHERE `guid`=80706; -- Defias Bandit +UPDATE `creature` SET `position_x`=-9681.04, `position_y`=-3.6275, `position_z`=43.6474, `orientation`=3.4183 WHERE `guid`=80690; -- Defias Bandit +UPDATE `creature` SET `position_x`=-10150.2, `position_y`=849.124, `position_z`=25.1642, `orientation`=2.88397 WHERE `guid`=89903; -- Coyote Packleader +UPDATE `creature` SET `id`=833 WHERE `guid`=89903; -- Coyote Packleader +UPDATE `creature` SET `id2`=834 WHERE `guid`=89903; -- Coyote +UPDATE `creature` SET `position_x`=-9817.56, `position_y`=-119.266, `position_z`=28.5966, `orientation`=3.50282 WHERE `guid`=80718; -- Defias Bandit +UPDATE `creature` SET `position_x`=-4883.27, `position_y`=3585.07, `position_z`=12.591, `orientation`=5.54974 WHERE `guid`=51474; -- Hatecrest Warrior +UPDATE `creature` SET `position_x`=-4814.07, `position_y`=3587.34, `position_z`=10.4143, `orientation`=0.665689 WHERE `guid`=51491; -- Hatecrest Warrior (WAYPOINTS) +UPDATE `creature` SET `position_x`=-11519.9, `position_y`=-112.611, `position_z`=32.2166, `orientation`=0 WHERE `guid`=792; -- Stone Maw Basilisk +UPDATE `creature` SET `position_x`=-4850.6, `position_y`=3615.44, `position_z`=16.1749, `orientation`=3.52522 WHERE `guid`=51472; -- Hatecrest Warrior +UPDATE `creature` SET `position_x`=-11456.3, `position_y`=-58.6521, `position_z`=43.5424, `orientation`=0 WHERE `guid`=774; -- Stone Maw Basilisk +UPDATE `creature` SET `position_x`=-14393.9, `position_y`=406.122, `position_z`=6.79056, `orientation`=1.80192 WHERE `guid`=598; -- Booty Bay Bruiser (WAYPOINTS) +UPDATE `creature` SET `position_x`=-215.881, `position_y`=-1109.12, `position_z`=35.8436, `orientation`=5.05891 WHERE `guid`=15450; -- Snapjaw +UPDATE `creature` SET `position_x`=-4852.96, `position_y`=3518.02, `position_z`=23.3811, `orientation`=2.63142 WHERE `guid`=51540; -- Hatecrest Warrior +UPDATE `creature` SET `position_x`=-4920.44, `position_y`=3517.25, `position_z`=22.5606, `orientation`=2.58597 WHERE `guid`=51490; -- Hatecrest Warrior +UPDATE `creature` SET `position_x`=-12749.8, `position_y`=-584.631, `position_z`=38.7736, `orientation`=1.69219 WHERE `guid`=2548; -- Skullsplitter Warrior +UPDATE `creature` SET `position_x`=-12949.1, `position_y`=-84.0097, `position_z`=9.7456, `orientation`=4.07652 WHERE `guid`=1316; -- Cold Eye Basilisk +UPDATE `creature` SET `position_x`=-13014.3, `position_y`=417.067, `position_z`=22.2041, `orientation`=1.26013 WHERE `guid`=1983; -- Jungle Stalker +UPDATE `creature` SET `position_x`=-5653.35, `position_y`=-3039.6, `position_z`=386.094, `orientation`=0.54206 WHERE `guid`=9049; -- Black Bear Patriarch +UPDATE `creature` SET `position_x`=-6517.8, `position_y`=-3350, `position_z`=256.679, `orientation`=3.1004 WHERE `guid`=7609; -- Crag Coyote +UPDATE `creature` SET `position_x`=-10783.5, `position_y`=1250.38, `position_z`=33.1447, `orientation`=3.16598 WHERE `guid`=90372; -- Fleshripper +UPDATE `creature` SET `position_x`=156.488, `position_y`=1747.84, `position_z`=92.3759, `orientation`=0.540581 WHERE `guid`=28280; -- Aged Kodo +UPDATE `creature` SET `position_x`=-1049.05, `position_y`=1147.16, `position_z`=91.303, `orientation`=3.10053 WHERE `guid`=27002; -- Kolkar Centaur +UPDATE `creature` SET `position_x`=-12617.2, `position_y`=-649.201, `position_z`=42.0336, `orientation`=1.31597 WHERE `guid`=2042; -- Skullsplitter Warrior +UPDATE `creature` SET `position_x`=-5563.63, `position_y`=3589.37, `position_z`=-10.8222, `orientation`=0.314901 WHERE `guid`=51508; -- Hatecrest Serpent Guard +UPDATE `creature` SET `position_x`=-1019.78, `position_y`=898.199, `position_z`=92.7134, `orientation`=4.67748 WHERE `guid`=27041; -- Kolkar Windchaser +UPDATE `creature` SET `position_x`=-5586.68, `position_y`=3561.34, `position_z`=-4.83882, `orientation`=2.35991 WHERE `guid`=51661; -- Hatecrest Serpent Guard +UPDATE `creature` SET `position_x`=-10623.8, `position_y`=1320.44, `position_z`=37.774, `orientation`=0 WHERE `guid`=89780; -- Goretusk +UPDATE `creature` SET `position_x`=1586.7, `position_y`=-3219.75, `position_z`=81.1906, `orientation`=1.01175 WHERE `guid`=92554; -- Mossflayer Zombie +UPDATE `creature` SET `position_x`=-10391, `position_y`=-3536.46, `position_z`=17.5574, `orientation`=3.66392 WHERE `guid`=41712; -- Tangled Horror +UPDATE `creature` SET `position_x`=-1082.02, `position_y`=884.989, `position_z`=91.6293, `orientation`=2.01649 WHERE `guid`=27023; -- Kolkar Windchaser +UPDATE `creature` SET `position_x`=-11015, `position_y`=-1382.17, `position_z`=54.9405, `orientation`=2.00713 WHERE `guid`=5991; -- Skeletal Mage +UPDATE `creature` SET `position_x`=-8119.5, `position_y`=-1083.94, `position_z`=-228.075, `orientation`=5.29247 WHERE `guid`=24589; -- Pterrordax +UPDATE `creature` SET `position_x`=-5528.64, `position_y`=3606.48, `position_z`=-11.3296, `orientation`=0.115844 WHERE `guid`=51509; -- Hatecrest Serpent Guard +UPDATE `creature` SET `position_x`=-9446.01, `position_y`=-1454.02, `position_z`=59.7921, `orientation`=2.23266 WHERE `guid`=81383; -- Cow +UPDATE `creature` SET `id`=1933 WHERE `guid`=81383; -- Sheep +UPDATE `creature` SET `id2`=2442 WHERE `guid`=81383; -- Cow +UPDATE `creature` SET `position_x`=-5505.38, `position_y`=3613.71, `position_z`=-3.05788, `orientation`=3.44725 WHERE `guid`=51504; -- Hatecrest Serpent Guard +UPDATE `creature` SET `position_x`=-9623.51, `position_y`=519.796, `position_z`=42.5891, `orientation`=0 WHERE `guid`=80435; -- Mangy Wolf +UPDATE `creature` SET `position_x`=-5540.62, `position_y`=3583.68, `position_z`=-13.9914, `orientation`=3.50536 WHERE `guid`=51507; -- Hatecrest Serpent Guard +UPDATE `creature` SET `position_x`=-8183.77, `position_y`=-1081.88, `position_z`=-211.911, `orientation`=2.14782 WHERE `guid`=24585; -- Pterrordax +UPDATE `creature` SET `position_x`=-11967.1, `position_y`=-82.7392, `position_z`=3.68448, `orientation`=2.53515 WHERE `guid`=1849; -- Elder Stranglethorn Tiger +UPDATE `creature` SET `position_x`=-9172.73, `position_y`=-1125.1, `position_z`=70.9474, `orientation`=5.77704 WHERE `guid`=81299; -- Defias Rogue Wizard +UPDATE `creature` SET `position_x`=-5588.74, `position_y`=3578.25, `position_z`=-6.11156, `orientation`=4.89661 WHERE `guid`=51660; -- Hatecrest Serpent Guard +UPDATE `creature` SET `position_x`=-8147.73, `position_y`=-1114.52, `position_z`=-224.838, `orientation`=1.79487 WHERE `guid`=24591; -- Pterrordax +UPDATE `creature` SET `position_x`=10090.1, `position_y`=2463.88, `position_z`=1318.17, `orientation`=4.46495 WHERE `guid`=46546; -- Squirrel +UPDATE `creature` SET `position_x`=-1550.61, `position_y`=-2216.64, `position_z`=30.2383, `orientation`=5.50908 WHERE `guid`=11971; -- Rumbling Exile +UPDATE `creature` SET `position_x`=-14044.1, `position_y`=58.8017, `position_z`=18.9184, `orientation`=0.871248 WHERE `guid`=2147; -- Elder Mistvale Gorilla +UPDATE `creature` SET `position_x`=-9472.37, `position_y`=-1926.73, `position_z`=81.5358, `orientation`=0.487741 WHERE `guid`=10095; -- Redridge Mongrel (WAYPOINTS) +UPDATE `creature` SET `position_x`=-10553, `position_y`=-16.8618, `position_z`=44.6511, `orientation`=0.796251 WHERE `guid`=4905; -- Black Widow Hatchling +UPDATE `creature` SET `position_x`=-7287.04, `position_y`=-1981.59, `position_z`=-270.475, `orientation`=1.0607 WHERE `guid`=23859; -- Ravasaur Hunter +UPDATE `creature` SET `position_x`=2955.33, `position_y`=-4117.3, `position_z`=103.499, `orientation`=0.555766 WHERE `guid`=36170; -- Highborne Apparition +UPDATE `creature` SET `position_x`=-10307, `position_y`=379.37, `position_z`=59.8763, `orientation`=4.7822 WHERE `guid`=5127; -- Plague Spreader +UPDATE `creature` SET `id`=604 WHERE `guid`=5127; -- Plague Spreader +UPDATE `creature` SET `id2`=1110 WHERE `guid`=5127; -- Skeletal Raider +UPDATE `creature` SET `position_x`=3050.36, `position_y`=-4117.08, `position_z`=102.149, `orientation`=2.28253 WHERE `guid`=36171; -- Highborne Apparition +UPDATE `creature` SET `position_x`=-2084.98, `position_y`=-2832.49, `position_z`=77.8363, `orientation`=2.79253 WHERE `guid`=11613; -- Boulderfist Magus +UPDATE `creature` SET `position_x`=3016.45, `position_y`=-4115.05, `position_z`=100.896, `orientation`=5.39307 WHERE `guid`=36161; -- Highborne Apparition +UPDATE `creature` SET `position_x`=-10341.2, `position_y`=407.184, `position_z`=59.8763, `orientation`=2.93215 WHERE `guid`=5125; -- Plague Spreader +UPDATE `creature` SET `id`=604 WHERE `guid`=5125; -- Plague Spreader +UPDATE `creature` SET `id2`=1110 WHERE `guid`=5125; -- Skeletal Raider +UPDATE `creature` SET `position_x`=-2077.57, `position_y`=-2821.82, `position_z`=79.5811, `orientation`=4.70983 WHERE `guid`=11618; -- Boulderfist Brute +UPDATE `creature` SET `position_x`=-2063.21, `position_y`=-2835.18, `position_z`=77.3434, `orientation`=4.15006 WHERE `guid`=11616; -- Boulderfist Brute +UPDATE `creature` SET `position_x`=2988.73, `position_y`=-4118.81, `position_z`=100.221, `orientation`=4.81158 WHERE `guid`=36150; -- Highborne Apparition +UPDATE `creature` SET `position_x`=-4186, `position_y`=2217.2, `position_z`=6.8232, `orientation`=1.42134 WHERE `guid`=51224; -- Rogue Vale Screecher +UPDATE `creature` SET `position_x`=1219.06, `position_y`=-318.072, `position_z`=48.4772, `orientation`=1.13095 WHERE `guid`=16899; -- Syndicate Enforcer +UPDATE `creature` SET `position_x`=2980.75, `position_y`=-4185.99, `position_z`=100.052, `orientation`=3.85223 WHERE `guid`=36174; -- Highborne Apparition +UPDATE `creature` SET `position_x`=1173.23, `position_y`=-554.547, `position_z`=71.1837, `orientation`=1.3948 WHERE `guid`=16927; -- Argus Shadow Mage +UPDATE `creature` SET `position_x`=-7214.03, `position_y`=-1223.78, `position_z`=-210.613, `orientation`=1.11316 WHERE `guid`=24163; -- Scorching Elemental +UPDATE `creature` SET `position_x`=-3017.38, `position_y`=-4214.99, `position_z`=-1.40882, `orientation`=0.277091 WHERE `guid`=30718; -- Mudrock Spikeshell +UPDATE `creature` SET `position_x`=-10345.8, `position_y`=-1251.76, `position_z`=35.4849, `orientation`=3.76991 WHERE `guid`=6080; -- Fetid Corpse +UPDATE `creature` SET `position_x`=-2717.76, `position_y`=-3515.36, `position_z`=34.8054, `orientation`=4.0845 WHERE `guid`=31288; -- Bloodfen Screecher +UPDATE `creature` SET `position_x`=-10305.4, `position_y`=-1248.24, `position_z`=37.3744, `orientation`=4.36332 WHERE `guid`=6091; -- Fetid Corpse +UPDATE `creature` SET `position_x`=-9849.56, `position_y`=282.879, `position_z`=38.0986, `orientation`=2.8502 WHERE `guid`=80575; -- Kobold Tunneler +UPDATE `creature` SET `position_x`=-10359.2, `position_y`=-1209.75, `position_z`=41.1826, `orientation`=4.86947 WHERE `guid`=5935; -- Fetid Corpse +UPDATE `creature` SET `position_x`=-10283, `position_y`=-1308.78, `position_z`=47.6488, `orientation`=5.86431 WHERE `guid`=6097; -- Fetid Corpse +UPDATE `creature` SET `position_x`=-9815.94, `position_y`=1185.23, `position_z`=40.9381, `orientation`=3.44895 WHERE `guid`=51562; -- Young Goretusk +UPDATE `creature` SET `position_x`=-8671.98, `position_y`=-2317.01, `position_z`=156.002, `orientation`=6.05731 WHERE `guid`=17332; -- Blackrock Champion +UPDATE `creature` SET `id`=435 WHERE `guid`=17332; -- Blackrock Champion +UPDATE `creature` SET `id2`=615 WHERE `guid`=17332; -- Blackrock Tracker +UPDATE `creature` SET `position_x`=-8687.7, `position_y`=-2317.01, `position_z`=156.267, `orientation`=1.82626 WHERE `guid`=17331; -- Blackrock Champion +UPDATE `creature` SET `id`=435 WHERE `guid`=17331; -- Blackrock Champion +UPDATE `creature` SET `id2`=615 WHERE `guid`=17331; -- Blackrock Tracker +UPDATE `creature` SET `position_x`=-2750.45, `position_y`=-3551.98, `position_z`=33.8724, `orientation`=2.55111 WHERE `guid`=31287; -- Bloodfen Screecher +UPDATE `creature` SET `position_x`=2991.92, `position_y`=-2863.41, `position_z`=107.713, `orientation`=1.58183 WHERE `guid`=92093; -- Cannibal Ghoul +UPDATE `creature` SET `id`=8523 WHERE `guid`=92093; -- Scourge Soldier +UPDATE `creature` SET `id2`=8524 WHERE `guid`=92093; -- Cursed Mage +UPDATE `creature` SET `id3`=8530 WHERE `guid`=92093; -- Cannibal Ghoul +UPDATE `creature` SET `id4`=8540 WHERE `guid`=92093; -- Torn Screamer +UPDATE `creature` SET `position_x`=-10309.3, `position_y`=-1324.74, `position_z`=51.0451, `orientation`=1.79769 WHERE `guid`=6112; -- Fetid Corpse +UPDATE `creature` SET `position_x`=-9847.54, `position_y`=1288.06, `position_z`=41.9703, `orientation`=2.68781 WHERE `guid`=90232; -- Defias Smuggler +UPDATE `creature` SET `position_x`=-9850.26, `position_y`=1558.56, `position_z`=46.3877, `orientation`=3.19033 WHERE `guid`=90330; -- Riverpaw Gnoll +UPDATE `creature` SET `position_x`=-9882.08, `position_y`=1582.81, `position_z`=43.9135, `orientation`=2.1978 WHERE `guid`=86789; -- Riverpaw Gnoll +UPDATE `creature` SET `position_x`=-2909.9, `position_y`=-3938.64, `position_z`=40.2152, `orientation`=2.41872 WHERE `guid`=73663; -- Bloodfen Raptor +UPDATE `creature` SET `position_x`=-9717.58, `position_y`=951.193, `position_z`=32.2953, `orientation`=1.11852 WHERE `guid`=51555; -- Young Fleshripper +UPDATE `creature` SET `position_x`=-2932.94, `position_y`=2820.56, `position_z`=71.7872, `orientation`=5.3606 WHERE `guid`=51760; -- Northspring Harpy +UPDATE `creature` SET `position_x`=-11000.5, `position_y`=-1084.67, `position_z`=47.0864, `orientation`=5.77704 WHERE `guid`=4958; -- Nightbane Vile Fang +UPDATE `creature` SET `position_x`=-3029.2, `position_y`=2761.49, `position_z`=55.2323, `orientation`=5.69558 WHERE `guid`=51767; -- Northspring Harpy +UPDATE `creature` SET `position_x`=2979.16, `position_y`=-2863.86, `position_z`=107.713, `orientation`=0.345863 WHERE `guid`=92094; -- Scourge Soldier +UPDATE `creature` SET `id`=8523 WHERE `guid`=92094; -- Scourge Soldier +UPDATE `creature` SET `id2`=8524 WHERE `guid`=92094; -- Cursed Mage +UPDATE `creature` SET `id3`=8530 WHERE `guid`=92094; -- Cannibal Ghoul +UPDATE `creature` SET `id4`=8540 WHERE `guid`=92094; -- Torn Screamer +UPDATE `creature` SET `position_x`=-10576.2, `position_y`=435.023, `position_z`=34.8346, `orientation`=2.28638 WHERE `guid`=4969; -- Skeletal Horror +UPDATE `creature` SET `position_x`=-10396.8, `position_y`=379.461, `position_z`=24.4756, `orientation`=5.6507 WHERE `guid`=5101; -- Skeletal Warder +UPDATE `creature` SET `id`=785 WHERE `guid`=5101; -- Skeletal Warder +UPDATE `creature` SET `id2`=1110 WHERE `guid`=5101; -- Skeletal Raider +UPDATE `creature` SET `position_x`=-10414.3, `position_y`=401.888, `position_z`=47.88, `orientation`=1.41542 WHERE `guid`=4402; -- Skeletal Warder (WAYPOINTS) +UPDATE `creature` SET `position_x`=-10481.1, `position_y`=451.308, `position_z`=35.4274, `orientation`=2.18166 WHERE `guid`=4974; -- Skeletal Horror +UPDATE `creature` SET `position_x`=-10535, `position_y`=393.66, `position_z`=31.1453, `orientation`=2.21657 WHERE `guid`=5163; -- Skeletal Horror +UPDATE `creature` SET `id`=202 WHERE `guid`=5163; -- Skeletal Horror +UPDATE `creature` SET `id2`=531 WHERE `guid`=5163; -- Skeletal Fiend +UPDATE `creature` SET `position_x`=-10566.1, `position_y`=400.453, `position_z`=31.1039, `orientation`=5.84685 WHERE `guid`=5160; -- Skeletal Fiend +UPDATE `creature` SET `position_x`=2960.54, `position_y`=-2863.47, `position_z`=107.713, `orientation`=3.83972 WHERE `guid`=92080; -- Cursed Mage +UPDATE `creature` SET `id`=8523 WHERE `guid`=92080; -- Scourge Soldier +UPDATE `creature` SET `id2`=8524 WHERE `guid`=92080; -- Cursed Mage +UPDATE `creature` SET `id3`=8530 WHERE `guid`=92080; -- Cannibal Ghoul +UPDATE `creature` SET `position_x`=882.511, `position_y`=-3815.9, `position_z`=15.0922, `orientation`=2.19314 WHERE `guid`=3350; -- Dreadmaw Crocolisk +UPDATE `creature` SET `position_x`=2970.59, `position_y`=-2875.29, `position_z`=107.713, `orientation`=2.11747 WHERE `guid`=92092; -- Cannibal Ghoul +UPDATE `creature` SET `id`=8523 WHERE `guid`=92092; -- Scourge Soldier +UPDATE `creature` SET `id2`=8524 WHERE `guid`=92092; -- Cursed Mage +UPDATE `creature` SET `id3`=8530 WHERE `guid`=92092; -- Cannibal Ghoul +UPDATE `creature` SET `id4`=8540 WHERE `guid`=92092; -- Torn Screamer +UPDATE `creature` SET `position_x`=-10562.6, `position_y`=378.52, `position_z`=32.6007, `orientation`=0.776973 WHERE `guid`=5168; -- Skeletal Fiend +UPDATE `creature` SET `position_x`=-7248.76, `position_y`=381.43, `position_z`=18.9323, `orientation`=0.576621 WHERE `guid`=43161; -- Tortured Sentinel +UPDATE `creature` SET `id`=12178 WHERE `guid`=43161; -- Tortured Druid +UPDATE `creature` SET `id2`=12179 WHERE `guid`=43161; -- Tortured Sentinel +UPDATE `creature` SET `position_x`=-10550.3, `position_y`=422.687, `position_z`=36.9069, `orientation`=5.85966 WHERE `guid`=5140; -- Skeletal Fiend +UPDATE `creature` SET `position_x`=-10586, `position_y`=394.359, `position_z`=31.9933, `orientation`=3.83116 WHERE `guid`=4972; -- Skeletal Horror +UPDATE `creature` SET `position_x`=-3400.82, `position_y`=-2109.68, `position_z`=80.7366, `orientation`=4.02015 WHERE `guid`=10908; -- Dragonmaw Raider +UPDATE `creature` SET `position_x`=-7185.03, `position_y`=384.473, `position_z`=22.1681, `orientation`=5.71208 WHERE `guid`=43168; -- Tortured Sentinel +UPDATE `creature` SET `id`=12178 WHERE `guid`=43168; -- Tortured Druid +UPDATE `creature` SET `id2`=12179 WHERE `guid`=43168; -- Tortured Sentinel +UPDATE `creature` SET `position_x`=-3429.51, `position_y`=-2086.95, `position_z`=104.101, `orientation`=1.95484 WHERE `guid`=10916; -- Dragonmaw Raider +UPDATE `creature` SET `position_x`=-11138.9, `position_y`=-1154.24, `position_z`=42.9884, `orientation`=4.45059 WHERE `guid`=5017; -- Nightbane Tainted One +UPDATE `creature` SET `position_x`=-11132.9, `position_y`=-1167.42, `position_z`=43.0618, `orientation`=4.17134 WHERE `guid`=5020; -- Nightbane Tainted One +UPDATE `creature` SET `position_x`=-10049.4, `position_y`=614.448, `position_z`=40.5756, `orientation`=5.5432 WHERE `guid`=80522; -- Rabbit +UPDATE `creature` SET `position_x`=-2762.19, `position_y`=-3982.17, `position_z`=35.7559, `orientation`=5.74213 WHERE `guid`=73201; -- Mirefin Puddlejumper +UPDATE `creature` SET `position_x`=-9705.73, `position_y`=1431.9, `position_z`=46.9325, `orientation`=4.18879 WHERE `guid`=90336; -- Riverpaw Gnoll +UPDATE `creature` SET `position_x`=-11007.7, `position_y`=-1099.25, `position_z`=42.679, `orientation`=3.12414 WHERE `guid`=4951; -- Nightbane Vile Fang +UPDATE `creature` SET `position_x`=-7217.37, `position_y`=415.177, `position_z`=24.6744, `orientation`=1.7936 WHERE `guid`=43142; -- Tortured Druid +UPDATE `creature` SET `id`=12178 WHERE `guid`=43142; -- Tortured Druid +UPDATE `creature` SET `id2`=12179 WHERE `guid`=43142; -- Tortured Sentinel +UPDATE `creature` SET `position_x`=-12698.9, `position_y`=-453.244, `position_z`=31.0378, `orientation`=0.0231913 WHERE `guid`=2546; -- Skullsplitter Warrior +UPDATE `creature` SET `position_x`=-12690.4, `position_y`=-470.925, `position_z`=29.7837, `orientation`=6.16857 WHERE `guid`=2544; -- Skullsplitter Warrior +UPDATE `creature` SET `position_x`=-11027.4, `position_y`=-1103.69, `position_z`=41.849, `orientation`=0 WHERE `guid`=4959; -- Nightbane Vile Fang +UPDATE `creature` SET `position_x`=-7280.21, `position_y`=453.565, `position_z`=18.3835, `orientation`=2.99471 WHERE `guid`=43138; -- Tortured Druid +UPDATE `creature` SET `position_x`=4515.8, `position_y`=-917.169, `position_z`=306.211, `orientation`=3.07689 WHERE `guid`=40803; -- Felpaw Scavenger +UPDATE `creature` SET `position_x`=-9518.59, `position_y`=-1544.86, `position_z`=61.1886, `orientation`=0.890714 WHERE `guid`=81378; -- Prowler +UPDATE `creature` SET `position_x`=-8049.24, `position_y`=-1417.34, `position_z`=-268.689, `orientation`=2.3287 WHERE `guid`=24265; -- Gorishi Wasp +UPDATE `creature` SET `position_x`=-3883.93, `position_y`=1983.25, `position_z`=76.094, `orientation`=1.16069 WHERE `guid`=50635; -- Groddoc Thunderer +UPDATE `creature` SET `position_x`=-10583.5, `position_y`=251.249, `position_z`=31.7684, `orientation`=3.57792 WHERE `guid`=4943; -- Skeletal Horror +UPDATE `creature` SET `position_x`=-9087.81, `position_y`=-556.63, `position_z`=60.9236, `orientation`=5.77739 WHERE `guid`=80982; -- Kobold Miner +UPDATE `creature` SET `position_x`=-6093.99, `position_y`=-2923.09, `position_z`=418.864, `orientation`=2.63545 WHERE `guid`=9053; -- Stonesplinter Skullthumper +UPDATE `creature` SET `position_x`=6873.17, `position_y`=-2038.64, `position_z`=581.654, `orientation`=4.32533 WHERE `guid`=39691; -- Deadwood Den Watcher +UPDATE `creature` SET `position_x`=-6227.48, `position_y`=-2945.03, `position_z`=403.441, `orientation`=0.454881 WHERE `guid`=8958; -- Stonesplinter Bonesnapper +UPDATE `creature` SET `position_x`=-10475.7, `position_y`=422.91, `position_z`=38.7331, `orientation`=4.22637 WHERE `guid`=5176; -- Skeletal Fiend +UPDATE `creature` SET `position_x`=286.947, `position_y`=-1316.27, `position_z`=35.1194, `orientation`=1.88319 WHERE `guid`=16855; -- Snapjaw +UPDATE `creature` SET `position_x`=-8549.41, `position_y`=-206.792, `position_z`=85.2076, `orientation`=0 WHERE `guid`=80086; -- Kobold Laborer +UPDATE `creature` SET `position_x`=-10676, `position_y`=45.3549, `position_z`=37.2539, `orientation`=4.76449 WHERE `guid`=4887; -- Black Widow Hatchling +UPDATE `creature` SET `position_x`=-6212.5, `position_y`=-3008.34, `position_z`=385.151, `orientation`=5.5925 WHERE `guid`=8261; -- Stonesplinter Bonesnapper +UPDATE `creature` SET `position_x`=-10355.5, `position_y`=351.824, `position_z`=16.057, `orientation`=4.64258 WHERE `guid`=5094; -- Skeletal Warder (WAYPOINTS) +UPDATE `creature` SET `id`=785 WHERE `guid`=5094; -- Skeletal Warder +UPDATE `creature` SET `id2`=1110 WHERE `guid`=5094; -- Skeletal Raider +UPDATE `creature` SET `position_x`=-9747.63, `position_y`=-817.368, `position_z`=41.765, `orientation`=0.602966 WHERE `guid`=80836; -- Defias Bandit +UPDATE `creature` SET `position_x`=-10417.6, `position_y`=373.492, `position_z`=45.2424, `orientation`=3.16743 WHERE `guid`=5002; -- Skeletal Healer +UPDATE `creature` SET `position_x`=-6160.46, `position_y`=-2991.46, `position_z`=388.858, `orientation`=6.00821 WHERE `guid`=8973; -- Stonesplinter Bonesnapper +UPDATE `creature` SET `position_x`=-3854.36, `position_y`=1951.1, `position_z`=70.2908, `orientation`=5.54341 WHERE `guid`=50636; -- Groddoc Thunderer +UPDATE `creature` SET `position_x`=-9207.73, `position_y`=-2852.03, `position_z`=108.696, `orientation`=1.50098 WHERE `guid`=10197; -- Blackrock Grunt +UPDATE `creature` SET `position_x`=-9216.93, `position_y`=-2861.03, `position_z`=109.723, `orientation`=1.76278 WHERE `guid`=10211; -- Blackrock Grunt +UPDATE `creature` SET `id`=440 WHERE `guid`=10211; -- Blackrock Grunt +UPDATE `creature` SET `id2`=485 WHERE `guid`=10211; -- Blackrock Outrunner +UPDATE `creature` SET `position_x`=-5173.82, `position_y`=662.094, `position_z`=348.362, `orientation`=2.51682 WHERE `guid`=2444; -- Addled Leper +UPDATE `creature` SET `position_x`=-5160.02, `position_y`=711.033, `position_z`=247.452, `orientation`=2.91437 WHERE `guid`=1162; -- Addled Leper +UPDATE `creature` SET `position_x`=-1315.67, `position_y`=1920.31, `position_z`=50.9811, `orientation`=6.05584 WHERE `guid`=28285; -- Dying Kodo +UPDATE `creature` SET `position_x`=1715.35, `position_y`=-4683.6, `position_z`=51.541, `orientation`=2.66729 WHERE `guid`=52961; -- Plague Ravager +UPDATE `creature` SET `position_x`=-6144.17, `position_y`=-2956.78, `position_z`=397.084, `orientation`=4.53753 WHERE `guid`=9263; -- Stonesplinter Skullthumper +UPDATE `creature` SET `position_x`=-10481.8, `position_y`=-3918.02, `position_z`=-0.954312, `orientation`=0.184829 WHERE `guid`=41798; -- Sawfin Frenzy +UPDATE `creature` SET `position_x`=-7582.83, `position_y`=-4251.65, `position_z`=9.35221, `orientation`=1.92157 WHERE `guid`=23541; -- Wastewander Rogue +UPDATE `creature` SET `position_x`=-7562.08, `position_y`=-4264.36, `position_z`=8.96798, `orientation`=2.5877 WHERE `guid`=23489; -- Wastewander Rogue +UPDATE `creature` SET `position_x`=-6216.01, `position_y`=-2926.58, `position_z`=402.182, `orientation`=4.00369 WHERE `guid`=9265; -- Stonesplinter Bonesnapper +UPDATE `creature` SET `position_x`=-6165.84, `position_y`=-2903.31, `position_z`=405.773, `orientation`=5.65355 WHERE `guid`=9269; -- Stonesplinter Bonesnapper +UPDATE `creature` SET `position_x`=2958.19, `position_y`=-2878.13, `position_z`=107.713, `orientation`=1.51507 WHERE `guid`=92081; -- Cursed Mage +UPDATE `creature` SET `id`=8523 WHERE `guid`=92081; -- Scourge Soldier +UPDATE `creature` SET `id2`=8524 WHERE `guid`=92081; -- Cursed Mage +UPDATE `creature` SET `position_x`=-10520.7, `position_y`=-1279.64, `position_z`=39.3066, `orientation`=2.37579 WHERE `guid`=4181; -- Watcher Keller +UPDATE `creature` SET `position_x`=-7743.45, `position_y`=-3218.6, `position_z`=80.3525, `orientation`=1.29246 WHERE `guid`=22699; -- Fire Roc +UPDATE `creature` SET `position_x`=-7649.58, `position_y`=-2516.71, `position_z`=9.03952, `orientation`=5.48394 WHERE `guid`=22954; -- Centipaar Wasp +UPDATE `creature` SET `position_x`=-8879.53, `position_y`=-2012.73, `position_z`=124.482, `orientation`=1.43291 WHERE `guid`=10124; -- Redridge Drudger +UPDATE `creature` SET `position_x`=-7484.22, `position_y`=-4485.52, `position_z`=8.33368, `orientation`=2.79261 WHERE `guid`=23471; -- Wastewander Rogue +UPDATE `creature` SET `position_x`=-7385.07, `position_y`=-4384.56, `position_z`=11.106, `orientation`=0.873447 WHERE `guid`=23537; -- Wastewander Rogue +UPDATE `creature` SET `position_x`=-9094.65, `position_y`=-3177.16, `position_z`=110.403, `orientation`=4.92183 WHERE `guid`=6296; -- Shadowhide Darkweaver +UPDATE `creature` SET `position_x`=-9098.54, `position_y`=-3183.15, `position_z`=110.578, `orientation`=5.58505 WHERE `guid`=6295; -- Shadowhide Slayer +UPDATE `creature` SET `position_x`=4579.66, `position_y`=-504.762, `position_z`=295.598, `orientation`=4.1964 WHERE `guid`=40748; -- Jadefire Rogue +UPDATE `creature` SET `position_x`=5702.41, `position_y`=-4533.46, `position_z`=763.215, `orientation`=1.74616 WHERE `guid`=41410; -- Crazed Owlbeast +UPDATE `creature` SET `position_x`=5709.86, `position_y`=-4512.18, `position_z`=762.274, `orientation`=5.30913 WHERE `guid`=41437; -- Crazed Owlbeast +UPDATE `creature` SET `position_x`=-4978.13, `position_y`=-837.105, `position_z`=-5.78499, `orientation`=0.349066 WHERE `guid`=21143; -- Highperch Wyvern +UPDATE `creature` SET `position_x`=5680.32, `position_y`=-4518.34, `position_z`=766.465, `orientation`=3.97953 WHERE `guid`=41431; -- Crazed Owlbeast +UPDATE `creature` SET `position_x`=-4819.22, `position_y`=-2751.95, `position_z`=324.753, `orientation`=5.96903 WHERE `guid`=8937; -- Forest Lurker +UPDATE `creature` SET `position_x`=-10967.6, `position_y`=1396.56, `position_z`=44.9966, `orientation`=2.80417 WHERE `guid`=90219; -- Defias Pillager +UPDATE `creature` SET `position_x`=-9087.89, `position_y`=-3322.61, `position_z`=102.621, `orientation`=2.49582 WHERE `guid`=29888; -- Shadowhide Warrior +UPDATE `creature` SET `position_x`=-9120.96, `position_y`=-3310.22, `position_z`=103.338, `orientation`=6.23034 WHERE `guid`=18449; -- Shadowhide Slayer +UPDATE `creature` SET `position_x`=-526.989, `position_y`=17.6513, `position_z`=-53.863, `orientation`=0.349066 WHERE `guid`=34654; -- Atal'ai Slave +UPDATE `creature` SET `position_x`=-7387.89, `position_y`=-2444.64, `position_z`=310.633, `orientation`=0.864527 WHERE `guid`=7693; -- Greater Rock Elemental +UPDATE `creature` SET `position_x`=-7350.56, `position_y`=-2482.29, `position_z`=322.388, `orientation`=5.49157 WHERE `guid`=7232; -- Greater Rock Elemental +UPDATE `creature` SET `position_x`=-9357.4, `position_y`=-1902.48, `position_z`=68.156, `orientation`=3.12414 WHERE `guid`=16339; -- Great Goretusk +UPDATE `creature` SET `position_x`=-10784.4, `position_y`=1183.9, `position_z`=46.4641, `orientation`=2.38058 WHERE `guid`=89801; -- Fleshripper +UPDATE `creature` SET `position_x`=-8235.62, `position_y`=-2904.06, `position_z`=17.6355, `orientation`=1.63895 WHERE `guid`=23179; -- Dunemaul Enforcer +UPDATE `creature` SET `position_x`=186.532, `position_y`=-148.772, `position_z`=128.07, `orientation`=0.734752 WHERE `guid`=17571; -- Mountain Yeti +UPDATE `creature` SET `position_x`=6583.26, `position_y`=-5017.23, `position_z`=713.172, `orientation`=5.25515 WHERE `guid`=41625; -- Ice Thistle Yeti +UPDATE `creature` SET `position_x`=-2116.52, `position_y`=-2515.73, `position_z`=91.9605, `orientation`=0.0976761 WHERE `guid`=20126; -- Bristleback Hunter +UPDATE `creature` SET `position_x`=-10215.6, `position_y`=452.395, `position_z`=37.6215, `orientation`=2.51327 WHERE `guid`=6048; -- Rabid Dire Wolf +UPDATE `creature` SET `id`=213 WHERE `guid`=6048; -- Starving Dire Wolf +UPDATE `creature` SET `id2`=565 WHERE `guid`=6048; -- Rabid Dire Wolf +UPDATE `creature` SET `position_x`=-10470.8, `position_y`=330.292, `position_z`=35.4451, `orientation`=3.9576 WHERE `guid`=5087; -- Carrion Recluse +UPDATE `creature` SET `position_x`=-10444.1, `position_y`=379.957, `position_z`=44.2701, `orientation`=1.58251 WHERE `guid`=5090; -- Skeletal Healer +UPDATE `creature` SET `position_x`=-2617.98, `position_y`=-2365.4, `position_z`=80.8526, `orientation`=2.55366 WHERE `guid`=10583; -- Dark Iron Dwarf +UPDATE `creature` SET `position_x`=-2565.16, `position_y`=-2378.18, `position_z`=77.6925, `orientation`=2.05448 WHERE `guid`=10488; -- Dark Iron Saboteur +UPDATE `creature` SET `position_x`=585.977, `position_y`=-118.063, `position_z`=140.004, `orientation`=4.40903 WHERE `guid`=17069; -- Giant Yeti +UPDATE `creature` SET `position_x`=-5683.37, `position_y`=-3182.66, `position_z`=319.485, `orientation`=4.10468 WHERE `guid`=8842; -- Squirrel +UPDATE `creature` SET `position_x`=-10452.2, `position_y`=400.614, `position_z`=42.8764, `orientation`=2.05206 WHERE `guid`=5089; -- Skeletal Healer +UPDATE `creature` SET `position_x`=-10394.9, `position_y`=359.776, `position_z`=24.4756, `orientation`=3.80173 WHERE `guid`=4334; -- Skeletal Healer +UPDATE `creature` SET `position_x`=-5556.52, `position_y`=-2858.54, `position_z`=361.183, `orientation`=5.37015 WHERE `guid`=9382; -- Sheep +UPDATE `creature` SET `position_x`=512.227, `position_y`=-115.193, `position_z`=144.68, `orientation`=2.29711 WHERE `guid`=17597; -- Giant Yeti +UPDATE `creature` SET `position_x`=4985.71, `position_y`=-552.512, `position_z`=337.104, `orientation`=3.60055 WHERE `guid`=40620; -- Angerclaw Mauler +UPDATE `creature` SET `position_x`=550.21, `position_y`=-80.7, `position_z`=143.661, `orientation`=2.70807 WHERE `guid`=17088; -- Giant Yeti +UPDATE `creature` SET `position_x`=-3286.03, `position_y`=-2581.55, `position_z`=12.2603, `orientation`=1.39042 WHERE `guid`=11130; -- Young Wetlands Crocolisk +UPDATE `creature` SET `position_x`=817.504, `position_y`=-247.039, `position_z`=145.588, `orientation`=2.06423 WHERE `guid`=17080; -- Giant Yeti +UPDATE `creature` SET `position_x`=451.836, `position_y`=-49.2944, `position_z`=147.624, `orientation`=0.278907 WHERE `guid`=17593; -- Giant Yeti +UPDATE `creature` SET `position_x`=699.517, `position_y`=-135.45, `position_z`=140.445, `orientation`=3.84957 WHERE `guid`=17071; -- Giant Yeti +UPDATE `creature` SET `position_x`=-8803.77, `position_y`=-225.268, `position_z`=83.1276, `orientation`=0 WHERE `guid`=80114; -- Kobold Vermin +UPDATE `creature` SET `position_x`=-9232.09, `position_y`=-3098.86, `position_z`=107.884, `orientation`=0.268296 WHERE `guid`=7410; -- Rabbit +UPDATE `creature` SET `position_x`=-9257.61, `position_y`=119.945, `position_z`=71.7145, `orientation`=2.34801 WHERE `guid`=79652; -- Deer +UPDATE `creature` SET `position_x`=6577.28, `position_y`=-798.177, `position_z`=475.037, `orientation`=1.3339 WHERE `guid`=40230; -- Jadefire Hellcaller +UPDATE `creature` SET `position_x`=3180.71, `position_y`=-5385.32, `position_z`=87.8284, `orientation`=4.27298 WHERE `guid`=35468; -- Spitelash Serpent Guard +UPDATE `creature` SET `position_x`=6581.09, `position_y`=-804.007, `position_z`=474.841, `orientation`=3.74864 WHERE `guid`=40196; -- Jadefire Trickster +UPDATE `creature` SET `position_x`=3713.89, `position_y`=-5384.64, `position_z`=62.2262, `orientation`=1.79023 WHERE `guid`=35525; -- Spitelash Siren +UPDATE `creature` SET `position_x`=471.951, `position_y`=239.998, `position_z`=43.7732, `orientation`=0.706961 WHERE `guid`=16948; -- Dalaran Summoner +UPDATE `creature` SET `position_x`=-9080.38, `position_y`=-249.532, `position_z`=73.9323, `orientation`=1.56472 WHERE `guid`=80174; -- Defias Thug +UPDATE `creature` SET `position_x`=-8890.25, `position_y`=-2175.16, `position_z`=132.693, `orientation`=1.09956 WHERE `guid`=16410; -- Redridge Alpha +UPDATE `creature` SET `position_x`=-9725.26, `position_y`=-653.313, `position_z`=45.274, `orientation`=5.41173 WHERE `guid`=80825; -- Young Forest Bear +UPDATE `creature` SET `position_x`=4616.4, `position_y`=-5613.3, `position_z`=101.269, `orientation`=3.90497 WHERE `guid`=35273; -- Timbermaw Shaman +UPDATE `creature` SET `position_x`=4622.41, `position_y`=-5579.21, `position_z`=104.737, `orientation`=2.49374 WHERE `guid`=35281; -- Timbermaw Shaman +UPDATE `creature` SET `position_x`=-9549.34, `position_y`=-186.622, `position_z`=61.3067, `orientation`=5.9336 WHERE `guid`=81084; -- Mangy Wolf +UPDATE `creature` SET `position_x`=4550.32, `position_y`=-5518.49, `position_z`=107.722, `orientation`=0.228392 WHERE `guid`=35314; -- Timbermaw Shaman +UPDATE `creature` SET `position_x`=-2799.94, `position_y`=-2882.39, `position_z`=36.1137, `orientation`=3.08923 WHERE `guid`=11195; -- Dark Iron Dwarf +UPDATE `creature` SET `position_x`=-6548.71, `position_y`=1351.31, `position_z`=4.71407, `orientation`=5.24494 WHERE `guid`=45713; -- Dredge Striker +UPDATE `creature` SET `id`=11738 WHERE `guid`=45713; -- Sand Skitterer +UPDATE `creature` SET `id2`=11740 WHERE `guid`=45713; -- Dredge Striker +UPDATE `creature` SET `position_x`=-6482.07, `position_y`=1284.63, `position_z`=2.5364, `orientation`=2.88386 WHERE `guid`=44469; -- Sand Skitterer +UPDATE `creature` SET `position_x`=-9266.45, `position_y`=-2181.94, `position_z`=64.2534, `orientation`=4.7822 WHERE `guid`=10088; -- Guard Clarke (WAYPOINTS) +UPDATE `creature` SET `position_x`=-2012.63, `position_y`=-3622.45, `position_z`=21.8636, `orientation`=1.345 WHERE `guid`=13887; -- Theramore Marine +UPDATE `creature` SET `position_x`=-2262.62, `position_y`=-2550, `position_z`=92.5269, `orientation`=4.90842 WHERE `guid`=20174; -- Bristleback Water Seeker +UPDATE `creature` SET `position_x`=-3753.81, `position_y`=-2920.49, `position_z`=12.2035, `orientation`=3.22886 WHERE `guid`=10620; -- Mosshide Mistweaver +UPDATE `creature` SET `position_x`=-2495.23, `position_y`=-2454.03, `position_z`=79.5553, `orientation`=1.1424 WHERE `guid`=9955; -- Comar Villard +UPDATE `creature` SET `position_x`=-3758.21, `position_y`=-2923.19, `position_z`=12.2035, `orientation`=1.5708 WHERE `guid`=9822; -- Mosshide Mistweaver +UPDATE `creature` SET `position_x`=-1108.13, `position_y`=-2847.43, `position_z`=44.0768, `orientation`=3.55508 WHERE `guid`=11715; -- Dabyrie Laborer +UPDATE `creature` SET `position_x`=-14551.1, `position_y`=181.72, `position_z`=2.85809, `orientation`=3.03779 WHERE `guid`=2560; -- Bloodsail Swashbuckler +UPDATE `creature` SET `position_x`=-10250.3, `position_y`=548.213, `position_z`=28.5691, `orientation`=3.92699 WHERE `guid`=5193; -- Starving Dire Wolf +UPDATE `creature` SET `position_x`=-968.959, `position_y`=-634.728, `position_z`=2.08207, `orientation`=3.83972 WHERE `guid`=16015; -- Daggerspine Siren +UPDATE `creature` SET `position_x`=-964.763, `position_y`=-700.83, `position_z`=0.967917, `orientation`=5.55402 WHERE `guid`=16002; -- Daggerspine Siren +UPDATE `creature` SET `position_x`=-83.467, `position_y`=685.19, `position_z`=105.834, `orientation`=1.10422 WHERE `guid`=27856; -- Hatefury Betrayer +UPDATE `creature` SET `position_x`=-1251.81, `position_y`=-883.296, `position_z`=-3.7388, `orientation`=2.23691 WHERE `guid`=15331; -- Daggerspine Shorestalker +UPDATE `creature` SET `position_x`=-4035.2, `position_y`=-2990.87, `position_z`=12.9365, `orientation`=5.8066 WHERE `guid`=10492; -- Mosshide Mongrel +UPDATE `creature` SET `position_x`=-4151.31, `position_y`=-2972.95, `position_z`=13.1474, `orientation`=3.9968 WHERE `guid`=10303; -- Mosshide Gnoll +UPDATE `creature` SET `position_x`=-6414.16, `position_y`=1287.56, `position_z`=4.3221, `orientation`=2.11765 WHERE `guid`=43933; -- Stonelash Scorpid +UPDATE `creature` SET `position_x`=-4080.36, `position_y`=-3146.41, `position_z`=10.6753, `orientation`=0 WHERE `guid`=11150; -- Mosshide Gnoll +UPDATE `creature` SET `position_x`=-11082.4, `position_y`=-933.106, `position_z`=63.9452, `orientation`=0 WHERE `guid`=4328; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=3017.72, `position_y`=-5151.61, `position_z`=134.133, `orientation`=5.50081 WHERE `guid`=35837; -- Mistwing Rogue +UPDATE `creature` SET `position_x`=-4131.41, `position_y`=-2964.41, `position_z`=13.2573, `orientation`=1.16937 WHERE `guid`=10332; -- Mosshide Gnoll +UPDATE `creature` SET `position_x`=-10910.4, `position_y`=-904.347, `position_z`=71.1825, `orientation`=3.9968 WHERE `guid`=4450; -- Nightbane Shadow Weaver +UPDATE `creature` SET `position_x`=-10905.7, `position_y`=-917.966, `position_z`=71.1007, `orientation`=0.994838 WHERE `guid`=4446; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=-10991, `position_y`=-984.408, `position_z`=68.8044, `orientation`=0.890118 WHERE `guid`=4436; -- Nightbane Shadow Weaver +UPDATE `creature` SET `id`=205 WHERE `guid`=4436; -- Nightbane Dark Runner +UPDATE `creature` SET `id2`=533 WHERE `guid`=4436; -- Nightbane Shadow Weaver +UPDATE `creature` SET `position_x`=-10938, `position_y`=-933.763, `position_z`=77.0756, `orientation`=1.29154 WHERE `guid`=4249; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=-1049.21, `position_y`=-2448.28, `position_z`=55.783, `orientation`=4.25725 WHERE `guid`=11983; -- Highland Thrasher +UPDATE `creature` SET `position_x`=-10930.5, `position_y`=-925.385, `position_z`=72.2092, `orientation`=4.50295 WHERE `guid`=4331; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=-11068, `position_y`=-916.712, `position_z`=63.86, `orientation`=1.67552 WHERE `guid`=4431; -- Nightbane Shadow Weaver +UPDATE `creature` SET `position_x`=-10927, `position_y`=-938.721, `position_z`=72.296, `orientation`=4.24115 WHERE `guid`=4298; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=-11079.1, `position_y`=-860.99, `position_z`=62.0247, `orientation`=5.13127 WHERE `guid`=4428; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=-11033.2, `position_y`=-905.247, `position_z`=63.6627, `orientation`=1.85005 WHERE `guid`=4421; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=-2941.68, `position_y`=-1969.29, `position_z`=10.6426, `orientation`=4.18879 WHERE `guid`=10561; -- Mosshide Brute +UPDATE `creature` SET `position_x`=-11076.1, `position_y`=-830.931, `position_z`=58.7313, `orientation`=5.81195 WHERE `guid`=4429; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=-11039.7, `position_y`=-816.127, `position_z`=60.5696, `orientation`=4.67748 WHERE `guid`=4437; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=-11074.3, `position_y`=-820.089, `position_z`=58.4402, `orientation`=5.89921 WHERE `guid`=4432; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=-11055.9, `position_y`=-844.006, `position_z`=60.5592, `orientation`=1.78024 WHERE `guid`=4426; -- Nightbane Dark Runner +UPDATE `creature` SET `position_x`=-6694.64, `position_y`=1546.7, `position_z`=8.3803, `orientation`=0.872665 WHERE `guid`=43035; -- Twilight Geolord +UPDATE `creature` SET `position_x`=-2993.67, `position_y`=-1969.36, `position_z`=10.87, `orientation`=5.5676 WHERE `guid`=10562; -- Mosshide Brute +UPDATE `creature` SET `position_x`=-2949.35, `position_y`=-1923.79, `position_z`=10.054, `orientation`=0.942478 WHERE `guid`=10568; -- Mosshide Brute +UPDATE `creature` SET `position_x`=6449.38, `position_y`=-4282.2, `position_z`=666.832, `orientation`=5.58683 WHERE `guid`=42166; -- Suffering Highborne +UPDATE `creature` SET `position_x`=-2918.43, `position_y`=-1780.67, `position_z`=8.15016, `orientation`=1.85005 WHERE `guid`=10536; -- Wetlands Crocolisk +UPDATE `creature` SET `position_x`=-351.108, `position_y`=2619.52, `position_z`=-8.80165, `orientation`=1.31168 WHERE `guid`=28516; -- Slitherblade Naga +UPDATE `creature` SET `position_x`=-3084.66, `position_y`=-2018.77, `position_z`=9.33037, `orientation`=0.174533 WHERE `guid`=10668; -- Mosshide Fenrunner +UPDATE `creature` SET `position_x`=-7683.97, `position_y`=1284.01, `position_z`=2.43852, `orientation`=5.14768 WHERE `guid`=45640; -- Rock Stalker +UPDATE `creature` SET `position_x`=4415.83, `position_y`=-6784.67, `position_z`=97.5433, `orientation`=0.779189 WHERE `guid`=35852; -- Forest Ooze +UPDATE `creature` SET `position_x`=3853.59, `position_y`=-5586.11, `position_z`=18.2329, `orientation`=0.304028 WHERE `guid`=35513; -- Spitelash Siren +UPDATE `creature` SET `position_x`=-10984.5, `position_y`=-113.737, `position_z`=14.662, `orientation`=3.09646 WHERE `guid`=5046; -- Splinter Fist Fire Weaver +UPDATE `creature` SET `position_x`=-9292.46, `position_y`=388.547, `position_z`=76.6842, `orientation`=3.59057 WHERE `guid`=80297; -- Deer +UPDATE `creature` SET `position_x`=-11157, `position_y`=-155.076, `position_z`=9.94107, `orientation`=5.05917 WHERE `guid`=5068; -- Splinter Fist Warrior +UPDATE `creature` SET `position_x`=-11016.5, `position_y`=-184.425, `position_z`=15.0242, `orientation`=6.03884 WHERE `guid`=5050; -- Splinter Fist Ogre +UPDATE `creature` SET `position_x`=-6585.97, `position_y`=1716.9, `position_z`=4.2908, `orientation`=1.34071 WHERE `guid`=46103; -- Dust Stormer +UPDATE `creature` SET `position_x`=-6517.28, `position_y`=1780.52, `position_z`=12.4491, `orientation`=5.19844 WHERE `guid`=46116; -- Dust Stormer +UPDATE `creature` SET `position_x`=-11048.7, `position_y`=-83.7513, `position_z`=14.937, `orientation`=4.35926 WHERE `guid`=5078; -- Splinter Fist Firemonger +UPDATE `creature` SET `position_x`=-6316.45, `position_y`=1649.19, `position_z`=13.3937, `orientation`=0.383722 WHERE `guid`=46136; -- Desert Rumbler +UPDATE `creature` SET `position_x`=-6314.72, `position_y`=1717.44, `position_z`=2.83304, `orientation`=0.672141 WHERE `guid`=46145; -- Desert Rumbler +UPDATE `creature` SET `position_x`=-6283.8, `position_y`=1681.38, `position_z`=5.23726, `orientation`=2.7269 WHERE `guid`=46144; -- Desert Rumbler +UPDATE `creature` SET `position_x`=-9143.33, `position_y`=-368.418, `position_z`=72.2573, `orientation`=2.47813 WHERE `guid`=80203; -- Defias Thug +UPDATE `creature` SET `position_x`=-6414.1, `position_y`=1748.8, `position_z`=20.9686, `orientation`=2.64095 WHERE `guid`=46135; -- Desert Rumbler +UPDATE `creature` SET `position_x`=-6483.36, `position_y`=1755.91, `position_z`=21.047, `orientation`=3.82482 WHERE `guid`=46117; -- Dust Stormer +UPDATE `creature` SET `position_x`=-6378.79, `position_y`=1718.46, `position_z`=19.6107, `orientation`=1.02439 WHERE `guid`=46157; -- Desert Rumbler +UPDATE `creature` SET `position_x`=-6452.35, `position_y`=1783.22, `position_z`=9.84245, `orientation`=3.97278 WHERE `guid`=46118; -- Dust Stormer +UPDATE `creature` SET `position_x`=-6216.88, `position_y`=1682.38, `position_z`=5.60752, `orientation`=2.92871 WHERE `guid`=46142; -- Desert Rumbler +UPDATE `creature` SET `position_x`=-6287.1, `position_y`=1616.44, `position_z`=10.9153, `orientation`=2.97729 WHERE `guid`=46140; -- Desert Rumbler +UPDATE `creature` SET `position_x`=-6349.08, `position_y`=1815.21, `position_z`=4.8957, `orientation`=6.00764 WHERE `guid`=46149; -- Desert Rumbler +UPDATE `creature` SET `position_x`=-6318.4, `position_y`=1846.91, `position_z`=9.23238, `orientation`=2.57448 WHERE `guid`=46156; -- Desert Rumbler +UPDATE `creature` SET `position_x`=-6282.02, `position_y`=1817.28, `position_z`=6.16828, `orientation`=0.0275199 WHERE `guid`=46150; -- Desert Rumbler +UPDATE `creature` SET `position_x`=-6648.61, `position_y`=1846.89, `position_z`=5.82068, `orientation`=3.31126 WHERE `guid`=46113; -- Dust Stormer +UPDATE `creature` SET `position_x`=-6583.37, `position_y`=1783.1, `position_z`=2.35443, `orientation`=0.0138473 WHERE `guid`=46120; -- Dust Stormer +UPDATE `creature` SET `position_x`=-6651.52, `position_y`=1784.13, `position_z`=6.08105, `orientation`=4.80618 WHERE `guid`=46122; -- Dust Stormer +UPDATE `creature` SET `position_x`=-6584.41, `position_y`=1850.17, `position_z`=4.56271, `orientation`=1.3337 WHERE `guid`=46098; -- Dust Stormer +UPDATE `creature` SET `position_x`=-6553.01, `position_y`=1884.23, `position_z`=2.13726, `orientation`=1.14369 WHERE `guid`=46099; -- Dust Stormer +UPDATE `creature` SET `position_x`=-6551.55, `position_y`=1816.09, `position_z`=3.66826, `orientation`=3.73037 WHERE `guid`=46121; -- Dust Stormer +UPDATE `creature` SET `position_x`=-6547.88, `position_y`=1752.05, `position_z`=10.7473, `orientation`=0.153007 WHERE `guid`=46114; -- Dust Stormer +UPDATE `creature` SET `position_x`=-6982.21, `position_y`=1382.33, `position_z`=6.24822, `orientation`=2.24338 WHERE `guid`=46024; -- Dredge Crusher +UPDATE `creature` SET `position_x`=-9351, `position_y`=-215.534, `position_z`=67.0602, `orientation`=2.36413 WHERE `guid`=81097; -- Mangy Wolf +UPDATE `creature` SET `position_x`=-304.354, `position_y`=-3453.25, `position_z`=191.813, `orientation`=0.412252 WHERE `guid`=93427; -- Vilebranch Soothsayer +UPDATE `creature` SET `position_x`=-3061.54, `position_y`=-1863.94, `position_z`=6.81553, `orientation`=6.12611 WHERE `guid`=10810; -- Fen Creeper +UPDATE `creature` SET `position_x`=-1200.04, `position_y`=-1172.45, `position_z`=40.3056, `orientation`=5.17958 WHERE `guid`=16177; -- Dun Garok Mountaineer +UPDATE `creature` SET `position_x`=-1324.16, `position_y`=-1248.77, `position_z`=32.208, `orientation`=0.471239 WHERE `guid`=16158; -- Dun Garok Priest +UPDATE `creature` SET `position_x`=-581.916, `position_y`=-1512.32, `position_z`=53.0945, `orientation`=3.75246 WHERE `guid`=16178; -- Syndicate Watchman +UPDATE `creature` SET `position_x`=-546.542, `position_y`=-1482.87, `position_z`=53.3324, `orientation`=5.09359 WHERE `guid`=15414; -- Chicken +UPDATE `creature` SET `position_x`=-543.303, `position_y`=-1388.48, `position_z`=65.0784, `orientation`=1.04522 WHERE `guid`=16119; -- Syndicate Watchman +UPDATE `creature` SET `position_x`=-599.669, `position_y`=-1485.8, `position_z`=54.1541, `orientation`=1.02974 WHERE `guid`=16028; -- Syndicate Shadow Mage +UPDATE `creature` SET `position_x`=-598.571, `position_y`=-1473.31, `position_z`=53.8396, `orientation`=2.06321 WHERE `guid`=16029; -- Syndicate Watchman +UPDATE `creature` SET `position_x`=-590.096, `position_y`=-1468.72, `position_z`=53.743, `orientation`=0.320498 WHERE `guid`=16026; -- Syndicate Rogue +UPDATE `creature` SET `position_x`=-1112.44, `position_y`=-5445.87, `position_z`=10.1592, `orientation`=1.98968 WHERE `guid`=13021; -- Voodoo Troll +UPDATE `creature` SET `id`=3206 WHERE `guid`=13021; -- Voodoo Troll +UPDATE `creature` SET `id2`=3207 WHERE `guid`=13021; -- Hexed Troll +UPDATE `creature` SET `position_x`=-552.563, `position_y`=-4350.9, `position_z`=40.3623, `orientation`=5.46288 WHERE `guid`=11029; -- Mottled Boar +UPDATE `creature` SET `position_x`=3483.28, `position_y`=1050.48, `position_z`=0.929265, `orientation`=2.41918 WHERE `guid`=32735; -- Wrathtail Myrmidon +UPDATE `creature` SET `position_x`=-380.822, `position_y`=-4317.31, `position_z`=53.1156, `orientation`=4.64258 WHERE `guid`=6634; -- Mottled Boar +UPDATE `creature` SET `position_x`=-416.677, `position_y`=-4282.16, `position_z`=41.2697, `orientation`=2.33874 WHERE `guid`=12976; -- Mottled Boar +UPDATE `creature` SET `position_x`=-1102.39, `position_y`=-5524.31, `position_z`=11.8564, `orientation`=4.03171 WHERE `guid`=13027; -- Voodoo Troll +UPDATE `creature` SET `position_x`=-1134.56, `position_y`=-5563.92, `position_z`=9.99123, `orientation`=1.43117 WHERE `guid`=12382; -- Hexed Troll +UPDATE `creature` SET `id`=3206 WHERE `guid`=12382; -- Voodoo Troll +UPDATE `creature` SET `id2`=3207 WHERE `guid`=12382; -- Hexed Troll +UPDATE `creature` SET `position_x`=-350.44, `position_y`=-4289.67, `position_z`=56.962, `orientation`=4.7822 WHERE `guid`=10375; -- Mottled Boar +UPDATE `creature` SET `position_x`=-1083.57, `position_y`=-5550.37, `position_z`=10.3422, `orientation`=0.715585 WHERE `guid`=13032; -- Voodoo Troll +UPDATE `creature` SET `id`=3206 WHERE `guid`=13032; -- Voodoo Troll +UPDATE `creature` SET `id2`=3207 WHERE `guid`=13032; -- Hexed Troll +UPDATE `creature` SET `position_x`=-1018.91, `position_y`=-5615.16, `position_z`=4.26007, `orientation`=1.88803 WHERE `guid`=6395; -- Durotar Tiger +UPDATE `creature` SET `position_x`=-317.186, `position_y`=-4246.66, `position_z`=62.0407, `orientation`=6.23083 WHERE `guid`=11239; -- Mottled Boar +UPDATE `creature` SET `position_x`=-1270.2, `position_y`=-5515.55, `position_z`=5.07032, `orientation`=4.5204 WHERE `guid`=12361; -- Voodoo Troll +UPDATE `creature` SET `position_x`=-483.326, `position_y`=-4251.07, `position_z`=46.4023, `orientation`=3.63028 WHERE `guid`=12181; -- Mottled Boar +UPDATE `creature` SET `position_x`=-1283.97, `position_y`=-5416.06, `position_z`=5.28077, `orientation`=1.46608 WHERE `guid`=12352; -- Durotar Tiger +UPDATE `creature` SET `position_x`=-1151.97, `position_y`=-5448.21, `position_z`=8.65475, `orientation`=6.00393 WHERE `guid`=13024; -- Hexed Troll +UPDATE `creature` SET `id`=3206 WHERE `guid`=13024; -- Voodoo Troll +UPDATE `creature` SET `id2`=3207 WHERE `guid`=13024; -- Hexed Troll +UPDATE `creature` SET `position_x`=-1162.18, `position_y`=-5586.36, `position_z`=12.4577, `orientation`=0.296706 WHERE `guid`=6457; -- Voodoo Troll +UPDATE `creature` SET `id`=3206 WHERE `guid`=6457; -- Voodoo Troll +UPDATE `creature` SET `id2`=3207 WHERE `guid`=6457; -- Hexed Troll +UPDATE `creature` SET `position_x`=1476.99, `position_y`=-4810.34, `position_z`=10.5863, `orientation`=5.63111 WHERE `guid`=7339; -- Burning Blade Apprentice +UPDATE `creature` SET `position_x`=-481.471, `position_y`=-4215.93, `position_z`=50.208, `orientation`=1.76278 WHERE `guid`=12952; -- Mottled Boar +UPDATE `creature` SET `position_x`=-451.551, `position_y`=-4217.98, `position_z`=49.3785, `orientation`=0.261799 WHERE `guid`=11030; -- Mottled Boar +UPDATE `creature` SET `position_x`=-417.971, `position_y`=-4248.8, `position_z`=49.5183, `orientation`=2.56563 WHERE `guid`=12213; -- Mottled Boar +UPDATE `creature` SET `position_x`=1436.35, `position_y`=-4690.62, `position_z`=-5.33821, `orientation`=0.935205 WHERE `guid`=7884; -- Burning Blade Apprentice +UPDATE `creature` SET `position_x`=-917.615, `position_y`=-5653.53, `position_z`=-7.60377, `orientation`=2.9086 WHERE `guid`=3363; -- Makrura Clacker +UPDATE `creature` SET `position_x`=-786.704, `position_y`=-5621.34, `position_z`=14.6242, `orientation`=2.21657 WHERE `guid`=7675; -- Durotar Tiger +UPDATE `creature` SET `position_x`=1508.16, `position_y`=-4794.24, `position_z`=9.35882, `orientation`=0.864398 WHERE `guid`=7883; -- Burning Blade Apprentice +UPDATE `creature` SET `position_x`=-753.494, `position_y`=-5185.69, `position_z`=-5.85099, `orientation`=1.08339 WHERE `guid`=10441; -- Makrura Clacker +UPDATE `creature` SET `position_x`=4083.88, `position_y`=886.258, `position_z`=8.58398, `orientation`=5.52675 WHERE `guid`=32792; -- Wrathtail Wave Rider +UPDATE `creature` SET `position_x`=-353.165, `position_y`=-4083.18, `position_z`=52.0331, `orientation`=1.67552 WHERE `guid`=13048; -- Scorpid Worker +UPDATE `creature` SET `position_x`=-484.749, `position_y`=-4350.9, `position_z`=40.6127, `orientation`=3.66519 WHERE `guid`=12393; -- Mottled Boar +UPDATE `creature` SET `position_x`=-49.7411, `position_y`=-5018.28, `position_z`=13.6115, `orientation`=1.16937 WHERE `guid`=12350; -- Kul Tiras Sailor +UPDATE `creature` SET `position_x`=-83.8046, `position_y`=-5051.21, `position_z`=15.9973, `orientation`=5.11381 WHERE `guid`=12354; -- Kul Tiras Sailor +UPDATE `creature` SET `id`=3128 WHERE `guid`=12354; -- Kul Tiras Sailor +UPDATE `creature` SET `id2`=3129 WHERE `guid`=12354; -- Kul Tiras Marine +UPDATE `creature` SET `position_x`=-182.921, `position_y`=-4949.74, `position_z`=20.726, `orientation`=1.29154 WHERE `guid`=8411; -- Kul Tiras Sailor +UPDATE `creature` SET `position_x`=283.044, `position_y`=-3815.53, `position_z`=26.3062, `orientation`=4.97562 WHERE `guid`=12916; -- Elder Mottled Boar +UPDATE `creature` SET `position_x`=116.362, `position_y`=-4481.04, `position_z`=39.0701, `orientation`=4.03171 WHERE `guid`=12317; -- Razormane Scout +UPDATE `creature` SET `id`=3111 WHERE `guid`=12317; -- Razormane Quilboar +UPDATE `creature` SET `id2`=3112 WHERE `guid`=12317; -- Razormane Scout +UPDATE `creature` SET `position_x`=427.734, `position_y`=-4215.2, `position_z`=24.5717, `orientation`=5.18472 WHERE `guid`=12328; -- Razormane Battleguard +UPDATE `creature` SET `position_x`=349.796, `position_y`=-4149.81, `position_z`=31.4558, `orientation`=2.35629 WHERE `guid`=8005; -- Armored Scorpid +UPDATE `creature` SET `position_x`=436.301, `position_y`=-4212.35, `position_z`=24.7395, `orientation`=4.7822 WHERE `guid`=7351; -- Razormane Battleguard +UPDATE `creature` SET `id`=3113 WHERE `guid`=7351; -- Razormane Dustrunner +UPDATE `creature` SET `id2`=3114 WHERE `guid`=7351; -- Razormane Battleguard +UPDATE `creature` SET `position_x`=-350.049, `position_y`=-4383.91, `position_z`=49.0029, `orientation`=4.92183 WHERE `guid`=12201; -- Mottled Boar +UPDATE `creature` SET `position_x`=-283.876, `position_y`=-4382.42, `position_z`=57.3805, `orientation`=5.53269 WHERE `guid`=13078; -- Scorpid Worker +UPDATE `creature` SET `position_x`=-42.7578, `position_y`=-4227.56, `position_z`=64.2077, `orientation`=0.453786 WHERE `guid`=6645; -- Vile Familiar +UPDATE `creature` SET `position_x`=17.0972, `position_y`=-4249.81, `position_z`=73.6467, `orientation`=3.67326 WHERE `guid`=7330; -- Razormane Scout +UPDATE `creature` SET `position_x`=-79.2489, `position_y`=-4284.44, `position_z`=76.0861, `orientation`=2.56563 WHERE `guid`=4706; -- Vile Familiar +UPDATE `creature` SET `position_x`=116.319, `position_y`=-4449.87, `position_z`=38.0994, `orientation`=0.767945 WHERE `guid`=7327; -- Razormane Quilboar +UPDATE `creature` SET `id`=3111 WHERE `guid`=7327; -- Razormane Quilboar +UPDATE `creature` SET `id2`=3112 WHERE `guid`=7327; -- Razormane Scout +UPDATE `creature` SET `position_x`=-1083.54, `position_y`=-5082.49, `position_z`=-3.17751, `orientation`=3.26482 WHERE `guid`=8469; -- Makrura Clacker +UPDATE `creature` SET `position_x`=-1248.84, `position_y`=-5116.53, `position_z`=-3.65978, `orientation`=1.77126 WHERE `guid`=12949; -- Makrura Clacker +UPDATE `creature` SET `position_x`=-1415.44, `position_y`=-5152.08, `position_z`=2.96764, `orientation`=5.84611 WHERE `guid`=13012; -- Durotar Tiger +UPDATE `creature` SET `position_x`=-1411.97, `position_y`=-5213.3, `position_z`=3.88517, `orientation`=3.2985 WHERE `guid`=13010; -- Durotar Tiger +UPDATE `creature` SET `position_x`=-1350.2, `position_y`=-5215.72, `position_z`=3.98139, `orientation`=1.64061 WHERE `guid`=13006; -- Durotar Tiger +UPDATE `creature` SET `position_x`=-1382.24, `position_y`=-5183.68, `position_z`=2.30318, `orientation`=5.6947 WHERE `guid`=13008; -- Durotar Tiger +UPDATE `creature` SET `position_x`=-1127.52, `position_y`=-5571.38, `position_z`=9.99123, `orientation`=2.87979 WHERE `guid`=12377; -- Hexed Troll +UPDATE `creature` SET `id`=3206 WHERE `guid`=12377; -- Voodoo Troll +UPDATE `creature` SET `id2`=3207 WHERE `guid`=12377; -- Hexed Troll +UPDATE `creature` SET `position_x`=-1049.7, `position_y`=-5449.13, `position_z`=6.53674, `orientation`=2.53682 WHERE `guid`=7740; -- Durotar Tiger +UPDATE `creature` SET `position_x`=1382.4, `position_y`=-4914.76, `position_z`=8.43591, `orientation`=2.07526 WHERE `guid`=12371; -- Venomtail Scorpid +UPDATE `creature` SET `position_x`=1504.44, `position_y`=-4736.33, `position_z`=15.8454, `orientation`=1.93732 WHERE `guid`=6426; -- Burning Blade Fanatic +UPDATE `creature` SET `position_x`=1462.65, `position_y`=-4717.87, `position_z`=-2.43581, `orientation`=1.20067 WHERE `guid`=7882; -- Burning Blade Apprentice +UPDATE `creature` SET `position_x`=1503.26, `position_y`=-4680.41, `position_z`=12.3132, `orientation`=4.18879 WHERE `guid`=7900; -- Burning Blade Fanatic +UPDATE `creature` SET `position_x`=1450.58, `position_y`=-4690.83, `position_z`=-4.99155, `orientation`=2.02689 WHERE `guid`=6417; -- Burning Blade Fanatic +UPDATE `creature` SET `position_x`=1518.57, `position_y`=-4743.62, `position_z`=15.2798, `orientation`=2.49582 WHERE `guid`=8429; -- Burning Blade Apprentice +UPDATE `creature` SET `position_x`=1517.97, `position_y`=-4716.42, `position_z`=12.0517, `orientation`=5.53637 WHERE `guid`=7334; -- Burning Blade Fanatic +UPDATE `creature` SET `position_x`=1448.69, `position_y`=-4739.16, `position_z`=-1.80996, `orientation`=4.60873 WHERE `guid`=6419; -- Burning Blade Fanatic +UPDATE `creature` SET `position_x`=-1382.45, `position_y`=-3882.94, `position_z`=14.5511, `orientation`=2.20653 WHERE `guid`=13779; -- Southsea Brigand +UPDATE `creature` SET `position_x`=-1504.21, `position_y`=-3828.34, `position_z`=23.5256, `orientation`=4.67748 WHERE `guid`=13767; -- Southsea Brigand +UPDATE `creature` SET `position_x`=-1485.56, `position_y`=-3844.62, `position_z`=22.6228, `orientation`=3.91706 WHERE `guid`=13783; -- Southsea Brigand +UPDATE `creature` SET `position_x`=-1500.03, `position_y`=-3818.63, `position_z`=23.899, `orientation`=3.74789 WHERE `guid`=13795; -- Southsea Cannoneer +UPDATE `creature` SET `position_x`=-1540.19, `position_y`=-3909.65, `position_z`=13.0704, `orientation`=1.4866 WHERE `guid`=13755; -- Southsea Brigand (WAYPOINTS) +UPDATE `creature` SET `position_x`=-1575.02, `position_y`=-3890.53, `position_z`=14.8839, `orientation`=1.79769 WHERE `guid`=13768; -- Southsea Brigand +UPDATE `creature` SET `position_x`=-1516.62, `position_y`=-3849.91, `position_z`=21.4317, `orientation`=4.18879 WHERE `guid`=13811; -- Southsea Cannoneer +UPDATE `creature` SET `position_x`=-1510.55, `position_y`=-3820.43, `position_z`=23.0611, `orientation`=3.35103 WHERE `guid`=13766; -- Southsea Brigand +UPDATE `creature` SET `position_x`=614.375, `position_y`=-4382.03, `position_z`=17.4995, `orientation`=6.19592 WHERE `guid`=4791; -- Dustwind Harpy +UPDATE `creature` SET `position_x`=763.468, `position_y`=-4458.52, `position_z`=15.7518, `orientation`=2.80998 WHERE `guid`=7643; -- Dustwind Harpy +UPDATE `creature` SET `position_x`=663.566, `position_y`=-4608.56, `position_z`=-0.433144, `orientation`=5.86431 WHERE `guid`=12934; -- Dustwind Harpy +UPDATE `creature` SET `position_x`=863.469, `position_y`=-4756.87, `position_z`=38.8934, `orientation`=3.82227 WHERE `guid`=12195; -- Burning Blade Neophyte +UPDATE `creature` SET `position_x`=1094.58, `position_y`=-4673.32, `position_z`=16.3485, `orientation`=3.92284 WHERE `guid`=12283; -- Dustwind Storm Witch +UPDATE `creature` SET `position_x`=901.568, `position_y`=-4706.15, `position_z`=23.8534, `orientation`=5.73603 WHERE `guid`=12204; -- Burning Blade Cultist +UPDATE `creature` SET `position_x`=929.154, `position_y`=-4720.07, `position_z`=20.0316, `orientation`=3.12414 WHERE `guid`=6436; -- Burning Blade Cultist +UPDATE `creature` SET `position_x`=922.149, `position_y`=-4707.72, `position_z`=22.8896, `orientation`=2.2235 WHERE `guid`=6435; -- Burning Blade Neophyte +UPDATE `creature` SET `position_x`=-283.138, `position_y`=-4419.16, `position_z`=56.7276, `orientation`=4.2237 WHERE `guid`=7493; -- Scorpid Worker +UPDATE `creature` SET `position_x`=-415.985, `position_y`=-4450.4, `position_z`=50.1471, `orientation`=0.907571 WHERE `guid`=6641; -- Scorpid Worker +UPDATE `creature` SET `position_x`=-514.891, `position_y`=-4178.24, `position_z`=77.0964, `orientation`=4.04916 WHERE `guid`=10381; -- Scorpid Worker +UPDATE `creature` SET `position_x`=-147.798, `position_y`=-5106.25, `position_z`=21.3616, `orientation`=0.261933 WHERE `guid`=12276; -- Kul Tiras Marine +UPDATE `creature` SET `position_x`=283.712, `position_y`=-4949.01, `position_z`=22.3564, `orientation`=4.19563 WHERE `guid`=12334; -- Clattering Scorpid +UPDATE `creature` SET `position_x`=315.707, `position_y`=-5050.72, `position_z`=10.9018, `orientation`=2.8404 WHERE `guid`=10357; -- Clattering Scorpid +UPDATE `creature` SET `position_x`=285.096, `position_y`=-5215.77, `position_z`=-14.0964, `orientation`=6.21285 WHERE `guid`=10448; -- Makrura Clacker +UPDATE `creature` SET `position_x`=-914.678, `position_y`=-4750.38, `position_z`=21.4121, `orientation`=5.94654 WHERE `guid`=13017; -- Kolkar Drudge +UPDATE `creature` SET `position_x`=-989.609, `position_y`=-4551.5, `position_z`=25.7982, `orientation`=2.96714 WHERE `guid`=12917; -- Kolkar Drudge +UPDATE `creature` SET `position_x`=-1027.56, `position_y`=-4589.29, `position_z`=26.432, `orientation`=2.10426 WHERE `guid`=7441; -- Kolkar Drudge +UPDATE `creature` SET `position_x`=-1033.24, `position_y`=-4499.68, `position_z`=26.206, `orientation`=5.80836 WHERE `guid`=3450; -- Kolkar Drudge +UPDATE `creature` SET `position_x`=-1539.52, `position_y`=-5262.98, `position_z`=7.13007, `orientation`=3.91043 WHERE `guid`=7676; -- Durotar Tiger +UPDATE `creature` SET `position_x`=-1616.01, `position_y`=-5281.6, `position_z`=6.30717, `orientation`=3.48215 WHERE `guid`=6393; -- Durotar Tiger +UPDATE `creature` SET `position_x`=-1584.57, `position_y`=-5242.23, `position_z`=6.21376, `orientation`=3.61283 WHERE `guid`=6475; -- Bloodtalon Taillasher +UPDATE `creature` SET `position_x`=181.014, `position_y`=-4451.54, `position_z`=35.1609, `orientation`=5.04664 WHERE `guid`=12097; -- Dire Mottled Boar +UPDATE `creature` SET `position_x`=1272.55, `position_y`=-4227.43, `position_z`=26.8482, `orientation`=0.602307 WHERE `guid`=7364; -- Swine +UPDATE `creature` SET `position_x`=1183.49, `position_y`=-4047.16, `position_z`=14.5734, `orientation`=5.59613 WHERE `guid`=7993; -- Elder Mottled Boar +UPDATE `creature` SET `position_x`=1116.59, `position_y`=-4050.22, `position_z`=14.1585, `orientation`=3.11834 WHERE `guid`=11845; -- Elder Mottled Boar +UPDATE `creature` SET `position_x`=1200.25, `position_y`=-4032.97, `position_z`=17.8592, `orientation`=5.6809 WHERE `guid`=7595; -- Bloodtalon Scythemaw +UPDATE `creature` SET `position_x`=-8920.94, `position_y`=-66.4236, `position_z`=88.7944, `orientation`=4.55531 WHERE `guid`=79957; -- Young Wolf +UPDATE `creature` SET `position_x`=-8971, `position_y`=-81.0339, `position_z`=87.5027, `orientation`=3.22886 WHERE `guid`=79936; -- Young Wolf +UPDATE `creature` SET `position_x`=-9572.13, `position_y`=-231.046, `position_z`=60.8908, `orientation`=5.01781 WHERE `guid`=81079; -- Mangy Wolf +UPDATE `creature` SET `position_x`=-9547.12, `position_y`=-250.417, `position_z`=61.624, `orientation`=4.92167 WHERE `guid`=80759; -- Murloc Streamrunner +UPDATE `creature` SET `position_x`=-2271.59, `position_y`=-2528.93, `position_z`=91.8142, `orientation`=0.541052 WHERE `guid`=20244; -- Bristleback Geomancer +UPDATE `creature` SET `position_x`=-9549.91, `position_y`=-385.28, `position_z`=62.3449, `orientation`=5.77957 WHERE `guid`=81036; -- Murloc Streamrunner +UPDATE `creature` SET `position_x`=-9749.19, `position_y`=135.242, `position_z`=19.4722, `orientation`=1.93732 WHERE `guid`=80640; -- Kobold Miner +UPDATE `creature` SET `id`=40 WHERE `guid`=80640; -- Kobold Miner +UPDATE `creature` SET `id2`=475 WHERE `guid`=80640; -- Kobold Tunneler +UPDATE `creature` SET `position_x`=-9100.41, `position_y`=-599.343, `position_z`=57.3644, `orientation`=0 WHERE `guid`=80984; -- Kobold Miner +UPDATE `creature` SET `position_x`=-9038.8, `position_y`=-607.072, `position_z`=53.4416, `orientation`=0 WHERE `guid`=80991; -- Mine Spider +UPDATE `creature` SET `position_x`=-9142.73, `position_y`=-597.709, `position_z`=58.0872, `orientation`=0 WHERE `guid`=80974; -- Kobold Miner +UPDATE `creature` SET `position_x`=-9715.15, `position_y`=-940.983, `position_z`=38.4795, `orientation`=0 WHERE `guid`=80851; -- Defias Bandit +UPDATE `creature` SET `position_x`=-9216.82, `position_y`=-617.816, `position_z`=61.1111, `orientation`=2.35903 WHERE `guid`=80966; -- Kobold Miner +UPDATE `creature` SET `position_x`=-1350.83, `position_y`=-3850.01, `position_z`=18.2263, `orientation`=0.890118 WHERE `guid`=13822; -- Southsea Cannoneer +UPDATE `creature` SET `position_x`=-9766.95, `position_y`=231.822, `position_z`=46.4839, `orientation`=3.66719 WHERE `guid`=80589; -- Kobold Tunneler +UPDATE `creature` SET `position_x`=-9717.43, `position_y`=182.347, `position_z`=50.5437, `orientation`=3.9213 WHERE `guid`=80653; -- Stonetusk Boar +UPDATE `creature` SET `id`=30 WHERE `guid`=80653; -- Forest Spider +UPDATE `creature` SET `id2`=113 WHERE `guid`=80653; -- Stonetusk Boar +UPDATE `creature` SET `position_x`=1115.86, `position_y`=184.058, `position_z`=1.57183, `orientation`=5.44466 WHERE `guid`=29512; -- Venture Co. Logger +UPDATE `creature` SET `position_x`=-8796.83, `position_y`=-248.33, `position_z`=82.4547, `orientation`=0 WHERE `guid`=80115; -- Kobold Vermin +UPDATE `creature` SET `position_x`=-8765.93, `position_y`=-252.887, `position_z`=81.4132, `orientation`=0 WHERE `guid`=80100; -- Kobold Vermin +UPDATE `creature` SET `position_x`=-8774.51, `position_y`=-241.715, `position_z`=83.9718, `orientation`=3.68264 WHERE `guid`=80099; -- Kobold Vermin +UPDATE `creature` SET `position_x`=-8762.05, `position_y`=-202.653, `position_z`=86.3767, `orientation`=0 WHERE `guid`=80094; -- Kobold Vermin +UPDATE `creature` SET `position_x`=-8773.62, `position_y`=-184.129, `position_z`=83.295, `orientation`=0 WHERE `guid`=79993; -- Kobold Vermin +UPDATE `creature` SET `position_x`=-9819.25, `position_y`=31.1842, `position_z`=32.0746, `orientation`=4.02772 WHERE `guid`=80646; -- Young Forest Bear +UPDATE `creature` SET `position_x`=1149.1, `position_y`=218.69, `position_z`=2.44546, `orientation`=5.20549 WHERE `guid`=29562; -- Venture Co. Logger +UPDATE `creature` SET `position_x`=-9034.98, `position_y`=-283.394, `position_z`=75.7236, `orientation`=0 WHERE `guid`=80153; -- Defias Thug +UPDATE `creature` SET `position_x`=1117.92, `position_y`=248.147, `position_z`=12.0136, `orientation`=4.08282 WHERE `guid`=29514; -- Venture Co. Logger +UPDATE `creature` SET `position_x`=-9450.44, `position_y`=-1161.68, `position_z`=53.8627, `orientation`=0.677673 WHERE `guid`=81256; -- Chicken +UPDATE `creature` SET `position_x`=-9467.9, `position_y`=-1182.34, `position_z`=49.4069, `orientation`=5.50482 WHERE `guid`=81243; -- Chicken +UPDATE `creature` SET `position_x`=-9130.51, `position_y`=-263.818, `position_z`=72.4623, `orientation`=0.733038 WHERE `guid`=80196; -- Defias Thug +UPDATE `creature` SET `position_x`=-9147.82, `position_y`=-339.583, `position_z`=72.7585, `orientation`=5.00909 WHERE `guid`=80202; -- Defias Thug +UPDATE `creature` SET `position_x`=-9085.63, `position_y`=-280.413, `position_z`=73.9461, `orientation`=0 WHERE `guid`=80168; -- Defias Thug +UPDATE `creature` SET `position_x`=-1443.12, `position_y`=3002.91, `position_z`=115.33, `orientation`=1.64073 WHERE `guid`=29079; -- Ghostly Raider +UPDATE `creature` SET `id`=11686 WHERE `guid`=29079; -- Ghostly Raider +UPDATE `creature` SET `id2`=11687 WHERE `guid`=29079; -- Ghostly Marauder +UPDATE `creature` SET `position_x`=-8697.38, `position_y`=-163.527, `position_z`=89.4976, `orientation`=5.32325 WHERE `guid`=80035; -- Kobold Worker +UPDATE `creature` SET `position_x`=-8708.14, `position_y`=-108.802, `position_z`=89.1291, `orientation`=1.37881 WHERE `guid`=80051; -- Kobold Worker +UPDATE `creature` SET `position_x`=-1453.63, `position_y`=2988.66, `position_z`=114.705, `orientation`=6.13835 WHERE `guid`=29087; -- Ghostly Marauder +UPDATE `creature` SET `position_x`=2515.98, `position_y`=1550.31, `position_z`=264.617, `orientation`=3.04785 WHERE `guid`=32212; -- Cenarion Botanist +UPDATE `creature` SET `position_x`=814.109, `position_y`=-4351.26, `position_z`=14.5171, `orientation`=3.89467 WHERE `guid`=11768; -- Armored Scorpid +UPDATE `creature` SET `position_x`=2508.47, `position_y`=1495.81, `position_z`=263.094, `orientation`=4.67869 WHERE `guid`=32251; -- Son of Cenarius +UPDATE `creature` SET `position_x`=2383.43, `position_y`=1551.44, `position_z`=280.889, `orientation`=0.0387242 WHERE `guid`=30408; -- Sap Beast +UPDATE `creature` SET `position_x`=2513.37, `position_y`=1430.34, `position_z`=266.846, `orientation`=4.86947 WHERE `guid`=32252; -- Son of Cenarius +UPDATE `creature` SET `position_x`=-8696.27, `position_y`=-69.354, `position_z`=90.4747, `orientation`=3.63028 WHERE `guid`=80054; -- Kobold Worker +UPDATE `creature` SET `position_x`=-9552.91, `position_y`=-314.492, `position_z`=62.5056, `orientation`=5.62929 WHERE `guid`=80766; -- Mangy Wolf +UPDATE `creature` SET `position_x`=-9498.58, `position_y`=-439.001, `position_z`=56.9719, `orientation`=0.531583 WHERE `guid`=81026; -- Murloc +UPDATE `creature` SET `position_x`=-9449.21, `position_y`=-485.911, `position_z`=62.3531, `orientation`=1.90061 WHERE `guid`=81023; -- Murloc Streamrunner +UPDATE `creature` SET `position_x`=-9507.15, `position_y`=-402.414, `position_z`=55.6469, `orientation`=1.90274 WHERE `guid`=81035; -- Murloc +UPDATE `creature` SET `position_x`=-9448.91, `position_y`=-372.029, `position_z`=54.0413, `orientation`=1.81876 WHERE `guid`=81052; -- Murloc +UPDATE `creature` SET `position_x`=1060.9, `position_y`=-3083.42, `position_z`=105.208, `orientation`=4.18433 WHERE `guid`=20725; -- Venture Co. Mercenary +UPDATE `creature` SET `position_x`=1011.6, `position_y`=-3006.31, `position_z`=93.0481, `orientation`=0.909227 WHERE `guid`=20774; -- Venture Co. Drudger +UPDATE `creature` SET `position_x`=1058.26, `position_y`=-3093.23, `position_z`=105.589, `orientation`=5.58505 WHERE `guid`=20781; -- Venture Co. Drudger +UPDATE `creature` SET `position_x`=-9554.93, `position_y`=-383.156, `position_z`=62.8236, `orientation`=0.576417 WHERE `guid`=81037; -- Mangy Wolf +UPDATE `creature` SET `position_x`=-9882.33, `position_y`=417.016, `position_z`=35.0896, `orientation`=0 WHERE `guid`=80557; -- Stonetusk Boar +UPDATE `creature` SET `position_x`=-9448.62, `position_y`=-1467.09, `position_z`=61.8477, `orientation`=0 WHERE `guid`=81381; -- Young Forest Bear +UPDATE `creature` SET `position_x`=-9516.21, `position_y`=-116.009, `position_z`=60.8041, `orientation`=1.63093 WHERE `guid`=81088; -- Mangy Wolf +UPDATE `creature` SET `position_x`=-7850.23, `position_y`=-5145.9, `position_z`=3.9871, `orientation`=4.20624 WHERE `guid`=23309; -- Southsea Pirate +UPDATE `creature` SET `position_x`=-817.998, `position_y`=17.3478, `position_z`=-10.5012, `orientation`=2.40073 WHERE `guid`=26420; -- Venture Co. Worker +UPDATE `creature` SET `position_x`=-784.052, `position_y`=16.6593, `position_z`=-13.7675, `orientation`=4.35412 WHERE `guid`=26421; -- Venture Co. Worker +UPDATE `creature` SET `position_x`=-782.717, `position_y`=-16.3249, `position_z`=-14.4058, `orientation`=3.67738 WHERE `guid`=26426; -- Venture Co. Worker +UPDATE `creature` SET `position_x`=-817.361, `position_y`=-16.9181, `position_z`=-13.1111, `orientation`=0.532036 WHERE `guid`=26427; -- Venture Co. Worker (WAYPOINTS) +UPDATE `creature` SET `position_x`=-852.737, `position_y`=-17.8741, `position_z`=-11.5823, `orientation`=0.416214 WHERE `guid`=26419; -- Venture Co. Worker +UPDATE `creature` SET `position_x`=-849.666, `position_y`=-51.2294, `position_z`=-13.0658, `orientation`=2.01853 WHERE `guid`=26428; -- Venture Co. Worker +UPDATE `creature` SET `position_x`=3517.03, `position_y`=-5584.75, `position_z`=13.432, `orientation`=5.49796 WHERE `guid`=35555; -- Spitelash Siren +UPDATE `creature` SET `position_x`=3550.83, `position_y`=-5617.98, `position_z`=8.28073, `orientation`=0.543599 WHERE `guid`=35532; -- Spitelash Siren +UPDATE `creature` SET `position_x`=-650.272, `position_y`=-5215.15, `position_z`=-10.0073, `orientation`=2.64259 WHERE `guid`=12927; -- Makrura Shellhide +UPDATE `creature` SET `position_x`=1900.66, `position_y`=1504.91, `position_z`=89.3684, `orientation`=5.88176 WHERE `guid`=44839; -- Wretched Zombie +UPDATE `creature` SET `position_x`=1965.61, `position_y`=1690.33, `position_z`=78.5327, `orientation`=0 WHERE `guid`=44729; -- Duskbat +UPDATE `creature` SET `position_x`=-110.492, `position_y`=-2006.36, `position_z`=91.75, `orientation`=4.93446 WHERE `guid`=20472; -- Kolkar Wrangler +UPDATE `creature` SET `position_x`=-104.185, `position_y`=-2026.29, `position_z`=91.75, `orientation`=4.53786 WHERE `guid`=20475; -- Kolkar Wrangler +UPDATE `creature` SET `position_x`=1948.82, `position_y`=1578.92, `position_z`=80.8948, `orientation`=2.61022 WHERE `guid`=44598; -- Rat +UPDATE `creature` SET `position_x`=2150.94, `position_y`=583.103, `position_z`=38.5382, `orientation`=2.60367 WHERE `guid`=45168; -- Rotting Dead +UPDATE `creature` SET `position_x`=-150.699, `position_y`=-1717.51, `position_z`=93.0143, `orientation`=0.19236 WHERE `guid`=18563; -- Zhevra Runner +UPDATE `creature` SET `position_x`=2285.13, `position_y`=1316.48, `position_z`=31.6722, `orientation`=2.04204 WHERE `guid`=42148; -- Tirisfal Farmhand (WAYPOINTS) +UPDATE `creature` SET `position_x`=2394.58, `position_y`=1483.53, `position_z`=34.3665, `orientation`=2.30383 WHERE `guid`=44918; -- Scarlet Warrior (WAYPOINTS) +UPDATE `creature` SET `position_x`=2318.12, `position_y`=1551.27, `position_z`=33.7551, `orientation`=3.8995 WHERE `guid`=44258; -- Scarlet Warrior +UPDATE `creature` SET `position_x`=2350.55, `position_y`=1474.07, `position_z`=33.5167, `orientation`=5.35279 WHERE `guid`=44919; -- Scarlet Warrior +UPDATE `creature` SET `position_x`=2405.53, `position_y`=1399.77, `position_z`=33.5623, `orientation`=5.15549 WHERE `guid`=44915; -- Scarlet Warrior +UPDATE `creature` SET `position_x`=2448.47, `position_y`=1342.85, `position_z`=26.7841, `orientation`=3.22464 WHERE `guid`=41970; -- Greater Duskbat +UPDATE `creature` SET `position_x`=2406.66, `position_y`=1287.6, `position_z`=30.7052, `orientation`=5.39909 WHERE `guid`=41896; -- Decrepit Darkhound +UPDATE `creature` SET `position_x`=-209.364, `position_y`=-3009.42, `position_z`=91.75, `orientation`=2.28638 WHERE `guid`=20387; -- Razormane Water Seeker +UPDATE `creature` SET `id`=3267 WHERE `guid`=20387; -- Razormane Water Seeker +UPDATE `creature` SET `id2`=3268 WHERE `guid`=20387; -- Razormane Thornweaver +UPDATE `creature` SET `position_x`=-100.453, `position_y`=-3171.52, `position_z`=91.9896, `orientation`=2.2407 WHERE `guid`=20355; -- Razormane Defender +UPDATE `creature` SET `position_x`=1175.23, `position_y`=182.105, `position_z`=21.6252, `orientation`=5.93412 WHERE `guid`=29459; -- Venture Co. Operator +UPDATE `creature` SET `position_x`=1174.62, `position_y`=179.436, `position_z`=30.6619, `orientation`=4.91072 WHERE `guid`=29458; -- Venture Co. Operator +UPDATE `creature` SET `position_x`=2470.51, `position_y`=683.463, `position_z`=42.4733, `orientation`=3.11816 WHERE `guid`=44759; -- Rotting Dead +UPDATE `creature` SET `position_x`=1210.1, `position_y`=-29.8747, `position_z`=-3.13378, `orientation`=1.97222 WHERE `guid`=29449; -- Venture Co. Operator +UPDATE `creature` SET `position_x`=-1364.38, `position_y`=-3920.89, `position_z`=9.80517, `orientation`=2.16298 WHERE `guid`=13797; -- Southsea Cannoneer +UPDATE `creature` SET `position_x`=2162.76, `position_y`=326.528, `position_z`=42.1655, `orientation`=2.92606 WHERE `guid`=44882; -- Decrepit Darkhound +UPDATE `creature` SET `position_x`=1847.15, `position_y`=694.866, `position_z`=40.2619, `orientation`=3.39638 WHERE `guid`=45057; -- Scarlet Missionary +UPDATE `creature` SET `position_x`=1819.21, `position_y`=762.669, `position_z`=43.8343, `orientation`=5.51482 WHERE `guid`=45054; -- Scarlet Missionary +UPDATE `creature` SET `position_x`=1743.51, `position_y`=684.206, `position_z`=45.9897, `orientation`=2.62613 WHERE `guid`=44573; -- Scarlet Missionary +UPDATE `creature` SET `position_x`=1838.49, `position_y`=857.189, `position_z`=25.2058, `orientation`=5.50709 WHERE `guid`=37881; -- Scarlet Missionary +UPDATE `creature` SET `position_x`=1861.63, `position_y`=724.191, `position_z`=37.1632, `orientation`=2.25312 WHERE `guid`=45065; -- Scarlet Missionary +UPDATE `creature` SET `position_x`=-46.8593, `position_y`=-3399.17, `position_z`=91.7942, `orientation`=4.60811 WHERE `guid`=20344; -- Razormane Defender +UPDATE `creature` SET `position_x`=-48.5401, `position_y`=290.778, `position_z`=89.1775, `orientation`=1.67202 WHERE `guid`=29400; -- Gogger Rock Keeper +UPDATE `creature` SET `position_x`=-89.5369, `position_y`=-3160.22, `position_z`=92.845, `orientation`=5.00716 WHERE `guid`=20356; -- Razormane Defender +UPDATE `creature` SET `position_x`=-109.823, `position_y`=-3178.17, `position_z`=91.8717, `orientation`=0.960413 WHERE `guid`=20354; -- Razormane Defender +UPDATE `creature` SET `id`=3266 WHERE `guid`=20354; -- Razormane Defender +UPDATE `creature` SET `id2`=3269 WHERE `guid`=20354; -- Razormane Geomancer +UPDATE `creature` SET `position_x`=48.6022, `position_y`=-2848.87, `position_z`=95.0873, `orientation`=0.224556 WHERE `guid`=19255; -- Greater Plainstrider +UPDATE `creature` SET `position_x`=-217.503, `position_y`=-2250.82, `position_z`=93.0644, `orientation`=0.822678 WHERE `guid`=19305; -- Greater Plainstrider +UPDATE `creature` SET `position_x`=2950.42, `position_y`=250.503, `position_z`=8.08459, `orientation`=5.67232 WHERE `guid`=44481; -- Vile Fin Puddlejumper +UPDATE `creature` SET `id`=1543 WHERE `guid`=44481; -- Vile Fin Puddlejumper +UPDATE `creature` SET `id2`=1544 WHERE `guid`=44481; -- Vile Fin Minor Oracle +UPDATE `creature` SET `position_x`=3651.58, `position_y`=817.786, `position_z`=5.9839, `orientation`=1.23551 WHERE `guid`=32759; -- Wrathtail Wave Rider +UPDATE `creature` SET `position_x`=2651.41, `position_y`=852.217, `position_z`=110.63, `orientation`=3.96636 WHERE `guid`=44298; -- Darkeye Bonecaster +UPDATE `creature` SET `position_x`=2683.54, `position_y`=814.322, `position_z`=108.946, `orientation`=2.20406 WHERE `guid`=44947; -- Rattlecage Soldier +UPDATE `creature` SET `position_x`=2752.28, `position_y`=814.943, `position_z`=112.809, `orientation`=5.34526 WHERE `guid`=45019; -- Rattlecage Soldier +UPDATE `creature` SET `position_x`=1766.48, `position_y`=768.858, `position_z`=56.7715, `orientation`=1.94248 WHERE `guid`=44486; -- Scarlet Missionary +UPDATE `creature` SET `position_x`=2014.31, `position_y`=-354.814, `position_z`=35.5355, `orientation`=3.69018 WHERE `guid`=44439; -- Wandering Spirit +UPDATE `creature` SET `position_x`=1976.18, `position_y`=-354.415, `position_z`=35.5355, `orientation`=4.02517 WHERE `guid`=44441; -- Bleeding Horror +UPDATE `creature` SET `position_x`=1985.42, `position_y`=-384.052, `position_z`=35.5355, `orientation`=4.1806 WHERE `guid`=44435; -- Wandering Spirit +UPDATE `creature` SET `position_x`=816.627, `position_y`=-2652.17, `position_z`=91.75, `orientation`=2.34403 WHERE `guid`=20826; -- Venture Co. Peon +UPDATE `creature` SET `position_x`=-596.574, `position_y`=-1024.55, `position_z`=59.8857, `orientation`=5.8515 WHERE `guid`=15511; -- Syndicate Rogue +UPDATE `creature` SET `position_x`=-574.453, `position_y`=-1049.49, `position_z`=61.2466, `orientation`=5.78267 WHERE `guid`=15788; -- Syndicate Rogue +UPDATE `creature` SET `position_x`=-183.93, `position_y`=-3350.82, `position_z`=93.4176, `orientation`=5.02655 WHERE `guid`=20349; -- Razormane Defender +UPDATE `creature` SET `position_x`=-226.925, `position_y`=-3305.04, `position_z`=91.75, `orientation`=3.00197 WHERE `guid`=20431; -- Razormane Mystic +UPDATE `creature` SET `position_x`=-214.716, `position_y`=-3382.78, `position_z`=91.75, `orientation`=4.31096 WHERE `guid`=20340; -- Razormane Defender +UPDATE `creature` SET `position_x`=-236.336, `position_y`=-3343.09, `position_z`=91.7583, `orientation`=2.16421 WHERE `guid`=20335; -- Razormane Defender +UPDATE `creature` SET `position_x`=-184.232, `position_y`=-3283.37, `position_z`=91.75, `orientation`=0.558505 WHERE `guid`=20357; -- Razormane Defender +UPDATE `creature` SET `position_x`=-80.4944, `position_y`=-3369.13, `position_z`=93.265, `orientation`=4.96124 WHERE `guid`=20408; -- Razormane Geomancer +UPDATE `creature` SET `position_x`=-40.5074, `position_y`=-3419.74, `position_z`=91.9015, `orientation`=1.64061 WHERE `guid`=20347; -- Razormane Defender +UPDATE `creature` SET `position_x`=-40.1478, `position_y`=-3368.76, `position_z`=91.756, `orientation`=1.23918 WHERE `guid`=20343; -- Razormane Defender +UPDATE `creature` SET `position_x`=-116.796, `position_y`=-3383.32, `position_z`=92.1064, `orientation`=2.4495 WHERE `guid`=20359; -- Razormane Defender +UPDATE `creature` SET `position_x`=-1710.5, `position_y`=-3815.73, `position_z`=13.1543, `orientation`=0.975945 WHERE `guid`=13788; -- Southsea Brigand (WAYPOINTS) +UPDATE `creature` SET `position_x`=-1583.95, `position_y`=-3866.18, `position_z`=16.915, `orientation`=1.69211 WHERE `guid`=13785; -- Southsea Brigand +UPDATE `creature` SET `position_x`=-1249.81, `position_y`=-3088.14, `position_z`=92.5291, `orientation`=0.701671 WHERE `guid`=14008; -- Kolkar Bloodcharger +UPDATE `creature` SET `position_x`=-1218.4, `position_y`=-3082.98, `position_z`=94.4979, `orientation`=2.75762 WHERE `guid`=13999; -- Kolkar Bloodcharger +UPDATE `creature` SET `position_x`=-1284.13, `position_y`=-2981.53, `position_z`=81.1403, `orientation`=0.959116 WHERE `guid`=14972; -- Oasis Snapjaw +UPDATE `creature` SET `position_x`=-1251.23, `position_y`=-3016, `position_z`=81.3683, `orientation`=2.27219 WHERE `guid`=14965; -- Oasis Snapjaw +UPDATE `creature` SET `position_x`=-543.735, `position_y`=-591.782, `position_z`=41.3324, `orientation`=4.46982 WHERE `guid`=16316; -- Starving Mountain Lion +UPDATE `creature` SET `position_x`=-457.9, `position_y`=-111.689, `position_z`=54.508, `orientation`=2.9035 WHERE `guid`=15546; -- Cow +UPDATE `creature` SET `position_x`=-440.682, `position_y`=-107.059, `position_z`=55.1293, `orientation`=1.8675 WHERE `guid`=16033; -- Farmer Getz +UPDATE `creature` SET `position_x`=-2019.59, `position_y`=-3196.64, `position_z`=91.6999, `orientation`=2.86053 WHERE `guid`=20060; -- Sunscale Scytheclaw +UPDATE `creature` SET `position_x`=-2043.36, `position_y`=-3225.22, `position_z`=91.8806, `orientation`=2.13567 WHERE `guid`=20005; -- Sunscale Scytheclaw (WAYPOINTS) +UPDATE `creature` SET `position_x`=-2031.77, `position_y`=-3244.61, `position_z`=92.007, `orientation`=0.0424993 WHERE `guid`=20065; -- Sunscale Scytheclaw +UPDATE `creature` SET `position_x`=-1968.45, `position_y`=-3157.88, `position_z`=92.277, `orientation`=4.2237 WHERE `guid`=19988; -- Sunscale Scytheclaw +UPDATE `creature` SET `position_x`=-2044.24, `position_y`=-3218.62, `position_z`=91.7567, `orientation`=2.32129 WHERE `guid`=20004; -- Sunscale Scytheclaw +UPDATE `creature` SET `position_x`=-2013.5, `position_y`=-3182.45, `position_z`=91.7486, `orientation`=0.558505 WHERE `guid`=20059; -- Sunscale Scytheclaw +UPDATE `creature` SET `position_x`=-1959.46, `position_y`=-3158.89, `position_z`=92.4589, `orientation`=5.46288 WHERE `guid`=20006; -- Sunscale Scytheclaw +UPDATE `creature` SET `position_x`=-1223.81, `position_y`=-3044.29, `position_z`=93.1907, `orientation`=1.64873 WHERE `guid`=14953; -- Oasis Snapjaw +UPDATE `creature` SET `position_x`=-1179.77, `position_y`=-2985.85, `position_z`=93.3771, `orientation`=5.56244 WHERE `guid`=14001; -- Kolkar Bloodcharger +UPDATE `creature` SET `position_x`=-1026.57, `position_y`=-2015.67, `position_z`=74.7547, `orientation`=1.47926 WHERE `guid`=14956; -- Oasis Snapjaw +UPDATE `creature` SET `position_x`=-1085.8, `position_y`=-2184.51, `position_z`=65.5251, `orientation`=5.5757 WHERE `guid`=14954; -- Oasis Snapjaw +UPDATE `creature` SET `position_x`=-915.187, `position_y`=-2100.95, `position_z`=86.8503, `orientation`=5.64508 WHERE `guid`=20506; -- Kolkar Wrangler +UPDATE `creature` SET `position_x`=-1124.52, `position_y`=-2020.14, `position_z`=89.4019, `orientation`=5.37561 WHERE `guid`=20553; -- Kolkar Stormer +UPDATE `creature` SET `position_x`=-949.338, `position_y`=-1988.36, `position_z`=91.1735, `orientation`=1.02212 WHERE `guid`=20548; -- Kolkar Stormer +UPDATE `creature` SET `position_x`=-1126.98, `position_y`=-2248.02, `position_z`=79.468, `orientation`=1.90241 WHERE `guid`=14946; -- Oasis Snapjaw +UPDATE `creature` SET `position_x`=-1336.65, `position_y`=-3015.94, `position_z`=92.1058, `orientation`=4.58721 WHERE `guid`=14973; -- Oasis Snapjaw +UPDATE `creature` SET `position_x`=1085.42, `position_y`=-3038.65, `position_z`=82.2566, `orientation`=0.241771 WHERE `guid`=20770; -- Venture Co. Drudger +UPDATE `creature` SET `position_x`=1092.5, `position_y`=-3023.29, `position_z`=83.5868, `orientation`=5.58505 WHERE `guid`=20788; -- Venture Co. Drudger (WAYPOINTS) +UPDATE `creature` SET `position_x`=1132.7, `position_y`=-3117.25, `position_z`=91.6998, `orientation`=0.90986 WHERE `guid`=20790; -- Venture Co. Drudger +UPDATE `creature` SET `position_x`=1152.01, `position_y`=-3070.33, `position_z`=96.1998, `orientation`=2.28083 WHERE `guid`=20786; -- Venture Co. Drudger +UPDATE `creature` SET `position_x`=1142.54, `position_y`=-3028.47, `position_z`=91.8525, `orientation`=0.986467 WHERE `guid`=20780; -- Venture Co. Drudger +UPDATE `creature` SET `position_x`=1134.04, `position_y`=-3082.04, `position_z`=94.9435, `orientation`=4.09874 WHERE `guid`=20724; -- Venture Co. Mercenary +UPDATE `creature` SET `position_x`=1121.57, `position_y`=-3023.07, `position_z`=90.9243, `orientation`=3.80482 WHERE `guid`=20813; -- Venture Co. Drudger +UPDATE `creature` SET `position_x`=1130.46, `position_y`=-3149.46, `position_z`=91.3395, `orientation`=6.07026 WHERE `guid`=20795; -- Venture Co. Drudger +UPDATE `creature` SET `position_x`=-26.3812, `position_y`=-771.536, `position_z`=2.10514, `orientation`=3.98135 WHERE `guid`=29329; -- Grimtotem Ruffian +UPDATE `creature` SET `position_x`=-27.0834, `position_y`=-780.502, `position_z`=3.73936, `orientation`=4.71185 WHERE `guid`=29330; -- Grimtotem Ruffian +UPDATE `creature` SET `position_x`=92.0755, `position_y`=-370.367, `position_z`=4.21532, `orientation`=5.81717 WHERE `guid`=29363; -- Grimtotem Brute +UPDATE `creature` SET `position_x`=437.754, `position_y`=514.995, `position_z`=97.7872, `orientation`=4.67174 WHERE `guid`=29677; -- Deepmoss Creeper +UPDATE `creature` SET `position_x`=431.482, `position_y`=496.497, `position_z`=97.8863, `orientation`=1.07206 WHERE `guid`=29679; -- Deepmoss Creeper +UPDATE `creature` SET `position_x`=431.155, `position_y`=435.22, `position_z`=83.9158, `orientation`=4.03171 WHERE `guid`=29680; -- Deepmoss Creeper (WAYPOINTS) +UPDATE `creature` SET `position_x`=448.154, `position_y`=637.939, `position_z`=75.9675, `orientation`=1.44345 WHERE `guid`=29675; -- Deepmoss Creeper +UPDATE `creature` SET `position_x`=579.823, `position_y`=633.753, `position_z`=69.7856, `orientation`=0.279253 WHERE `guid`=29728; -- Deepmoss Webspinner +UPDATE `creature` SET `position_x`=592.518, `position_y`=602.001, `position_z`=75.9832, `orientation`=2.02458 WHERE `guid`=29725; -- Deepmoss Webspinner +UPDATE `creature` SET `position_x`=1280.17, `position_y`=-3619.77, `position_z`=91.7473, `orientation`=5.6519 WHERE `guid`=20852; -- Venture Co. Overseer (WAYPOINTS) +UPDATE `creature` SET `position_x`=1332.92, `position_y`=-3491.02, `position_z`=93.5413, `orientation`=1.14665 WHERE `guid`=20833; -- Venture Co. Overseer +UPDATE `creature` SET `position_x`=1400.28, `position_y`=-3449.79, `position_z`=93.8852, `orientation`=0.767897 WHERE `guid`=20849; -- Venture Co. Overseer +UPDATE `creature` SET `position_x`=1354.69, `position_y`=-3484.56, `position_z`=92.9223, `orientation`=4.27131 WHERE `guid`=20752; -- Venture Co. Enforcer +UPDATE `creature` SET `position_x`=1370.8, `position_y`=-3496.8, `position_z`=93.9968, `orientation`=3.28 WHERE `guid`=20832; -- Venture Co. Overseer +UPDATE `creature` SET `position_x`=1413.82, `position_y`=-3413.14, `position_z`=93.0299, `orientation`=3.32657 WHERE `guid`=20846; -- Venture Co. Overseer +UPDATE `creature` SET `position_x`=1359.99, `position_y`=-3444.86, `position_z`=96.443, `orientation`=3.77164 WHERE `guid`=20742; -- Venture Co. Enforcer +UPDATE `creature` SET `position_x`=1343.6, `position_y`=-3452.8, `position_z`=93.7181, `orientation`=4.32872 WHERE `guid`=20745; -- Venture Co. Enforcer +UPDATE `creature` SET `position_x`=1357.03, `position_y`=-3453.49, `position_z`=97.8408, `orientation`=4.2575 WHERE `guid`=20837; -- Venture Co. Overseer +UPDATE `creature` SET `position_x`=-216.513, `position_y`=-2717.63, `position_z`=93.8701, `orientation`=0.234144 WHERE `guid`=19293; -- Greater Plainstrider +UPDATE `creature` SET `position_x`=-1930.48, `position_y`=-2702.62, `position_z`=93.4698, `orientation`=1.27409 WHERE `guid`=20222; -- Bristleback Geomancer +UPDATE `creature` SET `position_x`=-1969.16, `position_y`=-2689.22, `position_z`=93.8607, `orientation`=3.08927 WHERE `guid`=20230; -- Bristleback Geomancer +UPDATE `creature` SET `position_x`=-2049.46, `position_y`=-2784.34, `position_z`=91.7642, `orientation`=4.03988 WHERE `guid`=20193; -- Bristleback Thornweaver (WAYPOINTS) +UPDATE `creature` SET `position_x`=-2002.27, `position_y`=-2812.71, `position_z`=92.7786, `orientation`=2.67636 WHERE `guid`=20220; -- Bristleback Geomancer +UPDATE `creature` SET `position_x`=-2034.4, `position_y`=-2820.97, `position_z`=93.1517, `orientation`=4.63304 WHERE `guid`=20153; -- Bristleback Water Seeker +UPDATE `creature` SET `position_x`=-2049.67, `position_y`=-2750.44, `position_z`=91.75, `orientation`=0.674393 WHERE `guid`=20238; -- Bristleback Geomancer +UPDATE `creature` SET `position_x`=-2107.48, `position_y`=-3640.19, `position_z`=87.4654, `orientation`=4.96084 WHERE `guid`=13929; -- Theramore Marine (WAYPOINTS) +UPDATE `creature` SET `position_x`=-2094.93, `position_y`=-3544.32, `position_z`=92.5596, `orientation`=1.23244 WHERE `guid`=13893; -- Theramore Marine +UPDATE `creature` SET `position_x`=-2089.24, `position_y`=-3632.63, `position_z`=96.2606, `orientation`=3.64774 WHERE `guid`=13934; -- Theramore Marine +UPDATE `creature` SET `position_x`=-2081.72, `position_y`=-3641.8, `position_z`=96.2551, `orientation`=0.680678 WHERE `guid`=13948; -- Theramore Preserver +UPDATE `creature` SET `position_x`=-2135.85, `position_y`=-3595.87, `position_z`=92.4868, `orientation`=0.561379 WHERE `guid`=13902; -- Theramore Marine +UPDATE `creature` SET `position_x`=-1571.45, `position_y`=-3883.87, `position_z`=16.2126, `orientation`=1.02017 WHERE `guid`=15066; -- Baron Longshore +UPDATE `creature` SET `position_x`=2550.98, `position_y`=-5154.47, `position_z`=74.4133, `orientation`=0.457545 WHERE `guid`=92654; -- Scourge Champion +UPDATE `creature` SET `position_x`=-7138.48, `position_y`=351.442, `position_z`=17.4589, `orientation`=2.04204 WHERE `guid`=43155; -- Tortured Sentinel +UPDATE `creature` SET `position_x`=-7721.06, `position_y`=-2585.4, `position_z`=159.786, `orientation`=2.72814 WHERE `guid`=5424; -- Firegut Ogre +UPDATE `creature` SET `position_x`=-7684.69, `position_y`=-2549.41, `position_z`=143.131, `orientation`=2.34145 WHERE `guid`=5354; -- Firegut Ogre +UPDATE `creature` SET `position_x`=-7972.69, `position_y`=-2621.45, `position_z`=174.944, `orientation`=1.18035 WHERE `guid`=5276; -- Firegut Ogre Mage +UPDATE `creature` SET `position_x`=-7918.05, `position_y`=-2716.34, `position_z`=164.783, `orientation`=2.50747 WHERE `guid`=5411; -- Firegut Ogre Mage +UPDATE `creature` SET `position_x`=-7971.09, `position_y`=-2681.09, `position_z`=156.88, `orientation`=4.7822 WHERE `guid`=4615; -- Firegut Ogre Mage + +-- Round 2 + +UPDATE `creature` SET `position_x`=-14984.9, `position_y`=274.126, `position_z`=12.9143, `orientation`=3.22172 WHERE `guid`=2622; -- Bloodsail Swabby +UPDATE `creature` SET `id`=1565 WHERE `guid`=2622; -- Bloodsail Sea Dog +UPDATE `creature` SET `id2`=1653 WHERE `guid`=2622; -- Bloodsail Elder Magus +UPDATE `creature` SET `id3`=4505 WHERE `guid`=2622; -- Bloodsail Deckhand +UPDATE `creature` SET `id4`=4506 WHERE `guid`=2622; -- Bloodsail Swabby +UPDATE `creature` SET `position_x`=-11326.2, `position_y`=1589.6, `position_z`=35.3555, `orientation`=2.60054 WHERE `guid`=89567; -- Undead Dynamiter +UPDATE `creature` SET `id`=623 WHERE `guid`=89567; -- Skeletal Miner +UPDATE `creature` SET `id2`=624 WHERE `guid`=89567; -- Undead Excavator +UPDATE `creature` SET `id3`=625 WHERE `guid`=89567; -- Undead Dynamiter +UPDATE `creature` SET `position_x`=-4791.95, `position_y`=-3028.05, `position_z`=302.162, `orientation`=0.575959 WHERE `guid`=9307; -- Tunnel Rat Forager +UPDATE `creature` SET `position_x`=-6094.81, `position_y`=-3044.25, `position_z`=400.607, `orientation`=0.628319 WHERE `guid`=9078; -- Stonesplinter Bonesnapper +UPDATE `creature` SET `position_x`=-14449.5, `position_y`=463.654, `position_z`=3.97493, `orientation`=1.0305 WHERE `guid`=718; -- Booty Bay Bruiser + +-- Fix startup errors. +UPDATE `creature` SET `mana_percent`=100 WHERE `guid` IN (6108, 6060, 5886, 5190, 5093, 4329, 2627, 2622, 9327, 9323, 9150, 9149, 27017, 23555, 23514, 21500, 20388, 20387, 20354, 7351, 16350, 44481, 92092, 92093, 92094, 42945, 42946, 42987, 43161, 43168); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 0d2222c589e6672dc06c2bea9835510742ce222a Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 11 Nov 2023 04:44:32 +0200 Subject: [PATCH 288/426] Add 4 missing quest greetings. --- sql/migrations/20231111024344_world.sql | 26 +++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 sql/migrations/20231111024344_world.sql diff --git a/sql/migrations/20231111024344_world.sql b/sql/migrations/20231111024344_world.sql new file mode 100644 index 00000000000..06b48f36898 --- /dev/null +++ b/sql/migrations/20231111024344_world.sql @@ -0,0 +1,26 @@ +SET NAMES utf8; +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231111024344'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231111024344'); +-- Add your query below. + + +-- Add 4 missing quest greetings. +SET NAMES utf8; +REPLACE INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `emote_id`, `emote_delay`) VALUES (1740, 1, 'This collection of scrolls contains various logistic and strategic information, as well as coded correspondences.', '이 두루마리 모음집에는 다양한 병참 및 전략 정보와 암호화된 서신이 포함되어 있습니다', 'Cette collection de parchemins contient diverses informations logistiques et stratégiques, ainsi que des correspondances codées.', 'Diese Schriftrollensammlung enthält verschiedene logistische und strategische Informationen sowie verschlüsselte Korrespondenzen.', '这卷卷轴包含各种后勤和战略信息,以及编码信件。', '這捲捲軸包含各種後勤和戰略訊息,以及編碼信件。', 'Esta colección de pergaminos contiene diversa información logística y estratégica, así como correspondencias codificadas.', NULL, 'Эта коллекция свитков содержит различную логистическую и стратегическую информацию, а также закодированную переписку.', 0, 0); +REPLACE INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `emote_id`, `emote_delay`) VALUES (2083, 0, 'Like Teldrassil itself, Dolanaar embraces those who embrace the land.', '텔드랏실 자체와 마찬가지로 돌라나르는 땅을 포용하는 사람들을 포용합니다.', 'Comme Teldrassil lui-même, Dolanaar accueille ceux qui embrassent la terre.', 'Wie Teldrassil selbst umarmt Dolanaar diejenigen, die das Land umarmen.', '就像泰达希尔本身一样,多兰纳尔拥抱那些拥抱这片土地的人们。', '就像泰達希爾本身一樣,多蘭納爾擁抱那些擁抱這片土地的人們。', 'Al igual que el propio Teldrassil, Dolanaar abraza a quienes abrazan la tierra.', NULL, 'Как и сам Тельдрассил, Доланаар принимает тех, кто принимает эту землю.', 0, 0); +REPLACE INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `emote_id`, `emote_delay`) VALUES (4630, 0, 'What a great day for racing! Oh, who am I kidding? Every day\'s a great day for racing!', '경주하기에 정말 좋은 날입니다! 아, 내가 누구랑 농담하는 거지? 매일 경주하기 좋은 날이에요!', 'Quelle belle journée pour la course ! Oh, de qui je me moque ? Chaque jour est un grand jour pour courir !', 'Was für ein toller Renntag! Oh, wem mache ich Witze? Jeder Tag ist ein toller Renntag!', '多么适合赛车的一天啊! 哦,我在和谁开玩笑呢? 每一天都是赛车的美好一天!', '多麼適合賽車的美好一天啊! 哦,我在跟誰開玩笑? 每一天都是賽車的美好一天!', '¡Qué gran día para las carreras! ¿A quién engaño? ¡Cada día es un gran día para competir!\r\n', NULL, 'Какой прекрасный день для гонок! Ох, кого я шучу? Каждый день – отличный день для гонок!', 1, 0); +REPLACE INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `emote_id`, `emote_delay`) VALUES (5636, 0, 'What do you want? I\'d be a whole lot happier up in the skies than grounded and yapping with a $r right now.$b$bGuess we can\'t all get what we want.', '당신은 무엇을 원하세요? 지금 당장 지상에 서서 $r을 치며 짖는 것보다 하늘에 있는 것이 훨씬 더 행복할 것 같아요.$b$b우리 모두가 원하는 것을 얻을 수는 없을 것 같아요.', 'Que veux-tu? Je serais bien plus heureux dans les cieux que de rester au sol et de crier avec un $r en ce moment.$b$bJe suppose que nous ne pouvons pas tous obtenir ce que nous voulons.', 'Was willst du? Ich wäre in der Luft viel glücklicher, als jetzt am Boden zu sein und mit einem $r zu kläffen.$b$bIch schätze, wir können nicht alle bekommen, was wir wollen.', '你想要什么? 我在天空中会比现在在地面上用 $r 狂吠要快乐得多。$b$b 猜猜我们不能都得到我们想要的东西。', '你想要什麼? 我在天空中會比現在在地面上用 $r 狂吠要快樂得多。$b$b 猜猜我們不能都得到我們想要的東西。', '¿Qué deseas? Sería mucho más feliz en los cielos que en tierra y gritando con una $r en este momento.$b$b Supongo que no todos podemos conseguir lo que queremos.', NULL, 'Что ты хочешь? Я был бы намного счастливее оказаться в небе, чем сидеть на земле и тявкать $r прямо сейчас.$b$bДумаю, мы не можем все получить то, что хотим.', 5, 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 4770716fe1b23ed17a80a5382ab9e9e740c05b44 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 11 Nov 2023 04:50:31 +0200 Subject: [PATCH 289/426] Another quest greeting. --- sql/migrations/20231111024344_world.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/sql/migrations/20231111024344_world.sql b/sql/migrations/20231111024344_world.sql index 06b48f36898..8ce793ce049 100644 --- a/sql/migrations/20231111024344_world.sql +++ b/sql/migrations/20231111024344_world.sql @@ -16,6 +16,7 @@ REPLACE INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1 REPLACE INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `emote_id`, `emote_delay`) VALUES (2083, 0, 'Like Teldrassil itself, Dolanaar embraces those who embrace the land.', '텔드랏실 자체와 마찬가지로 돌라나르는 땅을 포용하는 사람들을 포용합니다.', 'Comme Teldrassil lui-même, Dolanaar accueille ceux qui embrassent la terre.', 'Wie Teldrassil selbst umarmt Dolanaar diejenigen, die das Land umarmen.', '就像泰达希尔本身一样,多兰纳尔拥抱那些拥抱这片土地的人们。', '就像泰達希爾本身一樣,多蘭納爾擁抱那些擁抱這片土地的人們。', 'Al igual que el propio Teldrassil, Dolanaar abraza a quienes abrazan la tierra.', NULL, 'Как и сам Тельдрассил, Доланаар принимает тех, кто принимает эту землю.', 0, 0); REPLACE INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `emote_id`, `emote_delay`) VALUES (4630, 0, 'What a great day for racing! Oh, who am I kidding? Every day\'s a great day for racing!', '경주하기에 정말 좋은 날입니다! 아, 내가 누구랑 농담하는 거지? 매일 경주하기 좋은 날이에요!', 'Quelle belle journée pour la course ! Oh, de qui je me moque ? Chaque jour est un grand jour pour courir !', 'Was für ein toller Renntag! Oh, wem mache ich Witze? Jeder Tag ist ein toller Renntag!', '多么适合赛车的一天啊! 哦,我在和谁开玩笑呢? 每一天都是赛车的美好一天!', '多麼適合賽車的美好一天啊! 哦,我在跟誰開玩笑? 每一天都是賽車的美好一天!', '¡Qué gran día para las carreras! ¿A quién engaño? ¡Cada día es un gran día para competir!\r\n', NULL, 'Какой прекрасный день для гонок! Ох, кого я шучу? Каждый день – отличный день для гонок!', 1, 0); REPLACE INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `emote_id`, `emote_delay`) VALUES (5636, 0, 'What do you want? I\'d be a whole lot happier up in the skies than grounded and yapping with a $r right now.$b$bGuess we can\'t all get what we want.', '당신은 무엇을 원하세요? 지금 당장 지상에 서서 $r을 치며 짖는 것보다 하늘에 있는 것이 훨씬 더 행복할 것 같아요.$b$b우리 모두가 원하는 것을 얻을 수는 없을 것 같아요.', 'Que veux-tu? Je serais bien plus heureux dans les cieux que de rester au sol et de crier avec un $r en ce moment.$b$bJe suppose que nous ne pouvons pas tous obtenir ce que nous voulons.', 'Was willst du? Ich wäre in der Luft viel glücklicher, als jetzt am Boden zu sein und mit einem $r zu kläffen.$b$bIch schätze, wir können nicht alle bekommen, was wir wollen.', '你想要什么? 我在天空中会比现在在地面上用 $r 狂吠要快乐得多。$b$b 猜猜我们不能都得到我们想要的东西。', '你想要什麼? 我在天空中會比現在在地面上用 $r 狂吠要快樂得多。$b$b 猜猜我們不能都得到我們想要的東西。', '¿Qué deseas? Sería mucho más feliz en los cielos que en tierra y gritando con una $r en este momento.$b$b Supongo que no todos podemos conseguir lo que queremos.', NULL, 'Что ты хочешь? Я был бы намного счастливее оказаться в небе, чем сидеть на земле и тявкать $r прямо сейчас.$b$bДумаю, мы не можем все получить то, что хотим.', 5, 0); +REPLACE INTO `quest_greeting` (`entry`, `type`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `emote_id`, `emote_delay`) VALUES (142487, 1, 'A wild-looking contraption stands before you with a simple plaque heralding the name of the device: "The Sparklematic 5200". The machine seems to be designed to make items shiny and new again.', '"빤질빤질세척기 5200"이라는 장치 이름을 알리는 간단한 명판과 함께 거칠게 생긴 장치가 여러분 앞에 서 있습니다. 그 기계는 물건을 다시 빛나고 새 것으로 만들기 위해 설계된 것 같습니다.', 'Un engin à l\'allure sauvage se dresse devant vous avec une simple plaque annonçant le nom de l\'appareil : « Le Brille-o-Matic 5200 ». La machine semble être conçue pour rendre les objets brillants et neufs.', 'Vor Ihnen steht ein wild aussehendes Gerät mit einer einfachen Plakette, auf der der Name des Geräts steht: „Der Funkelmat 5200“. Die Maschine scheint dafür konzipiert zu sein, Gegenstände wieder glänzend und neu zu machen.', '一个看起来狂野的装置矗立在您面前,上面有一个简单的牌匾,上面写着该设备的名称:“超级清洁器5200型”。 这台机器的设计似乎是为了让物品重新焕发光彩、焕然一新。', '一個看起來狂野的裝置矗立在您面前,上面有一個簡單的牌匾,上面寫著該設備的名稱:「超級清潔器5200型」。 這台機器的設計似乎是為了讓物品重新煥發光彩、煥然一新。', 'Ante usted se encuentra un artilugio de aspecto salvaje con una sencilla placa que anuncia el nombre del dispositivo: "El Destellamatic 5200". La máquina parece estar diseñada para hacer que los artículos vuelvan a ser brillantes y nuevos.', NULL, 'Перед вами стоит диковинная штуковина с простой табличкой, на которой указано название устройства: «Чистер 5200». Кажется, что машина создана для того, чтобы снова делать вещи блестящими и новыми.', 0, 0); -- End of migration. From d3f7a67380676bd7483dafe2bd51c40233d0f9ec Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 11 Nov 2023 05:20:27 +0200 Subject: [PATCH 290/426] Remove 2 combat spawns of bruisers. --- sql/migrations/20231111021653_world.sql | 2 -- 1 file changed, 2 deletions(-) diff --git a/sql/migrations/20231111021653_world.sql b/sql/migrations/20231111021653_world.sql index 1a01462fda4..35bc0e2177f 100644 --- a/sql/migrations/20231111021653_world.sql +++ b/sql/migrations/20231111021653_world.sql @@ -286,7 +286,6 @@ UPDATE `creature` SET `id2`=4109 WHERE `guid`=21139; -- Highperch Consort UPDATE `creature` SET `position_x`=-6775.07, `position_y`=815.446, `position_z`=55.8303, `orientation`=3.31613 WHERE `guid`=113001; -- High Overlord Saurfang UPDATE `creature` SET `position_x`=-13269.1, `position_y`=-497.587, `position_z`=13.8957, `orientation`=0 WHERE `guid`=756; -- Ironjaw Basilisk UPDATE `creature` SET `position_x`=-2.57726, `position_y`=-915.778, `position_z`=56.5364, `orientation`=3.23139 WHERE `guid`=15537; -- Tarren Mill Deathguard -UPDATE `creature` SET `position_x`=6729.07, `position_y`=-4662.94, `position_z`=720.875, `orientation`=5.9877 WHERE `guid`=42290; -- Everlook Bruiser UPDATE `creature` SET `position_x`=-6683.93, `position_y`=1583.53, `position_z`=5.56161, `orientation`=3.22356 WHERE `guid`=42955; -- Twilight Avenger UPDATE `creature` SET `id`=11880 WHERE `guid`=42955; -- Twilight Avenger UPDATE `creature` SET `id2`=11881 WHERE `guid`=42955; -- Twilight Geolord @@ -1459,7 +1458,6 @@ UPDATE `creature` SET `id2`=624 WHERE `guid`=89567; -- Undead Excavator UPDATE `creature` SET `id3`=625 WHERE `guid`=89567; -- Undead Dynamiter UPDATE `creature` SET `position_x`=-4791.95, `position_y`=-3028.05, `position_z`=302.162, `orientation`=0.575959 WHERE `guid`=9307; -- Tunnel Rat Forager UPDATE `creature` SET `position_x`=-6094.81, `position_y`=-3044.25, `position_z`=400.607, `orientation`=0.628319 WHERE `guid`=9078; -- Stonesplinter Bonesnapper -UPDATE `creature` SET `position_x`=-14449.5, `position_y`=463.654, `position_z`=3.97493, `orientation`=1.0305 WHERE `guid`=718; -- Booty Bay Bruiser -- Fix startup errors. UPDATE `creature` SET `mana_percent`=100 WHERE `guid` IN (6108, 6060, 5886, 5190, 5093, 4329, 2627, 2622, 9327, 9323, 9150, 9149, 27017, 23555, 23514, 21500, 20388, 20387, 20354, 7351, 16350, 44481, 92092, 92093, 92094, 42945, 42946, 42987, 43161, 43168); From 1c24cd95752bf3722cdb97d1051533d6529af4a9 Mon Sep 17 00:00:00 2001 From: balakethelock <111737968+balakethelock@users.noreply.github.com> Date: Sat, 11 Nov 2023 04:47:54 +0100 Subject: [PATCH 291/426] Zone-wide aggro pulse should also place pets in combat (#2170) When player enters combat due to zone-wide pulse, their pet should enter combat as well --- src/game/Objects/Creature.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/game/Objects/Creature.cpp b/src/game/Objects/Creature.cpp index c7ef3772dba..546f21a74a9 100644 --- a/src/game/Objects/Creature.cpp +++ b/src/game/Objects/Creature.cpp @@ -2759,7 +2759,12 @@ void Creature::SetInCombatWithZone(bool initialPulse) continue; if (IsValidAttackTarget(pPlayer)) + { EnterCombatWithTarget(pPlayer); + Pet* pet = pPlayer->GetPet(); + if (pet && IsValidAttackTarget(pet)) + EnterCombatWithTarget(pet); + } } } } From 5f2d7d6d1b7278b1e3c2e83cd9dd7f4137ce63d3 Mon Sep 17 00:00:00 2001 From: balakethelock <111737968+balakethelock@users.noreply.github.com> Date: Sat, 11 Nov 2023 11:35:44 +0100 Subject: [PATCH 292/426] Change Brood Affliction: Bronze proc rate to 25% (#2168) 25% according to bwl sniff --- src/game/Spells/SpellAuras.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index bc892e134df..18ed3ec4328 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -1193,8 +1193,8 @@ void Aura::TriggerSpell() // Brood Affliction: Bronze case 23170: { - int rand = urand(0, 9); - if (rand < 4) // Ustaag : 40% chance + int rand = urand(0, 3); + if (rand < 1) // https://docs.google.com/spreadsheets/d/1xwndyUVb3iYZ_arZskD-NKK50jaovrgcYR5wwPP2juc/edit?usp=sharing : 25% chance target->CastSpell(target, 23171, true, nullptr, this); return; } From d63c885664e666b0f818afa4ec15b2486130f8de Mon Sep 17 00:00:00 2001 From: balakethelock <111737968+balakethelock@users.noreply.github.com> Date: Sat, 11 Nov 2023 11:52:48 +0100 Subject: [PATCH 293/426] Chromaggus adjustments and bug fixes (#2169) * Adjust ability timers + affliction targeting Shimmer 45 to 20 secs Affliction 4 to 7.5 secs Change application behavior to attempt cast at a random unit 15 times Removed pointless code to change health at time lapse fade out. * Handle CC spells that force target swap in spellauras.cpp Instead of doing them in the script file of individual mobs * Affliction wave number of casts On top of the randomness of hitting one unit more than once per wave, there's also the randomness of how many attempts is made per wave. Warcraft logs shows 11 to 15 --- src/game/Spells/SpellAuras.cpp | 9 ++ .../blackwing_lair/boss_chromaggus.cpp | 110 ++++++------------ 2 files changed, 46 insertions(+), 73 deletions(-) diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index 18ed3ec4328..836e74bfaa6 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -6866,6 +6866,15 @@ SpellAuraHolder::SpellAuraHolder(SpellEntry const* spellproto, Unit* target, Uni m_makesTargetSecondaryFocus = !GetSpellProto()->IsPositiveSpell() && (GetSpellProto()->HasAuraInterruptFlag(AURA_INTERRUPT_DAMAGE_CANCELS) || m_spellProto->HasAura(SPELL_AURA_MOD_CONFUSE) || m_spellProto->HasAura(SPELL_AURA_MOD_FEAR)); + // Exception spells for targetsecondaryfocus: + switch (m_spellProto->Id) + { + case 23310: // Chromaggus Time Lapse + case 23312: // Chromaggus Time Lapse + m_makesTargetSecondaryFocus = true; + break; + + } } void SpellAuraHolder::AddAura(Aura* aura, SpellEffectIndex index) diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/boss_chromaggus.cpp b/src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/boss_chromaggus.cpp index 40b17608d7c..c372fa7a597 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/boss_chromaggus.cpp +++ b/src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/boss_chromaggus.cpp @@ -62,14 +62,6 @@ enum static uint32 const aPossibleBreaths[MAX_BREATHS] = {SPELL_INCINERATE, SPELL_TIME_LAPSE, SPELL_CORROSIVE_ACID, SPELL_IGNITE_FLESH, SPELL_FROST_BURN}; -struct TimeLapseInfo -{ - TimeLapseInfo(ObjectGuid const targetGuid, float const targetThreat, uint32 const targetHealth) : m_targetGuid(targetGuid), m_targetThreat(targetThreat), m_targetHealth(targetHealth) { } - ObjectGuid const m_targetGuid; - float const m_targetThreat; - uint32 const m_targetHealth; -}; - struct boss_chromaggusAI : public ScriptedAI { boss_chromaggusAI(Creature* pCreature) : ScriptedAI(pCreature), m_uiBreathOneSpell(0), m_uiBreathTwoSpell(0) @@ -110,7 +102,6 @@ struct boss_chromaggusAI : public ScriptedAI bool m_bEnraged; bool m_bEngagedOnce; - std::vector m_vTimeLapseInfo; typedef std::vector AfflictionGuids; AfflictionGuids m_lRedAfflictionPlayerGUID; AfflictionGuids m_lChromaticPlayerGUID; @@ -121,11 +112,11 @@ struct boss_chromaggusAI : public ScriptedAI m_uiCurrentVulnerabilitySpell = 0; // We use this to store our last vulnerability spell so we can remove it later - m_uiShimmerTimer = 0; // Time till we change vurlnerabilites - m_uiBreathOneTimer = 30000; // First breath is 30 seconds - m_uiBreathTwoTimer = 60000; // Second is 1 minute so that we can alternate - m_uiAfflictionTimer = 4000; // This is special - 5 seconds means that we cast this on 1 pPlayer every 5 sconds - m_uiFrenzyTimer = 15000; + m_uiShimmerTimer = 0; // Vulnurability is applied at pull. Changes every 20 secs. + m_uiBreathOneTimer = 30000; // First breath happens in 30 secs. Repeats every 60 secs. + m_uiBreathTwoTimer = 60000; // Second breath happens in 60 secs. Repeats every 60 secs. + m_uiAfflictionTimer = 7500; // Afflictions are applied every 7.5 secs. + m_uiFrenzyTimer = 15000; // Frenzy happens every 15 secs. m_bEnraged = false; m_lRedAfflictionPlayerGUID.clear(); @@ -148,10 +139,6 @@ struct boss_chromaggusAI : public ScriptedAI else m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_SPAWNING | UNIT_FLAG_IMMUNE_TO_NPC); } - - for (const auto& itr : m_vTimeLapseInfo) - delete itr; - m_vTimeLapseInfo.clear(); } void MoveInLineOfSight(Unit *pUnit) override @@ -177,9 +164,6 @@ struct boss_chromaggusAI : public ScriptedAI { if (m_pInstance) m_pInstance->SetData(TYPE_CHROMAGGUS, DONE); - for (const auto& itr : m_vTimeLapseInfo) - delete itr; - m_vTimeLapseInfo.clear(); } void JustReachedHome() override @@ -193,14 +177,13 @@ struct boss_chromaggusAI : public ScriptedAI if (!pTarget) return; + /* Better to do this in SpellAuras.cpp if (pSpell->Id == SPELL_TIME_LAPSE) { if (SpellAuraHolder* holder = pTarget->GetSpellAuraHolder(SPELL_TIME_LAPSE)) holder->SetTargetSecondaryThreatFocus(true); - if (pTarget->GetTypeId() != TYPEID_PLAYER) - return; - m_vTimeLapseInfo.push_back(new TimeLapseInfo(pTarget->GetObjectGuid(), m_creature->GetThreatManager().getThreat(pTarget), pTarget->GetHealth())); } + */ } void MovementInform(uint32 uiType, uint32 uiPointId) override @@ -255,20 +238,6 @@ struct boss_chromaggusAI : public ScriptedAI if (!m_creature->SelectHostileTarget() || !m_creature->GetVictim()) return; - for (std::vector::iterator itr = m_vTimeLapseInfo.begin(); itr != m_vTimeLapseInfo.end(); ++itr) - if (Player* pTarget = m_creature->GetMap()->GetPlayer((*itr)->m_targetGuid)) - { - if (!pTarget->HasAura(SPELL_TIME_LAPSE) && pTarget->IsAlive()) - { - if ((*itr)->m_targetHealth >= (pTarget->GetMaxHealth() / 2)) - pTarget->SetHealth(pTarget->GetMaxHealth()); - delete *itr; - m_vTimeLapseInfo.erase(itr--); - } - } - else - m_vTimeLapseInfo.erase(itr--); - // Shimmer Timer Timer if (m_uiShimmerTimer < uiDiff) { @@ -302,7 +271,7 @@ struct boss_chromaggusAI : public ScriptedAI m_uiCurrentVulnerabilitySpell = uiSpell; DoScriptText(EMOTE_SHIMMER, m_creature); - m_uiShimmerTimer = 45000; + m_uiShimmerTimer = 20000; } } else @@ -351,56 +320,51 @@ struct boss_chromaggusAI : public ScriptedAI break; } - std::vector m_vPossibleVictim; - ThreatList const& tList = m_creature->GetThreatManager().getThreatList(); - for (const auto itr : tList) - if (Player* target = m_creature->GetMap()->GetPlayer(itr->getUnitGuid())) - m_vPossibleVictim.push_back(target->GetObjectGuid()); - - int affli_rand = urand(0, 18); - for (int i = 0; i < affli_rand; ++i) + for (int i = 0; i < urand(11, 15); ++i) // Affliction is applied 11-15 times per cast. Creatures such as pets can be targetted { - if (m_vPossibleVictim.empty()) - break; - std::vector::iterator it = m_vPossibleVictim.begin() + urand(0, m_vPossibleVictim.size() - 1); - if (Player* pPlayer = m_creature->GetMap()->GetPlayer(*it)) + if (Unit* afflictionTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM, 0)) { + if (afflictionTarget->HasAura(SPELL_CHROMATIC_MUT_1)) // To make sure mutated players are not being targeted with affliction. + continue; + // Cast affliction - if (DoCastSpellIfCan(pPlayer, m_uiSpellAfflict, CF_TRIGGERED) == CAST_OK) + if (DoCastSpellIfCan(afflictionTarget, m_uiSpellAfflict, CF_TRIGGERED) == CAST_OK) { - if (m_uiSpellAfflict == SPELL_BROODAF_RED) - m_lRedAfflictionPlayerGUID.push_back(pPlayer->GetObjectGuid()); + if (m_uiSpellAfflict == SPELL_BROODAF_RED && afflictionTarget->GetTypeId() == TYPEID_PLAYER) + m_lRedAfflictionPlayerGUID.push_back(afflictionTarget->GetObjectGuid()); } // Chromatic mutation if target is effected by all afflictions - if (pPlayer->HasAura(SPELL_BROODAF_BLUE) - && pPlayer->HasAura(SPELL_BROODAF_BLACK) - && pPlayer->HasAura(SPELL_BROODAF_RED) - && pPlayer->HasAura(SPELL_BROODAF_BRONZE) - && pPlayer->HasAura(SPELL_BROODAF_GREEN)) + if (afflictionTarget->HasAura(SPELL_BROODAF_BLUE) + && afflictionTarget->HasAura(SPELL_BROODAF_BLACK) + && afflictionTarget->HasAura(SPELL_BROODAF_RED) + && afflictionTarget->HasAura(SPELL_BROODAF_BRONZE) + && afflictionTarget->HasAura(SPELL_BROODAF_GREEN)) { - pPlayer->RemoveAurasDueToSpell(SPELL_BROODAF_BLUE); - pPlayer->RemoveAurasDueToSpell(SPELL_BROODAF_BLACK); - pPlayer->RemoveAurasDueToSpell(SPELL_BROODAF_RED); - pPlayer->RemoveAurasDueToSpell(SPELL_BROODAF_BRONZE); - pPlayer->RemoveAurasDueToSpell(SPELL_BROODAF_GREEN); + afflictionTarget->RemoveAurasDueToSpell(SPELL_BROODAF_BLUE); + afflictionTarget->RemoveAurasDueToSpell(SPELL_BROODAF_BLACK); + afflictionTarget->RemoveAurasDueToSpell(SPELL_BROODAF_RED); + afflictionTarget->RemoveAurasDueToSpell(SPELL_BROODAF_BRONZE); + afflictionTarget->RemoveAurasDueToSpell(SPELL_BROODAF_GREEN); - if (DoCastSpellIfCan(pPlayer, SPELL_CHROMATIC_MUT_1) == CAST_OK) + if (afflictionTarget->GetTypeId() == TYPEID_PLAYER) // Only players are mutated { - // More Chromatic Mutation buffs - pPlayer->AddAura(23175); //Mod DMG 500% + Mod Haste Melee 100 + Mod Haste Spell 300 - pPlayer->AddAura(23177); //Max Health 10000 + Mod healing 1000% - m_lChromaticPlayerGUID.push_back(pPlayer->GetObjectGuid()); + afflictionTarget->AddAura(SPELL_CHROMATIC_MUT_1, ADD_AURA_NO_OPTION, m_creature); // Main MC aura + afflictionTarget->AddAura(23175); // Mod DMG 500% + Mod Haste Melee 100 + Mod Haste Spell 300 + afflictionTarget->AddAura(23177); // Max Health 10000 + Mod healing 1000% + m_lChromaticPlayerGUID.push_back(afflictionTarget->GetObjectGuid()); } + else // Pets die instantly + afflictionTarget->DealDamage(afflictionTarget, afflictionTarget->GetHealth(), nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false); + } } - m_vPossibleVictim.erase(it); } - m_uiAfflictionTimer = 4000; + m_uiAfflictionTimer = 7500; } else m_uiAfflictionTimer -= uiDiff; - // If player dies from a direct hit or dot while he had the aura SPELL_BROODAF_RED + // If player dies while he had the aura SPELL_BROODAF_RED for (AfflictionGuids::iterator itr = m_lRedAfflictionPlayerGUID.begin(); itr != m_lRedAfflictionPlayerGUID.end();) { Player* pTarget = m_creature->GetMap()->GetPlayer(*itr); @@ -419,7 +383,7 @@ struct boss_chromaggusAI : public ScriptedAI ++itr; } - // If player dies from a direct hit or dot while he had the aura SPELL_CHROMATIC_MUT_1 + // If player dies while he had the aura SPELL_CHROMATIC_MUT_1 for (AfflictionGuids::iterator itr = m_lChromaticPlayerGUID.begin(); itr != m_lChromaticPlayerGUID.end();) { if (Player* pTarget = m_creature->GetMap()->GetPlayer(*itr)) From 2e426d5c78ffa642ffe84add25437cc0c8f4717f Mon Sep 17 00:00:00 2001 From: balakethelock <111737968+balakethelock@users.noreply.github.com> Date: Sat, 11 Nov 2023 11:56:22 +0100 Subject: [PATCH 294/426] Change Life Giving Gem effect to match classic (#2064) * LifegivingGemPartone * Lifegiving Gem fix Made it work same as classic, increases max health by 15%, then increases current health by same amount, then heals for 15% of max health. When aura fades, lose both max health and current health. --- src/game/Spells/SpellAuras.cpp | 13 +++++++++++-- src/game/Spells/SpellEffects.cpp | 5 ++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index 836e74bfaa6..43ba6df0b63 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -5081,17 +5081,26 @@ void Aura::HandleAuraModIncreaseHealth(bool apply, bool Real) } return; } - // Trinket BWL (Don de vie) + // Lifegiving Gem (gift of life) case 23782: { if (Real) { - target->HandleStatModifier(UNIT_MOD_HEALTH, TOTAL_PCT, 15.0f, apply); if (apply) { + target->HandleStatModifier(UNIT_MOD_HEALTH, TOTAL_VALUE, m_modifier.m_amount, apply); + target->ModifyHealth(m_modifier.m_amount); int32 healAmount = dither(target->GetMaxHealth() * 0.15f); target->CastCustomSpell(target, 23783, healAmount, {}, {}, true, nullptr, this); } + else + { + if (int32(target->GetHealth()) > m_modifier.m_amount) + target->ModifyHealth(-m_modifier.m_amount); + else if (target->IsAlive()) + target->SetHealth(1); + target->HandleStatModifier(UNIT_MOD_HEALTH, TOTAL_VALUE, m_modifier.m_amount, apply); + } } return; } diff --git a/src/game/Spells/SpellEffects.cpp b/src/game/Spells/SpellEffects.cpp index 0cf2a482ade..fa53cb20225 100644 --- a/src/game/Spells/SpellEffects.cpp +++ b/src/game/Spells/SpellEffects.cpp @@ -1412,7 +1412,10 @@ void Spell::EffectDummy(SpellEffectIndex effIdx) return; case 23725: // Gift of Life (warrior bwl trinket) if (m_casterUnit) - m_casterUnit->CastSpell(m_casterUnit, 23782, true); + { + int32 LifegivingGemHealthMod = int32(m_casterUnit->GetMaxHealth() * 0.15); + m_casterUnit->CastCustomSpell(m_casterUnit, 23782, LifegivingGemHealthMod, {}, {}, true, nullptr); + } return; case 24781: // Dream Fog { From 7e3a05a2747a8cdc745dda8ec18da4d5dec03f30 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 12 Nov 2023 03:55:23 +0200 Subject: [PATCH 295/426] Improve WSG battlebots. Now flag carrier wont stop to fight attackers, and will continue trying to reach the home base. Also bots will prioritize picking up the flag when near the enemy base. --- src/game/PlayerBots/BattleBotAI.cpp | 39 +++++++++++++++++-- src/game/PlayerBots/BattleBotAI.h | 1 + src/game/PlayerBots/BattleBotWaypoints.cpp | 45 ++++++++++++---------- 3 files changed, 61 insertions(+), 24 deletions(-) diff --git a/src/game/PlayerBots/BattleBotAI.cpp b/src/game/PlayerBots/BattleBotAI.cpp index 67484fd4e92..37955e54f80 100644 --- a/src/game/PlayerBots/BattleBotAI.cpp +++ b/src/game/PlayerBots/BattleBotAI.cpp @@ -70,6 +70,8 @@ enum BattleBotSpells #define GO_WSG_DROPPED_SILVERWING_FLAG 179785 #define GO_WSG_DROPPED_WARSONG_FLAG 179786 +#define GO_WSG_SILVERWING_FLAG 179830 +#define GO_WSG_WARSONG_FLAG 179831 uint32 BattleBotAI::GetMountSpellId() const { @@ -259,8 +261,20 @@ bool BattleBotAI::AttackStart(Unit* pVictim) return false; } +bool BattleBotAI::ShouldIgnoreCombat() const +{ + if (m_battlegroundId == BATTLEGROUND_QUEUE_WS && !me->IsRooted() && + (me->HasAura(AURA_SILVERWING_FLAG) || me->HasAura(AURA_WARSONG_FLAG))) + return true; + return false; +} + Unit* BattleBotAI::SelectAttackTarget(Unit* pExcept) const { + // Ignore attackers while carrying flag, just keep running. + if (ShouldIgnoreCombat()) + return nullptr; + // 1. Check units we are currently in combat with. std::list targets; @@ -500,9 +514,6 @@ void BattleBotAI::UpdateWaypointMovement() if (!me->IsStopped()) return; - if (me->IsInCombat()) - return; - if (me->HasUnitState(UNIT_STAT_CAN_NOT_MOVE)) return; @@ -870,6 +881,12 @@ void BattleBotAI::UpdateAI(uint32 const diff) return; } + if (ShouldIgnoreCombat()) + { + UpdateWaypointMovement(); + return; + } + if (!pVictim || !IsValidHostileTarget(pVictim) || !pVictim->IsWithinDist(me, VISIBILITY_DISTANCE_NORMAL)) { @@ -883,7 +900,8 @@ void BattleBotAI::UpdateAI(uint32 const diff) (me != me->GetVictim()->GetVictim())) { me->AttackStop(false); - StopMoving(); + if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == CHASE_MOTION_TYPE) + StopMoving(); return; } } @@ -916,10 +934,23 @@ void BattleBotAI::UpdateBattleGroundAI() { case BATTLEGROUND_WS: { + // Pick up dropped flags. if (GameObject* pGo = me->FindNearestGameObject(GO_WSG_DROPPED_SILVERWING_FLAG, INTERACTION_DISTANCE)) pGo->Use(me); if (GameObject* pGo = me->FindNearestGameObject(GO_WSG_DROPPED_WARSONG_FLAG, INTERACTION_DISTANCE)) pGo->Use(me); + + // Pick up stationary flags from bases. + if (me->GetTeam() == HORDE) + { + if (GameObject* pGo = me->FindNearestGameObject(GO_WSG_SILVERWING_FLAG, INTERACTION_DISTANCE)) + pGo->Use(me); + } + else + { + if (GameObject* pGo = me->FindNearestGameObject(GO_WSG_WARSONG_FLAG, INTERACTION_DISTANCE)) + pGo->Use(me); + } break; } } diff --git a/src/game/PlayerBots/BattleBotAI.h b/src/game/PlayerBots/BattleBotAI.h index fada4fffbaa..4b84f6e2eea 100644 --- a/src/game/PlayerBots/BattleBotAI.h +++ b/src/game/PlayerBots/BattleBotAI.h @@ -52,6 +52,7 @@ class BattleBotAI : public CombatBotBaseAI void OnPacketReceived(WorldPacket const* packet) final; void MovementInform(uint32 MovementType, uint32 Data = 0) final; + bool ShouldIgnoreCombat() const; bool DrinkAndEat(); bool UseMount(); uint32 GetMountSpellId() const; diff --git a/src/game/PlayerBots/BattleBotWaypoints.cpp b/src/game/PlayerBots/BattleBotWaypoints.cpp index 86ed6cd8a74..f8cd93deab5 100644 --- a/src/game/PlayerBots/BattleBotWaypoints.cpp +++ b/src/game/PlayerBots/BattleBotWaypoints.cpp @@ -24,6 +24,7 @@ #include "Spell.h" #include "Battlegrounds/BattleGround.h" #include "BattleGroundAV.h" +#include "BattleGroundWS.h" #include "Geometry.h" using namespace Geometry; @@ -91,14 +92,7 @@ void WSG_AtAllianceFlag(BattleBotAI* pAI) else { pAI->ClearPath(); - ObjectGuid guid = pFlag->GetObjectGuid(); pAI->me->GetMotionMaster()->MovePoint(0, pFlag->GetPositionX(), pFlag->GetPositionY(), 353.0f); - pAI->me->m_Events.AddLambdaEventAtOffset([pAI, guid] - { - WorldPacket data(CMSG_GAMEOBJ_USE); - data << guid; - pAI->me->GetSession()->HandleGameObjectUseOpcode(data); - }, 2000); return; } } @@ -133,14 +127,7 @@ void WSG_AtHordeFlag(BattleBotAI* pAI) else { pAI->ClearPath(); - ObjectGuid guid = pFlag->GetObjectGuid(); pAI->me->GetMotionMaster()->MovePoint(0, pFlag->GetPositionX(), pFlag->GetPositionY(), pFlag->GetPositionZ()); - pAI->me->m_Events.AddLambdaEventAtOffset([pAI, guid] - { - WorldPacket data(CMSG_GAMEOBJ_USE); - data << guid; - pAI->me->GetSession()->HandleGameObjectUseOpcode(data); - }, 2000); return; } } @@ -254,7 +241,7 @@ void MoveToNextPointSpecial(BattleBotAI* pAI) uint32 const lastPointInPath = pAI->m_movingInReverse ? 0 : ((*pAI->m_currentPath).size() - 1); if ((pAI->m_currentPoint == lastPointInPath) || - pAI->me->IsInCombat() || !pAI->me->IsAlive()) + (pAI->me->IsInCombat() && !pAI->ShouldIgnoreCombat()) || !pAI->me->IsAlive()) { // Path is over. pAI->ClearPath(); @@ -1781,7 +1768,7 @@ void BattleBotAI::MoveToNextPoint() uint32 const lastPointInPath = m_movingInReverse ? 0 : ((*m_currentPath).size() - 1); if ((m_currentPoint == lastPointInPath) || - me->IsInCombat() || !me->IsAlive()) + (me->IsInCombat() && !ShouldIgnoreCombat()) || !me->IsAlive()) { // Path is over. ClearPath(); @@ -2165,10 +2152,28 @@ bool BattleBotAI::StartNewPathToObjective() } case BATTLEGROUND_WS: { - if (me->HasAura(AURA_WARSONG_FLAG)) - return StartNewPathToPosition(WS_FLAG_POS_ALLIANCE, vPaths_WS); - if (me->HasAura(AURA_SILVERWING_FLAG)) - return StartNewPathToPosition(WS_FLAG_POS_HORDE, vPaths_WS); + if (me->GetTeam() == HORDE) + { + if (me->HasAura(AURA_SILVERWING_FLAG)) + return StartNewPathToPosition(WS_FLAG_POS_HORDE, vPaths_WS); + if (!static_cast(bg)->IsAllianceFlagPickedup()) + { + float const distance = me->GetDistance(WS_FLAG_POS_ALLIANCE); + if (distance > 20.0f && distance < 300.0f) + return StartNewPathToPosition(WS_FLAG_POS_ALLIANCE, vPaths_WS); + } + } + else + { + if (me->HasAura(AURA_WARSONG_FLAG)) + return StartNewPathToPosition(WS_FLAG_POS_ALLIANCE, vPaths_WS); + if (!static_cast(bg)->IsHordeFlagPickedup()) + { + float const distance = me->GetDistance(WS_FLAG_POS_HORDE); + if (distance > 20.0f && distance < 300.0f) + return StartNewPathToPosition(WS_FLAG_POS_HORDE, vPaths_WS); + } + } break; } } From d7f11f406f4ddd573c3523a8e49f1e43050b10d0 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 12 Nov 2023 14:49:55 +0200 Subject: [PATCH 296/426] Fix Orb of Draconic Energy. Closes https://github.com/vmangos/core/issues/2282 --- src/game/Commands/UnitCommands.cpp | 6 +- src/game/Spells/Spell.cpp | 147 +++++++++++++++-------------- src/game/Spells/SpellEntry.h | 17 ++++ 3 files changed, 94 insertions(+), 76 deletions(-) diff --git a/src/game/Commands/UnitCommands.cpp b/src/game/Commands/UnitCommands.cpp index 6880d1f003e..45ae5028f77 100644 --- a/src/game/Commands/UnitCommands.cpp +++ b/src/game/Commands/UnitCommands.cpp @@ -876,13 +876,13 @@ bool ChatHandler::HandleUnfreezeCommand(char* args) bool ChatHandler::HandlePossessCommand(char *args) { - Unit* tar = GetSelectedUnit(); - if (!tar) + Unit* target = GetSelectedUnit(); + if (!target) { SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE); return false; } - m_session->GetPlayer()->CastSpell(tar, 530, true); + m_session->GetPlayer()->CastCustomSpell(target, 530, 255, {}, {}, true); return true; } diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 339718e9162..af8fa5eee71 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -6880,54 +6880,37 @@ SpellCastResult Spell::CheckCast(bool strict) if (!m_caster->IsPlayer()) return SPELL_FAILED_BAD_TARGETS; - if (!m_targets.getUnitTarget()) - return SPELL_FAILED_BAD_IMPLICIT_TARGETS; - - if (m_targets.getUnitTarget() == m_casterUnit) + // no break + } + case SPELL_AURA_MOD_CHARM: + { + if (!m_casterUnit) return SPELL_FAILED_BAD_TARGETS; - if (!m_casterUnit->UnsummonOldPetBeforeNewSummon(m_targets.getUnitTarget()->GetEntry(), m_spellInfo->HasAttribute(SPELL_ATTR_EX_DISMISS_PET_FIRST))) - return SPELL_FAILED_ALREADY_HAVE_SUMMON; - - if (m_spellInfo->HasAttribute(SPELL_ATTR_EX_DISMISS_PET_FIRST)) - m_casterUnit->Uncharm(); - else if (m_casterUnit->GetCharmGuid()) - return SPELL_FAILED_ALREADY_HAVE_CHARM; - - if (m_casterUnit->GetCharmerGuid()) -#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_11_2 - return SPELL_FAILED_CHARMED; -#else - return SPELL_FAILED_FIZZLE; -#endif + if (!IsScriptTarget(m_spellInfo->EffectImplicitTargetA[i])) + { + if (!m_targets.getUnitTarget()) + return SPELL_FAILED_BAD_IMPLICIT_TARGETS; - if (m_targets.getUnitTarget()->GetCharmerGuid()) + if (m_targets.getUnitTarget()->GetCharmerGuid()) #if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_11_2 - return SPELL_FAILED_CHARMED; + return SPELL_FAILED_CHARMED; #else - return SPELL_FAILED_FIZZLE; + return SPELL_FAILED_FIZZLE; #endif - if (m_spellInfo->Id != 530) // Spell for ".possess" command. if (int32(m_targets.getUnitTarget()->GetLevel()) > CalculateDamage(SpellEffectIndex(i), m_targets.getUnitTarget())) return SPELL_FAILED_HIGHLEVEL; + } - break; - } - case SPELL_AURA_MOD_CHARM: - { - if (!m_casterUnit) - return SPELL_FAILED_BAD_TARGETS; - - if (!m_targets.getUnitTarget()) - return SPELL_FAILED_BAD_IMPLICIT_TARGETS; - - if (m_targets.getUnitTarget() == m_casterUnit) - return SPELL_FAILED_BAD_TARGETS; - - if (!m_casterUnit->UnsummonOldPetBeforeNewSummon(m_targets.getUnitTarget()->GetEntry(), m_spellInfo->HasAttribute(SPELL_ATTR_EX_DISMISS_PET_FIRST))) - return SPELL_FAILED_ALREADY_HAVE_SUMMON; - + if (Pet* pPet = m_casterUnit->GetPet()) + { + if (m_spellInfo->HasAttribute(SPELL_ATTR_EX_DISMISS_PET_FIRST)) + pPet->Unsummon(PET_SAVE_NOT_IN_SLOT); + else + return SPELL_FAILED_ALREADY_HAVE_SUMMON; + } + if (m_spellInfo->HasAttribute(SPELL_ATTR_EX_DISMISS_PET_FIRST)) m_casterUnit->Uncharm(); else if (m_casterUnit->GetCharmGuid()) @@ -6940,16 +6923,6 @@ SpellCastResult Spell::CheckCast(bool strict) return SPELL_FAILED_FIZZLE; #endif - if (m_targets.getUnitTarget()->GetCharmerGuid()) -#if SUPPORTED_CLIENT_BUILD >= CLIENT_BUILD_1_11_2 - return SPELL_FAILED_CHARMED; -#else - return SPELL_FAILED_FIZZLE; -#endif - - if (int32(m_targets.getUnitTarget()->GetLevel()) > CalculateDamage(SpellEffectIndex(i), m_targets.getUnitTarget())) - return SPELL_FAILED_HIGHLEVEL; - break; } case SPELL_AURA_MOD_POSSESS_PET: @@ -8181,17 +8154,9 @@ bool Spell::CheckTarget(Unit* target, SpellEffectIndex eff) // unselectable targets skipped in all cases except db defined script targets // in that case the target is selected by server, not by client, so no cheating if ((!m_IsTriggeredSpell || target != m_targets.getUnitTarget()) && - target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE) && - m_spellInfo->EffectImplicitTargetA[eff] != TARGET_UNIT_SCRIPT_NEAR_CASTER && - m_spellInfo->EffectImplicitTargetB[eff] != TARGET_UNIT_SCRIPT_NEAR_CASTER && - m_spellInfo->EffectImplicitTargetA[eff] != TARGET_ENUM_UNITS_SCRIPT_AOE_AT_SRC_LOC && - m_spellInfo->EffectImplicitTargetB[eff] != TARGET_ENUM_UNITS_SCRIPT_AOE_AT_SRC_LOC && - m_spellInfo->EffectImplicitTargetA[eff] != TARGET_ENUM_UNITS_SCRIPT_AOE_AT_DEST_LOC && - m_spellInfo->EffectImplicitTargetB[eff] != TARGET_ENUM_UNITS_SCRIPT_AOE_AT_DEST_LOC && - m_spellInfo->EffectImplicitTargetA[eff] != TARGET_ENUM_UNITS_SCRIPT_IN_CONE_60 && - m_spellInfo->EffectImplicitTargetB[eff] != TARGET_ENUM_UNITS_SCRIPT_IN_CONE_60 && - m_spellInfo->EffectImplicitTargetA[eff] != TARGET_LOCATION_SCRIPT_NEAR_CASTER && - m_spellInfo->EffectImplicitTargetB[eff] != TARGET_LOCATION_SCRIPT_NEAR_CASTER) + target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE) && + !IsScriptTarget(m_spellInfo->EffectImplicitTargetA[eff]) && + !IsScriptTarget(m_spellInfo->EffectImplicitTargetB[eff])) return false; } @@ -8205,18 +8170,63 @@ bool Spell::CheckTarget(Unit* target, SpellEffectIndex eff) return false; } + enum + { + NORMAL_LOS, + CORPSE_LOS, + NO_LOS + } checkLosType = NORMAL_LOS; + // Check targets for LOS visibility (except spells without range limitations ) switch (m_spellInfo->Effect[eff]) { case SPELL_EFFECT_SUMMON_PLAYER: // from anywhere + { + checkLosType = NO_LOS; break; + } case SPELL_EFFECT_DUMMY: - if (m_spellInfo->Id != 20577) // Cannibalize - break; - // no break. Cannibalize checks corpse target LOS. - // fall through + { + if (m_spellInfo->Id == 20577) // Cannibalize + checkLosType = CORPSE_LOS; + break; + } case SPELL_EFFECT_RESURRECT: case SPELL_EFFECT_RESURRECT_NEW: + { + checkLosType = CORPSE_LOS; + break; + } + case SPELL_AURA_MOD_POSSESS: + case SPELL_AURA_MOD_CHARM: + { + if (target == m_casterUnit) + return false; + + if (target->GetCharmerGuid()) + return false; + + if (int32(target->GetLevel()) > CalculateDamage(eff, target)) + return false; + + break; + } + } + + switch (checkLosType) + { + case NORMAL_LOS: + { + // Get GO cast coordinates if original caster -> GO + if (target != m_caster && !IsIgnoreLosTarget(m_spellInfo->EffectImplicitTargetA[eff]) && + (m_spellInfo->EffectChainTarget[eff] == 0 || target == m_targets.getUnitTarget())) + if (SpellCaster* caster = GetCastingObject()) + if (!(m_spellInfo->AttributesEx2 & SPELL_ATTR_EX2_IGNORE_LINE_OF_SIGHT) && !target->IsWithinLOSInMap(caster)) + return false; + break; + } + case CORPSE_LOS: + { // player far away, maybe his corpse near? if (target != m_caster && !(m_spellInfo->AttributesEx2 & SPELL_ATTR_EX2_IGNORE_LINE_OF_SIGHT) && !target->IsWithinLOSInMap(m_caster)) { @@ -8233,17 +8243,8 @@ bool Spell::CheckTarget(Unit* target, SpellEffectIndex eff) if (!(m_spellInfo->AttributesEx2 & SPELL_ATTR_EX2_IGNORE_LINE_OF_SIGHT) && !corpse->IsWithinLOSInMap(m_caster)) return false; } - - // all ok by some way or another, skip normal check - break; - default: // normal case - // Get GO cast coordinates if original caster -> GO - if (target != m_caster && !IsIgnoreLosTarget(m_spellInfo->EffectImplicitTargetA[eff]) && - (m_spellInfo->EffectChainTarget[eff] == 0 || target == m_targets.getUnitTarget())) - if (SpellCaster* caster = GetCastingObject()) - if (!(m_spellInfo->AttributesEx2 & SPELL_ATTR_EX2_IGNORE_LINE_OF_SIGHT) && !target->IsWithinLOSInMap(caster)) - return false; break; + } } if (m_spellInfo->HasAttribute(SPELL_ATTR_EX3_NOT_ON_AOE_IMMUNE) && diff --git a/src/game/Spells/SpellEntry.h b/src/game/Spells/SpellEntry.h index e5cc7009257..7b336d8183d 100644 --- a/src/game/Spells/SpellEntry.h +++ b/src/game/Spells/SpellEntry.h @@ -342,6 +342,23 @@ namespace Spells return false; } + inline bool IsScriptTarget(uint32 target) + { + switch (target) + { + case TARGET_ENUM_UNITS_SCRIPT_AOE_AT_SRC_LOC: + case TARGET_ENUM_UNITS_SCRIPT_AOE_AT_DEST_LOC: + case TARGET_UNIT_SCRIPT_NEAR_CASTER: + case TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER: + case TARGET_LOCATION_SCRIPT_NEAR_CASTER: + case TARGET_ENUM_GAMEOBJECTS_SCRIPT_AOE_AT_SRC_LOC: + case TARGET_ENUM_GAMEOBJECTS_SCRIPT_AOE_AT_DEST_LOC: + case TARGET_ENUM_UNITS_SCRIPT_IN_CONE_60: + return true; + } + return false; + } + inline bool IsAreaEffectPossitiveTarget(SpellTarget target) { switch (target) From 9749376db85e0b63b6d392477c42d7e4aca648ee Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 13 Nov 2023 01:14:33 +0200 Subject: [PATCH 297/426] Fix mistake in previous commit. --- src/game/Spells/Spell.cpp | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index af8fa5eee71..88cb4c8e6f8 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -8197,18 +8197,32 @@ bool Spell::CheckTarget(Unit* target, SpellEffectIndex eff) checkLosType = CORPSE_LOS; break; } - case SPELL_AURA_MOD_POSSESS: - case SPELL_AURA_MOD_CHARM: + case SPELL_EFFECT_APPLY_AURA: + case SPELL_EFFECT_PERSISTENT_AREA_AURA: + case SPELL_EFFECT_APPLY_AREA_AURA_PARTY: + case SPELL_EFFECT_APPLY_AREA_AURA_PET: + case SPELL_EFFECT_APPLY_AREA_AURA_FRIEND: + case SPELL_EFFECT_APPLY_AREA_AURA_ENEMY: + case SPELL_EFFECT_APPLY_AREA_AURA_RAID: + case SPELL_EFFECT_APPLY_AREA_AURA_OWNER: { - if (target == m_casterUnit) - return false; + switch (m_spellInfo->EffectApplyAuraName[eff]) + { + case SPELL_AURA_MOD_POSSESS: + case SPELL_AURA_MOD_CHARM: + { + if (target == m_casterUnit) + return false; - if (target->GetCharmerGuid()) - return false; + if (target->GetCharmerGuid()) + return false; - if (int32(target->GetLevel()) > CalculateDamage(eff, target)) - return false; + if (int32(target->GetLevel()) > CalculateDamage(eff, target)) + return false; + break; + } + } break; } } From d0adcf3cd09938503a41eb6b7047ebb3e1dec9c0 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 13 Nov 2023 02:40:52 +0200 Subject: [PATCH 298/426] Correct damage and armor of more creatures. Based on melee damage packet calculations. --- sql/migrations/20231113003847_world.sql | 254 ++++++++++++++++++++++++ 1 file changed, 254 insertions(+) create mode 100644 sql/migrations/20231113003847_world.sql diff --git a/sql/migrations/20231113003847_world.sql b/sql/migrations/20231113003847_world.sql new file mode 100644 index 00000000000..f80ac5d4cfa --- /dev/null +++ b/sql/migrations/20231113003847_world.sql @@ -0,0 +1,254 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231113003847'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231113003847'); +-- Add your query below. + + +-- Defias Ambusher +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=583; -- old 1.9, level 8, hits 10 + +-- Sneed +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.3 WHERE `entry`=643; -- old 3, level 20, hits 22 + +-- Watcher Jan +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=826; -- old 0.75, level 39, hits 7 + +-- Watcher Petras +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.2 WHERE `entry`=828; -- old 1, level 38, hits 12 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=828; -- old 1.15, level 38, hits 41 + +-- Antonio Perelli +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=844; -- old 1.05, level 35, hits 5 + +-- Watcher Keller +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=885; -- old 0.75, level 39, hits 5 + +-- Watcher Blomberg +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=1000; -- old 1.3, level 20, hits 16 + +-- Crimson Whelp +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=1069; -- old 0, level 25, hits 4 + +-- Angus Stern +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.75 WHERE `entry`=1141; -- old 1.6, level 60, hits 20 + +-- Morbent Fel +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2 WHERE `entry`=1200; -- old 2.35, level 32, hits 57 + +-- Miran +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=1379; -- old 1, level 15, hits 91 + +-- Mok'rash +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=6.25 WHERE `entry`=1493; -- old 3.35, level 50, hits 5 + +-- Negolash +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=1494; -- old 0.75, level 52, hits 10 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=4.4 WHERE `entry`=1494; -- old 3.75, level 52, hits 5 + +-- Tirion Fordring +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=3 WHERE `entry`=1855; -- old 1.45, level 61, hits 1 + +-- Stephen Bhartec +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.8 WHERE `entry`=1916; -- old 0.92, level 3, hits 8 + +-- Karrel Grayves +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.9 WHERE `entry`=1918; -- old 1.4, level 3, hits 7 + +-- Bloodfeather Matriarch +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=2021; -- old 1, level 11, hits 38 + +-- Timberling Bark Ripper +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.02 WHERE `entry`=2025; -- old 0.14, level 7, hits 24 + +-- Bael'dun Digger +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=2989; -- old 1, level 8, hits 27 + +-- Matt Johnson +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=3137; -- old 0.85, level 20, hits 25 +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.06 WHERE `entry`=3137; -- old 0.14, level 20, hits 25 + +-- Razormane Water Seeker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=0.9 WHERE `entry`=3267; -- old 1, level 11, hits 87 + +-- Shadow Charger +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=3865; -- old 1.55, level 21, hits 14 + +-- Deathsworn Captain +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.5 WHERE `entry`=3872; -- old 2.8, level 25, hits 5 + +-- Herod +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=3975; -- old 0.14, level 40, hits 21 + +-- Fenrus the Devourer +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.25 WHERE `entry`=4274; -- old 2.95, level 25, hits 30 + +-- Snapping Crustacean +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.65 WHERE `entry`=4822; -- old 3.2, level 24, hits 14 + +-- Connor Rivers +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.1 WHERE `entry`=5081; -- old 1.4, level 25, hits 3 + +-- Deep Strider +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=2.55 WHERE `entry`=5360; -- old 3.55, level 49, hits 4 + +-- Thistleshrub Rootshaper +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=5485; -- old 1.1, level 49, hits 341 + +-- Captured Sprite Darter +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.2 WHERE `entry`=7997; -- old 0.14, level 42, hits 283 + +-- Greater Firebird +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=8207; -- old 3.2, level 46, hits 7 + +-- The Reak +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.1 WHERE `entry`=8212; -- old 3.25, level 49, hits 4 + +-- Blighted Horror +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.14 WHERE `entry`=8521; -- old 0.11, level 57, hits 46 + +-- Battle Chicken +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.01 WHERE `entry`=8836; -- old 1.3, level 60, hits 663 + +-- Dadanga +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=9274; -- old 1.5, level 45, hits 1 + +-- Ground Pounder +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1.5 WHERE `entry`=9396; -- old 1.8, level 43, hits 29 + +-- Ribbly Screwspigot +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.35 WHERE `entry`=9543; -- old 2.7, level 53, hits 31 + +-- Parrot +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.66 WHERE `entry`=9600; -- old 1.3, level 1, hits 3 + +-- Ranshalla +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=10300; -- old 0.14, level 58, hits 233 + +-- Crimson Cannon +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=11199; -- old 0, level 61, hits 6 + +-- Cyclone Warrior +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=11745; -- old 0.65, level 58, hits 3 + +-- Stormpike Mountaineer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12047; -- old 17, level 55, hits 2350 + +-- Duros +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=12122; -- old 1.1, level 60, hits 74 + +-- Masha Swiftcut +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=13088; -- old 3.4, level 58, hits 28 + +-- Lieutenant Rugba +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13137; -- old 1.1, level 59, hits 209 + +-- Lieutenant Grummus +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13145; -- old 1.1, level 59, hits 190 + +-- Frostwolf Shaman +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=3.5 WHERE `entry`=13284; -- old 3.85, level 58, hits 240 + +-- Seasoned Coldmine Guard +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.7 WHERE `entry`=13534; -- old 5.2, level 57, hits 46 + +-- Seasoned Coldmine Surveyor +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=13537; -- old 1.25, level 57, hits 27 +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.5 WHERE `entry`=13537; -- old 3.4, level 57, hits 10 + +-- The Rot +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14235; -- old 3.1, level 43, hits 11 + +-- Snarlflare +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=0.85 WHERE `entry`=14272; -- old 4.95, level 18, hits 6 + +-- Rogue Black Drake +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1.85 WHERE `entry`=14388; -- old 3, level 51, hits 5 + +-- Threggil +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=1 WHERE `entry`=14432; -- old 1.15, level 6, hits 3 + +-- Dun Baldar North Marshal +-- Damage Multiplier +UPDATE `creature_template` SET `damage_multiplier`=15 WHERE `entry`=14762; -- old 13.5, level 60, hits 38 + +-- Thaddius +-- Damage Variance +UPDATE `creature_template` SET `damage_variance`=0.07 WHERE `entry`=15928; -- old 0.14, level 63, hits 26 + +-- Spectral Stalker +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16093; -- old 0.9, level 60, hits 104 + +-- Nerubian Overseer +-- Armor Multiplier +UPDATE `creature_template` SET `armor_multiplier`=1 WHERE `entry`=16184; -- old 1.1, level 60, hits 75 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 18f9fc454043a24c52f45fdb236d9cbe061af647 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 13 Nov 2023 03:09:47 +0200 Subject: [PATCH 299/426] Change creature template column order. --- sql/migrations/20231113010252_world.sql | 28 +++++++++++++++++++++++++ src/game/Database/SQLStorages.cpp | 4 ++-- src/game/Objects/CreatureDefines.h | 12 +++++------ 3 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 sql/migrations/20231113010252_world.sql diff --git a/sql/migrations/20231113010252_world.sql b/sql/migrations/20231113010252_world.sql new file mode 100644 index 00000000000..658376699a7 --- /dev/null +++ b/sql/migrations/20231113010252_world.sql @@ -0,0 +1,28 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231113010252'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231113010252'); +-- Add your query below. + + +-- Change order of creature template columns, so we don't have to scroll to see name. +ALTER TABLE `creature_template` + CHANGE COLUMN `name` `name` CHAR(100) NOT NULL DEFAULT '0' AFTER `patch`, + CHANGE COLUMN `subname` `subname` CHAR(100) NULL DEFAULT NULL AFTER `name`, + CHANGE COLUMN `level_min` `level_min` TINYINT(3) UNSIGNED NOT NULL DEFAULT '1' AFTER `subname`, + CHANGE COLUMN `level_max` `level_max` TINYINT(3) UNSIGNED NOT NULL DEFAULT '1' AFTER `level_min`, + CHANGE COLUMN `faction` `faction` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `level_max`, + CHANGE COLUMN `npc_flags` `npc_flags` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `faction`, + CHANGE COLUMN `gossip_menu_id` `gossip_menu_id` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `npc_flags`; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Database/SQLStorages.cpp b/src/game/Database/SQLStorages.cpp index a0a2ac4c271..b7df4e86528 100644 --- a/src/game/Database/SQLStorages.cpp +++ b/src/game/Database/SQLStorages.cpp @@ -24,8 +24,8 @@ #include "Database/SQLStorageImpl.h" #include "Database/DatabaseEnv.h" -char const CreatureInfosrcfmt[] = "iiiiiffffiiiiiissiiiiifffffiffffffiiiiiiiiiiiiiiiiiiiiiiiiiiiiiissiiiliiiiiiis"; -char const CreatureInfodstfmt[] = "iiiiiffffiiiiiissiiiiifffffiffffffiiiiiiiiiiiiiiiiiiiiiiiiiiiiiissiiiliiiiiiii"; +char const CreatureInfosrcfmt[] = "issiiiiiiiiiffffiiiiiifffffiffffffiiiiiiiiiiiiiiiiiiiiiiiiiiiiiissiiiliiiiiiis"; +char const CreatureInfodstfmt[] = "issiiiiiiiiiffffiiiiiifffffiffffffiiiiiiiiiiiiiiiiiiiiiiiiiiiiiissiiiliiiiiiii"; char const CreatureDataAddonInfofmt[] = "iiiibbis"; char const CreatureDisplayInfoAddonfmt[] = "iffffbi"; char const GameObjectDisplayInfoAddonfmt[] = "iffffff"; diff --git a/src/game/Objects/CreatureDefines.h b/src/game/Objects/CreatureDefines.h index a2be8437a66..424ade9acd2 100644 --- a/src/game/Objects/CreatureDefines.h +++ b/src/game/Objects/CreatureDefines.h @@ -186,18 +186,18 @@ typedef std::vector CreatureSpellsList; struct CreatureInfo { uint32 entry; - uint32 display_id[MAX_DISPLAY_IDS_PER_CREATURE]; - float display_scale[MAX_DISPLAY_IDS_PER_CREATURE]; - uint32 display_probability[MAX_DISPLAY_IDS_PER_CREATURE]; - uint32 display_total_probability; - uint32 mount_display_id; char* name; char* subname; - uint32 gossip_menu_id; uint32 level_min; uint32 level_max; uint32 faction; uint32 npc_flags; + uint32 gossip_menu_id; + uint32 display_id[MAX_DISPLAY_IDS_PER_CREATURE]; + float display_scale[MAX_DISPLAY_IDS_PER_CREATURE]; + uint32 display_probability[MAX_DISPLAY_IDS_PER_CREATURE]; + uint32 display_total_probability; + uint32 mount_display_id; float speed_walk; float speed_run; float detection_range; // Detection Range for Line of Sight aggro From d99ca982750a38b25920fa7a6ba9f01b4bd59c42 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 13 Nov 2023 04:48:06 +0200 Subject: [PATCH 300/426] Corrections to bounding radius, combat reach and gender. --- sql/migrations/20231113023934_world.sql | 2045 +++++++++++++++++++++++ 1 file changed, 2045 insertions(+) create mode 100644 sql/migrations/20231113023934_world.sql diff --git a/sql/migrations/20231113023934_world.sql b/sql/migrations/20231113023934_world.sql new file mode 100644 index 00000000000..acadbde7360 --- /dev/null +++ b/sql/migrations/20231113023934_world.sql @@ -0,0 +1,2045 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231113023934'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231113023934'); +-- Add your query below. + + +-- Correct bounding radius of creaturs based on 1.13 sniffs. +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.45 WHERE `display_id`=589; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.10298 WHERE `display_id`=711; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.45 WHERE `display_id`=836; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.05 WHERE `display_id`=837; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.05 WHERE `display_id`=839; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.2075 WHERE `display_id`=840; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.6 WHERE `display_id`=855; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.714 WHERE `display_id`=974; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3349 WHERE `display_id`=1019; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=1029; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.5 WHERE `display_id`=1061; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.15 WHERE `display_id`=1078; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=1139; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.147 WHERE `display_id`=1165; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=1354; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=1363; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=1396; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.5 WHERE `display_id`=1534; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=1683; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.75 WHERE `display_id`=1698; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=1930; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=1982; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=2034; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.1797 WHERE `display_id`=2236; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.7 WHERE `display_id`=2418; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.9747 WHERE `display_id`=2578; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.8725 WHERE `display_id`=2579; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3825 WHERE `display_id`=2582; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=2589; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.436441 WHERE `display_id`=2709; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.8404 WHERE `display_id`=2727; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.065 WHERE `display_id`=2830; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=2882; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=2885; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=2886; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=2994; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=3003; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=3224; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.15 WHERE `display_id`=3233; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=3401; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=3406; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=3451; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.394 WHERE `display_id`=3507; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=3510; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=3590; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.515 WHERE `display_id`=3731; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=4003; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=4023; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=4028; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=4029; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=4033; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=4081; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=4218; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=4225; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=4226; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=4227; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=4228; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=4229; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=4598; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4263 WHERE `display_id`=4606; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=4671; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=4672; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=4673; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=4674; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=4901; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.76395 WHERE `display_id`=4906; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.5 WHERE `display_id`=4907; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=4908; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=4909; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=4929; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.389 WHERE `display_id`=4930; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=4953; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=5093; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=5465; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.35 WHERE `display_id`=5492; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.425 WHERE `display_id`=5493; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=5577; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.2754 WHERE `display_id`=5609; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=5611; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.221 WHERE `display_id`=5685; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.807 WHERE `display_id`=5712; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=5783; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=5827; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.42 WHERE `display_id`=5865; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=5991; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.3764 WHERE `display_id`=6089; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.56 WHERE `display_id`=6102; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.522 WHERE `display_id`=6124; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=6128; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=6194; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.825 WHERE `display_id`=6213; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.35 WHERE `display_id`=6380; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.214 WHERE `display_id`=6388; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=6417; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=6418; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=6436; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=6437; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=6439; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=6441; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.0465 WHERE `display_id`=6528; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.92575 WHERE `display_id`=6529; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.2075 WHERE `display_id`=6533; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4 WHERE `display_id`=6537; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=6669; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.2448 WHERE `display_id`=6678; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.2448 WHERE `display_id`=6679; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.2754 WHERE `display_id`=6680; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.2754 WHERE `display_id`=6681; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3366 WHERE `display_id`=6682; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=6687; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3366 WHERE `display_id`=6690; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=6693; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=6695; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=6703; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.9747 WHERE `display_id`=6777; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.5 WHERE `display_id`=6842; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.5 WHERE `display_id`=6908; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=6920; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=6925; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=6957; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=6958; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=6959; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=6960; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=6961; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=6964; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=6965; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=6966; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.75 WHERE `display_id`=6977; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=7043; +UPDATE `creature_display_info_addon` SET `bounding_radius`=3 WHERE `display_id`=7271; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=7288; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.13 WHERE `display_id`=7349; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=7509; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=7750; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4164 WHERE `display_id`=7759; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=7761; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=7762; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=7765; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=7766; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=7807; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=7813; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=7819; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.5 WHERE `display_id`=7845; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.3 WHERE `display_id`=7856; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=7869; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.214 WHERE `display_id`=7872; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.2354 WHERE `display_id`=7874; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3197 WHERE `display_id`=7908; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.7 WHERE `display_id`=8270; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=8429; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.35 WHERE `display_id`=8573; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=8596; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=8629; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.5208 WHERE `display_id`=8664; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=8710; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.8675 WHERE `display_id`=8824; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.225 WHERE `display_id`=8910; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=9130; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=9292; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.525 WHERE `display_id`=9441; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.0875 WHERE `display_id`=9555; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4 WHERE `display_id`=9563; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.625 WHERE `display_id`=9581; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.6955 WHERE `display_id`=9595; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.214 WHERE `display_id`=9751; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.214 WHERE `display_id`=9752; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.5175 WHERE `display_id`=9781; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1 WHERE `display_id`=10036; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.3 WHERE `display_id`=10040; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.525 WHERE `display_id`=10054; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.334305 WHERE `display_id`=10089; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.49 WHERE `display_id`=10113; +UPDATE `creature_display_info_addon` SET `bounding_radius`=3.15 WHERE `display_id`=10133; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=10216; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10339; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.5355 WHERE `display_id`=10341; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10342; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10344; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=10347; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10349; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10355; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=10364; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=10365; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10367; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=10368; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=10369; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10391; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=10393; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3366 WHERE `display_id`=10402; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=10448; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=10450; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=10452; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=10459; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=10475; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10547; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=10553; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=10640; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10668; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=10669; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=10703; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.35 WHERE `display_id`=10719; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=10727; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=10727; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10820; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10821; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=10822; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=10823; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.3398 WHERE `display_id`=10849; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.214 WHERE `display_id`=10857; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.955 WHERE `display_id`=10889; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1 WHERE `display_id`=10928; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1 WHERE `display_id`=10929; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10930; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10931; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.65 WHERE `display_id`=10988; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=11013; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=11015; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=11016; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=11018; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=11019; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=11020; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=11021; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=11022; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=11026; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=11027; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=11028; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=11033; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.5665 WHERE `display_id`=11086; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.445 WHERE `display_id`=11092; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=11117; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=11118; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=11119; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=11120; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=11304; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=11325; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.05 WHERE `display_id`=11362; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.923 WHERE `display_id`=11370; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.696 WHERE `display_id`=11382; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1 WHERE `display_id`=11471; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=11472; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.6967 WHERE `display_id`=11551; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.6 WHERE `display_id`=11566; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.065 WHERE `display_id`=11640; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.214 WHERE `display_id`=11669; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.214 WHERE `display_id`=11672; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=11737; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4464 WHERE `display_id`=11809; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=11834; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=12066; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.78 WHERE `display_id`=12205; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.35 WHERE `display_id`=12349; +UPDATE `creature_display_info_addon` SET `bounding_radius`=3 WHERE `display_id`=12449; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=12967; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=13294; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=13295; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3817 WHERE `display_id`=13298; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13326; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.389 WHERE `display_id`=13630; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.49 WHERE `display_id`=13730; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4 WHERE `display_id`=13749; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.25 WHERE `display_id`=13869; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4524 WHERE `display_id`=14257; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.44735 WHERE `display_id`=14397; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.44735 WHERE `display_id`=14398; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=14400; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.43075 WHERE `display_id`=14505; +UPDATE `creature_display_info_addon` SET `bounding_radius`=3.81975 WHERE `display_id`=14512; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.9625 WHERE `display_id`=14517; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.6125 WHERE `display_id`=14527; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=14529; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.84 WHERE `display_id`=14552; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.84 WHERE `display_id`=14553; +UPDATE `creature_display_info_addon` SET `bounding_radius`=50 WHERE `display_id`=14567; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.935 WHERE `display_id`=14590; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.455 WHERE `display_id`=14591; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.1 WHERE `display_id`=14592; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.1 WHERE `display_id`=14593; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.1 WHERE `display_id`=14594; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.0525 WHERE `display_id`=14673; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.5 WHERE `display_id`=14674; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.5 WHERE `display_id`=14675; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.75 WHERE `display_id`=14697; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.5 WHERE `display_id`=14699; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.25 WHERE `display_id`=14703; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.525 WHERE `display_id`=14706; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=14710; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.75 WHERE `display_id`=14885; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.75 WHERE `display_id`=14886; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.75 WHERE `display_id`=14887; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.35 WHERE `display_id`=14992; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=15139; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=15228; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=15229; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.9747 WHERE `display_id`=15230; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=15232; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.612 WHERE `display_id`=15269; +UPDATE `creature_display_info_addon` SET `bounding_radius`=3 WHERE `display_id`=15301; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.63 WHERE `display_id`=15364; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.63 WHERE `display_id`=15365; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.8 WHERE `display_id`=15366; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.2625 WHERE `display_id`=15367; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.27 WHERE `display_id`=15381; +UPDATE `creature_display_info_addon` SET `bounding_radius`=7.5 WHERE `display_id`=15509; +UPDATE `creature_display_info_addon` SET `bounding_radius`=5 WHERE `display_id`=15555; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=15571; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4164 WHERE `display_id`=15600; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4668 WHERE `display_id`=15601; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=15602; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.16964 WHERE `display_id`=15604; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=15605; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.047 WHERE `display_id`=15608; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.16964 WHERE `display_id`=15609; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4668 WHERE `display_id`=15610; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4164 WHERE `display_id`=15611; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.16964 WHERE `display_id`=15613; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.16964 WHERE `display_id`=15615; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4164 WHERE `display_id`=15617; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.047 WHERE `display_id`=15619; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=15623; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4668 WHERE `display_id`=15624; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4164 WHERE `display_id`=15626; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.047 WHERE `display_id`=15628; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=15629; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4164 WHERE `display_id`=15630; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.047 WHERE `display_id`=15631; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4164 WHERE `display_id`=15632; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.047 WHERE `display_id`=15633; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4668 WHERE `display_id`=15634; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.16964 WHERE `display_id`=15635; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4668 WHERE `display_id`=15638; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=15639; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=15640; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.16964 WHERE `display_id`=15642; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.16964 WHERE `display_id`=15644; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.047 WHERE `display_id`=15645; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.14076 WHERE `display_id`=15660; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.14076 WHERE `display_id`=15663; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.175 WHERE `display_id`=15671; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.25 WHERE `display_id`=15684; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=15701; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=15713; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=15733; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.96 WHERE `display_id`=15788; +UPDATE `creature_display_info_addon` SET `bounding_radius`=3.075 WHERE `display_id`=15789; +UPDATE `creature_display_info_addon` SET `bounding_radius`=12.3 WHERE `display_id`=15790; +UPDATE `creature_display_info_addon` SET `bounding_radius`=12.3 WHERE `display_id`=15793; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.25 WHERE `display_id`=15878; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.05 WHERE `display_id`=15881; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3 WHERE `display_id`=15900; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.35 WHERE `display_id`=15903; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.5 WHERE `display_id`=15928; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.5 WHERE `display_id`=15931; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.87 WHERE `display_id`=15937; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.431 WHERE `display_id`=15938; +UPDATE `creature_display_info_addon` SET `bounding_radius`=3.74 WHERE `display_id`=15939; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3536 WHERE `display_id`=15940; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.75 WHERE `display_id`=15941; +UPDATE `creature_display_info_addon` SET `bounding_radius`=4 WHERE `display_id`=15945; +UPDATE `creature_display_info_addon` SET `bounding_radius`=3.84 WHERE `display_id`=15948; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1 WHERE `display_id`=15958; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=15961; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.765 WHERE `display_id`=15964; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=15968; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.455 WHERE `display_id`=15974; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.923 WHERE `display_id`=15975; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.07217 WHERE `display_id`=15976; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=15977; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.75 WHERE `display_id`=15978; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=15981; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2 WHERE `display_id`=16011; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.77 WHERE `display_id`=16033; +UPDATE `creature_display_info_addon` SET `bounding_radius`=3.3 WHERE `display_id`=16035; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=16064; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=16082; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=16096; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16105; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2 WHERE `display_id`=16110; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=16111; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16129; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16130; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16131; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16132; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1 WHERE `display_id`=16135; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1 WHERE `display_id`=16136; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.7 WHERE `display_id`=16137; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=16139; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16151; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=16153; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=16154; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=16155; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.389 WHERE `display_id`=16158; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4896 WHERE `display_id`=16160; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3328 WHERE `display_id`=16161; +UPDATE `creature_display_info_addon` SET `bounding_radius`=4.5 WHERE `display_id`=16164; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.175 WHERE `display_id`=16167; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=16168; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.25 WHERE `display_id`=16169; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.4 WHERE `display_id`=16170; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2 WHERE `display_id`=16174; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.75 WHERE `display_id`=16175; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.25 WHERE `display_id`=16178; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16179; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.459 WHERE `display_id`=16180; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1 WHERE `display_id`=16197; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16204; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.65 WHERE `display_id`=16205; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16212; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=16218; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=16219; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=16220; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=16221; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16229; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=16230; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=16231; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=16232; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16233; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16234; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=16235; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=16236; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=16237; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=16238; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=16239; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=16240; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.93 WHERE `display_id`=16279; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.93 WHERE `display_id`=16309; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=16326; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=16327; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=16328; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=16329; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16336; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16337; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.6 WHERE `display_id`=16360; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.5355 WHERE `display_id`=16508; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.5355 WHERE `display_id`=16513; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3978 WHERE `display_id`=16528; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4511 WHERE `display_id`=16533; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4979 WHERE `display_id`=16534; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.5355 WHERE `display_id`=16539; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.612 WHERE `display_id`=16582; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.25 WHERE `display_id`=16586; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.612 WHERE `display_id`=16590; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=16594; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=16598; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=16603; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=16605; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16608; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16609; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.459 WHERE `display_id`=16611; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.459 WHERE `display_id`=16612; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.459 WHERE `display_id`=16614; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.375 WHERE `display_id`=16622; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=16916; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4979 WHERE `display_id`=16927; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.525 WHERE `display_id`=16937; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=17404; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=17405; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.5 WHERE `display_id`=17548; + +-- Correct bounding radius of creaturs based on 1.14 sniffs. +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.7 WHERE `display_id`=479; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.6945 WHERE `display_id`=549; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.9 WHERE `display_id`=892; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.602685 WHERE `display_id`=1034; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.564407 WHERE `display_id`=1742; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.21 WHERE `display_id`=3212; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=3231; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=3932; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.85 WHERE `display_id`=4480; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.389 WHERE `display_id`=4599; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.7 WHERE `display_id`=4869; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=4937; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672 WHERE `display_id`=5625; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=5965; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.522 WHERE `display_id`=6117; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=6962; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.2 WHERE `display_id`=7269; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1 WHERE `display_id`=7270; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=7311; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=7336; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=8594; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=8702; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.764 WHERE `display_id`=8870; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.389 WHERE `display_id`=9026; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.625 WHERE `display_id`=9489; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.60725 WHERE `display_id`=9591; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.6 WHERE `display_id`=10042; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.3515 WHERE `display_id`=10114; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10247; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10348; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10366; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10370; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10371; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=10372; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=10373; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.2184 WHERE `display_id`=10432; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=10443; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.8 WHERE `display_id`=10612; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.06 WHERE `display_id`=10802; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=11014; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=11017; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=11023; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=11025; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=11308; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.9 WHERE `display_id`=11341; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.35 WHERE `display_id`=11532; +UPDATE `creature_display_info_addon` SET `bounding_radius`=2.2325 WHERE `display_id`=11570; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.6929 WHERE `display_id`=11730; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=12069; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=12070; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=12071; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=12072; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=12081; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=12082; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.9747 WHERE `display_id`=12083; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.8725 WHERE `display_id`=12084; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.5 WHERE `display_id`=12336; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=13229; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=13230; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=13231; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=13232; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13249; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13250; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13251; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13252; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13254; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13255; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13256; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13257; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13266; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13267; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13268; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13269; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13270; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13271; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13272; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13273; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=13286; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=13287; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=13288; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=13289; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=13290; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=13291; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=13292; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=13293; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=13296; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=13297; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=13301; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=13302; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.9747 WHERE `display_id`=13303; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.8725 WHERE `display_id`=13304; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=13306; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=13307; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.9747 WHERE `display_id`=13308; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.8725 WHERE `display_id`=13309; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13351; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13352; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13353; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13354; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=13357; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=13358; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=13359; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=13360; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=13365; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=13366; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.9747 WHERE `display_id`=13367; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.8725 WHERE `display_id`=13368; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13371; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13372; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13373; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13374; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=13375; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=13376; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=13377; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=13378; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13379; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13380; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13381; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13382; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=13411; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=13412; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=13413; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=13414; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13533; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13534; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=13544; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=13546; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13547; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=13548; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=13549; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=13550; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=13557; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=13558; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=13559; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=13560; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=13561; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=13563; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=13564; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.9747 WHERE `display_id`=13565; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.8725 WHERE `display_id`=13566; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.372 WHERE `display_id`=13567; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=13568; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.9747 WHERE `display_id`=13569; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.8725 WHERE `display_id`=13570; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13632; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13633; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.389 WHERE `display_id`=13634; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=13635; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13636; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13637; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.389 WHERE `display_id`=13638; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=13639; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13640; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13641; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.389 WHERE `display_id`=13642; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=13643; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=13775; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13789; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13790; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13791; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13792; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13803; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13804; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13805; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=13806; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=13889; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=13890; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=13893; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.208 WHERE `display_id`=13894; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.2568 WHERE `display_id`=14394; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.67475 WHERE `display_id`=14514; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1.05 WHERE `display_id`=14884; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347 WHERE `display_id`=15448; +UPDATE `creature_display_info_addon` SET `bounding_radius`=7.965 WHERE `display_id`=15452; +UPDATE `creature_display_info_addon` SET `bounding_radius`=8.15 WHERE `display_id`=15576; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4164 WHERE `display_id`=15622; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4164 WHERE `display_id`=15637; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4164 WHERE `display_id`=15641; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.236 WHERE `display_id`=15810; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.9747 WHERE `display_id`=15817; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3519 WHERE `display_id`=15994; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306 WHERE `display_id`=16102; +UPDATE `creature_display_info_addon` SET `bounding_radius`=1 WHERE `display_id`=16357; + +-- Correct combat reach of creatures based on 1.13 sniffs. +UPDATE `creature_display_info_addon` SET `combat_reach`=10 WHERE `display_id`=589; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.35508 WHERE `display_id`=598; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.884746 WHERE `display_id`=711; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=836; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.25 WHERE `display_id`=837; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.25 WHERE `display_id`=839; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.4375 WHERE `display_id`=840; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.5 WHERE `display_id`=855; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=974; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.275 WHERE `display_id`=1019; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.09322 WHERE `display_id`=1034; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=1061; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=1078; +UPDATE `creature_display_info_addon` SET `combat_reach`=3 WHERE `display_id`=1165; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=1354; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=1363; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=1396; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=1534; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=1683; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.875 WHERE `display_id`=1698; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=1930; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=1982; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=2034; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.375 WHERE `display_id`=2236; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.7 WHERE `display_id`=2418; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.05 WHERE `display_id`=2578; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.75 WHERE `display_id`=2579; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.875 WHERE `display_id`=2582; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=2589; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.30932 WHERE `display_id`=2709; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.65 WHERE `display_id`=2727; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=2830; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=2882; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=2886; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=2994; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=3003; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=3224; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=3233; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=3401; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=3406; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=3451; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=3507; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.75 WHERE `display_id`=3731; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=4003; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=4028; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=4029; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=4033; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=4081; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=4227; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=4598; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.05 WHERE `display_id`=4606; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=4671; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=4901; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.1 WHERE `display_id`=4906; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=4907; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=4908; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=4909; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=4929; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=4930; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=4953; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=5093; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=5465; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.05 WHERE `display_id`=5492; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.275 WHERE `display_id`=5493; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.35 WHERE `display_id`=5609; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=5611; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=5685; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.9 WHERE `display_id`=5712; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=5783; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.2 WHERE `display_id`=5865; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=5991; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.6 WHERE `display_id`=6089; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.4 WHERE `display_id`=6102; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=6124; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5625 WHERE `display_id`=6213; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=6380; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=6417; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=6436; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=6437; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=6439; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=6441; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.95 WHERE `display_id`=6528; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=6529; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=6533; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.8 WHERE `display_id`=6537; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=6669; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.2 WHERE `display_id`=6678; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.2 WHERE `display_id`=6679; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.35 WHERE `display_id`=6680; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.35 WHERE `display_id`=6681; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.65 WHERE `display_id`=6682; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=6687; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.65 WHERE `display_id`=6690; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=6693; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=6695; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=6703; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.05 WHERE `display_id`=6777; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.625 WHERE `display_id`=6842; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=6908; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=6920; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=6957; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=6959; +UPDATE `creature_display_info_addon` SET `combat_reach`=1 WHERE `display_id`=6977; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=7043; +UPDATE `creature_display_info_addon` SET `combat_reach`=15 WHERE `display_id`=7271; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=7288; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.625 WHERE `display_id`=7349; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=7509; +UPDATE `creature_display_info_addon` SET `combat_reach`=2 WHERE `display_id`=7536; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=7750; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=7759; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=7761; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=7765; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=7807; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=7819; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.125 WHERE `display_id`=7845; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.95 WHERE `display_id`=7856; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=7869; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.65 WHERE `display_id`=7874; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.4375 WHERE `display_id`=7908; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.7 WHERE `display_id`=8270; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=8429; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=8573; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=8596; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=8629; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.1 WHERE `display_id`=8664; +UPDATE `creature_display_info_addon` SET `combat_reach`=5 WHERE `display_id`=8824; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.940678 WHERE `display_id`=8843; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.225 WHERE `display_id`=8910; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=9130; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=9441; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.5 WHERE `display_id`=9563; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.0625 WHERE `display_id`=9581; +UPDATE `creature_display_info_addon` SET `combat_reach`=5.625 WHERE `display_id`=9595; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.4375 WHERE `display_id`=9781; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10036; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.6 WHERE `display_id`=10040; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=10054; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.63875 WHERE `display_id`=10089; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.1 WHERE `display_id`=10113; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.75 WHERE `display_id`=10133; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=10216; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10339; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.625 WHERE `display_id`=10341; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10342; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10344; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10349; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10355; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10391; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.65 WHERE `display_id`=10402; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10448; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=10452; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10459; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10475; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10547; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10553; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10668; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=10669; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=10703; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10719; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10820; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.3 WHERE `display_id`=10849; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=10889; +UPDATE `creature_display_info_addon` SET `combat_reach`=1 WHERE `display_id`=10928; +UPDATE `creature_display_info_addon` SET `combat_reach`=1 WHERE `display_id`=10929; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10930; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10931; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.3 WHERE `display_id`=10988; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=11013; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=11021; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=11027; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=11028; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=11033; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.175 WHERE `display_id`=11086; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=11092; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=11117; +UPDATE `creature_display_info_addon` SET `combat_reach`=7.5 WHERE `display_id`=11362; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.625 WHERE `display_id`=11370; +UPDATE `creature_display_info_addon` SET `combat_reach`=3 WHERE `display_id`=11382; +UPDATE `creature_display_info_addon` SET `combat_reach`=1 WHERE `display_id`=11471; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.85 WHERE `display_id`=11551; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.4 WHERE `display_id`=11566; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.875 WHERE `display_id`=11640; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=11737; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=11809; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.95 WHERE `display_id`=12205; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=12349; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=12434; +UPDATE `creature_display_info_addon` SET `combat_reach`=5.25 WHERE `display_id`=12449; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=12967; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13294; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.65 WHERE `display_id`=13298; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13326; +UPDATE `creature_display_info_addon` SET `combat_reach`=3 WHERE `display_id`=13644; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.5 WHERE `display_id`=13730; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.2 WHERE `display_id`=13749; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=13869; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.625 WHERE `display_id`=14257; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=14397; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=14398; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=14400; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.625 WHERE `display_id`=14505; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.125 WHERE `display_id`=14512; +UPDATE `creature_display_info_addon` SET `combat_reach`=6.875 WHERE `display_id`=14517; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.375 WHERE `display_id`=14527; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=14529; +UPDATE `creature_display_info_addon` SET `combat_reach`=5 WHERE `display_id`=14552; +UPDATE `creature_display_info_addon` SET `combat_reach`=5 WHERE `display_id`=14553; +UPDATE `creature_display_info_addon` SET `combat_reach`=3 WHERE `display_id`=14556; +UPDATE `creature_display_info_addon` SET `combat_reach`=25 WHERE `display_id`=14567; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.75 WHERE `display_id`=14590; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.95 WHERE `display_id`=14591; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.65 WHERE `display_id`=14592; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.65 WHERE `display_id`=14593; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.65 WHERE `display_id`=14594; +UPDATE `creature_display_info_addon` SET `combat_reach`=1 WHERE `display_id`=14673; +UPDATE `creature_display_info_addon` SET `combat_reach`=1 WHERE `display_id`=14674; +UPDATE `creature_display_info_addon` SET `combat_reach`=1 WHERE `display_id`=14675; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.875 WHERE `display_id`=14697; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.75 WHERE `display_id`=14699; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.25 WHERE `display_id`=14703; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=14706; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=14710; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.5 WHERE `display_id`=14885; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.5 WHERE `display_id`=14887; +UPDATE `creature_display_info_addon` SET `combat_reach`=20 WHERE `display_id`=14992; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=15139; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=15228; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.05 WHERE `display_id`=15230; +UPDATE `creature_display_info_addon` SET `combat_reach`=3 WHERE `display_id`=15269; +UPDATE `creature_display_info_addon` SET `combat_reach`=6 WHERE `display_id`=15301; +UPDATE `creature_display_info_addon` SET `combat_reach`=18 WHERE `display_id`=15364; +UPDATE `creature_display_info_addon` SET `combat_reach`=18 WHERE `display_id`=15365; +UPDATE `creature_display_info_addon` SET `combat_reach`=18 WHERE `display_id`=15366; +UPDATE `creature_display_info_addon` SET `combat_reach`=7.5 WHERE `display_id`=15367; +UPDATE `creature_display_info_addon` SET `combat_reach`=5 WHERE `display_id`=15381; +UPDATE `creature_display_info_addon` SET `combat_reach`=18.75 WHERE `display_id`=15509; +UPDATE `creature_display_info_addon` SET `combat_reach`=25 WHERE `display_id`=15555; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=15571; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15600; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15601; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15602; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.86 WHERE `display_id`=15604; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15605; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.5 WHERE `display_id`=15608; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.86 WHERE `display_id`=15609; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15610; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15611; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.86 WHERE `display_id`=15613; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.86 WHERE `display_id`=15615; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15617; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.5 WHERE `display_id`=15619; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15623; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15624; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15626; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.5 WHERE `display_id`=15628; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15629; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15630; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.5 WHERE `display_id`=15631; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15632; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.5 WHERE `display_id`=15633; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15634; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.86 WHERE `display_id`=15635; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15638; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15639; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15640; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.86 WHERE `display_id`=15642; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.86 WHERE `display_id`=15644; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.5 WHERE `display_id`=15645; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.69 WHERE `display_id`=15660; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.69 WHERE `display_id`=15663; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.25 WHERE `display_id`=15671; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.375 WHERE `display_id`=15684; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.5 WHERE `display_id`=15788; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.75 WHERE `display_id`=15789; +UPDATE `creature_display_info_addon` SET `combat_reach`=15 WHERE `display_id`=15790; +UPDATE `creature_display_info_addon` SET `combat_reach`=15 WHERE `display_id`=15793; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.875 WHERE `display_id`=15878; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.5 WHERE `display_id`=15881; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=15882; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=15900; +UPDATE `creature_display_info_addon` SET `combat_reach`=25 WHERE `display_id`=15928; +UPDATE `creature_display_info_addon` SET `combat_reach`=10 WHERE `display_id`=15931; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=15937; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.95 WHERE `display_id`=15938; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.55 WHERE `display_id`=15940; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.1875 WHERE `display_id`=15941; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.5 WHERE `display_id`=15942; +UPDATE `creature_display_info_addon` SET `combat_reach`=6 WHERE `display_id`=15945; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.5 WHERE `display_id`=15961; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=15968; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.95 WHERE `display_id`=15974; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.625 WHERE `display_id`=15975; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.455 WHERE `display_id`=15976; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=15981; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=16011; +UPDATE `creature_display_info_addon` SET `combat_reach`=22 WHERE `display_id`=16033; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.3 WHERE `display_id`=16035; +UPDATE `creature_display_info_addon` SET `combat_reach`=12 WHERE `display_id`=16064; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16082; +UPDATE `creature_display_info_addon` SET `combat_reach`=6 WHERE `display_id`=16110; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16129; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16131; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16132; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=16135; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=16136; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=16139; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16151; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=16153; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=16154; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=16155; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16158; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.4 WHERE `display_id`=16160; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.4 WHERE `display_id`=16161; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.5 WHERE `display_id`=16164; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.1875 WHERE `display_id`=16167; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.875 WHERE `display_id`=16169; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=16170; +UPDATE `creature_display_info_addon` SET `combat_reach`=6 WHERE `display_id`=16174; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.875 WHERE `display_id`=16175; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.125 WHERE `display_id`=16178; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=16180; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16204; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.65 WHERE `display_id`=16205; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16212; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=16213; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16218; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16219; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16220; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16221; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16229; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16235; +UPDATE `creature_display_info_addon` SET `combat_reach`=7.5 WHERE `display_id`=16279; +UPDATE `creature_display_info_addon` SET `combat_reach`=7.5 WHERE `display_id`=16309; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=16326; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=16327; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=16328; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=16329; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16336; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16337; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=16360; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.625 WHERE `display_id`=16508; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.625 WHERE `display_id`=16513; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.95 WHERE `display_id`=16528; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.95 WHERE `display_id`=16533; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.95 WHERE `display_id`=16534; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.625 WHERE `display_id`=16539; +UPDATE `creature_display_info_addon` SET `combat_reach`=5 WHERE `display_id`=16586; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=16594; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=16598; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=16603; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=16605; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16608; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=16611; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=16614; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.75 WHERE `display_id`=16622; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.95 WHERE `display_id`=16927; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=16937; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=17404; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=17405; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=17548; + +-- Correct combat reach of creatures based on 1.14 sniffs. +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=479; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.75 WHERE `display_id`=549; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.564407 WHERE `display_id`=1742; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.95 WHERE `display_id`=3212; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=3231; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.0625 WHERE `display_id`=4480; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=4599; +UPDATE `creature_display_info_addon` SET `combat_reach`=0.7 WHERE `display_id`=4869; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=4937; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=5625; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=5965; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=6117; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.4 WHERE `display_id`=7269; +UPDATE `creature_display_info_addon` SET `combat_reach`=2 WHERE `display_id`=7270; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.25 WHERE `display_id`=7336; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=8594; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=8870; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=9026; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.0625 WHERE `display_id`=9489; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.5 WHERE `display_id`=9591; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.2 WHERE `display_id`=10042; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.55 WHERE `display_id`=10114; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10247; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10366; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10370; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.575 WHERE `display_id`=10432; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=10443; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.4 WHERE `display_id`=10612; +UPDATE `creature_display_info_addon` SET `combat_reach`=3 WHERE `display_id`=10802; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=11017; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=11025; +UPDATE `creature_display_info_addon` SET `combat_reach`=2.5 WHERE `display_id`=11341; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.525 WHERE `display_id`=11532; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.95 WHERE `display_id`=11730; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=12069; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=12081; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.05 WHERE `display_id`=12083; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.75 WHERE `display_id`=12084; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=12336; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13229; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13249; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13251; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13252; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13254; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13256; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13257; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13266; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13268; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13269; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13270; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13272; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13273; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13286; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13290; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13301; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.05 WHERE `display_id`=13303; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.75 WHERE `display_id`=13304; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13306; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.05 WHERE `display_id`=13308; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13351; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13353; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13354; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13357; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13365; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.05 WHERE `display_id`=13367; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.75 WHERE `display_id`=13368; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13371; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13373; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13374; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13375; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13379; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13381; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13382; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13411; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13533; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13534; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13544; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13547; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=13549; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13558; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13563; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13564; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.05 WHERE `display_id`=13565; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.75 WHERE `display_id`=13566; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13567; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.05 WHERE `display_id`=13569; +UPDATE `creature_display_info_addon` SET `combat_reach`=3.75 WHERE `display_id`=13570; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13632; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13636; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13640; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13789; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13803; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13889; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=13893; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=14394; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.125 WHERE `display_id`=14514; +UPDATE `creature_display_info_addon` SET `combat_reach`=7.5 WHERE `display_id`=14884; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=15448; +UPDATE `creature_display_info_addon` SET `combat_reach`=6.75 WHERE `display_id`=15452; +UPDATE `creature_display_info_addon` SET `combat_reach`=7.5 WHERE `display_id`=15576; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15622; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15637; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.8 WHERE `display_id`=15641; +UPDATE `creature_display_info_addon` SET `combat_reach`=4.05 WHERE `display_id`=15817; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.725 WHERE `display_id`=15994; +UPDATE `creature_display_info_addon` SET `combat_reach`=1.5 WHERE `display_id`=16102; +UPDATE `creature_display_info_addon` SET `combat_reach`=0 WHERE `display_id`=16357; + +-- Correct gender of creatures based on 1.13 sniffs. +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=26; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=89; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=139; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=143; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=150; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=152; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=159; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=160; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=163; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=170; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=172; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=184; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=196; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=202; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=203; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=221; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=240; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=251; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=252; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=257; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=262; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=275; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=308; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=310; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=314; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=317; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=326; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=338; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=341; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=344; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=346; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=355; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=363; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=365; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=371; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=373; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=374; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=386; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=391; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=415; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=416; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=441; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=448; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=467; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=478; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=486; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=487; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=506; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=511; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=517; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=522; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=523; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=524; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=527; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=536; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=540; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=556; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=564; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=574; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=597; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=606; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=610; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=611; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=616; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=617; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=628; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=637; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=652; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=655; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=657; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=716; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=721; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=722; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=723; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=726; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=729; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=730; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=736; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=757; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=763; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=764; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=774; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=790; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=792; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=793; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=794; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=796; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=797; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=809; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=820; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=830; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=837; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=838; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=839; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=840; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=843; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=844; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=845; +UPDATE `creature_display_info_addon` SET `gender`=2 WHERE `display_id`=870; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=876; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=913; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=915; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=929; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=931; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=950; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=974; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=976; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=983; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=990; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1005; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1010; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1013; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1045; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1050; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1051; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1052; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1054; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1078; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1079; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1098; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1120; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1122; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1150; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=1165; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1194; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1218; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1233; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1252; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1253; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1254; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=1255; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1258; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1274; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1279; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1305; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1343; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1346; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1349; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=1350; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=1351; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=1352; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=1643; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1698; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1773; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1902; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1912; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1917; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=1933; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1934; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1947; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1963; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1964; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1967; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1973; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1977; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1991; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1992; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1994; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=1995; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2002; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2007; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2010; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2011; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2012; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2013; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2014; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2017; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2018; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2019; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2020; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2021; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=2143; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2153; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2161; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=2162; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=2163; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=2166; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=2240; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2281; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2286; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2290; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2292; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2293; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=2295; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=2296; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2299; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2313; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2346; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2367; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2432; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2438; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2441; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2444; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2528; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2554; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2562; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2564; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2597; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2678; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2680; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2687; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=2721; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=2722; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=2723; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2725; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2727; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2736; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=2737; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2784; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2785; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2786; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2830; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=2834; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2875; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2876; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2878; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2879; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=2880; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=3012; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=3021; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=3022; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3140; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3141; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3186; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3188; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3189; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3190; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3193; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3206; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3207; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3208; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3209; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3216; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=3218; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3220; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3250; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=3293; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=3322; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=3339; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3347; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=3349; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3365; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3617; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3618; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3619; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3622; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3624; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3634; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3640; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3643; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3646; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3647; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3658; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3694; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3696; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3708; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=3940; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4036; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4088; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4162; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4244; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4245; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4349; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4424; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4426; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4427; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4429; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4449; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4453; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4494; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4583; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4642; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4643; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4644; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4647; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4652; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4678; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4680; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4681; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4682; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4688; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4691; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4731; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4745; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4751; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4758; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4762; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4763; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4765; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4806; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4837; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4840; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4859; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4860; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4871; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4874; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4875; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4905; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4910; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4913; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4914; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4915; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4920; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4922; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4923; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4945; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4972; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4973; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4976; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4978; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4979; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4980; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4981; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4982; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4983; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5025; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=5029; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5207; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=5233; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5243; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5244; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5286; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5293; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5294; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5685; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=5765; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5782; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5785; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5786; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5814; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5821; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5865; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5866; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5945; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=5988; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6077; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6078; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6079; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6080; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6084; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6088; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6089; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6090; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6091; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6093; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6094; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6095; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6096; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6097; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6098; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6099; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6100; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6101; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6102; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6103; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6104; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6105; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6106; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6108; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6109; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6110; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6111; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6112; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6113; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6114; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6115; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6116; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6124; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6168; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6170; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6190; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6191; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6192; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6213; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6214; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6380; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6388; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6444; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6448; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6468; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6469; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6472; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6473; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6508; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6528; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6529; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6533; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6546; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6547; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6548; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6549; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6574; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6589; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6630; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6631; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6692; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6704; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6705; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6741; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6743; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6747; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6748; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6749; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6750; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6760; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6761; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6762; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6763; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6767; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6779; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6782; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6786; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6812; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6813; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6814; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=6815; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6978; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6979; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6980; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6994; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=7010; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=7268; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=7390; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=7536; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=7552; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=7604; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=7649; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=7709; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=7803; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=7846; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=7863; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=7869; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=7872; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=7873; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=7874; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=7919; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=7922; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=7923; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=7935; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=7971; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=7974; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=8013; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=8055; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=8129; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=8249; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=8309; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=8310; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=8312; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=8313; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=8314; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=8316; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=8329; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=8390; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=8575; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=8598; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=8611; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=8711; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=8844; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9134; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9135; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9149; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9282; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9334; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9342; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9409; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9410; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9411; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9412; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9414; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9415; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9416; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9417; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9418; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9419; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9420; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9421; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9422; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9423; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9424; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9425; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9426; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9427; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9428; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9429; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9430; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9431; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9432; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9433; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9434; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9435; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9436; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9438; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9439; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9440; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9441; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9442; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9443; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9445; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9446; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9447; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9448; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9531; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9532; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9533; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9534; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9581; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9751; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9752; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9753; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9754; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9781; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9952; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9953; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9954; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9956; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=9958; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10032; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10034; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10035; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10036; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10039; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10043; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10054; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10094; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10113; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10115; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10116; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10133; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10169; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10170; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10191; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10193; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10196; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10199; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10269; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10275; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10282; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10285; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10318; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10364; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10365; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10379; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10381; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10382; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10433; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10445; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10450; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10543; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10579; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10618; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10642; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10643; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10690; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10691; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10702; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10704; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10707; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10709; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10714; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10723; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10729; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10731; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10733; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10751; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10752; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10790; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10791; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10795; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10812; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10815; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10817; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10857; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10869; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10870; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10871; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10872; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10873; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10874; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10875; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10876; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10877; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10878; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10911; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10912; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10913; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10920; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10921; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10923; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10924; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10925; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10926; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10927; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10928; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10929; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10936; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10938; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10943; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10944; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10945; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10946; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10957; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=10994; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11069; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11121; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11157; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11161; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11163; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11164; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11165; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11166; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11179; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11180; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11181; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11253; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11254; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11255; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11257; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11258; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11259; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11261; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11263; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11264; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11265; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11266; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11267; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11268; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11269; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11271; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11293; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11296; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11301; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11307; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11331; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11332; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11333; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11334; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11335; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11336; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11337; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11338; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11339; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11340; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11344; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11345; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11346; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11354; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11357; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11358; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11370; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11380; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11381; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11382; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11383; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11384; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11385; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11386; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11394; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11423; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11444; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11445; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11446; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11460; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11513; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11533; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11536; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11537; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11538; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11539; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11542; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11543; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11544; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11545; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11546; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11548; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11549; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11550; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11551; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11552; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11553; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11554; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11556; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11557; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11558; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11559; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11560; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11561; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11562; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11563; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11564; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11565; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11566; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11567; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11568; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11569; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11571; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11572; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11573; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11574; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11576; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11577; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11578; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11579; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11581; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11582; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11583; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11584; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11585; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11609; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11610; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11611; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11638; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11639; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11640; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11650; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11651; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11652; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11653; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11655; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11658; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11661; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11668; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11669; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11671; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11672; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11714; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11824; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11906; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11907; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11997; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12002; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12003; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12029; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12030; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12031; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12033; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12040; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=12043; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12045; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12050; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=12064; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12168; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12189; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12190; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=12271; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=12292; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12330; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12332; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12334; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=12337; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12350; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12369; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12370; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12371; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12372; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12373; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12374; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12449; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12471; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12472; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12473; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12812; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12813; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=12892; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=12893; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=12894; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=13029; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=13030; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=13031; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=13032; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=13093; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=13130; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=13132; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=13150; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=13169; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=13644; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=13672; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=13715; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=13992; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14308; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14331; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14332; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14339; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14342; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14344; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14346; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14347; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14352; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14355; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=14378; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14380; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14401; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14402; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14403; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14406; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14416; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14423; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=14425; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14544; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14555; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14556; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14576; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14589; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14591; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=14616; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14632; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14673; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14697; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14832; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14885; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14886; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14887; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14888; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14889; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14994; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15147; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15148; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15173; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15175; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15184; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15186; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15193; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15195; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15271; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15302; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15303; +UPDATE `creature_display_info_addon` SET `gender`=2 WHERE `display_id`=15359; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15363; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15365; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15366; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15367; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=15412; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15413; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15414; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15473; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15500; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=15551; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15552; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15561; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15573; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15579; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15684; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15713; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15745; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15747; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15748; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15749; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15751; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15752; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15753; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15754; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15761; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15778; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15815; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15816; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15879; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15903; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15904; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=15928; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15931; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15945; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=15974; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15975; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15985; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15990; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15992; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16063; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16137; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16139; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16154; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16155; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16164; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16197; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16279; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16309; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16326; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=16327; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16328; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16329; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16360; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16414; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16431; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16436; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16586; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=17251; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=17548; + +-- Correct gender of creatures based on 1.14 sniffs. +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=127; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=892; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=4480; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=4912; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=6117; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=7269; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=7270; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=7311; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=7336; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=8315; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9444; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=9489; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=10114; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11260; +UPDATE `creature_display_info_addon` SET `gender`=1 WHERE `display_id`=11262; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11341; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11532; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=11570; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=14394; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15562; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16357; +UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16358; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 79a676775b7a7205824e33c843f3f901962714a2 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 13 Nov 2023 05:03:41 +0200 Subject: [PATCH 301/426] A few more corrections. --- sql/migrations/20231113023934_world.sql | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/sql/migrations/20231113023934_world.sql b/sql/migrations/20231113023934_world.sql index acadbde7360..bdac91e2c48 100644 --- a/sql/migrations/20231113023934_world.sql +++ b/sql/migrations/20231113023934_world.sql @@ -2036,6 +2036,21 @@ UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=15562; UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16357; UPDATE `creature_display_info_addon` SET `gender`=0 WHERE `display_id`=16358; +-- More updates based on 1.13 sniffs. +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.347, `combat_reach`=1.5, `gender`=0 WHERE `display_id`=5648; +UPDATE `creature_display_info_addon` SET `bounding_radius`=3.75, `combat_reach`=3.75, `gender`=2 WHERE `display_id`=7690; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306, `combat_reach`=1.5, `gender`=0 WHERE `display_id`=10545; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306, `combat_reach`=1.5, `gender`=0 WHERE `display_id`=15415; +UPDATE `creature_display_info_addon` SET `bounding_radius`=3, `combat_reach`=4.5, `gender`=2 WHERE `display_id`=15654; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.459, `combat_reach`=2.25, `gender`=0 WHERE `display_id`=15732; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.3672, `combat_reach`=1.8, `gender`=0 WHERE `display_id`=15737; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.6, `combat_reach`=0, `gender`=1 WHERE `display_id`=16361; + +-- More updates based on 1.14 sniffs. +UPDATE `creature_display_info_addon` SET `bounding_radius`=2, `combat_reach`=20, `gender`=2 WHERE `display_id`=15474; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.4164, `combat_reach`=1.8, `gender`=0 WHERE `display_id`=15735; +UPDATE `creature_display_info_addon` SET `bounding_radius`=0.306, `combat_reach`=1.5, `gender`=0 WHERE `display_id`=16023; + -- End of migration. END IF; From e788866262fdd81d48f5727cf8b54d1445dd50b6 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 13 Nov 2023 05:06:07 +0200 Subject: [PATCH 302/426] Typo. --- sql/migrations/20231113023934_world.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/migrations/20231113023934_world.sql b/sql/migrations/20231113023934_world.sql index bdac91e2c48..978c30f8196 100644 --- a/sql/migrations/20231113023934_world.sql +++ b/sql/migrations/20231113023934_world.sql @@ -9,7 +9,7 @@ INSERT INTO `migrations` VALUES ('20231113023934'); -- Add your query below. --- Correct bounding radius of creaturs based on 1.13 sniffs. +-- Correct bounding radius of creatures based on 1.13 sniffs. UPDATE `creature_display_info_addon` SET `bounding_radius`=1.45 WHERE `display_id`=589; UPDATE `creature_display_info_addon` SET `bounding_radius`=1.10298 WHERE `display_id`=711; UPDATE `creature_display_info_addon` SET `bounding_radius`=0.45 WHERE `display_id`=836; @@ -468,7 +468,7 @@ UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_ UPDATE `creature_display_info_addon` SET `bounding_radius`=0.383 WHERE `display_id`=17405; UPDATE `creature_display_info_addon` SET `bounding_radius`=0.5 WHERE `display_id`=17548; --- Correct bounding radius of creaturs based on 1.14 sniffs. +-- Correct bounding radius of creatures based on 1.14 sniffs. UPDATE `creature_display_info_addon` SET `bounding_radius`=1.7 WHERE `display_id`=479; UPDATE `creature_display_info_addon` SET `bounding_radius`=0.6945 WHERE `display_id`=549; UPDATE `creature_display_info_addon` SET `bounding_radius`=0.9 WHERE `display_id`=892; From f5a4f3c56056b34659fe16137ddd97175eab2b78 Mon Sep 17 00:00:00 2001 From: Michael Serajnik Date: Mon, 13 Nov 2023 05:03:41 +0100 Subject: [PATCH 303/426] Fix grammar mistake in Hallowed Scroll item text. (#2178) --- sql/migrations/20230825224123_world.sql | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 sql/migrations/20230825224123_world.sql diff --git a/sql/migrations/20230825224123_world.sql b/sql/migrations/20230825224123_world.sql new file mode 100644 index 00000000000..80687ced805 --- /dev/null +++ b/sql/migrations/20230825224123_world.sql @@ -0,0 +1,19 @@ +-e DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230825224123'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230825224123'); +-- Add your query below. + +-- Fix grammar mistake in "Hallowed Scroll" item text. +UPDATE `page_text` SET `text` = 'Feel blessed that your spirit was not released to the Nether, $N. Feel even more blessed that I decided you were worth the effort to write this scroll for.$B$BThe people you once knew, perhaps even cared for, are no longer! You must learn to \"live\" with that for the rest of your now unnatural life. I suggest you learn to deal with that first.$B$BIf you think you\'re ready for the trials ahead, then seek me out in the church in Deathknell.$B$B- Dark Cleric Duesten, Priest Trainer' WHERE `entry`=2467; + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From e4a789da3c5362aee0fee8a631df9c40314683b7 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 13 Nov 2023 06:23:23 +0200 Subject: [PATCH 304/426] Fix broken migration. --- ...123_world.sql => 20231113042205_world.sql} | 40 ++++++++++--------- 1 file changed, 21 insertions(+), 19 deletions(-) rename sql/migrations/{20230825224123_world.sql => 20231113042205_world.sql} (80%) diff --git a/sql/migrations/20230825224123_world.sql b/sql/migrations/20231113042205_world.sql similarity index 80% rename from sql/migrations/20230825224123_world.sql rename to sql/migrations/20231113042205_world.sql index 80687ced805..29fd000eed0 100644 --- a/sql/migrations/20230825224123_world.sql +++ b/sql/migrations/20231113042205_world.sql @@ -1,19 +1,21 @@ --e DROP PROCEDURE IF EXISTS add_migration; -delimiter ?? -CREATE PROCEDURE `add_migration`() -BEGIN -DECLARE v INT DEFAULT 1; -SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230825224123'); -IF v=0 THEN -INSERT INTO `migrations` VALUES ('20230825224123'); --- Add your query below. - --- Fix grammar mistake in "Hallowed Scroll" item text. -UPDATE `page_text` SET `text` = 'Feel blessed that your spirit was not released to the Nether, $N. Feel even more blessed that I decided you were worth the effort to write this scroll for.$B$BThe people you once knew, perhaps even cared for, are no longer! You must learn to \"live\" with that for the rest of your now unnatural life. I suggest you learn to deal with that first.$B$BIf you think you\'re ready for the trials ahead, then seek me out in the church in Deathknell.$B$B- Dark Cleric Duesten, Priest Trainer' WHERE `entry`=2467; - --- End of migration. -END IF; -END?? -delimiter ; -CALL add_migration(); -DROP PROCEDURE IF EXISTS add_migration; +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231113042205'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231113042205'); +-- Add your query below. + + +-- Fix grammar mistake in "Hallowed Scroll" item text. +UPDATE `page_text` SET `text` = 'Feel blessed that your spirit was not released to the Nether, $N. Feel even more blessed that I decided you were worth the effort to write this scroll for.$B$BThe people you once knew, perhaps even cared for, are no longer! You must learn to \"live\" with that for the rest of your now unnatural life. I suggest you learn to deal with that first.$B$BIf you think you\'re ready for the trials ahead, then seek me out in the church in Deathknell.$B$B- Dark Cleric Duesten, Priest Trainer' WHERE `entry`=2467; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 929ba34d73967013627768e975fb19c4fcc541ad Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 14 Nov 2023 09:37:04 +0200 Subject: [PATCH 305/426] Corrections to chat type of texts. --- sql/migrations/20231114072619_world.sql | 397 +++++++++++++++++++++ src/game/ObjectMgr.cpp | 4 +- src/game/Objects/CreatureDefines.h | 5 +- src/game/ScriptMgr.cpp | 12 +- src/scripts/kalimdor/silithus/silithus.cpp | 8 +- 5 files changed, 415 insertions(+), 11 deletions(-) create mode 100644 sql/migrations/20231114072619_world.sql diff --git a/sql/migrations/20231114072619_world.sql b/sql/migrations/20231114072619_world.sql new file mode 100644 index 00000000000..2a4f0d3dc27 --- /dev/null +++ b/sql/migrations/20231114072619_world.sql @@ -0,0 +1,397 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231114072619'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231114072619'); +-- Add your query below. + + +-- Correct chat type for broadcast texts based on sniffs. +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=494; -- Help! We're being attacked! Dark Irons! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=737; -- Where in the Outlands are those shipments? For days they keep me waiting! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=738; -- Stupidity! I'm surrounded by stupidity! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=739; -- Orcs are smarter than those couriers! Where the blazes are they? +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=854; -- You've plundered our treasures too long. Prepare to meet your watery grave! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=855; -- Nothing will stop us! You will die! +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=1017; -- I am slain! Summon Verog! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=1040; -- There's the stolen shredder! Stop it or Lugwizzle will have our hides! +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=1072; -- $n coming right at us! +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=1073; -- Get this $n off of me! +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=1074; -- Help! $n attacking! +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=1075; -- $n heading this way fast! Time for revenge! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=1148; -- You there! Check out that noise. +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=1273; -- Attacked! Help get this $n off of me! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=1523; -- Me scared! Me run now! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=1905; -- I am here! Come face me, if you dare! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=1932; -- Intruders at the Horn! Don't let them escape!! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=1933; -- Kill the intruders! +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=2231; -- You will be easy prey, $C. +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=2308; -- $N ran the Gauntlet! Three cheers for $N! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=2359; -- You won't ruin my lands, you scum! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=2366; -- Kill her! Take the farm! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=3081; -- Malton, you dummy! +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=3562; -- Oh! I almost forgot! I slipped you a set of thieven' tools. You'll need those where you're going. +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=3799; -- Don't listen to that old fool, kid. He's like that with everyone. I've been watching you, though; you got real talent. Come have a talk with me. +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=3903; -- Come and have a talk with me if you're going to go to Gnomeregan, $N! +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=3934; -- What?! How dare you! +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=3936; -- The Defias shall succeed! No meek adventurer will stop us! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=4390; -- You have returned to finish the job? Obsidion rise and annihilate them! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=4392; -- Obsidion rise and serve your master! +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=4435; -- We will enslave the quilboar! +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=4436; -- We will spread across this barren land! +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=4437; -- Soon, the Scourge will rule the world! +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=4440; -- Foolish mortal, I will rend your soul in two once I am released! +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=4441; -- You are an agent of their wicked god, fool. I will see you destroyed! +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=4442; -- My soul is not a trinket! Mortal, you must release me from these chains! +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=4443; -- It hurts so much... Itharius, my old friend... please help me... +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=4444; -- Will the nightmare ever end?! I cannot force myself awake! +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=4445; -- My charge to watch the temple has failed... my corrupted soul knows no peace... +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=4549; -- Who dares summon me? +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=4594; -- Leave this place. +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=4595; -- You will perish here. +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=4596; -- Do not taint these ruins, mortal. +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=4597; -- Help us, outsider. +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=4598; -- He cannot be defeated. +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=4599; -- Your existence is acknowledged. +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=4600; -- Defiler... you will be punished for this incursion. +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=4613; -- That's it! That's what you were waiting for! KILL THEM! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=4920; -- I am here! Your rule of this land is over! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=4962; -- What are you doing? Intruders!! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5053; -- Hey! Get away from that! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5054; -- What are you doing over there? +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5055; -- No stealing the goods! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5060; -- That's it! You're going down! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5268; -- Ha! Ha! Ha! Thank you for freeing me, fools. Now let me repay you by charring the flesh from your bones. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5271; -- You can't hide from us. Prepare to burn! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5300; -- Violence! Property damage! None shall pass!! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5311; -- Thank you for clearing out those foolish senators. Now prepare to meet your doom at the hands of Ragnaros' most powerful servant. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5312; -- Your efforts are utterly pointless, fools! You will never be able to defeat me! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5313; -- They were just getting in the way anyways. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5314; -- Ha! You can't even begin to imagine the futility of your efforts. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5315; -- Is that the best you can do? Do you really expect that you could defeat someone as awe inspiring as me? +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5389; -- HALT! There were...reports...of a...disturbance. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5390; -- We...are...investigating. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5430; -- Emperor Thaurissan does not wish to be disturbed! Turn back now or face your doom, weak mortals! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5431; -- Hail to the king, baby! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5444; -- Haha! I bet you thought you were done! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5445; -- But your real punishment lies ahead. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5446; -- Good riddance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5457; -- Come to the aid of the Throne! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5538; -- Intruders are destroying our eggs! Stop!! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5622; -- We're doomed! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5670; -- Curse you, mortal. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5675; -- You will learn of the sanctuary only death can offer... +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5676; -- It appears as if I will have to step in and take care of you myself. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5677; -- I will tear off your limbs and use them to beat you into submission! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5679; -- I can stand no more of this! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5710; -- The mortals have fallen! The new age of the Blackrock legion is at hand! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5712; -- WOOT! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5713; -- That will surely save me some work. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5714; -- I want those boots! Nobody touch that corpse! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5715; -- Consider yourself lucky, mortal. At least your corpse is still somewhat presentable. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5716; -- Do not consume the entire corpse just yet, children! Save room for dessert! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5717; -- Served! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5718; -- You actually believed that you stood a chance? +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=5832; -- You have summoned me, fool! Now DIE! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6105; -- Hahah! Revenge is mine! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6126; -- Rawww! Urok is dead!! Hahah!! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6150; -- TIMMY! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6185; -- Me smell stench of the living! +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=6274; -- Save me... +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6289; -- The Ash'ari Crystals have been destroyed! The Slaughterhouse is vulnerable! +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=6329; -- RAAAAAAAR! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6371; -- THIS CANNOT BE!! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=6372; -- All hands to battle stations! Naga incoming! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6377; -- Move back and hold the line! We cannot fail or all will be lost! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6398; -- So you see fit to toy with the Lich King's creations? Ramstein, be sure to give the intruders a proper greeting. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6401; -- Time to take matters into my own hands. Come. Enter my domain and challenge the might of the Scourge! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6415; -- Who dares disturb our master? +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=6422; -- I'm going to wear your skin as a smoking jacket! The stogies? You'll have to pry them from my cold dead... er... RAWR!!!! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6425; -- Ramstein hunger for flesh! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6436; -- The Scourge have broken into the Bastion! Redouble your efforts! We must not fail! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6441; -- Today you have unmade what took me years to create! For this you shall all die by my hand! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6447; -- You fools think you can defeat me so easily? Face the true might of the Nathrezim! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=6466; -- BETRAYER! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6492; -- One of the Ash'ari Crystals has been destroyed! Slay the intruders! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6526; -- An Ash'ari Crystal has fallen! Stay true to the Lich King, my brethren, and attempt to resummon it. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6527; -- An Ash'ari Crystal has been toppled! Restore the ziggurat before the Necropolis is vulnerable! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=6554; -- The deeds are mine, brother! Soon you shall be out of my way for good! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=6555; -- The fortune is mine, Alexi! Your end comes soon! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=6883; -- What is this?! How dare you! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=7203; -- Who dares to challenge me in my domain?! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7294; -- I'm here! Come and get me you alliance pansies! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7295; -- Vanndar is here. Come on, hordelings! Show me what you got! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7296; -- The Frostwolf General is dead! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7297; -- The Stormpike General is dead! +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=7330; -- Eeck! Demons appear hungry for the kodos! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7561; -- Impossible! Stay your attack, mortals... I submit! I submit! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7566; -- The runes of warding have been destroyed! Hunt down the infidels, my brethren! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7567; -- Brashly, you have come to wrest the secrets of the Living Flame! You will soon regret the recklessness of your quest. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7568; -- I go now to summon the lord whose house this is. Should you seek an audience with him, your paltry lives will surely be forfeit! Nevertheless, seek out his lair, if you dare! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7612; -- Reckless mortals! None may challenge the Sons of the Living flame! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7626; -- DIE, INSECT! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7636; -- TOO SOON! YOU HAVE AWAKENED ME TOO SOON, EXECUTUS! WHAT IS THE MEANING OF THIS INTRUSION??? +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7655; -- Impudent whelps! You've rushed headlong to your own deaths! See now, the master stirs! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7657; -- Behold Ragnaros - the Firelord! He who was ancient when this world was young! Bow before him, mortals! Bow before your ending! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7661; -- These mortal infidels, my lord! They have invaded your sanctum and seek to steal your secrets! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7662; -- FOOL! YOU ALLOWED THESE INSECTS TO RUN RAMPANT THROUGH THE HALLOWED CORE? AND NOW YOU LEAD THEM TO MY VERY LAIR? YOU HAVE FAILED ME, EXECUTUS! JUSTICE SHALL BE MET, INDEED! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7685; -- NOW FOR YOU, INSECTS! BOLDLY, YOU SOUGHT THE POWER OF RAGNAROS. NOW YOU SHALL SEE IT FIRSTHAND! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=7979; -- HELP! ASSASSINS HAVE COME TO KILL ME! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=7980; -- I'm free! That device shall never torment me again! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=8237; -- Dragon filth! Guards! Guards! Seize this monster! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8545; -- You think you've won already? Perhaps you'll need another lesson in pain! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8572; -- COME FORTH, MY SERVANTS! DEFEND YOUR MASTER! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8594; -- The Alliance has taken the Coldtooth Mine! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8595; -- The Alliance has taken the Irondeep Mine! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8596; -- The Horde has taken the Coldtooth Mine! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8597; -- The Horde has taken the Irondeep Mine! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8610; -- I come for you, puny Alliance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8613; -- Soldiers of Frostwolf, come to my aid! The time has come to unleash the fury of the elements upon them! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8672; -- Yeee hawww! Mulverick's fleet is ready to rock. All able bodied Horde soldiers need request a beacon and try their damndest to plant it so that my War Riders can home in for the aerial assault. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8673; -- War Riders are now ready! Soldiers of the Horde, I need your assistance. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8674; -- Jeztor's Riders are ready! Soldiers of the Horde, report for duty! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8732; -- Stormpike soldiers, aid and protect us! The Forest Lord has granted us his protection. The gateway must now be opened! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8744; -- Seasoned units are entering the battle! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8745; -- Veteran units are entering the battle! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8746; -- Champion units are entering the battle! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8754; -- Seasoned units are taking to the field! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8755; -- Our veterans are entering the field! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8756; -- Our champion units are equipped! Beware, alliance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8773; -- You're going down, Mulv! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8791; -- Soldiers of Stormpike, come to my aid! The beacon must be planted. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8794; -- My flight is ready! Soldiers come to my aid! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8797; -- Their spirits are restored! The gryphons are ready to strike! Come, soldiers! Come to my side! +UPDATE `broadcast_text` SET `chat_type`=0 WHERE `entry`=8852; -- Mine! Mine! Mine! Gizlock is the ruler of this domain! You shall never reveal my presence! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=8888; -- RARRRRRR! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8900; -- The stable is empty! We must provide our cavalry with suitable mounts. Stormpike Stables requests your assistance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=8922; -- Free! Free from my bonds at last! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9057; -- The Stormpike Graveyard was taken by the Alliance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9058; -- The Stormpike Graveyard is under attack! If left unchecked, the Alliance will capture it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9059; -- The Stormpike Graveyard was taken by the Horde! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9060; -- The Stormpike Graveyard is under attack! If left unchecked, the Horde will capture it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9061; -- The Snowfall Graveyard was taken by the Alliance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9062; -- The Snowfall Graveyard is under attack! If left unchecked, the Alliance will capture it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9063; -- The Snowfall Graveyard was taken by the Horde! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9064; -- The Snowfall Graveyard is under attack! If left unchecked, the Horde will capture it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9065; -- The Frostwolf Graveyard was taken by the Alliance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9066; -- The Frostwolf Graveyard is under attack! If left unchecked, the Alliance will capture it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9067; -- The Frostwolf Graveyard was taken by the Horde! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9068; -- The Frostwolf Graveyard is under attack! If left unchecked, the Horde will capture it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9104; -- At last... Freed from his cursed grasp! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9174; -- The Dun Baldar South Bunker is under attack! If left unchecked, the Horde will destroy it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9175; -- The Dun Baldar South Bunker was destroyed by the Horde! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9177; -- The Dun Baldar South Bunker was taken by the Alliance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9178; -- The Dun Baldar North Bunker is under attack! If left unchecked, the Horde will destroy it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9179; -- The Dun Baldar North Bunker was destroyed by the Horde! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9181; -- The Dun Baldar North Bunker was taken by the Alliance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9182; -- The Icewing Bunker is under attack! If left unchecked, the Horde will destroy it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9183; -- The Icewing Bunker was destroyed by the Horde! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9185; -- The Icewing Bunker was taken by the Alliance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9186; -- The Stonehearth Bunker is under attack! If left unchecked, the Horde will destroy it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9187; -- The Stonehearth Bunker was destroyed by the Horde! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9189; -- The Stonehearth Bunker was taken by the Alliance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9195; -- The East Frostwolf Tower was taken by the Horde! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9196; -- The East Frostwolf Tower is under attack! If left unchecked, the Alliance will destroy it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9197; -- The East Frostwolf Tower was destroyed by the Alliance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9199; -- Tower Point was taken by the Horde! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9200; -- Tower Point is under attack! If left unchecked, the Alliance will destroy it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9201; -- Tower Point was destroyed by the Alliance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9203; -- Iceblood Tower was taken by the Horde! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9204; -- Iceblood Tower is under attack! If left unchecked, the Alliance will destroy it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9205; -- Iceblood Tower was destroyed by the Alliance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9211; -- The Stormpike Aid Station was taken by the Horde! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9212; -- The Stormpike Aid Station is under attack! If left unchecked, the Horde will capture it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9213; -- The Stormpike Aid Station was taken by the Alliance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9214; -- The Stormpike Aid Station is under attack! If left unchecked, the Alliance will capture it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9215; -- The Frostwolf Relief Hut was taken by the Horde! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9216; -- The Frostwolf Relief Hut is under attack! If left unchecked, the Horde will capture it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9217; -- The Frostwolf Relief Hut was taken by the Alliance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9218; -- The Frostwolf Relief Hut is under attack! If left unchecked, the Alliance will capture it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9221; -- The Stonehearth Graveyard was taken by the Horde! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9222; -- The Stonehearth Graveyard is under attack! If left unchecked, the Horde will capture it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9223; -- The Stonehearth Graveyard was taken by the Alliance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9224; -- The Stonehearth Graveyard is under attack! If left unchecked, the Alliance will capture it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9225; -- The Iceblood Graveyard was taken by the Horde! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9226; -- The Iceblood Graveyard is under attack! If left unchecked, the Horde will capture it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9227; -- The Iceblood Graveyard was taken by the Alliance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9228; -- The Iceblood Graveyard is under attack! If left unchecked, the Alliance will capture it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9425; -- Ashes to ashes! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9426; -- BY FIRE BE PURGED! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9427; -- TASTE THE FLAMES OF SULFURON! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9478; -- Help me crush these punys! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=9504; -- Woohoo! They are into it now! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=9572; -- My power is discombobulatingly devastating! It is ludicrous that these mortals even attempt to enter my realm! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9591; -- If I fall into the abyss, I'll take all of you mortals with me! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9705; -- Ah, freedom! Although brief, so sweet it is... +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9727; -- Who dares steal my precious mount? You will pay for your insolence, mortal! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9784; -- ENOUGH - this ends now! You fools will be added to my bone collection! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9794; -- Ah...the heroes. You are persistent, aren't you? Your ally here attempted to match his power against mine - and paid the price. Now he shall serve me...by slaughtering you. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9844; -- Get up, little red wyrm...and destroy them! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9867; -- NEFARIAN IS SLAIN! People of Orgrimmar, bow down before the might of $N and $g his:her; allies for they have laid a blow against the Black Dragonflight that is sure to stir the Aspects from their malaise! This defeat shall surely be felt by the father of the Black Flight: Deathwing reels in pain and anguish this day! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9868; -- Be lifted by $N's accomplishment! Revel in $g his:her; rallying cry! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9870; -- Citizens of the Alliance, the Lord of Blackrock is slain! Nefarian has been subdued by the combined might of $n and $g his:her; allies! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9872; -- Let your spirits rise! Rally around your champion, bask in $g his:her; glory! Revel in the rallying cry of the dragon slayer! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9886; -- Too late, friends! Nefarius' corruption has taken hold...I cannot...control myself. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9887; -- I beg you, mortals - FLEE! Flee before I lose all sense of control! The black fire rages within my heart! I MUST- release it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9888; -- FLAME! DEATH! DESTRUCTION! Cower, mortals before the wrath of Lord...NO - I MUST fight this! Alexstrasza help me, I MUST fight it! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9961; -- You'll pay for forcing me to do this! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9962; -- Fools! These eggs are more precious than you know! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9963; -- No - not another one! I'll have your heads for this atrocity! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9964; -- Forgive me, $N! Your death only adds to my failure! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9965; -- Nefarius' hate has made me stronger than ever before! You should have fled while you could, mortals! The fury of Blackrock courses through my veins! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=9967; -- None of your kind should be here! You've doomed only yourselves! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10001; -- Reporting for duty! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10024; -- I am here! And the Irondeep Mine is... MINE! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10026; -- Let the coils of hate unfurl! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10027; -- Lord Hir'eek, grant me wings of vengeance! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10356; -- I'm coming Frostwolf, and this time you're gonna feel the flames! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10369; -- I command you to rain fire down upon these invaders! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10443; -- Shadra, make of me your avatar! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10444; -- The brood shall not fall! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10446; -- I'll feed your souls to Hakkar himself! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10447; -- PRIDE HERALDS THE END OF YOUR WORLD. COME, MORTALS! FACE THE WRATH OF THE SOULFLAYER! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10448; -- Aid me my brood! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10450; -- At last, I am free of the Soulflayer! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10451; -- Hakkar binds me no more! Peace at last! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10452; -- Finally...death! Curse you, Hakkar! Curse you! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10455; -- Shirvallah, fill me with your RAGE! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=10457; -- Blood and souls for Hakkar! HAHAHAH! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10459; -- Bless you, mortals, for this release...Hakkar controls me no longer! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10460; -- Ssserenity...at lassst! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10461; -- Bethekk, your priestess calls upon your might! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10472; -- Feast on $N, my pretties! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10480; -- Do not be lured into the mortals' trap. Bathe in my power! Be renewed and destroy the heretics! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10505; -- DING! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10507; -- Your deaths feed my strength! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10546; -- Minions of Hakkar, hear your God. The sanctity of this temple has been compromised. Invaders encroach upon holy ground! The Altar of Blood must be protected. Kill them all! +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=10579; -- I am released through you! Avenge me! +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=10586; -- You will suffer eternally, $r. +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=10588; -- You will make a fitting sacrifice. +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=10589; -- Surrender your soul, mortal. +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=10590; -- The world will suffer immeasurable cruelties under my reign. +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=10591; -- Your gods can't save you now, $c. +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=10592; -- The Primal Gods serve Hakkar. Turn back now, you stand no chance. +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=10593; -- Pledge your allegiance to Hakkar and the pain you suffer shall be minimal. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10594; -- You dare set foot upon Hakkari holy ground? Minions of Hakkar, destroy the infidels! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10604; -- $n! I'm watching you! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10605; -- You've angered me for the last time $n! +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=10628; -- Don't make me angry! You wouldn't like me when I'm angry! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10635; -- Fleeing will do you no good, mortals! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=10805; -- Your treachery only speeds your doom. This world will fall to darkness! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=10806; -- You dare! Outrageous! I curse you, $c. I curse you with... death! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=10807; -- What? Such a small, frail thing beckons me? I shall add your bones to my throne, $r!! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=10810; -- Killing you and your cohorts, $c, will amuse me. I shall make it quick. +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=10881; -- Come forth, ye Dreamers - and claim your vengeance! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=10882; -- Your wicked souls shall feed my power! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=10883; -- I can sense the SHADOW on your hearts. There can be no rest for the wicked! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=10884; -- Taste your world's corruption! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=10885; -- Hope is a DISEASE of the soul! This land shall wither and die! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=10886; -- Peace is but a fleeting dream! Let the NIGHTMARE reign! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=10887; -- Children of Madness - I release you upon this world! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=10888; -- Come, puny mortals. Come and face your end. The secrets of Ahn'Qiraj will die with Roman'khan! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10901; -- Let them feel the wrath of the Blue Flight! May Malygos protect me! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10902; -- Alexstrasza grant me the resolve to drive our enemies back! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=10903; -- Succumb to the endless dream, little ones. Let it consume you! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11009; -- Kill $N! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=11356; -- Look alive, lads! The enemy has been sighted! Form ranks immediately! +UPDATE `broadcast_text` SET `chat_type`=7 WHERE `entry`=11424; -- %s hears the call to battle and rises to serve its master. +UPDATE `broadcast_text` SET `chat_type`=7 WHERE `entry`=11425; -- %s casts its massive shadow upon the whole of Silithus. +UPDATE `broadcast_text` SET `chat_type`=7 WHERE `entry`=11426; -- %s breaks free of its cocoon beneath Hive'Ashi. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11442; -- You will be judged for defiling these sacred grounds! The laws of the Ancients will not be challenged! Trespassers will be annihilated! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11443; -- I sentence you to death! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11444; -- I serve to the last! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11445; -- Are you so eager to die? I will be happy to accommodate you... +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11446; -- Let your death serve as an example! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11447; -- You only delay the inevitable! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11449; -- Sands of the desert, rise and block out the sun! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11450; -- You are terminated. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11451; -- I...have...failed. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11452; -- My brother, no! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11453; -- You will not escape death! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11454; -- Vek'lor, I feel your pain! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11455; -- Your fate is sealed! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=11536; -- Colossals on the rise! At least 10 units strong! INCOMING FROM THE SOUTH! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=11538; -- HOLD THE LINE! LET NOTHING THROUGH! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=11611; -- Qiraji War Party spotted! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=11612; -- Sandstorm coming from the south, take co...That's no sandstorm! INCOMING QIRAJI ARMY! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=11613; -- Invaders approaching from the south! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=11614; -- Crush them all! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=11615; -- The Might of Kalimdor will halt their advances! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=11616; -- Soldiers of Kalimdor, defend the base! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=11646; -- ONWARD! TO AHN'QIRAJ! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=11648; -- Face the Might of Kalimdor! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=11651; -- The battle is won! Watch as they flee to the safety of their precious temple. Soon all will be razed... Their leaders destroyed! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11702; -- Only flesh and bone. Mortals are such easy prey... +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11706; -- Where are your manners, brother. Let us properly welcome our guests. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11707; -- There will be pain... +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11708; -- Oh so much pain... +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11709; -- Come, little ones. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11710; -- The feast of souls begins now... +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11727; -- You do not belong here! Ancients, rise against these intruders! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11812; -- Intruders! More pawns of the Argent Dawn, no doubt. I already count one of their number among my prisoners. Withdraw from my domain before she is executed! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11813; -- You're still here? Your foolishness is amusing! The Argent Dawn wench needn't suffer in vain. Leave at once and she shall be spared! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11814; -- May this prisoner's death serve as a warning. None shall defy the scourge and live! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11815; -- I shall take great pleasure in taking this poor wretch's life! It's not too late, she needn't suffer in vain. Turn back and her death shall be merciful! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11816; -- Don't worry about me! Slay this dreadful beast and cleanse this world of his foul taint! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=11817; -- My death means nothing.... light... will... prevail! +UPDATE `broadcast_text` SET `chat_type`=4 WHERE `entry`=11929; -- Use your tonk action bar above your standard action bar to attack other tonks. +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12310; -- To arms! Scourge spotted in the Cathedral of Light! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12311; -- Scourge in the Trade District! Have at them! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12325; -- We come destroy puny ones! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12326; -- Kel'Thuzad say to tell you... DIE! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12327; -- Raaarrrrggghhh! We come for you! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12328; -- Hahaha, your guards no match for Scourge! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12329; -- What? This not Naxxramas! We not like this place... destroy! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12330; -- You spare parts! We make more Scourge in necropolis. +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12331; -- The Scourge attack against my court has been eliminated. You may go about your business. +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12332; -- My Royal Dreadguard, you will deal with this matter as befits your station. That, or you will wish that you had. +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12333; -- Dreadguard, hold your line. Halt the advance of those Scourge! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12334; -- Scourge in sewers! We need help! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12335; -- Scourge attack Magic Quarter! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12336; -- Rogues' Quarter attacked by Scourge! Help! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12337; -- The Scourge are at the entrance to the Royal Quarter! Kill them!! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12342; -- Why you run away? We make your corpse into Scourge. +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12343; -- No worry, we find you. +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12353; -- There Scourge outside Trade Quarter! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=12354; -- Scourge inside Trade Quarter! Destroy! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=12993; -- Come, heroes... By the will of the Lich King, you shall be destroyed. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=13030; -- Foolishly you have sought your own demise. +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=13040; -- I'm gonna' enjoy killin' these slack-jawed daffodils! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=13097; -- Flee, before it's too late! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13121; -- Can you feel it, pathetic creatures? The pall over this land is but a precursor. Soon your precious holdings will be in our grasp! You will fall before the might of the Scourge! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13122; -- Despair, mortals! Your doom has come! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13123; -- Let this gloom serve to remind you: the shadow of the Scourge is all-encompassing! There is no escape! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13124; -- As you fall in battle, we continue to grow in strength. There is only one inevitable outcome. Prepare for your end! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13125; -- Forward, my minions! Forward! Let none stand in our way! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13126; -- Cower before our might! Flee! There will be no victory for the living! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13163; -- So, the frail members of the living have some teeth after all. Take this place, then, for the time being. We will return, twice as strong, and your paltry forces will fall! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13164; -- You dare disrupt our works here?! The master will not be pleased. Take this time to prepare yourselves... when we return, there will be nothing but death and destruction in our wake! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13165; -- You may think you have won, worms, but against the might of the Scourge there is no victory for the living! You have not seen the last of us! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13169; -- Do you truly believe you are doing well? Hah! Our numbers are limitless! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13170; -- You may succeed on the field of battle briefly... but you cannot hope to win against the Scourge! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13172; -- You've reclaimed a few paltry territories. Pathetic. In short order they will again be ours! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13173; -- Do you truly believe you're making progress? You can never defeat the Scourge! These small victories are nothing more than a ploy to make you overconfident! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13174; -- Think you the master is daunted by your games? We will never fall to you! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13175; -- You fools! Keep fighting, if that is your wish! With every battle, more of you fall, and the ranks of the undead swell! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13176; -- The toils of the living never cease to amaze. Your numbers are limited, and with every battle they dwindle further. You will not live to see the end! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13177; -- Do you truly believe you can win against the armies of Kel'Thuzad? No army of the living, no power you could possibly bring to bear can destroy our ranks! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13178; -- This constant, annoying resistance is futile, you maggots! There will be nothing in the end but death! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13469; -- Victory for the Horde! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13470; -- We've done it! Victory to the Alliance! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13476; -- We have one quarter of our needed silithyst! Keep it up! +UPDATE `broadcast_text` SET `chat_type`=1 WHERE `entry`=13481; -- We have almost all the silithyst we need! Don't stop now! +UPDATE `broadcast_text` SET `chat_type`=6 WHERE `entry`=13492; -- Your petty magics are no challenge to the might of the Scourge! + +-- Remove no longer needed duplicated texts in custom table. +DELETE FROM `script_texts` WHERE `entry` IN (-1000009, -1000016, -1000017); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index 5110451471c..e5e15127029 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -9364,7 +9364,7 @@ void ObjectMgr::LoadBroadcastTexts() bct.languageId = LANG_UNIVERSAL; } - if (bct.chatType > CHAT_TYPE_ZONE_YELL) + if (bct.chatType >= CHAT_TYPE_MAX) { sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "BroadcastText (Id: %u) in table `broadcast_text` has ChatType %u but this chat type does not exist.", bct.entry, bct.chatType); bct.chatType = CHAT_TYPE_SAY; @@ -9642,7 +9642,7 @@ bool ObjectMgr::LoadMangosStrings(DatabaseType& db, char const* table, int32 min data.LanguageId = LANG_UNIVERSAL; } - if (data.Type > CHAT_TYPE_ZONE_YELL) + if (data.Type >= CHAT_TYPE_MAX) { sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Entry %i in table `%s` has Type %u but this Chat Type does not exist.", entry, table, data.Type); data.Type = CHAT_TYPE_SAY; diff --git a/src/game/Objects/CreatureDefines.h b/src/game/Objects/CreatureDefines.h index 424ade9acd2..cdf1ad2c23e 100644 --- a/src/game/Objects/CreatureDefines.h +++ b/src/game/Objects/CreatureDefines.h @@ -437,7 +437,10 @@ enum ChatType CHAT_TYPE_BOSS_EMOTE = 3, CHAT_TYPE_WHISPER = 4, CHAT_TYPE_BOSS_WHISPER = 5, - CHAT_TYPE_ZONE_YELL = 6 + CHAT_TYPE_ZONE_YELL = 6, + CHAT_TYPE_ZONE_EMOTE = 7, + + CHAT_TYPE_MAX }; // Selection method used by SelectAttackingTarget diff --git a/src/game/ScriptMgr.cpp b/src/game/ScriptMgr.cpp index 23d2102991e..f47150ca8f0 100644 --- a/src/game/ScriptMgr.cpp +++ b/src/game/ScriptMgr.cpp @@ -159,7 +159,7 @@ void ScriptMgr::LoadScripts(ScriptMapMap& scripts, char const* tablename) { case SCRIPT_COMMAND_TALK: { - if (tmp.talk.chatType > CHAT_TYPE_ZONE_YELL) + if (tmp.talk.chatType >= CHAT_TYPE_MAX) { sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Table `%s` has invalid CHAT_TYPE_ (datalong = %u) in SCRIPT_COMMAND_TALK for script id %u", tablename, tmp.talk.chatType, tmp.id); continue; @@ -2156,7 +2156,7 @@ void ScriptMgr::LoadScriptTexts() if (!GetLanguageDescByID(pTemp.Language)) sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Entry %i in table `script_texts` using Language %u but Language does not exist.", iId, pTemp.Language); - if (pTemp.Type > CHAT_TYPE_ZONE_YELL) + if (pTemp.Type >= CHAT_TYPE_MAX) sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Entry %i in table `script_texts` has Type %u but this Chat Type does not exist.", iId, pTemp.Type); m_mTextDataMap[iId] = pTemp; @@ -2218,7 +2218,7 @@ void ScriptMgr::LoadScriptTextsCustom() if (!GetLanguageDescByID(pTemp.Language)) sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Entry %i in table `custom_texts` using Language %u but Language does not exist.", iId, pTemp.Language); - if (pTemp.Type > CHAT_TYPE_ZONE_YELL) + if (pTemp.Type >= CHAT_TYPE_MAX) sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Entry %i in table `custom_texts` has Type %u but this Chat Type does not exist.", iId, pTemp.Type); m_mTextDataMap[iId] = pTemp; @@ -2619,7 +2619,7 @@ void DoScriptText(int32 textId, WorldObject* pSource, Unit* pTarget, int32 chatT { if (sObjectMgr.GetSoundEntry(soundId)) { - if (chatType == CHAT_TYPE_ZONE_YELL) + if (chatType == CHAT_TYPE_ZONE_YELL || chatType == CHAT_TYPE_ZONE_EMOTE) { if (Map* pZone = pSource->GetMap()) pZone->PlayDirectSoundToMap(soundId, pZone->IsContinent() ? pSource->GetZoneId() : 0); @@ -2672,6 +2672,9 @@ void DoScriptText(int32 textId, WorldObject* pSource, Unit* pTarget, int32 chatT case CHAT_TYPE_ZONE_YELL: pSource->MonsterYellToZone(textId, languageId, pTarget); break; + case CHAT_TYPE_ZONE_EMOTE: + pSource->MonsterScriptToZone(textId, CHAT_MSG_MONSTER_EMOTE, languageId, pTarget); + break; } } @@ -2739,6 +2742,7 @@ void DoOrSimulateScriptTextForMap(int32 textId, uint32 creatureId, Map* pMap, Cr chatMsg = CHAT_MSG_MONSTER_YELL; break; case CHAT_TYPE_TEXT_EMOTE: + case CHAT_TYPE_ZONE_EMOTE: chatMsg = CHAT_MSG_MONSTER_EMOTE; break; case CHAT_TYPE_BOSS_EMOTE: diff --git a/src/scripts/kalimdor/silithus/silithus.cpp b/src/scripts/kalimdor/silithus/silithus.cpp index 27ed3a2960f..42243b4d488 100644 --- a/src/scripts/kalimdor/silithus/silithus.cpp +++ b/src/scripts/kalimdor/silithus/silithus.cpp @@ -703,9 +703,9 @@ enum NPC_COLOSSUS_REGAL = 15741, NPC_COLOSSUS_ASHI = 15742, - TEXT_COLOSSUS_ASHI = -1000009, - TEXT_COLOSSUS_REGAL = -1000016, - TEXT_COLOSSUS_ZORA = -1000017, + TEXT_COLOSSUS_REGAL = 11424, + TEXT_COLOSSUS_ZORA = 11425, + TEXT_COLOSSUS_ASHI = 11426, }; struct npc_colossusAI : public ScriptedAI @@ -727,7 +727,7 @@ struct npc_colossusAI : public ScriptedAI } if (text) - m_creature->MonsterScriptToZone(text, CHAT_MSG_MONSTER_EMOTE); + DoScriptText(text, m_creature); Reset(); } From d9138ec95ae7a3ea477a6a801f09e250c61105bf Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 14 Nov 2023 17:15:59 +0200 Subject: [PATCH 306/426] Don't check line of sight when opening chests. Proof: https://www.youtube.com/watch?v=zQtorQYGfIo Closes https://github.com/vmangos/core/issues/2283 --- src/game/Spells/Spell.cpp | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 88cb4c8e6f8..6e183388cb6 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -6098,19 +6098,6 @@ SpellCastResult Spell::CheckCast(bool strict) if (goTarget->GetGOInfo()->CannotBeUsedUnderImmunity() && m_casterUnit && m_casterUnit->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE)) return SPELL_FAILED_DAMAGE_IMMUNE; #endif - - // Require LOS to loot chests - // For example, check LoS when opening a gobj (spell 6477). - // Prevents abuse with object id 165554 for example. - if (goTarget->GetGoType() == GAMEOBJECT_TYPE_CHEST) - { - if (!m_IsTriggeredSpell && !(m_spellInfo->AttributesEx2 & SPELL_ATTR_EX2_IGNORE_LINE_OF_SIGHT) - && !goTarget->GetGOInfo()->chest.minSuccessOpens // don't check for gathering nodes, too many are halfway in walls - && !goTarget->HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND) // don't check for quest items - && !(goTarget->GetEntry() == 160845) // exemption for Dark Coffer - && !m_caster->IsWithinLOSInMap(goTarget, false)) - return SPELL_FAILED_LINE_OF_SIGHT; - } } else if (m_targets.IsEmpty()) { From 61ec2d700c1651dc42f9c773dd92b5ea366ebee9 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 15 Nov 2023 07:51:25 +0200 Subject: [PATCH 307/426] Make sure items are saved after being unlocked. --- src/game/Spells/SpellEffects.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/game/Spells/SpellEffects.cpp b/src/game/Spells/SpellEffects.cpp index fa53cb20225..0b6bced0851 100644 --- a/src/game/Spells/SpellEffects.cpp +++ b/src/game/Spells/SpellEffects.cpp @@ -2893,7 +2893,10 @@ void Spell::EffectOpenLock(SpellEffectIndex effIdx) // mark item as unlocked if (itemTarget) + { itemTarget->SetFlag(ITEM_FIELD_FLAGS, ITEM_DYNFLAG_UNLOCKED); + itemTarget->SetState(ITEM_CHANGED); + } SendLoot(guid, LOOT_SKINNING, LockType(m_spellInfo->EffectMiscValue[effIdx])); From 129d1c6f12192f5a789f5ee99021ef3a687b36b5 Mon Sep 17 00:00:00 2001 From: Daribon Date: Wed, 15 Nov 2023 07:23:16 +0100 Subject: [PATCH 308/426] Correct threat for more spells. (#2188) --- sql/migrations/20230903173317_world.sql | 134 ++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 sql/migrations/20230903173317_world.sql diff --git a/sql/migrations/20230903173317_world.sql b/sql/migrations/20230903173317_world.sql new file mode 100644 index 00000000000..5fc5d0fd50e --- /dev/null +++ b/sql/migrations/20230903173317_world.sql @@ -0,0 +1,134 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230903173317'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230903173317'); +-- Add your query below. + + +-- Touch of Weakness R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (2652, 10, 0, 0); +-- Touch of Weakness R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19261, 20, 0, 0); +-- Touch of Weakness R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19262, 30, 0, 0); +-- Touch of Weakness R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19264, 40, 0, 0); +-- Touch of Weakness R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19265, 50, 0, 0); +-- Touch of Weakness R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19266, 60, 0, 0); + +-- Nature's Grasp R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (16689, 10, 0, 0); +-- Nature's Grasp R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (16810, 18, 0, 0); +-- Nature's Grasp R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (16811, 28, 0, 0); +-- Nature's Grasp R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (16812, 38, 0, 0); +-- Nature's Grasp R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (16813, 48, 0, 0); +-- Nature's Grasp R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (17329, 58, 0, 0); + +-- Nature's Grasp Entangling Roots proc R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19975, 16, 1, 0); +-- Nature's Grasp Entangling Roots proc R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19974, 36, 1, 0); +-- Nature's Grasp Entangling Roots proc R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19973, 56, 1, 0); +-- Nature's Grasp Entangling Roots proc R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19972, 76, 1, 0); +-- Nature's Grasp Entangling Roots proc R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19971, 96, 1, 0); +-- Nature's Grasp Entangling Roots proc R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19970, 116, 1, 0); + +-- Fear Ward +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (6346, 20, 0, 0); + +-- Touch of Weakness proc R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (2943, 20, 1, 0); +-- Touch of Weakness proc R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19249, 40, 1, 0); +-- Touch of Weakness proc R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19251, 60, 1, 0); +-- Touch of Weakness proc R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19252, 80, 1, 0); +-- Touch of Weakness proc R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19253, 100, 1, 0); +-- Touch of Weakness proc R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19254, 120, 1, 0); + +-- Remove Blessing of Wisdom +-- It had 0 threat value and should not exist in spell_threat +DELETE FROM `spell_threat` WHERE `entry`=19742; + +-- Feral Charge +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (16979, 52, 0, 0); + +-- Bash R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (5211, 42, 0, 0); +-- Bash R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (6798, 90, 0, 0); +-- Bash R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8983, 138, 0, 0); + +-- Remove Curse +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (2782, 24, 0, 0); + +-- Deterrence +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19263, 20, 0, 0); + +-- Trueshot Aura R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19506, 40, 0, 0); +-- Trueshot Aura R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20905, 50, 0, 0); +-- Trueshot Aura R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (20906, 60, 0, 0); + +-- Power Infusion +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (10060, 40, 0, 0); + +-- Faerie Fire (Feral) R1 +UPDATE `spell_threat` SET `Threat` = 50 WHERE `entry` = 16857; +-- Faerie Fire (Feral) R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (17390, 60, 0, 0); +-- Faerie Fire (Feral) R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (17391, 84, 0, 0); +-- Faerie Fire (Feral) R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (17392, 108, 0, 0); + +-- Elune's Grace R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (2651, 20, 0, 0); +-- Elune's Grace R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19289, 30, 0, 0); +-- Elune's Grace R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19291, 40, 0, 0); +-- Elune's Grace R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19292, 50, 0, 0); +-- Elune's Grace R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19293, 60, 0, 0); + +-- Feedback R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (13896, 20, 0, 0); +-- Feedback R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19271, 30, 0, 0); +-- Feedback R3 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19273, 40, 0, 0); +-- Feedback R4 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19274, 50, 0, 0); +-- Feedback R5 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19275, 60, 0, 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 8eb32e29988cdfb0160ad4a0b3a4b32b68499d49 Mon Sep 17 00:00:00 2001 From: Daribon Date: Wed, 15 Nov 2023 07:28:29 +0100 Subject: [PATCH 309/426] Correct Shadowprey Guardian waypoints. (#2251) --- sql/migrations/20231024182947_world.sql | 101 ++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 sql/migrations/20231024182947_world.sql diff --git a/sql/migrations/20231024182947_world.sql b/sql/migrations/20231024182947_world.sql new file mode 100644 index 00000000000..361107129a5 --- /dev/null +++ b/sql/migrations/20231024182947_world.sql @@ -0,0 +1,101 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231024182947'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231024182947'); +-- Add your query below. + + +-- Pathing for Shadowprey Guardian Entry: 12338 +SET @NPC := 27564; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-1793.7954,`position_y`=3049.9192,`position_z`=7.7940183 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-1793.7954,3049.9192,7.7940183,100,0,0,0), +(@NPC,2,-1781.9744,3060.6672,13.734776,100,0,0,0), +(@NPC,3,-1770.8019,3070.4211,20.380772,100,0,0,0), +(@NPC,4,-1761.4573,3076.9875,24.536587,100,0,0,0), +(@NPC,5,-1750.0232,3082.0205,29.097078,100,0,0,0), +(@NPC,6,-1742.5325,3085.791,31.805965,100,0,0,0), +(@NPC,7,-1730.1333,3095.7947,35.005627,100,0,0,0), +(@NPC,8,-1709.0748,3101.7922,33.356182,100,0,0,0), +(@NPC,9,-1730.1333,3095.7947,35.005627,100,0,0,0), +(@NPC,10,-1742.5325,3085.791,31.805965,100,0,0,0), +(@NPC,11,-1750.0232,3082.0205,29.097078,100,0,0,0), +(@NPC,12,-1761.4573,3076.9875,24.536587,100,0,0,0), +(@NPC,13,-1770.8019,3070.4211,20.380772,100,0,0,0), +(@NPC,14,-1781.9744,3060.6672,13.734776,100,0,0,0); +-- 0x204CB000200C0C8000007B00029C65F0 .go xyz -1793.7954 3049.9192 7.7940183 + +-- Pathing for Shadowprey Guardian Entry: 12338 +-- https://www.youtube.com/live/qUNgZOGIef4?si=N6HIgvF9KW4x3Z0D&t=7422 +SET @NPC := 27559; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-1671.0707,`position_y`=3152.94,`position_z`=19.727245 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-1671.0707,3152.94,19.727245,100,0,0,0), +(@NPC,2,-1686.7838,3167.599,11.89218,100,0,0,0), +(@NPC,3,-1702.9758,3177.741,6.649853,100,0,0,0), +(@NPC,4,-1713.1448,3190.7727,4.48373,100,0,0,0), +(@NPC,5,-1719.9011,3202.3035,4.3230968,100,0,0,0), +(@NPC,6,-1713.1448,3190.7727,4.48373,100,0,0,0), +(@NPC,7,-1702.9758,3177.741,6.649853,100,0,0,0), +(@NPC,8,-1686.8711,3167.6475,11.991773,100,0,0,0); +-- 0x204CB000200C0C8000007B00031C65EE .go xyz -1671.0707 3152.94 19.727245 + +-- Pathing for Shadowprey Guardian Entry: 12338 +SET @NPC := 27566; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-1578.3864,`position_y`=3091.8054,`position_z`=46.560516 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-1578.3864,3091.8054,46.560516,100,0,0,0), +(@NPC,2,-1594.1975,3091.3274,43.02964,100,0,0,0), +(@NPC,3,-1613.2416,3089.007,38.32875,100,0,0,0), +(@NPC,4,-1624.8228,3089.966,35.175255,100,0,0,0), +(@NPC,5,-1630.492,3095.426,34.11395,100,0,0,0), +(@NPC,6,-1627.9872,3100.3762,36.112865,100,0,0,0), +(@NPC,7,-1622.2477,3109.641,40.69519,100,0,0,0), +(@NPC,8,-1615.0018,3116.8977,43.88143,100,0,0,0), +(@NPC,9,-1622.2477,3109.641,40.69519,100,0,0,0), +(@NPC,10,-1627.9872,3100.3762,36.112865,100,0,0,0), +(@NPC,11,-1630.492,3095.426,34.11395,100,0,0,0), +(@NPC,12,-1624.8228,3089.966,35.175255,100,0,0,0), +(@NPC,13,-1613.2416,3089.007,38.32875,100,0,0,0), +(@NPC,14,-1594.1975,3091.3274,43.02964,100,0,0,0); +-- 0x204CB000200C0C8000007B00041C65F0 .go xyz -1578.3864 3091.8054 46.560516 + +-- Pathing for Shadowprey Guardian Entry: 12338 +SET @NPC := 27548; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-1637.4994,`position_y`=3079.612,`position_z`=31.382957 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-1637.4994,3079.612,31.382957,100,0,0,0), +(@NPC,2,-1647.0406,3085.4595,30.7453,100,0,0,0), +(@NPC,3,-1658.1682,3096.2573,30.497795,100,0,0,0), +(@NPC,4,-1667.1478,3085.581,30.546133,100,0,0,0), +(@NPC,5,-1661.9714,3095.1868,30.497746,100,0,0,0), +(@NPC,6,-1661.0421,3110.0645,30.338806,100,0,0,0), +(@NPC,7,-1661.8292,3121.5122,28.625042,100,0,0,0), +(@NPC,8,-1661.3171,3138.1243,25.07384,100,0,0,0), +(@NPC,9,-1655.7982,3153.535,23.450588,100,0,0,0), +(@NPC,10,-1650.3647,3169.2913,24.054272,100,0,0,0), +(@NPC,11,-1655.7982,3153.535,23.450588,100,0,0,0), +(@NPC,12,-1661.3171,3138.1243,25.07384,100,0,0,0), +(@NPC,13,-1661.8292,3121.5122,28.625042,100,0,0,0), +(@NPC,14,-1661.0421,3110.0645,30.338806,100,0,0,0), +(@NPC,15,-1661.9714,3095.1868,30.497746,100,0,0,0), +(@NPC,16,-1667.1478,3085.581,30.546133,100,0,0,0), +(@NPC,17,-1658.1682,3096.2573,30.497795,100,0,0,0), +(@NPC,18,-1647.0406,3085.4595,30.7453,100,0,0,0); +-- 0x204CB000200C0C8000007B00061C65F0 .go xyz -1637.4994 3079.612 31.382957 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 4f17e85f8e2212997463695ccd99faa1e9071c06 Mon Sep 17 00:00:00 2001 From: Daribon Date: Wed, 15 Nov 2023 07:41:26 +0100 Subject: [PATCH 310/426] Correct waypoints for AV entrance caves. (#2264) --- sql/migrations/20231105183802_world.sql | 123 ++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 sql/migrations/20231105183802_world.sql diff --git a/sql/migrations/20231105183802_world.sql b/sql/migrations/20231105183802_world.sql new file mode 100644 index 00000000000..c25ec5815b0 --- /dev/null +++ b/sql/migrations/20231105183802_world.sql @@ -0,0 +1,123 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231105183802'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231105183802'); +-- Add your query below. + + +-- Pathing for Captain Armando Ossex Entry: 16392 +SET @NPC := 16990; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=103.116,`position_y`=-186.76497,`position_z`=127.20985 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,103.116,-186.76497,127.20985,100,0,0,0), +(@NPC,2,99.61415,-203.17793,126.37726,100,0,0,0), +(@NPC,3,88.930016,-219.35107,127.74273,100,0,0,0), +(@NPC,4,81.033966,-227.33937,128.8015,100,0,0,0), +(@NPC,5,68.89204,-235.83255,129.54388,100,0,0,0), +(@NPC,6,58.5523,-233.14784,129.52432,100,0,0,0), +(@NPC,7,51.736652,-242.24323,129.54388,100,0,0,0), +(@NPC,8,49.698242,-254.70393,129.36476,100,0,0,0), +(@NPC,9,33.13867,-274.61475,133.0221,100,0,0,0), +(@NPC,10,26.55024,-284.1707,133.20392,100,0,0,0), +(@NPC,11,14.19846,-299.36685,132.5938,100,0,0,0), +(@NPC,12,26.517094,-284.21146,133.18738,100,0,0,0), +(@NPC,13,33.13867,-274.61475,133.0221,100,0,0,0), +(@NPC,14,49.698242,-254.70393,129.36476,100,0,0,0), +(@NPC,15,51.736652,-242.24323,129.54388,100,0,0,0), +(@NPC,16,58.5523,-233.14784,129.52432,100,0,0,0), +(@NPC,17,68.89204,-235.83255,129.54388,100,0,0,0), +(@NPC,18,81.033966,-227.33937,128.8015,100,0,0,0), +(@NPC,19,88.930016,-219.35107,127.74273,100,0,0,0), +(@NPC,20,99.61415,-203.17793,126.37726,100,0,0,0); +-- 0x2051680000100200000008000054FEC9 .go xyz 103.116 -186.76497 127.20985 + +-- Add formation +INSERT INTO `creature_groups` VALUES (16594, 16594, 0, 0, 1); +INSERT INTO `creature_groups` VALUES (16594, 16595, 2, 1.56, 1); +DELETE FROM `creature_movement` WHERE `id`=16595; +UPDATE `creature` SET `movement_type`=0,`position_x`=4.07884,`position_y`=-314.962,`position_z`=132.977 WHERE `guid`=16595; + +-- Pathing for Stormpike Battleguard Entry: 14284 +SET @NPC := 16594; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=2.406033,`position_y`=-313.8656,`position_z`=132.95499 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,2.406033,-313.8656,132.95499,100,0,0,0), +(@NPC,2,10.519856,-301.48434,132.67654,100,0,0,0), +(@NPC,3,19.927843,-289.34995,133.14389,100,0,0,0), +(@NPC,4,27.919922,-280.6845,133.57399,100,0,0,0), +(@NPC,5,42.269966,-263.3958,131.17068,100,0,0,0), +(@NPC,6,50.939453,-248.82593,129.1952,100,0,0,0), +(@NPC,7,54.188477,-237.81898,129.56352,100,0,0,0), +(@NPC,8,59.09082,-234.80124,129.5776,100,0,0,0), +(@NPC,9,68.63314,-234.3923,129.61089,100,0,0,0), +(@NPC,10,78.27745,-229.598,129.22675,100,0,0,0), +(@NPC,11,84.44618,-221.97975,128.56363,100,0,0,0), +(@NPC,12,94.70736,-211.75372,126.82122,100,0,0,0), +(@NPC,13,102.31608,-200.96086,126.3698,100,0,0,0), +(@NPC,14,102.67925,-190.42688,126.840996,100,0,0,0), +(@NPC,15,102.31608,-200.96086,126.3698,100,0,0,0), +(@NPC,16,94.74414,-211.71707,126.93881,100,0,0,0), +(@NPC,17,84.44618,-221.97975,128.56363,100,0,0,0), +(@NPC,18,78.27745,-229.598,129.22675,100,0,0,0), +(@NPC,19,68.63314,-234.3923,129.61089,100,0,0,0), +(@NPC,20,59.09082,-234.80124,129.5776,100,0,0,0), +(@NPC,21,54.188477,-237.81898,129.56352,100,0,0,0), +(@NPC,22,50.939453,-248.82593,129.1952,100,0,0,0), +(@NPC,23,42.269966,-263.3958,131.17068,100,0,0,0), +(@NPC,24,27.919922,-280.6845,133.57399,100,0,0,0), +(@NPC,25,19.927843,-289.34995,133.14389,100,0,0,0), +(@NPC,26,10.519856,-301.48434,132.67654,100,0,0,0); +-- 0x20516800000DF300000008000054FEC9 .go xyz 2.406033 -313.8656 132.95499 + +-- Add formation +INSERT INTO `creature_groups` VALUES (16597, 16597, 0, 0, 1); +INSERT INTO `creature_groups` VALUES (16597, 16598, 2, 1.56, 1); +DELETE FROM `creature_movement` WHERE `id`=16598; +UPDATE `creature` SET `movement_type`=0,`position_x`=399.49036,`position_y`=-1008.66956,`position_z`=111.5765 WHERE `guid`=16598; + +-- Pathing for Frostwolf Battleguard Entry: 14285 +SET @NPC := 16597; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=400.54807,`position_y`=-1006.9721,`position_z`=111.4201 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,400.54807,-1006.9721,111.4201,100,0,0,0), +(@NPC,2,417.56885,-1017.5779,111.95596,100,0,0,0), +(@NPC,3,431.93652,-1025.4332,112.46585,100,0,0,0), +(@NPC,4,458.3494,-1042.4708,108.24155,100,0,0,0), +(@NPC,5,466.46353,-1046.0063,108.07632,100,0,0,0), +(@NPC,6,477.20715,-1044.0026,108.41802,100,0,0,0), +(@NPC,7,484.17102,-1045.3865,108.422424,100,0,0,0), +(@NPC,8,483.02148,-1055.3776,108.6207,100,0,0,0), +(@NPC,9,482.9513,-1060.6968,108.57491,100,0,0,0), +(@NPC,10,490.05582,-1069.5542,107.91106,100,0,0,0), +(@NPC,11,498.68616,-1075.4703,107.34741,100,0,0,0), +(@NPC,12,511.56662,-1085.8783,105.41768,100,0,0,0), +(@NPC,13,518.6808,-1088.6979,105.3382,100,0,0,0), +(@NPC,14,531.08374,-1087.5563,105.797585,100,0,0,0), +(@NPC,15,518.6808,-1088.6979,105.3382,100,0,0,0), +(@NPC,16,511.56662,-1085.8783,105.41768,100,0,0,0), +(@NPC,17,498.68616,-1075.4703,107.34741,100,0,0,0), +(@NPC,18,490.05582,-1069.5542,107.91106,100,0,0,0), +(@NPC,19,482.9513,-1060.6968,108.57491,100,0,0,0), +(@NPC,20,483.02148,-1055.3776,108.6207,100,0,0,0), +(@NPC,21,484.17102,-1045.3865,108.422424,100,0,0,0), +(@NPC,22,477.20715,-1044.0026,108.41802,100,0,0,0), +(@NPC,23,466.46353,-1046.0063,108.07632,100,0,0,0), +(@NPC,24,458.3494,-1042.4708,108.24155,100,0,0,0), +(@NPC,25,431.93652,-1025.4332,112.46585,100,0,0,0), +(@NPC,26,417.56885,-1017.5779,111.95596,100,0,0,0); +-- 0x204CB000000DF3400000180002428D90 .go xyz 400.54807 -1006.9721 111.4201 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 991b1bceb7097181d42f117128847f5b60025b26 Mon Sep 17 00:00:00 2001 From: MantisLord Date: Wed, 15 Nov 2023 01:51:40 -0500 Subject: [PATCH 311/426] Add script for Archmage Tarsis Kir-Moldir 16381 (#1948) CMaNGOS counterpart: https://github.com/cmangos/tbc-db/commit/cc4efc8f057d6fbdc472a1bf165bd456cb397552 --- sql/migrations/20231115064630_world.sql | 72 +++++++++++++++++++ .../naxxramas/instance_naxxramas.cpp | 15 ---- .../eastern_plaguelands/naxxramas/naxxramas.h | 3 +- 3 files changed, 73 insertions(+), 17 deletions(-) create mode 100644 sql/migrations/20231115064630_world.sql diff --git a/sql/migrations/20231115064630_world.sql b/sql/migrations/20231115064630_world.sql new file mode 100644 index 00000000000..5b7d1f128ca --- /dev/null +++ b/sql/migrations/20231115064630_world.sql @@ -0,0 +1,72 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231115064630'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231115064630'); +-- Add your query below. + + +-- Archmage Tarsis Kir-Moldir 16381 +-- remove c++ script (npc_archmage_tarsis), correct gossip menu id +UPDATE creature_template SET script_name='', gossip_menu_id=7229 WHERE entry=16381; +DELETE FROM gossip_menu WHERE entry IN (8400,8401,8402,8403,8404,8405,8406,8407,8408,8409); +DELETE FROM gossip_menu WHERE entry IN (7229,7228,7227,7226,7225,7224,7223,7222,7233,7232,7231); +INSERT INTO gossip_menu (entry, text_id, script_id, condition_id) VALUES +(7229, 8524, 722901, 0), +(7228, 8517, 0, 0), +(7227, 8518, 0, 0), +(7226, 8519, 0, 0), +(7225, 8520, 0, 0), +(7224, 8521, 0, 0), +(7223, 8522, 0, 0), +(7222, 8523, 0, 0), +(7233, 8529, 0, 0), +(7232, 8530, 0, 0), +(7231, 8531, 0, 0); + +DELETE FROM gossip_menu_option WHERE menu_id IN (8400,8401,8402,8403,8404,8405,8406,8407,8408); +DELETE FROM locales_gossip_menu_option WHERE menu_id IN (8400,8401,8402,8403,8404,8405,8406,8407,8408); +DELETE FROM gossip_menu_option WHERE menu_id IN (7228,7227,7226,7225,7224,7223,7222,7233,7232); +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_broadcast_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`action_script_id`,`box_coded`,`box_money`,`box_text`,`box_broadcast_text`,`condition_id`) VALUES +(7228, 0, 0, 'What are you talking about, mage?', 12283, 1, 1, 7227, 0, 0, 0, 0, NULL, 0, 2301), +(7228, 1, 0, 'What is it Tarsis? I don''t know what to do!', 12313, 1, 1, -1, 0, 722902, 0, 0, NULL, 0, 2300), -- guessed +(7227, 0, 0, 'Why have you done such horrible things?', 12285, 1, 1, 7226, 0, 0, 0, 0, NULL, 0, 0), +(7226, 0, 0, 'I still do not understand.', 12287, 1, 1, 7225, 0, 0, 0, 0, NULL, 0, 0), +(7225, 0, 0, 'You are talking nonsense, mage. ', 12289, 1, 1, 7224, 0, 0, 0, 0, NULL, 0, 0), +(7224, 0, 0, 'What staff?', 12291, 1, 1, 7223, 0, 0, 0, 0, NULL, 0, 0), +(7223, 0, 0, 'You said you would have it back. What does that mean?', 12293, 1, 1, 7222, 0, 0, 0, 0, NULL, 0, 0), +(7222, 0, 0, 'What happened to the staff?', 12304, 1, 1, 7233, 0, 0, 0, 0, NULL, 0, 0), +(7233, 0, 0, 'So what has led you to Naxxramas?', 12306, 1, 1, 7232, 0, 0, 0, 0, NULL, 0, 0), +(7232, 0, 0, 'So Kel''Thuzad holds all of the pieces?', 12308, 1, 1, 7231, 0, 0, 0, 0, NULL, 0, 0); + +DELETE FROM conditions WHERE condition_entry IN (2300,2301); +INSERT INTO conditions (condition_entry, `type`, value1, value2, value3, value4, flags) VALUES +(2300, 2, 22727, 1, 0, 0, 0), -- player has 1 or more of item 22727 (Frame of Atiesh) in inventory +(2301, -3, 2300, 0, 0, 0, 0); -- NOT player has 1 or more of item 22727 (Frame of Atiesh) in inventory + +DELETE FROM gossip_scripts WHERE id IN (722902,722901); +INSERT INTO `gossip_scripts` (`id`,`delay`,`priority`,`command`,`datalong`,`datalong2`,`datalong3`,`datalong4`,`target_param1`,`target_param2`,`target_type`,`data_flags`,`dataint`,`dataint2`,`dataint3`,`dataint4`,`x`,`y`,`z`,`o`,`condition_id`,`comments`) VALUES +(722901, 0, 0, 4, 147, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Tarsis Kir-Moldir - Remove Gossip NPCFlag'), +(722901, 3, 0, 28, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Tarsis Kir-Moldir - Set Stand State to Kneel'), +(722901, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12295, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Tarsis Kir-Moldir - Say Emote Text'), -- "%s gets to one knee." +(722901, 6, 0, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Tarsis Kir-Moldir - Set Stand State to Sit'), +(722901, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12296, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Tarsis Kir-Moldir - Say Emote Text'), -- "%s sits down." +(722901, 7, 0, 84, 7228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Tarsis Kir-Moldir - Set Default Gossip Menu Id to 7228'), +(722901, 8, 0, 4, 147, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Tarsis Kir-Moldir - Add Gossip NPCFlag'), + +(722902, 0, 0, 4, 147, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Tarsis Kir-Moldir - Remove Gossip NPCFlag'), +(722902, 1, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Tarsis Kir-Moldir - Set Stand State to Stand'), -- guesswork +(722902, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12312, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Tarsis Kir-Moldir - Say Text'), -- "You... The frame! How? You must not... It... the Destroyer..." +(722902, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12314, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Tarsis Kir-Moldir - Say Emote Text'), -- "%s scratches at his throat." +(722902, 8, 0, 15, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Archmage Tarsis Kir-Moldir - Cast Suicide'); -- guesswork + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/instance_naxxramas.cpp b/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/instance_naxxramas.cpp index cd02b689656..c5bf39f9265 100644 --- a/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/instance_naxxramas.cpp +++ b/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/instance_naxxramas.cpp @@ -392,9 +392,6 @@ void instance_naxxramas::OnCreatureCreate(Creature* pCreature) if (m_auiEncounter[TYPE_GOTHIK] != IN_PROGRESS) m_lGothTriggerList.push_back(pCreature->GetGUID()); break; - case NPC_ArchmageTarsis: - pCreature->SetStandState(UNIT_STAND_STATE_DEAD); - break; case NPC_SewageSlime: pCreature->SetWanderDistance(30.0f); break; @@ -1772,13 +1769,6 @@ CreatureAI* GetAI_dark_touched_warrior(Creature* pCreature) return new mob_dark_touched_warriorAI(pCreature); } -bool GossipHello_npc_ArchmageTarsis(Player* pPlayer, Creature* pCreature) -{ - if (pCreature->GetStandState() != UNIT_STAND_STATE_SIT) - pCreature->SetStandState(UNIT_STAND_STATE_SIT); - return false; -} - enum OmarionMisc { QUEST_OMARIONS_HANDBOOK = 9233, @@ -2085,11 +2075,6 @@ void AddSC_instance_naxxramas() pNewScript->GetAI = &GetAI_dark_touched_warrior; pNewScript->RegisterSelf(); - pNewScript = new Script; - pNewScript->Name = "npc_archmage_tarsis"; - pNewScript->pGossipHello = &GossipHello_npc_ArchmageTarsis; - pNewScript->RegisterSelf(); - pNewScript = new Script; pNewScript->Name = "mob_craftsman_omarion"; pNewScript->pGossipHello = &GossipHello_npc_MasterCraftsmanOmarion; diff --git a/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/naxxramas.h b/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/naxxramas.h index 875c53afd0a..a9bfb651e29 100644 --- a/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/naxxramas.h +++ b/src/scripts/eastern_kingdoms/eastern_plaguelands/naxxramas/naxxramas.h @@ -137,8 +137,7 @@ enum NaxxNPCs : uint32 NPC_LightningTotem = 16385, NPC_PlaguedDeathhound = 16448, - NPC_EyeStalk = 16236, - NPC_ArchmageTarsis = 16381 + NPC_EyeStalk = 16236 }; enum NaxxAreaTriggers : uint32 From 41215a25e3b7d7128b68b71c45d9e3fea6ab7a54 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 15 Nov 2023 17:15:40 +0200 Subject: [PATCH 312/426] Allow dueling partybots. --- src/game/Objects/Object.cpp | 15 ++- src/game/PlayerBots/CombatBotBaseAI.cpp | 70 +++++++---- src/game/PlayerBots/CombatBotBaseAI.h | 14 ++- src/game/PlayerBots/PartyBotAI.cpp | 159 ++++++++++++++---------- 4 files changed, 159 insertions(+), 99 deletions(-) diff --git a/src/game/Objects/Object.cpp b/src/game/Objects/Object.cpp index b2ef2ed31d1..2b8188864e5 100644 --- a/src/game/Objects/Object.cpp +++ b/src/game/Objects/Object.cpp @@ -3660,7 +3660,7 @@ bool WorldObject::IsValidHelpfulTarget(Unit const* target, bool checkAlive) cons // this unit flag prevents casting on friendly or self too if (target == this) - return !HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE_2); + return !HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE_2) && (!checkAlive || target->IsAlive()); if (FindMap() != target->FindMap()) return false; @@ -3672,24 +3672,23 @@ bool WorldObject::IsValidHelpfulTarget(Unit const* target, bool checkAlive) cons target->GetReactionTo(this) < REP_UNFRIENDLY) return false; - Player const* playerAffectingAttacker = GetAffectingPlayer(); + Player const* playerAffectingCaster = GetAffectingPlayer(); Player const* playerAffectingTarget = target->GetAffectingPlayer(); // PvP checks - if (playerAffectingAttacker && playerAffectingTarget) + if (playerAffectingCaster && playerAffectingTarget) { // pet and owner - if (playerAffectingAttacker == playerAffectingTarget) + if (playerAffectingCaster == playerAffectingTarget) return true; // cannot help others in duels - if (playerAffectingAttacker->duel && playerAffectingAttacker->duel->startTime != 0 || - playerAffectingTarget->duel && playerAffectingTarget->duel->startTime != 0) + if (playerAffectingTarget->duel && playerAffectingTarget->duel->startTime != 0) return false; // group forces friendly relations in ffa pvp - if (playerAffectingAttacker->IsFFAPvP() && playerAffectingTarget->IsFFAPvP() && - !playerAffectingAttacker->IsInSameRaidWith(playerAffectingTarget)) + if (playerAffectingCaster->IsFFAPvP() && playerAffectingTarget->IsFFAPvP() && + !playerAffectingCaster->IsInSameRaidWith(playerAffectingTarget)) return false; } diff --git a/src/game/PlayerBots/CombatBotBaseAI.cpp b/src/game/PlayerBots/CombatBotBaseAI.cpp index 9b6d51bfca8..06a3afb4439 100644 --- a/src/game/PlayerBots/CombatBotBaseAI.cpp +++ b/src/game/PlayerBots/CombatBotBaseAI.cpp @@ -1837,7 +1837,6 @@ void CombatBotBaseAI::AddAllSpellReagents() } } - bool CombatBotBaseAI::AreOthersOnSameTarget(ObjectGuid guid, bool checkMelee, bool checkSpells) const { Group* pGroup = me->GetGroup(); @@ -1976,7 +1975,7 @@ bool CombatBotBaseAI::HealInjuredTargetDirect(Unit* pTarget) bool CombatBotBaseAI::IsValidHealTarget(Unit const* pTarget, float healthPercent) const { return (pTarget->GetHealthPercent() < healthPercent) && - pTarget->IsAlive() && + me->IsValidHelpfulTarget(pTarget) && me->IsWithinLOSInMap(pTarget) && me->IsWithinDist(pTarget, 30.0f); } @@ -1986,6 +1985,9 @@ Unit* CombatBotBaseAI::SelectHealTarget(float selfHealPercent, float groupHealPe if (me->GetHealthPercent() < selfHealPercent) return me; + if (IsInDuel()) + return nullptr; + Unit* pTarget = nullptr; float healthPercent = 100.0f; @@ -2029,6 +2031,9 @@ Unit* CombatBotBaseAI::SelectPeriodicHealTarget(float selfHealPercent, float gro !me->HasAuraType(SPELL_AURA_PERIODIC_HEAL)) return me; + if (IsInDuel()) + return nullptr; + if (Group* pGroup = me->GetGroup()) { for (GroupReference* itr = pGroup->GetFirstMember(); itr != nullptr; itr = itr->next()) @@ -2055,30 +2060,33 @@ bool CombatBotBaseAI::FindAndPreHealTarget() Unit* pTarget = me; int32 maxIncomingDamage = GetIncomingdamage(me); - if (Group* pGroup = me->GetGroup()) + if (!IsInDuel()) { - for (GroupReference* itr = pGroup->GetFirstMember(); itr != nullptr; itr = itr->next()) + if (Group* pGroup = me->GetGroup()) { - if (Unit* pMember = itr->getSource()) + for (GroupReference* itr = pGroup->GetFirstMember(); itr != nullptr; itr = itr->next()) { - // We already checked self. - if (pMember == me) - continue; + if (Unit* pMember = itr->getSource()) + { + // We already checked self. + if (pMember == me) + continue; - // Avoid all healers picking same target. - if (pTarget && !IsTankClass(pMember->GetClass()) && AreOthersOnSameTarget(pMember->GetObjectGuid(), false, true)) - continue; + // Avoid all healers picking same target. + if (pTarget && !IsTankClass(pMember->GetClass()) && AreOthersOnSameTarget(pMember->GetObjectGuid(), false, true)) + continue; - int32 incomingDamage = GetIncomingdamage(pMember); - if (!incomingDamage) - continue; + int32 incomingDamage = GetIncomingdamage(pMember); + if (!incomingDamage) + continue; - // Check if we should heal party member. - if (incomingDamage > maxIncomingDamage && - IsValidHealTarget(pMember)) - { - maxIncomingDamage = incomingDamage; - pTarget = pMember; + // Check if we should heal party member. + if (incomingDamage > maxIncomingDamage && + IsValidHealTarget(pMember)) + { + maxIncomingDamage = incomingDamage; + pTarget = pMember; + } } } } @@ -2225,7 +2233,7 @@ Player* CombatBotBaseAI::SelectBuffTarget(SpellEntry const* pSpellEntry) const { if (Player* pMember = itr->getSource()) { - if (pMember->IsAlive() && + if (me->IsValidHelpfulTarget(pMember) && !pMember->IsGameMaster() && IsValidBuffTarget(pMember, pSpellEntry) && me->IsWithinLOSInMap(pMember) && @@ -2247,7 +2255,7 @@ Player* CombatBotBaseAI::SelectDispelTarget(SpellEntry const* pSpellEntry) const { if (Player* pMember = itr->getSource()) { - if (pMember->IsAlive() && + if (me->IsValidHelpfulTarget(pMember) && !pMember->IsGameMaster() && IsValidDispelTarget(pMember, pSpellEntry) && me->IsWithinLOSInMap(pMember) && @@ -3035,6 +3043,24 @@ bool CombatBotBaseAI::IsWearingShield(Player* pPlayer) const return false; } +bool CombatBotBaseAI::IsInDuel() const +{ + return me->duel && me->duel->startTime != 0; +} + +CombatBotRoles CombatBotBaseAI::GetRole() const +{ + if (m_role == ROLE_HEALER && IsInDuel()) + { + if (IsMeleeDamageClass(me->GetClass())) + return ROLE_MELEE_DPS; + else + return ROLE_RANGE_DPS; + } + + return m_role; +} + void CombatBotBaseAI::SendBattlefieldPortPacket() { for (uint32 i = BATTLEGROUND_QUEUE_AV; i <= BATTLEGROUND_QUEUE_AB; i++) diff --git a/src/game/PlayerBots/CombatBotBaseAI.h b/src/game/PlayerBots/CombatBotBaseAI.h index 0ecccdd7545..a14b928a54e 100644 --- a/src/game/PlayerBots/CombatBotBaseAI.h +++ b/src/game/PlayerBots/CombatBotBaseAI.h @@ -124,6 +124,8 @@ class CombatBotBaseAI : public PlayerBotAI SpellCastResult DoCastSpell(Unit* pTarget, SpellEntry const* pSpellEntry); virtual bool CanTryToCastSpell(Unit const* pTarget, SpellEntry const* pSpellEntry) const; bool IsWearingShield(Player* pPlayer) const; + bool IsInDuel() const; + CombatBotRoles GetRole() const; void EquipOrUseNewItem(); void AddItemToInventory(uint32 itemId, uint32 count = 1); @@ -189,12 +191,12 @@ class CombatBotBaseAI : public PlayerBotAI { switch (playerClass) { - case CLASS_WARRIOR: - case CLASS_PALADIN: - case CLASS_ROGUE: - case CLASS_SHAMAN: - case CLASS_DRUID: - return true; + case CLASS_WARRIOR: + case CLASS_PALADIN: + case CLASS_ROGUE: + case CLASS_SHAMAN: + case CLASS_DRUID: + return true; } return false; } diff --git a/src/game/PlayerBots/PartyBotAI.cpp b/src/game/PlayerBots/PartyBotAI.cpp index 35327e2a4ca..2e2aa8fbefc 100644 --- a/src/game/PlayerBots/PartyBotAI.cpp +++ b/src/game/PlayerBots/PartyBotAI.cpp @@ -268,7 +268,7 @@ bool PartyBotAI::CanTryToCastSpell(Unit const* pTarget, SpellEntry const* pSpell if (!CombatBotBaseAI::CanTryToCastSpell(pTarget, pSpellEntry)) return false; - if (pSpellEntry->IsAreaOfEffectSpell() && !pSpellEntry->IsPositiveSpell()) + if (pSpellEntry->IsAreaOfEffectSpell() && !pSpellEntry->IsPositiveSpell() && !IsInDuel()) { if (!m_marksToCC.empty()) return false; @@ -312,6 +312,9 @@ bool PartyBotAI::CanTryToCastSpell(Unit const* pTarget, SpellEntry const* pSpell bool PartyBotAI::CanUseCrowdControl(SpellEntry const* pSpellEntry, Unit* pTarget) const { + if (IsInDuel()) + return true; + if (pSpellEntry->HasAuraInterruptFlag(AURA_INTERRUPT_DAMAGE_CANCELS) && AreOthersOnSameTarget(pTarget->GetObjectGuid())) return false; @@ -335,14 +338,14 @@ bool PartyBotAI::AttackStart(Unit* pVictim) if (me->Attack(pVictim, true)) { - if (m_role == ROLE_RANGE_DPS && + if (GetRole() == ROLE_RANGE_DPS && me->GetPowerPercent(POWER_MANA) > 10.0f && me->GetCombatDistance(pVictim) > 8.0f) me->SetCasterChaseDistance(25.0f); else if (me->HasDistanceCasterMovement()) me->SetCasterChaseDistance(0.0f); - me->GetMotionMaster()->MoveChase(pVictim, 1.0f, m_role == ROLE_MELEE_DPS ? 3.0f : 0.0f); + me->GetMotionMaster()->MoveChase(pVictim, 1.0f, GetRole() == ROLE_MELEE_DPS ? 3.0f : 0.0f); return true; } @@ -360,24 +363,32 @@ Unit* PartyBotAI::GetMarkedTarget(RaidTargetIcon mark) const Unit* PartyBotAI::SelectAttackTarget(Player* pLeader) const { - // Stick to marked target in combat. - if (me->IsInCombat() || pLeader->GetVictim()) + if (IsInDuel()) + { + if (me->duel->opponent && IsValidHostileTarget(me->duel->opponent)) + return me->duel->opponent; + } + else { - for (auto markId : m_marksToFocus) + // Stick to marked target in combat. + if (me->IsInCombat() || pLeader->GetVictim()) { - ObjectGuid targetGuid = me->GetGroup()->GetTargetWithIcon(markId); - if (targetGuid.IsUnit()) - if (Unit* pVictim = me->GetMap()->GetUnit(targetGuid)) - if (IsValidHostileTarget(pVictim)) - return pVictim; + for (auto markId : m_marksToFocus) + { + ObjectGuid targetGuid = me->GetGroup()->GetTargetWithIcon(markId); + if (targetGuid.IsUnit()) + if (Unit* pVictim = me->GetMap()->GetUnit(targetGuid)) + if (IsValidHostileTarget(pVictim)) + return pVictim; + } } - } - // Who is the leader attacking. - if (Unit* pVictim = pLeader->GetVictim()) - { - if (IsValidHostileTarget(pVictim)) - return pVictim; + // Who is the leader attacking. + if (Unit* pVictim = pLeader->GetVictim()) + { + if (IsValidHostileTarget(pVictim)) + return pVictim; + } } // Who is attacking me. @@ -387,9 +398,12 @@ Unit* PartyBotAI::SelectAttackTarget(Player* pLeader) const return pAttacker; } - // Check if other group members are under attack. - if (Unit* pPartyAttacker = SelectPartyAttackTarget()) - return pPartyAttacker; + if (!IsInDuel()) + { + // Check if other group members are under attack. + if (Unit* pPartyAttacker = SelectPartyAttackTarget()) + return pPartyAttacker; + } // Assist pet if its in combat. if (Pet* pPet = me->GetPet()) @@ -427,6 +441,9 @@ Unit* PartyBotAI::SelectPartyAttackTarget() const Player* PartyBotAI::SelectResurrectionTarget() const { + if (IsInDuel()) + return nullptr; + Group* pGroup = me->GetGroup(); for (GroupReference* itr = pGroup->GetFirstMember(); itr != nullptr; itr = itr->next()) { @@ -452,6 +469,9 @@ Player* PartyBotAI::SelectResurrectionTarget() const Player* PartyBotAI::SelectShieldTarget() const { + if (IsInDuel()) + return nullptr; + Group* pGroup = me->GetGroup(); for (GroupReference* itr = pGroup->GetFirstMember(); itr != nullptr; itr = itr->next()) { @@ -539,6 +559,13 @@ void PartyBotAI::OnPacketReceived(WorldPacket const* packet) m_resetSpellData = true; return; } + case SMSG_DUEL_REQUESTED: + { + std::unique_ptr data = std::make_unique(CMSG_DUEL_ACCEPTED, 8); + *data << me->GetObjectGuid(); + me->GetSession()->QueuePacket(std::move(data)); + return; + } } CombatBotBaseAI::OnPacketReceived(packet); @@ -751,7 +778,7 @@ void PartyBotAI::UpdateAI(uint32 const diff) } // Teleport to leader if too far away. - if (!me->IsWithinDistInMap(pLeader, 100.0f)) + if (!me->IsWithinDistInMap(pLeader, 100.0f) && !IsInDuel()) { if (!me->IsStopped()) me->StopMoving(); @@ -780,7 +807,7 @@ void PartyBotAI::UpdateAI(uint32 const diff) Unit* pVictim = me->GetVictim(); - if (m_role != ROLE_HEALER) + if (GetRole() != ROLE_HEALER) { if (!pVictim || !IsValidHostileTarget(pVictim)) { @@ -832,7 +859,7 @@ void PartyBotAI::UpdateAI(uint32 const diff) else { if (!me->HasUnitState(UNIT_STAT_MELEE_ATTACKING) && - (m_role == ROLE_MELEE_DPS || m_role == ROLE_TANK) && + (GetRole() == ROLE_MELEE_DPS || m_role == ROLE_TANK) && IsValidHostileTarget(pVictim) && AttackStart(pVictim)) return; @@ -854,14 +881,17 @@ void PartyBotAI::UpdateAI(uint32 const diff) void PartyBotAI::UpdateOutOfCombatAI() { - if (m_resurrectionSpell) - if (Player* pTarget = SelectResurrectionTarget()) - if (CanTryToCastSpell(pTarget, m_resurrectionSpell)) - if (DoCastSpell(pTarget, m_resurrectionSpell) == SPELL_CAST_OK) - return; + if (!IsInDuel()) + { + if (m_resurrectionSpell) + if (Player* pTarget = SelectResurrectionTarget()) + if (CanTryToCastSpell(pTarget, m_resurrectionSpell)) + if (DoCastSpell(pTarget, m_resurrectionSpell) == SPELL_CAST_OK) + return; - if (m_role != ROLE_TANK && me->GetVictim() && CrowdControlMarkedTargets()) - return; + if (m_role != ROLE_TANK && me->GetVictim() && CrowdControlMarkedTargets()) + return; + } switch (me->GetClass()) { @@ -897,35 +927,38 @@ void PartyBotAI::UpdateOutOfCombatAI() void PartyBotAI::UpdateInCombatAI() { - if (m_role == ROLE_TANK) + if (!IsInDuel()) { - Unit* pVictim = me->GetVictim(); - - // Defend party members. - if (!pVictim || pVictim->GetVictim() == me) + if (m_role == ROLE_TANK) { - if (pVictim = SelectPartyAttackTarget()) + Unit* pVictim = me->GetVictim(); + + // Defend party members. + if (!pVictim || pVictim->GetVictim() == me) { - me->AttackStop(true); - AttackStart(pVictim); + if (pVictim = SelectPartyAttackTarget()) + { + me->AttackStop(true); + AttackStart(pVictim); + } } - } - // Taunt target if its attacking someone else. - if (pVictim && pVictim->GetVictim() != me) - { - for (const auto& pSpellEntry : spellListTaunt) + // Taunt target if its attacking someone else. + if (pVictim && pVictim->GetVictim() != me) { - if (CanTryToCastSpell(pVictim, pSpellEntry)) + for (const auto& pSpellEntry : spellListTaunt) { - if (DoCastSpell(pVictim, pSpellEntry) == SPELL_CAST_OK) - return; + if (CanTryToCastSpell(pVictim, pSpellEntry)) + { + if (DoCastSpell(pVictim, pSpellEntry) == SPELL_CAST_OK) + return; + } } } } + else if (CrowdControlMarkedTargets()) + return; } - else if (CrowdControlMarkedTargets()) - return; switch (me->GetClass()) { @@ -1076,7 +1109,7 @@ void PartyBotAI::UpdateInCombatAI_Paladin() } } - if (m_role == ROLE_HEALER) + if (GetRole() == ROLE_HEALER) { if (m_spells.paladin.pHolyShock && me->GetHealthPercent() < 50.0f && @@ -1194,7 +1227,7 @@ void PartyBotAI::UpdateInCombatAI_Paladin() return; } - if (m_role != ROLE_HEALER && + if (GetRole() != ROLE_HEALER && me->GetHealthPercent() < 30.0f) HealInjuredTarget(me); } @@ -1238,7 +1271,7 @@ void PartyBotAI::UpdateInCombatAI_Shaman() return; } - if (m_role != ROLE_HEALER) + if (GetRole() != ROLE_HEALER) { if (Unit* pVictim = me->GetVictim()) { @@ -1296,7 +1329,7 @@ void PartyBotAI::UpdateInCombatAI_Shaman() } if (m_spells.shaman.pLightningBolt && - (m_role == ROLE_RANGE_DPS || !me->CanReachWithMeleeAutoAttack(pVictim)) && + (GetRole() == ROLE_RANGE_DPS || !me->CanReachWithMeleeAutoAttack(pVictim)) && CanTryToCastSpell(pVictim, m_spells.shaman.pLightningBolt)) { if (DoCastSpell(pVictim, m_spells.shaman.pLightningBolt) == SPELL_CAST_OK) @@ -1332,7 +1365,7 @@ void PartyBotAI::UpdateInCombatAI_Shaman() } } - if (m_role == ROLE_HEALER) + if (GetRole() == ROLE_HEALER) { if (FindAndHealInjuredAlly(50.0f, 90.0f)) return; @@ -1513,7 +1546,7 @@ void PartyBotAI::UpdateInCombatAI_Hunter() if (!me->HasUnitState(UNIT_STAT_ROOT) && (me->GetCombatDistance(pVictim) < 8.0f) && - (m_role != ROLE_MELEE_DPS) && + (GetRole() != ROLE_MELEE_DPS) && me->GetMotionMaster()->GetCurrentMovementGeneratorType() != DISTANCING_MOTION_TYPE) { if (!me->IsStopped()) @@ -1627,7 +1660,7 @@ void PartyBotAI::UpdateInCombatAI_Mage() return; } - if ((m_role != ROLE_MELEE_DPS) && + if ((GetRole() != ROLE_MELEE_DPS) && (me->GetMotionMaster()->GetCurrentMovementGeneratorType() != DISTANCING_MOTION_TYPE)) { if (m_spells.mage.pBlink && @@ -1931,7 +1964,7 @@ void PartyBotAI::UpdateInCombatAI_Priest() DoCastSpell(me, m_spells.priest.pInnerFocus); } - if (m_role == ROLE_HEALER || (!me->GetVictim() && me->GetShapeshiftForm() == FORM_NONE)) + if (GetRole() == ROLE_HEALER || (!me->GetVictim() && me->GetShapeshiftForm() == FORM_NONE)) { // Shield allies being attacked. if (m_spells.priest.pPowerWordShield) @@ -1980,7 +2013,7 @@ void PartyBotAI::UpdateInCombatAI_Priest() } } - if (m_role == ROLE_HEALER && FindAndPreHealTarget()) + if (GetRole() == ROLE_HEALER && FindAndPreHealTarget()) return; } else if (Unit* pVictim = me->GetVictim()) @@ -2850,7 +2883,7 @@ void PartyBotAI::UpdateInCombatAI_Rogue() bool PartyBotAI::EnterCombatDruidForm() { if (m_spells.druid.pCatForm && - m_role == ROLE_MELEE_DPS && + GetRole() == ROLE_MELEE_DPS && CanTryToCastSpell(me, m_spells.druid.pCatForm)) { if (DoCastSpell(me, m_spells.druid.pCatForm) == SPELL_CAST_OK) @@ -2858,7 +2891,7 @@ bool PartyBotAI::EnterCombatDruidForm() } if (m_spells.druid.pBearForm && - (m_role == ROLE_TANK || m_role == ROLE_MELEE_DPS) && + (m_role == ROLE_TANK || GetRole() == ROLE_MELEE_DPS) && CanTryToCastSpell(me, m_spells.druid.pBearForm)) { if (DoCastSpell(me, m_spells.druid.pBearForm) == SPELL_CAST_OK) @@ -2866,7 +2899,7 @@ bool PartyBotAI::EnterCombatDruidForm() } if (m_spells.druid.pMoonkinForm && - m_role == ROLE_RANGE_DPS && + GetRole() == ROLE_RANGE_DPS && CanTryToCastSpell(me, m_spells.druid.pMoonkinForm)) { if (DoCastSpell(me, m_spells.druid.pMoonkinForm) == SPELL_CAST_OK) @@ -2879,7 +2912,7 @@ bool PartyBotAI::EnterCombatDruidForm() void PartyBotAI::UpdateOutOfCombatAI_Druid() { // Make sure bot leaves combat form if his role is changed to healer. - if (m_role == ROLE_HEALER && me->GetShapeshiftForm() != FORM_NONE && + if (GetRole() == ROLE_HEALER && me->GetShapeshiftForm() != FORM_NONE && me->HasAuraType(SPELL_AURA_MOD_SHAPESHIFT)) { me->RemoveSpellsCausingAura(SPELL_AURA_MOD_SHAPESHIFT); @@ -3038,7 +3071,7 @@ void PartyBotAI::UpdateInCombatAI_Druid() return; } - if (m_role == ROLE_HEALER && FindAndPreHealTarget()) + if (GetRole() == ROLE_HEALER && FindAndPreHealTarget()) return; if (EnterCombatDruidForm()) @@ -3055,7 +3088,7 @@ void PartyBotAI::UpdateInCombatAI_Druid() (m_role != ROLE_TANK || !me->CanReachWithMeleeAutoAttack(pVictim))) me->RemoveSpellsCausingAura(SPELL_AURA_MOD_SHAPESHIFT); - if (m_role == ROLE_HEALER) + if (GetRole() == ROLE_HEALER) return; switch (form) From f74ee8e641424925b9af32d65fd79f3b0f417488 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 16 Nov 2023 07:02:09 +0200 Subject: [PATCH 313/426] Auto attacks should not check line of sight. https://www.youtube.com/watch?v=jeOyKpTbEWU https://www.youtube.com/watch?v=3Q4twcoPVdU --- src/game/Objects/Unit.cpp | 4 ---- src/game/Objects/UnitDefines.h | 3 --- .../kalimdor/silithus/temple_of_ahnqiraj/boss_skeram.cpp | 2 +- 3 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 3caeda78366..7fe9de108ee 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -342,10 +342,6 @@ AutoAttackCheckResult Unit::CanAutoAttackTarget(Unit const* pVictim) const if (!CanReachWithMeleeAutoAttack(pVictim)) return ATTACK_RESULT_NOT_IN_RANGE; - // Creature attacks should probably ignore LoS too, but it might open up exploits. - if (!(IsPlayer() && pVictim->IsPlayer()) && !HasUnitState(UNIT_STAT_ALLOW_LOS_ATTACK) && !IsWithinLOSInMap(pVictim)) - return ATTACK_RESULT_NOT_IN_RANGE; - if (GetDistance2dToCenter(pVictim) > NO_FACING_CHECKS_DISTANCE) { if (!HasInArc(pVictim, 2 * M_PI_F / 3)) diff --git a/src/game/Objects/UnitDefines.h b/src/game/Objects/UnitDefines.h index 693e0ff8c28..5c4f363f12e 100644 --- a/src/game/Objects/UnitDefines.h +++ b/src/game/Objects/UnitDefines.h @@ -426,7 +426,6 @@ enum UnitState UNIT_STAT_RUNNING = 0x01000000, UNIT_STAT_ALLOW_INCOMPLETE_PATH = 0x02000000, // allow movement with incomplete or partial paths - UNIT_STAT_ALLOW_LOS_ATTACK = 0x04000000, // allow melee attacks without LoS UNIT_STAT_NO_SEARCH_FOR_OTHERS = 0x08000000, // MoveInLineOfSight will not be called UNIT_STAT_NO_BROADCAST_TO_OTHERS = 0x10000000, // ScheduleAINotify will not be called @@ -519,8 +518,6 @@ static char const* UnitStateToString(uint32 state) return "Running"; case UNIT_STAT_ALLOW_INCOMPLETE_PATH: return "Allow Incomplete Path"; - case UNIT_STAT_ALLOW_LOS_ATTACK: - return "Allow LoS Attack"; case UNIT_STAT_NO_SEARCH_FOR_OTHERS: return "No Search for Others"; case UNIT_STAT_NO_BROADCAST_TO_OTHERS: diff --git a/src/scripts/kalimdor/silithus/temple_of_ahnqiraj/boss_skeram.cpp b/src/scripts/kalimdor/silithus/temple_of_ahnqiraj/boss_skeram.cpp index 295dcd26c36..e62ebc86223 100644 --- a/src/scripts/kalimdor/silithus/temple_of_ahnqiraj/boss_skeram.cpp +++ b/src/scripts/kalimdor/silithus/temple_of_ahnqiraj/boss_skeram.cpp @@ -101,7 +101,7 @@ struct boss_skeramAI : public ScriptedAI // an mmap system that let them add invisible ramps for creatures). However, we can // obtain partial paths next to it. Normally, these are ignored, but we can set a // flag to allow them. They may put us out of LoS so allow autos through them too. - m_creature->AddUnitState(UNIT_STAT_ALLOW_INCOMPLETE_PATH | UNIT_STAT_ALLOW_LOS_ATTACK); + //m_creature->AddUnitState(UNIT_STAT_ALLOW_INCOMPLETE_PATH | UNIT_STAT_ALLOW_LOS_ATTACK); m_creature->SetMeleeZReach(74.0f); } From 8845e2c5f0e01d64d708dfa66e364c5b80c26068 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 16 Nov 2023 08:46:19 +0200 Subject: [PATCH 314/426] Fixes for Eye for an Eye. --- sql/migrations/20231116054516_world.sql | 32 +++++++++++++++++++++++++ src/game/Spells/SpellMgr.cpp | 2 +- src/game/UnitAuraProcHandler.cpp | 23 +++++++++++------- 3 files changed, 48 insertions(+), 9 deletions(-) create mode 100644 sql/migrations/20231116054516_world.sql diff --git a/sql/migrations/20231116054516_world.sql b/sql/migrations/20231116054516_world.sql new file mode 100644 index 00000000000..86a8ebef5ea --- /dev/null +++ b/sql/migrations/20231116054516_world.sql @@ -0,0 +1,32 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231116054516'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231116054516'); +-- Add your query below. + + +ALTER TABLE `spell_proc_event` + DROP PRIMARY KEY, + ADD PRIMARY KEY (`entry`, `build_min`, `build_max`); + +/* +World of Warcraft Client Patch 1.10.0 (2006-03-28) +- If a paladin avoids damage with Divine Shield, Eye for an Eye will + not react. +*/ +-- Eye for an Eye should proc from absorbed crits too. +DELETE FROM `spell_proc_event` WHERE `entry`=9799; +INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`, `build_min`, `build_max`) VALUES (9799, 0, 0, 0, 0, 0, 131072, 1282, 0, 0, 0, 5086, 5086); +INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`, `build_min`, `build_max`) VALUES (9799, 0, 0, 0, 0, 0, 0, 1026, 0, 0, 0, 5302, 5875); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Spells/SpellMgr.cpp b/src/game/Spells/SpellMgr.cpp index d6c323c7245..aab6448efa1 100644 --- a/src/game/Spells/SpellMgr.cpp +++ b/src/game/Spells/SpellMgr.cpp @@ -319,7 +319,7 @@ void SpellMgr::LoadSpellProcEvents() mSpellProcEventMap.clear(); // need for reload case // 0 1 2 3 4 5 6 7 8 9 10 - std::unique_ptr result(WorldDatabase.PQuery("SELECT `entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown` FROM `spell_proc_event` WHERE (`build_min` <= %u) && (`build_max` >= %u)", SUPPORTED_CLIENT_BUILD, SUPPORTED_CLIENT_BUILD)); + std::unique_ptr result(WorldDatabase.PQuery("SELECT `entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown` FROM `spell_proc_event` WHERE %u BETWEEN `build_min` AND `build_max`", SUPPORTED_CLIENT_BUILD)); if (!result) { BarGoLink bar(1); diff --git a/src/game/UnitAuraProcHandler.cpp b/src/game/UnitAuraProcHandler.cpp index 8a791154cd7..9a329bcb8d6 100644 --- a/src/game/UnitAuraProcHandler.cpp +++ b/src/game/UnitAuraProcHandler.cpp @@ -256,16 +256,23 @@ SpellProcEventTriggerCheck Unit::IsTriggeredAtSpellProcEvent(Unit* pVictim, Spel { #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 // Eye for an Eye -#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_9_4 - if (spellProto->SpellIconID == 1820) -#else - if (spellProto->SpellIconID == 1799) -#endif + if (spellProto->Id == 9799 || spellProto->Id == 25988) { - if (procFlag & PROC_FLAG_TAKE_HARMFUL_SPELL && procExtra & PROC_EX_CRITICAL_HIT) - return SPELL_PROC_TRIGGER_OK; - else +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_9_4 + // World of Warcraft Client Patch 1.10.0 (2006-03-28) + // - Eye for an Eye - This talent can now trigger while you are mounted. + if (IsMounted()) return SPELL_PROC_TRIGGER_FAILED; + + // World of Warcraft Client Patch 1.10.0 (2006-03-28) + // - If a paladin avoids damage with Divine Shield, Eye for an Eye will + // not react. + if (!((procFlag & PROC_FLAG_TAKE_HARMFUL_SPELL) && (procExtra & (PROC_EX_CRITICAL_HIT | PROC_EX_IMMUNE)))) + return SPELL_PROC_TRIGGER_FAILED; +#else + if (!((procFlag & PROC_FLAG_TAKE_HARMFUL_SPELL) && (procExtra & PROC_EX_CRITICAL_HIT))) + return SPELL_PROC_TRIGGER_FAILED; +#endif } #endif // Improved Lay on Hands From 6126528d536bc75881eab3be46f5bbeca6bbb315 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 16 Nov 2023 15:10:51 +0200 Subject: [PATCH 315/426] Fix Zandalarian Hero Charm for all versions. --- sql/migrations/20231116124934_world.sql | 22 +++++++ src/game/Spells/SpellAuras.cpp | 18 +++++ src/game/Spells/SpellEffects.cpp | 3 + src/game/UnitAuraProcHandler.cpp | 88 ++++++++++++++++++------- 4 files changed, 106 insertions(+), 25 deletions(-) create mode 100644 sql/migrations/20231116124934_world.sql diff --git a/sql/migrations/20231116124934_world.sql b/sql/migrations/20231116124934_world.sql new file mode 100644 index 00000000000..a60228e628e --- /dev/null +++ b/sql/migrations/20231116124934_world.sql @@ -0,0 +1,22 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231116124934'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231116124934'); +-- Add your query below. + + +-- Fix Zandalarian Hero Charm. +DELETE FROM `spell_proc_event` WHERE `entry` IN (24658, 24659); +INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`, `build_min`, `build_max`) VALUES (24659, 0, 0, 0, 0, 0, 0, 524288, 0, 0, 0, 5302, 5875); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index 43ba6df0b63..e17d26d23c8 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -2120,6 +2120,7 @@ void Aura::HandleAuraDummy(bool apply, bool Real) return; } +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_9_4 case 24658: // Unstable Power { if (apply) @@ -2134,6 +2135,7 @@ void Aura::HandleAuraDummy(bool apply, bool Real) target->RemoveAurasDueToSpell(24659); return; } +#endif case 26681: // Love is in the Air - Cologne case 26682: // Love is in the Air - Perfume { @@ -4401,6 +4403,22 @@ void Aura::HandleAuraProcTriggerSpell(bool apply, bool Real) switch (GetId()) { +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_6_1 && SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_9_4 + case 24658: // Zandalarian Hero Charm - Unstable Power + { + if (apply) + { + Unit* caster = GetCaster(); + if (!caster) + return; + + caster->CastSpell(GetTarget(), 24659, true, nullptr, nullptr, GetCasterGuid()); + } + else + GetTarget()->RemoveAurasDueToSpell(24659); + break; + } +#endif // some spell have charges by functionality not have its in spell data case 28200: // Ascendance (Talisman of Ascendance trinket) { diff --git a/src/game/Spells/SpellEffects.cpp b/src/game/Spells/SpellEffects.cpp index 0b6bced0851..2a2d951333d 100644 --- a/src/game/Spells/SpellEffects.cpp +++ b/src/game/Spells/SpellEffects.cpp @@ -4706,6 +4706,9 @@ void Spell::EffectScriptEffect(SpellEffectIndex effIdx) case 24590: // Brittle Armor - need remove one 24575 Brittle Armor aura unitTarget->RemoveAuraHolderFromStack(24575); return; + case 24660: // Zandalarian Hero Charm - Unstable Power + unitTarget->RemoveAuraHolderFromStack(24659); + return; case 24693: // Hakkar Power Down - cast by priests on death { if (!m_casterUnit) diff --git a/src/game/UnitAuraProcHandler.cpp b/src/game/UnitAuraProcHandler.cpp index 9a329bcb8d6..72a272f74a2 100644 --- a/src/game/UnitAuraProcHandler.cpp +++ b/src/game/UnitAuraProcHandler.cpp @@ -301,26 +301,6 @@ SpellProcEventTriggerCheck Unit::IsTriggeredAtSpellProcEvent(Unit* pVictim, Spel if ((procSpell->Id == 20424) && (spellProto->SpellIconID == 84)) return SPELL_PROC_TRIGGER_FAILED; #endif - // Zandalarian Hero Charm - Unstable Power - if (spellProto->Id == 24658) - { - // World of Warcraft Client Patch 1.10.0 (2006-03-28) - // - The charges from the Zandalarian Hero Charm will now be consumed by - // melee and ranged abilities and spells which do non - physical damage. - // This includes : Hammer of Wrath, Judgement of Righteousness, Seal of - // Command, Judgement of Command, Volley, and Arcane Shot.The trinket - // will also now burn charges from each casting of a damage over time - // spell, heal over time spell, and area aura spells such as Blizzard - // and Consecration. Only one charge will be burned per area spell cast, - // rather than multiple charges per target hit as was previously the case. -#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_9_4 - if ((procFlag & (PROC_FLAG_DEAL_MELEE_ABILITY | PROC_FLAG_DEAL_RANGED_ABILITY)) && (procSpell->School != SPELL_SCHOOL_NORMAL)) - return SPELL_PROC_TRIGGER_OK; -#else - if ((procFlag & (PROC_FLAG_DEAL_HARMFUL_PERIODIC)) && (procSpell->School != SPELL_SCHOOL_NORMAL)) - return SPELL_PROC_TRIGGER_OK; -#endif - } // DRUID // Omen of Clarity if (spellProto->Id == 16864) @@ -674,9 +654,8 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit* pVictim, uint32 damage, Aura case 24658: { // Need to remove one 24659 aura - // Holy Nova both heals and damages, so check needed to avoid consuming 2 charges - if (!procSpell->IsFitToFamilyMask()) - RemoveAuraHolderFromStack(24659); + // It does consume 2 charges on using Holy Nova, confirmed on classic era ptr. + RemoveAuraHolderFromStack(24659); return SPELL_AURA_PROC_OK; } // Restless Strength @@ -1946,8 +1925,67 @@ SpellAuraProcResult Unit::HandleModResistanceAuraProc(Unit* /*pVictim*/, uint32 SpellAuraProcResult Unit::HandleModDamageAuraProc(Unit* /*pVictim*/, uint32 /*damage*/, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) { // the aura school mask must match the spell school - return (procSpell == nullptr || (GetSchoolMask(procSpell->School) & triggeredByAura->GetModifier()->m_miscvalue)) - ? SPELL_AURA_PROC_OK : SPELL_AURA_PROC_FAILED; + uint32 const schoolMask = procSpell ? GetSchoolMask(procSpell->School) : SPELL_SCHOOL_MASK_NORMAL; + if (!(schoolMask & triggeredByAura->GetModifier()->m_miscvalue)) + return SPELL_AURA_PROC_FAILED; + +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_9_4 + switch (triggeredByAura->GetId()) + { + case 24659: // Zandalarian Hero Charm - Unstable Power + { + if (!procSpell) + return SPELL_AURA_PROC_FAILED; + + /* + World of Warcraft Client Patch 1.11.0 (2006-06-20) + - Judgement of Command: Now consumes a charge of the Zandalarian Hero + Charm. In addition, when this spell is resisted it will no longer + erroneously still do damage. + - Judgement of Righteousness: Now consumes a charge of the Zandalarian + Hero Charm. + - Shadowguard: This Troll Priest racial spell now works with Vampiric + Embrace, Blackout, and Shadow Weaving. In addition, the damage from + Shadowguard will now consume charges of the Zandalarian Hero Charm's + Unstable Power aura. + - Zandalarian Hero Charm: The damage and healing on this item have been + reduced by 30%. Instead of granting 35 damage and 70 healing per + charge, it now grants 25 damage and 50 healing per charge. Several + Paladin spells, Starshards, and Lightning Shield were not consuming + charges of this trinket. All those spells have been fixed. In + addition, totems which now benefit from increased damage and healing + will also consume charges (Healing Stream Totem, Searing Totem, Magma + Totem, and Fire Nova Totem) + World of Warcraft Client Patch 1.10.0 (2006-03-28) + - The charges from the Zandalarian Hero Charm will now be consumed by + melee and ranged abilities and spells which do non-physical damage. + This includes: Hammer of Wrath, Judgement of Righteousness, Seal of + Command, Judgement of Command, Volley, and Arcane Shot. The trinket + will also now burn charges from each casting of a damage over time + spell, heal over time spell, and area aura spells such as Blizzard + and Consecration. Only one charge will be burned per area spell cast, + rather than multiple charges per target hit as was previously the + case. + */ + if (!procSpell->IsDirectDamageSpell() && + !procSpell->IsHealSpell() && + !procSpell->HasAura(SPELL_AURA_PERIODIC_DAMAGE) && + !procSpell->HasAura(SPELL_AURA_PERIODIC_LEECH) && + !procSpell->HasAura(SPELL_AURA_PERIODIC_HEALTH_FUNNEL) && + !(procSpell->SpellVisual == 319 && procSpell->SpellIconID == 1647) && // Healing Stream Totem + !(procSpell->SpellVisual == 221 && procSpell->SpellIconID == 680) && // Searing Totem + !(procSpell->SpellVisual == 369 && procSpell->SpellIconID == 37) && // Magma Totem + !(procSpell->SpellVisual == 221 && procSpell->SpellIconID == 33) // Fire Nova Totem + ) + return SPELL_AURA_PROC_FAILED; + + RemoveAuraHolderFromStack(24659); + return SPELL_AURA_PROC_OK; + } + } +#endif + + return SPELL_AURA_PROC_OK; } SpellAuraProcResult Unit::HandleRemoveByDamageChanceProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const *procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown) From 9cb972d5ef7965cdd285cd7e4cfce2562d8e2bfc Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 16 Nov 2023 16:18:45 +0200 Subject: [PATCH 316/426] Fix item dupe when trading to bots. Closes https://github.com/vmangos/core/issues/2290 --- src/game/Handlers/TradeHandler.cpp | 16 +++++++++ src/game/Objects/Item.cpp | 55 ++++++++++++++++-------------- src/game/Objects/Item.h | 1 + 3 files changed, 47 insertions(+), 25 deletions(-) diff --git a/src/game/Handlers/TradeHandler.cpp b/src/game/Handlers/TradeHandler.cpp index 0b4d5ca170f..b6bfc38e208 100644 --- a/src/game/Handlers/TradeHandler.cpp +++ b/src/game/Handlers/TradeHandler.cpp @@ -156,6 +156,14 @@ void WorldSession::MoveItems(Item* myItems[], Item* hisItems[]) // store trader->MoveItemToInventory(traderDst, myItems[i], true, true); + + // If saving is disabled for player who receives the item, it must be deleted from db, or it enables duping. + if (trader->IsSavingDisabled()) + { + sLog.Out(LOG_BASIC, LOG_LVL_DETAIL, "Item guid %u traded to character %u with disabled saving. Deleting from DB.", myItems[i]->GetGUIDLow(), trader->GetGUIDLow()); + myItems[i]->DeleteFromInventoryDB(); + myItems[i]->DeleteAllFromDB(); + } } if (hisItems[i]) @@ -173,6 +181,14 @@ void WorldSession::MoveItems(Item* myItems[], Item* hisItems[]) // store _player->MoveItemToInventory(playerDst, hisItems[i], true, true); + + // If saving is disabled for player who receives the item, it must be deleted from db, or it enables duping. + if (_player->IsSavingDisabled()) + { + sLog.Out(LOG_BASIC, LOG_LVL_DETAIL, "Item guid %u traded to character %u with disabled saving. Deleting from DB.", hisItems[i]->GetGUIDLow(), _player->GetGUIDLow()); + hisItems[i]->DeleteFromInventoryDB(); + hisItems[i]->DeleteAllFromDB(); + } } } else diff --git a/src/game/Objects/Item.cpp b/src/game/Objects/Item.cpp index 3dbf887173a..07a62bd8f3e 100644 --- a/src/game/Objects/Item.cpp +++ b/src/game/Objects/Item.cpp @@ -307,31 +307,7 @@ void Item::SaveToDB() break; case ITEM_REMOVED: { - static SqlStatementID delItemText; - static SqlStatementID delInst ; - static SqlStatementID delGifts ; - static SqlStatementID delLoot ; - - if (uint32 item_text_id = GetUInt32Value(ITEM_FIELD_ITEM_TEXT_ID)) - { - SqlStatement stmt = CharacterDatabase.CreateStatement(delItemText, "DELETE FROM `item_text` WHERE `id` = ?"); - stmt.PExecute(item_text_id); - } - - SqlStatement stmt = CharacterDatabase.CreateStatement(delInst, "DELETE FROM `item_instance` WHERE `guid` = ?"); - stmt.PExecute(guid); - - if (HasFlag(ITEM_FIELD_FLAGS, ITEM_DYNFLAG_WRAPPED)) - { - stmt = CharacterDatabase.CreateStatement(delGifts, "DELETE FROM `character_gifts` WHERE `item_guid` = ?"); - stmt.PExecute(GetGUIDLow()); - } - - if (HasSavedLoot()) - { - stmt = CharacterDatabase.CreateStatement(delLoot, "DELETE FROM `item_loot` WHERE `guid` = ?"); - stmt.PExecute(GetGUIDLow()); - } + DeleteAllFromDB(); if (IsInWorld()) RemoveFromWorld(); @@ -493,6 +469,35 @@ bool Item::LoadFromDB(uint32 guidLow, ObjectGuid ownerGuid, Field* fields, uint3 return true; } +void Item::DeleteAllFromDB() +{ + static SqlStatementID delItemText; + static SqlStatementID delInst; + static SqlStatementID delGifts; + static SqlStatementID delLoot; + + if (uint32 item_text_id = GetUInt32Value(ITEM_FIELD_ITEM_TEXT_ID)) + { + SqlStatement stmt = CharacterDatabase.CreateStatement(delItemText, "DELETE FROM `item_text` WHERE `id` = ?"); + stmt.PExecute(item_text_id); + } + + SqlStatement stmt = CharacterDatabase.CreateStatement(delInst, "DELETE FROM `item_instance` WHERE `guid` = ?"); + stmt.PExecute(GetGUIDLow()); + + if (HasFlag(ITEM_FIELD_FLAGS, ITEM_DYNFLAG_WRAPPED)) + { + stmt = CharacterDatabase.CreateStatement(delGifts, "DELETE FROM `character_gifts` WHERE `item_guid` = ?"); + stmt.PExecute(GetGUIDLow()); + } + + if (HasSavedLoot()) + { + stmt = CharacterDatabase.CreateStatement(delLoot, "DELETE FROM `item_loot` WHERE `guid` = ?"); + stmt.PExecute(GetGUIDLow()); + } +} + void Item::DeleteAllFromDB(uint32 guidLow) { CharacterDatabase.PExecute("DELETE FROM `item_instance` WHERE `guid` = '%u'", guidLow); diff --git a/src/game/Objects/Item.h b/src/game/Objects/Item.h index 8c2279d132b..fb8e8c18195 100644 --- a/src/game/Objects/Item.h +++ b/src/game/Objects/Item.h @@ -271,6 +271,7 @@ class Item : public Object void DeleteFromInventoryDB(); void LoadLootFromDB(Field* fields); + void DeleteAllFromDB(); static void DeleteAllFromDB(uint32 guidLow); bool isWeapon() const{ return GetProto()->Class == ITEM_CLASS_WEAPON; } From d3e7026e2ef04af115c6da054be59a5adb16cee0 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 16 Nov 2023 17:45:59 +0200 Subject: [PATCH 317/426] Use center of gameobject model as collision height. --- src/game/Objects/GameObject.cpp | 8 ++++++++ src/game/Objects/GameObject.h | 1 + src/game/Objects/Object.cpp | 6 +++--- src/game/Objects/Object.h | 1 + src/game/Objects/Unit.h | 2 +- 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/game/Objects/GameObject.cpp b/src/game/Objects/GameObject.cpp index 685796817ff..b8b0249e33b 100644 --- a/src/game/Objects/GameObject.cpp +++ b/src/game/Objects/GameObject.cpp @@ -2541,6 +2541,14 @@ void GameObject::GetClosestChairSlotPosition(float userX, float userY, float& ou outY = GetPositionY(); } +float GameObject::GetCollisionHeight() const +{ + // use the center of the model + if (GameObjectDisplayInfoAddon const* displayInfo = sGameObjectDisplayInfoAddonStorage.LookupEntry(GetDisplayId())) + return (displayInfo->max_z + displayInfo->min_z) * 0.5f * GetObjectScale(); + return 1.0f; +} + bool GameObject::IsAtInteractDistance(Position const& pos, float radius) const { if (GameObjectDisplayInfoAddon const* displayInfo = sGameObjectDisplayInfoAddonStorage.LookupEntry(GetDisplayId())) diff --git a/src/game/Objects/GameObject.h b/src/game/Objects/GameObject.h index dfb3355de46..b1f82c80b56 100644 --- a/src/game/Objects/GameObject.h +++ b/src/game/Objects/GameObject.h @@ -250,6 +250,7 @@ class GameObject : public SpellCaster uint32 GetFactionTemplateId() const final { return GetGOInfo()->faction; } uint32 GetLevel() const final ; + float GetCollisionHeight() const final; bool IsAtInteractDistance(Position const& pos, float radius) const; bool IsAtInteractDistance(Player const* player, uint32 maxRange = 0) const; diff --git a/src/game/Objects/Object.cpp b/src/game/Objects/Object.cpp index 2b8188864e5..e3f632cd3b3 100644 --- a/src/game/Objects/Object.cpp +++ b/src/game/Objects/Object.cpp @@ -1617,7 +1617,7 @@ bool WorldObject::IsWithinLOSInMap(WorldObject const* obj, bool checkDynLos) con return true; float ox, oy, oz; obj->GetPosition(ox, oy, oz); - float targetHeight = obj->IsUnit() ? obj->ToUnit()->GetCollisionHeight() : 2.f; + float targetHeight = obj->GetCollisionHeight(); return (IsWithinLOS(ox, oy, oz, checkDynLos, targetHeight)); } @@ -1625,7 +1625,7 @@ bool WorldObject::IsWithinLOSAtPosition(float ownX, float ownY, float ownZ, floa { if (IsInWorld()) { - float height = IsUnit() ? ToUnit()->GetCollisionHeight() : 2.f; + float height = GetCollisionHeight(); return GetMap()->isInLineOfSight(ownX, ownY, ownZ + height, targetX, targetY, targetZ + targetHeight, checkDynLos); } @@ -2005,7 +2005,7 @@ void WorldObject::MovePositionToFirstCollision(Position& pos, float dist, float GenericTransport* transport = GetTransport(); - float halfHeight = IsUnit() ? static_cast(this)->GetCollisionHeight() : 0.0f; + float halfHeight = GetCollisionHeight(); if (IsUnit()) { PathFinder path(static_cast(this)); diff --git a/src/game/Objects/Object.h b/src/game/Objects/Object.h index e7a19574a8c..f2a7c64bba1 100644 --- a/src/game/Objects/Object.h +++ b/src/game/Objects/Object.h @@ -723,6 +723,7 @@ class WorldObject : public Object // angle to face `obj` to `this` using distance includes size of `obj` GetNearPoint(obj, x, y, z, obj->GetObjectBoundingRadius(), distance2d, GetAngle(obj)); } + virtual float GetCollisionHeight() const { return 1.0f; } virtual float GetObjectBoundingRadius() const { return DEFAULT_WORLD_OBJECT_SIZE; } virtual float GetCombatReach() const { return 0.f; } diff --git a/src/game/Objects/Unit.h b/src/game/Objects/Unit.h index 8bf08a49031..6ee9300075c 100644 --- a/src/game/Objects/Unit.h +++ b/src/game/Objects/Unit.h @@ -553,7 +553,7 @@ class Unit : public SpellCaster void ResetTransformScale(); float GetNativeScale() const; void SetNativeScale(float scale); - float GetCollisionHeight() const { return m_modelCollisionHeight * m_nativeScaleOverride; } + float GetCollisionHeight() const final { return m_modelCollisionHeight * m_nativeScaleOverride; } float GetMinSwimDepth() const { return GetCollisionHeight() * 0.75f; } // client switches to swim animation at this depth static float GetScaleForDisplayId(uint32 displayId); void UpdateModelData(); // at any changes to scale and/or displayId From baa6ff835c533b9c5f5ef33914b5182bca1d309e Mon Sep 17 00:00:00 2001 From: Michael Serajnik Date: Thu, 16 Nov 2023 17:56:23 +0100 Subject: [PATCH 318/426] Use bash shebang in touch_migration.sh. (#2286) Without it, at least on macOS it seems like it defaults to using sh, which causes the `-e` flag of `echo` to not be interpreted and instead prepended to the created migration file. --- sql/touch_migration.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sql/touch_migration.sh b/sql/touch_migration.sh index a3940273fd2..d95ddcdb8bb 100755 --- a/sql/touch_migration.sh +++ b/sql/touch_migration.sh @@ -1,3 +1,5 @@ +#!/usr/bin/env bash + DATE=`date +%Y%m%d%H%M%S` FPATH=migrations/"$DATE"_world.sql From 764fab75751c351a2e73e51f0c022b179a015e6a Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 17 Nov 2023 15:12:54 +0200 Subject: [PATCH 319/426] Pass original damage to proc handlers. This allows Eye for an Eye to return the correct damage when the crit is absorbed. --- src/game/Objects/SpellCaster.cpp | 8 ++-- src/game/Objects/SpellCaster.h | 3 +- src/game/Objects/Unit.cpp | 8 ++-- src/game/Objects/Unit.h | 38 +++++++++---------- src/game/Spells/Spell.cpp | 11 ++++-- src/game/Spells/SpellAuras.cpp | 53 +++++++++++++------------- src/game/Spells/SpellEffects.cpp | 2 +- src/game/UnitAuraProcHandler.cpp | 64 ++++++++++++++++---------------- 8 files changed, 95 insertions(+), 92 deletions(-) diff --git a/src/game/Objects/SpellCaster.cpp b/src/game/Objects/SpellCaster.cpp index 4cbb7354b98..32bee1ffe9f 100644 --- a/src/game/Objects/SpellCaster.cpp +++ b/src/game/Objects/SpellCaster.cpp @@ -201,7 +201,7 @@ SpellMissInfo SpellCaster::SpellHitResult(Unit* pVictim, SpellEntry const* spell if (reflectchance > 0 && roll_chance_i(reflectchance)) { // Start triggers for remove charges if need (trigger only for victim, and mark as active spell) - ProcDamageAndSpell(ProcSystemArguments(pVictim, PROC_FLAG_NONE, PROC_FLAG_TAKE_HARMFUL_SPELL, PROC_EX_REFLECT, 1, BASE_ATTACK, spell)); + ProcDamageAndSpell(ProcSystemArguments(pVictim, PROC_FLAG_NONE, PROC_FLAG_TAKE_HARMFUL_SPELL, PROC_EX_REFLECT, 1, 1, BASE_ATTACK, spell)); return SPELL_MISS_REFLECT; } } @@ -219,9 +219,9 @@ SpellMissInfo SpellCaster::SpellHitResult(Unit* pVictim, SpellEntry const* spell return SPELL_MISS_NONE; } -ProcSystemArguments::ProcSystemArguments(Unit* pVictim_, uint32 procFlagsAttacker_, uint32 procFlagsVictim_, uint32 procExtra_, uint32 amount_, WeaponAttackType attType_, +ProcSystemArguments::ProcSystemArguments(Unit* pVictim_, uint32 procFlagsAttacker_, uint32 procFlagsVictim_, uint32 procExtra_, uint32 amount_, uint32 originalAmount_, WeaponAttackType attType_, SpellEntry const* procSpell_, Spell const* spell) - : pVictim(pVictim_), procFlagsAttacker(procFlagsAttacker_), procFlagsVictim(procFlagsVictim_), procExtra(procExtra_), amount(amount_), + : pVictim(pVictim_), procFlagsAttacker(procFlagsAttacker_), procFlagsVictim(procFlagsVictim_), procExtra(procExtra_), amount(amount_), originalAmount(originalAmount_), attType(attType_), procSpell(procSpell_), isSpellTriggeredByAuraOrItem(spell && (spell->IsTriggeredByAura() || spell->IsTriggered() && spell->IsCastByItem())), procTime(sWorld.GetGameTime()) { if (spell) @@ -312,7 +312,7 @@ void SpellCaster::ProcDamageAndSpell_real(ProcSystemArguments& data, ProcessProc } if (Unit* pUnit = ToUnit()) - pUnit->HandleTriggers(data.pVictim, data.procExtra, data.amount, data.procSpell, procTriggered); + pUnit->HandleTriggers(data.pVictim, data.procExtra, data.amount, data.originalAmount, data.procSpell, procTriggered); } // Melee based spells can be miss, parry or dodge on this step diff --git a/src/game/Objects/SpellCaster.h b/src/game/Objects/SpellCaster.h index 0cdf0c57145..5ba507cdcdc 100644 --- a/src/game/Objects/SpellCaster.h +++ b/src/game/Objects/SpellCaster.h @@ -299,6 +299,7 @@ struct ProcSystemArguments uint32 procExtra; uint32 amount; // contains full heal or full damage + uint32 originalAmount; // before resist and absorb SpellEntry const* procSpell; WeaponAttackType attType; @@ -306,7 +307,7 @@ struct ProcSystemArguments bool isSpellTriggeredByAuraOrItem; time_t procTime; - explicit ProcSystemArguments(Unit* pVictim_, uint32 procFlagsAttacker_, uint32 procFlagsVictim_, uint32 procExtra_, uint32 amount_, WeaponAttackType attType_ = BASE_ATTACK, + explicit ProcSystemArguments(Unit* pVictim_, uint32 procFlagsAttacker_, uint32 procFlagsVictim_, uint32 procExtra_, uint32 amount_, uint32 originalAmount_, WeaponAttackType attType_ = BASE_ATTACK, SpellEntry const* procSpell_ = nullptr, Spell const* spell = nullptr); }; diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 7fe9de108ee..7d4dede42c6 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -1019,7 +1019,7 @@ void Unit::Kill(Unit* pVictim, SpellEntry const* spellProto, bool durabilityLoss // To be replaced if possible using ProcDamageAndSpell if (pVictim != this) // The one who has the fatal blow - ProcDamageAndSpell(ProcSystemArguments(pVictim, PROC_FLAG_KILL, PROC_FLAG_HEARTBEAT, PROC_EX_NONE, 0)); + ProcDamageAndSpell(ProcSystemArguments(pVictim, PROC_FLAG_KILL, PROC_FLAG_HEARTBEAT, PROC_EX_NONE, 0, 0)); DEBUG_FILTER_LOG(LOG_FILTER_DAMAGE, "DealDamageAttackStop"); @@ -2097,7 +2097,7 @@ void Unit::AttackerStateUpdate(Unit* pVictim, WeaponAttackType attType, bool ext } SendAttackStateUpdate(&damageInfo); - ProcDamageAndSpell(ProcSystemArguments(damageInfo.target, damageInfo.procAttacker, damageInfo.procVictim, damageInfo.procEx, damageInfo.totalDamage, damageInfo.attackType)); + ProcDamageAndSpell(ProcSystemArguments(damageInfo.target, damageInfo.procAttacker, damageInfo.procVictim, damageInfo.procEx, damageInfo.totalDamage, damageInfo.totalDamage + damageInfo.totalAbsorb + damageInfo.totalResist, damageInfo.attackType)); DealMeleeDamage(&damageInfo, true); @@ -4279,7 +4279,7 @@ class RemovedSpellData typedef std::list RemoveSpellList; -void Unit::HandleTriggers(Unit* pVictim, uint32 procExtra, uint32 amount, SpellEntry const* procSpell, ProcTriggeredList const& procTriggered) +void Unit::HandleTriggers(Unit* pVictim, uint32 procExtra, uint32 amount, uint32 originalAmount, SpellEntry const* procSpell, ProcTriggeredList const& procTriggered) { RemoveSpellList removedSpells; // Nothing found @@ -4341,7 +4341,7 @@ void Unit::HandleTriggers(Unit* pVictim, uint32 procExtra, uint32 amount, SpellE if ((triggeredByAura->GetSpellProto()->TargetAuraState == AURA_STATE_HEALTHLESS_20_PERCENT) && (!itr.target || !itr.target->HasAuraState(AURA_STATE_HEALTHLESS_20_PERCENT))) continue; - SpellAuraProcResult procResult = (*caster.*AuraProcHandler[auraModifier->m_auraname])(itr.target, amount, triggeredByAura, procSpell, itr.procFlag, procExtra, cooldown); + SpellAuraProcResult procResult = (*caster.*AuraProcHandler[auraModifier->m_auraname])(itr.target, amount, originalAmount, triggeredByAura, procSpell, itr.procFlag, procExtra, cooldown); switch (procResult) { case SPELL_AURA_PROC_CANT_TRIGGER: diff --git a/src/game/Objects/Unit.h b/src/game/Objects/Unit.h index 6ee9300075c..c5db86d5a10 100644 --- a/src/game/Objects/Unit.h +++ b/src/game/Objects/Unit.h @@ -180,7 +180,7 @@ enum SpellAuraProcResult SPELL_AURA_PROC_CANT_TRIGGER = 2 // aura can't trigger - skip charges taking, move to next aura if exists }; -typedef SpellAuraProcResult(Unit::*pAuraProcHandler)(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); +typedef SpellAuraProcResult(Unit::*pAuraProcHandler)(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); extern pAuraProcHandler AuraProcHandler[TOTAL_AURAS]; #define UNIT_SPELL_UPDATE_TIME_BUFFER 60 @@ -843,7 +843,7 @@ class Unit : public SpellCaster void ProcDamageAndSpellFor(bool isVictim, Unit* pTarget, ProcSystemArguments const& data, ProcTriggeredList& triggeredList, ProcessProcsAuraType processAurasType); void ProcSkillsAndReactives(bool isVictim, Unit* pTarget, uint32 procFlag, uint32 procExtra, WeaponAttackType attType, SpellEntry const* procSpell); - void HandleTriggers(Unit* pVictim, uint32 procExtra, uint32 amount, SpellEntry const* procSpell, ProcTriggeredList const& procTriggered); + void HandleTriggers(Unit* pVictim, uint32 procExtra, uint32 amount, uint32 originalAmount, SpellEntry const* procSpell, ProcTriggeredList const& procTriggered); void TriggerDamageShields(Unit* pVictim); SpellProcEventTriggerCheck IsTriggeredAtSpellProcEvent(Unit* pVictim, SpellAuraHolder* holder, SpellEntry const* procSpell, uint32 procFlag, uint32 procExtra, WeaponAttackType attType, bool isVictim, SpellProcEventEntry const*& spellProcEvent, bool isSpellTriggeredByAuraOrItem) const; @@ -851,27 +851,27 @@ class Unit : public SpellCaster SpellAuraProcResult TriggerProccedSpell(Unit* target, int32* basepoints, uint32 triggeredSpellId, Item* castItem, Aura* triggeredByAura, uint32 cooldown, ObjectGuid originalCaster = ObjectGuid(), SpellEntry const* triggeredByParent = nullptr); SpellAuraProcResult TriggerProccedSpell(Unit* target, int32* basepoints, SpellEntry const* spellInfo, Item* castItem, Aura* triggeredByAura, uint32 cooldown, ObjectGuid originalCaster = ObjectGuid(), SpellEntry const* triggeredByParent = nullptr); // Aura proc handlers - SpellAuraProcResult HandleDummyAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); - SpellAuraProcResult HandleHasteAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); - SpellAuraProcResult HandleProcTriggerSpellAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); - SpellAuraProcResult HandleProcTriggerDamageAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); - SpellAuraProcResult HandleOverrideClassScriptAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); - SpellAuraProcResult HandleModCastingSpeedNotStackAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); - SpellAuraProcResult HandleReflectSpellsSchoolAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); - SpellAuraProcResult HandleModPowerCostSchoolAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); - SpellAuraProcResult HandleMechanicImmuneResistanceAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); - SpellAuraProcResult HandleAddTargetTriggerAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); - SpellAuraProcResult HandleModResistanceAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); - SpellAuraProcResult HandleRemoveByDamageChanceProc(Unit *pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const *procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); - SpellAuraProcResult HandleRemoveFearByDamageChanceProc(Unit *pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const *procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); - SpellAuraProcResult HandleInvisibilityAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); - SpellAuraProcResult HandleModDamageAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); - SpellAuraProcResult HandleNULLProc(Unit* /*pVictim*/, uint32 /*damage*/, Aura* /*triggeredByAura*/, SpellEntry const* /*procSpell*/, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) + SpellAuraProcResult HandleDummyAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); + SpellAuraProcResult HandleHasteAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); + SpellAuraProcResult HandleProcTriggerSpellAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); + SpellAuraProcResult HandleProcTriggerDamageAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); + SpellAuraProcResult HandleOverrideClassScriptAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); + SpellAuraProcResult HandleModCastingSpeedNotStackAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); + SpellAuraProcResult HandleReflectSpellsSchoolAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); + SpellAuraProcResult HandleModPowerCostSchoolAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); + SpellAuraProcResult HandleMechanicImmuneResistanceAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); + SpellAuraProcResult HandleAddTargetTriggerAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); + SpellAuraProcResult HandleModResistanceAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); + SpellAuraProcResult HandleRemoveByDamageChanceProc(Unit *pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const *procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); + SpellAuraProcResult HandleRemoveFearByDamageChanceProc(Unit *pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const *procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); + SpellAuraProcResult HandleInvisibilityAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); + SpellAuraProcResult HandleModDamageAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); + SpellAuraProcResult HandleNULLProc(Unit* /*pVictim*/, uint32 /*amount*/, uint32 /*originalAmount*/, Aura* /*triggeredByAura*/, SpellEntry const* /*procSpell*/, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) { // no proc handler for this aura type return SPELL_AURA_PROC_OK; } - SpellAuraProcResult HandleCantTrigger(Unit* /*pVictim*/, uint32 /*damage*/, Aura* /*triggeredByAura*/, SpellEntry const* /*procSpell*/, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) + SpellAuraProcResult HandleCantTrigger(Unit* /*pVictim*/, uint32 /*amount*/, uint32 /*originalAmount*/, Aura* /*triggeredByAura*/, SpellEntry const* /*procSpell*/, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) { // this aura type can't proc return SPELL_AURA_PROC_CANT_TRIGGER; diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 6e183388cb6..c6e84df8a81 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -1155,7 +1155,7 @@ void Spell::AddUnitTarget(Unit* pTarget, SpellEffectIndex effIndex) #endif { if (m_casterUnit && !m_spellInfo->HasAttribute(SPELL_ATTR_EX3_SUPPRESS_TARGET_PROCS)) - m_casterUnit->ProcDamageAndSpell(ProcSystemArguments(pTarget, PROC_FLAG_NONE, PROC_FLAG_TAKE_HARMFUL_SPELL, PROC_EX_REFLECT, 1, BASE_ATTACK, m_spellInfo, this)); + m_casterUnit->ProcDamageAndSpell(ProcSystemArguments(pTarget, PROC_FLAG_NONE, PROC_FLAG_TAKE_HARMFUL_SPELL, PROC_EX_REFLECT, 1, 1, BASE_ATTACK, m_spellInfo, this)); targetInfo.reflectResult = SPELL_MISS_IMMUNE; } else @@ -1541,6 +1541,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target) m_spellInfo->HasAttribute(SPELL_ATTR_EX3_SUPPRESS_TARGET_PROCS) ? PROC_FLAG_NONE : procVictim, procEx, addhealth, + addhealth, m_attackType, spellInfo, this)); @@ -1586,6 +1587,8 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target) pCaster->CalculateSpellDamage(&damageInfo, m_damage, m_spellInfo, damageEffectIndex, m_attackType, this, target->isCrit); } + uint32 const originalDamage = damageInfo.damage; + unitTarget->CalculateAbsorbResistBlock(pCaster, &damageInfo, m_spellInfo, BASE_ATTACK, this); m_absorbed = damageInfo.absorb; @@ -1612,6 +1615,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target) m_spellInfo->HasAttribute(SPELL_ATTR_EX3_SUPPRESS_TARGET_PROCS) ? PROC_FLAG_NONE : procVictim, procEx, damageInfo.damage, + originalDamage, m_attackType, m_spellInfo, this)); @@ -1725,6 +1729,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target) m_spellInfo->HasAttribute(SPELL_ATTR_EX3_SUPPRESS_TARGET_PROCS) ? PROC_FLAG_NONE : procVictim, procEx, dmg, + dmg, m_attackType, m_spellInfo, this)); @@ -4084,11 +4089,11 @@ void Spell::cast(bool skipCheck) } // This will trigger only auras with PROC_EX_CAST_END. - m_casterUnit->ProcDamageAndSpell(ProcSystemArguments(pTarget, m_procAttacker, PROC_FLAG_NONE, procEx, 1, m_attackType, m_spellInfo, this)); + m_casterUnit->ProcDamageAndSpell(ProcSystemArguments(pTarget, m_procAttacker, PROC_FLAG_NONE, procEx, 1, 1, m_attackType, m_spellInfo, this)); // Trigger procs for spells with no unit targets at cast time. if (m_UniqueTargetInfo.empty()) - m_casterUnit->ProcDamageAndSpell(ProcSystemArguments(nullptr, m_procAttacker, PROC_FLAG_NONE, PROC_EX_NORMAL_HIT, 1, m_attackType, m_spellInfo, this)); + m_casterUnit->ProcDamageAndSpell(ProcSystemArguments(nullptr, m_procAttacker, PROC_FLAG_NONE, PROC_EX_NORMAL_HIT, 1, 1, m_attackType, m_spellInfo, this)); } // Okay, everything is prepared. Now we need to distinguish between immediate and evented delayed spells diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index e17d26d23c8..24e39b4b902 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -1529,7 +1529,7 @@ void Aura::TriggerSpell() return; // Talent 'Entrapment' for example (chance to root) - caster->ProcDamageAndSpell(ProcSystemArguments(target, PROC_FLAG_ON_TRAP_ACTIVATION, PROC_FLAG_NONE, PROC_EX_NORMAL_HIT, 1, BASE_ATTACK, GetSpellProto())); + caster->ProcDamageAndSpell(ProcSystemArguments(target, PROC_FLAG_ON_TRAP_ACTIVATION, PROC_FLAG_NONE, PROC_EX_NORMAL_HIT, 1, 1, BASE_ATTACK, GetSpellProto())); break; } // Thaddius negative charge @@ -6058,6 +6058,12 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data // Consecration: recalculate the damage on each tick if (spellProto->IsFitToFamily()) fdamage = pCaster->SpellDamageBonusDone(target, GetSpellProto(), GetEffIndex(), m_currentBasePoints, DOT, GetStackAmount()); + // Curse of Agony damage-per-tick calculation + else if (spellProto->IsFitToFamily()) + fdamage += (-1 + ((int)GetAuraTicks() - 1) / 4) * (spellProto->CalculateSimpleValue(EFFECT_INDEX_0) / 2.0); + // Starshards damage-per-tick calculation + else if (spellProto->IsFitToFamily()) + fdamage += (-1 + ((int)GetAuraTicks() - 1) / 2) * (spellProto->CalculateSimpleValue(EFFECT_INDEX_0) / 3.0); // SpellDamageBonus for magic spells if (spellProto->DmgClass == SPELL_DAMAGE_CLASS_NONE || spellProto->DmgClass == SPELL_DAMAGE_CLASS_MAGIC) @@ -6069,15 +6075,8 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data fdamage = target->MeleeDamageBonusTaken(pCaster, fdamage, attackType, spellProto, GetEffIndex(), DOT, GetStackAmount()); } - // Curse of Agony damage-per-tick calculation - if (spellProto->IsFitToFamily()) - fdamage += ( -1 + ((int)GetAuraTicks() -1)/4) * (spellProto->CalculateSimpleValue(EFFECT_INDEX_0)/2.0); - - // Starshards damage-per-tick calculation - if (spellProto->IsFitToFamily()) - fdamage += ( -1 + ((int)GetAuraTicks() -1)/2) * (spellProto->CalculateSimpleValue(EFFECT_INDEX_0)/3.0); - uint32 pdamage = ditheru(std::max(fdamage, 0.f)); // prevent negative damage due to sickness + uint32 const originalDamage = pdamage; target->CalculateDamageAbsorbAndResist(pCaster, spellProto->GetSpellSchoolMask(), DOT, pdamage, &absorb, &resist, spellProto); @@ -6101,7 +6100,7 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data if (pdamage) procVictim |= PROC_FLAG_TAKEN_ANY_DAMAGE; - pCaster->ProcDamageAndSpell(ProcSystemArguments(target, procAttacker, procVictim, PROC_EX_NORMAL_HIT, pdamage, BASE_ATTACK, spellProto)); + pCaster->ProcDamageAndSpell(ProcSystemArguments(target, procAttacker, procVictim, PROC_EX_NORMAL_HIT, pdamage, originalDamage, BASE_ATTACK, spellProto)); cleanDamage.absorb = absorb; cleanDamage.resist = resist; @@ -6150,8 +6149,8 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data CleanDamage cleanDamage = CleanDamage(0, BASE_ATTACK, MELEE_HIT_NORMAL, 0, 0); uint32 pdamage = ditheru(m_modifier.m_amount > 0 ? m_modifier.m_amount : 0); - pdamage = target->SpellDamageBonusTaken(pCaster, spellProto, GetEffIndex(), pdamage, DOT, GetStackAmount()); + uint32 const originalDamage = pdamage; target->CalculateDamageAbsorbAndResist(pCaster, spellProto->GetSpellSchoolMask(), DOT, pdamage, &absorb, &resist, spellProto); @@ -6181,7 +6180,7 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data cleanDamage.absorb = absorb; cleanDamage.resist = resist; - pCaster->ProcDamageAndSpell(ProcSystemArguments(target, procAttacker, procVictim, PROC_EX_NORMAL_HIT, pdamage, BASE_ATTACK, spellProto)); + pCaster->ProcDamageAndSpell(ProcSystemArguments(target, procAttacker, procVictim, PROC_EX_NORMAL_HIT, pdamage, originalDamage, BASE_ATTACK, spellProto)); int32 new_damage = pCaster->DealDamage(target, pdamage, &cleanDamage, DOT, spellProto->GetSpellSchoolMask(), spellProto, false, nullptr, GetHolder()->IsReflected()); if (!target->IsAlive() && pCaster->IsNonMeleeSpellCasted(false)) @@ -6210,18 +6209,6 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data if (!pCaster) return; - // Don't heal target if it is already at max health. We still need - // to do procs on the tick, however - if (target->GetHealth() == target->GetMaxHealth()) - { - uint32 procAttacker = PROC_FLAG_DEAL_HARMFUL_PERIODIC; - uint32 procVictim = PROC_FLAG_TAKE_HARMFUL_PERIODIC; - uint32 procEx = PROC_EX_NORMAL_HIT | PROC_EX_PERIODIC_POSITIVE; - pCaster->ProcDamageAndSpell(ProcSystemArguments(target, procAttacker, procVictim, procEx, 1, BASE_ATTACK, spellProto)); - - return; - } - // heal for caster damage (must be alive) if (target != pCaster && spellProto->SpellVisual == 163 && !pCaster->IsAlive()) return; @@ -6248,7 +6235,6 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data #endif float fdamage; - if (m_modifier.m_auraname == SPELL_AURA_OBS_MOD_HEALTH) fdamage = target->GetMaxHealth() * amount / 100; else @@ -6256,6 +6242,17 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data uint32 pdamage = ditheru(target->SpellHealingBonusTaken(pCaster, spellProto, GetEffIndex(), fdamage, DOT, GetStackAmount())); + // Don't heal target if it is already at max health. We still need + // to do procs on the tick, however + if (target->GetHealth() == target->GetMaxHealth()) + { + uint32 procAttacker = PROC_FLAG_DEAL_HARMFUL_PERIODIC; + uint32 procVictim = PROC_FLAG_TAKE_HARMFUL_PERIODIC; + uint32 procEx = PROC_EX_NORMAL_HIT | PROC_EX_PERIODIC_POSITIVE; + pCaster->ProcDamageAndSpell(ProcSystemArguments(target, procAttacker, procVictim, procEx, 1, pdamage, BASE_ATTACK, spellProto)); + return; + } + DETAIL_FILTER_LOG(LOG_FILTER_PERIODIC_AFFECTS, "PeriodicTick: %s heal of %s for %u health inflicted by %u", GetCasterGuid().GetString().c_str(), target->GetGuidStr().c_str(), pdamage, GetId()); @@ -6267,7 +6264,7 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data uint32 procAttacker = PROC_FLAG_DEAL_HARMFUL_PERIODIC; uint32 procVictim = PROC_FLAG_TAKE_HARMFUL_PERIODIC; uint32 procEx = PROC_EX_NORMAL_HIT | PROC_EX_PERIODIC_POSITIVE; - pCaster->ProcDamageAndSpell(ProcSystemArguments(target, procAttacker, procVictim, procEx, gain, BASE_ATTACK, spellProto)); + pCaster->ProcDamageAndSpell(ProcSystemArguments(target, procAttacker, procVictim, procEx, gain, pdamage, BASE_ATTACK, spellProto)); target->GetHostileRefManager().threatAssist(pCaster, float(gain) * 0.5f * sSpellMgr.GetSpellThreatMultiplier(spellProto), spellProto); @@ -6512,6 +6509,8 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data bool isCrit = pCaster->IsSpellCrit(damageInfo.target, spellProto, GetSchoolMask(damageInfo.school), BASE_ATTACK); pCaster->CalculateSpellDamage(&damageInfo, gain, spellProto, GetEffIndex(), BASE_ATTACK, nullptr, isCrit); + uint32 const originalDamage = damageInfo.damage; + damageInfo.target->CalculateAbsorbResistBlock(pCaster, &damageInfo, spellProto); pCaster->DealDamageMods(damageInfo.target, damageInfo.damage, &damageInfo.absorb); @@ -6525,7 +6524,7 @@ void Aura::PeriodicTick(SpellEntry const* sProto, AuraType auraType, uint32 data if (damageInfo.damage) procVictim |= PROC_FLAG_TAKEN_ANY_DAMAGE; - pCaster->ProcDamageAndSpell(ProcSystemArguments(damageInfo.target, procAttacker, procVictim, procEx, damageInfo.damage, BASE_ATTACK, spellProto)); + pCaster->ProcDamageAndSpell(ProcSystemArguments(damageInfo.target, procAttacker, procVictim, procEx, damageInfo.damage, originalDamage, BASE_ATTACK, spellProto)); pCaster->DealSpellDamage(&damageInfo, true); break; diff --git a/src/game/Spells/SpellEffects.cpp b/src/game/Spells/SpellEffects.cpp index 2a2d951333d..6aa768a6687 100644 --- a/src/game/Spells/SpellEffects.cpp +++ b/src/game/Spells/SpellEffects.cpp @@ -4208,7 +4208,7 @@ void Spell::EffectWeaponDmg(SpellEffectIndex effIdx) } m_casterUnit->SendAttackStateUpdate(&damageInfo); - m_casterUnit->ProcDamageAndSpell(ProcSystemArguments(damageInfo.target, damageInfo.procAttacker, damageInfo.procVictim, damageInfo.procEx, damageInfo.totalDamage, damageInfo.attackType)); + m_casterUnit->ProcDamageAndSpell(ProcSystemArguments(damageInfo.target, damageInfo.procAttacker, damageInfo.procVictim, damageInfo.procEx, damageInfo.totalDamage, damageInfo.totalDamage + damageInfo.totalAbsorb + damageInfo.totalResist, damageInfo.attackType)); m_casterUnit->DealMeleeDamage(&damageInfo, true); // if damage unitTarget call AI reaction diff --git a/src/game/UnitAuraProcHandler.cpp b/src/game/UnitAuraProcHandler.cpp index 72a272f74a2..27d6d28b1c8 100644 --- a/src/game/UnitAuraProcHandler.cpp +++ b/src/game/UnitAuraProcHandler.cpp @@ -526,7 +526,7 @@ SpellAuraProcResult Unit::TriggerProccedSpell(Unit* target, int32* basepoints, S return SPELL_AURA_PROC_OK; } -SpellAuraProcResult Unit::HandleHasteAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* /*procSpell*/, uint32 /*procFlag*/, uint32 procEx, uint32 cooldown) +SpellAuraProcResult Unit::HandleHasteAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* /*procSpell*/, uint32 /*procFlag*/, uint32 procEx, uint32 cooldown) { // Flurry: last charge crit will reapply the buff, don't remove any charges if (triggeredByAura->GetSpellProto()->SpellIconID == 108 && @@ -538,7 +538,7 @@ SpellAuraProcResult Unit::HandleHasteAuraProc(Unit* pVictim, uint32 damage, Aura return SPELL_AURA_PROC_OK; } -SpellAuraProcResult Unit::HandleDummyAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown) +SpellAuraProcResult Unit::HandleDummyAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown) { SpellEntry const* dummySpell = triggeredByAura->GetSpellProto(); float triggerAmount = triggeredByAura->GetModifier()->m_amount; @@ -574,7 +574,7 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit* pVictim, uint32 damage, Aura return SPELL_AURA_PROC_FAILED; // return damage % to attacker but < 50% own total health - basepoints[0] = dither(triggerAmount * int32(damage) / 100); + basepoints[0] = dither(triggerAmount * int32(originalAmount) / 100); if (basepoints[0] > (int32)GetMaxHealth() / 2) basepoints[0] = (int32)GetMaxHealth() / 2; @@ -614,7 +614,7 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit* pVictim, uint32 damage, Aura { if (pVictim->GetHealthPercent() <= 20.0f && target->GetHealthPercent() <= 20.0f) // If Both Target A and target B is less or equal than 20% do full damage { - basepoints[0] = ditheru(damage * 100 / CalcArmorReducedDamage(pVictim, 100)); + basepoints[0] = ditheru(amount * 100 / CalcArmorReducedDamage(pVictim, 100)); triggered_spell_id = 12723; // Note this SS id deals 1 damage by itself (Cannot crit) } else if (pVictim->GetHealthPercent() <= 20.0f) // If only Target A is less or equal than 20% and target B is over 20% do Basic attack damage @@ -623,14 +623,14 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit* pVictim, uint32 damage, Aura } else // Full damage on anything else (Shouldn't really ever be used) since execute can only be used less or equal than 20% anyway. { - basepoints[0] = ditheru(damage * 100 / CalcArmorReducedDamage(pVictim, 100)); + basepoints[0] = ditheru(amount * 100 / CalcArmorReducedDamage(pVictim, 100)); triggered_spell_id = 12723; // Note this SS id deals 1 damage by itself (Cannot crit) } } else // Full damage on anything else #endif { - basepoints[0] = ditheru(damage * 100 / CalcArmorReducedDamage(pVictim, 100)); + basepoints[0] = ditheru(amount * 100 / CalcArmorReducedDamage(pVictim, 100)); triggered_spell_id = 12723; // Note this SS id deals 1 damage by itself (Cannot crit) } @@ -841,9 +841,7 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit* pVictim, uint32 damage, Aura case 12847: case 12848: { - uint32 totalDamage = damage; - if (Spell* pSpell = GetCurrentSpell(CURRENT_GENERIC_SPELL)) - totalDamage += pSpell->GetAbsorbedDamage(); + uint32 totalDamage = originalAmount; switch (dummySpell->Id) { @@ -976,7 +974,7 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit* pVictim, uint32 damage, Aura return SPELL_AURA_PROC_FAILED; // heal amount - basepoints[0] = dither(triggerAmount * damage / 100); + basepoints[0] = dither(triggerAmount * amount / 100); pVictim->CastCustomSpell(pVictim, 15290, basepoints[0], {}, {}, true, castItem, triggeredByAura); return SPELL_AURA_PROC_OK; // no hidden cooldown } @@ -984,7 +982,7 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit* pVictim, uint32 damage, Aura case 26169: { // heal amount - basepoints[0] = int32(damage * 0.1f); + basepoints[0] = int32(amount * 0.1f); if (!basepoints[0]) return SPELL_AURA_PROC_FAILED; @@ -1052,7 +1050,7 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit* pVictim, uint32 damage, Aura return SPELL_AURA_PROC_FAILED; // Reconstitute damage before armor reduction - basepoints[0] = ditheru(damage * 100 / CalcArmorReducedDamage(pVictim, 100)); + basepoints[0] = ditheru(amount * 100 / CalcArmorReducedDamage(pVictim, 100)); triggered_spell_id = 22482; break; @@ -1232,7 +1230,7 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit* pVictim, uint32 damage, Aura return TriggerProccedSpell(target, basepoints, triggered_spell_id, castItem, triggeredByAura, cooldown); } -SpellAuraProcResult Unit::HandleProcTriggerSpellAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlags, uint32 procEx, uint32 cooldown) +SpellAuraProcResult Unit::HandleProcTriggerSpellAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlags, uint32 procEx, uint32 cooldown) { // Get triggered aura spell info SpellEntry const* auraSpellInfo = triggeredByAura->GetSpellProto(); @@ -1302,7 +1300,7 @@ SpellAuraProcResult Unit::HandleProcTriggerSpellAuraProc(Unit* pVictim, uint32 d if (auraSpellInfo->Id == 26467) // Persistent Shield (Scarab Brooch trinket) { // This spell originally trigger 13567 - Dummy Trigger (vs dummy effect) - basepoints[0] = damage * 15 / 100; + basepoints[0] = amount * 15 / 100; target = pVictim; trigger_spell_id = 26470; } @@ -1353,7 +1351,7 @@ SpellAuraProcResult Unit::HandleProcTriggerSpellAuraProc(Unit* pVictim, uint32 d { // When your health drops below 20% .... int32 health20 = int32(GetMaxHealth()) / 5; - if (int32(GetHealth()) - int32(damage) >= health20 || int32(GetHealth()) < health20) + if (int32(GetHealth()) - int32(amount) >= health20 || int32(GetHealth()) < health20) return SPELL_AURA_PROC_FAILED; } // Consequences ne proc pas sur soi-meme (Flammes infernales) @@ -1412,7 +1410,7 @@ SpellAuraProcResult Unit::HandleProcTriggerSpellAuraProc(Unit* pVictim, uint32 d sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "Unit::HandleProcTriggerSpell: Spell %u not handled in BR", auraSpellInfo->Id); return SPELL_AURA_PROC_FAILED; } - basepoints[0] = dither(damage * triggerAmount / 100 / 3); + basepoints[0] = dither(amount * triggerAmount / 100 / 3); target = this; } break; @@ -1688,7 +1686,7 @@ SpellAuraProcResult Unit::HandleProcTriggerSpellAuraProc(Unit* pVictim, uint32 d return TriggerProccedSpell(target, basepoints, triggerEntry, castItem, triggeredByAura, cooldown, GetObjectGuid(), procSpell); } -SpellAuraProcResult Unit::HandleProcTriggerDamageAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlags, uint32 procEx, uint32 cooldown) +SpellAuraProcResult Unit::HandleProcTriggerDamageAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 procFlags, uint32 procEx, uint32 cooldown) { SpellEntry const* spellInfo = triggeredByAura->GetSpellProto(); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "ProcDamageAndSpell: doing %u damage from spell id %u (triggered by auratype %u of spell %u)", @@ -1740,7 +1738,7 @@ SpellAuraProcResult Unit::HandleProcTriggerDamageAuraProc(Unit* pVictim, uint32 return SPELL_AURA_PROC_OK; } -SpellAuraProcResult Unit::HandleOverrideClassScriptAuraProc(Unit* pVictim, uint32 /*damage*/, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 /*procFlag*/, uint32 /*procEx*/ , uint32 cooldown) +SpellAuraProcResult Unit::HandleOverrideClassScriptAuraProc(Unit* pVictim, uint32 /*amount*/, uint32 /*originalAmount*/, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 /*procFlag*/, uint32 /*procEx*/ , uint32 cooldown) { int32 scriptId = triggeredByAura->GetModifier()->m_miscvalue; @@ -1834,19 +1832,19 @@ SpellAuraProcResult Unit::HandleOverrideClassScriptAuraProc(Unit* pVictim, uint3 return TriggerProccedSpell(pVictim, nullptr, triggered_spell_id, castItem, triggeredByAura, cooldown); } -SpellAuraProcResult Unit::HandleModCastingSpeedNotStackAuraProc(Unit* /*pVictim*/, uint32 /*damage*/, Aura* /*triggeredByAura*/, SpellEntry const* procSpell, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) +SpellAuraProcResult Unit::HandleModCastingSpeedNotStackAuraProc(Unit* /*pVictim*/, uint32 /*amount*/, uint32 /*originalAmount*/, Aura* /*triggeredByAura*/, SpellEntry const* procSpell, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) { // Skip melee hits or instant cast spells return !(procSpell == nullptr || procSpell->GetCastTime(this) == 0) ? SPELL_AURA_PROC_OK : SPELL_AURA_PROC_FAILED; } -SpellAuraProcResult Unit::HandleReflectSpellsSchoolAuraProc(Unit* /*pVictim*/, uint32 /*damage*/, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) +SpellAuraProcResult Unit::HandleReflectSpellsSchoolAuraProc(Unit* /*pVictim*/, uint32 /*amount*/, uint32 /*originalAmount*/, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) { // Skip Melee hits and spells ws wrong school return !(procSpell == nullptr || (triggeredByAura->GetModifier()->m_miscvalue & GetSchoolMask(procSpell->School)) == 0) ? SPELL_AURA_PROC_OK : SPELL_AURA_PROC_FAILED; } -SpellAuraProcResult Unit::HandleModPowerCostSchoolAuraProc(Unit* /*pVictim*/, uint32 /*damage*/, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) +SpellAuraProcResult Unit::HandleModPowerCostSchoolAuraProc(Unit* /*pVictim*/, uint32 /*amount*/, uint32 /*originalAmount*/, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) { // Skip melee hits and spells ws wrong school or zero cost return !(procSpell == nullptr || @@ -1854,7 +1852,7 @@ SpellAuraProcResult Unit::HandleModPowerCostSchoolAuraProc(Unit* /*pVictim*/, ui (triggeredByAura->GetModifier()->m_miscvalue & GetSchoolMask(procSpell->School)) == 0) ? SPELL_AURA_PROC_OK : SPELL_AURA_PROC_FAILED; // School check } -SpellAuraProcResult Unit::HandleMechanicImmuneResistanceAuraProc(Unit* /*pVictim*/, uint32 /*damage*/, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) +SpellAuraProcResult Unit::HandleMechanicImmuneResistanceAuraProc(Unit* /*pVictim*/, uint32 /*amount*/, uint32 /*originalAmount*/, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) { // Compare mechanic return !(procSpell == nullptr || procSpell->Mechanic != triggeredByAura->GetModifier()->m_miscvalue) @@ -1862,7 +1860,7 @@ SpellAuraProcResult Unit::HandleMechanicImmuneResistanceAuraProc(Unit* /*pVictim } // Nostalrius -SpellAuraProcResult Unit::HandleAddTargetTriggerAuraProc(Unit* pVictim, uint32 /*damage*/, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 /*procFlag*/, uint32 /*procEx*/ , uint32 cooldown) +SpellAuraProcResult Unit::HandleAddTargetTriggerAuraProc(Unit* pVictim, uint32 /*amount*/, uint32 /*originalAmount*/, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 /*procFlag*/, uint32 /*procEx*/ , uint32 cooldown) { SpellEntry const* aurEntry = triggeredByAura->GetSpellProto(); uint32 trigger_spell_id = aurEntry->EffectTriggerSpell[0]; @@ -1907,7 +1905,7 @@ SpellAuraProcResult Unit::HandleAddTargetTriggerAuraProc(Unit* pVictim, uint32 / return SPELL_AURA_PROC_OK; } -SpellAuraProcResult Unit::HandleModResistanceAuraProc(Unit* /*pVictim*/, uint32 damage, Aura* triggeredByAura, SpellEntry const* /*procSpell*/, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) +SpellAuraProcResult Unit::HandleModResistanceAuraProc(Unit* /*pVictim*/, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* /*procSpell*/, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) { SpellEntry const* spellInfo = triggeredByAura->GetSpellProto(); @@ -1915,14 +1913,14 @@ SpellAuraProcResult Unit::HandleModResistanceAuraProc(Unit* /*pVictim*/, uint32 if (spellInfo->IsFitToFamily()) { // only at real damage - if (!damage) + if (!amount) return SPELL_AURA_PROC_FAILED; } return SPELL_AURA_PROC_OK; } -SpellAuraProcResult Unit::HandleModDamageAuraProc(Unit* /*pVictim*/, uint32 /*damage*/, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) +SpellAuraProcResult Unit::HandleModDamageAuraProc(Unit* /*pVictim*/, uint32 /*amount*/, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const* procSpell, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 /*cooldown*/) { // the aura school mask must match the spell school uint32 const schoolMask = procSpell ? GetSchoolMask(procSpell->School) : SPELL_SCHOOL_MASK_NORMAL; @@ -1988,11 +1986,11 @@ SpellAuraProcResult Unit::HandleModDamageAuraProc(Unit* /*pVictim*/, uint32 /*da return SPELL_AURA_PROC_OK; } -SpellAuraProcResult Unit::HandleRemoveByDamageChanceProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const *procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown) +SpellAuraProcResult Unit::HandleRemoveByDamageChanceProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const *procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown) { // The chance to dispel an aura depends on the damage taken with respect to the casters level. uint32 max_dmg = GetLevel() > 8 ? 25 * GetLevel() - 150 : 50; - float chance = float(damage) / max_dmg * 100.0f; + float chance = float(amount) / max_dmg * 100.0f; if (roll_chance_f(chance)) { triggeredByAura->SetInUse(true); @@ -2004,9 +2002,9 @@ SpellAuraProcResult Unit::HandleRemoveByDamageChanceProc(Unit* pVictim, uint32 d return SPELL_AURA_PROC_FAILED; } -SpellAuraProcResult Unit::HandleRemoveFearByDamageChanceProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const *procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown) +SpellAuraProcResult Unit::HandleRemoveFearByDamageChanceProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const *procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown) { - if (!damage) + if (!originalAmount) return SPELL_AURA_PROC_FAILED; switch (triggeredByAura->GetSpellProto()->Mechanic) @@ -2057,10 +2055,10 @@ SpellAuraProcResult Unit::HandleRemoveFearByDamageChanceProc(Unit* pVictim, uint // of damage dealt, after all modifiers. #if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_10_2 if (procSpell && pVictim) - damage = pVictim->CalculateSpellEffectValue(this, procSpell, EFFECT_INDEX_0); + originalAmount = pVictim->CalculateSpellEffectValue(this, procSpell, EFFECT_INDEX_0); #endif - float chance = float(damage) / float(max_dmg) * 100.0f; + float chance = float(originalAmount) / float(max_dmg) * 100.0f; if (roll_chance_f(chance)) { triggeredByAura->SetInUse(true); @@ -2072,7 +2070,7 @@ SpellAuraProcResult Unit::HandleRemoveFearByDamageChanceProc(Unit* pVictim, uint return SPELL_AURA_PROC_FAILED; } -SpellAuraProcResult Unit::HandleInvisibilityAuraProc(Unit* pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const *procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown) +SpellAuraProcResult Unit::HandleInvisibilityAuraProc(Unit* pVictim, uint32 amount, uint32 originalAmount, Aura* triggeredByAura, SpellEntry const *procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown) { if (triggeredByAura->GetSpellProto()->HasAttribute(SPELL_ATTR_PASSIVE) || !triggeredByAura->GetSpellProto()->IsPositiveSpell()) return SPELL_AURA_PROC_FAILED; From 44793e8a694cc8b8d96a6210d099aeba809571c6 Mon Sep 17 00:00:00 2001 From: oowow-core <148252525+oowow-core@users.noreply.github.com> Date: Sat, 18 Nov 2023 02:09:22 +0800 Subject: [PATCH 320/426] Change hardcoded emote to broadcast text (#2293) --- .../burning_steppes/molten_core/molten_core.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scripts/eastern_kingdoms/burning_steppes/molten_core/molten_core.cpp b/src/scripts/eastern_kingdoms/burning_steppes/molten_core/molten_core.cpp index 8f8f9dfa7dc..1407d6f2337 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/molten_core/molten_core.cpp +++ b/src/scripts/eastern_kingdoms/burning_steppes/molten_core/molten_core.cpp @@ -296,7 +296,7 @@ struct mob_core_houndAI : public ScriptedAI if (!m_creature->SelectHostileTarget() || !m_creature->GetVictim()) return; - m_creature->MonsterTextEmote("Core Hound collapses and begins to smolder."); + m_creature->MonsterTextEmote(7866, m_creature); m_creature->SetHealth(0); m_creature->RemoveAllAuras(); m_creature->GetMotionMaster()->Clear(); @@ -367,7 +367,7 @@ struct mob_core_houndAI : public ScriptedAI { ResurrectSelf(); DoCastSpellIfCan(m_creature, SPELL_FIRE_NOVA_VISUAL, CF_TRIGGERED); - m_creature->MonsterTextEmote("Core Hound reignites from the heat of another Core Hound!"); + m_creature->MonsterTextEmote(7867, m_creature); } else Kill_Self(); From ebec3eedf4e11f441a7e4037af073d64568e0e2e Mon Sep 17 00:00:00 2001 From: Daribon Date: Sat, 18 Nov 2023 06:34:40 +0100 Subject: [PATCH 321/426] Correct waypoints in Light's Hope. (#2265) --- sql/migrations/20231105205500_world.sql | 104 ++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 sql/migrations/20231105205500_world.sql diff --git a/sql/migrations/20231105205500_world.sql b/sql/migrations/20231105205500_world.sql new file mode 100644 index 00000000000..524d353fd4d --- /dev/null +++ b/sql/migrations/20231105205500_world.sql @@ -0,0 +1,104 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231105205500'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231105205500'); +-- Add your query below. + + +-- Pathing for Argent Sentry Entry: 16378 +SET @NPC := 53865; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,2280.1094,-5293.3145,83.82182,100,0,0,0), +(@NPC,2,2279.1226,-5278.7065,82.22971,100,0,0,0), +(@NPC,3,2278.774,-5266.625,81.37998,100,0,0,0), +(@NPC,4,2279.1226,-5278.7065,82.22971,100,0,0,0); +-- 0x204CB000000FFE8000000C0002428D8F .go xyz 2280.1094 -5293.3145 83.82182 + +-- Correct formation for Argent Sentry Entry: 16378 +UPDATE `creature_groups` SET `angle`=0 WHERE `member_guid`=53865; +UPDATE `creature_groups` SET `dist`=4, `angle`=1.56 WHERE `member_guid`=53866; + +-- Pathing for Argent Sentry Entry: 16378 +SET @NPC := 54752; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=2272.21,`position_y`=-5376.8027,`position_z`=83.72495 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,2272.21,-5376.8027,83.72495,100,0,0,0), +(@NPC,2,2277.5042,-5377.518,84.207886,100,0,0,0), +(@NPC,3,2289.0894,-5379.7085,83.85406,100,0,0,0), +(@NPC,4,2296.1199,-5381.069,82.66928,100,0,0,0), +(@NPC,5,2307.0886,-5373.584,84.884315,100,0,0,0), +(@NPC,6,2311.0925,-5369.967,86.37994,100,0,0,0), +(@NPC,7,2316.6914,-5359.1455,87.52435,100,0,0,0), +(@NPC,8,2321.7026,-5351.0586,87.13342,100,0,0,0), +(@NPC,9,2315.9106,-5354.275,87.79889,100,0,0,0), +(@NPC,10,2321.9448,-5346.086,87.31865,100,0,0,0), +(@NPC,11,2326.913,-5331.1313,81.99626,100,0,0,0), +(@NPC,12,2334.154,-5321.8525,81.99626,100,0,0,0), +(@NPC,13,2333.5288,-5310.0923,81.99626,100,0,0,0), +(@NPC,14,2335.2712,-5301.103,82.213745,100,0,0,0), +(@NPC,15,2334.126,-5294.6426,81.89961,100,0,0,0), +(@NPC,16,2331.1467,-5283.6953,81.7762,100,0,0,0), +(@NPC,17,2321.9421,-5275.3467,82.077484,100,0,0,0), +(@NPC,18,2308.7708,-5265.974,82.424644,100,0,0,0), +(@NPC,19,2296.8872,-5266.1475,81.95648,100,0,0,0), +(@NPC,20,2290.3264,-5273.1562,81.842606,100,0,0,0), +(@NPC,21,2284.3933,-5279.98,82.27731,100,0,0,0), +(@NPC,22,2277.0366,-5282.314,82.37412,100,0,0,0), +(@NPC,23,2268.1338,-5288.585,82.17806,100,0,0,0), +(@NPC,24,2256.3801,-5289.5156,81.99177,100,0,0,0), +(@NPC,25,2243.6545,-5291.8906,82.59134,100,0,0,0), +(@NPC,26,2235.8628,-5300.807,82.10311,100,0,0,0), +(@NPC,27,2236.9993,-5318.815,82.09314,100,0,0,0), +(@NPC,28,2238.843,-5335.112,83.26499,100,0,0,0), +(@NPC,29,2246.8555,-5338.9165,86.114655,100,0,0,0), +(@NPC,30,2242.4248,-5343.108,86.09,100,0,0,0), +(@NPC,31,2240.2354,-5348.1484,85.832054,100,0,0,0), +(@NPC,32,2243.2659,-5361.3203,83.35728,100,0,0,0), +(@NPC,33,2252.572,-5363.632,84.30835,100,0,0,0), +(@NPC,34,2257.8555,-5363.7524,84.66276,100,0,0,0), +(@NPC,35,2264.4492,-5372.2505,83.034904,100,0,0,0); +-- 0x204CB000000FFE8000000C0001C28D92 .go xyz 2272.21 -5376.8027 83.72495 + +-- Pathing for Argent Rider Entry: 11102 +SET @NPC := 68922; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=2345.2505,`position_y`=-5295.3735,`position_z`=83.38345 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,2345.2505,-5295.3735,83.38345,100,0,0,0), +(@NPC,2,2325.7888,-5275.8696,81.9617,100,0,0,0), +(@NPC,3,2306.3225,-5265.407,82.330635,100,0,0,0), +(@NPC,4,2286.3445,-5260.949,81.44661,100,0,0,0), +(@NPC,5,2261.1724,-5259.142,77.82984,100,0,0,0), +(@NPC,6,2225.0198,-5261.5767,75.78875,100,0,0,0), +(@NPC,7,2199.779,-5263.6157,84.70892,100,0,0,0), +(@NPC,8,2174.3828,-5267.2393,92.300514,100,0,0,0), +(@NPC,9,2199.779,-5263.6157,84.70892,100,0,0,0), +(@NPC,10,2225.0198,-5261.5767,75.78875,100,0,0,0), +(@NPC,11,2261.1724,-5259.142,77.82984,100,0,0,0), +(@NPC,12,2286.3445,-5260.949,81.44661,100,0,0,0), +(@NPC,13,2306.3225,-5265.407,82.330635,100,0,0,0), +(@NPC,14,2325.7888,-5275.8696,81.9617,100,0,0,0); +-- 0x204CB000000AD78000000C0000428D92 .go xyz 2345.2505 -5295.3735 83.38345 + +-- Correct formation for Argent Rider Entry: 11102 +UPDATE `creature_groups` SET `angle`=0 WHERE `member_guid`=68922; +UPDATE `creature_groups` SET `dist`=5, `angle`=1.56 WHERE `member_guid`=68543; + +-- Delete custom spawned Argent Sentry NPC +-- Incorrectly spawned where Argent Outfitter spawns +DELETE FROM `creature` WHERE `guid` = 60003; +DELETE FROM `creature_movement` WHERE `id` = 60003; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 403f13398300957e2675d95ad7f572a73d59ed25 Mon Sep 17 00:00:00 2001 From: Daribon Date: Sat, 18 Nov 2023 06:39:52 +0100 Subject: [PATCH 322/426] Correct Arathi Highlands waypoints. (#2274) --- sql/migrations/20231110231336_world.sql | 135 ++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 sql/migrations/20231110231336_world.sql diff --git a/sql/migrations/20231110231336_world.sql b/sql/migrations/20231110231336_world.sql new file mode 100644 index 00000000000..94fb473257a --- /dev/null +++ b/sql/migrations/20231110231336_world.sql @@ -0,0 +1,135 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231110231336'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231110231336'); +-- Add your query below. + + +-- Pathing for Refuge Pointe Defender Entry: 10696 +SET @NPC := 11912; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-1215.1423,`position_y`=-2592.6375,`position_z`=33.9756 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-1215.1423,-2592.6375,33.9756,100,0,0,0), +(@NPC,2,-1233.125,-2567.3887,25.434444,100,0,0,0), +(@NPC,3,-1237.635,-2552.3345,21.831135,100,0,0,0), +(@NPC,4,-1245.7805,-2537.6018,20.862576,100,0,0,0), +(@NPC,5,-1251.6022,-2525.4854,20.657684,100,0,0,0), +(@NPC,6,-1256.9673,-2508.8274,20.730148,100,0,0,0), +(@NPC,7,-1269.564,-2492.495,22.942904,100,0,0,0), +(@NPC,8,-1279.6426,-2481.3613,27.918743,100,0,0,0), +(@NPC,9,-1292.4153,-2468.9219,34.813774,100,0,0,0), +(@NPC,10,-1308.0212,-2461.7056,40.116707,100,0,0,0), +(@NPC,11,-1329.6934,-2451.395,44.878124,100,0,0,0), +(@NPC,12,-1347.63,-2447.1057,49.097366,100,0,0,0), +(@NPC,13,-1361.5416,-2452.306,51.618176,100,0,0,0), +(@NPC,14,-1378.4364,-2455.5337,54.59223,100,0,0,0), +(@NPC,15,-1361.5416,-2452.306,51.618176,100,0,0,0), +(@NPC,16,-1347.63,-2447.1057,49.097366,100,0,0,0), +(@NPC,17,-1329.6934,-2451.395,44.878124,100,0,0,0), +(@NPC,18,-1308.0212,-2461.7056,40.116707,100,0,0,0), +(@NPC,19,-1292.4153,-2468.9219,34.813774,100,0,0,0), +(@NPC,20,-1279.6437,-2481.3567,28.016342,100,0,0,0), +(@NPC,21,-1269.564,-2492.495,22.942904,100,0,0,0), +(@NPC,22,-1256.9673,-2508.8274,20.730148,100,0,0,0), +(@NPC,23,-1251.6022,-2525.4854,20.657684,100,0,0,0), +(@NPC,24,-1245.7805,-2537.6018,20.862576,100,0,0,0), +(@NPC,25,-1237.635,-2552.3345,21.831135,100,0,0,0), +(@NPC,26,-1233.2218,-2567.302,25.419287,100,0,0,0); +-- 0x204CB000000A720000002100011C65F1 .go xyz -1215.1423 -2592.6375 33.9756 + +-- Pathing for Stromgarde Defender Entry: 2584 +SET @NPC := 14609; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-1636.5482,`position_y`=-1621.8446,`position_z`=67.12053 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-1636.5482,-1621.8446,67.12053,100,0,0,0), +(@NPC,2,-1629.5278,-1633.7365,66.84605,100,0,0,0), +(@NPC,3,-1621.1124,-1639.882,66.837616,100,0,0,0), +(@NPC,4,-1628.236,-1652.2428,67.2607,100,0,0,0), +(@NPC,5,-1625.382,-1663.3544,67.23186,100,0,0,0), +(@NPC,6,-1617.5686,-1670.7135,66.87774,100,0,0,0), +(@NPC,7,-1606.1228,-1672.191,66.16284,100,0,0,0), +(@NPC,8,-1598.6002,-1670.3351,66.29644,100,0,0,0), +(@NPC,9,-1606.1228,-1672.191,66.16284,100,0,0,0), +(@NPC,10,-1617.5686,-1670.7135,66.87774,100,0,0,0), +(@NPC,11,-1625.382,-1663.3544,67.23186,100,0,0,0), +(@NPC,12,-1628.236,-1652.2428,67.2607,100,0,0,0), +(@NPC,13,-1621.1124,-1639.882,66.837616,100,0,0,0), +(@NPC,14,-1629.5278,-1633.7365,66.84605,100,0,0,0), +(@NPC,15,-1631.7751,-1625.365,66.83586,100,0,0,0); +-- 0x204CB0000002860000002100003002B8 .go xyz -1636.5482 -1621.8446 67.12053 + +-- Pathing for Stromgarde Defender Entry: 2584 +SET @NPC := 14606; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-1584.2805,`position_y`=-1713.0206,`position_z`=66.99361 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-1584.2805,-1713.0206,66.99361,100,0,0,0), +(@NPC,2,-1584.61,-1705.238,66.69313,100,0,0,0), +(@NPC,3,-1585.1506,-1695.6406,66.334,100,0,0,0), +(@NPC,4,-1586.8381,-1688.4911,66.21356,100,0,0,0), +(@NPC,5,-1591.6439,-1685.4991,66.46945,100,0,0,0), +(@NPC,6,-1600.3186,-1683.5142,66.000565,100,0,0,0), +(@NPC,7,-1607.1626,-1682.663,66.22337,100,0,0,0), +(@NPC,8,-1614.7952,-1681.6621,66.53519,100,0,0,0), +(@NPC,9,-1620.2489,-1685.9489,66.960045,100,0,0,0), +(@NPC,10,-1625.5293,-1691.9648,67.35092,100,0,0,0), +(@NPC,11,-1630.3586,-1698.0946,67.92995,100,0,0,0), +(@NPC,12,-1633.2134,-1708.5669,68.433716,100,0,0,0), +(@NPC,13,-1630.3586,-1698.0946,67.92995,100,0,0,0), +(@NPC,14,-1625.6324,-1692.0928,67.366066,100,0,0,0), +(@NPC,15,-1620.2489,-1685.9489,66.960045,100,0,0,0), +(@NPC,16,-1614.7952,-1681.6621,66.53519,100,0,0,0), +(@NPC,17,-1607.1626,-1682.663,66.22337,100,0,0,0), +(@NPC,18,-1600.3186,-1683.5142,66.000565,100,0,0,0), +(@NPC,19,-1591.6439,-1685.4991,66.46945,100,0,0,0), +(@NPC,20,-1586.8381,-1688.4911,66.21356,100,0,0,0), +(@NPC,21,-1585.1506,-1695.6406,66.334,100,0,0,0), +(@NPC,22,-1584.61,-1705.238,66.69313,100,0,0,0); +-- 0x204CB0000002860000002100003002F7 .go xyz -1584.2805 -1713.0206 66.99361 + +-- Pathing for Stromgarde Defender Entry: 2584 +SET @NPC := 14619; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-1527.8209,`position_y`=-1774.6979,`position_z`=67.607414 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-1527.8209,-1774.6979,67.607414,100,0,0,0), +(@NPC,2,-1526.1198,-1761.1154,66.970856,100,0,0,0), +(@NPC,3,-1530.2208,-1725.641,66.118546,100,0,0,0), +(@NPC,4,-1546.6841,-1710.4508,66.28865,100,0,0,0), +(@NPC,5,-1568.9625,-1697.632,66.30364,100,0,0,0), +(@NPC,6,-1583.2578,-1688.6748,66.08267,100,0,0,0), +(@NPC,7,-1599.4489,-1679.51,65.85135,100,0,0,0), +(@NPC,8,-1612.3939,-1678.6873,66.36131,100,0,0,0), +(@NPC,9,-1624.5533,-1661.6787,67.18534,100,0,0,0), +(@NPC,10,-1629.2106,-1641.566,67.247406,100,0,0,0), +(@NPC,11,-1635.8367,-1622.9655,67.00303,100,0,0,0), +(@NPC,12,-1629.2106,-1641.566,67.247406,100,0,0,0), +(@NPC,13,-1624.5533,-1661.6787,67.18534,100,0,0,0), +(@NPC,14,-1612.3939,-1678.6873,66.36131,100,0,0,0), +(@NPC,15,-1599.4489,-1679.51,65.85135,100,0,0,0), +(@NPC,16,-1583.2578,-1688.6748,66.08267,100,0,0,0), +(@NPC,17,-1568.9625,-1697.632,66.30364,100,0,0,0), +(@NPC,18,-1546.6841,-1710.4508,66.28865,100,0,0,0), +(@NPC,19,-1530.2208,-1725.641,66.118546,100,0,0,0), +(@NPC,20,-1528.9032,-1748.1808,66.901245,100,0,0,0), +(@NPC,21,-1526.1198,-1761.1154,66.970856,100,0,0,0); +-- 0x204CB0000002860000002100003002C6 .go xyz -1527.8209 -1774.6979 67.607414 + +-- Delete duplicate Stormgarde Troll Hunter 14607 +DELETE FROM `creature` WHERE `guid`=14607; +-- Delete Duplicate Stromgarde Defender 14761 +DELETE FROM `creature` WHERE `guid`=14761; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 71781a0a17e9406703a3e06c0c39895a8240c179 Mon Sep 17 00:00:00 2001 From: Daribon Date: Sat, 18 Nov 2023 06:43:22 +0100 Subject: [PATCH 323/426] Add waypoints to Lady Zephris. (#2275) --- sql/migrations/20231110235622_world.sql | 58 +++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 sql/migrations/20231110235622_world.sql diff --git a/sql/migrations/20231110235622_world.sql b/sql/migrations/20231110235622_world.sql new file mode 100644 index 00000000000..33f8e6266f9 --- /dev/null +++ b/sql/migrations/20231110235622_world.sql @@ -0,0 +1,58 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231110235622'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231110235622'); +-- Add your query below. + + +-- Pathing for Lady Zephris Entry: 14277 +-- https://www.youtube.com/watch?v=GAzEaEKKtgU&t=6027s +SET @NPC := 16047; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-1473.6924,`position_y`=-1099.3652,`position_z`=-4.3176775 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-1473.6924,-1099.3652,-4.3176775,100,0,0,0), +(@NPC,2,-1478.4865,-1077.9651,-6.023244,100,0,0,0), +(@NPC,3,-1460.6696,-1051.921,-7.36767,100,0,0,0), +(@NPC,4,-1427.7164,-1040.4044,-2.0780458,100,0,0,0), +(@NPC,5,-1397.5704,-1032.105,-1.5046282,100,0,0,0), +(@NPC,6,-1359.5472,-1021.6162,-1.1081097,100,0,0,0), +(@NPC,7,-1318.3431,-1009.285,-1.7393727,100,0,0,0), +(@NPC,8,-1293.9735,-994.2434,-0.91534543,100,0,0,0), +(@NPC,9,-1279.4846,-972.2039,-1.0127575,100,0,0,0), +(@NPC,10,-1259.8593,-943.91235,0.43451452,100,0,0,0), +(@NPC,11,-1245.7662,-916.38556,0.21085262,100,0,0,0), +(@NPC,12,-1230.8981,-889.93195,-0.2990613,100,0,0,0), +(@NPC,13,-1202.3557,-861.0522,0.1274085,100,0,0,0), +(@NPC,14,-1181.9938,-838.1403,-0.07147527,100,0,0,0), +(@NPC,15,-1155.6682,-812.21387,0.00438118,100,0,0,0), +(@NPC,16,-1135.0479,-793.8221,0.73909044,100,0,0,0), +(@NPC,17,-1101.6415,-791.8814,-0.24045515,100,0,0,0), +(@NPC,18,-1135.0479,-793.8221,0.73909044,100,0,0,0), +(@NPC,19,-1155.6682,-812.21387,0.00438118,100,0,0,0), +(@NPC,20,-1181.9938,-838.1403,-0.07147527,100,0,0,0), +(@NPC,21,-1202.3557,-861.0522,0.1274085,100,0,0,0), +(@NPC,22,-1230.8981,-889.93195,-0.2990613,100,0,0,0), +(@NPC,23,-1245.7662,-916.38556,0.21085262,100,0,0,0), +(@NPC,24,-1259.8593,-943.91235,0.43451452,100,0,0,0), +(@NPC,25,-1279.4846,-972.2039,-1.0127575,100,0,0,0), +(@NPC,26,-1293.9735,-994.2434,-0.91534543,100,0,0,0), +(@NPC,27,-1318.3431,-1009.285,-1.7393727,100,0,0,0), +(@NPC,28,-1359.5472,-1021.6162,-1.1081097,100,0,0,0), +(@NPC,29,-1397.5704,-1032.105,-1.5046282,100,0,0,0), +(@NPC,30,-1427.7164,-1040.4044,-2.0780458,100,0,0,0), +(@NPC,31,-1460.6696,-1051.921,-7.36767,100,0,0,0), +(@NPC,32,-1478.4865,-1077.9651,-6.023244,100,0,0,0); +-- 0x204CB000000DF140000007000039B364 .go xyz -1473.6924 -1099.3652 -4.3176775 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From f8c9d5cf98a1c2cc506380abc46305081142b83a Mon Sep 17 00:00:00 2001 From: Daribon Date: Sat, 18 Nov 2023 06:50:14 +0100 Subject: [PATCH 324/426] Add waypoints to Alshirr Banebreath. (#2276) --- sql/migrations/20231111000820_world.sql | 56 +++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 sql/migrations/20231111000820_world.sql diff --git a/sql/migrations/20231111000820_world.sql b/sql/migrations/20231111000820_world.sql new file mode 100644 index 00000000000..eb4b638228b --- /dev/null +++ b/sql/migrations/20231111000820_world.sql @@ -0,0 +1,56 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231111000820'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231111000820'); +-- Add your query below. + + +-- Pathing for Alshirr Banebreath Entry: 14340 +-- https://www.youtube.com/watch?v=tYD3tUv-KqI +SET @NPC := 51894; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=4026.523,`position_y`=-555.293,`position_z`=342.505 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,4026.523,-555.293,342.505,100,0,0,0), +(@NPC,2,3999.6077,-585.43585,338.0969,100,0,0,0), +(@NPC,3,3967.8643,-599.3677,338.82224,100,0,0,0), +(@NPC,4,3939.5344,-610.4964,340.5994,100,0,0,0), +(@NPC,5,3918.8508,-620.3714,339.56857,100,0,0,0), +(@NPC,6,3893.1277,-649.1434,334.0132,100,0,0,0), +(@NPC,7,3867.4185,-662.55194,330.74258,100,0,0,0), +(@NPC,8,3851.004,-677.2051,328.14557,100,0,0,0), +(@NPC,9,3841.1611,-713.5064,325.38644,100,0,0,0), +(@NPC,10,3836.204,-740.03125,319.4985,100,0,0,0), +(@NPC,11,3827.0447,-763.3758,314.87888,100,0,0,0), +(@NPC,12,3818.8672,-787.662,307.59967,100,0,0,0), +(@NPC,13,3792.5173,-812.1507,307.89844,100,0,0,0), +(@NPC,14,3768.1362,-831.72095,310.0974,100,0,0,0), +(@NPC,15,3771.9072,-848.68176,305.3522,100,0,0,0), +(@NPC,16,3757.2969,-866.6099,313.99258,100,0,0,0), +(@NPC,17,3771.9072,-848.68176,305.3522,100,0,0,0), +(@NPC,18,3768.1362,-831.72095,310.0974,100,0,0,0), +(@NPC,19,3792.5173,-812.1507,307.89844,100,0,0,0), +(@NPC,20,3818.8672,-787.662,307.59967,100,0,0,0), +(@NPC,21,3827.0447,-763.3758,314.87888,100,0,0,0), +(@NPC,22,3836.197,-740.15375,319.43015,100,0,0,0), +(@NPC,23,3841.1611,-713.5064,325.38644,100,0,0,0), +(@NPC,24,3850.8962,-677.3118,328.18048,100,0,0,0), +(@NPC,25,3867.4185,-662.55194,330.74258,100,0,0,0), +(@NPC,26,3893.1277,-649.1434,334.0132,100,0,0,0), +(@NPC,27,3918.8508,-620.3714,339.56857,100,0,0,0), +(@NPC,28,3939.5344,-610.4964,340.5994,100,0,0,0), +(@NPC,29,3967.8643,-599.3677,338.82224,100,0,0,0), +(@NPC,30,3999.6077,-585.43585,338.0969,100,0,0,0); +-- .go xyz 4026.523 -555.293 342.505 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 728d0270fe2b26773c9aea326e32699c01761767 Mon Sep 17 00:00:00 2001 From: Daribon Date: Sat, 18 Nov 2023 06:55:03 +0100 Subject: [PATCH 325/426] Add waypoints to Molt Thorn. (#2277) --- sql/migrations/20231111004702_world.sql | 65 +++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 sql/migrations/20231111004702_world.sql diff --git a/sql/migrations/20231111004702_world.sql b/sql/migrations/20231111004702_world.sql new file mode 100644 index 00000000000..8fafd7122a1 --- /dev/null +++ b/sql/migrations/20231111004702_world.sql @@ -0,0 +1,65 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231111004702'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231111004702'); +-- Add your query below. + + +-- Pathing for Molt Thorn Entry: 14448 +SET @NPC := 48345; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-10372.76,`position_y`=-2757.6826,`position_z`=17.499084 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-10372.76,-2757.6826,17.499084,100,0,0,0), +(@NPC,2,-10400.012,-2781.2932,17.499088,100,0,0,0), +(@NPC,3,-10419.404,-2802.7551,17.499088,100,0,0,0), +(@NPC,4,-10424.825,-2830.8735,17.499088,100,0,0,0), +(@NPC,5,-10413.998,-2844.0894,17.477198,100,0,0,0), +(@NPC,6,-10386.297,-2875.072,17.499084,100,0,0,0), +(@NPC,7,-10373.333,-2900.8286,17.499084,100,0,0,0), +(@NPC,8,-10351.552,-2923.1472,17.499084,100,0,0,0), +(@NPC,9,-10332.582,-2934.5989,17.423042,100,0,0,0), +(@NPC,10,-10317.686,-2915.348,17.49908,100,0,0,0), +(@NPC,11,-10303.875,-2920.8337,17.49908,100,0,0,0), +(@NPC,12,-10274.936,-2935.7683,17.49908,100,0,0,0), +(@NPC,13,-10299.674,-2915.3694,17.49908,100,0,0,0), +(@NPC,14,-10322.778,-2912.8298,18.183163,100,0,0,0), +(@NPC,15,-10326.502,-2931.2092,17.439022,100,0,0,0), +(@NPC,16,-10341.627,-2950.7422,17.46344,100,0,0,0), +(@NPC,17,-10340.352,-2980.3801,17.475403,100,0,0,0), +(@NPC,18,-10331.167,-3011.9717,17.499086,100,0,0,0), +(@NPC,19,-10320.729,-3022.7256,17.499086,100,0,0,0), +(@NPC,20,-10305.837,-3026.4949,17.499086,100,0,0,0), +(@NPC,21,-10276.681,-3039.2546,17.499092,100,0,0,0), +(@NPC,22,-10305.837,-3026.4949,17.499086,100,0,0,0), +(@NPC,23,-10320.729,-3022.7256,17.499086,100,0,0,0), +(@NPC,24,-10331.167,-3011.9717,17.499086,100,0,0,0), +(@NPC,25,-10340.352,-2980.3801,17.475403,100,0,0,0), +(@NPC,26,-10341.627,-2950.7422,17.46344,100,0,0,0), +(@NPC,27,-10326.502,-2931.2092,17.439022,100,0,0,0), +(@NPC,28,-10322.778,-2912.8298,18.183163,100,0,0,0), +(@NPC,29,-10299.674,-2915.3694,17.49908,100,0,0,0), +(@NPC,30,-10274.936,-2935.7683,17.49908,100,0,0,0), +(@NPC,31,-10303.875,-2920.8337,17.49908,100,0,0,0), +(@NPC,32,-10317.686,-2915.348,17.49908,100,0,0,0), +(@NPC,33,-10332.582,-2934.5989,17.423042,100,0,0,0), +(@NPC,34,-10351.552,-2923.1472,17.499084,100,0,0,0), +(@NPC,35,-10373.333,-2900.8286,17.499084,100,0,0,0), +(@NPC,36,-10386.297,-2875.072,17.499084,100,0,0,0), +(@NPC,37,-10413.998,-2844.0894,17.477198,100,0,0,0), +(@NPC,38,-10424.825,-2830.8735,17.499088,100,0,0,0), +(@NPC,39,-10419.404,-2802.7551,17.499088,100,0,0,0), +(@NPC,40,-10400.012,-2781.2932,17.499088,100,0,0,0); +-- 0x204CB000000E1C0000000C00003DDEA7 .go xyz -10372.76 -2757.6826 17.499084 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From b7ce8fc63a9f1d976c32af32d9673fddc782a1a4 Mon Sep 17 00:00:00 2001 From: Daribon Date: Sat, 18 Nov 2023 06:58:27 +0100 Subject: [PATCH 326/426] Add waypoints to Rex Ashil. (#2278) --- sql/migrations/20231111010247_world.sql | 55 +++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 sql/migrations/20231111010247_world.sql diff --git a/sql/migrations/20231111010247_world.sql b/sql/migrations/20231111010247_world.sql new file mode 100644 index 00000000000..22e788eda3d --- /dev/null +++ b/sql/migrations/20231111010247_world.sql @@ -0,0 +1,55 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231111010247'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231111010247'); +-- Add your query below. + + +-- Pathing for Rex Ashil Entry: 14475 +SET @NPC := 51836; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-6630.2847,`position_y`=945.4344,`position_z`=-52.96825 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-6630.2847,945.4344,-52.96825,100,0,0,0), +(@NPC,2,-6627.747,929.4205,-53.191467,100,0,0,0), +(@NPC,3,-6609.186,929.8785,-53.16585,100,0,0,0), +(@NPC,4,-6591.815,909.97754,-48.229885,100,0,0,0), +(@NPC,5,-6591.289,896.8762,-44.285564,100,0,0,0), +(@NPC,6,-6595.7266,884.783,-44.09041,100,0,0,0), +(@NPC,7,-6581.963,877.2528,-44.54215,100,0,0,0), +(@NPC,8,-6570.469,885.4149,-43.199642,100,0,0,0), +(@NPC,9,-6555.0957,885.0344,-39.406754,100,0,0,0), +(@NPC,10,-6545.19,871.5345,-32.738403,100,0,0,0), +(@NPC,11,-6535.754,862.1162,-29.028198,100,0,0,0), +(@NPC,12,-6518.3926,866.1533,-30.434242,100,0,0,0), +(@NPC,13,-6512.0576,887.03265,-39.736877,100,0,0,0), +(@NPC,14,-6497.0356,901.76587,-41.681843,100,0,0,0), +(@NPC,15,-6473.988,908.0661,-41.303955,100,0,0,0), +(@NPC,16,-6480.6694,921.8447,-41.822407,100,0,0,0), +(@NPC,17,-6473.988,908.0661,-41.303955,100,0,0,0), +(@NPC,18,-6497.0356,901.76587,-41.681843,100,0,0,0), +(@NPC,19,-6512.0576,887.03265,-39.736877,100,0,0,0), +(@NPC,20,-6518.3926,866.1533,-30.434242,100,0,0,0), +(@NPC,21,-6535.754,862.1162,-29.028198,100,0,0,0), +(@NPC,22,-6545.19,871.5345,-32.738403,100,0,0,0), +(@NPC,23,-6555.0957,885.0344,-39.406754,100,0,0,0), +(@NPC,24,-6570.469,885.4149,-43.199642,100,0,0,0), +(@NPC,25,-6581.963,877.2528,-44.54215,100,0,0,0), +(@NPC,26,-6595.7266,884.783,-44.09041,100,0,0,0), +(@NPC,27,-6591.289,896.8762,-44.285564,100,0,0,0), +(@NPC,28,-6591.8135,909.9452,-48.222664,100,0,0,0), +(@NPC,29,-6609.186,929.8785,-53.16585,100,0,0,0), +(@NPC,30,-6627.747,929.4205,-53.191467,100,0,0,0); +-- .go xyz -6630.2847 945.4344 -52.96825 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From e38b956db7b16b2a53016285ad033d8299d5385b Mon Sep 17 00:00:00 2001 From: Daribon Date: Sat, 18 Nov 2023 07:00:53 +0100 Subject: [PATCH 327/426] Add waypoints to Foulmane. (#2280) --- sql/migrations/20231111215040_world.sql | 38 +++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 sql/migrations/20231111215040_world.sql diff --git a/sql/migrations/20231111215040_world.sql b/sql/migrations/20231111215040_world.sql new file mode 100644 index 00000000000..2aa7120c0f3 --- /dev/null +++ b/sql/migrations/20231111215040_world.sql @@ -0,0 +1,38 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231111215040'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231111215040'); +-- Add your query below. + + +-- Pathing for Foulmane Entry: 1847 +SET @NPC := 45454; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=1867.8231,`position_y`=-1582.6323,`position_z`=59.543274 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,1867.8231,-1582.6323,59.543274,100,0,0,0), +(@NPC,2,1862.686,-1575.6617,59.418274,100,0,0,0), +(@NPC,3,1865.2483,-1568.495,58.918274,100,0,0,0), +(@NPC,4,1862.7682,-1561.516,59.257603,100,0,0,0), +(@NPC,5,1866.2867,-1555.184,59.20914,100,0,0,0), +(@NPC,6,1874.4098,-1548.5449,59.26224,100,0,0,0), +(@NPC,7,1888.9252,-1546.674,58.882603,100,0,0,0), +(@NPC,8,1898.0934,-1554.2573,59.132603,100,0,0,0), +(@NPC,9,1900.8027,-1568.277,59.696507,100,0,0,0), +(@NPC,10,1899.4547,-1582.4746,59.418274,100,0,0,0), +(@NPC,11,1896.0823,-1588.0172,59.168274,100,0,0,0), +(@NPC,12,1885.111,-1591.6702,59.293274,100,0,0,0), +(@NPC,13,1874.7734,-1589.3805,59.629944,100,0,0,0); +-- .go xyz 1867.8231 -1582.6323 59.543274 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From a3efdd71b8e72ccb9a90b9d72811396f5843df8b Mon Sep 17 00:00:00 2001 From: Daribon Date: Sat, 18 Nov 2023 07:06:43 +0100 Subject: [PATCH 328/426] Correct waypoints for Anathemus. (#2281) --- sql/migrations/20231111222109_world.sql | 125 ++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 sql/migrations/20231111222109_world.sql diff --git a/sql/migrations/20231111222109_world.sql b/sql/migrations/20231111222109_world.sql new file mode 100644 index 00000000000..fd534460131 --- /dev/null +++ b/sql/migrations/20231111222109_world.sql @@ -0,0 +1,125 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231111222109'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231111222109'); +-- Add your query below. + + +-- Pathing for Anathemus Entry: 2754 +SET @NPC := 27567; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-6876.906,`position_y`=-3514.3828,`position_z`=242.04547 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-6876.906,-3514.3828,242.04547,100,0,0,0), +(@NPC,2,-6840.538,-3519.0667,241.79167,100,0,0,0), +(@NPC,3,-6820.1304,-3509.398,241.9436,100,0,0,0), +(@NPC,4,-6809.9346,-3487.4346,242.07185,100,0,0,0), +(@NPC,5,-6790.627,-3450.6472,241.79167,100,0,0,0), +(@NPC,6,-6759.354,-3422.3838,242.16667,100,0,0,0), +(@NPC,7,-6728.5444,-3389.7178,242.02257,100,0,0,0), +(@NPC,8,-6719.6704,-3352.6965,241.69453,100,0,0,0), +(@NPC,9,-6696.061,-3317.606,241.3291,100,0,0,0), +(@NPC,10,-6684.8213,-3284.0735,241.6626,100,0,0,0), +(@NPC,11,-6653.3384,-3279.8525,241.72363,100,0,0,0), +(@NPC,12,-6679.363,-3248.7168,240.8131,100,0,0,0), +(@NPC,13,-6712.4126,-3244.1365,240.85477,100,0,0,0), +(@NPC,14,-6739.8257,-3231.436,240.82924,100,0,0,0), +(@NPC,15,-6756.792,-3202.5115,240.86244,100,0,0,0), +(@NPC,16,-6766.203,-3176.1594,240.86865,100,0,0,0), +(@NPC,17,-6777.5215,-3145.0503,240.7666,100,0,0,0), +(@NPC,18,-6795.2954,-3123.2673,240.86526,100,0,0,0), +(@NPC,19,-6801.9766,-3096.6023,240.86865,100,0,0,0), +(@NPC,20,-6807.511,-3056.8308,241.74121,100,0,0,0), +(@NPC,21,-6822.888,-3011.4414,241.79167,100,0,0,0), +(@NPC,22,-6825.684,-2989.4001,242.91678,100,0,0,0), +(@NPC,23,-6842.297,-2982.216,244.27124,100,0,0,0), +(@NPC,24,-6861.3726,-2957.182,244.17899,100,0,0,0), +(@NPC,25,-6836.8813,-2934.417,243.85623,100,0,0,0), +(@NPC,26,-6819.379,-2895.1196,243.4576,100,0,0,0), +(@NPC,27,-6824.655,-2874.098,241.85579,100,0,0,0), +(@NPC,28,-6799.0176,-2865.9011,241.69374,100,0,0,0), +(@NPC,29,-6777.7173,-2853.8625,242.76283,100,0,0,0), +(@NPC,30,-6769.924,-2834.0032,243.2162,100,0,0,0), +(@NPC,31,-6764.0596,-2805.0393,242.24786,100,0,0,0), +(@NPC,32,-6779.0684,-2774.1848,242.61589,100,0,0,0), +(@NPC,33,-6781.791,-2740.3145,241.79167,100,0,0,0), +(@NPC,34,-6779.1123,-2695.4597,241.726,100,0,0,0), +(@NPC,35,-6784.9126,-2650.4187,241.74365,100,0,0,0), +(@NPC,36,-6807.5605,-2624.9778,241.30371,100,0,0,0), +(@NPC,37,-6827.269,-2592.6594,240.86865,100,0,0,0), +(@NPC,38,-6844.815,-2578.7808,240.8131,100,0,0,0), +(@NPC,39,-6857.979,-2562.3765,240.85477,100,0,0,0), +(@NPC,40,-6872.1426,-2557.7024,240.86865,100,0,0,0), +(@NPC,41,-6889.7725,-2553.7603,241.74365,100,0,0,0), +(@NPC,42,-6917.392,-2537.756,242.26831,100,0,0,0), +(@NPC,43,-6934.6597,-2529.4036,241.74365,100,0,0,0), +(@NPC,44,-6950.297,-2523.527,241.74365,100,0,0,0), +(@NPC,45,-6981.097,-2519.09,241.79167,100,0,0,0), +(@NPC,46,-7009.0293,-2539.828,242.31013,100,0,0,0), +(@NPC,47,-7015.1914,-2518.0957,244.68259,100,0,0,0), +(@NPC,48,-7033.1685,-2482.8367,241.79167,100,0,0,0), +(@NPC,49,-7034.4004,-2453.5674,242.72307,100,0,0,0), +(@NPC,50,-7033.284,-2433.064,241.68245,100,0,0,0), +(@NPC,51,-7048.4126,-2405.5105,241.68245,100,0,0,0), +(@NPC,52,-7077.315,-2374.6147,240.42804,100,0,0,0), +(@NPC,53,-7109.834,-2356.9102,241.85072,100,0,0,0), +(@NPC,54,-7129.069,-2356.5767,240.10072,100,0,0,0), +(@NPC,55,-7149.244,-2362.0757,241.71579,100,0,0,0), +(@NPC,56,-7168.445,-2381.1047,241.64453,100,0,0,0), +(@NPC,57,-7187.0464,-2404.4626,241.5232,100,0,0,0), +(@NPC,58,-7200.161,-2430.0042,243.65074,100,0,0,0), +(@NPC,59,-7207.571,-2450.6396,246.86716,100,0,0,0), +(@NPC,60,-7202.877,-2483.1697,247.73312,100,0,0,0), +(@NPC,61,-7193.0054,-2517.404,248.81508,100,0,0,0), +(@NPC,62,-7192.43,-2550.0535,246.79889,100,0,0,0), +(@NPC,63,-7186.208,-2585.835,246.12538,100,0,0,0), +(@NPC,64,-7179.0435,-2621.246,246.74574,100,0,0,0), +(@NPC,65,-7154.533,-2643.925,245.19295,100,0,0,0), +(@NPC,66,-7121.818,-2676.2449,241.79167,100,0,0,0), +(@NPC,67,-7104.3364,-2706.8499,241.72318,100,0,0,0), +(@NPC,68,-7091.729,-2748.7837,242.54167,100,0,0,0), +(@NPC,69,-7085.973,-2775.0208,243.60188,100,0,0,0), +(@NPC,70,-7083.9697,-2806.5703,241.79207,100,0,0,0), +(@NPC,71,-7083.387,-2824.21,243.06575,100,0,0,0), +(@NPC,72,-7057.346,-2856.3606,242.1274,100,0,0,0), +(@NPC,73,-7054.114,-2886.03,241.74577,100,0,0,0), +(@NPC,74,-7058.2007,-2906.9016,242.2133,100,0,0,0), +(@NPC,75,-7069.0845,-2933.9062,243.74797,100,0,0,0), +(@NPC,76,-7070.8027,-2973.9062,242.79167,100,0,0,0), +(@NPC,77,-7058.212,-2994.9126,241.79167,100,0,0,0), +(@NPC,78,-7049.141,-3009.2012,241.86446,100,0,0,0), +(@NPC,79,-7058.6074,-3058.3674,241.69846,100,0,0,0), +(@NPC,80,-7077.5615,-3082.076,241.79167,100,0,0,0), +(@NPC,81,-7090.248,-3126.3665,242.184,100,0,0,0), +(@NPC,82,-7085.412,-3159.2393,241.79167,100,0,0,0), +(@NPC,83,-7088.785,-3202.677,241.90788,100,0,0,0), +(@NPC,84,-7090.78,-3213.9644,241.79167,100,0,0,0), +(@NPC,85,-7107.1284,-3250.8547,245.49672,100,0,0,0), +(@NPC,86,-7115.118,-3290.8623,244.65096,100,0,0,0), +(@NPC,87,-7117.981,-3321.8906,242.84285,100,0,0,0), +(@NPC,88,-7118.0645,-3353.3633,242.87701,100,0,0,0), +(@NPC,89,-7112.9746,-3371.7947,242.96481,100,0,0,0), +(@NPC,90,-7103.7266,-3395.1125,242.58005,100,0,0,0), +(@NPC,91,-7089.353,-3415.3235,243.0332,100,0,0,0), +(@NPC,92,-7084.7515,-3428.7317,242.8164,100,0,0,0), +(@NPC,93,-7068.982,-3448.2668,244.56194,100,0,0,0), +(@NPC,94,-7048.892,-3462.0168,243.70259,100,0,0,0), +(@NPC,95,-7035.1353,-3478.6104,241.99422,100,0,0,0), +(@NPC,96,-7025.451,-3493.6187,241.79167,100,0,0,0), +(@NPC,97,-7011.8403,-3501.5898,242.41982,100,0,0,0), +(@NPC,98,-6969.4775,-3520.751,241.79167,100,0,0,0), +(@NPC,99,-6939.8613,-3516.1226,241.79167,100,0,0,0), +(@NPC,100,-6916.998,-3518.6948,242.41667,100,0,0,0); +-- 0x204CB0000002B080000013000039BB3C .go xyz -6876.906 -3514.3828 242.04547 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 4e15d6972e4e14f210c427f1f17a93f335441874 Mon Sep 17 00:00:00 2001 From: Daribon Date: Sat, 18 Nov 2023 07:09:38 +0100 Subject: [PATCH 329/426] Add waypoints to Vile Sting. (#2284) --- sql/migrations/20231112194606_world.sql | 74 +++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 sql/migrations/20231112194606_world.sql diff --git a/sql/migrations/20231112194606_world.sql b/sql/migrations/20231112194606_world.sql new file mode 100644 index 00000000000..b067d052c3e --- /dev/null +++ b/sql/migrations/20231112194606_world.sql @@ -0,0 +1,74 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231112194606'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231112194606'); +-- Add your query below. + + +-- Pathing for Vile Sting Entry: 5937 +SET @NPC := 51823; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-5832.868,`position_y`=-3577.47,`position_z`=-58.645027 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-5832.868,-3577.47,-58.645027,100,0,0,0), +(@NPC,2,-5847.7896,-3578.9922,-58.62624,100,0,0,0), +(@NPC,3,-5879.2153,-3563.779,-58.624992,100,0,0,0), +(@NPC,4,-5898.626,-3563.8586,-58.624992,100,0,0,0), +(@NPC,5,-5906.1606,-3590.3938,-58.624973,100,0,0,0), +(@NPC,6,-5906.0674,-3606.6235,-58.624973,100,0,0,0), +(@NPC,7,-5923.0366,-3626.2664,-58.624973,100,0,0,0), +(@NPC,8,-5945.6016,-3613.887,-58.624954,100,0,0,0), +(@NPC,9,-5954.7524,-3608.444,-58.624954,100,0,0,0), +(@NPC,10,-5984.0244,-3598.608,-58.624954,100,0,0,0), +(@NPC,11,-6006.2593,-3598.7825,-58.624954,100,0,0,0), +(@NPC,12,-6013.32,-3605.1987,-58.624954,100,0,0,0), +(@NPC,13,-6023.108,-3620.3386,-58.624954,100,0,0,0), +(@NPC,14,-6046.9595,-3639.2556,-58.624954,100,0,0,0), +(@NPC,15,-6055.033,-3642.866,-58.624954,100,0,0,0), +(@NPC,16,-6074.136,-3629.934,-58.624954,100,0,0,0), +(@NPC,17,-6083.2944,-3613.5764,-58.624954,100,0,0,0), +(@NPC,18,-6096.364,-3598.897,-58.624954,100,0,0,0), +(@NPC,19,-6112.0825,-3584.047,-58.624954,100,0,0,0), +(@NPC,20,-6129.6,-3575.8818,-58.624954,100,0,0,0), +(@NPC,21,-6152.832,-3570.761,-58.624954,100,0,0,0), +(@NPC,22,-6167.849,-3571.4946,-58.624954,100,0,0,0), +(@NPC,23,-6176.987,-3576.321,-58.624954,100,0,0,0), +(@NPC,24,-6187.7524,-3589.2395,-58.624954,100,0,0,0), +(@NPC,25,-6186.82,-3620.595,-58.624954,100,0,0,0), +(@NPC,26,-6186.299,-3634.014,-58.624954,100,0,0,0), +(@NPC,27,-6171.7256,-3641.8333,-58.624954,100,0,0,0), +(@NPC,28,-6154.3394,-3651.0803,-58.624954,100,0,0,0), +(@NPC,29,-6141.6694,-3650.3577,-58.624954,100,0,0,0), +(@NPC,30,-6123.28,-3640.9934,-58.624954,100,0,0,0), +(@NPC,31,-6108.6865,-3623.8994,-58.624954,100,0,0,0), +(@NPC,32,-6099.0645,-3600.8455,-58.624954,100,0,0,0), +(@NPC,33,-6093.388,-3581.6519,-58.624954,100,0,0,0), +(@NPC,34,-6096.3926,-3568.4915,-58.624954,100,0,0,0), +(@NPC,35,-6062.2173,-3546.6702,-58.624966,100,0,0,0), +(@NPC,36,-6048.2134,-3538.829,-58.624966,100,0,0,0), +(@NPC,37,-6022.5835,-3531.2087,-58.624973,100,0,0,0), +(@NPC,38,-6007.369,-3528.1714,-58.624973,100,0,0,0), +(@NPC,39,-5996.6787,-3533.4485,-58.624973,100,0,0,0), +(@NPC,40,-5978.62,-3529.2083,-58.624973,100,0,0,0), +(@NPC,41,-5963.492,-3514.8665,-58.374992,100,0,0,0), +(@NPC,42,-5950.205,-3508.0159,-58.624992,100,0,0,0), +(@NPC,43,-5927.1836,-3500.981,-58.374992,100,0,0,0), +(@NPC,44,-5911.841,-3499.235,-58.158527,100,0,0,0), +(@NPC,45,-5883.246,-3499.5684,-58.080044,100,0,0,0), +(@NPC,46,-5858.184,-3506.1418,-58.24999,100,0,0,0), +(@NPC,47,-5847.03,-3516.6768,-58.49999,100,0,0,0), +(@NPC,48,-5833.535,-3534.1719,-58.62499,100,0,0,0), +(@NPC,49,-5827.3213,-3554.03,-58.62499,100,0,0,0); +-- 0x204CB0002005CC4000056900003C219D .go xyz -5832.868 -3577.47 -58.645027 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 76d2d07a2451896d845fa4867353108cc746104c Mon Sep 17 00:00:00 2001 From: Daribon Date: Sat, 18 Nov 2023 07:13:45 +0100 Subject: [PATCH 330/426] Add waypoints to Mirelow. (#2285) --- sql/migrations/20231113041814_world.sql | 111 ++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 sql/migrations/20231113041814_world.sql diff --git a/sql/migrations/20231113041814_world.sql b/sql/migrations/20231113041814_world.sql new file mode 100644 index 00000000000..16d2395f7ce --- /dev/null +++ b/sql/migrations/20231113041814_world.sql @@ -0,0 +1,111 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231113041814'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231113041814'); +-- Add your query below. + + +-- Pathing for Mirelow Entry: 14424 +SET @NPC := 91113; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-2752.9434,`position_y`=-1311.9869,`position_z`=6.144358 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-2752.9434,-1311.9869,6.144358,100,0,0,0), +(@NPC,2,-2779.3325,-1318.1886,6.212498,100,0,0,0), +(@NPC,3,-2802.5144,-1327.2316,6.2124987,100,0,0,0), +(@NPC,4,-2841.5269,-1356.3691,6.2124963,100,0,0,0), +(@NPC,5,-2868.5942,-1383.6816,6.2125034,100,0,0,0), +(@NPC,6,-2888.584,-1418.0055,6.2125034,100,0,0,0), +(@NPC,7,-2915.9563,-1455.4119,6.2125106,100,0,0,0), +(@NPC,8,-2948.1558,-1477.9122,6.2125034,100,0,0,0), +(@NPC,9,-2979.6265,-1493.0153,6.2125106,100,0,0,0), +(@NPC,10,-3007.2742,-1519.1643,6.1943064,100,0,0,0), +(@NPC,11,-3030.377,-1531.1482,1.8713083,100,0,0,0), +(@NPC,12,-3050.034,-1538.9908,2.2948234,100,0,0,0), +(@NPC,13,-3068.111,-1529.2074,4.6410594,100,0,0,0), +(@NPC,14,-3048.722,-1507.4395,2.3030105,100,0,0,0), +(@NPC,15,-3045.1477,-1488.9481,6.1078167,100,0,0,0), +(@NPC,16,-3037.5547,-1465.8003,6.2125444,100,0,0,0), +(@NPC,17,-3013.2668,-1444.2893,6.2125444,100,0,0,0), +(@NPC,18,-2992.2075,-1423.2106,6.2125444,100,0,0,0), +(@NPC,19,-2982.6704,-1384.7448,6.2125444,100,0,0,0), +(@NPC,20,-2976.297,-1355.0217,6.1414337,100,0,0,0), +(@NPC,21,-2972.429,-1315.0929,6.212561,100,0,0,0), +(@NPC,22,-2959.098,-1289.4697,6.212534,100,0,0,0), +(@NPC,23,-2946.3533,-1262.2607,6.212534,100,0,0,0), +(@NPC,24,-2940.9849,-1235.0204,6.212534,100,0,0,0), +(@NPC,25,-2927.3582,-1214.3258,6.276264,100,0,0,0), +(@NPC,26,-2913.8328,-1184.8007,6.2125435,100,0,0,0), +(@NPC,27,-2913.718,-1156.6484,6.380024,100,0,0,0), +(@NPC,28,-2906.6707,-1130.346,6.3375435,100,0,0,0), +(@NPC,29,-2924.4268,-1129.007,6.262104,100,0,0,0), +(@NPC,30,-2948.263,-1141.3658,6.581269,100,0,0,0), +(@NPC,31,-2981.483,-1160.7555,6.2125306,100,0,0,0), +(@NPC,32,-3008.991,-1189.4165,6.3375306,100,0,0,0), +(@NPC,33,-3033.5713,-1223.1588,3.6263075,100,0,0,0), +(@NPC,34,-3058.1658,-1243.8303,6.385656,100,0,0,0), +(@NPC,35,-3084.6208,-1262.775,6.2125497,100,0,0,0), +(@NPC,36,-3110.9539,-1251.6007,5.657193,100,0,0,0), +(@NPC,37,-3127.4268,-1279.7166,6.2125597,100,0,0,0), +(@NPC,38,-3140.0647,-1310.3094,6.2125597,100,0,0,0), +(@NPC,39,-3129.7153,-1336.1788,6.2125444,100,0,0,0), +(@NPC,40,-3135.3235,-1368.5166,6.2125444,100,0,0,0), +(@NPC,41,-3156.5852,-1393.152,6.2125444,100,0,0,0), +(@NPC,42,-3176.052,-1410.8157,6.2125344,100,0,0,0), +(@NPC,43,-3184.6921,-1435.9547,6.2125344,100,0,0,0), +(@NPC,44,-3201.1177,-1461.5942,6.2125344,100,0,0,0), +(@NPC,45,-3184.6921,-1435.9547,6.2125344,100,0,0,0), +(@NPC,46,-3176.052,-1410.8157,6.2125344,100,0,0,0), +(@NPC,47,-3156.5852,-1393.152,6.2125444,100,0,0,0), +(@NPC,48,-3135.3235,-1368.5166,6.2125444,100,0,0,0), +(@NPC,49,-3129.7153,-1336.1788,6.2125444,100,0,0,0), +(@NPC,50,-3140.0647,-1310.3094,6.2125597,100,0,0,0), +(@NPC,51,-3127.4268,-1279.7166,6.2125597,100,0,0,0), +(@NPC,52,-3110.9539,-1251.6007,5.657193,100,0,0,0), +(@NPC,53,-3084.6208,-1262.775,6.2125497,100,0,0,0), +(@NPC,54,-3058.1658,-1243.8303,6.385656,100,0,0,0), +(@NPC,55,-3033.5713,-1223.1588,3.6263075,100,0,0,0), +(@NPC,56,-3008.991,-1189.4165,6.3375306,100,0,0,0), +(@NPC,57,-2981.483,-1160.7555,6.2125306,100,0,0,0), +(@NPC,58,-2948.263,-1141.3658,6.581269,100,0,0,0), +(@NPC,59,-2924.4268,-1129.007,6.262104,100,0,0,0), +(@NPC,60,-2906.6707,-1130.346,6.3375435,100,0,0,0), +(@NPC,61,-2913.718,-1156.6484,6.380024,100,0,0,0), +(@NPC,62,-2913.8281,-1184.6484,6.2125435,100,0,0,0), +(@NPC,63,-2927.3582,-1214.3258,6.276264,100,0,0,0), +(@NPC,64,-2940.9849,-1235.0204,6.212534,100,0,0,0), +(@NPC,65,-2946.3533,-1262.2607,6.212534,100,0,0,0), +(@NPC,66,-2959.098,-1289.4697,6.212534,100,0,0,0), +(@NPC,67,-2972.429,-1315.0929,6.212561,100,0,0,0), +(@NPC,68,-2976.297,-1355.0217,6.1414337,100,0,0,0), +(@NPC,69,-2982.6704,-1384.7448,6.2125444,100,0,0,0), +(@NPC,70,-2992.2075,-1423.2106,6.2125444,100,0,0,0), +(@NPC,71,-3013.2668,-1444.2893,6.2125444,100,0,0,0), +(@NPC,72,-3037.5547,-1465.8003,6.2125444,100,0,0,0), +(@NPC,73,-3045.1477,-1488.9481,6.1078167,100,0,0,0), +(@NPC,74,-3048.722,-1507.4395,2.3030105,100,0,0,0), +(@NPC,75,-3068.037,-1529.0762,4.6693797,100,0,0,0), +(@NPC,76,-3050.034,-1538.9908,2.2948234,100,0,0,0), +(@NPC,77,-3030.377,-1531.1482,1.8713083,100,0,0,0), +(@NPC,78,-3007.2742,-1519.1643,6.1943064,100,0,0,0), +(@NPC,79,-2979.6265,-1493.0153,6.2125106,100,0,0,0), +(@NPC,80,-2948.1558,-1477.9122,6.2125034,100,0,0,0), +(@NPC,81,-2915.9563,-1455.4119,6.2125106,100,0,0,0), +(@NPC,82,-2888.584,-1418.0055,6.2125034,100,0,0,0), +(@NPC,83,-2868.5942,-1383.6816,6.2125034,100,0,0,0), +(@NPC,84,-2841.5269,-1356.3691,6.2124963,100,0,0,0), +(@NPC,85,-2802.5144,-1327.2316,6.2124987,100,0,0,0), +(@NPC,86,-2779.3325,-1318.1886,6.212498,100,0,0,0); +-- 0x204CB000000E160000000600003E2E9A .go xyz -2752.9434 -1311.9869 6.144358 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 5ece974a3b4ef170640e52ffe9dab3760d041f65 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 18 Nov 2023 10:47:11 +0200 Subject: [PATCH 331/426] Fix Grace of Earth trinket. --- src/game/Threat/ThreatManager.cpp | 24 ++++++++++++------------ src/game/Threat/ThreatManager.h | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/game/Threat/ThreatManager.cpp b/src/game/Threat/ThreatManager.cpp index 45ccbe3fbba..5cfd07a5ded 100644 --- a/src/game/Threat/ThreatManager.cpp +++ b/src/game/Threat/ThreatManager.cpp @@ -32,8 +32,7 @@ //================= ThreatCalcHelper =========================== //============================================================== -// The pHatingUnit is not used yet -float ThreatCalcHelper::CalcThreat(Unit* pHatedUnit, Unit* /*pHatingUnit*/, float threat, bool crit, SpellSchoolMask schoolMask, SpellEntry const* pThreatSpell) +float ThreatCalcHelper::CalcThreat(Unit* pHatedUnit, float threat, bool crit, SpellSchoolMask schoolMask, SpellEntry const* pThreatSpell) { // all flat mods applied early if (!threat) @@ -41,9 +40,6 @@ float ThreatCalcHelper::CalcThreat(Unit* pHatedUnit, Unit* /*pHatingUnit*/, floa if (pThreatSpell) { - if (pThreatSpell->AttributesEx & SPELL_ATTR_EX_NO_THREAT) - return 0.0f; - if (Player* modOwner = pHatedUnit->GetSpellModOwner()) modOwner->ApplySpellMod(pThreatSpell->Id, SPELLMOD_THREAT, threat); @@ -384,7 +380,7 @@ void ThreatManager::clearReferences() //============================================================ -void ThreatManager::addThreat(Unit* pVictim, float pThreat, bool crit, SpellSchoolMask schoolMask, SpellEntry const* pThreatSpell, bool isAssistThreat) +void ThreatManager::addThreat(Unit* pVictim, float threat, bool crit, SpellSchoolMask schoolMask, SpellEntry const* pThreatSpell, bool isAssistThreat) { //function deals with adding threat and adding players and pets into ThreatList //mobs, NPCs, guards have ThreatList and HateOfflineList @@ -405,20 +401,24 @@ void ThreatManager::addThreat(Unit* pVictim, float pThreat, bool crit, SpellScho MANGOS_ASSERT(getOwner()->GetTypeId() == TYPEID_UNIT); + // Grace of Earth trinket reduces threat but has no threat attribute. + if (pThreatSpell && pThreatSpell->HasAttribute(SPELL_ATTR_EX_NO_THREAT) && + (threat >= 0.0f || !iThreatContainer.getReferenceByTarget(pVictim))) + return; + // don't add assist threat to targets under hard CC // check for fear, blind, freezing trap, reckless charge, banish, etc. if (isAssistThreat) { - if (getOwner()->HasUnitState(UNIT_STAT_CONFUSED | UNIT_STAT_FLEEING | UNIT_STAT_ISOLATED) - || (getOwner()->HasUnitState(UNIT_STAT_STUNNED) && getOwner()->HasBreakableByDamageAuraType(SPELL_AURA_MOD_STUN, 0))) + if (getOwner()->HasUnitState(UNIT_STAT_CONFUSED | UNIT_STAT_FLEEING | UNIT_STAT_ISOLATED) || + (getOwner()->HasUnitState(UNIT_STAT_STUNNED) && getOwner()->HasBreakableByDamageAuraType(SPELL_AURA_MOD_STUN, 0))) { - pThreat = 0.0f; + threat = 0.0f; } } - float threat = ThreatCalcHelper::CalcThreat(pVictim, iOwner, pThreat, crit, schoolMask, pThreatSpell); - - addThreatDirectly(pVictim, threat); + float totalThreat = ThreatCalcHelper::CalcThreat(pVictim, threat, crit, schoolMask, pThreatSpell); + addThreatDirectly(pVictim, totalThreat); } void ThreatManager::addThreatDirectly(Unit* pVictim, float threat) diff --git a/src/game/Threat/ThreatManager.h b/src/game/Threat/ThreatManager.h index 17ca1b7e4be..7a49990add2 100644 --- a/src/game/Threat/ThreatManager.h +++ b/src/game/Threat/ThreatManager.h @@ -43,7 +43,7 @@ class SpellEntry; class ThreatCalcHelper { public: - static float CalcThreat(Unit* pHatedUnit, Unit* pHatingUnit, float threat, bool crit, SpellSchoolMask schoolMask, SpellEntry const* threatSpell); + static float CalcThreat(Unit* pHatedUnit, float threat, bool crit, SpellSchoolMask schoolMask, SpellEntry const* threatSpell); }; //============================================================== From 4f517f4608664b2ddff1a6038103fb60beadd749 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 18 Nov 2023 15:22:47 +0200 Subject: [PATCH 332/426] Add separate immunity flags column to creature template. --- sql/migrations/20231118120957_world.sql | 37 ++++++++++++ src/game/Database/SQLStorages.cpp | 4 +- src/game/Objects/Creature.cpp | 79 ++++++++++++++++--------- src/game/Objects/Creature.h | 7 +-- src/game/Objects/CreatureDefines.h | 15 ++++- src/game/Objects/Unit.cpp | 54 ++++++++++------- 6 files changed, 138 insertions(+), 58 deletions(-) create mode 100644 sql/migrations/20231118120957_world.sql diff --git a/sql/migrations/20231118120957_world.sql b/sql/migrations/20231118120957_world.sql new file mode 100644 index 00000000000..d19263dc945 --- /dev/null +++ b/sql/migrations/20231118120957_world.sql @@ -0,0 +1,37 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231118120957'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231118120957'); +-- Add your query below. + + +-- Add separate immunity flags column so we can move them out of extra flags. +ALTER TABLE `creature_template` + ADD COLUMN `immunity_flags` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `school_immune_mask`; + +-- Move CREATURE_FLAG_EXTRA_IMMUNE_AOE to CREATURE_IMMUNITY_AOE. +UPDATE `creature_template` SET `immunity_flags`=(`immunity_flags` | 1), `flags_extra`=(`flags_extra` & ~16384) WHERE (`flags_extra` & 16384); + +-- Move CREATURE_FLAG_EXTRA_NOT_TAUNTABLE to CREATURE_IMMUNITY_TAUNT. +UPDATE `creature_template` SET `immunity_flags`=(`immunity_flags` | 2), `flags_extra`=(`flags_extra` & ~256) WHERE (`flags_extra` & 256); + +-- Move MECHANIC_SLOW_CAST_SPEED to CREATURE_IMMUNITY_MOD_CAST_SPEED. +UPDATE `creature_template` SET `immunity_flags`=(`immunity_flags` | 8), `mechanic_immune_mask`=(`mechanic_immune_mask` & ~(1 << (31 - 1))) WHERE (`mechanic_immune_mask` & (1 << (31 - 1))); + +-- Remove custom mechanic from spells. +UPDATE `spell_template` SET `mechanic`=0 WHERE `mechanic`=31; +UPDATE `spell_template` SET `effectMechanic1`=0 WHERE `effectMechanic1`=31; +UPDATE `spell_template` SET `effectMechanic2`=0 WHERE `effectMechanic2`=31; +UPDATE `spell_template` SET `effectMechanic3`=0 WHERE `effectMechanic3`=31; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Database/SQLStorages.cpp b/src/game/Database/SQLStorages.cpp index b7df4e86528..5da97633338 100644 --- a/src/game/Database/SQLStorages.cpp +++ b/src/game/Database/SQLStorages.cpp @@ -24,8 +24,8 @@ #include "Database/SQLStorageImpl.h" #include "Database/DatabaseEnv.h" -char const CreatureInfosrcfmt[] = "issiiiiiiiiiffffiiiiiifffffiffffffiiiiiiiiiiiiiiiiiiiiiiiiiiiiiissiiiliiiiiiis"; -char const CreatureInfodstfmt[] = "issiiiiiiiiiffffiiiiiifffffiffffffiiiiiiiiiiiiiiiiiiiiiiiiiiiiiissiiiliiiiiiii"; +char const CreatureInfosrcfmt[] = "issiiiiiiiiiffffiiiiiifffffiffffffiiiiiiiiiiiiiiiiiiiiiiiiiiiiiissiiiliiiiiiiis"; +char const CreatureInfodstfmt[] = "issiiiiiiiiiffffiiiiiifffffiffffffiiiiiiiiiiiiiiiiiiiiiiiiiiiiiissiiiliiiiiiiii"; char const CreatureDataAddonInfofmt[] = "iiiibbis"; char const CreatureDisplayInfoAddonfmt[] = "iffffbi"; char const GameObjectDisplayInfoAddonfmt[] = "iffffff"; diff --git a/src/game/Objects/Creature.cpp b/src/game/Objects/Creature.cpp index 546f21a74a9..392bb90316a 100644 --- a/src/game/Objects/Creature.cpp +++ b/src/game/Objects/Creature.cpp @@ -367,6 +367,39 @@ bool Creature::InitEntry(uint32 entry, GameEventCreatureData const* eventData /* m_defaultMovementType = MovementGeneratorType(m_creatureData ? m_creatureData->movement_type : cinfo->movement_type); + // Apply Poison & Disease immunities for Elemental and Mechanical type creatures + if (GetCreatureInfo()->type == CREATURE_TYPE_ELEMENTAL || + GetCreatureInfo()->type == CREATURE_TYPE_MECHANICAL) + { + ApplySpellImmune(0, IMMUNITY_DISPEL, DISPEL_DISEASE, true); + ApplySpellImmune(0, IMMUNITY_DISPEL, DISPEL_POISON, true); + } + + if (GetCreatureInfo()->type == CREATURE_TYPE_MECHANICAL) + { + ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL, true); + ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL_MAX_HEALTH, true); + ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_HEAL, true); + ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_LEECH, true); + } + + if (HasImmunityFlag(CREATURE_IMMUNITY_TAUNT)) + { + ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, true); + ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true); + } + + if (HasImmunityFlag(CREATURE_IMMUNITY_MOD_STAT)) + { + ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_STAT, true); + ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE, true); + } + + if (HasImmunityFlag(CREATURE_IMMUNITY_MOD_CAST_SPEED)) + { + ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_CASTING_SPEED_NOT_STACK, true); + } + return true; } @@ -1152,13 +1185,6 @@ bool Creature::Create(uint32 guidlow, CreatureCreatePos& cPos, CreatureInfo cons break; } - // Apply Poison & Disease immunities for Elemental and Mechanical type creatures - if (GetCreatureInfo()->type == CREATURE_TYPE_ELEMENTAL || (GetCreatureInfo()->type == CREATURE_TYPE_MECHANICAL)) - { - ApplySpellImmune(0, IMMUNITY_DISPEL, DISPEL_DISEASE, true); - ApplySpellImmune(0, IMMUNITY_DISPEL, DISPEL_POISON, true); - } - // Add to CreatureLinkingHolder if needed if (sCreatureLinkingMgr.GetLinkedTriggerInformation(this)) cPos.GetMap()->GetCreatureLinkingHolder()->AddSlaveToHolder(this); @@ -2218,37 +2244,32 @@ bool Creature::IsImmuneToDamage(SpellSchoolMask meleeSchoolMask, SpellEntry cons return Unit::IsImmuneToDamage(meleeSchoolMask, spellInfo); } -// hacky - seems to be the only way of doing this without wasting more time -void Creature::SetTauntImmunity(bool immune) -{ - if (immune) - { - auto info = const_cast(m_creatureInfo); - info->flags_extra |= CREATURE_FLAG_EXTRA_NOT_TAUNTABLE; - } - else - { - auto info = const_cast(m_creatureInfo); - info->flags_extra ^= CREATURE_FLAG_EXTRA_NOT_TAUNTABLE; - } -} - bool Creature::IsImmuneToSpellEffect(SpellEntry const* spellInfo, SpellEffectIndex index, bool castOnSelf) const { if (!castOnSelf && spellInfo->EffectMechanic[index] && GetCreatureInfo()->mechanic_immune_mask & (1 << (spellInfo->EffectMechanic[index] - 1))) return true; // Taunt immunity special flag check - if (HasExtraFlag(CREATURE_FLAG_EXTRA_NOT_TAUNTABLE)) + if (HasImmunityFlag(CREATURE_IMMUNITY_TAUNT)) { // Taunt aura apply check - if (spellInfo->Effect[index] == SPELL_EFFECT_APPLY_AURA) - { - if (spellInfo->EffectApplyAuraName[index] == SPELL_AURA_MOD_TAUNT) - return true; - } + if (spellInfo->EffectApplyAuraName[index] == SPELL_AURA_MOD_TAUNT) + return true; // Spell effect taunt check - else if (spellInfo->Effect[index] == SPELL_EFFECT_ATTACK_ME) + if (spellInfo->Effect[index] == SPELL_EFFECT_ATTACK_ME) + return true; + } + + if (HasImmunityFlag(CREATURE_IMMUNITY_MOD_STAT)) + { + if (spellInfo->EffectApplyAuraName[index] == SPELL_AURA_MOD_STAT || + spellInfo->EffectApplyAuraName[index] == SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE) + return true; + } + + if (HasImmunityFlag(CREATURE_IMMUNITY_MOD_CAST_SPEED)) + { + if (spellInfo->EffectApplyAuraName[index] == SPELL_AURA_MOD_CASTING_SPEED_NOT_STACK) return true; } diff --git a/src/game/Objects/Creature.h b/src/game/Objects/Creature.h index eff3a7d8794..3846b2f674a 100644 --- a/src/game/Objects/Creature.h +++ b/src/game/Objects/Creature.h @@ -135,6 +135,7 @@ class Creature : public Unit void ClearCreatureState(CreatureStateFlag f) { m_creatureStateFlags &= ~f; } bool HasTypeFlag(CreatureTypeFlags flag) const { return GetCreatureInfo()->type_flags & flag; } bool HasExtraFlag(CreatureFlagsExtra flag) const { return GetCreatureInfo()->flags_extra & flag; } + bool HasImmunityFlag(CreatureImmunityFlags flag) const { return GetCreatureInfo()->immunity_flags & flag; } CreatureSubtype GetSubtype() const { return m_subtype; } bool IsPet() const { return m_subtype == CREATURE_SUBTYPE_PET; } @@ -154,9 +155,9 @@ class Creature : public Unit // - Area effect spells and abilities will no longer consider totems as // valid targets. #if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_9_4 - bool IsImmuneToAoe() const { return IsTotem() || HasExtraFlag(CREATURE_FLAG_EXTRA_IMMUNE_AOE); } + bool IsImmuneToAoe() const { return IsTotem() || HasImmunityFlag(CREATURE_IMMUNITY_AOE); } #else - bool IsImmuneToAoe() const { return HasExtraFlag(CREATURE_FLAG_EXTRA_IMMUNE_AOE); } + bool IsImmuneToAoe() const { return HasImmunityFlag(CREATURE_IMMUNITY_AOE); } #endif bool CanWalk() const override { return GetCreatureInfo()->inhabit_type & INHABIT_GROUND; } @@ -331,8 +332,6 @@ class Creature : public Unit uint32 GetDefaultMount() { return m_mountId; } void SetDefaultMount(uint32 id) { m_mountId = id; } - - void SetTauntImmunity(bool immune); MovementGeneratorType GetDefaultMovementType() const { return m_defaultMovementType; } void SetDefaultMovementType(MovementGeneratorType mgt) { m_defaultMovementType = mgt; } diff --git a/src/game/Objects/CreatureDefines.h b/src/game/Objects/CreatureDefines.h index cdf1ad2c23e..1c89306c6ed 100644 --- a/src/game/Objects/CreatureDefines.h +++ b/src/game/Objects/CreatureDefines.h @@ -116,13 +116,13 @@ enum CreatureFlagsExtra CREATURE_FLAG_EXTRA_NO_CRUSH = 0x00000020, // 32 Creature can't do crush attacks CREATURE_FLAG_EXTRA_FIXED_Z = 0x00000040, // 64 Creature does not fall CREATURE_FLAG_EXTRA_INVISIBLE = 0x00000080, // 128 Creature is always invisible for player (mostly trigger creatures) - CREATURE_FLAG_EXTRA_NOT_TAUNTABLE = 0x00000100, // 256 Creature is immune to taunt auras and effect attack me + // 256 unused CREATURE_FLAG_EXTRA_AGGRO_ZONE = 0x00000200, // 512 Creature sets itself in combat with zone on aggro CREATURE_FLAG_EXTRA_GUARD = 0x00000400, // 1024 Creature is a guard CREATURE_FLAG_EXTRA_NO_THREAT_LIST = 0x00000800, // 2048 Creature does not select targets based on threat CREATURE_FLAG_EXTRA_KEEP_POSITIVE_AURAS_ON_EVADE = 0x00001000, // 4096 Creature keeps positive auras at reset CREATURE_FLAG_EXTRA_ALWAYS_CRUSH = 0x00002000, // 8192 Creature always roll a crushing melee outcome when not miss/crit/dodge/parry/block - CREATURE_FLAG_EXTRA_IMMUNE_AOE = 0x00004000, // 16384 Creature is immune to AoE + // 16384 unused CREATURE_FLAG_EXTRA_CHASE_GEN_NO_BACKING = 0x00008000, // 32768 Creature does not move back when target is within bounding radius CREATURE_FLAG_EXTRA_NO_ASSIST = 0x00010000, // 65536 Creature does not aggro when nearby creatures aggro CREATURE_FLAG_EXTRA_NO_TARGET = 0x00020000, // 131072 Creature is passive and does not acquire targets @@ -140,6 +140,16 @@ enum CreatureFlagsExtra CREATURE_FLAG_EXTRA_DESPAWN_INSTANTLY = 0x20000000, // 536870912 CREATURE_STATIC_FLAG_DESPAWN_INSTANTLY (despawn on death) }; +enum CreatureImmunityFlags +{ + CREATURE_IMMUNITY_AOE = 0x01, + CREATURE_IMMUNITY_TAUNT = 0x02, // SPELL_AURA_MOD_TAUNT, SPELL_EFFECT_ATTACK_ME + CREATURE_IMMUNITY_MOD_STAT = 0x04, // SPELL_AURA_MOD_STAT, SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE + CREATURE_IMMUNITY_MOD_CAST_SPEED = 0x08, // SPELL_AURA_MOD_CASTING_SPEED_NOT_STACK + CREATURE_IMMUNITY_DISEASE = 0x10, // DISPEL_DISEASE + CREATURE_IMMUNITY_POISON = 0x20, // DISPEL_POISON +}; + // Number of spells in one template #define CREATURE_SPELLS_MAX_SPELLS 8 // Columns in the db for each spell @@ -249,6 +259,7 @@ struct CreatureInfo uint32 vendor_id; uint32 mechanic_immune_mask; uint32 school_immune_mask; + uint32 immunity_flags; uint32 flags_extra; uint32 script_id; diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 7d4dede42c6..799625f1c70 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -5438,11 +5438,13 @@ bool Unit::IsImmuneToDamage(SpellSchoolMask shoolMask, SpellEntry const* spellIn if (itr.type & shoolMask) { SpellEntry const* pImmunitySpell = sSpellMgr.GetSpellEntry(itr.spellId); + if (!pImmunitySpell) + return true; - if ((pImmunitySpell && pImmunitySpell->IsPositiveSpell()) != (spellInfo && spellInfo->IsPositiveSpell())) + if ((pImmunitySpell->IsPositiveSpell()) != (spellInfo && spellInfo->IsPositiveSpell())) return true; - if (pImmunitySpell && pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) + if (pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) return true; } } @@ -5467,11 +5469,13 @@ bool Unit::IsImmuneToSpell(SpellEntry const* spellInfo, bool /*castOnSelf*/) con if (itr.type == spellInfo->Dispel) { SpellEntry const* pImmunitySpell = sSpellMgr.GetSpellEntry(itr.spellId); + if (!pImmunitySpell) + return true; - if ((pImmunitySpell && pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveSpell()) + if ((pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveSpell()) return true; - if (pImmunitySpell && pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) + if (pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) return true; } } @@ -5486,11 +5490,13 @@ bool Unit::IsImmuneToSpell(SpellEntry const* spellInfo, bool /*castOnSelf*/) con if (itr.type & spellInfo->GetSpellSchoolMask()) { SpellEntry const* pImmunitySpell = sSpellMgr.GetSpellEntry(itr.spellId); + if (!pImmunitySpell) + return true; - if ((pImmunitySpell && pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveSpell()) + if ((pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveSpell()) return true; - if (pImmunitySpell && pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) + if (pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) return true; } } @@ -5504,11 +5510,13 @@ bool Unit::IsImmuneToSpell(SpellEntry const* spellInfo, bool /*castOnSelf*/) con if (itr.type == mechanic) { SpellEntry const* pImmunitySpell = sSpellMgr.GetSpellEntry(itr.spellId); + if (!pImmunitySpell) + return true; - if ((pImmunitySpell && pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveSpell()) + if ((pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveSpell()) return true; - if (pImmunitySpell && pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) + if (pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) return true; } } @@ -5547,11 +5555,13 @@ bool Unit::IsImmuneToSpellEffect(SpellEntry const* spellInfo, SpellEffectIndex i if (itr.type == effect) { SpellEntry const* pImmunitySpell = sSpellMgr.GetSpellEntry(itr.spellId); + if (!pImmunitySpell) + return true; - if ((pImmunitySpell && pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveEffect(index)) + if ((pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveEffect(index)) return true; - if (pImmunitySpell && pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) + if (pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) return true; } } @@ -5564,11 +5574,13 @@ bool Unit::IsImmuneToSpellEffect(SpellEntry const* spellInfo, SpellEffectIndex i if (itr.type == spellInfo->EffectMechanic[index]) { SpellEntry const* pImmunitySpell = sSpellMgr.GetSpellEntry(itr.spellId); + if (!pImmunitySpell) + return true; - if ((pImmunitySpell && pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveEffect(index)) + if ((pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveEffect(index)) return true; - if (pImmunitySpell && pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) + if (pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) return true; } } @@ -5598,21 +5610,18 @@ bool Unit::IsImmuneToSpellEffect(SpellEntry const* spellInfo, SpellEffectIndex i if (itr.type == aura) { SpellEntry const* pImmunitySpell = sSpellMgr.GetSpellEntry(itr.spellId); + if (!pImmunitySpell) + return true; - if ((pImmunitySpell && pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveEffect(index)) + if ((pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveEffect(index)) return true; - if (pImmunitySpell && pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) + if (pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) return true; } } } - // Mechanical units are immune to normal heal effects. There is a separate one for them. - if ((effect == SPELL_EFFECT_HEAL || effect == SPELL_EFFECT_HEAL_MAX_HEALTH || aura == SPELL_AURA_PERIODIC_HEAL) && - (GetCreatureType() == CREATURE_TYPE_MECHANICAL)) - return true; - return false; } @@ -5632,10 +5641,13 @@ bool Unit::IsImmuneToSchool(SpellEntry const* spellInfo, uint8 effectMask) const if (itr.type & spellInfo->GetSpellSchoolMask()) { - if ((pImmunitySpell && pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveEffectMask(effectMask)) + if (!pImmunitySpell) return true; - if (pImmunitySpell && pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) + if ((pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveEffectMask(effectMask)) + return true; + + if (pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) return true; } } From cbd426c8bd04c2f89cd77f480879a0ff011bf33e Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 18 Nov 2023 15:24:25 +0200 Subject: [PATCH 333/426] Forgot to remove this part. --- src/game/Objects/Creature.cpp | 35 ----------------------------------- 1 file changed, 35 deletions(-) diff --git a/src/game/Objects/Creature.cpp b/src/game/Objects/Creature.cpp index 392bb90316a..30eeea18e69 100644 --- a/src/game/Objects/Creature.cpp +++ b/src/game/Objects/Creature.cpp @@ -2249,41 +2249,6 @@ bool Creature::IsImmuneToSpellEffect(SpellEntry const* spellInfo, SpellEffectInd if (!castOnSelf && spellInfo->EffectMechanic[index] && GetCreatureInfo()->mechanic_immune_mask & (1 << (spellInfo->EffectMechanic[index] - 1))) return true; - // Taunt immunity special flag check - if (HasImmunityFlag(CREATURE_IMMUNITY_TAUNT)) - { - // Taunt aura apply check - if (spellInfo->EffectApplyAuraName[index] == SPELL_AURA_MOD_TAUNT) - return true; - // Spell effect taunt check - if (spellInfo->Effect[index] == SPELL_EFFECT_ATTACK_ME) - return true; - } - - if (HasImmunityFlag(CREATURE_IMMUNITY_MOD_STAT)) - { - if (spellInfo->EffectApplyAuraName[index] == SPELL_AURA_MOD_STAT || - spellInfo->EffectApplyAuraName[index] == SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE) - return true; - } - - if (HasImmunityFlag(CREATURE_IMMUNITY_MOD_CAST_SPEED)) - { - if (spellInfo->EffectApplyAuraName[index] == SPELL_AURA_MOD_CASTING_SPEED_NOT_STACK) - return true; - } - - // Ustaag : Mechanical Creature Type check - if (GetCreatureInfo()->type && GetCreatureInfo()->type == CREATURE_TYPE_MECHANICAL) - { - // Periodic leech aura apply check - if (spellInfo->Effect[index] == SPELL_EFFECT_APPLY_AURA) - { - if (spellInfo->EffectApplyAuraName[index] == SPELL_AURA_PERIODIC_LEECH) - return true; - } - } - return Unit::IsImmuneToSpellEffect(spellInfo, index, castOnSelf); } From 9a7a253bfe23ddf535e198931092e9fb5ff9ed1e Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 18 Nov 2023 17:35:42 +0200 Subject: [PATCH 334/426] Avoid double lookup in threat list. --- src/game/Threat/ThreatManager.cpp | 20 ++++++++------------ src/game/Threat/ThreatManager.h | 6 +++--- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/game/Threat/ThreatManager.cpp b/src/game/Threat/ThreatManager.cpp index 5cfd07a5ded..42b91502287 100644 --- a/src/game/Threat/ThreatManager.cpp +++ b/src/game/Threat/ThreatManager.cpp @@ -55,9 +55,9 @@ float ThreatCalcHelper::CalcThreat(Unit* pHatedUnit, float threat, bool crit, Sp //================= HostileReference ========================== //============================================================ -HostileReference::HostileReference(Unit* pUnit, ThreatManager *pThreatManager, float pThreat) +HostileReference::HostileReference(Unit* pUnit, ThreatManager *pThreatManager, float threat) { - iThreat = pThreat; + iThreat = threat; iTempThreatModifyer = 0.0f; link(pUnit, pThreatManager); iUnitGuid = pUnit->GetObjectGuid(); @@ -231,14 +231,14 @@ HostileReference* ThreatContainer::getReferenceByTarget(Unit* pVictim) //============================================================ // Add the threat, if we find the reference -HostileReference* ThreatContainer::addThreat(Unit* pVictim, float pThreat) +HostileReference* ThreatContainer::addThreat(Unit* pVictim, float threat) { if (!pVictim) return nullptr; HostileReference* ref = getReferenceByTarget(pVictim); if (ref) - ref->addThreat(pThreat); + ref->addThreat(threat); return ref; } @@ -401,11 +401,6 @@ void ThreatManager::addThreat(Unit* pVictim, float threat, bool crit, SpellSchoo MANGOS_ASSERT(getOwner()->GetTypeId() == TYPEID_UNIT); - // Grace of Earth trinket reduces threat but has no threat attribute. - if (pThreatSpell && pThreatSpell->HasAttribute(SPELL_ATTR_EX_NO_THREAT) && - (threat >= 0.0f || !iThreatContainer.getReferenceByTarget(pVictim))) - return; - // don't add assist threat to targets under hard CC // check for fear, blind, freezing trap, reckless charge, banish, etc. if (isAssistThreat) @@ -418,10 +413,10 @@ void ThreatManager::addThreat(Unit* pVictim, float threat, bool crit, SpellSchoo } float totalThreat = ThreatCalcHelper::CalcThreat(pVictim, threat, crit, schoolMask, pThreatSpell); - addThreatDirectly(pVictim, totalThreat); + addThreatDirectly(pVictim, totalThreat, pThreatSpell && pThreatSpell->HasAttribute(SPELL_ATTR_EX_NO_THREAT)); } -void ThreatManager::addThreatDirectly(Unit* pVictim, float threat) +void ThreatManager::addThreatDirectly(Unit* pVictim, float threat, bool noNew) { if (!pVictim || pVictim == getOwner() || !pVictim->IsAlive() || !pVictim->IsInMap(getOwner())) return; @@ -431,7 +426,8 @@ void ThreatManager::addThreatDirectly(Unit* pVictim, float threat) if (!ref) ref = iThreatOfflineContainer.addThreat(pVictim, threat); - if (!ref) // there was no ref => create a new one + // there was no ref => create a new one + if (!ref && !noNew) { // threat has to be 0 here HostileReference* hostileReference = new HostileReference(pVictim, this, 0); diff --git a/src/game/Threat/ThreatManager.h b/src/game/Threat/ThreatManager.h index 7a49990add2..f45d969bdd3 100644 --- a/src/game/Threat/ThreatManager.h +++ b/src/game/Threat/ThreatManager.h @@ -50,7 +50,7 @@ class ThreatCalcHelper class HostileReference : public Reference { public: - HostileReference(Unit* pUnit, ThreatManager *pThreatManager, float pThreat); + HostileReference(Unit* pUnit, ThreatManager *pThreatManager, float threat); //================================================= void addThreat(float pMod); @@ -154,7 +154,7 @@ class ThreatContainer ThreatContainer() { iDirty = false; } ~ThreatContainer() { clearReferences(); } - HostileReference* addThreat(Unit* pVictim, float pThreat); + HostileReference* addThreat(Unit* pVictim, float threat); void modifyThreatPercent(Unit* pVictim, int32 percent); @@ -190,7 +190,7 @@ class ThreatManager void addThreat(Unit* pVictim, float threat) { addThreat(pVictim, threat, false, SPELL_SCHOOL_MASK_NONE, nullptr, false); } // add threat as raw value (ignore redirections and expection all mods applied already to it - void addThreatDirectly(Unit* pVictim, float threat); + void addThreatDirectly(Unit* pVictim, float threat, bool noNew = false); void modifyThreatPercent(Unit* pVictim, int32 pPercent); From 8728a4820f11f4d8921fdb5672ae0a3b671f425f Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 20 Nov 2023 09:16:39 +0200 Subject: [PATCH 335/426] Fix gameobject los check. Just checking height of model is not enough. We need to take rotation into account. --- src/game/Objects/GameObject.cpp | 38 ++++++++++++++++++++++++++------- src/game/Objects/GameObject.h | 2 +- src/game/Objects/Object.cpp | 15 ++++++++----- src/game/Objects/Object.h | 3 ++- src/game/Objects/Unit.h | 2 +- 5 files changed, 44 insertions(+), 16 deletions(-) diff --git a/src/game/Objects/GameObject.cpp b/src/game/Objects/GameObject.cpp index b8b0249e33b..5db7c34c589 100644 --- a/src/game/Objects/GameObject.cpp +++ b/src/game/Objects/GameObject.cpp @@ -2386,6 +2386,36 @@ void GameObject::UpdateModelPosition() } } +void GameObject::GetLosCheckPosition(float& x, float& y, float& z) const +{ + if (GameObjectDisplayInfoAddon const* displayInfo = sGameObjectDisplayInfoAddonStorage.LookupEntry(GetDisplayId())) + { + float scale = GetObjectScale(); + + float minX = displayInfo->min_x * scale; + float minY = displayInfo->min_y * scale; + float minZ = displayInfo->min_z * scale; + float maxX = displayInfo->max_x * scale; + float maxY = displayInfo->max_y * scale; + float maxZ = displayInfo->max_z * scale; + + QuaternionData worldRotation = GetLocalRotation(); + G3D::Quat worldRotationQuat(worldRotation.x, worldRotation.y, worldRotation.z, worldRotation.w); + + auto pos = G3D::CoordinateFrame{ { worldRotationQuat },{ GetPositionX(), GetPositionY(), GetPositionZ() } } + .toWorldSpace(G3D::Box{ { minX, minY, minZ },{ maxX, maxY, maxZ } }).center(); + + x = pos.x; + y = pos.y; + z = pos.z; + } + else + { + GetPosition(x, y, z); + z += 1.0f; + } +} + GameObjectData const* GameObject::GetGOData() const { return sObjectMgr.GetGOData(GetGUIDLow()); @@ -2541,14 +2571,6 @@ void GameObject::GetClosestChairSlotPosition(float userX, float userY, float& ou outY = GetPositionY(); } -float GameObject::GetCollisionHeight() const -{ - // use the center of the model - if (GameObjectDisplayInfoAddon const* displayInfo = sGameObjectDisplayInfoAddonStorage.LookupEntry(GetDisplayId())) - return (displayInfo->max_z + displayInfo->min_z) * 0.5f * GetObjectScale(); - return 1.0f; -} - bool GameObject::IsAtInteractDistance(Position const& pos, float radius) const { if (GameObjectDisplayInfoAddon const* displayInfo = sGameObjectDisplayInfoAddonStorage.LookupEntry(GetDisplayId())) diff --git a/src/game/Objects/GameObject.h b/src/game/Objects/GameObject.h index b1f82c80b56..5ad2dc22d06 100644 --- a/src/game/Objects/GameObject.h +++ b/src/game/Objects/GameObject.h @@ -228,6 +228,7 @@ class GameObject : public SpellCaster GameObjectModel* m_model; void UpdateModelPosition(); + void GetLosCheckPosition(float& x, float& y, float& z) const final; float GetStationaryX() const { if (GetGOInfo()->type != GAMEOBJECT_TYPE_MO_TRANSPORT) return m_stationaryPosition.x; return 0.f; } float GetStationaryY() const { if (GetGOInfo()->type != GAMEOBJECT_TYPE_MO_TRANSPORT) return m_stationaryPosition.y; return 0.f; } float GetStationaryZ() const { if (GetGOInfo()->type != GAMEOBJECT_TYPE_MO_TRANSPORT) return m_stationaryPosition.z; return 0.f; } @@ -250,7 +251,6 @@ class GameObject : public SpellCaster uint32 GetFactionTemplateId() const final { return GetGOInfo()->faction; } uint32 GetLevel() const final ; - float GetCollisionHeight() const final; bool IsAtInteractDistance(Position const& pos, float radius) const; bool IsAtInteractDistance(Player const* player, uint32 maxRange = 0) const; diff --git a/src/game/Objects/Object.cpp b/src/game/Objects/Object.cpp index e3f632cd3b3..3ee0643ea87 100644 --- a/src/game/Objects/Object.cpp +++ b/src/game/Objects/Object.cpp @@ -1616,22 +1616,27 @@ bool WorldObject::IsWithinLOSInMap(WorldObject const* obj, bool checkDynLos) con if (IsWithinDist(obj, 0.0f)) return true; float ox, oy, oz; - obj->GetPosition(ox, oy, oz); - float targetHeight = obj->GetCollisionHeight(); - return (IsWithinLOS(ox, oy, oz, checkDynLos, targetHeight)); + obj->GetLosCheckPosition(ox, oy, oz); + return (IsWithinLOS(ox, oy, oz, checkDynLos, 0.0f)); } bool WorldObject::IsWithinLOSAtPosition(float ownX, float ownY, float ownZ, float targetX, float targetY, float targetZ, bool checkDynLos, float targetHeight) const { if (IsInWorld()) { - float height = GetCollisionHeight(); + float height = IsUnit() ? static_cast(this)->GetCollisionHeight() : 1.0f; return GetMap()->isInLineOfSight(ownX, ownY, ownZ + height, targetX, targetY, targetZ + targetHeight, checkDynLos); } return true; } +void WorldObject::GetLosCheckPosition(float& x, float& y, float& z) const +{ + GetPosition(x, y, z); + z += 1.0f; +} + bool WorldObject::GetDistanceOrder(WorldObject const* obj1, WorldObject const* obj2, bool is3D /* = true */) const { ASSERT(obj1 && obj2); @@ -2005,7 +2010,7 @@ void WorldObject::MovePositionToFirstCollision(Position& pos, float dist, float GenericTransport* transport = GetTransport(); - float halfHeight = GetCollisionHeight(); + float halfHeight = IsUnit() ? static_cast(this)->GetCollisionHeight() : 1.0f; if (IsUnit()) { PathFinder path(static_cast(this)); diff --git a/src/game/Objects/Object.h b/src/game/Objects/Object.h index f2a7c64bba1..7b4e4682930 100644 --- a/src/game/Objects/Object.h +++ b/src/game/Objects/Object.h @@ -723,7 +723,8 @@ class WorldObject : public Object // angle to face `obj` to `this` using distance includes size of `obj` GetNearPoint(obj, x, y, z, obj->GetObjectBoundingRadius(), distance2d, GetAngle(obj)); } - virtual float GetCollisionHeight() const { return 1.0f; } + virtual void GetLosCheckPosition(float& x, float& y, float& z) const; + virtual float GetObjectBoundingRadius() const { return DEFAULT_WORLD_OBJECT_SIZE; } virtual float GetCombatReach() const { return 0.f; } diff --git a/src/game/Objects/Unit.h b/src/game/Objects/Unit.h index c5db86d5a10..5e1024bf728 100644 --- a/src/game/Objects/Unit.h +++ b/src/game/Objects/Unit.h @@ -553,7 +553,7 @@ class Unit : public SpellCaster void ResetTransformScale(); float GetNativeScale() const; void SetNativeScale(float scale); - float GetCollisionHeight() const final { return m_modelCollisionHeight * m_nativeScaleOverride; } + float GetCollisionHeight() const { return m_modelCollisionHeight * m_nativeScaleOverride; } float GetMinSwimDepth() const { return GetCollisionHeight() * 0.75f; } // client switches to swim animation at this depth static float GetScaleForDisplayId(uint32 displayId); void UpdateModelData(); // at any changes to scale and/or displayId From 7168faf7228690db1cd5a724d8ddba60bcc4e2fe Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 20 Nov 2023 09:50:34 +0200 Subject: [PATCH 336/426] Fix some quest items that target gameobjects. --- sql/migrations/20231120074628_world.sql | 26 ++++++++++++++++++ src/game/Spells/Spell.cpp | 36 ++++--------------------- 2 files changed, 31 insertions(+), 31 deletions(-) create mode 100644 sql/migrations/20231120074628_world.sql diff --git a/sql/migrations/20231120074628_world.sql b/sql/migrations/20231120074628_world.sql new file mode 100644 index 00000000000..063ec818115 --- /dev/null +++ b/sql/migrations/20231120074628_world.sql @@ -0,0 +1,26 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231120074628'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231120074628'); +-- Add your query below. + + +-- 192: Target GameObject's GO State Is Alternative +INSERT INTO `conditions` (`condition_entry`, `type`, `value1`, `value2`, `value3`, `value4`, `flags`) VALUES (192, 55, 2, 0, 0, 0, 0); +-- 15958: (122: Target GameObject Is Spawned) And (192: Target GameObject's GO State Is Alternative) +INSERT INTO `conditions` (`condition_entry`, `type`, `value1`, `value2`, `value3`, `value4`, `flags`) VALUES (15958, -1, 122, 192, 0, 0, 0); + +-- Assign condition to Collect Rookery Egg to require egg to be frozen. +UPDATE `spell_script_target` SET `conditionId`=15958 WHERE `entry`=15958 && `type`=0 && `targetEntry`=175124; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index c6e84df8a81..43330dd1467 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -848,7 +848,11 @@ SpellCastResult Spell::CheckScriptTargeting(SpellEffectIndex effIndex, uint32 ch /* For TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER makes DB targets optional not required for now * TODO: Makes more research for this target type */ - if (targetMode != TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER) + if (targetMode != TARGET_GAMEOBJECT_SCRIPT_NEAR_CASTER || + m_spellInfo->Id == 15958 || // Collect Rookery Egg + m_spellInfo->Id == 16447 || // Spawn Challenge to Urok + m_spellInfo->Id == 24973 // Clean Up Stink Bomb + ) { // not report target not existence for triggered spells if (m_triggeredByAuraSpell || m_IsTriggeredSpell) @@ -6589,36 +6593,6 @@ SpellCastResult Spell::CheckCast(bool strict) } break; } - case SPELL_EFFECT_ACTIVATE_OBJECT: - { - if (m_spellInfo->Id == 15958) // Collect Rookery Egg - { - if (!m_UniqueGOTargetInfo.empty()) - { - ObjectGuid eggGuid = m_UniqueGOTargetInfo.back().targetGUID; - if (GameObject* pRookeryEgg = m_caster->GetMap()->GetGameObject(eggGuid)) - { - if (pRookeryEgg->GetGoState() != GO_STATE_ACTIVE_ALTERNATIVE) - return SPELL_FAILED_BAD_TARGETS; - } - else - return SPELL_FAILED_BAD_IMPLICIT_TARGETS; - } - else - return SPELL_FAILED_BAD_IMPLICIT_TARGETS; - } - else if (m_spellInfo->Id == 16447) // Spawn Challenge to Urok - { - if (m_UniqueGOTargetInfo.empty()) - return SPELL_FAILED_BAD_IMPLICIT_TARGETS; - } - else if (m_spellInfo->Id == 24973) // Clean Up Stink Bomb - { - if (m_UniqueGOTargetInfo.empty()) - return SPELL_FAILED_BAD_IMPLICIT_TARGETS; - } - break; - } case SPELL_EFFECT_SUMMON_DEAD_PET: { Creature* pet = m_casterUnit ? m_casterUnit->GetPet() : nullptr; From d026dc727d1099ffd8e6b9435e96b06db4d195d9 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 20 Nov 2023 10:15:08 +0200 Subject: [PATCH 337/426] Make level of battlebots that auto join be random. --- src/game/PlayerBots/PlayerBotMgr.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/game/PlayerBots/PlayerBotMgr.cpp b/src/game/PlayerBots/PlayerBotMgr.cpp index f3090afe513..3b9035bcbf0 100644 --- a/src/game/PlayerBots/PlayerBotMgr.cpp +++ b/src/game/PlayerBots/PlayerBotMgr.cpp @@ -333,15 +333,19 @@ void PlayerBotMgr::Update(uint32 diff) BattleGround* bg = sBattleGroundMgr.GetBattleGroundTemplate(bgTypeId); ASSERT(bg); - uint32 botLevel = bg->GetMinLevel() + 10 * bracketId; + uint32 const minLevel = bg->GetMinLevel() + 10 * bracketId; + ASSERT(minLevel <= PLAYER_MAX_LEVEL); + uint32 const maxLevel = std::min(minLevel + 9, PLAYER_MAX_LEVEL); for (uint32 i = queuedAllianceCount[bracketId]; i < bg->GetMinPlayersPerTeam(); ++i) { + uint32 const botLevel = urand(minLevel, maxLevel); sLog.Out(LOG_BG, LOG_LVL_BASIC, "[PlayerBotMgr] Adding level %u alliance battlebot to bg queue %u.", botLevel, queueType); AddBattleBot(BattleGroundQueueTypeId(queueType), ALLIANCE, botLevel, true); } for (uint32 i = queuedHordeCount[bracketId]; i < bg->GetMinPlayersPerTeam(); ++i) { + uint32 const botLevel = urand(minLevel, maxLevel); sLog.Out(LOG_BG, LOG_LVL_BASIC, "[PlayerBotMgr] Adding level %u horde battlebot to bg queue %u.", botLevel, queueType); AddBattleBot(BattleGroundQueueTypeId(queueType), HORDE, botLevel, true); } From db9989149c78f3ceb9a5468deebe356ffabd81ca Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 21 Nov 2023 12:03:01 +0200 Subject: [PATCH 338/426] Notify client when channel name is invalid. Also channel names must always begin with a letter. --- src/game/Handlers/ChannelHandler.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/game/Handlers/ChannelHandler.cpp b/src/game/Handlers/ChannelHandler.cpp index aa9733c586b..66947f19967 100644 --- a/src/game/Handlers/ChannelHandler.cpp +++ b/src/game/Handlers/ChannelHandler.cpp @@ -29,8 +29,15 @@ void WorldSession::HandleJoinChannelOpcode(WorldPacket& recvPacket) std::string channelname, pass; recvPacket >> channelname; - if (channelname.empty()) + // Channel name must begin with a letter. + if (channelname.empty() || (uint8(channelname[0]) <= 127 && !isalpha(channelname[0]))) + { + WorldPacket data(SMSG_CHANNEL_NOTIFY, 1 + channelname.size() + 1); + data << uint8(CHAT_INVALID_NAME_NOTICE); + data << channelname; + SendPacket(&data); return; + } recvPacket >> pass; From 2f9dc70a3e369c0496e4d400bdf2144e4977ff60 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 21 Nov 2023 23:05:23 +0200 Subject: [PATCH 339/426] Add many missing creature immunities. --- sql/migrations/20231121204641_world.sql | 2484 +++++++++++++++++++++++ src/game/Objects/Creature.cpp | 44 +- src/game/Objects/CreatureDefines.h | 1 + src/game/Objects/Unit.cpp | 8 + 4 files changed, 2524 insertions(+), 13 deletions(-) create mode 100644 sql/migrations/20231121204641_world.sql diff --git a/sql/migrations/20231121204641_world.sql b/sql/migrations/20231121204641_world.sql new file mode 100644 index 00000000000..ff86ca8fdbe --- /dev/null +++ b/sql/migrations/20231121204641_world.sql @@ -0,0 +1,2484 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231121204641'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231121204641'); +-- Add your query below. + + +-- Harvest Watcher +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=114; +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=114; + +-- Fire Elemental +-- Poison: Instant Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=575; + +-- Lesser Water Elemental +-- Poison: Serpent Sting, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=691; + +-- Rot Hide Brute +-- Mechanic Sleep: Sleep +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 512) WHERE `entry`=1939; + +-- Cracked Golem +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=2156; + +-- Stone Behemoth +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=2157; + +-- High Executor Darthalia +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=2215; + +-- Elemental Slave +-- School Nature: Deadly Poison, Instant Poison, Instant Poison II, Lightning Bolt, Serpent Sting, Lightning Shield, Lightning Shield +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=2359; +-- Poison: Deadly Poison, Instant Poison, Instant Poison II, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=2359; + +-- Stone Golem +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=2723; + +-- Lesser Rock Elemental +-- Disease: Devouring Plague +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 16) WHERE `entry`=2735; + +-- Ambassador Infernus +-- Poison: Serpent Sting, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=2745; + +-- Archaedas +-- Mechanic Stun: Hammer of Justice, Bash, Pounce, War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=2748; +-- Mechanic Bleed: Rend, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=2748; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=2748; + +-- Myzrael +-- Mechanic Root: Improved Wing Clip +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=2755; +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=2755; + +-- Blacklash +-- Mechanic Stun: Kidney Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=2757; + +-- Hematus +-- School Fire: Fireball +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 4) WHERE `entry`=2759; +-- Mechanic Fear: Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=2759; +-- Mechanic Stun: Cheap Shot, Kidney Shot, Concussion Blow, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=2759; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=2759; + +-- Burning Exile +-- Poison: Crippling Poison, Instant Poison III, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=2760; + +-- Cresting Exile +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=2761; + +-- Vengeful Surge +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=2776; + +-- Urda +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=2851; + +-- Fam'retor Guardian +-- School Nature: Earth Shock, Lightning Bolt +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=2919; + +-- Grisha +-- Mechanic Fear: Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=3305; + +-- Evolving Ectoplasm (HAS AURAS: Immunity: Frost) +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=3640; + +-- Mutanus the Devourer +-- School Shadow: Shadow Bolt, Curse of Agony, Corruption +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 32) WHERE `entry`=3654; + +-- Skum +-- School Nature: Earth Shock, Serpent Sting +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=3674; + +-- Dark Strand Enforcer +-- Mechanic Fear: Fear +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=3727; + +-- Shadowfang Darksoul +-- School Shadow: Curse of Agony, Corruption, Mind Control, Mind Blast, Shadow Bolt +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 32) WHERE `entry`=3855; + +-- Befouled Water Elemental +-- Poison: Serpent Sting, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=3917; + +-- High Inquisitor Whitemane +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=3977; + +-- Monika Sengutz +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=3982; +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=3982; + +-- XT:9 +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=4074; + +-- Thundering Boulderkin +-- Poison: Deadly Poison +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=4120; + +-- Archmage Arugal +-- Mechanic Stun: Hammer of Justice, Charge Stun, Hammer of Justice +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=4275; + +-- Unfettered Spirit +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=4308; + +-- Agathelos the Raging +-- Mechanic Stun: Kidney Shot, Cheap Shot, Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=4422; + +-- Parqual Fintallas +-- Mechanic Fear: Aura of Fear +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=4488; + +-- Wind Howler +-- Disease: Devouring Plague +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 16) WHERE `entry`=4526; + +-- Stone Rumbler +-- School Nature: Earthbind, Earth Shock, Instant Poison II, Lightning Bolt, Lightning Shield, Lightning Shield +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=4528; +-- Poison: Instant Poison II +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=4528; + +-- Bloodmage Thalnos +-- Mechanic Bleed: Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=4543; + +-- Gelkis Rumbler +-- School Nature: Crippling Poison, Earth Shock, Instant Poison II, Earth Shock, Serpent Sting, Serpent Sting, Lightning Shield, Lightning Shield +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=4661; +-- Poison: Crippling Poison, Instant Poison II, Serpent Sting, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=4661; + +-- Burning Blade Augur +-- Mechanic Fear: Fear +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=4663; + +-- Lesser Infernal +-- Mechanic Bleed: Rend, Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=4676; +-- Poison: Instant Poison III, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=4676; + +-- Stone Keeper +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=4857; +-- Poison: Crippling Poison +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=4857; + +-- Stone Steward +-- Mechanic Fear: Howl of Terror +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=4860; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=4860; + +-- Obsidian Golem +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=4872; + +-- Aku'mai Servant +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=4978; + +-- Phantim +-- School Nature: Faerie Fire, Earth Shock, Crippling Poison, Instant Poison VI, Mind-numbing Poison III, Serpent Sting, Faerie Fire (Feral), Wrath, Lightning, Lightning Shield, Lightning Shield +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=5314; +-- Mechanic Snare: Frost Shock +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=5314; +-- Mechanic Stun: Charge Stun, Impact, Intercept Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=5314; +-- Mechanic Interrupt: Earth Shock, Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=5314; + +-- Sea Spray +-- Poison: Instant Poison IV +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=5462; + +-- Land Rager +-- School Nature: Lightning Shield, Lightning Shield +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=5465; + +-- Rothos +-- School Nature: Instant Poison VI +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=5718; +-- Mechanic Stun: Cheap Shot, Charge Stun, Revenge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=5718; + +-- Morphaz +-- Poison: Instant Poison IV, Instant Poison V, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=5719; + +-- Dreamscythe +-- Poison: Instant Poison V, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=5721; + +-- Hazzas +-- Poison: Instant Poison V, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=5722; + +-- Nightmare Ectoplasm +-- Mechanic Root: Boar Charge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=5763; + +-- Verdan the Everliving +-- Mechanic Root: Boar Charge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=5775; +-- Mechanic Stun: Charge Stun, War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=5775; + +-- Blazing Elemental +-- Poison: Instant Poison IV, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=5850; + +-- Inferno Elemental +-- Poison: Instant Poison IV +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=5852; + +-- Tempered War Golem +-- Poison: Instant Poison III, Deadly Poison III, Serpent Sting, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=5853; + +-- Heavy War Golem +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8) WHERE `entry`=5854; +-- Mechanic Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=5854; +-- Poison: Instant Poison III, Crippling Poison, Instant Poison IV, Instant Poison V, Serpent Sting, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=5854; + +-- Aqua Guardian +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=6047; + +-- Irradiated Horror +-- Poison: Scorpid Sting, Crippling Poison, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=6220; + +-- Mechano-Tank +-- Poison: Crippling Poison +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=6225; + +-- Mechano-Flamewalker +-- Poison: Crippling Poison, Instant Poison II, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=6226; + +-- Mechano-Frostwalker +-- Disease: Devouring Plague +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 16) WHERE `entry`=6227; +-- Poison: Crippling Poison, Instant Poison II, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=6227; + +-- Crowd Pummeler 9-60 +-- Poison: Instant Poison II, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=6229; + +-- Peacekeeper Security Suit +-- Poison: Crippling Poison, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=6230; + +-- Techbot +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=6231; + +-- Arcane Nullifier X-21 +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8) WHERE `entry`=6232; +-- Taunt: Challenging Shout, Challenging Roar +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 2) WHERE `entry`=6232; +-- Poison: Crippling Poison, Instant Poison II, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=6232; + +-- Mechanized Sentry +-- Poison: Crippling Poison, Instant Poison II, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=6233; + +-- Mechanized Guardian +-- Disease: Devouring Plague +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 16) WHERE `entry`=6234; +-- Poison: Crippling Poison, Instant Poison II +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=6234; + +-- Cyclonian +-- Mechanic Stun: Hammer of Justice, Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=6239; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=6239; + +-- Venomhide Ravasaur +-- Poison: Venomhide Poison +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=6508; + +-- Living Blaze +-- Poison: Crippling Poison, Instant Poison VI +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=6521; + +-- Baelog +-- Mechanic Polymorph: Polymorph +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 65536) WHERE `entry`=6906; + +-- Eric "The Swift" +-- Mechanic Stun: Bash +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=6907; + +-- Olaf +-- Mechanic Root: Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=6908; +-- Mechanic Stun: Pounce +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=6908; +-- Mechanic Interrupt: Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=6908; + +-- Revelosh +-- Mechanic Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=6910; + +-- Earthen Rocksmasher +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=7011; +-- Mechanic Snare: Crippling Poison, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=7011; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7011; + +-- Earthen Sculptor +-- Mechanic Snare: Crippling Poison, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=7012; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7012; + +-- Obsidian Sentinel +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=7023; + +-- War Reaver +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=7039; +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=7039; + +-- Black Drake +-- Mechanic Stun: Hammer of Justice, Kidney Shot, Hammer of Justice +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=7044; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7044; + +-- Searscale Drake +-- Mechanic Stun: Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=7046; + +-- Earthen Guardian +-- Mechanic Fear: Psychic Scream, Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=7076; + +-- Vile Ooze +-- School Nature: Earthbind, Earth Shock, Lightning Shield, Lightning Shield +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=7093; + +-- Toxic Horror +-- Poison: Crippling Poison +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=7132; + +-- Ancient Stone Keeper +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7206; +-- Poison: Crippling Poison +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=7206; + +-- Ironaya +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7228; + +-- Chief Ukorz Sandscalp +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7267; + +-- Witch Doctor Zum'rah +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7271; + +-- Gahz'rilla +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=7273; +-- Mechanic Stun: Hammer of Justice, Charge Stun, Intimidation +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=7273; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=7273; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7273; + +-- Galgann Firehammer +-- Mechanic Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=7291; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7291; + +-- Earthen Custodian +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7309; + +-- Ragglesnout +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=7354; + +-- Tuten'kash +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=7355; + +-- Plaguemaw the Rotting +-- Mechanic Root: Improved Wing Clip +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=7356; +-- Mechanic Snare: Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=7356; + +-- Mordresh Fire Eye +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=7357; + +-- Amnennar the Coldbringer +-- Mechanic Snare: Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=7358; +-- Mechanic Stun: Cheap Shot, Charge Stun, Starfire Stun, War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=7358; +-- Mod Stat: Scorpid Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7358; + +-- Earthen Stonebreaker +-- Mechanic Fear: Howl of Terror, Fear +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=7396; +-- Mechanic Snare: Crippling Poison, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=7396; +-- Mechanic Knockout: Repentance +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=7396; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7396; + +-- Earthen Stonecarver +-- Mechanic Fear: Howl of Terror, Fear +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=7397; +-- Mechanic Snare: Crippling Poison, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=7397; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7397; + +-- Grol the Destroyer +-- School Fire: Flame Shock, Fiery Weapon +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 4) WHERE `entry`=7665; +-- School Frost: Frost Shock +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 16) WHERE `entry`=7665; +-- Mechanic Stun: Kidney Shot, Revenge Stun, Concussion Blow +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=7665; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=7665; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7665; + +-- Archmage Allistarj +-- School Fire: Flame Shock, Fiery Weapon +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 4) WHERE `entry`=7666; +-- School Frost: Frost Shock +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 16) WHERE `entry`=7666; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Revenge Stun, Concussion Blow +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=7666; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=7666; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7666; + +-- Lady Sevine +-- School Fire: Flame Shock, Fiery Weapon +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 4) WHERE `entry`=7667; +-- School Frost: Frost Shock +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 16) WHERE `entry`=7667; +-- Mechanic Stun: Charge Stun, Kidney Shot, Concussion Blow +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=7667; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=7667; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7667; + +-- Ilifar +-- School Nature: Instant Poison VI +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=7734; +-- Mechanic Stun: Kidney Shot, Revenge Stun, Concussion Blow +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=7734; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=7734; + +-- Felcular +-- School Nature: Instant Poison VI +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=7735; +-- Mechanic Stun: Revenge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=7735; + +-- Ruuzlu +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=7797; + +-- Mekgineer Thermaplugg +-- Poison: Instant Poison II +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=7800; + +-- Teremus the Devourer +-- School Fire: Flame Shock, Fiery Weapon +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 4) WHERE `entry`=7846; +-- School Frost: Frost Shock +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 16) WHERE `entry`=7846; +-- Mechanic Bleed: Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=7846; +-- Poison: Instant Poison VI, Deadly Poison IV +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=7846; + +-- Mobile Alert System +-- Poison: Crippling Poison +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=7849; + +-- Deathguard Elite +-- Mechanic Fear: Aura of Fear +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=7980; + +-- Dark Iron Land Mine +-- Poison: Crippling Poison +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=8035; + +-- Sul'lithuz Sandcrawler +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=8095; +-- Mechanic Snare: Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=8095; +-- Mechanic Freeze: Freezing Trap Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4096) WHERE `entry`=8095; +-- Mechanic Knockout: Gouge, Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=8095; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=8095; + +-- Sul'lithuz Abomination +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=8120; +-- Mechanic Snare: Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=8120; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=8120; + +-- Antu'sul +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=8127; + +-- Servant of Antu'sul +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=8156; +-- Mechanic Snare: Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=8156; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=8156; + +-- Occulus +-- School Arcane: Counterspell, Arcane Shot +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 64) WHERE `entry`=8196; +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=8196; +-- Mechanic Snare: Earthbind +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=8196; +-- Mechanic Stun: Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=8196; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=8196; + +-- Chronalis +-- School Arcane: Arcane Shot, Hunter's Mark +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 64) WHERE `entry`=8197; +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=8197; +-- Mechanic Snare: Earthbind +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=8197; +-- Mechanic Stun: Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=8197; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=8197; + +-- Tick +-- School Arcane: Arcane Shot +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 64) WHERE `entry`=8198; +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=8198; +-- Mechanic Snare: Earthbind +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=8198; +-- Mechanic Stun: Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=8198; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=8198; + +-- Scald +-- Poison: Instant Poison IV +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=8281; + +-- Atal'ai Deathwalker's Spirit +-- School Physical: Auto Shot, Cleave, Whirlwind, Shoot, Thunder Clap, Whirlwind, Demoralizing Roar, Swipe, Claw, Maul, Swipe, Sinister Strike, Demoralizing Shout, Cleave, Sweeping Strikes, Multi-Shot, Multi-Shot, Cleave, Blade Flurry +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 1) WHERE `entry`=8317; + +-- Atal'ai Slave +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=8318; +-- Curse: Curse of Agony +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 64) WHERE `entry`=8318; + +-- Blighted Surge +-- Poison: Instant Poison VI +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=8519; + +-- Glutton +-- Mechanic Root: Improved Wing Clip +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=8567; +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=8567; +-- Mechanic Stun: Kidney Shot, Cheap Shot, Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=8567; + +-- Infernal Servant +-- Poison: Instant Poison VI +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=8616; + +-- Dreadlord +-- Poison: Instant Poison VI, Serpent Sting, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=8716; + +-- Battle Chicken +-- Mechanic Silence: Silence +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 256) WHERE `entry`=8836; +-- Mechanic Sleep: Sleep +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 512) WHERE `entry`=8836; +-- Mechanic Knockout: Blast Wave +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=8836; +-- Mechanic Polymorph: Hex +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 65536) WHERE `entry`=8836; +-- Mod Stat: Plague Cloud +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=8836; +-- Disease: Plague Cloud +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 16) WHERE `entry`=8836; +-- Poison: Poisonous Blood, Toxic Volley, Poison Bolt Volley, Poison Aura +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=8836; + +-- Muck Splash +-- Poison: Instant Poison IV +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=8837; + +-- Warbringer Construct +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=8905; +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=8905; +-- Mechanic Snare: Earthbind, Concussive Shot, Crippling Poison, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=8905; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=8905; +-- Poison: Crippling Poison, Instant Poison IV, Instant Poison V, Deadly Poison III, Poison Cloud, Serpent Sting, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=8905; + +-- Ragereaver Golem +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=8906; +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=8906; +-- Mechanic Snare: Concussive Shot, Crippling Poison, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=8906; +-- Poison: Crippling Poison, Instant Poison IV, Instant Poison V, Instant Poison VI, Deadly Poison III, Poison Cloud +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=8906; + +-- Wrath Hammer Construct +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=8907; +-- Mechanic Snare: Concussive Shot, Crippling Poison, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=8907; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=8907; +-- Mechanic Horror: Death Coil +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8388608) WHERE `entry`=8907; +-- Poison: Crippling Poison, Instant Poison IV, Instant Poison V, Instant Poison VI, Deadly Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=8907; + +-- Molten War Golem +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8) WHERE `entry`=8908; +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=8908; +-- Mechanic Snare: Concussive Shot, Piercing Howl, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=8908; +-- Poison: Instant Poison IV, Serpent Sting, Numbing Pain +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=8908; + +-- Fireguard +-- Mechanic Root: Frost Nova +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=8909; +-- Mechanic Snare: Cone of Cold +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=8909; +-- Poison: Instant Poison IV, Instant Poison V, Instant Poison VI, Deadly Poison III, Poison Cloud, Serpent Sting, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=8909; + +-- Blazing Fireguard +-- Mechanic Snare: Crippling Poison, Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=8910; +-- Poison: Crippling Poison, Crippling Poison, Instant Poison IV, Instant Poison V, Deadly Poison III, Serpent Sting, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=8910; + +-- Fireguard Destroyer +-- Poison: Crippling Poison, Crippling Poison, Instant Poison IV, Instant Poison V, Instant Poison VI, Deadly Poison III, Poison Cloud, Serpent Sting, Serpent Sting, Numbing Pain +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=8911; + +-- Bloodhound Mastiff +-- Mechanic Fear: Intimidating Shout, Howl of Terror +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=8922; + +-- Golem Lord Argelmach +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=8983; + +-- Bael'Gar +-- Mechanic Bleed: Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=9016; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=9016; + +-- Lord Incendius +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=9017; +-- Poison: Instant Poison IV, Instant Poison V +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=9017; + +-- Overmaster Pyron +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=9026; +-- Mechanic Snare: Crippling Poison, Earthbind, Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=9026; +-- Mechanic Stun: Cheap Shot, Hammer of Justice, Charge Stun, Hammer of Justice, War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=9026; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=9026; +-- Poison: Crippling Poison, Instant Poison V, Instant Poison VI, Deadly Poison III, Serpent Sting, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=9026; + +-- Ok'thor the Breaker +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=9030; + +-- Hate'rel +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=9034; +-- Poison: Instant Poison IV, Serpent Sting, Numbing Pain +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=9034; +-- Curse: Curse of Agony +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 64) WHERE `entry`=9034; + +-- Anger'rel +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=9035; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=9035; +-- Poison: Instant Poison IV, Serpent Sting, Numbing Pain +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=9035; +-- Curse: Curse of Agony +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 64) WHERE `entry`=9035; + +-- Vile'rel +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=9036; +-- Poison: Instant Poison IV, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=9036; + +-- Gloom'rel (HAS AURAS: Recklessness) +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=9037; +-- Poison: Instant Poison IV, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=9037; + +-- Seeth'rel +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=9038; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=9038; +-- Poison: Instant Poison IV, Serpent Sting, Numbing Pain +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=9038; +-- Curse: Curse of Agony +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 64) WHERE `entry`=9038; + +-- Doom'rel (HAS AURAS: Banish) +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=9039; +-- Poison: Instant Poison IV +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=9039; + +-- Dope'rel +-- Mechanic Bleed: Rend, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=9040; +-- Poison: Instant Poison IV, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=9040; +-- Curse: Curse of Agony +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 64) WHERE `entry`=9040; + +-- Fineous Darkvire +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=9056; + +-- Ambassador Flamelash +-- School Fire: Fire Blast, Immolate +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 4) WHERE `entry`=9156; +-- Mechanic Bleed: Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=9156; +-- Poison: Instant Poison V, Instant Poison VI, Serpent Sting, Numbing Pain +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=9156; + +-- Burning Spirit +-- Poison: Crippling Poison, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=9178; + +-- Highlord Omokk +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=9196; + +-- Blazerunner +-- Poison: Crippling Poison, Instant Poison VI +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=9376; + +-- Ground Pounder +-- Poison: Crippling Poison, Instant Poison VI +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=9396; + +-- Spawn of Bael'Gar +-- School Fire: Fire Blast +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 4) WHERE `entry`=9436; +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=9436; +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=9436; + +-- Watchman Doomgrip +-- Mechanic Polymorph: Polymorph +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 65536) WHERE `entry`=9476; + +-- Phalanx +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=9502; +-- Poison: Instant Poison IV, Instant Poison VI, Poison +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=9502; + +-- Overlord Wyrmthalak +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=9568; + +-- Pyroguard Emberseer +-- Poison: Instant Poison V, Instant Poison VI, Serpent Sting, Poison +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=9816; + +-- Magmus +-- School Fire: Fire Blast +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 4) WHERE `entry`=9938; +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=9938; + +-- Theodore Mont Claire +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=10057; +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=10057; + +-- Vault Warder +-- Mechanic Fear: Howl of Terror, Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=10120; +-- Mechanic Root: Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=10120; +-- Mechanic Banish: Banish +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 131072) WHERE `entry`=10120; +-- Mechanic Interrupt: Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=10120; + +-- Onyxia +-- Mod Stat: Curse of Timmy, Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=10184; + +-- Halycon +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=10220; + +-- Gyth +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=10339; + +-- General Drakkisath +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4) WHERE `entry`=10363; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=10363; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=10363; + +-- Rage Talon Dragon Guard +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=10366; +-- Mechanic Fear: Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=10366; +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=10366; +-- Mechanic Snare: Piercing Howl, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=10366; +-- Mechanic Freeze: Freezing Trap Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4096) WHERE `entry`=10366; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=10366; + +-- Rage Talon Captain +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=10371; +-- Mechanic Fear: Intimidating Shout, Howl of Terror +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=10371; +-- Mechanic Snare: Earthbind, Piercing Howl, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=10371; +-- Mechanic Freeze: Freezing Trap Effect, Freezing Trap Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4096) WHERE `entry`=10371; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=10371; + +-- Rage Talon Fire Tongue +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=10372; +-- Mechanic Fear: Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=10372; +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=10372; +-- Mechanic Sleep: Hibernate +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 512) WHERE `entry`=10372; +-- Mechanic Snare: Earthbind, Concussive Shot, Piercing Howl, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=10372; +-- Mechanic Freeze: Freezing Trap Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4096) WHERE `entry`=10372; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=10372; + +-- The Beast +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=10430; + +-- Maleki the Pallid +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=10438; + +-- Baron Rivendare +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=10440; + +-- Chromatic Whelp +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=10442; +-- Mechanic Snare: Piercing Howl, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=10442; + +-- Chromatic Dragonspawn +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=10447; +-- Mechanic Snare: Concussive Shot, Piercing Howl, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=10447; + +-- Lady Illucia Barov +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=10502; +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=10502; + +-- Kirtonos the Herald +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=10506; + +-- Scalding Elemental +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=10756; + +-- Boiling Elemental +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=10757; + +-- Archivist Galford +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=10811; +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=10811; + +-- Grand Crusader Dathrohan +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=10812; + +-- Balnazzar +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=10813; +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=10813; + +-- Summoned Water Elemental +-- Poison: Instant Poison V, Instant Poison VI +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=10955; + +-- Crimson Rifleman +-- Mechanic Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=11054; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11054; + +-- Fras Siabi +-- Mechanic Disoriented: Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=11058; +-- Mechanic Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=11058; + +-- Stratholme Courier +-- Mechanic Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=11082; +-- Mechanic Turn: Turn Undead +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4194304) WHERE `entry`=11082; + +-- Doctor Theolen Krastinov +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=11261; + +-- Zealot Lor'Khan +-- Mod Stat: Scorpid Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11347; + +-- Zealot Zath +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11348; + +-- Gurubashi Berserker +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=11352; +-- Mod Stat: Scorpid Sting, Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11352; + +-- Jin'do the Hexxer +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=11380; +-- Taunt: Taunt, Growl +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 2) WHERE `entry`=11380; +-- Mod Stat: Scorpid Sting, Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11380; + +-- Bloodlord Mandokir +-- Mod Stat: Scorpid Sting, Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11382; + +-- Eldreth Seether +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=11469; + +-- Eldreth Sorcerer +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=11470; + +-- Eldreth Spirit +-- Mechanic Bleed: Deep Wound, Deep Wounds, Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=11472; + +-- Eldreth Spectre +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds, Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=11473; + +-- Eldreth Phantasm +-- Mechanic Bleed: Deep Wound, Deep Wounds, Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=11475; + +-- Arcane Aberration +-- Poison: Serpent Sting, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=11480; + +-- Mana Remnant (HAS AURAS: Blink) +-- Poison: Serpent Sting, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=11483; + +-- Magister Kalendris +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=11487; + +-- Zevrim Thornhoof +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=11490; + +-- Ragnaros (HAS AURAS: Ragnaros Submerge Effect) +-- Mod Stat: Curse of Timmy +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11502; +-- Disease: Gift of Arthas, Devouring Plague +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 16) WHERE `entry`=11502; +-- Poison: Instant Poison V, Instant Poison VI, Deadly Poison IV, Poison Cloud, Corrosive Poison, Serpent Sting, Numbing Pain, Serpent Sting, Deadly Poison V +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=11502; + +-- Rattlegore +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=11622; + +-- Molten Giant +-- Mod Stat: Vindication, Curse of Timmy +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11658; + +-- Molten Destroyer +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11659; + +-- Flamewaker Healer +-- Mechanic Polymorph: Polymorph, Polymorph, Polymorph: Pig +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 65536) WHERE `entry`=11663; +-- Mod Stat: Curse of Timmy +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11663; + +-- Flamewaker Elite (HAS AURAS: Separation Anxiety) +-- Mechanic Stun: Charge Stun, Kidney Shot, Bash, Hammer of Justice, Revenge Stun, Blackout, Intercept Stun, War Stomp, Intercept Stun, Intercept Stun, Earthshaker +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=11664; +-- Mod Stat: Curse of Timmy +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11664; + +-- Lava Annihilator +-- Mod Stat: Vindication, Curse of Timmy +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11665; +-- Poison: Instant Poison V, Instant Poison VI, Deadly Poison IV, Corrosive Poison, Serpent Sting, Serpent Sting, Numbing Pain, Poison, Serpent Sting, Deadly Poison V +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=11665; + +-- Firewalker +-- Mod Stat: Curse of Timmy +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11666; +-- Disease: Gift of Arthas +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 16) WHERE `entry`=11666; +-- Poison: Instant Poison V, Instant Poison VI, Deadly Poison IV, Corrosive Poison, Serpent Sting, Numbing Pain, Poison, Serpent Sting, Deadly Poison V +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=11666; + +-- Flameguard +-- Mod Stat: Curse of Timmy +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11667; +-- Poison: Instant Poison V, Instant Poison VI, Deadly Poison IV, Corrosive Poison, Serpent Sting, Numbing Pain, Serpent Sting, Deadly Poison V +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=11667; + +-- Firelord +-- Mod Stat: Vindication, Curse of Timmy +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11668; +-- Disease: Gift of Arthas +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 16) WHERE `entry`=11668; +-- Poison: Instant Poison V, Instant Poison VI, Deadly Poison IV, Corrosive Poison, Serpent Sting, Numbing Pain, Poison, Serpent Sting, Deadly Poison V +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=11668; + +-- Core Hound +-- Mod Stat: Curse of Timmy +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11671; + +-- Ancient Core Hound +-- Mod Stat: Vindication, Curse of Timmy +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11673; + +-- Ambershard Crusher +-- School Nature: Instant Poison IV, Instant Poison V, Deadly Poison III, Lightning Shield, Lightning Shield +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=11781; +-- Poison: Instant Poison IV, Instant Poison V, Deadly Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=11781; + +-- Ambershard Destroyer +-- School Nature: Wrath, Earth Shock, Instant Poison IV, Instant Poison V, Deadly Poison III, Lightning Shield, Lightning Shield +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=11782; +-- Poison: Instant Poison IV, Instant Poison V, Deadly Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=11782; + +-- Ambereye Basilisk +-- School Nature: Earth Shock, Instant Poison IV, Instant Poison V, Deadly Poison III, Serpent Sting, Faerie Fire (Feral), Lightning Shield, Lightning Shield, Keeper's Sting +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=11785; +-- Mechanic Bleed: Rend, Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=11785; + +-- Ambereye Reaver +-- School Nature: Wrath, Lightning Bolt, Earth Shock, Instant Poison IV, Instant Poison V, Deadly Poison III, Chain Lightning, Faerie Fire (Feral), Lightning Shield, Lightning Shield +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=11786; +-- Mechanic Bleed: Rend, Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=11786; + +-- Keeper Remulos +-- Mechanic Stun: Hammer of Justice +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=11832; + +-- Nathanos Blightcaller +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11878; + +-- Blighthound +-- Mechanic Fear: Fear, Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=11885; + +-- Captain Galvangar +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11947; + +-- Vanndar Stormpike +-- Mod Stat: Scorpid Sting, Blessing of Kings +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11948; +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=11948; + +-- Flamegor +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11981; + +-- Magmadar +-- Mod Stat: Curse of Timmy +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11982; + +-- Firemaw +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=11983; +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=11983; + +-- Baron Geddon +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=12056; + +-- Garr +-- Mod Stat: Curse of Timmy +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12057; +-- Poison: Instant Poison V, Instant Poison VI, Corrosive Poison, Numbing Pain, Poison, Serpent Sting, Deadly Poison V +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=12057; + +-- Lava Elemental +-- Mod Stat: Curse of Timmy +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12076; +-- Mod Cast Speed: Curse of Tongues +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=12076; +-- Poison: Instant Poison V, Instant Poison VI, Deadly Poison IV, Corrosive Poison, Serpent Sting, Numbing Pain, Poison, Serpent Sting, Deadly Poison V +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=12076; + +-- Sulfuron Harbinger +-- Mod Stat: Scorpid Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12098; + +-- Firesworn +-- Poison: Instant Poison V, Instant Poison VI, Serpent Sting, Serpent Sting, Serpent Sting, Deadly Poison V +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=12099; + +-- Lava Reaver +-- Mod Stat: Curse of Timmy +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12100; +-- Disease: Gift of Arthas +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 16) WHERE `entry`=12100; +-- Poison: Instant Poison V, Instant Poison VI, Deadly Poison IV, Corrosive Poison, Serpent Sting, Numbing Pain, Poison, Deadly Poison V +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=12100; + +-- Lava Surger +-- Mod Stat: Vindication, Curse of Timmy +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12101; +-- Poison: Instant Poison V, Instant Poison VI, Deadly Poison IV, Corrosive Poison, Serpent Sting, Serpent Sting, Numbing Pain, Poison, Serpent Sting, Deadly Poison V +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=12101; + +-- Onyxian Warder +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12129; + +-- Son of Flame +-- Mechanic Disoriented: Blind +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=12143; +-- Mechanic Root: Frost Nova, Frost Nova, Frost Nova +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=12143; +-- Mechanic Snare: Earthbind, Frostbolt, Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=12143; +-- Poison: Blind, Instant Poison V, Instant Poison VI, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=12143; + +-- Princess Theradras +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12201; + +-- Landslide +-- Mechanic Stun: Cheap Shot, Hammer of Justice, Charge Stun, Bash +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=12203; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12203; + +-- Primordial Behemoth +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=12206; +-- Mechanic Snare: Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=12206; +-- Mechanic Freeze: Freezing Trap Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4096) WHERE `entry`=12206; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12206; + +-- Celebras the Cursed +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12225; + +-- Lord Vyletongue (HAS AURAS: Blink) +-- Mechanic Stun: Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=12236; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12236; + +-- Razorlash +-- Mechanic Stun: Cheap Shot, Hammer of Justice, Charge Stun, Bash +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=12258; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12258; + +-- Lava Spawn +-- Mod Stat: Vindication, Curse of Timmy +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12265; +-- Poison: Instant Poison V, Instant Poison VI, Deadly Poison IV, Serpent Sting, Poison, Deadly Poison V +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=12265; + +-- Demetria +-- Mechanic Bleed: Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=12339; + +-- Lord Kazzak +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12397; + +-- Death Talon Dragonspawn +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=12422; + +-- Blackwing Warlock +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=12459; +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12459; + +-- Death Talon Wyrmguard +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=12460; +-- Mod Stat: Scorpid Sting, Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12460; + +-- Death Talon Overseer +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4) WHERE `entry`=12461; +-- Mod Stat: Scorpid Sting, Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12461; + +-- Death Talon Flamescale +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12463; + +-- Death Talon Captain (HAS AURAS: Commanding Shout) +-- Mod Stat: Scorpid Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12467; + +-- Death Talon Hatcher +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12468; + +-- Arcanite Dragonling +-- Disease: Brood Affliction: Red +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 16) WHERE `entry`=12473; +-- Poison: Poison Aura +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=12473; + +-- Emeraldon Boughguard +-- Mechanic Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=12474; + +-- Emeraldon Tree Warder (HAS AURAS: Faerie Fire) +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=12475; +-- Mechanic Snare: Concussive Shot, Crippling Poison, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=12475; + +-- Emeraldon Oracle +-- Mechanic Snare: Crippling Poison, Chilled, Aftermath +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=12476; + +-- Verdantine Boughguard +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=12477; +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=12477; + +-- Verdantine Oracle +-- Mechanic Root: Entangling Roots, Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=12478; +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=12478; + +-- Verdantine Tree Warder (HAS AURAS: Faerie Fire) +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=12479; +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=12479; + +-- Dreamtracker +-- School Nature: Faerie Fire, Instant Poison VI, Serpent Sting, Faerie Fire (Feral), Lightning Strike, Serpent Sting +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=12496; +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=12496; +-- Mechanic Snare: Frost Shock +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=12496; +-- Mechanic Stun: Cheap Shot, Charge Stun, Impact, Revenge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=12496; + +-- Dreamstalker +-- School Nature: Faerie Fire, Wrath, Chain Lightning, Crippling Poison, Instant Poison V, Instant Poison VI, Mind-numbing Poison III, Serpent Sting, Lightning Bolt, Faerie Fire (Feral), Wrath, Lightning Strike, Acid Blast, Deadly Poison V, Lightning Shield, Lightning Shield +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=12498; +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=12498; +-- Mechanic Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=12498; +-- Mechanic Stun: Charge Stun, Kidney Shot, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=12498; + +-- Grethok the Controller +-- Mechanic Root: Frostbite, Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=12557; +-- Mechanic Snare: Crippling Poison, Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=12557; +-- Mechanic Stun: Cheap Shot, Charge Stun, Bash, Impact, Crystal Charge, Blackout, Intercept Stun, Intercept Stun, War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=12557; +-- Mechanic Polymorph: Polymorph +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 65536) WHERE `entry`=12557; +-- Mechanic Interrupt: Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=12557; +-- Mod Stat: Scorpid Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=12557; + +-- Tideress +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=12759; + +-- Baron Aquanis +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=12876; + +-- Burning Blade Seer +-- Mechanic Fear: Fear +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=13019; + +-- Vaelastrasz the Corrupt +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=13020; + +-- Warpwood Crusher +-- Mechanic Stun: Charge Stun, Concussion Blow +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=13021; +-- Disease: Devouring Plague +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 16) WHERE `entry`=13021; +-- Poison: Instant Poison VI +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=13021; + +-- Lieutenant Spencer +-- Mechanic Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=13138; + +-- Lieutenant Grummus +-- Mechanic Fear: Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=13145; + +-- Phase Lasher +-- Poison: Crippling Poison, Instant Poison VI +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=13196; + +-- Fel Lash +-- Poison: Instant Poison VI +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=13197; + +-- Jekyll Flandring +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=13219; + +-- Lokholar the Ice Lord +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=13256; + +-- Hydrospawn +-- Poison: Instant Poison VI +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=13280; + +-- Noxxion +-- Mechanic Stun: Cheap Shot, Charge Stun, Bash, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=13282; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=13282; + +-- Death Lash +-- Poison: Instant Poison VI +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=13285; + +-- Lieutenant Greywand +-- Mechanic Root: Entangling Roots +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=13298; +-- Mechanic Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=13298; + +-- Rotgrip +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=13596; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=13596; + +-- Tinkerer Gizlock +-- Mechanic Stun: Cheap Shot, Hammer of Justice, Charge Stun, Bash, Intimidation +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=13601; +-- Mod Stat: Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=13601; + +-- Veng +-- Mechanic Bleed: Garrote +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=13738; + +-- Maraudos +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=13739; + +-- Magra +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=13740; + +-- Gelk +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=13741; + +-- Kolk +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds, Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=13742; + +-- Corporal Teeka Bloodsnarl +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=13776; + +-- Voggah Deathgrip +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=13817; + +-- Warmaster Laggrond +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=13840; + +-- Alterac Yeti +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=13959; +-- Mechanic Stun: Hammer of Justice +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=13959; +-- Mechanic Polymorph: Polymorph: Pig +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 65536) WHERE `entry`=13959; + +-- Chromaggus +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=14020; + +-- Massive Geyser +-- School Physical: Multi-Shot, Multi-Shot +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 1) WHERE `entry`=14122; +-- School Nature: Lightning Shield, Lightning Shield +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=14122; +-- School Shadow: Shadowguard, Shadowguard +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 32) WHERE `entry`=14122; + +-- Chromatic Drakonid +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=14302; + +-- Captain Kromcrush +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=14325; + +-- Arcane Torrent +-- School Arcane: Counterspell, Arcane Explosion +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 64) WHERE `entry`=14399; + +-- Arcane Feedback +-- School Arcane: Arcane Explosion +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 64) WHERE `entry`=14400; + +-- Molt Thorn +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=14448; + +-- Horde Battle Standard +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=14466; + +-- High Priest Venoxis +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=14507; +-- Mod Stat: Scorpid Sting, Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=14507; + +-- High Priest Thekal +-- Mod Stat: Scorpid Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=14509; + +-- High Priestess Mar'li +-- Mod Stat: Scorpid Sting, Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=14510; + +-- Shadowed Spirit +-- Mechanic Stun: Bash +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=14511; + +-- High Priestess Arlokk (HAS AURAS: Vanish) +-- Mod Stat: Scorpid Sting, Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=14515; + +-- Death Knight Darkreaver +-- Mechanic Stun: Bash +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=14516; + +-- High Priestess Jeklik +-- Mod Stat: Scorpid Sting, Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=14517; + +-- Ebonroc +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=14601; +-- Mod Stat: Scorpid Sting, Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=14601; + +-- Bone Construct +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=14605; + +-- Corrupted Infernal +-- Mechanic Fear: Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=14668; +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=14668; +-- Poison: Instant Poison VI +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=14668; + +-- Sever +-- Mechanic Stun: Hammer of Justice +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=14682; +-- Mechanic Turn: Turn Undead +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4194304) WHERE `entry`=14682; + +-- Balzaphon +-- Mechanic Stun: Cheap Shot, Hammer of Justice +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=14684; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=14684; + +-- Lady Falther'ess +-- Mechanic Stun: Hammer of Justice +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=14686; +-- Mechanic Turn: Turn Undead +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4194304) WHERE `entry`=14686; + +-- Revanchion +-- Mechanic Silence: Kick - Silenced +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 256) WHERE `entry`=14690; +-- Mechanic Stun: Cheap Shot, Charge Stun, Hammer of Justice +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=14690; +-- Mechanic Bleed: Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=14690; +-- Mechanic Turn: Turn Undead +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4194304) WHERE `entry`=14690; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=14690; + +-- Scorn +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=14693; +-- Mechanic Turn: Turn Undead +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4194304) WHERE `entry`=14693; + +-- Lord Blackwood +-- Mechanic Root: Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=14695; +-- Mechanic Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=14695; +-- Mechanic Stun: Bash, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=14695; +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=14695; +-- Mechanic Interrupt: Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=14695; + +-- High Overlord Saurfang +-- Mechanic Fear: Panic +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=14720; +-- Mechanic Stun: War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=14720; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=14720; +-- Mod Stat: Power Word: Fortitude, Divine Spirit +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=14720; + +-- Gurubashi Bat Rider +-- Mod Stat: Scorpid Sting, Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=14750; +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=14750; + +-- Dun Baldar South Marshal +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=14763; + +-- West Frostwolf Marshal +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=14769; + +-- Hakkar +-- Mod Stat: Scorpid Sting, Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=14834; + +-- Taerar +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=14890; + +-- Jeztor's War Rider +-- Mod Stat: Power Word: Fortitude +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=14944; + +-- Shade of Jin'do +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=14986; + +-- Ohgan +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=14988; + +-- Hazza'rah +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15083; + +-- Wushoolay +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=15085; + +-- Gahz'ranka +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15114; + +-- Rutherford Twing +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=15126; +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=15126; + +-- Defiler Elite +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=15128; + +-- League of Arathor Elite +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=15130; + +-- Azure Templar +-- Poison: Instant Poison VI +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=15211; + +-- Hoary Templar +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=15212; + +-- Vekniss Hive Crawler +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15240; +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=15240; + +-- Qiraji Mindslayer (HAS AURAS: Immune Effect: Taunt & AttackMe) +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=15246; + +-- Qiraji Lasher +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15249; + +-- Qiraji Champion +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=15252; + +-- The Prophet Skeram (HAS AURAS: ClearAll) +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15263; + +-- Anubisath Sentinel +-- Taunt: Taunt, Growl +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 2) WHERE `entry`=15264; +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15264; + +-- Emperor Vek'nilash +-- School Fire: Fire Blast, Fireball, Fire Blast, Scorch, Fire Nova, Fire Nova, Hellfire Effect, Goblin Sapper Charge, Fiery Weapon, Dragonbreath Chili, Searing Pain, Fireball, Dense Dynamite, Firebolt, Fireball, Immolate +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 4) WHERE `entry`=15275; +-- School Nature: Faerie Fire, Wrath, Earth Shock, Chain Lightning, Instant Poison VI, Gift of Arthas, Serpent Sting, Serpent Sting, Lightning Bolt, Lightning Bolt, Faerie Fire (Feral), Faerie Fire (Feral), Wrath, Thunderfury, Lightning Strike, Zulian Slice, Insect Swarm, Serpent Sting, Deadly Poison V, Lightning Shield, Lightning Shield +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=15275; +-- School Shadow: Shadow Word: Pain, Mind Blast, Shadow Bolt, Corruption, Curse of Recklessness, Curse of the Elements, Curse of Shadow, Shadow Bolt, Shadow Bolt, Shadowburn, Siphon Life, Touch of Weakness, Gutgore Ripper, Drain Life, Shadow Bolt, Corruption, Shadowguard, Shadowguard, Touch of Weakness, Drain Life +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 32) WHERE `entry`=15275; +-- School Arcane: Arcane Shot, Starfire, Arcane Explosion, Arcane Shot, Arcane Shot, Hunter's Mark, Distracting Shot, Expose Weakness +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 64) WHERE `entry`=15275; + +-- Emperor Vek'lor +-- School Physical: Auto Shot, Shield Bash, Whirlwind, Shoot Bow, Shred, Claw, Maul, Demoralizing Roar, Swipe, Backstab, Sinister Strike, Demoralizing Shout, Sunder Armor, Raptor Strike, Aimed Shot, Bloodthirst, Shield Slam, Heroic Strike, Multi-Shot, Backstab, Vampirism +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 1) WHERE `entry`=15276; + +-- Viscidus +-- Disease: Gift of Arthas, Creeping Mold, Devouring Plague +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 16) WHERE `entry`=15299; +-- Poison: Instant Poison VI, Serpent Sting, Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=15299; + +-- Shade of Taerar +-- School Nature: Instant Poison VI, Mind-numbing Poison III, Lightning Bolt, Thunderfury, Acid Blast +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 8) WHERE `entry`=15302; +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=15302; + +-- Qiraji Scarab +-- Mechanic Root: Frostbite, Entrapment, Improved Hamstring +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=15316; +-- Mechanic Snare: Earthbind, Concussive Shot, Piercing Howl, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=15316; + +-- Qiraji Scorpion +-- Mechanic Root: Entrapment, Improved Wing Clip +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=15317; +-- Mechanic Snare: Earthbind, Concussive Shot, Piercing Howl, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=15317; + +-- Hive'Zara Stinger +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15327; + +-- Flesh Hunter +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=15335; +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15335; + +-- Obsidian Destroyer +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15338; + +-- Ossirian the Unscarred +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15339; + +-- Moam +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=15340; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=15340; +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15340; + +-- General Rajaxx +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15341; + +-- Kurinnaxx +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=15348; +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15348; + +-- Anubisath Guardian (HAS AURAS: Explode) +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15355; + +-- Captain Qeez +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15391; + +-- Captain Tuubid +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15392; + +-- Kaldorei Infantry +-- Mechanic Stun: War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=15423; + +-- Lieutenant General Andorov +-- Mechanic Fear: Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=15471; +-- Mechanic Stun: War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=15471; +-- Mod Stat: Power Word: Fortitude, Blessing of Kings +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15471; + +-- Kaldorei Elite +-- Mechanic Fear: Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=15473; +-- Mechanic Stun: War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=15473; +-- Mod Stat: Blessing of Kings +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15473; + +-- Princess Huhuran +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15509; + +-- Fankriss the Unyielding +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15510; + +-- Lord Kri +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=15511; + +-- Battleguard Sartura (HAS AURAS: Whirlwind) +-- Mechanic Stun: Kidney Shot, Bash, Hammer of Justice, Impact, Revenge Stun, Concussion Blow, Blackout, Starfire Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=15516; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=15516; + +-- Mana Fiend +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=15527; +-- Mechanic Stun: Hammer of Justice, Impact, Revenge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=15527; + +-- Princess Yauj +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15543; + +-- Doctor Weavil +-- Taunt: Taunt +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 2) WHERE `entry`=15552; + +-- Maws +-- Taunt: Taunt +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 2) WHERE `entry`=15571; + +-- Minion of Weavil +-- Mechanic Fear: Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=15591; + +-- Twilight Corrupter +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=15625; +-- Taunt: Taunt, Challenging Shout, Growl +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 2) WHERE `entry`=15625; + +-- Eye Tentacle +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=15726; + +-- Colossus of Zora +-- Taunt: Taunt +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 2) WHERE `entry`=15740; + +-- Colossal Anubisath Warbringer +-- Mod Stat: Vindication, Vindication +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15743; +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=15743; + +-- Lesser Silithid Flayer +-- Mechanic Snare: Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=15749; + +-- Qiraji Major +-- Mod Stat: Scorpid Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15750; + +-- Anubisath Warbringer +-- Mod Stat: Scorpid Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15751; + +-- Silithid Flayer +-- Mechanic Fear: Howl of Terror +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=15752; +-- Mechanic Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=15752; + +-- Greater Silithid Flayer +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=15756; +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=15756; +-- Mod Stat: Scorpid Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15756; + +-- Supreme Anubisath Warbringer +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=15758; + +-- Supreme Silithid Flayer +-- Mechanic Fear: Fear +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=15759; +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=15759; + +-- Thaddius +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=15928; + +-- Stalagg +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=15929; + +-- Grobbulus +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=15931; + +-- Heigan the Unclean +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4) WHERE `entry`=15936; + +-- Maexxna +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=15952; +-- Mod Stat: Scorpid Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15952; + +-- Grand Widow Faerlina +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4) WHERE `entry`=15953; + +-- Vekniss Hatchling +-- Mechanic Snare: Crippling Poison, Earthbind, Piercing Howl, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=15962; + +-- Dread Creeper +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash, Hammer of Justice, Blackout, Intercept Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=15974; + +-- Carrion Spinner +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash, Hammer of Justice, Impact, Blackout, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=15975; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=15975; +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=15975; + +-- Venom Stalker +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=15976; + +-- Infectious Skitterer +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash, Hammer of Justice, Impact, Blackout, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=15977; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=15977; +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=15977; + +-- Crypt Reaver +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=15978; +-- Mod Cast Speed: Mind-numbing Poison III +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 8) WHERE `entry`=15978; + +-- Naxxramas Cultist +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash, Hammer of Justice, Concussion Blow, Blackout, Intercept Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=15980; + +-- Naxxramas Acolyte +-- Mechanic Silence: Counterspell - Silenced +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 256) WHERE `entry`=15981; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash, Hammer of Justice, Blackout, Intercept Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=15981; + +-- Sartura's Royal Guard +-- Mod Stat: Frightalon +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15984; + +-- Sapphiron +-- Mod Stat: Scorpid Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=15989; + +-- Bile Retcher +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=16018; + +-- Mad Scientist +-- Mechanic Disoriented: Scatter Shot, Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=16020; +-- Mechanic Root: Entrapment +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=16020; + +-- Living Monstrosity +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=16021; + +-- Surgical Assistant +-- Mechanic Disoriented: Scatter Shot, Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=16022; +-- Mechanic Root: Entrapment, Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=16022; +-- Mechanic Snare: Earthbind +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16022; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash, Hammer of Justice, Intercept Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=16022; +-- Mechanic Interrupt: Counterspell, Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=16022; + +-- Embalming Slime +-- Mechanic Root: Entrapment +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=16024; + +-- Frenzied Bat +-- Mechanic Disoriented: Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=16036; +-- Mechanic Root: Entrapment +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=16036; +-- Mechanic Snare: Concussive Shot, Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16036; +-- Mechanic Stun: Cheap Shot, Kidney Shot, Hammer of Justice, Intercept Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=16036; + +-- Plagued Bat +-- Mechanic Root: Entrapment +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=16037; +-- Mechanic Snare: Concussive Shot, Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16037; +-- Mechanic Stun: Cheap Shot, Kidney Shot, Hammer of Justice, Intercept Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=16037; + +-- Diseased Maggot +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=16056; +-- Mechanic Snare: Earthbind, Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16056; + +-- Rotting Maggot +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=16057; +-- Mechanic Snare: Earthbind, Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16057; + +-- Theldren +-- Taunt: Taunt +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 2) WHERE `entry`=16059; + +-- Instructor Razuvious +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4) WHERE `entry`=16061; + +-- Skeletal Steed +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16067; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash, Hammer of Justice, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=16067; + +-- Commander Eligor Dawnbringer +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=16115; + +-- Unrelenting Trainee +-- Mechanic Root: Entrapment +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=16124; +-- Mechanic Snare: Earthbind, Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16124; + +-- Unrelenting Deathknight +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=16125; +-- Mechanic Turn: Turn Undead +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4194304) WHERE `entry`=16125; + +-- Spectral Trainee +-- School Holy: Hammer of Justice, Exorcism, Shackle Undead, Stratholme Holy Water, Holy Nova +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 2) WHERE `entry`=16127; +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=16127; +-- Mechanic Fear: Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=16127; +-- Mechanic Snare: Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16127; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=16127; + +-- Bile Sludge +-- Taunt: Taunt, Challenging Shout, Growl +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 2) WHERE `entry`=16142; + +-- Deathknight (HAS AURAS: Veil of Darkness) +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=16146; + +-- Spectral Deathknight +-- School Holy: Shackle Undead +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 2) WHERE `entry`=16148; +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=16148; +-- Mechanic Snare: Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16148; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=16148; + +-- Spectral Horse +-- School Holy: Hammer of Justice, Shackle Undead +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 2) WHERE `entry`=16149; +-- Mechanic Snare: Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16149; +-- Mechanic Stun: Kidney Shot, Bash, Hammer of Justice, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=16149; + +-- Spectral Rider +-- School Holy: Hammer of Justice, Shackle Undead +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` | 2) WHERE `entry`=16150; + +-- Risen Deathknight +-- Mechanic Disoriented: Blind, Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=16154; +-- Mechanic Freeze: Freezing Trap Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4096) WHERE `entry`=16154; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=16154; +-- Mechanic Shackle: Shackle Undead +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 524288) WHERE `entry`=16154; + +-- Dark Touched Warrior +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=16156; +-- Mechanic Root: Entrapment +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=16156; +-- Mechanic Snare: Concussive Shot, Crippling Poison, Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16156; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=16156; +-- Mechanic Shackle: Shackle Undead +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 524288) WHERE `entry`=16156; + +-- Doom Touched Warrior +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=16157; +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16157; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=16157; + +-- Death Touched Warrior +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=16158; +-- Mechanic Disoriented: Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=16158; +-- Mechanic Root: Entrapment +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=16158; +-- Mechanic Snare: Concussive Shot, Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16158; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 8192) WHERE `entry`=16158; + +-- Deathknight Cavalier +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4) WHERE `entry`=16163; + +-- Shade of Naxxramas +-- Mechanic Root: Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=16164; +-- Mechanic Snare: Earthbind, Concussive Shot, Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16164; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash, Hammer of Justice, Intercept Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=16164; +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=16164; +-- Mechanic Interrupt: Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=16164; + +-- Necro Knight (HAS AURAS: Blink) +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=16165; + +-- Bony Construct +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=16167; + +-- Unholy Axe +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4) WHERE `entry`=16194; +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=16194; + +-- Unholy Staff +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=16215; + +-- Unholy Swords +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4) WHERE `entry`=16216; +-- Mechanic Bleed: Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=16216; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=16216; + +-- Argent Recruiter +-- Mechanic Fear: Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=16241; + +-- Argent Scout +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=16255; + +-- Argent Emissary +-- Mechanic Fear: Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=16285; + +-- Spore +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=16286; +-- Mechanic Stun: Intercept Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=16286; + +-- Mutated Grub +-- Mechanic Disoriented: Scatter Shot, Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=16297; +-- Mechanic Root: Entrapment, Improved Wing Clip +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=16297; +-- Mechanic Snare: Earthbind, Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16297; +-- Mechanic Stun: Charge Stun, Kidney Shot, Bash, Hammer of Justice, Intercept Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=16297; + +-- Argent Messenger +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=16359; + +-- Necropolis Acolyte +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=16368; + +-- Argent Sentry +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=16378; +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=16378; + +-- Atiesh +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=16387; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=16387; + +-- Deathchill Servant +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=16390; + +-- Soul Weaver +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=16429; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=16429; + +-- Guardian of Icecrown +-- Mechanic Shackle: Shackle Undead +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 524288) WHERE `entry`=16441; + +-- Plagued Ghoul +-- Mechanic Disoriented: Blind, Scatter Shot, Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=16447; +-- Mechanic Root: Entrapment, Improved Wing Clip +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=16447; +-- Mechanic Snare: Concussive Shot, Stygian Grasp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16447; +-- Mechanic Shackle: Shackle Undead +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 524288) WHERE `entry`=16447; + +-- Spirit of Naxxramas +-- Mechanic Bleed: Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=16449; + +-- Deathknight Vindicator +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4) WHERE `entry`=16451; + +-- Necro Knight Guardian (HAS AURAS: Blink) +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=16452; + +-- Naxxramas Follower +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=16505; + +-- Naxxramas Worshipper (HAS AURAS: Mind Exhaustion) +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=16506; +-- Mechanic Silence: Silence +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 256) WHERE `entry`=16506; +-- Mechanic Stun: Kidney Shot, Hammer of Justice, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=16506; +-- Mod Stat: Juju Power +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE `entry`=16506; + +-- Argent Outfitter +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=16787; + +-- Deathknight Understudy (HAS AURAS: Mind Exhaustion) +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=16803; +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4) WHERE `entry`=16803; + +-- Death Lord +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 4) WHERE `entry`=16861; + +-- Plagued Guardian (HAS AURAS: Blink, Blink, Blink, Blink) +-- Mechanic Disoriented: Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=16981; +-- Mechanic Root: Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=16981; +-- Mechanic Interrupt: Counterspell, Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=16981; +-- Taunt: Taunt, Challenging Roar, Growl +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 2) WHERE `entry`=16981; + +-- Plagued Champion +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=16983; + +-- Plagued Warrior +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=16984; +-- Mechanic Root: Entrapment, Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=16984; +-- Mechanic Snare: Earthbind +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=16984; +-- Mechanic Stun: Kidney Shot, Bash, Hammer of Justice, Intercept Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2048) WHERE `entry`=16984; +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16384) WHERE `entry`=16984; +-- Mechanic Shackle: Shackle Undead, Shackle Undead +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 524288) WHERE `entry`=16984; +-- Mechanic Interrupt: Feral Charge Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 33554432) WHERE `entry`=16984; + +-- Alliance Silithyst Sentinel +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1) WHERE `entry`=17765; +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 16) WHERE `entry`=17765; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Objects/Creature.cpp b/src/game/Objects/Creature.cpp index 30eeea18e69..dbdb8df58c2 100644 --- a/src/game/Objects/Creature.cpp +++ b/src/game/Objects/Creature.cpp @@ -360,27 +360,30 @@ bool Creature::InitEntry(uint32 entry, GameEventCreatureData const* eventData /* #else SetInt32Value(UNIT_MOD_CAST_SPEED, 0); #endif + // update speed for the new CreatureInfo base speed mods UpdateSpeed(MOVE_WALK, false); UpdateSpeed(MOVE_RUN, false); SetFly(CanFly()); - m_defaultMovementType = MovementGeneratorType(m_creatureData ? m_creatureData->movement_type : cinfo->movement_type); // Apply Poison & Disease immunities for Elemental and Mechanical type creatures - if (GetCreatureInfo()->type == CREATURE_TYPE_ELEMENTAL || - GetCreatureInfo()->type == CREATURE_TYPE_MECHANICAL) - { - ApplySpellImmune(0, IMMUNITY_DISPEL, DISPEL_DISEASE, true); - ApplySpellImmune(0, IMMUNITY_DISPEL, DISPEL_POISON, true); - } - - if (GetCreatureInfo()->type == CREATURE_TYPE_MECHANICAL) + switch (GetCreatureInfo()->type) { - ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL, true); - ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL_MAX_HEALTH, true); - ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_HEAL, true); - ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_LEECH, true); + case CREATURE_TYPE_MECHANICAL: + { + ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL, true); + ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL_MAX_HEALTH, true); + ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_HEAL, true); + ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_LEECH, true); + // no break + } + case CREATURE_TYPE_ELEMENTAL: + { + ApplySpellImmune(0, IMMUNITY_DISPEL, DISPEL_DISEASE, true); + ApplySpellImmune(0, IMMUNITY_DISPEL, DISPEL_POISON, true); + break; + } } if (HasImmunityFlag(CREATURE_IMMUNITY_TAUNT)) @@ -400,6 +403,21 @@ bool Creature::InitEntry(uint32 entry, GameEventCreatureData const* eventData /* ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_CASTING_SPEED_NOT_STACK, true); } + if (HasImmunityFlag(CREATURE_IMMUNITY_DISEASE)) + { + ApplySpellImmune(0, IMMUNITY_DISPEL, DISPEL_DISEASE, true); + } + + if (HasImmunityFlag(CREATURE_IMMUNITY_POISON)) + { + ApplySpellImmune(0, IMMUNITY_DISPEL, DISPEL_POISON, true); + } + + if (HasImmunityFlag(CREATURE_IMMUNITY_CURSE)) + { + ApplySpellImmune(0, IMMUNITY_DISPEL, DISPEL_CURSE, true); + } + return true; } diff --git a/src/game/Objects/CreatureDefines.h b/src/game/Objects/CreatureDefines.h index 1c89306c6ed..8377a54d188 100644 --- a/src/game/Objects/CreatureDefines.h +++ b/src/game/Objects/CreatureDefines.h @@ -148,6 +148,7 @@ enum CreatureImmunityFlags CREATURE_IMMUNITY_MOD_CAST_SPEED = 0x08, // SPELL_AURA_MOD_CASTING_SPEED_NOT_STACK CREATURE_IMMUNITY_DISEASE = 0x10, // DISPEL_DISEASE CREATURE_IMMUNITY_POISON = 0x20, // DISPEL_POISON + CREATURE_IMMUNITY_CURSE = 0x40, // DISPEL_CURSE }; // Number of spells in one template diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 799625f1c70..e2c1e95faa5 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -5752,6 +5752,14 @@ void Unit::ApplySpellImmune(uint32 spellId, uint32 op, uint32 type, bool apply) { if (apply) { + // Don't add same permanent immunity to list twice. + if (!spellId) + { + for (auto const& itr : m_spellImmune[op]) + if (itr.spellId == spellId && itr.type == type) + return; + } + SpellImmune Immune; Immune.spellId = spellId; Immune.type = type; From 38ecbe0e184b323174e908a7cd94f9d5d0cb49eb Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 22 Nov 2023 00:03:13 +0200 Subject: [PATCH 340/426] Restore npc flags of Deathstalker Faerleia on failure. --- sql/migrations/20231121220011_world.sql | 31 +++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 sql/migrations/20231121220011_world.sql diff --git a/sql/migrations/20231121220011_world.sql b/sql/migrations/20231121220011_world.sql new file mode 100644 index 00000000000..77fe9d49d0b --- /dev/null +++ b/sql/migrations/20231121220011_world.sql @@ -0,0 +1,31 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231121220011'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231121220011'); +-- Add your query below. + + +-- Make sure Deathstalker Faerleia's quest giver flag is restored on failure. +DELETE FROM `quest_start_scripts` WHERE `id`=452; +INSERT INTO `quest_start_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(452, 0, 0, 61, 452, 600, 0, 0, 0, 0, 0, 8, 0, 0, 1014, 45207, 0, 0, 0, 0, 0, 'Pyrewood Ambush: Deathstalker Faerleia - Start Map Event'), +(452, 0, 1, 22, 232, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Pyrewood Ambush: Deathstalker Faerleia - Set Faction Escortee'), +(452, 0, 2, 4, 147, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Pyrewood Ambush: Deathstalker Faerleia - Remove NPC flags'), +(452, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 542, 0, 0, 0, 0, 0, 0, 0, 0, 'Pyrewood Ambush: Deathstalker Faerleia - SayText'), +(452, 9, 4, 10, 2060, 240000, 0, 0, 0, 0, 0, 0, 0, 45205, -1, 1, -397.503, 1511, 18.952, 4.7473, 0, 'Pyrewood Ambush: Deathstalker Faerleia - Summon Councilman Smithers'); +DELETE FROM `generic_scripts` WHERE `id`=45207; +INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(45207, 0, 0, 70, 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Pyrewood Ambush: Fail Quest'), +(45207, 0, 0, 4, 147, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Pyrewood Ambush: Add Quest Giver Flag'); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 75474d2d33bccfabc2a2f05986132529f3b79cbb Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 22 Nov 2023 08:49:02 +0200 Subject: [PATCH 341/426] Remove slow and root immunity from Son of Flame. Seen not being immune in other sniffs and videos. Not sure why it was immune some of the time. Closes https://github.com/vmangos/core/issues/2305 --- sql/migrations/20231121204641_world.sql | 4 ---- 1 file changed, 4 deletions(-) diff --git a/sql/migrations/20231121204641_world.sql b/sql/migrations/20231121204641_world.sql index ff86ca8fdbe..1a4a62b9233 100644 --- a/sql/migrations/20231121204641_world.sql +++ b/sql/migrations/20231121204641_world.sql @@ -1310,10 +1310,6 @@ UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 4) WHERE ` -- Son of Flame -- Mechanic Disoriented: Blind UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 2) WHERE `entry`=12143; --- Mechanic Root: Frost Nova, Frost Nova, Frost Nova -UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 64) WHERE `entry`=12143; --- Mechanic Snare: Earthbind, Frostbolt, Piercing Howl -UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` | 1024) WHERE `entry`=12143; -- Poison: Blind, Instant Poison V, Instant Poison VI, Serpent Sting UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=12143; From a002a556c9dbc73f806f5fafa38f2e2d4a786a7b Mon Sep 17 00:00:00 2001 From: TuriansNotBad <54774532+TuriansNotBad@users.noreply.github.com> Date: Sat, 25 Nov 2023 17:26:02 +0500 Subject: [PATCH 342/426] Fix old version of a few mage talents that were changed in 1.11. (#2311) --- src/game/Objects/Unit.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index e2c1e95faa5..d29a8499f7d 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -1876,6 +1876,27 @@ void Unit::CalculateDamageAbsorbAndResist(SpellCaster* pCaster, SpellSchoolMask // Need remove it later if (mod->m_amount <= 0) existExpired = true; + +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_10_2 + // Patch 1.11.0 changed Mage talent Improved Frost Ward to Frost Warding. + // Improved Frost Ward - 50% of the damage absorbed by your Frost Ward is added to your mana. + SpellEntry const* absorbProto = (*i)->GetSpellProto(); + if (absorbProto->IsFitToFamily() && HasAura(11189)) + CastCustomSpell(this, 27679, currentAbsorb / 2, {}, {}, true); + else if (absorbProto->IsFitToFamily()) + { + Unit::AuraList const& mOverrideClassScript = GetAurasByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS); + for (const auto i : mOverrideClassScript) + // Patch 1.11.0 changed Mage talent Improved Fire Ward. + // Old effect - Causes your Fire Ward to reflect 20%/35% of the Fire damage absorbed back to the caster. + // The % values don't show up anywhere in dbcs other than the tooltip + if (i->GetModifier()->m_miscvalue == 948) + if (i->GetId() == 11094) // Improved Fire Ward 1 + CastCustomSpell(pCaster->ToUnit(), 12559, 0.2f * currentAbsorb, {}, {}, true); + else if (i->GetId() == 13043) // Improved Fire Ward 2 + CastCustomSpell(pCaster->ToUnit(), 12559, 0.35f * currentAbsorb, {}, {}, true); + } +#endif } // Remove all expired absorb auras @@ -5286,6 +5307,12 @@ bool Unit::IsSpellCrit(Unit const* pVictim, SpellEntry const* spellProto, SpellS { if (!(i->GetSpellProto()->SpellFamilyName == spellProto->SpellFamilyName)) continue; +#if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_10_2 + // 1.11.0 - Mage talent Shatter was changed to affect all spells, previously limited to Frost spells. + SpellEntry const* modSpellProto = i->GetSpellProto(); + if (modSpellProto->EffectItemType[0] && !spellProto->IsFitToFamily(SpellFamily(modSpellProto->SpellFamilyName), modSpellProto->EffectItemType[0])) + continue; +#endif switch (i->GetModifier()->m_miscvalue) { // Shatter From dd9ebcffb0a76de16229c652eff19cebecce202d Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 25 Nov 2023 15:05:16 +0200 Subject: [PATCH 343/426] Move combo target check to CheckPower. Closes https://github.com/vmangos/core/pull/2304 --- src/game/Spells/Spell.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 43330dd1467..19640d01250 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -3767,9 +3767,6 @@ SpellCastResult Spell::prepare(Aura* triggeredByAura, uint32 chance) // add gcd server side (client side is handled by client itself) if (!m_caster->IsPlayer() || !static_cast(m_caster)->HasCheatOption(PLAYER_CHEAT_NO_COOLDOWN)) m_caster->AddGCD(*m_spellInfo); - // Cast on self -> execute NOW - //if (!m_timer && m_caster->IsPlayer() && !m_targets.m_targetMask && !IsAreaOfEffectSpell(m_spellInfo)) - // cast(true); } // execute triggered without cast time explicitly in call point else if ((m_timer == 0) && @@ -5810,11 +5807,6 @@ SpellCastResult Spell::CheckCast(bool strict) return SPELL_FAILED_MOVING; } - if (!m_IsTriggeredSpell && m_spellInfo->NeedsComboPoints() && Spells::IsExplicitlySelectedUnitTarget(m_spellInfo->EffectImplicitTargetA[0]) && - (!m_targets.getUnitTarget() || m_targets.getUnitTarget()->GetObjectGuid() != ((Player*)m_caster)->GetComboTargetGuid())) - // warrior not have real combo-points at client side but use this way for mark allow Overpower use - return m_casterUnit->GetClass() == CLASS_WARRIOR ? SPELL_FAILED_BAD_TARGETS : SPELL_FAILED_NO_COMBO_POINTS; - switch (m_spellInfo->Id) { // Mongoose Bite @@ -7451,6 +7443,11 @@ SpellCastResult Spell::CheckPower() const if (m_CastItem || m_IsTriggeredSpell || !m_casterUnit) return SPELL_CAST_OK; + if (m_casterUnit->IsPlayer() && m_spellInfo->NeedsComboPoints() && Spells::IsExplicitlySelectedUnitTarget(m_spellInfo->EffectImplicitTargetA[0]) && + (!m_targets.getUnitTarget() || m_targets.getUnitTarget()->GetObjectGuid() != ((Player*)m_casterUnit)->GetComboTargetGuid())) + // warrior not have real combo-points at client side but use this way for mark allow Overpower use + return m_casterUnit->GetClass() == CLASS_WARRIOR ? SPELL_FAILED_BAD_TARGETS : SPELL_FAILED_NO_COMBO_POINTS; + // health as power used - need check health amount if (m_spellInfo->powerType == POWER_HEALTH) { From 50e12c33a96a9bd072f17357ec6e2cbb6ae239dc Mon Sep 17 00:00:00 2001 From: TuriansNotBad <54774532+TuriansNotBad@users.noreply.github.com> Date: Sat, 25 Nov 2023 18:11:08 +0500 Subject: [PATCH 344/426] Fix affect masks for remaining Rogue talents pre 1.12 (#2245) --- sql/migrations/20231022153238_world.sql | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 sql/migrations/20231022153238_world.sql diff --git a/sql/migrations/20231022153238_world.sql b/sql/migrations/20231022153238_world.sql new file mode 100644 index 00000000000..709af2dcba2 --- /dev/null +++ b/sql/migrations/20231022153238_world.sql @@ -0,0 +1,25 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231022153238'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231022153238'); +-- Add your query below. + +-- Improved Evasion/Endurance +UPDATE `spell_affect` SET `build_min`='5875' WHERE `entry` IN (13742, 13872) AND `effectId`=0; + +-- Elusiveness +UPDATE `spell_affect` SET `build_min`='5875' WHERE `entry` IN (13981, 14066, 14067) AND `effectId`=0; + +-- Improved Cheap Shot/Dirty Deeds +UPDATE `spell_affect` SET `build_min`='5875' WHERE `entry` IN (14082, 14083) AND `effectId`=0; + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 5b256d78aa80d9cc9f4440b2aa4946dc67a86f1c Mon Sep 17 00:00:00 2001 From: Michael Serajnik Date: Sat, 25 Nov 2023 14:12:23 +0100 Subject: [PATCH 345/426] Make `-march=native` configurable. (#2292) This allows for portable builds by not targeting the local CPU specifically when the introduced `BUILD_FOR_HOST_CPU` option is turned off. --- CMakeLists.txt | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 610cb414d72..d753843747b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,6 +32,7 @@ set(CMAKE_MODULE_PATH set(SUPPORTED_CLIENT_BUILD "CLIENT_BUILD_1_12_1" CACHE STRING "Client version the core will support") option(USE_STD_MALLOC "Use standard malloc instead of TBB" OFF) +option(BUILD_FOR_HOST_CPU "Build specifically for the host CPU via `-march=native` (might not run on different machines)" ON) option(TBB_DEBUG "Use TBB debug librairies" OFF) option(USE_ANTICHEAT "Use anticheat" OFF) option(USE_SCRIPTS "Compile scripts" ON) @@ -78,7 +79,7 @@ if(WIN32) message(FATAL_ERROR "Only Visual Studio 2015 or newer is supported") endif() endif() - + # Added by Giperion, in WIN32 output all compiled files in one directory set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin ) set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib ) @@ -196,13 +197,13 @@ if(NOT USE_STD_MALLOC) ${TBB_LIBRARIES} ) endif() - + if (WIN32) list (GET TBB_LIBRARIES 1 TBB_SINGLE_FILEDIRECTORY) get_filename_component(TBB_LIB_DIRECTORY "${TBB_SINGLE_FILEDIRECTORY}" DIRECTORY) link_directories(${TBB_LIB_DIRECTORY}) endif() - + endif() # Win32 delifered packages @@ -254,7 +255,7 @@ else() OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) - + if(NOT rev_hash) # No valid ways available to find/set the revision/hash, so let's force some defaults message(STATUS " @@ -263,7 +264,7 @@ else() set(rev_date "1970-01-01 00:00:00 +0000") set(rev_hash "unknown") endif() - + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/revision.h.cmake ${CMAKE_CURRENT_SOURCE_DIR}/src/shared/revision.h) endif() @@ -316,6 +317,12 @@ endif() message(STATUS "Memory allocation : ${ALLOC_LIB_INFO_STRING} ${TBB_LIBRARIES}") message(STATUS "Detected compiler : ${CMAKE_CXX_COMPILER_ID}") +if(BUILD_FOR_HOST_CPU) + message(STATUS "Build for host CPU : Yes (default)") +else() + message(STATUS "Build for host CPU : No") +endif() + message(STATUS "Build type : ${CMAKE_BUILD_TYPE}") if(USE_ANTICHEAT) @@ -338,7 +345,7 @@ if(UNIX) else() message(STATUS "Debug symbols : Disabled") endif() - + if(GCC_SANITIZE) set(BUILD_ADDITIONAL_FLAGS "${BUILD_ADDITIONAL_FLAGS} -fno-omit-frame-pointer -fno-optimize-sibling-calls") set(BUILD_ADDITIONAL_FLAGS "${BUILD_ADDITIONAL_FLAGS} -fsanitize=address") @@ -353,7 +360,10 @@ if(UNIX) #set(BUILD_ADDITIONAL_FLAGS "${BUILD_ADDITIONAL_FLAGS} -fsanitize=unsigned-integer-overflow") endif() - set(BUILD_ADDITIONAL_FLAGS "${BUILD_ADDITIONAL_FLAGS} --no-warnings -fexceptions -fnon-call-exceptions -march=native -pipe ") + set(BUILD_ADDITIONAL_FLAGS "${BUILD_ADDITIONAL_FLAGS} --no-warnings -fexceptions -fnon-call-exceptions -pipe") + if(BUILD_FOR_HOST_CPU) + set(BUILD_ADDITIONAL_FLAGS "${BUILD_ADDITIONAL_FLAGS} -march=native") + endif() set(CMAKE_CXX_STANDARD 14) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") if(PROFILE_GENERATE) @@ -392,7 +402,7 @@ if(MSVC) #if(PLATFORM MATCHES X86) # set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE") #endif() - + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") endif() From 47f989f8f3dda7b624bdd1500c4bb021cd8c3189 Mon Sep 17 00:00:00 2001 From: Michael Serajnik Date: Sat, 25 Nov 2023 14:13:36 +0100 Subject: [PATCH 346/426] Make RP decay adjustable. (#2273) --- src/game/HonorMgr.cpp | 4 +++- src/game/World.cpp | 1 + src/game/World.h | 3 ++- src/mangosd/mangosd.conf.dist.in | 6 ++++++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/game/HonorMgr.cpp b/src/game/HonorMgr.cpp index f1910d36b17..50c404afbdc 100644 --- a/src/game/HonorMgr.cpp +++ b/src/game/HonorMgr.cpp @@ -549,7 +549,9 @@ float HonorMaintenancer::CalculateRpEarning(float cp, HonorScores sc) float HonorMaintenancer::CalculateRpDecay(float rpEarning, float rp) { - float decay = floor((0.2f * rp) + 0.5f); + float decayMultiplier = sWorld.getConfig(CONFIG_FLOAT_RP_DECAY); + + float decay = floor((decayMultiplier * rp) + 0.5f); float delta = rpEarning - decay; if (delta < 0) diff --git a/src/game/World.cpp b/src/game/World.cpp index c272a448f3a..4728eafd1e6 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -633,6 +633,7 @@ void World::LoadConfigSettings(bool reload) setConfig(CONFIG_UINT32_MIN_HONOR_KILLS, MIN_HONOR_KILLS_PRE_1_10); } + setConfigMinMax(CONFIG_FLOAT_RP_DECAY, "RpDecay", 0.2f, 0.0f, 1.0f); setConfigMinMax(CONFIG_UINT32_MAINTENANCE_DAY, "MaintenanceDay", 4, 0, 6); setConfig(CONFIG_BOOL_AUTO_HONOR_RESTART, "AutoHonorRestart", true); setConfig(CONFIG_BOOL_ALL_TAXI_PATHS, "AllFlightPaths", false); diff --git a/src/game/World.h b/src/game/World.h index 95e96a2d77d..9d1fe7f4d43 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -449,6 +449,7 @@ enum eConfigFloatValues CONFIG_FLOAT_RATE_XP_PERSONAL_MAX, CONFIG_FLOAT_AC_MOVEMENT_CHEAT_TELEPORT_DISTANCE, CONFIG_FLOAT_AC_MOVEMENT_CHEAT_WALL_CLIMB_ANGLE, + CONFIG_FLOAT_RP_DECAY, CONFIG_FLOAT_VALUE_COUNT }; @@ -1047,7 +1048,7 @@ class World std::unique_ptr m_broadcaster; std::unique_ptr m_updateThreads; - + static uint32 m_currentMSTime; static TimePoint m_currentTime; static uint32 m_currentDiff; diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index 8e251ae3592..b7cf3236c7f 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -845,6 +845,11 @@ PerformanceLog.SlowPacketBroadcast = 0 # Min kills that players must obtain to enter in weekly honor calculation # Default: 0 (auto select based on patch) # +# RpDecay +# Determines the percentage of rank points (RP) decay per week +# If set to 0 there will be no decay +# Default: 0.2 (20%) +# # MaintenanceDay # The day of the week on which server maintenance is performed ( currently used for Honor distribution ) # range (0..6): 0 is the first day of the week (normally sunday), 6 is the latest @@ -1076,6 +1081,7 @@ MaxPlayerLevel = 60 StartPlayerLevel = 1 StartPlayerMoney = 0 MinHonorKills = 0 +RpDecay = 0.2 MaintenanceDay = 3 InstantLogout = 1 ForceLogoutDelay = 0 From 71088084917aec4a63d730f96d6e0de7be684487 Mon Sep 17 00:00:00 2001 From: WoWBiggles <149791433+WoWBiggles@users.noreply.github.com> Date: Sat, 25 Nov 2023 13:14:50 +0000 Subject: [PATCH 347/426] Add new formula for crafting skill gain chance (#2291) --- src/game/Objects/Player.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index 0de3a8be9e2..dc5648d2faf 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -5740,6 +5740,13 @@ inline int SkillGainChance(uint32 SkillValue, uint32 GrayLevel, uint32 GreenLeve return sWorld.getConfig(CONFIG_UINT32_SKILL_CHANCE_ORANGE) * 10; } +inline int CraftingSkillGainChance(uint32 SkillValue, uint32 GrayLevel, uint32 YellowLevel) +{ + // Linear decrease in chance as you go from the YellowLevel -> GrayLevel. + // To avoid casting to floats and back to uint32 we multiply the numerator by 1000, to get into a range of 0-1000. + return G3D::iClamp(((GrayLevel - SkillValue) * 1000) / (GrayLevel - YellowLevel), 0, 1000); +} + bool Player::UpdateCraftSkill(uint32 spellid) { sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "UpdateCraftSkill spellid %d", spellid); @@ -5754,9 +5761,8 @@ bool Player::UpdateCraftSkill(uint32 spellid) uint32 craft_skill_gain = sWorld.getConfig(CONFIG_UINT32_SKILL_GAIN_CRAFTING); - return UpdateSkillPro(_spell_idx->second->skillId, SkillGainChance(SkillValue, + return UpdateSkillPro(_spell_idx->second->skillId, CraftingSkillGainChance(SkillValue, _spell_idx->second->max_value, - (_spell_idx->second->max_value + _spell_idx->second->min_value) / 2, _spell_idx->second->min_value), craft_skill_gain); } From 9b84097fab39432cb824c36ea8f0c13f33a3182b Mon Sep 17 00:00:00 2001 From: Wall <90075138+Wall-core@users.noreply.github.com> Date: Sat, 25 Nov 2023 08:16:56 -0500 Subject: [PATCH 348/426] Fix whitespace in VMAP extractors (#2295) --- .../vmap_extractor/vmapextract/gameobject_extract.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/contrib/vmap_extractor/vmapextract/gameobject_extract.cpp b/contrib/vmap_extractor/vmapextract/gameobject_extract.cpp index 41bb3824998..908bdaf61da 100644 --- a/contrib/vmap_extractor/vmapextract/gameobject_extract.cpp +++ b/contrib/vmap_extractor/vmapextract/gameobject_extract.cpp @@ -22,8 +22,14 @@ bool ExtractSingleModel(std::string& origPath, std::string& fixedName, StringSet } // >= 3.1.0 ADT MMDX section store filename.m2 filenames for corresponded .m2 file // nothing do - - fixedName = GetPlainName(origPath.c_str()); + + // Fix a few models with spaces instead of underscores in their filenames (razorfen leanto03) + std::string s = GetPlainName(origPath.c_str()); + std::transform(s.begin(), s.end(), s.begin(), [](char ch) { + return ch == ' ' ? '_' : ch; + }); + + fixedName = s; std::string output(szWorkDirWmo); // Stores output filename (possible changed) output += "/"; From afe868a62bd38a4a91a20eeec551306944ce21bf Mon Sep 17 00:00:00 2001 From: balakethelock <111737968+balakethelock@users.noreply.github.com> Date: Sat, 25 Nov 2023 14:19:10 +0100 Subject: [PATCH 349/426] Correct Cleave spell used by Vaelastrasz (#2310) --- sql/migrations/20231124111109_world.sql | 20 +++++++++++++++++++ .../blackwing_lair/boss_vaelastrasz.cpp | 9 ++------- 2 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 sql/migrations/20231124111109_world.sql diff --git a/sql/migrations/20231124111109_world.sql b/sql/migrations/20231124111109_world.sql new file mode 100644 index 00000000000..38680e8b07c --- /dev/null +++ b/sql/migrations/20231124111109_world.sql @@ -0,0 +1,20 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231124111109'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231124111109'); +-- Add your query below. + +DELETE FROM `spell_effect_mod` WHERE `Id`=19983; -- "Cleave 19983 : bonus degats fix a 300" +DELETE FROM `spell_effect_mod` WHERE `Id`=22540; -- "Cleave Vael (chaintarget 50 radius fix a 10yd)" NOT vael's spell +DELETE FROM `spell_mod` WHERE `Id`=22540; -- "Cleave Vael (modification dmgclass : magic)" NOT vael's spell, makes it unable to dodge/parry/block + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/boss_vaelastrasz.cpp b/src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/boss_vaelastrasz.cpp index 2faa12735dc..3cb8b645493 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/boss_vaelastrasz.cpp +++ b/src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/boss_vaelastrasz.cpp @@ -26,7 +26,6 @@ EndScriptData */ enum { - // Last found data : HP : 3,331,000 (+20% = 3997200). Damage: 5,930 - 6,807. Armor: 4,691. NPC_VAELASTRAZ = 13020, NPC_LORD_NEFARIAN_VAEL = 10162, @@ -67,12 +66,8 @@ enum SPELL_BURNING_ADRENALINE4 = 24701, // -75% threat : easy mode ??? // See the heal of Kazzak - // TO FIX : The chain effect - // DB : spell_effect_mod.effectChainTarget = 25; - // Cleave attack that hits for 2k. This is a chain cleave, so if positioning is poor it can chain to the entire raid, even to behind him. It is critical that nobody be within approximately 10 yards of the main tank for this reason. Offtanks should be generating threat far enough from the MT to avoid chaining the cleave, but close enough to slide into place when BA hits the MT. - SPELL_CLEAVE = 22540, // 22540 Chain Cleave hardcoded via the BD (Ustaag) // 19983 // 20684 ? // Chain cleave is most likely named something different and contains a dummy effect - // change spell.cpp "//FIXME: This very like horrible hack and wrong for most spells" - // Find out which creatures use both spells in the DB? + // This is a chain cleave, so if positioning is poor it can chain to the entire raid, even to behind him. It is critical that nobody be within approximately 10 yards of the main tank for this reason. Offtanks should be generating threat far enough from the MT to avoid chaining the cleave, but close enough to slide into place when BA hits the MT. + SPELL_CLEAVE = 19983, SPELL_BANISHEMENT_OF_SCALE = 16404, SPELL_NEFARIUS_CORRUPTION = 23642, From ff6db02ad7dd2156ddd0ce3bff05efa2ca50b0ec Mon Sep 17 00:00:00 2001 From: balakethelock <111737968+balakethelock@users.noreply.github.com> Date: Sat, 25 Nov 2023 14:20:16 +0100 Subject: [PATCH 350/426] Fix threat values of warrior abilities (#2119) --- sql/migrations/20230726131045_world.sql | 71 +++++++++++++++++++++++++ src/game/Spells/SpellAuras.cpp | 12 ----- 2 files changed, 71 insertions(+), 12 deletions(-) create mode 100644 sql/migrations/20230726131045_world.sql diff --git a/sql/migrations/20230726131045_world.sql b/sql/migrations/20230726131045_world.sql new file mode 100644 index 00000000000..368da60d8fb --- /dev/null +++ b/sql/migrations/20230726131045_world.sql @@ -0,0 +1,71 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20230726131045'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20230726131045'); +-- Add your query below. + +UPDATE `spell_threat` SET `Threat` = 126 WHERE `entry` = 21992; -- thunderfury single target +UPDATE `spell_threat` SET `Threat` = 126 WHERE `entry` = 27648; -- thunderfury chain + +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (676, 99, 1, 0, 0, 5875); -- Disarm +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (7384, 0, 0.75, 0, 0, 5875); -- Overpower + +UPDATE `spell_threat` SET `Threat` = 178 WHERE `entry` = 23922; -- Shield slam R1 +UPDATE `spell_threat` SET `Threat` = 203 WHERE `entry` = 23923; -- Shield slam R2 +UPDATE `spell_threat` SET `Threat` = 229 WHERE `entry` = 23924; -- Shield slam R3 +UPDATE `spell_threat` SET `Threat` = 254 WHERE `entry` = 23925; -- Shield slam R4 + +DELETE FROM `spell_threat` WHERE `entry` = 72; -- Shield Bash +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (72, 36, 1.5, 0, 0, 5875); -- Shield Bash R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (1671, 96, 1.5, 0, 0, 5875); -- Shield Bash R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (1672, 156, 1.5, 0, 0, 5875); -- Shield Bash R3 + +UPDATE `spell_threat` SET `Threat` = 63, `multiplier` = 2.25 WHERE `entry` = 6572; -- Revenge R1 +UPDATE `spell_threat` SET `Threat` = 108, `multiplier` = 2.25 WHERE `entry` = 6574; -- Revenge R2 +UPDATE `spell_threat` SET `Threat` = 153, `multiplier` = 2.25 WHERE `entry` = 7379; -- Revenge R3 +UPDATE `spell_threat` SET `Threat` = 198, `multiplier` = 2.25 WHERE `entry` = 11600; -- Revenge R4 +UPDATE `spell_threat` SET `Threat` = 243, `multiplier` = 2.25 WHERE `entry` = 11601; -- Revenge R5 +UPDATE `spell_threat` SET `Threat` = 270, `multiplier` = 2.25 WHERE `entry` = 25288; -- Revenge R6 + +UPDATE `spell_threat` SET `Threat` = 45 WHERE `entry` = 7386; -- Sunder Armor R1 +UPDATE `spell_threat` SET `Threat` = 99 WHERE `entry` = 7405; -- Sunder Armor R2 +UPDATE `spell_threat` SET `Threat` = 153 WHERE `entry` = 8380; -- Sunder Armor R3 +UPDATE `spell_threat` SET `Threat` = 207 WHERE `entry` = 11596; -- Sunder Armor R4 +UPDATE `spell_threat` SET `Threat` = 261 WHERE `entry` = 11597; -- Sunder Armor R5 + +UPDATE `spell_threat` SET `Threat` = 1 WHERE `entry` = 6673; -- Battle Shout R1 +UPDATE `spell_threat` SET `Threat` = 12 WHERE `entry` = 5242; -- Battle Shout R2 +UPDATE `spell_threat` SET `Threat` = 22 WHERE `entry` = 6192; -- Battle Shout R3 +UPDATE `spell_threat` SET `Threat` = 32 WHERE `entry` = 11549; -- Battle Shout R4 +UPDATE `spell_threat` SET `Threat` = 42 WHERE `entry` = 11550; -- Battle Shout R5 +UPDATE `spell_threat` SET `Threat` = 52 WHERE `entry` = 11551; -- Battle Shout R6 +UPDATE `spell_threat` SET `Threat` = 60 WHERE `entry` = 25289; -- Battle Shout R7 + +UPDATE `spell_threat` SET `Threat` = 11 WHERE `entry` = 1160; -- Demoralizing Shout R1 +UPDATE `spell_threat` SET `Threat` = 19 WHERE `entry` = 6190; -- Demoralizing Shout R2 +UPDATE `spell_threat` SET `Threat` = 27 WHERE `entry` = 11554; -- Demoralizing Shout R3 +UPDATE `spell_threat` SET `Threat` = 35 WHERE `entry` = 11555; -- Demoralizing Shout R4 +UPDATE `spell_threat` SET `Threat` = 43 WHERE `entry` = 11556; -- Demoralizing Shout R5 + +UPDATE `spell_threat` SET `Threat` = 20, `multiplier` = 1.25 WHERE `entry` = 1715; -- Hamstring R1 +UPDATE `spell_threat` SET `Threat` = 80, `multiplier` = 1.25 WHERE `entry` = 7372; -- Hamstring R2 +UPDATE `spell_threat` SET `Threat` = 135, `multiplier` = 1.25 WHERE `entry` = 7373; -- Hamstring R3 + +DELETE FROM `spell_threat` WHERE `entry` = 6343; -- Thunderclap R1 +DELETE FROM `spell_threat` WHERE `entry` = 8198; -- Thunderclap R2 +DELETE FROM `spell_threat` WHERE `entry` = 8204; -- Thunderclap R3 +DELETE FROM `spell_threat` WHERE `entry` = 8205; -- Thunderclap R4 +DELETE FROM `spell_threat` WHERE `entry` = 11580; -- Thunderclap R5 +DELETE FROM `spell_threat` WHERE `entry` = 11581; -- Thunderclap R6 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (6343, 0, 2.5, 0, 0, 5875); -- Thunder clap generic all ranks + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index 24e39b4b902..e576749807b 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -3698,18 +3698,6 @@ void Aura::HandleAuraModDisarm(bool apply, bool Real) else target->ApplyModFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED, apply); - // Warrior 'Disarm' skill generates 104 base threat - // http://wowwiki.wikia.com/wiki/Disarm?direction=prev&oldid=200198 (2006) implies it - // generates a large amount - // http://wowwiki.wikia.com/wiki/Threat has threat listed at 104, which is in line - // with the values of other warrior abilities - // We can suppose that the same is true for all spells which apply disarm - if (apply) - { - float threat = 104.0f * sSpellMgr.GetSpellThreatMultiplier(GetHolder()->GetSpellProto()); - target->AddThreat(GetCaster(), threat, false, SPELL_SCHOOL_MASK_NONE, GetHolder()->GetSpellProto()); - } - // Don't update damage if in feral if (!target->IsNoWeaponShapeShift()) target->UpdateDamagePhysical(BASE_ATTACK); From 294383ba60f7fa5ceab1403970c3a2fc81a82085 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 26 Nov 2023 16:30:06 +0200 Subject: [PATCH 351/426] Add commands to set war effort stage. --- src/game/Chat/Chat.cpp | 13 +++- src/game/Chat/Chat.h | 7 +- src/game/Commands/ServerCommands.cpp | 86 ++++++++++++++++++++- src/game/HardcodedEvents.h | 34 ++++++++ src/scripts/world/world_event_wareffort.cpp | 4 +- 5 files changed, 137 insertions(+), 7 deletions(-) diff --git a/src/game/Chat/Chat.cpp b/src/game/Chat/Chat.cpp index 49b4d1f7830..b1c8dd3357c 100644 --- a/src/game/Chat/Chat.cpp +++ b/src/game/Chat/Chat.cpp @@ -1155,6 +1155,16 @@ ChatCommand * ChatHandler::getCommandTable() { nullptr, 0, false, nullptr, "", nullptr } }; + static ChatCommand warEffortCommandTable[] = + { + { "info", SEC_DEVELOPER, true, &ChatHandler::HandleWarEffortInfoCommand, "", nullptr }, + { "setgongtime", SEC_DEVELOPER, true, &ChatHandler::HandleWarEffortSetGongTimeCommand, "", nullptr }, + { "setstage", SEC_DEVELOPER, true, &ChatHandler::HandleWarEffortSetStageCommand, "", nullptr }, + { "getresource", SEC_DEVELOPER, true, &ChatHandler::HandleWarEffortGetResource, "", nullptr }, + { "setresource", SEC_DEVELOPER, true, &ChatHandler::HandleWarEffortSetResource, "", nullptr }, + { nullptr, 0, false, nullptr, "", nullptr } + }; + static ChatCommand commandTable[] = { { "account", SEC_PLAYER, true, nullptr, "", accountCommandTable }, @@ -1230,8 +1240,6 @@ ChatCommand * ChatHandler::getCommandTable() { "angle", SEC_MODERATOR, false, &ChatHandler::HandleGetAngleCommand, "", nullptr }, { "recall", SEC_MODERATOR, false, &ChatHandler::HandleRecallCommand, "", nullptr }, { "save", SEC_PLAYER, false, &ChatHandler::HandleSaveCommand, "", nullptr }, - { "wareffortget", SEC_ADMINISTRATOR, true, &ChatHandler::HandleGetWarEffortResource, "", nullptr }, - { "wareffortset", SEC_ADMINISTRATOR, true, &ChatHandler::HandleSetWarEffortResource, "", nullptr }, { "saveall", SEC_ADMINISTRATOR, true, &ChatHandler::HandleSaveAllCommand, "", nullptr }, { "kick", SEC_TICKETMASTER, true, &ChatHandler::HandleKickPlayerCommand, "", nullptr }, { "ban", SEC_TICKETMASTER, true, nullptr, "", banCommandTable }, @@ -1286,6 +1294,7 @@ ChatCommand * ChatHandler::getCommandTable() { "spamer", SEC_MODERATOR, true, nullptr, "", spamerCommandTable }, { "antispam", SEC_TICKETMASTER, true, nullptr, "", AntiSpamCommandTable }, { "gold", SEC_BASIC_ADMIN, true, nullptr, "", goldCommandTable }, + { "wareffort", SEC_DEVELOPER, true, nullptr, "", warEffortCommandTable }, { nullptr, 0, false, nullptr, "", nullptr } }; diff --git a/src/game/Chat/Chat.h b/src/game/Chat/Chat.h index 03dd59c37de..35cb6f433f7 100644 --- a/src/game/Chat/Chat.h +++ b/src/game/Chat/Chat.h @@ -316,8 +316,11 @@ class ChatHandler bool HandleVariableCommand(char* args); bool HandleReloadVariablesCommand(char* args); // AQ variables - bool HandleGetWarEffortResource(char* args); - bool HandleSetWarEffortResource(char* args); + bool HandleWarEffortGetResource(char* args); + bool HandleWarEffortSetResource(char* args); + bool HandleWarEffortInfoCommand(char* args); + bool HandleWarEffortSetGongTimeCommand(char* args); + bool HandleWarEffortSetStageCommand(char* args); // Deplacement bool HandleGoForwardCommand(char* args); bool HandleGoUpCommand(char* args); diff --git a/src/game/Commands/ServerCommands.cpp b/src/game/Commands/ServerCommands.cpp index 92a1413e821..f69e2b474b1 100644 --- a/src/game/Commands/ServerCommands.cpp +++ b/src/game/Commands/ServerCommands.cpp @@ -40,6 +40,7 @@ #include "AutoBroadCastMgr.h" #include "SpellModMgr.h" #include "CreatureGroups.h" +#include "HardcodedEvents.h" bool ChatHandler::HandleAnnounceCommand(char* args) { @@ -1925,4 +1926,87 @@ bool ChatHandler::HandleReloadAnticheatCommand(char*) sAnticheatMgr->LoadAnticheatData(); SendSysMessage(">> Anticheat data reloaded"); return true; -} \ No newline at end of file +} +bool ChatHandler::HandleWarEffortInfoCommand(char* args) +{ + sGameEventMgr.Update(); + + uint32 stage = sObjectMgr.GetSavedVariable(VAR_WE_STAGE, WAR_EFFORT_STAGE_COLLECTION); + PSendSysMessage("Stage: %s (%u)", WarEffortStageToString(stage), stage); + + uint32 lastStageTransitionTime = sObjectMgr.GetSavedVariable(VAR_WE_STAGE_TRANSITION_TIME, 0); + PSendSysMessage("Last Transition Time: %s (%u)", TimeToTimestampStr(lastStageTransitionTime).c_str(), lastStageTransitionTime); + + uint32 gongRingTime = sObjectMgr.GetSavedVariable(VAR_WE_GONG_TIME, 0); + PSendSysMessage("Gong Ring Time: %s (%u)", TimeToTimestampStr(gongRingTime).c_str(), gongRingTime); + + switch (stage) + { + case WAR_EFFORT_STAGE_COLLECTION: + { + uint32 lastAutoCompleteTime = sObjectMgr.GetSavedVariable(VAR_WE_AUTOCOMPLETE_TIME, 0); + PSendSysMessage("Last Auto Complete Time: %s (%u)", TimeToTimestampStr(lastAutoCompleteTime).c_str(), lastAutoCompleteTime); + + uint32 nextAutoCompleteIn = sWorld.getConfig(CONFIG_UINT32_WAR_EFFORT_AUTOCOMPLETE_PERIOD) - (time(nullptr) - lastAutoCompleteTime); + PSendSysMessage("Next Auto Complete In: %s", secsToTimeString(nextAutoCompleteIn).c_str()); + break; + } + case WAR_EFFORT_STAGE_MOVE_1: + case WAR_EFFORT_STAGE_MOVE_2: + case WAR_EFFORT_STAGE_MOVE_3: + case WAR_EFFORT_STAGE_MOVE_4: + case WAR_EFFORT_STAGE_MOVE_5: + { + uint32 nextAutoCompleteIn = WAR_EFFORT_MOVE_TRANSITION_TIME - (time(nullptr) - lastStageTransitionTime); + PSendSysMessage("Next Transition In: %s", secsToTimeString(nextAutoCompleteIn).c_str()); + break; + } + case WAR_EFFORT_STAGE_BATTLE: + { + uint32 nextTransitionIn = WAR_EFFORT_CH_ATTACK_TIME - (time(nullptr) - lastStageTransitionTime); + PSendSysMessage("Next Transition In: %s", secsToTimeString(nextTransitionIn).c_str()); + break; + } + case WAR_EFFORT_STAGE_CH_ATTACK: + { + uint32 nextTransitionIn = WAR_EFFORT_FINAL_BATTLE_TIME - (time(nullptr) - lastStageTransitionTime); + PSendSysMessage("Next Transition In: %s", secsToTimeString(nextTransitionIn).c_str()); + break; + } + case WAR_EFFORT_STAGE_FINALBATTLE: + { + uint32 nextTransitionIn = WAR_EFFORT_GONG_DURATION - (time(nullptr) - gongRingTime); + PSendSysMessage("Next Transition In: %s", secsToTimeString(nextTransitionIn).c_str()); + break; + } + } + + return true; +} + +bool ChatHandler::HandleWarEffortSetGongTimeCommand(char* args) +{ + uint32 gongTime; + if (!ExtractUInt32(&args, gongTime)) + return false; + + sObjectMgr.SetSavedVariable(VAR_WE_GONG_TIME, gongTime, true); + PSendSysMessage("War effort gong ring time set to '%s' (%u).", TimeToTimestampStr(gongTime), gongTime); + sGameEventMgr.Update(); + + return true; +} + +bool ChatHandler::HandleWarEffortSetStageCommand(char* args) +{ + uint32 stage; + if (!ExtractUInt32(&args, stage)) + return false; + + sObjectMgr.SetSavedVariable(VAR_WE_STAGE, stage, true); + sObjectMgr.SetSavedVariable(VAR_WE_STAGE_TRANSITION_TIME, time(nullptr), true); + PSendSysMessage("War effort stage set to '%s' (%u).", WarEffortStageToString(stage), stage); + sGameEventMgr.Update(); + + return true; +} diff --git a/src/game/HardcodedEvents.h b/src/game/HardcodedEvents.h index 98f8a845825..0ff7bc235d5 100644 --- a/src/game/HardcodedEvents.h +++ b/src/game/HardcodedEvents.h @@ -250,6 +250,40 @@ enum WarEffortEventStage WAR_EFFORT_STAGE_COMPLETE = 12 }; +inline char const* WarEffortStageToString(uint32 stage) +{ + switch (stage) + { + case WAR_EFFORT_STAGE_COLLECTION: + return "Collection of Materials"; + case WAR_EFFORT_STAGE_READY: + return "Material Collection Ready"; + case WAR_EFFORT_STAGE_MOVE_1: + return "Moving to Silithus Day 1"; + case WAR_EFFORT_STAGE_MOVE_2: + return "Moving to Silithus Day 2"; + case WAR_EFFORT_STAGE_MOVE_3: + return "Moving to Silithus Day 3"; + case WAR_EFFORT_STAGE_MOVE_4: + return "Moving to Silithus Day 4"; + case WAR_EFFORT_STAGE_MOVE_5: + return "Moving to Silithus Day 5"; + case WAR_EFFORT_STAGE_GONG_WAIT: + return "Waiting for Gong to be Rung"; + case WAR_EFFORT_STAGE_GONG_RUNG: + return "Gong has been Rung"; + case WAR_EFFORT_STAGE_BATTLE: + return "Battle at Gate"; + case WAR_EFFORT_STAGE_CH_ATTACK: + return "Cenarion Hold Attack"; + case WAR_EFFORT_STAGE_FINALBATTLE: + return "Final Battle"; + case WAR_EFFORT_STAGE_COMPLETE: + return "Completed"; + } + return "UNKNOWN"; +} + enum WarEffortEnums { WAR_EFFORT_COLLECTION_TRANSITION_TIME = 10 * MINUTE, // 10 minutes between the event ending and starting the transition (what is the blizzlike thing here?) diff --git a/src/scripts/world/world_event_wareffort.cpp b/src/scripts/world/world_event_wareffort.cpp index 970c6217648..eed0e6c2061 100644 --- a/src/scripts/world/world_event_wareffort.cpp +++ b/src/scripts/world/world_event_wareffort.cpp @@ -650,7 +650,7 @@ bool GetWarEffortStockInfo(uint32 resourceId, WarEffortStockInfo &info, TeamId t return found; } -bool ChatHandler::HandleGetWarEffortResource(char* args) +bool ChatHandler::HandleWarEffortGetResource(char* args) { uint32 resourceId = 0; uint32 team; @@ -682,7 +682,7 @@ bool ChatHandler::HandleGetWarEffortResource(char* args) return true; } -bool ChatHandler::HandleSetWarEffortResource(char* args) +bool ChatHandler::HandleWarEffortSetResource(char* args) { uint32 resourceId = 0; uint32 resourceAmount = 0; From 73dc96ec9f042ee35df3c36acb4e4379fa80d0c9 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 26 Nov 2023 16:44:49 +0200 Subject: [PATCH 352/426] Fix division by zero. Closes https://github.com/vmangos/core/issues/2317 --- src/game/Objects/Player.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index dc5648d2faf..c951c92fe68 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -5742,6 +5742,9 @@ inline int SkillGainChance(uint32 SkillValue, uint32 GrayLevel, uint32 GreenLeve inline int CraftingSkillGainChance(uint32 SkillValue, uint32 GrayLevel, uint32 YellowLevel) { + if (YellowLevel >= GrayLevel) + return 0; + // Linear decrease in chance as you go from the YellowLevel -> GrayLevel. // To avoid casting to floats and back to uint32 we multiply the numerator by 1000, to get into a range of 0-1000. return G3D::iClamp(((GrayLevel - SkillValue) * 1000) / (GrayLevel - YellowLevel), 0, 1000); From 4bf4864f8baf940ae5cd030ec993cac2df49a20d Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 26 Nov 2023 17:43:56 +0200 Subject: [PATCH 353/426] Bonus hit chance auras should check equipped weapon. Closes https://github.com/vmangos/core/issues/2306 --- src/game/Commands/CreatureCommands.cpp | 4 +- src/game/Maps/ScriptCommands.cpp | 6 +-- src/game/Objects/Creature.cpp | 26 ++++++++++-- src/game/Objects/Creature.h | 6 ++- src/game/Objects/CreatureDefines.h | 7 ---- src/game/Objects/Item.cpp | 18 ++++---- src/game/Objects/Item.h | 1 + src/game/Objects/SpellCaster.cpp | 5 +-- src/game/Objects/Unit.cpp | 41 +++++++++++++++---- src/game/Objects/Unit.h | 3 +- src/game/Spells/SpellAuras.cpp | 11 +---- src/game/Spells/SpellAuras.h | 1 - .../blackrock_spire/boss_warmaster_voone.cpp | 8 ++-- .../westfall/deadmines/boss_mr_smite.cpp | 12 +++--- .../eastern_kingdoms/westfall/westfall.cpp | 2 +- src/scripts/kalimdor/silithus/silithus.cpp | 8 ++-- 16 files changed, 97 insertions(+), 62 deletions(-) diff --git a/src/game/Commands/CreatureCommands.cpp b/src/game/Commands/CreatureCommands.cpp index f9906b2e6f7..e044908a3ec 100644 --- a/src/game/Commands/CreatureCommands.cpp +++ b/src/game/Commands/CreatureCommands.cpp @@ -1157,13 +1157,13 @@ bool ChatHandler::HandleNpcAddWeaponCommand(char* args) return true; } - if (uiSlotId > VIRTUAL_ITEM_SLOT_2) + if (uiSlotId > RANGED_ATTACK) { PSendSysMessage(LANG_ITEM_SLOT_NOT_EXIST, uiSlotId); return true; } - pCreature->SetVirtualItem(VirtualItemSlot(uiSlotId), uiItemId); + pCreature->SetVirtualItem(WeaponAttackType(uiSlotId), uiItemId); PSendSysMessage(LANG_ITEM_ADDED_TO_SLOT, uiItemId, pItemProto->Name1, uiSlotId); return true; diff --git a/src/game/Maps/ScriptCommands.cpp b/src/game/Maps/ScriptCommands.cpp index c9eb5902fdc..3669b71c25b 100644 --- a/src/game/Maps/ScriptCommands.cpp +++ b/src/game/Maps/ScriptCommands.cpp @@ -711,15 +711,15 @@ bool Map::ScriptCommand_SetEquipment(ScriptInfo const& script, WorldObject* sour // main hand if (script.setEquipment.slot[0] >= 0) - pSource->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, script.setEquipment.slot[0]); + pSource->SetVirtualItem(BASE_ATTACK, script.setEquipment.slot[0]); // off hand if (script.setEquipment.slot[1] >= 0) - pSource->SetVirtualItem(VIRTUAL_ITEM_SLOT_1, script.setEquipment.slot[1]); + pSource->SetVirtualItem(OFF_ATTACK, script.setEquipment.slot[1]); // ranged if (script.setEquipment.slot[2] >= 0) - pSource->SetVirtualItem(VIRTUAL_ITEM_SLOT_2, script.setEquipment.slot[2]); + pSource->SetVirtualItem(RANGED_ATTACK, script.setEquipment.slot[2]); return false; } diff --git a/src/game/Objects/Creature.cpp b/src/game/Objects/Creature.cpp index dbdb8df58c2..7b21622ede9 100644 --- a/src/game/Objects/Creature.cpp +++ b/src/game/Objects/Creature.cpp @@ -1880,7 +1880,7 @@ void Creature::LoadEquipment(uint32 equipmentId, bool force) if (force) { for (uint8 i = 0; i < MAX_VIRTUAL_ITEM_SLOT; ++i) - SetVirtualItem(VirtualItemSlot(i), 0); + SetVirtualItem(WeaponAttackType(i), 0); m_equipmentId = 0; } return; @@ -1892,7 +1892,7 @@ void Creature::LoadEquipment(uint32 equipmentId, bool force) if (EquipmentEntry const* pEquipEntry = pEquipTemplate->ChooseEquipmentEntry()) { for (uint8 i = 0; i < MAX_VIRTUAL_ITEM_SLOT; ++i) - SetVirtualItem(VirtualItemSlot(i), pEquipEntry->item[i]); + SetVirtualItem(WeaponAttackType(i), pEquipEntry->item[i]); } } } @@ -4059,7 +4059,7 @@ uint32 Creature::GetDBTableGUIDLow() const return 0; } -void Creature::SetVirtualItem(VirtualItemSlot slot, uint32 item_id) +void Creature::SetVirtualItem(WeaponAttackType slot, uint32 item_id) { if (item_id == 0) { @@ -4085,6 +4085,26 @@ void Creature::SetVirtualItem(VirtualItemSlot slot, uint32 item_id) SetByteValue(UNIT_VIRTUAL_ITEM_INFO + (slot * 2) + 1, VIRTUAL_ITEM_INFO_1_OFFSET_SHEATH, proto->Sheath); } +uint32 Creature::GetVirtualItemDisplayId(WeaponAttackType slot) const +{ + return GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY + slot); +} + +uint32 Creature::GetVirtualItemClass(WeaponAttackType slot) const +{ + return GetByteValue(UNIT_VIRTUAL_ITEM_INFO + (slot * 2) + 0, VIRTUAL_ITEM_INFO_0_OFFSET_CLASS); +} + +uint32 Creature::GetVirtualItemSubclass(WeaponAttackType slot) const +{ + return GetByteValue(UNIT_VIRTUAL_ITEM_INFO + (slot * 2) + 0, VIRTUAL_ITEM_INFO_0_OFFSET_SUBCLASS); +} + +uint32 Creature::GetVirtualItemInventoryType(WeaponAttackType slot) const +{ + return GetByteValue(UNIT_VIRTUAL_ITEM_INFO + (slot * 2) + 0, VIRTUAL_ITEM_INFO_0_OFFSET_INVENTORYTYPE); +} + void Creature::JoinCreatureGroup(Creature* leader, float dist, float angle, uint32 options) { if (CreatureGroup* myGroup = GetCreatureGroup()) diff --git a/src/game/Objects/Creature.h b/src/game/Objects/Creature.h index 3846b2f674a..5511327faab 100644 --- a/src/game/Objects/Creature.h +++ b/src/game/Objects/Creature.h @@ -514,7 +514,11 @@ class Creature : public Unit void RegenerateHealth(); void RegenerateMana(); - void SetVirtualItem(VirtualItemSlot slot, uint32 item_id); + void SetVirtualItem(WeaponAttackType slot, uint32 item_id); + uint32 GetVirtualItemDisplayId(WeaponAttackType slot) const; + uint32 GetVirtualItemClass(WeaponAttackType slot) const; + uint32 GetVirtualItemSubclass(WeaponAttackType slot) const; + uint32 GetVirtualItemInventoryType(WeaponAttackType slot) const; void ResetDamageTakenOrigin() { diff --git a/src/game/Objects/CreatureDefines.h b/src/game/Objects/CreatureDefines.h index 8377a54d188..02335396b46 100644 --- a/src/game/Objects/CreatureDefines.h +++ b/src/game/Objects/CreatureDefines.h @@ -598,13 +598,6 @@ struct TrainerSpellData #define MAX_VENDOR_ITEMS 128 // Limitation in item count field size in SMSG_LIST_INVENTORY -enum VirtualItemSlot -{ - VIRTUAL_ITEM_SLOT_0 = 0, - VIRTUAL_ITEM_SLOT_1 = 1, - VIRTUAL_ITEM_SLOT_2 = 2, -}; - #define MAX_VIRTUAL_ITEM_SLOT 3 enum VirtualItemInfoByteOffset diff --git a/src/game/Objects/Item.cpp b/src/game/Objects/Item.cpp index 07a62bd8f3e..325e759fdbe 100644 --- a/src/game/Objects/Item.cpp +++ b/src/game/Objects/Item.cpp @@ -965,22 +965,20 @@ bool Item::IsBoundByEnchant() const return false; } -bool Item::IsFitToSpellRequirements(SpellEntry const* spellInfo) const +bool Item::IsFitToSpellRequirements(SpellEntry const* spellInfo, uint32 itemClass, uint32 itemSubClass, uint32 itemInventoryType) { - ItemPrototype const* proto = GetProto(); - if (spellInfo->EquippedItemClass != -1) // -1 == any item class { // Ustaag : ajout exception pour le spell Enchant Cloak - Minor Agility // prob de DB : spellInfo->EquippedItemClass == 2 alors qu'il devrait etre == 4 - if (spellInfo->Id == 13419 && proto->InventoryType == INVTYPE_CLOAK) + if (spellInfo->Id == 13419 && itemInventoryType == INVTYPE_CLOAK) return true; - if ((spellInfo->EquippedItemClass != int32(proto->Class)) && spellInfo->Id != 13419) + if ((spellInfo->EquippedItemClass != int32(itemClass)) && spellInfo->Id != 13419) return false; // wrong item class if (spellInfo->EquippedItemSubClassMask != 0) // 0 == any subclass { - if ((spellInfo->EquippedItemSubClassMask & (1 << proto->SubClass)) == 0) + if ((spellInfo->EquippedItemSubClassMask & (1 << itemSubClass)) == 0) return false; // subclass not present in mask } } @@ -990,13 +988,19 @@ bool Item::IsFitToSpellRequirements(SpellEntry const* spellInfo) const // and special code (Titan's Grip, Windfury Attack). Check clearly not applicable for Lava Lash. if (spellInfo->EquippedItemInventoryTypeMask != 0 && (spellInfo->Targets & TARGET_FLAG_ITEM)) // 0 == any inventory type { - if ((spellInfo->EquippedItemInventoryTypeMask & (1 << proto->InventoryType)) == 0) + if ((spellInfo->EquippedItemInventoryTypeMask & (1 << itemInventoryType)) == 0) return false; // inventory type not present in mask } return true; } +bool Item::IsFitToSpellRequirements(SpellEntry const* spellInfo) const +{ + ItemPrototype const* proto = GetProto(); + return IsFitToSpellRequirements(spellInfo, proto->Class, proto->SubClass, proto->InventoryType); +} + bool Item::IsTargetValidForItemUse(Unit* pUnitTarget) { ItemRequiredTargetMapBounds bounds = sObjectMgr.GetItemRequiredTargetMapBounds(GetProto()->ItemId); diff --git a/src/game/Objects/Item.h b/src/game/Objects/Item.h index fb8e8c18195..0e6eeeb9de2 100644 --- a/src/game/Objects/Item.h +++ b/src/game/Objects/Item.h @@ -292,6 +292,7 @@ class Item : public Object void SetInTrade(bool b = true) { mb_in_trade = b; } bool IsInTrade() const { return mb_in_trade; } + static bool IsFitToSpellRequirements(SpellEntry const* spellInfo, uint32 itemClass, uint32 itemSubClass, uint32 itemInventoryType); bool IsFitToSpellRequirements(SpellEntry const* spellInfo) const; bool IsTargetValidForItemUse(Unit* pUnitTarget); bool IsLimitedToAnotherMapOrZone(uint32 cur_mapId, uint32 cur_zoneId) const; diff --git a/src/game/Objects/SpellCaster.cpp b/src/game/Objects/SpellCaster.cpp index 32bee1ffe9f..31a9d34bb40 100644 --- a/src/game/Objects/SpellCaster.cpp +++ b/src/game/Objects/SpellCaster.cpp @@ -345,10 +345,7 @@ float SpellCaster::MeleeSpellMissChance(Unit* pVictim, WeaponAttackType attType, modOwner->ApplySpellMod(spell->Id, SPELLMOD_RESIST_MISS_CHANCE, hitChance, spellPtr); // Bonuses from attacker aura and ratings - if (attType == RANGED_ATTACK) - hitChance += pUnit->m_modRangedHitChance; - else - hitChance += pUnit->m_modMeleeHitChance; + hitChance += pUnit->GetBonusHitChanceFromAuras(attType); } // There is some code in 1.12 that explicitly adds a modifier that causes the first 1% of +hit gained from diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index d29a8499f7d..0319a0e905e 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -146,8 +146,6 @@ Unit::Unit() m_createResistance = 0; m_attacking = nullptr; - m_modMeleeHitChance = 0.0f; - m_modRangedHitChance = 0.0f; m_modSpellHitChance = 0.0f; m_baseSpellCritChance = 5; @@ -2545,6 +2543,39 @@ bool Unit::IsEffectResist(SpellEntry const* spell, int eff) const return false; } +float Unit::GetBonusHitChanceFromAuras(WeaponAttackType attType) const +{ + float chance = 0.0f; + AuraList const& mTotalAuraList = GetAurasByType(SPELL_AURA_MOD_HIT_CHANCE); + for (auto const& i : mTotalAuraList) + { + SpellEntry const* pSpellEntry = i->GetSpellProto(); + if (pSpellEntry->EquippedItemClass >= 0) + { + if (Player const* pPlayer = ToPlayer()) + { + Item* pWeapon = pPlayer->GetWeaponForAttack(attType); + if (!pWeapon) + continue; + + if (!pWeapon->IsFitToSpellRequirements(pSpellEntry)) + continue; + } + else if (Creature const* pCreature = ToCreature()) + { + if (!pCreature->GetVirtualItemDisplayId(attType)) + continue; + + if (!Item::IsFitToSpellRequirements(pSpellEntry, pCreature->GetVirtualItemClass(attType), pCreature->GetVirtualItemSubclass(attType), pCreature->GetVirtualItemInventoryType(attType))) + continue; + } + } + + chance += i->GetModifier()->m_amount; + } + return chance; +} + float Unit::MeleeMissChanceCalc(Unit const* pVictim, WeaponAttackType attType) const { if (!pVictim || !pVictim->IsStandingUp()) @@ -2585,11 +2616,7 @@ float Unit::MeleeMissChanceCalc(Unit const* pVictim, WeaponAttackType attType) c missChance *= levelDiffMultiplier; // Hit chance bonus from attacker based on ratings and auras - float hitChance = 0.0f; - if (attType == RANGED_ATTACK) - hitChance = m_modRangedHitChance; - else - hitChance = m_modMeleeHitChance; + float hitChance = GetBonusHitChanceFromAuras(attType); // There is some code in 1.12 that explicitly adds a modifier that causes the first 1% of +hit gained from // talents or gear to be ignored against monsters with more than 10 Defense Skill above the attacking player’s Weapon Skill. diff --git a/src/game/Objects/Unit.h b/src/game/Objects/Unit.h index 5e1024bf728..1b983ceef61 100644 --- a/src/game/Objects/Unit.h +++ b/src/game/Objects/Unit.h @@ -378,8 +378,6 @@ class Unit : public SpellCaster float GetRegenMPPerSpirit() const; public: // Data - float m_modMeleeHitChance; - float m_modRangedHitChance; float m_modSpellHitChance; int32 m_baseSpellCritChance; float m_threatModifier[MAX_SPELL_SCHOOL]; @@ -1000,6 +998,7 @@ class Unit : public SpellCaster ObjectGuid const& GetReactiveTarget(ReactiveType reactive) const { return m_reactiveTarget[reactive]; } void UpdateReactives(uint32 p_time); + float GetBonusHitChanceFromAuras(WeaponAttackType attType) const; float MeleeMissChanceCalc(Unit const* pVictim, WeaponAttackType attType) const; void CalculateMeleeDamage(Unit* pVictim, uint32 damage, CalcDamageInfo* damageInfo, WeaponAttackType attackType = BASE_ATTACK); void UnitDamaged(ObjectGuid from, uint32 damage) { m_damageTakenHistory[from] += damage; m_lastDamageTaken = 0; } diff --git a/src/game/Spells/SpellAuras.cpp b/src/game/Spells/SpellAuras.cpp index e576749807b..c8e3517a74b 100644 --- a/src/game/Spells/SpellAuras.cpp +++ b/src/game/Spells/SpellAuras.cpp @@ -114,7 +114,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS] = &Aura::HandleAuraModBlockPercent, // 51 SPELL_AURA_MOD_BLOCK_PERCENT &Aura::HandleAuraModCritPercent, // 52 SPELL_AURA_MOD_CRIT_PERCENT &Aura::HandlePeriodicLeech, // 53 SPELL_AURA_PERIODIC_LEECH - &Aura::HandleModHitChance, // 54 SPELL_AURA_MOD_HIT_CHANCE + &Aura::HandleNoImmediateEffect, // 54 SPELL_AURA_MOD_HIT_CHANCE implemented in Unit::GetBonusHitChanceFromAuras &Aura::HandleModSpellHitChance, // 55 SPELL_AURA_MOD_SPELL_HIT_CHANCE &Aura::HandleAuraTransform, // 56 SPELL_AURA_TRANSFORM &Aura::HandleModSpellCritChance, // 57 SPELL_AURA_MOD_SPELL_CRIT_CHANCE @@ -5225,15 +5225,6 @@ void Aura::HandleAuraModCritPercent(bool apply, bool Real) } } -void Aura::HandleModHitChance(bool apply, bool /*Real*/) -{ - Unit* target = GetTarget(); - - if (GetId() != 22780) // [Ranged Hit Bonus +3] as stated in name ... - target->m_modMeleeHitChance += apply ? m_modifier.m_amount : (-m_modifier.m_amount); - target->m_modRangedHitChance += apply ? m_modifier.m_amount : (-m_modifier.m_amount); -} - void Aura::HandleModSpellHitChance(bool apply, bool /*Real*/) { GetTarget()->m_modSpellHitChance += apply ? m_modifier.m_amount : (-m_modifier.m_amount); diff --git a/src/game/Spells/SpellAuras.h b/src/game/Spells/SpellAuras.h index 810021014a7..6dedd199a53 100644 --- a/src/game/Spells/SpellAuras.h +++ b/src/game/Spells/SpellAuras.h @@ -374,7 +374,6 @@ class Aura void HandleAuraModBlockPercent(bool Apply, bool Real); void HandleAuraModCritPercent(bool Apply, bool Real); void HandlePeriodicLeech(bool Apply, bool Real); - void HandleModHitChance(bool Apply, bool Real); void HandleModSpellHitChance(bool Apply, bool Real); void HandleAuraModScale(bool Apply, bool Real); void HandlePeriodicManaLeech(bool Apply, bool Real); diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/boss_warmaster_voone.cpp b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/boss_warmaster_voone.cpp index e86431cc58a..3375782fe5c 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/boss_warmaster_voone.cpp +++ b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/boss_warmaster_voone.cpp @@ -65,14 +65,14 @@ struct boss_warmastervooneAI : public ScriptedAI { case 0: { - m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, 12348); - m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_1, 0); + m_creature->SetVirtualItem(BASE_ATTACK, 12348); + m_creature->SetVirtualItem(OFF_ATTACK, 0); break; } case 1: { - m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, 0); - m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_1, 0); + m_creature->SetVirtualItem(BASE_ATTACK, 0); + m_creature->SetVirtualItem(OFF_ATTACK, 0); m_creature->CastSpell(m_creature, SPELL_UNARMED_PASSIVE, true); break; } diff --git a/src/scripts/eastern_kingdoms/westfall/deadmines/boss_mr_smite.cpp b/src/scripts/eastern_kingdoms/westfall/deadmines/boss_mr_smite.cpp index 6a73fb72081..709b56693fd 100644 --- a/src/scripts/eastern_kingdoms/westfall/deadmines/boss_mr_smite.cpp +++ b/src/scripts/eastern_kingdoms/westfall/deadmines/boss_mr_smite.cpp @@ -167,17 +167,17 @@ struct boss_mr_smiteAI : public ScriptedAI if (m_creature->GetHealthPercent() < 33.0f) { // It's Hammer, go Hammer! - m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, EQUIP_ID_HAMMER); - m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_1, 0); - m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_2, 0); + m_creature->SetVirtualItem(BASE_ATTACK, EQUIP_ID_HAMMER); + m_creature->SetVirtualItem(OFF_ATTACK, 0); + m_creature->SetVirtualItem(RANGED_ATTACK, 0); DoCastSpellIfCan(m_creature, SPELL_SMITE_HAMMER); } else { // It's double Axe. - m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, EQUIP_ID_AXE); - m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_1, EQUIP_ID_AXE); - m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_2, 0); + m_creature->SetVirtualItem(BASE_ATTACK, EQUIP_ID_AXE); + m_creature->SetVirtualItem(OFF_ATTACK, EQUIP_ID_AXE); + m_creature->SetVirtualItem(RANGED_ATTACK, 0); } m_creature->SetStandState(UNIT_STAND_STATE_STAND); diff --git a/src/scripts/eastern_kingdoms/westfall/westfall.cpp b/src/scripts/eastern_kingdoms/westfall/westfall.cpp index 6b3fd389203..10823cd0fb4 100644 --- a/src/scripts/eastern_kingdoms/westfall/westfall.cpp +++ b/src/scripts/eastern_kingdoms/westfall/westfall.cpp @@ -87,7 +87,7 @@ struct npc_daphne_stilwellAI : public npc_escortAI switch (uiPoint) { case 4: - m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, 6946); + m_creature->SetVirtualItem(BASE_ATTACK, 6946); m_creature->SetSheath(SHEATH_STATE_RANGED); m_creature->HandleEmoteCommand(EMOTE_STATE_USESTANDING_NOSHEATHE); break; diff --git a/src/scripts/kalimdor/silithus/silithus.cpp b/src/scripts/kalimdor/silithus/silithus.cpp index 42243b4d488..c3115bc1534 100644 --- a/src/scripts/kalimdor/silithus/silithus.cpp +++ b/src/scripts/kalimdor/silithus/silithus.cpp @@ -2132,20 +2132,20 @@ struct npc_anachronos_the_ancientAI : public ScriptedAI m_uiEventTimer = 15000; break; case 40: - m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, ITEM_SCEPTER_OF_THE_SHIFTING_SANDS); + m_creature->SetVirtualItem(BASE_ATTACK, ITEM_SCEPTER_OF_THE_SHIFTING_SANDS); if (Creature* pFandral = m_creature->GetMap()->GetCreature(m_uiFandralGUID)) DoScriptText(EMOTE_ANACHRONOS_SCEPTER, m_creature, pFandral); m_uiEventTimer = 1500; break; case 41: - m_creature->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, 0); + m_creature->SetVirtualItem(BASE_ATTACK, 0); m_creature->HandleEmote(EMOTE_ONESHOT_BEG); m_uiEventTimer = 1500; break; case 42: if (Creature* pFandral = m_creature->GetMap()->GetCreature(m_uiFandralGUID)) { - pFandral->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, ITEM_SCEPTER_OF_THE_SHIFTING_SANDS); + pFandral->SetVirtualItem(BASE_ATTACK, ITEM_SCEPTER_OF_THE_SHIFTING_SANDS); pFandral->SetStandState(UNIT_STAND_STATE_STAND); DoScriptText(SAY_FANDRAL_EPILOGUE_4, pFandral); } @@ -2161,7 +2161,7 @@ struct npc_anachronos_the_ancientAI : public ScriptedAI { pFandral->CastSpell(pFandral, SPELL_SHATTER_HAMMER, false); DoScriptText(EMOTE_FANDRAL_SHATTER, pFandral); - pFandral->SetVirtualItem(VIRTUAL_ITEM_SLOT_0, 0); + pFandral->SetVirtualItem(BASE_ATTACK, 0); } m_uiEventTimer = 3000; break; From 2f4f15df5afbbcd4f0386b88b7d2a557c7c0aed6 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 26 Nov 2023 18:50:33 +0200 Subject: [PATCH 354/426] Use virtual function for the hit chance. --- src/game/Objects/Creature.h | 1 + src/game/Objects/Player.h | 1 + src/game/Objects/Unit.cpp | 33 -------------------------- src/game/Objects/Unit.h | 2 +- src/game/StatSystem.cpp | 46 +++++++++++++++++++++++++++++++++++++ 5 files changed, 49 insertions(+), 34 deletions(-) diff --git a/src/game/Objects/Creature.h b/src/game/Objects/Creature.h index 5511327faab..cb5f4bea6f8 100644 --- a/src/game/Objects/Creature.h +++ b/src/game/Objects/Creature.h @@ -548,6 +548,7 @@ class Creature : public Unit } bool HasWeapon() const; + float GetBonusHitChanceFromAuras(WeaponAttackType attType) const final; void SetCallForHelpDist(float dist) { diff --git a/src/game/Objects/Player.h b/src/game/Objects/Player.h index 27eb9ddeeaa..8817b7837ee 100644 --- a/src/game/Objects/Player.h +++ b/src/game/Objects/Player.h @@ -1678,6 +1678,7 @@ class Player final: public Unit void UpdateAllSpellCritChances(); void UpdateSpellCritChance(uint32 school); void CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, float& min_damage, float& max_damage, uint8 index = 0) const; + float GetBonusHitChanceFromAuras(WeaponAttackType attType) const final; uint32 GetShieldBlockValue() const override; // overwrite Unit version (virtual) bool CanParry() const { return m_canParry; } diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 0319a0e905e..5605cce7af9 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -2543,39 +2543,6 @@ bool Unit::IsEffectResist(SpellEntry const* spell, int eff) const return false; } -float Unit::GetBonusHitChanceFromAuras(WeaponAttackType attType) const -{ - float chance = 0.0f; - AuraList const& mTotalAuraList = GetAurasByType(SPELL_AURA_MOD_HIT_CHANCE); - for (auto const& i : mTotalAuraList) - { - SpellEntry const* pSpellEntry = i->GetSpellProto(); - if (pSpellEntry->EquippedItemClass >= 0) - { - if (Player const* pPlayer = ToPlayer()) - { - Item* pWeapon = pPlayer->GetWeaponForAttack(attType); - if (!pWeapon) - continue; - - if (!pWeapon->IsFitToSpellRequirements(pSpellEntry)) - continue; - } - else if (Creature const* pCreature = ToCreature()) - { - if (!pCreature->GetVirtualItemDisplayId(attType)) - continue; - - if (!Item::IsFitToSpellRequirements(pSpellEntry, pCreature->GetVirtualItemClass(attType), pCreature->GetVirtualItemSubclass(attType), pCreature->GetVirtualItemInventoryType(attType))) - continue; - } - } - - chance += i->GetModifier()->m_amount; - } - return chance; -} - float Unit::MeleeMissChanceCalc(Unit const* pVictim, WeaponAttackType attType) const { if (!pVictim || !pVictim->IsStandingUp()) diff --git a/src/game/Objects/Unit.h b/src/game/Objects/Unit.h index 1b983ceef61..d0cc3f2a7be 100644 --- a/src/game/Objects/Unit.h +++ b/src/game/Objects/Unit.h @@ -998,7 +998,7 @@ class Unit : public SpellCaster ObjectGuid const& GetReactiveTarget(ReactiveType reactive) const { return m_reactiveTarget[reactive]; } void UpdateReactives(uint32 p_time); - float GetBonusHitChanceFromAuras(WeaponAttackType attType) const; + virtual float GetBonusHitChanceFromAuras(WeaponAttackType attType) const = 0; float MeleeMissChanceCalc(Unit const* pVictim, WeaponAttackType attType) const; void CalculateMeleeDamage(Unit* pVictim, uint32 damage, CalcDamageInfo* damageInfo, WeaponAttackType attackType = BASE_ATTACK); void UnitDamaged(ObjectGuid from, uint32 damage) { m_damageTakenHistory[from] += damage; m_lastDamageTaken = 0; } diff --git a/src/game/StatSystem.cpp b/src/game/StatSystem.cpp index 8478714d6e4..d69ac2660b8 100644 --- a/src/game/StatSystem.cpp +++ b/src/game/StatSystem.cpp @@ -469,6 +469,31 @@ void Player::UpdateDamagePhysical(WeaponAttackType attType) } } +float Player::GetBonusHitChanceFromAuras(WeaponAttackType attType) const +{ + float chance = 0.0f; + AuraList const& hitAurasList = GetAurasByType(SPELL_AURA_MOD_HIT_CHANCE); + if (hitAurasList.empty()) + return chance; + + Item* pWeapon = GetWeaponForAttack(attType); + for (auto const& i : hitAurasList) + { + SpellEntry const* pSpellEntry = i->GetSpellProto(); + if (pSpellEntry->EquippedItemClass >= 0) + { + if (!pWeapon) + continue; + + if (!pWeapon->IsFitToSpellRequirements(pSpellEntry)) + continue; + } + + chance += i->GetModifier()->m_amount; + } + return chance; +} + void Player::UpdateDefenseBonusesMod() { UpdateBlockPercentage(); @@ -936,6 +961,27 @@ void Creature::UpdateDamagePhysical(WeaponAttackType attType) SetStatFloatValue(fieldmax, maxdamage); } +float Creature::GetBonusHitChanceFromAuras(WeaponAttackType attType) const +{ + float chance = 0.0f; + AuraList const& mTotalAuraList = GetAurasByType(SPELL_AURA_MOD_HIT_CHANCE); + for (auto const& i : mTotalAuraList) + { + SpellEntry const* pSpellEntry = i->GetSpellProto(); + if (pSpellEntry->EquippedItemClass >= 0) + { + if (!GetVirtualItemDisplayId(attType)) + continue; + + if (!Item::IsFitToSpellRequirements(pSpellEntry, GetVirtualItemClass(attType), GetVirtualItemSubclass(attType), GetVirtualItemInventoryType(attType))) + continue; + } + + chance += i->GetModifier()->m_amount; + } + return chance; +} + /*####################################### ######## ######## ######## PETS STAT SYSTEM ######## From 756543fbc16d8e18a678901bdb6cad6be68461b0 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 26 Nov 2023 18:53:30 +0200 Subject: [PATCH 355/426] Move the declaration to other stat system functions. --- src/game/Objects/Creature.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/Objects/Creature.h b/src/game/Objects/Creature.h index cb5f4bea6f8..a4606d31fb9 100644 --- a/src/game/Objects/Creature.h +++ b/src/game/Objects/Creature.h @@ -237,6 +237,7 @@ class Creature : public Unit void UpdateManaRegen() override; void UpdateAttackPowerAndDamage(bool ranged = false) override; void UpdateDamagePhysical(WeaponAttackType attType) override; + float GetBonusHitChanceFromAuras(WeaponAttackType attType) const final; uint32 GetCurrentEquipmentId() const { return m_equipmentId; } static float _GetHealthMod(int32 rank); // Get custom factor to scale health (default 1, CONFIG_FLOAT_RATE_CREATURE_*_HP) @@ -548,7 +549,6 @@ class Creature : public Unit } bool HasWeapon() const; - float GetBonusHitChanceFromAuras(WeaponAttackType attType) const final; void SetCallForHelpDist(float dist) { From 711c2eb3fc923d3105dfa43d77eb55382d2647da Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 26 Nov 2023 23:54:59 +0200 Subject: [PATCH 356/426] Add debug target info cheat command. Shows you stats of targets you mouse over like if you had cast Beast Lore on them. --- sql/migrations/20231126204249_world.sql | 24 +++++++++++++++ src/game/Chat/Chat.cpp | 1 + src/game/Chat/Chat.h | 1 + src/game/Commands/CharacterCommands.cpp | 28 +++++++++++++++++ src/game/Language.h | 4 +++ src/game/Objects/Object.cpp | 40 ++++++++++++++++++------- src/game/Objects/Player.cpp | 36 +++++++++++++++++++++- src/game/Objects/Player.h | 22 +++++++------- 8 files changed, 135 insertions(+), 21 deletions(-) create mode 100644 sql/migrations/20231126204249_world.sql diff --git a/sql/migrations/20231126204249_world.sql b/sql/migrations/20231126204249_world.sql new file mode 100644 index 00000000000..6bf4fcf5cbc --- /dev/null +++ b/sql/migrations/20231126204249_world.sql @@ -0,0 +1,24 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231126204249'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231126204249'); +-- Add your query below. + + +-- Add strings for .cheat debugtargetinfo command. +INSERT INTO `mangos_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES (694, 'DEBUG TARGET INFO cheat is ON', '디버그 대상 정보 치트가 활성화되었습니다.', 'La triche DEBUG TARGET INFO est activée', 'Der DEBUG TARGET INFO-Cheat ist aktiviert', '调试目标信息作弊已开启', '調試目標資訊作弊已開啟', 'DEBUG INFO OBJETIVO está activada', NULL, 'Чит DEBUG TARGET INFO ВКЛЮЧЕН'); +INSERT INTO `mangos_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES (695, 'DEBUG TARGET INFO cheat is OFF', '디버그 대상 정보 치트가 비활성화되었습니다.', 'La triche DEBUG TARGET INFO est désactivée\r\n', 'Der DEBUG-TARGET-INFO-Cheat ist AUS', '调试目标信息作弊已关闭', '調試目標資訊作弊已關閉', 'DEBUG INFO OBJETIVO está desactivada', NULL, 'Чит DEBUG TARGET INFO ОТКЛЮЧЕН.'); +INSERT INTO `mangos_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES (696, 'You set debug target info mode to %s for %s.', '디버그 대상 정보 모드를 %s에 대해 %s(으)로 설정했습니다.', 'Vous avez défini le mode d\'informations sur la cible de débogage sur %s pour %s.', 'Sie haben den Debugziel-Infomodus für %s auf %s festgelegt.', '您将 %s 的调试目标信息模式设置为 %s。', '您將 %s 的偵錯目標資訊模式設定為 %s。', 'Configura el modo de información de destino de depuración en %s para %s.', NULL, 'Вы устанавливаете режим целевой информации отладки %s для %s.'); +INSERT INTO `mangos_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES (697, 'Your debug target info mode has been turned %s by %s.', '디버그 대상 정보 모드가 %s에 의해 %s로 전환되었습니다.', 'Votre mode d\'informations sur la cible de débogage a été activé %s par %s.', 'Ihr Debugziel-Infomodus wurde %s von %s aktiviert.', '您的调试目标信息模式已由 %s 更改为 %s。', '您的偵錯目標資訊模式已由 %s 變更為 %s。', 'Su modo de información de destino de depuración ha sido activado %s por %s.', NULL, 'Ваш режим целевой информации отладки был включен %s пользователем %s.'); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Chat/Chat.cpp b/src/game/Chat/Chat.cpp index b1c8dd3357c..24022c3d45b 100644 --- a/src/game/Chat/Chat.cpp +++ b/src/game/Chat/Chat.cpp @@ -266,6 +266,7 @@ ChatCommand * ChatHandler::getCommandTable() { "untargetable", SEC_GAMEMASTER, false, &ChatHandler::HandleCheatUntargetableCommand, "", nullptr }, { "waterwalk", SEC_GAMEMASTER, false, &ChatHandler::HandleCheatWaterwalkCommand, "", nullptr }, { "wallclimb", SEC_GAMEMASTER, false, &ChatHandler::HandleCheatWallclimbCommand, "", nullptr }, + { "debugtargetinfo",SEC_GAMEMASTER, false, &ChatHandler::HandleCheatDebugTargetInfoCommand, "", nullptr }, { "status", SEC_GAMEMASTER, false, &ChatHandler::HandleCheatStatusCommand, "", nullptr }, { nullptr, 0, false, nullptr, "", nullptr } }; diff --git a/src/game/Chat/Chat.h b/src/game/Chat/Chat.h index 35cb6f433f7..ee74f6987c1 100644 --- a/src/game/Chat/Chat.h +++ b/src/game/Chat/Chat.h @@ -202,6 +202,7 @@ class ChatHandler bool HandleCheatUntargetableCommand(char *); bool HandleCheatWaterwalkCommand(char* args); bool HandleCheatWallclimbCommand(char* args); + bool HandleCheatDebugTargetInfoCommand(char* args); //Custom bool HandleSendSpellVisualCommand(char *); diff --git a/src/game/Commands/CharacterCommands.cpp b/src/game/Commands/CharacterCommands.cpp index 6342895310a..8a4e89f6f9e 100644 --- a/src/game/Commands/CharacterCommands.cpp +++ b/src/game/Commands/CharacterCommands.cpp @@ -506,6 +506,32 @@ bool ChatHandler::HandleCheatWallclimbCommand(char* args) return true; } +bool ChatHandler::HandleCheatDebugTargetInfoCommand(char* args) +{ + if (*args) + { + bool value; + if (!ExtractOnOff(&args, value)) + { + SendSysMessage(LANG_USE_BOL); + SetSentErrorMessage(true); + return false; + } + + Player* target; + if (!ExtractPlayerTarget(&args, &target)) + return false; + + target->SetCheatDebugTargetInfo(value, true); + + PSendSysMessage(LANG_YOU_SET_DEBUG_TARGET_INFO, value ? "on" : "off", GetNameLink(target).c_str()); + if (needReportToTarget(target)) + ChatHandler(target).PSendSysMessage(LANG_YOUR_DEBUG_TARGET_INFO_SET, value ? "on" : "off", GetNameLink().c_str()); + } + + return true; +} + bool ChatHandler::HandleCheatStatusCommand(char* args) { Player* target; @@ -549,6 +575,8 @@ bool ChatHandler::HandleCheatStatusCommand(char* args) SendSysMessage("- Water walking"); if (target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_0)) SendSysMessage("- Wall climbing"); + if (target->HasCheatOption(PLAYER_CHEAT_DEBUG_TARGET_INFO)) + SendSysMessage("- Debug target info"); return true; } diff --git a/src/game/Language.h b/src/game/Language.h index 998eaf75f5e..8d24fe31eed 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -717,6 +717,10 @@ enum MangosStrings LANG_YOUR_IMMUNE_NPC_SET = 691, LANG_YOU_SET_UNTARGETABLE = 692, LANG_YOUR_UNTARGETABLE_SET = 693, + LANG_CHEAT_DEBUG_TARGET_INFO_ON = 694, + LANG_CHEAT_DEBUG_TARGET_INFO_OFF = 695, + LANG_YOU_SET_DEBUG_TARGET_INFO = 696, + LANG_YOUR_DEBUG_TARGET_INFO_SET = 697, LANG_RESTORED_ITEM = 699, //LANG_ARENA_ONE_TOOLOW = 700, diff --git a/src/game/Objects/Object.cpp b/src/game/Objects/Object.cpp index 3ee0643ea87..62c3b5b7aa9 100644 --- a/src/game/Objects/Object.cpp +++ b/src/game/Objects/Object.cpp @@ -587,11 +587,16 @@ void Object::BuildValuesUpdate(uint8 updatetype, ByteBuffer* data, UpdateMask* u updateMask->SetBit(GAMEOBJECT_DYN_FLAGS); } + else if (isType(TYPEMASK_UNIT) && target->HasCheatOption(PLAYER_CHEAT_DEBUG_TARGET_INFO)) + { + // Force include dynamic flags to make special info visible. + updateMask->SetBit(UNIT_DYNAMIC_FLAGS); + } #if SUPPORTED_CLIENT_BUILD <= CLIENT_BUILD_1_6_1 else if (isType(TYPEMASK_ITEM)) { // Force include flags field in create object packet, - // because the static flags need to sent in that field. + // because the static flags need to be sent in that field. updateMask->SetBit(ITEM_FIELD_FLAGS); } #endif @@ -725,6 +730,9 @@ void Object::BuildValuesUpdate(uint8 updatetype, ByteBuffer* data, UpdateMask* u if (!target->IsAllowedToLoot(creature)) dynamicFlags &= ~UNIT_DYNFLAG_LOOTABLE; } + if (target->HasCheatOption(PLAYER_CHEAT_DEBUG_TARGET_INFO)) + dynamicFlags |= UNIT_DYNFLAG_SPECIALINFO; + *data << dynamicFlags; } // RAID ally-horde - Faction @@ -975,19 +983,30 @@ uint16 Object::GetUpdateFieldFlagsForTarget(Player const* target, uint16 const*& case TYPEID_UNIT: case TYPEID_PLAYER: { - if (static_cast(this)->GetOwnerGuid() == target->GetObjectGuid() || - static_cast(this)->GetCharmerGuid() == target->GetObjectGuid()) - visibleFlag |= UF_FLAG_OWNER_ONLY; + if (target->HasCheatOption(PLAYER_CHEAT_DEBUG_TARGET_INFO)) + { + visibleFlag |= UF_FLAG_OWNER_ONLY | UF_FLAG_SPECIAL_INFO | UF_FLAG_GROUP_ONLY; + } + else + { + if (static_cast(this)->GetOwnerGuid() == target->GetObjectGuid() || + static_cast(this)->GetCharmerGuid() == target->GetObjectGuid()) + visibleFlag |= UF_FLAG_OWNER_ONLY; - if (HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_SPECIALINFO)) - if (target->CanSeeSpecialInfoOf(static_cast(this))) - visibleFlag |= UF_FLAG_SPECIAL_INFO; + if (HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_SPECIALINFO)) + if (target->CanSeeSpecialInfoOf(static_cast(this))) + visibleFlag |= UF_FLAG_SPECIAL_INFO; - if (Player* plr = static_cast(this)->GetCharmerOrOwnerPlayerOrPlayerItself()) - if (plr->IsInSameRaidWith(target)) - visibleFlag |= UF_FLAG_GROUP_ONLY; + if (Player* plr = static_cast(this)->GetCharmerOrOwnerPlayerOrPlayerItself()) + if (plr->IsInSameRaidWith(target)) + visibleFlag |= UF_FLAG_GROUP_ONLY; + } + break; } + /* + Optimization: these objects dont actually have any fields marked as owner only, so comment this out + case TYPEID_GAMEOBJECT: if (static_cast(this)->GetOwnerGuid() == target->GetObjectGuid()) visibleFlag |= UF_FLAG_OWNER_ONLY; @@ -1002,6 +1021,7 @@ uint16 Object::GetUpdateFieldFlagsForTarget(Player const* target, uint16 const*& break; case TYPEID_OBJECT: break; + */ } return visibleFlag; diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index c951c92fe68..bc8311ef3d7 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -3040,7 +3040,8 @@ bool Player::CanSeeHealthOf(Unit const* pTarget) const bool Player::CanSeeSpecialInfoOf(Unit const* pTarget) const { - return pTarget->HasAuraTypeByCaster(SPELL_AURA_EMPATHY, GetObjectGuid()); + return HasCheatOption(PLAYER_CHEAT_DEBUG_TARGET_INFO) || + pTarget->HasAuraTypeByCaster(SPELL_AURA_EMPATHY, GetObjectGuid()); } struct SetGameMasterOnHelper @@ -3295,6 +3296,39 @@ void Player::SetCheatIgnoreTriggers(bool on, bool notify) } } +void Player::SetCheatDebugTargetInfo(bool on, bool notify) +{ + SetCheatOption(PLAYER_CHEAT_DEBUG_TARGET_INFO, on); + + if (notify) + { + GetSession()->SendNotification(on ? LANG_CHEAT_DEBUG_TARGET_INFO_ON : LANG_CHEAT_DEBUG_TARGET_INFO_OFF); + + for (auto const& guid : m_visibleGUIDs) + { + if (!guid.IsUnit()) + continue; + + Unit* pUnit = GetMap()->GetUnit(guid); + if (!pUnit) + continue; + + uint16 updateFlags = UF_FLAG_DYNAMIC; + if (on) + updateFlags |= UF_FLAG_SPECIAL_INFO; + + UpdateData newData; + pUnit->BuildValuesUpdateBlockForPlayerWithFlags(newData, this, UpdateFieldFlags(updateFlags), true); + if (newData.HasData()) + { + WorldPacket newDataPacket; + newData.BuildPacket(&newDataPacket); + SendDirectMessage(&newDataPacket); + } + } + } +} + bool Player::IsAllowedWhisperFrom(ObjectGuid guid) const { if (PlayerSocial const* social = GetSocial()) diff --git a/src/game/Objects/Player.h b/src/game/Objects/Player.h index 8817b7837ee..7d550628a77 100644 --- a/src/game/Objects/Player.h +++ b/src/game/Objects/Player.h @@ -494,16 +494,17 @@ enum AtLoginFlags enum PlayerCheatOptions : uint16 { - PLAYER_CHEAT_GOD = 0x001, - PLAYER_CHEAT_NO_COOLDOWN = 0x002, - PLAYER_CHEAT_NO_CAST_TIME = 0x004, - PLAYER_CHEAT_NO_POWER = 0x008, - PLAYER_CHEAT_DEBUFF_IMMUNITY = 0x010, - PLAYER_CHEAT_ALWAYS_CRIT = 0x020, - PLAYER_CHEAT_NO_CHECK_CAST = 0x040, - PLAYER_CHEAT_ALWAYS_PROC = 0x080, - PLAYER_CHEAT_TRIGGER_PASS = 0x100, - PLAYER_CHEAT_IGNORE_TRIGGERS = 0x200, + PLAYER_CHEAT_GOD = 0x001, + PLAYER_CHEAT_NO_COOLDOWN = 0x002, + PLAYER_CHEAT_NO_CAST_TIME = 0x004, + PLAYER_CHEAT_NO_POWER = 0x008, + PLAYER_CHEAT_DEBUFF_IMMUNITY = 0x010, + PLAYER_CHEAT_ALWAYS_CRIT = 0x020, + PLAYER_CHEAT_NO_CHECK_CAST = 0x040, + PLAYER_CHEAT_ALWAYS_PROC = 0x080, + PLAYER_CHEAT_TRIGGER_PASS = 0x100, + PLAYER_CHEAT_IGNORE_TRIGGERS = 0x200, + PLAYER_CHEAT_DEBUG_TARGET_INFO = 0x400, }; typedef std::map QuestStatusMap; @@ -1018,6 +1019,7 @@ class Player final: public Unit void SetCheatAlwaysProc(bool on, bool notify = false); void SetCheatTriggerPass(bool on, bool notify = false); void SetCheatIgnoreTriggers(bool on, bool notify = false); + void SetCheatDebugTargetInfo(bool on, bool notify = false); uint16 GetCheatOptions() const { return m_cheatOptions; } bool HasCheatOption(PlayerCheatOptions o) const { return (m_cheatOptions & o); } void EnableCheatOption(PlayerCheatOptions o) { m_cheatOptions |= o; } From 19dc283956c97d00f28b68b5fc6d266b00883e3f Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 27 Nov 2023 22:27:58 +0200 Subject: [PATCH 357/426] Revert "Fix division by zero." This reverts commit 73dc96ec9f042ee35df3c36acb4e4379fa80d0c9. --- src/game/Objects/Player.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index bc8311ef3d7..b7bac087934 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -5776,9 +5776,6 @@ inline int SkillGainChance(uint32 SkillValue, uint32 GrayLevel, uint32 GreenLeve inline int CraftingSkillGainChance(uint32 SkillValue, uint32 GrayLevel, uint32 YellowLevel) { - if (YellowLevel >= GrayLevel) - return 0; - // Linear decrease in chance as you go from the YellowLevel -> GrayLevel. // To avoid casting to floats and back to uint32 we multiply the numerator by 1000, to get into a range of 0-1000. return G3D::iClamp(((GrayLevel - SkillValue) * 1000) / (GrayLevel - YellowLevel), 0, 1000); From 0134f7c4e3fae3813e56cb608da27a06c669df0d Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 27 Nov 2023 22:28:22 +0200 Subject: [PATCH 358/426] Revert "Add new formula for crafting skill gain chance (#2291)" This reverts commit 71088084917aec4a63d730f96d6e0de7be684487. --- src/game/Objects/Player.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index b7bac087934..d38979f5bef 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -5774,13 +5774,6 @@ inline int SkillGainChance(uint32 SkillValue, uint32 GrayLevel, uint32 GreenLeve return sWorld.getConfig(CONFIG_UINT32_SKILL_CHANCE_ORANGE) * 10; } -inline int CraftingSkillGainChance(uint32 SkillValue, uint32 GrayLevel, uint32 YellowLevel) -{ - // Linear decrease in chance as you go from the YellowLevel -> GrayLevel. - // To avoid casting to floats and back to uint32 we multiply the numerator by 1000, to get into a range of 0-1000. - return G3D::iClamp(((GrayLevel - SkillValue) * 1000) / (GrayLevel - YellowLevel), 0, 1000); -} - bool Player::UpdateCraftSkill(uint32 spellid) { sLog.Out(LOG_BASIC, LOG_LVL_DEBUG, "UpdateCraftSkill spellid %d", spellid); @@ -5795,8 +5788,9 @@ bool Player::UpdateCraftSkill(uint32 spellid) uint32 craft_skill_gain = sWorld.getConfig(CONFIG_UINT32_SKILL_GAIN_CRAFTING); - return UpdateSkillPro(_spell_idx->second->skillId, CraftingSkillGainChance(SkillValue, + return UpdateSkillPro(_spell_idx->second->skillId, SkillGainChance(SkillValue, _spell_idx->second->max_value, + (_spell_idx->second->max_value + _spell_idx->second->min_value) / 2, _spell_idx->second->min_value), craft_skill_gain); } From ece3ec3f2f3bfacf1c920f86771a0d0e187115f9 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 29 Nov 2023 03:13:47 +0200 Subject: [PATCH 359/426] Add missing includes. Fixes build without PCH. --- src/game/AI/PlayerAI.cpp | 1 + src/game/AI/ScriptedEscortAI.cpp | 1 + src/game/AccountMgr.h | 1 + src/game/Battlegrounds/BattleGround.h | 231 +--------------- src/game/Battlegrounds/BattleGroundAV.cpp | 1 + src/game/Battlegrounds/BattleGroundDefines.h | 256 ++++++++++++++++++ src/game/CMakeLists.txt | 1 + src/game/CreatureGroups.cpp | 1 + src/game/CreatureGroups.h | 1 + src/game/Formulas.h | 1 + src/game/Group/Group.h | 2 +- src/game/Guild/GuildMgr.h | 1 + src/game/Handlers/CombatHandler.cpp | 1 + src/game/Handlers/SpellHandler.cpp | 1 + src/game/Handlers/TradeHandler.cpp | 1 + src/game/Maps/MapManager.cpp | 1 + .../Movement/WaypointMovementGenerator.cpp | 1 + src/game/Objects/Player.cpp | 15 + src/game/Objects/Player.h | 12 +- .../PacketBroadcast/MovementBroadcaster.h | 2 +- src/game/PlayerBots/BattleBotAI.cpp | 1 + src/game/PlayerBots/PlayerBotMgr.h | 1 + src/game/SocialMgr.h | 1 + src/game/UnitAuraProcHandler.cpp | 1 + 24 files changed, 300 insertions(+), 236 deletions(-) create mode 100644 src/game/Battlegrounds/BattleGroundDefines.h diff --git a/src/game/AI/PlayerAI.cpp b/src/game/AI/PlayerAI.cpp index 3061dfc52f4..cfcf5ba4eeb 100644 --- a/src/game/AI/PlayerAI.cpp +++ b/src/game/AI/PlayerAI.cpp @@ -23,6 +23,7 @@ #include "SpellMgr.h" #include "MotionMaster.h" #include "Spell.h" +#include "Map.h" void PlayerAI::Remove() { diff --git a/src/game/AI/ScriptedEscortAI.cpp b/src/game/AI/ScriptedEscortAI.cpp index 0975f5243a4..056037a044a 100644 --- a/src/game/AI/ScriptedEscortAI.cpp +++ b/src/game/AI/ScriptedEscortAI.cpp @@ -15,6 +15,7 @@ EndScriptData */ #include "MovementGenerator.h" #include "Player.h" #include "Group.h" +#include "Map.h" float const DEFAULT_MAX_PLAYER_DISTANCE = 100.0f; float const DEFAULT_MAX_ASSIST_DISTANCE = 40.0f; diff --git a/src/game/AccountMgr.h b/src/game/AccountMgr.h index 7540519c636..5b1652130c9 100644 --- a/src/game/AccountMgr.h +++ b/src/game/AccountMgr.h @@ -40,6 +40,7 @@ enum AccountOpResult class WorldSession; class ChatHandler; class MasterPlayer; +class QueryResult; #define MAX_ACCOUNT_STR 16 diff --git a/src/game/Battlegrounds/BattleGround.h b/src/game/Battlegrounds/BattleGround.h index fa7a0986720..8ddc9315869 100644 --- a/src/game/Battlegrounds/BattleGround.h +++ b/src/game/Battlegrounds/BattleGround.h @@ -28,13 +28,8 @@ #include "ByteBuffer.h" #include "ObjectGuid.h" #include "WorldStates.h" - -// magic event-numbers -#define BG_EVENT_NONE 255 -// those generic events should get a high event id -#define BG_EVENT_GHOST_GATE 253 -#define BG_EVENT_DOOR 254 - +#include "SpellDefines.h" +#include "BattleGroundDefines.h" class Creature; class GameObject; @@ -47,228 +42,6 @@ class SpellInfo; struct WorldSafeLocsEntry; -struct BattleGroundEventIdx -{ - uint8 event1; - uint8 event2; -}; - -enum BattleGroundSounds -{ - SOUND_HORDE_WINS = 8454, - SOUND_ALLIANCE_WINS = 8455, - SOUND_BG_START = 3439 -}; - -enum BattleGroundTexts -{ - BCT_BG_AV_A_WINS = 7335, - BCT_BG_AV_H_WINS = 7336, - - BCT_BG_AV_START_ONE_MINUTE = 10638, - BCT_BG_AV_START_HALF_MINUTE = 10639, - BCT_BG_AV_HAS_BEGUN = 10640, - - BCT_BG_WS_A_WINS = 9843, - BCT_BG_WS_H_WINS = 9842, - - BCT_BG_WS_START_ONE_MINUTE = 10015, - BCT_BG_WS_START_HALF_MINUTE = 10016, - BCT_BG_WS_HAS_BEGUN = 10014, - - BCT_BG_WS_CAPTURED_HF = 9801, - BCT_BG_WS_CAPTURED_AF = 9802, - BCT_BG_WS_DROPPED_HF = 9806, - BCT_BG_WS_DROPPED_AF = 9805, - BCT_BG_WS_RETURNED_AF = 9808, - BCT_BG_WS_RETURNED_HF = 9809, - BCT_BG_WS_PICKEDUP_HF = 9807, - BCT_BG_WS_PICKEDUP_AF = 9804, - BCT_BG_WS_F_PLACED = 9803, - BCT_BG_WS_ALLIANCE_FLAG_RESPAWNED = 10022, - BCT_BG_WS_HORDE_FLAG_RESPAWNED = 10023, - - BCT_BG_AB_A_WINS = 10633, - BCT_BG_AB_H_WINS = 10634, - - BCT_BG_AB_START_ONE_MINUTE = 10477, - BCT_BG_AB_START_HALF_MINUTE = 10478, - BCT_BG_AB_HAS_BEGUN = 10479, - BCT_BG_AB_A_NEAR_VICTORY = 10598, - BCT_BG_AB_H_NEAR_VICTORY = 10599, -}; - -enum BattleGroundCreatures -{ - NPC_AV_HERALD = 14848, - NPC_WSG_HERALD = 14645 -}; - -enum BattleGroundQuests -{ -// SPELL_WS_QUEST_REWARD = 43483, -// SPELL_AB_QUEST_REWARD = 43484, -// SPELL_AV_QUEST_REWARD = 43475, - SPELL_AV_QUEST_KILLED_BOSS = 23658, - SPELL_AB_QUEST_REWARD_4_BASES = 24061, - SPELL_AB_QUEST_REWARD_5_BASES = 24064 -}; - -enum BattleGroundMarks -{ - SPELL_WS_ALLY_WINNER = 23661, - SPELL_WS_HORDE_WINNER = 23702, - SPELL_AB_OLD_WINNER = 24017, - SPELL_WS_OLD_LOSER = 24637, - SPELL_WS_MARK_LOSER = 24950, - SPELL_WS_MARK_WINNER = 24951, - SPELL_AB_MARK_LOSER = 24952, - SPELL_AB_MARK_WINNER = 24953, - SPELL_AV_MARK_LOSER = 24954, - SPELL_AV_MARK_WINNER = 24955, -}; - -enum BattleGroundTimeIntervals -{ - RESURRECTION_INTERVAL = 30000, // ms - REMIND_INTERVAL = 30000, // ms - INVITATION_REMIND_TIME = 60000, // ms - INVITE_ACCEPT_WAIT_TIME = 80000, // ms - TIME_TO_AUTOREMOVE = 120000, // ms - MAX_OFFLINE_TIME = 30, // secs - RESPAWN_IMMEDIATELY = 0, // secs - RESPAWN_2MINUTES = 120, // secs - BUFF_RESPAWN_TIME = 180, // secs - RESPAWN_NEVER = 31536000, // secs (1 year) -}; - -enum BattleGroundStartTimeIntervals -{ - BG_START_DELAY_2M = 120000, // ms (2 minutes) - BG_START_DELAY_1M = 60000, // ms (1 minute) - BG_START_DELAY_30S = 30000, // ms (30 seconds) - BG_START_DELAY_NONE = 0, // ms -}; - -enum BattleGroundBuffObjects -{ - BG_OBJECTID_SPEEDBUFF_ENTRY = 179871, - BG_OBJECTID_REGENBUFF_ENTRY = 179904, - BG_OBJECTID_BERSERKERBUFF_ENTRY = 179905 -}; - -uint32 const g_buffEntries[3] = { BG_OBJECTID_SPEEDBUFF_ENTRY, BG_OBJECTID_REGENBUFF_ENTRY, BG_OBJECTID_BERSERKERBUFF_ENTRY }; - -enum BattleGroundStatus -{ - STATUS_NONE = 0, // first status, should mean bg is not instance - STATUS_WAIT_QUEUE = 1, // means bg is empty and waiting for queue - STATUS_WAIT_JOIN = 2, // this means, that BG has already started and it is waiting for more players - STATUS_IN_PROGRESS = 3, // means bg is running - STATUS_WAIT_LEAVE = 4 // means some faction has won BG and it is ending -}; - -struct BattleGroundPlayer -{ - Team playerTeam; // Player's team -}; - -// handle the queue types and bg types separately to enable joining queue for different sized arenas at the same time -enum BattleGroundQueueTypeId -{ - BATTLEGROUND_QUEUE_NONE = 0, - BATTLEGROUND_QUEUE_AV = 1, - BATTLEGROUND_QUEUE_WS = 2, - BATTLEGROUND_QUEUE_AB = 3, -}; -#define MAX_BATTLEGROUND_QUEUE_TYPES 4 - -enum BattleGroundBracketId // bracketId for level ranges -{ - BG_BRACKET_ID_NONE = -1, - BG_BRACKET_ID_FIRST = 0, // brackets start from specific BG min level and each include 10 levels range - BG_BRACKET_ID_LAST = 5, // so for start level 10 will be 10-19, 20-29, ... all greater max bg level included in last bracket - - MAX_BATTLEGROUND_BRACKETS = 6 // used as one from values, so in enum -}; - -enum ScoreType -{ - SCORE_KILLING_BLOWS = 1, - SCORE_DEATHS = 2, - SCORE_HONORABLE_KILLS = 3, - SCORE_BONUS_HONOR = 4, - //WS - SCORE_FLAG_CAPTURES = 7, - SCORE_FLAG_RETURNS = 8, - //AB - SCORE_BASES_ASSAULTED = 9, - SCORE_BASES_DEFENDED = 10, - //AV - SCORE_GRAVEYARDS_ASSAULTED = 11, - SCORE_GRAVEYARDS_DEFENDED = 12, - SCORE_TOWERS_ASSAULTED = 13, - SCORE_TOWERS_DEFENDED = 14, - SCORE_SECONDARY_OBJECTIVES = 15 -}; - -enum BattleGroundWinner -{ - WINNER_HORDE = 0, - WINNER_ALLIANCE = 1, - WINNER_NONE = 2 -}; - -enum BattleGroundTeamIndex -{ - BG_TEAM_ALLIANCE = 0, - BG_TEAM_HORDE = 1 -}; - -#define BG_TEAMS_COUNT 2 - -enum BattleGroundStartingEvents -{ - BG_STARTING_EVENT_NONE = 0x00, - BG_STARTING_EVENT_1 = 0x01, - BG_STARTING_EVENT_2 = 0x02, - BG_STARTING_EVENT_3 = 0x04, - BG_STARTING_EVENT_4 = 0x08, - BG_DOORS_DESPAWNED = 0x10, -}; - -enum BattleGroundStartingEventsIds -{ - BG_STARTING_EVENT_FIRST = 0, - BG_STARTING_EVENT_SECOND = 1, - BG_STARTING_EVENT_THIRD = 2, - BG_STARTING_EVENT_FOURTH = 3 -}; -#define BG_STARTING_EVENT_COUNT 4 - -enum BattleGroundCreatureSpawnMode -{ - DESPAWN_FORCED = 0, - RESPAWN_STOP = 1, - RESPAWN_START = 2, - RESPAWN_FORCED = 3 -}; -#define BG_CREATURE_SPAWN_MODE_COUNT 4 - -enum BattleGroundJoinError -{ - BG_JOIN_ERR_OK = 0, - BG_JOIN_ERR_OFFLINE_MEMBER = 1, - BG_JOIN_ERR_GROUP_TOO_MANY = 2, - BG_JOIN_ERR_MIXED_FACTION = 3, - BG_JOIN_ERR_MIXED_LEVELS = 4, - //BG_JOIN_ERR_MIXED_ARENATEAM = 5, - BG_JOIN_ERR_GROUP_MEMBER_ALREADY_IN_QUEUE = 6, - BG_JOIN_ERR_GROUP_DESERTER = 7, - BG_JOIN_ERR_ALL_QUEUES_USED = 8, - BG_JOIN_ERR_GROUP_NOT_ENOUGH = 9 -}; - class BattleGroundScore { public: diff --git a/src/game/Battlegrounds/BattleGroundAV.cpp b/src/game/Battlegrounds/BattleGroundAV.cpp index 281a51bbddc..e18625a12f7 100644 --- a/src/game/Battlegrounds/BattleGroundAV.cpp +++ b/src/game/Battlegrounds/BattleGroundAV.cpp @@ -28,6 +28,7 @@ #include "Language.h" #include "WorldPacket.h" #include "Chat.h" +#include "World.h" BattleGroundAV::BattleGroundAV() diff --git a/src/game/Battlegrounds/BattleGroundDefines.h b/src/game/Battlegrounds/BattleGroundDefines.h new file mode 100644 index 00000000000..bdb52c7651f --- /dev/null +++ b/src/game/Battlegrounds/BattleGroundDefines.h @@ -0,0 +1,256 @@ +/* + * Copyright (C) 2005-2011 MaNGOS + * Copyright (C) 2009-2011 MaNGOSZero + * Copyright (C) 2011-2016 Nostalrius + * Copyright (C) 2016-2017 Elysium Project + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef _BATTLEGROUND_DEFINES_H +#define _BATTLEGROUND_DEFINES_H + +#include "Common.h" + +// magic event-numbers +#define BG_EVENT_NONE 255 + +// those generic events should get a high event id +#define BG_EVENT_GHOST_GATE 253 +#define BG_EVENT_DOOR 254 + +struct BattleGroundEventIdx +{ + uint8 event1; + uint8 event2; +}; + +enum BattleGroundSounds +{ + SOUND_HORDE_WINS = 8454, + SOUND_ALLIANCE_WINS = 8455, + SOUND_BG_START = 3439 +}; + +enum BattleGroundTexts +{ + BCT_BG_AV_A_WINS = 7335, + BCT_BG_AV_H_WINS = 7336, + + BCT_BG_AV_START_ONE_MINUTE = 10638, + BCT_BG_AV_START_HALF_MINUTE = 10639, + BCT_BG_AV_HAS_BEGUN = 10640, + + BCT_BG_WS_A_WINS = 9843, + BCT_BG_WS_H_WINS = 9842, + + BCT_BG_WS_START_ONE_MINUTE = 10015, + BCT_BG_WS_START_HALF_MINUTE = 10016, + BCT_BG_WS_HAS_BEGUN = 10014, + + BCT_BG_WS_CAPTURED_HF = 9801, + BCT_BG_WS_CAPTURED_AF = 9802, + BCT_BG_WS_DROPPED_HF = 9806, + BCT_BG_WS_DROPPED_AF = 9805, + BCT_BG_WS_RETURNED_AF = 9808, + BCT_BG_WS_RETURNED_HF = 9809, + BCT_BG_WS_PICKEDUP_HF = 9807, + BCT_BG_WS_PICKEDUP_AF = 9804, + BCT_BG_WS_F_PLACED = 9803, + BCT_BG_WS_ALLIANCE_FLAG_RESPAWNED = 10022, + BCT_BG_WS_HORDE_FLAG_RESPAWNED = 10023, + + BCT_BG_AB_A_WINS = 10633, + BCT_BG_AB_H_WINS = 10634, + + BCT_BG_AB_START_ONE_MINUTE = 10477, + BCT_BG_AB_START_HALF_MINUTE = 10478, + BCT_BG_AB_HAS_BEGUN = 10479, + BCT_BG_AB_A_NEAR_VICTORY = 10598, + BCT_BG_AB_H_NEAR_VICTORY = 10599, +}; + +enum BattleGroundCreatures +{ + NPC_AV_HERALD = 14848, + NPC_WSG_HERALD = 14645 +}; + +enum BattleGroundQuests +{ +// SPELL_WS_QUEST_REWARD = 43483, +// SPELL_AB_QUEST_REWARD = 43484, +// SPELL_AV_QUEST_REWARD = 43475, + SPELL_AV_QUEST_KILLED_BOSS = 23658, + SPELL_AB_QUEST_REWARD_4_BASES = 24061, + SPELL_AB_QUEST_REWARD_5_BASES = 24064 +}; + +enum BattleGroundMarks +{ + SPELL_WS_ALLY_WINNER = 23661, + SPELL_WS_HORDE_WINNER = 23702, + SPELL_AB_OLD_WINNER = 24017, + SPELL_WS_OLD_LOSER = 24637, + SPELL_WS_MARK_LOSER = 24950, + SPELL_WS_MARK_WINNER = 24951, + SPELL_AB_MARK_LOSER = 24952, + SPELL_AB_MARK_WINNER = 24953, + SPELL_AV_MARK_LOSER = 24954, + SPELL_AV_MARK_WINNER = 24955, +}; + +enum BattleGroundTimeIntervals +{ + RESURRECTION_INTERVAL = 30000, // ms + REMIND_INTERVAL = 30000, // ms + INVITATION_REMIND_TIME = 60000, // ms + INVITE_ACCEPT_WAIT_TIME = 80000, // ms + TIME_TO_AUTOREMOVE = 120000, // ms + MAX_OFFLINE_TIME = 30, // secs + RESPAWN_IMMEDIATELY = 0, // secs + RESPAWN_2MINUTES = 120, // secs + BUFF_RESPAWN_TIME = 180, // secs + RESPAWN_NEVER = 31536000, // secs (1 year) +}; + +enum BattleGroundStartTimeIntervals +{ + BG_START_DELAY_2M = 120000, // ms (2 minutes) + BG_START_DELAY_1M = 60000, // ms (1 minute) + BG_START_DELAY_30S = 30000, // ms (30 seconds) + BG_START_DELAY_NONE = 0, // ms +}; + +enum BattleGroundBuffObjects +{ + BG_OBJECTID_SPEEDBUFF_ENTRY = 179871, + BG_OBJECTID_REGENBUFF_ENTRY = 179904, + BG_OBJECTID_BERSERKERBUFF_ENTRY = 179905 +}; + +uint32 const g_buffEntries[3] = { BG_OBJECTID_SPEEDBUFF_ENTRY, BG_OBJECTID_REGENBUFF_ENTRY, BG_OBJECTID_BERSERKERBUFF_ENTRY }; + +enum BattleGroundStatus +{ + STATUS_NONE = 0, // first status, should mean bg is not instance + STATUS_WAIT_QUEUE = 1, // means bg is empty and waiting for queue + STATUS_WAIT_JOIN = 2, // this means, that BG has already started and it is waiting for more players + STATUS_IN_PROGRESS = 3, // means bg is running + STATUS_WAIT_LEAVE = 4 // means some faction has won BG and it is ending +}; + +struct BattleGroundPlayer +{ + Team playerTeam; // Player's team +}; + +// handle the queue types and bg types separately to enable joining queue for different sized arenas at the same time +enum BattleGroundQueueTypeId +{ + BATTLEGROUND_QUEUE_NONE = 0, + BATTLEGROUND_QUEUE_AV = 1, + BATTLEGROUND_QUEUE_WS = 2, + BATTLEGROUND_QUEUE_AB = 3, +}; +#define MAX_BATTLEGROUND_QUEUE_TYPES 4 + +enum BattleGroundBracketId // bracketId for level ranges +{ + BG_BRACKET_ID_NONE = -1, + BG_BRACKET_ID_FIRST = 0, // brackets start from specific BG min level and each include 10 levels range + BG_BRACKET_ID_LAST = 5, // so for start level 10 will be 10-19, 20-29, ... all greater max bg level included in last bracket + + MAX_BATTLEGROUND_BRACKETS = 6 // used as one from values, so in enum +}; + +enum ScoreType +{ + SCORE_KILLING_BLOWS = 1, + SCORE_DEATHS = 2, + SCORE_HONORABLE_KILLS = 3, + SCORE_BONUS_HONOR = 4, + //WS + SCORE_FLAG_CAPTURES = 7, + SCORE_FLAG_RETURNS = 8, + //AB + SCORE_BASES_ASSAULTED = 9, + SCORE_BASES_DEFENDED = 10, + //AV + SCORE_GRAVEYARDS_ASSAULTED = 11, + SCORE_GRAVEYARDS_DEFENDED = 12, + SCORE_TOWERS_ASSAULTED = 13, + SCORE_TOWERS_DEFENDED = 14, + SCORE_SECONDARY_OBJECTIVES = 15 +}; + +enum BattleGroundWinner +{ + WINNER_HORDE = 0, + WINNER_ALLIANCE = 1, + WINNER_NONE = 2 +}; + +enum BattleGroundTeamIndex +{ + BG_TEAM_ALLIANCE = 0, + BG_TEAM_HORDE = 1 +}; + +#define BG_TEAMS_COUNT 2 + +enum BattleGroundStartingEvents +{ + BG_STARTING_EVENT_NONE = 0x00, + BG_STARTING_EVENT_1 = 0x01, + BG_STARTING_EVENT_2 = 0x02, + BG_STARTING_EVENT_3 = 0x04, + BG_STARTING_EVENT_4 = 0x08, + BG_DOORS_DESPAWNED = 0x10, +}; + +enum BattleGroundStartingEventsIds +{ + BG_STARTING_EVENT_FIRST = 0, + BG_STARTING_EVENT_SECOND = 1, + BG_STARTING_EVENT_THIRD = 2, + BG_STARTING_EVENT_FOURTH = 3 +}; +#define BG_STARTING_EVENT_COUNT 4 + +enum BattleGroundCreatureSpawnMode +{ + DESPAWN_FORCED = 0, + RESPAWN_STOP = 1, + RESPAWN_START = 2, + RESPAWN_FORCED = 3 +}; +#define BG_CREATURE_SPAWN_MODE_COUNT 4 + +enum BattleGroundJoinError +{ + BG_JOIN_ERR_OK = 0, + BG_JOIN_ERR_OFFLINE_MEMBER = 1, + BG_JOIN_ERR_GROUP_TOO_MANY = 2, + BG_JOIN_ERR_MIXED_FACTION = 3, + BG_JOIN_ERR_MIXED_LEVELS = 4, + //BG_JOIN_ERR_MIXED_ARENATEAM = 5, + BG_JOIN_ERR_GROUP_MEMBER_ALREADY_IN_QUEUE = 6, + BG_JOIN_ERR_GROUP_DESERTER = 7, + BG_JOIN_ERR_ALL_QUEUES_USED = 8, + BG_JOIN_ERR_GROUP_NOT_ENOUGH = 9 +}; + +#endif diff --git a/src/game/CMakeLists.txt b/src/game/CMakeLists.txt index f396ab36be4..3b14bea93f7 100644 --- a/src/game/CMakeLists.txt +++ b/src/game/CMakeLists.txt @@ -284,6 +284,7 @@ set (game_SRCS Battlegrounds/BattleGroundAB.h Battlegrounds/BattleGroundAV.h Battlegrounds/BattleGroundMgr.h + Battlegrounds/BattleGroundDefines.h Battlegrounds/BattleGroundWS.h Chat/Channel.h Chat/ChannelMgr.h diff --git a/src/game/CreatureGroups.cpp b/src/game/CreatureGroups.cpp index 3e748d4ecb1..68609fff3dd 100644 --- a/src/game/CreatureGroups.cpp +++ b/src/game/CreatureGroups.cpp @@ -20,6 +20,7 @@ #include "CreatureGroups.h" #include "ObjectMgr.h" #include "CreatureAI.h" +#include "BattleGround.h" void CreatureGroup::AddMember(ObjectGuid guid, float followDist, float followAngle, uint32 memberFlags) { diff --git a/src/game/CreatureGroups.h b/src/game/CreatureGroups.h index a06137b400f..ad5f052eff2 100644 --- a/src/game/CreatureGroups.h +++ b/src/game/CreatureGroups.h @@ -24,6 +24,7 @@ #include +class Map; class Unit; class Creature; class CreatureGroup; diff --git a/src/game/Formulas.h b/src/game/Formulas.h index 09a0556f010..4399ca1d75b 100644 --- a/src/game/Formulas.h +++ b/src/game/Formulas.h @@ -25,6 +25,7 @@ #include "World.h" #include "Creature.h" #include "Player.h" +#include "Map.h" namespace MaNGOS { diff --git a/src/game/Group/Group.h b/src/game/Group/Group.h index 2931bf3e373..5565a91b0d2 100644 --- a/src/game/Group/Group.h +++ b/src/game/Group/Group.h @@ -27,7 +27,7 @@ #include "ObjectGuid.h" #include "GroupReference.h" #include "GroupRefManager.h" -#include "BattleGround.h" +#include "BattleGroundDefines.h" #include "LootMgr.h" #include "LFGMgr.h" #include "DBCEnums.h" diff --git a/src/game/Guild/GuildMgr.h b/src/game/Guild/GuildMgr.h index 1d0eb8d9fca..134613ae111 100644 --- a/src/game/Guild/GuildMgr.h +++ b/src/game/Guild/GuildMgr.h @@ -22,6 +22,7 @@ #include "Common.h" #include "Policies/Singleton.h" #include "World.h" +#include class Guild; class ObjectGuid; diff --git a/src/game/Handlers/CombatHandler.cpp b/src/game/Handlers/CombatHandler.cpp index 386b1dd1abe..853a98e7a47 100644 --- a/src/game/Handlers/CombatHandler.cpp +++ b/src/game/Handlers/CombatHandler.cpp @@ -27,6 +27,7 @@ #include "CreatureAI.h" #include "ObjectGuid.h" #include "Player.h" +#include "Map.h" void WorldSession::HandleAttackSwingOpcode(WorldPacket& recv_data) { diff --git a/src/game/Handlers/SpellHandler.cpp b/src/game/Handlers/SpellHandler.cpp index 40558fa6de9..7a210b0ea1b 100644 --- a/src/game/Handlers/SpellHandler.cpp +++ b/src/game/Handlers/SpellHandler.cpp @@ -29,6 +29,7 @@ #include "Spell.h" #include "SpellAuras.h" #include "GameObject.h" +#include "Map.h" using namespace Spells; diff --git a/src/game/Handlers/TradeHandler.cpp b/src/game/Handlers/TradeHandler.cpp index b6bfc38e208..59ace550c87 100644 --- a/src/game/Handlers/TradeHandler.cpp +++ b/src/game/Handlers/TradeHandler.cpp @@ -30,6 +30,7 @@ #include "Spell.h" #include "SocialMgr.h" #include "Language.h" +#include "Map.h" void WorldSession::SendTradeStatus(TradeStatus status) { diff --git a/src/game/Maps/MapManager.cpp b/src/game/Maps/MapManager.cpp index 9f3905af533..616df18fc70 100644 --- a/src/game/Maps/MapManager.cpp +++ b/src/game/Maps/MapManager.cpp @@ -31,6 +31,7 @@ #include "Group.h" #include "ZoneScriptMgr.h" #include "Map.h" +#include "BattleGround.h" #include "ThreadPool.h" typedef MaNGOS::ClassLevelLockable MapManagerLock; diff --git a/src/game/Movement/WaypointMovementGenerator.cpp b/src/game/Movement/WaypointMovementGenerator.cpp index dd35e270f9d..e06baa8b42b 100644 --- a/src/game/Movement/WaypointMovementGenerator.cpp +++ b/src/game/Movement/WaypointMovementGenerator.cpp @@ -27,6 +27,7 @@ #include "MoveSplineInit.h" #include "MoveSpline.h" #include "CreatureGroups.h" +#include "Map.h" #include diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index d38979f5bef..41c0b12c3fa 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -21245,6 +21245,21 @@ bool Player::TeleportToHomebind(uint32 options, bool hearthCooldown) return TeleportTo(m_homebind, (options | TELE_TO_FORCE_MAP_CHANGE)); } +Unit* Player::GetSelectedUnit() +{ + return GetMap()->GetUnit(m_curSelectionGuid); +} + +Creature* Player::GetSelectedCreature() +{ + return GetMap()->GetCreature(m_curSelectionGuid); +} + +Player* Player::GetSelectedPlayer() +{ + return GetMap()->GetPlayer(m_curSelectionGuid); +} + Object* Player::GetObjectByTypeMask(ObjectGuid guid, TypeMask typemask) { switch (guid.GetHigh()) diff --git a/src/game/Objects/Player.h b/src/game/Objects/Player.h index 7d550628a77..f4f7d80de58 100644 --- a/src/game/Objects/Player.h +++ b/src/game/Objects/Player.h @@ -26,11 +26,12 @@ #include "Unit.h" #include "Database/DatabaseEnv.h" #include "GroupReference.h" +#include "MapReference.h" #include "WorldSession.h" #include "Pet.h" #include "Util.h" // for Tokens typedef #include "ReputationMgr.h" -#include "BattleGround.h" +#include "BattleGroundDefines.h" #include "SharedDefines.h" #include "GameObjectDefines.h" #include "SpellMgr.h" @@ -39,6 +40,7 @@ #include #include #include +#include struct Mail; struct ItemPrototype; @@ -56,7 +58,7 @@ class Item; class ZoneScript; class PlayerAI; class PlayerBroadcaster; -class MapReference; +class BattleGround; #define PLAYER_MAX_SKILLS 127 #define PLAYER_EXPLORED_ZONES_SIZE 64 @@ -2244,9 +2246,9 @@ class Player final: public Unit void SetSelectedGobj(ObjectGuid guid) { m_selectedGobj = guid; } ObjectGuid const& GetSelectionGuid() const { return m_curSelectionGuid; } void SetSelectionGuid(ObjectGuid guid) { m_curSelectionGuid = guid; SetTargetGuid(guid); } - Unit* GetSelectedUnit() { return GetMap()->GetUnit(m_curSelectionGuid); } - Creature* GetSelectedCreature() { return GetMap()->GetCreature(m_curSelectionGuid); } - Player* GetSelectedPlayer() { return GetMap()->GetPlayer(m_curSelectionGuid); } + Unit* GetSelectedUnit(); + Creature* GetSelectedCreature(); + Player* GetSelectedPlayer(); Object* GetObjectByTypeMask(ObjectGuid guid, TypeMask typemask); void SetResurrectRequestData(ObjectGuid guid, uint32 mapId, float X, float Y, float Z, uint32 health, uint32 mana) diff --git a/src/game/PacketBroadcast/MovementBroadcaster.h b/src/game/PacketBroadcast/MovementBroadcaster.h index c6752f69379..3e147c3765a 100644 --- a/src/game/PacketBroadcast/MovementBroadcaster.h +++ b/src/game/PacketBroadcast/MovementBroadcaster.h @@ -3,7 +3,7 @@ #include #include -#include +#include #include #include #include diff --git a/src/game/PlayerBots/BattleBotAI.cpp b/src/game/PlayerBots/BattleBotAI.cpp index 37955e54f80..6dce7cdcb91 100644 --- a/src/game/PlayerBots/BattleBotAI.cpp +++ b/src/game/PlayerBots/BattleBotAI.cpp @@ -16,6 +16,7 @@ #include "BattleBotAI.h" #include "BattleBotWaypoints.h" +#include "BattleGround.h" #include "Player.h" #include "Group.h" #include "CreatureAI.h" diff --git a/src/game/PlayerBots/PlayerBotMgr.h b/src/game/PlayerBots/PlayerBotMgr.h index dae134a3605..f7b753204ce 100644 --- a/src/game/PlayerBots/PlayerBotMgr.h +++ b/src/game/PlayerBots/PlayerBotMgr.h @@ -5,6 +5,7 @@ #include "Policies/Singleton.h" #include "Database/DatabaseEnv.h" #include "PlayerBotAI.h" +#include "BattleGroundDefines.h" #include #include diff --git a/src/game/SocialMgr.h b/src/game/SocialMgr.h index 1ec0e1c8a75..2d5a705a295 100644 --- a/src/game/SocialMgr.h +++ b/src/game/SocialMgr.h @@ -25,6 +25,7 @@ #include "Policies/Singleton.h" #include "Database/DatabaseEnv.h" #include "ObjectGuid.h" +#include class SocialMgr; class PlayerSocial; diff --git a/src/game/UnitAuraProcHandler.cpp b/src/game/UnitAuraProcHandler.cpp index 27d6d28b1c8..cdd8fe53ce7 100644 --- a/src/game/UnitAuraProcHandler.cpp +++ b/src/game/UnitAuraProcHandler.cpp @@ -28,6 +28,7 @@ #include "SpellMgr.h" #include "Util.h" #include "World.h" +#include "GridMap.h" pAuraProcHandler AuraProcHandler[TOTAL_AURAS] = { From e87d583a5e50ad49f12a716fb408b393d3c21103 Mon Sep 17 00:00:00 2001 From: ratkosrb <35845488+ratkosrb@users.noreply.github.com> Date: Wed, 29 Nov 2023 11:42:53 +0200 Subject: [PATCH 360/426] Add missing include in MovementAnticheat.cpp --- src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp b/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp index 03bc2180532..733c1bcc2e4 100644 --- a/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp +++ b/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp @@ -12,6 +12,7 @@ #include "MovementPacketSender.h" #include "Geometry.h" #include "AccountMgr.h" +#include "BattleGround.h" using namespace Geometry; From 0ef1491e07d8d93a244bc149ee85addf29b7093d Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 29 Nov 2023 19:30:31 +0200 Subject: [PATCH 361/426] New script for Ambassador Flamelash. --- sql/migrations/20231129163323_world.sql | 45 +++++ src/scripts/CMakeLists.txt | 1 - src/scripts/ScriptLoader.cpp | 2 - .../blackrock_depths/blackrock_depths.h | 8 +- .../boss_ambassador_flamelash.cpp | 157 ------------------ .../instance_blackrock_depths.cpp | 82 +++++++++ 6 files changed, 134 insertions(+), 161 deletions(-) create mode 100644 sql/migrations/20231129163323_world.sql delete mode 100644 src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/boss_ambassador_flamelash.cpp diff --git a/sql/migrations/20231129163323_world.sql b/sql/migrations/20231129163323_world.sql new file mode 100644 index 00000000000..0596ceb680c --- /dev/null +++ b/sql/migrations/20231129163323_world.sql @@ -0,0 +1,45 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231129163323'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231129163323'); +-- Add your query below. + + +-- Events list for Ambassador Flamelash +DELETE FROM `creature_ai_events` WHERE `creature_id`=9156; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (915601, 9156, 0, 4, 0, 100, 0, 0, 0, 0, 0, 915601, 0, 0, 'Ambassador Flamelash - Set Data on Aggro'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (915602, 9156, 0, 7, 0, 100, 0, 0, 0, 0, 0, 915602, 0, 0, 'Ambassador Flamelash - Set Data on Evade'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (915603, 9156, 0, 6, 0, 100, 0, 0, 0, 0, 0, 915603, 0, 0, 'Ambassador Flamelash - Set Data on Death'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (915604, 9156, 0, 0, 0, 100, 1, 5000, 5000, 5000, 5000, 915604, 0, 0, 'Ambassador Flamelash - Consume Burning Spirits in Combat'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (915605, 9156, 0, 8, 0, 100, 1, 13489, -1, 0, 0, 915605, 0, 0, 'Ambassador Flamelash - Cast Burning Spirit on Hit By Spell Burning Spirit'); +DELETE FROM `creature_ai_scripts` WHERE `id`=915601; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(915601, 0, 0, 37, 43, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ambassador Flamelash - Set Data TYPE_FLAMELASH to IN_PROGRESS'); +DELETE FROM `creature_ai_scripts` WHERE `id`=915602; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(915602, 0, 0, 37, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ambassador Flamelash - Set Data TYPE_FLAMELASH to NOT_STARTED'); +DELETE FROM `creature_ai_scripts` WHERE `id`=915603; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(915603, 0, 0, 37, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ambassador Flamelash - Set Data TYPE_FLAMELASH to DONE'); +DELETE FROM `creature_ai_scripts` WHERE `id`=915604; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(915604, 0, 0, 68, 915604, 2, 9178, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ambassador Flamelash - Start Script on all Burning Spirits'); +DELETE FROM `generic_scripts` WHERE `id`=915604; +INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(915604, 0, 0, 15, 13489, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Burning Spirit - Cast Spell Burning Spirit'); +DELETE FROM `creature_ai_scripts` WHERE `id`=915605; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(915605, 0, 0, 15, 14744, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Ambassador Flamelash - Cast Spell Burning Spirit'); +UPDATE `creature_template` SET `auras`='15573', `ai_name`='EventAI', `script_name`='' WHERE `entry`=9156; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/scripts/CMakeLists.txt b/src/scripts/CMakeLists.txt index 90429d27cde..7bda2fb7daa 100644 --- a/src/scripts/CMakeLists.txt +++ b/src/scripts/CMakeLists.txt @@ -50,7 +50,6 @@ set (SCRIPTS_SRCS eastern_kingdoms/burning_steppes/burning_steppes.cpp eastern_kingdoms/burning_steppes/blackrock_depths/arena_challenge_ai.cpp eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.cpp - eastern_kingdoms/burning_steppes/blackrock_depths/boss_ambassador_flamelash.cpp eastern_kingdoms/burning_steppes/blackrock_depths/boss_anubshiah.cpp eastern_kingdoms/burning_steppes/blackrock_depths/boss_emperor_dagran_thaurissan.cpp eastern_kingdoms/burning_steppes/blackrock_depths/boss_general_angerforge.cpp diff --git a/src/scripts/ScriptLoader.cpp b/src/scripts/ScriptLoader.cpp index 9a143688305..169c1e73013 100644 --- a/src/scripts/ScriptLoader.cpp +++ b/src/scripts/ScriptLoader.cpp @@ -43,7 +43,6 @@ void AddSC_scourge_invasion(); void AddSC_instance_blackrock_spire(); void AddSC_blackrock_depths(); //blackrock_depths void AddSC_blackrock_depths_arena_challenge(); -void AddSC_boss_ambassador_flamelash(); void AddSC_boss_anubshiah(); void AddSC_boss_draganthaurissan(); void AddSC_boss_general_angerforge(); @@ -283,7 +282,6 @@ void AddScripts() //eastern kingdoms AddSC_blackrock_depths(); //blackrock_depths AddSC_blackrock_depths_arena_challenge(); - AddSC_boss_ambassador_flamelash(); AddSC_boss_anubshiah(); AddSC_boss_draganthaurissan(); AddSC_boss_general_angerforge(); diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.h b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.h index 81bac322c70..a7e6226099c 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.h +++ b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.h @@ -58,7 +58,9 @@ enum DATA_ARENA_CHALLENGER = 42, - MAX_ENCOUNTER = 20, + TYPE_FLAMELASH = 43, + DATA_FLAMELASH = 44, + MAX_ENCOUNTER = 21, EVENT_BAR_PATRONS = 100, @@ -101,6 +103,8 @@ enum GO_JAIL_DOOR_SHILL = 170569, // Ambassador Flamelash + NPC_FLAMELASH = 9156, + NPC_BURNING_SPIRIT = 9178, GO_DWARF_RUNE_A01 = 170578, GO_DWARF_RUNE_B01 = 170579, GO_DWARF_RUNE_C01 = 170580, @@ -108,6 +112,8 @@ enum GO_DWARF_RUNE_E01 = 170582, GO_DWARF_RUNE_F01 = 170583, GO_DWARF_RUNE_G01 = 170584, + DWARF_RUNES_MAX = 7, + BURNING_SPIRIT_MAX = 30, // What is a good maximum and should there be any? // Grim Guzzler NPC_PLUGGER_SPAZZRING = 9499, diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/boss_ambassador_flamelash.cpp b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/boss_ambassador_flamelash.cpp deleted file mode 100644 index 6af16e1dd31..00000000000 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/boss_ambassador_flamelash.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/* Copyright (C) 2006 - 2009 ScriptDev2 - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* ScriptData -SDName: Boss_Ambassador_Flamelash -SD%Complete: 100 -SDComment: -SDCategory: Blackrock Depths -EndScriptData */ - -#include "scriptPCH.h" -#include "blackrock_depths.h" - -enum -{ - // SPELL_FIREBLAST = 15573, // creature_template_addon - SPELL_BURNING_SPIRIT = 13489, - SPELL_BURNING_SPIRIT_BUFF = 14744, - - NPC_BURNING_SPIRIT = 9178, - - DWARF_RUNES_MAX = 7, - BURNING_SPIRIT_MAX = 30, // What is a good maximum and should there be any? -}; - - -struct boss_ambassador_flamelashAI : public ScriptedAI -{ - boss_ambassador_flamelashAI(Creature* pCreature) : ScriptedAI(pCreature) - { - m_pInstance = (ScriptedInstance*)pCreature->GetInstanceData(); - m_creature->SetCreatureSummonLimit(BURNING_SPIRIT_MAX); - Reset(); - } - - ScriptedInstance* m_pInstance; - - uint32 m_uiSpiritTimer[DWARF_RUNES_MAX]; - - GuidList lBurningSpirits; - - void Reset() override - { - for (uint32 & i : m_uiSpiritTimer) - i = 5 * IN_MILLISECONDS; - } - - void JustSummoned(Creature* pSummoned) override - { - if (pSummoned->GetEntry() == NPC_BURNING_SPIRIT) - lBurningSpirits.insert(lBurningSpirits.end(), pSummoned->GetObjectGuid()); - - pSummoned->SetWalk(false); - pSummoned->GetMotionMaster()->MoveFollow(m_creature, 0.0f, 0.0f); - } - - void Aggro(Unit* pWho) override - { - for (uint8 i = 0; i < DWARF_RUNES_MAX; i++) - { - if (GameObject* pRune = m_pInstance->GetGameObject(m_pInstance->GetData64(GO_DWARF_RUNE_A01 + i))) - pRune->UseDoorOrButton(); - } - } - - void OnCombatStop() override - { - for (uint8 i = 0; i < DWARF_RUNES_MAX; i++) - { - if (GameObject* pRune = m_pInstance->GetGameObject(m_pInstance->GetData64(GO_DWARF_RUNE_A01 + i))) - pRune->ResetDoorOrButton(); - } - - for (const auto& guid : lBurningSpirits) - { - if (Creature* pSummon = m_creature->GetMap()->GetCreature(guid)) - pSummon->ForcedDespawn(); - } - - lBurningSpirits.clear(); - } - - void SummonedCreatureJustDied(Creature* pSummoned) override - { - if (pSummoned->GetEntry() == NPC_BURNING_SPIRIT) - lBurningSpirits.remove(pSummoned->GetObjectGuid()); - } - - void SpellHit(SpellCaster* pWho, SpellEntry const* pSpell) override - { - if (pWho->GetEntry() == NPC_BURNING_SPIRIT && pSpell->Id == SPELL_BURNING_SPIRIT) - m_creature->CastSpell(m_creature, SPELL_BURNING_SPIRIT_BUFF, true); - } - - void MoveInLineOfSight(Unit* pWho) override - { - ScriptedAI::MoveInLineOfSight(pWho); - - if (pWho->GetEntry() == NPC_BURNING_SPIRIT && pWho->IsAlive() && !pWho->IsInCombat() && pWho->IsWithinDistInMap(m_creature, 4 * CONTACT_DISTANCE)) - pWho->CastSpell(m_creature, SPELL_BURNING_SPIRIT, true); - } - - void UpdateAI(uint32 const uiDiff) override - { - //Return since we have no target - if (!m_creature->SelectHostileTarget() || !m_creature->GetVictim()) - return; - - // Burning Spirit - for (uint8 i = 0; i < DWARF_RUNES_MAX; i++) - { - if (m_uiSpiritTimer[i] < uiDiff) - { - if (GameObject* pRune = m_pInstance->GetGameObject(m_pInstance->GetData64(GO_DWARF_RUNE_A01 + i))) - { - if (m_creature->GetCreatureSummonCount() < m_creature->GetCreatureSummonLimit()) - { - m_creature->SummonCreature(NPC_BURNING_SPIRIT, pRune->GetPositionX(), pRune->GetPositionY(), pRune->GetPositionZ(), pRune->GetOrientation(), TEMPSUMMON_CORPSE_DESPAWN, 0); - m_uiSpiritTimer[i] = urand(15 * IN_MILLISECONDS, 30 * IN_MILLISECONDS); - } - else - m_uiSpiritTimer[i] = 1 * IN_MILLISECONDS; - } - } - else - m_uiSpiritTimer[i] -= uiDiff; - } - - DoMeleeAttackIfReady(); - } -}; -CreatureAI* GetAI_boss_ambassador_flamelash(Creature* pCreature) -{ - return new boss_ambassador_flamelashAI(pCreature); -} - -void AddSC_boss_ambassador_flamelash() -{ - Script* newscript; - newscript = new Script; - newscript->Name = "boss_ambassador_flamelash"; - newscript->GetAI = &GetAI_boss_ambassador_flamelash; - newscript->RegisterSelf(); -} diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/instance_blackrock_depths.cpp b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/instance_blackrock_depths.cpp index c191be3cd05..c00774e91d3 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/instance_blackrock_depths.cpp +++ b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/instance_blackrock_depths.cpp @@ -75,6 +75,9 @@ struct instance_blackrock_depths : ScriptedInstance uint64 m_uiDwarfRuneE01GUID; uint64 m_uiDwarfRuneF01GUID; uint64 m_uiDwarfRuneG01GUID; + uint64 m_uiFlamelashGUID; + uint32 m_uiSpiritTimer[DWARF_RUNES_MAX]; + GuidList m_burningSpirits; uint64 m_uiMagmusGUID; @@ -143,6 +146,18 @@ struct instance_blackrock_depths : ScriptedInstance m_uiDoomrelGUID = 0; m_uiDoperelGUID = 0; + m_uiDwarfRuneA01GUID = 0; + m_uiDwarfRuneB01GUID = 0; + m_uiDwarfRuneC01GUID = 0; + m_uiDwarfRuneD01GUID = 0; + m_uiDwarfRuneE01GUID = 0; + m_uiDwarfRuneF01GUID = 0; + m_uiDwarfRuneG01GUID = 0; + m_uiFlamelashGUID = 0; + + for (uint32 & i : m_uiSpiritTimer) + i = 5 * IN_MILLISECONDS; + m_uiMagmusGUID = 0; // Ring of Law Challenge @@ -328,6 +343,10 @@ struct instance_blackrock_depths : ScriptedInstance break; case NPC_GRIMSTONE: m_uiGrimstoneGUID = pCreature->GetGUID(); + break; + case NPC_FLAMELASH: + m_uiFlamelashGUID = pCreature->GetGUID(); + break; } } @@ -915,6 +934,37 @@ struct instance_blackrock_depths : ScriptedInstance case EVENT_BAR_PATRONS: HandleBarPatrons(uiData); break; + case TYPE_FLAMELASH: + if (uiData == NOT_STARTED || uiData == FAIL || uiData == DONE) + { + for (uint8 i = 0; i < DWARF_RUNES_MAX; i++) + { + if (GameObject* pRune = GetGameObject(GetData64(GO_DWARF_RUNE_A01 + i))) + pRune->ResetDoorOrButton(); + } + + for (uint32 & i : m_uiSpiritTimer) + i = 5 * IN_MILLISECONDS; + + for (const auto& guid : m_burningSpirits) + { + if (Creature* pSummon = GetMap()->GetCreature(guid)) + if (pSummon->IsAlive() && (!pSummon->IsInCombat() || uiData != DONE)) + pSummon->DespawnOrUnsummon(); + } + + m_burningSpirits.clear(); + } + else if (uiData == IN_PROGRESS) + { + for (uint8 i = 0; i < DWARF_RUNES_MAX; i++) + { + if (GameObject* pRune = GetGameObject(GetData64(GO_DWARF_RUNE_A01 + i))) + pRune->UseDoorOrButton(); + } + } + m_auiEncounter[20] = uiData; + break; } if (uiData == DONE) @@ -1004,6 +1054,8 @@ struct instance_blackrock_depths : ScriptedInstance case GO_JAIL_DOOR_JAZ: return m_bDoorJazOpened; case GO_JAIL_DOOR_SHILL: return m_bDoorShillOpened; case GO_JAIL_DOOR_SUPPLY: return m_bDoorSupplyOpened; + case TYPE_FLAMELASH: + return m_auiEncounter[20]; } return 0; } @@ -1137,6 +1189,36 @@ struct instance_blackrock_depths : ScriptedInstance else m_uiPatrolTimer -= uiDiff; } + + if (GetData(TYPE_FLAMELASH) == IN_PROGRESS) + { + for (uint8 i = 0; i < DWARF_RUNES_MAX; i++) + { + if (m_uiSpiritTimer[i] < uiDiff) + { + if (Creature* pFlamelash = GetCreature(m_uiFlamelashGUID)) + { + if (GameObject* pRune = GetMap()->GetGameObject(GetData64(GO_DWARF_RUNE_A01 + i))) + { + if (m_burningSpirits.size() < BURNING_SPIRIT_MAX) + { + if (Creature* pSpirit = GetMap()->SummonCreature(NPC_BURNING_SPIRIT, pRune->GetPositionX(), pRune->GetPositionY(), pRune->GetPositionZ(), pRune->GetOrientation(), TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000)) + { + pSpirit->SetWalk(false); + pSpirit->GetMotionMaster()->MoveFollow(pFlamelash, 0.0f, 0.0f); + m_burningSpirits.push_back(pSpirit->GetObjectGuid()); + } + m_uiSpiritTimer[i] = urand(15 * IN_MILLISECONDS, 30 * IN_MILLISECONDS); + } + else + m_uiSpiritTimer[i] = 1 * IN_MILLISECONDS; + } + } + } + else + m_uiSpiritTimer[i] -= uiDiff; + } + } } char const* Save() override From 38f9f3b4b7aed842f01b720bcbce1095b7dfae68 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 29 Nov 2023 19:53:52 +0200 Subject: [PATCH 362/426] This is unused. --- .../burning_steppes/blackrock_depths/blackrock_depths.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.h b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.h index a7e6226099c..4d087252ef1 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.h +++ b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.h @@ -59,7 +59,6 @@ enum DATA_ARENA_CHALLENGER = 42, TYPE_FLAMELASH = 43, - DATA_FLAMELASH = 44, MAX_ENCOUNTER = 21, EVENT_BAR_PATRONS = 100, From f450c08f7edaaa8a46d4889656566b4d49d1e0a9 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 29 Nov 2023 20:10:50 +0200 Subject: [PATCH 363/426] Remove burning spirits from list on death. --- .../blackrock_depths/instance_blackrock_depths.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/instance_blackrock_depths.cpp b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/instance_blackrock_depths.cpp index c00774e91d3..5c1ad78e127 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/instance_blackrock_depths.cpp +++ b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/instance_blackrock_depths.cpp @@ -467,6 +467,9 @@ struct instance_blackrock_depths : ScriptedInstance { switch (pCreature->GetEntry()) { + case NPC_BURNING_SPIRIT: + m_burningSpirits.remove(pCreature->GetObjectGuid()); + break; case NPC_SHADOWFORGE_SENATOR: // Emperor Dagran Thaurissan performs a random yell upon the death // of Shadowforge Senators in the Throne Room @@ -949,7 +952,7 @@ struct instance_blackrock_depths : ScriptedInstance for (const auto& guid : m_burningSpirits) { if (Creature* pSummon = GetMap()->GetCreature(guid)) - if (pSummon->IsAlive() && (!pSummon->IsInCombat() || uiData != DONE)) + if (!pSummon->IsInCombat() || uiData != DONE) pSummon->DespawnOrUnsummon(); } From 78e44699c876cfcbf17d25d4bebb33d285d4fe8f Mon Sep 17 00:00:00 2001 From: ratkosrb <35845488+ratkosrb@users.noreply.github.com> Date: Wed, 29 Nov 2023 22:40:49 +0200 Subject: [PATCH 364/426] Add missing include to ScriptedFollowerAI.cpp --- src/game/AI/ScriptedFollowerAI.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/game/AI/ScriptedFollowerAI.cpp b/src/game/AI/ScriptedFollowerAI.cpp index ed83673d6be..a597aed749c 100644 --- a/src/game/AI/ScriptedFollowerAI.cpp +++ b/src/game/AI/ScriptedFollowerAI.cpp @@ -13,6 +13,7 @@ EndScriptData */ #include "Chat.h" #include "Player.h" #include "Group.h" +#include "Map.h" float const MAX_PLAYER_DISTANCE = 100.0f; From c0bc1aa365330f4da97de7659ffa1f5e3e3011c0 Mon Sep 17 00:00:00 2001 From: _BLU Date: Wed, 29 Nov 2023 22:10:53 +0100 Subject: [PATCH 365/426] Fix missing headers in build (#2330) * Add missing header includes for build * Add all `cmake-build-*` to .gitignore --- .gitignore | 3 +-- src/game/AI/PetAI.cpp | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 7aca84b48c2..a2539a6a181 100644 --- a/.gitignore +++ b/.gitignore @@ -31,8 +31,7 @@ CMakeSettings.json /out/ # CLion files -cmake-build-debug -cmake-build-release +cmake-build-* # # Top-level generic files diff --git a/src/game/AI/PetAI.cpp b/src/game/AI/PetAI.cpp index 132fcead988..37ce3e5af87 100644 --- a/src/game/AI/PetAI.cpp +++ b/src/game/AI/PetAI.cpp @@ -30,6 +30,7 @@ #include "Util.h" #include "Group.h" #include "SpellAuraDefines.h" +#include "Map.h" int PetAI::Permissible(Creature const* creature) { From e290c68cc2984ae6209df2d259eee06a5be7bdd4 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 30 Nov 2023 00:32:45 +0200 Subject: [PATCH 366/426] Add custom invisible trap to Bubbly Fissures in Barrens. Closes https://github.com/vmangos/core/issues/1663 Closes https://github.com/vmangos/core/issues/2326 --- sql/migrations/20231129213631_world.sql | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 sql/migrations/20231129213631_world.sql diff --git a/sql/migrations/20231129213631_world.sql b/sql/migrations/20231129213631_world.sql new file mode 100644 index 00000000000..b9447048fc0 --- /dev/null +++ b/sql/migrations/20231129213631_world.sql @@ -0,0 +1,25 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231129213631'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231129213631'); +-- Add your query below. + + +-- Custom server side trap for Bubbly Fissures. +-- We cannot know the entry of the real trap, +-- since its server side, so we need to use custom entry. +INSERT INTO `gameobject_template` (`entry`, `patch`, `type`, `displayId`, `name`, `faction`, `flags`, `size`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `mingold`, `maxgold`, `script_name`) VALUES (200002, 0, 6, 344, 'Bubbly Fissure TRAP', 0, 0, 1, 0, 0, 8, 17775, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES (14518, 200002, 1, -1275.51, -3012.4, 71.2432, -2.86234, -0.007825, 0.086912, 0.986437, -0.139019, 10, 10, 100, 1, 0, 0, 0, 10); +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `animprogress`, `state`, `spawn_flags`, `visibility_mod`, `patch_min`, `patch_max`) VALUES (14521, 200002, 1, 89.9668, -1943.97, 78.7301, 1.6057, 0, 0, 0.687357, 0.726319, 10, 10, 100, 1, 0, 0, 0, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 2ff7153a94e8a436a96f24102a1253f7bedaa72c Mon Sep 17 00:00:00 2001 From: TuriansNotBad <54774532+TuriansNotBad@users.noreply.github.com> Date: Thu, 30 Nov 2023 14:26:38 +0500 Subject: [PATCH 367/426] Fix old version of some Shaman talents that were changed in 1.11. (#2315) --- sql/migrations/20231126103923_world.sql | 28 +++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 sql/migrations/20231126103923_world.sql diff --git a/sql/migrations/20231126103923_world.sql b/sql/migrations/20231126103923_world.sql new file mode 100644 index 00000000000..4ea6f2a7dc5 --- /dev/null +++ b/sql/migrations/20231126103923_world.sql @@ -0,0 +1,28 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231126103923'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231126103923'); +-- Add your query below. + +-- Concussion; 16106 already set to 5464 +UPDATE `spell_affect` SET `build_min`='5464' WHERE `entry` IN (16035, 16105, 16107, 16108) AND `effectId`=0; + +-- Convection +UPDATE `spell_affect` SET `build_min`='5464' WHERE `entry` IN (16039, 16109, 16110, 16111, 16112) AND `effectId`=0; + +-- Healing Focus/Improved Lesser Healing Wave +UPDATE `spell_affect` SET `build_min`='5464' WHERE `entry` IN (16181, 16230, 16232, 16233, 16234) AND `effectId`=0; + +-- Restorative Totems/Improved Mana Spring Totem +UPDATE `spell_affect` SET `build_min`='5464' WHERE `entry` IN (16187, 16205, 16206, 16207, 16208) AND `effectId`=0; + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 06f2602d1a7b8a3e5a6611da56b5a2b4369d5117 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 30 Nov 2023 19:13:09 +0200 Subject: [PATCH 368/426] Fix opening Sharpbeak's cage. --- sql/migrations/20231130171235_world.sql | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 sql/migrations/20231130171235_world.sql diff --git a/sql/migrations/20231130171235_world.sql b/sql/migrations/20231130171235_world.sql new file mode 100644 index 00000000000..78b86893f70 --- /dev/null +++ b/sql/migrations/20231130171235_world.sql @@ -0,0 +1,21 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231130171235'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231130171235'); +-- Add your query below. + + +-- Fix opening Sharpbeak's cage. +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `conditionId`, `inverseEffectMask`, `build_min`, `build_max`) VALUES (11792, 0, 144070, 0, 0, 0, 5875); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 42ea6e2aa880d98db6c191bd9672bd621bacaaa4 Mon Sep 17 00:00:00 2001 From: Daribon Date: Thu, 30 Nov 2023 21:04:30 +0100 Subject: [PATCH 369/426] Add waypoints to Harb Foulmountain (#2318) --- sql/migrations/20231126224918_world.sql | 49 +++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 sql/migrations/20231126224918_world.sql diff --git a/sql/migrations/20231126224918_world.sql b/sql/migrations/20231126224918_world.sql new file mode 100644 index 00000000000..affa763593e --- /dev/null +++ b/sql/migrations/20231126224918_world.sql @@ -0,0 +1,49 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231126224918'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231126224918'); +-- Add your query below. + + +-- Pathing for Harb Foulmountain Entry: 14426 +SET @NPC := 21564; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-4929.023,`position_y`=-2066.4766,`position_z`=85.52668 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-4929.023,-2066.4766,85.52668,100,0,0,0), +(@NPC,2,-4905.3555,-2069.9805,84.25914,100,0,0,0), +(@NPC,3,-4899.6943,-2061.0269,83.636856,100,0,0,0), +(@NPC,4,-4891.1626,-2039.651,83.30705,100,0,0,0), +(@NPC,5,-4881.945,-2017.6359,86.298546,100,0,0,0), +(@NPC,6,-4873.128,-1993.7965,91.65875,100,0,0,0), +(@NPC,7,-4878.21,-1974.4436,92.018616,100,0,0,0), +(@NPC,8,-4873.579,-1956.8225,90.450455,100,0,0,0), +(@NPC,9,-4862.9395,-1946.7357,86.90235,100,0,0,0), +(@NPC,10,-4834.9155,-1923.0642,84.13316,100,0,0,0), +(@NPC,11,-4801.48,-1895.6833,89.333145,100,0,0,0), +(@NPC,12,-4776.8984,-1881.0486,90.39604,100,0,0,0), +(@NPC,13,-4751.4434,-1865.2213,88.92392,100,0,0,0), +(@NPC,14,-4776.8984,-1881.0486,90.39604,100,0,0,0), +(@NPC,15,-4801.48,-1895.6833,89.333145,100,0,0,0), +(@NPC,16,-4834.9155,-1923.0642,84.13316,100,0,0,0), +(@NPC,17,-4862.9395,-1946.7357,86.90235,100,0,0,0), +(@NPC,18,-4873.579,-1956.8225,90.450455,100,0,0,0), +(@NPC,19,-4878.21,-1974.4436,92.018616,100,0,0,0), +(@NPC,20,-4873.128,-1993.7965,91.65875,100,0,0,0), +(@NPC,21,-4881.914,-2017.5612,86.331604,100,0,0,0), +(@NPC,22,-4891.1626,-2039.651,83.30705,100,0,0,0), +(@NPC,23,-4899.6943,-2061.0269,83.636856,100,0,0,0), +(@NPC,24,-4905.3555,-2069.9805,84.25914,100,0,0,0); +-- .go xyz -4929.023 -2066.4766 85.52668 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 54f665e4d68448cd3638417530ed8a058ef9a312 Mon Sep 17 00:00:00 2001 From: Daribon Date: Thu, 30 Nov 2023 21:09:18 +0100 Subject: [PATCH 370/426] Add waypoints to Siege Golem. (#2319) --- sql/migrations/20231126234028_world.sql | 93 +++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 sql/migrations/20231126234028_world.sql diff --git a/sql/migrations/20231126234028_world.sql b/sql/migrations/20231126234028_world.sql new file mode 100644 index 00000000000..eb5029959df --- /dev/null +++ b/sql/migrations/20231126234028_world.sql @@ -0,0 +1,93 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231126234028'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231126234028'); +-- Add your query below. + + +-- Pathing for Siege Golem Entry: 2749 +SET @NPC := 69115; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-6547.9683,`position_y`=-3114.9539,`position_z`=264.9055 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-6547.9683,-3114.9539,264.9055,100,0,0,0), +(@NPC,2,-6553.9746,-3080.9055,267.58408,100,0,0,0), +(@NPC,3,-6557.094,-3047.38,268.07318,100,0,0,0), +(@NPC,4,-6583.489,-3019.4617,267.2856,100,0,0,0), +(@NPC,5,-6595.54,-2988.4001,248.66078,100,0,0,0), +(@NPC,6,-6612.3384,-2975.3618,245.18498,100,0,0,0), +(@NPC,7,-6631.2095,-2949.6042,241.79167,100,0,0,0), +(@NPC,8,-6647.4727,-2939.6243,241.74365,100,0,0,0), +(@NPC,9,-6682.0034,-2913.2668,240.72977,100,0,0,0), +(@NPC,10,-6712.083,-2905.665,240.99365,100,0,0,0), +(@NPC,11,-6735.7236,-2891.606,240.99365,100,0,0,0), +(@NPC,12,-6760.9585,-2881.194,240.99365,100,0,0,0), +(@NPC,13,-6780.3325,-2876.3694,241.33063,100,0,0,0), +(@NPC,14,-6802.048,-2870.8613,242.0467,100,0,0,0), +(@NPC,15,-6830.3306,-2858.8135,241.77203,100,0,0,0), +(@NPC,16,-6849.8003,-2841.1125,241.91667,100,0,0,0), +(@NPC,17,-6858.149,-2813.8555,241.79167,100,0,0,0), +(@NPC,18,-6855.9204,-2785.7144,241.79167,100,0,0,0), +(@NPC,19,-6851.1675,-2752.9753,242.53874,100,0,0,0), +(@NPC,20,-6846.6313,-2713.5332,242.10515,100,0,0,0), +(@NPC,21,-6843.9126,-2672.0486,241.16257,100,0,0,0), +(@NPC,22,-6849.9062,-2641.5,240.86865,100,0,0,0), +(@NPC,23,-6856.145,-2608.6953,241.0625,100,0,0,0), +(@NPC,24,-6848.404,-2583.9202,241.05528,100,0,0,0), +(@NPC,25,-6860.871,-2559.1516,240.85477,100,0,0,0), +(@NPC,26,-6887.109,-2546.2512,240.86865,100,0,0,0), +(@NPC,27,-6917.7764,-2514.2366,240.86865,100,0,0,0), +(@NPC,28,-6941.0034,-2487.0896,240.86865,100,0,0,0), +(@NPC,29,-6953.5747,-2448.6816,241.74365,100,0,0,0), +(@NPC,30,-6953.0713,-2417.7148,243.04272,100,0,0,0), +(@NPC,31,-6952.0454,-2377.9636,242.18118,100,0,0,0), +(@NPC,32,-6946.1523,-2343.278,240.86865,100,0,0,0), +(@NPC,33,-6930.9873,-2308.3232,240.86865,100,0,0,0), +(@NPC,34,-6916.122,-2275.2998,240.86865,100,0,0,0), +(@NPC,35,-6911.809,-2249.564,241.74365,100,0,0,0), +(@NPC,36,-6916.122,-2275.2998,240.86865,100,0,0,0), +(@NPC,37,-6930.9873,-2308.3232,240.86865,100,0,0,0), +(@NPC,38,-6946.1523,-2343.278,240.86865,100,0,0,0), +(@NPC,39,-6952.0454,-2377.9636,242.18118,100,0,0,0), +(@NPC,40,-6953.0713,-2417.7148,243.04272,100,0,0,0), +(@NPC,41,-6953.5747,-2448.6816,241.74365,100,0,0,0), +(@NPC,42,-6941.0034,-2487.0896,240.86865,100,0,0,0), +(@NPC,43,-6917.7764,-2514.2366,240.86865,100,0,0,0), +(@NPC,44,-6887.109,-2546.2512,240.86865,100,0,0,0), +(@NPC,45,-6860.871,-2559.1516,240.85477,100,0,0,0), +(@NPC,46,-6848.404,-2583.9202,241.05528,100,0,0,0), +(@NPC,47,-6856.145,-2608.6953,241.0625,100,0,0,0), +(@NPC,48,-6849.9062,-2641.5,240.86865,100,0,0,0), +(@NPC,49,-6843.9126,-2672.0486,241.16257,100,0,0,0), +(@NPC,50,-6846.6313,-2713.5332,242.10515,100,0,0,0), +(@NPC,51,-6851.1675,-2752.9753,242.53874,100,0,0,0), +(@NPC,52,-6855.9204,-2785.7144,241.79167,100,0,0,0), +(@NPC,53,-6858.149,-2813.8555,241.79167,100,0,0,0), +(@NPC,54,-6849.8003,-2841.1125,241.91667,100,0,0,0), +(@NPC,55,-6830.3306,-2858.8135,241.77203,100,0,0,0), +(@NPC,56,-6802.048,-2870.8613,242.0467,100,0,0,0), +(@NPC,57,-6780.3325,-2876.3694,241.33063,100,0,0,0), +(@NPC,58,-6760.9585,-2881.194,240.99365,100,0,0,0), +(@NPC,59,-6735.7236,-2891.606,240.99365,100,0,0,0), +(@NPC,60,-6712.083,-2905.665,240.99365,100,0,0,0), +(@NPC,61,-6682.0034,-2913.2668,240.72977,100,0,0,0), +(@NPC,62,-6647.4727,-2939.6243,241.74365,100,0,0,0), +(@NPC,63,-6631.2095,-2949.6042,241.79167,100,0,0,0), +(@NPC,64,-6612.3384,-2975.3618,245.18498,100,0,0,0), +(@NPC,65,-6595.54,-2988.4001,248.66078,100,0,0,0), +(@NPC,66,-6583.489,-3019.4617,267.2856,100,0,0,0), +(@NPC,67,-6557.094,-3047.38,268.07318,100,0,0,0), +(@NPC,68,-6553.9746,-3080.9055,267.58408,100,0,0,0); +-- 0x204CB0000002AF4000001300003C2BB4 .go xyz -6547.9683 -3114.9539 264.9055 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 17822e318eacc20d853dc09e8a69e200aba2e6ce Mon Sep 17 00:00:00 2001 From: Daribon Date: Thu, 30 Nov 2023 21:13:41 +0100 Subject: [PATCH 371/426] Add waypoints to Witherheart the Stalker. (#2320) --- sql/migrations/20231126234757_world.sql | 42 +++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 sql/migrations/20231126234757_world.sql diff --git a/sql/migrations/20231126234757_world.sql b/sql/migrations/20231126234757_world.sql new file mode 100644 index 00000000000..80c43cc4c42 --- /dev/null +++ b/sql/migrations/20231126234757_world.sql @@ -0,0 +1,42 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231126234757'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231126234757'); +-- Add your query below. + + +-- Pathing for Witherheart the Stalker Entry: 8218 +SET @NPC := 85478; +UPDATE `creature` SET `wander_distance`=0,`movement_type`=2,`position_x`=-399.90463,`position_y`=-2810.7239,`position_z`=78.00985 WHERE `guid`=@NPC; +DELETE FROM `creature_movement` WHERE `id`=@NPC; +INSERT INTO `creature_movement` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`waittime`,`wander_distance`,`script_id`) VALUES +(@NPC,1,-399.90463,-2810.7239,78.00985,100,0,0,0), +(@NPC,2,-411.23264,-2833.3965,79.34615,100,0,0,0), +(@NPC,3,-419.67285,-2866.848,81.6237,100,0,0,0), +(@NPC,4,-433.39053,-2891.0513,85.470924,100,0,0,0), +(@NPC,5,-440.9833,-2912.3506,88.50849,100,0,0,0), +(@NPC,6,-431.72278,-2919.4988,87.758095,100,0,0,0), +(@NPC,7,-410.9552,-2911.8176,80.65067,100,0,0,0), +(@NPC,8,-398.36133,-2915.043,79.20992,100,0,0,0), +(@NPC,9,-368.3346,-2925.7651,75.58492,100,0,0,0), +(@NPC,10,-333.24603,-2914.1536,77.88582,100,0,0,0), +(@NPC,11,-312.31683,-2894.8928,79.29725,100,0,0,0), +(@NPC,12,-316.2032,-2867.8672,80.33094,100,0,0,0), +(@NPC,13,-343.85233,-2834.53,75.73404,100,0,0,0), +(@NPC,14,-331.66537,-2820.3848,79.355644,100,0,0,0), +(@NPC,15,-345.9131,-2799.4731,80.685,100,0,0,0), +(@NPC,16,-368.80045,-2797.7434,76.87515,100,0,0,0), +(@NPC,17,-390.4299,-2788.0408,77.2648,100,0,0,0); +-- 0x204CB0000008068000000D00003DC2AA .go xyz -399.90463 -2810.7239 78.00985 + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From cb1c574c71278b2c8f36345ba70a86e7e2daa756 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 30 Nov 2023 23:19:34 +0200 Subject: [PATCH 372/426] Fix AV cavalry assault not working after respawn. --- src/scripts/battlegrounds/battleground_alterac.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/scripts/battlegrounds/battleground_alterac.cpp b/src/scripts/battlegrounds/battleground_alterac.cpp index 6d231693fa1..0af7c85d0ce 100644 --- a/src/scripts/battlegrounds/battleground_alterac.cpp +++ b/src/scripts/battlegrounds/battleground_alterac.cpp @@ -1915,11 +1915,8 @@ struct AV_NpcEventAI : public npc_escortAI m_creature->SetHomePosition(av_x, av_y, av_z, 0.0f); m_creature->GetMotionMaster()->MovePoint(POINT_LAST_POINT, av_x, av_y, av_z); - if (AV_NpcEventTroopsAI* pEscortAI = dynamic_cast(m_creature->AI())) - { - pEscortAI->Stop(); - pEscortAI->JustRespawned(); - } + npc_escortAI::Stop(); + npc_escortAI::JustRespawned(); /** Respawn Primalist at her original place with the adds */ if (m_creature->GetEntry() == AV_NPC_PRIMALIST_THURLOGA) From e1a4ca5e8e016331f8640621cbc79b72a8ed56ab Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 1 Dec 2023 00:05:46 +0200 Subject: [PATCH 373/426] Save respawn time before resetting map. Closes https://github.com/vmangos/core/issues/2336 --- src/game/Maps/Map.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/game/Maps/Map.cpp b/src/game/Maps/Map.cpp index 417d7af2c0b..1b0767bc312 100644 --- a/src/game/Maps/Map.cpp +++ b/src/game/Maps/Map.cpp @@ -1284,16 +1284,15 @@ Map::Remove(T* obj, bool remove) UpdateObjectVisibility(obj, cell, p); // i think will be better to call this function while object still in grid, this changes nothing but logically is better(as for me) RemoveFromGrid(obj, grid, cell); - obj->ResetMap(); if (remove) - { // if option set then object already saved at this moment if (!sWorld.getConfig(CONFIG_BOOL_SAVE_RESPAWN_TIME_IMMEDIATELY)) - obj->SaveRespawnTime(); + obj->SaveRespawnTime(); // requires map not being reset - // Note: In case resurrectable corpse and pet its removed from global lists in own destructor + obj->ResetMap(); + + if (remove) // Note: In case resurrectable corpse and pet its removed from global lists in own destructor delete obj; - } } template<> From 91ab2c177ae8755ac09608fce4521b429179dd9f Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 1 Dec 2023 02:32:17 +0200 Subject: [PATCH 374/426] Fix Razorgore melee attacks when possessed. --- .../blackwing_lair/boss_razorgore.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/boss_razorgore.cpp b/src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/boss_razorgore.cpp index de97b97994f..e89df031550 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/boss_razorgore.cpp +++ b/src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/boss_razorgore.cpp @@ -126,7 +126,20 @@ struct boss_razorgoreAI : public ScriptedAI m_creature->GetThreatManager().modifyThreatPercent(pTarget, -30); } - void Aggro(Unit* /*pWho*/) override + void AttackStart(Unit* pVictim) override + { + CharmInfo* charmInfo = m_creature->GetCharmInfo(); + if (charmInfo && charmInfo->IsCommandAttack()) + { + charmInfo->SetIsCommandAttack(false); + if (m_creature->IsValidAttackTarget(pVictim)) + m_creature->Attack(pVictim, true); + } + else + ScriptedAI::AttackStart(pVictim); + } + + void EnterCombat(Unit* /*pWho*/) override { if (!m_pInstance) return; @@ -255,7 +268,7 @@ struct boss_razorgoreAI : public ScriptedAI { if (m_creature->HasUnitState(UNIT_STAT_POSSESSED)) { - ScriptedAI::UpdateAI(uiDiff); + DoMeleeAttackIfReady(); return; } From 9d7cf5523f7949c52b8b8b90f82de5c2ba0a5d8e Mon Sep 17 00:00:00 2001 From: Gamemechanic Date: Fri, 1 Dec 2023 22:05:55 +0100 Subject: [PATCH 375/426] Very minor refactor of Creature::HasSpell (#2322) --- src/game/Objects/Creature.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/game/Objects/Creature.cpp b/src/game/Objects/Creature.cpp index 7b21622ede9..00d8c9b2af2 100644 --- a/src/game/Objects/Creature.cpp +++ b/src/game/Objects/Creature.cpp @@ -3062,11 +3062,10 @@ bool Creature::IsInEvadeMode() const bool Creature::HasSpell(uint32 spellId) const { - uint8 i; - for (i = 0; i < CREATURE_MAX_SPELLS; ++i) + for (uint8 i = 0; i < CREATURE_MAX_SPELLS; ++i) if (spellId == m_spells[i]) - break; - return i < CREATURE_MAX_SPELLS; // break before end of iteration of known spells + return true; + return false; } void Creature::LockOutSpells(SpellSchoolMask schoolMask, uint32 duration) From 5d22524019eb6a25f7772590f683e87f7a08a9a2 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 2 Dec 2023 22:31:29 +0200 Subject: [PATCH 376/426] Pass map to condition check from loot manager. --- src/game/LootMgr.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/game/LootMgr.cpp b/src/game/LootMgr.cpp index 25e61000c36..f9a5ec69ca7 100644 --- a/src/game/LootMgr.cpp +++ b/src/game/LootMgr.cpp @@ -425,8 +425,12 @@ bool LootStoreItem::AllowedForTeam(Loot const& loot) const // Check non-player dependant conditions if (ConditionEntry::CanBeUsedWithoutPlayer(conditionId)) - if (!condition->Meets(nullptr, nullptr, loot.GetLootTarget(), CONDITION_FROM_LOOT)) + { + WorldObject const* source = loot.GetLootTarget(); + Map const* map = source ? source->FindMap() : nullptr; + if (!condition->Meets(nullptr, map, source, CONDITION_FROM_LOOT)) return false; + } } return true; From 71c52c882ffde1862b6f6b70e1b55b659163ef32 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 3 Dec 2023 00:04:37 +0200 Subject: [PATCH 377/426] Fix dungeon reset exploit with resurrection. If the instance you died in has been reset, you should be teleported to the entrance destination, not to your old position. --- src/game/Objects/Player.cpp | 45 +++++++++++++++++++++++++------- src/game/Objects/Player.h | 40 ++++++++++++++++------------ src/game/Spells/SpellEffects.cpp | 4 +-- 3 files changed, 61 insertions(+), 28 deletions(-) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index 41c0b12c3fa..702bed428f3 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -2589,13 +2589,13 @@ void Player::ProcessDelayedOperations() { ResurrectPlayer(0.0f, false); - if (GetMaxHealth() > m_resurrectHealth) - SetHealth(m_resurrectHealth); + if (GetMaxHealth() > m_resurrectData.health) + SetHealth(m_resurrectData.health); else SetHealth(GetMaxHealth()); - if (GetMaxPower(POWER_MANA) > m_resurrectMana) - SetPower(POWER_MANA, m_resurrectMana); + if (GetMaxPower(POWER_MANA) > m_resurrectData.mana) + SetPower(POWER_MANA, m_resurrectData.mana); else SetPower(POWER_MANA, GetMaxPower(POWER_MANA)); @@ -20298,8 +20298,33 @@ uint32 Player::GetBaseWeaponSkillValue(WeaponAttackType attType) const void Player::ResurectUsingRequestData() { // Teleport before resurrecting by player, otherwise the player might get attacked from creatures near his corpse - if (m_resurrectGuid.IsPlayer()) - TeleportTo(m_resurrectMap, m_resurrectX, m_resurrectY, m_resurrectZ, GetOrientation()); + if (m_resurrectData.resurrectorGuid.IsPlayer()) + { + // If player is no longer saved the same instance, teleport to entrance instead. + // Prevents death exploit to reset dungeon and teleport directly to end boss. + if (m_resurrectData.instanceId && m_resurrectData.location.mapId != GetMapId() && + sMapStorage.LookupEntry(m_resurrectData.location.mapId)->IsDungeon()) + { + DungeonPersistentState* state = GetBoundInstanceSaveForSelfOrGroup(m_resurrectData.location.mapId); + if (!state || state->GetInstanceId() != m_resurrectData.instanceId) + { + if (AreaTriggerTeleport const* at = sObjectMgr.GetMapEntranceTrigger(m_resurrectData.location.mapId)) + m_resurrectData.location = at->destination; + else if (AreaTriggerTeleport const* at = sObjectMgr.GetGoBackTrigger(m_resurrectData.location.mapId)) + m_resurrectData.location = at->destination; + else + { + m_resurrectData.location.mapId = GetMapId(); + m_resurrectData.location.x = GetPositionX(); + m_resurrectData.location.y = GetPositionY(); + m_resurrectData.location.z = GetPositionZ(); + m_resurrectData.location.o = GetOrientation(); + } + } + } + + TeleportTo(m_resurrectData.location); + } // We cannot resurrect player when we triggered any kind of teleport // Player will be resurrected upon teleportation (in MSG_MOVE_TELEPORT_ACK handler) @@ -20311,13 +20336,13 @@ void Player::ResurectUsingRequestData() ResurrectPlayer(0.0f, false); - if (GetMaxHealth() > m_resurrectHealth) - SetHealth(m_resurrectHealth); + if (GetMaxHealth() > m_resurrectData.health) + SetHealth(m_resurrectData.health); else SetHealth(GetMaxHealth()); - if (GetMaxPower(POWER_MANA) > m_resurrectMana) - SetPower(POWER_MANA, m_resurrectMana); + if (GetMaxPower(POWER_MANA) > m_resurrectData.mana) + SetPower(POWER_MANA, m_resurrectData.mana); else SetPower(POWER_MANA, GetMaxPower(POWER_MANA)); diff --git a/src/game/Objects/Player.h b/src/game/Objects/Player.h index f4f7d80de58..e9ddeef4532 100644 --- a/src/game/Objects/Player.h +++ b/src/game/Objects/Player.h @@ -759,6 +759,15 @@ enum PlayerRestState REST_STATE_RAF_LINKED = 0x04 // Exact use unknown }; +struct ResurrectionData +{ + ObjectGuid resurrectorGuid; + WorldLocation location; + uint32 instanceId = 0; + uint32 health = 0; + uint32 mana = 0; +}; + class PlayerTaxi { public: @@ -2208,10 +2217,7 @@ class Player final: public Unit uint32 m_DetectInvTimer; uint32 m_ExtraFlags; ObjectGuid m_curSelectionGuid; - ObjectGuid m_resurrectGuid; - uint32 m_resurrectMap; - float m_resurrectX, m_resurrectY, m_resurrectZ; - uint32 m_resurrectHealth, m_resurrectMana; + ResurrectionData m_resurrectData; uint32 m_drunkTimer; uint16 m_drunk; void HandleSobering(); @@ -2251,20 +2257,22 @@ class Player final: public Unit Player* GetSelectedPlayer(); Object* GetObjectByTypeMask(ObjectGuid guid, TypeMask typemask); - void SetResurrectRequestData(ObjectGuid guid, uint32 mapId, float X, float Y, float Z, uint32 health, uint32 mana) + void SetResurrectRequestData(ObjectGuid guid, uint16 mapId, uint32 instanceId, float x, float y, float z, float o, uint32 health, uint32 mana) { - m_resurrectGuid = guid; - m_resurrectMap = mapId; - m_resurrectX = X; - m_resurrectY = Y; - m_resurrectZ = Z; - m_resurrectHealth = health; - m_resurrectMana = mana; + m_resurrectData.resurrectorGuid = guid; + m_resurrectData.location.mapId = mapId; + m_resurrectData.location.x = x; + m_resurrectData.location.y = y; + m_resurrectData.location.z = z; + m_resurrectData.location.o = o; + m_resurrectData.instanceId = instanceId; + m_resurrectData.health = health; + m_resurrectData.mana = mana; } - void ClearResurrectRequestData() { SetResurrectRequestData(ObjectGuid(), 0, 0.0f, 0.0f, 0.0f, 0, 0); } - bool IsRessurectRequestedBy(ObjectGuid guid) const { return m_resurrectGuid == guid; } - bool IsRessurectRequested() const { return !m_resurrectGuid.IsEmpty(); } - ObjectGuid const& GetResurrector() const { return m_resurrectGuid; } + void ClearResurrectRequestData() { SetResurrectRequestData(ObjectGuid(), 0, 0, 0.0f, 0.0f, 0.0f, 0.0f, 0, 0); } + bool IsRessurectRequestedBy(ObjectGuid guid) const { return m_resurrectData.resurrectorGuid == guid; } + bool IsRessurectRequested() const { return !m_resurrectData.resurrectorGuid.IsEmpty(); } + ObjectGuid const& GetResurrector() const { return m_resurrectData.resurrectorGuid; } void ResurectUsingRequestData(); static bool IsActionButtonDataValid(uint8 button, uint32 action, uint8 type, Player* player); diff --git a/src/game/Spells/SpellEffects.cpp b/src/game/Spells/SpellEffects.cpp index 6aa768a6687..ff569b68f82 100644 --- a/src/game/Spells/SpellEffects.cpp +++ b/src/game/Spells/SpellEffects.cpp @@ -257,7 +257,7 @@ void Spell::EffectResurrectNew(SpellEffectIndex effIdx) uint32 health = damage; uint32 mana = m_spellInfo->EffectMiscValue[effIdx]; - pTarget->SetResurrectRequestData(m_caster->GetObjectGuid(), m_caster->GetMapId(), m_caster->GetPositionX(), m_caster->GetPositionY(), m_caster->GetPositionZ(), health, mana); + pTarget->SetResurrectRequestData(m_caster->GetObjectGuid(), m_caster->GetMapId(), m_caster->GetInstanceId(), m_caster->GetPositionX(), m_caster->GetPositionY(), m_caster->GetPositionZ(), m_caster->GetOrientation(), health, mana); SendResurrectRequest(pTarget, m_casterUnit && m_casterUnit->IsSpiritHealer()); AddExecuteLogInfo(effIdx, ExecuteLogInfo(unitTarget->GetObjectGuid())); @@ -6200,7 +6200,7 @@ void Spell::EffectResurrect(SpellEffectIndex effIdx) uint32 health = ditheru(pTarget->GetMaxHealth() * damage / 100); uint32 mana = ditheru(pTarget->GetMaxPower(POWER_MANA) * damage / 100); - pTarget->SetResurrectRequestData(m_caster->GetObjectGuid(), m_caster->GetMapId(), m_caster->GetPositionX(), m_caster->GetPositionY(), m_caster->GetPositionZ(), health, mana); + pTarget->SetResurrectRequestData(m_caster->GetObjectGuid(), m_caster->GetMapId(), m_caster->GetInstanceId(), m_caster->GetPositionX(), m_caster->GetPositionY(), m_caster->GetPositionZ(), m_caster->GetOrientation(), health, mana); SendResurrectRequest(pTarget, m_casterUnit && m_casterUnit->IsSpiritHealer()); AddExecuteLogInfo(effIdx, ExecuteLogInfo(unitTarget->GetObjectGuid())); From 83b6580b7ee2c80f31ac650e790426f05256643f Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 3 Dec 2023 16:47:27 +0200 Subject: [PATCH 378/426] Remove some custom creatures. --- sql/migrations/20231203135355_world.sql | 33 +++++ .../instance_blackrock_spire.cpp | 113 +----------------- 2 files changed, 37 insertions(+), 109 deletions(-) create mode 100644 sql/migrations/20231203135355_world.sql diff --git a/sql/migrations/20231203135355_world.sql b/sql/migrations/20231203135355_world.sql new file mode 100644 index 00000000000..cd9f5ea5df4 --- /dev/null +++ b/sql/migrations/20231203135355_world.sql @@ -0,0 +1,33 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231203135355'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231203135355'); +-- Add your query below. + + +-- Remove custom creature Burning Adrenaline Trigger. It does not seem to be used. +DELETE FROM `creature_template` WHERE `entry`=160016; + +-- Assign spawn spell to Rookery Whelp. +UPDATE `creature_template` SET `spawn_spell_id`=15750 WHERE `entry`=10161; + +-- Remove custom creature Rookery Whelp. +DELETE FROM `creature_ai_scripts` WHERE `id` IN (16001501, 16001502); +DELETE FROM `creature_ai_events` WHERE `creature_id`=160015; +DELETE FROM `creature_template` WHERE `entry`=160015; + +-- Remove custom creature Solakar Trigger. +DELETE FROM `creature_template` WHERE `entry`=160014; +DELETE FROM `creature` WHERE `id`=160014; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/instance_blackrock_spire.cpp b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/instance_blackrock_spire.cpp index 1f990e91d77..62109be96b1 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/instance_blackrock_spire.cpp +++ b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/instance_blackrock_spire.cpp @@ -947,56 +947,6 @@ GameObjectAI* GetAIgo_father_flame(GameObject *pGo) return new go_father_flameAI(pGo); } -struct npc_solakar_triggerAI : public ScriptedAI -{ - npc_solakar_triggerAI(Creature* pCreature) : ScriptedAI(pCreature) - { - instance = (instance_blackrock_spire*)pCreature->GetInstanceData(); - Reset(); - } - - ScriptedInstance* instance; - - void Reset() override - { - m_creature->EnableMoveInLosEvent(); - } - - void MoveInLineOfSight(Unit* who) override - { - if (!instance) - return; - - if (who->GetTypeId() == TYPEID_UNIT && m_creature->IsWithinDistInMap(who, 5.0f) && instance->GetData(TYPE_SOLAKAR) == IN_PROGRESS) - { - Creature* CreaGuardian = m_creature->FindNearestCreature(10258, 5.0f); // NPC_ROOKERY_GUARDIAN = 10258 - Creature* CreaHatcher = m_creature->FindNearestCreature(10683, 5.0f); // NPC_ROOKERY_HATCHER = 10683 - if (CreaGuardian || CreaHatcher) - { - instance->SetData(TYPE_SOLAKAR, SPECIAL); - - std::list listHatcher; - GetCreatureListWithEntryInGrid(listHatcher, m_creature, 10683, 10.0f); - for (std::list::const_iterator itr = listHatcher.begin(); itr != listHatcher.end(); ++itr) - { - if (listHatcher.empty()) - break; - if (!(*itr)->IsAlive()) - continue; - - (*itr)->AI()->EnterEvadeMode(); - } - listHatcher.clear(); - } - } - } -}; - -CreatureAI* GetAI_npc_solakar_trigger(Creature* pCreature) -{ - return new npc_solakar_triggerAI(pCreature); -} - /**************************************** ** Rookery Hatcher npc_rookery_hatcher ** ****************************************/ @@ -1062,13 +1012,14 @@ struct npc_rookery_hatcherAI : public ScriptedAI if (uiHatchedEgg < uiMaxHatchedEgg) { (*itr)->SetLootState(GO_JUST_DEACTIVATED); + + Creature* pWhelp = m_creature->SummonCreature(10161, (*itr)->GetPositionX(), (*itr)->GetPositionY(), (*itr)->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000); if (m_pInstance->GetData(TYPE_SOLAKAR) == SPECIAL) { - m_creature->SummonCreature(160015, (*itr)->GetPositionX(), (*itr)->GetPositionY(), (*itr)->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000); + if (pWhelp) + pWhelp->SetInCombatWithZone(true); uiMaxHatchedEgg = 24; } - else - m_creature->SummonCreature(10161, (*itr)->GetPositionX(), (*itr)->GetPositionY(), (*itr)->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000); uiHatchedEgg++; } @@ -1131,57 +1082,6 @@ CreatureAI* GetAI_npc_rookery_hatcher(Creature* pCreature) return new npc_rookery_hatcherAI(pCreature); } -/*struct go_rookey_eggAI : public GameObjectAI -{ - go_rookey_eggAI(GameObject* pGo) : GameObjectAI(pGo) {} - - bool OnUse(Unit* pUser) - { - if (me->isSpawned()) - { - me->SetLootState(GO_JUST_DEACTIVATED); - float x,y,z; - me->GetPosition(x,y,z); - ((Creature *)pUser)->SummonCreature(160015, x, y, z, 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000); - } - } - - void SummonWelp() - { - Map::PlayerList const &liste = me->GetMap()->GetPlayers(); - for (Map::PlayerList::const_iterator i = liste.begin(); i != liste.end(); ++i) - { - if (me->GetDistance(i->getSource()) <= 4.0f) - { - me->SetLootState(GO_JUST_DEACTIVATED); - float x,y,z; - me->GetPosition(x,y,z); - i->getSource()->SummonCreature(10161, x, y, z, 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000); - Actif = true; - } - } - } - - void UpdateAI(uint32 const uiDiff) - { - if (!Actif && me->isSpawned()) - { - if (CheckTimer <= uiDiff) - { - SummonWelp(); - CheckTimer = 500; - } - else - CheckTimer -= uiDiff; - } - } -}; - -GameObjectAI* GetAIgo_rookey_egg(GameObject *pGo) -{ - return new go_rookey_eggAI(pGo); -}*/ - bool AreaTrigger_at_ubrs_the_beast(Player* pPlayer, AreaTriggerEntry const* pAt) { if (pPlayer->IsDead()) @@ -1213,11 +1113,6 @@ void AddSC_instance_blackrock_spire() pNewScript->GOGetAI = &GetAIgo_father_flame; pNewScript->RegisterSelf(); - pNewScript = new Script; - pNewScript->Name = "npc_solakar_trigger"; - pNewScript->GetAI = &GetAI_npc_solakar_trigger; - pNewScript->RegisterSelf(); - pNewScript = new Script; pNewScript->Name = "npc_rookery_hatcher"; pNewScript->GetAI = &GetAI_npc_rookery_hatcher; From 4b0bbe2eb67c4fca8a82716442e591d25684892c Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 4 Dec 2023 02:50:56 +0200 Subject: [PATCH 379/426] Fix Relentless Strikes not triggering on killing blow. Closes https://github.com/vmangos/core/issues/2331 --- src/game/Objects/Unit.cpp | 11 ++++++++++- src/game/Spells/Spell.cpp | 18 ++++++++++++++---- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 5605cce7af9..fd06033dae7 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -7299,7 +7299,6 @@ void Unit::SetDeathState(DeathState s) CombatStop(); DeleteThreatList(); - ClearComboPointHolders(); // any combo points pointed to unit lost at it death if (IsNonMeleeSpellCasted(false)) InterruptNonMeleeSpells(false); @@ -7308,6 +7307,16 @@ void Unit::SetDeathState(DeathState s) m_deathState = s; if (s == JUST_DIED) { + if (!m_ComboPointHolders.empty()) + { + // Delay clearing combo points until next update. + // This fixes Relentless Strikes not triggering when the finishing move kills the target. + m_Events.AddLambdaEventAtOffset([this] + { + ClearComboPointHolders(); + }, 1); + } + RemoveAllAurasOnDeath(); UnsummonAllTotems(); diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 19640d01250..8b23885f72f 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -4633,25 +4633,35 @@ void Spell::HandleAddTargetTriggerAuras() if (ihit.deleted) continue; + SpellEntry const* auraSpellInfo = targetTrigger->GetSpellProto(); + SpellEffectIndex auraSpellIdx = targetTrigger->GetEffIndex(); + SpellEntry const* triggerSpellInfo = sSpellMgr.GetSpellEntry(auraSpellInfo->EffectTriggerSpell[auraSpellIdx]); + if (!triggerSpellInfo) + continue; + Unit* target = nullptr; if (ihit.missCondition == SPELL_MISS_NONE) target = m_casterUnit->GetObjectGuid() == ihit.targetGUID ? m_casterUnit : ObjectAccessor::GetUnit(*m_casterUnit, ihit.targetGUID); else if (ihit.missCondition == SPELL_MISS_REFLECT && ihit.reflectResult == SPELL_MISS_NONE) target = m_casterUnit; - if (!target || !target->IsAlive()) + + if (!target) + continue; + + // Don't skip dead target if the triggered spell is a self cast. + // This fixes Relentless Strikes not triggering when the finishing move kills the target. + if (!target->IsAlive() && (target == m_casterUnit || triggerSpellInfo->EffectImplicitTargetA[0] != TARGET_UNIT_CASTER)) continue; if (m_spellInfo->HasAttribute(SPELL_ATTR_EX4_CLASS_TRIGGER_ONLY_ON_TARGET) && target->GetObjectGuid() != m_casterUnit->GetTargetGuid()) continue; - SpellEntry const* auraSpellInfo = targetTrigger->GetSpellProto(); - SpellEffectIndex auraSpellIdx = targetTrigger->GetEffIndex(); // Calculate chance at that moment (can be depend for example from combo points) int32 auraBasePoints = targetTrigger->GetBasePoints(); int32 chance = m_casterUnit->CalculateSpellEffectValue(target, auraSpellInfo, auraSpellIdx, &auraBasePoints); if ((m_casterUnit->IsPlayer() && m_casterUnit->ToPlayer()->HasCheatOption(PLAYER_CHEAT_ALWAYS_PROC)) || roll_chance_i(chance)) - m_casterUnit->CastSpell(target, auraSpellInfo->EffectTriggerSpell[auraSpellIdx], true, nullptr, targetTrigger); + m_casterUnit->CastSpell(target, triggerSpellInfo, true, nullptr, targetTrigger); } } } From faaccc2e582a93cfb6e4bde6c65566fc351443f7 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 4 Dec 2023 02:54:09 +0200 Subject: [PATCH 380/426] Remove empty if statement. --- src/game/Objects/Unit.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index fd06033dae7..0997dd4eff9 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -7305,6 +7305,7 @@ void Unit::SetDeathState(DeathState s) } m_deathState = s; + if (s == JUST_DIED) { if (!m_ComboPointHolders.empty()) @@ -7343,11 +7344,6 @@ void Unit::SetDeathState(DeathState s) { RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE); // clear skinnable for creature and player (at battleground) } - - if (m_deathState != ALIVE && s == ALIVE) - { - //_ApplyAllAuraMods(); - } } /*######################################## From b772fc49e138f72db353592b4ed8875429ac552d Mon Sep 17 00:00:00 2001 From: Gamemechanic Date: Mon, 4 Dec 2023 01:58:26 +0100 Subject: [PATCH 381/426] Improve ".debug los check" command (#2337) --- src/game/Commands/DebugCommands.cpp | 13 ++++++++++-- src/game/Maps/Map.cpp | 10 ++++++++++ src/game/Maps/Map.h | 1 + src/game/vmap/DynamicTree.cpp | 31 +++++++++++++++++++++++++++++ src/game/vmap/DynamicTree.h | 1 + 5 files changed, 54 insertions(+), 2 deletions(-) diff --git a/src/game/Commands/DebugCommands.cpp b/src/game/Commands/DebugCommands.cpp index 8102a54becb..c7d19e9c058 100644 --- a/src/game/Commands/DebugCommands.cpp +++ b/src/game/Commands/DebugCommands.cpp @@ -41,6 +41,7 @@ // VMAPS #include "VMapFactory.h" #include "ModelInstance.h" +#include "GameObjectModel.h" // MMAPS #include "MoveMap.h" // for mmap manager #include "PathFinder.h" // for mmap commands @@ -1657,9 +1658,17 @@ bool ChatHandler::HandleDebugLoSCommand(char*) VMAP::ModelInstance* spawn = m_session->GetPlayer()->GetMap()->FindCollisionModel(x0, y0, z0, x1, y1, z1); if (!spawn) - SendSysMessage("* No collision found."); + SendSysMessage("* No collision with static objects found."); else - PSendSysMessage("* Collision at '%s' [%f %f %f]", spawn->name.c_str(), spawn->iPos.x, spawn->iPos.y, spawn->iPos.z); + PSendSysMessage("* Collision with static object at '%s' [%f %f %f]", spawn->name.c_str(), spawn->iPos.x, spawn->iPos.y, spawn->iPos.z); + + GameObjectModel const* dynObj = m_session->GetPlayer()->GetMap()->FindDynamicObjectCollisionModel(x0, y0, z0, x1, y1, z1); + + if (!dynObj) + SendSysMessage("* No collision with dynamic objects found."); + else + PSendSysMessage("* Collision with dynamic object at '%s' [%f %f %f]", dynObj->name.c_str(), dynObj->getPosition().x, dynObj->getPosition().y, dynObj->getPosition().z); + return true; } diff --git a/src/game/Maps/Map.cpp b/src/game/Maps/Map.cpp index 1b0767bc312..54b719fb5f7 100644 --- a/src/game/Maps/Map.cpp +++ b/src/game/Maps/Map.cpp @@ -3317,6 +3317,16 @@ VMAP::ModelInstance* Map::FindCollisionModel(float x1, float y1, float z1, float return VMAP::VMapFactory::createOrGetVMapManager()->FindCollisionModel(GetId(), x1, y1, z1, x2, y2, z2); } +GameObjectModel const* Map::FindDynamicObjectCollisionModel(float x1, float y1, float z1, float x2, float y2, float z2) +{ + ASSERT(MaNGOS::IsValidMapCoord(x1, y1, z1)); + ASSERT(MaNGOS::IsValidMapCoord(x2, y2, z2)); + Vector3 const pos1 = Vector3(x1, y1, z1); + Vector3 const pos2 = Vector3(x2, y2, z2); + std::shared_lock lock(_dynamicTree_lock); + return _dynamicTree.getObjectHit(pos1, pos2); +} + void Map::RemoveGameObjectModel(const GameObjectModel &model) { std::lock_guard lock(_dynamicTree_lock); diff --git a/src/game/Maps/Map.h b/src/game/Maps/Map.h index aefeb61dab3..0d292c417b8 100644 --- a/src/game/Maps/Map.h +++ b/src/game/Maps/Map.h @@ -557,6 +557,7 @@ class Map : public GridRefManager bool GetWalkRandomPosition(GenericTransport* t, float &x, float &y, float &z, float maxRadius, uint32 moveAllowedFlags = 0xF) const; bool GetSwimRandomPosition(float& x, float& y, float& z, float radius, GridMapLiquidData& liquid_status, bool randomRange = true) const; VMAP::ModelInstance* FindCollisionModel(float x1, float y1, float z1, float x2, float y2, float z2); + GameObjectModel const* FindDynamicObjectCollisionModel(float x1, float y1, float z1, float x2, float y2, float z2); void Balance() { _dynamicTree.balance(); } void RemoveGameObjectModel(const GameObjectModel& model); diff --git a/src/game/vmap/DynamicTree.cpp b/src/game/vmap/DynamicTree.cpp index 236c3a9efa8..5065416d320 100644 --- a/src/game/vmap/DynamicTree.cpp +++ b/src/game/vmap/DynamicTree.cpp @@ -183,6 +183,24 @@ struct DynamicTreeIntersectionCallback_WithLogger bool didHit() const { return did_hit; } }; +struct DynamicTreeIntersectionCallback_findCollisionObject +{ + bool did_hit; + GameObjectModel const* hitObj; + DynamicTreeIntersectionCallback_findCollisionObject() : did_hit(false), hitObj(nullptr) {} + bool operator()(G3D::Ray const &r, GameObjectModel const &obj, float& distance, bool stopAtFirst, bool ignoreM2Model) + { + bool hit = obj.intersectRay(r, distance, stopAtFirst, ignoreM2Model); + if (hit) + { + hitObj = &obj; + did_hit = true; + } + return did_hit; + } + bool didHit() const { return did_hit; } +}; + //========================================================= /** If intersection is found within pMaxDist, sets pMaxDist to intersection distance and returns true. @@ -282,3 +300,16 @@ float DynamicMapTree::getHeight(float x, float y, float z, float maxSearchDist) return v.z - maxSearchDist; return -G3D::inf(); } + +GameObjectModel const* DynamicMapTree::getObjectHit(Vector3 const& pPos1, Vector3 const& pPos2) const +{ + float distance = (pPos2 - pPos1).magnitude(); + Vector3 const dir = (pPos2 - pPos1) / distance; + G3D::Ray const ray(pPos1, dir); + + DynamicTreeIntersectionCallback_findCollisionObject callback; + impl.intersectRay(ray, callback, distance, pPos2, false); + if (callback.hitObj) + return callback.hitObj; + return nullptr; +} \ No newline at end of file diff --git a/src/game/vmap/DynamicTree.h b/src/game/vmap/DynamicTree.h index 3f79c55f240..2f42aae44f2 100644 --- a/src/game/vmap/DynamicTree.h +++ b/src/game/vmap/DynamicTree.h @@ -38,6 +38,7 @@ class DynamicMapTree bool getIntersectionTime(G3D::Ray const& ray, G3D::Vector3 const& endPos, float& maxDist) const; bool getObjectHitPos(G3D::Vector3 const& pPos1, G3D::Vector3 const& pPos2, G3D::Vector3& pResultHitPos, float pModifyDist) const; bool getObjectHitPos(float x1, float y1, float z1, float x2, float y2, float z2, float& rx, float& ry, float& rz, float pModifyDist) const; + GameObjectModel const* getObjectHit(G3D::Vector3 const& pPos1, G3D::Vector3 const& pPos2) const; float getHeight(float x, float y, float z, float maxSearchDist) const; void insert(GameObjectModel const&); From 2c4ec612dcedb33c4fd3903ac221a67e89932eef Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 5 Dec 2023 04:19:26 +0200 Subject: [PATCH 382/426] Will of Shahram and Holy Strength should have separate aura slot per caster. https://www.youtube.com/watch?v=rakfLOlB-xc --- sql/migrations/20231205020742_world.sql | 21 +++++++++++++++++++++ src/game/Objects/Unit.cpp | 8 ++++---- src/game/Spells/SpellDefines.h | 1 + 3 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 sql/migrations/20231205020742_world.sql diff --git a/sql/migrations/20231205020742_world.sql b/sql/migrations/20231205020742_world.sql new file mode 100644 index 00000000000..29df625cf35 --- /dev/null +++ b/sql/migrations/20231205020742_world.sql @@ -0,0 +1,21 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231205020742'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231205020742'); +-- Add your query below. + + +-- Will of Shahram and Holy Strength should have separate aura slot per caster. +UPDATE `spell_template` SET `customFlags` = (`customFlags` | 4096) WHERE `entry` IN (16598, 20007); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 0997dd4eff9..651f5ff70c2 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -3235,6 +3235,10 @@ bool Unit::AddSpellAuraHolder(SpellAuraHolder* holder) // Skip channeled spells (Arcane missile, ...) so two casters can channel at the same time if (aurSpellInfo->IsChanneledSpell()) continue; + + if (aurSpellInfo->Custom & SPELL_CUSTOM_SEPARATE_AURA_PER_CASTER) + continue; + bool stop = false; for (int32 i = 0; i < MAX_EFFECT_INDEX && !stop; ++i) @@ -3243,10 +3247,6 @@ bool Unit::AddSpellAuraHolder(SpellAuraHolder* holder) if (!foundHolder->m_auras[i] || !holder->m_auras[i]) continue; - // Croise - if (aurSpellInfo->Id == 20007) - break; - // m_auraname can be modified to SPELL_AURA_NONE for area auras, use original AuraType aurNameReal = AuraType(aurSpellInfo->EffectApplyAuraName[i]); diff --git a/src/game/Spells/SpellDefines.h b/src/game/Spells/SpellDefines.h index 810305acfaa..f9186973bd4 100644 --- a/src/game/Spells/SpellDefines.h +++ b/src/game/Spells/SpellDefines.h @@ -886,6 +886,7 @@ enum SpellAttributesCustom SPELL_CUSTOM_AURA_APPLY_BREAKS_STEALTH = 0x200, // Stealth is removed when this aura is applied SPELL_CUSTOM_NOT_REMOVED_ON_EVADE = 0x400, // Aura persists after creature evades SPELL_CUSTOM_SEND_CHANNEL_VISUAL = 0x800, // Will periodically send the channeling spell visual kit + SPELL_CUSTOM_SEPARATE_AURA_PER_CASTER = 0x1000, // Each caster has his own aura slot, instead of replacing others }; // Custom flags assigned by the core based on spell template data From a510ea40212b6b9b2009497b2b8112d49de76065 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 5 Dec 2023 15:57:59 +0200 Subject: [PATCH 383/426] Always interrupt channeled spell on teleport. --- src/game/Objects/Player.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index 702bed428f3..6af9867f846 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -2270,9 +2270,6 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati return false; } - // preparing unsummon pet if lost (we must get pet before teleportation or will not find it later) - Pet* pet = GetPet(); - MapEntry const* mEntry = sMapStorage.LookupEntry(mapid); // don't let enter battlegrounds without assigned battleground id (for example through areatrigger)... @@ -2304,6 +2301,13 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati if (!(options & TELE_TO_NOT_LEAVE_TRANSPORT) || !m_transport) m_movementInfo.RemoveMovementFlag(MOVEFLAG_ONTRANSPORT); + // Interrupt channeled spells before teleport. + // This fixes pet spells being lost if channeling Eye of Kilrogg during teleport. + InterruptSpellsWithChannelFlags(AURA_INTERRUPT_MOVING_CANCELS | AURA_INTERRUPT_TURNING_CANCELS); + + // Preparing unsummon pet if lost (we must get pet before teleportation or will not find it later). + Pet* pet = GetPet(); + // Near teleport, let it happen immediately since we remain in the same map if ((GetMapId() == mapid) && (!m_transport) && !(options & TELE_TO_FORCE_MAP_CHANGE)) { From 363ef19db69e8c4e92250e9ebc4896a98e1e49cd Mon Sep 17 00:00:00 2001 From: Gamemechanic Date: Mon, 11 Dec 2023 20:35:00 +0100 Subject: [PATCH 384/426] Add hit chance bonus to"unit statinfo" command. (#2347) --- src/game/Commands/UnitCommands.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/game/Commands/UnitCommands.cpp b/src/game/Commands/UnitCommands.cpp index 45ae5028f77..28d55abf856 100644 --- a/src/game/Commands/UnitCommands.cpp +++ b/src/game/Commands/UnitCommands.cpp @@ -446,6 +446,9 @@ bool ChatHandler::HandleUnitStatInfoCommand(char* args) PSendSysMessage("Frost spell crit chance: %g", pPlayer->GetSpellCritPercent(SPELL_SCHOOL_FROST)); PSendSysMessage("Shadow spell crit chance: %g", pPlayer->GetSpellCritPercent(SPELL_SCHOOL_SHADOW)); PSendSysMessage("Arcane spell crit chance: %g", pPlayer->GetSpellCritPercent(SPELL_SCHOOL_ARCANE)); + PSendSysMessage("Melee hit chance: %g", pPlayer->GetBonusHitChanceFromAuras(BASE_ATTACK)); + PSendSysMessage("Ranged hit chance: %g", pPlayer->GetBonusHitChanceFromAuras(RANGED_ATTACK)); + PSendSysMessage("Spell hit chance: %g", pPlayer->m_modSpellHitChance); PSendSysMessage("Positive strength: %g", pPlayer->GetPosStat(STAT_STRENGTH)); PSendSysMessage("Positive agility: %g", pPlayer->GetPosStat(STAT_AGILITY)); PSendSysMessage("Positive stamina: %g", pPlayer->GetPosStat(STAT_STAMINA)); From d4f951ee388773d918f3f72c6eb1b86126c168d3 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 16 Dec 2023 22:19:26 +0200 Subject: [PATCH 385/426] Creature school immunity should not apply to positive spells. Gelkis Rumbler was seen being healed by Healing Wave which is a Nature spell in sniff. --- src/game/Objects/Creature.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/Objects/Creature.cpp b/src/game/Objects/Creature.cpp index 00d8c9b2af2..b76c48dca4f 100644 --- a/src/game/Objects/Creature.cpp +++ b/src/game/Objects/Creature.cpp @@ -2230,7 +2230,7 @@ bool Creature::IsImmuneToSpell(SpellEntry const* spellInfo, bool castOnSelf) con if (spellInfo->Mechanic && GetCreatureInfo()->mechanic_immune_mask & (1 << (spellInfo->Mechanic - 1))) return true; - if (GetCreatureInfo()->school_immune_mask & (1 << spellInfo->School)) + if ((GetCreatureInfo()->school_immune_mask & (1 << spellInfo->School)) && !spellInfo->IsPositiveSpell()) return true; } From 8f93351f5ea7bd989312420512b4b7e7279c9ddb Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 17 Dec 2023 00:13:33 +0200 Subject: [PATCH 386/426] Remove wrong creature immunities. Closes https://github.com/vmangos/core/issues/2335 --- sql/migrations/20231216221145_world.sql | 1548 +++++++++++++++++++++++ 1 file changed, 1548 insertions(+) create mode 100644 sql/migrations/20231216221145_world.sql diff --git a/sql/migrations/20231216221145_world.sql b/sql/migrations/20231216221145_world.sql new file mode 100644 index 00000000000..492a2ae09a8 --- /dev/null +++ b/sql/migrations/20231216221145_world.sql @@ -0,0 +1,1548 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231216221145'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231216221145'); +-- Add your query below. + + +-- Rock Elemental +-- Mechanic Stun: Cheap Shot, Hammer of Justice, Charge Stun, Intercept Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=92; + +-- Fire Elemental +-- Mechanic Snare: Chilled, Chilled, Curse of Exhaustion +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=575; +-- Mechanic Stun: Revenge Stun, War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=575; + +-- Lesser Water Elemental +-- Mechanic Root: Boar Charge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=691; +-- Mechanic Snare: Concussive Shot, Curse of Exhaustion +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=691; +-- Mechanic Stun: Charge Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=691; + +-- Tangled Horror +-- Mechanic Bleed: Rupture, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=766; + +-- Cursed Sailor +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=1157; + +-- Skeletal Acolyte +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=1789; + +-- Hungering Wraith +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=1802; + +-- Wailing Death +-- Mechanic Disoriented: Blind +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=1804; + +-- Araj the Summoner +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=1852; + +-- Lake Skulker +-- Mechanic Bleed: Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=1953; + +-- Elder Lake Skulker +-- Mechanic Bleed: Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=1954; + +-- Timberling Bark Ripper +-- Mechanic Bleed: Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=2025; + +-- Cursed Highborne +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=2176; + +-- Elemental Slave +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=2359; +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=2359; +-- Mechanic Snare: Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=2359; +-- Mechanic Stun: Charge Stun, Impact +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=2359; + +-- Lesser Rock Elemental +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=2735; +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=2735; +-- Mechanic Fear: Intimidating Shout, Fear, Psychic Scream, Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=2735; +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=2735; +-- Mechanic Snare: Concussive Shot, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=2735; +-- Mechanic Stun: Kidney Shot, Cheap Shot, Hammer of Justice, Hammer of Justice, Charge Stun, Blackout, Intercept Stun, Intimidation +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=2735; + +-- Greater Rock Elemental +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=2736; +-- Mechanic Stun: Kidney Shot, Charge Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=2736; + +-- Myzrael +-- Mechanic Bleed: Rupture +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=2755; + +-- Enraged Rock Elemental +-- Mechanic Fear: Intimidating Shout, Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=2791; +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=2791; +-- Mechanic Stun: Charge Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=2791; + +-- Evolving Ectoplasm (HAS AURAS: Immunity: Frost) +-- Poison: Serpent Sting +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~32) WHERE `entry`=3640; + +-- Mutanus the Devourer +-- Mechanic Fear: Intimidating Shout, Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=3654; + +-- Shadethicket Wood Shaper +-- Mechanic Bleed: Rip +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=3781; + +-- Shadethicket Raincaller +-- Mechanic Bleed: Rip +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=3783; + +-- Shadethicket Bark Ripper +-- Mechanic Bleed: Rip +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=3784; + +-- Bleak Worg +-- School Frost: Cone of Cold, Frost Nova, Chilled, Chilled, Frostbolt, Cone of Cold, Chilled, Frostbite, Winter's Chill +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` & ~16) WHERE `entry`=3861; + +-- Tormented Officer +-- Mechanic Bleed: Rend, Garrote, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=3873; + +-- Haunted Servitor +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=3875; + +-- Wailing Guardsman +-- Mechanic Bleed: Rend, Garrote, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=3877; + +-- Razorclaw the Butcher +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1) WHERE `entry`=3886; +-- Mechanic Snare: Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=3886; + +-- Befouled Water Elemental +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=3917; +-- Mechanic Root: Improved Wing Clip, Boar Charge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=3917; +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=3917; +-- Mechanic Stun: Charge Stun, War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=3917; + +-- Wolf Master Nandos +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1) WHERE `entry`=3927; + +-- Taneel Darkwood +-- Mechanic Fear: Fear +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=3940; + +-- Houndmaster Loksey +-- Mechanic Snare: Crippling Poison, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=3974; +-- Mechanic Stun: Charge Stun, Impact +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=3974; + +-- Interrogator Vishas +-- Mechanic Fear: Intimidating Shout, Fear, Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=3983; + +-- Charred Ancient +-- Mechanic Bleed: Garrote +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=4028; + +-- Eye of Kilrogg +-- Mechanic Shield: Power Word: Shield, Power Word: Shield, Power Word: Shield, Power Word: Shield +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~262144) WHERE `entry`=4277; + +-- Odo the Blindwatcher +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1) WHERE `entry`=4279; + +-- Aggem Thorncurse +-- Mechanic Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=4424; + +-- Death Speaker Jargba +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1) WHERE `entry`=4428; +-- Mechanic Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=4428; + +-- High Inquisitor Fairbanks +-- Mechanic Snare: Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=4542; +-- Mechanic Stun: War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=4542; + +-- Bloodmage Thalnos +-- Mechanic Snare: Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=4543; + +-- Twilight Elementalist +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1) WHERE `entry`=4814; +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=4814; +-- Mechanic Fear: Fear +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=4814; +-- Mechanic Stun: Cheap Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=4814; +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=4814; + +-- Earthcaller Halmgar +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1) WHERE `entry`=4842; + +-- Deviate Lasher +-- Mechanic Bleed: Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=5055; + +-- Sea Elemental +-- Mechanic Fear: Intimidating Shout, Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=5461; +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=5461; +-- Mechanic Stun: Charge Stun, Improved Concussive Shot, Intercept Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=5461; + +-- Thistleshrub Dew Collector +-- Mechanic Bleed: Rend, Pounce Bleed, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=5481; + +-- Thistleshrub Rootshaper +-- Mechanic Bleed: Pounce Bleed, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=5485; + +-- Gnarled Thistleshrub +-- Mechanic Bleed: Pounce Bleed, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=5490; + +-- Shade of Eranikus (HAS AURAS: Deep Slumber) +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=5709; + +-- Jammal'an the Prophet +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=5710; + +-- Morphaz +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=5719; + +-- Dreamscythe +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=5721; + +-- Hazzas +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=5722; + +-- Deviate Shambler +-- Mechanic Bleed: Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=5761; + +-- Verdan the Everliving +-- Mechanic Bleed: Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=5775; + +-- Blazing Elemental +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=5850; +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=5850; +-- Mechanic Stun: Hammer of Justice, Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=5850; + +-- Inferno Elemental +-- Mechanic Snare: Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=5852; +-- Mechanic Stun: Hammer of Justice, Charge Stun, War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=5852; + +-- Heavy War Golem +-- Mechanic Snare: Concussive Shot, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=5854; + +-- Magma Elemental +-- Mechanic Root: Frostbite, Boar Charge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=5855; +-- Mechanic Snare: Concussive Shot, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=5855; +-- Mechanic Stun: Cheap Shot, Hammer of Justice, Charge Stun, Revenge Stun, Intercept Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=5855; + +-- Mechano-Frostwalker +-- Mechanic Fear: Fear +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=6227; + +-- Arcane Nullifier X-21 +-- Taunt: Taunt, Growl +-- IMMUNE Challenging Shout, Challenging Roar +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=6232; + +-- Gelihast +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1) WHERE `entry`=6243; + +-- Haunting Phantasm +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=6427; + +-- Azshir the Sleepless +-- Mechanic Snare: Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=6490; +-- Mechanic Bleed: Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=6490; + +-- Rift Spawn +-- School Arcane: Arcane Explosion +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` & ~64) WHERE `entry`=6492; + +-- Bloodpetal Lasher +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=6509; + +-- Bloodpetal Flayer +-- Mechanic Bleed: Rend, Pounce Bleed, Deep Wounds, Deep Wound +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=6510; + +-- Bloodpetal Thresher +-- Mechanic Bleed: Rend, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=6511; + +-- Tar Beast +-- Mechanic Bleed: Rupture, Garrote, Deep Wounds, Deep Wound +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=6517; + +-- Tar Lurker +-- Mechanic Bleed: Rend, Rend, Deep Wounds, Deep Wound, Deep Wounds, Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=6518; + +-- Tar Lord +-- Mechanic Bleed: Deep Wounds, Deep Wound, Deep Wounds, Deep Wounds, Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=6519; + +-- Scorching Elemental +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=6520; +-- Mechanic Stun: Hammer of Justice, Charge Stun, Hammer of Justice, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=6520; + +-- Tar Creeper +-- Mechanic Bleed: Rend, Rupture, Garrote, Rend, Deep Wounds, Deep Wound +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=6527; + +-- Obsidian Elemental +-- Mechanic Stun: Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=7031; +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=7031; + +-- Greater Obsidian Elemental +-- Mechanic Snare: Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=7032; + +-- Condemned Monk +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=7069; + +-- Warpwood Moss Flayer +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=7100; + +-- Warpwood Shredder +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=7101; + +-- Toxic Horror +-- School Frost: Chilled, Cone of Cold, Frostbolt, Frost Nova +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` & ~16) WHERE `entry`=7132; +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=7132; + +-- Irontree Wanderer +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=7138; + +-- Irontree Stomper +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=7139; + +-- Ironaya +-- Mechanic Stun: Cheap Shot, Mace Stun Effect, Hammer of Justice, Charge Stun, Hammer of Justice +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=7228; + +-- Chief Ukorz Sandscalp +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~4) WHERE `entry`=7267; + +-- Witch Doctor Zum'rah +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~4) WHERE `entry`=7271; +-- Mechanic Silence: Silence +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~256) WHERE `entry`=7271; +-- Mechanic Stun: Stun, Cheap Shot, Hammer of Justice, Charge Stun, Kidney Shot, Intimidation +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=7271; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~33554432) WHERE `entry`=7271; + +-- Theka the Martyr (HAS AURAS: Theka Transform) +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=7272; +-- Mechanic Snare: Chilled, Piercing Howl, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=7272; +-- Mechanic Stun: Cheap Shot, Big Iron Bomb, Hammer of Justice, Charge Stun, Kidney Shot, Hi-Explosive Bomb, Concussion Blow, Intercept Stun, Intimidation +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=7272; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~33554432) WHERE `entry`=7272; + +-- Shadowpriest Sezz'ziz +-- Mechanic Stun: Big Iron Bomb, Hammer of Justice, Charge Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=7275; +-- Mechanic Knockout: Gouge, Repentance +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=7275; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~33554432) WHERE `entry`=7275; + +-- Zul'Farrak Zombie +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=7286; + +-- Sergeant Bly +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~4) WHERE `entry`=7604; +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=7604; +-- Mechanic Stun: Charge Stun, Kidney Shot, War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=7604; + +-- Ilifar +-- School Nature: Wrath +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` & ~8) WHERE `entry`=7734; +-- Poison: Instant Poison VI +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` | 32) WHERE `entry`=7734; + +-- Hydromancer Velratha +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=7795; +-- Mechanic Stun: Cheap Shot, Kidney Shot, Intercept Stun, Intimidation +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=7795; +-- Mechanic Freeze: Freezing Trap Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~4096) WHERE `entry`=7795; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~33554432) WHERE `entry`=7795; + +-- Nekrum Gutchewer (HAS AURAS: Theka Transform) +-- Mechanic Stun: Cheap Shot, Big Iron Bomb, Hammer of Justice, Charge Stun, Concussion Blow, Intimidation +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=7796; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=7796; +-- Mechanic Interrupt: Counterspell +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~33554432) WHERE `entry`=7796; + +-- Chronalis +-- Taunt: Taunt +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=8197; + +-- Deep Lurker +-- Mechanic Bleed: Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=8384; + +-- Avatar of Hakkar +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=8443; + +-- Clunk +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=8447; + +-- Scourge Champion +-- Mechanic Disoriented: Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=8529; + +-- Death Singer +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=8542; + +-- Battle Chicken +-- Mod Stat: Cripple +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~4) WHERE `entry`=8836; + +-- Fireguard +-- Mechanic Root: Frostbite, Improved Hamstring +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=8909; +-- Mechanic Snare: Chilled, Piercing Howl, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=8909; +-- Mechanic Knockout: Gouge, Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=8909; + +-- Blazing Fireguard +-- Mechanic Snare: Concussive Shot, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=8910; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=8910; + +-- Fireguard Destroyer +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=8911; + +-- Panzor the Invincible +-- Mechanic Stun: Cheap Shot, Kidney Shot, Hammer of Justice +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=8923; + +-- High Interrogator Gerstahn +-- Mechanic Silence: Silence +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~256) WHERE `entry`=9018; +-- Mechanic Stun: Big Iron Bomb, Charge Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9018; + +-- Pyromancer Loregrain +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=9024; +-- Mechanic Snare: Crippling Poison, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=9024; +-- Mechanic Stun: Cheap Shot, Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9024; + +-- Lord Roccor +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=9025; +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=9025; +-- Mechanic Snare: Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=9025; +-- Mechanic Bleed: Deep Wound, Deep Wounds, Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=9025; + +-- Hate'rel +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Revenge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9034; + +-- Anger'rel +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Revenge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9035; + +-- Vile'rel +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Hammer of Justice, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9036; + +-- Gloom'rel (HAS AURAS: Recklessness) +-- Mechanic Snare: Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=9037; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Concussion Blow +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9037; + +-- Seeth'rel +-- Mechanic Snare: Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=9038; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9038; + +-- Doom'rel (HAS AURAS: Banish) +-- Mechanic Snare: Earthbind, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=9039; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Revenge Stun, War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9039; + +-- Dope'rel +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Revenge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9040; + +-- Warder Stilgiss +-- Mechanic Silence: Silence +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~256) WHERE `entry`=9041; +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=9041; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Improved Concussive Shot, Intimidation +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9041; + +-- Verek +-- Mechanic Root: Improved Hamstring +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=9042; +-- Mechanic Snare: Crippling Poison, Chilled, Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=9042; +-- Mechanic Stun: Cheap Shot, Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9042; + +-- Fineous Darkvire +-- Mechanic Silence: Silence +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~256) WHERE `entry`=9056; +-- Mechanic Stun: Cheap Shot, Hammer of Justice, Charge Stun, Hammer of Justice, Revenge Stun, Intimidation +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9056; + +-- Rage Talon Dragonspawn +-- Taunt: Taunt, Challenging Shout, Challenging Roar, Growl, Mocking Blow +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=9096; + +-- Highlord Omokk +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=9196; +-- Mechanic Stun: Cheap Shot, Iron Grenade, Charge Stun, Hammer of Justice, Impact, Intercept Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9196; + +-- Spirestone Battle Lord +-- Mechanic Stun: Charge Stun, Hammer of Justice, War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9218; + +-- Spirestone Butcher +-- Mechanic Stun: Cheap Shot, Charge Stun, Hammer of Justice +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9219; + +-- Shadow Hunter Vosh'gajin +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=9236; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Hammer of Justice, Impact, Starfire Stun, Intercept Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9236; + +-- Houndmaster Grebmar +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=9319; +-- Mechanic Snare: Piercing Howl, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=9319; +-- Mechanic Stun: Charge Stun, Kidney Shot, War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9319; + +-- Aquementas +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=9453; + +-- Phalanx +-- Mechanic Snare: Chilled, Hamstring +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=9502; + +-- Hurley Blackbreath +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=9537; +-- Mechanic Snare: Chilled, Piercing Howl, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=9537; +-- Mechanic Stun: Cheap Shot, Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9537; + +-- Ribbly Screwspigot +-- Mechanic Fear: Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=9543; +-- Mechanic Snare: Chilled, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=9543; +-- Mechanic Stun: Cheap Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9543; + +-- Overlord Wyrmthalak +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=9568; +-- Mechanic Stun: Charge Stun, Kidney Shot, Hammer of Justice, Revenge Stun, Intercept Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9568; + +-- Quartermaster Zigris +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=9736; +-- Mechanic Fear: Intimidating Shout, Fear, Howl of Terror, Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=9736; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash, Hammer of Justice, Impact, Revenge Stun, Concussion Blow, Starfire Stun, Intercept Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=9736; + +-- Rage Talon Flamescale +-- Taunt: Taunt, Challenging Shout, Challenging Roar, Growl +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=10083; + +-- Halycon +-- Mechanic Stun: Cheap Shot, Charge Stun, Hammer of Justice, Revenge Stun, Concussion Blow, Starfire Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10220; + +-- Rookery Guardian +-- Taunt: Taunt +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=10258; + +-- Solakar Flamewreath +-- Mechanic Stun: Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10264; +-- Taunt: Taunt +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=10264; + +-- Gizrul the Slavener +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Hammer of Justice, Revenge Stun, Concussion Blow, Starfire Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10268; + +-- Rage Talon Dragon Guard +-- Taunt: Taunt, Mocking Blow, Challenging Roar, Growl, Mocking Blow, Mocking Blow +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=10366; + +-- Rage Talon Captain +-- Taunt: Taunt, Challenging Shout, Challenging Roar, Growl, Mocking Blow, Mocking Blow +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=10371; + +-- Rage Talon Fire Tongue +-- Taunt: Taunt, Challenging Shout, Growl, Mocking Blow, Mocking Blow, Mocking Blow +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=10372; + +-- Skeletal Guardian +-- Mechanic Disoriented: Blind +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=10390; + +-- Skeletal Berserker +-- Mechanic Disoriented: Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=10391; + +-- Skul +-- Mechanic Bleed: Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=10393; + +-- Black Guard Sentry +-- Mechanic Polymorph: Discombobulate +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~65536) WHERE `entry`=10394; + +-- Vectus +-- Mechanic Stun: Hammer of Justice, Revenge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10432; + +-- Magistrate Barthilas +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=10435; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Hammer of Justice, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10435; + +-- Chromatic Dragonspawn +-- Taunt: Taunt, Challenging Shout, Growl, Mocking Blow +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=10447; + +-- Risen Construct +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=10488; + +-- Risen Guard +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=10489; + +-- Jandice Barov (HAS AURAS: Banish) +-- Mechanic Stun: Charge Stun, Hammer of Justice +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10503; + +-- Lord Alexei Barov +-- Mechanic Stun: Charge Stun, Hammer of Justice, Revenge Stun, Starfire Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10504; + +-- Instructor Malicia +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=10505; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash, Hammer of Justice, Starfire Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10505; + +-- The Ravenian +-- Mechanic Stun: Cheap Shot, Charge Stun, Hammer of Justice, Starfire Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10507; + +-- Ras Frostwhisper +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash, Hammer of Justice, Starfire Stun, Intercept Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10508; +-- Mechanic Bleed: Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=10508; + +-- Jed Runewatcher +-- Mechanic Stun: Cheap Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10509; + +-- The Unforgiven +-- Mechanic Stun: Hammer of Justice +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10516; + +-- Hearthsinger Forresten +-- Mechanic Snare: Chilled, Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=10558; +-- Mechanic Stun: Cheap Shot, Charge Stun, Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10558; + +-- Urok Doomhowl +-- Mechanic Stun: War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10584; + +-- Mother Smolderweb +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=10596; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Pounce, Hammer of Justice, Impact, Revenge Stun, Concussion Blow +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10596; + +-- Scryer +-- Taunt: Growl +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=10664; + +-- Rookery Hatcher +-- Taunt: Taunt +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=10683; + +-- Scalding Elemental +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=10756; +-- Mechanic Fear: Intimidating Shout, Psychic Scream, Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=10756; +-- Mechanic Stun: Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10756; + +-- Boiling Elemental +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=10757; +-- Mechanic Stun: Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10757; + +-- Timmy the Cruel +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=10808; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Revenge Stun, Concussion Blow, Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10808; + +-- Chromatic Elite Guard +-- Taunt: Taunt, Challenging Shout, Growl, Mocking Blow +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=10814; + +-- Wandering Skeleton +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=10816; + +-- Lorekeeper Polkelt +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash, Hammer of Justice, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10901; + +-- Darrowshire Defender +-- Mechanic Bleed: Rupture +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=10948; + +-- Summoned Water Elemental +-- Mechanic Fear: Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=10955; +-- Mechanic Stun: Cheap Shot, Charge Stun, Revenge Stun, War Stomp, Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10955; + +-- Fallen Hero +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=10996; + +-- Cannon Master Willey +-- Mechanic Snare: Crippling Poison, Hallow's End Fright +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=10997; +-- Mechanic Stun: Cheap Shot, Charge Stun, Revenge Stun, Concussion Blow +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=10997; + +-- Malor the Zealous +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Hammer of Justice, Intercept Stun, Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=11032; + +-- Cauldron Lord Soulwrath +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=11078; + +-- Spirit of Trey Lightforge +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=11141; +-- Mechanic Bleed: Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=11141; + +-- Undead Postman +-- Mechanic Snare: Chilled, Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=11142; +-- Mechanic Stun: Cheap Shot, Hammer of Justice, Revenge Stun, Concussion Blow, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=11142; + +-- Molten Elemental +-- Mechanic Root: Boar Charge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=11321; +-- Mechanic Stun: Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=11321; + +-- Gurubashi Berserker +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=11352; + +-- Gurubashi Champion +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1) WHERE `entry`=11356; +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=11356; +-- Mechanic Fear: Intimidating Shout, Fear, Psychic Scream, Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=11356; +-- Mechanic Root: Frostbite, Entrapment, Improved Wing Clip +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=11356; +-- Mechanic Snare: Concussive Shot, Piercing Howl, Chilled, Aftermath +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=11356; +-- Mechanic Freeze: Freezing Trap Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~4096) WHERE `entry`=11356; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=11356; +-- Mechanic Polymorph: Polymorph, Polymorph, Polymorph: Turtle, Polymorph: Pig +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~65536) WHERE `entry`=11356; + +-- Petrified Treant +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=11458; + +-- Ironbark Protector +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds, Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=11459; + +-- Warpwood Guardian +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=11461; + +-- Warpwood Treant +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=11462; + +-- Warpwood Tangler +-- Mechanic Bleed: Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=11464; + +-- Warpwood Stomper +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=11465; + +-- Skeletal Highborne +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=11476; + +-- Tendris Warpwood +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=11489; + +-- Alzzin the Wildshaper +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=11492; + +-- Ragnaros (HAS AURAS: Ragnaros Submerge Effect) +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=11502; + +-- Rattlegore +-- Mechanic Stun: Cheap Shot, Kidney Shot, Hammer of Justice, Revenge Stun, Concussion Blow, Starfire Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=11622; + +-- Molten Giant +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=11658; + +-- Flamewaker +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=11661; + +-- Flamewaker Priest +-- Mod Cast Speed: Curse of Tongues, Fang of the Crystal Spider +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~8) WHERE `entry`=11662; + +-- Flamewaker Healer +-- Mechanic Stun: Cheap Shot, Kidney Shot, Bash, Hammer of Justice, Revenge Stun, Concussion Blow, Blackout, Intercept Stun, War Stomp, Intercept Stun, Earthshaker +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=11663; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=11663; +-- Mechanic Polymorph: Polymorph, Polymorph, Polymorph, Polymorph, Polymorph: Turtle, Polymorph: Pig +-- IMMUNE Polymorph: Polymorph, Polymorph, Polymorph: Pig +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~65536) WHERE `entry`=11663; + +-- Lava Annihilator +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=11665; + +-- Firelord +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=11668; + +-- Flame Imp +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=11669; +-- Mechanic Snare: Earthbind, Concussive Shot, Chilled, Chilled, Piercing Howl, Chilled, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=11669; +-- Mechanic Stun: Cheap Shot, Iron Grenade, Big Iron Bomb, Mace Stun Effect, Charge Stun, Hammer of Justice, Impact, Revenge Stun, Concussion Blow, War Stomp, Intercept Stun, Earthshaker, Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=11669; +-- Mechanic Bleed: Garrote, Garrote, Rend, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=11669; + +-- Captain Galvangar +-- Mechanic Stun: Mace Stun Effect, Charge Stun, Revenge Stun, Intercept Stun, Intercept Stun, Earthshaker +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=11947; + +-- Captain Balinda Stonehearth +-- Mechanic Silence: Silence +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~256) WHERE `entry`=11949; +-- Mechanic Stun: Cheap Shot, Mace Stun Effect, Charge Stun, Concussion Blow, Intercept Stun, Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=11949; + +-- Garr +-- Mechanic Bleed: Rupture, Garrote, Rend, Deep Wound, Deep Wounds, Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=12057; + +-- Sulfuron Harbinger +-- Mod Cast Speed: Curse of Tongues, Fang of the Crystal Spider +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~8) WHERE `entry`=12098; + +-- Lava Surger +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=12101; + +-- Flamewaker Protector +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=12119; +-- Mechanic Bleed: Garrote, Rupture, Deep Wound, Deep Wounds, Rend +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=12119; + +-- Onyxian Warder +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=12129; +-- Mechanic Stun: Cheap Shot, Iron Grenade, Mace Stun Effect, Charge Stun, Kidney Shot, Hammer of Justice, Impact, Revenge Stun, Concussion Blow, Blackout, Intercept Stun, War Stomp, Intercept Stun, Intercept Stun, Intimidation +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=12129; + +-- Son of Flame +-- Mechanic Disoriented: Scatter Shot +-- IMMUNE Disoriented: Blind +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=12143; +-- Mechanic Fear: Intimidating Shout, Fear, Psychic Scream, Psychic Scream, Howl of Terror, Intimidating Shout +-- IMMUNE Fear: Howl of Terror +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=12143; + +-- Barbed Lasher +-- Mechanic Bleed: Rend, Garrote, Garrote, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=12219; + +-- Constrictor Vine +-- Mechanic Bleed: Garrote, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=12220; + +-- Cavern Lurker +-- Mechanic Bleed: Garrote, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=12223; + +-- Cavern Shambler +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=12224; + +-- Razorlash +-- Mechanic Bleed: Garrote, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=12258; + +-- Gehennas +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=12259; + +-- Shazzrah +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=12264; + +-- Death Talon Dragonspawn +-- Mechanic Freeze: Freezing Trap Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~4096) WHERE `entry`=12422; +-- Mechanic Knockout: Gouge, Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=12422; + +-- Razorgore the Untamed +-- Mechanic Bleed: Rupture, Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=12435; + +-- Blackwing Spellbinder (HAS AURAS: Spell Immunity) +-- Mechanic Disoriented: Scatter Shot +-- IMMUNE Disoriented: Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=12457; +-- Mechanic Snare: Piercing Howl +-- IMMUNE Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=12457; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash, Revenge Stun, Concussion Blow, Intercept Stun, War Stomp, Intercept Stun +-- IMMUNE Stun: Iron Grenade, Hammer of Justice, Hammer of Justice, Thorium Grenade +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=12457; +-- Mechanic Knockout: Gouge, Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=12457; + +-- Blackwing Taskmaster +-- Mechanic Disoriented: Scatter Shot, Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=12458; +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=12458; +-- Mechanic Snare: Earthbind, Concussive Shot, Chilled, Piercing Howl, Chilled, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=12458; +-- Mechanic Stun: Cheap Shot, Hammer of Justice, Charge Stun, Kidney Shot, Bash, Hammer of Justice, Revenge Stun, Concussion Blow, Blackout, Intercept Stun, War Stomp, Intercept Stun, Earthshaker +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=12458; + +-- Blackwing Warlock +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=12459; + +-- Death Talon Wyrmkin +-- Mechanic Disoriented: Scatter Shot, Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=12465; +-- Mechanic Fear: Intimidating Shout, Fear, Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=12465; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=12465; + +-- Death Talon Hatcher +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=12468; + +-- Axtroz (HAS AURAS: Immunity: Fire) +-- Taunt: Taunt +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=12899; + +-- Somnus (HAS AURAS: Immunity: Nature) +-- Taunt: Taunt, Growl +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=12900; + +-- Lorgus Jett +-- Mechanic Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1) WHERE `entry`=12902; +-- Mechanic Snare: Slow +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=12902; + +-- Warpwood Crusher +-- Mechanic Bleed: Rupture, Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=13021; + +-- Whip Lasher +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=13022; + +-- Lieutenant Spencer +-- Mechanic Snare: Earthbind, Concussive Shot, Chilled, Chilled, Crippling Poison, Piercing Howl, Chilled, Chilled +-- IMMUNE Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=13138; + +-- Deeprot Stomper +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=13141; + +-- Deeprot Tangler +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=13142; + +-- Phase Lasher +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=13196; + +-- Fel Lash +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=13197; + +-- Noxxion +-- Mechanic Bleed: Garrote, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=13282; + +-- Death Lash +-- Mechanic Bleed: Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=13285; + +-- Lieutenant Greywand +-- Mechanic Root: Frostbite, Improved Hamstring, Boar Charge +-- IMMUNE Root: Entangling Roots +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=13298; +-- Mechanic Snare: Earthbind, Concussive Shot, Chilled, Chilled, Crippling Poison, Piercing Howl, Curse of Exhaustion +-- IMMUNE Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=13298; + +-- Noxxious Scion +-- School Frost: Frost Nova, Cone of Cold, Chilled +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` & ~16) WHERE `entry`=13696; + +-- Corrupt Force of Nature +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=13743; + +-- Blackwing Technician +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=13996; + +-- Enraged Felguard +-- Mechanic Root: Frostbite +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=14101; +-- Mechanic Stun: Kidney Shot, Hammer of Justice, Revenge Stun, Concussion Blow, Blackout, Intercept Stun +-- IMMUNE Stun: Hammer of Justice +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=14101; + +-- Green Drakonid +-- Mechanic Polymorph: Polymorph +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~65536) WHERE `entry`=14262; + +-- Chromatic Drakonid +-- Mechanic Stun: Cheap Shot, Kidney Shot, Bash, Hammer of Justice, Revenge Stun, Concussion Blow, Intercept Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=14302; +-- Mechanic Bleed: Garrote, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=14302; + +-- Petrified Guardian +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=14303; + +-- Ferra +-- Mechanic Fear: Scare Beast +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=14308; + +-- Cho'Rush the Observer +-- Mechanic Stun: Kidney Shot, Concussion Blow, War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=14324; + +-- Pimgib +-- Mechanic Stun: Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=14349; + +-- Pusillin +-- Mechanic Stun: Kidney Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=14354; + +-- Arcane Torrent +-- School Nature: Earth Shock, Lightning Shield, Lightning Shield +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` & ~8) WHERE `entry`=14399; + +-- Arcane Feedback +-- School Nature: Earth Shock +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` & ~8) WHERE `entry`=14400; + +-- Master Elemental Shaper Krixix +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=14401; +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=14401; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Hammer of Justice, War Stomp, Intercept Stun, War Stomp +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=14401; +-- Mechanic Knockout: Gouge, Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=14401; +-- Mechanic Bleed: Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=14401; +-- Mechanic Polymorph: Polymorph +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~65536) WHERE `entry`=14401; + +-- Prince Thunderaan +-- Taunt: Taunt, Growl +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=14435; + +-- Thundering Invader +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=14462; + +-- Scourge Footsoldier +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=14486; + +-- Gurubashi Bat Rider +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=14750; + +-- Sacrificed Troll +-- Mechanic Fear: Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=14826; + +-- Blood Steward of Kirtonos +-- Mechanic Stun: Hammer of Justice +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=14861; + +-- Emeriss (HAS AURAS: Summon Player) +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=14889; + +-- Prince Skaldrenox +-- School Fire: Fireball, Fire Blast, Fire Blast, Scorch, Ignite, Searing Pain, Fireball, Firebolt +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` & ~4) WHERE `entry`=15203; +-- Taunt: Taunt, Challenging Roar, Growl +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=15203; + +-- High Marshal Whirlaxis +-- Taunt: Taunt +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=15204; + +-- Baron Kazum +-- Taunt: Taunt, Challenging Roar, Growl +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=15205; + +-- Vekniss Stinger +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=15235; + +-- Vekniss Wasp +-- Mechanic Root: Improved Wing Clip +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=15236; +-- Mechanic Snare: Concussive Shot, Piercing Howl, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=15236; +-- Mechanic Stun: Cheap Shot, Iron Grenade, Charge Stun, Kidney Shot, Bash, Hammer of Justice, Impact, Revenge Stun, Concussion Blow, Blackout, Starfire Stun, Thorium Grenade, Intercept Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=15236; + +-- Vekniss Hive Crawler +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=15240; + +-- Anubisath Defender (HAS AURAS: Explode) +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=15277; + +-- Lord Skwol +-- School Frost: Frostbolt +-- IMMUNE Frost: Chilled +UPDATE `creature_template` SET `school_immune_mask` = (`school_immune_mask` & ~16) WHERE `entry`=15305; +-- Taunt: Taunt, Challenging Shout, Growl +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=15305; + +-- Hive'Zara Soldier +-- Mechanic Snare: Crippling Poison, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=15320; + +-- Hive'Zara Sandstalker +-- Mechanic Snare: Crippling Poison, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=15323; + +-- Qiraji Gladiator +-- Mechanic Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=15324; + +-- Hive'Zara Wasp +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=15325; +-- Mechanic Snare: Concussive Shot, Crippling Poison, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=15325; + +-- Hive'Zara Stinger +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=15327; + +-- Obsidian Destroyer +-- Mechanic Bleed: Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=15338; + +-- Qiraji Swarmguard +-- Mechanic Root: Entrapment +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~64) WHERE `entry`=15343; +-- Mechanic Snare: Concussive Shot, Crippling Poison, Chilled +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=15343; +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Hammer of Justice, Revenge Stun, Concussion Blow, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=15343; + +-- Buru Egg +-- Mechanic Snare: Crippling Poison +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=15514; +-- Mechanic Stun: Charge Stun, Impact, Intercept Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=15514; + +-- Battleguard Sartura (HAS AURAS: Whirlwind) +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=15516; +-- Mechanic Stun: Cheap Shot, Kidney Shot, Bash, Hammer of Justice, Impact, Revenge Stun, Concussion Blow, Blackout, Starfire Stun, Thorium Grenade, Intercept Stun, Intercept Stun +-- IMMUNE Stun: Kidney Shot, Bash, Hammer of Justice, Impact, Revenge Stun, Concussion Blow, Blackout, Starfire Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=15516; + +-- Flesh Tentacle +-- Mechanic Disoriented: Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=15802; +-- Mechanic Bleed: Rupture, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=15802; + +-- Qiraji Lieutenant +-- Mechanic Stun: Charge Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=15806; + +-- Qiraji Officer Zod +-- Mechanic Stun: Charge Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=15813; + +-- Thaddius +-- Taunt: Taunt, Challenging Shout, Growl +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=15928; + +-- Grobbulus +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=15931; + +-- Dread Creeper +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=15974; + +-- Venom Stalker +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=15976; + +-- Infectious Skitterer +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=15977; + +-- Sartura's Royal Guard +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=15984; + +-- Patchwork Golem +-- Mechanic Bleed: Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=16017; + +-- Bile Retcher +-- Mechanic Bleed: Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=16018; + +-- Mad Scientist +-- Mechanic Stun: Cheap Shot, Iron Grenade, Charge Stun, Kidney Shot, Bash, Hammer of Justice, Mithril Frag Bomb, Hi-Explosive Bomb, Thorium Grenade, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=16020; + +-- Stitched Spewer +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash, Hammer of Justice, Intercept Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=16025; +-- Mechanic Bleed: Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=16025; + +-- Patchwerk +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=16028; +-- Mechanic Fumble: Fumble +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~32) WHERE `entry`=16028; + +-- Sludge Belcher +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash, Intercept Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=16029; +-- Mechanic Bleed: Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=16029; + +-- Gothik the Harvester (HAS AURAS: Stun Self + Immune) +-- Taunt: Taunt, Challenging Shout, Growl, Mocking Blow +UPDATE `creature_template` SET `immunity_flags` = (`immunity_flags` & ~2) WHERE `entry`=16060; + +-- Unrelenting Rider +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~4) WHERE `entry`=16126; +-- Mechanic Snare: Concussive Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=16126; + +-- Shadow of Doom +-- Mechanic Disoriented: Blind, Scatter Shot, Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=16143; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=16143; + +-- Deathknight Captain +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~4) WHERE `entry`=16145; + +-- Bony Construct +-- Mechanic Snare: Concussive Shot, Piercing Howl +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1024) WHERE `entry`=16167; +-- Mechanic Shackle: Shackle Undead +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~524288) WHERE `entry`=16167; + +-- Stoneskin Gargoyle (HAS AURAS: Stoneskin) +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=16168; + +-- Skeletal Smith +-- Mechanic Disarm: Disarm +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~4) WHERE `entry`=16193; +-- Mechanic Bleed: Garrote, Rend, Deep Wound, Deep Wounds +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16384) WHERE `entry`=16193; + +-- Eye Stalk +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=16236; + +-- Skeletal Shocktrooper +-- Mechanic Disoriented: Scatter Shot, Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=16299; + +-- Sewage Slime +-- Mechanic Stun: Cheap Shot, Charge Stun, Kidney Shot, Bash, Hammer of Justice, Hi-Explosive Bomb, Thorium Grenade, Intercept Stun, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=16375; + +-- Bone Witch +-- Mechanic Disoriented: Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=16380; + +-- Deathchill Servant +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=16390; +-- Mechanic Shackle: Shackle Undead +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~524288) WHERE `entry`=16390; + +-- Soldier of the Frozen Wastes +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=16427; + +-- Unstoppable Abomination +-- Mechanic Stun: Cheap Shot, Kidney Shot, Bash, Hammer of Justice, Hi-Explosive Bomb, Thorium Grenade, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=16428; + +-- Guardian of Icecrown +-- Mechanic Disoriented: Blind, Scatter Shot +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=16441; +-- Mechanic Stun: Bash, Hammer of Justice, War Stomp, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=16441; +-- Mechanic Freeze: Freezing Trap Effect +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~4096) WHERE `entry`=16441; +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=16441; +-- Mechanic Shackle: Shackle Undead, Shackle Undead, Shackle Undead +-- IMMUNE Shackle: Shackle Undead +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~524288) WHERE `entry`=16441; +-- Mechanic Turn: Turn Undead +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~4194304) WHERE `entry`=16441; + +-- Plagued Gargoyle (HAS AURAS: Stoneskin) +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=16446; + +-- Plagued Deathhound +-- Mechanic Stun: Charge Stun, Intercept Stun +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2048) WHERE `entry`=16448; + +-- Spirit of Naxxramas +-- Mechanic Disoriented: Scatter Shot, Glimpse of Madness +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~2) WHERE `entry`=16449; +-- Mechanic Shackle: Shackle Undead +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~524288) WHERE `entry`=16449; + +-- Necro Stalker +-- Mechanic Distract: Distract +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8) WHERE `entry`=16453; + +-- Naxxramas Worshipper (HAS AURAS: Mind Exhaustion) +-- Mechanic Charm: Mind Control +-- IMMUNE Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1) WHERE `entry`=16506; + +-- Corpse Scarab +-- Mechanic Fear: Fear, Psychic Scream, Psychic Scream +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=16698; + +-- Deathknight Understudy (HAS AURAS: Mind Exhaustion) +-- Mechanic Charm: Mind Control +-- IMMUNE Charm: Mind Control +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~1) WHERE `entry`=16803; + +-- Plagued Champion +-- Mechanic Knockout: Gouge +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~8192) WHERE `entry`=16983; + +-- Maexxna Spiderling +-- Mechanic Fear: Intimidating Shout +UPDATE `creature_template` SET `mechanic_immune_mask` = (`mechanic_immune_mask` & ~16) WHERE `entry`=17055; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From c0d5742f5d0c69c0cd6f305bcf9e87c77e78bc75 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 17 Dec 2023 02:56:54 +0200 Subject: [PATCH 387/426] Fix some false positives with movement anticheat. Closes https://github.com/vmangos/core/issues/2338 --- .../MovementAnticheat/MovementAnticheat.cpp | 23 ++++++++++++++----- src/game/Movement/PointMovementGenerator.cpp | 2 +- src/game/Movement/spline/MoveSplineInit.cpp | 1 + src/game/Objects/Player.cpp | 4 ++-- src/game/Objects/Unit.cpp | 5 +++- 5 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp b/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp index 733c1bcc2e4..8b97d8daf01 100644 --- a/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp +++ b/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp @@ -972,7 +972,7 @@ bool MovementAnticheat::CheckMultiJump(uint16 opcode) return false; } -#define NO_WALL_CLIMB_CHECK_MOVE_FLAGS (MOVEFLAG_JUMPING | MOVEFLAG_FALLINGFAR | MOVEFLAG_SWIMMING | MOVEFLAG_CAN_FLY | MOVEFLAG_FLYING | MOVEFLAG_PITCH_UP | MOVEFLAG_PITCH_DOWN | MOVEFLAG_ONTRANSPORT) +#define NO_WALL_CLIMB_CHECK_MOVE_FLAGS (MOVEFLAG_JUMPING | MOVEFLAG_FALLINGFAR | MOVEFLAG_SWIMMING | MOVEFLAG_CAN_FLY | MOVEFLAG_FLYING | MOVEFLAG_PITCH_UP | MOVEFLAG_PITCH_DOWN | MOVEFLAG_ONTRANSPORT | MOVEFLAG_SPLINE_ELEVATION) #define NO_WALL_CLIMB_CHECK_UNIT_FLAGS (UNIT_FLAG_UNK_0 | UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_CONFUSED | UNIT_FLAG_FLEEING | UNIT_FLAG_POSSESSED) bool MovementAnticheat::CheckWallClimb(MovementInfo const& movementInfo, uint16 opcode) const @@ -996,7 +996,17 @@ bool MovementAnticheat::CheckWallClimb(MovementInfo const& movementInfo, uint16 float const angleRad = atan(deltaZ / deltaXY); //float const angleDeg = angleRad * (360 / (M_PI_F * 2)); - return angleRad > sWorld.getConfig(CONFIG_FLOAT_AC_MOVEMENT_CHEAT_WALL_CLIMB_ANGLE); + if (angleRad > sWorld.getConfig(CONFIG_FLOAT_AC_MOVEMENT_CHEAT_WALL_CLIMB_ANGLE)) + { + // check height with and without vmaps and compare + // if player is stepping over model like stairs, that can increase wall climb angle + float const height1 = me->GetMap()->GetHeight(movementInfo.pos.x, movementInfo.pos.y, movementInfo.pos.z, false); + float const height2 = me->GetMap()->GetHeight(movementInfo.pos.x, movementInfo.pos.y, movementInfo.pos.z, true); + if ((std::abs(height1 - height2) < 0.5f) || (deltaZ > 5.0f)) + return true; + } + + return false; } bool MovementAnticheat::CheckForbiddenArea(MovementInfo const& movementInfo) const @@ -1297,9 +1307,10 @@ bool MovementAnticheat::CheckTeleport(MovementInfo const& movementInfo) const return true; // check moving in given axis without appropriate move flags + // during fall collision with cliffs can change xy so skip that case if (GetLastMovementInfo().ctime && - !GetLastMovementInfo().HasMovementFlag(MOVEFLAG_MASK_XZ) && - !movementInfo.HasMovementFlag(MOVEFLAG_MASK_XZ) && + !GetLastMovementInfo().HasMovementFlag(MOVEFLAG_MASK_XZ | MOVEFLAG_JUMPING | MOVEFLAG_FALLINGFAR) && + !movementInfo.HasMovementFlag(MOVEFLAG_MASK_XZ | MOVEFLAG_JUMPING | MOVEFLAG_FALLINGFAR) && GetLastMovementInfo().HasMovementFlag(MOVEFLAG_ONTRANSPORT) == movementInfo.HasMovementFlag(MOVEFLAG_ONTRANSPORT)) { float const distance2d = movementInfo.HasMovementFlag(MOVEFLAG_ONTRANSPORT) ? @@ -1311,8 +1322,8 @@ bool MovementAnticheat::CheckTeleport(MovementInfo const& movementInfo) const // swimming flag only included in check because of 1.14 // vanilla clients do not have a descend/ascend flag - if (!GetLastMovementInfo().HasMovementFlag(MOVEFLAG_JUMPING | MOVEFLAG_FALLINGFAR | MOVEFLAG_SWIMMING) && - !movementInfo.HasMovementFlag(MOVEFLAG_JUMPING | MOVEFLAG_FALLINGFAR | MOVEFLAG_SWIMMING)) + if (!GetLastMovementInfo().HasMovementFlag(MOVEFLAG_SWIMMING) && + !movementInfo.HasMovementFlag(MOVEFLAG_SWIMMING)) { float const distanceZ = movementInfo.HasMovementFlag(MOVEFLAG_ONTRANSPORT) ? std::abs(GetLastMovementInfo().t_pos.z - movementInfo.t_pos.z) : diff --git a/src/game/Movement/PointMovementGenerator.cpp b/src/game/Movement/PointMovementGenerator.cpp index df0559a368c..86e11d3aff4 100644 --- a/src/game/Movement/PointMovementGenerator.cpp +++ b/src/game/Movement/PointMovementGenerator.cpp @@ -236,7 +236,7 @@ void ChargeMovementGenerator::Initialize(T& unit) return; unit.AddUnitState(UNIT_STAT_ROAMING | UNIT_STAT_ROAMING_MOVE); - unit.m_movementInfo.moveFlags = unit.m_movementInfo.moveFlags & ~MOVEFLAG_MASK_MOVING_OR_TURN; + unit.m_movementInfo.RemoveMovementFlag(MOVEFLAG_MASK_MOVING_OR_TURN); unit.m_movementInfo.ctime = 0; Movement::MoveSplineInit init(unit, "ChargeMovementGenerator::Initialize"); diff --git a/src/game/Movement/spline/MoveSplineInit.cpp b/src/game/Movement/spline/MoveSplineInit.cpp index 02401bb8a9d..0f5c9a986e8 100644 --- a/src/game/Movement/spline/MoveSplineInit.cpp +++ b/src/game/Movement/spline/MoveSplineInit.cpp @@ -133,6 +133,7 @@ int32 MoveSplineInit::Launch() if (unit.IsPlayer() || unit.GetPossessorGuid().IsPlayer()) unit.SetSplineDonePending(true); + unit.m_movementInfo.ctime = 0; unit.m_movementInfo.SetMovementFlags((MovementFlags)moveFlags); move_spline.SetMovementOrigin(movementType); move_spline.Initialize(args); diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index 6af9867f846..b8dd906f53b 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -2297,6 +2297,7 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati DuelComplete(DUEL_FLED); // reset movement flags at teleport, because player will continue move with these flags after teleport + m_movementInfo.ctime = 0; m_movementInfo.RemoveMovementFlag(MOVEFLAG_MASK_MOVING_OR_TURN); if (!(options & TELE_TO_NOT_LEAVE_TRANSPORT) || !m_transport) m_movementInfo.RemoveMovementFlag(MOVEFLAG_ONTRANSPORT); @@ -2366,7 +2367,6 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati m_teleportRecover = wps; wps(); } - m_movementInfo.moveFlags &= ~MOVEFLAG_MASK_MOVING_OR_TURN; // For extrapolation } else { @@ -4994,7 +4994,7 @@ void Player::SetFly(bool enable) pTransport->RemovePassenger(this); StopMoving(true); } - + m_movementInfo.moveFlags = (MOVEFLAG_LEVITATING | MOVEFLAG_SWIMMING | MOVEFLAG_CAN_FLY | MOVEFLAG_FLYING); AddUnitState(UNIT_STAT_FLYING_ALLOWED); } diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 651f5ff70c2..c02fc5a17f8 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -9057,7 +9057,8 @@ void Unit::ModConfuseSpell(bool apply, ObjectGuid casterGuid, uint32 spellId, Mo else RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING); - m_movementInfo.moveFlags &= ~MOVEFLAG_MASK_MOVING_OR_TURN; + m_movementInfo.ctime = 0; + m_movementInfo.RemoveMovementFlag(MOVEFLAG_MASK_MOVING_OR_TURN); if (apply) { @@ -9139,6 +9140,7 @@ void Unit::SetFeignDeath(bool apply, ObjectGuid casterGuid, bool success) { if (apply) { + m_movementInfo.ctime = 0; m_movementInfo.RemoveMovementFlag(MOVEFLAG_MASK_MOVING_OR_TURN); if (!IsPlayer()) StopMoving(); @@ -10622,6 +10624,7 @@ void Unit::DisableSpline() if (Player* me = ToPlayer()) me->SetFallInformation(0, me->GetPositionZ()); m_movementInfo.RemoveMovementFlag(MOVEFLAG_SPLINE_ENABLED | MOVEFLAG_FORWARD); + m_movementInfo.ctime = 0; movespline->_Interrupt(); } From 1047658d33522e6e7ac7cdac80a4d6922aa0553f Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 18 Dec 2023 04:42:22 +0200 Subject: [PATCH 388/426] Some tweaks to wall climb check. --- .../Anticheat/MovementAnticheat/MovementAnticheat.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp b/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp index 8b97d8daf01..71cab65b8fb 100644 --- a/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp +++ b/src/game/Anticheat/MovementAnticheat/MovementAnticheat.cpp @@ -990,19 +990,23 @@ bool MovementAnticheat::CheckWallClimb(MovementInfo const& movementInfo, uint16 return false; float const deltaZ = movementInfo.pos.z - GetLastMovementInfo().pos.z; - if (deltaZ < 0.5f) + if (deltaZ < 1.0f) return false; float const angleRad = atan(deltaZ / deltaXY); //float const angleDeg = angleRad * (360 / (M_PI_F * 2)); - if (angleRad > sWorld.getConfig(CONFIG_FLOAT_AC_MOVEMENT_CHEAT_WALL_CLIMB_ANGLE)) + float const maxClimbAngle = sWorld.getConfig(CONFIG_FLOAT_AC_MOVEMENT_CHEAT_WALL_CLIMB_ANGLE); + if (angleRad > maxClimbAngle) { + if (angleRad > (maxClimbAngle + 0.2f)) + return true; + // check height with and without vmaps and compare // if player is stepping over model like stairs, that can increase wall climb angle float const height1 = me->GetMap()->GetHeight(movementInfo.pos.x, movementInfo.pos.y, movementInfo.pos.z, false); float const height2 = me->GetMap()->GetHeight(movementInfo.pos.x, movementInfo.pos.y, movementInfo.pos.z, true); - if ((std::abs(height1 - height2) < 0.5f) || (deltaZ > 5.0f)) + if (std::abs(height1 - height2) < 0.5f) return true; } From b98dff543e4b2b6cf9fdf69bc62ab867483efc81 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 18 Dec 2023 11:03:05 +0200 Subject: [PATCH 389/426] Fix spawn spells with no target type. Closes https://github.com/vmangos/core/issues/2350 --- src/game/Spells/Spell.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 8b23885f72f..12788aed2e9 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -387,6 +387,7 @@ void Spell::FillTargetMap() if (m_casterUnit) { if (IsAreaAuraEffect(m_spellInfo->Effect[i]) || + m_spellInfo->Effect[i] == SPELL_EFFECT_SPAWN || m_spellInfo->Effect[i] == SPELL_EFFECT_LANGUAGE || m_spellInfo->Effect[i] == SPELL_EFFECT_QUEST_COMPLETE) AddUnitTarget(m_casterUnit, SpellEffectIndex(i)); From dc3c7525916e44a8a5d10935175871d36add601b Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 18 Dec 2023 12:03:05 +0200 Subject: [PATCH 390/426] Fix creature pet names. Closes https://github.com/vmangos/core/issues/2351 --- src/game/Objects/Pet.cpp | 38 +++++++++++++++++++++++++++----- src/game/Objects/Pet.h | 5 ++--- src/game/Spells/SpellEffects.cpp | 10 +++++++-- 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/game/Objects/Pet.cpp b/src/game/Objects/Pet.cpp index 308d3a6e2bd..ad897d85b2f 100644 --- a/src/game/Objects/Pet.cpp +++ b/src/game/Objects/Pet.cpp @@ -1275,11 +1275,14 @@ bool Pet::CreateBaseAtCreature(Creature* creature) return false; } + InitializeDefaultName(); + if (cinfo->type == CREATURE_TYPE_CRITTER) { setPetType(MINI_PET); return true; } + SetDisplayId(creature->GetDisplayId()); SetNativeDisplayId(creature->GetNativeDisplayId()); SetMaxPower(POWER_HAPPINESS, GetCreatePowers(POWER_HAPPINESS)); @@ -1290,11 +1293,6 @@ bool Pet::CreateBaseAtCreature(Creature* creature) SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, sObjectMgr.GetXPForPetLevel(creature->GetLevel())); SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); - if (CreatureFamilyEntry const* cFamily = sCreatureFamilyStore.LookupEntry(cinfo->pet_family)) - SetName(cFamily->Name[sWorld.GetDefaultDbcLocale()]); - else - SetName(creature->GetNameForLocaleIdx(sObjectMgr.GetDBCLocaleIndex())); - m_loyaltyPoints = 1000; if (cinfo->type == CREATURE_TYPE_BEAST) { @@ -2257,6 +2255,36 @@ bool Pet::IsPermanentPetFor(Player* owner) const } } +void Pet::InitializeDefaultName() +{ + switch (getPetType()) + { + case SUMMON_PET: + case HUNTER_PET: + { + if (CreatureFamilyEntry const* cFamily = sCreatureFamilyStore.LookupEntry(GetCreatureInfo()->pet_family)) + { + SetName(cFamily->Name[sWorld.GetDefaultDbcLocale()]); + break; + } + // no break + } + default: + { + SetName(Creature::GetNameForLocaleIdx(sObjectMgr.GetDBCLocaleIndex())); + break; + } + } +} + +char const* Pet::GetNameForLocaleIdx(int32 locale_idx) const +{ + if (GetOwnerGuid().IsPlayer() && (getPetType() == SUMMON_PET || getPetType() == HUNTER_PET)) + return GetName(); + + return Creature::GetNameForLocaleIdx(locale_idx); +} + bool Pet::Create(uint32 guidlow, CreatureCreatePos& cPos, CreatureInfo const* cinfo, uint32 pet_number) { SetMap(cPos.GetMap()); diff --git a/src/game/Objects/Pet.h b/src/game/Objects/Pet.h index 218ddb67c00..7f28cba2b79 100644 --- a/src/game/Objects/Pet.h +++ b/src/game/Objects/Pet.h @@ -165,8 +165,10 @@ class Pet : public Creature void DelayedUnsummon(uint32 timeMSToDespawn, PetSaveMode mode); static void DeleteFromDB(uint32 guidlow, bool separate_transaction = true); + void InitializeDefaultName(); char const* GetName() const final { return m_name.c_str(); } void SetName(std::string const& newname) { m_name = newname; } + char const* GetNameForLocaleIdx(int32 locale_idx) const final; void SetDeathState(DeathState s) override; // overwrite virtual Creature::SetDeathState and Unit::SetDeathState void Update(uint32 update_diff, uint32 diff) override; // overwrite virtual Creature::Update and Unit::Update @@ -261,9 +263,6 @@ class Pet : public Creature void SetAuraUpdateMask(uint64 mask) { m_auraUpdateMask = mask; } void ResetAuraUpdateMask() { m_auraUpdateMask = 0; } - // overwrite Creature function for name localization back to WorldObject version without localization - char const* GetNameForLocaleIdx(int32 locale_idx) const final { return Pet::GetName(); } - bool m_removed; // prevent overwrite pet state in DB at next Pet::Update if pet already removed(saved) protected: std::string m_name; diff --git a/src/game/Spells/SpellEffects.cpp b/src/game/Spells/SpellEffects.cpp index ff569b68f82..15cfa3ff0fe 100644 --- a/src/game/Spells/SpellEffects.cpp +++ b/src/game/Spells/SpellEffects.cpp @@ -3106,7 +3106,7 @@ void Spell::EffectSummon(SpellEffectIndex effIdx) if (m_duration > 0) spawnCreature->SetDuration(m_duration); - //spawnCreature->SetName(""); // generated by client + spawnCreature->InitializeDefaultName(); spawnCreature->SetOwnerGuid(m_casterUnit->GetObjectGuid()); spawnCreature->SetCreatorGuid(m_casterUnit->GetObjectGuid()); spawnCreature->SetFactionTemplateId(m_casterUnit->GetFactionTemplateId()); @@ -3647,7 +3647,7 @@ void Spell::EffectSummonGuardian(SpellEffectIndex effIdx) if (m_duration > 0) spawnCreature->SetDuration(m_duration); - //spawnCreature->SetName(""); // generated by client + spawnCreature->InitializeDefaultName(); spawnCreature->SetOwnerGuid(m_casterUnit->GetObjectGuid()); spawnCreature->SetCreatorGuid(m_casterUnit->GetObjectGuid()); spawnCreature->SetFactionTemplateId(m_casterUnit->GetFactionTemplateId()); @@ -4090,9 +4090,14 @@ ObjectGuid Unit::EffectSummonPet(uint32 spellId, uint32 petEntry, uint32 petLeve std::string newName = sObjectMgr.GeneratePetName(petEntry); if (!newName.empty()) newSummon->SetName(newName); + else + newSummon->InitializeDefaultName(); } else if (newSummon->getPetType() == HUNTER_PET) + { newSummon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_RENAME); + newSummon->InitializeDefaultName(); + } if (IsPvP()) newSummon->SetPvP(true); @@ -6402,6 +6407,7 @@ void Spell::EffectSummonCritter(SpellEffectIndex effIdx) if (m_duration > 0) critter->SetDuration(m_duration); + critter->InitializeDefaultName(); critter->SetOwnerGuid(m_caster->GetObjectGuid()); critter->SetCreatorGuid(m_caster->GetObjectGuid()); critter->SetFactionTemplateId(m_caster->GetFactionTemplateId()); From b285c90b3d23a3dd75990f83cf6d1a7b5d2a4ef8 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 18 Dec 2023 12:25:37 +0200 Subject: [PATCH 391/426] Followup to previous commit. --- src/game/Objects/Pet.cpp | 11 ++++++----- src/game/Spells/SpellEffects.cpp | 18 +++++++++--------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/game/Objects/Pet.cpp b/src/game/Objects/Pet.cpp index ad897d85b2f..8af8e28942e 100644 --- a/src/game/Objects/Pet.cpp +++ b/src/game/Objects/Pet.cpp @@ -1275,8 +1275,6 @@ bool Pet::CreateBaseAtCreature(Creature* creature) return false; } - InitializeDefaultName(); - if (cinfo->type == CREATURE_TYPE_CRITTER) { setPetType(MINI_PET); @@ -2262,10 +2260,13 @@ void Pet::InitializeDefaultName() case SUMMON_PET: case HUNTER_PET: { - if (CreatureFamilyEntry const* cFamily = sCreatureFamilyStore.LookupEntry(GetCreatureInfo()->pet_family)) + if (GetOwnerGuid().IsPlayer()) { - SetName(cFamily->Name[sWorld.GetDefaultDbcLocale()]); - break; + if (CreatureFamilyEntry const* cFamily = sCreatureFamilyStore.LookupEntry(GetCreatureInfo()->pet_family)) + { + SetName(cFamily->Name[sWorld.GetDefaultDbcLocale()]); + break; + } } // no break } diff --git a/src/game/Spells/SpellEffects.cpp b/src/game/Spells/SpellEffects.cpp index 15cfa3ff0fe..66afc754e35 100644 --- a/src/game/Spells/SpellEffects.cpp +++ b/src/game/Spells/SpellEffects.cpp @@ -3106,7 +3106,6 @@ void Spell::EffectSummon(SpellEffectIndex effIdx) if (m_duration > 0) spawnCreature->SetDuration(m_duration); - spawnCreature->InitializeDefaultName(); spawnCreature->SetOwnerGuid(m_casterUnit->GetObjectGuid()); spawnCreature->SetCreatorGuid(m_casterUnit->GetObjectGuid()); spawnCreature->SetFactionTemplateId(m_casterUnit->GetFactionTemplateId()); @@ -3123,6 +3122,7 @@ void Spell::EffectSummon(SpellEffectIndex effIdx) else spawnCreature->SetReactState(REACT_AGGRESSIVE); + spawnCreature->InitializeDefaultName(); spawnCreature->AIM_Initialize(); spawnCreature->InitPetCreateSpells(); spawnCreature->SetHealth(spawnCreature->GetMaxHealth()); @@ -3647,7 +3647,6 @@ void Spell::EffectSummonGuardian(SpellEffectIndex effIdx) if (m_duration > 0) spawnCreature->SetDuration(m_duration); - spawnCreature->InitializeDefaultName(); spawnCreature->SetOwnerGuid(m_casterUnit->GetObjectGuid()); spawnCreature->SetCreatorGuid(m_casterUnit->GetObjectGuid()); spawnCreature->SetFactionTemplateId(m_casterUnit->GetFactionTemplateId()); @@ -3665,6 +3664,7 @@ void Spell::EffectSummonGuardian(SpellEffectIndex effIdx) spawnCreature->SetFollowAngle(followAngle); } + spawnCreature->InitializeDefaultName(); spawnCreature->AIM_Initialize(); spawnCreature->LoadCreatureAddon(); @@ -3951,6 +3951,7 @@ void Spell::EffectTameCreature(SpellEffectIndex /*effIdx*/) pet->GetCharmInfo()->SetPetNumber(sObjectMgr.GeneratePetNumber(), true); pet->GetCharmInfo()->SetReactState(REACT_DEFENSIVE); + pet->InitializeDefaultName(); pet->AIM_Initialize(); pet->InitPetCreateSpells(); pet->SetHealth(pet->GetMaxHealth()); @@ -4066,11 +4067,6 @@ ObjectGuid Unit::EffectSummonPet(uint32 spellId, uint32 petEntry, uint32 petLeve else newSummon->SetReactState(REACT_DEFENSIVE); - newSummon->AIM_Initialize(); - newSummon->InitPetCreateSpells(); - newSummon->SetHealth(newSummon->GetMaxHealth()); - newSummon->SetPower(POWER_MANA, newSummon->GetMaxPower(POWER_MANA)); - if (newSummon->getPetType() == SUMMON_PET) { // Remove Demonic Sacrifice auras (new pet) @@ -4099,6 +4095,11 @@ ObjectGuid Unit::EffectSummonPet(uint32 spellId, uint32 petEntry, uint32 petLeve newSummon->InitializeDefaultName(); } + newSummon->AIM_Initialize(); + newSummon->InitPetCreateSpells(); + newSummon->SetHealth(newSummon->GetMaxHealth()); + newSummon->SetPower(POWER_MANA, newSummon->GetMaxPower(POWER_MANA)); + if (IsPvP()) newSummon->SetPvP(true); @@ -6407,13 +6408,12 @@ void Spell::EffectSummonCritter(SpellEffectIndex effIdx) if (m_duration > 0) critter->SetDuration(m_duration); - critter->InitializeDefaultName(); critter->SetOwnerGuid(m_caster->GetObjectGuid()); critter->SetCreatorGuid(m_caster->GetObjectGuid()); critter->SetFactionTemplateId(m_caster->GetFactionTemplateId()); critter->SetUInt32Value(UNIT_CREATED_BY_SPELL, m_spellInfo->Id); critter->SetUInt32Value(UNIT_NPC_FLAGS, critter->GetCreatureInfo()->npc_flags); // some mini-pets have quests - + critter->InitializeDefaultName(); critter->AIM_Initialize(); critter->InitPetCreateSpells(); // e.g. disgusting oozeling has a create spell as critter... critter->SelectLevel(); // some summoned creatures have different from 1 DB data for level/hp From 4625239137e7652a6f2692ae31f807d49b9725ad Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 18 Dec 2023 23:45:58 +0200 Subject: [PATCH 392/426] Fix Starshards not flagging you for PvP. --- src/game/Objects/Unit.cpp | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index c02fc5a17f8..41a1193d29f 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -626,6 +626,29 @@ uint32 Unit::DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDa static_cast(pVictim)->ScheduleStandUp(); } + auto ShouldEnterCombat = [&]() + { + if (pVictim == this) + return false; + + if (spell && spell->IsTriggeredByProc()) + return false; + + if (spellProto && spellProto->HasAura(SPELL_AURA_DAMAGE_SHIELD)) + return false; + + if (damagetype == DOT) + { + // We need to check channeled dot here, because spells like Blizzard and Starshards have No Initial Threat attribute. + if (spellProto && spellProto->IsChanneledSpell()) + return true; + + return false; + } + + return true; + }; + if (!damage) { if (cleanDamage) @@ -654,7 +677,7 @@ uint32 Unit::DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDa if (pVictim->IsPlayer() && damagetype != DOT) pVictim->InterruptSpellsWithInterruptFlags(SPELL_INTERRUPT_FLAG_DAMAGE_CANCELS, spellProto ? spellProto->Id : 0); } - if (damagetype != DOT) + if (ShouldEnterCombat()) { pVictim->SetInCombatWithAggressor(this); SetInCombatWithVictim(pVictim); @@ -689,8 +712,7 @@ uint32 Unit::DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDa } // Enter combat or extend leash timer. - if ((pVictim != this) && (damagetype != DOT || (spellProto && spellProto->HasEffect(SPELL_EFFECT_PERSISTENT_AREA_AURA))) && - (!spellProto || !spellProto->HasAura(SPELL_AURA_DAMAGE_SHIELD)) && (!spell || !spell->IsTriggeredByProc())) + if (ShouldEnterCombat()) { pVictim->SetInCombatWithAggressor(this); SetInCombatWithVictim(pVictim); From dde87c6fac2f3cdcaa3de13781b04d7848633b5a Mon Sep 17 00:00:00 2001 From: balakethelock <111737968+balakethelock@users.noreply.github.com> Date: Mon, 18 Dec 2023 23:59:39 +0200 Subject: [PATCH 393/426] Fix Anubisath Warder ability timers. --- sql/migrations/20231218215828_world.sql | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 sql/migrations/20231218215828_world.sql diff --git a/sql/migrations/20231218215828_world.sql b/sql/migrations/20231218215828_world.sql new file mode 100644 index 00000000000..a8be3fa9003 --- /dev/null +++ b/sql/migrations/20231218215828_world.sql @@ -0,0 +1,32 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231218215828'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231218215828'); +-- Add your query below. + + +-- Fix Anubisath Warder ability timers. +DELETE FROM `creature_ai_events` WHERE `creature_id`=15311; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES +(1531101, 15311, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1531101, 0, 0, 'Anubisath Warder - Set Random Phase'), +(1531102, 15311, 0, 0, 0, 100, 1, 15000, 20000, 15000, 20000, 1531102, 0, 0, 'Anubisath Warder - Periodic Cast Fire Nova (All Phases)'), +(1531103, 15311, 0, 0, 29, 100, 1, 15000, 20000, 15000, 20000, 1531103, 0, 0, 'Anubisath Warder - Entangling Roots (Phase 1)'), +(1531104, 15311, 0, 0, 29, 100, 1, 10000, 30000, 10000, 30000, 1531104, 0, 0, 'Anubisath Warder - Dust Cloud (Phase 1)'), +(1531105, 15311, 0, 0, 27, 100, 1, 15000, 20000, 15000, 20000, 1531105, 0, 0, 'Anubisath Warder - Entangling Roots (Phase 2)'), +(1531106, 15311, 0, 0, 27, 100, 1, 10000, 30000, 10000, 30000, 1531106, 0, 0, 'Anubisath Warder - Silence (Phase 2)'), +(1531107, 15311, 0, 0, 23, 100, 1, 15000, 20000, 15000, 20000, 1531107, 0, 0, 'Anubisath Warder - Fear (Phase 3)'), +(1531108, 15311, 0, 0, 23, 100, 1, 10000, 30000, 10000, 30000, 1531108, 0, 0, 'Anubisath Warder - Dust Cloud (Phase 3)'), +(1531109, 15311, 0, 0, 15, 100, 1, 15000, 20000, 15000, 20000, 1531109, 0, 0, 'Anubisath Warder - Fear (Phase 4)'), +(1531110, 15311, 0, 0, 15, 100, 1, 10000, 30000, 10000, 30000, 1531110, 0, 0, 'Anubisath Warder - Silence (Phase 4)'); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From bb0691a6ed2daff1028b1cd4d86e0741db40bbc4 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 19 Dec 2023 12:16:46 +0200 Subject: [PATCH 394/426] Fixes for Crushridge ogres. Closes https://github.com/vmangos/core/issues/1184 Closes https://github.com/vmangos/core/issues/2357 --- sql/migrations/20231219101546_world.sql | 83 +++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 sql/migrations/20231219101546_world.sql diff --git a/sql/migrations/20231219101546_world.sql b/sql/migrations/20231219101546_world.sql new file mode 100644 index 00000000000..0b757ce6c79 --- /dev/null +++ b/sql/migrations/20231219101546_world.sql @@ -0,0 +1,83 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231219101546'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231219101546'); +-- Add your query below. + + +-- Events list for Crushridge Ogre +DELETE FROM `creature_ai_events` WHERE `creature_id`=2252; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (225201, 2252, 0, 4, 0, 10, 0, 0, 0, 0, 0, 225201, 0, 0, 'Crushridge Ogre - Random Say on Aggro'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (225202, 2252, 0, 6, 0, 100, 0, 0, 0, 0, 0, 225202, 0, 0, 'Crushridge Ogre - Cast Spell Crushridge Death on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=225202; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(225202, 0, 0, 15, 9144, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Crushridge Ogre - Cast Spell Crushridge Death'); + +-- Events list for Crushridge Brute +DELETE FROM `creature_ai_events` WHERE `creature_id`=2253; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (225301, 2253, 0, 4, 0, 10, 0, 0, 0, 0, 0, 225301, 0, 0, 'Crushridge Brute - Random Say on Aggro'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (225302, 2253, 0, 6, 0, 100, 0, 0, 0, 0, 0, 225302, 0, 0, 'Crushridge Brute - Cast Spell Crushridge Death on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=225302; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(225302, 0, 0, 15, 9144, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Crushridge Brute - Cast Spell Crushridge Death'); + +-- Events list for Crushridge Mage +DELETE FROM `creature_ai_events` WHERE `creature_id`=2255; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (225501, 2255, 0, 4, 0, 10, 0, 0, 0, 0, 0, 225501, 0, 0, 'Crushridge Mage - Random Say on Aggro'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (225502, 2255, 0, 6, 0, 100, 0, 0, 0, 0, 0, 225502, 0, 0, 'Crushridge Mage - Cast Spell Crushridge Death on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=225502; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(225502, 0, 0, 15, 9144, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Crushridge Mage - Cast Spell Crushridge Death'); + +-- Events list for Crushridge Enforcer +DELETE FROM `creature_ai_events` WHERE `creature_id`=2256; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (225601, 2256, 0, 4, 0, 10, 0, 0, 0, 0, 0, 225601, 0, 0, 'Crushridge Enforcer - Random Say on Aggro'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (225602, 2256, 0, 6, 0, 100, 0, 0, 0, 0, 0, 225602, 0, 0, 'Crushridge Enforcer - Cast Spell Crushridge Death on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=225601; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(225601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1925, 1926, 1927, 0, 0, 0, 0, 0, 0, 'Crushridge Enforcer - Say Text'); +DELETE FROM `creature_ai_scripts` WHERE `id`=225602; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(225602, 0, 0, 15, 9144, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Crushridge Enforcer - Cast Spell Crushridge Death'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2256; + +-- Events list for Crushridge Plunderer +DELETE FROM `creature_ai_events` WHERE `creature_id`=2416; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (241601, 2416, 0, 4, 0, 10, 0, 0, 0, 0, 0, 241601, 0, 0, 'Crushridge Plunderer - Random Say on Aggro'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (241602, 2416, 0, 6, 0, 100, 0, 0, 0, 0, 0, 241602, 0, 0, 'Crushridge Plunderer - Cast Spell Crushridge Death on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=241602; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(241602, 0, 0, 15, 9144, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Crushridge Plunderer - Cast Spell Crushridge Death'); + +-- Events list for Crushridge Warmonger +DELETE FROM `creature_ai_events` WHERE `creature_id`=2287; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (228701, 2287, 0, 4, 0, 10, 0, 0, 0, 0, 0, 228701, 0, 0, 'Crushridge Warmonger - Random Say on Aggro'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (228702, 2287, 0, 2, 0, 100, 0, 50, 0, 0, 0, 228702, 0, 0, 'Crushridge Warmonger - Call for Help at 50% HP'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (228703, 2287, 0, 6, 0, 100, 0, 0, 0, 0, 0, 228703, 0, 0, 'Crushridge Warmonger - Cast Spell Crushridge Death on Death'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (228704, 2287, 0, 8, 0, 100, 0, 9144, -1, 0, 0, 228704, 0, 0, 'Crushridge Warmonger - Enrage on Hit By Spell Crushridge Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=228702; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(228702, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 'Crushridge Warmonger - Call for Help'), +(228702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1064, 0, 0, 0, 0, 0, 0, 0, 0, 'Crushridge Warmonger - Say Text'); +DELETE FROM `creature_ai_scripts` WHERE `id`=228703; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(228703, 0, 0, 15, 9144, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Crushridge Warmonger - Cast Spell Crushridge Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=228704; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(228704, 0, 0, 15, 8269, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Crushridge Warmonger - Cast Spell Enrage'), +(228704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1151, 0, 0, 0, 0, 0, 0, 0, 0, 'Crushridge Warmonger - Say Text'); + +-- Define spell targets. +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `conditionId`, `inverseEffectMask`, `build_min`, `build_max`) VALUES (9144, 1, 2287, 0, 0, 0, 5875); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 54f07be5492d96613a5bb2d56e9930e92a891c0e Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 19 Dec 2023 23:45:04 +0200 Subject: [PATCH 395/426] Fixes for Stromgarde humans. --- sql/migrations/20231219214428_world.sql | 66 +++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 sql/migrations/20231219214428_world.sql diff --git a/sql/migrations/20231219214428_world.sql b/sql/migrations/20231219214428_world.sql new file mode 100644 index 00000000000..536698b88d4 --- /dev/null +++ b/sql/migrations/20231219214428_world.sql @@ -0,0 +1,66 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231219214428'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231219214428'); +-- Add your query below. + + +-- Events list for Stromgarde Troll Hunter +DELETE FROM `creature_ai_events` WHERE `creature_id`=2583; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (258301, 2583, 0, 6, 0, 100, 0, 0, 0, 0, 0, 258301, 0, 0, 'Stromgarde Troll Hunter - Cast Spell Stromgarde Death on Death'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (258302, 2583, 0, 2, 0, 100, 1, 50, 0, 12000, 18000, 258302, 0, 0, 'Stromgarde Troll Hunter - Cast Flash Heal at 50% HP'); +DELETE FROM `creature_ai_scripts` WHERE `id`=258301; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(258301, 0, 0, 15, 8894, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Stromgarde Troll Hunter - Cast Spell Stromgarde Death'); + +-- Events list for Stromgarde Defender +DELETE FROM `creature_ai_events` WHERE `creature_id`=2584; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (258401, 2584, 0, 6, 0, 100, 0, 0, 0, 0, 0, 258401, 0, 0, 'Stromgarde Defender - Cast Spell Stromgarde Death on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=258401; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(258401, 0, 0, 15, 8894, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Stromgarde Defender - Cast Spell Stromgarde Death'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2584; + +-- Events list for Stromgarde Vindicator +DELETE FROM `creature_ai_events` WHERE `creature_id`=2585; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (258501, 2585, 0, 8, 0, 100, 0, 8894, -1, 0, 0, 258501, 0, 0, 'Stromgarde Vindicator - Cast Vegeance on Hit By Spell Stromgarde Death'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (258502, 2585, 0, 6, 0, 100, 0, 0, 0, 0, 0, 258502, 0, 0, 'Stromgarde Vindicator - Cast Spell Stromgarde Death on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=258501; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(258501, 0, 0, 15, 8602, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Stromgarde Vindicator - Cast Spell Vengeance'), +(258501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1151, 0, 0, 0, 0, 0, 0, 0, 0, 'Stromgarde Vindicator - Say Text'); +DELETE FROM `creature_ai_scripts` WHERE `id`=258502; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(258502, 0, 0, 15, 8894, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Stromgarde Vindicator - Cast Spell Stromgarde Death'); + +-- Events list for Stromgarde Cavalryman +DELETE FROM `creature_ai_events` WHERE `creature_id`=2738; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (273801, 2738, 0, 4, 0, 100, 0, 0, 0, 0, 0, 273801, 0, 0, 'Stromgarde Cavalryman - Cast Rushing Charge on Aggro'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (273802, 2738, 0, 6, 0, 100, 0, 0, 0, 0, 0, 273802, 0, 0, 'Stromgarde Cavalryman - Cast Spell Stromgarde Death on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=273802; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(273802, 0, 0, 15, 8894, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Stromgarde Cavalryman - Cast Spell Stromgarde Death'); + +-- Events list for Refuge Pointe Defender +DELETE FROM `creature_ai_events` WHERE `creature_id`=10696; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1069601, 10696, 0, 4, 0, 100, 0, 0, 0, 0, 0, 1069601, 0, 0, 'Refuge Pointe Defender - Cast Defensive Stance on Aggro'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1069602, 10696, 10696, 1, 0, 100, 1, 6000, 9000, 6000, 9000, 1069602, 0, 0, 'Refuge Pointe Defender - Emote Talk OOC'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1069603, 10696, 10696, 6, 0, 100, 0, 0, 0, 0, 0, 1069603, 0, 0, 'Refuge Pointe Defender - Cast Spell Stromgarde Death on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=1069603; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1069603, 0, 0, 15, 8894, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Refuge Pointe Defender - Cast Spell Stromgarde Death'); + +-- Define spell targets. +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `conditionId`, `inverseEffectMask`, `build_min`, `build_max`) VALUES (8894, 1, 2585, 0, 0, 0, 5875); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 2c50f1971fc106fe4b353f6f6c67e2082d0821d9 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 19 Dec 2023 23:58:11 +0200 Subject: [PATCH 396/426] Fixes for Thistlefur furbolgs. --- sql/migrations/20231219215628_world.sql | 69 +++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 sql/migrations/20231219215628_world.sql diff --git a/sql/migrations/20231219215628_world.sql b/sql/migrations/20231219215628_world.sql new file mode 100644 index 00000000000..27eedf70dbf --- /dev/null +++ b/sql/migrations/20231219215628_world.sql @@ -0,0 +1,69 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231219215628'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231219215628'); +-- Add your query below. + + +-- Events list for Thistlefur Ursa +DELETE FROM `creature_ai_events` WHERE `creature_id`=3921; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392101, 3921, 0, 1, 0, 100, 0, 1000, 1000, 0, 0, 392101, 0, 0, 'Thistlefur Ursa - Cast Coat of Thistlefur on Spawn'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392102, 3921, 0, 1, 0, 100, 0, 3000, 3000, 0, 0, 392102, 0, 0, 'Thistlefur Ursa - Cast Battle Stance on Spawn'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392103, 3921, 0, 9, 0, 100, 1, 0, 5, 23900, 38400, 392103, 0, 0, 'Thistlefur Ursa - Cast Heroic Strike'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392104, 3921, 0, 2, 0, 100, 0, 15, 0, 0, 0, 392104, 0, 0, 'Thistlefur Ursa - Flee at 15% HP'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392105, 3921, 0, 6, 0, 100, 0, 0, 0, 0, 0, 392105, 0, 0, 'Thistlefur Ursa - Cast Thistlefur Death on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=392105; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(392105, 0, 0, 15, 8603, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Thistlefur Ursa - Cast Spell Thistlefur Death'); + +-- Events list for Thistlefur Totemic +DELETE FROM `creature_ai_events` WHERE `creature_id`=3922; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392201, 3922, 0, 11, 0, 100, 0, 0, 0, 0, 0, 392201, 0, 0, 'Thistlefur Totemic - Cast Coat of Thistlefur on Spawn'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392202, 3922, 0, 6, 0, 100, 0, 0, 0, 0, 0, 392202, 0, 0, 'Thistlefur Totemic - Cast Thistlefur Death on Death'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392203, 3922, 0, 2, 0, 100, 0, 15, 0, 0, 0, 392203, 0, 0, 'Thistlefur Totemic - Flee at 15% HP'); +DELETE FROM `creature_ai_scripts` WHERE `id`=392202; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(392202, 0, 0, 15, 8603, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Thistlefur Totemic - Cast Spell Thistlefur Death'); + + +-- Events list for Thistlefur Den Watcher +DELETE FROM `creature_ai_events` WHERE `creature_id`=3923; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392301, 3923, 0, 11, 0, 100, 0, 0, 0, 0, 0, 392301, 0, 0, 'Thistlefur Den Watcher - Cast Coat of Thistlefur on Spawn'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392302, 3923, 0, 2, 0, 100, 1, 30, 0, 11200, 21500, 392302, 0, 0, 'Thistlefur Den Watcher - Cast Frenzied Rage at 30% HP'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392303, 3923, 0, 2, 0, 100, 0, 15, 0, 0, 0, 392303, 0, 0, 'Thistlefur Den Watcher - Flee at 15% HP'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392304, 3923, 0, 6, 0, 100, 0, 0, 0, 0, 0, 392304, 0, 0, 'Thistlefur Den Watcher - Cast Thistlefur Death on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=392304; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(392304, 0, 0, 15, 8603, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Thistlefur Den Watcher - Cast Spell Thistlefur Death'); + +-- Events list for Thistlefur Avenger +DELETE FROM `creature_ai_events` WHERE `creature_id`=3925; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392501, 3925, 0, 11, 0, 100, 0, 0, 0, 0, 0, 392501, 0, 0, 'Thistlefur Avenger - Cast Coat of Thistlefur on Spawn'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392502, 3925, 0, 8, 0, 100, 0, 8603, -1, 0, 0, 392502, 0, 0, 'Thistlefur Avenger - Cast Vengeance on Hit By Spell Thistlefur Death'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392503, 3925, 0, 6, 0, 100, 0, 0, 0, 0, 0, 392503, 0, 0, 'Thistlefur Avenger - Cast Thistlefur Death on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=392503; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(392503, 0, 0, 15, 8603, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Thistlefur Avenger - Cast Spell Thistlefur Death'); + +-- Events list for Thistlefur Pathfinder +DELETE FROM `creature_ai_events` WHERE `creature_id`=3926; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392601, 3926, 0, 2, 0, 100, 0, 15, 0, 0, 0, 392601, 0, 0, 'Thistlefur Pathfinder - Flee at 15% HP'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (392602, 3926, 0, 6, 0, 100, 0, 0, 0, 0, 0, 392602, 0, 0, 'Thistlefur Pathfinder - Cast Thistlefur Death on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=392602; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(392602, 0, 0, 15, 8603, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Thistlefur Pathfinder - Cast Spell Thistlefur Death'); + +-- Define spell targets. +INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`, `conditionId`, `inverseEffectMask`, `build_min`, `build_max`) VALUES (8603, 1, 3925, 0, 0, 0, 5875); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 3ddacee91bffa6628a7f8dc9a5c02baba08eedbf Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 20 Dec 2023 00:41:33 +0200 Subject: [PATCH 397/426] Fixes for Deadwood furbolgs. --- sql/migrations/20231219224105_world.sql | 46 +++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 sql/migrations/20231219224105_world.sql diff --git a/sql/migrations/20231219224105_world.sql b/sql/migrations/20231219224105_world.sql new file mode 100644 index 00000000000..227849b3b8e --- /dev/null +++ b/sql/migrations/20231219224105_world.sql @@ -0,0 +1,46 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231219224105'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231219224105'); +-- Add your query below. + + +-- Events list for Deadwood Den Watcher +DELETE FROM `creature_ai_events` WHERE `creature_id`=7156; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (715601, 7156, 0, 6, 0, 100, 0, 0, 0, 0, 0, 715601, 0, 0, 'Deadwood Den Watcher - Send Script Event on Death'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (715602, 7156, 0, 2, 0, 100, 0, 15, 0, 0, 0, 715602, 0, 0, 'Deadwood Den Watcher - Flee at 15% HP'); +DELETE FROM `creature_ai_scripts` WHERE `id`=715601; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(715601, 0, 0, 85, 7157, 7157, 0, 0, 7157, 10, 8, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Deadwood Den Watcher - Send Script Event'); + +-- Events list for Deadwood Avenger +DELETE FROM `creature_ai_events` WHERE `creature_id`=7157; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (715701, 7157, 0, 6, 0, 100, 0, 0, 0, 0, 0, 715701, 0, 0, 'Deadwood Avenger - Send Script Event on Death'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (715702, 7157, 0, 31, 0, 100, 0, 7157, 7157, 0, 0, 715702, 0, 0, 'Deadwood Avenger - Cast Enrage on Script Event Happened'); +DELETE FROM `creature_ai_scripts` WHERE `id`=715701; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(715701, 0, 0, 85, 7157, 7157, 0, 0, 7157, 10, 8, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Deadwood Avenger - Send Script Event'); +DELETE FROM `creature_ai_scripts` WHERE `id`=715702; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(715702, 0, 0, 15, 8599, 1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Deadwood Avenger - Cast Spell Enrage'), +(715702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1151, 0, 0, 0, 0, 0, 0, 0, 0, 'Deadwood Avenger - Say Text'); + +-- Events list for Deadwood Shaman +DELETE FROM `creature_ai_events` WHERE `creature_id`=7158; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (715801, 7158, 0, 1, 0, 100, 1, 1000, 1000, 600000, 600000, 715801, 0, 0, 'Deadwood Shaman - Cast Lightning Shield on Spawn'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (715802, 7158, 0, 6, 0, 100, 0, 0, 0, 0, 0, 715802, 0, 0, 'Deadwood Shaman - Send Script Event on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=715802; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(715802, 0, 0, 85, 7157, 7157, 0, 0, 7157, 10, 8, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Deadwood Shaman - Send Script Event'); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From b32738845cfb25bced63bb5aa7389f1b5d1fb458 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 20 Dec 2023 00:52:54 +0200 Subject: [PATCH 398/426] Fixes for Twilight cultists. --- sql/migrations/20231219225226_world.sql | 53 +++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 sql/migrations/20231219225226_world.sql diff --git a/sql/migrations/20231219225226_world.sql b/sql/migrations/20231219225226_world.sql new file mode 100644 index 00000000000..58f6bf47e24 --- /dev/null +++ b/sql/migrations/20231219225226_world.sql @@ -0,0 +1,53 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231219225226'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231219225226'); +-- Add your query below. + + +-- Events list for Twilight Avenger +DELETE FROM `creature_ai_events` WHERE `creature_id`=11880; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1188001, 11880, 0, 2, 0, 100, 0, 30, 0, 0, 0, 1188001, 0, 0, 'Twilight Avenger - Cast Enrage at 30% HP'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1188002, 11880, 0, 31, 0, 100, 0, 11880, 11880, 0, 0, 1188002, 0, 0, 'Twilight Avenger - Cast Vegeance on Script Event Happened'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1188003, 11880, 0, 6, 0, 100, 0, 0, 0, 0, 0, 1188003, 0, 0, 'Twilight Avenger - Send Script Event on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=1188001; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1188001, 0, 0, 15, 8599, 1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Twilight Avenger - Cast Spell Enrage'), +(1188001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2384, 0, 0, 0, 0, 0, 0, 0, 0, 'Twilight Avenger - Say Text'); +DELETE FROM `creature_ai_scripts` WHERE `id`=1188002; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1188002, 0, 0, 15, 8602, 1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Twilight Avenger - Cast Spell Vengeance'), +(1188002, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1151, 0, 0, 0, 0, 0, 0, 0, 0, 'Twilight Avenger - Say Text'); +DELETE FROM `creature_ai_scripts` WHERE `id`=1188003; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1188003, 0, 0, 85, 11880, 11880, 0, 0, 11880, 10, 8, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Twilight Avenger - Send Script Event'); + +-- Events list for Twilight Geolord +DELETE FROM `creature_ai_events` WHERE `creature_id`=11881; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1188101, 11881, 0, 2, 0, 100, 0, 15, 0, 0, 0, 1188101, 0, 0, 'Twilight Geolord - Flee at 15% HP'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1188102, 11881, 0, 6, 0, 100, 0, 0, 0, 0, 0, 1188102, 0, 0, 'Twilight Geolord - Send Script Event on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=1188102; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1188102, 0, 0, 85, 11880, 11880, 0, 0, 11880, 10, 8, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Twilight Geolord - Send Script Event'); + +-- Events list for Twilight Overlord +DELETE FROM `creature_ai_events` WHERE `creature_id`=15213; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1521301, 15213, 0, 33, 0, 100, 1, 10000, 10000, 0, 0, 1521301, 0, 0, 'Twilight Overlord - Run Away on Target Frozen'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1521302, 15213, 0, 2, 0, 100, 0, 15, 0, 0, 0, 1521302, 0, 0, 'Twilight Overlord - Flee at 15% HP'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1521303, 15213, 0, 9, 0, 100, 1, 0, 8, 20000, 22000, 1521303, 0, 0, 'Twilight Overlord - Cast Frost Nova'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1521304, 15213, 0, 6, 0, 100, 0, 0, 0, 0, 0, 1521304, 0, 0, 'Twilight Overlord - Send Script Event on Death'); +DELETE FROM `creature_ai_scripts` WHERE `id`=1521304; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1521304, 0, 0, 85, 11880, 11880, 0, 0, 11880, 10, 8, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Twilight Overlord - Send Script Event'); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From 5228c9000c84e9ef342e9d1322100cda58c77b5d Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 20 Dec 2023 01:03:06 +0200 Subject: [PATCH 399/426] Rename event type and remove useless enum. --- src/game/AI/CreatureEventAI.cpp | 6 +++--- src/game/AI/CreatureEventAI.h | 13 +++---------- src/game/AI/CreatureEventAIMgr.cpp | 2 +- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/src/game/AI/CreatureEventAI.cpp b/src/game/AI/CreatureEventAI.cpp index abde3477bec..20f778f5901 100644 --- a/src/game/AI/CreatureEventAI.cpp +++ b/src/game/AI/CreatureEventAI.cpp @@ -359,7 +359,7 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& pHolder, SpellCaster* pHolder.UpdateRepeatTimer(m_creature, event.move_inform.repeatMin, event.move_inform.repeatMax); break; } - case EVENT_T_MAP_SCRIPT_EVENT: + case EVENT_T_SCRIPT: case EVENT_T_GROUP_MEMBER_DIED: { break; @@ -840,8 +840,8 @@ void CreatureEventAI::OnScriptEventHappened(uint32 uiEvent, uint32 uiData, World for (auto& i : m_CreatureEventAIList) { - if (i.Event.event_type == EVENT_T_MAP_SCRIPT_EVENT) - if ((i.Event.map_event.eventId == uiEvent) && (i.Event.map_event.data == uiData)) + if (i.Event.event_type == EVENT_T_SCRIPT) + if ((i.Event.script_event.eventId == uiEvent) && (i.Event.script_event.data == uiData)) ProcessEvent(i, ToUnit(pInvoker)); } } diff --git a/src/game/AI/CreatureEventAI.h b/src/game/AI/CreatureEventAI.h index b031e5d2222..58c5c1e237f 100644 --- a/src/game/AI/CreatureEventAI.h +++ b/src/game/AI/CreatureEventAI.h @@ -68,7 +68,7 @@ enum EventAI_Type EVENT_T_TARGET_MISSING_AURA = 28, // Param1 = SpellID, Param2 = Number of time stacked expected, Param3/4 Repeat Min/Max EVENT_T_MOVEMENT_INFORM = 29, // Param1 = motion type, Param2 = point ID, RepeatMin, RepeatMax EVENT_T_LEAVE_COMBAT = 30, // NONE - EVENT_T_MAP_SCRIPT_EVENT = 31, // Param1 = EventID, Param2 = Data + EVENT_T_SCRIPT = 31, // Param1 = EventID, Param2 = Data EVENT_T_GROUP_MEMBER_DIED = 32, // Param1 = CreatureId, Param2 = IsLeader EVENT_T_VICTIM_ROOTED = 33, // RepeatMin, RepeatMax EVENT_T_HIT_BY_AURA = 34, // AuraType, Unused, RepeatMin, RepeatMax @@ -85,13 +85,6 @@ enum EventFlags // uint8 field }; -enum SpawnedEventMode -{ - SPAWNED_EVENT_ALWAY = 0, - SPAWNED_EVENT_MAP = 1, - SPAWNED_EVENT_ZONE = 2 -}; - enum UnitInLosReaction { ULR_ANY = 0, @@ -235,12 +228,12 @@ struct CreatureEventAI_Event uint32 repeatMin; uint32 repeatMax; } move_inform; - // EVENT_T_MAP_SCRIPT_EVENT = 31 + // EVENT_T_SCRIPT = 31 struct { uint32 eventId; uint32 data; - } map_event; + } script_event; // EVENT_T_GROUP_MEMBER_DIED = 32 struct { diff --git a/src/game/AI/CreatureEventAIMgr.cpp b/src/game/AI/CreatureEventAIMgr.cpp index 0d2b5705256..2e73df1f348 100644 --- a/src/game/AI/CreatureEventAIMgr.cpp +++ b/src/game/AI/CreatureEventAIMgr.cpp @@ -278,7 +278,7 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Events() sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "CreatureEventAI: Creature %u is using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); break; } - case EVENT_T_MAP_SCRIPT_EVENT: + case EVENT_T_SCRIPT: break; case EVENT_T_GROUP_MEMBER_DIED: { From 283375229d8bcce85adae9cccbfd7461eb7aaf72 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 21 Dec 2023 03:03:39 +0200 Subject: [PATCH 400/426] Improve creature flee behavior. Closes https://github.com/vmangos/core/issues/2364 --- sql/migrations/20231221003521_world.sql | 41 +++++++++++++++++++ src/game/AI/CreatureEventAI.cpp | 3 ++ src/game/AI/CreatureEventAI.h | 3 +- .../Movement/FleeingMovementGenerator.cpp | 5 ++- src/game/Objects/Creature.cpp | 19 ++++++++- 5 files changed, 66 insertions(+), 5 deletions(-) create mode 100644 sql/migrations/20231221003521_world.sql diff --git a/sql/migrations/20231221003521_world.sql b/sql/migrations/20231221003521_world.sql new file mode 100644 index 00000000000..0069d72eeb9 --- /dev/null +++ b/sql/migrations/20231221003521_world.sql @@ -0,0 +1,41 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231221003521'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231221003521'); +-- Add your query below. + + +-- Make all Flee events trigger only when not casting. +UPDATE `creature_ai_events` SET `event_flags` = (`event_flags` | 4) WHERE (`comment` LIKE "%Flee%") && `event_type` = 2; + +-- Events list for Azshir the Sleepless +DELETE FROM `creature_ai_events` WHERE `creature_id`=6490; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (649003, 6490, 0, 2, 0, 100, 1, 50, 0, 20000, 20000, 649003, 0, 0, 'Azshir the Sleepless - Cast Spell Soul Siphon below 50% HP'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (649004, 6490, 0, 2, 0, 100, 4, 15, 0, 0, 0, 649004, 0, 0, 'Azshir the Sleepless - Flee at 15% HP'); + +-- Events list for Skum +DELETE FROM `creature_ai_events` WHERE `creature_id`=3674; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (367401, 3674, 0, 9, 0, 100, 1, 0, 30, 4000, 7000, 367401, 0, 0, 'Skum - Cast Chained Bolt'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (367402, 3674, 0, 2, 0, 100, 4, 15, 0, 0, 0, 367402, 0, 0, 'Skum - Flee at 15% HP'); + +-- Events list for Swiftmane +DELETE FROM `creature_ai_events` WHERE `creature_id`=5831; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (583102, 5831, 0, 2, 0, 100, 4, 15, 0, 0, 0, 583102, 0, 0, 'Swiftmane - Flee at 15% HP'); + +-- Events list for Blackhand Incarcerator +DELETE FROM `creature_ai_events` WHERE `creature_id`=10316; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1031601, 10316, 0, 11, 0, 100, 0, 0, 0, 0, 0, 1031601, 0, 0, 'Blackhand Incarcerator - Set Immune Flags OOC'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1031602, 10316, 0, 1, 0, 100, 0, 0, 0, 0, 0, 1031602, 0, 0, 'Blackhand Incarcerator - Cast Encage Emberseer OOC'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1031603, 10316, 0, 2, 0, 100, 4, 15, 0, 0, 0, 1031603, 0, 0, 'Blackhand Incarcerator - Flee at 15% HP'); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/AI/CreatureEventAI.cpp b/src/game/AI/CreatureEventAI.cpp index 20f778f5901..69f1418a58a 100644 --- a/src/game/AI/CreatureEventAI.cpp +++ b/src/game/AI/CreatureEventAI.cpp @@ -109,6 +109,9 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& pHolder, SpellCaster* if (pHolder.Event.event_inverse_phase_mask & (1 << m_Phase)) return false; + if ((pHolder.Event.event_flags & EFLAG_NOT_CASTING) && m_creature->IsNonMeleeSpellCasted(false, false, true)) + return false; + if (pHolder.Event.condition_id && !IsConditionSatisfied(pHolder.Event.condition_id, pActionInvoker ? pActionInvoker : m_creature->GetVictim(), m_creature->GetMap(), m_creature, CONDITION_FROM_EVENTAI)) return false; diff --git a/src/game/AI/CreatureEventAI.h b/src/game/AI/CreatureEventAI.h index 58c5c1e237f..35dc53c2c54 100644 --- a/src/game/AI/CreatureEventAI.h +++ b/src/game/AI/CreatureEventAI.h @@ -81,7 +81,8 @@ enum EventFlags { EFLAG_REPEATABLE = 0x01, //Event repeats EFLAG_RANDOM_ACTION = 0x02, //Event only execute one from existed actions instead each action. - EFLAG_DEBUG_ONLY = 0x04, //Event only occurs in debug build + EFLAG_NOT_CASTING = 0x04, //Event will not occur while creature is casting a spell + EFLAG_DEBUG_ONLY = 0x08, //Event only occurs in debug build // uint8 field }; diff --git a/src/game/Movement/FleeingMovementGenerator.cpp b/src/game/Movement/FleeingMovementGenerator.cpp index 6fe0269c7f3..5e4dbdcd4ba 100644 --- a/src/game/Movement/FleeingMovementGenerator.cpp +++ b/src/game/Movement/FleeingMovementGenerator.cpp @@ -214,9 +214,10 @@ void TimedFleeingMovementGenerator::Finalize(Unit &owner) { owner.ClearUnitState(UNIT_STAT_FLEEING | UNIT_STAT_FLEEING_MOVE); owner.UpdateControl(); - if (Unit* victim = owner.GetVictim()) + + if (owner.IsAlive() && !owner.HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CONFUSED | UNIT_FLAG_FLEEING | UNIT_FLAG_POSSESSED)) { - if (owner.IsAlive()) + if (Unit* victim = owner.GetVictim()) { owner.AttackStop(true); ((Creature*)&owner)->AI()->AttackStart(victim); diff --git a/src/game/Objects/Creature.cpp b/src/game/Objects/Creature.cpp index b76c48dca4f..9db8d3f73d8 100644 --- a/src/game/Objects/Creature.cpp +++ b/src/game/Objects/Creature.cpp @@ -1042,7 +1042,21 @@ void Creature::RegenerateHealth() void Creature::DoFlee() { - if (!GetVictim() || HasAuraType(SPELL_AURA_PREVENTS_FLEEING) || HasUnitState(UNIT_STAT_NOT_MOVE | UNIT_STAT_CONFUSED | UNIT_STAT_LOST_CONTROL)) + /* + Some observations from tests on classic regarding what happens if creature + cant flee at the moment its health reaches the amount it should flee at. + + In these cases both emote and move is delayed: + - Casting a spell. + - Mind controlled. + + In these cases emote is shown instantly: + - Stunned + - Feared. + */ + + if (!GetVictim() || HasAuraType(SPELL_AURA_PREVENTS_FLEEING) || + HasUnitState(UNIT_STAT_FEIGN_DEATH | UNIT_STAT_POSSESSED | UNIT_STAT_DISTRACTED | UNIT_STAT_CONFUSED)) return; float hpPercent = GetHealthPercent(); @@ -1060,7 +1074,8 @@ void Creature::DoFlee() void Creature::DoFleeToGetAssistance() { - if (!GetVictim() || HasAuraType(SPELL_AURA_PREVENTS_FLEEING) || HasUnitState(UNIT_STAT_NOT_MOVE | UNIT_STAT_CONFUSED | UNIT_STAT_LOST_CONTROL)) + if (!GetVictim() || HasAuraType(SPELL_AURA_PREVENTS_FLEEING) || + HasUnitState(UNIT_STAT_FEIGN_DEATH | UNIT_STAT_POSSESSED | UNIT_STAT_DISTRACTED | UNIT_STAT_CONFUSED)) return; float radius = sWorld.getConfig(CONFIG_FLOAT_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS); From d258d368ce6d912698467930f4ef729a856d004a Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 22 Dec 2023 06:16:23 +0200 Subject: [PATCH 401/426] Add flee action to creatures that miss it. --- sql/migrations/20231222035911_world.sql | 1801 +++++++++++++++++ .../blackrock_spire/ubrs_trash.cpp | 109 +- .../stratholme/boss_timmy_the_cruel.cpp | 9 + .../loch_modan/loch_modan.cpp | 92 +- .../scarlet_monastery/boss_herod.cpp | 41 +- src/scripts/kalimdor/darkshore/darkshore.cpp | 65 +- .../razorfen_kraul/razorfen_kraul.cpp | 66 - .../thousand_needles/thousand_needles.cpp | 36 +- 8 files changed, 1912 insertions(+), 307 deletions(-) create mode 100644 sql/migrations/20231222035911_world.sql diff --git a/sql/migrations/20231222035911_world.sql b/sql/migrations/20231222035911_world.sql new file mode 100644 index 00000000000..779f93e4688 --- /dev/null +++ b/sql/migrations/20231222035911_world.sql @@ -0,0 +1,1801 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231222035911'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231222035911'); +-- Add your query below. + + +-- Razorfen Defender +DELETE FROM `creature_ai_scripts` WHERE `id` IN (444202); +DELETE FROM `creature_ai_events` WHERE `creature_id`=4442; +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES (44420, 'Razorfen Kraul - Razorfen Defender', 7164, 100, 0, 0, 0, 0, 1, 6, 180, 190, 0, 3248, 100, 0, 0, 0, 0, 6, 14, 10, 30, 0, 11972, 100, 1, 0, 0, 0, 2, 16, 10, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +UPDATE `creature_template` SET `script_name`='' WHERE `entry`=4442; + +-- Shadowforge Peasant +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES (88960, 'Blackrock Depths - Shadowforge Peasant', 3604, 10, 1, 0, 0, 0, 5, 10, 120, 120, 0, 6713, 10, 1, 0, 0, 0, 7, 12, 120, 120, 0, 7978, 100, 1, 0, 0, 128, 7, 12, 10, 16, 0, 9053, 100, 1, 0, 0, 128, 7, 12, 7, 10, 0, 11642, 100, 15, 0, 0, 0, 15, 22, 20, 25, 0, 13584, 100, 1, 0, 0, 0, 3, 20, 10, 20, 0, 6660, 100, 1, 0, 0, 8, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +UPDATE `creature_template` SET `spell_list_id`=88960, `script_name`='' WHERE `entry`=8896; + +-- Shadowforge Citizen +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES (89020, 'Blackrock Depths - Shadowforge Citizen', 5532, 100, 1, 0, 0, 0, 5, 15, 5, 15, 0, 9613, 100, 1, 0, 0, 128, 5, 8, 7, 12, 0, 11831, 100, 1, 0, 0, 64, 8, 12, 120, 120, 0, 13339, 100, 1, 0, 0, 0, 7, 14, 7, 14, 0, 13444, 100, 1, 0, 0, 0, 5, 8, 7, 11, 0, 13446, 100, 1, 0, 0, 0, 10, 15, 15, 30, 0, 15547, 100, 1, 0, 0, 8, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +UPDATE `creature_template` SET `spell_list_id`=89020, `script_name`='' WHERE `entry`=8902; + +-- Shadowforge Senator +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES (89040, 'Blackrock Depths - Shadowforge Senator', 2601, 100, 18, 0, 0, 0, 1, 20, 120, 120, 0, 11436, 100, 4, 0, 0, 0, 5, 10, 10, 20, 0, 11831, 100, 1, 0, 0, 64, 6, 18, 120, 120, 0, 14868, 100, 1, 0, 0, 32, 5, 10, 7, 15, 0, 12471, 100, 1, 0, 0, 0, 0, 9, 3, 10, 0, 14034, 100, 1, 0, 0, 0, 0, 9, 3, 10, 0, 15498, 100, 1, 0, 0, 0, 0, 9, 3, 10, 0, 15547, 100, 1, 0, 0, 8, 0, 0, 2, 3, 0); +UPDATE `creature_template` SET `spell_list_id`=89040, `script_name`='' WHERE `entry`=8904; + +-- Twilight Emissary +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES (89130, 'Blackrock Depths - Twilight Emissary', 13745, 100, 1, 0, 0, 64, 5, 10, 10, 30, 0, 15063, 100, 1, 0, 0, 64, 4, 10, 15, 30, 0, 15288, 100, 17, 0, 0, 0, 0, 3, 1800, 1800, 0, 12466, 100, 1, 0, 0, 0, 3, 12, 15, 30, 0, 15043, 50, 1, 0, 0, 0, 0, 0, 3, 6, 0, 13748, 100, 1, 0, 0, 8, 0, 10, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +UPDATE `creature_template` SET `spell_list_id`=89130, `script_name`='' WHERE `entry`=8913; + +-- Twilight's Hammer Ambassador +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES (89150, 'Blackrock Depths - Twilight\'s Hammer Ambassador', 11980, 100, 4, 0, 0, 0, 7, 10, 120, 120, 0, 15096, 50, 1, 0, 0, 0, 5, 8, 30, 45, 0, 15499, 50, 1, 0, 0, 0, 5, 8, 30, 45, 0, 15500, 50, 1, 0, 0, 0, 5, 8, 30, 45, 0, 15501, 100, 1, 0, 0, 0, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +UPDATE `creature_template` SET `spell_list_id`=89130, `script_name`='' WHERE `entry`=8915; + +-- Houndmaster Grebmar +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES (93190, 'Blackrock Depths - Houndmaster Grebmar', 13730, 100, 1, 0, 0, 0, 9, 10, 15, 60, 0, 15615, 100, 1, 0, 0, 256, 7, 25, 7, 25, 0, 21049, 100, 18, 0, 0, 0, 4, 12, 4, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +UPDATE `creature_template` SET `spell_list_id`=89130, `script_name`='' WHERE `entry`=9319; + +-- Blackhand Summoner +DELETE FROM `script_texts` WHERE `entry` IN (-1900166, -1900167); +DELETE FROM `creature_ai_events` WHERE `creature_id`=9818; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (981801, 9818, 0, 2, 0, 100, 4, 15, 0, 0, 0, 981801, 0, 0, 'Blackhand Summoner - Flee at 15% HP'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (981802, 9818, 0, 6, 0, 100, 0, 0, 0, 0, 0, 981802, 0, 0, 'Blackhand Summoner - Set Data on Death'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (981803, 9818, 0, 0, 0, 100, 7, 6000, 22000, 16000, 24000, 981803, 981804, 0, 'Blackhand Summoner - Summon Blackhand Veteran or Dreadweaver in Combat'); +DELETE FROM `creature_ai_scripts` WHERE `id`=981801; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(981801, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Blackhand Summoner - Flee'); +DELETE FROM `creature_ai_scripts` WHERE `id`=981802; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(981802, 0, 0, 38, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Blackhand Summoner - Set Data 64 TYPE_ROOM_EVENT to GUID'); +DELETE FROM `creature_ai_scripts` WHERE `id`=981803; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(981803, 0, 0, 15, 16134, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Blackhand Summoner - Cast Spell Blackhand Summoner Presummon Emote'), +(981803, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5613, 0, 0, 0, 0, 0, 0, 0, 0, 'Blackhand Summoner - Say Text'), +(981803, 0, 2, 15, 15792, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Blackhand Summoner - Cast Spell Summon Blackhand Veteran'); +DELETE FROM `creature_ai_scripts` WHERE `id`=981804; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(981804, 0, 0, 15, 16135, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Blackhand Summoner - Cast Spell Blackhand Summoner Presummon Emote'), +(981804, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5611, 0, 0, 0, 0, 0, 0, 0, 0, 'Blackhand Summoner - Say Text'), +(981804, 0, 2, 15, 15794, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Blackhand Summoner - Cast Spell Summon Blackhand Veteran'); +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES (98180, 'Blackrock Spire - Blackhand Summoner', 15532, 100, 1, 0, 0, 64, 10, 20, 120, 120, 0, 12466, 100, 1, 0, 0, 136, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +UPDATE `creature_template` SET `spell_list_id`=98180, `ai_name`='EventAI', `script_name`='' WHERE `entry`=9818; + +-- Syndicate Watchman +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES (22610, 'Hillsbrad Foothills - Syndicate Watchman', 3602, 100, 1, 0, 0, 0, 0, 12, 15, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +UPDATE `creature_template` SET `spell_list_id`=22610, `script_name`='' WHERE `entry`=2261; +DELETE FROM `spell_disabled` WHERE `entry`=3602; + +-- Skullsplitter Witch Doctor +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES (6700, 'Stranglethorn Vale - Skullsplitter Witch Doctor', 8376, 100, 0, 0, 0, 0, 6, 15, 30, 60, 0, 5605, 100, 15, 0, 0, 0, 10, 15, 15, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +UPDATE `creature_template` SET `spell_list_id`=6700, `script_name`='' WHERE `entry`=670; + +-- Scargil +UPDATE `creature_template` SET `script_name`='' WHERE `entry`=14276; + +-- Saean +UPDATE `creature_template` SET `script_name`='' WHERE `entry`=1380; + +-- Ro'Bark +UPDATE `creature_template` SET `script_name`='' WHERE `entry`=14278; + +-- Comar Villard +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES (56830, 'Wetlands - Comar Villard', 12540, 100, 1, 0, 0, 0, 10, 20, 10, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +UPDATE `creature_template` SET `spell_list_id`=56830, `script_name`='' WHERE `entry`=5683; + +-- Prince Nazjak +UPDATE `creature_template` SET `script_name`='' WHERE `entry`=2779; + +-- Lady Zephris +UPDATE `creature_template` SET `script_name`='' WHERE `entry`=14277; + +-- Cenarion Druid +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (405204, 4052, 2, 100, 4, 15, 405204, 'Cenarion Druid - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (405204, 47, 'Cenarion Druid - Flee'); + +-- Mirkfallon Keeper +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (405602, 4056, 2, 100, 4, 15, 405602, 'Mirkfallon Keeper - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (405602, 47, 'Mirkfallon Keeper - Flee'); + +-- Ward Guardian +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (442702, 4427, 2, 100, 4, 15, 442702, 'Ward Guardian - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (442702, 47, 'Ward Guardian - Flee'); + +-- Razorfen Warrior +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (443501, 4435, 2, 100, 4, 15, 443501, 'Razorfen Warrior - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (443501, 47, 'Razorfen Warrior - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4435; + +-- Razorfen Quilguard +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (443602, 4436, 2, 100, 4, 15, 443602, 'Razorfen Quilguard - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (443602, 47, 'Razorfen Quilguard - Flee'); + +-- Razorfen Warden +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (443701, 4437, 2, 100, 4, 15, 443701, 'Razorfen Warden - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (443701, 47, 'Razorfen Warden - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4437; + +-- Razorfen Spearhide +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (443801, 4438, 2, 100, 4, 15, 443801, 'Razorfen Spearhide - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (443801, 47, 'Razorfen Spearhide - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4438; + +-- Razorfen Totemic +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (444002, 4440, 2, 100, 4, 15, 444002, 'Razorfen Totemic - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (444002, 47, 'Razorfen Totemic - Flee'); + +-- Razorfen Defender +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (444201, 4442, 2, 100, 4, 15, 444201, 'Razorfen Defender - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (444201, 47, 'Razorfen Defender - Flee'); + +-- Death's Head Acolyte +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (451503, 4515, 2, 100, 4, 15, 451503, 'Death\'s Head Acolyte - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (451503, 47, 'Death\'s Head Acolyte - Flee'); + +-- Death's Head Sage +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (451801, 4518, 2, 100, 4, 15, 451801, 'Death\'s Head Sage - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (451801, 47, 'Death\'s Head Sage - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4518; + +-- Death's Head Seer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (451901, 4519, 2, 100, 4, 15, 451901, 'Death\'s Head Seer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (451901, 47, 'Death\'s Head Seer - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4519; + +-- Razorfen Dustweaver +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (452203, 4522, 2, 100, 4, 15, 452203, 'Razorfen Dustweaver - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (452203, 47, 'Razorfen Dustweaver - Flee'); + +-- Razorfen Groundshaker +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (452303, 4523, 2, 100, 4, 15, 452303, 'Razorfen Groundshaker - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (452303, 47, 'Razorfen Groundshaker - Flee'); + +-- Razorfen Earthbreaker +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (452503, 4525, 2, 100, 4, 15, 452503, 'Razorfen Earthbreaker - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (452503, 47, 'Razorfen Earthbreaker - Flee'); + +-- Razorfen Beast Trainer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (453104, 4531, 2, 100, 4, 15, 453104, 'Razorfen Beast Trainer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (453104, 47, 'Razorfen Beast Trainer - Flee'); + +-- Quilguard Champion +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (462308, 4623, 2, 100, 4, 15, 462308, 'Quilguard Champion - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (462308, 47, 'Quilguard Champion - Flee'); + +-- Razorfen Stalker +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (603502, 6035, 2, 100, 4, 15, 603502, 'Razorfen Stalker - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (603502, 47, 'Razorfen Stalker - Flee'); + +-- Razorfen Servitor +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (613201, 6132, 2, 100, 4, 15, 613201, 'Razorfen Servitor - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (613201, 47, 'Razorfen Servitor - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=6132; + +-- Grimtotem Bandit +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1075801, 10758, 2, 100, 4, 15, 1075801, 'Grimtotem Bandit - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1075801, 47, 'Grimtotem Bandit - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=10758; + +-- Grimtotem Stomper +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1075901, 10759, 2, 100, 4, 15, 1075901, 'Grimtotem Stomper - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1075901, 47, 'Grimtotem Stomper - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=10759; + +-- Saltscale Warrior +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (87101, 871, 2, 100, 4, 15, 87101, 'Saltscale Warrior - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (87101, 47, 'Saltscale Warrior - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=871; + +-- Dalaran Protector +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (191201, 1912, 2, 100, 4, 15, 191201, 'Dalaran Protector - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (191201, 47, 'Dalaran Protector - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=1912; + +-- Apothecary Berard +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (210601, 2106, 2, 100, 4, 15, 210601, 'Apothecary Berard - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (210601, 47, 'Apothecary Berard - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2106; + +-- Dabyrie Laborer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (258201, 2582, 2, 100, 4, 15, 258201, 'Dabyrie Laborer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (258201, 47, 'Dabyrie Laborer - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2582; + +-- Daggerspine Marauder +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (277501, 2775, 2, 100, 4, 15, 277501, 'Daggerspine Marauder - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (277501, 47, 'Daggerspine Marauder - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2775; + +-- Southsea Brigand +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (338101, 3381, 2, 100, 4, 15, 338101, 'Southsea Brigand - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (338101, 47, 'Southsea Brigand - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3381; + +-- Pyrewood Armorer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (352801, 3528, 2, 100, 4, 15, 352801, 'Pyrewood Armorer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (352801, 47, 'Pyrewood Armorer - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3528; + +-- Pyrewood Leatherworker +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (353201, 3532, 2, 100, 4, 15, 353201, 'Pyrewood Leatherworker - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (353201, 47, 'Pyrewood Leatherworker - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3532; + +-- Fardel Dabyrie +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (447901, 4479, 2, 100, 4, 20, 447901, 'Fardel Dabyrie - Flee at 20% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (447901, 47, 'Fardel Dabyrie - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4479; + +-- Kenata Dabyrie +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (448001, 4480, 2, 100, 4, 15, 448001, 'Kenata Dabyrie - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (448001, 47, 'Kenata Dabyrie - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4480; + +-- Marcel Dabyrie +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (448102, 4481, 2, 100, 4, 30, 448102, 'Marcel Dabyrie - Flee at 30% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (448102, 47, 'Marcel Dabyrie - Flee'); + +-- Kolkar Mauler +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (463401, 4634, 2, 100, 4, 15, 463401, 'Kolkar Mauler - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (463401, 47, 'Kolkar Mauler - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4634; + +-- Kolkar Windchaser +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (463501, 4635, 2, 100, 4, 15, 463501, 'Kolkar Windchaser - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (463501, 47, 'Kolkar Windchaser - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4635; + +-- Kolkar Destroyer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (463703, 4637, 2, 100, 4, 15, 463703, 'Kolkar Destroyer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (463703, 47, 'Kolkar Destroyer - Flee'); + +-- Gelkis Outrunner +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (464601, 4646, 2, 100, 4, 15, 464601, 'Gelkis Outrunner - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (464601, 47, 'Gelkis Outrunner - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4646; + +-- Gelkis Scout +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (464701, 4647, 2, 100, 4, 15, 464701, 'Gelkis Scout - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (464701, 47, 'Gelkis Scout - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4647; + +-- Gelkis Stamper +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (464802, 4648, 2, 100, 4, 15, 464802, 'Gelkis Stamper - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (464802, 47, 'Gelkis Stamper - Flee'); + +-- Gelkis Windchaser +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (464901, 4649, 2, 100, 4, 15, 464901, 'Gelkis Windchaser - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (464901, 47, 'Gelkis Windchaser - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4649; + +-- Gelkis Earthcaller +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (465102, 4651, 2, 100, 4, 15, 465102, 'Gelkis Earthcaller - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (465102, 47, 'Gelkis Earthcaller - Flee'); + +-- Gelkis Mauler +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (465201, 4652, 2, 100, 4, 15, 465201, 'Gelkis Mauler - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (465201, 47, 'Gelkis Mauler - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4652; + +-- Gelkis Marauder +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (465301, 4653, 2, 100, 4, 15, 465301, 'Gelkis Marauder - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (465301, 47, 'Gelkis Marauder - Flee'); + +-- Slitherblade Naga +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (471102, 4711, 2, 100, 4, 15, 471102, 'Slitherblade Naga - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (471102, 47, 'Slitherblade Naga - Flee'); + +-- Slitherblade Sorceress +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (471203, 4712, 2, 100, 4, 15, 471203, 'Slitherblade Sorceress - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (471203, 47, 'Slitherblade Sorceress - Flee'); + +-- Slitherblade Warrior +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (471303, 4713, 2, 100, 4, 15, 471303, 'Slitherblade Warrior - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (471303, 47, 'Slitherblade Warrior - Flee'); + +-- Slitherblade Myrmidon +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (471402, 4714, 2, 100, 4, 15, 471402, 'Slitherblade Myrmidon - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (471402, 47, 'Slitherblade Myrmidon - Flee'); + +-- Slitherblade Razortail +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (471502, 4715, 2, 100, 4, 15, 471502, 'Slitherblade Razortail - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (471502, 47, 'Slitherblade Razortail - Flee'); + +-- Slitherblade Oracle +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (471801, 4718, 2, 100, 4, 15, 471801, 'Slitherblade Oracle - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (471801, 47, 'Slitherblade Oracle - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4718; + +-- Slitherblade Sea Witch +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (471902, 4719, 2, 100, 4, 15, 471902, 'Slitherblade Sea Witch - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (471902, 47, 'Slitherblade Sea Witch - Flee'); + +-- Khan Dez'hepah +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (560003, 5600, 2, 100, 4, 15, 560003, 'Khan Dez\'hepah - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (560003, 47, 'Khan Dez\'hepah - Flee'); + +-- Kolkar Waylayer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1297601, 12976, 2, 100, 4, 15, 1297601, 'Kolkar Waylayer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1297601, 47, 'Kolkar Waylayer - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=12976; + +-- Fleet Master Firallon +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (254601, 2546, 2, 100, 4, 15, 254601, 'Fleet Master Firallon - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (254601, 47, 'Fleet Master Firallon - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2546; + +-- Captain Stillwater +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (255001, 2550, 2, 100, 4, 15, 255001, 'Captain Stillwater - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (255001, 47, 'Captain Stillwater - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2550; + +-- Stonevault Shaman +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (289402, 2894, 2, 100, 4, 15, 289402, 'Stonevault Shaman - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (289402, 47, 'Stonevault Shaman - Flee'); + +-- Magregan Deepshadow +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (293201, 2932, 2, 100, 4, 15, 293201, 'Magregan Deepshadow - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (293201, 47, 'Magregan Deepshadow - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2932; + +-- Bloodsail Swabby +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (450601, 4506, 2, 100, 4, 15, 450601, 'Bloodsail Swabby - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (450601, 47, 'Bloodsail Swabby - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4506; + +-- Maraudine Scout +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (465401, 4654, 2, 100, 4, 15, 465401, 'Maraudine Scout - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (465401, 47, 'Maraudine Scout - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4654; + +-- Maraudine Wrangler +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (465501, 4655, 2, 100, 4, 15, 465501, 'Maraudine Wrangler - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (465501, 47, 'Maraudine Wrangler - Flee'); + +-- Maraudine Mauler +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (465601, 4656, 2, 100, 4, 15, 465601, 'Maraudine Mauler - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (465601, 47, 'Maraudine Mauler - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4656; + +-- Maraudine Marauder +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (465901, 4659, 2, 100, 4, 15, 465901, 'Maraudine Marauder - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (465901, 47, 'Maraudine Marauder - Flee'); + +-- Atal'ai High Priest +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (527302, 5273, 2, 100, 4, 15, 527302, 'Atal\'ai High Priest - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (527302, 47, 'Atal\'ai High Priest - Flee'); + +-- Sandfury Slave +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (778701, 7787, 2, 100, 4, 15, 778701, 'Sandfury Slave - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (778701, 47, 'Sandfury Slave - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=7787; + +-- Sandfury Acolyte +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (887601, 8876, 2, 100, 4, 15, 887601, 'Sandfury Acolyte - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (887601, 47, 'Sandfury Acolyte - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=8876; + +-- Dustwraith +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1008103, 10081, 2, 100, 4, 15, 1008103, 'Dustwraith - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1008103, 47, 'Dustwraith - Flee'); + +-- Maraudine Windchaser +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (465701, 4657, 2, 100, 4, 15, 465701, 'Maraudine Windchaser - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (465701, 47, 'Maraudine Windchaser - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4657; + +-- Maraudine Stormer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (465802, 4658, 2, 100, 4, 15, 465802, 'Maraudine Stormer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (465802, 47, 'Maraudine Stormer - Flee'); + +-- Death's Head Cultist +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (787201, 7872, 2, 100, 4, 15, 787201, 'Death\'s Head Cultist - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (787201, 47, 'Death\'s Head Cultist - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=7872; + +-- Razorfen Battleguard +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (787301, 7873, 2, 100, 4, 15, 787301, 'Razorfen Battleguard - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (787301, 47, 'Razorfen Battleguard - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=7873; + +-- Razorfen Thornweaver +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (787403, 7874, 2, 100, 4, 15, 787403, 'Razorfen Thornweaver - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (787403, 47, 'Razorfen Thornweaver - Flee'); + +-- Slave Worker +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (584301, 5843, 2, 100, 4, 25, 584301, 'Slave Worker - Flee at 25% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (584301, 47, 'Slave Worker - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=5843; + +-- Anvilrage Overseer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (888901, 8889, 2, 100, 4, 15, 888901, 'Anvilrage Overseer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (888901, 47, 'Anvilrage Overseer - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=8889; + +-- Shadowforge Peasant +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (889601, 8896, 2, 100, 4, 15, 889601, 'Shadowforge Peasant - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (889601, 47, 'Shadowforge Peasant - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=8896; + +-- Doomforge Dragoon +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (889901, 8899, 2, 100, 4, 15, 889901, 'Doomforge Dragoon - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (889901, 47, 'Doomforge Dragoon - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=8899; + +-- Shadowforge Citizen +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (890201, 8902, 2, 100, 4, 15, 890201, 'Shadowforge Citizen - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (890201, 47, 'Shadowforge Citizen - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=8902; + +-- Shadowforge Senator +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (890401, 8904, 2, 100, 4, 15, 890401, 'Shadowforge Senator - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (890401, 47, 'Shadowforge Senator - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=8904; + +-- Twilight Emissary +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (891301, 8913, 2, 100, 4, 15, 891301, 'Twilight Emissary - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (891301, 47, 'Twilight Emissary - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=8913; + +-- Twilight's Hammer Ambassador +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (891501, 8915, 2, 100, 4, 15, 891501, 'Twilight\'s Hammer Ambassador - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (891501, 47, 'Twilight\'s Hammer Ambassador - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=8915; + +-- Arena Spectator +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (891601, 8916, 2, 100, 4, 15, 891601, 'Arena Spectator - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (891601, 47, 'Arena Spectator - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=8916; + +-- Weapon Technician +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (892001, 8920, 2, 100, 4, 15, 892001, 'Weapon Technician - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (892001, 47, 'Weapon Technician - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=8920; + +-- Scarshield Acolyte +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (904501, 9045, 2, 100, 4, 15, 904501, 'Scarshield Acolyte - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (904501, 47, 'Scarshield Acolyte - Flee'); + +-- Smolderthorn Mystic +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (923901, 9239, 2, 100, 4, 15, 923901, 'Smolderthorn Mystic - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (923901, 47, 'Smolderthorn Mystic - Flee'); + +-- Smolderthorn Shadow Priest +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (924001, 9240, 2, 100, 4, 15, 924001, 'Smolderthorn Shadow Priest - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (924001, 47, 'Smolderthorn Shadow Priest - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=9240; + +-- Smolderthorn Shadow Hunter +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (926501, 9265, 2, 100, 4, 15, 926501, 'Smolderthorn Shadow Hunter - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (926501, 47, 'Smolderthorn Shadow Hunter - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=9265; + +-- Smolderthorn Witch Doctor +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (926601, 9266, 2, 100, 4, 15, 926601, 'Smolderthorn Witch Doctor - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (926601, 47, 'Smolderthorn Witch Doctor - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=9266; + +-- Houndmaster Grebmar +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (931901, 9319, 2, 100, 4, 15, 931901, 'Houndmaster Grebmar - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (931901, 47, 'Houndmaster Grebmar - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=9319; + +-- Bloodaxe Summoner +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (971703, 9717, 2, 100, 4, 15, 971703, 'Bloodaxe Summoner - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (971703, 47, 'Bloodaxe Summoner - Flee'); + +-- Dalaran Warder +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (191301, 1913, 2, 100, 4, 15, 191301, 'Dalaran Warder - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (191301, 47, 'Dalaran Warder - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=1913; + +-- Haggard Refugee +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (205301, 2053, 2, 100, 4, 15, 205301, 'Haggard Refugee - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (205301, 47, 'Haggard Refugee - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2053; + +-- Syndicate Rogue +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (226002, 2260, 2, 100, 4, 15, 226002, 'Syndicate Rogue - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (226002, 47, 'Syndicate Rogue - Flee'); + +-- Syndicate Watchman +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (226101, 2261, 2, 100, 4, 15, 226101, 'Syndicate Watchman - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (226101, 47, 'Syndicate Watchman - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2261; + +-- Hammertoe Grez +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (290901, 2909, 2, 100, 4, 15, 290901, 'Hammertoe Grez - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (290901, 47, 'Hammertoe Grez - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2909; + +-- Zalazane +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (320501, 3205, 2, 100, 4, 15, 320501, 'Zalazane - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (320501, 47, 'Zalazane - Flee'); + +-- Voodoo Troll +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (320604, 3206, 2, 100, 4, 15, 320604, 'Voodoo Troll - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (320604, 47, 'Voodoo Troll - Flee'); + +-- Baron Longshore +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (346701, 3467, 2, 100, 4, 15, 346701, 'Baron Longshore - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (346701, 47, 'Baron Longshore - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3467; + +-- Venture Co. Enforcer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (328301, 3283, 2, 100, 4, 15, 328301, 'Venture Co. Enforcer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (328301, 47, 'Venture Co. Enforcer - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3283; + +-- Firebrand Dreadweaver +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (926301, 9263, 2, 100, 4, 15, 926301, 'Firebrand Dreadweaver - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (926301, 47, 'Firebrand Dreadweaver - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=9263; + +-- Firebrand Pyromancer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (926401, 9264, 2, 100, 4, 15, 926401, 'Firebrand Pyromancer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (926401, 47, 'Firebrand Pyromancer - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=9264; + +-- Shadowforge Flame Keeper +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (995602, 9956, 2, 100, 4, 15, 995602, 'Shadowforge Flame Keeper - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (995602, 47, 'Shadowforge Flame Keeper - Flee'); + +-- Summoned Blackhand Veteran +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1068102, 10681, 2, 100, 4, 15, 1068102, 'Summoned Blackhand Veteran - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1068102, 47, 'Summoned Blackhand Veteran - Flee'); + +-- Crimson Sorcerer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1042203, 10422, 2, 100, 4, 15, 1042203, 'Crimson Sorcerer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1042203, 47, 'Crimson Sorcerer - Flee'); + +-- Crimson Priest +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1042303, 10423, 2, 100, 4, 15, 1042303, 'Crimson Priest - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1042303, 47, 'Crimson Priest - Flee'); + +-- Crimson Inquisitor +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1042603, 10426, 2, 100, 4, 15, 1042603, 'Crimson Inquisitor - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1042603, 47, 'Crimson Inquisitor - Flee'); + +-- Crimson Monk +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1104302, 11043, 2, 100, 4, 15, 1104302, 'Crimson Monk - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1104302, 47, 'Crimson Monk - Flee'); + +-- Skullsplitter Headhunter +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (78101, 781, 2, 100, 4, 15, 78101, 'Skullsplitter Headhunter - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (78101, 47, 'Skullsplitter Headhunter - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=781; + +-- Dagun the Ravenous +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (293701, 2937, 2, 100, 4, 15, 293701, 'Dagun the Ravenous - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (293701, 47, 'Dagun the Ravenous - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2937; + +-- Bael'dun Excavator +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (337407, 3374, 2, 100, 4, 15, 337407, 'Bael\'dun Excavator - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (337407, 47, 'Bael\'dun Excavator - Flee'); + +-- Bael'dun Foreman +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (337502, 3375, 2, 100, 4, 15, 337502, 'Bael\'dun Foreman - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (337502, 47, 'Bael\'dun Foreman - Flee'); + +-- Prospector Stonehewer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1381601, 13816, 2, 100, 4, 15, 1381601, 'Prospector Stonehewer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1381601, 47, 'Prospector Stonehewer - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=13816; + +-- Bloodfury Harpy +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (402201, 4022, 2, 100, 4, 15, 402201, 'Bloodfury Harpy - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (402201, 47, 'Bloodfury Harpy - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4022; + +-- Scarlet Lumberjack +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (188402, 1884, 2, 100, 4, 15, 188402, 'Scarlet Lumberjack - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (188402, 47, 'Scarlet Lumberjack - Flee'); + +-- Razormane Seer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (345801, 3458, 2, 100, 4, 15, 345801, 'Razormane Seer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (345801, 47, 'Razormane Seer - Flee'); + +-- Ongeku +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (562201, 5622, 2, 100, 4, 15, 562201, 'Ongeku - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (562201, 47, 'Ongeku - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=5622; + +-- Highvale Ranger +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (269402, 2694, 2, 100, 4, 15, 269402, 'Highvale Ranger - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (269402, 47, 'Highvale Ranger - Flee'); + +-- Wastewander Scofflaw +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (780501, 7805, 2, 100, 4, 15, 780501, 'Wastewander Scofflaw - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (780501, 47, 'Wastewander Scofflaw - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=7805; + +-- Krang Stonehoof +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (306302, 3063, 2, 100, 4, 15, 306302, 'Krang Stonehoof - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (306302, 47, 'Krang Stonehoof - Flee'); + +-- Rascal Sprite +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (200201, 2002, 2, 100, 4, 15, 200201, 'Rascal Sprite - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (200201, 47, 'Rascal Sprite - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2002; + +-- Shadow Sprite +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (200301, 2003, 2, 100, 4, 15, 200301, 'Shadow Sprite - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (200301, 47, 'Shadow Sprite - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2003; + +-- Dark Sprite +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (200401, 2004, 2, 100, 4, 15, 200401, 'Dark Sprite - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (200401, 47, 'Dark Sprite - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2004; + +-- Vicious Grell +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (200502, 2005, 2, 100, 4, 15, 200502, 'Vicious Grell - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (200502, 47, 'Vicious Grell - Flee'); + +-- Gnarlpine Warrior +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (200802, 2008, 2, 100, 4, 15, 200802, 'Gnarlpine Warrior - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (200802, 47, 'Gnarlpine Warrior - Flee'); + +-- Bloodfeather Harpy +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (201503, 2015, 2, 100, 4, 15, 201503, 'Bloodfeather Harpy - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (201503, 47, 'Bloodfeather Harpy - Flee'); + +-- Bloodfeather Rogue +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (201702, 2017, 2, 100, 4, 15, 201702, 'Bloodfeather Rogue - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (201702, 47, 'Bloodfeather Rogue - Flee'); + +-- Bloodfeather Sorceress +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (201803, 2018, 2, 100, 4, 15, 201803, 'Bloodfeather Sorceress - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (201803, 47, 'Bloodfeather Sorceress - Flee'); + +-- Bloodfeather Fury +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (201903, 2019, 2, 100, 4, 15, 201903, 'Bloodfeather Fury - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (201903, 47, 'Bloodfeather Fury - Flee'); + +-- Bloodfeather Wind Witch +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (202003, 2020, 2, 100, 4, 15, 202003, 'Bloodfeather Wind Witch - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (202003, 47, 'Bloodfeather Wind Witch - Flee'); + +-- Bloodfeather Matriarch +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (202101, 2021, 2, 100, 4, 15, 202101, 'Bloodfeather Matriarch - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (202101, 47, 'Bloodfeather Matriarch - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2021; + +-- Lord Melenas +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (203805, 2038, 2, 100, 4, 15, 203805, 'Lord Melenas - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (203805, 47, 'Lord Melenas - Flee'); + +-- Moonstalker Runt +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (207001, 2070, 2, 100, 4, 15, 207001, 'Moonstalker Runt - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (207001, 47, 'Moonstalker Runt - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2070; + +-- Gnarlpine Ambusher +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (215201, 2152, 2, 100, 4, 15, 215201, 'Gnarlpine Ambusher - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (215201, 47, 'Gnarlpine Ambusher - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2152; + +-- Blackwood Pathfinder +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (216703, 2167, 2, 100, 4, 15, 216703, 'Blackwood Pathfinder - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (216703, 47, 'Blackwood Pathfinder - Flee'); + +-- Vile Sprite +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (218901, 2189, 2, 100, 4, 15, 218901, 'Vile Sprite - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (218901, 47, 'Vile Sprite - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2189; + +-- Deth'ryll Satyr +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (221201, 2212, 2, 100, 4, 15, 221201, 'Deth\'ryll Satyr - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (221201, 47, 'Deth\'ryll Satyr - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2212; + +-- Blackwood Windtalker +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (232401, 2324, 2, 100, 4, 15, 232401, 'Blackwood Windtalker - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (232401, 47, 'Blackwood Windtalker - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2324; + +-- Fury Shelda +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1443101, 14431, 2, 100, 4, 15, 1443101, 'Fury Shelda - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1443101, 47, 'Fury Shelda - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=14431; + +-- Blackwood Warrior +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (216803, 2168, 2, 100, 4, 15, 216803, 'Blackwood Warrior - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (216803, 47, 'Blackwood Warrior - Flee'); + +-- Blackwood Totemic +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (216901, 2169, 2, 100, 4, 15, 216901, 'Blackwood Totemic - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (216901, 47, 'Blackwood Totemic - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2169; + +-- Blackwood Ursa +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (217002, 2170, 2, 100, 4, 15, 217002, 'Blackwood Ursa - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (217002, 47, 'Blackwood Ursa - Flee'); + +-- Stormscale Wave Rider +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (217901, 2179, 2, 100, 4, 15, 217901, 'Stormscale Wave Rider - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (217901, 47, 'Stormscale Wave Rider - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2179; + +-- Stormscale Siren +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (218001, 2180, 2, 100, 4, 15, 218001, 'Stormscale Siren - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (218001, 47, 'Stormscale Siren - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2180; + +-- Stormscale Sorceress +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (218203, 2182, 2, 100, 4, 15, 218203, 'Stormscale Sorceress - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (218203, 47, 'Stormscale Sorceress - Flee'); + +-- Stormscale Warrior +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (218301, 2183, 2, 100, 4, 15, 218301, 'Stormscale Warrior - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (218301, 47, 'Stormscale Warrior - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2183; + +-- Dark Strand Excavator +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (373001, 3730, 2, 100, 4, 15, 373001, 'Dark Strand Excavator - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (373001, 47, 'Dark Strand Excavator - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3730; + +-- Balizar the Umbrage +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (389902, 3899, 2, 100, 4, 15, 389902, 'Balizar the Umbrage - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (389902, 47, 'Balizar the Umbrage - Flee'); + +-- Stormscale Toxicologist +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1232101, 12321, 2, 100, 4, 15, 1232101, 'Stormscale Toxicologist - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1232101, 47, 'Stormscale Toxicologist - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=12321; + +-- Farmer Ray +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (23201, 232, 2, 100, 4, 15, 23201, 'Farmer Ray - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (23201, 47, 'Farmer Ray - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=232; + +-- Jailor Eston +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (242701, 2427, 2, 100, 4, 15, 242701, 'Jailor Eston - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (242701, 47, 'Jailor Eston - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2427; + +-- Bristleback Water Seeker +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (326001, 3260, 2, 100, 4, 15, 326001, 'Bristleback Water Seeker - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (326001, 47, 'Bristleback Water Seeker - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3260; + +-- Bristleback Thornweaver +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (326102, 3261, 2, 100, 4, 15, 326102, 'Bristleback Thornweaver - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (326102, 47, 'Bristleback Thornweaver - Flee'); + +-- Northspring Harpy +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (536202, 5362, 2, 100, 4, 15, 536202, 'Northspring Harpy - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (536202, 47, 'Northspring Harpy - Flee'); + +-- Northspring Roguefeather +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (536301, 5363, 2, 100, 4, 15, 536301, 'Northspring Roguefeather - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (536301, 47, 'Northspring Roguefeather - Flee'); + +-- Northspring Slayer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (536403, 5364, 2, 100, 4, 15, 536403, 'Northspring Slayer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (536403, 47, 'Northspring Slayer - Flee'); + +-- Northspring Windcaller +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (536601, 5366, 2, 100, 4, 15, 536601, 'Northspring Windcaller - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (536601, 47, 'Northspring Windcaller - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=5366; + +-- Nak +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (343401, 3434, 2, 100, 4, 15, 343401, 'Nak - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (343401, 47, 'Nak - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3434; + +-- Lok Orcbane +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (343501, 3435, 2, 100, 4, 15, 343501, 'Lok Orcbane - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (343501, 47, 'Lok Orcbane - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3435; + +-- Kuz +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (343602, 3436, 2, 100, 4, 15, 343602, 'Kuz - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (343602, 47, 'Kuz - Flee'); + +-- Razormane Stalker +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (345701, 3457, 2, 100, 4, 15, 345701, 'Razormane Stalker - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (345701, 47, 'Razormane Stalker - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3457; + +-- Razormane Warfrenzy +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (345901, 3459, 2, 100, 4, 15, 345901, 'Razormane Warfrenzy - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (345901, 47, 'Razormane Warfrenzy - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3459; + +-- Gerenzo Wrenchwhistle +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (420201, 4202, 2, 100, 4, 15, 420201, 'Gerenzo Wrenchwhistle - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (420201, 47, 'Gerenzo Wrenchwhistle - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4202; + +-- Twilight Stonecaller +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1188202, 11882, 2, 100, 4, 15, 1188202, 'Twilight Stonecaller - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1188202, 47, 'Twilight Stonecaller - Flee'); + +-- Palemane Tanner +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (294902, 2949, 2, 100, 4, 15, 294902, 'Palemane Tanner - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (294902, 47, 'Palemane Tanner - Flee'); + +-- Palemane Skinner +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (295002, 2950, 2, 100, 4, 15, 295002, 'Palemane Skinner - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (295002, 47, 'Palemane Skinner - Flee'); + +-- Adult Plainstrider +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (295601, 2956, 2, 100, 4, 15, 295601, 'Adult Plainstrider - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (295601, 47, 'Adult Plainstrider - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2956; + +-- Elder Plainstrider +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (295701, 2957, 2, 100, 4, 15, 295701, 'Elder Plainstrider - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (295701, 47, 'Elder Plainstrider - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2957; + +-- Venture Co. Hireling +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (297501, 2975, 2, 100, 4, 15, 297501, 'Venture Co. Hireling - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (297501, 47, 'Venture Co. Hireling - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2975; + +-- Venture Co. Supervisor +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (297901, 2979, 2, 100, 4, 15, 297901, 'Venture Co. Supervisor - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (297901, 47, 'Venture Co. Supervisor - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2979; + +-- Bael'dun Appraiser +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (299002, 2990, 2, 100, 4, 15, 299002, 'Bael\'dun Appraiser - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (299002, 47, 'Bael\'dun Appraiser - Flee'); + +-- Supervisor Fizsprocket +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (305101, 3051, 2, 100, 4, 15, 305101, 'Supervisor Fizsprocket - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (305101, 47, 'Supervisor Fizsprocket - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3051; + +-- Greater Plainstrider +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (324401, 3244, 2, 100, 4, 15, 324401, 'Greater Plainstrider - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (324401, 47, 'Greater Plainstrider - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3244; + +-- Ornery Plainstrider +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (324501, 3245, 2, 100, 4, 15, 324501, 'Ornery Plainstrider - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (324501, 47, 'Ornery Plainstrider - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3245; + +-- Razormane Defender +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (326602, 3266, 2, 100, 4, 15, 326602, 'Razormane Defender - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (326602, 47, 'Razormane Defender - Flee'); + +-- Razormane Water Seeker +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (326701, 3267, 2, 100, 4, 15, 326701, 'Razormane Water Seeker - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (326701, 47, 'Razormane Water Seeker - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3267; + +-- Razormane Thornweaver +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (326802, 3268, 2, 100, 4, 15, 326802, 'Razormane Thornweaver - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (326802, 47, 'Razormane Thornweaver - Flee'); + +-- Witchwing Slayer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (327803, 3278, 2, 100, 4, 15, 327803, 'Witchwing Slayer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (327803, 47, 'Witchwing Slayer - Flee'); + +-- Venture Co. Mercenary +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (328201, 3282, 2, 100, 4, 15, 328201, 'Venture Co. Mercenary - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (328201, 47, 'Venture Co. Mercenary - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3282; + +-- Theramore Preserver +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (338601, 3386, 2, 100, 4, 15, 338601, 'Theramore Preserver - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (338601, 47, 'Theramore Preserver - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3386; + +-- Hezrul Bloodmark +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (339602, 3396, 2, 100, 4, 15, 339602, 'Hezrul Bloodmark - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (339602, 47, 'Hezrul Bloodmark - Flee'); + +-- Tinkerer Sniggles +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (347101, 3471, 2, 100, 4, 15, 347101, 'Tinkerer Sniggles - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (347101, 47, 'Tinkerer Sniggles - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3471; + +-- Deviate Coiler +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (363001, 3630, 2, 100, 4, 15, 363001, 'Deviate Coiler - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (363001, 47, 'Deviate Coiler - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3630; + +-- Murloc Nightcrawler +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (54401, 544, 2, 100, 4, 15, 54401, 'Murloc Nightcrawler - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (54401, 47, 'Murloc Nightcrawler - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=544; + +-- Rohh the Silent +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (94703, 947, 2, 100, 4, 15, 94703, 'Rohh the Silent - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (94703, 47, 'Rohh the Silent - Flee'); + +-- Kurzen Subchief +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (97801, 978, 2, 100, 4, 15, 97801, 'Kurzen Subchief - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (97801, 47, 'Kurzen Subchief - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=978; + +-- Venture Co. Miner +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (109401, 1094, 2, 100, 4, 15, 109401, 'Venture Co. Miner - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (109401, 47, 'Venture Co. Miner - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=1094; + +-- Dawnwatcher Selgorm +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (478301, 4783, 2, 100, 4, 15, 478301, 'Dawnwatcher Selgorm - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (478301, 47, 'Dawnwatcher Selgorm - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4783; + +-- Mudsnout Gnoll +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (237202, 2372, 2, 100, 4, 15, 237202, 'Mudsnout Gnoll - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (237202, 47, 'Mudsnout Gnoll - Flee'); + +-- Bael'dun Soldier +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (337601, 3376, 2, 100, 4, 15, 337601, 'Bael\'dun Soldier - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (337601, 47, 'Bael\'dun Soldier - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3376; + +-- Bael'dun Officer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (337801, 3378, 2, 100, 4, 15, 337801, 'Bael\'dun Officer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (337801, 47, 'Bael\'dun Officer - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3378; + +-- Sorcerer Ashcrombe +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (385001, 3850, 2, 100, 4, 15, 385001, 'Sorcerer Ashcrombe - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (385001, 47, 'Sorcerer Ashcrombe - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3850; + +-- Bloodfury Roguefeather +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (402301, 4023, 2, 100, 4, 15, 402301, 'Bloodfury Roguefeather - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (402301, 47, 'Bloodfury Roguefeather - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4023; + +-- Bloodfury Slayer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (402401, 4024, 2, 100, 4, 15, 402401, 'Bloodfury Slayer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (402401, 47, 'Bloodfury Slayer - Flee'); + +-- Bloodfury Ambusher +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (402502, 4025, 2, 100, 4, 15, 402502, 'Bloodfury Ambusher - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (402502, 47, 'Bloodfury Ambusher - Flee'); + +-- Bloodfury Windcaller +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (402602, 4026, 2, 100, 4, 15, 402602, 'Bloodfury Windcaller - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (402602, 47, 'Bloodfury Windcaller - Flee'); + +-- Bloodfury Storm Witch +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (402701, 4027, 2, 100, 4, 15, 402701, 'Bloodfury Storm Witch - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (402701, 47, 'Bloodfury Storm Witch - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4027; + +-- Son of Cenarius +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (405702, 4057, 2, 100, 4, 15, 405702, 'Son of Cenarius - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (405702, 47, 'Son of Cenarius - Flee'); + +-- Kolkar Centaur +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (463201, 4632, 2, 100, 4, 15, 463201, 'Kolkar Centaur - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (463201, 47, 'Kolkar Centaur - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4632; + +-- Magram Scout +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (463801, 4638, 2, 100, 4, 15, 463801, 'Magram Scout - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (463801, 47, 'Magram Scout - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4638; + +-- Magram Wrangler +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (464001, 4640, 2, 100, 4, 15, 464001, 'Magram Wrangler - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (464001, 47, 'Magram Wrangler - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4640; + +-- Magram Windchaser +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (464101, 4641, 2, 100, 4, 15, 464101, 'Magram Windchaser - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (464101, 47, 'Magram Windchaser - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4641; + +-- Magram Stormer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (464202, 4642, 2, 100, 4, 15, 464202, 'Magram Stormer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (464202, 47, 'Magram Stormer - Flee'); + +-- Magram Marauder +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (464401, 4644, 2, 100, 4, 15, 464401, 'Magram Marauder - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (464401, 47, 'Magram Marauder - Flee'); + +-- Magram Mauler +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (464501, 4645, 2, 100, 4, 15, 464501, 'Magram Mauler - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (464501, 47, 'Magram Mauler - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4645; + +-- Blackfathom Myrmidon +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (480701, 4807, 2, 100, 4, 15, 480701, 'Blackfathom Myrmidon - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (480701, 47, 'Blackfathom Myrmidon - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4807; + +-- Dun Garok Soldier +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (736001, 7360, 2, 100, 4, 15, 736001, 'Dun Garok Soldier - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (736001, 47, 'Dun Garok Soldier - Flee'); + +-- Oakpaw +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1064002, 10640, 2, 100, 4, 15, 1064002, 'Oakpaw - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1064002, 47, 'Oakpaw - Flee'); + +-- Grimtotem Geomancer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1076001, 10760, 2, 100, 4, 15, 1076001, 'Grimtotem Geomancer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1076001, 47, 'Grimtotem Geomancer - Flee'); + +-- Grimtotem Reaver +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1076101, 10761, 2, 100, 4, 15, 1076101, 'Grimtotem Reaver - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1076101, 47, 'Grimtotem Reaver - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=10761; + +-- Windshear Digger +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (399901, 3999, 2, 100, 4, 15, 399901, 'Windshear Digger - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (399901, 47, 'Windshear Digger - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3999; + +-- Galak Flame Guard +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (740401, 7404, 2, 100, 4, 15, 740401, 'Galak Flame Guard - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (740401, 47, 'Galak Flame Guard - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=7404; + +-- Gruna +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (370801, 3708, 2, 100, 4, 15, 370801, 'Gruna - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (370801, 47, 'Gruna - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3708; + +-- Muckshell Razorclaw +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (440501, 4405, 2, 100, 4, 15, 440501, 'Muckshell Razorclaw - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (440501, 47, 'Muckshell Razorclaw - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4405; + +-- Skullsplitter Warrior +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (66701, 667, 2, 100, 4, 15, 66701, 'Skullsplitter Warrior - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (66701, 47, 'Skullsplitter Warrior - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=667; + +-- Skullsplitter Hunter +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (66902, 669, 2, 100, 4, 15, 66902, 'Skullsplitter Hunter - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (66902, 47, 'Skullsplitter Hunter - Flee'); + +-- Skullsplitter Witch Doctor +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (67001, 670, 2, 100, 4, 15, 67001, 'Skullsplitter Witch Doctor - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (67001, 47, 'Skullsplitter Witch Doctor - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=670; + +-- Skullsplitter Spiritchaser +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (67201, 672, 2, 100, 4, 15, 67201, 'Skullsplitter Spiritchaser - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (67201, 47, 'Skullsplitter Spiritchaser - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=672; + +-- Venture Co. Surveyor +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (67601, 676, 2, 100, 4, 15, 67601, 'Venture Co. Surveyor - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (67601, 47, 'Venture Co. Surveyor - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=676; + +-- Skullsplitter Scout +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (78201, 782, 2, 100, 4, 15, 78201, 'Skullsplitter Scout - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (78201, 47, 'Skullsplitter Scout - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=782; + +-- Skullsplitter Beastmaster +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (78402, 784, 2, 100, 4, 15, 78402, 'Skullsplitter Beastmaster - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (78402, 47, 'Skullsplitter Beastmaster - Flee'); + +-- Nezzliok the Dire +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (106201, 1062, 2, 100, 4, 15, 106201, 'Nezzliok the Dire - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (106201, 47, 'Nezzliok the Dire - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=1062; + +-- Zanzil Witch Doctor +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (149001, 1490, 2, 100, 4, 15, 149001, 'Zanzil Witch Doctor - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (149001, 47, 'Zanzil Witch Doctor - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=1490; + +-- Naga Explorer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (190702, 1907, 2, 100, 4, 15, 190702, 'Naga Explorer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (190702, 47, 'Naga Explorer - Flee'); + +-- Zanzil the Outcast +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (253402, 2534, 2, 100, 4, 15, 253403, 'Zanzil the Outcast - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (253403, 47, 'Zanzil the Outcast - Flee'); + +-- Lord Sakrasis +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (254101, 2541, 2, 100, 4, 15, 254101, 'Lord Sakrasis - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (254101, 47, 'Lord Sakrasis - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2541; + +-- "Pretty Boy" Duncan +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (254501, 2545, 2, 100, 4, 15, 254501, '\"Pretty Boy\" Duncan - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (254501, 47, '\"Pretty Boy\" Duncan - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2545; + +-- Moonrage Armorer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (352901, 3529, 2, 100, 4, 15, 352901, 'Moonrage Armorer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (352901, 47, 'Moonrage Armorer - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3529; + +-- Muckshell Scrabbler +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (440401, 4404, 2, 100, 4, 15, 440401, 'Muckshell Scrabbler - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (440401, 47, 'Muckshell Scrabbler - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4404; + +-- Noboru the Cudgel +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (547701, 5477, 2, 100, 4, 15, 547701, 'Noboru the Cudgel - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (547701, 47, 'Noboru the Cudgel - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=5477; + +-- Sentinel Keldara Sunblade +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (839701, 8397, 2, 100, 4, 15, 839701, 'Sentinel Keldara Sunblade - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (839701, 47, 'Sentinel Keldara Sunblade - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=8397; + +-- Mosshoof Runner +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (875901, 8759, 2, 100, 4, 15, 875901, 'Mosshoof Runner - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (875901, 47, 'Mosshoof Runner - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=8759; + +-- Outcast Necromancer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1155901, 11559, 2, 100, 4, 15, 1155901, 'Outcast Necromancer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1155901, 47, 'Outcast Necromancer - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=11559; + +-- Renato Gallina +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (143201, 1432, 2, 100, 4, 15, 143201, 'Renato Gallina - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (143201, 47, 'Renato Gallina - Flee'); + +-- Stormwind City Patroller +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (197602, 1976, 2, 100, 4, 15, 197602, 'Stormwind City Patroller - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (197602, 47, 'Stormwind City Patroller - Flee'); + +-- Sarah Tanner +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (786801, 7868, 2, 100, 4, 15, 786801, 'Sarah Tanner - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (786801, 47, 'Sarah Tanner - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=7868; + +-- Berserk Trogg +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (139303, 1393, 2, 100, 4, 15, 139303, 'Berserk Trogg - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (139303, 47, 'Berserk Trogg - Flee'); + +-- Jeremiah Payson +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (840301, 8403, 2, 100, 4, 15, 840301, 'Jeremiah Payson - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (840301, 47, 'Jeremiah Payson - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=8403; + +-- Blackwood Shaman +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (217101, 2171, 2, 100, 4, 15, 217101, 'Blackwood Shaman - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (217101, 47, 'Blackwood Shaman - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2171; + +-- Fleeting Plainstrider +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (324601, 3246, 2, 100, 4, 15, 324601, 'Fleeting Plainstrider - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (324601, 47, 'Fleeting Plainstrider - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3246; + +-- Bleakheart Hellcaller +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (377104, 3771, 2, 100, 4, 15, 377104, 'Bleakheart Hellcaller - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (377104, 47, 'Bleakheart Hellcaller - Flee'); + +-- Dark Strand Assassin +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (387901, 3879, 2, 100, 4, 15, 387901, 'Dark Strand Assassin - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (387901, 47, 'Dark Strand Assassin - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3879; + +-- Forsaken Scout +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (389301, 3893, 2, 100, 4, 15, 389301, 'Forsaken Scout - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (389301, 47, 'Forsaken Scout - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3893; + +-- Caedakar the Vicious +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (390003, 3900, 2, 100, 4, 15, 390003, 'Caedakar the Vicious - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (390003, 47, 'Caedakar the Vicious - Flee'); + +-- Bloodtooth Guard +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (393202, 3932, 2, 100, 4, 15, 393202, 'Bloodtooth Guard - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (393202, 47, 'Bloodtooth Guard - Flee'); + +-- Dark Iron Bombardier +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (406202, 4062, 2, 100, 4, 15, 406202, 'Dark Iron Bombardier - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (406202, 47, 'Dark Iron Bombardier - Flee'); + +-- Mugglefin +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1064301, 10643, 2, 100, 4, 15, 1064301, 'Mugglefin - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1064301, 47, 'Mugglefin - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=10643; + +-- Lost One Cook +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (110602, 1106, 2, 100, 4, 15, 110602, 'Lost One Cook - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (110602, 47, 'Lost One Cook - Flee'); + +-- Daggerspine Shorestalker +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (236801, 2368, 2, 100, 4, 15, 236801, 'Daggerspine Shorestalker - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (236801, 47, 'Daggerspine Shorestalker - Flee'); + +-- Muckshell Clacker +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (440102, 4401, 2, 100, 4, 15, 440102, 'Muckshell Clacker - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (440102, 47, 'Muckshell Clacker - Flee'); + +-- Muckshell Snapclaw +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (440201, 4402, 2, 100, 4, 15, 440201, 'Muckshell Snapclaw - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (440201, 47, 'Muckshell Snapclaw - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4402; + +-- Kolkar Scout +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (463301, 4633, 2, 100, 4, 15, 463301, 'Kolkar Scout - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (463301, 47, 'Kolkar Scout - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4633; + +-- Scargil +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1427601, 14276, 2, 100, 4, 15, 1427601, 'Scargil - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1427601, 47, 'Scargil - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=14276; + +-- Twilight Flamereaver +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1520101, 15201, 2, 100, 4, 15, 1520101, 'Twilight Flamereaver - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1520101, 47, 'Twilight Flamereaver - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=15201; + +-- Saean +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (138001, 1380, 2, 100, 4, 15, 138001, 'Saean - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (138001, 47, 'Saean - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=1380; + +-- Dark Iron Ambusher +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (198101, 1981, 2, 100, 4, 15, 198101, 'Dark Iron Ambusher - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (198101, 47, 'Dark Iron Ambusher - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=1981; + +-- Darsok Swiftdagger +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (344901, 3449, 2, 100, 4, 15, 344901, 'Darsok Swiftdagger - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (344901, 47, 'Darsok Swiftdagger - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3449; + +-- Gazrog +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (346401, 3464, 2, 100, 4, 15, 346401, 'Gazrog - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (346401, 47, 'Gazrog - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3464; + +-- Traugh +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (347801, 3478, 2, 100, 4, 15, 347801, 'Traugh - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (347801, 47, 'Traugh - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3478; + +-- Nargal Deatheye +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (347901, 3479, 2, 100, 4, 15, 347901, 'Nargal Deatheye - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (347901, 47, 'Nargal Deatheye - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3479; + +-- Jahan Hawkwing +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (348301, 3483, 2, 100, 4, 15, 348301, 'Jahan Hawkwing - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (348301, 47, 'Jahan Hawkwing - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3483; + +-- Hula'mahi +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (349001, 3490, 2, 100, 4, 15, 349001, 'Hula\'mahi - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (349001, 47, 'Hula\'mahi - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3490; + +-- Vrang Wildgore +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (368201, 3682, 2, 100, 4, 15, 368201, 'Vrang Wildgore - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (368201, 47, 'Vrang Wildgore - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3682; + +-- Khan Shaka +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (560203, 5602, 2, 100, 4, 15, 560203, 'Khan Shaka - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (560203, 47, 'Khan Shaka - Flee'); + +-- Larhka +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (587101, 5871, 2, 100, 4, 15, 587101, 'Larhka - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (587101, 47, 'Larhka - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=5871; + +-- Expeditionary Mountaineer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1439001, 14390, 2, 100, 4, 20, 1439001, 'Expeditionary Mountaineer - Flee at 20% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1439001, 47, 'Expeditionary Mountaineer - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=14390; + +-- Peon +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1490101, 14901, 2, 100, 4, 25, 1490101, 'Peon - Flee at 25% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1490101, 47, 'Peon - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=14901; + +-- Corporal Bluth +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (73401, 734, 2, 100, 4, 15, 73401, 'Corporal Bluth - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (73401, 47, 'Corporal Bluth - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=734; + +-- Brother Nimetz +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (73901, 739, 2, 100, 4, 15, 73901, 'Brother Nimetz - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (73901, 47, 'Brother Nimetz - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=739; + +-- Rebel Watchman +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (75401, 754, 2, 100, 4, 15, 75401, 'Rebel Watchman - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (75401, 47, 'Rebel Watchman - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=754; + +-- Corporal Kaleb +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (77001, 770, 2, 100, 4, 15, 77001, 'Corporal Kaleb - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (77001, 47, 'Corporal Kaleb - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=770; + +-- Corporal Sethman +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (142201, 1422, 2, 100, 4, 15, 142201, 'Corporal Sethman - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (142201, 47, 'Corporal Sethman - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=1422; + +-- Prince Galen Trollbane +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (260707, 2607, 2, 100, 4, 15, 260707, 'Prince Galen Trollbane - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (260707, 47, 'Prince Galen Trollbane - Flee'); + +-- Caretaker Nevlin +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (278001, 2780, 2, 100, 4, 15, 278001, 'Caretaker Nevlin - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (278001, 47, 'Caretaker Nevlin - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2780; + +-- Caretaker Weston +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (278101, 2781, 2, 100, 4, 15, 278101, 'Caretaker Weston - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (278101, 47, 'Caretaker Weston - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2781; + +-- Caretaker Alaric +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (278201, 2782, 2, 100, 4, 15, 278201, 'Caretaker Alaric - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (278201, 47, 'Caretaker Alaric - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2782; + +-- Kira Songshine +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (393701, 3937, 2, 100, 4, 15, 393701, 'Kira Songshine - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (393701, 47, 'Kira Songshine - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3937; + +-- Zalas Witherbark +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (260501, 2605, 2, 100, 4, 15, 260501, 'Zalas Witherbark - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (260501, 47, 'Zalas Witherbark - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2605; + +-- Pyrewood Tailor +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (353001, 3530, 2, 100, 4, 15, 353001, 'Pyrewood Tailor - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (353001, 47, 'Pyrewood Tailor - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3530; + +-- Moonrage Tailor +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (353102, 3531, 2, 100, 4, 15, 353102, 'Moonrage Tailor - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (353102, 47, 'Moonrage Tailor - Flee'); + +-- Zixil +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (353701, 3537, 2, 100, 4, 15, 353701, 'Zixil - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (353701, 47, 'Zixil - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3537; + +-- Dalaran Miner +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (357801, 3578, 2, 100, 4, 15, 357801, 'Dalaran Miner - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (357801, 47, 'Dalaran Miner - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3578; + +-- Ro'Bark +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1427801, 14278, 2, 100, 4, 15, 1427801, 'Ro\'Bark - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1427801, 47, 'Ro\'Bark - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=14278; + +-- Serena Bloodfeather +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (345201, 3452, 2, 100, 4, 15, 345201, 'Serena Bloodfeather - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (345201, 47, 'Serena Bloodfeather - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3452; + +-- Cannoneer Smythe +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (345401, 3454, 2, 100, 4, 15, 345401, 'Cannoneer Smythe - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (345401, 47, 'Cannoneer Smythe - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3454; + +-- Cannoneer Whessan +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (345501, 3455, 2, 100, 4, 15, 345501, 'Cannoneer Whessan - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (345501, 47, 'Cannoneer Whessan - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3455; + +-- Dalin Forgewright +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (568203, 5682, 2, 100, 4, 15, 568203, 'Dalin Forgewright - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (568203, 47, 'Dalin Forgewright - Flee'); + +-- Comar Villard +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (568301, 5683, 2, 100, 4, 15, 568301, 'Comar Villard - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (568301, 47, 'Comar Villard - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=5683; + +-- Prince Nazjak +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (277901, 2779, 2, 100, 4, 15, 277901, 'Prince Nazjak - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (277901, 47, 'Prince Nazjak - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2779; + +-- Screeching Harpy +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (410001, 4100, 2, 100, 4, 15, 410001, 'Screeching Harpy - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (410001, 47, 'Screeching Harpy - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4100; + +-- Screeching Roguefeather +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (410101, 4101, 2, 100, 4, 15, 410101, 'Screeching Roguefeather - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (410101, 47, 'Screeching Roguefeather - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4101; + +-- Screeching Windcaller +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (410401, 4104, 2, 100, 4, 15, 410401, 'Screeching Windcaller - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (410401, 47, 'Screeching Windcaller - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4104; + +-- Sister Riven +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (593001, 5930, 2, 100, 4, 15, 593001, 'Sister Riven - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (593001, 47, 'Sister Riven - Flee'); + +-- Gibblesnik +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1442702, 14427, 2, 100, 4, 15, 1442702, 'Gibblesnik - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1442702, 47, 'Gibblesnik - Flee'); + +-- Sandfury Cretin +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (778902, 7789, 2, 100, 4, 15, 778902, 'Sandfury Cretin - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (778902, 47, 'Sandfury Cretin - Flee'); + +-- Twilight Lord Everun +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1447901, 14479, 2, 100, 4, 15, 1447901, 'Twilight Lord Everun - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1447901, 47, 'Twilight Lord Everun - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=14479; + +-- Gath'Ilzogg +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (33401, 334, 2, 100, 4, 15, 33401, 'Gath\'Ilzogg - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (33401, 47, 'Gath\'Ilzogg - Flee'); + +-- Gradok +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (247701, 2477, 2, 100, 4, 15, 247701, 'Gradok - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (247701, 47, 'Gradok - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2477; + +-- Haren Swifthoof +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (247801, 2478, 2, 100, 4, 15, 247801, 'Haren Swifthoof - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (247801, 47, 'Haren Swifthoof - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2478; + +-- Thragomm +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (717001, 7170, 2, 100, 4, 15, 717001, 'Thragomm - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (717001, 47, 'Thragomm - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=7170; + +-- Galak Centaur +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (296701, 2967, 2, 100, 4, 15, 296701, 'Galak Centaur - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (296701, 47, 'Galak Centaur - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2967; + +-- Snagglespear +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (578602, 5786, 2, 100, 4, 15, 578602, 'Snagglespear - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (578602, 47, 'Snagglespear - Flee'); + +-- Captain Gerogg Hammertoe +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (585102, 5851, 2, 100, 4, 15, 585102, 'Captain Gerogg Hammertoe - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (585102, 47, 'Captain Gerogg Hammertoe - Flee'); + +-- Dalaran Brewmaster +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (357702, 3577, 2, 100, 4, 15, 357702, 'Dalaran Brewmaster - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (357702, 47, 'Dalaran Brewmaster - Flee'); + +-- Magram Pack Runner +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (464301, 4643, 2, 100, 4, 15, 464301, 'Magram Pack Runner - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (464301, 47, 'Magram Pack Runner - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4643; + +-- Warug's Bodyguard +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (606801, 6068, 2, 100, 4, 15, 606801, 'Warug\'s Bodyguard - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (606801, 47, 'Warug\'s Bodyguard - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=6068; + +-- Daggerspine Screamer +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (237001, 2370, 2, 100, 4, 15, 237001, 'Daggerspine Screamer - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (237001, 47, 'Daggerspine Screamer - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2370; + +-- Pelturas Whitemoon +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (389401, 3894, 2, 100, 4, 15, 389401, 'Pelturas Whitemoon - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (389401, 47, 'Pelturas Whitemoon - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3894; + +-- Tandaan Lightmane +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (395301, 3953, 2, 100, 4, 15, 395301, 'Tandaan Lightmane - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (395301, 47, 'Tandaan Lightmane - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3953; + +-- Dalria +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (395401, 3954, 2, 100, 4, 15, 395401, 'Dalria - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (395401, 47, 'Dalria - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3954; + +-- Lardan +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (395801, 3958, 2, 100, 4, 15, 395801, 'Lardan - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (395801, 47, 'Lardan - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3958; + +-- Southsea Kidnapper +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1568501, 15685, 2, 100, 4, 15, 1568501, 'Southsea Kidnapper - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1568501, 47, 'Southsea Kidnapper - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=15685; + +-- Irondeep Miner +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1339606, 13396, 2, 100, 4, 25, 1339606, 'Irondeep Miner - Flee at 25% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1339606, 47, 'Irondeep Miner - Flee'); + +-- Geopriest Gukk'rok +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (586304, 5863, 2, 100, 4, 15, 586304, 'Geopriest Gukk\'rok - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (586304, 47, 'Geopriest Gukk\'rok - Flee'); + +-- High Sorcerer Andromath +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (569401, 5694, 2, 100, 4, 15, 569401, 'High Sorcerer Andromath - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (569401, 47, 'High Sorcerer Andromath - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=5694; + +-- Achellios the Banished +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (593302, 5933, 2, 100, 4, 15, 593302, 'Achellios the Banished - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (593302, 47, 'Achellios the Banished - Flee'); + +-- Dargon +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1201901, 12019, 2, 100, 4, 15, 1201901, 'Dargon - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1201901, 47, 'Dargon - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=12019; + +-- Daeolyn Summerleaf +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1202101, 12021, 2, 100, 4, 15, 1202101, 'Daeolyn Summerleaf - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1202101, 47, 'Daeolyn Summerleaf - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=12021; + +-- Meliri +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1202401, 12024, 2, 100, 4, 15, 1202401, 'Meliri - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1202401, 47, 'Meliri - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=12024; + +-- My'lanna +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1202601, 12026, 2, 100, 4, 15, 1202601, 'My\'lanna - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1202601, 47, 'My\'lanna - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=12026; + +-- Narianna +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1202901, 12029, 2, 100, 4, 15, 1202901, 'Narianna - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1202901, 47, 'Narianna - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=12029; + +-- Loganaar +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1204201, 12042, 2, 100, 4, 15, 1204201, 'Loganaar - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1204201, 47, 'Loganaar - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=12042; + +-- Gorn +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (106801, 1068, 2, 100, 4, 15, 106801, 'Gorn - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (106801, 47, 'Gorn - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=1068; + +-- Abe Winters +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (213501, 2135, 2, 100, 4, 15, 213501, 'Abe Winters - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (213501, 47, 'Abe Winters - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2135; + +-- Eliza Callen +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (213701, 2137, 2, 100, 4, 15, 213701, 'Eliza Callen - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (213701, 47, 'Eliza Callen - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2137; + +-- Grawl +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (290801, 2908, 2, 100, 4, 15, 290801, 'Grawl - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (290801, 47, 'Grawl - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2908; + +-- Trak'gen +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (331301, 3313, 2, 100, 4, 15, 331301, 'Trak\'gen - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (331301, 47, 'Trak\'gen - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3313; + +-- Regthar Deathgate +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (338902, 3389, 2, 100, 4, 15, 338902, 'Regthar Deathgate - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (338902, 47, 'Regthar Deathgate - Flee'); + +-- Bowen Brisboise +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (352301, 3523, 2, 100, 4, 15, 352301, 'Bowen Brisboise - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (352301, 47, 'Bowen Brisboise - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3523; + +-- Hamlin Atkins +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (354701, 3547, 2, 100, 4, 15, 354701, 'Hamlin Atkins - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (354701, 47, 'Hamlin Atkins - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3547; + +-- Selina Weston +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (354801, 3548, 2, 100, 4, 15, 354801, 'Selina Weston - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (354801, 47, 'Selina Weston - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3548; + +-- Athrikus Narassin +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (366001, 3660, 2, 100, 4, 15, 366001, 'Athrikus Narassin - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (366001, 47, 'Athrikus Narassin - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3660; + +-- Nazeer Bloodpike +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (479101, 4791, 2, 100, 4, 15, 479101, 'Nazeer Bloodpike - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (479101, 47, 'Nazeer Bloodpike - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4791; + +-- Krog +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (492601, 4926, 2, 100, 4, 15, 492601, 'Krog - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (492601, 47, 'Krog - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=4926; + +-- Sentry Point Captain +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (508601, 5086, 2, 100, 4, 15, 508601, 'Sentry Point Captain - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (508601, 47, 'Sentry Point Captain - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=5086; + +-- Vance Undergloom +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (569501, 5695, 2, 100, 4, 15, 569501, 'Vance Undergloom - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (569501, 47, 'Vance Undergloom - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=5695; + +-- Burkrum +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (602801, 6028, 2, 100, 4, 15, 602801, 'Burkrum - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (602801, 47, 'Burkrum - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=6028; + +-- Ghok'kah +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (656701, 6567, 2, 100, 4, 15, 656701, 'Ghok\'kah - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (656701, 47, 'Ghok\'kah - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=6567; + +-- Kixxle +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (830501, 8305, 2, 100, 4, 15, 830501, 'Kixxle - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (830501, 47, 'Kixxle - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=8305; + +-- Zanara +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (955201, 9552, 2, 100, 4, 15, 955201, 'Zanara - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (955201, 47, 'Zanara - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=9552; + +-- Morganus +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1005501, 10055, 2, 100, 4, 15, 1005501, 'Morganus - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1005501, 47, 'Morganus - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=10055; + +-- Storm Shadowhoof +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1030301, 10303, 2, 100, 4, 15, 1030301, 'Storm Shadowhoof - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1030301, 47, 'Storm Shadowhoof - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=10303; + +-- Innkeeper Abeqwa +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1111601, 11116, 2, 100, 4, 15, 1111601, 'Innkeeper Abeqwa - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1111601, 47, 'Innkeeper Abeqwa - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=11116; + +-- Awenasa +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1111701, 11117, 2, 100, 4, 15, 1111701, 'Awenasa - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1111701, 47, 'Awenasa - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=11117; + +-- Horde Grunt +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1168202, 11682, 2, 100, 4, 15, 1168202, 'Horde Grunt - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1168202, 47, 'Horde Grunt - Flee'); + +-- Fahrak +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1182901, 11829, 2, 100, 4, 15, 1182901, 'Fahrak - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1182901, 47, 'Fahrak - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=11829; + +-- Marukai +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1271901, 12719, 2, 100, 4, 15, 1271901, 'Marukai - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1271901, 47, 'Marukai - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=12719; + +-- Mitsuwa +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1272101, 12721, 2, 100, 4, 15, 1272101, 'Mitsuwa - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1272101, 47, 'Mitsuwa - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=12721; + +-- Vyral the Vile +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1520201, 15202, 2, 100, 4, 15, 1520201, 'Vyral the Vile - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1520201, 47, 'Vyral the Vile - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=15202; + +-- Watcher Backus +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (84001, 840, 2, 100, 4, 15, 84001, 'Watcher Backus - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (84001, 47, 'Watcher Backus - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=840; + +-- Young Reef Crawler +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (223401, 2234, 2, 100, 4, 20, 223401, 'Young Reef Crawler - Flee at 20% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (223401, 47, 'Young Reef Crawler - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2234; + +-- Threggil +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1443201, 14432, 2, 100, 4, 15, 1443201, 'Threggil - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1443201, 47, 'Threggil - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=14432; + +-- Watcher Dodds +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (88801, 888, 2, 100, 4, 15, 88801, 'Watcher Dodds - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (88801, 47, 'Watcher Dodds - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=888; + +-- Angus Stern +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (114101, 1141, 2, 100, 4, 15, 114101, 'Angus Stern - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (114101, 47, 'Angus Stern - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=1141; + +-- Blackwater Deckhand +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (263601, 2636, 2, 100, 4, 15, 263601, 'Blackwater Deckhand - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (263601, 47, 'Blackwater Deckhand - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=2636; + +-- Matt Johnson +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (313701, 3137, 2, 100, 4, 15, 313701, 'Matt Johnson - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (313701, 47, 'Matt Johnson - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3137; + +-- Connor Rivers +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (508101, 5081, 2, 100, 4, 15, 508101, 'Connor Rivers - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (508101, 47, 'Connor Rivers - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=5081; + +-- Coldmine Miner +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1331706, 13317, 2, 100, 4, 30, 1331706, 'Coldmine Miner - Flee at 30% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1331706, 47, 'Coldmine Miner - Flee'); + +-- Lady Zephris +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1427701, 14277, 2, 100, 4, 15, 1427701, 'Lady Zephris - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1427701, 47, 'Lady Zephris - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=14277; + +-- Verifonix +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1449201, 14492, 2, 100, 4, 15, 1449201, 'Verifonix - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1449201, 47, 'Verifonix - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=14492; + +-- Captain Beld +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (612401, 6124, 2, 100, 4, 15, 612401, 'Captain Beld - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (612401, 47, 'Captain Beld - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=6124; + +-- Lord Shalzaru +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (813602, 8136, 2, 100, 4, 15, 813602, 'Lord Shalzaru - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (813602, 47, 'Lord Shalzaru - Flee'); + +-- Mosshoof Stag +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (876001, 8760, 2, 100, 4, 15, 876001, 'Mosshoof Stag - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (876001, 47, 'Mosshoof Stag - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=8760; + +-- Tazan +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (649401, 6494, 2, 100, 4, 15, 649401, 'Tazan - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (649401, 47, 'Tazan - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=6494; + +-- Diamond Head +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (534501, 5345, 2, 100, 4, 15, 534501, 'Diamond Head - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (534501, 47, 'Diamond Head - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=5345; + +-- Foreman Rigger +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (593103, 5931, 2, 100, 4, 15, 593103, 'Foreman Rigger - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (593103, 47, 'Foreman Rigger - Flee'); + +-- Peter Galen +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (786601, 7866, 2, 100, 4, 15, 786601, 'Peter Galen - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (786601, 47, 'Peter Galen - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=7866; + +-- Coral Moongale +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (1170801, 11708, 2, 100, 4, 15, 1170801, 'Coral Moongale - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (1170801, 47, 'Coral Moongale - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=11708; + +-- Kreenig Snarlsnout +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `event_type`, `event_chance`, `event_flags`, `event_param1`, `action1_script`, `comment`) VALUES (343801, 3438, 2, 100, 4, 15, 343801, 'Kreenig Snarlsnout - Flee at 15% HP'); +INSERT INTO `creature_ai_scripts` (`id`, `command`, `comments`) VALUES (343801, 47, 'Kreenig Snarlsnout - Flee'); +UPDATE `creature_template` SET `ai_name`='EventAI' WHERE `entry`=3438; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/ubrs_trash.cpp b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/ubrs_trash.cpp index ab38b9a7d44..356e3cb7eee 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/ubrs_trash.cpp +++ b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_spire/ubrs_trash.cpp @@ -3,114 +3,12 @@ enum { - // Invocateur Main-noire - SPELL_BOULE_FEU = 12466, // Boule de feu - SPELL_NOVA_GIVRE = 15532, // Nova de givre - SPELL_SUMMON_DREADWEAVER = 15794, - SPELL_SUMMON_VETERAN = 15792, - - // Veteran Main-noire + // Blackhand Veteran SPELL_CHARGE_BOUCLIER = 15749, SPELL_COUP_BOUCLIER = 11972, SPELL_FRAPPE = 14516, - - SAY_SUMMONING_DREADWEAVER = -1900166, - SAY_SUMMONING_VETERAN = -1900167 }; -// npc_blackhand_summoner -struct npc_blackhand_summonerAI : public ScriptedAI -{ - npc_blackhand_summonerAI(Creature* pCreature) : ScriptedAI(pCreature) - { - m_pInstance = (instance_blackrock_spire*) pCreature->GetInstanceData(); - Reset(); - } - - instance_blackrock_spire* m_pInstance; - uint32 m_uiBouleFeuTimer; - uint32 m_uiNovaGivreTimer; - uint32 m_uiSummonTimer; - - void Reset() override - { - m_uiBouleFeuTimer = 7000; - m_uiNovaGivreTimer = 10000; - m_uiSummonTimer = 0; - } - bool ManageTimer(uint32 const diff, uint32* timer) - { - if ((*timer) < diff) - return true; - else - { - (*timer) -= diff; - return false; - } - } - - void JustDied(Unit* pKiller) override - { - if (m_pInstance) - m_pInstance->SetData64(TYPE_ROOM_EVENT, m_creature->GetGUID()); - } - - void UpdateAI(uint32 const uiDiff) override - { - if (!m_creature->SelectHostileTarget() || !m_creature->GetVictim() || m_creature->IsNonMeleeSpellCasted(false)) - return; - - if (ManageTimer(uiDiff, &m_uiSummonTimer)) - { - if (Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM, 0)) - { - if (urand(0, 1) == 0) - { - if (DoCastSpellIfCan(pTarget, SPELL_SUMMON_DREADWEAVER) == CAST_OK) - { - DoScriptText(SAY_SUMMONING_DREADWEAVER, m_creature); - m_uiSummonTimer = 15000; - } - } - else - { - if (DoCastSpellIfCan(pTarget, SPELL_SUMMON_VETERAN) == CAST_OK) - { - DoScriptText(SAY_SUMMONING_VETERAN, m_creature); - m_uiSummonTimer = 15000; - } - } - } - } - - if (ManageTimer(uiDiff, &m_uiBouleFeuTimer)) - { - if (Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM, 0)) - { - if (DoCastSpellIfCan(pTarget, SPELL_BOULE_FEU) == CAST_OK) - m_uiBouleFeuTimer = 6000; - } - } - if (ManageTimer(uiDiff, &m_uiNovaGivreTimer)) - { - if (Unit* pTarget = m_creature->GetVictim())//m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM, 0)) - { - if (pTarget->GetDistance(m_creature) < 10.0f) - { - if (DoCastSpellIfCan(pTarget, SPELL_NOVA_GIVRE) == CAST_OK) - m_uiNovaGivreTimer = 6000; - } - } - } - DoMeleeAttackIfReady(); - } -}; - -CreatureAI* GetAI_npc_blackhand_summoner(Creature* pCreature) -{ - return new npc_blackhand_summonerAI(pCreature); -} - // npc_blackhand_veteran struct npc_blackhand_veteranAI : public ScriptedAI { @@ -205,11 +103,6 @@ CreatureAI* GetAI_npc_blackhand_veteran(Creature* pCreature) void AddSC_ubrs_trash() { Script* pNewScript; - pNewScript = new Script; - pNewScript->Name = "npc_blackhand_summoner"; - pNewScript->GetAI = &GetAI_npc_blackhand_summoner; - pNewScript->RegisterSelf(); - pNewScript = new Script; pNewScript->Name = "npc_blackhand_veteran"; pNewScript->GetAI = &GetAI_npc_blackhand_veteran; diff --git a/src/scripts/eastern_kingdoms/eastern_plaguelands/stratholme/boss_timmy_the_cruel.cpp b/src/scripts/eastern_kingdoms/eastern_plaguelands/stratholme/boss_timmy_the_cruel.cpp index f370b3c53c6..dd497574339 100644 --- a/src/scripts/eastern_kingdoms/eastern_plaguelands/stratholme/boss_timmy_the_cruel.cpp +++ b/src/scripts/eastern_kingdoms/eastern_plaguelands/stratholme/boss_timmy_the_cruel.cpp @@ -84,6 +84,7 @@ struct npc_crimson_guardsmanAI : public ScriptedAI m_bIsTimmySpawner = pCreature->GetDBTableGUIDLow() == 54070; } + bool m_bHasFled; bool m_bIsTimmySpawner; uint32 m_uiDisarmTimer; uint32 m_uiShieldBashTimer; @@ -91,6 +92,7 @@ struct npc_crimson_guardsmanAI : public ScriptedAI void Reset() override { + m_bHasFled = false; m_uiDisarmTimer = 6000; m_uiShieldBashTimer = 4000; m_uiShieldChargeTimer = 1000; @@ -122,6 +124,13 @@ struct npc_crimson_guardsmanAI : public ScriptedAI if (!m_creature->SelectHostileTarget() || !m_creature->GetVictim()) return; + if (!m_bHasFled && m_creature->GetHealthPercent() < 15.0f) + { + m_bHasFled = true; + m_creature->DoFlee(); + return; + } + if (m_uiDisarmTimer < diff) { if (DoCastSpellIfCan(m_creature->GetVictim(), 6713) == CAST_OK) diff --git a/src/scripts/eastern_kingdoms/loch_modan/loch_modan.cpp b/src/scripts/eastern_kingdoms/loch_modan/loch_modan.cpp index 540e35867de..9b766667c47 100644 --- a/src/scripts/eastern_kingdoms/loch_modan/loch_modan.cpp +++ b/src/scripts/eastern_kingdoms/loch_modan/loch_modan.cpp @@ -141,50 +141,6 @@ static const Position darkIronAmbusherSpawns[] = { -5757.629883f, -3437.680908f, 304.265106f, 2.610265f } }; -struct npc_saeanAI : public ScriptedAI -{ - Creature* m_darkIronAmbusher[2]; - // num summoned dark iron ambushers used to guarantee that there will be no duplicate spawns. - uint32 m_numSummonedAmbushers; - // this one is modified inside area-trigger script. - bool m_eventStarted; - - npc_saeanAI(Creature* pCreature) : ScriptedAI(pCreature) - { - // zero init required to prevent crash - for (auto& i : m_darkIronAmbusher) - i = nullptr; - m_numSummonedAmbushers = 0; - - m_eventStarted = false; - } - - void Reset() override { } - - // called when Saean summons his guards - void JustSummoned(Creature* pSummoned) override - { - // optimization: safely assume, that m_numSummonedAmbushers don't go outside range - m_darkIronAmbusher[m_numSummonedAmbushers] = pSummoned; - ++m_numSummonedAmbushers; - } - - void JustDied(Unit* pVictim) override - { - // It is safe to forget about ambushers, they will despawn automatically. - for (auto& i : m_darkIronAmbusher) - i = nullptr; - m_numSummonedAmbushers = 0; - - m_eventStarted = false; - } -}; - -CreatureAI* GetAI_npc_saean(Creature* pCreature) -{ - return new npc_saeanAI(pCreature); -} - //----------------------------------------------------------------------------- // Miran and Huldar are ambushed when Area Trigger id:171 is triggered and if quest 273 is active bool AreaTrigger_at_huldar_miran(Player* pPlayer, AreaTriggerEntry const* /*pAt*/) @@ -242,34 +198,23 @@ bool AreaTrigger_at_huldar_miran(Player* pPlayer, AreaTriggerEntry const* /*pAt* { if (saean->IsAlive()) { - npc_saeanAI* saeanAI = dynamic_cast(saean->AI()); - if (saeanAI) - { - // very rare case: Miran and Huldar are not in combat. Wrong faction in DB, etc. - if (!saeanAI->m_eventStarted) - { - // set event started - saeanAI->m_eventStarted = true; - - // set temporary faction to hostile - saean->SetFactionTemporary(FACTION_HOSTILE, TEMPFACTION_RESTORE_RESPAWN); + // set temporary faction to hostile + saean->SetFactionTemporary(FACTION_HOSTILE, TEMPFACTION_RESTORE_RESPAWN); - // rare case: prevent any possible duplicate spawns - // 1 player pulled ambushers too far away, while the second one triggers this event - if (!saeanAI->m_numSummonedAmbushers) - { - // summon ambushers - saean->SummonCreature(NPC_DARK_IRON_AMBUSHER, darkIronAmbusherSpawns[0].x, darkIronAmbusherSpawns[0].y, darkIronAmbusherSpawns[0].z, darkIronAmbusherSpawns[0].o, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 25000); - saean->SummonCreature(NPC_DARK_IRON_AMBUSHER, darkIronAmbusherSpawns[1].x, darkIronAmbusherSpawns[1].y, darkIronAmbusherSpawns[1].z, darkIronAmbusherSpawns[1].o, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 25000); - // Saean focuses Miran. - saeanAI->AttackStart(miran); - } - else - { - // ambushers were summoned, so event is already started - return false; - } - } + // rare case: prevent any possible duplicate spawns + // 1 player pulled ambushers too far away, while the second one triggers this event + if (!saean->FindNearestCreature(NPC_DARK_IRON_AMBUSHER, 100.0f)) + { + // summon ambushers + saean->SummonCreature(NPC_DARK_IRON_AMBUSHER, darkIronAmbusherSpawns[0].x, darkIronAmbusherSpawns[0].y, darkIronAmbusherSpawns[0].z, darkIronAmbusherSpawns[0].o, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 25000); + saean->SummonCreature(NPC_DARK_IRON_AMBUSHER, darkIronAmbusherSpawns[1].x, darkIronAmbusherSpawns[1].y, darkIronAmbusherSpawns[1].z, darkIronAmbusherSpawns[1].o, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 25000); + // Saean focuses Miran. + saean->AI()->AttackStart(miran); + } + else + { + // ambushers were summoned, so event is already started + return false; } } } @@ -287,11 +232,6 @@ void AddSC_loch_modan() newscript->pQuestAcceptNPC = &QuestAccept_npc_miran; newscript->RegisterSelf(); - newscript = new Script; - newscript->Name = "npc_saean"; - newscript->GetAI = &GetAI_npc_saean; - newscript->RegisterSelf(); - newscript = new Script; newscript->Name = "at_huldar_miran"; newscript->pAreaTrigger = &AreaTrigger_at_huldar_miran; diff --git a/src/scripts/eastern_kingdoms/tirisfal_glades/scarlet_monastery/boss_herod.cpp b/src/scripts/eastern_kingdoms/tirisfal_glades/scarlet_monastery/boss_herod.cpp index 8f42689ea23..bee1082105b 100644 --- a/src/scripts/eastern_kingdoms/tirisfal_glades/scarlet_monastery/boss_herod.cpp +++ b/src/scripts/eastern_kingdoms/tirisfal_glades/scarlet_monastery/boss_herod.cpp @@ -260,40 +260,51 @@ struct mob_scarlet_traineeAI : ScriptedAI { explicit mob_scarlet_traineeAI(Creature* pCreature) : ScriptedAI(pCreature) { - Start_Timer = urand(1000, 6000); - group1 = false; - group2 = false; + m_uiStartTimer = urand(1000, 6000); + m_bGroup1 = false; + m_bGroup2 = false; mob_scarlet_traineeAI::Reset(); } - uint32 Start_Timer; - bool group1; - bool group2; + bool m_bHasFled; + uint32 m_uiStartTimer; + bool m_bGroup1; + bool m_bGroup2; - void Reset() override { } + void Reset() override + { + m_bHasFled = false; + } void UpdateAI(uint32 const diff) override { - if (Start_Timer) + if (m_uiStartTimer) { - if (Start_Timer <= diff) + if (m_uiStartTimer <= diff) { m_creature->SetSpeedRate(MOVE_WALK, 2.20f); - if (group1) + if (m_bGroup1) m_creature->GetMotionMaster()->MovePoint(1, 1946.433594f, -435.955109f, 16.367277f); - else if (group2) + else if (m_bGroup2) m_creature->GetMotionMaster()->MovePoint(101, 1940.257080f, -434.454315f, 17.094456f); - Start_Timer = 0; + m_uiStartTimer = 0; } else - Start_Timer -= diff; + m_uiStartTimer -= diff; } if (!m_creature->SelectHostileTarget() || !m_creature->GetVictim()) return; + if (!m_bHasFled && m_creature->GetHealthPercent() < 15.0f) + { + m_bHasFled = true; + m_creature->DoFlee(); + return; + } + DoMeleeAttackIfReady(); } @@ -304,10 +315,10 @@ struct mob_scarlet_traineeAI : ScriptedAI switch (id) { case 0: - group1 = true; + m_bGroup1 = true; break; case 100: - group2 = true; + m_bGroup2 = true; break; case 1: m_creature->GetMotionMaster()->MovePoint(2, 1952.834717f, -447.514130f, 13.804327f); diff --git a/src/scripts/kalimdor/darkshore/darkshore.cpp b/src/scripts/kalimdor/darkshore/darkshore.cpp index b60731324ac..bd00b05c122 100644 --- a/src/scripts/kalimdor/darkshore/darkshore.cpp +++ b/src/scripts/kalimdor/darkshore/darkshore.cpp @@ -1008,6 +1008,7 @@ struct npc_murkdeepAI : public ScriptedAI ObjectGuid m_playerGuid; ObjectGuid m_bonfireGuid; + bool m_bHasFled; bool m_bEventState; uint8 m_uiEventPhase; uint32 m_uiEventTimer; @@ -1018,6 +1019,7 @@ struct npc_murkdeepAI : public ScriptedAI { m_uiEventPhase = 0; m_bEventState = false; + m_bHasFled = false; m_uiSunderArmorTimer = urand(0, 5); m_uiNetTimer = urand(0, 20); @@ -1153,34 +1155,34 @@ struct npc_murkdeepAI : public ScriptedAI { switch (m_uiEventPhase) { - case 1: - DoSummon(); - m_uiEventTimer = 30000; - ++m_uiEventPhase; - break; - case 2: - DoSummon(); - m_uiEventTimer = 30000; - ++m_uiEventPhase; - break; - case 3: - DoSummon(); - m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); - m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PLAYER); - m_creature->SetVisibility(VISIBILITY_ON); - - Player* player = GetPlayer(); - if (player) - { - AttackStart(player); - } - else - { - m_creature->ForcedDespawn(); - m_creature->RemoveCorpse(); - } - m_uiEventPhase = 0; - break; + case 1: + DoSummon(); + m_uiEventTimer = 30000; + ++m_uiEventPhase; + break; + case 2: + DoSummon(); + m_uiEventTimer = 30000; + ++m_uiEventPhase; + break; + case 3: + DoSummon(); + m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); + m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PLAYER); + m_creature->SetVisibility(VISIBILITY_ON); + + Player* player = GetPlayer(); + if (player) + { + AttackStart(player); + } + else + { + m_creature->ForcedDespawn(); + m_creature->RemoveCorpse(); + } + m_uiEventPhase = 0; + break; } } else @@ -1190,6 +1192,13 @@ struct npc_murkdeepAI : public ScriptedAI return; } + if (!m_bHasFled && m_creature->GetHealthPercent() < 15.0f) + { + m_bHasFled = true; + m_creature->DoFlee(); + return; + } + DoAttack(uiDiff); } }; diff --git a/src/scripts/kalimdor/the_barrens/razorfen_kraul/razorfen_kraul.cpp b/src/scripts/kalimdor/the_barrens/razorfen_kraul/razorfen_kraul.cpp index 585d522bc06..165cddeb978 100644 --- a/src/scripts/kalimdor/the_barrens/razorfen_kraul/razorfen_kraul.cpp +++ b/src/scripts/kalimdor/the_barrens/razorfen_kraul/razorfen_kraul.cpp @@ -348,76 +348,10 @@ bool EffectDummyCreature_npc_snufflenose_gopher(WorldObject* pCaster, uint32 uiS return false; } -enum -{ - SPELL_DEFENSIVE_STANCE = 7164, - SPELL_IMPROVED_BLOCKING = 3248, - SPELL_SHIELD_BASH = 11972, - -}; - -struct RazorfenDefenderAI : public ScriptedAI -{ - RazorfenDefenderAI(Creature* pCreature) : ScriptedAI(pCreature) - { - Reset(); - } - - uint32 m_uiImprovedBlocking_Timer; - uint32 m_uiShieldBash_Timer; - - void Reset() override - { - m_uiImprovedBlocking_Timer = 1000; - m_uiShieldBash_Timer = 6600; - DoCastSpellIfCan(m_creature, SPELL_DEFENSIVE_STANCE, true); - } - - void Aggro(Unit* pWho) override - { - m_creature->SetInCombatWithZone(); - } - - void UpdateAI(uint32 const uiDiff) override - { - if (!m_creature->SelectHostileTarget() || !m_creature->GetVictim()) - return; - - if (m_uiShieldBash_Timer < uiDiff) - { - if (DoCastSpellIfCan(m_creature->GetVictim(), SPELL_SHIELD_BASH) == CAST_OK) - m_uiShieldBash_Timer = 8100; - } - else - m_uiShieldBash_Timer -= uiDiff; - - if (m_uiImprovedBlocking_Timer < uiDiff) - { - if (DoCastSpellIfCan(m_creature, SPELL_IMPROVED_BLOCKING, true) == CAST_OK) - m_uiImprovedBlocking_Timer = urand(6000, 9000); - } - else - m_uiImprovedBlocking_Timer -= uiDiff; - - DoMeleeAttackIfReady(); - } -}; - -CreatureAI* GetAI_RazorfenDefenderAI(Creature* pCreature) -{ - return new RazorfenDefenderAI(pCreature); -} - void AddSC_razorfen_kraul() { Script* pNewScript; - pNewScript = new Script; - pNewScript->Name = "razorfen_defender"; - pNewScript->GetAI = &GetAI_RazorfenDefenderAI; - pNewScript->RegisterSelf(); - - pNewScript = new Script; pNewScript->Name = "npc_willix_the_importer"; pNewScript->GetAI = &GetAI_npc_willix_the_importer; diff --git a/src/scripts/kalimdor/thousand_needles/thousand_needles.cpp b/src/scripts/kalimdor/thousand_needles/thousand_needles.cpp index ab8bc896ca9..0ba7a327c90 100644 --- a/src/scripts/kalimdor/thousand_needles/thousand_needles.cpp +++ b/src/scripts/kalimdor/thousand_needles/thousand_needles.cpp @@ -397,13 +397,14 @@ struct npc_grenka_bloodscreechAI : ScriptedAI npc_grenka_bloodscreechAI::Reset(); } + bool m_bHasFled; uint8 m_uiWave; uint32 m_uiTimer; ObjectGuid m_PlayerGuid; void Reset() override { - + m_bHasFled = false; } void DoSummon(uint8 index) const @@ -435,18 +436,18 @@ struct npc_grenka_bloodscreechAI : ScriptedAI { switch (m_uiWave) { - case 0: - DoSummon(0); - m_uiTimer = 15000; - ++m_uiWave; - break; - case 1: - DoSummon(1); - DoSummon(2); - m_uiTimer = 15000; - ++m_uiWave; - break; - case 2: + case 0: + DoSummon(0); + m_uiTimer = 15000; + ++m_uiWave; + break; + case 1: + DoSummon(1); + DoSummon(2); + m_uiTimer = 15000; + ++m_uiWave; + break; + case 2: { DoSummon(3); m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SPAWNING | UNIT_FLAG_PACIFIED | UNIT_FLAG_IMMUNE_TO_NPC); @@ -457,14 +458,21 @@ struct npc_grenka_bloodscreechAI : ScriptedAI m_creature->AI()->AttackStart(pPlayer); } ++m_uiWave; + break; } - break; } } else m_uiTimer -= uiDiff; ScriptedAI::UpdateAI(uiDiff); + + if (!m_bHasFled && m_creature->GetVictim() && m_creature->GetHealthPercent() < 15.0f) + { + m_bHasFled = true; + m_creature->DoFlee(); + return; + } } }; From 9daa4e4f01ab38a08f3c2840a30a897c018648ca Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Fri, 22 Dec 2023 17:37:17 +0200 Subject: [PATCH 402/426] Implement original version of quest Escaping the Hive. Closes https://github.com/vmangos/core/issues/1802 --- sql/migrations/20231222153346_world.sql | 83 +++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 sql/migrations/20231222153346_world.sql diff --git a/sql/migrations/20231222153346_world.sql b/sql/migrations/20231222153346_world.sql new file mode 100644 index 00000000000..7f6d422baa8 --- /dev/null +++ b/sql/migrations/20231222153346_world.sql @@ -0,0 +1,83 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231222153346'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231222153346'); +-- Add your query below. + + +-- Add Pre-1.7 version of the quest template. +DELETE FROM `quest_template` WHERE `entry`=4265; +INSERT INTO `quest_template` (`entry`, `patch`, `Method`, `ZoneOrSort`, `MinLevel`, `MaxLevel`, `QuestLevel`, `Type`, `RequiredClasses`, `RequiredRaces`, `RequiredSkill`, `RequiredSkillValue`, `RequiredCondition`, `RepObjectiveFaction`, `RepObjectiveValue`, `RequiredMinRepFaction`, `RequiredMinRepValue`, `RequiredMaxRepFaction`, `RequiredMaxRepValue`, `SuggestedPlayers`, `LimitTime`, `QuestFlags`, `SpecialFlags`, `PrevQuestId`, `NextQuestId`, `ExclusiveGroup`, `BreadcrumbForQuestId`, `NextQuestInChain`, `SrcItemId`, `SrcItemCount`, `SrcSpell`, `Title`, `Details`, `Objectives`, `OfferRewardText`, `RequestItemsText`, `EndText`, `ObjectiveText1`, `ObjectiveText2`, `ObjectiveText3`, `ObjectiveText4`, `ReqItemId1`, `ReqItemId2`, `ReqItemId3`, `ReqItemId4`, `ReqItemCount1`, `ReqItemCount2`, `ReqItemCount3`, `ReqItemCount4`, `ReqSourceId1`, `ReqSourceId2`, `ReqSourceId3`, `ReqSourceId4`, `ReqSourceCount1`, `ReqSourceCount2`, `ReqSourceCount3`, `ReqSourceCount4`, `ReqCreatureOrGOId1`, `ReqCreatureOrGOId2`, `ReqCreatureOrGOId3`, `ReqCreatureOrGOId4`, `ReqCreatureOrGOCount1`, `ReqCreatureOrGOCount2`, `ReqCreatureOrGOCount3`, `ReqCreatureOrGOCount4`, `ReqSpellCast1`, `ReqSpellCast2`, `ReqSpellCast3`, `ReqSpellCast4`, `RewChoiceItemId1`, `RewChoiceItemId2`, `RewChoiceItemId3`, `RewChoiceItemId4`, `RewChoiceItemId5`, `RewChoiceItemId6`, `RewChoiceItemCount1`, `RewChoiceItemCount2`, `RewChoiceItemCount3`, `RewChoiceItemCount4`, `RewChoiceItemCount5`, `RewChoiceItemCount6`, `RewItemId1`, `RewItemId2`, `RewItemId3`, `RewItemId4`, `RewItemCount1`, `RewItemCount2`, `RewItemCount3`, `RewItemCount4`, `RewRepFaction1`, `RewRepFaction2`, `RewRepFaction3`, `RewRepFaction4`, `RewRepFaction5`, `RewRepValue1`, `RewRepValue2`, `RewRepValue3`, `RewRepValue4`, `RewRepValue5`, `RewXP`, `RewOrReqMoney`, `RewMoneyMaxLevel`, `RewSpell`, `RewSpellCast`, `RewMailTemplateId`, `RewMailDelaySecs`, `RewMailMoney`, `PointMapId`, `PointX`, `PointY`, `PointOpt`, `DetailsEmote1`, `DetailsEmote2`, `DetailsEmote3`, `DetailsEmote4`, `DetailsEmoteDelay1`, `DetailsEmoteDelay2`, `DetailsEmoteDelay3`, `DetailsEmoteDelay4`, `IncompleteEmote`, `CompleteEmote`, `OfferRewardEmote1`, `OfferRewardEmote2`, `OfferRewardEmote3`, `OfferRewardEmote4`, `OfferRewardEmoteDelay1`, `OfferRewardEmoteDelay2`, `OfferRewardEmoteDelay3`, `OfferRewardEmoteDelay4`, `StartScript`, `CompleteScript`) VALUES (4265, 0, 2, 357, 40, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 4135, 0, 0, 0, 4266, 0, 0, 0, 'Escaping the Hive', 'The pod splits opens some when you touch it, revealing a night elven male who is surprisingly still alive. He seems to be in good health, though deeply stunned. As you help him down from the pod, he stirs to life.$B$B"Thank Elune - you\'ve saved me, friend! I... I\'m Raschal, and I awoke paralyzed inside this pod after these bugs overwhelmed me. I could use a hand getting out of here; after that, would you let the Stronghold know that I am all right? I\'ll be fine - we just need to leave, and fast!"', 'Escort Raschal safely out of the Zukk\'ash hive.$B$BReturn to Ginro Hearthkindle in Feathermoon Stronghold and let him know that Raschal is alive and well.', 'Welcome home, $N. Raschal checked in just a little while ago and told me what happened.$B$BI... no, the entire Stronghold can\'t even begin to thank you for your great deed; Raschal would have been dead without your timely aid, and your assistance came to us without even so much as the whisper of a mercenary\'s fee. You bear the mark of a true hero. Know that you will always have a friend in Ginro Hearthkindle.', 'You have something to report, $n?', 'Free Raschal.', '', '', '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 100, 0, 0, 0, 0, 4050, 0, 2460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 42650, 0); +INSERT INTO `quest_template` (`entry`, `patch`, `Method`, `ZoneOrSort`, `MinLevel`, `MaxLevel`, `QuestLevel`, `Type`, `RequiredClasses`, `RequiredRaces`, `RequiredSkill`, `RequiredSkillValue`, `RequiredCondition`, `RepObjectiveFaction`, `RepObjectiveValue`, `RequiredMinRepFaction`, `RequiredMinRepValue`, `RequiredMaxRepFaction`, `RequiredMaxRepValue`, `SuggestedPlayers`, `LimitTime`, `QuestFlags`, `SpecialFlags`, `PrevQuestId`, `NextQuestId`, `ExclusiveGroup`, `BreadcrumbForQuestId`, `NextQuestInChain`, `SrcItemId`, `SrcItemCount`, `SrcSpell`, `Title`, `Details`, `Objectives`, `OfferRewardText`, `RequestItemsText`, `EndText`, `ObjectiveText1`, `ObjectiveText2`, `ObjectiveText3`, `ObjectiveText4`, `ReqItemId1`, `ReqItemId2`, `ReqItemId3`, `ReqItemId4`, `ReqItemCount1`, `ReqItemCount2`, `ReqItemCount3`, `ReqItemCount4`, `ReqSourceId1`, `ReqSourceId2`, `ReqSourceId3`, `ReqSourceId4`, `ReqSourceCount1`, `ReqSourceCount2`, `ReqSourceCount3`, `ReqSourceCount4`, `ReqCreatureOrGOId1`, `ReqCreatureOrGOId2`, `ReqCreatureOrGOId3`, `ReqCreatureOrGOId4`, `ReqCreatureOrGOCount1`, `ReqCreatureOrGOCount2`, `ReqCreatureOrGOCount3`, `ReqCreatureOrGOCount4`, `ReqSpellCast1`, `ReqSpellCast2`, `ReqSpellCast3`, `ReqSpellCast4`, `RewChoiceItemId1`, `RewChoiceItemId2`, `RewChoiceItemId3`, `RewChoiceItemId4`, `RewChoiceItemId5`, `RewChoiceItemId6`, `RewChoiceItemCount1`, `RewChoiceItemCount2`, `RewChoiceItemCount3`, `RewChoiceItemCount4`, `RewChoiceItemCount5`, `RewChoiceItemCount6`, `RewItemId1`, `RewItemId2`, `RewItemId3`, `RewItemId4`, `RewItemCount1`, `RewItemCount2`, `RewItemCount3`, `RewItemCount4`, `RewRepFaction1`, `RewRepFaction2`, `RewRepFaction3`, `RewRepFaction4`, `RewRepFaction5`, `RewRepValue1`, `RewRepValue2`, `RewRepValue3`, `RewRepValue4`, `RewRepValue5`, `RewXP`, `RewOrReqMoney`, `RewMoneyMaxLevel`, `RewSpell`, `RewSpellCast`, `RewMailTemplateId`, `RewMailDelaySecs`, `RewMailMoney`, `PointMapId`, `PointX`, `PointY`, `PointOpt`, `DetailsEmote1`, `DetailsEmote2`, `DetailsEmote3`, `DetailsEmote4`, `DetailsEmoteDelay1`, `DetailsEmoteDelay2`, `DetailsEmoteDelay3`, `DetailsEmoteDelay4`, `IncompleteEmote`, `CompleteEmote`, `OfferRewardEmote1`, `OfferRewardEmote2`, `OfferRewardEmote3`, `OfferRewardEmote4`, `OfferRewardEmoteDelay1`, `OfferRewardEmoteDelay2`, `OfferRewardEmoteDelay3`, `OfferRewardEmoteDelay4`, `StartScript`, `CompleteScript`) VALUES (4265, 5, 2, 357, 40, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 4135, 0, 0, 0, 4266, 0, 0, 0, 'Freed from the Hive', 'The pod splits opens some when you touch it, revealing a night elven male who is surprisingly still alive. He seems to be in good health, though deeply stunned. As you help him down from the pod, he stirs to life.$B$B"Thank Elune - you\'ve saved me, friend! I... I\'m Raschal, and I awoke paralyzed inside this pod after these bugs overwhelmed me. Were you sent by the Stronghold?"$B$BIt would seem that you\'ve found the missing courier!', 'Free Raschal from the Zukk\'ash hive.$B$BReturn to Ginro Hearthkindle in Feathermoon Stronghold and let him know that Raschal is alive and well.', 'Welcome home, $N. Raschal checked in just a little while ago and told me what happened.$B$BI... no, the entire Stronghold can\'t even begin to thank you for your great deed; Raschal would have been dead without your timely aid, and your assistance came to us without even so much as the whisper of a mercenary\'s fee. You bear the mark of a true hero. Know that you will always have a friend in Ginro Hearthkindle.', 'You have something to report, $n?', 'Free Raschal.', NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 100, 0, 0, 0, 0, 4050, 0, 2460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 42651, 0); + +-- Removing EventAI from Raschal the Courier. +DELETE FROM `creature_ai_scripts` WHERE `id` IN (954601, 954602); +DELETE FROM `creature_ai_events` WHERE `creature_id`=9546; +UPDATE `creature_template` SET `ai_name`='' WHERE `entry`=9546; + +-- Start script for Post-1.7 version of quest. +DELETE FROM `quest_start_scripts` WHERE `id` IN (4265, 42650, 42651); +INSERT INTO `quest_start_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(42651, 5, 0, 10, 9546, 20000, 0, 0, 0, 0, 0, 0, 0, 42651, -1, 1, -5323.37, 431.877, 12.1585, 3.49066, 0, 'Freed from the Hive: Summon Creature Raschal the Courier'), +(42651, 20, 0, 7, 4265, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Freed from the Hive: Complete Quest'); + +-- Spawn script for Raschal the Courier during Post-1.7 version of quest. +INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(42651, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4949, 0, 0, 0, 0, 0, 0, 0, 0, 'Freed from the Hive: Raschal the Courier - Say Text'), +(42651, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10620, 0, 0, 0, 0, 0, 0, 0, 0, 'Freed from the Hive: Raschal the Courier - Say Text'); + +-- Start script for Pre-1.7 version of quest. +INSERT INTO `quest_start_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(42650, 5, 0, 10, 9546, 300000, 1, 100, 0, 0, 0, 0, 8, 42650, -1, 1, -5323.37, 431.877, 12.1585, 3.49066, 0, 'Escaping the Hive: Summon Creature Raschal the Courier'); + +-- Failure script for Pre-1.7 version of quest. +DELETE FROM `generic_scripts` WHERE `id`=42652; +INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(42652, 0, 0, 70, 4265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Escaping the Hive Failed: Fail Quest'), +(42652, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Escaping the Hive Failed: Raschal the Courier - Despawn'); + +-- Success script for Pre-1.7 version of quest. +DELETE FROM `generic_scripts` WHERE `id`=42653; +INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(42653, 0, 0, 7, 4265, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Escaping the Hive Success: Complete Quest'); + +-- Spawn script for Raschal the Courier during Pre-1.7 version of quest. +DELETE FROM `generic_scripts` WHERE `id`=42650; +INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(42650, 0, 0, 61, 4265, 300, 0, 0, 0, 0, 0, 0, 0, 42653, 6303, 42652, 0, 0, 0, 0, 0, 'Escaping the Hive: Start Scripted Map Event'), +(42650, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4949, 0, 0, 0, 0, 0, 0, 0, 0, 'Escaping the Hive: Raschal the Courier - Say Text'), +(42650, 10, 0, 20, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Escaping the Hive: Raschal the Courier - Start Waypoints'); + +-- Add waypoints for Raschal the Courier during Pre-1.7 version of quest. (made up) +INSERT INTO `creature_movement_template` (`entry`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `wander_distance`, `script_id`, `path_id`) VALUES +(9546, 1, -5326.84, 429.041, 10.5769, 100, 0, 0, 954601, 0), +(9546, 2, -5337.12, 420.946, 10.5632, 100, 0, 0, 0, 0), +(9546, 3, -5349.59, 413.371, 11.1833, 100, 0, 0, 0, 0), +(9546, 4, -5356.52, 402.341, 14.8628, 100, 0, 0, 0, 0), +(9546, 5, -5358.54, 391.251, 18.7334, 100, 0, 0, 0, 0), +(9546, 6, -5352.64, 382.533, 17.6811, 100, 0, 0, 0, 0), +(9546, 7, -5343.49, 378.461, 16.8915, 100, 0, 0, 0, 0), +(9546, 8, -5333.95, 370.7, 17.2272, 100, 0, 0, 0, 0), +(9546, 9, -5326.74, 358.123, 18.9497, 100, 0, 0, 0, 0), +(9546, 10, -5321.48, 348.873, 18.1696, 100, 10000, 0, 954610, 0); +DELETE FROM `creature_movement_scripts` WHERE `id`=954601; +INSERT INTO `creature_movement_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(954601, 0, 0, 4, 46, 768, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Escaping the Hive: Raschal the Courier - Remove Immunity Flags'); +DELETE FROM `creature_movement_scripts` WHERE `id`=954610; +INSERT INTO `creature_movement_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(954610, 0, 0, 4, 46, 768, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Escaping the Hive: Raschal the Courier - Add Immunity Flags'), +(954610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4955, 0, 0, 0, 0, 0, 0, 0, 0, 'Escaping the Hive: Raschal the Courier - Say Text'), +(954610, 0, 0, 62, 4265, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Escaping the Hive: Complete Scripted Map Event'), +(954610, 5, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Escaping the Hive: Raschal the Courier - Despawn'); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From e3a322da09ec168c6a8b31b8b6fd61607d011853 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 23 Dec 2023 02:45:42 +0200 Subject: [PATCH 403/426] Fix Magenta Fungus Cap drop amount. Closes https://github.com/vmangos/core/issues/2367 --- sql/migrations/20231223004507_world.sql | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 sql/migrations/20231223004507_world.sql diff --git a/sql/migrations/20231223004507_world.sql b/sql/migrations/20231223004507_world.sql new file mode 100644 index 00000000000..f8210766001 --- /dev/null +++ b/sql/migrations/20231223004507_world.sql @@ -0,0 +1,24 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231223004507'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231223004507'); +-- Add your query below. + + +-- Magenta Cap Clusters can contain up to 6 Magenta Fungus Cap but on 3 different slots. +DELETE FROM `gameobject_loot_template` WHERE `entry`=5212; +INSERT INTO `gameobject_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `groupid`, `mincountOrRef`, `maxcount`, `condition_id`, `patch_min`, `patch_max`) VALUES (5212, 8047, -100, 0, 1, 1, 0, 0, 10); +INSERT INTO `gameobject_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `groupid`, `mincountOrRef`, `maxcount`, `condition_id`, `patch_min`, `patch_max`) VALUES (5212, 30576, 100, 0, -30576, 2, 0, 0, 10); +INSERT INTO `reference_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `groupid`, `mincountOrRef`, `maxcount`, `condition_id`, `patch_min`, `patch_max`) VALUES (30576, 8047, 50, 0, 1, 2, 0, 0, 10); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From a3684c78efa93fec8f9c938b1c39d3f626257994 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 23 Dec 2023 03:43:00 +0200 Subject: [PATCH 404/426] Fix quest script startup errors. --- sql/migrations/20231223014105_world.sql | 22 +++++++++++++++++ src/game/ScriptMgr.cpp | 32 +++++++++++++++++++++---- 2 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 sql/migrations/20231223014105_world.sql diff --git a/sql/migrations/20231223014105_world.sql b/sql/migrations/20231223014105_world.sql new file mode 100644 index 00000000000..989ef96cbc7 --- /dev/null +++ b/sql/migrations/20231223014105_world.sql @@ -0,0 +1,22 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231223014105'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231223014105'); +-- Add your query below. + + +-- Remove unusued quest scripts. +DELETE FROM `quest_start_scripts` WHERE `id` IN (945, 3447); +DELETE FROM `quest_end_scripts` WHERE `id` IN (2952, 4603, 4604, 5058); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/ScriptMgr.cpp b/src/game/ScriptMgr.cpp index f47150ca8f0..b726030c21a 100644 --- a/src/game/ScriptMgr.cpp +++ b/src/game/ScriptMgr.cpp @@ -1419,11 +1419,23 @@ void ScriptMgr::LoadQuestEndScripts() { LoadScripts(sQuestEndScripts, "quest_end_scripts"); + std::set usedQuestCompleteScripts; + std::unique_ptr result(WorldDatabase.Query("SELECT DISTINCT `CompleteScript` FROM `quest_template`")); + if (result) + { + do + { + Field* fields = result->Fetch(); + uint32 scriptId = fields[0].GetUInt32(); + usedQuestCompleteScripts.insert(scriptId); + } while (result->NextRow()); + } + // check ids for (const auto& itr : sQuestEndScripts) { - if (!sObjectMgr.GetQuestTemplate(itr.first) && !sObjectMgr.IsExistingQuestId(itr.first)) - sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Table `quest_end_scripts` has not existing quest (Id: %u) as script id", itr.first); + if (usedQuestCompleteScripts.find(itr.first) == usedQuestCompleteScripts.end()) + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Table `quest_end_scripts` has script (Id: %u) not referenced from anywhere", itr.first); } } @@ -1431,11 +1443,23 @@ void ScriptMgr::LoadQuestStartScripts() { LoadScripts(sQuestStartScripts, "quest_start_scripts"); + std::set usedQuestStartScripts; + std::unique_ptr result(WorldDatabase.Query("SELECT DISTINCT `StartScript` FROM `quest_template`")); + if (result) + { + do + { + Field* fields = result->Fetch(); + uint32 scriptId = fields[0].GetUInt32(); + usedQuestStartScripts.insert(scriptId); + } while (result->NextRow()); + } + // check ids for (const auto& itr : sQuestStartScripts) { - if (!sObjectMgr.GetQuestTemplate(itr.first) && !sObjectMgr.IsExistingQuestId(itr.first)) - sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Table `quest_start_scripts` has not existing quest (Id: %u) as script id", itr.first); + if (usedQuestStartScripts.find(itr.first) == usedQuestStartScripts.end()) + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Table `quest_start_scripts` has script (Id: %u) not referenced from anywhere", itr.first); } } From 99258900be28f8e296a990c8203af74a69bccccc Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 23 Dec 2023 03:45:26 +0200 Subject: [PATCH 405/426] Fix set gong time command. --- src/game/Commands/ServerCommands.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/Commands/ServerCommands.cpp b/src/game/Commands/ServerCommands.cpp index f69e2b474b1..099b832343f 100644 --- a/src/game/Commands/ServerCommands.cpp +++ b/src/game/Commands/ServerCommands.cpp @@ -1991,7 +1991,7 @@ bool ChatHandler::HandleWarEffortSetGongTimeCommand(char* args) return false; sObjectMgr.SetSavedVariable(VAR_WE_GONG_TIME, gongTime, true); - PSendSysMessage("War effort gong ring time set to '%s' (%u).", TimeToTimestampStr(gongTime), gongTime); + PSendSysMessage("War effort gong ring time set to '%s' (%u).", TimeToTimestampStr(gongTime).c_str(), gongTime); sGameEventMgr.Update(); return true; From 553872a4f250f87370dedec9f2454384d364099f Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 23 Dec 2023 07:00:30 +0200 Subject: [PATCH 406/426] Fix raid target markers disappearing when changing loot settings. Closes https://github.com/vmangos/core/issues/2358 --- src/game/Group/Group.cpp | 25 ++++++++++++++----------- src/game/Group/Group.h | 1 + src/game/Handlers/GroupHandler.cpp | 4 ++++ 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/game/Group/Group.cpp b/src/game/Group/Group.cpp index fc8790705db..c904d8bc77b 100644 --- a/src/game/Group/Group.cpp +++ b/src/game/Group/Group.cpp @@ -1345,6 +1345,18 @@ void Group::SendTargetIconList(WorldSession* session) #endif } +void Group::SendTargetIconList() +{ + for (const auto& itr : m_memberSlots) + { + Player* player = sObjectMgr.GetPlayer(itr.guid); + if (!player || !player->GetSession() || player->GetGroup() != this) + continue; + + SendTargetIconList(player->GetSession()); + } +} + void Group::SendUpdate() { for (member_citerator citr = m_memberSlots.begin(); citr != m_memberSlots.end(); ++citr) @@ -2474,15 +2486,6 @@ void Group::UpdateLooterGuid(WorldObject* pLootedObject, bool ifneed) } // SendUpdate clears the target icons, send an icon update - if (!isRaidGroup()) - { - for (const auto& itr : m_memberSlots) - { - Player* player = sObjectMgr.GetPlayer(itr.guid); - if (!player || !player->GetSession() || player->GetGroup() != this) - continue; - - SendTargetIconList(player->GetSession()); - } - } + if (!isRaidGroup()) + SendTargetIconList(); } diff --git a/src/game/Group/Group.h b/src/game/Group/Group.h index 5565a91b0d2..95a6d45e2cc 100644 --- a/src/game/Group/Group.h +++ b/src/game/Group/Group.h @@ -326,6 +326,7 @@ class Group void ResetInstances(InstanceResetMethod method, Player* SendMsgTo); void SendTargetIconList(WorldSession* session); + void SendTargetIconList(); void SendUpdate(); void UpdatePlayerOutOfRange(Player* pPlayer); void UpdatePlayerOnlineStatus(Player* player, bool online = true); diff --git a/src/game/Handlers/GroupHandler.cpp b/src/game/Handlers/GroupHandler.cpp index 3a54f4822e0..814c5338026 100644 --- a/src/game/Handlers/GroupHandler.cpp +++ b/src/game/Handlers/GroupHandler.cpp @@ -383,6 +383,10 @@ void WorldSession::HandleLootMethodOpcode(WorldPacket& recv_data) group->SetLooterGuid(lootMaster); group->SetLootThreshold((ItemQualities)lootThreshold); group->SendUpdate(); + + // SendUpdate clears the target icons, send an icon update + if (!group->isRaidGroup()) + group->SendTargetIconList(); } void WorldSession::HandleLootRoll(WorldPacket& recv_data) From 076f32b41b84e84a6ff2a49e23bc710f9de3e5b8 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 23 Dec 2023 08:20:10 +0200 Subject: [PATCH 407/426] Fix Scarshield Portal. Closes https://github.com/vmangos/core/issues/2340 --- sql/migrations/20231223061017_world.sql | 52 +++++++++++++++++++++++++ src/game/AI/PetEventAI.cpp | 7 +++- src/game/Objects/Unit.cpp | 5 ++- 3 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 sql/migrations/20231223061017_world.sql diff --git a/sql/migrations/20231223061017_world.sql b/sql/migrations/20231223061017_world.sql new file mode 100644 index 00000000000..622707f269b --- /dev/null +++ b/sql/migrations/20231223061017_world.sql @@ -0,0 +1,52 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231223061017'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231223061017'); +-- Add your query below. + + +-- Events list for Scarshield Portal +DELETE FROM `creature_ai_events` WHERE `creature_id`=9707; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (970701, 9707, 0, 11, 0, 0, 1, 0, 0, 0, 0, 970701, 0, 0, 'Scarshield Portal - Disable Attack and Movement on Spawn'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (970702, 9707, 0, 1, 0, 100, 1, 12000, 12000, 12000, 12000, 970702, 0, 0, 'Scarshield Portal - Summon Burning Felhound OOC'); +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (970703, 9707, 0, 1, 0, 10, 0, 20000, 20000, 0, 0, 970703, 0, 0, 'Scarshield Portal - Summon Burning Felguard OOC'); +DELETE FROM `creature_ai_scripts` WHERE `id`=970701; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(970701, 0, 0, 18, 30000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarshield Portal - Despawn Self in 30 Seconds'), +(970701, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarshield Portal - Disable Melee Attack'), +(970701, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarshield Portal - Disable Combat Movement'); +DELETE FROM `creature_ai_scripts` WHERE `id`=970702; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(970702, 0, 0, 15, 16002, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarshield Portal - Cast Spell Summon Burning Felhound'); +DELETE FROM `creature_ai_scripts` WHERE `id`=970703; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(970703, 0, 0, 15, 16004, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarshield Portal - Cast Spell Summon Burning Felguard'); +DELETE FROM `creature_ai_scripts` WHERE `id` IN (970704, 970705, 970706); +UPDATE `creature_template` SET `unit_flags`=33555200, `auras`='15127' WHERE `entry`=9707; + +-- Events list for Burning Imp +DELETE FROM `creature_ai_events` WHERE `creature_id`=9708; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (970801, 9708, 0, 1, 0, 100, 0, 10000, 10000, 0, 0, 970801, 0, 0, 'Burning Imp - Despawn after 10 seconds OOC'); +DELETE FROM `creature_ai_scripts` WHERE `id`=970801; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(970801, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Burning Imp - Despawn'); + +-- Events list for Burning Felhound +DELETE FROM `creature_ai_events` WHERE `creature_id`=10261; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES (1026101, 10261, 0, 1, 0, 100, 0, 10000, 10000, 0, 0, 1026101, 0, 0, 'Burning Felhound - Despawn after 10 seconds OOC'); +DELETE FROM `creature_ai_scripts` WHERE `id`=1026101; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1026101, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Burning Felhound - Despawn'); +DELETE FROM `creature_ai_scripts` WHERE `id` IN (1026102); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; diff --git a/src/game/AI/PetEventAI.cpp b/src/game/AI/PetEventAI.cpp index 1e553c678f9..fbdbc71805e 100644 --- a/src/game/AI/PetEventAI.cpp +++ b/src/game/AI/PetEventAI.cpp @@ -123,8 +123,11 @@ void PetEventAI::AttackedBy(Unit* pAttacker) if (Creature* pOwner = ToCreature(m_creature->GetCharmerOrOwner())) { - pOwner->AddThreat(pAttacker); - pOwner->SetInCombatWith(pAttacker); + if (pAttacker->IsTargetableBy(pOwner)) + { + pOwner->AddThreat(pAttacker); + pOwner->SetInCombatWith(pAttacker); + } } } diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index 41a1193d29f..fd62e41f434 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -4667,8 +4667,11 @@ void Unit::AttackedBy(Unit* attacker) pCreature->AI()->AttackedBy(attacker); // trigger owner AI reaction + // must check that attacker is targetable by owner, + // because there are cases with unattackable creatures spawning pets + // example: Scarshield Portal (9707) spawns guardian pet Burning Imp (9708) with spell 15126 if (Creature* pOwner = ::ToCreature(GetCharmerOrOwner())) - if (pOwner->AI()) + if (pOwner->AI() && pOwner->IsAlive() && attacker->IsTargetableBy(pOwner)) pOwner->AI()->AttackedBy(attacker); } } From 9c3051870cddea055c5d8772f9ce6e832c177196 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 23 Dec 2023 08:21:34 +0200 Subject: [PATCH 408/426] Check if owner is alive here too. --- src/game/AI/PetEventAI.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/AI/PetEventAI.cpp b/src/game/AI/PetEventAI.cpp index fbdbc71805e..dcf35156660 100644 --- a/src/game/AI/PetEventAI.cpp +++ b/src/game/AI/PetEventAI.cpp @@ -123,7 +123,7 @@ void PetEventAI::AttackedBy(Unit* pAttacker) if (Creature* pOwner = ToCreature(m_creature->GetCharmerOrOwner())) { - if (pAttacker->IsTargetableBy(pOwner)) + if (pOwner->IsAlive() && pAttacker->IsTargetableBy(pOwner)) { pOwner->AddThreat(pAttacker); pOwner->SetInCombatWith(pAttacker); From 8a219fbf1b410a9ddc85d10862e42f5fab3bccde Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 23 Dec 2023 08:25:12 +0200 Subject: [PATCH 409/426] Actually this part is not needed anymore. --- src/game/AI/PetEventAI.cpp | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/game/AI/PetEventAI.cpp b/src/game/AI/PetEventAI.cpp index dcf35156660..a24e13f706a 100644 --- a/src/game/AI/PetEventAI.cpp +++ b/src/game/AI/PetEventAI.cpp @@ -120,15 +120,6 @@ void PetEventAI::AttackedBy(Unit* pAttacker) { if (!m_creature->GetVictim()) AttackStart(pAttacker); - - if (Creature* pOwner = ToCreature(m_creature->GetCharmerOrOwner())) - { - if (pOwner->IsAlive() && pAttacker->IsTargetableBy(pOwner)) - { - pOwner->AddThreat(pAttacker); - pOwner->SetInCombatWith(pAttacker); - } - } } Unit* PetEventAI::FindTargetForAttack() const From d8669a2ec18e20f2a0b05c5cb99616c055897350 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 23 Dec 2023 08:26:27 +0200 Subject: [PATCH 410/426] No override needed. --- src/game/AI/PetEventAI.cpp | 6 ------ src/game/AI/PetEventAI.h | 2 -- 2 files changed, 8 deletions(-) diff --git a/src/game/AI/PetEventAI.cpp b/src/game/AI/PetEventAI.cpp index a24e13f706a..4f4e83bf12a 100644 --- a/src/game/AI/PetEventAI.cpp +++ b/src/game/AI/PetEventAI.cpp @@ -116,12 +116,6 @@ void PetEventAI::AttackStart(Unit* pWho) } } -void PetEventAI::AttackedBy(Unit* pAttacker) -{ - if (!m_creature->GetVictim()) - AttackStart(pAttacker); -} - Unit* PetEventAI::FindTargetForAttack() const { if (Unit* pTaunter = m_creature->GetTauntTarget()) diff --git a/src/game/AI/PetEventAI.h b/src/game/AI/PetEventAI.h index 4a7745bae8d..2b041933ebd 100644 --- a/src/game/AI/PetEventAI.h +++ b/src/game/AI/PetEventAI.h @@ -35,8 +35,6 @@ class PetEventAI : public CreatureEventAI void AttackStart(Unit* /*pWho*/) override; - void AttackedBy(Unit* /*pAttacker*/) override; - void UpdateAI(uint32 const uiDiff) override; virtual void OwnerAttackedBy(Unit* /*attacker*/) override; From dd123f773dde1279486de982a7a25a823ef637c8 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 23 Dec 2023 16:54:18 +0200 Subject: [PATCH 411/426] Fix quest The Challenge. Closes https://github.com/vmangos/core/issues/2229 Closes https://github.com/vmangos/core/issues/2341 --- .../burning_steppes/blackrock_depths/blackrock_depths.h | 1 + .../blackrock_depths/instance_blackrock_depths.cpp | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.h b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.h index 4d087252ef1..b44a498344f 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.h +++ b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/blackrock_depths.h @@ -143,6 +143,7 @@ enum NPC_SHADOWFORGE_CITIZEN = 8902, NPC_GRIMSTONE = 10096, NPC_THELDREN = 16059, + NPC_THELDREN_KILL_CREDIT = 16166, GO_ARENA1 = 161525, GO_ARENA2 = 161522, diff --git a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/instance_blackrock_depths.cpp b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/instance_blackrock_depths.cpp index 5c1ad78e127..1a1d1c9d171 100644 --- a/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/instance_blackrock_depths.cpp +++ b/src/scripts/eastern_kingdoms/burning_steppes/blackrock_depths/instance_blackrock_depths.cpp @@ -893,6 +893,14 @@ struct instance_blackrock_depths : ScriptedInstance case DATA_THELDREN: if (uiData == DONE) { + // Give kill credit for quest The Challenge (9015) + Map::PlayerList const& players = instance->GetPlayers(); + for (const auto& itr : players) + { + if (Player* pPlayer = itr.getSource()) + pPlayer->KilledMonsterCredit(NPC_THELDREN_KILL_CREDIT); + } + // Spawn "Arena Spoils" chest with sick loot DoRespawnGameObject(m_uiArenaSpoilsGUID); } From b1e49ba3e6043a21416480b03bd3ff74f60e441f Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 24 Dec 2023 16:18:46 +0200 Subject: [PATCH 412/426] Don't generate pet number twice on tame. It's already generated and set as the entry of the ObjectGuid in CreateBaseAtCreature. Thanks to celguar for noticing this. --- src/game/Spells/SpellEffects.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/Spells/SpellEffects.cpp b/src/game/Spells/SpellEffects.cpp index 66afc754e35..f316fc4042a 100644 --- a/src/game/Spells/SpellEffects.cpp +++ b/src/game/Spells/SpellEffects.cpp @@ -3949,7 +3949,7 @@ void Spell::EffectTameCreature(SpellEffectIndex /*effIdx*/) return; } - pet->GetCharmInfo()->SetPetNumber(sObjectMgr.GeneratePetNumber(), true); + pet->GetCharmInfo()->SetPetNumber(pet->GetObjectGuid().GetEntry(), true); pet->GetCharmInfo()->SetReactState(REACT_DEFENSIVE); pet->InitializeDefaultName(); pet->AIM_Initialize(); From 7e3743d543b327a76217eb09a0cd56c9fbad77b5 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 24 Dec 2023 20:13:19 +0200 Subject: [PATCH 413/426] Fixes for group list packet. Also remove useless checks for null session. It can never be null! Closes https://github.com/vmangos/core/issues/2374 --- src/game/Group/Group.cpp | 79 +++++++++++++++++------------- src/game/Group/Group.h | 2 - src/game/Handlers/ChatHandler.cpp | 2 +- src/game/Handlers/GroupHandler.cpp | 6 +-- 4 files changed, 48 insertions(+), 41 deletions(-) diff --git a/src/game/Group/Group.cpp b/src/game/Group/Group.cpp index c904d8bc77b..ce94120bc0d 100644 --- a/src/game/Group/Group.cpp +++ b/src/game/Group/Group.cpp @@ -44,7 +44,7 @@ GroupMemberStatus GetGroupMemberStatus(Player const* member = nullptr) { uint8 flags = MEMBER_STATUS_OFFLINE; - if (member && member->GetSession() && !member->GetSession()->PlayerLogout()) + if (member && !member->GetSession()->PlayerLogout()) { flags |= MEMBER_STATUS_ONLINE; if (member->IsPvP()) @@ -579,9 +579,6 @@ void Group::Disband(bool hideDestroy, ObjectGuid initiator) }, 1); } - if (!player->GetSession()) - continue; - WorldPacket data; if (!hideDestroy) { @@ -772,7 +769,7 @@ void Group::SendLootStartRoll(uint32 CountDown, Roll const& r) for (const auto& itr : r.playerVote) { Player* p = sObjectMgr.GetPlayer(itr.first); - if (!p || !p->GetSession()) + if (!p) continue; if (itr.second == ROLL_NOT_VALID) @@ -797,7 +794,7 @@ void Group::SendLootRoll(ObjectGuid const& targetGuid, uint8 rollNumber, uint8 r for (const auto& itr : r.playerVote) { Player* p = sObjectMgr.GetPlayer(itr.first); - if (!p || !p->GetSession()) + if (!p) continue; if (itr.second != ROLL_NOT_VALID) @@ -820,7 +817,7 @@ void Group::SendLootRollWon(ObjectGuid const& targetGuid, uint8 rollNumber, Roll for (const auto& itr : r.playerVote) { Player* p = sObjectMgr.GetPlayer(itr.first); - if (!p || !p->GetSession()) + if (!p) continue; if (itr.second != ROLL_NOT_VALID) @@ -840,7 +837,7 @@ void Group::SendLootAllPassed(Roll const& r) for (const auto& itr : r.playerVote) { Player* p = sObjectMgr.GetPlayer(itr.first); - if (!p || !p->GetSession()) + if (!p) continue; if (itr.second != ROLL_NOT_VALID) @@ -1015,7 +1012,7 @@ void Group::StartLootRoll(Creature* lootTarget, LootMethod method, Loot* loot, u for (GroupReference* itr = GetFirstMember(); itr != nullptr; itr = itr->next()) { Player* playerToRoll = itr->getSource(); - if (!playerToRoll || !playerToRoll->GetSession() || !playerToRoll->IsInWorld()) + if (!playerToRoll || !playerToRoll->IsInWorld()) continue; if ((method != NEED_BEFORE_GREED || playerToRoll->CanUseItem(item) == EQUIP_ERR_OK) && lootItem.AllowedForPlayer(playerToRoll, lootTarget)) @@ -1053,7 +1050,7 @@ void Group::StartLootRoll(Creature* lootTarget, LootMethod method, Loot* loot, u void Group::SendLootStartRollsForPlayer(Player* pPlayer) { - if (!pPlayer || !pPlayer->GetSession()) + if (!pPlayer) return; for (const auto roll : RollId) @@ -1108,7 +1105,7 @@ void Group::CountSingleLooterRoll(Roll* roll) SendLootRollWon(playerGuid, uint8(100), ROLL_NEED, *roll); LootItem* item = &(roll->getLoot()->items[roll->itemSlot]); - if (player && player->GetSession()) + if (player) { ItemPosCountVec dest; InventoryResult msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, roll->itemid, item->count); @@ -1169,7 +1166,7 @@ void Group::CountTheRoll(Rolls::iterator& rollI) player = sObjectMgr.GetPlayer(maxguid); LootItem* item = &(roll->getLoot()->items[roll->itemSlot]); - if (player && player->GetSession()) + if (player) { ItemPosCountVec dest; InventoryResult msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, roll->itemid, item->count); @@ -1219,7 +1216,7 @@ void Group::CountTheRoll(Rolls::iterator& rollI) SendLootRollWon(maxguid, maxresul, ROLL_GREED, *roll); player = sObjectMgr.GetPlayer(maxguid); - if (player && player->GetSession()) + if (player) { ItemPosCountVec dest; LootItem* item = &(roll->getLoot()->items[roll->itemSlot]); @@ -1326,9 +1323,10 @@ void Group::GetDataForXPAtKill(Unit const* victim, uint32& count, uint32& sum_le void Group::SendTargetIconList(WorldSession* session) { +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 if (!session) return; -#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 + WorldPacket data(MSG_RAID_TARGET_UPDATE, (1 + TARGET_ICON_COUNT * 9)); data << uint8(1); // 1 - full icon list, 0 - delta update @@ -1345,24 +1343,34 @@ void Group::SendTargetIconList(WorldSession* session) #endif } -void Group::SendTargetIconList() +void Group::SendUpdate() { - for (const auto& itr : m_memberSlots) + // sending full group list update clears marked targets when not in a raid, so we need to resend them +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 + std::unique_ptr markedTargets; + if (!isRaidGroup()) { - Player* player = sObjectMgr.GetPlayer(itr.guid); - if (!player || !player->GetSession() || player->GetGroup() != this) - continue; + for (int i = 0; i < TARGET_ICON_COUNT; ++i) + { + if (!m_targetIcons[i]) + continue; - SendTargetIconList(player->GetSession()); + if (!markedTargets) + { + markedTargets = std::make_unique(MSG_RAID_TARGET_UPDATE, (1 + TARGET_ICON_COUNT * 9)); + *markedTargets << uint8(1); // 1 - full icon list, 0 - delta update + } + + *markedTargets << uint8(i); + *markedTargets << m_targetIcons[i]; + } } -} +#endif -void Group::SendUpdate() -{ for (member_citerator citr = m_memberSlots.begin(); citr != m_memberSlots.end(); ++citr) { Player* player = sObjectMgr.GetPlayer(citr->guid); - if (!player || !player->GetSession() || player->GetGroup() != this) + if (!player || player->GetGroup() != this) continue; // guess size @@ -1395,8 +1403,17 @@ void Group::SendUpdate() else data << uint64(0); data << uint8(m_lootThreshold); // loot threshold + +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_10_2 + data << uint8(0); // dungeon difficulty +#endif } player->GetSession()->SendPacket(&data); + +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_8_4 + if (markedTargets) + player->GetSession()->SendPacket(markedTargets.get()); +#endif } } @@ -1469,7 +1486,7 @@ void Group::BroadcastPacket(WorldPacket* packet, bool ignorePlayersInBGRaid, int if (!pl || (ignore && pl->GetObjectGuid() == ignore) || (ignorePlayersInBGRaid && pl->GetGroup() != this)) continue; - if (pl->GetSession() && (group == -1 || itr->getSubGroup() == group)) + if (group == -1 || itr->getSubGroup() == group) pl->GetSession()->SendPacket(packet); } } @@ -1479,7 +1496,7 @@ void Group::BroadcastReadyCheck(WorldPacket* packet) for (GroupReference* itr = GetFirstMember(); itr != nullptr; itr = itr->next()) { Player* pl = itr->getSource(); - if (pl && pl->GetSession()) + if (pl) if (IsLeader(pl->GetObjectGuid()) || IsAssistant(pl->GetObjectGuid())) pl->GetSession()->SendPacket(packet); } @@ -1491,7 +1508,7 @@ void Group::OfflineReadyCheck() for(member_citerator citr = m_memberSlots.begin(); citr != m_memberSlots.end(); ++citr) { Player* pl = sObjectMgr.GetPlayer(citr->guid); - if (!pl || !pl->GetSession()) + if (!pl) { WorldPacket data(MSG_RAID_READY_CHECK_CONFIRM, 9); data << citr->guid; @@ -1641,7 +1658,7 @@ void Group::_chooseLeader(bool offline /*= false*/) // Prioritize online players Player* player = sObjectMgr.GetPlayer(itr.guid); - if (!player || !player->GetSession() || player->GetGroup() != this) + if (!player || player->GetGroup() != this) continue; // Prioritize assistants for raids @@ -2108,7 +2125,7 @@ void Group::ResetInstances(InstanceResetMethod method, Player* SendMsgTo) for (const auto& itr : m_memberSlots) { Player* pl = sObjectMgr.GetPlayer(itr.guid); - if (!pl || !pl->GetSession()) + if (!pl) { offline_players = true; break; @@ -2484,8 +2501,4 @@ void Group::UpdateLooterGuid(WorldObject* pLootedObject, bool ifneed) SetLooterGuid(0); SendUpdate(); } - - // SendUpdate clears the target icons, send an icon update - if (!isRaidGroup()) - SendTargetIconList(); } diff --git a/src/game/Group/Group.h b/src/game/Group/Group.h index 95a6d45e2cc..f734f858b1b 100644 --- a/src/game/Group/Group.h +++ b/src/game/Group/Group.h @@ -321,12 +321,10 @@ class Group ObjectGuid GetTargetWithIcon(RaidTargetIcon id) const { return m_targetIcons[id]; } void SetTargetIcon(uint8 id, ObjectGuid targetGuid); void ClearTargetIcon(ObjectGuid targetGuid); - uint16 InInstance(); bool InCombatToInstance(uint32 instanceId); void ResetInstances(InstanceResetMethod method, Player* SendMsgTo); void SendTargetIconList(WorldSession* session); - void SendTargetIconList(); void SendUpdate(); void UpdatePlayerOutOfRange(Player* pPlayer); void UpdatePlayerOnlineStatus(Player* player, bool online = true); diff --git a/src/game/Handlers/ChatHandler.cpp b/src/game/Handlers/ChatHandler.cpp index 36cd13f3aee..a5bbd3f20df 100644 --- a/src/game/Handlers/ChatHandler.cpp +++ b/src/game/Handlers/ChatHandler.cpp @@ -817,7 +817,7 @@ void WorldSession::HandleChatIgnoredOpcode(WorldPacket& recv_data) recv_data >> iguid; Player* player = sObjectMgr.GetPlayer(iguid); - if (!player || !player->GetSession()) + if (!player) return; WorldPacket data; diff --git a/src/game/Handlers/GroupHandler.cpp b/src/game/Handlers/GroupHandler.cpp index 814c5338026..4c13cb8015e 100644 --- a/src/game/Handlers/GroupHandler.cpp +++ b/src/game/Handlers/GroupHandler.cpp @@ -383,10 +383,6 @@ void WorldSession::HandleLootMethodOpcode(WorldPacket& recv_data) group->SetLooterGuid(lootMaster); group->SetLootThreshold((ItemQualities)lootThreshold); group->SendUpdate(); - - // SendUpdate clears the target icons, send an icon update - if (!group->isRaidGroup()) - group->SendTargetIconList(); } void WorldSession::HandleLootRoll(WorldPacket& recv_data) @@ -486,7 +482,7 @@ void WorldSession::HandleRaidTargetUpdateOpcode(WorldPacket& recv_data) else // target icon update { if (!group->IsLeader(GetPlayer()->GetObjectGuid()) && - !group->IsAssistant(GetPlayer()->GetObjectGuid())) + !group->IsAssistant(GetPlayer()->GetObjectGuid())) return; ObjectGuid guid; From f2b4b781ca12eb00739391b10a10fdfe382556b0 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Mon, 25 Dec 2023 19:24:31 +0200 Subject: [PATCH 414/426] Fix 'go creature id' command for multi entry spawns. --- src/game/ObjectMgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index e5e15127029..1b1bc52d1f0 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -10770,7 +10770,7 @@ void ObjectMgr::RemoveGroup(Group* group) bool FindCreatureData::operator()(CreatureDataPair const& dataPair) { // skip wrong entry ids - if (i_id && dataPair.second.creature_id[0] != i_id) + if (i_id && !dataPair.second.HasCreatureId(i_id)) return false; if (!i_anyData) From 6eb7e54c7008e11d3661809961403c7011bd440a Mon Sep 17 00:00:00 2001 From: NickTyrer Date: Tue, 26 Dec 2023 07:25:47 +0200 Subject: [PATCH 415/426] Misc DB Fixes. Part of https://github.com/vmangos/core/pull/1970 --- sql/migrations/20231226052448_world.sql | 1213 +++++++++++++++++++++++ 1 file changed, 1213 insertions(+) create mode 100644 sql/migrations/20231226052448_world.sql diff --git a/sql/migrations/20231226052448_world.sql b/sql/migrations/20231226052448_world.sql new file mode 100644 index 00000000000..015b1832973 --- /dev/null +++ b/sql/migrations/20231226052448_world.sql @@ -0,0 +1,1213 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231226052448'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231226052448'); +-- Add your query below. + + +-- Defias Dockworker 6927 Convert to Creature Group +UPDATE `creature` SET `position_x` = -9961.2, `position_y` = -153.40921, `position_z` = 21.847925, `movement_type` = 0 WHERE `guid` IN (84587, 80730, 80732); +DELETE FROM `creature_movement` WHERE `id` IN (84587, 80730, 80732); + +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(84587, 84587, 0, 6.25244, 11), +(84587, 80730, 3, 3.14, 11), +(84587, 80732, 6, 3.14, 11); + +UPDATE `creature` SET `movement_type` = 2 WHERE `guid` = 84587; +INSERT INTO `creature_movement` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `script_id`) VALUES +(84587, 1, -9961.2, -153.40921, 21.847925, 100, 1000, 0), +(84587, 2, -9956.517, -159.12874, 22.818628, 100, 0, 0), +(84587, 3, -9951.445, -163.15524, 24.69314, 100, 0, 0), +(84587, 4, -9946.228, -165.53757, 27.017359, 100, 0, 0), +(84587, 5, -9944.468, -163.84106, 27.131617, 100, 0, 0), +(84587, 6, -9944.139, -153.49643, 25.133081, 100, 0, 0), +(84587, 7, -9943.608, -147.81813, 25.008081, 100, 0, 0), +(84587, 8, -9936.224, -135.3706, 25.780787, 100, 0, 0), +(84587, 9, -9929.365, -131.3284, 25.417545, 100, 0, 0), +(84587, 10, -9928.282, -121.96587, 25.139225, 100, 0, 0), +(84587, 11, -9935.369, -114.50511, 25.765055, 100, 0, 0), +(84587, 12, -9945.132, -113.93359, 25.394205, 100, 0, 0), +(84587, 13, -9956.19, -116.17986, 25.25944, 100, 0, 0), +(84587, 14, -9965.036, -125.75975, 25.56315, 100, 0, 0), +(84587, 15, -9966.419, -130.92566, 24.818033, 100, 0, 0), +(84587, 16, -9967.337, -137.82283, 24.607573, 100, 0, 0), +(84587, 17, -9965.224, -140.53967, 24.583359, 100, 1000, 0), +(84587, 18, -9967.337, -137.82283, 24.607573, 100, 0, 0), +(84587, 19, -9966.419, -130.92566, 24.818033, 100, 0, 0), +(84587, 20, -9965.036, -125.75975, 25.56315, 100, 0, 0), +(84587, 21, -9956.19, -116.17986, 25.25944, 100, 0, 0), +(84587, 22, -9945.132, -113.93359, 25.394205, 100, 0, 0), +(84587, 23, -9935.369, -114.50511, 25.765055, 100, 0, 0), +(84587, 24, -9928.282, -121.96587, 25.139225, 100, 0, 0), +(84587, 25, -9929.365, -131.3284, 25.417545, 100, 0, 0), +(84587, 26, -9936.224, -135.3706, 25.780787, 100, 0, 0), +(84587, 27, -9943.608, -147.81813, 25.008081, 100, 0, 0), +(84587, 28, -9944.139, -153.49643, 25.133081, 100, 0, 0), +(84587, 29, -9944.468, -163.84106, 27.131617, 100, 0, 0), +(84587, 30, -9946.228, -165.53757, 27.017359, 100, 0, 0), +(84587, 31, -9951.445, -163.15524, 24.69314, 100, 0, 0), +(84587, 32, -9956.517, -159.12874, 22.818628, 100, 0, 0); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Add Events to Barov Servants +UPDATE `creature_template` SET `ai_name` = 'EventAI' WHERE `entry` IN (11636, 11637); +-- Events list for Servant of Alexi Barov +DELETE FROM `creature_ai_events` WHERE `creature_id`=11637; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES +(1163701, 11637, 0, 4, 0, 20, 2, 0, 0, 0, 0, 1163601, 1163602, 0, 'Servant of Alexi Barov - Talk On Aggro'); + +-- Events list for Servant of Weldon Barov +DELETE FROM `creature_ai_events` WHERE `creature_id`=11636; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES +(1163601, 11636, 0, 4, 0, 20, 2, 0, 0, 0, 0, 1163601, 1163602, 0, 'Servant of Weldon Barov - Talk On Aggro'); + +DELETE FROM `creature_ai_scripts` WHERE `id`=1163601; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1163601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7150, 7151, 7152, 7153, 0, 0, 0, 0, 0, 'Servant of Alexi\Weldon Barov - Talk'); + +DELETE FROM `creature_ai_scripts` WHERE `id`=1163602; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1163602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7154, 7153, 7152, 7151, 0, 0, 0, 0, 0, 'Servant of Alexi\Weldon Barov - Talk'); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Convert Klaven Mortwake to Stealth Alert +DELETE FROM `creature_ai_events` WHERE `creature_id`=7053; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES +(705301, 7053, 0, 35, 0, 100, 1, 10000, 10000, 0, 0, 705301, 0, 0, 'Klaven Mortwake - Say on Stealth Alert'); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + +/* +World of Warcraft Client Patch 1.7.0 (2005-09-13) +- Dark Iron mineral nodes will now sometimes appear in the Burning + Steppes and Searing Gorge. +*/ + +-- Set Correct Patch For Dark Iron Deposit +UPDATE `gameobject` SET `patch_min` = 5 WHERE `id` = 165658 && `map` IN (0, 1); +UPDATE `pool_gameobject` SET `patch_min` = 5 WHERE `guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 165658 && `map` IN (0, 1)); + +-- These spawns are pooled, and pool chance must always add up to 100%, so this means we must use equal chance instead of explicit chance for one of the other gameobjects in the pool. + +-- Mithril +UPDATE `pool_gameobject` SET `chance`=0 WHERE `guid` IN (27334, 29734, 29735, 29736, 29737, 29738, 29739, 29740, 29741, 29742, 29743, 29744, 29745, 29746, 29747, 29748, 29749, 29750, 29751, 29752, 29753, 29754, 29755, 29756, 29757, 29758, 29759, 29760, 29761, 29762, 38345, 38346, 38347, 38348, 38349, 38350, 38351, 38352, 38353, 38354, 38355, 38356, 38357, 38358, 38359, 38360, 38361, 38362, 38363, 38364, 38365, 38366, 38367, 38368, 38369, 38370, 38371, 38372, 38373, 38374, 38375, 38376, 38377, 38378, 38379, 38380, 38381, 38382, 38383, 38384, 38385, 38386, 38387, 38388, 38389, 38390, 38391, 38392, 38393, 38394, 38395, 38396, 38397, 38398, 38399, 38400, 38401, 38402, 38403, 38404, 38405, 38406, 38407, 38408, 38409, 38410, 38411, 38412, 38413, 38414, 38415, 38416, 38417, 38418, 38419, 38420, 38421, 38422, 38423, 38424, 38425, 38426, 38427, 38428, 38429, 38430, 38431, 38432, 38433, 38434, 38435, 38436, 38437, 38438, 38439, 38440, 38441, 38442, 38443, 38444, 200012, 200016, 200025, 200026); + +-- Truesilver +UPDATE `pool_gameobject` SET `chance`=0 WHERE `guid` IN (31180, 31181, 31182, 31183, 31184, 31186, 31187, 31188, 31189, 31190, 31191, 31192, 31193, 31194, 31195, 31196, 31197, 31198, 31199, 31200, 31201, 31202, 31203, 31204, 31205, 31207, 31208, 31209, 31210, 31211, 31212, 31213, 31214, 31215, 32994, 32995, 32996, 32997, 32998, 32999, 33001, 33003, 33004, 33005, 33006, 33007, 33008, 33009, 33010, 33011, 33012, 33013, 33014, 33015, 33016, 33017, 33018, 33019, 220446, 220447); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Correct Mining Node Position +UPDATE `gameobject` SET `position_x`=26.0743, `position_y`=-1906.15, `position_z`=84.0589, `orientation`=4.69494 WHERE `guid`=34711; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Update Cook Ghilm Script +DELETE FROM `creature_movement_scripts` WHERE `id`=135501; +INSERT INTO `creature_movement_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(135501, 3, 0, 82, 10837, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Cook Ghilm - Load Gameobject'), +(135501, 3, 0, 1, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Cook Ghilm - Emote'), +(135501, 4, 0, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Cook Ghilm - Set Equipment'), +(135501, 7, 0, 41, 0, 0, 0, 0, 10837, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Cook Ghilm - Remove Object'); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Stranglethorn Tigress and Shadowmaw Panther Share Spawns +UPDATE `creature` SET `id` = 684, `id2` = 772 WHERE `id` IN (684, 772); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Align Guard Respawntime +UPDATE `creature` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `id` IN ( +68, -- Stormwind City Guard +727, -- Ironforge Mountaineer +1423, -- Stormwind Guard +1976, -- Stormwind City Patroller +3084, -- Bluffwatcher +3212, -- Brave Ironhorn +3215, -- Brave Strongbash +3217, -- Brave Dawneagle +3218, -- Brave Swiftwind +3219, -- Brave Leaping Deer +3220, -- Brave Darksky +3221, -- Brave Rockhorn +3222, -- Brave Wildrunner +3223, -- Brave Rainchaser +3224, -- Brave Cloudmane +3296, -- Orgrimmar Grunt +5595, -- Ironforge Guard +5624, -- Undercity Guardian +12996, -- Mounted Ironforge Mountaineer +13076); -- Dun Morogh Mountaineer + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +UPDATE `creature` SET `wander_distance`=5 WHERE `guid`=4185; +DELETE FROM `creature_movement_template` WHERE `entry` = 468; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Ancient of War Does Not Have Gossip +UPDATE `creature_template` SET `npc_flags` = 0 WHERE `entry`=3469; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Update Some Creature Group Angles +UPDATE `creature_groups` SET `angle` = 3.12 WHERE `member_guid` IN (42898, 60006, 287, 153); +UPDATE `creature_groups` SET `angle` = 3.12 WHERE `member_guid` = 3477; +UPDATE `creature_groups` SET `angle` = 3.23 WHERE `member_guid` = 3560; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Add Script For Quest Frostmaw +INSERT INTO `gameobject` (`guid`, `id`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecsmin`, `spawntimesecsmax`, `state`, `animprogress`) VALUES +(3114, 19875, 0, 263.424, -268.076, 145.521, 4.34587, 0, 0, -0.824126, 0.566406, -180, -180, 1, 100), +(3115, 965, 0, 263.262, -267.665, 145.024, 4.57276, 0, 0, -0.754709, 0.656059, -180, -180, 1, 100); + +DELETE FROM `event_scripts` WHERE `id`=727; +INSERT INTO `event_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(727, 0, 0, 10, 4504, 0, 1, 0, 0, 0, 0, 0, 8, 0, -1, 7, 234.227, -239.227, 141.325, 2.84489, 0, 'Frostmaw: Summon Creature Frostmaw'), +(727, 0, 0, 9, 3114, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Frostmaw: Respawn GameObject Fresh Lion Carcass'), +(727, 0, 0, 9, 3115, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Frostmaw: Respawn GameObject Black Smoke - scale 2'); + +DELETE FROM `creature_movement_template` WHERE `entry` = 4504; +INSERT INTO `creature_movement_template` (`entry`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `script_id`) VALUES +(4504, 1, 221.10156, -254.34375, 145.13052, 100, 0, 0), +(4504, 2, 221.40279, -262.92282, 145.25552, 100, 0, 0), +(4504, 3, 229.7501, -267.23904, 145.87318, 100, 7000, 0), +(4504, 4, 241.35802, -267.15924, 144.7831, 100, 0, 0), +(4504, 5, 247.68039, -266.39713, 144.98044, 100, 0, 0), +(4504, 6, 261.16113, -267.38702, 144.8716, 100, 7000, 450401), +(4504, 7, 248.05843, -267.17468, 145.08376, 100, 0, 0), +(4504, 8, 242.37035, -266.9359, 144.5908, 100, 0, 0), +(4504, 9, 237.8304, -267.07703, 145.80971, 100, 0, 0), +(4504, 10, 229.01921, -267.1084, 145.80151, 100, 0, 0), +(4504, 11, 222.44646, -260.98682, 145.13052, 100, 0, 0), +(4504, 12, 222.2341, -253.12283, 144.81778, 100, 0, 0), +(4504, 13, 230.49452, -242.26663, 142.41824, 100, 3000, 450402); + +DELETE FROM `creature_movement_scripts` WHERE `id`=450401; +INSERT INTO `creature_movement_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(450401, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1464, 0, 0, 0, 0, 0, 0, 0, 0, 'Frostmaw - Talk'), +(450401, 5, 0, 81, 3114, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Frostmaw - Despawn Object'), +(450401, 5, 0, 81, 3115, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Frostmaw - Despawn Object'); + +DELETE FROM `creature_movement_scripts` WHERE `id`=450402; +INSERT INTO `creature_movement_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(450402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1465, 0, 0, 0, 0, 0, 0, 0, 0, 'Frostmaw - Talk'), +(450402, 2, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Frostmaw - Despawn'); + +UPDATE `creature_template` SET `movement_type` = 2 WHERE `entry` = 4504; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Holy Spring Does Not Require Quest To Loot +UPDATE `gameobject_loot_template` SET `ChanceOrQuestChance` = 100 WHERE `entry` = 938 AND `item` = 737; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Set Correct Target For Script +DELETE FROM `creature_ai_scripts` WHERE `id`=852401; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(852401, 0, 0, 15, 16567, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Cursed Mage - Cast Spell Tainted Mind'); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Set Southshore Guard Default Movement to Wander +UPDATE `creature_template` SET `movement_type` = 1 WHERE `entry` = 2386; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Correct High Executor Darthalia Spawn Position +UPDATE `creature` SET `position_x`= -33.3555, `position_y`= -927.892, `position_z`= 54.5261, `orientation`= 1.54421 WHERE `guid` = 15542; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Add Roland Geardabbler Aura +UPDATE `creature_template` SET `auras` = '12508' WHERE `entry`=8394 AND `patch`=0; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Add Mai'Zoth Aura +UPDATE `creature_template` SET `auras` = '12544' WHERE `entry`=818 AND `patch`=0; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Pool Alien Egg +UPDATE `gameobject` SET `spawntimesecsmin` = 10, `spawntimesecsmax` = 10 WHERE `id` = 175565; +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(3585, 1, 'Thousand Needles - Alien Egg', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `chance`, `description`, `patch_min`, `patch_max`) VALUES +(175565, 3585, 0, 'Thousand Needles - Alien Egg', 0, 10); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Correct Patch Min +UPDATE `pool_template` SET `patch_min`= 0 WHERE `entry` IN (21603, 21604); +UPDATE `pool_gameobject_template` SET `patch_min`= 0 WHERE `pool_entry` IN (21603, 21604); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Creatures Should Wander +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 2 WHERE `guid` IN (6782, 6784, 6787, 6790, 6797, 6794); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Remove Custom Object +DELETE FROM `gameobject` WHERE `guid` = 42899; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Correct Some Waypoints (credit cmangos) +-- Nikova Raskol 1721 +DELETE FROM `creature_movement` WHERE `id` = 79770; +UPDATE `creature` SET `position_x` = -8733.151, `position_y` = 394.31458, `position_z` = 98.35401, `orientation` = 2.86234 WHERE `id` = 1721; +DELETE FROM `creature_movement_template` WHERE `entry` = 1721; +INSERT INTO `creature_movement_template` (`entry`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `script_id`) VALUES +(1721, 1 , -8733.151, 394.31458, 98.35401, 2.86234, 150000, 0), +(1721, 2 , -8734.93, 405.106, 97.8717, 100, 0, 0), +(1721, 3 , -8725.77, 417.125, 97.7309, 100, 0, 0), +(1721, 4 , -8719.993, 438.32822, 97.38104, 100, 0, 0), +(1721, 5 , -8715.713, 453.567, 97.223045, 100, 0, 0), +(1721, 6 , -8681.3125, 485.25836, 96.80815, 100, 0, 0), +(1721, 7 , -8666.829, 497.89432, 100.59907, 100, 0, 0), +(1721, 8 , -8652.376, 486.10168, 102.306854, 100, 0, 0), +(1721, 9 , -8636.195, 465.46332, 102.354004, 100, 0, 0), +(1721, 10, -8632.351, 456.59332, 102.292595, 100, 0, 0), +(1721, 11, -8638.788, 450.0242, 102.47641, 1.6406097, 150000, 0), +(1721, 12, -8633.501, 442.80057, 102.32132, 100, 0, 0), +(1721, 13, -8640.329, 437.12598, 101.77766, 100, 0, 0), +(1721, 14, -8646.861, 427.44424, 101.507576, 100, 0, 0), +(1721, 15, -8655.466, 420.30447, 102.31269, 100, 0, 0), +(1721, 16, -8665.616, 411.49307, 103.124855, 100, 0, 0), +(1721, 17, -8670.606, 403.65277, 103.36292, 100, 0, 0), +(1721, 18, -8680.942, 400.98178, 102.935486, 100, 0, 0), +(1721, 19, -8687.236, 395.86807, 102.108986, 100, 0, 0), +(1721, 20, -8693.097, 396.71255, 101.587204, 100, 0, 0), +(1721, 21, -8696.334, 391.15247, 102.407005, 3.508112, 150000, 0), +(1721, 22, -8698.372, 401.56934, 101.02059, 100, 0, 0), +(1721, 23, -8717.303, 406.84973, 98.10654, 100, 0, 0), +(1721, 24, -8724.674, 406.65234, 97.80793, 100, 0, 0); + +-- Thomas Miller 3518 +-- path corrected - had some points missing or custom made +DELETE FROM `creature_movement` WHERE `id` = 79723; +UPDATE `creature` SET `position_x` = -8831.716, `position_y` = 543.03986, `position_z` = 96.87623 WHERE `id` = 3518; +DELETE FROM `creature_movement_template` WHERE `entry` = 3518; +INSERT INTO `creature_movement_template` (`entry`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `script_id`) VALUES +(3518, 1 , -8831.716, 543.03986, 96.87623, 100, 3000, 0), +(3518, 2 , -8824.937, 553.64734, 95.23644 , 100, 0, 0), +(3518, 3 , -8816.558, 562.692, 94.15401 , 100, 0, 0), +(3518, 4 , -8812.594, 575.2082, 94.89822, 100, 0, 0), +(3518, 5 , -8798.608, 587.61664, 97.43818 , 100, 0, 0), +(3518, 6 , -8788.722, 593.3572, 97.64036, 100, 0, 0), +(3518, 7 , -8776.456, 603.8965, 97.37932, 100, 0, 0), +(3518, 8 , -8762.598, 617.44586, 99.08215 , 100, 0, 0), +(3518, 9 , -8758.275, 627.52496, 101.945015, 100, 0, 0), +(3518, 10, -8759.411, 641.9355, 103.61436 , 100, 0, 0), +(3518, 11, -8770.62, 661.28796, 103.70394 , 100, 0, 0), +(3518, 12, -8779.22, 672.5389, 103.11453, 100, 0, 0), +(3518, 13, -8787.312, 680.3848, 102.35647 , 100, 0, 0), +(3518, 14, -8804.321, 683.7612, 100.726585, 100, 0, 0), +(3518, 15, -8815.349, 680.6345, 98.42479, 100, 0, 0), +(3518, 16, -8831.333, 674.36786, 98.42116 , 100, 0, 0), +(3518, 17, -8844.647, 666.4365, 97.73251, 100, 0, 0), +(3518, 18, -8853.126, 657.96735, 96.82975 , 100, 0, 0), +(3518, 19, -8848.778, 647.818, 96.52911 , 100, 0, 0), +(3518, 20, -8842.514, 637.99854, 95.320206, 100, 0, 0), +(3518, 21, -8834.657, 634.1927, 94.384514 , 100, 0, 0), +(3518, 22, -8823.594, 639.3086, 94.391815 , 100, 0, 0), +(3518, 23, -8818.339, 641.126, 94.354004, 100, 0, 0), +(3518, 24, -8811.451, 634.4778, 94.354004 , 100, 0, 0), +(3518, 25, -8813.913, 625.36554, 94.15325 , 100, 0, 0), +(3518, 26, -8827.415, 620.4255, 94.33926, 100, 0, 0), +(3518, 27, -8836.966, 613.5763, 93.262215 , 100, 0, 0), +(3518, 28, -8845.903, 602.001, 92.78646 , 100, 0, 0), +(3518, 29, -8854.596, 591.41406, 92.982 , 100, 0, 0), +(3518, 30, -8863.754, 582.47644, 93.56701 , 100, 0, 0), +(3518, 31, -8875.346, 571.9302, 93.48887, 100, 0, 0), +(3518, 32, -8883.425, 571.9704, 92.85839, 100, 0, 0), +(3518, 33, -8888.318, 578.2813, 92.8863 , 100, 0, 0), +(3518, 34, -8889.5, 585.4183, 93.43408 , 100, 0, 0), +(3518, 35, -8880.202, 592.32275, 93.37659 , 100, 0, 0), +(3518, 36, -8867.2295, 598.0203, 92.40573 , 100, 0, 0), +(3518, 37, -8849.395, 608.0734, 92.51413, 100, 0, 0), +(3518, 38, -8835.409, 618.3853, 93.27875, 100, 0, 0), +(3518, 39, -8828.214, 620.0535, 94.319084 , 100, 0, 0), +(3518, 40, -8819.852, 613.14777, 95.27985 , 100, 0, 0), +(3518, 41, -8809.6455, 603.60876, 96.39362, 100, 0, 0), +(3518, 42, -8806.867, 593.1512, 97.364456 , 100, 0, 0), +(3518, 43, -8815.863, 581.43365, 95.57355 , 100, 0, 0), +(3518, 44, -8821.164, 571.0665, 94.37265, 100, 0, 0), +(3518, 45, -8830.861, 559.04755, 94.95533 , 100, 0, 0), +(3518, 46, -8834.466, 549.53735, 96.44727 , 100, 0, 0); + +-- Officer Jaxon 14423 +-- path corrected +DELETE FROM `creature_movement` WHERE `id` = 79818; +UPDATE `creature` SET `position_x` = -8835.849, `position_y` = 543.1174, `position_z` = 97.05621 WHERE `id` = 14423; +DELETE FROM `creature_movement_template` WHERE `entry` = 14423; +INSERT INTO `creature_movement_template` (`entry`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `script_id`) VALUES +(14423, 1, -8835.849, 543.1174, 97.05621, 100, 0, 0), +(14423, 2, -8818.347, 560.51434, 94.520195, 100, 0, 0), +(14423, 3, -8812.764, 570.36664, 94.27222, 100, 0, 0), +(14423, 4, -8808.098, 576.9897, 95.35623, 100, 0, 0), +(14423, 5, -8788.984, 592.1376, 97.60096, 100, 0, 0), +(14423, 6, -8772.828, 605.4169, 97.22266, 100, 0, 0), +(14423, 7, -8769.656, 606.08704, 97.06241, 100, 0, 0), +(14423, 8, -8743.524, 579.3958, 97.68507, 100, 0, 0), +(14423, 9, -8736.395, 575.75323, 97.46956, 100, 0, 0), +(14423, 10 , -8731.595, 578.7232, 97.569214, 100, 0, 0), +(14423, 11 , -8721.105, 589.80945, 98.70483, 100, 0, 0), +(14423, 12 , -8716.723, 592.7718, 98.71562, 100, 0, 0), +(14423, 13 , -8710.64, 595.3354, 98.82091, 100, 0, 0), +(14423, 14 , -8707.837, 600.4015, 99.04902, 100, 0, 0), +(14423, 15 , -8706.04, 621.844, 100.6301, 100, 0, 0), +(14423, 16 , -8707.136, 635.97766, 100.33522, 100, 0, 0), +(14423, 17 , -8714.38, 657.8422, 99.1828, 100, 0, 0), +(14423, 18 , -8726.181, 679.58325, 98.754, 100, 0, 0), +(14423, 19 , -8731.577, 691.1555, 98.786606, 100, 0, 0), +(14423, 20 , -8741.34, 706.4121, 98.75399, 100, 0, 0), +(14423, 21 , -8741.346, 712.86865, 98.64099, 100, 0, 0), +(14423, 22 , -8732.024, 720.8717, 101.77593, 100, 0, 0), +(14423, 23 , -8717.243, 732.2366, 98.15399, 100, 0, 0), +(14423, 24 , -8699.213, 718.9027, 97.30005, 100, 0, 0), +(14423, 25 , -8695.856, 718.0643, 97.216225, 100, 0, 0), +(14423, 26 , -8662.411, 743.59424, 96.90535, 100, 5000, 0), +(14423, 27 , -8658.026, 743.83685, 96.7404, 100, 0, 0), +(14423, 28 , -8640.762, 740.77295, 96.754, 100, 0, 0), +(14423, 29 , -8635.552, 741.5513, 97.06899, 100, 0, 0), +(14423, 30 , -8614.239, 758.03345, 96.775826, 100, 0, 0), +(14423, 31 , -8614.618, 761.8731, 96.782036, 100, 0, 0), +(14423, 32 , -8632.216, 783.48956, 96.754, 100, 0, 0), +(14423, 33 , -8635.4375, 784.1659, 96.75399, 100, 0, 0), +(14423, 34 , -8656.627, 767.5417, 97.16683, 100, 0, 0), +(14423, 35 , -8656.929, 763.6135, 96.754, 100, 0, 0), +(14423, 36 , -8663.05, 745.1423, 96.83425, 100, 0, 0), +(14423, 37 , -8682.5625, 729.8788, 97.19358, 100, 0, 0), +(14423, 38 , -8697.906, 717.0097, 97.184715, 100, 0, 0), +(14423, 39 , -8700.944, 717.45276, 97.247086, 100, 0, 0), +(14423, 40 , -8714.825, 731.938, 97.9968, 100, 0, 0), +(14423, 41 , -8719.364, 732.74634, 98.44594, 100, 0, 0), +(14423, 42 , -8732.694, 722.76404, 101.69060, 100, 0, 0), +(14423, 43 , -8743.116, 714.8106, 98.387695, 100, 0, 0), +(14423, 44 , -8747.028, 714.84534, 97.985664, 100, 0, 0), +(14423, 45 , -8756.39, 726.35, 98.26425, 100, 0, 0), +(14423, 46 , -8763.958, 733.9565, 98.894646, 100, 0, 0), +(14423, 47 , -8776.364, 740.62286, 99.85111, 100, 0, 0), +(14423, 48 , -8791.9, 744.8109, 98.46442, 100, 0, 0), +(14423, 49 , -8802.408, 743.47595, 97.75399, 100, 0, 0), +(14423, 50 , -8813.773, 738.3633, 98.159935, 100, 0, 0), +(14423, 51 , -8828.805, 729.5161, 98.43811, 100, 0, 0), +(14423, 52 , -8841.403, 722.7214, 97.401886, 100, 0, 0), +(14423, 53 , -8842.708, 718.64844, 97.51971, 100, 0, 0), +(14423, 54 , -8826.645, 683.35724, 97.2486, 100, 0, 0), +(14423, 55 , -8827.101, 677.3289, 97.66306, 100, 0, 0), +(14423, 56 , -8840.831, 668.8012, 97.997955, 100, 0, 0), +(14423, 57 , -8852.247, 660.8422, 97.148384, 100, 0, 0), +(14423, 58 , -8865.671, 651.91254, 96.35991, 100, 0, 0), +(14423, 59 , -8876.904, 645.0913, 96.17128, 100, 0, 0), +(14423, 60 , -8888.976, 638.1713, 99.55399, 100, 0, 0), +(14423, 61 , -8899.427, 632.6978, 99.55399, 100, 0, 0), +(14423, 62 , -8909.794, 628.06274, 99.55399, 100, 6000, 0), +(14423, 63 , -8923.3125, 629.1903, 99.55399, 100, 0, 0), +(14423, 64 , -8925.838, 628.58215, 99.554, 100, 0, 0), +(14423, 65 , -8930.134, 625.66364, 99.553986, 100, 0, 0), +(14423, 66 , -8930.966, 623.2076, 99.628334, 100, 0, 0), +(14423, 67 , -8923.769, 610.96277, 99.554, 100, 0, 0), +(14423, 68 , -8919.345, 611.08984, 99.55399, 100, 0, 0), +(14423, 69 , -8915.428, 613.3201, 99.554, 100, 0, 0), +(14423, 70 , -8908.395, 625.8867, 99.55399, 100, 0, 0), +(14423, 71 , -8906.335, 627.2471, 99.55399, 100, 0, 0), +(14423, 72 , -8890.132, 637.0877, 99.90722, 100, 0, 0), +(14423, 73 , -8876.437, 643.2713, 96.29825, 100, 0, 0), +(14423, 74 , -8860.858, 642.2024, 96.33926, 100, 0, 0), +(14423, 75 , -8852.24, 643.3288, 96.56118, 100, 0, 0), +(14423, 76 , -8847.913, 641.9933, 96.37936, 100, 0, 0), +(14423, 77 , -8839.461, 624.4588, 93.743034, 100, 0, 0), +(14423, 78 , -8839.58, 619.7258, 93.07439, 100, 0, 0), +(14423, 79 , -8841.623, 615.4827, 92.954, 100, 0, 0), +(14423, 80 , -8870.555, 595.22906, 92.610054, 100, 0, 0), +(14423, 81 , -8884.704, 584.25714, 93.19327, 100, 0, 0), +(14423, 82 , -8887.59, 577.5536, 92.88254, 100, 0, 0), +(14423, 83 , -8886.7705, 573.9427, 92.81689, 100, 0, 0), +(14423, 84 , -8883.764, 571.6493, 92.818565, 100, 0, 0), +(14423, 85 , -8876.726, 573.4393, 93.1993, 100, 0, 0), +(14423, 86 , -8862.226, 585.3546, 93.18828, 100, 0, 0), +(14423, 87 , -8838.603, 611.6338, 93.13657, 100, 0, 0), +(14423, 88 , -8830.998, 619.3348, 93.91167, 100, 0, 0), +(14423, 89 , -8826.625, 619.0254, 94.484795, 100, 0, 0), +(14423, 90 , -8810.239, 604.8376, 96.15262, 100, 0, 0), +(14423, 91 , -8808.071, 599.38696, 96.85791, 100, 0, 0), +(14423, 92 , -8810.741, 586.7192, 96.686806, 100, 0, 0), +(14423, 93 , -8826.246, 563.833, 94.38658, 100, 0, 0), +(14423, 94 , -8836.717, 545.1619, 96.86916, 100, 0, 0), +(14423, 95 , -8848.263, 526.5596, 106.16259, 100, 0, 0), +(14423, 96 , -8852.016, 527.30664, 106.15399, 100, 0, 0), +(14423, 97 , -8853.239, 534.3621, 105.954, 100, 0, 0), +(14423, 98 , -8855.577, 537.7486, 106.14462, 100, 0, 0), +(14423, 99 , -8864.929, 534.4644, 106.73442, 100, 0, 0), +(14423, 100, -8866.474, 530.0012, 107.093216, 100, 0, 0), +(14423, 101, -8856.673, 514.6363, 109.37261, 100, 0, 0), +(14423, 102, -8842.954, 494.74283, 109.754, 100, 0, 0), +(14423, 103, -8834.646, 484.44086, 109.75400, 100, 0, 0), +(14423, 104, -8833.602, 480.35483, 109.75400, 100, 0, 0), +(14423, 105, -8838.841, 481.5585, 109.754005, 100, 0, 0), +(14423, 106, -8844.973, 493.54514, 109.754, 100, 0, 0), +(14423, 107, -8855.75, 509.68088, 109.754005, 100, 0, 0), +(14423, 108, -8868.258, 530.4019, 106.97846, 100, 0, 0), +(14423, 109, -8866.882, 534.6631, 106.65699, 100, 0, 0), +(14423, 110, -8856.083, 538.7447, 106.04074, 100, 0, 0), +(14423, 111, -8853.478, 528.61993, 106.070145, 100, 0, 0), +(14423, 112, -8849.387, 524.78156, 106.186676, 100, 0, 0); + +-- Officer Brady 14439 +-- path corrected +DELETE FROM `creature_movement` WHERE `id` = 79768; +UPDATE `creature` SET `position_x` = -8601.638, `position_y` = 523.6507, `position_z` = 106.63933 WHERE `id` = 14439; +DELETE FROM `creature_movement_template` WHERE `entry` = 14439; +INSERT INTO `creature_movement_template` (`entry`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `script_id`) VALUES +(14439, 1, -8601.638, 523.6507, 106.63933, 100, 5000, 0), +(14439, 2, -8581.546, 539.69574, 102.266045, 100, 0, 0), +(14439, 3, -8575.862, 539.07605, 102.03139, 100, 0, 0), +(14439, 4, -8563.927, 528.2599, 101.19023, 100, 0, 0), +(14439, 5, -8545.241, 504.38858, 98.61761, 100, 0, 0), +(14439, 6, -8541.685, 504.4677, 98.75399, 100, 0, 0), +(14439, 7, -8514.327, 525.6356, 98.354004, 100, 0, 0), +(14439, 8, -8485.2295, 553.8302, 97.770065, 100, 0, 0), +(14439, 9, -8463.388, 571.3037, 95.95916, 100, 0, 0), +(14439, 10, -8446.622, 580.2648, 94.52985, 100, 0, 0), +(14439, 11, -8443.085, 580.16766, 94.495346, 100, 0, 0), +(14439, 12, -8436.027, 574.83234, 94.52548, 100, 0, 0), +(14439, 13, -8426.326, 569.79895, 93.59884, 100, 0, 0), +(14439, 14, -8413.44, 569.19977, 92.472206, 100, 0, 0), +(14439, 15, -8406.945, 571.6961, 91.67245, 100, 0, 0), +(14439, 16, -8390.114, 582.91095, 91.47244, 100, 0, 0), +(14439, 17, -8387.141, 587.1458, 91.841576, 100, 0, 0), +(14439, 18, -8384.841, 596.20184, 93.043465, 100, 0, 0), +(14439, 19, -8387.144, 608.99445, 94.47244, 100, 0, 0), +(14439, 20, -8386.659, 616.2249, 95.34915, 100, 0, 0), +(14439, 21, -8383.278, 631.36255, 94.88296, 100, 0, 0), +(14439, 22, -8383.281, 637.25195, 94.76593, 100, 0, 0), +(14439, 23, -8389.605, 654.75226, 94.929665, 100, 0, 0), +(14439, 24, -8397.433, 666.32074, 95.07245, 100, 0, 0), +(14439, 25, -8404.393, 672.2673, 95.07245, 100, 0, 0), +(14439, 26, -8411.867, 672.3292, 95.00038, 100, 0, 0), +(14439, 27, -8424.925, 665.08606, 94.27243, 100, 0, 0), +(14439, 28, -8439.999, 655.98676, 92.971954, 100, 0, 0), +(14439, 29, -8443.912, 656.62335, 93.24204, 100, 0, 0), +(14439, 30, -8457.47, 674.0869, 97.094086, 100, 0, 0), +(14439, 31, -8470.097, 688.96515, 99.79605, 100, 0, 0), +(14439, 32, -8473.718, 688.8735, 99.825134, 100, 0, 0), +(14439, 33, -8487.623, 676.3581, 100.7908, 100, 0, 0), +(14439, 34, -8505.957, 655.3216, 100.61463, 100, 0, 0), +(14439, 35, -8510.778, 655.6416, 100.49313, 100, 0, 0), +(14439, 36, -8520.38, 670.751, 102.80517, 100, 0, 0), +(14439, 37, -8534.158, 683.94714, 97.862404, 100, 0, 0), +(14439, 38, -8539.977, 686.23254, 97.754, 100, 0, 0), +(14439, 39, -8548.569, 683.8376, 97.354004, 100, 0, 0), +(14439, 40, -8571.158, 666.95355, 97.173935, 100, 0, 0), +(14439, 41, -8594.918, 658.57477, 98.33257, 100, 0, 0), +(14439, 42, -8612.844, 654.1473, 98.82604, 100, 0, 0), +(14439, 43, -8632.7705, 655.2765, 100.654625, 100, 0, 0), +(14439, 44, -8649.738, 659.1952, 101.0557, 100, 0, 0), +(14439, 45, -8660.059, 665.005, 100.647, 100, 0, 0), +(14439, 46, -8671.601, 681.9389, 99.05992, 100, 0, 0), +(14439, 47, -8696.091, 711.7486, 97.1978, 100, 0, 0), +(14439, 48, -8712.865, 730.7987, 97.92129, 100, 0, 0), +(14439, 49, -8717.392, 730.96027, 98.31952, 100, 0, 0), +(14439, 50, -8728.78, 721.7431, 101.630295, 100, 0, 0), +(14439, 51, -8741.077, 710.851, 98.75803, 100, 0, 0), +(14439, 52, -8741.721, 705.45416, 98.75399, 100, 0, 0), +(14439, 53, -8738.794, 701.3393, 98.754, 100, 0, 0), +(14439, 54, -8740.221, 697.0274, 98.95223, 100, 0, 0), +(14439, 55, -8770.687, 673.35767, 102.959305, 100, 0, 0), +(14439, 56, -8776.231, 671.7561, 103.1594, 100, 0, 0), +(14439, 57, -8786.678, 678.2949, 102.67048, 100, 0, 0), +(14439, 58, -8789.155, 678.1131, 102.46095, 100, 0, 0), +(14439, 59, -8792.827, 674.55066, 101.764534, 100, 0, 0), +(14439, 60, -8795.769, 665.7567, 99.55677, 100, 0, 0), +(14439, 61, -8800.489, 651.89575, 94.70415, 100, 0, 0), +(14439, 62, -8803.677, 650.1126, 94.649124, 100, 0, 0), +(14439, 63, -8816.515, 643.13165, 94.354004, 100, 0, 0), +(14439, 64, -8829.733, 636.3333, 94.34265, 100, 0, 0), +(14439, 65, -8835.547, 636.18, 94.64197, 100, 0, 0), +(14439, 66, -8846.8545, 647.9088, 96.562965, 100, 0, 0), +(14439, 67, -8856.071, 654.5511, 96.43227, 100, 0, 0), +(14439, 68, -8861.03, 655.1785, 96.45397, 100, 0, 0), +(14439, 69, -8866.372, 651.38116, 96.297714, 100, 0, 0), +(14439, 70, -8884.347, 641.22296, 99.4233, 100, 0, 0), +(14439, 71, -8890.692, 637.1547, 99.8204, 100, 0, 0), +(14439, 72, -8906.768, 629.0008, 99.55399, 100, 0, 0), +(14439, 73, -8909.354, 625.2092, 99.55399, 100, 0, 0), +(14439, 74, -8911.279, 620.55646, 99.55399, 100, 0, 0), +(14439, 75, -8913.617, 614.4619, 99.55399, 100, 0, 0), +(14439, 76, -8921.304, 609.9665, 99.553986, 100, 0, 0), +(14439, 77, -8930.665, 623.9537, 99.63321, 100, 0, 0), +(14439, 78, -8929.692, 625.934, 99.553986, 100, 0, 0), +(14439, 79, -8923.158, 629.34064, 99.55399, 100, 0, 0), +(14439, 80, -8912.935, 627.77594, 99.55399, 100, 0, 0), +(14439, 81, -8906.326, 628.42816, 99.55399, 100, 0, 0), +(14439, 82, -8891.953, 636.0993, 99.55399, 100, 5000, 0), +(14439, 83, -8880.388, 642.80945, 97.86962, 100, 0, 0), +(14439, 84, -8866.74, 643.21515, 96.108, 100, 0, 0), +(14439, 85, -8857.599, 642.42804, 96.35401, 100, 0, 0), +(14439, 86, -8851.031, 643.18274, 96.40751, 100, 0, 0), +(14439, 87, -8841.356, 634.33606, 94.87717, 100, 0, 0), +(14439, 88, -8818.9375, 613.9858, 95.33711, 100, 0, 0), +(14439, 89, -8797.172, 592.83624, 97.59489, 100, 0, 0), +(14439, 90, -8793.838, 591.6427, 97.66595, 100, 0, 0), +(14439, 91, -8772.587, 606.4388, 97.19474, 100, 0, 0), +(14439, 92, -8768.8, 606.7465, 97.07879, 100, 0, 0), +(14439, 93, -8740.778, 578.358, 97.65093, 100, 0, 0), +(14439, 94, -8739.849, 573.6635, 97.479866, 100, 0, 0), +(14439, 95, -8742.695, 568.91644, 97.877884, 100, 0, 0), +(14439, 96, -8745.282, 561.0124, 97.6453, 100, 0, 0), +(14439, 97, -8743.528, 554.8785, 98.55012, 100, 0, 0), +(14439, 98, -8731.185, 540.56525, 101.23076, 100, 0, 0), +(14439, 99, -8715.927, 521.71313, 97.46964, 100, 0, 0), +(14439, 100, -8718.485, 516.16925, 96.796684, 100, 0, 0), +(14439, 101, -8719.92, 510.41788, 96.58051, 100, 0, 0), +(14439, 102, -8706.45, 492.0687, 95.754, 100, 0, 0), +(14439, 103, -8696.674, 476.42502, 95.35401, 100, 0, 0), +(14439, 104, -8697.08, 472.32367, 95.76096, 100, 0, 0), +(14439, 105, -8712.461, 456.7931, 96.97515, 100, 0, 0), +(14439, 106, -8721.935, 437.2447, 97.505424, 100, 0, 0), +(14439, 107, -8724.592, 422.58865, 97.90321, 100, 0, 0), +(14439, 108, -8725.233, 412.21182, 97.72274, 100, 0, 0), +(14439, 109, -8723.628, 408.02072, 97.82699, 100, 0, 0), +(14439, 110, -8719.919, 405.9682, 97.81381, 100, 0, 0), +(14439, 111, -8713.227, 404.88998, 98.48217, 100, 0, 0), +(14439, 112, -8691.036, 399.28354, 101.87355, 100, 0, 0), +(14439, 113, -8684.052, 399.10904, 102.17337, 100, 0, 0), +(14439, 114, -8673.338, 406.66763, 103.560715, 100, 0, 0), +(14439, 115, -8659.548, 416.714, 102.703674, 100, 0, 0), +(14439, 116, -8643.841, 434.49725, 101.354004, 100, 0, 0), +(14439, 117, -8637.046, 445.28604, 102.29749, 100, 0, 0), +(14439, 118, -8633.903, 454.77972, 102.22414, 100, 0, 0), +(14439, 119, -8634.247, 457.57434, 102.18744, 100, 0, 0), +(14439, 120, -8642.854, 476.16907, 102.55399, 100, 0, 0), +(14439, 121, -8641.72, 479.74405, 102.55401, 100, 0, 0), +(14439, 122, -8614.536, 501.1686, 103.175896, 100, 0, 0), +(14439, 123, -8610.833, 510.68784, 103.80662, 100, 0, 0), +(14439, 124, -8608.197, 516.80945, 104.47012, 100, 0, 0); + +-- Officer Pomeroy 14438 +-- path corrected +DELETE FROM `creature_movement` WHERE `id` = 90484; +UPDATE `creature` SET `position_x` = -8826.6045, `position_y` = 681.38184, `position_z` = 97.28126 WHERE `id` = 14438; +DELETE FROM `creature_movement_template` WHERE `entry` = 14438; +INSERT INTO `creature_movement_template` (`entry`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `script_id`) VALUES +(14438, 1, -8826.6045, 681.38184, 97.28126, 100, 5000, 0), +(14438, 2, -8842.063, 714.4598, 97.55399, 100, 0, 0), +(14438, 3, -8853.691, 737.02234, 100.78476, 100, 0, 0), +(14438, 4, -8869.02, 758.17505, 97.28695, 100, 0, 0), +(14438, 5, -8873.345, 758.4512, 96.61947, 100, 0, 0), +(14438, 6, -8880.728, 756.8039, 96.24257, 100, 0, 0), +(14438, 7, -8900.08, 779.33575, 89.73537, 100, 0, 0), +(14438, 8, -8908.083, 787.47943, 88.064926, 100, 0, 0), +(14438, 9, -8911.849, 788.13385, 87.49192, 100, 0, 0), +(14438, 10 , -8928.932, 775.021, 87.86979, 100, 0, 0), +(14438, 11 , -8939.538, 771.4059, 89.48743, 100, 0, 0), +(14438, 12 , -8962.231, 771.539, 94.13737, 100, 0, 0), +(14438, 13 , -8969.38, 773.04, 95.491196, 100, 0, 0), +(14438, 14 , -8982.435, 787.9675, 99.143845, 100, 0, 0), +(14438, 15 , -8988.74, 796.0562, 101.41231, 100, 0, 0), +(14438, 16 , -8994.252, 817.9813, 104.24161, 100, 0, 0), +(14438, 17 , -8992.901, 827.8486, 105.245514, 100, 5000, 0), +(14438, 18 , -8991.418, 831.4787, 105.51857, 100, 0, 0), +(14438, 19 , -8987.735, 838.6429, 105.8535, 100, 0, 0), +(14438, 20 , -8981.061, 844.9807, 105.78623, 100, 0, 0), +(14438, 21 , -8976.74, 854.08765, 105.943665, 100, 0, 0), +(14438, 22 , -8975.687, 875.33624, 106.722664, 100, 0, 0), +(14438, 23 , -8977.0205, 879.33563, 106.60473, 100, 0, 0), +(14438, 24 , -8983.05, 886.4566, 106.0557, 100, 0, 0), +(14438, 25 , -9002.962, 900.2066, 105.73605, 100, 0, 0), +(14438, 26 , -9006.293, 904.16595, 105.93901, 100, 0, 0), +(14438, 27 , -9016.06, 923.40845, 107.788734, 100, 0, 0), +(14438, 28 , -9016.432, 928.2142, 108.12979, 100, 0, 0), +(14438, 29 , -9005.371, 954.27234, 110.55287, 100, 0, 0), +(14438, 30 , -9000.655, 957.66907, 112.133026, 100, 0, 0), +(14438, 31 , -8988.076, 960.3045, 115.30632, 100, 0, 0), +(14438, 32 , -8961.927, 955.78107, 117.632065, 100, 0, 0), +(14438, 33 , -8953.663, 955.3211, 117.170044, 100, 0, 0), +(14438, 34 , -8920.106, 946.71765, 117.502, 100, 0, 0), +(14438, 35 , -8916.348, 943.68774, 117.32009, 100, 0, 0), +(14438, 36 , -8902.853, 923.7333, 114.53584, 100, 0, 0), +(14438, 37 , -8896.755, 914.3192, 111.26516, 100, 0, 0), +(14438, 38 , -8892.268, 913.3867, 110.75214, 100, 0, 0), +(14438, 39 , -8876.938, 921.7949, 107.52044, 100, 0, 0), +(14438, 40 , -8855.174, 931.5497, 102.02101, 100, 0, 0), +(14438, 41 , -8849.411, 931.1022, 102.71485, 100, 0, 0), +(14438, 42 , -8835.05, 940.1454, 105.36824, 100, 0, 0), +(14438, 43 , -8819.731, 951.83875, 100.95979, 100, 0, 0), +(14438, 44 , -8815.408, 951.99457, 100.958, 100, 0, 0), +(14438, 45 , -8805.506, 944.2154, 101.35402, 100, 0, 0), +(14438, 46 , -8801.645, 943.8826, 101.33978, 100, 0, 0), +(14438, 47 , -8774.448, 965.0911, 100.55399, 100, 0, 0), +(14438, 48 , -8741.579, 994.1904, 97.12727, 100, 0, 0), +(14438, 49 , -8736.561, 1002.4335, 96.02398, 100, 0, 0), +(14438, 50 , -8734.741, 1029.0597, 94.18169, 100, 0, 0), +(14438, 51 , -8739.745, 1057.9086, 89.916534, 100, 0, 0), +(14438, 52 , -8743.805, 1061.6417, 90.154, 100, 0, 0), +(14438, 53 , -8767.127, 1065.1029, 90.95401, 100, 0, 0), +(14438, 54 , -8774.271, 1068.6871, 90.80249, 100, 0, 0), +(14438, 55 , -8796.405, 1092.5201, 90.8025, 100, 0, 0), +(14438, 56 , -8797.778, 1100.0641, 90.8025, 100, 0, 0), +(14438, 57 , -8794.471, 1129.7848, 90.80248, 100, 0, 0), +(14438, 58 , -8782.961, 1143.3358, 90.80249, 100, 0, 0), +(14438, 59 , -8748.739, 1147.6006, 90.40249, 100, 0, 0), +(14438, 60 , -8733.698, 1142.6151, 90.40249, 100, 0, 0), +(14438, 61 , -8718.343, 1123.0289, 90.80249, 100, 0, 0), +(14438, 62 , -8718.974, 1096.3301, 90.46272, 100, 0, 0), +(14438, 63 , -8724.44, 1080.1276, 90.80249, 100, 0, 0), +(14438, 64 , -8736.404, 1072.752, 90.713524, 100, 0, 0), +(14438, 65 , -8738.63, 1069.1337, 90.55558, 100, 0, 0), +(14438, 66 , -8728.967, 1030.7166, 93.86056, 100, 0, 0), +(14438, 67 , -8730.614, 993.82605, 96.23467, 100, 0, 0), +(14438, 68 , -8736.167, 956.74915, 100.315636, 100, 0, 0), +(14438, 69 , -8736.422, 948.7537, 101.27374, 100, 0, 0), +(14438, 70 , -8734.122, 942.94196, 101.07282, 100, 0, 0), +(14438, 71 , -8712.0625, 915.35547, 101.35400, 100, 0, 0), +(14438, 72 , -8712.734, 911.00323, 101.354004, 100, 0, 0), +(14438, 73 , -8731.607, 894.3013, 101.00582, 100, 0, 0), +(14438, 74 , -8733.229, 890.0532, 101.37273, 100, 0, 0), +(14438, 75 , -8725.045, 877.95807, 102.75375, 100, 0, 0), +(14438, 76 , -8712.339, 860.64136, 97.451584, 100, 0, 0), +(14438, 77 , -8713.042, 852.7908, 96.953995, 100, 0, 0), +(14438, 78 , -8723.935, 837.57025, 96.154, 100, 0, 0), +(14438, 79 , -8727.033, 823.617, 97.09409, 100, 0, 0), +(14438, 80 , -8725.302, 811.90326, 97.24609, 100, 0, 0), +(14438, 81 , -8722.625, 807.19257, 97.44662, 100, 0, 0), +(14438, 82 , -8718.096, 792.9386, 97.23787, 100, 0, 0), +(14438, 83 , -8722.994, 780.9759, 98.14472, 100, 0, 0), +(14438, 84 , -8729.802, 771.00183, 98.13611, 100, 0, 0), +(14438, 85 , -8731.231, 765.0807, 98.21273, 100, 0, 0), +(14438, 86 , -8727.691, 755.94196, 98.30679, 100, 0, 0), +(14438, 87 , -8716.1875, 738.75885, 97.959816, 100, 0, 0), +(14438, 88 , -8716.432, 734.7947, 97.80666, 100, 0, 0), +(14438, 89 , -8730.757, 724.1091, 101.566315, 100, 0, 0), +(14438, 90 , -8741.676, 711.95276, 98.63757, 100, 0, 0), +(14438, 91 , -8743.053, 707.6099, 98.52741, 100, 0, 0), +(14438, 92 , -8738.356, 701.60657, 98.754, 100, 0, 0), +(14438, 93 , -8739.159, 697.4417, 98.87494, 100, 0, 0), +(14438, 94 , -8772.889, 672.07, 103.154, 100, 0, 0), +(14438, 95 , -8777.839, 671.7857, 103.15387, 100, 0, 0), +(14438, 96 , -8789.471, 681.72363, 101.99133, 100, 0, 0), +(14438, 97 , -8800.104, 684.8838, 101.27393, 100, 0, 0), +(14438, 98 , -8804.825, 684.38684, 100.78233, 100, 0, 0), +(14438, 99 , -8832.582, 673.52954, 98.35401, 100, 0, 0), +(14438, 100, -8854.741, 658.60895, 96.79449, 100, 0, 0), +(14438, 101, -8873.732, 646.583, 96.09485, 100, 0, 0), +(14438, 102, -8887.442, 638.54376, 99.55399, 100, 0, 0), +(14438, 103, -8898.564, 632.5816, 99.55399, 100, 0, 0), +(14438, 104, -8909.45, 626.0978, 99.55399, 100, 0, 0), +(14438, 105, -8910.427, 623.763, 99.55399, 100, 0, 0), +(14438, 106, -8915.915, 613.1712, 99.554, 100, 0, 0), +(14438, 107, -8922.533, 609.69055, 99.554, 100, 0, 0), +(14438, 108, -8925.138, 610.2278, 99.554, 100, 0, 0), +(14438, 109, -8931.703, 623.3658, 99.62185, 100, 0, 0), +(14438, 110, -8930.488, 625.82227, 99.553986, 100, 0, 0), +(14438, 111, -8922.257, 630.2243, 99.55399, 100, 0, 0), +(14438, 112, -8919.293, 630.1833, 99.553986, 100, 0, 0), +(14438, 113, -8911.858, 627.912, 99.55399, 100, 0, 0), +(14438, 114, -8906.694, 628.94806, 99.55399, 100, 0, 0), +(14438, 115, -8886.024, 639.9803, 99.55399, 100, 0, 0), +(14438, 116, -8875.899, 645.8838, 96.14633, 100, 0, 0), +(14438, 117, -8852.701, 660.43933, 97.03088, 100, 0, 0), +(14438, 118, -8827.224, 677.1314, 97.70704, 100, 0, 0); + +-- Erich Lohan 3627 +-- path corrected +DELETE FROM `creature_movement_scripts` WHERE `id` IN ( 9044502, 9044504, 9044507, 9044512, 9044517, 9044521, 9044526, 9044530, 9044535, 9044539, 9044543, 9044547, 9044552, 9044557, 9044561); +-- Events list for Erich Lohan +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES +(362701, 3627, 0, 1, 0, 100, 3, 1000, 30000, 60000, 120000, 362701, 362702, 0, 'Erich Lohan - Talk - OOC'); +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(362701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1192, 1193, 1194, 1195, 0, 0, 0, 0, 0, 'Erich Lohan - Talk - OOC'), +(362702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1196, 1197, 1198, 1199, 0, 0, 0, 0, 0, 'Erich Lohan - Talk - OOC'); +UPDATE `creature_template` SET `ai_name` = 'EventAI' WHERE `entry` = 3627; +DELETE FROM `creature_movement` WHERE `id` = 90445; +UPDATE `creature` SET `position_x` = -9034.635, `position_y` = 873.8468, `position_z` = 110.45542 WHERE `guid` = 90445; +DELETE FROM `creature_movement_template` WHERE entry = 3627; +INSERT INTO `creature_movement_template` (`entry`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `script_id`) VALUES +(3627, 1 , -9034.635, 873.8468, 110.45542, 100, 0, 0), +(3627, 2 , -9035.321, 861.9573, 107.154, 100, 0, 0), +(3627, 3 , -9034.322, 850.70685, 107.154, 100, 0, 0), +(3627, 4 , -9029.455, 838.80646, 107.15399, 100, 0, 0), +(3627, 5 , -9024.216, 832.8253, 105.754005, 100, 0, 0), +(3627, 6 , -9015.763, 824.17285, 105.553986, 100, 0, 0), +(3627, 7 , -9009.887, 824.89044, 105.45737, 100, 0, 0), +(3627, 8 , -9003.698, 831.9128, 106.09863, 100, 0, 0), +(3627, 9 , -8996.925, 835.7118, 105.89727, 100, 0, 0), +(3627, 10, -8989.419, 836.58997, 105.86534, 100, 0, 0), +(3627, 11, -8981.592, 844.1351, 105.820435, 100, 0, 0), +(3627, 12, -8975.935, 855.59845, 106.035545, 100, 0, 0), +(3627, 13, -8965.941, 861.0381, 106.12975, 100, 0, 0), +(3627, 14, -8953.057, 862.613, 104.917076, 100, 0, 0), +(3627, 15, -8938.807, 860.5985, 102.82739, 100, 0, 0), +(3627, 16, -8926.196, 858.409, 99.511894, 100, 0, 0), +(3627, 17, -8915.191, 852.04144, 96.84531, 100, 0, 0), +(3627, 18, -8907.254, 842.3125, 95.751564, 100, 0, 0), +(3627, 19, -8899.501, 830.12036, 93.38386, 100, 0, 0), +(3627, 20, -8898.51, 814.8087, 89.55783, 100, 0, 0), +(3627, 21, -8900.932, 798.8295, 87.58461, 100, 0, 0), +(3627, 22, -8910.074, 791.3167, 87.43847, 100, 0, 0), +(3627, 23, -8919.713, 783.53015, 87.55399, 100, 0, 0), +(3627, 24, -8926.364, 776.04004, 87.37037, 100, 0, 0), +(3627, 25, -8938.711, 771.2658, 89.29464, 100, 0, 0), +(3627, 26, -8955.9375, 770.7839, 92.95392, 100, 0, 0), +(3627, 27, -8967.881, 773.459, 95.29695, 100, 0, 0), +(3627, 28, -8974.038, 780.0628, 96.830635, 100, 0, 0), +(3627, 29, -8984.748, 789.0114, 99.593796, 100, 0, 0), +(3627, 30, -8988.526, 796.8366, 101.55564, 100, 0, 0), +(3627, 31, -8991.243, 807.8743, 103.65796, 100, 0, 0), +(3627, 32, -8994.158, 821.1847, 104.61137, 100, 0, 0), +(3627, 33, -8993.103, 830.43097, 105.49524, 100, 0, 0), +(3627, 34, -8988.234, 838.76794, 105.830765, 100, 0, 0), +(3627, 35, -8981.39, 845.93054, 105.69717, 100, 0, 0), +(3627, 36, -8975.966, 856.02454, 106.047874, 100, 0, 0), +(3627, 37, -8975.371, 869.4717, 106.822136, 100, 0, 0), +(3627, 38, -8976.599, 878.00903, 106.61893, 100, 0, 0), +(3627, 39, -8984.586, 888.0883, 105.74467, 100, 0, 0), +(3627, 40, -8994.966, 896.75665, 105.62777, 100, 0, 0), +(3627, 41, -9004.082, 902.9594, 105.85836, 100, 0, 0), +(3627, 42, -9012.935, 918.2857, 107.09058, 100, 0, 0), +(3627, 43, -9013.746, 934.3277, 108.432205, 100, 0, 0), +(3627, 44, -9008.433, 946.70825, 109.30699, 100, 0, 0), +(3627, 45, -9005.583, 953.9983, 110.48592, 100, 0, 0), +(3627, 46, -8996.755, 958.68243, 113.1283, 100, 0, 0), +(3627, 47, -8984.302, 960.6096, 115.732765, 100, 0, 0), +(3627, 48, -8974.652, 958.9971, 116.92094, 100, 0, 0), +(3627, 49, -8959.526, 956.1835, 117.53096, 100, 0, 0), +(3627, 50, -8946.355, 955.13165, 116.94782, 100, 0, 0), +(3627, 51, -8931.708, 949.62445, 117.34928, 100, 0, 0), +(3627, 52, -8920.861, 949.9142, 117.362656, 100, 0, 0), +(3627, 53, -8913.316, 939.4435, 116.99974, 100, 0, 0), +(3627, 54, -8901.914, 921.08594, 113.86572, 100, 0, 0), +(3627, 55, -8889.96, 900.97235, 107.442894, 100, 0, 0), +(3627, 56, -8888.45, 891.4626, 103.9027, 100, 0, 0), +(3627, 57, -8892.7, 874.5964, 99.52523, 100, 0, 0), +(3627, 58, -8899.321, 861.36035, 96.3868, 100, 0, 0), +(3627, 59, -8907.177, 849.31134, 96.34712, 100, 0, 0), +(3627, 60, -8915.933, 851.704, 96.932594, 100, 0, 0), +(3627, 61, -8926.026, 858.4897, 99.47577, 100, 0, 0), +(3627, 62, -8938.801, 860.7874, 102.8409, 100, 0, 0), +(3627, 63, -8953.069, 862.7512, 104.92075, 100, 0, 0), +(3627, 64, -8966.061, 861.0922, 106.138145, 100, 0, 0), +(3627, 65, -8976.133, 855.7526, 106.058304, 100, 0, 0), +(3627, 66, -8981.173, 845.29376, 105.75669, 100, 0, 0), +(3627, 67, -8989.85, 837.08203, 105.85746, 100, 0, 0), +(3627, 68, -8997.29, 835.3158, 105.9672, 100, 0, 0), +(3627, 69, -9003.969, 831.63586, 106.08048, 100, 0, 0), +(3627, 70, -9009.577, 825.371, 105.47429, 100, 0, 0), +(3627, 71, -9015.882, 824.13556, 105.553986, 100, 0, 0), +(3627, 72, -9024.274, 832.87933, 105.754005, 100, 0, 0), +(3627, 73, -9029.402, 838.9516, 107.15399, 100, 0, 0), +(3627, 74, -9034.356, 850.774, 107.154, 100, 0, 0), +(3627, 75, -9035.346, 861.90265, 107.154, 100, 0, 0), +(3627, 76, -9034.61, 874.1747, 110.45368, 100, 0, 0), +(3627, 77, -9030.81, 883.0651, 110.44071, 100, 1000, 0); + +-- Stormwind City Patroller 1976 +-- 2 guards at Valley of Heroes +UPDATE `creature` SET `position_x` = -8926.496, `position_y` = 547.9117, `position_z` = 94.36078 WHERE `guid` = 79675; +UPDATE `creature` SET `position_x` = -8921.255, `position_y` = 541.5815, `position_z` = 94.345055 WHERE `guid` = 79670; +-- waypoints +DELETE FROM `creature_movement` WHERE `id` IN (79675,79670); +INSERT INTO `creature_movement` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `script_id`) VALUES +-- 79675 +(79675, 1 , -8926.496, 547.9117, 94.36078 , 100, 0, 0), +(79675, 2 , -8912.502, 560.546, 93.694756 , 100, 0, 0), +(79675, 3 , -8904.495, 566.9569, 93.143295, 100, 0, 0), +(79675, 4 , -8898.334, 572.24176, 92.81866, 100, 0, 0), +(79675, 5 , -8896.334, 569.8383, 92.76499 , 100, 0, 0), +(79675, 6 , -8910.702, 557.90906, 93.57455, 100, 0, 0), +(79675, 7 , -8928.997, 544.5078, 94.39267 , 100, 0, 0), +(79675, 8 , -8927.138, 534.4533, 94.67518 , 100, 0, 0), +(79675, 9 , -8915.321, 517.5744, 93.954 , 100, 0, 0), +(79675, 10, -8916.1455, 501.6403, 93.95401, 100, 0, 0), +(79675, 11, -8934.112, 502.02863, 93.954 , 100, 0, 0), +(79675, 12, -8940.811, 511.40945, 96.03233, 100, 0, 0), +(79675, 13, -8947.672, 515.8253, 96.66118 , 100, 0, 0), +(79675, 14, -8961.026, 516.0897, 96.75399 , 100, 0, 0), +(79675, 15, -8960.283, 529.70825, 96.601 , 100, 0, 0), +(79675, 16, -8974.147, 544.01447, 94.13085, 100, 0, 0), +(79675, 17, -8981.909, 554.18823, 94.10508, 100, 0, 0), +(79675, 18, -8970.087, 564.66046, 93.954 , 100, 0, 0), +(79675, 19, -8960.388, 571.90063, 93.95401, 100, 0, 0), +(79675, 20, -8953.924, 570.0947, 93.89443 , 100, 0, 0), +(79675, 21, -8943.239, 558.2567, 93.95401 , 100, 0, 0), +(79675, 22, -8932.935, 546.86414, 94.4136 , 100, 0, 0), +-- 79670 +(79670, 1 , -8921.255, 541.5815, 94.345055, 100, 0, 0), +(79670, 2 , -8908.754, 551.8247, 93.764854, 100, 0, 0), +(79670, 3 , -8893.195, 563.9041, 92.846146, 100, 0, 0), +(79670, 4 , -8895.691, 566.93414, 92.76838, 100, 0, 0), +(79670, 5 , -8910.966, 554.7331, 93.72926 , 100, 0, 0), +(79670, 6 , -8923.191, 544.4699, 94.34877 , 100, 0, 0), +(79670, 7 , -8934.748, 543.7842, 94.43737 , 100, 0, 0), +(79670, 8 , -8946.599, 558.0619, 93.95401 , 100, 0, 0), +(79670, 9 , -8966.307, 561.7617, 93.954 , 100, 0, 0), +(79670, 10, -8967.722, 542.7493, 94.28108 , 100, 0, 0), +(79670, 11, -8956.603, 532.3937, 96.62912 , 100, 0, 0), +(79670, 12, -8961.372, 518.6285, 96.75399 , 100, 0, 0), +(79670, 13, -8947.429, 510.66342, 96.41146, 100, 0, 0), +(79670, 14, -8935.815, 494.46545, 94.050964, 100, 0, 0), +(79670, 15, -8926.802, 490.17264, 93.954 , 100, 0, 0), +(79670, 16, -8918.674, 495.736, 93.95402 , 100, 0, 0), +(79670, 17, -8912.285, 501.35205, 93.954 , 100, 0, 0), +(79670, 18, -8908.821, 507.93185, 93.954 , 100, 0, 0), +(79670, 19, -8909.695, 514.50336, 93.954 , 100, 0, 0), +(79670, 20, -8912.723, 523.9491, 93.954 , 100, 0, 0), +(79670, 21, -8923.787, 536.1689, 94.77347, 100, 0, 0); + +-- Ironforge Mountaineer 727 +-- custom made path corrected +DELETE FROM `creature_movement` WHERE `id` = 146; +INSERT INTO `creature_movement` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `script_id`) VALUES +(146,1 ,-5247.748,-515.876,386.3603,100,30000,0), +(146,2 ,-5244.334,-523.7012,387.8603,100,0,0), +(146,3 ,-5243.176,-543.9634,395.2614,100,0,0), +(146,4 ,-5242.821,-564.1043,402.5114,100,0,0), +(146,5 ,-5239.889,-571.1794,405.0498,100,0,0), +(146,6 ,-5232.076,-573.5452,405.4427,100,0,0), +(146,7 ,-5227.861,-572.004,404.6927,100,0,0), +(146,8 ,-5226.727,-562.0967,408.5633,100,0,0), +(146,9 ,-5226.727,-562.0967,408.5633,2.199115,60000,0), +(146,10,-5227.023,-570.0957,405.3177,100,0,0), +(146,11,-5237.249,-572.7875,405.4248,100,0,0), +(146,12,-5242.318,-566.8207,403.5498,100,0,0), +(146,13,-5242.512,-533.8203,391.5114,100,0,0); + +-- Felix Whindlebolt 8416 +UPDATE `creature` SET `wander_distance` = 7, `movement_type` = 1 WHERE `id` = 8416; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Increase Droprate of Samophlange Manual Page +UPDATE `creature_loot_template` SET `ChanceOrQuestChance` = -20 WHERE `entry`=3283 AND `item`=11148 AND `groupid`=0 AND `patch_min`=0 AND `patch_max`=10; +UPDATE `creature_loot_template` SET `ChanceOrQuestChance` = -20 WHERE `entry`=3286 AND `item`=11148 AND `groupid`=0 AND `patch_min`=0 AND `patch_max`=10; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Correct Quest Complete Text For Dawn's Gambit (credit cmangos) +UPDATE `quest_template` SET `OfferRewardText` = "You did it! Vectus is defeated! And Dawn's Gambit... did it work?$B$BHm... maybe my device wasn't the success I had hoped, but I'm glad you were able to handle things anyway. Well done, $N!$B$BThe Argent Dawn, and the good people of Azeroth, are in your debt." WHERE `entry` = 4771; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Update Stormwind Guards +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 1 WHERE `guid` = 79840; +DELETE FROM `creature` WHERE `guid` IN (189, 190); +DELETE FROM `game_event_creature_data` WHERE `guid` IN (189, 190); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Remove Duplicate Gameobjects +DELETE FROM `gameobject` WHERE `guid` IN (SELECT `guid` FROM `pool_gameobject` WHERE `pool_entry` = 1319); +DELETE FROM `pool_gameobject` WHERE `pool_entry` = 1319; +DELETE FROM `pool_template` WHERE `entry` = 1319; +UPDATE `gameobject` SET `spawntimesecsmin` = 300, `spawntimesecsmax` = 300 WHERE `guid`=2223; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Remove Creature in Wrong Place +DELETE FROM `creature` WHERE `guid` = 5608; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Add Script For Suspicious Hoofprints +UPDATE `quest_template` SET `CompleteScript` = 1284 WHERE `entry`=1284; +DELETE FROM `quest_end_scripts` WHERE `id`=1284; +INSERT INTO `quest_end_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1284, 0, 0, 1, 1, 0, 0, 0, 4944, 30, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Suspicious Hoofprints: Captain Garran Vimes - Emote OneShotTalk'), +(1284, 0, 0, 0, 0, 0, 0, 0, 4944, 30, 8, 2, 1753, 0, 0, 0, 0, 0, 0, 0, 0, 'Suspicious Hoofprints: Captain Garran Vimes - Say Text'), +(1284, 1, 0, 10, 5088, 30297, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -3715.15, -4523.85, 25.917, 4.76475, 0, 'Suspicious Hoofprints: Summon Creature Falgran Hastil'), +(1284, 3, 0, 3, 0, 3162, 1, 2, 5088, 50, 8, 2, 0, 0, 0, 0, -3714.11, -4531.68, 25.8337, 0, 0, 'Suspicious Hoofprints: Falgran Hastil - Move'), +(1284, 5, 0, 3, 0, 3864, 1, 2, 5088, 50, 8, 2, 0, 0, 0, 0, -3714.36, -4537.47, 25.8337, 0, 0, 'Suspicious Hoofprints: Falgran Hastil - Move'), +(1284, 6, 0, 3, 0, 4620, 1, 2, 5088, 50, 8, 2, 0, 0, 0, 0, -3717.07, -4542.72, 25.8337, 0, 0, 'Suspicious Hoofprints: Falgran Hastil - Move'), +(1284, 6, 0, 0, 0, 0, 0, 0, 4948, 30, 8, 2, 1754, 0, 0, 0, 0, 0, 0, 0, 0, 'Suspicious Hoofprints: Adjutant Tesoran - Say Text'), +(1284, 6, 0, 1, 1, 0, 0, 0, 4948, 30, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Suspicious Hoofprints: Adjutant Tesoran - Emote OneShotTalk'), +(1284, 10, 0, 3, 0, 4548, 1, 2, 5088, 50, 8, 2, 0, 0, 0, 0, -3724.38, -4545.64, 25.8337, 0, 0, 'Suspicious Hoofprints: Falgran Hastil - Move'), +(1284, 14, 0, 35, 1, 0, 0, 0, 5088, 50, 8, 2, 0, 0, 0, 0, 0, 0, 0, 3.92117, 0, 'Suspicious Hoofprints: Falgran Hastil - Set Orientation'), +(1284, 16, 0, 1, 16, 0, 0, 0, 5088, 50, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Suspicious Hoofprints: Falgran Hastil - Emote OneShotKneel'), +(1284, 19, 0, 1, 1, 0, 0, 0, 5088, 50, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Suspicious Hoofprints: Falgran Hastil - Emote OneShotTalk'), +(1284, 19, 0, 0, 0, 0, 0, 0, 5088, 50, 8, 2, 1752, 0, 0, 0, 0, 0, 0, 0, 0, 'Suspicious Hoofprints: Falgran Hastil - Say Text'), +(1284, 23, 0, 1, 66, 0, 0, 0, 5088, 50, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Suspicious Hoofprints: Falgran Hastil - Emote OneShotSalute'), +(1284, 24, 0, 25, 1, 0, 0, 0, 5088, 50, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Suspicious Hoofprints: Falgran Hastil - Run'), +(1284, 26, 0, 60, 2, 0, 0, 0, 5088, 50, 8, 2, 0, 5088, 0, 0, 0, 0, 0, 0, 0, 'Suspicious Hoofprints: Falgran Hastil - Start Waypoints'); + +INSERT INTO `creature_movement_template` (`entry`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `waittime`, `wander_distance`, `script_id`) VALUES +(5088, 1, -3717.860107, -4542.540039, 26.083700, 100, 0, 0, 0), +(5088, 2, -3714.360107, -4539.790039, 26.083700, 100, 0, 0, 0), +(5088, 3, -3712.860107, -4535.540039, 26.083700, 100, 0, 0, 0), +(5088, 4, -3714.110107, -4528.790039, 26.083700, 100, 0, 0, 0), +(5088, 5, -3714.360107, -4527.790039, 26.083700, 100, 0, 0, 0), +(5088, 6, -3714.610107, -4526.540039, 26.083700, 100, 0, 0, 0), +(5088, 7, -3714.830078, -4524.939941, 25.833700, 100, 0, 0, 0); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Correct Backstab Spell for Defias Pathstalker 121 (credit cmangos) +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES +(1210, 'Westfall - Defias Pathstalker', 7159, 65, 1, 0, 0, 0, 1, 7, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Add Eliza Spawn Text and Spawn Position +DELETE FROM `creature_ai_scripts` WHERE `id`=31403; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(31403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, 'Eliza - Say Text'); + +DELETE FROM `creature_ai_scripts` WHERE `id`=31413; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(31413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 'Eliza - Say on Spawn'); + +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES +(31413, 314, 0, 11, 0, 100, 0, 0, 0, 0, 0, 31413, 0, 0, 'Eliza - Say on Spawn'); + +DELETE FROM `quest_end_scripts` WHERE `id`=254; +INSERT INTO `quest_end_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(254, 1, 0, 10, 314, 3000000, 0, 0, 0, 0, 0, 0, 8, 0, -1, 1, -10270, 53.9225, 41.8903, 6.15428, 0, 'Digging Through the Dirt: Summon Creature'); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Correct Some Creature Loot (Credit TrinityCore) +DELETE FROM `creature_loot_template` WHERE `entry` IN (11374); +UPDATE `creature_template` SET `loot_id` = 0, `skinning_loot_id` = 0 WHERE `entry` IN (11374); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Events list for Dustbelcher Mystic +UPDATE `creature_template` SET `ai_name` = 'EventAI' WHERE `entry` = 2907; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES +(290701, 2907, 0, 4, 0, 10, 0, 0, 0, 0, 0, 290701, 0, 0, 'Dustbelcher Mystic - Talk on Aggro'); +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(290701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1925, 1926, 0, 0, 0, 0, 0, 0, 0, 'Dustbelcher Mystic - Talk'); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Events list for Blackrock Scout +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES +(406402, 4064, 0, 4, 0, 10, 0, 0, 0, 0, 0, 406402, 0, 0, 'Blackrock Scout - Talk on Aggro'); +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(406402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1874, 1875, 0, 0, 0, 0, 0, 0, 0, 'Blackrock Scout - Talk'); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Correct respawn time +-- Tethis 420 600 +-- King Bangalash 420 600 +-- Bhag'thera 420 600 +-- Mai'Zoth 1800 1800 +UPDATE `creature` SET `spawntimesecsmin` = 240, `spawntimesecsmax` = 360 WHERE `id` IN (730,731,728,818); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Correct Injured Stockades Guard +INSERT INTO `creature_addon` (`guid`, `mount_display_id`, `stand_state`, `auras`) VALUES +(79581, 0, 1, NULL); +UPDATE `creature_template` SET `script_name`='' WHERE `entry`=4996 AND `patch`=0; +UPDATE `creature` SET `position_x` = -8767.58, `position_y` = 819.59, `position_z` = 97.718, `orientation` = 5.00909 WHERE `guid` = 79581; +UPDATE `creature` SET `position_x` = -8764.93, `position_y` = 815.262, `position_z` = 97.718, `orientation` = 0.593412 WHERE `guid` = 79550; +UPDATE `creature` SET `position_x` = -8763.87, `position_y` = 813.766, `position_z` = 97.718, `orientation` = 0.645772 WHERE `guid` = 79580; +UPDATE `creature` SET `position_x` = -8762.81, `position_y` = 812.356, `position_z` = 97.718, `orientation` = 0.715585 WHERE `guid` = 79522; +UPDATE `creature` SET `position_x` = -8757.44, `position_y` = 812.397, `position_z` = 97.718, `orientation` = 2.28638 WHERE `guid` = 79558; +UPDATE `creature` SET `position_x` = -8756.31, `position_y` = 813.461, `position_z` = 97.718, `orientation` = 2.44346 WHERE `guid` = 90457; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Objects Should Not Despawn On Use +UPDATE `gameobject` SET `spawntimesecsmin` = 0, `spawntimesecsmax` = 0 WHERE `id` IN (149481, 149480, 149482, 149483); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Remove Incorrect Creature +DELETE FROM `creature` WHERE `guid` = 23898; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Fix Creature Stuck in Tree +UPDATE `creature` SET `position_x` = 1610.617, position_y = -5611.91, `position_z` = 101.6521, `movement_type` = 1, `wander_distance` = 5 WHERE `guid` = 56554; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Nicky: New creature spell lists. (We should really sync with cmangos ACID) +-- brotalnia: No we should not throw our own data we've worked on for years and blindly replace it with another project's. We should only update things based on sniffs. No sniff = no proof! +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES +(18470, 'Western Plaguelands - Foulmane', 3391, 100, 0, 0, 0, 0, 8, 12, 15, 20, 0, 3427, 100, 1, 0, 0, 32, 10, 30, 15, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Dream Bough Creatures Should be Grouped +UPDATE `creature` SET `movement_type` = 0, `wander_distance` = 0 WHERE `guid` IN (51280, 51259, 51237, 51285, 51241, 51262, 51289, 51266, 51245, 51291, 51268, 51247, 51293, 51270, 51249, 51250, 51294, 51271, 51292, 51248, 51269, 51298, 51255, 51276, 51283, 51282, 51239, 51281, 51238, 51260, 51296, 51252, 51273, 51254, 51275, 51297, 51253, 51274, 51278); + +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 15 WHERE `guid` = 51273; +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(51273, 51252, 4, 2.35619, 11), +(51273, 51296, 4, 3.92699, 11); + +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 15 WHERE `guid` = 51260; +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(51260, 51281, 4, 2.35619, 11), +(51260, 51238, 4, 3.92699, 11); + +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 15 WHERE `guid` = 51239; +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(51239, 51283, 4, 2.35619, 11), +(51239, 51282, 4, 3.92699, 11); + +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 15 WHERE `guid` = 51276; +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(51276, 51255, 4, 2.35619, 11), +(51276, 51298, 4, 3.92699, 11); + +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 15 WHERE `guid` = 51269; +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(51269, 51248, 4, 2.35619, 11), +(51269, 51292, 4, 3.92699, 11); + +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 15 WHERE `guid` = 51271; +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(51271, 51294, 4, 2.35619, 11), +(51271, 51250, 4, 3.92699, 11); + +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 15 WHERE `guid` = 51293; +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(51293, 51270, 4, 2.35619, 11), +(51293, 51249, 4, 3.92699, 11); + +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 15 WHERE `guid` = 51247; +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(51247, 51268, 4, 2.35619, 11), +(51247, 51291, 4, 3.92699, 11); + +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 15 WHERE `guid` = 51289; +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(51289, 51266, 4, 2.35619, 11), +(51289, 51245, 4, 3.92699, 11); + +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 15 WHERE `guid` = 51262; +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(51262, 51241, 4, 2.35619, 11), +(51262, 51285, 4, 3.92699, 11); + +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 15 WHERE `guid` = 51280; +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(51280, 51259, 4, 2.35619, 11), +(51280, 51237, 4, 3.92699, 11); + +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 15 WHERE `guid` = 51254; +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(51254, 51275, 4, 2.35619, 11), +(51254, 51297, 4, 3.92699, 11); + +UPDATE `creature` SET `position_x` = -3009.146, `position_y` = 2113.024, `position_z` = 30.851 WHERE `guid` IN (51253, 51274, 51278); +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 15 WHERE `guid` = 51253; +INSERT INTO `creature_groups` (`leader_guid`, `member_guid`, `dist`, `angle`, `flags`) VALUES +(51253, 51274, 4, 2.35619, 11), +(51253, 51278, 4, 3.92699, 11); + +-- Remove Duplicate Object +DELETE FROM `gameobject` WHERE `guid` = 42329; +DELETE FROM `pool_gameobject` WHERE `guid` = 42329; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Dusty Reliquary Does Not Despawn on Use +UPDATE `gameobject` SET `spawntimesecsmin` = 0, `spawntimesecsmax` = 0 WHERE `guid` = 49372; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Rock Stalker and Stonelash Flayer Share Spawns +UPDATE `creature` SET `id` = 11737, `id2` = 11739 WHERE `id` IN (11737, 11739); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Twilight Geolord and Twilight Avengers Share Spawns +UPDATE `creature` SET `id` = 11880, `id2` = 11881 WHERE `id` IN (11880, 11881); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Twilight Avengers and Twilight Overlord Share Spawns +UPDATE `creature` SET `id` = 11880, `id2` = 15213 WHERE `guid` IN (43078, 43079, 43080, 43081, 43082, 43083, 43084, 43085, 43086, 43087, 43088, 43089, 43090, 43091, 43092, 43093, 43094, 43095, 43096, 42954, 42946, 42945, 42987, 42986); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Creatures Should Wander +UPDATE `creature` SET `movement_type` = 1, `wander_distance` = 1 WHERE `guid` IN (41059, 41061, 41058, 41039); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Stonelash Scorpid and Sand Skitterer Share Spawns +UPDATE `creature` SET `id` = 11735, `id2` = 11738 WHERE `id` IN (11735, 11738); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Add Script For Hive Ashi Pod +UPDATE `creature_template` SET `spawn_spell_id` = 10389 WHERE `entry` = 13301; +DELETE FROM `creature` WHERE `guid` IN (300179, 300178); +DELETE FROM `creature_groups` WHERE `leader_guid`=300178; + +INSERT INTO `gameobject_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(49376, 0, 0, 10, 13301, 180000, 2, 0, 0, 0, 0, 0, 8, 4937601, 0, 1, -7183.78, 439.759, 64.2477, 6.14356, 0, 'Hive Ashi Pod - Summon Creature'), +(49376, 0, 0, 10, 13301, 180000, 2, 0, 0, 0, 0, 0, 8, 4937602, 0, 1, -7176.54, 441.411, 64.1541, 3.45575, 0, 'Hive Ashi Pod - Summon Creature'); + +INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(4937601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8675, 0, 0, 0, 0, 0, 0, 0, 0, 'Hive Ashi Ambusher - Talk'); + +INSERT INTO `generic_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(4937602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8676, 0, 0, 0, 0, 0, 0, 0, 0, 'Hive Ashi Ambusher - Talk'); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Quests 4508 and 4509 are Alliance / Horde Only +UPDATE `quest_template` SET `RequiredRaces` = 77 WHERE `entry` = 4508; +UPDATE `quest_template` SET `RequiredRaces` = 178 WHERE `entry` = 4509; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Plaguehound Runt and Plaguebat Share Spawns +UPDATE `creature` SET `id` = 8596, `id2` = 8600 WHERE `id` IN (8596, 8600); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Create new pool to hold Small Lockbox spawns in Western Plaguelands. +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(3587, 9, 'Western Plaguelands - Small Lockbox', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(175802, 3587, 'Western Plaguelands - Small Lockbox'); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Create new pool to hold Moontouched Feather spawns in Winterspring +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`, `patch_min`, `patch_max`) VALUES +(3588, 30, 'Winterspring - Moontouched Feather', 0, 10); +INSERT INTO `pool_gameobject_template` (`id`, `pool_entry`, `description`) VALUES +(175407, 3588, 'Winterspring - Moontouched Feather'); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Remove Duplicate Object +DELETE FROM `gameobject` WHERE `guid` IN (SELECT `guid` FROM `pool_gameobject` WHERE `pool_entry` = 417); +DELETE FROM `pool_gameobject` WHERE `pool_entry` = 417; +DELETE FROM `pool_pool` WHERE `pool_id` = 417; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Scarlet Mage and Scarlet Knight Share Spawns +UPDATE `creature` SET `id` = 1826, `id2` = 1833 WHERE `id` IN (1826, 1833); +-- Except +UPDATE `creature` SET `id` = 1833, `id2` = 0 WHERE `guid` IN (45381,45377, 47157, 45379); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Correct Skeletal Horror Spell List +REPLACE INTO `creature_spells` (`entry`, `name`, `spellId_1`, `probability_1`, `castTarget_1`, `targetParam1_1`, `targetParam2_1`, `castFlags_1`, `delayInitialMin_1`, `delayInitialMax_1`, `delayRepeatMin_1`, `delayRepeatMax_1`, `scriptId_1`, `spellId_2`, `probability_2`, `castTarget_2`, `targetParam1_2`, `targetParam2_2`, `castFlags_2`, `delayInitialMin_2`, `delayInitialMax_2`, `delayRepeatMin_2`, `delayRepeatMax_2`, `scriptId_2`, `spellId_3`, `probability_3`, `castTarget_3`, `targetParam1_3`, `targetParam2_3`, `castFlags_3`, `delayInitialMin_3`, `delayInitialMax_3`, `delayRepeatMin_3`, `delayRepeatMax_3`, `scriptId_3`, `spellId_4`, `probability_4`, `castTarget_4`, `targetParam1_4`, `targetParam2_4`, `castFlags_4`, `delayInitialMin_4`, `delayInitialMax_4`, `delayRepeatMin_4`, `delayRepeatMax_4`, `scriptId_4`, `spellId_5`, `probability_5`, `castTarget_5`, `targetParam1_5`, `targetParam2_5`, `castFlags_5`, `delayInitialMin_5`, `delayInitialMax_5`, `delayRepeatMin_5`, `delayRepeatMax_5`, `scriptId_5`, `spellId_6`, `probability_6`, `castTarget_6`, `targetParam1_6`, `targetParam2_6`, `castFlags_6`, `delayInitialMin_6`, `delayInitialMax_6`, `delayRepeatMin_6`, `delayRepeatMax_6`, `scriptId_6`, `spellId_7`, `probability_7`, `castTarget_7`, `targetParam1_7`, `targetParam2_7`, `castFlags_7`, `delayInitialMin_7`, `delayInitialMax_7`, `delayRepeatMin_7`, `delayRepeatMax_7`, `scriptId_7`, `spellId_8`, `probability_8`, `castTarget_8`, `targetParam1_8`, `targetParam2_8`, `castFlags_8`, `delayInitialMin_8`, `delayInitialMax_8`, `delayRepeatMin_8`, `delayRepeatMax_8`, `scriptId_8`) VALUES (2020, 'Duskwood - Skeletal Horror', 7399, 100, 1, 0, 0, 32, 5, 20, 20, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Shared Spawns At The Fungal Vale +UPDATE `creature` SET `id` = 8529, `id2` = 8532, `id3` = 8542, `id4` = 8545 WHERE `guid` IN (92706, 92705, 92517, 92674, 92793, 92513, 92515, 92514, 92672, 92707, 92374, 92324, 92519, 92708, 92521, 91925, 92261, 91928, 92709, 92520, 92380, 92378, 91931, 91930); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Shared Spawns At Browman Mill / The Noxious Glade +UPDATE `creature` SET `id` = 8528, `id2` = 8529, `id3` = 8532, `id4` = 8542 WHERE `guid` IN (92810, 92809, 92474, 92547, 92654, 92653, 92650, 92651, 92652, 92476, 92562, 92475, 92561, 92777, 92776, 92681, 92677, 92678, 92676, 92675, 92473, 92667, 92666, 92663, 92660, 92683, 92659, 92680, 92679, 92808); + +-- Fix db errors after this. +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=47160 AND `id`=1826; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=47889 AND `id`=1826; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=92474 AND `id`=8528; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=92475 AND `id`=8528; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=92547 AND `id`=8528; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=92561 AND `id`=8528; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=92562 AND `id`=8528; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=92651 AND `id`=8528; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=92652 AND `id`=8528; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=92653 AND `id`=8528; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=92654 AND `id`=8528; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=92663 AND `id`=8528; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=92666 AND `id`=8528; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=92676 AND `id`=8528; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=92679 AND `id`=8528; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=92680 AND `id`=8528; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=92681 AND `id`=8528; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=92808 AND `id`=8528; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=42954 AND `id`=11880; +UPDATE `creature` SET `mana_percent`=100 WHERE `guid`=42986 AND `id`=11880; + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Events list for Darrowshire Poltergeist +UPDATE `creature_template` SET `ai_name` = 'EventAI' WHERE `entry` = 11296; +DELETE FROM `creature_ai_events` WHERE `creature_id`=11296; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES +(1129601, 11296, 0, 1, 0, 100, 3, 10000, 30000, 30000, 60000, 1129601, 1129602, 0, 'Darrowshire Poltergeist - Talk - OOC'); +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1129601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7205, 7206, 7207, 7208, 0, 0, 0, 0, 0, 'Darrowshire Poltergeist - Talk'); +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(1129602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7209, 7210, 7211, 7212, 0, 0, 0, 0, 0, 'Darrowshire Poltergeist - Talk'); + +-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- Remove Duplicate Object +DELETE FROM `gameobject` WHERE `guid` = 12043; + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From fc0d6cfd6192b5c90072d77ab289f165ea540a00 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Tue, 26 Dec 2023 20:00:21 +0200 Subject: [PATCH 416/426] Use target's combat reach in aoe against creatures. --- src/game/Spells/Spell.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index 12788aed2e9..4ba6ca0dfc2 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -8605,39 +8605,45 @@ class SpellNotifierCreatureAndPlayer continue; } + // testing on classic shows aoe range is bigger vs mob compared to vs player + // this probably means combat reach is not used vs player targets + float radius = i_radius; + if (!unit->IsCharmerOrOwnerPlayerOrPlayerItself()) + radius += unit->GetCombatReach(); + // we don't need to check InMap here, it's already done some lines above switch (i_push_type) { case PUSH_IN_FRONT: - if (i_castingObject->IsWithinDist(unit, i_radius) && i_castingObject->HasInArc(unit, 2 * M_PI_F / 3)) + if (i_castingObject->IsWithinDist(unit, radius, true, SizeFactor::None) && i_castingObject->HasInArc(unit, 2 * M_PI_F / 3)) i_data->push_back(unit); break; case PUSH_IN_FRONT_90: - if (i_castingObject->IsWithinDist(unit, i_radius) && i_castingObject->HasInArc(unit, M_PI_F / 2)) + if (i_castingObject->IsWithinDist(unit, radius, true, SizeFactor::None) && i_castingObject->HasInArc(unit, M_PI_F / 2)) i_data->push_back(unit); break; case PUSH_IN_FRONT_15: - if (i_castingObject->IsWithinDist(unit, i_radius) && i_castingObject->HasInArc(unit, M_PI_F / 12)) + if (i_castingObject->IsWithinDist(unit, radius, true, SizeFactor::None) && i_castingObject->HasInArc(unit, M_PI_F / 12)) i_data->push_back(unit); break; case PUSH_IN_BACK: // 75 - if (i_castingObject->IsWithinDist(unit, i_radius) && !i_castingObject->HasInArc(unit, 2 * M_PI_F - 5 * M_PI_F / 12)) + if (i_castingObject->IsWithinDist(unit, radius, true, SizeFactor::None) && !i_castingObject->HasInArc(unit, 2 * M_PI_F - 5 * M_PI_F / 12)) i_data->push_back(unit); break; case PUSH_SELF_CENTER: - if (i_castingObject->IsWithinDist(unit, i_radius)) + if (i_castingObject->IsWithinDist(unit, radius, true, SizeFactor::None)) i_data->push_back(unit); break; case PUSH_SRC_CENTER: - if (itr->getSource()->IsWithinDist3d(i_spell.m_targets.m_srcX, i_spell.m_targets.m_srcY, i_spell.m_targets.m_srcZ, i_radius)) + if (unit->IsWithinDist3d(i_spell.m_targets.m_srcX, i_spell.m_targets.m_srcY, i_spell.m_targets.m_srcZ, radius, SizeFactor::None)) i_data->push_back(unit); break; case PUSH_DEST_CENTER: - if (itr->getSource()->IsWithinDist3d(i_spell.m_targets.m_destX, i_spell.m_targets.m_destY, i_spell.m_targets.m_destZ, i_radius)) + if (unit->IsWithinDist3d(i_spell.m_targets.m_destX, i_spell.m_targets.m_destY, i_spell.m_targets.m_destZ, radius, SizeFactor::None)) i_data->push_back(unit); break; case PUSH_TARGET_CENTER: - if (i_spell.m_targets.getUnitTarget() && i_spell.m_targets.getUnitTarget()->IsWithinDist(unit, i_radius)) + if (i_spell.m_targets.getUnitTarget() && i_spell.m_targets.getUnitTarget()->IsWithinDist(unit, radius, true, SizeFactor::None)) i_data->push_back(unit); break; } From dd79947849800295ad3600ba0e542c7b1a0ee4ae Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Wed, 27 Dec 2023 10:25:32 +0200 Subject: [PATCH 417/426] Fix raid reset exploit. Closes https://github.com/vmangos/core/issues/791 --- src/game/Handlers/GroupHandler.cpp | 5 ++++- src/game/Handlers/MovementHandler.cpp | 5 +++++ src/game/Maps/Map.cpp | 10 +++++++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/game/Handlers/GroupHandler.cpp b/src/game/Handlers/GroupHandler.cpp index 4c13cb8015e..f051a39924a 100644 --- a/src/game/Handlers/GroupHandler.cpp +++ b/src/game/Handlers/GroupHandler.cpp @@ -83,8 +83,11 @@ void WorldSession::HandleGroupInviteOpcode(WorldPacket& recv_data) return; } - if (GetPlayer()->GetMapId() > 1 && GetPlayer()->GetInstanceId() && player->GetInstanceId() && GetPlayer()->GetInstanceId() != player->GetInstanceId() && GetPlayer()->GetMapId() == player->GetMapId()) + // Prevent inviting player to group who is in a different instance of the same map. + if (GetPlayer()->GetMapId() > 1 && GetPlayer()->GetInstanceId() && player->GetInstanceId() && + GetPlayer()->GetInstanceId() != player->GetInstanceId() && GetPlayer()->GetMapId() == player->GetMapId()) return; + // Just ignore us if (player->GetSocial()->HasIgnore(GetPlayer()->GetObjectGuid())) { diff --git a/src/game/Handlers/MovementHandler.cpp b/src/game/Handlers/MovementHandler.cpp index 62da53a8573..f68f2f0fd9f 100644 --- a/src/game/Handlers/MovementHandler.cpp +++ b/src/game/Handlers/MovementHandler.cpp @@ -164,6 +164,11 @@ void WorldSession::HandleMoveWorldportAckOpcode() if (mEntry->IsRaid()) { + // Cancel any group invites on teleport to dungeon to prevent raid reset exploits. + // We already prevent inviting player who is in different instance of same map. + // This makes sure you cant bypass that by inviting player first but not accepting until inside. + GetPlayer()->UninviteFromGroup(); + if (time_t timeReset = sMapPersistentStateMgr.GetScheduler().GetResetTimeFor(mEntry->id)) { uint32 timeleft = uint32(timeReset - time(nullptr)); diff --git a/src/game/Maps/Map.cpp b/src/game/Maps/Map.cpp index 54b719fb5f7..dd1a5befd8a 100644 --- a/src/game/Maps/Map.cpp +++ b/src/game/Maps/Map.cpp @@ -2283,7 +2283,7 @@ bool DungeonMap::Reset(InstanceResetMethod method) } else { - if (method == INSTANCE_RESET_GLOBAL) + if (method == INSTANCE_RESET_GLOBAL || method == INSTANCE_RESET_GROUP_JOIN) { // set the homebind timer for players inside (1 minute) for (const auto& itr : m_mapRefManager) @@ -2313,11 +2313,19 @@ void DungeonMap::PermBindAllPlayers(Player* player) for (const auto& itr : m_mapRefManager) { Player* plr = itr.getSource(); + // players inside an instance cannot be bound to other instances // some players may already be permanently bound, in this case nothing happens InstancePlayerBind *bind = plr->GetBoundInstance(GetId()); if (!bind || !bind->perm) { + if (m_resetAfterUnload) + { + sLog.Player(plr->GetSession(), LOG_BASIC, LOG_LVL_ERROR, "Attempt to permanently save player to raid (map %u, instance %u) scheduled for reset on unload and already deleted from DB!", GetId(), GetInstanceId()); + plr->TeleportToHomebind(); + continue; + } + plr->BindToInstance(GetPersistanceState(), true); WorldPacket data(SMSG_INSTANCE_SAVE_CREATED, 4); data << uint32(0); From 2d2c0b074fc250015e17a374e0aa61519e44eca4 Mon Sep 17 00:00:00 2001 From: balakethelock <111737968+balakethelock@users.noreply.github.com> Date: Wed, 27 Dec 2023 23:12:25 +0100 Subject: [PATCH 418/426] Make 'namego' command teleport to exact position. (#2381) It was weirdly teleporting to a proximate location based on boundingradius and conserving teleported player orientation. Much more convenient for testing and gm activity to teleport to accurate pos --- src/game/Commands/TeleportCommands.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/game/Commands/TeleportCommands.cpp b/src/game/Commands/TeleportCommands.cpp index ad8a37c41a5..5ad0aa30f34 100644 --- a/src/game/Commands/TeleportCommands.cpp +++ b/src/game/Commands/TeleportCommands.cpp @@ -262,8 +262,8 @@ bool ChatHandler::HandleGroupgoCommand(char* args) // before GM float x, y, z; - pPlayer->GetClosePoint(x, y, z, pl->GetObjectBoundingRadius()); - pl->TeleportTo(pPlayer->GetMapId(), x, y, z, pl->GetOrientation()); + pPlayer->GetPosition(x, y, z); + pl->TeleportTo(pPlayer->GetMapId(), x, y, z, pPlayer->GetOrientation()); } return true; @@ -1179,8 +1179,8 @@ bool ChatHandler::HandleNamegoCommand(char* args) // before GM float x, y, z; - pPlayer->GetClosePoint(x, y, z, pTarget->GetObjectBoundingRadius()); - pTarget->TeleportTo(pPlayer->GetMapId(), x, y, z, pTarget->GetOrientation(), TELE_TO_NOT_LEAVE_COMBAT); + pPlayer->GetPosition(x, y, z); + pTarget->TeleportTo(pPlayer->GetMapId(), x, y, z, pPlayer->GetOrientation(), TELE_TO_NOT_LEAVE_COMBAT); } else { From 551b8418f2225fe4c4e0339a595ab3731bf90a97 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 28 Dec 2023 09:50:19 +0200 Subject: [PATCH 419/426] Allow having both personal and group instance save. On official servers if you get invited to a group while already in an instance, that save persists through logout while grouped, even though its a personal save. If there is no group save created yet, it will persist through leaving and entering the dungeon as well. Its only reset once you exit the dungeon when there already is a group save. --- src/game/Handlers/GroupHandler.cpp | 5 -- src/game/Handlers/MovementHandler.cpp | 11 ++-- src/game/Maps/Map.cpp | 45 +++++++-------- src/game/Objects/Player.cpp | 80 +++++++++++++++++---------- src/game/Objects/Player.h | 10 +++- src/game/WorldSession.cpp | 7 +-- 6 files changed, 83 insertions(+), 75 deletions(-) diff --git a/src/game/Handlers/GroupHandler.cpp b/src/game/Handlers/GroupHandler.cpp index f051a39924a..4cd497975aa 100644 --- a/src/game/Handlers/GroupHandler.cpp +++ b/src/game/Handlers/GroupHandler.cpp @@ -83,11 +83,6 @@ void WorldSession::HandleGroupInviteOpcode(WorldPacket& recv_data) return; } - // Prevent inviting player to group who is in a different instance of the same map. - if (GetPlayer()->GetMapId() > 1 && GetPlayer()->GetInstanceId() && player->GetInstanceId() && - GetPlayer()->GetInstanceId() != player->GetInstanceId() && GetPlayer()->GetMapId() == player->GetMapId()) - return; - // Just ignore us if (player->GetSocial()->HasIgnore(GetPlayer()->GetObjectGuid())) { diff --git a/src/game/Handlers/MovementHandler.cpp b/src/game/Handlers/MovementHandler.cpp index f68f2f0fd9f..c36c52ccc4e 100644 --- a/src/game/Handlers/MovementHandler.cpp +++ b/src/game/Handlers/MovementHandler.cpp @@ -164,17 +164,18 @@ void WorldSession::HandleMoveWorldportAckOpcode() if (mEntry->IsRaid()) { - // Cancel any group invites on teleport to dungeon to prevent raid reset exploits. - // We already prevent inviting player who is in different instance of same map. - // This makes sure you cant bypass that by inviting player first but not accepting until inside. - GetPlayer()->UninviteFromGroup(); - if (time_t timeReset = sMapPersistentStateMgr.GetScheduler().GetResetTimeFor(mEntry->id)) { uint32 timeleft = uint32(timeReset - time(nullptr)); GetPlayer()->SendInstanceResetWarning(mEntry->id, timeleft); } } + else if (!mEntry->IsDungeon()) + { + MapEntry const* oldMapEntry = sMapStorage.LookupEntry(oldLoc.mapId); + if (oldMapEntry->IsDungeon()) + GetPlayer()->ResetPersonalInstanceOnLeaveDungeon(oldLoc.mapId); + } // mount allow check if (!mEntry->IsMountAllowed()) diff --git a/src/game/Maps/Map.cpp b/src/game/Maps/Map.cpp index dd1a5befd8a..1ba9b17b859 100644 --- a/src/game/Maps/Map.cpp +++ b/src/game/Maps/Map.cpp @@ -2181,28 +2181,21 @@ void DungeonMap::BindPlayerOrGroupOnEnter(Player* player) { // solo saves should be reset when entering a group InstanceGroupBind *groupBind = pGroup->GetBoundInstance(GetId()); - if (playerBind) - { - sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "InstanceMap::Add: %s is being put in instance %d,%d,%d,%d,%d but he is in group (Id: %d) and is bound to instance %d,%d,%d,%d,%d!", - player->GetObjectGuid().GetString().c_str(), playerBind->state->GetMapId(), playerBind->state->GetInstanceId(), - playerBind->state->GetPlayerCount(), playerBind->state->GetGroupCount(), - playerBind->state->CanReset(), pGroup->GetId(), - playerBind->state->GetMapId(), playerBind->state->GetInstanceId(), - playerBind->state->GetPlayerCount(), playerBind->state->GetGroupCount(), playerBind->state->CanReset()); - - if (groupBind) - sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "InstanceMap::Add: the group (Id: %d) is bound to instance %d,%d,%d,%d,%d", - pGroup->GetId(), - groupBind->state->GetMapId(), groupBind->state->GetInstanceId(), - groupBind->state->GetPlayerCount(), groupBind->state->GetGroupCount(), groupBind->state->CanReset()); - - // no reason crash if we can fix state - player->UnbindInstance(GetId()); - } // bind to the group or keep using the group save if (!groupBind) + { pGroup->BindToInstance(GetPersistanceState(), false); + + // the personal save has become a group save + if (playerBind) + player->UnbindInstance(GetId()); + } + else if (playerBind) + { + // cannot jump to a different instance without resetting it + MANGOS_ASSERT(playerBind->state == GetPersistentState()); + } else { // cannot jump to a different instance without resetting it @@ -2283,7 +2276,7 @@ bool DungeonMap::Reset(InstanceResetMethod method) } else { - if (method == INSTANCE_RESET_GLOBAL || method == INSTANCE_RESET_GROUP_JOIN) + if (method == INSTANCE_RESET_GLOBAL) { // set the homebind timer for players inside (1 minute) for (const auto& itr : m_mapRefManager) @@ -2314,18 +2307,18 @@ void DungeonMap::PermBindAllPlayers(Player* player) { Player* plr = itr.getSource(); + if (m_resetAfterUnload) + { + sLog.Player(plr->GetSession(), LOG_BASIC, LOG_LVL_ERROR, "Attempt to permanently save player to raid (map %u, instance %u) scheduled for reset on unload and already deleted from DB!", GetId(), GetInstanceId()); + plr->TeleportToHomebind(); + continue; + } + // players inside an instance cannot be bound to other instances // some players may already be permanently bound, in this case nothing happens InstancePlayerBind *bind = plr->GetBoundInstance(GetId()); if (!bind || !bind->perm) { - if (m_resetAfterUnload) - { - sLog.Player(plr->GetSession(), LOG_BASIC, LOG_LVL_ERROR, "Attempt to permanently save player to raid (map %u, instance %u) scheduled for reset on unload and already deleted from DB!", GetId(), GetInstanceId()); - plr->TeleportToHomebind(); - continue; - } - plr->BindToInstance(GetPersistanceState(), true); WorldPacket data(SMSG_INSTANCE_SAVE_CREATED, 4); data << uint32(0); diff --git a/src/game/Objects/Player.cpp b/src/game/Objects/Player.cpp index b8dd906f53b..ea582ee071d 100644 --- a/src/game/Objects/Player.cpp +++ b/src/game/Objects/Player.cpp @@ -16251,15 +16251,6 @@ void Player::_LoadBoundInstances(QueryResult* result) continue; } - if (!perm && group) - { - sLog.Out(LOG_BASIC, LOG_LVL_ERROR, "_LoadBoundInstances: %s is in group (Id: %d) but has a non-permanent character bind to map %d,%d", - GetGuidStr().c_str(), group->GetId(), mapId, instanceId); - CharacterDatabase.PExecute("DELETE FROM `character_instance` WHERE `guid` = '%u' AND `instance` = '%u'", - GetGUIDLow(), instanceId); - continue; - } - // since non permanent binds are always solo bind, they can always be reset DungeonPersistentState* state = (DungeonPersistentState*)sMapPersistentStateMgr.AddPersistentState(mapEntry, instanceId, resetTime, !perm, true); if (state) BindToInstance(state, perm, true); @@ -16347,9 +16338,8 @@ DungeonPersistentState* Player::GetBoundInstanceSaveForSelfOrGroup(uint32 mapid) InstancePlayerBind* pBind = GetBoundInstance(mapid); DungeonPersistentState* state = pBind ? pBind->state : nullptr; - // the player's permanent player bind is taken into consideration first - // then the player's group bind and finally the solo bind. - if (!pBind || !pBind->perm) + // the player's personal or permanent bind is taken into consideration first + if (!pBind) { if (Group* group = GetGroup()) if (InstanceGroupBind* groupBind = group->GetBoundInstance(mapid)) @@ -17495,6 +17485,13 @@ void Player::ResetInstances(InstanceResetMethod method) continue; } + // cannot reset instance while inside + if (IsInWorld() && itr->first == GetMapId()) + { + ++itr; + continue; + } + if (method == INSTANCE_RESET_ALL) { // the "reset all instances" method can only reset normal maps @@ -17503,29 +17500,52 @@ void Player::ResetInstances(InstanceResetMethod method) ++itr; continue; } - - // solo player cannot reset instance while inside - if (IsInWorld() && itr->first == GetMapId()) - { - ++itr; - continue; - } } - // if the map is loaded, reset it - if (Map* map = sMapMgr.FindMap(state->GetMapId(), state->GetInstanceId())) - if (map->IsDungeon()) - ((DungeonMap*)map)->Reset(method); + ResetInstance(method, itr); + } +} + +void Player::ResetInstance(InstanceResetMethod method, BoundInstancesMap::iterator& itr) +{ + DungeonPersistentState* state = itr->second.state; - // since this is a solo instance there should not be any players inside - if (method == INSTANCE_RESET_ALL) - SendResetInstanceSuccess(state->GetMapId()); + // if the map is loaded, reset it + if (Map* map = sMapMgr.FindMap(state->GetMapId(), state->GetInstanceId())) + if (map->IsDungeon()) + ((DungeonMap*)map)->Reset(method); - state->DeleteFromDB(); - m_boundInstances.erase(itr++); + // since this is a solo instance there should not be any players inside + if (method == INSTANCE_RESET_ALL) + SendResetInstanceSuccess(state->GetMapId()); + + state->DeleteFromDB(); + m_boundInstances.erase(itr++); + + // the following should remove the instance save from the manager and delete it as well + state->RemovePlayer(this); +} + +// should only be called on teleport from inside dungeon to outside +// if player was inside a different instance of a dungeon when he got invited to group +// it should only be reset once he leaves the dungeon, not immediately on accepting group +void Player::ResetPersonalInstanceOnLeaveDungeon(uint32 mapId) +{ + MANGOS_ASSERT(GetMapId() != mapId); + + Group* pGroup = GetGroup(); + if (!pGroup) + return; + + BoundInstancesMap::iterator itr = m_boundInstances.find(mapId); + if (itr == m_boundInstances.end() || itr->second.perm) + return; - // the following should remove the instance save from the manager and delete it as well - state->RemovePlayer(this); + // the group save replaces the personal save + if (InstanceGroupBind* pGroupBind = pGroup->GetBoundInstance(mapId)) + { + MANGOS_ASSERT(itr->second.state != pGroupBind->state); + ResetInstance(INSTANCE_RESET_GROUP_JOIN, itr); } } diff --git a/src/game/Objects/Player.h b/src/game/Objects/Player.h index e9ddeef4532..d1b13e3711c 100644 --- a/src/game/Objects/Player.h +++ b/src/game/Objects/Player.h @@ -2580,23 +2580,27 @@ class Player final: public Unit /*** INSTANCE SYSTEM ***/ /*********************************************************/ + public: + typedef std::unordered_map< uint32 /*mapId*/, InstancePlayerBind > BoundInstancesMap; + private: bool m_enableInstanceSwitch; bool m_smartInstanceRebind; uint32 m_HomebindTimer; + + void ResetInstance(InstanceResetMethod method, BoundInstancesMap::iterator& itr); public: void SendTransferAborted(uint8 reason) const; void SendInstanceResetWarning(uint32 mapid, uint32 time) const; - + void ResetInstances(InstanceResetMethod method); + void ResetPersonalInstanceOnLeaveDungeon(uint32 mapId); void SendResetInstanceSuccess(uint32 MapId) const; void SendResetInstanceFailed(uint32 reason, uint32 MapId) const; void SendResetFailedNotify(); bool CheckInstanceCount(uint32 instanceId) const; void AddInstanceEnterTime(uint32 instanceId, time_t enterTime) const; - typedef std::unordered_map< uint32 /*mapId*/, InstancePlayerBind > BoundInstancesMap; - void UpdateHomebindTime(uint32 time); bool m_InstanceValid; // permanent binds and solo binds diff --git a/src/game/WorldSession.cpp b/src/game/WorldSession.cpp index 7080f691b18..1618f6be9d1 100644 --- a/src/game/WorldSession.cpp +++ b/src/game/WorldSession.cpp @@ -709,7 +709,7 @@ void WorldSession::LogoutPlayer(bool Save) bool removedFromMap = false; if (Map* map = _player->FindMap()) { - if (map->IsNonRaidDungeon() && _player->GetGroup()) + if (map->IsNonRaidDungeon() && !_player->GetBoundInstanceSaveForSelfOrGroup(map->GetId())) { AreaTriggerTeleport const* at = sObjectMgr.GetGoBackTrigger(map->GetId()); if (at) @@ -732,11 +732,6 @@ void WorldSession::LogoutPlayer(bool Save) // If the player is in a group (or invited), remove him. If the group if then only 1 person, disband the group. _player->UninviteFromGroup(); - // remove player from the group if he is: - // a) in group; b) not in raid group; c) logging out normally (not being kicked or disconnected) - if (_player->GetGroup() && !_player->GetGroup()->isRaidGroup() && m_socket) - _player->RemoveFromGroup(); - // Send update to group if (Group* group = _player->GetGroup()) group->UpdatePlayerOnlineStatus(_player, false); From 0dfa95def03d76d889d1d19ba79cad1b24006757 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 28 Dec 2023 18:40:27 +0200 Subject: [PATCH 420/426] Unbind personal saves of group members once group save is created. Only for those not currently inside their personal saves. --- src/game/Maps/Map.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/game/Maps/Map.cpp b/src/game/Maps/Map.cpp index 1ba9b17b859..20e5e86242d 100644 --- a/src/game/Maps/Map.cpp +++ b/src/game/Maps/Map.cpp @@ -2189,7 +2189,28 @@ void DungeonMap::BindPlayerOrGroupOnEnter(Player* player) // the personal save has become a group save if (playerBind) + { + // cannot jump to a different instance without resetting it + MANGOS_ASSERT(playerBind->state == GetPersistentState()); player->UnbindInstance(GetId()); + } + + // reset personal saves of other members now that group save is created + for (GroupReference* itr = pGroup->GetFirstMember(); itr != nullptr; itr = itr->next()) + { + if (Player* pMember = itr->getSource()) + { + if (pMember == player) + continue; + + if (pMember->GetMapId() != GetId()) + { + InstancePlayerBind* memberBind = pMember->GetBoundInstance(GetId()); + if (memberBind && !memberBind->perm) + pMember->UnbindInstance(GetId()); + } + } + } } else if (playerBind) { From cb1c0e09a167e11ed4e421ca23da2602b8f8d4af Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Thu, 28 Dec 2023 18:48:50 +0200 Subject: [PATCH 421/426] Fix adding too many battlebots when partybots are also in queue. --- src/game/PlayerBots/PlayerBotMgr.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/game/PlayerBots/PlayerBotMgr.cpp b/src/game/PlayerBots/PlayerBotMgr.cpp index 3b9035bcbf0..c88abaf8a30 100644 --- a/src/game/PlayerBots/PlayerBotMgr.cpp +++ b/src/game/PlayerBots/PlayerBotMgr.cpp @@ -299,6 +299,7 @@ void PlayerBotMgr::Update(uint32 diff) m_lastBattleBotQueueUpdate = sWorld.GetGameTime(); for (uint32 queueType = BATTLEGROUND_QUEUE_AV; queueType < MAX_BATTLEGROUND_QUEUE_TYPES; ++queueType) { + bool hasPlayerInQueue[MAX_BATTLEGROUND_BRACKETS] = {}; uint32 queuedAllianceCount[MAX_BATTLEGROUND_BRACKETS] = {}; uint32 queuedHordeCount[MAX_BATTLEGROUND_BRACKETS] = {}; BattleGroundQueue const& bgQueue = sBattleGroundMgr.m_battleGroundQueues[queueType]; @@ -309,9 +310,6 @@ void PlayerBotMgr::Update(uint32 diff) if (Player* pPlayer = sObjectAccessor.FindPlayer(itr.first)) { - if (pPlayer->IsBot()) - continue; - BattleGroundTypeId bgTypeId = itr.second.groupInfo->bgTypeId; BattleGroundBracketId bgBracketId = pPlayer->GetBattleGroundBracketIdFromLevel(bgTypeId); if (bgBracketId == BG_BRACKET_ID_NONE) @@ -321,11 +319,17 @@ void PlayerBotMgr::Update(uint32 diff) ++queuedAllianceCount[bgBracketId]; else ++queuedHordeCount[bgBracketId]; + + if (!pPlayer->IsBot()) + hasPlayerInQueue[bgBracketId] = true; } } for (uint32 bracketId = BG_BRACKET_ID_FIRST; bracketId < MAX_BATTLEGROUND_BRACKETS; ++bracketId) { + if (!hasPlayerInQueue[bracketId]) + continue; + if (!queuedAllianceCount[bracketId] && !queuedHordeCount[bracketId]) continue; From 6f5865accea9c7ef46b073305539c4c0f680a8e5 Mon Sep 17 00:00:00 2001 From: balakethelock <111737968+balakethelock@users.noreply.github.com> Date: Thu, 28 Dec 2023 22:12:19 +0100 Subject: [PATCH 422/426] Remove hack to Onyxia's combat reach & bounding radius (#2387) The database values based on classic sniffs are completely fine. --- .../dustwallow_marsh/onyxias_lair/boss_onyxia.cpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/scripts/kalimdor/dustwallow_marsh/onyxias_lair/boss_onyxia.cpp b/src/scripts/kalimdor/dustwallow_marsh/onyxias_lair/boss_onyxia.cpp index 842acd69a01..d77ce38d00e 100644 --- a/src/scripts/kalimdor/dustwallow_marsh/onyxias_lair/boss_onyxia.cpp +++ b/src/scripts/kalimdor/dustwallow_marsh/onyxias_lair/boss_onyxia.cpp @@ -193,8 +193,6 @@ struct boss_onyxiaAI : public ScriptedAI SetCombatMovement(true); m_creature->SetSpeedRate(MOVE_RUN, ONYXIA_NORMAL_SPEED); - m_creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 15.0f); - m_creature->SetFloatValue(UNIT_FIELD_COMBATREACH, 16.0f); // Daemon: remise en mode "dort" m_creature->SetStandState(UNIT_STAND_STATE_SLEEP); @@ -605,10 +603,6 @@ struct boss_onyxiaAI : public ScriptedAI m_creature->CastSpell(m_creature, 17131, true); /** Start flying */ m_bTransition = false; m_uiTransTimer = 0; - - // increase Onyxia's hitbox while in the air to make it slightly easier for melee to use specials on her - m_creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 21.0f); - m_creature->SetFloatValue(UNIT_FIELD_COMBATREACH, 22.0f); m_pPointData = GetMoveData(); m_creature->GetMotionMaster()->MovePoint(m_pPointData->uiLocId, m_pPointData->fX, m_pPointData->fY, m_pPointData->fZ, MOVE_PATHFINDING | MOVE_FLY_MODE); @@ -631,8 +625,6 @@ struct boss_onyxiaAI : public ScriptedAI m_creature->GetMotionMaster()->MovePoint(LANDING_FLIGHT, -8.86f, -212.752f, -88.542f, MOVE_FLY_MODE); // North m_creature->RemoveAurasDueToSpell(17131); /** Stop flying */ - m_creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 15.0f); - m_creature->SetFloatValue(UNIT_FIELD_COMBATREACH, 16.0f); m_uiTransTimer = 60000; // handled by MovementInform } /** Landing in progress */ From 1f85576da0782942adc6202257ef1a7de37696eb Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 30 Dec 2023 09:19:22 +0200 Subject: [PATCH 423/426] Fix Venomhide Ravasaur being immune to his own passive aura. Closes https://github.com/vmangos/core/issues/2392 --- src/game/Objects/Creature.cpp | 12 ++++++------ src/game/Objects/Unit.cpp | 8 ++++++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/game/Objects/Creature.cpp b/src/game/Objects/Creature.cpp index 9db8d3f73d8..62b4981d80e 100644 --- a/src/game/Objects/Creature.cpp +++ b/src/game/Objects/Creature.cpp @@ -2660,19 +2660,19 @@ void Creature::UpdateLeashExtensionTime() void Creature::LoadDefaultAuras(uint32 const* auras) { - for (uint32 const* cAura = auras; *cAura; ++cAura) + for (uint32 const* pSpellId = auras; *pSpellId; ++pSpellId) { - SpellEntry const* AdditionalSpellInfo = sSpellMgr.GetSpellEntry(*cAura); - if (!AdditionalSpellInfo) + SpellEntry const* pSpellEntry = sSpellMgr.GetSpellEntry(*pSpellId); + if (!pSpellEntry) { - sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Creature (GUIDLow: %u Entry: %u ) has wrong spell %u defined in `auras` field.", GetGUIDLow(), GetEntry(), *cAura); + sLog.Out(LOG_DBERROR, LOG_LVL_MINIMAL, "Creature (GUIDLow: %u Entry: %u ) has wrong spell %u defined in `auras` field.", GetGUIDLow(), GetEntry(), *pSpellId); continue; } - if (HasAura(*cAura)) + if (HasAura(*pSpellId)) continue; - CastSpell(this, AdditionalSpellInfo, true); + CastSpell(this, pSpellEntry, true); } } diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index fd62e41f434..b6830947966 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -5515,8 +5515,16 @@ bool Unit::IsImmuneToSpell(SpellEntry const* spellInfo, bool /*castOnSelf*/) con if (itr.type == spellInfo->Dispel) { SpellEntry const* pImmunitySpell = sSpellMgr.GetSpellEntry(itr.spellId); + if (!pImmunitySpell) + { + // Venomhide Ravasaur (6508) is immune to being poisoned by others, but has passive poison aura 14108. + // Should either check self cast or passive spell here, not sure which is better. + if (spellInfo->IsPassiveSpell()) + continue; + return true; + } if ((pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveSpell()) return true; From 0cc56db70af6b706d68f227758f66888198a9d12 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sat, 30 Dec 2023 12:13:08 +0200 Subject: [PATCH 424/426] It shouldn't be possible to bubble or stealth with WSG flag. In classic you get an error message and it doesn't let you cast it, instead of casting it and causing flag to drop. The attribute that I believe controls this was only added to immunity spells in patch 1.9, so that would indicate it was possible to bop people to make them drop flag in early vanilla. --- src/game/Objects/Unit.cpp | 75 +++++++++++++++++++++++++++------------ 1 file changed, 52 insertions(+), 23 deletions(-) diff --git a/src/game/Objects/Unit.cpp b/src/game/Objects/Unit.cpp index b6830947966..b9d748ef5e1 100644 --- a/src/game/Objects/Unit.cpp +++ b/src/game/Objects/Unit.cpp @@ -5506,37 +5506,31 @@ bool Unit::IsImmuneToSpell(SpellEntry const* spellInfo, bool /*castOnSelf*/) con spellInfo->HasAttribute(SPELL_ATTR_EX3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS)) return false; - //TODO add spellEffect immunity checks!, player with flag in bg is immune to immunity buffs from other friendly players! - //SpellImmuneList const& dispelList = m_spellImmune[IMMUNITY_EFFECT]; - - SpellImmuneList const& dispelList = m_spellImmune[IMMUNITY_DISPEL]; - for (const auto& itr : dispelList) + // Venomhide Ravasaur (6508) is immune to being poisoned by others, but has passive poison aura 14108. + // Should either check self cast or passive spell here, not sure which is better. + if (!spellInfo->HasAttribute(SPELL_ATTR_PASSIVE)) { - if (itr.type == spellInfo->Dispel) + SpellImmuneList const& dispelList = m_spellImmune[IMMUNITY_DISPEL]; + for (const auto& itr : dispelList) { - SpellEntry const* pImmunitySpell = sSpellMgr.GetSpellEntry(itr.spellId); - - if (!pImmunitySpell) + if (itr.type == spellInfo->Dispel) { - // Venomhide Ravasaur (6508) is immune to being poisoned by others, but has passive poison aura 14108. - // Should either check self cast or passive spell here, not sure which is better. - if (spellInfo->IsPassiveSpell()) - continue; - - return true; - } + SpellEntry const* pImmunitySpell = sSpellMgr.GetSpellEntry(itr.spellId); + if (!pImmunitySpell) + return true; - if ((pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveSpell()) - return true; + if ((pImmunitySpell->IsPositiveSpell()) != spellInfo->IsPositiveSpell()) + return true; - if (pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) - return true; + if (pImmunitySpell->HasAttribute(SPELL_ATTR_EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS)) + return true; + } } } - if (!(spellInfo->Attributes & SPELL_ATTR_NO_IMMUNITIES) // ignore invulnerability - && !(spellInfo->AttributesEx & SPELL_ATTR_EX_IMMUNITY_PURGES_EFFECT) // can remove immune (by dispell or immune it) - && !(spellInfo->AttributesEx2 & SPELL_ATTR_EX2_NO_SCHOOL_IMMUNITIES)) + if (!spellInfo->HasAttribute(SPELL_ATTR_NO_IMMUNITIES) // ignore invulnerability + && !spellInfo->HasAttribute(SPELL_ATTR_EX_IMMUNITY_PURGES_EFFECT) // can remove immune (by dispell or immune it) + && !spellInfo->HasAttribute(SPELL_ATTR_EX2_NO_SCHOOL_IMMUNITIES)) { SpellImmuneList const& schoolList = m_spellImmune[IMMUNITY_SCHOOL]; for (const auto& itr : schoolList) @@ -5592,6 +5586,41 @@ bool Unit::IsImmuneToSpell(SpellEntry const* spellInfo, bool /*castOnSelf*/) con } } + // Spells with this attribute cant be cast if there is aura that will be removed by it. + // Example: Trying to stealth or bubble with WSG flag. + // Most immunity spells only received the attribute in patch 1.9. + if (spellInfo->HasAttribute(SPELL_ATTR_EX2_FAIL_ON_ALL_TARGETS_IMMUNE)) + { + bool hasStealth = false; + bool hasImmunity = false; + for (auto const& auraType : spellInfo->EffectApplyAuraName) + { + switch (auraType) + { + case SPELL_AURA_MOD_STEALTH: + case SPELL_AURA_MOD_INVISIBILITY: + hasStealth = true; + break; + case SPELL_AURA_EFFECT_IMMUNITY: + case SPELL_AURA_SCHOOL_IMMUNITY: + hasImmunity = true; + break; + } + } + + if (hasStealth || hasImmunity) + { + for (auto const& itr : m_spellAuraHolders) + { + SpellEntry const* pAuraSpell = itr.second->GetSpellProto(); + if (hasStealth && pAuraSpell->HasAuraInterruptFlag(AURA_INTERRUPT_STEALTH_INVIS_CANCELS)) + return true; + if (hasImmunity && pAuraSpell->HasAuraInterruptFlag(AURA_INTERRUPT_INVULNERABILITY_BUFF_CANCELS)) + return true; + } + } + } + return false; } From a77ffef98c6f2a8fa7fddcc91d411b5919ef10cd Mon Sep 17 00:00:00 2001 From: Daribon Date: Sun, 31 Dec 2023 09:01:42 +0100 Subject: [PATCH 425/426] Correct threat to various spells. (#2393) --- sql/migrations/20231230212017_world.sql | 64 +++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 sql/migrations/20231230212017_world.sql diff --git a/sql/migrations/20231230212017_world.sql b/sql/migrations/20231230212017_world.sql new file mode 100644 index 00000000000..9bea5cc3c8c --- /dev/null +++ b/sql/migrations/20231230212017_world.sql @@ -0,0 +1,64 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231230212017'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231230212017'); +-- Add your query below. + + +-- Purge R1 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (370, 24, 0, 0); +-- Purge R2 +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (8012, 64, 0, 0); + +-- Vampiric Embrace +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (15286, 2, 0, 0); + +-- Shadowguard should cause no threat +-- Delete bad fix +DELETE FROM `spell_mod` WHERE `Id`=28377; +DELETE FROM `spell_mod` WHERE `Id`=28378; +DELETE FROM `spell_mod` WHERE `Id`=28379; +DELETE FROM `spell_mod` WHERE `Id`=28380; +DELETE FROM `spell_mod` WHERE `Id`=28381; +DELETE FROM `spell_mod` WHERE `Id`=28382; +-- Correct fix +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (28377, 0, 0, 0, 5464, 5875); +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (28378, 0, 0, 0, 5464, 5875); +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (28379, 0, 0, 0, 5464, 5875); +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (28380, 0, 0, 0, 5464, 5875); +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (28381, 0, 0, 0, 5464, 5875); +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (28382, 0, 0, 0, 5464, 5875); + +-- Holy Nova heal should cause no threat +-- Delete bad fix +DELETE FROM `spell_mod` WHERE `Id`=23455; +DELETE FROM `spell_mod` WHERE `Id`=23458; +DELETE FROM `spell_mod` WHERE `Id`=23459; +DELETE FROM `spell_mod` WHERE `Id`=27803; +DELETE FROM `spell_mod` WHERE `Id`=27804; +DELETE FROM `spell_mod` WHERE `Id`=27805; +-- Correct fix +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (23455, 0, 0, 0, 4499, 5875); +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (23458, 0, 0, 0, 4499, 5875); +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (23459, 0, 0, 0, 4499, 5875); +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (27803, 0, 0, 0, 5302, 5875); +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (27804, 0, 0, 0, 5302, 5875); +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`, `build_min`, `build_max`) VALUES (27805, 0, 0, 0, 5302, 5875); + +-- Feral Charge Effect should cause threat +-- Delete bad fix, wrong value and wrong spell +DELETE FROM `spell_threat` WHERE `entry`=16979; +-- Add threat to Feral Charge Effect (52 threat with bear form threat multiplier) +INSERT INTO `spell_threat` (`entry`, `Threat`, `multiplier`, `ap_bonus`) VALUES (19675, 40, 0, 0); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration; From b65896dd2e0997e8b4c2f9a48a6ec64fec297144 Mon Sep 17 00:00:00 2001 From: ratkosrb Date: Sun, 31 Dec 2023 10:27:46 +0200 Subject: [PATCH 426/426] Fix startup error. --- sql/migrations/20231231082728_world.sql | 29 +++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 sql/migrations/20231231082728_world.sql diff --git a/sql/migrations/20231231082728_world.sql b/sql/migrations/20231231082728_world.sql new file mode 100644 index 00000000000..10b4688f565 --- /dev/null +++ b/sql/migrations/20231231082728_world.sql @@ -0,0 +1,29 @@ +DROP PROCEDURE IF EXISTS add_migration; +delimiter ?? +CREATE PROCEDURE `add_migration`() +BEGIN +DECLARE v INT DEFAULT 1; +SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='20231231082728'); +IF v=0 THEN +INSERT INTO `migrations` VALUES ('20231231082728'); +-- Add your query below. + + +-- Events list for Scarshield Portal +DELETE FROM `creature_ai_events` WHERE `creature_id`=9707; +INSERT INTO `creature_ai_events` (`id`, `creature_id`, `condition_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_script`, `action2_script`, `action3_script`, `comment`) VALUES +(970701, 9707, 0, 11, 0, 100, 1, 0, 0, 0, 0, 970701, 0, 0, 'Scarshield Portal - Disable Attack and Movement on Spawn'), +(970702, 9707, 0, 1, 0, 100, 1, 12000, 12000, 12000, 12000, 970702, 0, 0, 'Scarshield Portal - Summon Burning Felhound OOC'), +(970703, 9707, 0, 1, 0, 10, 0, 20000, 20000, 0, 0, 970703, 0, 0, 'Scarshield Portal - Summon Burning Felguard OOC'); +DELETE FROM `creature_ai_scripts` WHERE `id`=970701; +INSERT INTO `creature_ai_scripts` (`id`, `delay`, `priority`, `command`, `datalong`, `datalong2`, `datalong3`, `datalong4`, `target_param1`, `target_param2`, `target_type`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `condition_id`, `comments`) VALUES +(970701, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarshield Portal - Disable Melee Attack'), +(970701, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarshield Portal - Disable Combat Movement'); + + +-- End of migration. +END IF; +END?? +delimiter ; +CALL add_migration(); +DROP PROCEDURE IF EXISTS add_migration;