diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index bc8fe8205..96789d934 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -1357,6 +1357,9 @@ bool Player::TeleportTo(TeleportLocation const& teleportLocation, TeleportToOpti } else { + if (IsBeingTeleportedFar()) + return false; + if (GetClass() == CLASS_DEATH_KNIGHT && GetMapId() == 609 && !IsGameMaster() && !HasSpell(50977)) { SendTransferAborted(teleportLocation.Location.GetMapId(), TRANSFER_ABORT_UNIQUE_MESSAGE, 1); @@ -1385,11 +1388,11 @@ bool Player::TeleportTo(TeleportLocation const& teleportLocation, TeleportToOpti SetSemaphoreTeleportNear(false); //setup delayed teleport flag SetDelayedTeleportFlag(IsCanDelayTeleport()); + SetSemaphoreTeleportFar(true); //if teleport spell is cast in Unit::Update() func //then we need to delay it until update process will be finished if (IsHasDelayedTeleport()) { - SetSemaphoreTeleportFar(true); //lets save teleport destination for player m_teleport_dest = teleportLocation; m_teleport_options = options;