From 43377b4daf8aac7f603bf293171a7a914dbcc5fa Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 19 Dec 2010 00:01:22 +0100 Subject: 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 --- src/server/game/Entities/Player/Player.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/server/game/Entities') 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()); -- cgit v1.2.3