Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void followPlayer() {
- if(Server.playerHandler.players[c.followId] == null || Server.playerHandler.players[c.followId].isDead) {
- resetFollow();
- return;
- }
- if(c.freezeTimer > 0) {
- return;
- }
- if (c.isDead || c.playerLevel[3] <= 0)
- return;
- int otherX = Server.playerHandler.players[c.followId].getX();
- int otherY = Server.playerHandler.players[c.followId].getY();
- boolean sameSpot = (c.absX == otherX && c.absY == otherY);
- boolean withinDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
- boolean hallyDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
- boolean rangeWeaponDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 4);
- boolean bowDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 6);
- boolean mageDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 7);
- boolean castingMagic = (c.usingMagic || c.mageFollow || c.autocasting || c.spellId > 0) && mageDistance;
- boolean playerRanging = (c.usingOtherRangeWeapons || c.usingRangeWeapon) && rangeWeaponDistance;
- boolean playerBowOrCross = (c.usingBow || c.usingCross) && bowDistance;
- if(!c.goodDistance(otherX, otherY, c.getX(), c.getY(), 25)) {
- c.followId = 0;
- resetFollow();
- return;
- }
- if(c.goodDistance(otherX, otherY, c.getX(), c.getY(), 1)) {
- if (otherX != c.getX() && otherY != c.getY()) {
- stopDiagonal(otherX, otherY);
- return;
- }
- }
- if (sameSpot) {
- walkTo(0, 1);
- }
- c.faceUpdate(c.followId+32768);
- if (!sameSpot) {
- if(c.playerIndex > 0 && !c.usingSpecial && c.inWild()) {
- if(c.usingSpecial && (playerRanging || playerBowOrCross)) {
- c.stopMovement();
- return;
- }
- if(castingMagic || playerRanging || playerBowOrCross) {
- c.stopMovement();
- return;
- }
- if(c.getCombat().usingHally() && hallyDistance) {
- c.stopMovement();
- return;
- }
- }
- }
- c.outStream.createFrame(174);
- boolean followPlayer = c.followId > 0;
- if (c.freezeTimer <= 0){
- c.outStream.writeWord(c.followId);
- } else {
- c.outStream.writeWord(0);
- }
- c.outStream.writeByte(1);
- if(c.playerIndex > 0) {
- if (playerBowOrCross) {
- c.followDistance = 5;
- } else if (playerRanging) {
- c.followDistance = 3;
- } else if (castingMagic){
- c.followDistance = 6;
- } else {
- c.followDistance = 1;
- }
- }
- c.outStream.writeWord(c.followDistance);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement