aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAokromes <Aokromes@users.noreply.github.com>2016-06-18 14:21:43 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-01-29 21:51:06 +0100
commit91aaf95f5190dfc7ad28b48b62ac7301e840ccbd (patch)
tree42ab06c74aeda31645c0490e956c19669bfc8b0c
parent416bcdd8523439e12d913a1b14d36f8693852979 (diff)
Core/Pet: Fix pet at rest distance (#17206)
* Core/Pet: Fix pet at rest distance By MrSmite, closes #10865 * Update TargetedMovementGenerator.cpp (cherry picked from commit b2effe4460fac4f10168c035441997e4d9826328)
-rwxr-xr-xsrc/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
index 04f4c9edb63..7f89b56988b 100755
--- a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
@@ -73,8 +73,8 @@ void TargetedMovementGeneratorMedium<T, D>::_setTargetLocation(T* owner, bool up
// doing a "dance" while fighting
if (owner->IsPet() && i_target->GetTypeId() == TYPEID_PLAYER)
{
- dist = i_target->GetCombatReach();
- size = i_target->GetCombatReach() - i_target->GetObjectSize();
+ dist = 1.0f; //i_target->GetCombatReach();
+ size = 1.0f; //i_target->GetCombatReach() - i_target->GetObjectSize();
}
else
{
@@ -168,8 +168,15 @@ bool TargetedMovementGeneratorMedium<T, D>::DoUpdate(T* owner, uint32 time_diff)
if (i_recheckDistance.Passed())
{
i_recheckDistance.Reset(100);
+
//More distance let have better performance, less distance let have more sensitive reaction at target move.
- float allowed_dist = owner->GetCombatReach() + sWorld->getRate(RATE_TARGET_POS_RECALCULATION_RANGE);
+ float allowed_dist = 0.0f;
+
+ if (owner->IsPet() && (owner->GetCharmerOrOwnerGUID() == i_target->GetGUID()))
+ allowed_dist = 1.0f; // pet following owner
+ else
+ allowed_dist = owner->GetCombatReach() + sWorld->getRate(RATE_TARGET_POS_RECALCULATION_RANGE);
+
G3D::Vector3 dest = owner->movespline->FinalDestination();
if (owner->movespline->onTransport)
if (TransportBase* transport = owner->GetDirectTransport())