From f8b148c3346e6d5017bf3b044cc36bce32c0cf45 Mon Sep 17 00:00:00 2001 From: ariel- Date: Tue, 2 Jan 2018 03:18:22 -0300 Subject: Core/Scripts: fixed npc immunity flags during Harbinger Skyriss encounter - Added missing _Reset - Properly register Skyriss summons in SummonList Closes #21154 Who ordered up an extra large can of whoop-ass? --- src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp | 4 ++++ .../Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp | 12 ++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp index 594ee184245..b62c1fcfc54 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp @@ -107,7 +107,10 @@ class npc_millhouse_manastorm : public CreatureScript Initialize(); if (instance->GetData(DATA_WARDEN_2) == DONE) + { Init = true; + me->SetImmuneToNPC(false); + } if (instance->GetBossState(DATA_HARBINGER_SKYRISS) == DONE) Talk(SAY_COMPLETE); @@ -179,6 +182,7 @@ class npc_millhouse_manastorm : public CreatureScript case 7: instance->SetData(DATA_WARDEN_2, DONE); Init = true; + me->SetImmuneToNPC(false); break; } ++Phase; diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp index 30c4aa89cf2..b60a76de4c6 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp @@ -99,9 +99,9 @@ class boss_harbinger_skyriss : public CreatureScript void Reset() override { - if (!Intro) - me->SetImmuneToPC(true); + _Reset(); + me->SetImmuneToAll(!Intro); Initialize(); } @@ -132,6 +132,9 @@ class boss_harbinger_skyriss : public CreatureScript if (me->GetVictim()) if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) summon->AI()->AttackStart(target); + + summons.Summon(summon); + summon->SetImmuneToAll(false); } void KilledUnit(Unit* victim) override @@ -183,7 +186,7 @@ class boss_harbinger_skyriss : public CreatureScript Intro_Timer = 3000; break; case 3: - me->SetImmuneToPC(false); + me->SetImmuneToAll(false); Intro = true; break; } @@ -287,7 +290,8 @@ class boss_harbinger_skyriss_illusion : public CreatureScript void Reset() override { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetImmuneToPC(false); + me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE); } void JustEngagedWith(Unit* /*who*/) override { } -- cgit v1.2.3