Advertisement
Rudie221

VWclay by Rudie

Mar 26th, 2011
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.29 KB | None | 0 0
  1. import java.awt.Color;
  2. import java.awt.Graphics;
  3. import java.awt.*;
  4. import javax.imageio.ImageIO;
  5. import java.io.IOException;
  6. import java.net.URL;
  7. import java.awt.*;
  8. import javax.imageio.ImageIO;
  9. import java.io.IOException;
  10. import java.net.URL;
  11.  
  12. import org.rsbot.event.events.MessageEvent;
  13. import org.rsbot.event.listeners.MessageListener;
  14. import org.rsbot.event.listeners.PaintListener;
  15. import org.rsbot.script.Script;
  16. import org.rsbot.script.ScriptManifest;
  17. import org.rsbot.script.wrappers.RSObject;
  18. import org.rsbot.script.wrappers.RSTile;
  19. import org.rsbot.script.wrappers.RSTilePath;
  20.  
  21. @ScriptManifest(
  22. authors = {"Rudie"},
  23. version = 2.03,
  24. keywords = ("miner"),
  25. description = "Mines and banks clay at varrock west",
  26. name = "VWclay"
  27. )
  28. public class VWclay extends Script implements PaintListener, MessageListener {
  29.  
  30. int boothID = 11402;
  31. int[] oreID = {15504};
  32. int miningAnimation = 625;
  33.  
  34. RSTile[] tilesToBank = {new RSTile(3182, 3376), new RSTile(3176, 3387),
  35. new RSTile(3169, 3399), new RSTile(3168, 3411), new RSTile(3169, 3423), new RSTile(3178, 3429),
  36. new RSTile(3183, 3438)};
  37. RSTilePath pathToBank;
  38.  
  39. long startTime;
  40.  
  41. int expGained = 0;
  42. int startExp = 0;
  43. int oresMined = 0;
  44. private String Status;
  45.  
  46. public boolean onStart() {
  47. pathToBank = walking.newTilePath(tilesToBank);
  48. startTime = System.currentTimeMillis();
  49. mouse.setSpeed(random(0, 1));
  50. startExp = skills.getCurrentExp(skills.MINING);
  51. return true;
  52.  
  53. }
  54.  
  55. @Override
  56. public int loop() {
  57. if(inventory.isFull()) {
  58. if(atBank()) {
  59. doBank();
  60. } else {
  61. walk();
  62. }
  63. } else {
  64. if(atMine()) {
  65. mineOres();
  66. } else {
  67. walkR();
  68. }
  69. }
  70. return random(600, 800);
  71. }
  72.  
  73. private void mineOres() {
  74. RSObject rock = objects.getNearest(oreID);
  75. if(getMyPlayer().getAnimation() != miningAnimation) {
  76. rock.doAction("Mine");
  77. if(random(1, 15) == 7) antiBan();
  78. Status = "Mining.";
  79. }
  80. sleep(1800, 2000);
  81. }
  82.  
  83. private void walkR() {
  84. pathToBank.reverse();
  85. pathToBank.traverse();
  86. pathToBank.reverse();
  87. Status = "Walking to mine.";
  88. }
  89.  
  90. private void walk() {
  91. pathToBank.traverse();
  92. if(random(0, 30) == 15) antiBan();
  93. Status = "Walking to bank.";
  94. }
  95.  
  96. public void onFinish() {
  97. log("Ty for using VWclay.");
  98. }
  99.  
  100. private boolean atBank() {
  101. RSObject bank = objects.getNearest(boothID);
  102. if(bank != null) {
  103. if(bank.isOnScreen()) {
  104. return true;
  105. }
  106. }
  107. return false;
  108. }
  109.  
  110. private void doBank() {
  111. if(bank.isOpen()) {
  112. bank.depositAll();
  113. sleep(800, 1200);
  114. Status = "Banking.";
  115. } else {
  116. bank.open();
  117. Status = "Banking.";
  118. sleep(1800, 2200);
  119. }
  120. }
  121.  
  122. private boolean atMine() {
  123. RSObject ore = objects.getNearest(oreID);
  124. if(ore != null) {
  125. if(ore.isOnScreen()) {
  126. return true;
  127. }
  128. }
  129. return false;
  130. }
  131. //START: Code generated using Enfilade's Easel
  132. private Image getImage(String url) {
  133. try {
  134. return ImageIO.read(new URL(url));
  135. } catch(IOException e) {
  136. return null;
  137. }
  138. }
  139.  
  140. private final Color color1 = new Color(51, 51, 51, 159);
  141. private final Color color2 = new Color(0, 0, 0);
  142. private final Color color3 = new Color(255, 255, 255);
  143.  
  144. private final BasicStroke stroke1 = new BasicStroke(1);
  145.  
  146. private final Font font1 = new Font("Comic Sans MS", 1, 19);
  147. private final Font font2 = new Font("Comic Sans MS", 1, 14);
  148.  
  149. private final Image img1 = getImage("http://images4.wikia.nocookie.net/__cb20100622212208/runescape/no/images/a/aa/120px-Dragon_Pickaxe_Detail.png");
  150.  
  151. //END: Code generated using Enfilade's Easel
  152.  
  153. /*
  154. * ----- PAINT -----
  155. */
  156.  
  157. @Override
  158. public void onRepaint(Graphics g) {
  159.  
  160. expGained = skills.getCurrentExp(skills.MINING) - startExp;
  161.  
  162. long millis = System.currentTimeMillis() - startTime;
  163. long hours = millis / (1000 * 60 * 60);
  164. millis -= hours * (1000 * 60 * 60);
  165. long minutes = millis / (1000 * 60);
  166. millis -= minutes * (1000 * 60);
  167. long seconds = millis / 1000;
  168.  
  169. float xpsec = 0;
  170. if((minutes > 0 || hours > 0 || seconds > 0)&& expGained > 0) {
  171. xpsec = ((float) expGained)/(float)(seconds + (minutes*60) + (hours*60*60));
  172. }
  173. float xpmin = xpsec * 60;
  174. float xphour = xpmin * 60;
  175.  
  176. float oresec = 0;
  177. if((minutes > 0 || hours > 0 || seconds > 0)&& oresMined > 0) {
  178. oresec = ((float) oresMined)/(float)(seconds + (minutes*60) + (hours*60*60));
  179. }
  180. float oremin = oresec * 60;
  181. float orehour = oremin * 60;
  182.  
  183. Graphics2D g1 = (Graphics2D)g;
  184. g1.setColor(color1);
  185. g1.fillRoundRect(4, 344, 494, 114, 16, 16);
  186. g1.setColor(color2);
  187. g1.setStroke(stroke1);
  188. g1.drawRoundRect(4, 344, 494, 114, 16, 16);
  189. g1.fillRect(6, 458, 93, 14);
  190. g1.drawRect(6, 458, 93, 14);
  191. g1.drawImage(img1, 372, 338, null);
  192. g1.setFont(font1);
  193. g1.setColor(color3);
  194. g1.drawString("VWclay by Rudie", 132, 366);
  195. g1.setFont(font2);
  196. g1.drawString("Status: " + Status, 80, 405);
  197. g1.drawString("RunTime: " + hours + ":" + minutes + ":" + seconds, 257, 405);
  198. g1.drawString("Exp Gained: " + expGained, 80, 420);
  199. g1.drawString("Exp/H: " + (int)xphour, 257, 420);
  200. g1.drawString("Clay mined: " + oresMined, 80, 435);
  201. g1.drawString("Clay/H: " + (int)orehour, 257, 435);
  202. g1.drawString("Enjoy!", 610, 97);
  203. g.setColor(Color.red);
  204. g.drawLine(0, (int)(mouse.getLocation().getY()), 800, (int)(mouse.getLocation().getY()));
  205. g.drawLine((int)(mouse.getLocation().getX()), 0, (int)(mouse.getLocation().getX()), 800);
  206. }
  207.  
  208. @Override
  209. public void messageReceived(MessageEvent e) {
  210. String txt = e.getMessage();
  211. if(txt.contains("You manage to mine some clay")) {
  212. oresMined++;
  213. }
  214. }
  215.  
  216. private void antiBan() {
  217. int r = random(0, 30);
  218. switch(r) {
  219. case 3:
  220. mouse.moveSlightly();
  221. sleep(500, 800);
  222. break;
  223. case 7:
  224. mouse.moveRandomly(10, 50);
  225. break;
  226. case 16:
  227. mouse.moveOffScreen();
  228. sleep(2000, 3000);
  229. break;
  230. case 18:
  231. camera.moveRandomly(random(750, 1250));
  232. break;
  233. }
  234. }
  235. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement