Merge branch 'azerothcore:master' into Playerbot

This commit is contained in:
ZhengPeiRu21
2023-03-29 06:29:03 -06:00
committed by GitHub
17 changed files with 572 additions and 138 deletions

View File

@@ -0,0 +1,3 @@
-- DB update 2023_03_28_03 -> 2023_03_29_00
--
UPDATE `creature_template` SET `flags_extra`=`flags_extra`|128 WHERE `entry`=21944;

View File

@@ -0,0 +1,5 @@
-- DB update 2023_03_29_00 -> 2023_03_29_01
--
DELETE FROM `creature_text` WHERE `CreatureID`=17797 AND `GroupID`=4 AND `ID`=0;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(17797, 4, 0, 'Enjoy the storm warm bloods!', 14, 0, 100, 0, 0, 0, 19456, 0, 'thespia SAY_SPELL');

View File

@@ -0,0 +1,7 @@
-- DB update 2023_03_29_01 -> 2023_03_29_02
--
UPDATE `creature_template` SET `flags_extra`=512 WHERE `entry` IN (36725,38058);
UPDATE `creature_template_addon` SET `bytes1`=0 WHERE `entry` IN (36725,38058);
UPDATE `creature_template_movement` SET `Flight`=0, `Ground`=1 WHERE `CreatureId` IN (36725,38058);
UPDATE `creature_template` SET `flags_extra` = `flags_extra` | 512 WHERE `entry` IN (37501, 37502, 38197, 38198);
UPDATE `smart_scripts` SET `event_param1` = 16 WHERE `entryorguid` IN (37501, 37502) AND `source_type` = 0 AND `event_type` = 34;

View File

@@ -0,0 +1,301 @@
-- DB update 2023_03_29_02 -> 2023_03_29_03
--
DELETE FROM `spelldifficulty_dbc` WHERE `ID` IN (33480, 32863);
INSERT INTO `spelldifficulty_dbc` (`ID`, `DifficultySpellID_1`, `DifficultySpellID_2`) VALUES
(33480, 33480, 38226),
(32863, 32863, 38252);
-- BroadcastID
UPDATE `creature_text` SET `BroadcastTextId` = 16798 WHERE `Text` = 'Ruin finds us all!';
UPDATE `creature_text` SET `BroadcastTextId` = 16799 WHERE `Text` = 'In Sargeras\' name!';
UPDATE `creature_text` SET `BroadcastTextId` = 16800 WHERE `Text` = 'The end comes for you!';
UPDATE `creature_text` SET `BroadcastTextId` = 16801 WHERE `Text` = 'I do as I must!';
UPDATE `creature_text` SET `BroadcastTextId` = 16802 WHERE `Text` = 'The Legion reigns!';
UPDATE `creature_text` SET `BroadcastTextId` = 16803 WHERE `Text` = 'I shall be rewarded!';
-- Cabal Cultist (18631)
UPDATE `creature_template_addon` SET `bytes2` = 1, `auras` = '8876' WHERE (`entry` = 18631); -- This is from ACID / TC - I don't believe this creature uses an aura
DELETE FROM `creature_template_addon` WHERE (`entry` = 20640);
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(20640, 0, 0, 0, 1, 0, 0, '8876');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18631);
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
(18631, 0, 0, 0, 4, 0, 10, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Cultist - On Aggro - Say Line 0'),
(18631, 0, 1, 0, 13, 0, 100, 0, 5000, 10000, 0, 0, 0, 11, 15614, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Cultist - On Victim Casting \'null\' - Cast \'Kick\''),
(18631, 0, 2, 0, 2, 0, 100, 1, 0, 15, 0, 0, 0, 25, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Cultist - Between 0-15% Health - Flee For Assist (No Repeat)');
-- Cabal Executioner (18632)
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18632);
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
(18632, 0, 0, 0, 4, 0, 10, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Executioner - On Aggro - Say Line 0'),
(18632, 0, 1, 0, 0, 0, 100, 2, 7200, 15900, 15700, 32500, 0, 11, 33500, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Executioner - In Combat - Cast \'Whirlwind\' (Normal Dungeon)'),
(18632, 0, 2, 0, 0, 0, 100, 4, 7200, 15900, 15700, 32500, 0, 11, 15578, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Executioner - In Combat - Cast \'Whirlwind\' (Heroic Dungeon)'),
(18632, 0, 3, 0, 12, 0, 100, 0, 0, 20, 8000, 12000, 0, 11, 7160, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Executioner - Target Between 0-20% Health - Cast \'Execute\''),
(18632, 0, 4, 0, 2, 0, 100, 1, 0, 25, 0, 0, 0, 11, 30485, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Executioner - Between 0-25% Health - Cast \'Enrage\' (No Repeat)');
-- Cabal Acolyte (18633)
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18633);
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
(18633, 0, 0, 0, 23, 0, 100, 0, 33482, 0, 3600, 3600, 0, 11, 33482, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Acolyte - On Aura Missing - Cast \'Shadow Defense\''),
(18633, 0, 1, 0, 4, 0, 10, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Acolyte - On Aggro - Say Line 0'),
(18633, 0, 2, 0, 74, 0, 100, 2, 0, 60, 15700, 27700, 40, 11, 12039, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Acolyte - On Friendly Between 0-60% Health - Cast \'Heal\' (Normal Dungeon)'),
(18633, 0, 3, 0, 74, 0, 100, 4, 0, 60, 15700, 27700, 40, 11, 38209, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Acolyte - On Friendly Between 0-60% Health - Cast \'Heal\' (Heroic Dungeon)'),
(18633, 0, 4, 0, 74, 0, 100, 2, 0, 50, 13200, 19300, 40, 11, 25058, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Acolyte - On Friendly Between 0-50% Health - Cast \'Renew\' (Normal Dungeon)'),
(18633, 0, 5, 0, 74, 0, 100, 4, 0, 50, 13200, 19300, 40, 11, 38210, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Acolyte - On Friendly Between 0-50% Health - Cast \'Renew\' (Heroic Dungeon)'),
(18633, 0, 6, 0, 2, 0, 100, 1, 0, 15, 0, 0, 0, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Acolyte - Between 0-15% Health - Flee For Assist (No Repeat)');
-- Cabal Summoner (18634)
DELETE FROM `creature_text` WHERE `CreatureID` = 18634;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(18634, 0, 0, 'Ruin finds us all!', 12, 0, 100, 0, 0, 0, 16798, 0, 'Cabal Summoner'),
(18634, 0, 1, 'In Sargeras\' name!', 12, 0, 100, 0, 0, 0, 16799, 0, 'Cabal Summoner'),
(18634, 0, 2, 'The end comes for you!', 12, 0, 100, 0, 0, 0, 16800, 0, 'Cabal Summoner'),
(18634, 0, 3, 'I do as I must!', 12, 0, 100, 0, 0, 0, 16801, 0, 'Cabal Summoner'),
(18634, 0, 4, 'The Legion reigns!', 12, 0, 100, 0, 0, 0, 16802, 0, 'Cabal Summoner'),
(18634, 0, 5, 'I shall be rewarded!', 12, 0, 100, 0, 0, 0, 16803, 0, 'Cabal Summoner'),
(18634, 1, 0, '%s begins to summon in a Cabal Deathsworn!', 16, 0, 100, 0, 0, 0, 16271, 0, 'Cabal Summoner'),
(18634, 2, 0, '%s begins to summon in a Cabal Acolyte!', 16, 0, 100, 0, 0, 0, 16275, 0, 'Cabal Summoner'),
(18634, 3, 0, '%s summons a Cabal Acolyte to his aid!', 16, 0, 100, 0, 0, 0, 16278, 0, 'Cabal Summoner'),
(18634, 4, 0, '%s summons a Cabal Deathsworn to his aid!', 16, 0, 100, 0, 0, 0, 16280, 0, 'Cabal Summoner');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18634);
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
(18634, 0, 0, 0, 4, 0, 10, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Summoner - On Aggro - Say Line 0'),
(18634, 0, 1, 0, 0, 0, 100, 2, 1800, 6200, 4800, 16900, 0, 11, 14034, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Summoner - In Combat - Cast \'Fireball\' (Normal Dungeon)'),
(18634, 0, 2, 0, 0, 0, 100, 4, 1800, 6200, 4800, 16900, 0, 11, 15228, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Summoner - In Combat - Cast \'Fireball\' (Heroic Dungeon)'),
(18634, 0, 3, 5, 0, 0, 100, 0, 4300, 17200, 13300, 25300, 0, 11, 33506, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Summoner - In Combat - Cast \'Summon Cabal Deathsworn\''),
(18634, 0, 4, 6, 0, 0, 100, 0, 3600, 33200, 12100, 27900, 0, 11, 33507, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Summoner - In Combat - Cast \'Summon Cabal Acolyte\''),
(18634, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Summoner - On Link - Say Line 1'),
(18634, 0, 6, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Summoner - On Link - Say Line 2'),
(18634, 0, 7, 0, 17, 0, 100, 0, 19208, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Summoner - On Summoned Unit - Say Line 3'),
(18634, 0, 8, 0, 17, 0, 100, 0, 19209, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Summoner - On Summoned Unit - Say Line 4');
-- Cabal Deathsworn (18635)
DELETE FROM `creature_text` WHERE `CreatureID`=18635 AND `GroupID`=1;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES (18635, 1, 0, '%s goes into a frenzy!', 16, 0, 100, 0, 0, 0, 2384, 0, 'Cabal Deathsworn');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18635);
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
(18635, 0, 0, 0, 4, 0, 10, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Deathsworn - On Aggro - Say Line 0'),
(18635, 0, 1, 0, 0, 0, 100, 0, 10200, 18100, 14100, 26200, 0, 11, 33480, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Deathsworn - In Combat - Cast \'Black Cleave\''),
(18635, 0, 2, 0, 0, 0, 100, 0, 10900, 28200, 12100, 22900, 0, 11, 11428, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Deathsworn - In Combat - Cast \'Knockdown\''),
(18635, 0, 3, 4, 2, 0, 100, 1, 0, 25, 0, 0, 0, 11, 8599, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Deathsworn - Between 0-25% Health - Cast \'Enrage\'(No Repeat)'),
(18635, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Deathsworn - On Link - Say Line 1');
-- Cabal Assassin (18636)
UPDATE `creature_template_addon` SET `bytes2` = 1, `auras` = '30982 30991 30998' WHERE (`entry` = 18636);
DELETE FROM `creature_template_addon` WHERE (`entry` = 20639);
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(20639, 0, 0, 0, 1, 0, 0, '30982 30991 30998');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18636);
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
(18636, 0, 0, 0, 4, 0, 10, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Assassin - On Aggro - Say Line 0'),
(18636, 0, 1, 0, 0, 0, 100, 1, 0, 1000, 0, 0, 0, 11, 30986, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Assassin - In Combat - Cast \'Cheap Shot\' (No Repeat)'),
(18636, 0, 2, 0, 0, 0, 100, 0, 5000, 7000, 4500, 6500, 0, 11, 30992, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Assassin - In Combat - Cast \'Backstab\'');
-- Cabal Shadow Priest (18637)
UPDATE `creature_template_addon` SET `bytes2` = 1, `auras` = '16592' WHERE (`entry` = 18637);
DELETE FROM `creature_template_addon` WHERE (`entry` = 20646);
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(20646, 0, 0, 0, 1, 0, 0, '16592');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18637);
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
(18637, 0, 0, 0, 4, 0, 10, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Shadow Priest - On Aggro - Say Line 0'),
(18637, 0, 1, 0, 0, 0, 100, 2, 3200, 10800, 4800, 9700, 0, 11, 17165, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Shadow Priest - In Combat - Cast \'Mind Flay\' (Normal Dungeon)'),
(18637, 0, 2, 0, 0, 0, 100, 4, 3200, 10800, 2400, 4800, 0, 11, 38243, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Shadow Priest - In Combat - Cast \'Mind Flay\' (Heroic Dungeon)'),
(18637, 0, 3, 0, 0, 0, 100, 2, 3600, 12100, 5400, 12900, 0, 11, 14032, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Shadow Priest - In Combat - Cast \'Shadow Word: Pain\' (Normal Dungeon)'),
(18637, 0, 4, 0, 0, 0, 100, 4, 3100, 12100, 4800, 7200, 0, 11, 17146, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Shadow Priest - In Combat - Cast \'Shadow Word: Pain\' (Heroic Dungeon)');
-- Cabal Zealot (18638)
DELETE FROM `creature_text` WHERE `CreatureID` = 18638;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(18638, 0, 0, 'Ruin finds us all!', 12, 0, 100, 0, 0, 0, 16798, 0, 'Cabal Zealot'),
(18638, 0, 1, 'In Sargeras\' name!', 12, 0, 100, 0, 0, 0, 16799, 0, 'Cabal Zealot'),
(18638, 0, 2, 'The end comes for you!', 12, 0, 100, 0, 0, 0, 16800, 0, 'Cabal Zealot'),
(18638, 0, 3, 'I do as I must!', 12, 0, 100, 0, 0, 0, 16801, 0, 'Cabal Zealot'),
(18638, 0, 4, 'The Legion reigns!', 12, 0, 100, 0, 0, 0, 16802, 0, 'Cabal Zealot'),
(18638, 0, 5, 'I shall be rewarded!', 12, 0, 100, 0, 0, 0, 16803, 0, 'Cabal Zealot'),
(18638, 1, 0, '%s makes some strange gestures.', 16, 8, 100, 0, 0, 0, 16259, 0, 'Cabal Zealot');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18638);
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
(18638, 0, 0, 0, 4, 0, 10, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Zealot - On Aggro - Say Line 0'),
(18638, 0, 1, 0, 0, 0, 100, 2, 0, 0, 3400, 4500, 0, 11, 12471, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Zealot - In Combat CMC - Cast \'Shadow Bolt\' (Normal Dungeon)'),
(18638, 0, 2, 0, 0, 0, 100, 4, 0, 0, 3400, 4500, 0, 11, 15472, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Zealot - In Combat CMC - Cast \'Shadow Bolt\' (Heroic Dungeon)'),
(18638, 0, 3, 4, 2, 0, 100, 1, 0, 50, 0, 0, 0, 11, 33949, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Zealot - Between 0-50% Health - Cast \'Shape of the Beast\' (No Repeat)'),
(18638, 0, 4, 5, 61, 0, 100, 0, 0, 0, 0, 0, 0, 11, 33499, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Zealot - On Link - Cast \'Shape of the Beast\''),
(18638, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Zealot - On Link - Say Line 1');
-- Cabal Spellbinder (18639)
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18639);
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
(18639, 0, 0, 0, 4, 0, 10, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Spellbinder - On Aggro - Say Line 0'),
(18639, 0, 1, 0, 0, 0, 100, 0, 5700, 19300, 9600, 16900, 0, 11, 32691, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Spellbinder - In Combat - Cast \'Spell Shock\''),
(18639, 0, 2, 0, 0, 0, 100, 0, 8000, 12000, 20000, 30000, 0, 11, 33502, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Spellbinder - In Combat - Cast \'Brain Wash\''),
(18639, 0, 3, 0, 23, 0, 100, 1, 8734, 1, 0, 0, 0, 11, 8734, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Spellbinder - On Has Aura - Cast \'Blackfathom Channeling\' (No Repeat)');
-- Cabal Warlock (18640)
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18640);
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
(18640, 0, 0, 0, 23, 0, 100, 0, 13787, 0, 3600, 3600, 0, 11, 13787, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Warlock - On Aura Missing - Cast \'Demon Armor\''),
(18640, 0, 1, 0, 4, 0, 10, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Warlock - On Aggro - Say Line 0'),
(18640, 0, 2, 0, 0, 0, 100, 2, 0, 0, 3600, 4800, 0, 11, 12471, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Warlock - In Combat - Cast \'Shadow Bolt\' (Normal Dungeon)'),
(18640, 0, 3, 0, 0, 0, 100, 4, 0, 0, 3600, 4800, 0, 11, 15232, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Warlock - In Combat - Cast \'Shadow Bolt\' (Heroic Dungeon)'),
(18640, 0, 4, 0, 0, 0, 100, 0, 7800, 24100, 19300, 36200, 0, 11, 32863, 32, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Warlock - In Combat - Cast \'Seed of Corruption\'');
-- Cabal Familiar (18641)
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18641);
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
(18641, 0, 0, 0, 0, 0, 100, 2, 0, 0, 2400, 3600, 0, 11, 20801, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Familiar - In Combat - Cast \'Firebolt\' (Normal Dungeon)'),
(18641, 0, 1, 0, 0, 0, 100, 4, 0, 0, 2400, 3600, 0, 11, 38239, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Familiar - In Combat - Cast \'Firebolt\' (Heroic Dungeon)');
-- Fel Guardhound (18642)
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18642);
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
(18642, 0, 0, 0, 0, 0, 100, 0, 4800, 14500, 12100, 18100, 0, 11, 30849, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Fel Guardhound - In Combat - Cast \'Spell Lock\'');
-- Invisible Target (18793)
UPDATE `creature_template_addon` SET `bytes2` = 1, `visibilityDistanceType` = 4 WHERE (`entry` = 18793);
-- Cabal Ritualist (18794)
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18794);
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
(18794, 0, 0, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 11, 32958, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - On Reset - Cast \'Crystal Channel\''),
(18794, 0, 1, 0, 4, 0, 100, 512, 0, 0, 0, 0, 0, 88, 1879400, 1879403, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - On Aggro - Run Random Script'),
(18794, 0, 2, 0, 4, 0, 10, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - On Aggro - Say Line 0'),
(18794, 0, 3, 0, 0, 1, 100, 2, 0, 0, 3400, 4500, 0, 11, 15497, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - In Combat CMC - Cast \'Frostbolt\' (Normal Dungeon) (Phase 1)'),
(18794, 0, 4, 0, 0, 1, 100, 4, 0, 0, 3400, 4500, 0, 11, 12675, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - In Combat CMC - Cast \'Frostbolt\' (Heroic Dungeon) (Phase 1)'),
(18794, 0, 5, 0, 0, 1, 100, 2, 10000, 18000, 12100, 16900, 0, 11, 15532, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - In Combat - Cast \'Frost Nova\' (Normal Dungeon) (Phase 1)'),
(18794, 0, 6, 0, 0, 1, 100, 4, 10000, 18000, 12100, 16900, 0, 11, 15063, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - In Combat - Cast \'Frost Nova\' (Normal Dungeon) (Phase 1)'),
(18794, 0, 7, 0, 0, 2, 100, 2, 0, 0, 5000, 5000, 0, 11, 33832, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - In Combat CMC - Cast \'Arcane Missiles\' (Normal Dungeon) (Phase 2)'),
(18794, 0, 8, 0, 0, 2, 100, 4, 0, 0, 5000, 5000, 0, 11, 38263, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - In Combat CMC - Cast \'Arcane Missiles\' (Heroic Dungeon) (Phase 2)'),
(18794, 0, 9, 0, 0, 2, 100, 0, 2400, 14300, 5200, 21700, 0, 11, 33487, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - In Combat - Cast \'Addle Humanoid\' (Phase 2)'),
(18794, 0, 10, 0, 0, 4, 100, 0, 3600, 6200, 4800, 11200, 0, 11, 9574, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - In Combat - Cast \'Flame Buffet\' (Phase 3)'),
(18794, 0, 11, 0, 0, 4, 100, 2, 6100, 20200, 8400, 22900, 0, 11, 20795, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - In Combat - Cast \'Fire Blast\' (Normal Dungeon) (Phase 3)'),
(18794, 0, 12, 0, 0, 4, 100, 4, 6100, 20200, 8400, 22900, 0, 11, 14145, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - In Combat - Cast \'Fire Blast\' (Heroic Dungeon) (Phase 3)'),
(18794, 0, 13, 0, 0, 8, 100, 0, 10000, 15000, 12100, 19300, 0, 11, 12540, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - In Combat - Cast \'Gouge\' (Phase 4)'),
(18794, 0, 14, 0, 15, 0, 100, 4, 15, 15000, 20000, 0, 0, 11, 17201, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - Friendly Crowd Controlled - Cast \'Dispel Magic\' (Heroic Dungeon)'),
(18794, 0, 15, 0, 2, 0, 100, 1, 0, 15, 0, 0, 0, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - Between 0-15% Health - Flee For Assist (No Repeat)');
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` BETWEEN 1879400 AND 1879403);
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
(1879400, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - On Script - Set Event Phase 1'),
(1879400, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 71, 0, 1, 12421, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - On Script - Set Mainhand Item'),
(1879401, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - On Script - Set Event Phase 2'),
(1879401, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 71, 0, 1, 14618, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - On Script - Set Mainhand Item'),
(1879402, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - On Script - Set Event Phase 3'),
(1879402, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 71, 0, 1, 13718, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - On Script - Set Mainhand Item'),
(1879403, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - On Script - Set Event Phase 4'),
(1879403, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 71, 0, 1, 19980, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - On Script - Set Mainhand Item'),
(1879403, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 71, 0, 2, 0, 19980, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - On Script - Set Offhand Item');
-- Fel Overseer (18796)
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18796);
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
(18796, 0, 0, 0, 4, 0, 15, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Fel Overseer - On Aggro - Say Line 0'),
(18796, 0, 1, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 11, 27577, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Fel Overseer - On Aggro - Cast \'Intercept\''),
(18796, 0, 2, 0, 0, 0, 100, 4, 4800, 9300, 15700, 20300, 0, 11, 16856, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Fel Overseer - In Combat - Cast \'Mortal Strike\' (Heroic Dungeon)'),
(18796, 0, 3, 0, 0, 0, 100, 4, 30000, 30000, 30000, 30000, 0, 11, 19134, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Fel Overseer - In Combat - Cast \'Frightening Shout\' (Heroic Dungeon)'),
(18796, 0, 4, 0, 0, 0, 100, 0, 13300, 18900, 15700, 26500, 0, 11, 30471, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Fel Overseer - In Combat - Cast \'Uppercut\'');
-- Tortured Skeleton
UPDATE `creature_template` SET `unit_flags`=`unit_flags`|33587200 WHERE (`entry` IN (18797, 20662));
DELETE FROM `creature_template_addon` WHERE (`entry` IN (18797, 20662));
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18797);
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
(18797, 0, 0, 1, 4, 0, 100, 0, 0, 0, 0, 0, 0, 91, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tortured Skeleton - On Aggro - Remove FlagStandstate Dead'),
(18797, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 19, 33554432, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tortured Skeleton - On Aggro - Remove Flags Not Selectable'),
(18797, 0, 2, 3, 25, 0, 100, 0, 0, 0, 0, 0, 0, 18, 33554432, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tortured Skeleton - On Reset - Set Flags Not Selectable'),
(18797, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 90, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tortured Skeleton - On Reset - Set Flag Standstate Dead');
-- Cabal Fanatic (18830)
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18830);
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
(18830, 0, 0, 0, 4, 0, 10, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Fanatic - On Aggro - Say Line 0'),
(18830, 0, 1, 0, 0, 0, 100, 0, 9600, 20500, 13300, 22900, 0, 11, 12021, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cabal Fanatic - In Combat - Cast \'Fixate\'');
-- Malicious Instructor (18848)
UPDATE `creature_template_addon` SET `bytes2` = 1, `auras` = '19818' WHERE (`entry` IN (18848, 20656));
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18848);
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
(18848, 0, 0, 0, 4, 0, 15, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Malicious Instructor - On Aggro - Say Line 0'),
(18848, 0, 1, 0, 0, 0, 100, 4, 16100, 25300, 21700, 25300, 0, 11, 6713, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Malicious Instructor - In Combat - Cast \'Disarm\' (Heroic Dungeon)'),
(18848, 0, 2, 0, 0, 0, 100, 0, 10800, 15700, 18100, 29100, 0, 11, 33493, 32, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Malicious Instructor - In Combat - Cast \'Mark of Malice\''),
(18848, 0, 3, 0, 0, 0, 100, 0, 9600, 16900, 7200, 18100, 0, 11, 33501, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Malicious Instructor - In Combat - Cast \'Shadow Nova\'');
-- Spy To'gun (18891)
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 18891;
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18891);
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
(18891, 0, 0, 0, 19, 0, 100, 1, 10091, 0, 0, 0, 0, 80, 1889100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Spy To\'gun - On Quest \'The Soul Devices\' Taken - Run Script (No Repeat)');
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 1889100);
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
(1889100, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 20, 182942, 0, 0, 0, 0, 0, 0, 0, 'Spy To\'gun - On Script - Activate Closest Gameobject (Cage)'),
(1889100, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Spy To\'gun - On Script - Set Run Off'),
(1889100, 9, 2, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 0, 69, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, -63.5416, 42.9283, 0.206252, 2.42972, 'Spy To\'gun - On Script - Move To Position');
-- Summoned Cabal Deathsworn (19209)
DELETE FROM `creature_text` WHERE `CreatureID`=19209;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(19209, 0, 0, '%s goes into a frenzy!', 16, 0, 100, 0, 0, 0, 2384, 0, 'Summoned Cabal Deathsworn');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 19209);
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
(19209, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Cabal Deathsworn - On Just Summoned - Set In Combat With Zone'),
(19209, 0, 1, 0, 0, 0, 100, 0, 10200, 18100, 14100, 26200, 0, 11, 33480, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Cabal Deathsworn - In Combat - Cast \'Black Cleave\''),
(19209, 0, 2, 0, 0, 0, 100, 0, 10900, 28200, 12100, 22900, 0, 11, 11428, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Cabal Deathsworn - In Combat - Cast \'Knockdown\''),
(19209, 0, 3, 4, 2, 0, 100, 1, 0, 25, 0, 0, 0, 11, 8599, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Cabal Deathsworn - Between 0-25% Health - Cast \'Enrage\' (No Repeat)'),
(19209, 0, 4, 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, 'Summoned Cabal Deathsworn - On Link - Say Line 0'),
(19209, 0, 5, 0, 7, 0, 100, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Cabal Deathsworn - On Evade - Despawn (0)'),
(19209, 0, 6, 0, 7, 0, 100, 0, 0, 0, 0, 0, 0, 18, 33554432, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Cabal Deathsworn - On Evade - Set Flag Not Selectable');
-- Summoned Cabal Acolyte (19208)
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 19208);
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
(19208, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 0, 11, 33482, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Cabal Acolyte - On Just Summoned - Cast \'Shadow Defense\''),
(19208, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Cabal Acolyte - On Link - Set In Combat With Zone'),
(19208, 0, 2, 0, 74, 0, 100, 2, 0, 60, 15700, 27700, 40, 11, 12039, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Cabal Acolyte - On Friendly Between 0-60% Health - Cast \'Heal\' (Normal Dungeon)'),
(19208, 0, 3, 0, 74, 0, 100, 4, 0, 60, 15700, 27700, 40, 11, 38209, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Cabal Acolyte - On Friendly Between 0-60% Health - Cast \'Heal\' (Heroic Dungeon)'),
(19208, 0, 4, 0, 74, 0, 100, 2, 0, 50, 13200, 19300, 40, 11, 25058, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Cabal Acolyte - On Friendly Between 0-50% Health - Cast \'Renew\' (Normal Dungeon)'),
(19208, 0, 5, 0, 74, 0, 100, 4, 0, 50, 13200, 19300, 40, 11, 38210, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Cabal Acolyte - On Friendly Between 0-50% Health - Cast \'Renew\' (Heroic Dungeon)'),
(19208, 0, 6, 0, 2, 0, 100, 1, 0, 15, 0, 0, 0, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Cabal Acolyte - Between 0-15% Health - Flee For Assist (No Repeat)'),
(19208, 0, 7, 0, 7, 0, 100, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Cabal Acolyte - On Evade - Despawn (0)'),
(19208, 0, 8, 0, 7, 0, 100, 0, 0, 0, 0, 0, 0, 18, 33554432, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Cabal Acolyte - On Evade - Set Flag Not Selectable');
-- Ambassador Hellmaw Arena
-- Target Conditions
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 1) AND (`SourceEntry` IN (32958, 36220)) AND (`ConditionTypeOrReference` = 31) AND (`ConditionValue2` IN (21159, 18731, 18793));
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(13, 1, 32958, 0, 0, 31, 0, 3, 18793, 0, 0, 0, 0, '', 'Spell Crystal Channel (32958) only targets Invisible Target (18793)'),
(13, 1, 36220, 0, 0, 31, 0, 3, 18731, 0, 0, 0, 0, '', 'Spell Containment Beam (36220) only targets Ambassador Hellmaw (18731)');
-- Containment Beam
UPDATE `creature_template` SET `AIName` = '' WHERE `entry` = 21159;
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 21159) AND (`source_type` = 0);
-- Invisible Target
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18793);
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
(18793, 0, 0, 0, 23, 0, 100, 0, 32958, 1, 3600, 3600, 0, 86, 36220, 0, 19, 21159, 10, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Invisible Target - On Aura \'Crystal Channel\' - Cross Cast \'Containment Beam\''),
(18793, 0, 1, 0, 23, 0, 100, 0, 32958, 0, 3600, 3600, 0, 28, 36220, 0, 0, 0, 0, 0, 19, 21159, 10, 0, 0, 0, 0, 0, 0, 'Invisible Target - On Aura \'Crystal Channel\' Missing - Remove Aura \'Containment Beam\'');
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 22) AND (`SourceGroup` = 2) AND (`SourceEntry` = 18793);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(22, 2, 18793, 0, 0, 29, 1, 18794, 20, 0, 1, 0, 0, '', 'Only play if there are no Cabal Ritualists alive nearby');
-- Cabal Ritualist
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 18794) AND (`source_type` = 0) AND (`id` IN (16));
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
(18794, 0, 16, 0, 6, 0, 100, 512, 0, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 0, 19, 18731, 200, 0, 0, 0, 0, 0, 0, 'Cabal Ritualist - On Just Died - Do Action on \'Ambassador Hellmaw\'');
UPDATE `smart_scripts` SET `action_param2`=0 WHERE (`entryorguid` = 18794) AND (`source_type` = 0) AND (`id` IN (3, 4, 7, 8));
-- Targets
UPDATE `creature_template_addon` SET `visibilityDistanceType` = 5 WHERE (`entry` IN (18793, 21159));

View File

@@ -0,0 +1,17 @@
-- DB update 2023_03_29_03 -> 2023_03_29_04
--
SET @CGUID := 138800;
DELETE FROM `creature` WHERE `id1` IN (19168, 19510) AND `map`=554 AND `guid` BETWEEN @CGUID+94 AND @CGUID+97;
INSERT INTO `creature` (`guid`, `id1`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `VerifiedBuild`) VALUES
(@CGUID+94, 19510, 554, 3849, 3849, 3, 1, 1, 274.302032470703125, -17.8063602447509765, 26.41173362731933593, 0.157079637050628662, 86400, 0, 0, 0, 0, 0, 0, 0, 0, 43400),
(@CGUID+95, 19168, 554, 3849, 3849, 3, 1, 0, 272.1549072265625, -24.658304214477539, 26.41173171997070312, 6.161012172698974609, 86400, 0, 0, 0, 0, 0, 0, 0, 0, 43400),
(@CGUID+96, 19510, 554, 3849, 3849, 3, 1, 1, 274.13446044921875, -28.7062282562255859, 26.41173362731933593, 0, 86400, 0, 0, 0, 0, 0, 0, 0, 0, 43400),
(@CGUID+97, 19168, 554, 3849, 3849, 3, 1, 0, 272.077850341796875, -20.9663429260253906, 26.41172981262207031, 6.195918560028076171, 86400, 0, 0, 0, 0, 0, 0, 0, 0, 43400);
DELETE FROM `creature_formations` WHERE `leaderGUID` = @CGUID+94 AND `memberGUID` IN (@CGUID+94, @CGUID+95, @CGUID+96, @CGUID+97);
INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES
(@CGUID+94, @CGUID+94, 0, 0, 3),
(@CGUID+94, @CGUID+95, 0, 0, 3),
(@CGUID+94, @CGUID+96, 0, 0, 3),
(@CGUID+94, @CGUID+97, 0, 0, 3);

View File

@@ -12568,15 +12568,18 @@ bool Player::isHonorOrXPTarget(Unit* victim) const
// Victim level less gray level
if (v_level <= k_grey)
{
return false;
}
if (victim->GetTypeId() == TYPEID_UNIT)
{
if (victim->IsTotem() ||
victim->IsPet() ||
victim->ToCreature()->GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_NO_XP)
if (victim->IsTotem() || victim->IsCritter() || victim->IsPet() || (victim->ToCreature()->GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_NO_XP))
{
return false;
}
}
return true;
}

View File

@@ -8318,6 +8318,12 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
if (procEx & PROC_EX_CRITICAL_HIT)
damage /= 2;
// do not proc off from itself
if (procSpell->Id == 45297 || procSpell->Id == 45284)
{
return false;
}
do
{
uint32 spell = 0;
@@ -17997,8 +18003,10 @@ void Unit::Kill(Unit* killer, Unit* victim, bool durabilityLoss, WeaponAttackTyp
sScriptMgr->OnCreatureKilledByPet( killer->GetCharmerOrOwnerPlayerOrPlayerItself(), victim->ToCreature());
}
if (killer != victim && !victim->IsCritter())
if (killer != victim)
{
Unit::ProcDamageAndSpell(killer, victim, killer ? PROC_FLAG_KILL : 0, PROC_FLAG_KILLED, PROC_EX_NONE, 0, attackType, spellProto, nullptr, -1, spell);
}
// Proc auras on death - must be before aura/combat remove
Unit::ProcDamageAndSpell(victim, nullptr, PROC_FLAG_DEATH, PROC_FLAG_NONE, PROC_EX_NONE, 0, attackType, spellProto, nullptr, -1, spell);

View File

@@ -4501,6 +4501,12 @@ void SpellMgr::LoadSpellInfoCorrections()
spellInfo->AttributesEx |= SPELL_ATTR1_NO_REFLECTION;
});
// Turn the Tables
ApplySpellFix({ 51627, 51628, 51629 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_DOT_STACKING_RULE;
});
for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i)
{
SpellInfo* spellInfo = mSpellInfoMap[i];

View File

@@ -3347,13 +3347,19 @@ public:
EventMap events;
bool _didWebBeam;
void InitializeAI() override
{
me->SetDisableGravity(true);
me->SetImmuneToAll(true);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_03);
}
void Reset() override
{
events.Reset();
events.ScheduleEvent(1, 3s, 10s); // Crypt Scarabs
events.ScheduleEvent(2, 15s, 25s); // Dark Mending
events.ScheduleEvent(3, 8s, 15s); // Web Wrap
me->AddUnitState(UNIT_STATE_NO_ENVIRONMENT_UPD);
}
void MoveInLineOfSight(Unit* who) override
@@ -3364,9 +3370,10 @@ public:
float nx = me->GetPositionX();
float ny = me->GetPositionY();
float nz = me->GetFloorZ();
DoCastSelf(SPELL_WEB_BEAM);
me->SetHomePosition(nx, ny, nz, me->GetOrientation());
me->CastSpell(me, SPELL_WEB_BEAM, false);
me->GetMotionMaster()->MovePoint(1, nx, ny, nz, false);
me->GetMotionMaster()->MoveLand(1, nx, ny, nz, false);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
return;
}
@@ -3386,20 +3393,19 @@ public:
if (me->IsLevitating())
{
me->SetDisableGravity(false);
me->SetImmuneToAll(false);
me->NearTeleportTo(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
}
}
void MovementInform(uint32 type, uint32 id) override
void MovementInform(uint32 /*type*/, uint32 id) override
{
if (type == POINT_MOTION_TYPE && id == 1)
if (id == 1)
{
if (me->IsLevitating())
{
me->SetDisableGravity(false);
me->SetOrientation(0.0f);
me->NearTeleportTo(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
me->ClearUnitState(UNIT_STATE_NO_ENVIRONMENT_UPD);
}
}
}
@@ -3516,7 +3522,7 @@ public:
if (spider->GetPositionZ() > 220.0f)
{
spider->CastSpell(spider, SPELL_WEB_BEAM2, false);
spider->GetMotionMaster()->MovePoint(POINT_ENTER_COMBAT, spider->GetPositionX(), spider->GetPositionY(), 213.03f, false);
spider->GetMotionMaster()->MoveLand(POINT_ENTER_COMBAT, spider->GetPositionX(), spider->GetPositionY(), 213.03f, false);
}
}

View File

@@ -56,6 +56,7 @@ struct boss_talon_king_ikiss : public BossAI
_Reset();
_spoken = false;
_manaShield = false;
_comboHealthStages.fill(false);
}
void MoveInLineOfSight(Unit* who) override
@@ -74,25 +75,13 @@ struct boss_talon_king_ikiss : public BossAI
_JustEngagedWith();
Talk(SAY_AGGRO);
scheduler.Schedule(35s, [this](TaskContext context)
{
me->InterruptNonMeleeSpells(false);
DoCastAOE(SPELL_BLINK);
Talk(EMOTE_ARCANE_EXP);
context.Repeat(35s, 40s);
scheduler.Schedule(1s, [this](TaskContext)
{
DoCastAOE(SPELL_ARCANE_EXPLOSION);
DoCastSelf(SPELL_ARCANE_BUBBLE, true);
});
}).Schedule(5s, [this](TaskContext context)
scheduler.Schedule(5s, [this](TaskContext context)
{
DoCastAOE(SPELL_ARCANE_VOLLEY);
context.Repeat(7s, 12s);
}).Schedule(8s, [this](TaskContext context)
{
IsHeroic() ? DoCastRandomTarget(SPELL_POLYMORPH) : DoCastMaxThreat(SPELL_POLYMORPH);
DoCastRandomTarget(SPELL_POLYMORPH);
context.Repeat(15s, 17500ms);
});
@@ -119,6 +108,60 @@ struct boss_talon_king_ikiss : public BossAI
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damagetype*/, SpellSchoolMask /*damageSchoolMask*/) override
{
if (!_comboHealthStages[0] && me->HealthBelowPctDamaged(80, damage))
{
_comboHealthStages[0] = true;
me->InterruptNonMeleeSpells(false);
DoCastSelf(SPELL_ARCANE_BUBBLE, true);
DoCastAOE(SPELL_BLINK);
Talk(EMOTE_ARCANE_EXP);
scheduler.Schedule(1s, [this](TaskContext)
{
DoCastAOE(SPELL_ARCANE_EXPLOSION);
}).Schedule(6500ms, [this](TaskContext /*context*/)
{
me->GetThreatMgr().ResetAllThreat();
});
}
if (!_comboHealthStages[1] && me->HealthBelowPctDamaged(50, damage))
{
_comboHealthStages[1] = true;
me->InterruptNonMeleeSpells(false);
DoCastSelf(SPELL_ARCANE_BUBBLE, true);
DoCastAOE(SPELL_BLINK);
Talk(EMOTE_ARCANE_EXP);
scheduler.Schedule(1s, [this](TaskContext)
{
DoCastAOE(SPELL_ARCANE_EXPLOSION);
}).Schedule(6500ms, [this](TaskContext /*context*/)
{
me->GetThreatMgr().ResetAllThreat();
});
}
if (!_comboHealthStages[2] && me->HealthBelowPctDamaged(25, damage))
{
_comboHealthStages[2] = true;
me->InterruptNonMeleeSpells(false);
DoCastSelf(SPELL_ARCANE_BUBBLE, true);
DoCastAOE(SPELL_BLINK);
Talk(EMOTE_ARCANE_EXP);
scheduler.Schedule(1s, [this](TaskContext)
{
DoCastAOE(SPELL_ARCANE_EXPLOSION);
}).Schedule(6500ms, [this](TaskContext /*context*/)
{
me->GetThreatMgr().ResetAllThreat();
});
}
if (!_manaShield && me->HealthBelowPctDamaged(20, damage))
{
DoCast(me, SPELL_MANA_SHIELD);
@@ -132,9 +175,10 @@ struct boss_talon_king_ikiss : public BossAI
Talk(SAY_SLAY);
}
private:
bool _spoken;
bool _manaShield;
private:
bool _spoken;
bool _manaShield;
std::array<bool, 3> _comboHealthStages;
};
// 38194 - Blink

View File

@@ -21,10 +21,11 @@
enum HydromancerThespia
{
SAY_SUMMON = 0,
SAY_SUMMON = 0, // Unused or Unknown Use
SAY_AGGRO = 1,
SAY_SLAY = 2,
SAY_DEAD = 3,
SAY_SPELL = 4,
SPELL_LIGHTNING_CLOUD = 25033,
SPELL_LUNG_BURST = 31481,
@@ -55,9 +56,9 @@ struct boss_hydromancer_thespia : public BossAI
{
Talk(SAY_AGGRO);
_JustEngagedWith();
events.ScheduleEvent(EVENT_SPELL_LIGHTNING, 15000);
events.ScheduleEvent(EVENT_SPELL_LUNG, 7000);
events.ScheduleEvent(EVENT_SPELL_ENVELOPING, 9000);
events.ScheduleEvent(EVENT_SPELL_LIGHTNING, 9800);
events.ScheduleEvent(EVENT_SPELL_LUNG, 13300);
events.ScheduleEvent(EVENT_SPELL_ENVELOPING, 14500);
}
void UpdateAI(uint32 diff) override
@@ -69,21 +70,17 @@ struct boss_hydromancer_thespia : public BossAI
switch (events.ExecuteEvent())
{
case EVENT_SPELL_LIGHTNING:
for (uint8 i = 0; i < DUNGEON_MODE(1, 2); ++i)
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
me->CastSpell(target, SPELL_LIGHTNING_CLOUD, false);
events.RepeatEvent(urand(15000, 25000));
Talk(SAY_SPELL);
DoCastRandomTarget(SPELL_LIGHTNING_CLOUD);
events.RepeatEvent(urand(12100, 14500));
break;
case EVENT_SPELL_LUNG:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
DoCast(target, SPELL_LUNG_BURST);
events.RepeatEvent(urand(7000, 12000));
DoCastRandomTarget(SPELL_LUNG_BURST);
events.RepeatEvent(urand(21800, 25400));
break;
case EVENT_SPELL_ENVELOPING:
for (uint8 i = 0; i < DUNGEON_MODE(1, 2); ++i)
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
me->CastSpell(target, SPELL_ENVELOPING_WINDS, false);
events.RepeatEvent(urand(10000, 15000));
DoCastRandomTarget(SPELL_ENVELOPING_WINDS);
events.RepeatEvent(urand(30000, 40000));
break;
}

View File

@@ -19,6 +19,12 @@
#include "ScriptMgr.h"
#include "steam_vault.h"
enum MainChambersAccessPanelSays
{
SAY_FAINT_ECHO = 0,
SAY_LOUD_RUMBLE = 1
};
class go_main_chambers_access_panel : public GameObjectScript
{
public:
@@ -28,11 +34,16 @@ public:
{
if (InstanceScript* instance = go->GetInstanceScript())
{
Creature* doorController = instance->GetCreature(DATA_DOOR_CONTROLLER);
if (go->GetEntry() == GO_ACCESS_PANEL_HYDRO)
{
if (instance->GetBossState(DATA_HYDROMANCER_THESPIA) == DONE)
{
go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
if (doorController && doorController->IsAIEnabled)
{
doorController->AI()->Talk(SAY_FAINT_ECHO);
}
}
}
else
@@ -40,12 +51,31 @@ public:
if (instance->GetBossState(DATA_MEKGINEER_STEAMRIGGER) == DONE)
{
go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
if (doorController && doorController->IsAIEnabled)
{
doorController->AI()->Talk(SAY_FAINT_ECHO);
}
}
}
if (instance->GetBossState(DATA_HYDROMANCER_THESPIA) == DONE && instance->GetBossState(DATA_MEKGINEER_STEAMRIGGER) == DONE)
{
if (GameObject* mainGate = instance->GetGameObject(DATA_MAIN_CHAMBERS_DOOR))
if (doorController)
{
if (doorController->IsAIEnabled)
{
doorController->AI()->Talk(SAY_LOUD_RUMBLE);
}
doorController->m_Events.AddEventAtOffset([instance]()
{
if (GameObject* mainGate = instance->GetGameObject(DATA_MAIN_CHAMBERS_DOOR))
{
instance->HandleGameObject(ObjectGuid::Empty, true, mainGate);
}
}, 4s);
}
else if (GameObject* mainGate = instance->GetGameObject(DATA_MAIN_CHAMBERS_DOOR))
{
instance->HandleGameObject(ObjectGuid::Empty, true, mainGate);
}
@@ -60,7 +90,8 @@ public:
ObjectData const creatureData[] =
{
{ NPC_MEKGINEER_STEAMRIGGER, DATA_MEKGINEER_STEAMRIGGER }
{ NPC_MEKGINEER_STEAMRIGGER, DATA_MEKGINEER_STEAMRIGGER },
{ NPC_DOOR_CONTROLLER, DATA_DOOR_CONTROLLER }
};
ObjectData const objectData[] =

View File

@@ -36,7 +36,8 @@ enum steamVault
DATA_ACCESS_PANEL_HYDROMANCER = 4,
DATA_ACCESS_PANEL_MEKGINEER = 5,
DATA_MAIN_CHAMBERS_DOOR = 6
DATA_MAIN_CHAMBERS_DOOR = 6,
DATA_DOOR_CONTROLLER = 7
};
enum steamVaultNPCGO
@@ -47,6 +48,7 @@ enum steamVaultNPCGO
NPC_MEKGINEER_STEAMRIGGER = 17796,
NPC_WARLORD_KALITHRESH = 17798,
NPC_DOOR_CONTROLLER = 20926
};
template <class AI, class T>

View File

@@ -67,8 +67,7 @@ enum MillhouseEvents
EVENT_MILL_CHECK_HEALTH = 20,
EVENT_MILL_PYROBLAST = 21,
EVENT_MILL_BASE_SPELL = 22,
EVENT_MILL_ICEBLOCK = 23
EVENT_MILL_BASE_SPELL = 22
};
class npc_millhouse_manastorm : public CreatureScript
@@ -81,6 +80,7 @@ public:
npc_millhouse_manastormAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
_usedIceblock = false;
}
InstanceScript* instance;
@@ -101,6 +101,7 @@ public:
void Reset() override
{
events.Reset();
_usedIceblock = false;
}
void AttackStart(Unit* who) override
@@ -124,7 +125,16 @@ public:
events.ScheduleEvent(EVENT_MILL_CHECK_HEALTH, 1000);
events.ScheduleEvent(EVENT_MILL_PYROBLAST, 30000);
events.ScheduleEvent(EVENT_MILL_BASE_SPELL, 2000);
events.ScheduleEvent(EVENT_MILL_ICEBLOCK, 1000);
}
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*type*/, SpellSchoolMask /*school*/) override
{
if (me->HealthBelowPctDamaged(50, damage) && !_usedIceblock)
{
_usedIceblock = true;
Talk(SAY_ICEBLOCK);
DoCastSelf(SPELL_ICEBLOCK, true);
}
}
void UpdateAI(uint32 diff) override
@@ -208,15 +218,6 @@ public:
me->CastSpell(me->GetVictim(), SPELL_PYROBLAST, false);
events.ScheduleEvent(EVENT_MILL_PYROBLAST, 30000);
break;
case EVENT_MILL_ICEBLOCK:
if (me->GetDistance(me->GetVictim()) < 5.0f)
{
Talk(SAY_ICEBLOCK);
me->CastSpell(me, SPELL_ICEBLOCK, true);
break;
}
events.ScheduleEvent(EVENT_MILL_ICEBLOCK, 1000);
break;
case EVENT_MILL_BASE_SPELL:
switch (RAND(SPELL_FIREBALL, SPELL_ARCANE_MISSILES, SPELL_FROSTBOLT))
{
@@ -240,6 +241,9 @@ public:
DoMeleeAttackIfReady();
}
private:
bool _usedIceblock;
};
CreatureAI* GetAI(Creature* creature) const override

View File

@@ -44,23 +44,24 @@ enum Spells
struct boss_dalliah_the_doomsayer : public BossAI
{
boss_dalliah_the_doomsayer(Creature* creature) : BossAI(creature, DATA_DALLIAH), _percentHealthCheck(false) { }
boss_dalliah_the_doomsayer(Creature* creature) : BossAI(creature, DATA_DALLIAH) { }
void Reset() override
{
_Reset();
_percentHealthCheck = false;
me->SetImmuneToAll(false);
ScheduleHealthCheckEvent(25, [&]
{
if (Creature* soccothrates = instance->GetCreature(DATA_SOCCOTHRATES))
{
soccothrates->AI()->Talk(SAY_DALLIAH_25_PERCENT);
}
});
}
void InitializeAI() override
{
BossAI::InitializeAI();
if (instance->GetBossState(DATA_SOCCOTHRATES) != DONE)
{
me->SetImmuneToAll(true);
}
}
void JustDied(Unit* /*killer*/) override
@@ -117,19 +118,6 @@ struct boss_dalliah_the_doomsayer : public BossAI
}
}
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellSchoolMask /*damageSchoolMask*/) override
{
if (me->HealthBelowPctDamaged(25, damage) && !_percentHealthCheck)
{
if (Creature* soccothrates = instance->GetCreature(DATA_SOCCOTHRATES))
{
soccothrates->AI()->Talk(SAY_DALLIAH_25_PERCENT);
}
_percentHealthCheck = true;
}
}
void KilledUnit(Unit* victim) override
{
if (victim->IsPlayer())
@@ -137,9 +125,6 @@ struct boss_dalliah_the_doomsayer : public BossAI
Talk(SAY_SLAY);
}
}
private:
bool _percentHealthCheck;
};
void AddSC_boss_dalliah_the_doomsayer()

View File

@@ -79,7 +79,6 @@ struct boss_wrath_scryer_soccothrates : public BossAI
_Reset();
events2.Reset();
me->CastSpell(me, SPELL_FEL_IMMOLATION, true);
me->SetImmuneToAll(false);
ScheduleHealthCheckEvent(25, [&]
{
@@ -96,8 +95,6 @@ struct boss_wrath_scryer_soccothrates : public BossAI
void InitializeAI() override
{
BossAI::InitializeAI();
if (!preFight)
me->SetImmuneToAll(true);
}
void JustDied(Unit* /*killer*/) override
@@ -129,9 +126,10 @@ struct boss_wrath_scryer_soccothrates : public BossAI
}
}
scheduler.Schedule(11s, 12s, [this](TaskContext context)
scheduler.Schedule(30s, 35s, [this](TaskContext context)
{
me->CastSpell(me, SPELL_KNOCK_AWAY, false);
me->HandleEmoteCommand(EMOTE_ONESHOT_POINT);
Talk(SAY_KNOCK_AWAY);
scheduler.Schedule(4600ms, [this](TaskContext)
@@ -141,10 +139,7 @@ struct boss_wrath_scryer_soccothrates : public BossAI
scheduler.Schedule(300ms, [this](TaskContext context2)
{
if (me->GetVictim() && !me->IsWithinMeleeRange(me->GetVictim()))
{
DoCastAOE(SPELL_FELFIRE, true);
}
DoCastAOE(SPELL_FELFIRE, true);
if (context2.GetRepeatCounter() <= 6)
{
@@ -153,7 +148,7 @@ struct boss_wrath_scryer_soccothrates : public BossAI
});
});
context.Repeat();
context.Repeat(20s, 35s);
}).Schedule(12s, 14s, [this](TaskContext context)
{
DoCastVictim(SPELL_FELFIRE_SHOCK);

View File

@@ -1450,39 +1450,6 @@ public:
{
go_soulwellAI(GameObject* go) : GameObjectAI(go)
{
_stoneSpell = 0;
_stoneId = 0;
switch (go->GetEntry())
{
case GO_SOUL_WELL_R1:
_stoneSpell = SPELL_CREATE_MASTER_HEALTH_STONE_R0;
if (Unit* owner = go->GetOwner())
{
if (owner->HasAura(SPELL_IMPROVED_HEALTH_STONE_R1))
_stoneSpell = SPELL_CREATE_MASTER_HEALTH_STONE_R1;
else if (owner->HasAura(SPELL_CREATE_MASTER_HEALTH_STONE_R2))
_stoneSpell = SPELL_CREATE_MASTER_HEALTH_STONE_R2;
}
break;
case GO_SOUL_WELL_R2:
_stoneSpell = SPELL_CREATE_FEL_HEALTH_STONE_R0;
if (Unit* owner = go->GetOwner())
{
if (owner->HasAura(SPELL_IMPROVED_HEALTH_STONE_R1))
_stoneSpell = SPELL_CREATE_FEL_HEALTH_STONE_R1;
else if (owner->HasAura(SPELL_CREATE_MASTER_HEALTH_STONE_R2))
_stoneSpell = SPELL_CREATE_FEL_HEALTH_STONE_R2;
}
break;
}
if (_stoneSpell == 0) // Should never happen
return;
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(_stoneSpell);
if (!spellInfo)
return;
_stoneId = spellInfo->Effects[EFFECT_0].ItemType;
}
/// Due to the fact that this GameObject triggers CMSG_GAMEOBJECT_USE
@@ -1495,40 +1462,93 @@ public:
return false;
Unit* owner = me->GetOwner();
if (_stoneSpell == 0 || _stoneId == 0)
if (!owner)
return true;
uint32 stoneId = 0;
uint32 stoneSpell = 0;
switch (me->GetEntry())
{
case GO_SOUL_WELL_R1:
stoneSpell = SPELL_CREATE_MASTER_HEALTH_STONE_R0;
if (Unit* owner = me->GetOwner())
{
if (owner->HasAura(SPELL_IMPROVED_HEALTH_STONE_R1))
{
stoneSpell = SPELL_CREATE_MASTER_HEALTH_STONE_R1;
}
else if (owner->HasAura(SPELL_CREATE_MASTER_HEALTH_STONE_R2))
{
stoneSpell = SPELL_CREATE_MASTER_HEALTH_STONE_R2;
}
}
break;
case GO_SOUL_WELL_R2:
stoneSpell = SPELL_CREATE_FEL_HEALTH_STONE_R0;
if (Unit* owner = me->GetOwner())
{
if (owner->HasAura(SPELL_IMPROVED_HEALTH_STONE_R1))
{
stoneSpell = SPELL_CREATE_FEL_HEALTH_STONE_R1;
}
else if (owner->HasAura(SPELL_CREATE_MASTER_HEALTH_STONE_R2))
{
stoneSpell = SPELL_CREATE_FEL_HEALTH_STONE_R2;
}
}
break;
}
if (!stoneSpell)
{
if (SpellInfo const* spell = sSpellMgr->GetSpellInfo(_stoneSpell))
Spell::SendCastResult(player, spell, 0, SPELL_FAILED_ERROR);
return true;
}
if (!owner || owner->GetTypeId() != TYPEID_PLAYER || !player->IsInSameRaidWith(owner->ToPlayer()))
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(stoneSpell);
if (!spellInfo)
{
if (SpellInfo const* spell = sSpellMgr->GetSpellInfo(_stoneSpell))
return true;
}
stoneId = spellInfo->Effects[EFFECT_0].ItemType;
if (!stoneId)
{
if (SpellInfo const* spell = sSpellMgr->GetSpellInfo(stoneSpell))
{
Spell::SendCastResult(player, spell, 0, SPELL_FAILED_ERROR);
}
return true;
}
if (owner->GetTypeId() != TYPEID_PLAYER || !player->IsInSameRaidWith(owner->ToPlayer()))
{
if (SpellInfo const* spell = sSpellMgr->GetSpellInfo(stoneSpell))
{
Spell::SendCastResult(player, spell, 0, SPELL_FAILED_TARGET_NOT_IN_RAID);
}
return true;
}
// Don't try to add a stone if we already have one.
if (player->HasItemCount(_stoneId))
if (player->HasItemCount(stoneId))
{
if (SpellInfo const* spell = sSpellMgr->GetSpellInfo(_stoneSpell))
if (SpellInfo const* spell = sSpellMgr->GetSpellInfo(stoneSpell))
{
Spell::SendCastResult(player, spell, 0, SPELL_FAILED_TOO_MANY_OF_ITEM);
}
return true;
}
player->CastSpell(player, _stoneSpell, false);
player->CastSpell(player, stoneSpell, false);
// Item has to actually be created to remove a charge on the well.
if (player->HasItemCount(_stoneId))
if (player->HasItemCount(stoneId))
{
me->AddUse();
}
return true;
}
private:
uint32 _stoneSpell;
uint32 _stoneId;
};
GameObjectAI* GetAI(GameObject* go) const override