diff options
| author | ModoX <moardox@gmail.com> | 2023-07-21 18:55:20 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-21 18:55:20 +0200 |
| commit | 4e7508db7b70b2b79ee1fc77a1899d08173ffc62 (patch) | |
| tree | c9a2f50c6654be7d0b90974132fe8b69bc187ffa /src/server/game/Entities/AreaTrigger | |
| parent | 5069f0e3a7a5feeab1b9540433ac7bd8bd9e0927 (diff) | |
Core/AreaTriggers: Teleport to current instance entrance when entering instances via areatrigger entity (#29115)
Diffstat (limited to 'src/server/game/Entities/AreaTrigger')
| -rw-r--r-- | src/server/game/Entities/AreaTrigger/AreaTrigger.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp index fb5e3f67e49..82716129e28 100644 --- a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp +++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp @@ -842,8 +842,17 @@ void AreaTrigger::DoActions(Unit* unit) case AREATRIGGER_ACTION_TELEPORT: { if (WorldSafeLocsEntry const* safeLoc = sObjectMgr->GetWorldSafeLoc(action.Param)) + { if (Player* player = caster->ToPlayer()) + { + if (player->GetMapId() != safeLoc->Loc.GetMapId()) + { + if (WorldSafeLocsEntry const* instanceEntrance = player->GetInstanceEntrance(safeLoc->Loc.GetMapId())) + safeLoc = instanceEntrance; + } player->TeleportTo(safeLoc->Loc); + } + } break; } default: |
