Merge branch 'azerothcore:master' into Playerbot

This commit is contained in:
ZhengPeiRu21
2023-03-23 09:07:11 -06:00
committed by GitHub
12 changed files with 189 additions and 34 deletions

View File

@@ -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);

View File

@@ -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', '黑暗在等着你呢。');

View File

@@ -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\'');

View File

@@ -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;

View File

@@ -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)

View File

@@ -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:

View File

@@ -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

View File

@@ -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);

View File

@@ -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
{

View File

@@ -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);
}

View File

@@ -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())

View File

@@ -63,6 +63,7 @@ enum SpellIds
enum DataIndex
{
DATA_BRIDGE_MOB_DEATH_COUNT,
MAX_DATA_INDEXES
};