diff options
| author | Shauren <none@none> | 2010-12-19 00:01:22 +0100 |
|---|---|---|
| committer | Shauren <none@none> | 2010-12-19 00:01:22 +0100 |
| commit | 43377b4daf8aac7f603bf293171a7a914dbcc5fa (patch) | |
| tree | 96885b35275dc23eedc55045fddb21b935c6bb71 /src/server/game/Entities/Player | |
| parent | a8214a682a09312a547fd84fd710826803b38efb (diff) | |
Core/Players: Remove player from transport before teleporting to graveyard, will fix infinite recursion when trying to access unavailable map
Core/Auras: Removed unneeded typecasting
Closes issue #4862.
--HG--
branch : trunk
Diffstat (limited to 'src/server/game/Entities/Player')
| -rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index b1e4435c55a..13b8f2229f3 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -1845,7 +1845,14 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati sLog.outDebug("Player %s using client without required expansion tried teleport to non accessible map %u", GetName(), mapid); if (GetTransport()) + { + m_transport->RemovePassenger(this); + m_transport = NULL; + m_movementInfo.t_pos.Relocate(0.0f, 0.0f, 0.0f, 0.0f); + m_movementInfo.t_time = 0; + m_movementInfo.t_seat = -1; RepopAtGraveyard(); // teleport to near graveyard if on transport, looks blizz like :) + } SendTransferAborted(mapid, TRANSFER_ABORT_INSUF_EXPAN_LVL, mEntry->Expansion()); |
