Guest User

Untitled

a guest
Jan 23rd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.01 KB | None | 0 0
  1. /////////////
  2. ///IMPORTS///
  3. /////////////
  4.  
  5.  
  6. import org.rsbot.event.events.MessageEvent;
  7. import org.rsbot.event.listeners.MessageListener;
  8. import org.rsbot.event.listeners.PaintListener;
  9.  
  10. import org.rsbot.script.*;
  11. import org.rsbot.script.wrappers.*;
  12.  
  13. import java.awt.*;
  14.  
  15.  
  16. //////////////
  17. ///MANIFEST///
  18. //////////////
  19.  
  20. @SuppressWarnings("deprecation")
  21. @ScriptManifest(authors = {"dodgercp"}, keywords = {"Fletches Maples."}, name = "MFletcher", description = "Fletches Maples.", version = 1)
  22.  
  23. public class MFletcher extends Script implements PaintListener,MessageListener{
  24.  
  25. int FLETCHING_ANIM = 1248;
  26.  
  27. public long startTime = 0;
  28. public long millis = 0;
  29. public long hours = 0;
  30. public long minutes = 0;
  31. public long seconds = 0;
  32. public long last = 0;
  33.  
  34. private int startExp = 0;
  35. private int bowsfletched = 0;
  36. public int fletchHour = 0;
  37. public int expHour = 0;
  38.  
  39. public int expGained = 0;
  40.  
  41. int waitCount = 0;
  42.  
  43. private enum ACTION {
  44. WITHDRAW, DEPOSIT, FLETCH, WAIT, ERROR
  45. }
  46.  
  47. private ACTION getAction() {
  48. if(!inventory.contains(MAPLE_LOGS) && !inventory.contains(UNSTRUNG_BOWS)) {
  49. return ACTION.WITHDRAW;
  50. } else if (!inventory.contains(MAPLE_LOGS) && inventory.contains(UNSTRUNG_BOWS)){
  51. return ACTION.DEPOSIT;
  52. } else if (inventory.containsAll(MAPLE_LOGS, KNIFE) && getMyPlayer().getAnimation() !=FLETCHING_ANIM) {
  53. return ACTION.FLETCH;
  54. } else if (getMyPlayer().getAnimation() == FLETCHING_ANIM) {
  55. return ACTION.WAIT;
  56. }
  57. return ACTION.ERROR;
  58. }
  59.  
  60. int MAPLE_LOGS = 1517;
  61. int UNSTRUNG_BOWS = 62;
  62. int KNIFE = 946;
  63.  
  64. RSItem selectedItem;
  65.  
  66. RSInterface FLETCH_INTERFACE;
  67. RSComponent FLETCH_COMPONENT;
  68.  
  69. @Override
  70. public boolean onStart() {
  71. log("Thanks for using MFletcher!"); {
  72. log("I'm here to get you 99 fletching in no time!");
  73. FLETCH_INTERFACE = interfaces.get(905);
  74. startTime = System.currentTimeMillis();
  75. startExp = skills.getCurrentExp(skills.FLETCHING);
  76. return true;}
  77. }
  78.  
  79. public int loop() {
  80. if(random(1, 15) == 7) antiBan();
  81.  
  82. ACTION actionSelector = getAction();
  83. switch (actionSelector) {
  84.  
  85. case WITHDRAW:
  86. if(!bank.isOpen()) {
  87. bank.open();
  88. while(!bank.isOpen() && waitCount < 10) {
  89. sleep(250,1100);
  90. waitCount++;
  91. }
  92. waitCount = 0;
  93. } else {
  94. if(!inventory.contains(KNIFE)) {
  95. bank.withdraw(KNIFE, 1);
  96. }
  97. bank.withdraw(MAPLE_LOGS, 0);
  98. }
  99. break;
  100.  
  101. case DEPOSIT:
  102. if(!bank.isOpen()) {
  103. bank.open();
  104. while(!bank.isOpen() && waitCount < 10) {
  105. sleep(250,1250);
  106. waitCount++;
  107. }
  108. waitCount = 0;
  109. } else {
  110. bank.depositAllExcept(KNIFE);
  111. }
  112. break;
  113.  
  114. case FLETCH:
  115. if(bank.isOpen()){
  116. bank.close();
  117. }
  118. if(FLETCH_INTERFACE.isValid()) {
  119. FLETCH_COMPONENT = FLETCH_INTERFACE.getComponent(15);
  120. sleep(200, 500);
  121. FLETCH_COMPONENT.doClick();
  122. break;
  123. } else {
  124. if (random(1,2) == 1) {
  125. inventory.getItem(KNIFE).doClick(true);
  126. while(inventory.getSelectedItem() == null && waitCount < 10) {
  127. sleep(500,1500);
  128. waitCount++;
  129. }
  130. selectedItem = inventory.getSelectedItem();
  131. if(selectedItem != null && selectedItem.getID() == KNIFE){
  132. inventory.getItem(MAPLE_LOGS).doClick(true);
  133. }
  134. } else {
  135. inventory.getItem(MAPLE_LOGS).doClick(true);
  136. while(inventory.getSelectedItem() == null && waitCount < 10) {
  137. sleep(500,1500);
  138. waitCount++;
  139. }
  140. selectedItem = inventory.getSelectedItem();
  141. if(selectedItem != null && selectedItem.getID() == MAPLE_LOGS){
  142. inventory.getItem(KNIFE).doClick(true);
  143. }
  144. }
  145. }
  146. break;
  147.  
  148. case WAIT:
  149. sleep(250, 1300);
  150. break;
  151.  
  152. case ERROR:
  153. game.logout(false);
  154. break;
  155. }
  156. return random(500, 1500);
  157. }
  158.  
  159.  
  160.  
  161.  
  162. ///////////
  163. ///PAINT///
  164. ///////////
  165.  
  166. //START: Code generated using Enfilade's Easel
  167. private final Color color1 = new Color(0, 204, 204, 147);
  168. private final Color color2 = new Color(0, 0, 0);
  169.  
  170. private final BasicStroke stroke1 = new BasicStroke(1);
  171.  
  172. private final Font font1 = new Font("Comic Sans MS", 0, 15);
  173. private final Font font2 = new Font("Vivaldi", 0, 15);
  174.  
  175. public void onRepaint(Graphics g1) {
  176. Graphics2D g = (Graphics2D)g1;
  177.  
  178. millis = System.currentTimeMillis() - startTime;
  179. hours = millis / (1000 * 60 * 60);
  180. millis -= hours * (1000 * 60 * 60);
  181. minutes = millis / (1000 * 60);
  182. millis -= minutes * (1000 * 60);
  183. seconds = millis / 1000;
  184. fletchHour = (int) ((bowsfletched) * 3600000D / (System.currentTimeMillis() - startTime));
  185. expGained = skills.getCurrentExp(skills.FLETCHING) - startExp;
  186. expHour = (int) ((expGained) * 3600000D / (System.currentTimeMillis() - startTime));
  187.  
  188. g.setColor(color1);
  189. g.fillRect(361, 130, 156, 208);
  190. g.setColor(color2);
  191. g.setStroke(stroke1);
  192. g.drawRect(361, 130, 156, 208);
  193. g.setFont(font1);
  194. g.drawString("MFletcher", 406, 150);
  195. g.drawString("Run Time: " + hours +":" + minutes + ":" + seconds, 390, 180);
  196. g.drawString("Fletched: " + bowsfletched , 390, 210);
  197. g.drawString("Bows/H: " + fletchHour, 390, 240);
  198. g.drawString("EXP/Gained: " + expGained, 390, 270);
  199. g.drawString("EXP/Hour: " + expHour, 390, 300);
  200. g.setFont(font2);
  201. g.drawString("Dodgercp", 409, 323);
  202.  
  203. ///////////
  204. ///MOUSE///
  205. ///////////
  206.  
  207. g.setColor(Color.blue);
  208. g.drawLine(0, (int)(mouse.getLocation().getY()), 800, (int)(mouse.getLocation().getY()));
  209. g.drawLine((int)(mouse.getLocation().getX()), 0, (int)(mouse.getLocation().getX()), 800);
  210. g.setColor(Color.green);
  211. g.drawLine(0, (int)(mouse.getLocation().getY()) +1, 800, (int)(mouse.getLocation().getY())+1);
  212. g.drawLine((int)(mouse.getLocation().getX()) +1, 0, (int)(mouse.getLocation().getX())+1, 800);
  213. }
  214. //END: Code generated using Enfilade's Easel
  215.  
  216. public void messageReceived(MessageEvent e) {
  217. String x = e.getMessage().toLowerCase();
  218. if (x.contains("longbow")){
  219. bowsfletched++;
  220. }
  221. }
  222.  
  223. @Override
  224. public void onFinish() {
  225. env.saveScreenshot(true);
  226. log("Please post your proggy on my thread!");
  227. log("I hope you enjoyed using dodgercp's MFletcher!");
  228. log("Time Run: " + hours +":" + minutes + ":" + seconds);
  229. log("Bows Fletched: " + bowsfletched);
  230. log("EXP Gained: " + expGained);}
  231.  
  232.  
  233. private void antiBan() {
  234. int r = random(0, 30);
  235. switch(r) {
  236. case 3:
  237. mouse.moveSlightly();
  238. sleep(500, 800);
  239. break;
  240. case 7:
  241. mouse.moveRandomly(10, 50);
  242. break;
  243. case 16:
  244. mouse.moveOffScreen();
  245. sleep(2000, 3000);
  246. break;
  247. case 18:
  248. camera.moveRandomly(random(750, 1250));
  249. break;
  250. }
  251. }
  252. }
Add Comment
Please, Sign In to add comment