fix(scripts/Naxx): The art of Naxxramas (2/2) (#5057)

This commit is contained in:
Silker
2021-04-02 21:57:00 -06:00
committed by GitHub
parent 85d21335da
commit 6dc4ca8503
12 changed files with 543 additions and 153 deletions

View File

@@ -0,0 +1,254 @@
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1617043134287362500');
/* Environment */
-- PhaseMask to 1 for all Naxx end wing eyes
UPDATE `gameobject` SET `phaseMask`=1 WHERE `guid` IN (268045, 268044, 268047, 268046);
-- Set gobject flag "GO_FLAG_NOT_SELECTABLE" for all Naxx end wing eyes
UPDATE `gameobject_template_addon` SET `flags`=16 WHERE `entry` IN (181577, 181575, 181578, 181576);
-- Fix Horsemen end wing eye location
UPDATE `gameobject` SET `position_x`=2493.02, `position_y`=-2921.78, `position_z`=241.193, `orientation`=3.14159 WHERE `guid`=268046;
-- Adjust normal portal & phased glow portal on the same location
DELETE FROM `gameobject` WHERE `id` IN (181230, 181231, 181232, 181233);
INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES
(65855, 181231, 533, 0, 0, 3, 1, 2909, -4025.02, 273.475, 3.14159, 0, 0, 1, 0, 180, 0, 1, 0), -- Plague Wing Eye Portal Boss
(65856, 181232, 533, 0, 0, 3, 1, 3507.95, -2900.4, 302.459, 0.369949, 0, 0, 0.183921, 0.982941, 180, 0, 1, 0), -- Abom Wing Eye Portal Boss
(65857, 181233, 533, 0, 0, 3, 1, 3465.16, -3940.45, 308.788, 0.441179, -0.305481, 0.637715, 0.305481, 0.637716, 180, 0, 1, 0), -- Spider Wing Eye Portal Boss
(65854, 181230, 533, 0, 0, 3, 1, 2493.02, -2921.78, 241.193, 3.14159, 0, 0, 0.411143, -0.911571, 180, 0, 1, 0); -- Deathknight Wing Eye Portal Boss
-- Update flags & faction for glow eyes at boss-side
UPDATE `gameobject_template_addon` SET `faction`=0, `flags`=16 WHERE `entry` IN (181230, 181231, 181232, 181233);
-- Fix Thaddius end wing eye location and its glow ramp
UPDATE `gameobject` SET `position_x`=3539.016, `position_y`=-2936.821, `position_z`=302.4756, `orientation`=3.141593 WHERE `guid` IN (268047, 65856);
-- Kelthuzad's throne should not be selectable otherwise player can see the name file of the gobject
UPDATE `gameobject_template_addon` SET `flags`=16 WHERE `entry`=181640;
-- Remove first and third Naxxramas trigger
DELETE FROM `creature` WHERE `guid` IN (1971312, 1971314);
/* Fix SAI */
-- source for timers: https://wowgaming.altervista.org/aowow/
-- source for spells: https://wowhead.com/
-- Add comments on the SAI that I fix/touch
-- Fix timer for Acid Spit on Crypt Guard
UPDATE `smart_scripts` SET `event_param3`=4000 WHERE `entryorguid`=16573 AND `source_type`=0 AND `id`=1 AND `link`=0;
UPDATE `smart_scripts` SET `event_param3`=4000 WHERE `entryorguid`=16573 AND `source_type`=0 AND `id`=2 AND `link`=0;
-- Fix timer for Frenzy on Crypt Guard
UPDATE `smart_scripts` SET `event_flags`=0, `event_param3`=120000, `event_param4`=120000 WHERE `entryorguid`=16573 AND `source_type`=0 AND `id`=5 AND `link`=0;
UPDATE `smart_scripts` SET `event_flags`=0, `event_param3`=120000, `event_param4`=120000 WHERE `entryorguid`=16573 AND `source_type`=0 AND `id`=3 AND `link`=0;
-- Fix Frenzy on Crypt Reaver
DELETE FROM `smart_scripts` WHERE `entryorguid`=15978 AND `id` IN (1, 2);
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(15978, 0, 1, 0, 2, 0, 100, 0, 0, 29, 120000, 120000, 0, 11, 56625, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crypt Reaver - On 30% HP - CastSelf Frenzy'),
(15978, 0, 2, 0, 2, 0, 100, 0, 0, 29, 120000, 120000, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crypt Reaver - On 30% HP - Say EMOTE_FRENZY');
-- Fix timer for Shadow Bolt Volley on Naxxramas Acolyte
UPDATE `smart_scripts` SET `event_param4`=16000 WHERE `entryorguid`=15981 AND `source_type`=0 AND `id`=2 AND `link`=0;
UPDATE `smart_scripts` SET `event_param4`=16000 WHERE `entryorguid`=15981 AND `source_type`=0 AND `id`=3 AND `link`=0;
-- Fix timer for Crypt Scarab Swarm on Tomb Horror
UPDATE `smart_scripts` SET `event_param2`=19000 WHERE `entryorguid`=15979 AND `source_type`=0 AND `id`=2 AND `link`=0;
UPDATE `smart_scripts` SET `event_param2`=19000 WHERE `entryorguid`=15979 AND `source_type`=0 AND `id`=3 AND `link`=0;
-- Fix Frenzy on Infectious Ghoul
DELETE FROM `smart_scripts` WHERE `entryorguid`=16244 AND `source_type`=0 AND `id` IN (4, 5);
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
(16244, 0, 4, 0, 2, 0, 100, 0, 0, 30, 60000, 60000, 0, 11, 54701, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Infectious Ghoul - On 30% HP - CastSelf Frenzy'),
(16244, 0, 5, 0, 2, 0, 100, 0, 0, 30, 60000, 60000, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Infectious Ghoul - On 30% HP - Say EMOTE_FRENZY');
-- Fix elemental immunity mechanic on Plague Slime (immunity based on elemental selection)
UPDATE `smart_scripts` SET `event_type`=4 WHERE `entryorguid`=16243 AND `source_type`=0 AND `id`=0 AND `link`=0;
DELETE FROM `smart_scripts` WHERE `entryorguid`=16243 AND `source_type`=0 AND `id` IN (5, 6, 7, 8);
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
(16243, 0, 5, 0, 23, 0, 100, 0, 28987, 1, 0, 0, 0, 75, 7743, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Plague Slime - On has aura - Add aura Immunity: Shadow'),
(16243, 0, 6, 0, 23, 0, 100, 0, 28988, 1, 0, 0, 0, 75, 7940, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Plague Slime - On has aura - Add aura Immunity: Frost'),
(16243, 0, 7, 0, 23, 0, 100, 0, 28989, 1, 0, 0, 0, 75, 7941, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Plague Slime - On has aura - Add aura Immunity: Nature'),
(16243, 0, 8, 0, 23, 0, 100, 0, 28990, 1, 0, 0, 0, 75, 7942, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Plague Slime - On has aura - Add aura Immunity: Fire');
-- Add Disease/Poison immunity on Plague Slime
UPDATE `creature_template` SET `mechanic_immune_mask`=`mechanic_immune_mask`|2097152 WHERE `entry`=16243;
-- Fix timer for Acid Volley on Stoneskin Gargoyle
UPDATE `smart_scripts` SET `event_param1`=3000, `event_param2`=5000, `event_param3`=5000, `event_param4`=7000, `comment`='Stoneskin Gargoyle - In Combat - Cast Acid Volley' WHERE `entryorguid`=16168 AND `source_type`=0 AND `id` IN (0, 1) AND `link`=0;
-- Fix timer for Stoneskin on Stoneskin Gargoyle
UPDATE `smart_scripts` SET `event_param3`=60000, `event_param4`=60000, `event_phase_mask`=0, `comment`='Stoneskin Gargoyle - At 30% HP - Cast Stoneskin' WHERE `entryorguid`=16168 AND `source_type`=0 AND `id` IN (2, 3) AND `link`=0;
-- Fix target for Frenzied Dive on Frenzied Bat
UPDATE `smart_scripts` SET `target_type`=2, `comment`='Frenzied Bat - In Combat - Cast Frenzied Dive' WHERE `entryorguid`=16036 AND `source_type`=0 AND `id`=0 AND `link`=0;
-- Fix timer for Putrid Bite on Plagued Bat
UPDATE `smart_scripts` SET `event_param1`=3000, `event_param2`=6000, `event_param3`=9000, `event_param4`=13000, `comment`='Plagued Bat - In combat - Cast Putrid Bite' WHERE `entryorguid`=16037 AND `source_type`=0 AND `id` IN (0, 1) AND `link`=0;
-- Fix aura of Mutated Spores on Plague Beast (must be on all of them, not just some)
DELETE FROM `creature_addon` WHERE `guid` IN (128171, 128172, 128173, 128174, 128175, 128176, 128177, 128178, 128179, 128180, 128181, 128182, 128183);
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `isLarge`, `auras`) VALUES
(128171, 0, 0, 0, 1, 0, 1, '30110'),
(128172, 0, 0, 0, 1, 0, 1, '30110'),
(128173, 0, 0, 0, 1, 0, 1, '30110'),
(128174, 0, 0, 0, 1, 0, 1, '30110'),
(128175, 0, 0, 0, 1, 0, 1, '30110'),
(128176, 0, 0, 0, 1, 0, 1, '30110'),
(128177, 1281770, 0, 0, 1, 0, 1, '30110'),
(128178, 1281780, 0, 0, 1, 0, 1, '30110'),
(128179, 1281790, 0, 0, 1, 0, 1, '30110'),
(128180, 0, 0, 0, 1, 0, 1, '30110'),
(128181, 0, 0, 0, 1, 0, 1, '30110'),
(128182, 0, 0, 0, 1, 0, 1, '30110'),
(128183, 1281830, 0, 0, 1, 0, 1, '30110');
-- Fix timer and trigger for Plague Splash on Plague Beast
UPDATE `smart_scripts` SET `event_type`=2, `event_param1`=0, `event_param2`=50, `event_param3`=25000, `event_param4`=30000, `comment`='Plague Beast - Between 0-50% HP - Cast Plague Splash' WHERE `entryorguid`=16034 AND `source_type`=0 AND `id` IN (0, 1) AND `link`=0;
-- Fix trigger for Plague contamination on Plagued Ghoul (sniffed from shadowlands)
UPDATE `smart_scripts` SET `event_type`=6, `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `comment`='Plagued Ghoul - On death - Cast Plague contamination' WHERE `entryorguid`=16447 AND `source_type`=0 AND `id`=0 AND `link`=0;
-- Fix Blood Presence on Death Knight
UPDATE `smart_scripts` SET `event_type`=4, `event_phase_mask`=0, `event_param2`=0, `comment`='On Aggro - Cast Self - Blood Presence' WHERE `entryorguid`=16146 AND `source_type`=0 AND `id`=2 AND `link`=0;
-- Fix timer and target selection for Death Coil (damage) on Death Knight
UPDATE `smart_scripts` SET `event_param1`=1000, `event_param2`=1400, `event_param3`=8500, `event_param4`=20500, `target_type`=5, `comment`='Death Knight - In combat - Cast Death Coil (damage)' WHERE `entryorguid`=16146 AND `source_type`=0 AND `id` IN (0, 1) AND `link`=0;
-- Fix Hysteria on Death Knight
UPDATE `smart_scripts` SET `event_type`=0, `event_param1`=1000, `event_param2`=7400, `event_param3`=10100, `event_param4`=17300, `target_type`=26, `target_param1`=20, `comment`='Death Knight - In combat - Cast Hysteria' WHERE `entryorguid`=16146 AND `source_type`=0 AND `id`=3 AND `link`=0;
-- Add SAI for healing with Death Coil to friendly undead
DELETE FROM `smart_scripts` WHERE `entryorguid`=16146 AND `source_type`=0 AND `id`=4;
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
(16146, 0, 4, 0, 14, 0, 50, 0, 80, 20, 16600, 17300, 0, 11, 55210, 0, 0, 0, 0, 0, 26, 20, 0, 0, 0, 0, 0, 0, 0, 'Death Knight - On Friendly HP Deficit - Cast Death Coil (heal)');
-- Recreate the whole SAI for Necro Knight (they will pick one magic school on aggro)
DELETE FROM `smart_scripts` WHERE entryorguid=16165 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
(16165, 0, 0, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 30, 1, 2, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Necro Knight - On Agro - Pick random Event Phase (1-2-3)'),
(16165, 0, 1, 0, 0, 1, 100, 0, 1000, 3200, 2800, 5200, 0, 11, 15453, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Necro Knight - In combat - Cast Arcane Explosion'),
(16165, 0, 2, 0, 0, 1, 100, 0, 250, 500, 13200, 18500, 0, 11, 29883, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Necro Knight - In combat - Cast Blink'),
(16165, 0, 3, 0, 0, 2, 100, 0, 7600, 8100, 15000, 20000, 0, 11, 30092, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Necro Knight - In combat - Cast Blast Wave'),
(16165, 0, 4, 0, 0, 2, 100, 0, 1800, 8900, 9600, 15700, 0, 11, 30091, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Necro Knight - In combat - Cast Flamestrike'),
(16165, 0, 5, 0, 0, 4, 100, 0, 3000, 6000, 25000, 35000, 0, 11, 30094, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Necro Knight - In combat - Cast Frost Nova'),
(16165, 0, 6, 0, 0, 4, 100, 0, 17000, 21000, 17000, 23000, 0, 11, 30095, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Necro Knight - In combat - Cast Cone of Cold');
-- Fix timer for Shadow Bolt Volley on Shade of Naxxramas
UPDATE `smart_scripts` SET `event_param1`=2800, `event_param2`=5100, `event_param3`=4500, `event_param4`=12000, `comment`='Shade of Naxxramas - In combat - Cast Shadow Bolt Volley' WHERE `entryorguid`=16164 AND `source_type`=0 AND `id` IN (0, 1) AND `link`=0;
-- Create SAI for Portal of Shadows on Shade of Naxxramas
DELETE FROM `smart_scripts` WHERE `entryorguid`=16164 AND `source_type`=0 AND `id` IN (2, 3) AND `link`=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
(16164, 0, 2, 0, 0, 0, 100, 0, 4100, 8700, 60000, 60000, 0, 11, 28383, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Shade of Naxxramas - In combat - Cast Portal of Shadows'),
(16164, 0, 3, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 41, 500, 0, 0, 0, 0, 0, 19, 16420, 0, 0, 0, 0, 0, 0, 0, 'Shade of Naxxramas - On reset - Despawn Portal of Shadows');
-- Fix timer for Whirlwind on Dark Touched Warrior
UPDATE `smart_scripts` SET `event_param1`=3300, `event_param2`=8900, `event_param3`=18900, `comment`='Dark Touched Warrior - In combat - Cast Whirlwind' WHERE `entryorguid`=16156 AND `source_type`=0 AND `id`=0 AND `link`=0;
-- Fix timer for Plague Strike on Death Knight Captain
UPDATE `smart_scripts` SET `event_param1`=1600, `event_param2`=7200, `event_param3`=8100, `event_param4`=14100, `comment`='Death Knight Captain - In combat - Cast Plague Strike' WHERE `entryorguid`=16145 AND `source_type`=0 AND `id` IN (0, 1) AND `link`=0;
-- Fix Unholy Presence on Death Knight Captain
UPDATE `smart_scripts` SET `event_type`=4, `event_phase_mask`=0, `event_param2`=0, `comment`='Death Knight Captain - On aggro - Cast Unholy Presence' WHERE `entryorguid`=16145 AND `source_type`=0 AND `id`=2 AND `link`=0;
-- Fix Raise Dead on Death Knight Captain
UPDATE `smart_scripts` SET `event_phase_mask`=0, `event_param1`=3500, `event_param2`=10200, `comment`='Death Knight Captain - In combat - Cast Raise Dead' WHERE `entryorguid`=16145 AND `source_type`=0 AND `id`=3 AND `link`=0;
-- Update Deathchill Servant's values as they were unused AC
UPDATE `creature_template` SET `DamageModifier`=2 WHERE `entry`=16390; -- naxx 10mode
UPDATE `creature_template` SET `DamageModifier`=4 WHERE `entry`=29901; -- naxx 25mode
UPDATE `creature_template` SET `mechanic_immune_mask`=8388624 WHERE `entry` IN (16390, 29901); -- both versions
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=16390; -- Add AI
DELETE FROM `smart_scripts` WHERE `entryorguid`=16390 AND `source_type`=0 AND `id` IN (0, 1) AND `link`=0; /* Create SAI */
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
(16390, 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, 'Deathchill Servant - On spawn - Set in combat with zone'),
(16390, 0, 1, 0, 1, 0, 100, 0, 200, 200, 0, 0, 0, 41, 500, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Deathchill Servant - On OOC - Despawn if OOC');
-- Fix timer for Crush Armor on Skeletal Smith
UPDATE `smart_scripts` SET `event_param1`=1700, `event_param2`=7900, `event_param3`=10500, `event_param4`=12900, `comment`='Skeletal Smith - In combat - Cast Crush Armor' WHERE `entryorguid`=16193 AND `source_type`=0 AND `id`=0 AND `link`=0;
-- Fix timer for Disarm on Skeletal Smith
UPDATE `smart_scripts` SET `event_param1`=6200, `event_param2`=6700, `comment`='Skeletal Smith - In combat - Cast Disarm' WHERE `entryorguid`=16193 AND `source_type`=0 AND `id`=1 AND `link`=0;
-- Fix timer for Brutal Swipe on Bony Construct
UPDATE `smart_scripts` SET `event_param2`=20000, `comment`='Bony Construct - In combat - Cast Brutal Swipe' WHERE `entryorguid`=16167 AND `source_type`=0 AND `id` IN (0, 1) AND `link`=0;
-- Fix timer and target selection for Strangulate on Death Knight Cavalier
UPDATE `smart_scripts` SET `event_param3`=4600, `event_param4`=7300, `target_type`=6, `comment`='Death Knight Cavalier - In combat - Cast Strangulate' WHERE `entryorguid`=16163 AND `source_type`=0 AND `id` IN (4, 5) AND `link`=0;
-- Fix timer and target selection for Icy Touch on Death Knight Cavalier
UPDATE `smart_scripts` SET `event_param1`=1100, `event_param2`=2200, `event_param3`=4100, `event_param4`=6200, `target_type`=5, `comment`='Death Knight Cavalier - In combat - Cast Icy Touch' WHERE `entryorguid`=16163 AND `source_type`=0 AND `id` IN (2, 3) AND `link`=0;
-- Fix timer for Bone Armor on Death Knight Cavalier
UPDATE `smart_scripts` SET `event_param1`=4700, `event_param2`=6100, `event_param3`=15700, `event_param4`=19800, `comment`='Death Knight Cavalier - In combat - Cast Bone Armor' WHERE `entryorguid`=16163 AND `source_type`=0 AND `id` IN (0, 1) AND `link`=0;
-- Add SAI for Dismount Deathcharger on Death Knight Cavalier
DELETE FROM `smart_scripts` WHERE `entryorguid`=16163 AND `source_type`=0 AND `id`=6 AND `link`=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
(16163, 0, 6, 0, 2, 0, 100, 0, 0, 30, 0, 0, 0, 11, 55294, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Death Knight Cavalier - At 30% HP - Cast Dismount Deathcharger');
-- Adjust Charge for Deathcharger Steed
UPDATE `smart_scripts` SET `event_flags`=0, `comment`='Deathcharger Steed - In combat - Cast Charge' WHERE `entryorguid`=29818 AND `source_type`=0 AND `id`=0 AND `link`=0;
-- Create SAI mechanic for appropiate mount/dismount of Deathcharger Steed (summon)
DELETE FROM `smart_scripts` WHERE `entryorguid`=29818 AND `source_type`=0 AND `id` IN (1, 2, 3) AND `link`=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
(29818, 0, 1, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Deathcharger Steed - On spawn - Unmount summoner'),
(29818, 0, 2, 0, 1, 0, 100, 0, 200, 200, 0, 0, 0, 41, 500, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Deathcharger Steed - On OOC - Despawn if OOC'),
(29818, 0, 3, 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, 'Deathcharger Steed - On spawn - Set in combat with zone');
-- Fix timer for Pierce Armor on Risen Squire
UPDATE `smart_scripts` SET `event_param1`=4000, `event_param2`=7000, `event_param4`=48000, `comment`='Risen Squire - In combat - Cast Pierce Armor' WHERE `entryorguid`=16154 AND `source_type`=0 AND `id`=0 AND `link`=0;
-- Fix timer and target selection for Charge on Deathcharger Steed (non-summon)
UPDATE `smart_scripts` SET `event_param1`=3300, `event_param2`=7500, `event_param3`=10000, `event_param4`=10900, `target_type`=2, `comment`='Deathcharger Steed - On aggro - Cast Charge' WHERE `entryorguid`=16067 AND `source_type`=0 AND `id`=0 AND `link`=0;
-- Fix timer for Mortal Strike on Unholy Axe
UPDATE `smart_scripts` SET `event_param1`=6100, `event_param2`=13100, `event_param3`=20100, `event_param4`=20100, `comment`='Unholy Axe - In combat - Cast Mortal Strike' WHERE `entryorguid`=16194 AND `source_type`=0 AND `id`=1 AND `link`=0;
-- Fix timer for Whirlwind on Unholy Axe
UPDATE `smart_scripts` SET `event_param1`=2200, `event_param2`=8600, `event_param3`=8800, `event_param4`=13300, `comment`='Unholy Axe - In combat - Cast Whirlwind' WHERE `entryorguid`=16194 AND `source_type`=0 AND `id`=0 AND `link`=0;
-- Fix timer for Arcane Explosion on Unholy Staff
UPDATE `smart_scripts` SET `event_param1`=2400, `event_param2`=8400, `event_param3`=8400, `event_param4`=16100, `comment`='Unholy Staff - In combat - Cast Arcane Explosion' WHERE `entryorguid`=16215 AND `source_type`=0 AND `id`=0 AND `link`=0; -- (10mode)
UPDATE `smart_scripts` SET `event_param1`=9000, `event_param2`=16000, `event_param3`=20000, `event_param4`=30000, `comment`='Unholy Staff - In combat - Cast Arcane Explosion' WHERE `entryorguid`=16215 AND `source_type`=0 AND `id`=1 AND `link`=0; -- (25mode)
-- Fix timer for Frost Nova on Unholy Staff
UPDATE `smart_scripts` SET `event_param1`=6100, `event_param2`=10800, `comment`='Unholy Staff - In combat - Cast Frost Nova' WHERE `entryorguid`=16215 AND `source_type`=0 AND `id`=2 AND `link`=0;
-- Fix timer for Polymorph on Unholy Staff
UPDATE `smart_scripts` SET `event_param1`=4800, `event_param2`=6200, `event_param3`=14800, `event_param4`=14900, `target_type`=6, `comment`='Unholy Staff - In combat - Cast Polymorph' WHERE `entryorguid`=16215 AND `source_type`=0 AND `id`=3 AND `link`=0;
-- Fix timer for Cleave on Unholy Swords
UPDATE `smart_scripts` SET `event_param2`=4700, `event_param3`=9200, `event_param4`=15500, `comment`='Unholy Swords - In combat - Cast Cleave' WHERE `entryorguid`=16216 AND `source_type`=0 AND `id`=0 AND `link`=0;
-- Recreate SAI for Thrash on Unholy Swords
UPDATE `smart_scripts` SET `event_type`=0, `event_param1`=2400, `event_param2`=7800, `event_param3`=12000, `event_param4`=13600, `action_param1`=12787, `comment`='Unholy Swords - In combat - Cast Thrash' WHERE `entryorguid`=16216 AND `source_type`=0 AND `id`=1 AND `link`=0;
-- Add Disarm immunity for Unholly (Axe/Staff/Swords)
UPDATE `creature_template` SET `mechanic_immune_mask`=`mechanic_immune_mask`|4 WHERE `entry` IN (16194, 16215, 16216);
-- Re-do Invisibility on Vigilant Shade
UPDATE `smart_scripts` SET `event_type`=1, `event_param1`=1000, `event_param2`=1000, `event_param3`=5000, `event_param4`=5000, `action_type`=75, `comment`='Vigilant Shade - In OOC - Add aura Invisibility' WHERE `entryorguid`=30085 AND `source_type`=0 AND `id`=0 AND `link`=0;
-- Adjust SAI in order to remove Invisibility on Vigilant Shade when there is a player around
UPDATE `smart_scripts` SET `event_type`=101, `event_param1`=1, `event_param2`=20, `event_param3`=1000, `event_param4`=1000, `comment`='Vigilant Shade - On Player near - Remove Invisibility' WHERE `entryorguid`=30085 AND `source_type`=0 AND `id`=1 AND `link`=0;
-- Fix timer for Shadow Bolt Volley on Shadow Shade
UPDATE `smart_scripts` SET `event_param1`=2300, `event_param2`=2300, `event_param3`=9600, `event_param4`=9900, `target_type`=2, `comment`='Vigilant Shade - In combat - Cast Shadow Bolt Volley' WHERE `entryorguid`=30085 AND `source_type`=0 AND `id` IN (2, 3) AND `link`=0;
-- Fix timer for Cleave on Patchwork Golem
UPDATE `smart_scripts` SET `event_param2`=9300, `event_param3`=15200, `event_param4`=15200, `comment`='Patchwork Golem - In combat - Cast Cleave' WHERE `entryorguid`=16017 AND `source_type`=0 AND `id`=2 AND `link`=0;
-- Fix timer for War Stomp on Patchwork Golem
UPDATE `smart_scripts` SET `event_param1`=4800, `event_param2`=10700, `comment`='Patchwork Golem - In combat - Cast War Stomp' WHERE `entryorguid`=16017 AND `source_type`=0 AND `id` IN (0, 1) AND `link`=0;
-- Fix spell difficulty and timer for Execute on Patchwork Golem
UPDATE `smart_scripts` SET `event_phase_mask`=0, `event_flags`=4, `event_param4`=43000, `comment`='Patchwork Golem - On target HP 0-20% - Cast Execute' WHERE `entryorguid`=16017 AND `source_type`=0 AND `id`=3 AND `link`=0;
UPDATE `smart_scripts` SET `event_phase_mask`=0, `event_flags`=2, `event_param4`=43000, `comment`='Patchwork Golem - On target HP 0-20% - Cast Execute' WHERE `entryorguid`=16017 AND `source_type`=0 AND `id`=4 AND `link`=0;
-- Fix timer for Bile Vomit on Bile Retcher
UPDATE `smart_scripts` SET `event_param1`=3600, `event_param2`=6800, `event_param3`=13700, `event_param4`=19700, `comment`='Bile Retcher - In combat - Cast Bile Vomit' WHERE `entryorguid`=16018 AND `source_type`=0 AND `id` IN (0, 1) AND `link`=0;
-- Fix timer for Acidic Sludge on Sludge Belcher
UPDATE `smart_scripts` SET `event_param1`=1900, `event_param2`=3000, `event_param3`=6000, `event_param4`=7300, `comment`='Sludge Belcher - In combat - Cast Acidic Sludge' WHERE `entryorguid`=16029 AND `source_type`=0 AND `id` IN (0, 1) AND `link`=0;
-- Add SAI for Disease Cloud on Sludge Belcher
DELETE FROM `smart_scripts` WHERE `entryorguid`=16029 AND `source_type`=0 AND `id`=2 AND `link`=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
(16029, 0, 2, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 11, 28362, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sludge Belcher - On reset - Cast Disease Cloud');
-- Fix timer for Chain Lightning on Living Monstrosity
UPDATE `smart_scripts` SET `event_param1`=7100, `event_param2`=12500, `event_param3`=18100, `event_param4`=20900, `target_type`=5, `comment`='Living Monstrosity - In combat - Cast Chain Lightning' WHERE `entryorguid`=16021 AND `source_type`=0 AND `id`=0 AND `link`=0; -- (10mode)
UPDATE `smart_scripts` SET `event_param1`=5000, `event_param2`=8000, `event_param4`=24000, `target_type`=5, `comment`='Living Monstrosity - In combat - Cast Chain Lightning' WHERE `entryorguid`=16021 AND `source_type`=0 AND `id`=1 AND `link`=0; -- (25mode)
-- Fix timer for Lightning Totem on Living Monstrosity
UPDATE `smart_scripts` SET `event_param1`=6400, `event_param2`=10000, `event_param3`=16900, `event_param4`=18500, `comment`='Living Monstrosity - In combat - Cast Lightning Totem' WHERE `entryorguid`=16021 AND `source_type`=0 AND `id`=2 AND `link`=0;
-- Fix timer and target for Mana Burn on Mad Scientist
UPDATE `smart_scripts` SET `event_param1`=7600, `event_param2`=17300, `event_param3`=6000, `event_param4`=13300, `target_param1`=0, `comment`='Mad Scientist - In combat - Cast Mana Burn' WHERE `entryorguid`=16020 AND `source_type`=0 AND `id` IN (0, 1) AND `link`=0;
-- Fix timer and target for Great Heal on Mad Scientist
UPDATE `smart_scripts` SET `event_type`=2, `event_param1`=0, `event_param2`=30, `event_param3`=18000, `event_param4`=21000, `target_type`=1, `target_param1`=0, `comment`='Mad Scientist - At 30% HP - Cast Great Heal' WHERE `entryorguid`=16020 AND `source_type`=0 AND `id` IN (2, 3) AND `link`=0;
-- Fix timer for Mind Flay on Surgical Assistant
UPDATE `smart_scripts` SET `event_param1`=1600, `event_param2`=2800, `event_param3`=7700, `event_param4`=11900, `comment`='Surgical Assistant - In combat - Cast Mind Flay' WHERE `entryorguid`=16022 AND `source_type`=0 AND `id` IN (0, 1) AND `link`=0;
-- Adjust timer for Knockback on Stitched Giant
UPDATE `smart_scripts` SET `event_param1`=5100, `event_param2`=10400, `event_param3`=18800, `event_param4`=21300 WHERE `entryorguid`=16025 AND `source_type`=0 AND `id`=0 AND `link`=0;
-- Update comment for Unstoppable Enrage on Stitched Giant
UPDATE `smart_scripts` SET `comment`='Stitched Giant - At 30% HP - Cast self Unstoppable Enrage' WHERE `entryorguid`=16025 AND `source_type`=0 AND `id`=1 AND `link`=0;
-- Fix timer for Massive Stomp on Stitched Colossus
UPDATE `smart_scripts` SET `event_param1`=5400, `event_param2`=12200, `event_param3`=15500, `event_param4`=22300, `comment`='Stitched Colossus - In combat - Cast Massive Stomp' WHERE `entryorguid`=30071 AND `source_type`=0 AND `id` IN (0, 1) AND `link`=0;
-- Fix Unstoppable Enrage on Stitched Colossus
UPDATE `smart_scripts` SET `event_phase_mask`=0, `event_flags`=1, `comment`='Stitched Colossus - At 30% HP - Cast Unstoppable Enrage' WHERE `entryorguid`=30071 AND `source_type`=0 AND `id`=2 AND `link`=0;
-- Fix movement speed for KT minions
UPDATE `creature_template` SET `speed_walk`=0.1, `speed_run`=0.2 WHERE `entry` IN (16429, 30018); -- Soul Weaver
UPDATE `creature_template` SET `speed_walk`=0.2, `speed_run`=0.3 WHERE `entry` IN (16427, 30015); -- Soldier of the Frozen Wastes
-- Fix "Portal of Shadows" spell-mechanic which is used by Shade of Naxxramas
-- Portal of Shadows (NPC)
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=16420;
DELETE FROM `smart_scripts` WHERE `entryorguid`=16420 AND `source_type`=0 AND `id`=0 AND `link`=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
(16420, 0, 0, 0, 101, 0, 100, 0, 1, 40, 5000, 5000, 0, 12, 16419, 3, 10000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Portal of Shadows - On player near - Summon Ghost of Naxxramas');
-- Ghost of Naxxramas
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=16419;
DELETE FROM `smart_scripts` WHERE `entryorguid`=16419 AND `source_type`=0 AND `id` IN (0, 1) AND `link`=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
(16419, 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, 'Ghost of Naxxramas - On spawn - Set in combat with zone'),
(16419, 0, 1, 0, 1, 0, 100, 0, 100, 100, 0, 0, 0, 41, 500, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghost of Naxxramas - On OOC - Despawn if OOC');
-- Fix Vigilant Shade population in Naxxramas
UPDATE `creature` SET `position_x`=2798.932, `position_y`=-2985.458, `position_z`=244.387, `orientation`=6.2765, `wander_distance`=40 WHERE `guid`=128065;
DELETE FROM `creature` WHERE `guid` IN (128062, 128063, 128064, 128081, 128125, 128126, 128127);
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `VerifiedBuild`) VALUES
(128062, 30085, 533, 0, 0, 3, 1, 19329, 0, 2556.97, -3231.98, 246.370, 3.10938, 3600, 40, 0, 130330, 0, 1, 0, 0, 0, 0),
(128063, 30085, 533, 0, 0, 3, 1, 19329, 0, 2557.78, -3633.28, 273.809, 3.18988, 3600, 40, 0, 130330, 0, 1, 0, 0, 0, 0),
(128064, 30085, 533, 0, 0, 3, 1, 19329, 0, 2795.33, -3882.25, 279.417, 3.12988, 3600, 40, 0, 130330, 0, 1, 0, 0, 0, 0),
(128081, 30085, 533, 0, 0, 3, 1, 19329, 0, 3204.13, -3881.97, 273.901, 3.10888, 3600, 40, 0, 130330, 0, 1, 0, 0, 0, 0),
(128125, 30085, 533, 0, 0, 3, 1, 19329, 0, 3453.84, -3638.10, 276.313, 3.15988, 3600, 40, 0, 130330, 0, 1, 0, 0, 0, 0),
(128126, 30085, 533, 0, 0, 3, 1, 19329, 0, 3454.06, -3232.31, 275.430, 3.10488, 3600, 40, 0, 130330, 0, 1, 0, 0, 0, 0),
(128127, 30085, 533, 0, 0, 3, 1, 19329, 0, 3206.94, -2985.55, 275.347, 3.12938, 3600, 40, 0, 130330, 0, 1, 0, 0, 0, 0);

View File

@@ -3171,12 +3171,18 @@ void SpellMgr::LoadSpellCustomAttr()
spellInfo->AttributesCu |= SPELL_ATTR0_CU_NO_POSITIVE_TAKEN_BONUS;
break;
case 65280: // Ulduar, Hodir, Singed
case 28969: // Naxxramas, Crypt Guard, Acid Spit (10 normal)
case 56098: // Naxxramas, Crypt Guard, Acid Spit (25 normal)
case 27891: // Naxxramas, Sludge Belcher, Acidic Sludge (10 normal)
case 54331: // Naxxramas, Sludge Belcher, Acidic Sludge (25 normal)
case 29325: // Naxxramas, Stoneskin Gargoyle, Acid Volley (10 normal)
case 54714: // Naxxramas, Stoneskin Gargoyle, Acid Volley (25 normal)
case 65775: // Anub'arak, Swarm Scarab, Acid-Drenched Mandibles (10 normal)
case 67861: // Anub'arak, Swarm Scarab, Acid-Drenched Mandibles (25 normal)
case 67862: // Anub'arak, Swarm Scarab, Acid-Drenched Mandibles (10 heroic)
case 67863: // Anub'arak, Swarm Scarab, Acid-Drenched Mandibles (25 heroic)
case 55604: // Naxxramas, Unrelenting Trainee, Death Plague (10 mode)
case 55645: // Naxxramas, Unrelenting Trainee, Death Plague (25 mode)
case 55604: // Naxxramas, Unrelenting Trainee, Death Plague (10 normal)
case 55645: // Naxxramas, Unrelenting Trainee, Death Plague (25 normal)
case 67721: // Anub'arak, Nerubian Burrower, Expose Weakness (normal)
case 67847: // Anub'arak, Nerubian Burrower, Expose Weakness (heroic)
case 64638: // Ulduar, Winter Jormungar, Acidic Bite

View File

@@ -8,16 +8,16 @@
enum Says
{
SAY_AGGRO = 0,
SAY_GREET = 1,
SAY_SLAY = 2,
EMOTE_LOCUST = 3
SAY_AGGRO = 0,
SAY_GREET = 1,
SAY_SLAY = 2,
EMOTE_LOCUST = 3
};
enum GuardSays
{
EMOTE_SPAWN = 1,
EMOTE_SCARAB = 2
EMOTE_SPAWN = 1,
EMOTE_SCARAB = 2
};
enum Spells
@@ -183,7 +183,7 @@ public:
{
if (!me->IsInCombat() && sayGreet)
{
for( std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr )
for (std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr)
{
if (pInstance)
{

View File

@@ -9,13 +9,13 @@
enum Yells
{
SAY_GREET = 0,
SAY_AGGRO = 1,
SAY_SLAY = 2,
SAY_DEATH = 3,
EMOTE_WIDOWS_EMBRACE = 4,
EMOTE_FRENZY = 5,
SAY_FRENZY = 6
SAY_GREET = 0,
SAY_AGGRO = 1,
SAY_SLAY = 2,
SAY_DEATH = 3,
EMOTE_WIDOWS_EMBRACE = 4,
EMOTE_FRENZY = 5,
SAY_FRENZY = 6
};
enum Spells
@@ -40,9 +40,7 @@ enum Events
enum Misc
{
NPC_NAXXRAMAS_WORSHIPPER = 16506,
NPC_NAXXRAMAS_FOLLOWER = 16505,
SPIDER_WEB_ENTRANCE = 181235
NPC_NAXXRAMAS_FOLLOWER = 16505
};
class boss_faerlina : public CreatureScript
@@ -92,9 +90,12 @@ public:
events.Reset();
summons.DespawnAll();
SummonHelpers();
if (GameObject* go = me->FindNearestGameObject(SPIDER_WEB_ENTRANCE, 100.0f))
if (pInstance)
{
go->SetGoState(GO_STATE_ACTIVE);
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_FAERLINA_WEB)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
}
}
@@ -108,9 +109,12 @@ public:
events.ScheduleEvent(EVENT_RAIN_OF_FIRE, urand(8000, 18000));
events.ScheduleEvent(EVENT_FRENZY, urand(60000, 80000), 1);
events.SetPhase(1);
if (GameObject* go = me->FindNearestGameObject(SPIDER_WEB_ENTRANCE, 100.0f))
if (pInstance)
{
go->SetGoState(GO_STATE_READY);
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_FAERLINA_WEB)))
{
go->SetGoState(GO_STATE_READY);
}
}
}
@@ -143,9 +147,12 @@ public:
{
BossAI::JustDied(killer);
Talk(SAY_DEATH);
if (GameObject* go = me->FindNearestGameObject(SPIDER_WEB_ENTRANCE, 100.0f))
if (pInstance)
{
go->SetGoState(GO_STATE_ACTIVE);
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_FAERLINA_WEB)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
}
}
@@ -153,7 +160,7 @@ public:
{
if (!me->IsInCombat() && sayGreet)
{
for( std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr )
for (std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr)
{
if (pInstance)
{

View File

@@ -191,6 +191,16 @@ public:
events.RescheduleEvent(EVENT_PUNISH, 5000);
events.RescheduleEvent(EVENT_SECONDARY_SPELL, 15000);
}
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_HORSEMEN_GATE)))
{
if (pInstance->GetBossState(BOSS_GOTHIK) == DONE)
{
go->SetGoState(GO_STATE_ACTIVE);
}
}
}
}
void MovementInform(uint32 type, uint32 id) override
@@ -260,6 +270,10 @@ public:
player->SummonGameObject(RAID_MODE(GO_HORSEMEN_CHEST_10, GO_HORSEMEN_CHEST_25), 2514.8f, -2944.9f, 245.55f, 5.51f, 0, 0, 0, 0, 0);
}
}
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_HORSEMEN_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
}
}
Talk(SAY_DEATH);
@@ -276,6 +290,13 @@ public:
me->SetSpeed(MOVE_RUN, me->GetSpeedRate(MOVE_RUN), true);
MoveToCorner();
}
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_HORSEMEN_GATE)))
{
go->SetGoState(GO_STATE_READY);
}
}
}
void UpdateAI(uint32 diff) override

View File

@@ -263,13 +263,10 @@ public:
{
summons.DoZoneInCombat();
}
else
else if (Unit* target = me->SelectNearestTarget(50.0f))
{
if (Unit* target = me->SelectNearestTarget(50.0f))
{
AttackStart(target);
DoZoneInCombat();
}
AttackStart(target);
DoZoneInCombat();
}
}

View File

@@ -154,14 +154,7 @@ public:
case EVENT_INEVITABLE_DOOM:
me->CastSpell(me, RAID_MODE(SPELL_INEVITABLE_DOOM_10, SPELL_INEVITABLE_DOOM_25), false);
doomCounter++;
if (doomCounter < 6)
{
events.RepeatEvent(30000);
}
else
{
events.RepeatEvent(15000);
}
events.RepeatEvent(doomCounter < 6 ? 30000 : 15000);
break;
case EVENT_BERSERK:
me->CastSpell(me, SPELL_BERSERK, true);

View File

@@ -49,9 +49,7 @@ enum Misc
{
NPC_PLAGUED_WARRIOR = 16984,
NPC_PLAGUED_CHAMPION = 16983,
NPC_PLAGUED_GUARDIAN = 16981,
NOTH_ROOM_ENTRANCE = 181200
NPC_PLAGUED_GUARDIAN = 16981
};
const Position summoningPosition[5] =
@@ -140,9 +138,12 @@ public:
me->SetControlled(false, UNIT_STATE_ROOT);
me->SetReactState(REACT_AGGRESSIVE);
timesInBalcony = 0;
if (GameObject* go = me->FindNearestGameObject(NOTH_ROOM_ENTRANCE, 100.0f))
if (pInstance)
{
go->SetGoState(GO_STATE_ACTIVE);
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_NOTH_ENTRY_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
}
}
@@ -157,9 +158,12 @@ public:
BossAI::EnterCombat(who);
Talk(SAY_AGGRO);
StartGroundPhase();
if (GameObject* go = me->FindNearestGameObject(NOTH_ROOM_ENTRANCE, 100.0f))
if (pInstance)
{
go->SetGoState(GO_STATE_READY);
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_NOTH_ENTRY_GATE)))
{
go->SetGoState(GO_STATE_READY);
}
}
}
@@ -178,9 +182,12 @@ public:
}
BossAI::JustDied(killer);
Talk(SAY_DEATH);
if (GameObject* go = me->FindNearestGameObject(NOTH_ROOM_ENTRANCE, 100.0f))
if (pInstance)
{
go->SetGoState(GO_STATE_ACTIVE);
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_NOTH_ENTRY_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
}
}

View File

@@ -89,12 +89,9 @@ public:
{
Talk(SAY_SLAY);
}
if (who->GetTypeId() == TYPEID_PLAYER)
if (who->GetTypeId() == TYPEID_PLAYER && pInstance)
{
if (pInstance)
{
pInstance->SetData(DATA_IMMORTAL_FAIL, 0);
}
pInstance->SetData(DATA_IMMORTAL_FAIL, 0);
}
}
@@ -187,12 +184,9 @@ public:
void KilledUnit(Unit* who) override
{
if (who->GetTypeId() == TYPEID_PLAYER)
if (who->GetTypeId() == TYPEID_PLAYER && me->GetInstanceScript())
{
if (me->GetInstanceScript())
{
me->GetInstanceScript()->SetData(DATA_IMMORTAL_FAIL, 0);
}
me->GetInstanceScript()->SetData(DATA_IMMORTAL_FAIL, 0);
}
}

View File

@@ -92,8 +92,7 @@ enum Misc
ACTION_RESTORE = 3,
GO_TESLA_COIL_LEFT = 181478,
GO_TESLA_COIL_RIGHT = 181477,
NPC_TESLA_COIL = 16218,
THADDIUS_ROOM_DOOR = 181121
NPC_TESLA_COIL = 16218
};
class boss_thaddius : public CreatureScript
@@ -177,9 +176,15 @@ public:
{
go->SetGoState(GO_STATE_ACTIVE);
}
if (GameObject* go = me->FindNearestGameObject(THADDIUS_ROOM_DOOR, 200.0f))
if (pInstance)
{
go->SetGoState(GO_STATE_ACTIVE);
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_THADDIUS_GATE)))
{
if (pInstance->GetBossState(BOSS_GLUTH) == DONE)
{
go->SetGoState(GO_STATE_ACTIVE);
}
}
}
}
@@ -203,10 +208,10 @@ public:
{
pInstance->DoRemoveAurasDueToSpellOnPlayers(28059);
pInstance->DoRemoveAurasDueToSpellOnPlayers(28084);
}
if (GameObject* go = me->FindNearestGameObject(THADDIUS_ROOM_DOOR, 200.0f))
{
go->SetGoState(GO_STATE_ACTIVE);
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_THADDIUS_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
}
}
@@ -394,10 +399,6 @@ public:
void EnterCombat(Unit* pWho) override
{
me->SetInCombatWithZone();
if (GameObject* go = me->FindNearestGameObject(THADDIUS_ROOM_DOOR, 200.0f))
{
go->SetGoState(GO_STATE_READY);
}
if (Creature* cr = me->FindNearestCreature(NPC_TESLA_COIL, 150.f, true))
{
myCoil = cr->GetGUID();
@@ -420,6 +421,10 @@ public:
}
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_THADDIUS_GATE)))
{
go->SetGoState(GO_STATE_READY);
}
if (Creature* cr = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_THADDIUS_BOSS)))
{
cr->AI()->AttackStart(pWho);
@@ -609,14 +614,7 @@ public:
if (count)
{
uint32 spellId = 0;
if (GetSpellInfo()->Id == SPELL_POSITIVE_CHARGE)
{
spellId = SPELL_POSITIVE_CHARGE_STACK;
}
else // if (GetSpellInfo()->Id == SPELL_NEGATIVE_CHARGE)
{
spellId = SPELL_NEGATIVE_CHARGE_STACK;
}
spellId = GetSpellInfo()->Id == SPELL_POSITIVE_CHARGE ? SPELL_NEGATIVE_CHARGE_STACK : SPELL_NEGATIVE_CHARGE_STACK;
GetCaster()->SetAuraStack(spellId, GetCaster(), count);
}
}

View File

@@ -58,22 +58,24 @@ public:
// GOs
_patchwerkGateGUID = 0;
_gluthGateGUID = 0;
_nothGateGUID = 0;
_nothEntryGateGUID = 0;
_nothExitGateGUID = 0;
_heiganGateGUID = 0;
_heiganGateExitGUID = 0;
_loathebGateGUID = 0;
_anubGateGUID = 0;
_anubNextGateGUID = 0;
_faerlinaWebGUID = 0;
_faerlinaGateGUID = 0;
_maexxnaGateGUID = 0;
_thaddiusGateGUID = 0;
_horsemanGateGUID = 0;
_kelthuzadfloorGUID = 0;
_kelthuzadgateGUID = 0;
_kelthuzadportal1GUID = 0;
_kelthuzadportal2GUID = 0;
_kelthuzadportal3GUID = 0;
_kelthuzadportal4GUID = 0;
_kelthuzadFloorGUID = 0;
_kelthuzadGateGUID = 0;
_kelthuzadPortal1GUID = 0;
_kelthuzadPortal2GUID = 0;
_kelthuzadPortal3GUID = 0;
_kelthuzadPortal4GUID = 0;
_sapphironGateGUID = 0;
_horsemanPortalGUID = 0;
_loathebPortalGUID = 0;
@@ -83,6 +85,10 @@ public:
_plagueEyePortalGUID = 0;
_spiderEyePortalGUID = 0;
_abomEyePortalGUID = 0;
_deathknightGlowEyePortalGUID = 0;
_plagueGlowEyePortalGUID = 0;
_spiderGlowEyePortalGUID = 0;
_abomGlowEyePortalGUID = 0;
// NPCs
PatchwerkRoomTrash.clear();
@@ -122,12 +128,14 @@ public:
// GOs
uint64 _patchwerkGateGUID;
uint64 _gluthGateGUID;
uint64 _nothGateGUID;
uint64 _nothEntryGateGUID;
uint64 _nothExitGateGUID;
uint64 _heiganGateGUID;
uint64 _heiganGateExitGUID;
uint64 _loathebGateGUID;
uint64 _anubGateGUID;
uint64 _anubNextGateGUID;
uint64 _faerlinaWebGUID;
uint64 _faerlinaGateGUID;
uint64 _maexxnaGateGUID;
uint64 _thaddiusGateGUID;
@@ -135,12 +143,12 @@ public:
uint64 _gothikInnerGateGUID{};
uint64 _gothikExitGateGUID{};
uint64 _horsemanGateGUID;
uint64 _kelthuzadfloorGUID;
uint64 _kelthuzadgateGUID;
uint64 _kelthuzadportal1GUID;
uint64 _kelthuzadportal2GUID;
uint64 _kelthuzadportal3GUID;
uint64 _kelthuzadportal4GUID;
uint64 _kelthuzadFloorGUID;
uint64 _kelthuzadGateGUID;
uint64 _kelthuzadPortal1GUID;
uint64 _kelthuzadPortal2GUID;
uint64 _kelthuzadPortal3GUID;
uint64 _kelthuzadPortal4GUID;
uint64 _sapphironGateGUID;
uint64 _horsemanPortalGUID;
uint64 _loathebPortalGUID;
@@ -150,6 +158,10 @@ public:
uint64 _plagueEyePortalGUID;
uint64 _spiderEyePortalGUID;
uint64 _abomEyePortalGUID;
uint64 _deathknightGlowEyePortalGUID;
uint64 _plagueGlowEyePortalGUID;
uint64 _spiderGlowEyePortalGUID;
uint64 _abomGlowEyePortalGUID;
// NPCs
std::list<uint64> PatchwerkRoomTrash;
@@ -293,14 +305,21 @@ public:
pGo->SetGoState(GO_STATE_ACTIVE);
}
break;
case GO_NOTH_GATE:
_nothGateGUID = pGo->GetGUID();
case GO_NOTH_ENTRY_GATE:
_nothEntryGateGUID = pGo->GetGUID();
if (GetBossState(BOSS_NOTH) == DONE)
{
pGo->SetGoState(GO_STATE_ACTIVE);
}
break;
case GO_HEIGAN_ENTERANCE_GATE:
case GO_NOTH_EXIT_GATE:
_nothExitGateGUID = pGo->GetGUID();
if (GetBossState(BOSS_NOTH) == DONE)
{
pGo->SetGoState(GO_STATE_ACTIVE);
}
break;
case GO_HEIGAN_ENTRY_GATE:
_heiganGateGUID = pGo->GetGUID();
if (GetBossState(BOSS_HEIGAN) == DONE || GetBossState(BOSS_NOTH) == DONE)
{
@@ -342,6 +361,13 @@ public:
pGo->SetGoState(GO_STATE_ACTIVE);
}
break;
case GO_FAERLINA_WEB:
_faerlinaWebGUID = pGo->GetGUID();
if (GetBossState(BOSS_FAERLINA) == DONE)
{
pGo->SetGoState(GO_STATE_ACTIVE);
}
break;
case GO_MAEXXNA_GATE:
_maexxnaGateGUID = pGo->GetGUID();
if (GetBossState(BOSS_FAERLINA) == DONE)
@@ -369,7 +395,7 @@ public:
pGo->SetGoState(GO_STATE_ACTIVE);
}
break;
case GO_HORSEMAN_GATE:
case GO_HORSEMEN_GATE:
_horsemanGateGUID = pGo->GetGUID();
if (GetBossState(BOSS_GOTHIK) == DONE)
{
@@ -377,26 +403,26 @@ public:
}
break;
case GO_KELTHUZAD_FLOOR:
_kelthuzadfloorGUID = pGo->GetGUID();
_kelthuzadFloorGUID = pGo->GetGUID();
break;
case GO_KELTHUZAD_GATE:
_kelthuzadgateGUID = pGo->GetGUID();
_kelthuzadGateGUID = pGo->GetGUID();
if (GetBossState(BOSS_SAPPHIRON) == DONE && _speakTimer == 0)
{
pGo->SetGoState(GO_STATE_ACTIVE);
}
break;
case GO_KELTHUZAD_PORTAL_1:
_kelthuzadportal1GUID = pGo->GetGUID();
_kelthuzadPortal1GUID = pGo->GetGUID();
break;
case GO_KELTHUZAD_PORTAL_2:
_kelthuzadportal2GUID = pGo->GetGUID();
_kelthuzadPortal2GUID = pGo->GetGUID();
break;
case GO_KELTHUZAD_PORTAL_3:
_kelthuzadportal3GUID = pGo->GetGUID();
_kelthuzadPortal3GUID = pGo->GetGUID();
break;
case GO_KELTHUZAD_PORTAL_4:
_kelthuzadportal4GUID = pGo->GetGUID();
_kelthuzadPortal4GUID = pGo->GetGUID();
break;
case GO_SAPPHIRON_GATE:
_sapphironGateGUID = pGo->GetGUID();
@@ -405,34 +431,40 @@ public:
pGo->SetGoState(GO_STATE_ACTIVE);
}
break;
case GO_DEATHKNIGHT_WING:
case GO_LOATHEB_PORTAL:
_loathebPortalGUID = pGo->GetGUID();
if (GetBossState(BOSS_LOATHEB) == DONE)
{
pGo->SetPhaseMask(1, true);
pGo->SetGoState(GO_STATE_ACTIVE);
pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
}
break;
case GO_THADDIUS_PORTAL:
_thaddiusPortalGUID = pGo->GetGUID();
if (GetBossState(BOSS_THADDIUS) == DONE)
{
pGo->SetPhaseMask(1, true);
pGo->SetGoState(GO_STATE_ACTIVE);
pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
}
break;
case GO_MAEXXNA_PORTAL:
_maexxnaPortalGUID = pGo->GetGUID();
if (GetBossState(BOSS_MAEXXNA) == DONE)
{
pGo->SetPhaseMask(1, true);
pGo->SetGoState(GO_STATE_ACTIVE);
pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
}
break;
case GO_HORSEMAN_PORTAL:
_horsemanPortalGUID = pGo->GetGUID();
if (GetBossState(BOSS_HORSEMAN) == DONE)
{
pGo->SetPhaseMask(1, true);
pGo->SetGoState(GO_STATE_ACTIVE);
pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
}
break;
// Glow portals at center-side
case GO_DEATHKNIGHT_EYE_PORTAL:
_deathknightEyePortalGUID = pGo->GetGUID();
if (GetBossState(BOSS_HORSEMAN) == DONE)
@@ -461,6 +493,36 @@ public:
pGo->SetGoState(GO_STATE_ACTIVE);
}
break;
// Glow portals at boss-side
case GO_MILI_EYE_RAMP_BOSS:
_deathknightGlowEyePortalGUID = pGo->GetGUID();
if (GetBossState(BOSS_HORSEMAN) == DONE)
{
pGo->SetGoState(GO_STATE_ACTIVE);
}
break;
case GO_PLAG_EYE_RAMP_BOSS:
_plagueGlowEyePortalGUID = pGo->GetGUID();
if (GetBossState(BOSS_LOATHEB) == DONE)
{
pGo->SetGoState(GO_STATE_ACTIVE);
}
break;
case GO_ARAC_EYE_RAMP_BOSS:
_spiderGlowEyePortalGUID = pGo->GetGUID();
if (GetBossState(BOSS_MAEXXNA) == DONE)
{
pGo->SetGoState(GO_STATE_ACTIVE);
}
break;
case GO_CONS_EYE_RAMP_BOSS:
_abomGlowEyePortalGUID = pGo->GetGUID();
if (GetBossState(BOSS_THADDIUS) == DONE)
{
pGo->SetGoState(GO_STATE_ACTIVE);
}
break;
}
}
@@ -788,7 +850,7 @@ public:
}
break;
case BOSS_NOTH:
if (GameObject* go = instance->GetGameObject(_nothGateGUID))
if (GameObject* go = instance->GetGameObject(_nothExitGateGUID))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -814,12 +876,17 @@ public:
}
if (GameObject* go = instance->GetGameObject(_loathebPortalGUID))
{
go->SetPhaseMask(1, true);
go->SetGoState(GO_STATE_ACTIVE);
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
}
if (GameObject* go = instance->GetGameObject(_plagueEyePortalGUID))
{
go->SetGoState(GO_STATE_ACTIVE);
}
if (GameObject* go = instance->GetGameObject(_plagueGlowEyePortalGUID))
{
go->SetGoState(GO_STATE_ACTIVE);
}
events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6000);
break;
case BOSS_ANUB:
@@ -849,12 +916,17 @@ public:
}
if (GameObject* go = instance->GetGameObject(_maexxnaPortalGUID))
{
go->SetPhaseMask(1, true);
go->SetGoState(GO_STATE_ACTIVE);
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
}
if (GameObject* go = instance->GetGameObject(_spiderEyePortalGUID))
{
go->SetGoState(GO_STATE_ACTIVE);
}
if (GameObject* go = instance->GetGameObject(_spiderGlowEyePortalGUID))
{
go->SetGoState(GO_STATE_ACTIVE);
}
events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6000);
break;
case BOSS_GOTHIK:
@@ -877,23 +949,33 @@ public:
case BOSS_THADDIUS:
if (GameObject* go = instance->GetGameObject(_thaddiusPortalGUID))
{
go->SetPhaseMask(1, true);
go->SetGoState(GO_STATE_ACTIVE);
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
}
if (GameObject* go = instance->GetGameObject(_abomEyePortalGUID))
{
go->SetGoState(GO_STATE_ACTIVE);
}
if (GameObject* go = instance->GetGameObject(_abomGlowEyePortalGUID))
{
go->SetGoState(GO_STATE_ACTIVE);
}
events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6000);
break;
case BOSS_HORSEMAN:
if (GameObject* go = instance->GetGameObject(_horsemanPortalGUID))
{
go->SetPhaseMask(1, true);
go->SetGoState(GO_STATE_ACTIVE);
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
}
if (GameObject* go = instance->GetGameObject(_deathknightEyePortalGUID))
{
go->SetGoState(GO_STATE_ACTIVE);
}
if (GameObject* go = instance->GetGameObject(_deathknightGlowEyePortalGUID))
{
go->SetGoState(GO_STATE_ACTIVE);
}
events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6000);
break;
default:
@@ -946,7 +1028,7 @@ public:
{
kel->AI()->Talk(SAY_SAPP_DIALOG6);
_speakTimer = 0;
if (GameObject* go = instance->GetGameObject(_kelthuzadgateGUID))
if (GameObject* go = instance->GetGameObject(_kelthuzadGateGUID))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -1004,6 +1086,8 @@ public:
return _loathebGateGUID;
case DATA_ANUB_GATE:
return _anubGateGUID;
case DATA_FAERLINA_WEB:
return _faerlinaWebGUID;
case DATA_MAEXXNA_GATE:
return _maexxnaGateGUID;
case DATA_GOTHIK_ENTER_GATE:
@@ -1012,18 +1096,24 @@ public:
return _gothikInnerGateGUID;
case DATA_GOTHIK_EXIT_GATE:
return _gothikExitGateGUID;
case DATA_HORSEMEN_GATE:
return _horsemanGateGUID;
case DATA_THADDIUS_GATE:
return _thaddiusGateGUID;
case DATA_NOTH_ENTRY_GATE:
return _nothEntryGateGUID;
case DATA_KELTHUZAD_FLOOR:
return _kelthuzadfloorGUID;
return _kelthuzadFloorGUID;
case DATA_KELTHUZAD_GATE:
return _kelthuzadgateGUID;
return _kelthuzadGateGUID;
case DATA_KELTHUZAD_PORTAL_1:
return _kelthuzadportal1GUID;
return _kelthuzadPortal1GUID;
case DATA_KELTHUZAD_PORTAL_2:
return _kelthuzadportal2GUID;
return _kelthuzadPortal2GUID;
case DATA_KELTHUZAD_PORTAL_3:
return _kelthuzadportal3GUID;
return _kelthuzadPortal3GUID;
case DATA_KELTHUZAD_PORTAL_4:
return _kelthuzadportal4GUID;
return _kelthuzadPortal4GUID;
// NPCs
case DATA_THADDIUS_BOSS:
@@ -1130,10 +1220,20 @@ public:
timer += diff;
if (timer >= 5000)
{
if (Creature* cr = me->SummonCreature(NPC_LIVING_POISON, *me, TEMPSUMMON_TIMED_DESPAWN, 9000))
if (Creature* cr = me->SummonCreature(NPC_LIVING_POISON, 3128.59, -3118.81, 293.346, 4.76754, TEMPSUMMON_TIMED_DESPAWN, 15200))
{
cr->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
cr->GetMotionMaster()->MovePoint(0, me->GetPositionX() + 50 * cos(me->GetOrientation()), me->GetPositionY() + 50 * sin(me->GetOrientation()), me->GetPositionZ(), false);
cr->GetMotionMaster()->MovePoint(0, 3130.322, -3156.51, 293.324, false);
}
if (Creature* cr = me->SummonCreature(NPC_LIVING_POISON, *me, TEMPSUMMON_TIMED_DESPAWN, 14800))
{
cr->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
cr->GetMotionMaster()->MovePoint(0, 3144.779, -3158.416, 293.324, false);
}
if (Creature* cr = me->SummonCreature(NPC_LIVING_POISON, 3175.42, -3134.86, 293.34, 4.284, TEMPSUMMON_TIMED_DESPAWN, 14800))
{
cr->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
cr->GetMotionMaster()->MovePoint(0, 3158.778, -3164.201, 293.312, false);
}
timer = 0;
}

View File

@@ -29,51 +29,57 @@ enum Encouters
enum NXData
{
DATA_HEIGAN_ERUPTION = 100,
DATA_HEIGAN_ENTER_GATE = 101,
DATA_LOATHEB_GATE = 102,
DATA_ANUB_GATE = 103,
DATA_MAEXXNA_GATE = 104,
DATA_THADDIUS_BOSS = 105,
DATA_STALAGG_BOSS = 106,
DATA_FEUGEN_BOSS = 107,
DATA_GOTHIK_ENTER_GATE = 108,
DATA_GOTHIK_INNER_GATE = 109,
DATA_GOTHIK_EXIT_GATE = 110,
DATA_LICH_KING_BOSS = 111,
DATA_KELTHUZAD_FLOOR = 112,
DATA_ABOMINATION_KILLED = 113,
DATA_FRENZY_REMOVED = 114,
DATA_CHARGES_CROSSED = 115,
DATA_SPORE_KILLED = 116,
DATA_HUNDRED_CLUB = 117,
DATA_DANCE_FAIL = 118,
DATA_IMMORTAL_FAIL = 119,
DATA_KELTHUZAD_GATE = 120,
DATA_HAD_THADDIUS_GREET = 121,
DATA_KELTHUZAD_PORTAL_1 = 122,
DATA_KELTHUZAD_PORTAL_2 = 123,
DATA_KELTHUZAD_PORTAL_3 = 124,
DATA_KELTHUZAD_PORTAL_4 = 125
DATA_NOTH_ENTRY_GATE = 100,
DATA_HEIGAN_ERUPTION = 101,
DATA_HEIGAN_ENTER_GATE = 102,
DATA_LOATHEB_GATE = 103,
DATA_ANUB_GATE = 104,
DATA_FAERLINA_WEB = 105,
DATA_MAEXXNA_GATE = 106,
DATA_THADDIUS_BOSS = 107,
DATA_STALAGG_BOSS = 108,
DATA_FEUGEN_BOSS = 109,
DATA_THADDIUS_GATE = 110,
DATA_GOTHIK_ENTER_GATE = 111,
DATA_GOTHIK_INNER_GATE = 112,
DATA_GOTHIK_EXIT_GATE = 113,
DATA_HORSEMEN_GATE = 114,
DATA_LICH_KING_BOSS = 115,
DATA_KELTHUZAD_FLOOR = 116,
DATA_ABOMINATION_KILLED = 117,
DATA_FRENZY_REMOVED = 118,
DATA_CHARGES_CROSSED = 119,
DATA_SPORE_KILLED = 120,
DATA_HUNDRED_CLUB = 121,
DATA_DANCE_FAIL = 122,
DATA_IMMORTAL_FAIL = 123,
DATA_KELTHUZAD_GATE = 124,
DATA_HAD_THADDIUS_GREET = 125,
DATA_KELTHUZAD_PORTAL_1 = 126,
DATA_KELTHUZAD_PORTAL_2 = 127,
DATA_KELTHUZAD_PORTAL_3 = 128,
DATA_KELTHUZAD_PORTAL_4 = 129
};
enum NXGOs
{
GO_PATCHWERK_GATE = 181123,
GO_GLUTH_GATE = 181120,
GO_NOTH_GATE = 181201,
GO_HEIGAN_ENTERANCE_GATE = 181202,
GO_NOTH_ENTRY_GATE = 181200,
GO_NOTH_EXIT_GATE = 181201,
GO_HEIGAN_ENTRY_GATE = 181202,
GO_HEIGAN_EXIT_GATE = 181203,
GO_LOATHEB_GATE = 181241,
GO_ANUB_GATE = 181126,
GO_ANUB_NEXT_GATE = 181195,
GO_FAERLINA_WEB = 181235,
GO_FAERLINA_GATE = 194022,
GO_MAEXXNA_GATE = 181209,
GO_THADDIUS_GATE = 181121,
GO_GOTHIK_ENTER_GATE = 181124,
GO_GOTHIK_INNER_GATE = 181170,
GO_GOTHIK_EXIT_GATE = 181125,
GO_HORSEMAN_GATE = 181119,
GO_HORSEMEN_GATE = 181119,
GO_SAPPHIRON_GATE = 181225,
GO_HORSEMEN_CHEST_10 = 181366,
@@ -87,15 +93,22 @@ enum NXGOs
GO_KELTHUZAD_PORTAL_3 = 181404,
GO_KELTHUZAD_PORTAL_4 = 181405,
GO_DEATHKNIGHT_WING = 181577,
GO_LOATHEB_PORTAL = 181577,
GO_THADDIUS_PORTAL = 181576,
GO_MAEXXNA_PORTAL = 181575,
GO_HORSEMAN_PORTAL = 181578,
// "Glow" effect on center-side portal
GO_DEATHKNIGHT_EYE_PORTAL = 181210,
GO_PLAGUE_EYE_PORTAL = 181211,
GO_SPIDER_EYE_PORTAL = 181212,
GO_ABOM_EYE_PORTAL = 181213
GO_ABOM_EYE_PORTAL = 181213,
// "Glow" effect on boss-side portal
GO_ARAC_EYE_RAMP_BOSS = 181233,
GO_PLAG_EYE_RAMP_BOSS = 181231,
GO_MILI_EYE_RAMP_BOSS = 181230,
GO_CONS_EYE_RAMP_BOSS = 181232
};
enum NXNPCs