Advertisement
Guest User

Untitled

a guest
Sep 17th, 2015
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.91 KB | None | 0 0
  1. package scripts.runecrafting.abysscrafter;
  2.  
  3. import org.tribot.api.General;
  4. import org.tribot.api.util.ABCUtil;
  5. import org.tribot.api2007.Camera;
  6. import org.tribot.api2007.Combat;
  7. import org.tribot.api2007.Game;
  8. import org.tribot.api2007.NPCs;
  9. import org.tribot.api2007.Player;
  10. import org.tribot.api2007.Walking;
  11. import org.tribot.api2007.types.RSNPC;
  12. import org.tribot.api2007.types.RSObject;
  13.  
  14. import scripts.methods.Methods;
  15.  
  16. public class Obstacles {
  17.  
  18. private Main main;
  19.  
  20. private RSObject obstacle;
  21.  
  22. public Obstacles(Main main) {
  23. setMain(main);
  24. }
  25.  
  26. public void setMain(Main main) {
  27. this.main = main;
  28. }
  29.  
  30. public Main getMain() {
  31. return main;
  32. }
  33.  
  34. public boolean isHealthLow() {
  35. return Combat.getHP() <= (Combat.getMaxHP() * 0.3);
  36. }
  37.  
  38. public boolean findClosest() {
  39. if(Locations.isInsideInnerRing()) {
  40. if(getMain().pouchNeedsRepair()) {
  41. getMain().setState(State.REPAIRING_POUCH);
  42. return false;
  43. } else {
  44. getMain().setState(State.ENTERING_RIFT);
  45. return false;
  46. }
  47. }
  48. if(isHealthLow()) {
  49. int teles = getMain().getEmergencyTeleports();
  50. getMain().setEmergencyTeleports(teles + 1);
  51. getMain().setState(State.TELEPORTING_TO_HOUSE);
  52. return false;
  53. }
  54. if(getObstacle() != null) {
  55. return false;
  56. }
  57. RSObject obstacle = Methods.findObjectByModelPoints(new int[] { Constants.GAP, Constants.ROCKS/*, Constants.BOIL, Constants.BLOCKAGE, Constants.EYES*/ });
  58. if(obstacle != null) {
  59.  
  60. setObstacle(obstacle);
  61. if(Methods.distanceTo(getMain(), obstacle.getPosition()) > 4) {
  62. Walking.walkTo(obstacle);
  63. if(!obstacle.isOnScreen())
  64. Camera.turnToTile(obstacle);
  65. }
  66. return true;
  67.  
  68. } else {
  69. walkOutterRing();
  70. }
  71. return false;
  72. }
  73.  
  74. private int outterRingPath = 0;
  75.  
  76. private boolean walkOutterRing() {
  77. if(isHealthLow()) {
  78. int teles = getMain().getEmergencyTeleports();
  79. getMain().setEmergencyTeleports(teles + 1);
  80. getMain().setState(State.TELEPORTING_TO_HOUSE);
  81. return false;
  82. }
  83. switch(getOutterRingPath()) {
  84. case 0:
  85. if(!Walking.walkPath(Constants.OUTTER_RING_PATH_1)) {
  86. setOutterRingPath(2);
  87. } else {
  88. setOutterRingPath(1);
  89. }
  90. break;
  91. case 1:
  92. Walking.walkPath(Constants.OUTTER_RING_PATH_1);
  93. break;
  94. case 2:
  95. Walking.walkPath(Constants.OUTTER_RING_PATH_2);
  96. break;
  97.  
  98. }
  99. return false;
  100. }
  101.  
  102. private long last_idle_time = 0L;
  103. private boolean checkIdle = false;
  104.  
  105. public boolean passObstacle() {
  106. if(!Player.isMoving() && !checkIdle) {
  107. last_idle_time = System.currentTimeMillis();
  108. checkIdle = true;
  109. }
  110. if(!Player.isMoving() && System.currentTimeMillis() - last_idle_time > 4000) {
  111. setObstacle(null);
  112. checkIdle = false;
  113. findClosest();
  114. return passObstacle();
  115. }
  116. if(Locations.isInsideInnerRing() && getMonsterDistance() > 2) {
  117. if(getMain().pouchNeedsRepair()) {
  118. getMain().setState(State.REPAIRING_POUCH);
  119. return false;
  120. } else {
  121. getMain().setState(State.ENTERING_RIFT);
  122. return false;
  123. }
  124. }
  125. if(isHealthLow()) {
  126. int teles = getMain().getEmergencyTeleports();
  127. getMain().setEmergencyTeleports(teles + 1);
  128. getMain().setState(State.TELEPORTING_TO_HOUSE);
  129. return false;
  130. }
  131. if(getObstacle() == null) {
  132. findClosest();
  133. } else {
  134. if(getObstacle().getPosition().distanceTo(Player.getPosition()) <= 2) {
  135. Camera.turnToTile(getObstacle());
  136. } else {
  137. if(!Player.isMoving())
  138. Walking.walkTo(getObstacle());
  139. }
  140. getMain().sleep(250, 500);
  141. boolean safe = false;
  142. String[] actions = getObstacle().getDefinition().getActions();
  143. for(int i = 0; i < actions.length; i++) {
  144. if(actions[i].contains("Squeeze-through")
  145. || actions[i].contains("Mine")) {
  146. safe = true;
  147. }
  148. }
  149. if(!safe) {
  150. setObstacle(null);
  151. return false;
  152. }
  153. int distance = Methods.distanceTo(getMain(), getObstacle().getPosition());
  154. if(distance <= 4) {
  155. getObstacle().click("Squeeze-through", "Mine");
  156. General.sleep(abc.DELAY_TRACKER.SWITCH_OBJECT_COMBAT.next());
  157. abc.DELAY_TRACKER.SWITCH_OBJECT_COMBAT.reset();
  158. }
  159. //getMain().sleep(General.random(50, 200), General.random(250, 350));
  160. }
  161. return false;
  162. }
  163.  
  164. private ABCUtil abc = new ABCUtil();
  165.  
  166. public int getMonsterDistance() {
  167. RSNPC monster = getClosestMonster();
  168. if(monster != null) {
  169. return monster.getPosition().distanceTo(Player.getPosition());
  170. }
  171. return 64;
  172. }
  173.  
  174. private RSNPC getClosestMonster() {
  175. RSNPC[] npc = NPCs.findNearest("Abyssal guardian", "Abyssal walker", "Abyssal leech");
  176. if(npc != null && npc.length > 0) {
  177. return npc[0];
  178. }
  179. return null;
  180. }
  181.  
  182. public void setObstacle(RSObject obstacle) {
  183. this.obstacle = obstacle;
  184. }
  185.  
  186. public RSObject getObstacle() {
  187. return obstacle;
  188. }
  189.  
  190. public void setOutterRingPath(int outterRingPath) {
  191. this.outterRingPath = outterRingPath;
  192. }
  193.  
  194. public int getOutterRingPath() {
  195. return outterRingPath;
  196. }
  197.  
  198. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement