diff --git a/data/sql/updates/db_world/2022_09_28_00.sql b/data/sql/updates/db_world/2022_09_28_00.sql new file mode 100644 index 000000000..0cfc1fd47 --- /dev/null +++ b/data/sql/updates/db_world/2022_09_28_00.sql @@ -0,0 +1,17 @@ +-- DB update 2022_09_26_00 -> 2022_09_28_00 +-- Ossirian +UPDATE `creature_template` SET `detection_range` = 37 WHERE (`entry` = 15339); +-- Qiraji Gladiator +UPDATE `creature_template` SET `detection_range` = 38.75 WHERE (`entry` = 15324); +-- Qiraji Swarmguard +UPDATE `creature_template` SET `detection_range` = 34.125 WHERE (`entry` = 15343); +-- Hive'Zara Stinger & Wasp +UPDATE `creature_template` SET `detection_range` = 28.75 WHERE (`entry` IN (15327, 15325)); +-- Obsidian Destroyer +UPDATE `creature_template` SET `detection_range` = 36.5 WHERE (`entry` = 15338); +-- Anubisath Guardian +UPDATE `creature_template` SET `detection_range` = 35.25 WHERE (`entry` = 15355); +-- Ayamiss +UPDATE `creature_template` SET `detection_range` = 34.5 WHERE (`entry` = 15369); +-- Hive'Zara Sandstalker & Soldier +UPDATE `creature_template` SET `detection_range` = 28.75 WHERE (`entry` IN (15323, 15320)); diff --git a/data/sql/updates/db_world/2022_09_28_01.sql b/data/sql/updates/db_world/2022_09_28_01.sql new file mode 100644 index 000000000..eb7fb5f83 --- /dev/null +++ b/data/sql/updates/db_world/2022_09_28_01.sql @@ -0,0 +1,68 @@ +-- DB update 2022_09_28_00 -> 2022_09_28_01 +-- Update current loot +UPDATE `item_loot_template` SET `Chance`=0, `GroupId`=2 WHERE `Item` IN (4715,6268,6336,6536,6537,6538,6539,6540,6541,6542,6563,6566,6567,6568,6569,6573,6575,6577,6579,6580,6583,6584,6585,6586,6587,6588,6590,6591,6592,6593,6594,6595,6596,6597,6600,6601,6602,6604,6605,6607,7332,7407,7408,7409,7411,7413,7414,7417,7418,7420,7421,7423,7430,7431,7432,7433,7434,7435,7436,7437,7438,7439,7440,7441,7443,7444,7445,7446,7447,7448,7468,7469,7474,7476,7477,7483,7519,7520,7521,7522,7523,7524,7525,7526,7528,7529,7530,7531,7532,7533,7534,7535,8120,9286,9289,9291,9746,9747,9748,9749,9755,9756,9757,9759,9762,9763,9765,9766,9767,9768,9770,9771,9775,9776,9777,9779,9780,9782,9791,9792,9793,9794,9795,9796,9797,9799,9801,9802,9803,9805,9806,9807,9808,9809,9810,9811,9813,9814,9815,9817,9818,9819,9822,9823,9825,9826,9831,9835,9836,9837,9838,9839,9840,9864,9865,9866,9867,9868,9869,9870,9871,9872,9875,9876,9877,9879,9880,9881,9884,9896,9898,9900,9901,9902,9905,9906,9907,9910,9911,9912,9913,9915,9928,9929,9930,9932,9933,9934,9966,9967,9969,9970,9971,10057,10059,10060,10064,10067,10069,10070,10071,10074,10086,10087,10088,10089,10090,10091,10092,10094,10118,10119,10121,10122,10123,10124,10125,10126,10128,10129,10131,10132,10145,10148,10156,10159,10164,10165,10166,10167,10168,10169,10170,10171,10172,10173,10175,10176,10177,10179,10181,10211,10212,10213,10214,10216,10221,10222,10223,10224,10225,10228,10229,10230,10231,10232,10233,10234,10235,10236,10237,10240,10241,10244,10275,10276,10277,10278,10279,10280,10281,10282,10373,10387,10391,10404,13010,13029,13081,13131,13145) AND `entry` BETWEEN 21509 AND 21513; + +-- Add reference loot +DELETE FROM `reference_loot_template` WHERE `entry` IN (21509, 21510, 21512, 21513) AND `Item` IN (954,955,1180,1181,1477,1478,1711,1712,2289,2290,3012,3013,4419,4421,4422,4424,4425,4426,10305,10306,10307,10308,10309,10310); +INSERT INTO `reference_loot_template` (`Entry`, `Item`, `Chance`, `GroupId`, `MaxCount`, `Comment`) VALUES +(21509, 954, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Scroll of Strength'), +(21509, 955, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Scroll of Intellect'), +(21509, 1180, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Scroll of Stamina'), +(21509, 1181, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Scroll of Spirit'), +(21509, 3012, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Scroll of Agility'), +(21509, 3013, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Scroll of Protection'), +(21510, 1477, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Scroll of Agility II'), +(21510, 1478, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Scroll of Protection II'), +(21510, 1711, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Scroll of Stamina II'), +(21510, 1712, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Scroll of Spirit II'), +(21510, 2289, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Scroll of Strength II'), +(21510, 2290, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Scroll of Intellect II'), +(21512, 4419, 0, 1, 2, 'Ahn\'Qiraj War Effort Supplies - Scroll of Intellect III'), +(21512, 4421, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Scroll of Protection III'), +(21512, 4422, 0, 1, 2, 'Ahn\'Qiraj War Effort Supplies - Scroll of Stamina III'), +(21512, 4424, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Scroll of Spirit III'), +(21512, 4425, 0, 1, 2, 'Ahn\'Qiraj War Effort Supplies - Scroll of Agility III'), +(21512, 4426, 0, 1, 2, 'Ahn\'Qiraj War Effort Supplies - Scroll of Strength III'), +(21513, 10305, 0, 1, 2, 'Ahn\'Qiraj War Effort Supplies - Scroll of Protection IV'), +(21513, 10306, 0, 1, 2, 'Ahn\'Qiraj War Effort Supplies - Scroll of Spirit IV'), +(21513, 10307, 0, 1, 2, 'Ahn\'Qiraj War Effort Supplies - Scroll of Stamina IV'), +(21513, 10308, 0, 1, 2, 'Ahn\'Qiraj War Effort Supplies - Scroll of Intellect IV'), +(21513, 10309, 0, 1, 2, 'Ahn\'Qiraj War Effort Supplies - Scroll of Agility IV'), +(21513, 10310, 0, 1, 2, 'Ahn\'Qiraj War Effort Supplies - Scroll of Strength IV'); + +-- Add Missing Loot +DELETE FROM `item_loot_template` WHERE (`Entry` = 21509) AND (`Item` IN (21509)); +INSERT INTO `item_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES +(21509, 21509, 21509, 100, 0, 1, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Reference Table (21509)'); +DELETE FROM `item_loot_template` WHERE (`Entry` = 21510) AND (`Item` IN (21510)); +INSERT INTO `item_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES +(21510, 21510, 21510, 100, 0, 1, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Reference Loot (21510)'); +DELETE FROM `item_loot_template` WHERE (`Entry` = 21511) AND (`Item` IN (937, 21510)); +INSERT INTO `item_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES +(21511, 937, 0, 0, 0, 1, 2, 1, 1, 'Black Duskwood Staff'), +(21511, 21510, 21510, 100, 0, 1, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Reference Loot (21510)'); +DELETE FROM `item_loot_template` WHERE (`Entry` = 21512) AND (`Item` IN (21512, 754, 4091, 9434, 13012, 13021, 13076, 13115, 13117, 13128)); +INSERT INTO `item_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES +(21512, 21512, 21512, 100, 0, 1, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Reference Loot (21512)'), +(21512, 754, 0, 0, 0, 1, 2, 1, 1, 'Shortsword of Vengeance'), +(21512, 4091, 0, 0, 0, 1, 2, 1, 1, 'Widowmaker'), +(21512, 9434, 0, 0, 0, 1, 2, 1, 1, 'Elemental Raiment'), +(21512, 13012, 0, 0, 0, 1, 2, 1, 1, 'Yorgen Bracers'), +(21512, 13021, 0, 0, 0, 1, 2, 1, 1, 'Needle Threader'), +(21512, 13076, 0, 0, 0, 1, 2, 1, 1, 'Giantslayer Bracers'), +(21512, 13115, 0, 0, 0, 1, 2, 1, 1, 'Sheepshear Mantle'), +(21512, 13117, 0, 0, 0, 1, 2, 1, 1, 'Ogron\'s Sash'), +(21512, 13128, 0, 0, 0, 1, 2, 1, 1, 'High Bergg Helm'); +DELETE FROM `item_loot_template` WHERE (`Entry` = 21513) AND (`Item` IN (21513, 5266, 13002, 13022, 13027, 13030, 13070, 13077, 13120, 13135, 24222)); +INSERT INTO `item_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES +(21513, 21513, 21513, 100, 0, 1, 0, 1, 1, 'Ahn\'Qiraj War Effort Supplies - Reference Loot (21513)'), +(21513, 5266, 0, 0, 0, 1, 2, 1, 1, 'Eye of Adaegus'), +(21513, 13002, 0, 0, 0, 1, 2, 1, 1, 'Lady Alizabeth\'s Pendant'), +(21513, 13022, 0, 0, 0, 1, 2, 1, 1, 'Gryphonwing Long Bow'), +(21513, 13027, 0, 0, 0, 1, 2, 1, 1, 'Bonesnapper'), +(21513, 13030, 0, 0, 0, 1, 2, 1, 1, 'Basilisk Bone'), +(21513, 13070, 0, 0, 0, 1, 2, 1, 1, 'Sapphiron\'s Scale Boots'), +(21513, 13077, 0, 0, 0, 1, 2, 1, 1, 'Girdle of Uther'), +(21513, 13120, 0, 0, 0, 1, 2, 1, 1, 'Deepfury Bracers'), +(21513, 13135, 0, 0, 0, 1, 2, 1, 1, 'Lordly Armguards'), +(21513, 24222, 0, 0, 0, 1, 2, 1, 1, 'The Shadowfoot Stabber'); diff --git a/data/sql/updates/db_world/2022_09_28_02.sql b/data/sql/updates/db_world/2022_09_28_02.sql new file mode 100644 index 000000000..de379e917 --- /dev/null +++ b/data/sql/updates/db_world/2022_09_28_02.sql @@ -0,0 +1,3 @@ +-- DB update 2022_09_28_01 -> 2022_09_28_02 +-- +UPDATE `smart_scripts` SET `action_param2` = 0 WHERE `entryorguid` = 5320 AND `source_type` = 0 AND `id` = 0; diff --git a/data/sql/updates/db_world/2022_09_28_03.sql b/data/sql/updates/db_world/2022_09_28_03.sql new file mode 100644 index 000000000..def087e1e --- /dev/null +++ b/data/sql/updates/db_world/2022_09_28_03.sql @@ -0,0 +1,7 @@ +-- DB update 2022_09_28_02 -> 2022_09_28_03 +-- Affected rows: 106 +UPDATE `creature_template` SET `dmgschool`=6 WHERE `entry` IN (15527, 16488, 16489, 16529, 16530, 17096, 17283, 18405, 18429, 18805, 18864, 18865, 19205, 20252, 20478, 20702, 21521, 21578, 22244, 24744, 25573); +UPDATE `creature_template` SET `dmgschool`=5 WHERE `entry` IN (521, 3470, 8538, 10389, 11284, 14389, 14686, 14986, 15146, 18341, 18401, 18472, 18659, 18701, 18703, 19206, 19307, 19480, 19668, 20265, 20267, 20689, 20700, 20705, 20778, 20779, 20870, 20875, 21101, 21346, 21604, 21612, 21620, 21626, 21941, 22929, 23498, 25772, 34035, 34171); +UPDATE `creature_template` SET `dmgschool`=4 WHERE `entry` IN (691, 2761, 5461, 5462, 10388, 11256, 14457, 14458, 17153, 17155, 17207, 17917, 18101, 19204, 19653, 20079, 20090, 20627, 20704, 20792, 21059, 21428, 21695, 21696, 21728, 21730, 21916, 21917, 22035, 22309, 22875, 25040, 32630); +UPDATE `creature_template` SET `dmgschool`=3 WHERE `entry` IN (832, 2762, 6239, 13282, 13456, 13696, 14454, 14455, 16901, 16903, 17085, 17154, 17158, 17159, 17160, 17356, 17357, 18102, 18145, 20565, 20566, 20774, 20908, 21060, 21617, 21707, 22036, 22310, 22878, 22881, 22883, 34004, 34005); +UPDATE `creature_template` SET `dmgschool`=2 WHERE `entry` IN (575, 2745, 2760, 4036, 4037, 4038, 5850, 5893, 5896, 8281, 8908, 8909, 8910, 8911, 9017, 9878, 9879, 10756, 10757, 11666, 11667, 11668, 11673, 12056, 12143, 12265, 14460, 14461, 15438, 17454, 17908, 18100, 19203, 20481, 20514, 20703, 21061, 21538, 21706, 22286, 22298, 22311, 22323, 22997, 23192, 30643, 31317); diff --git a/data/sql/updates/db_world/2022_09_28_04.sql b/data/sql/updates/db_world/2022_09_28_04.sql new file mode 100644 index 000000000..67978d29d --- /dev/null +++ b/data/sql/updates/db_world/2022_09_28_04.sql @@ -0,0 +1,184 @@ +-- DB update 2022_09_28_03 -> 2022_09_28_04 +-- +DELETE FROM `linked_respawn` WHERE `linkedGuid`=84387 AND `linkType`=0; +INSERT INTO `linked_respawn` VALUES +(2000050,84387,0), +(2000051,84387,0), +(2000052,84387,0), +(2000053,84387,0), +(2000054,84387,0), +(2000055,84387,0), +(2000056,84387,0), +(2000057,84387,0), +(2000058,84387,0), +(2000066,84387,0), +(2000065,84387,0), +(2000064,84387,0), +(2000063,84387,0), +(2000062,84387,0), +(2000061,84387,0), +(2000060,84387,0), +(2000068,84387,0), +(2000067,84387,0), +(2000069,84387,0), +(2000070,84387,0), +(139987,84387,0), +(139986,84387,0), +(139990,84387,0), +(139989,84387,0), +(139985,84387,0), +(139984,84387,0), +(139983,84387,0), +(139982,84387,0), +(139988,84387,0), +(139981,84387,0), +(139991,84387,0), +(139992,84387,0), +(139993,84387,0), +(139994,84387,0), +(139995,84387,0), +(139996,84387,0), +(139997,84387,0), +(139998,84387,0), +(139999,84387,0), +(140000,84387,0), +(140001,84387,0), +(140002,84387,0), +(140003,84387,0), +(140004,84387,0), +(140005,84387,0), +(140006,84387,0), +(140007,84387,0), +(140008,84387,0), +(140009,84387,0), +(140010,84387,0), +(140011,84387,0), +(140012,84387,0), +(140013,84387,0), +(140014,84387,0), +(140015,84387,0), +(140016,84387,0), +(140017,84387,0), +(140018,84387,0), +(140019,84387,0), +(140020,84387,0), +(140021,84387,0), +(140022,84387,0), +(140023,84387,0), +(140024,84387,0), +(140025,84387,0), +(140026,84387,0), +(140027,84387,0), +(140028,84387,0), +(140029,84387,0), +(140030,84387,0), +(140031,84387,0), +(140032,84387,0), +(140033,84387,0), +(140034,84387,0), +(140035,84387,0), +(140036,84387,0), +(140037,84387,0), +(140038,84387,0), +(140039,84387,0), +(140040,84387,0), +(140041,84387,0), +(140042,84387,0), +(140043,84387,0), +(140044,84387,0), +(140045,84387,0), +(140046,84387,0), +(140047,84387,0), +(140048,84387,0), +(140049,84387,0), +(140050,84387,0), +(140051,84387,0), +(140052,84387,0), +(140053,84387,0), +(140054,84387,0), +(140055,84387,0), +(140056,84387,0), +(140057,84387,0), +(2000032,84387,0), +(2000031,84387,0), +(2000030,84387,0), +(2000029,84387,0), +(2000028,84387,0), +(2000027,84387,0), +(2000026,84387,0), +(2000025,84387,0), +(2000024,84387,0), +(2000023,84387,0), +(2000022,84387,0), +(2000021,84387,0), +(2000012,84387,0), +(2000011,84387,0), +(2000010,84387,0), +(2000009,84387,0), +(2000016,84387,0), +(2000015,84387,0), +(2000014,84387,0), +(2000013,84387,0), +(2000020,84387,0), +(2000019,84387,0), +(2000018,84387,0), +(2000017,84387,0), +(2000033,84387,0), +(2000034,84387,0), +(2000035,84387,0), +(2000036,84387,0), +(2000037,84387,0), +(2000038,84387,0), +(2000039,84387,0), +(2000040,84387,0), +(2000041,84387,0), +(2000042,84387,0), +(2000043,84387,0), +(2000044,84387,0), +(2000045,84387,0), +(2000046,84387,0), +(2000047,84387,0), +(2000048,84387,0), +(2000049,84387,0), +(140058,84387,0), +(140059,84387,0), +(140060,84387,0), +(140061,84387,0), +(140062,84387,0), +(140063,84387,0), +(140064,84387,0), +(140065,84387,0), +(140066,84387,0), +(140067,84387,0), +(140068,84387,0), +(140069,84387,0), +(140070,84387,0), +(140071,84387,0), +(140072,84387,0), +(140073,84387,0), +(140074,84387,0), +(140075,84387,0), +(140076,84387,0), +(140077,84387,0), +(140078,84387,0), +(140079,84387,0), +(140080,84387,0), +(140081,84387,0), +(140082,84387,0), +(140083,84387,0), +(140084,84387,0), +(140085,84387,0), +(140086,84387,0), +(140088,84387,0), +(140089,84387,0), +(140090,84387,0), +(140091,84387,0), +(140092,84387,0), +(140093,84387,0), +(140094,84387,0), +(140095,84387,0), +(140096,84387,0), +(140097,84387,0), +(140098,84387,0), +(140099,84387,0), +(140100,84387,0); diff --git a/data/sql/updates/db_world/2022_09_28_05.sql b/data/sql/updates/db_world/2022_09_28_05.sql new file mode 100644 index 000000000..4de869528 --- /dev/null +++ b/data/sql/updates/db_world/2022_09_28_05.sql @@ -0,0 +1,108 @@ +-- DB update 2022_09_28_04 -> 2022_09_28_05 +-- Vekniss Wasp (15236) +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 15236; +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 15236) AND (`source_type` = 0) AND (`id` IN (0, 1, 2)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(15236, 0, 0, 1, 9, 0, 100, 0, 0, 40, 9700, 16000, 0, 11, 26077, 4, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Wasp - Within 0-40 Range - Cast \'Itch\''), +(15236, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 11, 26077, 4, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Wasp - Within 0-40 Range - Cast \'Itch\''), +(15236, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 11, 26077, 4, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Wasp - Within 0-40 Range - Cast \'Itch\''); + +-- Qiraji Lasher (15249) +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 15249) AND (`source_type` = 0) AND (`id` IN (0, 1)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(15249, 0, 0, 0, 0, 0, 100, 0, 26600, 31500, 26600, 31500, 0, 11, 26027, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Qiraji Lasher - In Combat - Cast \'Knockback\''), +(15249, 0, 1, 0, 0, 0, 100, 0, 8400, 18200, 8400, 18200, 0, 11, 26038, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Qiraji Lasher - In Combat - Cast \'Whirlwind\''); + +-- Vekniss Soldier (15229) - Cmangos +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 15229) AND (`source_type` = 0) AND (`id` IN (0, 1, 2)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(15229, 0, 0, 0, 0, 0, 100, 0, 0, 0, 60000, 60000, 0, 11, 25152, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Soldier - In Combat - Cast \'Agro Drones\''), +(15229, 0, 1, 0, 9, 0, 100, 0, 0, 5, 5000, 7000, 0, 11, 40504, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Soldier - Within 0-5 Range - Cast \'Cleave\''), +(15229, 0, 2, 0, 9, 0, 100, 0, 5, 25, 8000, 12000, 0, 11, 1906, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Soldier - Within 5-25 Range - Cast \'Debilitating Charge\''); + +-- Qiraji Mindslayer (15246) - Cmangos +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 15246) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(15246, 0, 0, 0, 0, 0, 100, 0, 15000, 18000, 10000, 15000, 0, 11, 26079, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Qiraji Mindslayer - In Combat - Cast \'Cause Insanity\''), +(15246, 0, 1, 0, 0, 0, 100, 0, 9000, 13000, 13000, 16000, 0, 11, 26049, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Qiraji Mindslayer - In Combat - Cast \'Mana Burn\''), +(15246, 0, 2, 0, 0, 0, 100, 0, 0, 20, 3000, 5000, 0, 11, 26048, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Qiraji Mindslayer - In Combat - Cast \'Mind Blast\''), +(15246, 0, 3, 0, 0, 0, 100, 0, 3000, 5000, 12000, 17000, 0, 11, 26044, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Qiraji Mindslayer - In Combat - Cast \'Mind Flay\''); + +-- Qiraji Brainwasher (15247) - Cmangos +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 15247) AND (`source_type` = 0) AND (`id` IN (0, 1, 2)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(15247, 0, 0, 0, 0, 0, 100, 0, 5000, 8000, 16000, 21000, 0, 11, 26079, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Qiraji Brainwasher - In Combat - Cast \'Cause Insanity\''), +(15247, 0, 1, 0, 0, 0, 100, 0, 3000, 5000, 9000, 13000, 0, 11, 26046, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Qiraji Brainwasher - In Combat - Cast \'Mana Burn\''), +(15247, 0, 2, 0, 0, 0, 100, 0, 8000, 11000, 14000, 17000, 0, 11, 26044, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Qiraji Brainwasher - In Combat - Cast \'Mind Flay\''); + +-- Vekniss Hive Crawler (15240) - Cmangos +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 15240) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3, 4, 5, 6, 7)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(15240, 0, 0, 0, 0, 0, 100, 0, 3000, 3000, 9000, 14000, 0, 11, 25809, 32, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Hive Crawler - In Combat - Cast \'Crippling Poison\''), +(15240, 0, 1, 0, 0, 0, 100, 0, 9000, 15000, 12000, 16000, 0, 11, 25810, 32, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Hive Crawler - In Combat - Cast \'Mind-numbing Poison\''), +(15240, 0, 2, 0, 0, 0, 100, 0, 7000, 11000, 10000, 14000, 0, 11, 26601, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Hive Crawler - In Combat - Cast \'Poison Bolt\''), +(15240, 0, 3, 0, 9, 1, 100, 0, 0, 5, 6000, 9000, 0, 11, 25051, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Hive Crawler - Within 0-5 Range - Cast \'Sunder Armor\' (Phase 1)'), +(15240, 0, 4, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Hive Crawler - On Aggro - Set Event Phase 1'), +(15240, 0, 5, 0, 24, 1, 100, 0, 25051, 5, 5000, 5000, 0, 22, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Hive Crawler - On Target Buffed With \'Sunder Armor\' - Set Event Phase 2 (Phase 1)'), +(15240, 0, 6, 0, 24, 2, 100, 0, 25051, 1, 5000, 5000, 0, 22, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Hive Crawler - On Target Buffed With \'Sunder Armor\' - Set Event Phase 1 (Phase 2)'), +(15240, 0, 7, 0, 7, 0, 100, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Hive Crawler - On Evade - Set Event Phase 0'); + +-- Vekniss Guardian (15233) - Cmangos +DELETE FROM `creature_text` WHERE `CreatureID`=15233 AND `GroupID`=1 AND `ID`=0; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Probability`, `BroadcastTextId`, `comment`) VALUES +(15233, 1, 0, '%s emits a strange noise.', 16, 100, 10755, 'Vekniss Guardian'); + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 15233) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(15233, 0, 0, 1, 2, 0, 100, 1, 0, 20, 0, 0, 0, 11, 8599, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Guardian - Between 0-20% Health - Cast \'Enrage\' (No Repeat)'), +(15233, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Guardian - Between 0-20% Health - Say Line 0 (No Repeat)'), +(15233, 0, 2, 0, 0, 0, 100, 0, 8000, 11000, 11000, 21000, 0, 11, 26025, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Guardian - In Combat - Cast \'Impale\''), +(15233, 0, 3, 0, 4, 0, 50, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Guardian - On Aggro - Say Line 1 (No Repeat)'); + +-- Vekniss Warrior (15230) +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 15230) AND (`source_type` = 0) AND (`id` IN (0, 1, 2)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(15230, 0, 0, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 11, 6122, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Warrior - On Just Died - Cast \'Summon Vekniss Borer\''), +(15230, 0, 1, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Warrior - On Reset - Set Run On'), +(15230, 0, 2, 0, 0, 0, 100, 0, 8000, 11000, 11000, 21000, 0, 11, 26025, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Warrior - In Combat - Cast \'Impale\''); + +-- Qiraji Slayer (15250) - Battle Shout and Whirlwind timers taken from Cmangos +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 15250) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(15250, 0, 0, 0, 0, 0, 100, 0, 1000, 3000, 21000, 30500, 0, 11, 26043, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Qiraji Slayer - In Combat - Cast \'Battle Shout\''), +(15250, 0, 1, 0, 0, 0, 100, 0, 5000, 5000, 21800, 29200, 0, 11, 26041, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Qiraji Slayer - In Combat - Cast \'Enrage\''), +(15250, 0, 2, 0, 9, 0, 100, 0, 0, 10, 15800, 15800, 0, 11, 10101, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Qiraji Slayer - Within 0-10 Range - Cast \'Knock Away\''), +(15250, 0, 3, 0, 0, 0, 100, 0, 5000, 9000, 8000, 10000, 0, 11, 13736, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Qiraji Slayer - In Combat - Cast \'Whirlwind\''); + +-- Spawn of Fankriss (15630) - Cmangos and Sniffs +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 15630) AND (`source_type` = 0) AND (`id` IN (0)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(15630, 0, 0, 0, 0, 0, 100, 1, 30000, 30000, 0, 0, 0, 11, 26662, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Spawn of Fankriss - In Combat - Cast \'Berserk\' (No Repeat)'); + +-- Anubisath Warrior (15537) - Cmangos +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 15537) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(15537, 0, 0, 1, 2, 0, 100, 1, 0, 30, 0, 0, 0, 11, 8599, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Anubisath Warrior - Between 0-30% Health - Cast \'Enrage\' (No Repeat)'), +(15537, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Anubisath Warrior - Between 0-30% Health - Say Line 0 (No Repeat)'), +(15537, 0, 2, 0, 0, 0, 100, 0, 7000, 11000, 9000, 13000, 0, 11, 15550, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Anubisath Warrior - In Combat - Cast \'Trample\''), +(15537, 0, 3, 0, 9, 0, 100, 0, 0, 10, 7000, 11000, 0, 11, 10966, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Anubisath Warrior - In Combat - Cast \'Uppercut\''); + +-- Anubisath Swarmguard (15538) - Cmangos +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 15538) AND (`source_type` = 0) AND (`id` IN (0)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(15538, 0, 0, 0, 9, 0, 100, 0, 0, 5, 5000, 7000, 0, 11, 40504, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Anubisath Swarmguard - Within 0-5 Range - Cast \'Cleave\''); + +-- Yauj Brood (15621) - Cmangos +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 15621; + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 15621) AND (`source_type` = 0) AND (`id` IN (0, 1)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(15621, 0, 0, 0, 9, 0, 100, 0, 0, 5, 9000, 13000, 0, 11, 25788, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Yauj Brood - Within 0-5 Range - Cast \'Head Butt\''), +(15621, 0, 1, 0, 13, 0, 100, 0, 8000, 10000, 0, 0, 0, 11, 25788, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Yauj Brood - On Victim Casting - Cast \'Head Butt\''); + +-- Vekniss Borer (15622) +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 15622; + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 15622) AND (`source_type` = 0) AND (`id` IN (0)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(15622, 0, 0, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vekniss Borer - On Just Died - Despawn Instant'); diff --git a/data/sql/updates/db_world/2022_09_28_06.sql b/data/sql/updates/db_world/2022_09_28_06.sql new file mode 100644 index 000000000..e5a9f6855 --- /dev/null +++ b/data/sql/updates/db_world/2022_09_28_06.sql @@ -0,0 +1,4 @@ +-- DB update 2022_09_28_05 -> 2022_09_28_06 +-- +UPDATE `creature_template` SET `AIName`='', `ScriptName`='npc_ahnqiraji_critter' WHERE `entry` IN (15316,15317); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (15316,15317) AND `source_type`=0; diff --git a/data/sql/updates/db_world/2022_09_28_07.sql b/data/sql/updates/db_world/2022_09_28_07.sql new file mode 100644 index 000000000..79911b8d8 --- /dev/null +++ b/data/sql/updates/db_world/2022_09_28_07.sql @@ -0,0 +1,5 @@ +-- DB update 2022_09_28_06 -> 2022_09_28_07 +-- +DELETE FROM `creature_loot_template` WHERE `item` = 6083; +/* Gelkis Rumblers have no other loot */ +UPDATE `creature_template` SET `lootid` = 0 WHERE `entry` = 4661; diff --git a/data/sql/updates/db_world/2022_09_28_08.sql b/data/sql/updates/db_world/2022_09_28_08.sql new file mode 100644 index 000000000..306800470 --- /dev/null +++ b/data/sql/updates/db_world/2022_09_28_08.sql @@ -0,0 +1,16 @@ +-- DB update 2022_09_28_07 -> 2022_09_28_08 +-- +DELETE FROM `smart_scripts` WHERE `entryorguid` = 15252 AND `source_type` = 0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(15252,0,0,0,11,0,100,256,0,0,0,0,211,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Qiraji Champion - On Respawn - Set not phase reset"), +(15252,0,1,0,0,0,100,0,500,500,6000,15000,11,40504,0,0,0,0,0,2,0,0,0,0,0,0,0,"Qiraji Champion - In Combat - Cast 'Cleave'"), +(15252,0,2,0,0,0,100,0,20000,40000,20000,40000,11,19134,0,0,0,0,0,2,0,0,0,0,0,0,0,"Qiraji Champion - In Combat - Cast 'Frightening Shout'"), +(15252,0,3,0,0,0,100,0,7500,12500,10000,20000,11,11130,0,0,0,0,0,1,0,0,0,0,0,0,0,"Qiraji Champion - In Combat - Cast 'Knock Away'"), +(15252,0,4,5,38,0,100,0,0,1,0,0,11,25164,0,0,0,0,0,1,0,0,0,0,0,0,0,"Qiraji Champion - On Data Set 0 1 - Cast 'Vengeance'"), +(15252,0,5,6,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Qiraji Champion - On Link - Say Line 0"), +(15252,0,6,0,61,0,100,256,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Qiraji Champion - On Link - Set Phase 1"), +(15252,0,7,0,0,1,100,0,60000,60000,60000,60000,11,25164,0,0,0,0,0,1,0,0,0,0,0,0,0,"Qiraji Champion - IC - Cast 'Vengeance' (Phase 1)"); + +DELETE FROM `creature_text` WHERE `CreatureID`=15252; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(15252,0,0,'%s becomes enraged!',16,0,100,0,0,0,24144,0,'Qiraji Champion'); diff --git a/src/server/game/Entities/Creature/CreatureGroups.cpp b/src/server/game/Entities/Creature/CreatureGroups.cpp index a181c571a..f7fa675de 100644 --- a/src/server/game/Entities/Creature/CreatureGroups.cpp +++ b/src/server/game/Entities/Creature/CreatureGroups.cpp @@ -406,13 +406,16 @@ bool CreatureGroup::IsFormationInCombat() return false; } -bool CreatureGroup::IsAnyMemberAlive() +bool CreatureGroup::IsAnyMemberAlive(bool ignoreLeader /*= false*/) { for (auto const& itr : m_members) { if (itr.first && itr.first->IsAlive()) { - return true; + if (!ignoreLeader || itr.first != m_leader) + { + return true; + } } } diff --git a/src/server/game/Entities/Creature/CreatureGroups.h b/src/server/game/Entities/Creature/CreatureGroups.h index 9fe3398f5..c3a9fc13a 100644 --- a/src/server/game/Entities/Creature/CreatureGroups.h +++ b/src/server/game/Entities/Creature/CreatureGroups.h @@ -111,7 +111,7 @@ public: void MemberEvaded(Creature* member); void RespawnFormation(bool force = false); [[nodiscard]] bool IsFormationInCombat(); - [[nodiscard]] bool IsAnyMemberAlive(); + [[nodiscard]] bool IsAnyMemberAlive(bool ignoreLeader = false); private: Creature* m_leader; //Important do not forget sometimes to work with pointers instead synonims :D:D diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index 17cce5aa3..8d2add5c3 100644 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -1800,6 +1800,7 @@ void Aura::HandleAuraSpecificMods(AuraApplication const* aurApp, Unit* caster, b switch (GetId()) { case 47788: // Guardian Spirit + { if (removeMode != AURA_REMOVE_BY_EXPIRE) break; if (caster->GetTypeId() != TYPEID_PLAYER) @@ -1821,6 +1822,15 @@ void Aura::HandleAuraSpecificMods(AuraApplication const* aurApp, Unit* caster, b player->SendDirectMessage(&data); } break; + } + case 47585: // Dispersion (fixed bug invisible as a Shadow Priest) + { + if (target->IsMounted()) + { + target->CastSpell(target, 53444, true); + } + break; + } } break; case SPELLFAMILY_ROGUE: diff --git a/src/server/game/Spells/SpellInfoCorrections.cpp b/src/server/game/Spells/SpellInfoCorrections.cpp index bf62dbaec..e9f247979 100644 --- a/src/server/game/Spells/SpellInfoCorrections.cpp +++ b/src/server/game/Spells/SpellInfoCorrections.cpp @@ -4391,12 +4391,24 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->SpellFamilyName = SPELLFAMILY_POTION; }); + // Refocus (Renataki's charm of beasts) + ApplySpellFix({ 24531 }, [](SpellInfo* spellInfo) + { + spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_CASTER); + }); + // Collect Rookery Egg ApplySpellFix({ 15958 }, [](SpellInfo* spellInfo) { spellInfo->Effects[EFFECT_1].Effect = 0; }); + // WotLK Prologue Frozen Shade Visual, temp used to restore visual after Dispersion + ApplySpellFix({ 53444 }, [](SpellInfo* spellInfo) + { + spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(27); + }); + for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i) { SpellInfo* spellInfo = mSpellInfoMap[i]; diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp index 350c489d5..2d9bc3cc1 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp @@ -15,9 +15,11 @@ * with this program. If not, see . */ +#include "CreatureGroups.h" #include "InstanceScript.h" #include "Player.h" #include "ScriptMgr.h" +#include "TaskScheduler.h" #include "temple_of_ahnqiraj.h" ObjectData const creatureData[] = @@ -69,6 +71,8 @@ public: uint32 BugTrioDeathCount; uint32 CthunPhase; + TaskScheduler scheduler; + void Initialize() override { BugTrioDeathCount = 0; @@ -140,6 +144,37 @@ public: InstanceScript::OnGameObjectCreate(go); } + void OnUnitDeath(Unit* unit) override + { + switch (unit->GetEntry()) + { + case NPC_QIRAJI_SLAYER: + case NPC_QIRAJI_MINDSLAYER: + if (Creature* creature = unit->ToCreature()) + { + if (CreatureGroup* formation = creature->GetFormation()) + { + scheduler.Schedule(100ms, [formation](TaskContext /*context*/) + { + if (!formation->IsAnyMemberAlive(true)) + { + if (Creature* leader = formation->GetLeader()) + { + if (leader->IsAlive()) + { + leader->AI()->SetData(0, 1); + } + } + } + }); + } + } + break; + default: + break; + } + } + uint32 GetData(uint32 type) const override { switch (type) @@ -217,6 +252,11 @@ public: return true; } + + void Update(uint32 diff) override + { + scheduler.Update(diff); + } }; }; diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.cpp index e63309b9f..c971e331e 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.cpp @@ -59,7 +59,14 @@ enum Spells // Obsidian Nullifier SPELL_NULLIFY = 26552, - SPELL_CLEAVE = 40504 + SPELL_CLEAVE = 40504, + + // Qiraji Scorpion + // Qiraji Scarab + SPELL_PIERCE_ARMOR = 6016, + SPELL_ACID_SPIT = 26050, + + NPC_QIRAJI_SCORPION = 15317 }; struct npc_anubisath_defender : public ScriptedAI @@ -427,6 +434,74 @@ private: std::list _targets; }; +struct npc_ahnqiraji_critter : public ScriptedAI +{ + npc_ahnqiraji_critter(Creature* creature) : ScriptedAI(creature) + { + } + + void Reset() override + { + me->RestoreFaction(); + + _scheduler.CancelAll(); + _scheduler.Schedule(100ms, [this](TaskContext context) + { + if (Player* player = me->SelectNearestPlayer(10.f)) + { + if (player->IsInCombat()) + { + AttackStart(player); + } + } + + context.Repeat(3500ms, 4000ms); + }); + } + + void EnterCombat(Unit* /*who*/) override + { + _scheduler.CancelAll(); + + if (me->GetEntry() == NPC_QIRAJI_SCORPION) + { + _scheduler.Schedule(2s, 5s, [this](TaskContext context) + { + DoCastVictim(SPELL_PIERCE_ARMOR, true); + context.Repeat(5s, 9s); + }) + .Schedule(5s, 9s, [this](TaskContext context) + { + DoCastVictim(SPELL_ACID_SPIT, true); + context.Repeat(6s, 12s); + }); + } + } + + void JustDied(Unit* /*killer*/) override + { + if (me->GetEntry() == NPC_QIRAJI_SCORPION) + { + me->DespawnOrUnsummon(5 * IN_MILLISECONDS); + } + } + + void UpdateAI(uint32 diff) override + { + _scheduler.Update(diff); + + if (!UpdateVictim()) + { + return; + } + + DoMeleeAttackIfReady(); + } + +private: + TaskScheduler _scheduler; +}; + enum NPCs { NPC_VEKNISS_DRONE = 15300 @@ -484,6 +559,7 @@ void AddSC_temple_of_ahnqiraj() RegisterTempleOfAhnQirajCreatureAI(npc_obsidian_eradicator); RegisterTempleOfAhnQirajCreatureAI(npc_anubisath_warder); RegisterTempleOfAhnQirajCreatureAI(npc_obsidian_nullifier); + RegisterTempleOfAhnQirajCreatureAI(npc_ahnqiraji_critter); RegisterSpellScript(spell_aggro_drones); RegisterSpellScript(spell_nullify); } diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h index 6d0ae143a..2527a960b 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h @@ -75,7 +75,10 @@ enum Creatures NPC_VEKNILASH = 15275, NPC_OURO = 15517, NPC_OURO_SPAWNER = 15957, - NPC_SARTURA = 15516 + NPC_SARTURA = 15516, + + NPC_QIRAJI_SLAYER = 15250, + NPC_QIRAJI_MINDSLAYER = 15246 }; enum ObjectsAQ40 diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index 2dc0731cc..d3957d00a 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -3403,9 +3403,7 @@ class spell_item_chicken_cover : public SpellScript enum Refocus { - SPELL_AIMED_SHOT = 19434, - SPELL_MULTISHOT = 2643, - SPELL_VOLLEY = 42243, + SPELL_CATEGORY_AIMED_MULTI = 85 }; class spell_item_refocus : public SpellScript @@ -3419,9 +3417,7 @@ class spell_item_refocus : public SpellScript if (!caster || caster->getClass() != CLASS_HUNTER) return; - caster->RemoveSpellCooldown(SPELL_AIMED_SHOT, true); - caster->RemoveSpellCooldown(SPELL_MULTISHOT, true); - caster->RemoveSpellCooldown(SPELL_VOLLEY, true); + caster->RemoveCategoryCooldown(SPELL_CATEGORY_AIMED_MULTI); } void Register() override