Scripts/Naxxramas: Full Kel'thuzad rework.
- Sniffed timers
- Sniffed spawn behavior
- Sniffed everything else
- Sniffed sniff. Mmmm
- In all seriousness though:
- Fixed P2 cast behavior, now obeys category cooldowns as intended
- Fixed P1 pathing and abomination behavior
- Fixed P1 passive minion aggro logic
- Fixed P1->P2 transition logic
- Fixed P3 guardian spawn/despawn logic
- Fixed all minions' cast behavior
- Fixed melee hitbox for Kel'thuzad, abominations, banshees and guardians
- Fixed reset behavior
- Fixed post-Sapphiron event to no longer open the KT door for a few seconds before slamming it closed again by treeston
This commit is contained in:
1 parent
4554c9b46a
commit
332feace2c
6 files changed
+1078
-689
No files matched your search
@@ -0,0 +1,190 @@
|
||||
-- !!!!!!!!!!!!!!!!!!!!!!!!!!! --
|
||||
-- KEL'THUZAD ENCOUNTER REWORK --
|
||||
-- !!!!!!!!!!!!!!!!!!!!!!!!!!! --
|
||||
|
||||
|
||||
-- =============== --
|
||||
-- Difficulty data --
|
||||
-- =============== --
|
||||
DELETE FROM `spelldifficulty_dbc` WHERE `id` IN (28478,28479,28457,28459);
|
||||
INSERT INTO `spelldifficulty_dbc` (`id`,`spellid0`,`spellid1`) VALUES
|
||||
(28478,28478,55802),
|
||||
(28479,28479,55807),
|
||||
(28457,28457,55714),
|
||||
(28459,28459,55765);
|
||||
|
||||
-- ======================================================================== --
|
||||
-- Summon groups: --
|
||||
-- groups 1 to 4 are the 4 guardian of icecrown spawns for P3 --
|
||||
-- groups 5 to 11 are the spawn groups for each of the minion pockets in P1 --
|
||||
-- ======================================================================== --
|
||||
DELETE FROM `creature_summon_groups` WHERE `summonerId`=15990;
|
||||
INSERT INTO `creature_summon_groups` (`summonerId`,`summonerType`,`groupId`,`entry`,`position_x`,`position_y`,`position_z`,`orientation`,`summonType`,`summonTime`) VALUES
|
||||
(15990,0, 1,16441,3700.7,-5182.372,144.0006,3.525565,5,0),
|
||||
(15990,0, 2,16441,3759.62,-5172.79,143.835,2.275546,5,0),
|
||||
(15990,0, 3,16441,3777.213,-5066.177,143.7245,3.854439,5,0),
|
||||
(15990,0, 4,16441,3732.598,-5028.03,144.1175,5.951573,5,0),
|
||||
(15990,0, 5,23561,3767.448,-5085.221,143.3204,1.099557,6,2500),
|
||||
(15990,0, 5,23561,3763.589,-5077.779,143.2613,3.263766,6,2500),
|
||||
(15990,0, 5,23561,3778.311,-5070.924,143.6698,0.383972,6,2500),
|
||||
(15990,0, 5,23561,3777.016,-5076.336,143.6931,2.443461,6,2500),
|
||||
(15990,0, 5,23561,3768.994,-5072.449,143.2920,1.221730,6,2500),
|
||||
(15990,0, 5,23561,3765.200,-5066.542,143.5911,5.969026,6,2500),
|
||||
(15990,0, 5,23561,3760.120,-5071.032,143.2545,4.049164,6,2500),
|
||||
(15990,0, 5,23561,3772.377,-5065.624,143.5756,3.595378,6,2500),
|
||||
(15990,0, 5,23561,3769.112,-5080.867,143.4122,3.473205,6,2500),
|
||||
(15990,0, 5,23561,3777.380,-5061.792,143.7722,3.246312,6,2500),
|
||||
(15990,0, 5,23562,3760.199,-5065.446,143.6439,1.762783,6,2500),
|
||||
(15990,0, 5,23562,3770.308,-5079.318,143.4988,0.261799,6,2500),
|
||||
(15990,0, 5,23562,3768.820,-5068.979,143.4071,1.518436,6,2500),
|
||||
(15990,0, 5,23563,3769.489,-5073.855,143.3546,5.253441,6,2500),
|
||||
(15990,0, 6,23561,3737.419,-5052.975,143.7604,1.169371,6,2500),
|
||||
(15990,0, 6,23561,3727.097,-5048.372,143.4038,3.857178,6,2500),
|
||||
(15990,0, 6,23561,3737.439,-5041.781,143.7740,3.857178,6,2500),
|
||||
(15990,0, 6,23561,3732.787,-5045.659,143.5814,1.937315,6,2500),
|
||||
(15990,0, 6,23561,3721.843,-5044.510,143.6988,2.827433,6,2500),
|
||||
(15990,0, 6,23561,3728.000,-5031.103,143.8964,0.750492,6,2500),
|
||||
(15990,0, 6,23561,3732.647,-5051.030,143.5529,3.246312,6,2500),
|
||||
(15990,0, 6,23561,3733.721,-5032.996,143.8625,6.021386,6,2500),
|
||||
(15990,0, 6,23561,3728.706,-5043.684,143.4527,1.483530,6,2500),
|
||||
(15990,0, 6,23561,3725.062,-5036.629,143.7767,3.874631,6,2500),
|
||||
(15990,0, 6,23562,3729.237,-5039.866,143.5873,4.607669,6,2500),
|
||||
(15990,0, 6,23562,3718.425,-5046.168,143.7998,5.480334,6,2500),
|
||||
(15990,0, 6,23562,3735.658,-5045.499,143.7014,3.595378,6,2500),
|
||||
(15990,0, 6,23563,3730.488,-5043.493,143.4955,0.541052,6,2500),
|
||||
(15990,0, 7,23561,3681.355,-5048.864,143.5021,6.195919,6,2500),
|
||||
(15990,0, 7,23561,3681.005,-5062.944,143.2552,5.131268,6,2500),
|
||||
(15990,0, 7,23561,3678.148,-5062.077,143.3822,0.663225,6,2500),
|
||||
(15990,0, 7,23561,3679.336,-5055.365,143.3906,4.118977,6,2500),
|
||||
(15990,0, 7,23561,3687.639,-5053.579,143.3244,4.736891,6,2500),
|
||||
(15990,0, 7,23561,3686.921,-5045.933,143.7372,2.373648,6,2500),
|
||||
(15990,0, 7,23561,3683.435,-5059.344,143.2643,3.979351,6,2500),
|
||||
(15990,0, 7,23561,3673.546,-5053.107,143.6368,3.595378,6,2500),
|
||||
(15990,0, 7,23561,3682.695,-5052.478,143.3708,4.293510,6,2500),
|
||||
(15990,0, 7,23561,3689.501,-5058.241,143.2562,2.251475,6,2500),
|
||||
(15990,0, 7,23562,3691.315,-5055.122,143.3179,0.191986,6,2500),
|
||||
(15990,0, 7,23562,3676.070,-5064.142,143.5163,2.548181,6,2500),
|
||||
(15990,0, 7,23562,3682.844,-5058.052,143.2656,5.393067,6,2500),
|
||||
(15990,0, 7,23563,3683.868,-5047.447,143.5984,3.176499,6,2500),
|
||||
(15990,0, 8,23561,3645.270,-5095.199,143.5504,5.044002,6,2500),
|
||||
(15990,0, 8,23561,3649.625,-5084.568,143.7628,5.899213,6,2500),
|
||||
(15990,0, 8,23561,3653.785,-5104.293,143.8255,0.314159,6,2500),
|
||||
(15990,0, 8,23561,3652.523,-5094.354,143.4423,5.270895,6,2500),
|
||||
(15990,0, 8,23561,3660.487,-5089.280,143.6040,3.071779,6,2500),
|
||||
(15990,0, 8,23561,3657.886,-5092.163,143.4859,5.201081,6,2500),
|
||||
(15990,0, 8,23561,3652.059,-5098.256,143.6083,0.488692,6,2500),
|
||||
(15990,0, 8,23561,3654.281,-5085.585,143.7745,3.787364,6,2500),
|
||||
(15990,0, 8,23561,3659.438,-5098.578,143.4740,0.890118,6,2500),
|
||||
(15990,0, 8,23561,3648.554,-5088.838,143.5358,2.914700,6,2500),
|
||||
(15990,0, 8,23562,3655.752,-5101.823,143.6867,1.500983,6,2500),
|
||||
(15990,0, 8,23562,3660.398,-5085.446,143.7791,0.959931,6,2500),
|
||||
(15990,0, 8,23562,3653.763,-5092.355,143.4888,1.832596,6,2500),
|
||||
(15990,0, 8,23563,3648.262,-5095.589,143.5233,2.356194,6,2500),
|
||||
(15990,0, 9,23561,3658.025,-5142.342,143.5081,5.305801,6,2500),
|
||||
(15990,0, 9,23561,3669.560,-5134.747,143.2598,1.535890,6,2500),
|
||||
(15990,0, 9,23561,3661.139,-5135.697,143.5744,4.450590,6,2500),
|
||||
(15990,0, 9,23561,3664.328,-5145.051,143.4375,3.124139,6,2500),
|
||||
(15990,0, 9,23561,3667.805,-5142.171,143.2627,3.019420,6,2500),
|
||||
(15990,0, 9,23561,3664.311,-5132.388,143.3373,2.391101,6,2500),
|
||||
(15990,0, 9,23561,3672.570,-5140.829,143.2567,0.261799,6,2500),
|
||||
(15990,0, 9,23561,3670.688,-5145.027,143.4145,1.588250,6,2500),
|
||||
(15990,0, 9,23561,3663.013,-5138.814,143.3694,2.164208,6,2500),
|
||||
(15990,0, 9,23561,3665.966,-5146.641,143.5444,6.195919,6,2500),
|
||||
(15990,0, 9,23562,3657.254,-5134.812,143.7300,3.403392,6,2500),
|
||||
(15990,0, 9,23562,3668.447,-5147.539,143.6403,1.919862,6,2500),
|
||||
(15990,0, 9,23562,3668.889,-5138.345,143.2660,5.393067,6,2500),
|
||||
(15990,0, 9,23563,3657.367,-5146.094,143.5471,4.537856,6,2500),
|
||||
(15990,0,10,23561,3711.224,-5164.672,143.6237,3.246312,6,2500),
|
||||
(15990,0,10,23561,3700.833,-5172.231,143.5864,5.201081,6,2500),
|
||||
(15990,0,10,23561,3699.030,-5176.604,143.7459,1.832596,6,2500),
|
||||
(15990,0,10,23561,3697.229,-5170.590,143.6790,0.296706,6,2500),
|
||||
(15990,0,10,23561,3704.382,-5182.113,143.8819,1.535890,6,2500),
|
||||
(15990,0,10,23561,3703.449,-5161.482,143.3858,1.169371,6,2500),
|
||||
(15990,0,10,23561,3705.811,-5165.041,143.4159,5.096361,6,2500),
|
||||
(15990,0,10,23561,3709.738,-5173.312,143.7188,3.385939,6,2500),
|
||||
(15990,0,10,23561,3699.682,-5163.227,143.5664,2.722714,6,2500),
|
||||
(15990,0,10,23561,3705.211,-5171.760,143.5495,6.003932,6,2500),
|
||||
(15990,0,10,23562,3713.235,-5169.006,143.7999,5.096361,6,2500),
|
||||
(15990,0,10,23562,3701.653,-5167.655,143.4993,5.026548,6,2500),
|
||||
(15990,0,10,23562,3692.469,-5163.676,143.8974,4.468043,6,2500),
|
||||
(15990,0,10,23563,3704.658,-5178.262,143.7575,0.541052,6,2500),
|
||||
(15990,0,11,23561,3744.357,-5156.203,143.2584,6.265732,6,2500),
|
||||
(15990,0,11,23561,3749.947,-5158.716,143.2683,5.916666,6,2500),
|
||||
(15990,0,11,23561,3751.198,-5167.764,143.6369,3.979351,6,2500),
|
||||
(15990,0,11,23561,3756.085,-5155.776,143.5713,1.413717,6,2500),
|
||||
(15990,0,11,23561,3753.844,-5153.094,143.3717,2.129302,6,2500),
|
||||
(15990,0,11,23561,3757.361,-5169.438,143.6923,3.595378,6,2500),
|
||||
(15990,0,11,23561,3756.383,-5148.479,143.4877,4.188790,6,2500),
|
||||
(15990,0,11,23561,3746.525,-5152.034,143.2641,1.483530,6,2500),
|
||||
(15990,0,11,23561,3743.098,-5161.342,143.5548,1.396263,6,2500),
|
||||
(15990,0,11,23561,3757.974,-5164.038,143.6063,2.775074,6,2500),
|
||||
(15990,0,11,23562,3753.185,-5160.274,143.3716,0.680678,6,2500),
|
||||
(15990,0,11,23562,3757.442,-5152.137,143.6637,2.565634,6,2500),
|
||||
(15990,0,11,23562,3744.791,-5162.307,143.6026,3.508112,6,2500),
|
||||
(15990,0,11,23563,3750.655,-5162.939,143.4338,3.176499,6,2500);
|
||||
|
||||
-- =============================== --
|
||||
-- Creature hitbox fixes (sniffed) --
|
||||
-- =============================== --
|
||||
UPDATE `creature_model_info` SET `BoundingRadius`=4,`CombatReach`=6 WHERE `DisplayID`=15945;
|
||||
UPDATE `creature_model_info` SET `BoundingRadius`=1.25,`CombatReach`=3.125 WHERE `DisplayID`=16178;
|
||||
UPDATE `creature_model_info` SET `BoundingRadius`=0.25,`CombatReach`=5 WHERE `DisplayID`=16586;
|
||||
|
||||
-- ==================================================== --
|
||||
-- New creature_text for Guardian of Icecrown (sniffed) --
|
||||
-- ==================================================== --
|
||||
DELETE FROM `creature_text` WHERE `entry`=16441;
|
||||
INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`probability`,`BroadcastTextId`,`TextRange`,`comment`) VALUES
|
||||
(16441,0,0,"%s fleets after seeing Kel'thuzad fall!",16,100,12391,3,"Guardian of Icecrown EMOTE_FLEE"),
|
||||
(16441,1,0,"A Guardian of Icecrown enters the fight!",41,100,32804,3,"Guardian of Icecrown EMOTE_APPEAR");
|
||||
|
||||
-- =============================== --
|
||||
-- Fix Void Zone delay from sniffs --
|
||||
-- =============================== --
|
||||
UPDATE `creature_template` SET `BaseAttackTime`=5500 WHERE `entry`=16129;
|
||||
|
||||
-- ====================================== --
|
||||
-- New AI Names & correct movement speeds --
|
||||
-- ====================================== --
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` in (16427,16428,16429,16441,23561,23562,23563) AND `source_type`=0;
|
||||
UPDATE `creature_template` SET `speed_walk`=0.25,`speed_run`=0.285715,`ScriptName`="npc_kelthuzad_skeleton",`AIName`="" WHERE `Entry` in (16427,23561);
|
||||
UPDATE `creature_template` SET `speed_walk`=0.1,`speed_run`=0.114286,`ScriptName`="npc_kelthuzad_banshee",`AIName`="" WHERE `Entry` in (16429,23563);
|
||||
UPDATE `creature_template` SET `speed_walk`=0.7,`speed_run`=0.800002,`ScriptName`="npc_kelthuzad_abomination",`AIName`="" WHERE `Entry` in (16428,23562);
|
||||
UPDATE `creature_template` SET `ScriptName`="npc_kelthuzad_guardian",`AIName`="" WHERE `Entry`=16441;
|
||||
|
||||
-- ========================================================= --
|
||||
-- Trigger aura for Skeleton explosion and Banshee knockback --
|
||||
-- ========================================================= --
|
||||
DELETE FROM `creature_template_addon` WHERE `entry` in (16427,23561,16429,23563,30015,30016,30018,30047);
|
||||
INSERT INTO `creature_template_addon` (`entry`,`auras`) VALUES
|
||||
(16427,"28458"),
|
||||
(30015,"28458"),
|
||||
(23561,"28458"),
|
||||
(30016,"28458"),
|
||||
(16429,"28460"),
|
||||
(30018,"28460"),
|
||||
(23563,"28460"),
|
||||
(30047,"28460");
|
||||
|
||||
-- ======================================================= --
|
||||
-- Sniffed spawn positions for various objects in the room --
|
||||
-- ======================================================= --
|
||||
UPDATE `gameobject` SET `position_x`=3635.355, `position_y`=-5090.291, `position_z`=142.9834, `rotation0`=0, `rotation1`=0, `rotation2`=-0.7743921, `rotation3`=0.632706 WHERE `guid`=150159; -- door
|
||||
UPDATE `gameobject` SET `position_x`=3716.382, `position_y`=-5106.474, `position_z`=141.2899, `rotation0`=0, `rotation1`=0, `rotation2`=-0.6819983, `rotation3`=0.7313538 WHERE `guid`=150160; -- throne
|
||||
UPDATE `gameobject` SET `position_x`=3732.656, `position_y`=-5026.173, `position_z`=152.7197, `rotation0`=0, `rotation1`=0, `rotation2`=-0.7743921, `rotation3`=0.632706 WHERE `guid`=150155; -- portal 01
|
||||
UPDATE `gameobject` SET `position_x`=3784.165, `position_y`=-5062.077, `position_z`=152.5704, `rotation0`=0, `rotation1`=0, `rotation2`=-0.957571, `rotation3`=0.2881973 WHERE `guid`=150156; -- portal 02
|
||||
UPDATE `gameobject` SET `position_x`=3760.238, `position_y`=-5175.256, `position_z`=152.5706, `rotation0`=0, `rotation1`=0, `rotation2`=0.8698883, `rotation3`=0.4932488 WHERE `guid`=150157; -- portal 03
|
||||
UPDATE `gameobject` SET `position_x`=3698.601, `position_y`=-5187.073, `position_z`=152.7199, `rotation0`=0, `rotation1`=0, `rotation2`=0.6149149, `rotation3`=0.7885935 WHERE `guid`=150158; -- portal 04
|
||||
|
||||
-- ================================== --
|
||||
-- Chains spell script (scale factor) --
|
||||
-- ================================== --
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName`="spell_kelthuzad_chains";
|
||||
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
(28410,"spell_kelthuzad_chains");
|
||||
|
||||
-- ================================================= --
|
||||
-- Fix throne to only be interactable after KT death --
|
||||
-- Also fix end of wing portals while we're at it --
|
||||
-- ================================================= --
|
||||
UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=181640;
|
||||
@@ -745,7 +745,7 @@ PlayerAI::TargetedSpell SimpleCharmedPlayerAI::SelectAppropriateCastForSpec()
|
||||
VerifyAndPushSpellCast(spells, SPELL_HAMMER_OF_JUSTICE, TARGET_VICTIM, 6);
|
||||
VerifyAndPushSpellCast(spells, SPELL_HAND_OF_FREEDOM, TARGET_SELF, 3);
|
||||
VerifyAndPushSpellCast(spells, SPELL_HAND_OF_PROTECTION, TARGET_SELF, 1);
|
||||
if (Creature* creatureCharmer = ObjectAccessor::GetCreature(*me, me->GetCharmerGUID()))
|
||||
if (Creature* creatureCharmer = GetCharmer())
|
||||
{
|
||||
if (creatureCharmer->IsDungeonBoss() || creatureCharmer->isWorldBoss())
|
||||
VerifyAndPushSpellCast(spells, SPELL_HAND_OF_SACRIFICE, creatureCharmer, 10);
|
||||
@@ -930,7 +930,7 @@ PlayerAI::TargetedSpell SimpleCharmedPlayerAI::SelectAppropriateCastForSpec()
|
||||
case SPEC_DEATH_KNIGHT_BLOOD:
|
||||
VerifyAndPushSpellCast(spells, SPELL_RUNE_TAP, TARGET_NONE, 2);
|
||||
VerifyAndPushSpellCast(spells, SPELL_HYSTERIA, TARGET_SELF, 5);
|
||||
if (Creature* creatureCharmer = ObjectAccessor::GetCreature(*me, me->GetCharmerGUID()))
|
||||
if (Creature* creatureCharmer = GetCharmer())
|
||||
if (!creatureCharmer->IsDungeonBoss() && !creatureCharmer->isWorldBoss())
|
||||
VerifyAndPushSpellCast(spells, SPELL_HYSTERIA, creatureCharmer, 15);
|
||||
VerifyAndPushSpellCast(spells, SPELL_HEART_STRIKE, TARGET_VICTIM, 2);
|
||||
@@ -1108,7 +1108,7 @@ PlayerAI::TargetedSpell SimpleCharmedPlayerAI::SelectAppropriateCastForSpec()
|
||||
}
|
||||
VerifyAndPushSpellCast(spells, SPELL_TRANQUILITY, TARGET_NONE, 10);
|
||||
VerifyAndPushSpellCast(spells, SPELL_NATURE_SWIFTNESS, TARGET_NONE, 7);
|
||||
if (Creature* creatureCharmer = ObjectAccessor::GetCreature(*me, me->GetCharmerGUID()))
|
||||
if (Creature* creatureCharmer = GetCharmer())
|
||||
{
|
||||
VerifyAndPushSpellCast(spells, SPELL_NOURISH, creatureCharmer, 5);
|
||||
VerifyAndPushSpellCast(spells, SPELL_WILD_GROWTH, creatureCharmer, 5);
|
||||
@@ -1188,7 +1188,7 @@ PlayerAI::TargetedSpell SimpleCharmedPlayerAI::SelectAppropriateCastForSpec()
|
||||
static const float CASTER_CHASE_DISTANCE = 28.0f;
|
||||
void SimpleCharmedPlayerAI::UpdateAI(const uint32 diff)
|
||||
{
|
||||
Creature* charmer = me->GetCharmer() ? me->GetCharmer()->ToCreature() : nullptr;
|
||||
Creature* charmer = GetCharmer();
|
||||
if (!charmer)
|
||||
return;
|
||||
|
||||
|
||||
@@ -30,6 +30,14 @@ class TC_GAME_API PlayerAI : public UnitAI
|
||||
|
||||
void OnCharmed(bool /*apply*/) override { } // charm AI application for players is handled by Unit::SetCharmedBy / Unit::RemoveCharmedBy
|
||||
|
||||
|
||||
Creature* GetCharmer() const
|
||||
{
|
||||
if (ObjectGuid charmerGUID = me->GetCharmerGUID())
|
||||
if (charmerGUID.IsCreature())
|
||||
return ObjectAccessor::GetCreature(*me, charmerGUID);
|
||||
return nullptr;
|
||||
}
|
||||
// helper functions to determine player info
|
||||
// Return values range from 0 (left-most spec) to 2 (right-most spec). If two specs have the same number of talent points, the left-most of those specs is returned.
|
||||
static uint8 GetPlayerSpec(Player const* who);
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -97,6 +97,7 @@ ObjectData const objectData[] =
|
||||
{ GO_NAXX_PORTAL_CONSTRUCT, DATA_NAXX_PORTAL_CONSTRUCT },
|
||||
{ GO_NAXX_PORTAL_PLAGUE, DATA_NAXX_PORTAL_PLAGUE },
|
||||
{ GO_NAXX_PORTAL_MILITARY, DATA_NAXX_PORTAL_MILITARY },
|
||||
{ GO_KELTHUZAD_THRONE, DATA_KELTHUZAD_THRONE },
|
||||
{ 0, 0, }
|
||||
};
|
||||
|
||||
@@ -115,7 +116,6 @@ class instance_naxxramas : public InstanceMapScript
|
||||
LoadDoorData(doorData);
|
||||
LoadObjectData(nullptr, objectData);
|
||||
|
||||
AbominationCount = 0;
|
||||
hadAnubRekhanGreet = false;
|
||||
hadFaerlinaGreet = false;
|
||||
hadThaddiusGreet = false;
|
||||
@@ -230,6 +230,10 @@ class instance_naxxramas : public InstanceMapScript
|
||||
if (GetBossState(BOSS_HORSEMEN) == DONE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GO_KELTHUZAD_THRONE:
|
||||
if (GetBossState(BOSS_KELTHUZAD) == DONE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GO_BIRTH:
|
||||
if (hadSapphironBirth || GetBossState(BOSS_SAPPHIRON) == DONE)
|
||||
{
|
||||
@@ -270,9 +274,6 @@ class instance_naxxramas : public InstanceMapScript
|
||||
if (GameObject* gate = instance->GetGameObject(GothikGateGUID))
|
||||
gate->SetGoState(GOState(value));
|
||||
break;
|
||||
case DATA_ABOMINATION_KILLED:
|
||||
AbominationCount = value;
|
||||
break;
|
||||
case DATA_HAD_ANUBREKHAN_GREET:
|
||||
hadAnubRekhanGreet = (value == 1u);
|
||||
break;
|
||||
@@ -294,8 +295,6 @@ class instance_naxxramas : public InstanceMapScript
|
||||
{
|
||||
switch (id)
|
||||
{
|
||||
case DATA_ABOMINATION_KILLED:
|
||||
return AbominationCount;
|
||||
case DATA_HAD_ANUBREKHAN_GREET:
|
||||
return hadAnubRekhanGreet ? 1u : 0u;
|
||||
case DATA_HAD_FAERLINA_GREET:
|
||||
@@ -418,6 +417,12 @@ class instance_naxxramas : public InstanceMapScript
|
||||
case BOSS_SAPPHIRON:
|
||||
if (state == DONE)
|
||||
events.ScheduleEvent(EVENT_DIALOGUE_SAPPHIRON_KELTHUZAD, Seconds(6));
|
||||
HandleGameObject(KelthuzadDoorGUID, false);
|
||||
break;
|
||||
case BOSS_KELTHUZAD:
|
||||
if (state == DONE)
|
||||
if (GameObject* throne = GetGameObject(DATA_KELTHUZAD_THRONE))
|
||||
throne->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -493,7 +498,6 @@ class instance_naxxramas : public InstanceMapScript
|
||||
case EVENT_DIALOGUE_SAPPHIRON_KELTHUZAD:
|
||||
if (Creature* kelthuzad = instance->GetCreature(KelthuzadGUID))
|
||||
kelthuzad->AI()->Talk(SAY_DIALOGUE_SAPPHIRON_KELTHUZAD);
|
||||
HandleGameObject(KelthuzadDoorGUID, false);
|
||||
events.ScheduleEvent(EVENT_DIALOGUE_SAPPHIRON_LICHKING, Seconds(6));
|
||||
break;
|
||||
case EVENT_DIALOGUE_SAPPHIRON_LICHKING:
|
||||
@@ -616,7 +620,6 @@ class instance_naxxramas : public InstanceMapScript
|
||||
ObjectGuid PortalsGUID[4];
|
||||
ObjectGuid KelthuzadDoorGUID;
|
||||
ObjectGuid LichKingGUID;
|
||||
uint8 AbominationCount;
|
||||
bool hadAnubRekhanGreet;
|
||||
bool hadFaerlinaGreet;
|
||||
bool hadThaddiusGreet;
|
||||
|
||||
@@ -50,12 +50,12 @@ enum Data
|
||||
DATA_HAD_SAPPHIRON_BIRTH,
|
||||
|
||||
DATA_HORSEMEN_CHECK_ACHIEVEMENT_CREDIT,
|
||||
DATA_ABOMINATION_KILLED,
|
||||
|
||||
DATA_NAXX_PORTAL_ARACHNID,
|
||||
DATA_NAXX_PORTAL_CONSTRUCT,
|
||||
DATA_NAXX_PORTAL_PLAGUE,
|
||||
DATA_NAXX_PORTAL_MILITARY
|
||||
DATA_NAXX_PORTAL_MILITARY,
|
||||
DATA_KELTHUZAD_THRONE
|
||||
};
|
||||
|
||||
enum Data64
|
||||
@@ -121,6 +121,7 @@ enum GameObjectsIds
|
||||
GO_KELTHUZAD_PORTAL03 = 181404,
|
||||
GO_KELTHUZAD_PORTAL04 = 181405,
|
||||
GO_KELTHUZAD_TRIGGER = 181444,
|
||||
GO_KELTHUZAD_THRONE = 181640,
|
||||
GO_ROOM_ANUBREKHAN = 181126,
|
||||
GO_PASSAGE_ANUBREKHAN = 181195,
|
||||
GO_PASSAGE_FAERLINA = 194022,
|
||||
@@ -138,14 +139,20 @@ enum GameObjectsIds
|
||||
GO_ROOM_HORSEMEN = 181119,
|
||||
GO_PASSAGE_SAPPHIRON = 181225,
|
||||
GO_ROOM_KELTHUZAD = 181228,
|
||||
|
||||
// End of wing portals
|
||||
GO_ARAC_PORTAL = 181575,
|
||||
GO_PLAG_PORTAL = 181577,
|
||||
GO_MILI_PORTAL = 181578,
|
||||
GO_CONS_PORTAL = 181576,
|
||||
|
||||
// "Glow" effect on center-side portal
|
||||
GO_ARAC_EYE_RAMP = 181212,
|
||||
GO_PLAG_EYE_RAMP = 181211,
|
||||
GO_MILI_EYE_RAMP = 181210,
|
||||
GO_CONS_EYE_RAMP = 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,
|
||||
|
||||
Reference in new issue
Block a user