Scripts/Icecrown Citadel: Remove encounter specific auras when Blood-Queen Lana'thel fight ends (prevents exploits with Essence of the Blood Queen
Closes #6610
This commit is contained in:
@@ -149,7 +149,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
|
|||||||
events.ScheduleEvent(EVENT_SWARMING_SHADOWS, 30500, EVENT_GROUP_NORMAL);
|
events.ScheduleEvent(EVENT_SWARMING_SHADOWS, 30500, EVENT_GROUP_NORMAL);
|
||||||
events.ScheduleEvent(EVENT_TWILIGHT_BLOODBOLT, urand(20000, 25000), EVENT_GROUP_NORMAL);
|
events.ScheduleEvent(EVENT_TWILIGHT_BLOODBOLT, urand(20000, 25000), EVENT_GROUP_NORMAL);
|
||||||
events.ScheduleEvent(EVENT_AIR_PHASE, 124000 + uint32(Is25ManRaid() ? 3000 : 0));
|
events.ScheduleEvent(EVENT_AIR_PHASE, 124000 + uint32(Is25ManRaid() ? 3000 : 0));
|
||||||
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_UNCONTROLLABLE_FRENZY);
|
CleanAuras();
|
||||||
me->SetSpeed(MOVE_FLIGHT, 0.642857f, true);
|
me->SetSpeed(MOVE_FLIGHT, 0.642857f, true);
|
||||||
_offtank = NULL;
|
_offtank = NULL;
|
||||||
_vampires.clear();
|
_vampires.clear();
|
||||||
@@ -170,6 +170,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
|
|||||||
DoZoneInCombat();
|
DoZoneInCombat();
|
||||||
Talk(SAY_AGGRO);
|
Talk(SAY_AGGRO);
|
||||||
instance->SetBossState(DATA_BLOOD_QUEEN_LANA_THEL, IN_PROGRESS);
|
instance->SetBossState(DATA_BLOOD_QUEEN_LANA_THEL, IN_PROGRESS);
|
||||||
|
CleanAuras();
|
||||||
|
|
||||||
DoCast(me, SPELL_SHROUD_OF_SORROW, true);
|
DoCast(me, SPELL_SHROUD_OF_SORROW, true);
|
||||||
DoCast(me, SPELL_FRENZIED_BLOODTHIRST_VISUAL, true);
|
DoCast(me, SPELL_FRENZIED_BLOODTHIRST_VISUAL, true);
|
||||||
@@ -180,15 +181,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
|
|||||||
{
|
{
|
||||||
_JustDied();
|
_JustDied();
|
||||||
Talk(SAY_DEATH);
|
Talk(SAY_DEATH);
|
||||||
instance->DoRemoveAurasDueToSpellOnPlayers(ESSENCE_OF_BLOOD_QUEEN);
|
CleanAuras();
|
||||||
instance->DoRemoveAurasDueToSpellOnPlayers(ESSENCE_OF_BLOOD_QUEEN_PLR);
|
|
||||||
instance->DoRemoveAurasDueToSpellOnPlayers(FRENZIED_BLOODTHIRST);
|
|
||||||
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_UNCONTROLLABLE_FRENZY);
|
|
||||||
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_DAMAGE);
|
|
||||||
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_VISUAL);
|
|
||||||
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_DUMMY);
|
|
||||||
instance->DoRemoveAurasDueToSpellOnPlayers(DELIRIOUS_SLASH);
|
|
||||||
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_PACT_OF_THE_DARKFALLEN);
|
|
||||||
// Blah, credit the quest
|
// Blah, credit the quest
|
||||||
if (_creditBloodQuickening)
|
if (_creditBloodQuickening)
|
||||||
{
|
{
|
||||||
@@ -207,6 +200,19 @@ class boss_blood_queen_lana_thel : public CreatureScript
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CleanAuras()
|
||||||
|
{
|
||||||
|
instance->DoRemoveAurasDueToSpellOnPlayers(ESSENCE_OF_BLOOD_QUEEN);
|
||||||
|
instance->DoRemoveAurasDueToSpellOnPlayers(ESSENCE_OF_BLOOD_QUEEN_PLR);
|
||||||
|
instance->DoRemoveAurasDueToSpellOnPlayers(FRENZIED_BLOODTHIRST);
|
||||||
|
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_UNCONTROLLABLE_FRENZY);
|
||||||
|
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_DAMAGE);
|
||||||
|
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_VISUAL);
|
||||||
|
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_DUMMY);
|
||||||
|
instance->DoRemoveAurasDueToSpellOnPlayers(DELIRIOUS_SLASH);
|
||||||
|
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_PACT_OF_THE_DARKFALLEN);
|
||||||
|
}
|
||||||
|
|
||||||
void DoAction(int32 const action)
|
void DoAction(int32 const action)
|
||||||
{
|
{
|
||||||
if (action != ACTION_KILL_MINCHAR)
|
if (action != ACTION_KILL_MINCHAR)
|
||||||
@@ -227,6 +233,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
|
|||||||
void EnterEvadeMode()
|
void EnterEvadeMode()
|
||||||
{
|
{
|
||||||
_EnterEvadeMode();
|
_EnterEvadeMode();
|
||||||
|
CleanAuras();
|
||||||
if (_killMinchar)
|
if (_killMinchar)
|
||||||
{
|
{
|
||||||
_killMinchar = false;
|
_killMinchar = false;
|
||||||
|
|||||||
@@ -631,9 +631,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
|
|||||||
_events.ScheduleEvent(EVENT_OUTRO_HORDE_4, 24000); // cast
|
_events.ScheduleEvent(EVENT_OUTRO_HORDE_4, 24000); // cast
|
||||||
_events.ScheduleEvent(EVENT_OUTRO_HORDE_5, 30000); // move
|
_events.ScheduleEvent(EVENT_OUTRO_HORDE_5, 30000); // move
|
||||||
me->SetDisableGravity(false);
|
me->SetDisableGravity(false);
|
||||||
me->SendMovementFlagUpdate();
|
me->GetMotionMaster()->MoveFall();
|
||||||
me->Relocate(me->GetPositionX(), me->GetPositionY(), 539.2917f);
|
|
||||||
me->MonsterMoveWithSpeed(me->GetPositionX(), me->GetPositionY(), 539.2917f, 0.0f);
|
|
||||||
for (std::list<Creature*>::iterator itr = _guardList.begin(); itr != _guardList.end(); ++itr)
|
for (std::list<Creature*>::iterator itr = _guardList.begin(); itr != _guardList.end(); ++itr)
|
||||||
(*itr)->AI()->DoAction(ACTION_DESPAWN);
|
(*itr)->AI()->DoAction(ACTION_DESPAWN);
|
||||||
break;
|
break;
|
||||||
@@ -838,9 +836,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
|
|||||||
me->RemoveAurasDueToSpell(SPELL_GRIP_OF_AGONY);
|
me->RemoveAurasDueToSpell(SPELL_GRIP_OF_AGONY);
|
||||||
Talk(SAY_OUTRO_ALLIANCE_1);
|
Talk(SAY_OUTRO_ALLIANCE_1);
|
||||||
me->SetDisableGravity(false);
|
me->SetDisableGravity(false);
|
||||||
me->SendMovementFlagUpdate();
|
me->GetMotionMaster()->MoveFall();
|
||||||
me->Relocate(me->GetPositionX(), me->GetPositionY(), 539.2917f);
|
|
||||||
me->MonsterMoveWithSpeed(me->GetPositionX(), me->GetPositionY(), 539.2917f, 0.0f);
|
|
||||||
for (std::list<Creature*>::iterator itr = _guardList.begin(); itr != _guardList.end(); ++itr)
|
for (std::list<Creature*>::iterator itr = _guardList.begin(); itr != _guardList.end(); ++itr)
|
||||||
(*itr)->AI()->DoAction(ACTION_DESPAWN);
|
(*itr)->AI()->DoAction(ACTION_DESPAWN);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user