Advertisement
Guest User

Untitled

a guest
Jul 4th, 2016
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.55 KB | None | 0 0
  1. package scripts;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Font;
  5. import java.awt.Graphics;
  6.  
  7. import javax.swing.JOptionPane;
  8.  
  9. import org.tribot.api.General;
  10. import org.tribot.api.Timing;
  11. import org.tribot.api.input.Mouse;
  12. import org.tribot.api.types.generic.Condition;
  13. import org.tribot.api2007.Banking;
  14. import org.tribot.api2007.Game;
  15. import org.tribot.api2007.Inventory;
  16. import org.tribot.api2007.NPCs;
  17. import org.tribot.api2007.Options;
  18. import org.tribot.api2007.Player;
  19. import org.tribot.api2007.Skills;
  20. import org.tribot.api2007.Walking;
  21. import org.tribot.api2007.WebWalking;
  22. import org.tribot.api2007.ext.Filters;
  23. import org.tribot.api2007.types.RSArea;
  24. import org.tribot.api2007.types.RSItem;
  25. import org.tribot.api2007.types.RSNPC;
  26. import org.tribot.api2007.types.RSTile;
  27. import org.tribot.script.Script;
  28. import org.tribot.script.ScriptManifest;
  29. import org.tribot.script.interfaces.Painting;
  30.  
  31. @ScriptManifest(authors = { "Godspower33" }, category = "Tools", name = "Gods Crab Runner", description = "Runs around and wakes up crabs")
  32. public class CrabRunner extends Script implements Painting {
  33.  
  34. // ----- RSAreas ------ \\
  35. private static RSArea CAMMY_TELE = new RSArea(new RSTile(2753, 3474, 0), new RSTile(2761, 3481, 0)); // Area of cammy tele spot
  36. private static RSArea CAMMY_BANK = new RSArea(new RSTile(2724, 3490, 0), new RSTile(2727, 3492, 0)); // Bank area to walk to
  37. private static RSArea CAMMY_BANK_SPOT = new RSArea(new RSTile(2729, 3489, 0), new RSTile(2722, 3495, 0)); // Entire cammy bank area
  38. private static RSArea WEST_CRABS = new RSArea(new RSTile(2662, 3711, 0), new RSTile(2688, 3737, 0)); // West crab area
  39. private static RSArea REFRESH_AREA = new RSArea(new RSTile(2676, 3685, 0), new RSTile(2670, 3688, 0)); // Refresh area for crabs
  40.  
  41. // ----- RSTiles ------ \\
  42. private RSTile walkToSpot = new RSTile(2681, 3721, 0); // Walk to west crab spot
  43.  
  44. // ------- IDS ------- \\
  45. private static int CAMELOT_TAB = 8010;
  46.  
  47. // --- Stores food, hp to eat at --- \\
  48. private String foodID;
  49. private int hpToEatAt = 50;
  50.  
  51. // --- Random stuff to run scripts --- \\
  52. private long REFRESH_TIME = Timing.currentTimeMillis() + refreshRandom();
  53. private static String status;
  54. boolean continueScript = true;
  55.  
  56. // return a random number between 7-9.8 minutes
  57. private long refreshRandom() {
  58. return General.random(420000, 580000);
  59. }
  60.  
  61. @Override
  62. public void run() {
  63. foodID = String.format(JOptionPane.showInputDialog("Enter food name (Case sensitive)"));
  64. hpToEatAt = Integer.parseInt(JOptionPane.showInputDialog( "Hp % to eat at: "));
  65. General.useAntiBanCompliance(true);
  66. Mouse.setSpeed(General.random(90, 135));
  67. while (continueScript) {
  68. if (WEST_CRABS.contains(Player.getPosition())) {
  69. status = "Crab running";
  70. RSNPC[] crabs = crabs();
  71. if (crabs.length > 0) {
  72. for (int i = 0; i < crabs.length; i++) {
  73. if (!Game.isRunOn() && Game.getRunEnergy() >= 20) {
  74. Options.setRunOn(true);
  75. }
  76. if (hpPercent() < hpToEatAt) {
  77. this.eatFood();
  78. }
  79. if (!crabs[i].isInCombat()) {
  80. if (Walking.walkTo(crabs[i].getPosition())) {
  81. AntiBan.generateTrackers(2000, false);
  82. AntiBan.timedActions();
  83. Timing.waitCondition(new Condition() {
  84. @Override
  85. public boolean active() {
  86. return Player.getRSPlayer().isInCombat() && !Player.isMoving();
  87. }
  88. }, 5000);
  89. }
  90. }
  91. }
  92. }
  93. }
  94. if (WEST_CRABS.contains(Player.getPosition()) && (Timing.currentTimeMillis() >= REFRESH_TIME)) {
  95. status = "Refreshing crabs";
  96. if (!Game.isRunOn() && Game.getRunEnergy() >= 25) {
  97. Options.setRunOn(true);
  98. }
  99. if (WebWalking.walkTo(REFRESH_AREA.getRandomTile())) {
  100. AntiBan.generateTrackers(2000, false);
  101. AntiBan.timedActions();
  102. Timing.waitCondition(new Condition() {
  103. @Override
  104. public boolean active() {
  105. return REFRESH_AREA.contains(Player.getPosition()) && !Player.isMoving();
  106. }
  107. }, 5000);
  108. this.resetRefreshTime();
  109. }
  110. }
  111. if (!WEST_CRABS.contains(Player.getPosition()) && hasTab() && hasFood()) {
  112. status = "Walking back to crabs";
  113. if (!Game.isRunOn() && Game.getRunEnergy() >= 23) {
  114. Options.setRunOn(true);
  115. }
  116. if (WebWalking.walkTo(walkToSpot)) {
  117. AntiBan.generateTrackers(2000, false);
  118. AntiBan.timedActions();
  119. Timing.waitCondition(new Condition() {
  120. @Override
  121. public boolean active() {
  122. return WEST_CRABS.contains(Player.getPosition()) && !Player.isMoving();
  123. }
  124. }, 5000);
  125. }
  126. }
  127. if (!hasFood() && WEST_CRABS.contains(Player.getPosition()) && hasTab()) {
  128. breakCammyTab();
  129. }
  130. if (CAMMY_TELE.contains(Player.getPosition())) {
  131. status = "Walking to bank";
  132. if (!Game.isRunOn() && Game.getRunEnergy() >= 10) {
  133. Options.setRunOn(true);
  134. }
  135. if (WebWalking.walkTo(CAMMY_BANK.getRandomTile())) {
  136. AntiBan.generateTrackers(2000, true);
  137. AntiBan.timedActions();
  138. Timing.waitCondition(new Condition() {
  139. @Override
  140. public boolean active() {
  141. General.random(100, 200);
  142. return CAMMY_BANK.contains(Player.getPosition()) && !Player.isMoving();
  143. }
  144. }, 5000);
  145. }
  146. }
  147. if (!hasFood() || !hasTab() && CAMMY_BANK_SPOT.contains(Player.getPosition())) {
  148. status = "Opening bank";
  149. Banking.openBank();
  150. Banking.depositAll();
  151. if (Banking.find(foodID) != null) {
  152. Banking.withdraw(24, foodID);
  153. AntiBan.generateTrackers(1000, false);
  154. AntiBan.timedActions();
  155. Timing.waitCondition(new Condition() {
  156. @Override
  157. public boolean active() {
  158. General.random(100, 200);
  159. return Inventory.getCount(foodID) >= 24;
  160. }
  161. }, 5000);
  162. }
  163. if (Banking.find(CAMELOT_TAB) != null) {
  164. Banking.withdraw(1, CAMELOT_TAB);
  165. AntiBan.generateTrackers(1000, false);
  166. AntiBan.timedActions();
  167. Timing.waitCondition(new Condition() {
  168. @Override
  169. public boolean active() {
  170. General.random(100, 200);
  171. return Inventory.getCount(CAMELOT_TAB) > 0;
  172. }
  173. }, 5000);
  174. }
  175. }
  176. sleep(80, 140);
  177. }
  178. }
  179.  
  180. // checks for food in inv
  181. private boolean hasFood() {
  182. return Inventory.find(foodID).length > 0;
  183. }
  184.  
  185. // Checks for cammy tab in inv
  186. private boolean hasTab() {
  187. return Inventory.find(CAMELOT_TAB).length > 0;
  188. }
  189.  
  190. // Method to eat food
  191. private boolean eatFood() {
  192. status = "Eating food";
  193. RSItem[] foods = Inventory.find(foodID);
  194. if (foods.length > 0 && foods[0].hover() && foods[0].click("Eat")) {
  195. AntiBan.generateTrackers(1500, false);
  196. AntiBan.timedActions();
  197. return true;
  198. }
  199. return false;
  200. }
  201.  
  202. // Method to get hp percent
  203. private static double hpPercent(){
  204. double currentHP = Skills.SKILLS.HITPOINTS.getCurrentLevel();
  205. double totalHP = Skills.SKILLS.HITPOINTS.getActualLevel();
  206. return currentHP / totalHP * 100;
  207. }
  208.  
  209. // Breaks and teleports to cammy using tab
  210. private static void breakCammyTab() {
  211. status = "Breaking Camelot Tab";
  212. RSItem[] tab = Inventory.find(CAMELOT_TAB);
  213. if (tab[0].click("Break")) {
  214. AntiBan.generateTrackers(2250, false);
  215. AntiBan.timedActions();
  216. Timing.waitCondition(new Condition() {
  217. @Override
  218. public boolean active() {
  219. General.sleep(100);
  220. return CAMMY_TELE.contains(Player.getPosition());
  221. }
  222. }, General.random(4800, 6000));
  223. }
  224. }
  225.  
  226. // Resets refreshTime
  227. private void resetRefreshTime() {
  228. REFRESH_TIME = Timing.currentTimeMillis() + refreshRandom();
  229. }
  230.  
  231. // Finds crabs
  232. private RSNPC[] crabs() {
  233. return NPCs.findNearest(Filters.NPCs.nameContains("Rock"));
  234. }
  235.  
  236. // Set start time, font
  237. private static final long startTime = System.currentTimeMillis();
  238. Font font = new Font("Verdana", Font.BOLD, 12);
  239.  
  240.  
  241. // Paint
  242. public void onPaint(Graphics g) {
  243. long timeRan = System.currentTimeMillis() - startTime;
  244.  
  245. g.setFont(font);
  246. g.setColor(Color.GREEN);
  247. g.drawString("Crab Runner V0.2", 279, 360);
  248. g.drawString("Running for: " + Timing.msToString(timeRan), 279, 375);
  249. g.drawString("Status : " + status, 279, 390);
  250. }
  251. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement