fix(Core/Movement): Don't take height into consideration for follow teleports (#24690)
This commit is contained in:
@@ -656,7 +656,7 @@ bool FollowMovementGenerator<T>::DoUpdate(T* owner, uint32 time_diff)
|
|||||||
// Teleport if stuck and too far away
|
// Teleport if stuck and too far away
|
||||||
if (cOwner && isFollowingPlayer)
|
if (cOwner && isFollowingPlayer)
|
||||||
{
|
{
|
||||||
float distance = owner->GetDistance(target);
|
float const distance = owner->GetDistance2d(target);
|
||||||
if (distance > 20.f)
|
if (distance > 20.f)
|
||||||
{
|
{
|
||||||
float teleX;
|
float teleX;
|
||||||
@@ -664,6 +664,7 @@ bool FollowMovementGenerator<T>::DoUpdate(T* owner, uint32 time_diff)
|
|||||||
float teleZ;
|
float teleZ;
|
||||||
|
|
||||||
target->GetClosePoint(teleX, teleY, teleZ, owner->GetCombatReach());
|
target->GetClosePoint(teleX, teleY, teleZ, owner->GetCombatReach());
|
||||||
|
teleZ = owner->GetMapHeight(teleX, teleY, teleZ);
|
||||||
owner->NearTeleportTo(teleX, teleY, teleZ, target->GetOrientation());
|
owner->NearTeleportTo(teleX, teleY, teleZ, target->GetOrientation());
|
||||||
_lastTargetPosition.reset();
|
_lastTargetPosition.reset();
|
||||||
_lastPredictedPosition.reset();
|
_lastPredictedPosition.reset();
|
||||||
|
|||||||
Reference in New Issue
Block a user