From 433b9afe9b83fab2066462bbf5c0eb796d803d2f Mon Sep 17 00:00:00 2001 From: blinkysc <37940565+blinkysc@users.noreply.github.com> Date: Sun, 29 Mar 2026 04:31:18 -0500 Subject: [PATCH] fix(Core/Scripts): Fix Aeranas reset loop during quest Avruu's Orb (#25290) Co-authored-by: blinkysc --- .../Outland/zone_hellfire_peninsula.cpp | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp index 140ef72fe..8953d3298 100644 --- a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp +++ b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp @@ -83,6 +83,9 @@ public: void Reset() override { + if (_defeated) + return; + faction_Timer = 8000; envelopingWinds_Timer = 9000; shock_Timer = 5000; @@ -93,6 +96,15 @@ public: Talk(SAY_SUMMON); } + void JustReachedHome() override + { + if (_defeated) + { + Talk(SAY_FREE); + me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); + } + } + void UpdateAI(uint32 diff) override { if (faction_Timer) @@ -110,12 +122,11 @@ public: if (HealthBelowPct(30)) { - me->SetFaction(FACTION_FRIENDLY); - me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); + _defeated = true; me->RemoveAllAuras(); - me->GetThreatMgr().ClearAllThreat(); + me->SetFaction(FACTION_FRIENDLY); me->CombatStop(true); - Talk(SAY_FREE); + me->GetThreatMgr().ClearAllThreat(); return; } @@ -140,6 +151,7 @@ public: uint32 faction_Timer; uint32 envelopingWinds_Timer; uint32 shock_Timer; + bool _defeated = false; }; CreatureAI* GetAI(Creature* creature) const override