Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. public void followPlayer() {
  2. if(Server.playerHandler.players[c.followId] == null || Server.playerHandler.players[c.followId].isDead) {
  3. resetFollow();
  4. return;
  5. }
  6. if(c.freezeTimer > 0) {
  7. return;
  8. }
  9. if (c.isDead || c.playerLevel[3] <= 0)
  10. return;
  11.  
  12. int otherX = Server.playerHandler.players[c.followId].getX();
  13. int otherY = Server.playerHandler.players[c.followId].getY();
  14.  
  15. boolean sameSpot = (c.absX == otherX && c.absY == otherY);
  16.  
  17. boolean withinDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
  18. boolean hallyDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
  19.  
  20. boolean rangeWeaponDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 4);
  21. boolean bowDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 6);
  22. boolean mageDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 7);
  23.  
  24. boolean castingMagic = (c.usingMagic || c.mageFollow || c.autocasting || c.spellId > 0) && mageDistance;
  25. boolean playerRanging = (c.usingOtherRangeWeapons || c.usingRangeWeapon) && rangeWeaponDistance;
  26. boolean playerBowOrCross = (c.usingBow || c.usingCross) && bowDistance;
  27.  
  28. if(!c.goodDistance(otherX, otherY, c.getX(), c.getY(), 25)) {
  29. c.followId = 0;
  30. resetFollow();
  31. return;
  32. }
  33. if(c.goodDistance(otherX, otherY, c.getX(), c.getY(), 1)) {
  34. if (otherX != c.getX() && otherY != c.getY()) {
  35. stopDiagonal(otherX, otherY);
  36. return;
  37. }
  38. }
  39. if (sameSpot) {
  40. walkTo(0, 1);
  41. }
  42.  
  43. c.faceUpdate(c.followId+32768);
  44.  
  45. if (!sameSpot) {
  46. if(c.playerIndex > 0 && !c.usingSpecial && c.inWild()) {
  47. if(c.usingSpecial && (playerRanging || playerBowOrCross)) {
  48. c.stopMovement();
  49. return;
  50. }
  51. if(castingMagic || playerRanging || playerBowOrCross) {
  52. c.stopMovement();
  53. return;
  54. }
  55. if(c.getCombat().usingHally() && hallyDistance) {
  56. c.stopMovement();
  57. return;
  58. }
  59. }
  60. }
  61.  
  62. c.outStream.createFrame(174);
  63. boolean followPlayer = c.followId > 0;
  64. if (c.freezeTimer <= 0){
  65. c.outStream.writeWord(c.followId);
  66. } else {
  67. c.outStream.writeWord(0);
  68. }
  69. c.outStream.writeByte(1);
  70. if(c.playerIndex > 0) {
  71. if (playerBowOrCross) {
  72. c.followDistance = 5;
  73. } else if (playerRanging) {
  74. c.followDistance = 3;
  75. } else if (castingMagic){
  76. c.followDistance = 6;
  77. } else {
  78. c.followDistance = 1;
  79. }
  80. }
  81. c.outStream.writeWord(c.followDistance);
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement