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 | |
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')
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 7 | ||||
-rwxr-xr-x | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 2 |
2 files changed, 8 insertions, 1 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()); 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<AuraEffect const *>(this), aurApp); + bool prevented = GetBase()->CallScriptEffectPeriodicHandlers(this, aurApp); if (prevented) return; |