aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-10-04 12:13:23 +0200
committerShauren <shauren.trinity@gmail.com>2025-10-04 12:13:23 +0200
commit9827685634c8487936b8e59cdece596c5abbb145 (patch)
treebe6a4134cf53b0aa77a4d44cf9af5d0677e4d663 /src
parentafc613fb63a7e0f9c0c3cf7f78afcb2c7ba48e71 (diff)
Core/AreaTrigger: Fix crashes happening if areatrigger is despawned in OnUnitEnter script
Closes #31340
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/AreaTrigger/AreaTrigger.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
index 74aa8596a58..1ed4b4d06ca 100644
--- a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
+++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
@@ -894,6 +894,14 @@ void AreaTrigger::HandleUnitEnter(Unit* unit)
DoActions(unit);
_ai->OnUnitEnter(unit);
+
+ // OnUnitEnter script can despawn this areatrigger
+ if (!IsInWorld())
+ return;
+
+ // Register areatrigger in Unit after actions/scripts to allow them to determine
+ // if the unit is in one or more areatriggers with the same id
+ // without forcing every script to have additional logic excluding this areatrigger
unit->EnterAreaTrigger(this);
}