diff --git a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp index 915124257..7c979f98e 100644 --- a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp @@ -656,7 +656,7 @@ bool FollowMovementGenerator::DoUpdate(T* owner, uint32 time_diff) // Teleport if stuck and too far away if (cOwner && isFollowingPlayer) { - float distance = owner->GetDistance(target); + float const distance = owner->GetDistance2d(target); if (distance > 20.f) { float teleX; @@ -664,6 +664,7 @@ bool FollowMovementGenerator::DoUpdate(T* owner, uint32 time_diff) float teleZ; target->GetClosePoint(teleX, teleY, teleZ, owner->GetCombatReach()); + teleZ = owner->GetMapHeight(teleX, teleY, teleZ); owner->NearTeleportTo(teleX, teleY, teleZ, target->GetOrientation()); _lastTargetPosition.reset(); _lastPredictedPosition.reset();