diff --git a/data/sql/updates/db_world/2023_03_23_00.sql b/data/sql/updates/db_world/2023_03_23_00.sql new file mode 100644 index 000000000..09a92d314 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_23_00.sql @@ -0,0 +1,5 @@ +-- DB update 2023_03_22_03 -> 2023_03_23_00 +-- +UPDATE `creature_text` SET `Emote` = 33 WHERE `CreatureID` = 19220 AND `GroupID` = 6; +UPDATE `smart_scripts` SET `action_param1` = 1 WHERE `id`=1003 AND `action_type` = 223 AND `entryorguid` IN (-138820, -138869, -138893, -138879); +UPDATE `creature_template_addon` SET `emote` = 0 WHERE (`entry` = 19220); diff --git a/data/sql/updates/db_world/2023_03_23_01.sql b/data/sql/updates/db_world/2023_03_23_01.sql new file mode 100644 index 000000000..0a4067339 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_23_01.sql @@ -0,0 +1,9 @@ +-- DB update 2023_03_23_00 -> 2023_03_23_01 +-- Prince Keleseth (Utgarde Keep) +DELETE FROM `creature_text` WHERE `CreatureID`=23953 AND `GroupID`=6; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(23953, 6, 0, 'Darkness waits.', 14, 0, 0, 0, 0, 13223, 29591, 0, 'Prince Keleseth - SAY_KILL'); + +DELETE FROM `creature_text_locale` WHERE `CreatureID`=23953 AND `GroupID`=6 AND `Locale`='zhCN'; +INSERT INTO `creature_text_locale` (`CreatureID`, `GroupID`, `ID`, `Locale`, `Text`) VALUES +(23953, 6, 0, 'zhCN', '黑暗在等着你呢。'); diff --git a/data/sql/updates/db_world/2023_03_23_02.sql b/data/sql/updates/db_world/2023_03_23_02.sql new file mode 100644 index 000000000..2e12713b9 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_23_02.sql @@ -0,0 +1,95 @@ +-- DB update 2023_03_23_01 -> 2023_03_23_02 +-- +DELETE FROM `spelldifficulty_dbc` WHERE `ID` IN (40331,35106,34449,37272,37252); +INSERT INTO `spelldifficulty_dbc` (`ID`, `DifficultySpellID_1`, `DifficultySpellID_2`) VALUES +(40331, 40331, 40332), +(35106, 35106, 37856), +(34449, 34449, 37924), +(37272, 37272, 37862), +(37252, 37252, 39412); + +UPDATE `creature_text` SET `BroadcastTextId` = 16711 WHERE `Text`='By Nazjatar\'s Depths!'; +UPDATE `creature_text` SET `BroadcastTextId` = 16710 WHERE `Text`='Die, warmblood!'; +UPDATE `creature_text` SET `BroadcastTextId` = 16708 WHERE `Text`='For the Master!'; +UPDATE `creature_text` SET `BroadcastTextId` = 16709 WHERE `Text`='Illidan reigns!'; +UPDATE `creature_text` SET `BroadcastTextId` = 16712 WHERE `Text`='My blood is like venom!'; + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 17721 AND `source_type` = 0); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(17721, 0, 0, 0, 4, 0, 15, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Engineer - On Aggro - Say Line 0'), +(17721, 0, 1, 0, 0, 0, 100, 0, 6000, 8000, 9000, 13000, 0, 11, 40331, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Engineer - In Combat - Cast \'Bomb\''), +(17721, 0, 2, 0, 0, 0, 100, 0, 11000, 16000, 5000, 7000, 0, 11, 6533, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Engineer - In Combat - Cast \'Net\''); + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 17722 AND `source_type` = 0); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(17722, 0, 0, 0, 4, 0, 15, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Sorceress - On Aggro - Say Line 0'), +(17722, 0, 1, 0, 0, 0, 100, 2, 0, 0, 2400, 3800, 0, 11, 12675, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Sorceress - In Combat - Cast \'Frostbolt\' (Normal Dungeon)'), +(17722, 0, 2, 0, 0, 0, 100, 4, 0, 0, 2400, 3800, 0, 11, 37930, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Sorceress - In Combat - Cast \'Frostbolt\' (Heroic Dungeon)'), +(17722, 0, 3, 0, 9, 0, 100, 2, 0, 8, 13000, 18000, 1, 11, 15063, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Sorceress - Within 0-8 Range - Cast \'Frost Nova\' (Normal Dungeon)'), +(17722, 0, 4, 0, 9, 0, 100, 4, 0, 8, 13000, 18000, 1, 11, 15531, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Sorceress - Within 0-8 Range - Cast \'Frost Nova\' (Heroic Dungeon)'), +(17722, 0, 5, 0, 0, 0, 100, 2, 18000, 20000, 25000, 27000, 0, 11, 39416, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Sorceress - In Combat - Cast \'Blizzard\' (Normal Dungeon)'), +(17722, 0, 6, 0, 0, 0, 100, 4, 18000, 20000, 25000, 27000, 0, 11, 31581, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Sorceress - In Combat - Cast \'Blizzard\' (Heroic Dungeon)'); + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 17800 AND `source_type` = 0); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(17800, 0, 0, 0, 4, 0, 15, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Myrmidon - On Aggro - Say Line 0'), +(17800, 0, 1, 0, 0, 0, 100, 0, 3000, 5000, 5000, 7000, 0, 11, 15496, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Myrmidon - In Combat - Cast \'Cleave\''), +(17800, 0, 2, 0, 12, 0, 100, 0, 0, 20, 10000, 10000, 0, 11, 7160, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Myrmidon - Target Between 0-20% Health - Cast \'Execute\''), +(17800, 0, 3, 0, 0, 0, 100, 0, 15000, 30000, 30000, 30000, 0, 11, 18765, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Myrmidon - In Combat - Cast \'Sweeping Strikes\''); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 17801); +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 +(17801, 0, 0, 0, 4, 0, 15, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Siren - On Aggro - Say Line 0'), +(17801, 0, 1, 0, 0, 0, 100, 2, 0, 0, 3400, 4500, 0, 11, 15234, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Siren - In Combat - Cast \'Lightning Bolt\' (Normal Dungeon)'), +(17801, 0, 2, 0, 0, 0, 100, 4, 0, 0, 3400, 4500, 0, 11, 37664, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Siren - In Combat - Cast \'Lightning Bolt\' (Heroic Dungeon)'), +(17801, 0, 3, 0, 0, 0, 100, 0, 9000, 12000, 10000, 17000, 0, 11, 35106, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Siren - In Combat - Cast \'Arcane Flare\''), +(17801, 0, 5, 0, 0, 0, 100, 0, 10000, 14000, 18000, 18000, 0, 11, 38660, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Siren - In Combat - Cast \'Fear\''); + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 17803 AND `source_type` = 0); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(17803, 0, 0, 0, 0, 0, 100, 2, 5000, 8000, 13000, 16000, 0, 11, 22582, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Oracle - In Combat - Cast \'Frost Shock\' (Normal Dungeon)'), +(17803, 0, 1, 0, 0, 0, 100, 4, 5000, 8000, 13000, 16000, 0, 11, 37865, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Oracle - In Combat - Cast \'Frost Shock\' (Heroic Dungeon)'), +(17803, 0, 2, 0, 74, 0, 100, 2, 0, 40, 9000, 14000, 40, 11, 22883, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Oracle - On Friendly Between 0-40% Health - Cast \'Heal\' (Normal Dungeon)'), +(17803, 0, 3, 0, 74, 0, 100, 4, 0, 40, 9000, 14000, 40, 11, 31730, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Oracle - On Friendly Between 0-40% Health - Cast \'Heal\' (Heroic Dungeon)'), +(17803, 0, 4, 0, 0, 0, 100, 0, 9000, 12000, 14000, 18000, 0, 11, 8281, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Oracle - In Combat - Cast \'Sonic Burst\''), +(17803, 0, 5, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Oracle - On Aggro - Say Line 0'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 17917); +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 +(17917, 0, 0, 0, 0, 0, 100, 0, 3000, 6000, 7000, 12000, 0, 11, 34449, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Water Elemental - In Combat - Cast Water Bolt Volley'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 21338); +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 +(21338, 0, 0, 0, 4, 0, 100, 512, 0, 0, 0, 0, 0, 31, 1, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Leper - On Aggro - Set Phase Random Between 1-3'), +(21338, 0, 1, 0, 74, 1, 100, 2, 0, 40, 10000, 11000, 40, 11, 11642, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Leper - Friendly Below 40% HP - Cast \'Heal\' (Phase 1) (Normal Dungeon)'), +(21338, 0, 2, 0, 74, 1, 100, 4, 0, 40, 10000, 11000, 40, 11, 15586, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Leper - Friendly Below 40% HP - Cast \'Heal\' (Phase 1) (Heroic Dungeon)'), +(21338, 0, 3, 0, 0, 2, 100, 0, 4000, 6000, 7000, 8000, 0, 11, 13446, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Leper - In Combat - Cast \'Strike\' (Phase 2)'), +(21338, 0, 4, 0, 0, 2, 100, 0, 3000, 7000, 10000, 15000, 0, 11, 13444, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Leper - In Combat - Cast \'Sunder Armor\' (Phase 2)'), +(21338, 0, 5, 0, 0, 2, 100, 0, 9000, 14000, 12000, 15000, 0, 11, 40505, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Leper - In Combat - Cast \'Cleave\' (Phase 2)'), +(21338, 0, 6, 0, 0, 4, 100, 2, 4000, 6000, 9000, 10000, 0, 11, 13339, 0, 0, 0, 0, 0, 5, 20, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Leper - In Combat - Cast \'Fire Blast\' (Phase 3) (Normal Dungeon)'), +(21338, 0, 7, 0, 0, 4, 100, 4, 4000, 6000, 9000, 10000, 0, 11, 14145, 0, 0, 0, 0, 0, 5, 20, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Leper - In Combat - Cast \'Fire Blast\' (Phase 3) (Heroic Dungeon)'), +(21338, 0, 8, 0, 0, 4, 100, 2, 0, 0, 3000, 3000, 0, 11, 9613, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Leper - In Combat - Cast \'Shadow Bolt\' (Phase 3) (Normal Dungeon)'), +(21338, 0, 9, 0, 0, 4, 100, 4, 0, 0, 3000, 3000, 0, 11, 12739, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Leper - In Combat - Cast \'Shadow Bolt\' (Phase 3) (Heroic Dungeon)'); + +DELETE FROM `creature_template_addon` WHERE (`entry` IN (21694, 21914)); +INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES +(21694, 0, 0, 0, 1, 0, 0, '37266'), +(21914, 0, 0, 0, 1, 0, 0, '37863'); + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 21694) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3, 4, 5, 6)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(21694, 0, 0, 0, 1, 0, 100, 0, 2000, 5000, 12000, 19000, 0, 11, 34158, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Bog Overlord - Out of Combat - Cast \'Fungal Decay\''), +(21694, 0, 1, 0, 0, 0, 100, 0, 3000, 4000, 5000, 7000, 0, 11, 37272, 0, 0, 0, 0, 0, 5, 30, 0, 0, 0, 0, 0, 0, 0, 'Bog Overlord - In Combat - Cast \'Poison Bolt\''), +(21694, 0, 2, 0, 0, 0, 100, 0, 7000, 10000, 12000, 15000, 0, 11, 40340, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bog Overlord - In Combat - Cast \'Trample\''), +(21694, 0, 3, 0, 0, 0, 100, 0, 7000, 9500, 12000, 15000, 0, 11, 40340, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bog Overlord - In Combat - Cast \'Trample\''), +(21694, 0, 4, 5, 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, 'Bog Overlord - Between 0-20% Health - Cast \'Enrage\' (No Repeat)'), +(21694, 0, 5, 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, 'Bog Overlord - Between 0-20% Health - Say Line 0 (No Repeat)'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 21695); +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 +(21695, 0, 0, 0, 0, 0, 100, 0, 3000, 7000, 14000, 18000, 0, 11, 37250, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Tidal Surger - In Combat - Cast \'Water Spout\''), +(21695, 0, 1, 0, 9, 0, 100, 0, 0, 10, 9000, 14000, 1, 11, 15531, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tidal Surger - Within 0-10 Range - Cast \'Frost Nova\''); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 21696); +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 +(21696, 0, 0, 0, 0, 0, 100, 0, 3000, 7000, 11000, 14000, 0, 11, 37252, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Steam Surger - In Combat - Cast \'Water Bolt\''); diff --git a/data/sql/updates/db_world/2023_03_23_03.sql b/data/sql/updates/db_world/2023_03_23_03.sql new file mode 100644 index 000000000..19713a368 --- /dev/null +++ b/data/sql/updates/db_world/2023_03_23_03.sql @@ -0,0 +1,3 @@ +-- DB update 2023_03_23_02 -> 2023_03_23_03 +-- (AC ONLY) SMART_ACTION_SET_GO_STATE -> SMART_ACTION_GO_SET_GO_STATE +UPDATE `smart_scripts` SET `action_type` = 118 WHERE `action_type` = 202; diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index ac51d079a..1ac0a406b 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -2284,14 +2284,6 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u } break; } - case SMART_ACTION_SET_GO_STATE: - { - for (WorldObject* target : targets) - if (IsGameObject(target)) - target->ToGameObject()->SetGoState((GOState)e.action.goState.state); - - break; - } case SMART_ACTION_EXIT_VEHICLE: { for (WorldObject* target : targets) diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp index 5bd1e9494..b308d5582 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp @@ -725,7 +725,7 @@ bool SmartAIMgr::CheckUnusedActionParams(SmartScriptHolder const& e) case SMART_ACTION_SET_CORPSE_DELAY: return sizeof(SmartAction::corpseDelay); case SMART_ACTION_DISABLE_EVADE: return sizeof(SmartAction::disableEvade); case SMART_ACTION_GO_SET_GO_STATE: return sizeof(SmartAction::goState); - case SMART_ACTION_SET_CAN_FLY: return sizeof(SmartAction::setFly); + // case SMART_ACTION_SET_CAN_FLY: return sizeof(SmartAction::setFly); // case SMART_ACTION_REMOVE_AURAS_BY_TYPE: return sizeof(SmartAction::auraType); case SMART_ACTION_SET_SIGHT_DIST: return sizeof(SmartAction::sightDistance); case SMART_ACTION_FLEE: return sizeof(SmartAction::flee); @@ -741,7 +741,7 @@ bool SmartAIMgr::CheckUnusedActionParams(SmartScriptHolder const& e) // case SMART_ACTION_DESPAWN_SPAWNGROUP: return sizeof(SmartAction::groupSpawn); // case SMART_ACTION_RESPAWN_BY_SPAWNID: return sizeof(SmartAction::respawnData); // case SMART_ACTION_INVOKER_CAST: return sizeof(SmartAction::cast); - // case SMART_ACTION_PLAY_CINEMATIC: return sizeof(SmartAction::cinematic); + case SMART_ACTION_PLAY_CINEMATIC: return sizeof(SmartAction::cinematic); case SMART_ACTION_SET_MOVEMENT_SPEED: return sizeof(SmartAction::movementSpeed); //case SMART_ACTION_PLAY_SPELL_VISUAL_KIT: return sizeof(SmartAction::raw); // case SMART_ACTION_OVERRIDE_LIGHT: return sizeof(SmartAction::overrideLight); @@ -751,7 +751,6 @@ bool SmartAIMgr::CheckUnusedActionParams(SmartScriptHolder const& e) case SMART_ACTION_SET_HEALTH_PCT: return sizeof(SmartAction::setHealthPct); //case SMART_ACTION_CREATE_CONVERSATION: return sizeof(SmartAction::raw); case SMART_ACTION_MOVE_TO_POS_TARGET: return sizeof(SmartAction::moveToPos); - case SMART_ACTION_SET_GO_STATE: return sizeof(SmartAction::goState); case SMART_ACTION_EXIT_VEHICLE: return NO_PARAMS; case SMART_ACTION_SET_UNIT_MOVEMENT_FLAGS: return sizeof(SmartAction::movementFlag); case SMART_ACTION_SET_COMBAT_DISTANCE: return sizeof(SmartAction::combatDistance); @@ -1890,7 +1889,6 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e) case SMART_ACTION_SUMMON_CREATURE_GROUP: case SMART_ACTION_RISE_UP: case SMART_ACTION_MOVE_TO_POS_TARGET: - case SMART_ACTION_SET_GO_STATE: case SMART_ACTION_EXIT_VEHICLE: case SMART_ACTION_SET_UNIT_MOVEMENT_FLAGS: case SMART_ACTION_SET_COMBAT_DISTANCE: diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h index 65e43fe2d..3e28906b0 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -526,7 +526,7 @@ enum SMART_ACTION SMART_ACTION_TALK = 1, // groupID from creature_text, duration to wait before TEXT_OVER event is triggered, use first target from targetlist as invoker, useTalkTarget (0/1) - use target as talk target SMART_ACTION_SET_FACTION = 2, // FactionId (or 0 for default) SMART_ACTION_MORPH_TO_ENTRY_OR_MODEL = 3, // Creature_template entry(param1) OR ModelId (param2) (or 0 for both to demorph) - SMART_ACTION_SOUND = 4, // SoundId, onlySelf + SMART_ACTION_SOUND = 4, // SoundId, onlySelf, distance SMART_ACTION_PLAY_EMOTE = 5, // EmoteId SMART_ACTION_FAIL_QUEST = 6, // QuestID SMART_ACTION_OFFER_QUEST = 7, // QuestID, directAdd @@ -572,7 +572,7 @@ enum SMART_ACTION SMART_ACTION_SET_VISIBILITY = 47, // on/off SMART_ACTION_SET_ACTIVE = 48, // on/off SMART_ACTION_ATTACK_START = 49, // - SMART_ACTION_SUMMON_GO = 50, // GameObjectID, DespawnTime in s + SMART_ACTION_SUMMON_GO = 50, // GameObjectID, DespawnTime, targetSummon, summonType (0 time or summoner dies/1 time) SMART_ACTION_KILL_UNIT = 51, // SMART_ACTION_ACTIVATE_TAXI = 52, // TaxiID SMART_ACTION_WP_START = 53, // run/walk, pathID, canRepeat, quest, despawntime, reactState @@ -637,7 +637,7 @@ enum SMART_ACTION SMART_ACTION_GAME_EVENT_START = 112, // GameEventId SMART_ACTION_START_CLOSEST_WAYPOINT = 113, // wp1, wp2, wp3, wp4, wp5, wp6, wp7 SMART_ACTION_RISE_UP = 114, // distance - SMART_ACTION_RANDOM_SOUND = 115, // SoundId1, SoundId2, SoundId3, SoundId4, onlySelf + SMART_ACTION_RANDOM_SOUND = 115, // SoundId1, SoundId2, SoundId3, SoundId4, onlySelf, distance SMART_ACTION_SET_CORPSE_DELAY = 116, // timer SMART_ACTION_DISABLE_EVADE = 117, // 0/1 (1 = disabled, 0 = enabled) SMART_ACTION_GO_SET_GO_STATE = 118, // state @@ -657,18 +657,18 @@ enum SMART_ACTION SMART_ACTION_DESPAWN_SPAWNGROUP = 132, /// @todo: NOT SUPPORTED YET SMART_ACTION_RESPAWN_BY_SPAWNID = 133, /// @todo: NOT SUPPORTED YET // SMART_ACTION_INVOKER_CAST = 134, /// @todo: solve name conflicts - SMART_ACTION_PLAY_CINEMATIC = 135, // entry, cinematic + SMART_ACTION_PLAY_CINEMATIC = 135, // entry SMART_ACTION_SET_MOVEMENT_SPEED = 136, // movementType, speedInteger, speedFraction SMART_ACTION_SET_HEALTH_PCT = 142, // percent SMART_ACTION_TC_END = 199, // placeholder - // AC-only SmartActions: + // AC-only SmartActions: SMART_ACTION_AC_START = 200, // placeholder SMART_ACTION_MOVE_TO_POS_TARGET = 201, // pointId - SMART_ACTION_SET_GO_STATE = 202, // state + // SMART_ACTION_SET_GO_STATE = 202, // state // Replaced by SMART_ACTION_GO_SET_GO_STATE SMART_ACTION_EXIT_VEHICLE = 203, // none SMART_ACTION_SET_UNIT_MOVEMENT_FLAGS = 204, // flags SMART_ACTION_SET_COMBAT_DISTANCE = 205, // combatDistance diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index bddc3cbe3..a37f934c4 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -824,7 +824,7 @@ int32 Player::getMaxTimer(MirrorTimerType timer) { if (!IsAlive()) return DISABLED_MIRROR_TIMER; - return 1 * IN_MILLISECONDS; + return 2002; } default: return 0; @@ -920,7 +920,7 @@ void Player::HandleDrowning(uint32 time_diff) m_MirrorTimer[FIRE_TIMER] -= time_diff; if (m_MirrorTimer[FIRE_TIMER] < 0) { - m_MirrorTimer[FIRE_TIMER] += 1 * IN_MILLISECONDS; + m_MirrorTimer[FIRE_TIMER] += 2002; // Calculate and deal damage /// @todo: Check this formula uint32 damage = urand(600, 700); diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp index 9b78a8e35..0cf889b6e 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp @@ -29,6 +29,7 @@ enum eTexts SAY_SUMMON_SKELETONS = 2, SAY_FROST_TOMB_EMOTE = 4, SAY_DEATH = 5, + SAY_KILL = 6, }; enum eNPCs @@ -140,14 +141,13 @@ public: pInstance->SetData(DATA_KELESETH, NOT_STARTED); } - void MoveInLineOfSight(Unit* /*who*/) override {} - - /*void KilledUnit(Unit * victim) + void KilledUnit(Unit* victim) override { - if (victim == me) - return; - DoScriptText(SAY_KILL, me); - }*/ + if (victim->IsPlayer()) + { + Talk(SAY_KILL); + } + } void JustDied(Unit* /*killer*/) override { diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp index 4a6fed919..4157d4296 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp @@ -135,7 +135,7 @@ struct npc_raging_flames : public ScriptedAI if (TempSummon* summon = me->ToTempSummon()) if (Creature* summoner = summon->GetSummonerCreatureBase()) if (summoner->IsAIEnabled) - if (Unit* target = summoner->AI()->SelectTarget(SelectTargetMethod::Random, 1, 100.0f, true, false)) + if (Unit* target = summoner->AI()->SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true, false)) me->AddThreat(target, 1000000.0f); } diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp index 66ed5c78b..209aaae4b 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp @@ -37,12 +37,19 @@ enum Spells SPELL_ARCANE_TORRENT = 36022, SPELL_MANA_TAP = 36021, SPELL_DOMINATION = 35280, + SPELL_ETHEREAL_TELEPORT = 34427, + SPELL_GREATER_INVISIBILITY = 34426, SPELL_SUMMON_NETHER_WRAITH_1 = 35285, SPELL_SUMMON_NETHER_WRAITH_2 = 35286, SPELL_SUMMON_NETHER_WRAITH_3 = 35287, SPELL_SUMMON_NETHER_WRAITH_4 = 35288, }; +enum Misc +{ + ACTION_BRIDGE_MOB_DEATH = 1, // Used by SAI +}; + struct boss_pathaleon_the_calculator : public BossAI { boss_pathaleon_the_calculator(Creature* creature) : BossAI(creature, DATA_PATHALEON_THE_CALCULATOR) @@ -53,6 +60,21 @@ struct boss_pathaleon_the_calculator : public BossAI }); } + void Reset() override + { + _Reset(); + + if (instance->GetPersistentData(DATA_BRIDGE_MOB_DEATH_COUNT) < 4) + { + DoCastSelf(SPELL_GREATER_INVISIBILITY); + } + } + + bool CanAIAttack(Unit const* /*target*/) const override + { + return instance->GetPersistentData(DATA_BRIDGE_MOB_DEATH_COUNT) >= 4; + } + void JustEngagedWith(Unit* /*who*/) override { _JustEngagedWith(); @@ -86,18 +108,48 @@ struct boss_pathaleon_the_calculator : public BossAI context.Repeat(15s); }).Schedule(25s, [this](TaskContext context) { - Talk(SAY_DOMINATION); - DoCastRandomTarget(SPELL_DOMINATION, 1, 50.0f); + if (DoCastRandomTarget(SPELL_DOMINATION, 1, 50.0f) == SPELL_CAST_OK) + { + Talk(SAY_DOMINATION); + } context.Repeat(30s); - }).Schedule(8s, [this](TaskContext context) - { - DoCastAOE(SPELL_ARCANE_EXPLOSION); - context.Repeat(12s); }); + if (IsHeroic()) + { + scheduler.Schedule(8s, [this](TaskContext context) + { + DoCastAOE(SPELL_ARCANE_EXPLOSION); + context.Repeat(12s); + }); + } + Talk(SAY_AGGRO); } + void DoAction(int32 actionId) override + { + if (actionId == ACTION_BRIDGE_MOB_DEATH) + { + uint8 mobCount = instance->GetPersistentData(DATA_BRIDGE_MOB_DEATH_COUNT); + instance->StorePersistentData(DATA_BRIDGE_MOB_DEATH_COUNT, ++mobCount); + + if (mobCount >= 4) + { + DoCastSelf(SPELL_ETHEREAL_TELEPORT); + Talk(SAY_APPEAR); + + scheduler.Schedule(2s, [this](TaskContext) + { + me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY1H); + }).Schedule(25s, [this](TaskContext) + { + DoZoneInCombat(); + }); + } + } + } + void KilledUnit(Unit* victim) override { if (victim->IsPlayer()) diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/mechanar.h b/src/server/scripts/Outland/TempestKeep/Mechanar/mechanar.h index e41928705..4f3f8567b 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/mechanar.h +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/mechanar.h @@ -63,6 +63,7 @@ enum SpellIds enum DataIndex { + DATA_BRIDGE_MOB_DEATH_COUNT, MAX_DATA_INDEXES };