Open up to server > entity > npcs > following
Then open up FollowPlayer class, replace the method with:
Code:
public void followPlayer()
{
if (getPlayer() == null || getPlayer().verify() == Tools.getTranslated(-19)) return;
int j = getPlayer().verify().absX, k = getPlayer().verify().absY, l = getNPC().verify().absX, m = getNPC().verify().absY;
int followType = 0;
boolean equalX = (j == l), equalY = (k == m), lowerX = (j < l), lowerY = (k < m), higherX = (j > l), higherY = (k > m);
if (followType <= 0)
{
if (equalX) getNPC().verify().moveX = 0;
else if (lowerX) getNPC().verify().moveX = getMove(l, j + 1 + getNPC().verify().getSize());
else if (higherX) getNPC().verify().moveX = getMove(l, j - 1 + getNPC().verify().getSize());
if (equalY && (equalX || lowerX || higherX)) getNPC().verify().moveY = 0;
else if (lowerY && (equalX || lowerX || higherX)) getNPC().verify().moveY = getMove(k, m + 1 + getNPC().verify().getSize());
else if (higherY && (equalX || lowerX || higherX)) getNPC().verify().moveY = getMove(k, m - 1 + getNPC().verify().getSize());
long totalX = Math.round(Math.pow(difference(j, l), 2)), totalY = Math.round(Math.pow(difference(k, m), 2));
if (createdFor > -1) if (totalX > 10 || totalY > 10) getNPC().verify().moveX = getNPC().verify().moveY = -1;
if (lowerY) getNPC().verify().moveY = -1 + (getNPC().verify().getSize()*2);
if (higherY) getNPC().verify().moveY = 1 + (getNPC().verify().getSize()*2);
getNPC().verify().checkProperMovement();
}
getNPC().updateAllNecessary().verifyLast();
}
And then in NPC, go into the verify method, under:
Code:
checkNPCEvents();
fireNPCEvents();
Add this(Remember to update whenever needed):
Code:
getNPCEvents().checkPlayerFollowing(this, 5, -2, 1);
The getSize method will be posted below..
Enjoy!