diff options
| author | Shauren <shauren.trinity@gmail.com> | 2025-10-04 12:13:23 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2025-10-04 12:13:23 +0200 |
| commit | 9827685634c8487936b8e59cdece596c5abbb145 (patch) | |
| tree | be6a4134cf53b0aa77a4d44cf9af5d0677e4d663 /src | |
| parent | afc613fb63a7e0f9c0c3cf7f78afcb2c7ba48e71 (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.cpp | 8 |
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); } |
