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 +++++++ src/server/game/Spells/Auras/SpellAuraEffects.cpp | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'src') 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()); diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index b0edaf904b8..a7d279a77ee 100755 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -1241,7 +1241,7 @@ void AuraEffect::SendTickImmune(Unit * target, Unit *caster) const void AuraEffect::PeriodicTick(AuraApplication * aurApp, Unit * caster) const { - bool prevented = GetBase()->CallScriptEffectPeriodicHandlers(const_cast(this), aurApp); + bool prevented = GetBase()->CallScriptEffectPeriodicHandlers(this, aurApp); if (prevented) return; -- cgit v1.2.3