Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 10th, 2012  |  syntax: None  |  size: 65.61 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. 01.///////////////////////////  
  2. 02.//////////IMPORTS//////////  
  3. 03.///////////////////////////  
  4. 04.  
  5. 05.import java.awt.BasicStroke;  
  6. 06.import java.awt.Color;  
  7. 07.import java.awt.Graphics;  
  8. 08.import java.awt.Graphics2D;  
  9. 09.import java.awt.GridLayout;  
  10. 10.import java.awt.Image;  
  11. 11.import java.awt.Point;  
  12. 12.import java.awt.Polygon;  
  13. 13.import java.awt.event.ActionEvent;  
  14. 14.import java.awt.event.ActionListener;  
  15. 15.import java.awt.event.MouseEvent;  
  16. 16.import java.awt.event.MouseMotionListener;  
  17. 17.  
  18. 18.import java.io.*;  
  19. 19.import java.lang.reflect.Method;  
  20. 20.import java.net.*;  
  21. 21.  
  22. 22.import javax.imageio.ImageIO;  
  23. 23.import javax.swing.ComboBoxModel;  
  24. 24.import javax.swing.JButton;  
  25. 25.import javax.swing.JCheckBox;  
  26. 26.import javax.swing.JComboBox;  
  27. 27.import javax.swing.JFrame;  
  28. 28.import javax.swing.JLabel;  
  29. 29.  
  30. 30.import org.rsbot.event.events.MessageEvent;  
  31. 31.import org.rsbot.event.listeners.PaintListener;  
  32. 32.import org.rsbot.event.listeners.MessageListener;  
  33. 33.import org.rsbot.script.Script;  
  34. 34.import org.rsbot.script.ScriptManifest;  
  35. 35.import org.rsbot.script.methods.Skills;  
  36. 36.import org.rsbot.script.wrappers.RSArea;  
  37. 37.import org.rsbot.script.wrappers.RSComponent;  
  38. 38.import org.rsbot.script.wrappers.RSInterface;  
  39. 39.import org.rsbot.script.wrappers.RSItem;  
  40. 40.import org.rsbot.script.wrappers.RSNPC;  
  41. 41.import org.rsbot.script.wrappers.RSObject;  
  42. 42.import org.rsbot.script.wrappers.RSTile;  
  43. 43.  
  44. 44.////////////////////////////  
  45. 45.//////////MANIFEST//////////  
  46. 46.////////////////////////////  
  47. 47.  
  48. 48.@ScriptManifest(authors = { "Zhrz" }, name = "DarkMiner", version = 1.6, description = "Start near mine location with a pickaxe.")  
  49. 49.public class DarkMiner extends Script implements PaintListener,  
  50. 50.    MouseMotionListener, MessageListener {  
  51. 51.  
  52. 52.  // ////////////////////////////////////////////////  
  53. 53.  // ////////VARIABLES - INT, BOOLEAN, LONG//////////  
  54. 54.  // ////////////////////////////////////////////////  
  55. 55.  
  56. 56.  // for paint calc  
  57. 57.  public long startTime = System.currentTimeMillis(); // timer  
  58. 58.  long runTime;  
  59. 59.  long seconds;  
  60. 60.  long minutes = 0;  
  61. 61.  long hours = 0;  
  62. 62.  int startexp = 0;  
  63. 63.  int currentXP;  
  64. 64.  int currentLVL;  
  65. 65.  int gainedLVL;  
  66. 66.  int oresPerHour;  
  67. 67.  int expPerHour;  
  68. 68.  int startLvl = 0;  
  69. 69.  int gainedXP;  
  70. 70.  int oresMined = 0;  
  71. 71.  int gemsMined = 0;  
  72. 72.  int pricePerOre = 0;  
  73. 73.  int kMade;  
  74. 74.  int kPerHour;  
  75. 75.  int antiBanCount = 0;  
  76. 76.  int[] gems = { 1621, 1619, 1623, 1617 };  
  77. 77.  int randomNum2 = 0;  
  78. 78.  int xpPerEssence = 5;  
  79. 79.  
  80. 80.  Image img1;  
  81. 81.  
  82. 82.  // tests to get info otherwise  
  83. 83.  int minRunSoRest = 0;  
  84. 84.  int stopRest = 0;  
  85. 85.  int gotPickOn = 0;  
  86. 86.  
  87. 87.  // different types of modes  
  88. 88.  public boolean safeClick = false;  
  89. 89.  public boolean pickHold = false;  
  90. 90.  public boolean mineEss = false;  
  91. 91.  
  92. 92.  public boolean modeDrop = false;  
  93. 93.  public boolean modeMine2 = false;  
  94. 94.  public boolean modeHybrid = false;  
  95. 95.  public boolean modeBank = false;  
  96. 96.  public boolean yesUpdate = false;  
  97. 97.  
  98. 98.  // for rock paint  
  99. 99.  public RSObject paintRock;  
  100. 100.  
  101. 101.  String addZero = "";  
  102. 102.  String addZero2 = "";  
  103. 103.  
  104. 104.  // rockSpot  
  105. 105.  RSTile rockSpot = null;  
  106. 106.  
  107. 107.  // for status  
  108. 108.  private String status = "Starting...";  
  109. 109.  private String antiBanStatus = "Starting...";  
  110. 110.  
  111. 111.  // for methods  
  112. 112.  int rockID[];  
  113. 113.  int oreID;  
  114. 114.  final int pickID[] = { 1265, 1267, 1269, 1271, 1273, 1275, 14099, 14107,  
  115. 115.      15259, 15261 };  
  116. 116.  final int strangeRockID[] = { 15532, 15533 };  
  117. 117.  
  118. 118.  // for essence  
  119. 119.  private int portalID = 2492;  
  120. 120.  private int auburyID = 553;  
  121. 121.  
  122. 122.  // code for paint  
  123. 123.  Color edgeColor = new Color(153, 153, 153);  
  124. 124.  Color transDarkBlue = new Color(102, 153, 255, 120);  
  125. 125.  Color transDarkRed = new Color(204, 0, 0, 120);  
  126. 126.  Color transDarkGreen = new Color(51, 153, 0, 200);  
  127. 127.  
  128. 128.  public boolean showPaint1 = false; // hover mouse  
  129. 129.  public boolean showPaint2 = false;  
  130. 130.  public boolean showPaint3 = false;  
  131. 131.  public boolean showPaint4 = false;  
  132. 132.  
  133. 133.  private final BasicStroke stroke1 = new BasicStroke(1);  
  134. 134.  
  135. 135.  // game tiles  
  136. 136.  RSTile toNW[];  
  137. 137.  RSTile toNE[];  
  138. 138.  RSTile toSW[];  
  139. 139.  RSTile toSE[];  
  140. 140.  
  141. 141.  RSTile toBank[];  
  142. 142.  RSTile toMine[];  
  143. 143.  RSTile mineTile;  
  144. 144.  RSTile bankTile;  
  145. 145.  RSTile doorTile = new RSTile(3253, 3398);  
  146. 146.  RSTile runeShop = new RSTile(3253, 3401);  
  147. 147.  
  148. 148.  // for GUI  
  149. 149.  private static final String[] TYPE_OPTION = new String[] { "Essence",  
  150. 150.      "Clay", "Copper", "Tin", "Iron", "Silver", "Coal", "Gold" };  
  151. 151.  private static final String[] SELECT_OPTION = new String[] {  
  152. 152.      "Barbarian Village", "Rimmington", "Al Kharid", "West Varrock",  
  153. 153.      "Varrock (Ess)" };  
  154. 154.  private static final String[] MINE_OPTION = new String[] { "Bank", "M2D2",  
  155. 155.      "Drop", "Hybrid" };  
  156. 156.  
  157. 157.  // rock ID's  
  158. 158.  public int essence[] = { 2491 };  
  159. 159.  public int clay[] = { 11504, 11503, 11505, 9711, 9713, 15503, 15505 };  
  160. 160.  public int copper[] = { 11937, 11938, 9710, 9708, 9709 };  
  161. 161.  public int tin[] = { 11933, 11934, 11935, 11957, 11958, 11959, 9714, 9716 };  
  162. 162.  public int iron[] = { 37309, 37307, 37308, 11955, 11956, 9718, 9717, 9719 };  
  163. 163.  public int silver[] = { 37306, 37304, 37305, 11950, 11949, 11948 };  
  164. 164.  public int coal[] = { 11930, 11932, 11931 };  
  165. 165.  public int gold[] = { 37312, 37310, 9720, 9722 };  
  166. 166.  
  167. 167.  // rstiles for essence mining  
  168. 168.  private boolean atNW() {  
  169. 169.    RSArea NorthWest = new RSArea(new RSTile(2884, 4837), new RSTile(2901,  
  170. 170.        4859));  
  171. 171.    return (NorthWest.contains(getMyPlayer().getLocation()));  
  172. 172.  }  
  173. 173.  
  174. 174.  private boolean atVarrock() {  
  175. 175.    RSArea Varrock = new RSArea(new RSTile(3239, 3388), new RSTile(3263,  
  176. 176.        3431));  
  177. 177.    return (Varrock.contains(getMyPlayer().getLocation()));  
  178. 178.  }  
  179. 179.  
  180. 180.  private boolean atNE() {  
  181. 181.    RSArea NorthEast = new RSArea(new RSTile(2918, 4841), new RSTile(2935,  
  182. 182.        4857));  
  183. 183.    return (NorthEast.contains(getMyPlayer().getLocation()));  
  184. 184.  }  
  185. 185.  
  186. 186.  private boolean atSW() {  
  187. 187.    RSArea SouthWest = new RSArea(new RSTile(2885, 4807), new RSTile(2904,  
  188. 188.        4823));  
  189. 189.    return (SouthWest.contains(getMyPlayer().getLocation()));  
  190. 190.  }  
  191. 191.  
  192. 192.  private boolean atSE() {  
  193. 193.    RSArea SouthEast = new RSArea(new RSTile(2920, 4806), new RSTile(2936,  
  194. 194.        4823));  
  195. 195.    return (SouthEast.contains(getMyPlayer().getLocation()));  
  196. 196.  }  
  197. 197.  
  198. 198.  private boolean atDoor() {  
  199. 199.    RSArea DoorLocation = new RSArea(new RSTile(3251, 3396), new RSTile(  
  200. 200.        3255, 3405));  
  201. 201.    return (DoorLocation.contains(getMyPlayer().getLocation()));  
  202. 202.  }  
  203. 203.  
  204. 204.  private boolean atBank() {  
  205. 205.    RSArea Bank = new RSArea(new RSTile(3250, 3419), new RSTile(3257, 3423));  
  206. 206.    return (Bank.contains(getMyPlayer().getLocation()));  
  207. 207.  }  
  208. 208.  
  209. 209.  private boolean atCenter() {  
  210. 210.    RSArea Center = new RSArea(new RSTile(2903, 4824), new RSTile(2920,  
  211. 211.        4840));  
  212. 212.    return (Center.contains(getMyPlayer().getLocation()));  
  213. 213.  }  
  214. 214.  
  215. 215.  private boolean atShop() {  
  216. 216.    RSArea Shop = new RSArea(new RSTile(3251, 3403), new RSTile(3254, 3399));  
  217. 217.    return (Shop.contains(getMyPlayer().getLocation()));  
  218. 218.  }  
  219. 219.  
  220. 220.  // /////////////////////////  
  221. 221.  // ////////VERSION//////////  
  222. 222.  // /////////////////////////  
  223. 223.  
  224. 224.  private double getVersion() {  
  225. 225.    return (1.6);  
  226. 226.  }  
  227. 227.  
  228. 228.  public void openURL(final String url) { // Credits to Dave who gave credits  
  229. 229.    // to  
  230. 230.    // some guy who made this.  
  231. 231.    final String osName = System.getProperty("os.name");  
  232. 232.    try {  
  233. 233.      if (osName.startsWith("Mac OS")) {  
  234. 234.        final Class<?> fileMgr = Class  
  235. 235.            .forName("com.apple.eio.FileManager");  
  236. 236.        final Method openURL = fileMgr.getDeclaredMethod("openURL",  
  237. 237.            new Class[] { String.class });  
  238. 238.        openURL.invoke(null, new Object[] { url });  
  239. 239.      } else if (osName.startsWith("Windows")) {  
  240. 240.        Runtime.getRuntime().exec(  
  241. 241.            "rundll32 url.dll,FileProtocolHandler " + url);  
  242. 242.      } else { // assume Unix or Linux  
  243. 243.        final String[] browsers = { "firefox", "opera", "konqueror",  
  244. 244.            "epiphany", "mozilla", "netscape" };  
  245. 245.        String browser = null;  
  246. 246.        for (int count = 0; count < browsers.length && browser == null; count++) {  
  247. 247.          if (Runtime.getRuntime()  
  248. 248.              .exec(new String[] { "which", browsers[count] })  
  249. 249.              .waitFor() == 0) {  
  250. 250.            browser = browsers[count];  
  251. 251.          }  
  252. 252.        }  
  253. 253.        if (browser == null) {  
  254. 254.          throw new Exception("Could not find web browser");  
  255. 255.        } else {  
  256. 256.          Runtime.getRuntime().exec(new String[] { browser, url });  
  257. 257.        }  
  258. 258.      }  
  259. 259.    } catch (final Exception e) {  
  260. 260.    }  
  261. 261.  }  
  262. 262.  
  263. 263.  // /////////////////////////  
  264. 264.  // ////////ONSTART//////////  
  265. 265.  // /////////////////////////  
  266. 266.  
  267. 267.  public boolean onStart() {  
  268. 268.    log("Starting up, this may take a few seconds...");  
  269. 269.  
  270. 270.    // gets image  
  271. 271.    img1 = getImage("http://cublex.50webs.com/darkminer4.png");  
  272. 272.  
  273. 273.    GUI GUI = new GUI();  
  274. 274.    GUI.setVisible(true);  
  275. 275.    while (GUI.isVisible()) {  
  276. 276.      sleep(50);  
  277. 277.    }  
  278. 278.  
  279. 279.    yesUpdate = GUI.checkForUpdate.isSelected();  
  280. 280.  
  281. 281.    if (yesUpdate == true) {  
  282. 282.      // updater  
  283. 283.      URLConnection url = null;  
  284. 284.      BufferedReader in = null;  
  285. 285.      BufferedWriter out = null;  
  286. 286.      try {  
  287. 287.        // Open the version text file  
  288. 288.        url = new URL(  
  289. 289.            "http://cublex.50webs.com/scripts/DarkMinerVERSION.txt")  
  290. 290.            .openConnection();  
  291. 291.        // Create an input stream for it  
  292. 292.        in = new BufferedReader(new InputStreamReader(  
  293. 293.            url.getInputStream()));  
  294. 294.        // Check if the current version is outdated  
  295. 295.        if (Double.parseDouble(in.readLine()) > getVersion()) {  
  296. 296.          // If it is, check if the user would like to update.  
  297. 297.          log("Update is available. Please head over to our thread to download it.");  
  298. 298.        } else  
  299. 299.          log("You have the latest version of DarkMiner.");  
  300. 300.        // User has the latest version. Tell them!  
  301. 301.        if (in != null)  
  302. 302.          in.close();  
  303. 303.        if (out != null)  
  304. 304.          out.close();  
  305. 305.      } catch (IOException e) {  
  306. 306.        log("A problem interrupted checking version.");  
  307. 307.        return false;  
  308. 308.        // Return false if there was a problem  
  309. 309.      }  
  310. 310.      // end of updater  
  311. 311.    } else {  
  312. 312.      log("You are using DarkMiner by Zhrz.");  
  313. 313.    }  
  314. 314.  
  315. 315.    // sets up the mining mode  
  316. 316.    if (GUI.mineType.getSelectedItem().toString().equals("M2D2")) {  
  317. 317.      modeDrop = false;  
  318. 318.      modeMine2 = true;  
  319. 319.      modeHybrid = false;  
  320. 320.      modeBank = true;  
  321. 321.    } else if (GUI.mineType.getSelectedItem().toString().equals("Drop")) {  
  322. 322.      modeDrop = true;  
  323. 323.      modeMine2 = false;  
  324. 324.      modeHybrid = false;  
  325. 325.      modeBank = true;  
  326. 326.    } else if (GUI.mineType.getSelectedItem().toString().equals("Hybrid")) {  
  327. 327.      modeDrop = false;  
  328. 328.      modeMine2 = false;  
  329. 329.      modeHybrid = true;  
  330. 330.      modeBank = true;  
  331. 331.    } else if (GUI.mineType.getSelectedItem().toString().equals("Bank")) {  
  332. 332.      modeDrop = false;  
  333. 333.      modeMine2 = false;  
  334. 334.      modeHybrid = false;  
  335. 335.      modeBank = true;  
  336. 336.    }  
  337. 337.  
  338. 338.    // ore type + location +path  
  339. 339.    if (GUI.oreType.getSelectedItem().toString().equals("Essence")) {  
  340. 340.      mineEss = true;  
  341. 341.      rockID = essence;  
  342. 342.      oreID = 1436;  
  343. 343.      if (GUI.location1.getSelectedItem().toString()  
  344. 344.          .equals("Varrock (Ess)")) {  
  345. 345.        bankTile = new RSTile(3254, 3420);  
  346. 346.  
  347. 347.        toBank = new RSTile[] { new RSTile(3258, 3411),  
  348. 348.            new RSTile(3261, 3422), new RSTile(3254, 3420) };  
  349. 349.  
  350. 350.        toMine = new RSTile[] { new RSTile(3254, 3420),  
  351. 351.            new RSTile(3257, 3412), new RSTile(3257, 3401),  
  352. 352.            new RSTile(3253, 3398) };  
  353. 353.  
  354. 354.        toNW = new RSTile[] { new RSTile(2911, 4831),  
  355. 355.            new RSTile(2906, 4839), new RSTile(2900, 4842),  
  356. 356.            new RSTile(2895, 4846) };  
  357. 357.  
  358. 358.        toNE = new RSTile[] { new RSTile(2911, 4831),  
  359. 359.            new RSTile(2919, 4840), new RSTile(2923, 4844),  
  360. 360.            new RSTile(2926, 4847) };  
  361. 361.  
  362. 362.        toSW = new RSTile[] { new RSTile(2911, 4831),  
  363. 363.            new RSTile(2904, 4824), new RSTile(2899, 4820),  
  364. 364.            new RSTile(2897, 4817) };  
  365. 365.  
  366. 366.        toSE = new RSTile[] { new RSTile(2911, 4831),  
  367. 367.            new RSTile(2918, 4822), new RSTile(2922, 4819),  
  368. 368.            new RSTile(2926, 4819) };  
  369. 369.      } else {  
  370. 370.        log("[Error] = Selected ore and location do not match.");  
  371. 371.      }  
  372. 372.    } else if (GUI.oreType.getSelectedItem().toString().equals("Clay")) {  
  373. 373.      rockID = clay;  
  374. 374.      oreID = 434;  
  375. 375.      if (GUI.location1.getSelectedItem().toString().equals("Rimmington")) {  
  376. 376.        mineTile = new RSTile(2986, 3240);  
  377. 377.        bankTile = new RSTile(3012, 3355);  
  378. 378.  
  379. 379.        toBank = new RSTile[] { new RSTile(2986, 3240),  
  380. 380.            new RSTile(2978, 3242), new RSTile(2986, 3233),  
  381. 381.            new RSTile(2994, 3243), new RSTile(2993, 3256),  
  382. 382.            new RSTile(2993, 3269), new RSTile(3001, 3276),  
  383. 383.            new RSTile(3003, 3289), new RSTile(3003, 3302),  
  384. 384.            new RSTile(3005, 3315), new RSTile(3006, 3327),  
  385. 385.            new RSTile(3007, 3338), new RSTile(3012, 3355) };  
  386. 386.  
  387. 387.        toMine = new RSTile[] { new RSTile(3012, 3355),  
  388. 388.            new RSTile(3007, 3344), new RSTile(3007, 3332),  
  389. 389.            new RSTile(3006, 3321), new RSTile(2997, 3310),  
  390. 390.            new RSTile(2986, 3304), new RSTile(2985, 3293),  
  391. 391.            new RSTile(2986, 3282), new RSTile(2979, 3274),  
  392. 392.            new RSTile(2974, 3263), new RSTile(2977, 3254),  
  393. 393.            new RSTile(2978, 3242), new RSTile(2986, 3240) };  
  394. 394.  
  395. 395.      } else if (GUI.location1.getSelectedItem().toString()  
  396. 396.          .equals("West Varrock")) {  
  397. 397.        mineTile = new RSTile(3180, 3371);  
  398. 398.        bankTile = new RSTile(3182, 3436);  
  399. 399.  
  400. 400.        toMine = new RSTile[] { new RSTile(3182, 3436),  
  401. 401.            new RSTile(3172, 3425), new RSTile(3171, 3410),  
  402. 402.            new RSTile(3175, 3396), new RSTile(3179, 3383),  
  403. 403.            new RSTile(3184, 3373), new RSTile(3180, 3371) };  
  404. 404.  
  405. 405.        toBank = new RSTile[] { new RSTile(3180, 3371),  
  406. 406.            new RSTile(3184, 3373), new RSTile(3179, 3383),  
  407. 407.            new RSTile(3175, 3396), new RSTile(3171, 3410),  
  408. 408.            new RSTile(3172, 3425), new RSTile(3182, 3436) };  
  409. 409.      } else {  
  410. 410.        log("[Error] = Selected ore and location do not match.");  
  411. 411.      }  
  412. 412.  
  413. 413.    } else if (GUI.oreType.getSelectedItem().toString().equals("Copper")) {  
  414. 414.      rockID = copper;  
  415. 415.      oreID = 436;  
  416. 416.      if (GUI.location1.getSelectedItem().toString().equals("Rimmington")) {  
  417. 417.        mineTile = new RSTile(2977, 3246);  
  418. 418.        bankTile = new RSTile(3012, 3355);  
  419. 419.  
  420. 420.        toBank = new RSTile[] { new RSTile(2977, 3246),  
  421. 421.            new RSTile(2978, 3242), new RSTile(2986, 3233),  
  422. 422.            new RSTile(2994, 3243), new RSTile(2993, 3256),  
  423. 423.            new RSTile(2993, 3269), new RSTile(3001, 3276),  
  424. 424.            new RSTile(3003, 3289), new RSTile(3003, 3302),  
  425. 425.            new RSTile(3005, 3315), new RSTile(3006, 3327),  
  426. 426.            new RSTile(3007, 3338), new RSTile(3012, 3355) };  
  427. 427.  
  428. 428.        toMine = new RSTile[] { new RSTile(3012, 3355),  
  429. 429.            new RSTile(3007, 3344), new RSTile(3007, 3332),  
  430. 430.            new RSTile(3006, 3321), new RSTile(2997, 3310),  
  431. 431.            new RSTile(2986, 3304), new RSTile(2985, 3293),  
  432. 432.            new RSTile(2986, 3282), new RSTile(2979, 3274),  
  433. 433.            new RSTile(2974, 3263), new RSTile(2977, 3254),  
  434. 434.            new RSTile(2977, 3246) };  
  435. 435.  
  436. 436.      } else if (GUI.location1.getSelectedItem().toString()  
  437. 437.          .equals("Al Kharid")) {  
  438. 438.        mineTile = new RSTile(3297, 3314);  
  439. 439.        bankTile = new RSTile(3269, 3167);  
  440. 440.  
  441. 441.        toMine = new RSTile[] { new RSTile(3269, 3167),  
  442. 442.            new RSTile(3277, 3176), new RSTile(3282, 3188),  
  443. 443.            new RSTile(3279, 3201), new RSTile(3277, 3215),  
  444. 444.            new RSTile(3280, 3227), new RSTile(3286, 3241),  
  445. 445.            new RSTile(3293, 3253), new RSTile(3295, 3266),  
  446. 446.            new RSTile(3298, 3278), new RSTile(3298, 3287),  
  447. 447.            new RSTile(3298, 3299), new RSTile(3298, 3299),  
  448. 448.            new RSTile(3299, 3311), new RSTile(3297, 3314) };  
  449. 449.  
  450. 450.        toBank = new RSTile[] { new RSTile(3297, 3314),  
  451. 451.            new RSTile(3299, 3311), new RSTile(3298, 3299),  
  452. 452.            new RSTile(3298, 3299), new RSTile(3298, 3287),  
  453. 453.            new RSTile(3298, 3278), new RSTile(3295, 3266),  
  454. 454.            new RSTile(3293, 3253), new RSTile(3286, 3241),  
  455. 455.            new RSTile(3280, 3227), new RSTile(3277, 3215),  
  456. 456.            new RSTile(3279, 3201), new RSTile(3282, 3188),  
  457. 457.            new RSTile(3277, 3176), new RSTile(3269, 3167) };  
  458. 458.  
  459. 459.        safeClick = true;  
  460. 460.  
  461. 461.      } else {  
  462. 462.        log("[Error] = Selected ore and location do not match.");  
  463. 463.      }  
  464. 464.  
  465. 465.    } else if (GUI.oreType.getSelectedItem().toString().equals("Tin")) {  
  466. 466.      rockID = tin;  
  467. 467.      oreID = 438;  
  468. 468.      if (GUI.location1.getSelectedItem().toString()  
  469. 469.          .equals("Barbarian Village")) {  
  470. 470.        mineTile = new RSTile(3080, 3419);  
  471. 471.        bankTile = new RSTile(3182, 3436);  
  472. 472.  
  473. 473.        toBank = new RSTile[] { new RSTile(3080, 3491),  
  474. 474.            new RSTile(3089, 3420), new RSTile(3101, 3420),  
  475. 475.            new RSTile(3112, 3420), new RSTile(3124, 3420),  
  476. 476.            new RSTile(3134, 3423), new RSTile(3147, 3424),  
  477. 477.            new RSTile(3159, 3423), new RSTile(3172, 3429),  
  478. 478.            new RSTile(3182, 3436) };  
  479. 479.  
  480. 480.        toMine = new RSTile[] { new RSTile(3182, 3436),  
  481. 481.            new RSTile(3172, 3429), new RSTile(3159, 3423),  
  482. 482.            new RSTile(3147, 3424), new RSTile(3134, 3423),  
  483. 483.            new RSTile(3124, 3420), new RSTile(3112, 3420),  
  484. 484.            new RSTile(3101, 3420), new RSTile(3089, 3420),  
  485. 485.            new RSTile(3080, 3491) };  
  486. 486.  
  487. 487.        safeClick = true;  
  488. 488.  
  489. 489.      } else if (GUI.location1.getSelectedItem().toString()  
  490. 490.          .equals("Rimmington")) {  
  491. 491.        mineTile = new RSTile(2984, 3236);  
  492. 492.        bankTile = new RSTile(3012, 3355);  
  493. 493.  
  494. 494.        toBank = new RSTile[] { new RSTile(2984, 3236),  
  495. 495.            new RSTile(2978, 3242), new RSTile(2986, 3233),  
  496. 496.            new RSTile(2994, 3243), new RSTile(2993, 3256),  
  497. 497.            new RSTile(2993, 3269), new RSTile(3001, 3276),  
  498. 498.            new RSTile(3003, 3289), new RSTile(3003, 3302),  
  499. 499.            new RSTile(3005, 3315), new RSTile(3006, 3327),  
  500. 500.            new RSTile(3007, 3338), new RSTile(3012, 3355) };  
  501. 501.  
  502. 502.        toMine = new RSTile[] { new RSTile(3012, 3355),  
  503. 503.            new RSTile(3007, 3344), new RSTile(3007, 3332),  
  504. 504.            new RSTile(3006, 3321), new RSTile(2997, 3310),  
  505. 505.            new RSTile(2986, 3304), new RSTile(2985, 3293),  
  506. 506.            new RSTile(2986, 3282), new RSTile(2979, 3274),  
  507. 507.            new RSTile(2974, 3263), new RSTile(2977, 3254),  
  508. 508.            new RSTile(2978, 3242), new RSTile(2984, 3236) };  
  509. 509.  
  510. 510.      } else if (GUI.location1.getSelectedItem().toString()  
  511. 511.          .equals("Al Kharid")) {  
  512. 512.        mineTile = new RSTile(3301, 3316);  
  513. 513.        bankTile = new RSTile(3269, 3167);  
  514. 514.  
  515. 515.        toMine = new RSTile[] { new RSTile(3269, 3167),  
  516. 516.            new RSTile(3277, 3176), new RSTile(3282, 3188),  
  517. 517.            new RSTile(3279, 3201), new RSTile(3277, 3215),  
  518. 518.            new RSTile(3280, 3227), new RSTile(3286, 3241),  
  519. 519.            new RSTile(3293, 3253), new RSTile(3295, 3266),  
  520. 520.            new RSTile(3298, 3278), new RSTile(3298, 3287),  
  521. 521.            new RSTile(3298, 3299), new RSTile(3298, 3299),  
  522. 522.            new RSTile(3299, 3311), new RSTile(3301, 3316) };  
  523. 523.  
  524. 524.        toBank = new RSTile[] { new RSTile(3301, 3316),  
  525. 525.            new RSTile(3299, 3311), new RSTile(3298, 3299),  
  526. 526.            new RSTile(3298, 3299), new RSTile(3298, 3287),  
  527. 527.            new RSTile(3298, 3278), new RSTile(3295, 3266),  
  528. 528.            new RSTile(3293, 3253), new RSTile(3286, 3241),  
  529. 529.            new RSTile(3280, 3227), new RSTile(3277, 3215),  
  530. 530.            new RSTile(3279, 3201), new RSTile(3282, 3188),  
  531. 531.            new RSTile(3277, 3176), new RSTile(3269, 3167) };  
  532. 532.  
  533. 533.        safeClick = true;  
  534. 534.  
  535. 535.      } else if (GUI.location1.getSelectedItem().toString()  
  536. 536.          .equals("West Varrock")) {  
  537. 537.        mineTile = new RSTile(3182, 3377);  
  538. 538.        bankTile = new RSTile(3182, 3436);  
  539. 539.  
  540. 540.        toMine = new RSTile[] { new RSTile(3182, 3436),  
  541. 541.            new RSTile(3172, 3425), new RSTile(3171, 3410),  
  542. 542.            new RSTile(3175, 3396), new RSTile(3179, 3383),  
  543. 543.            new RSTile(3182, 3376) };  
  544. 544.  
  545. 545.        toBank = new RSTile[] { new RSTile(3182, 3376),  
  546. 546.            new RSTile(3179, 3383), new RSTile(3175, 3396),  
  547. 547.            new RSTile(3171, 3410), new RSTile(3172, 3425),  
  548. 548.            new RSTile(3182, 3436) };  
  549. 549.  
  550. 550.      } else {  
  551. 551.        log("[Error] = Selected ore and location do not match.");  
  552. 552.      }  
  553. 553.  
  554. 554.    } else if (GUI.oreType.getSelectedItem().toString().equals("Iron")) {  
  555. 555.      rockID = iron;  
  556. 556.      oreID = 440;  
  557. 557.      if (GUI.location1.getSelectedItem().toString().equals("Rimmington")) {  
  558. 558.        mineTile = new RSTile(2970, 3240);  
  559. 559.        bankTile = new RSTile(3012, 3355);  
  560. 560.  
  561. 561.        toBank = new RSTile[] { new RSTile(2970, 3240),  
  562. 562.            new RSTile(2978, 3242), new RSTile(2986, 3233),  
  563. 563.            new RSTile(2994, 3243), new RSTile(2993, 3256),  
  564. 564.            new RSTile(2993, 3269), new RSTile(3001, 3276),  
  565. 565.            new RSTile(3003, 3289), new RSTile(3003, 3302),  
  566. 566.            new RSTile(3005, 3315), new RSTile(3006, 3327),  
  567. 567.            new RSTile(3007, 3338), new RSTile(3012, 3355) };  
  568. 568.  
  569. 569.        toMine = new RSTile[] { new RSTile(3012, 3355),  
  570. 570.            new RSTile(3007, 3344), new RSTile(3007, 3332),  
  571. 571.            new RSTile(3006, 3321), new RSTile(2997, 3310),  
  572. 572.            new RSTile(2986, 3304), new RSTile(2985, 3293),  
  573. 573.            new RSTile(2986, 3282), new RSTile(2979, 3274),  
  574. 574.            new RSTile(2974, 3263), new RSTile(2977, 3254),  
  575. 575.            new RSTile(2978, 3242), new RSTile(2970, 3240) };  
  576. 576.  
  577. 577.      } else if (GUI.location1.getSelectedItem().toString()  
  578. 578.          .equals("Al Kharid")) {  
  579. 579.        mineTile = new RSTile(3298, 3311);  
  580. 580.        bankTile = new RSTile(3269, 3167);  
  581. 581.  
  582. 582.        toMine = new RSTile[] { new RSTile(3269, 3167),  
  583. 583.            new RSTile(3277, 3176), new RSTile(3282, 3188),  
  584. 584.            new RSTile(3279, 3201), new RSTile(3277, 3215),  
  585. 585.            new RSTile(3280, 3227), new RSTile(3286, 3241),  
  586. 586.            new RSTile(3293, 3253), new RSTile(3295, 3266),  
  587. 587.            new RSTile(3298, 3278), new RSTile(3298, 3287),  
  588. 588.            new RSTile(3298, 3299), new RSTile(3298, 3311) };  
  589. 589.  
  590. 590.        toBank = new RSTile[] { new RSTile(3298, 3311),  
  591. 591.            new RSTile(3298, 3299), new RSTile(3298, 3287),  
  592. 592.            new RSTile(3298, 3278), new RSTile(3295, 3266),  
  593. 593.            new RSTile(3293, 3253), new RSTile(3286, 3241),  
  594. 594.            new RSTile(3280, 3227), new RSTile(3277, 3215),  
  595. 595.            new RSTile(3279, 3201), new RSTile(3282, 3188),  
  596. 596.            new RSTile(3277, 3176), new RSTile(3269, 3167) };  
  597. 597.  
  598. 598.        safeClick = true;  
  599. 599.  
  600. 600.      } else if (GUI.location1.getSelectedItem().toString()  
  601. 601.          .equals("West Varrock")) {  
  602. 602.        mineTile = new RSTile(3175, 3367);  
  603. 603.        bankTile = new RSTile(3182, 3436);  
  604. 604.  
  605. 605.        toMine = new RSTile[] { new RSTile(3182, 3436),  
  606. 606.            new RSTile(3172, 3425), new RSTile(3171, 3410),  
  607. 607.            new RSTile(3175, 3396), new RSTile(3179, 3383),  
  608. 608.            new RSTile(3184, 3373), new RSTile(3175, 3367) };  
  609. 609.  
  610. 610.        toBank = new RSTile[] { new RSTile(3175, 3367),  
  611. 611.            new RSTile(3184, 3373), new RSTile(3179, 3383),  
  612. 612.            new RSTile(3175, 3396), new RSTile(3171, 3410),  
  613. 613.            new RSTile(3172, 3425), new RSTile(3182, 3436) };  
  614. 614.      } else {  
  615. 615.        log("[Error] = Selected ore and location do not match.");  
  616. 616.      }  
  617. 617.  
  618. 618.    } else if (GUI.oreType.getSelectedItem().toString().equals("Silver")) {  
  619. 619.      rockID = silver;  
  620. 620.      oreID = 442;  
  621. 621.      if (GUI.location1.getSelectedItem().toString().equals("Al Kharid")) {  
  622. 622.        mineTile = new RSTile(3295, 3301);  
  623. 623.        bankTile = new RSTile(3269, 3167);  
  624. 624.  
  625. 625.        toMine = new RSTile[] { new RSTile(3269, 3167),  
  626. 626.            new RSTile(3277, 3176), new RSTile(3282, 3188),  
  627. 627.            new RSTile(3279, 3201), new RSTile(3277, 3215),  
  628. 628.            new RSTile(3280, 3227), new RSTile(3286, 3241),  
  629. 629.            new RSTile(3293, 3253), new RSTile(3295, 3266),  
  630. 630.            new RSTile(3298, 3278), new RSTile(3298, 3287),  
  631. 631.            new RSTile(3295, 3301) };  
  632. 632.  
  633. 633.        toBank = new RSTile[] { new RSTile(3295, 3301),  
  634. 634.            new RSTile(3298, 3287), new RSTile(3298, 3278),  
  635. 635.            new RSTile(3295, 3266), new RSTile(3293, 3253),  
  636. 636.            new RSTile(3286, 3241), new RSTile(3280, 3227),  
  637. 637.            new RSTile(3277, 3215), new RSTile(3279, 3201),  
  638. 638.            new RSTile(3282, 3188), new RSTile(3277, 3176),  
  639. 639.            new RSTile(3269, 3167) };  
  640. 640.  
  641. 641.        safeClick = true;  
  642. 642.  
  643. 643.      } else if (GUI.location1.getSelectedItem().toString()  
  644. 644.          .equals("West Varrock")) {  
  645. 645.        mineTile = new RSTile(3176, 3368);  
  646. 646.        bankTile = new RSTile(3182, 3436);  
  647. 647.  
  648. 648.        toMine = new RSTile[] { new RSTile(3182, 3436),  
  649. 649.            new RSTile(3172, 3425), new RSTile(3171, 3410),  
  650. 650.            new RSTile(3175, 3396), new RSTile(3179, 3383),  
  651. 651.            new RSTile(3184, 3373), new RSTile(3177, 3368) };  
  652. 652.  
  653. 653.        toBank = new RSTile[] { new RSTile(3177, 3368),  
  654. 654.            new RSTile(3184, 3373), new RSTile(3179, 3383),  
  655. 655.            new RSTile(3175, 3396), new RSTile(3171, 3410),  
  656. 656.            new RSTile(3172, 3425), new RSTile(3182, 3436) };  
  657. 657.      } else {  
  658. 658.        log("[Error] = Selected ore and location do not match.");  
  659. 659.      }  
  660. 660.  
  661. 661.    } else if (GUI.oreType.getSelectedItem().toString().equals("Coal")) {  
  662. 662.      rockID = coal;  
  663. 663.      oreID = 453;  
  664. 664.      if (GUI.location1.getSelectedItem().toString()  
  665. 665.          .equals("Barbarian Village")) {  
  666. 666.        mineTile = new RSTile(3083, 3422);  
  667. 667.        bankTile = new RSTile(3182, 3436);  
  668. 668.  
  669. 669.        toBank = new RSTile[] { new RSTile(3083, 3422),  
  670. 670.            new RSTile(3089, 3420), new RSTile(3101, 3420),  
  671. 671.            new RSTile(3112, 3420), new RSTile(3124, 3420),  
  672. 672.            new RSTile(3134, 3423), new RSTile(3147, 3424),  
  673. 673.            new RSTile(3159, 3423), new RSTile(3172, 3429),  
  674. 674.            new RSTile(3182, 3436) };  
  675. 675.  
  676. 676.        toMine = new RSTile[] { new RSTile(3182, 3436),  
  677. 677.            new RSTile(3172, 3429), new RSTile(3159, 3423),  
  678. 678.            new RSTile(3147, 3424), new RSTile(3134, 3423),  
  679. 679.            new RSTile(3124, 3420), new RSTile(3112, 3420),  
  680. 680.            new RSTile(3101, 3420), new RSTile(3089, 3420),  
  681. 681.            new RSTile(3083, 3422) };  
  682. 682.  
  683. 683.        safeClick = true;  
  684. 684.  
  685. 685.      } else if (GUI.location1.getSelectedItem().toString()  
  686. 686.          .equals("Al Kharid")) {  
  687. 687.        mineTile = new RSTile(3300, 3299);  
  688. 688.        bankTile = new RSTile(3269, 3167);  
  689. 689.  
  690. 690.        toMine = new RSTile[] { new RSTile(3269, 3167),  
  691. 691.            new RSTile(3277, 3176), new RSTile(3282, 3188),  
  692. 692.            new RSTile(3279, 3201), new RSTile(3277, 3215),  
  693. 693.            new RSTile(3280, 3227), new RSTile(3286, 3241),  
  694. 694.            new RSTile(3293, 3253), new RSTile(3295, 3266),  
  695. 695.            new RSTile(3298, 3278), new RSTile(3298, 3287),  
  696. 696.            new RSTile(3300, 3300) };  
  697. 697.  
  698. 698.        toBank = new RSTile[] { new RSTile(3300, 3300),  
  699. 699.            new RSTile(3298, 3287), new RSTile(3298, 3278),  
  700. 700.            new RSTile(3295, 3266), new RSTile(3293, 3253),  
  701. 701.            new RSTile(3286, 3241), new RSTile(3280, 3227),  
  702. 702.            new RSTile(3277, 3215), new RSTile(3279, 3201),  
  703. 703.            new RSTile(3282, 3188), new RSTile(3277, 3176),  
  704. 704.            new RSTile(3269, 3167) };  
  705. 705.  
  706. 706.        safeClick = true;  
  707. 707.  
  708. 708.      } else {  
  709. 709.        log("[Error] = Selected ore and location do not match.");  
  710. 710.      }  
  711. 711.  
  712. 712.    } else if (GUI.oreType.getSelectedItem().toString().equals("Gold")) {  
  713. 713.      rockID = gold;  
  714. 714.      oreID = 444;  
  715. 715.      if (GUI.location1.getSelectedItem().toString().equals("Rimmington")) {  
  716. 716.        mineTile = new RSTile(2977, 3234);  
  717. 717.        bankTile = new RSTile(3012, 3355);  
  718. 718.  
  719. 719.        toBank = new RSTile[] { new RSTile(2977, 3234),  
  720. 720.            new RSTile(2978, 3242), new RSTile(2986, 3233),  
  721. 721.            new RSTile(2994, 3243), new RSTile(2993, 3256),  
  722. 722.            new RSTile(2993, 3269), new RSTile(3001, 3276),  
  723. 723.            new RSTile(3003, 3289), new RSTile(3003, 3302),  
  724. 724.            new RSTile(3005, 3315), new RSTile(3006, 3327),  
  725. 725.            new RSTile(3007, 3338), new RSTile(3012, 3355) };  
  726. 726.  
  727. 727.        toMine = new RSTile[] { new RSTile(3012, 3355),  
  728. 728.            new RSTile(3007, 3344), new RSTile(3007, 3332),  
  729. 729.            new RSTile(3006, 3321), new RSTile(2997, 3310),  
  730. 730.            new RSTile(2986, 3304), new RSTile(2985, 3293),  
  731. 731.            new RSTile(2986, 3282), new RSTile(2979, 3274),  
  732. 732.            new RSTile(2974, 3263), new RSTile(2977, 3254),  
  733. 733.            new RSTile(2978, 3242), new RSTile(2977, 3234) };  
  734. 734.  
  735. 735.      } else if (GUI.location1.getSelectedItem().toString()  
  736. 736.          .equals("Al Kharid")) {  
  737. 737.        mineTile = new RSTile(3297, 3287);  
  738. 738.        bankTile = new RSTile(3269, 3167);  
  739. 739.  
  740. 740.        toMine = new RSTile[] { new RSTile(3269, 3167),  
  741. 741.            new RSTile(3277, 3176), new RSTile(3282, 3188),  
  742. 742.            new RSTile(3279, 3201), new RSTile(3277, 3215),  
  743. 743.            new RSTile(3280, 3227), new RSTile(3286, 3241),  
  744. 744.            new RSTile(3293, 3253), new RSTile(3295, 3266),  
  745. 745.            new RSTile(3298, 3278), new RSTile(3297, 3287) };  
  746. 746.  
  747. 747.        toBank = new RSTile[] { new RSTile(3297, 3287),  
  748. 748.            new RSTile(3298, 3278), new RSTile(3295, 3266),  
  749. 749.            new RSTile(3293, 3253), new RSTile(3286, 3241),  
  750. 750.            new RSTile(3280, 3227), new RSTile(3277, 3215),  
  751. 751.            new RSTile(3279, 3201), new RSTile(3282, 3188),  
  752. 752.            new RSTile(3277, 3176), new RSTile(3269, 3167) };  
  753. 753.  
  754. 754.        safeClick = true;  
  755. 755.      } else {  
  756. 756.        log("[Error] = Selected ore and location do not match.");  
  757. 757.      }  
  758. 758.    }  
  759. 759.  
  760. 760.    mouse.setSpeed(random(7, 8)); // Lets sort out this mouse  
  761. 761.    startTime = System.currentTimeMillis(); // start paint timer  
  762. 762.    return true;  
  763. 763.  }  
  764. 764.  
  765. 765.  // ///////////////////////////////  
  766. 766.  // ////////SERVERMESSAGE//////////  
  767. 767.  // ///////////////////////////////  
  768. 768.  
  769. 769.  public void messageReceived(MessageEvent e) {  
  770. 770.    String svrmsg = e.getMessage();  
  771. 771.  
  772. 772.    if (svrmsg.contains("clay")) {  
  773. 773.      oresMined = oresMined + 1;  
  774. 774.    }  
  775. 775.    if (svrmsg.contains("copper")) {  
  776. 776.      oresMined = oresMined + 1;  
  777. 777.    }  
  778. 778.    if (svrmsg.contains("tin")) {  
  779. 779.      oresMined = oresMined + 1;  
  780. 780.    }  
  781. 781.    if (svrmsg.contains("iron")) {  
  782. 782.      oresMined = oresMined + 1;  
  783. 783.    }  
  784. 784.    if (svrmsg.contains("silver")) {  
  785. 785.      oresMined = oresMined + 1;  
  786. 786.    }  
  787. 787.    if (svrmsg.contains("coal")) {  
  788. 788.      oresMined = oresMined + 1;  
  789. 789.    }  
  790. 790.    if (svrmsg.contains("gold")) {  
  791. 791.      oresMined = oresMined + 1;  
  792. 792.    }  
  793. 793.  
  794. 794.    if (svrmsg.contains("just found")) {  
  795. 795.      gemsMined = gemsMined + 1;  
  796. 796.    }  
  797. 797.  }  
  798. 798.  
  799. 799.  // ///////////////////////  
  800. 800.  // /////RESTandRUN////////  
  801. 801.  // ///////////////////////  
  802. 802.  
  803. 803.  public boolean letsRun() {  
  804. 804.    mouse.setSpeed(random(4, 9));  
  805. 805.    if (minRunSoRest == 0) {  
  806. 806.      if (mineEss) {  
  807. 807.        minRunSoRest = random(78, 88);  
  808. 808.      } else {  
  809. 809.        minRunSoRest = random(1, 23);  
  810. 810.      }  
  811. 811.      stopRest = random(89, 97);  
  812. 812.    }  
  813. 813.    if (walking.isRunEnabled() == false  
  814. 814.        || walking.getEnergy() < minRunSoRest) {  
  815. 815.      if (walking.getEnergy() < stopRest) {  
  816. 816.        status = "Resting";  
  817. 817.        walking.rest(random(92, 100));  
  818. 818.        do {  
  819. 819.          sleep(250, 350);  
  820. 820.          AntiBanPro();  
  821. 821.          sleep(250, 350);  
  822. 822.          AntiBanCamera();  
  823. 823.        } while (walking.getEnergy() < stopRest);  
  824. 824.      }  
  825. 825.      if (walking.getEnergy() > stopRest) {  
  826. 826.        if (walking.isRunEnabled() == false) {  
  827. 827.          status = "Turning run on";  
  828. 828.          walking.setRun(true);  
  829. 829.          sleep(850, 1200);  
  830. 830.          minRunSoRest = 0;  
  831. 831.        } else if (walking.isRunEnabled() == true) {  
  832. 832.          sleep(20, 30);  
  833. 833.        }  
  834. 834.      }  
  835. 835.    } else {  
  836. 836.      sleep(12, 15);  
  837. 837.    }  
  838. 838.    return true;  
  839. 839.  }  
  840. 840.  
  841. 841.  // ///////////////////////  
  842. 842.  // ////////BANK///////////  
  843. 843.  // ///////////////////////  
  844. 844.  
  845. 845.  public boolean bankGems() {  
  846. 846.    while (inventory.getItem(gems) != null) {  
  847. 847.      RSItem item = inventory.getItem(gems);  
  848. 848.      item.doClick(true);  
  849. 849.      sleep(500, 600);  
  850. 850.    }  
  851. 851.    return true;  
  852. 852.  }  
  853. 853.  
  854. 854.  public boolean bank() {  
  855. 855.    mouse.setSpeed(random(5, 8));  
  856. 856.    status = "Banking";  
  857. 857.    if (bank.isOpen()) {  
  858. 858.  
  859. 859.      if (gotPickOn == 0) { // holding a pickaxe?  
  860. 860.        if (inventory.containsOneOf(pickID)) {  
  861. 861.          pickHold = false;  
  862. 862.        } else  
  863. 863.          pickHold = true;  
  864. 864.      }  
  865. 865.  
  866. 866.      // if yes bank fast  
  867. 867.      if (pickHold == true) {  
  868. 868.        bank.depositAll();  
  869. 869.        sleep(random(250, 500));  
  870. 870.      } else if (pickHold == false) { // if not bank slowly  
  871. 871.        bank.depositAllExcept(pickID);  
  872. 872.        bankGems();  
  873. 873.        sleep(random(250, 500));  
  874. 874.      }  
  875. 875.  
  876. 876.      mouse.move(490, 36, 3, 3); // lets safely close the bank safely  
  877. 877.      sleep(200, 500);  
  878. 878.      mouse.click(true);  
  879. 879.      sleep(random(300, 700));  
  880. 880.      AntiBanCamera();  
  881. 881.      AntiBanPro();  
  882. 882.  
  883. 883.    } else {  
  884. 884.      bank.open();  
  885. 885.      sleep(500);  
  886. 886.      while (players.getMyPlayer().isMoving()) {  
  887. 887.        sleep(50);  
  888. 888.      }  
  889. 889.      sleep(700);  
  890. 890.    }  
  891. 891.    return true;  
  892. 892.  }  
  893. 893.  
  894. 894.  // //////////////////////  
  895. 895.  // //////GetImage////////  
  896. 896.  // //////////////////////  
  897. 897.  
  898. 898.  private Image getImage(String url) {  
  899. 899.    try {  
  900. 900.      return ImageIO.read(new URL(url));  
  901. 901.    } catch (IOException e) {  
  902. 902.      return null;  
  903. 903.    }  
  904. 904.  }  
  905. 905.  
  906. 906.  // //////////////////////  
  907. 907.  // ////////mTwo//////////  
  908. 908.  // //////////////////////  
  909. 909.  
  910. 910.  public void mTwo() {  
  911. 911.    mouse.setSpeed(random(4, 7));  
  912. 912.    status = "Looking for rock";  
  913. 913.    RSObject rock = objects.getNearest(rockID);  
  914. 914.    if (rock != null) {  
  915. 915.      paintRock = rock; // paints rock  
  916. 916.      if (safeClick == true) {  
  917. 917.        rockSpot = rock.getLocation(); // sets the title rock is on  
  918. 918.        mouse.move(calc.tileToScreen(rockSpot), random(-10, 10),  
  919. 919.            random(-10, 10));// hovers over that tile  
  920. 920.        if (menu.contains("Mine")) {  
  921. 921.          menu.doAction("Mine");  
  922. 922.        }  
  923. 923.      } else {  
  924. 924.        rock.doAction("Mine");  
  925. 925.      }  
  926. 926.      if (calc.distanceTo(mineTile) <= 1) {  
  927. 927.        sleep(random(1700, 1800));  
  928. 928.      } else if (calc.distanceTo(mineTile) <= 2) {  
  929. 929.        sleep(random(2100, 2200));  
  930. 930.      } else if (calc.distanceTo(mineTile) <= 3) {  
  931. 931.        sleep(random(2200, 2300));  
  932. 932.      } else if (calc.distanceTo(mineTile) <= 4) {  
  933. 933.        sleep(random(2300, 2500));  
  934. 934.      }  
  935. 935.  
  936. 936.      while (!(getMyPlayer().getAnimation() == -1 && objects  
  937. 937.          .getNearest(rockID) != rock)) {  
  938. 938.        status = "Mining ore";  
  939. 939.        AntiBanPro();  
  940. 940.        AntiBanCamera();  
  941. 941.        sleep(random(50, 150));  
  942. 942.        if (inventory.getCount(oreID) >= 1  
  943. 943.            && getMyPlayer().getAnimation() != -1) {  
  944. 944.          inventory.getItem(oreID).getComponent().doHover();  
  945. 945.        }  
  946. 946.      }  
  947. 947.      if (inventory.getCount(oreID) >= 2) {  
  948. 948.        status = "Dropping ore";  
  949. 949.        mouse.setSpeed(random(6, 7));  
  950. 950.        inventory.dropAllExcept(pickID);  
  951. 951.      }  
  952. 952.    }  
  953. 953.  }  
  954. 954.  
  955. 955.  // //////////////////////  
  956. 956.  // ///////hybrid/////////  
  957. 957.  // //////////////////////  
  958. 958.  
  959. 959.  private void hybrid() {  
  960. 960.    mouse.setSpeed(random(5, 7));  
  961. 961.  
  962. 962.    if (inventory.getCountExcept(pickID) >= 1) {  
  963. 963.      RSObject rock = objects.getNearest(rockID);  
  964. 964.  
  965. 965.      if (rock != null) {  
  966. 966.        paintRock = rock; // first set this up  
  967. 967.        rockSpot = rock.getLocation();  
  968. 968.  
  969. 969.        // next click on rock  
  970. 970.        status = "Clicking on rock";  
  971. 971.        if (safeClick == true) {  
  972. 972.          mouse.move(calc.tileToScreen(rockSpot), random(-10, 10),  
  973. 973.              random(-10, 10));// hovers over that tile  
  974. 974.          if (menu.contains("Mine")) {  
  975. 975.            menu.doAction("Mine");  
  976. 976.          }  
  977. 977.        } else {  
  978. 978.          rock.doAction("Mine");  
  979. 979.        }  
  980. 980.        sleep(100, 150);  
  981. 981.  
  982. 982.        // while walking towards rock drop all ore  
  983. 983.        status = "Dropping ore";  
  984. 984.        mouse.setSpeed(random(4, 7));  
  985. 985.        inventory.dropAllExcept(pickID);  
  986. 986.  
  987. 987.        // then click to actually mine the ore  
  988. 988.        mouse.setSpeed(random(5, 8));  
  989. 989.  
  990. 990.        if (safeClick == true) {  
  991. 991.          mouse.move(calc.tileToScreen(rockSpot), random(-10, 10),  
  992. 992.              random(-10, 10));// hovers over that tile  
  993. 993.          if (menu.contains("Mine")) {  
  994. 994.            menu.doAction("Mine");  
  995. 995.          }  
  996. 996.        } else {  
  997. 997.          rock.doAction("Mine");  
  998. 998.        }  
  999. 999.  
  1000. 1000.        sleep(random(1700, 1800));  
  1001. 1001.        // only needs as one spot of hopefully  
  1002. 1002.  
  1003. 1003.        while (!(getMyPlayer().getAnimation() == -1 && objects  
  1004. 1004.            .getNearest(rockID) != rock)) {  
  1005. 1005.          status = "Mining ore";  
  1006. 1006.          AntiBanPro();  
  1007. 1007.          AntiBanCamera();  
  1008. 1008.          sleep(random(50, 150));  
  1009. 1009.        }  
  1010. 1010.      }  
  1011. 1011.    } else {  
  1012. 1012.      mine();  
  1013. 1013.    }  
  1014. 1014.  }  
  1015. 1015.  
  1016. 1016.  // //////////////////////  
  1017. 1017.  // ////////DROP//////////  
  1018. 1018.  // //////////////////////  
  1019. 1019.  
  1020. 1020.  private void dropOre() {  
  1021. 1021.    mouse.setSpeed(random(7, 8));  
  1022. 1022.    strangeRock();  
  1023. 1023.    status = "Dropping ore";  
  1024. 1024.    inventory.dropAllExcept(pickID);  
  1025. 1025.    sleep(200, 500);  
  1026. 1026.  }  
  1027. 1027.  
  1028. 1028.  // ///////////////////////  
  1029. 1029.  // ///////MOUSE///////////  
  1030. 1030.  // ///////////////////////  
  1031. 1031.  
  1032. 1032.  public void mouseMoved(MouseEvent e) {  
  1033. 1033.    if (e.getX() >= 6 && e.getX() < 6 + 60 && e.getY() >= 250  
  1034. 1034.        && e.getY() < 250 + 20) {  
  1035. 1035.      showPaint1 = true;  
  1036. 1036.      showPaint2 = false;  
  1037. 1037.      showPaint3 = false;  
  1038. 1038.      showPaint4 = false;  
  1039. 1039.    }  
  1040. 1040.    if (e.getX() >= 70 && e.getX() < 70 + 60 && e.getY() >= 250  
  1041. 1041.        && e.getY() < 250 + 20) {  
  1042. 1042.      showPaint2 = true;  
  1043. 1043.      showPaint1 = false;  
  1044. 1044.      showPaint3 = false;  
  1045. 1045.      showPaint4 = false;  
  1046. 1046.    }  
  1047. 1047.    if (e.getX() >= 134 && e.getX() < 134 + 60 && e.getY() >= 250  
  1048. 1048.        && e.getY() < 250 + 20) {  
  1049. 1049.      showPaint3 = true;  
  1050. 1050.      showPaint1 = false;  
  1051. 1051.      showPaint2 = false;  
  1052. 1052.      showPaint4 = false;  
  1053. 1053.    }  
  1054. 1054.    if (e.getX() >= 198 && e.getX() < 198 + 13 && e.getY() >= 250  
  1055. 1055.        && e.getY() < 250 + 20) {  
  1056. 1056.      showPaint4 = true;  
  1057. 1057.      showPaint1 = false;  
  1058. 1058.      showPaint2 = false;  
  1059. 1059.      showPaint3 = false;  
  1060. 1060.    }  
  1061. 1061.  } // all for interactive paint say 'aye'  
  1062. 1062.  
  1063. 1063.  public void mouseDragged(MouseEvent e) {  
  1064. 1064.    // complete utter waste,  
  1065. 1065.  }  
  1066. 1066.  
  1067. 1067.  // ///////////////////////  
  1068. 1068.  // ////////WALK///////////  
  1069. 1069.  // ///////////////////////  
  1070. 1070.  
  1071. 1071.  public boolean walkToBank() {  
  1072. 1072.    mouse.setSpeed(random(4, 9));  
  1073. 1073.    status = "Walking to Bank";  
  1074. 1074.    walking.walkPathMM(toBank, 2, 2);  
  1075. 1075.    AntiBanCamera();  
  1076. 1076.    sleep(700);  
  1077. 1077.  
  1078. 1078.    while (players.getMyPlayer().isMoving()) {  
  1079. 1079.      AntiBanCamera();  
  1080. 1080.      sleep(50, 80);  
  1081. 1081.    }  
  1082. 1082.    return true;  
  1083. 1083.  }  
  1084. 1084.  
  1085. 1085.  public boolean walkToMine() {  
  1086. 1086.    mouse.setSpeed(random(4, 9));  
  1087. 1087.    status = "Walking to Mine";  
  1088. 1088.    walking.walkPathMM(toMine, 2, 2);  
  1089. 1089.    sleep(700);  
  1090. 1090.  
  1091. 1091.    while (players.getMyPlayer().isMoving()) {  
  1092. 1092.      AntiBanCamera();  
  1093. 1093.      sleep(50, 80);  
  1094. 1094.    }  
  1095. 1095.  
  1096. 1096.    return true;  
  1097. 1097.  }  
  1098. 1098.  
  1099. 1099.  public boolean walkToRock() {  
  1100. 1100.    mouse.setSpeed(random(4, 9));  
  1101. 1101.    status = "Walking to Essence";  
  1102. 1102.    if (randomNum2 == 0) {  
  1103. 1103.      randomNum2 = random(1, 4);  
  1104. 1104.    }  
  1105. 1105.    if (randomNum2 == 1) {  
  1106. 1106.      walking.walkPathMM(toNE, 2, 2);  
  1107. 1107.    } else if (randomNum2 == 2) {  
  1108. 1108.      walking.walkPathMM(toNW, 2, 2);  
  1109. 1109.    } else if (randomNum2 == 3) {  
  1110. 1110.      walking.walkPathMM(toSE, 2, 2);  
  1111. 1111.    } else if (randomNum2 == 4) {  
  1112. 1112.      walking.walkPathMM(toSW, 2, 2);  
  1113. 1113.    }  
  1114. 1114.    sleep(600, 700);  
  1115. 1115.    while (players.getMyPlayer().isMoving()) {  
  1116. 1116.      AntiBanCamera();  
  1117. 1117.      sleep(50, 80);  
  1118. 1118.    }  
  1119. 1119.  
  1120. 1120.    return true;  
  1121. 1121.  }  
  1122. 1122.  
  1123. 1123.  // ///////////////////////  
  1124. 1124.  // /////AuburyTele////////  
  1125. 1125.  // ///////////////////////  
  1126. 1126.  
  1127. 1127.  public void teleport() {  
  1128. 1128.    RSNPC aubury = npcs.getNearest(auburyID);  
  1129. 1129.    if (aubury != null) {  
  1130. 1130.  
  1131. 1131.      status = "Teleporting.";  
  1132. 1132.      aubury.doAction("Teleport");  
  1133. 1133.    }  
  1134. 1134.    sleep(2400, 3000);  
  1135. 1135.  }  
  1136. 1136.  
  1137. 1137.  // ///////////////////////  
  1138. 1138.  // //////OpenDoor/////////  
  1139. 1139.  // ///////////////////////  
  1140. 1140.  
  1141. 1141.  public void openDoor() {  
  1142. 1142.    RSObject door = objects.getTopAt(doorTile);  
  1143. 1143.    if (door != null) {  
  1144. 1144.      status = "Opening Door.";  
  1145. 1145.      camera.turnToObject(door, random(2, 3));  
  1146. 1146.      door.doAction("Open");  
  1147. 1147.      sleep(random(500, 650));  
  1148. 1148.    }  
  1149. 1149.    if (door == null) {  
  1150. 1150.      teleport();  
  1151. 1151.    }  
  1152. 1152.  }  
  1153. 1153.  
  1154. 1154.  public void openDoor2() {  
  1155. 1155.    RSObject door = objects.getTopAt(doorTile);  
  1156. 1156.    if (door != null) {  
  1157. 1157.      status = "Opening Door.";  
  1158. 1158.      camera.turnToObject(door, random(2, 3));  
  1159. 1159.      door.doAction("Open");  
  1160. 1160.      sleep(500, 650);  
  1161. 1161.    } else if (door == null) {  
  1162. 1162.      status = "Walking To Bank.";  
  1163. 1163.      sleep(550, 700); // maybe needed  
  1164. 1164.      walkToBank();  
  1165. 1165.    }  
  1166. 1166.  }  
  1167. 1167.  
  1168. 1168.  // ///////////////////////  
  1169. 1169.  // ////ClickPortal////////  
  1170. 1170.  // ///////////////////////  
  1171. 1171.  
  1172. 1172.  public void portal() {  
  1173. 1173.    RSObject Portal = objects.getNearest(portalID);  
  1174. 1174.    randomNum2 = 0;  
  1175. 1175.    if (getMyPlayer().getAnimation() == -1 && Portal.getLocation() != null) {  
  1176. 1176.      status = "Using Portal.";  
  1177. 1177.      camera.setAngle(random(180, 90));  
  1178. 1178.      if (calc.distanceTo(Portal) < 3) {  
  1179. 1179.        Portal.doAction("Enter");  
  1180. 1180.        sleep(5050, 7550);  
  1181. 1181.      } else {  
  1182. 1182.        walking.walkTo(Portal.getLocation());  
  1183. 1183.        int i = 1;  
  1184. 1184.        while ((calc.distanceTo(Portal) > 1) || i < 5) {  
  1185. 1185.          sleep(550, 650);  
  1186. 1186.          i++;  
  1187. 1187.        }  
  1188. 1188.      }  
  1189. 1189.    }  
  1190. 1190.  }  
  1191. 1191.  
  1192. 1192.  // ///////////////////////  
  1193. 1193.  // ////StrangeRock////////  
  1194. 1194.  // ///////////////////////  
  1195. 1195.  
  1196. 1196.  private void strangeRock() {  
  1197. 1197.    mouse.setSpeed(random(4, 8));  
  1198. 1198.    RSItem StrangeRock = inventory.getItem(strangeRockID);  
  1199. 1199.    RSInterface inf = interfaces.get(94);  
  1200. 1200.    RSComponent child;  
  1201. 1201.    if (inventory.containsOneOf(strangeRockID)) {  
  1202. 1202.      status = "Destroying strange rock";  
  1203. 1203.      StrangeRock.doAction("Destroy");  
  1204. 1204.      child = inf.getComponent(0);  
  1205. 1205.      if (child != null && child.isValid()) {  
  1206. 1206.        if (child.doAction("Continue")) {  
  1207. 1207.          sleep(900);  
  1208. 1208.        }  
  1209. 1209.      }  
  1210. 1210.    }  
  1211. 1211.  }  
  1212. 1212.  
  1213. 1213.  // ///////////////////////  
  1214. 1214.  // ////////MINE///////////  
  1215. 1215.  // ///////////////////////  
  1216. 1216.  
  1217. 1217.  public boolean mine() {  
  1218. 1218.    mouse.setSpeed(random(4, 7));  
  1219. 1219.    status = "Looking for Rock";  
  1220. 1220.    RSObject rock = objects.getNearest(rockID);  
  1221. 1221.    if (rock != null) {  
  1222. 1222.      paintRock = rock; // paints rock  
  1223. 1223.  
  1224. 1224.      if (mineEss) { // so doesn't just stand there  
  1225. 1225.        camera.turnToObject(rock, random(2, 13));  
  1226. 1226.      }  
  1227. 1227.  
  1228. 1228.      if (safeClick == true) {  
  1229. 1229.        rockSpot = rock.getLocation(); // sets the title rock is on  
  1230. 1230.        mouse.move(calc.tileToScreen(rockSpot), random(-10, 10),  
  1231. 1231.            random(-10, 10));// hovers over that tile  
  1232. 1232.        if (menu.contains("Mine")) {  
  1233. 1233.          menu.doAction("Mine");  
  1234. 1234.        }  
  1235. 1235.      } else {  
  1236. 1236.        rock.doAction("Mine");  
  1237. 1237.      }  
  1238. 1238.      if (calc.distanceTo(mineTile) <= 1) {  
  1239. 1239.        sleep(random(1700, 1800));  
  1240. 1240.      } else if (calc.distanceTo(mineTile) <= 2) {  
  1241. 1241.        sleep(random(2100, 2200));  
  1242. 1242.      } else if (calc.distanceTo(mineTile) <= 3) {  
  1243. 1243.        sleep(random(2200, 2300));  
  1244. 1244.      } else if (calc.distanceTo(mineTile) <= 4) {  
  1245. 1245.        sleep(random(2300, 2500));  
  1246. 1246.      }  
  1247. 1247.  
  1248. 1248.      while (!(getMyPlayer().getAnimation() == -1 && objects  
  1249. 1249.          .getNearest(rockID) != rock)) {  
  1250. 1250.        status = "Mining Ore";  
  1251. 1251.        AntiBanPro();  
  1252. 1252.        AntiBanCamera();  
  1253. 1253.        sleep(random(50, 150));  
  1254. 1254.      }  
  1255. 1255.    }  
  1256. 1256.    return true;  
  1257. 1257.  }  
  1258. 1258.  
  1259. 1259.  // ///////////////////////  
  1260. 1260.  // /////DrawRocks/////////  
  1261. 1261.  // ///////////////////////  
  1262. 1262.  
  1263. 1263.  private void drawTile(Graphics render, RSTile tile, Color color,  
  1264. 1264.      boolean drawCardinalDirections) {  
  1265. 1265.    Point southwest = calc.tileToScreen(tile, 0, 0, 0);  
  1266. 1266.    Point southeast = calc.tileToScreen(  
  1267. 1267.        new RSTile(tile.getX() + 1, tile.getY()), 0, 0, 0);  
  1268. 1268.    Point northwest = calc.tileToScreen(new RSTile(tile.getX(),  
  1269. 1269.        tile.getY() + 1), 0, 0, 0);  
  1270. 1270.    Point northeast = calc.tileToScreen(  
  1271. 1271.        new RSTile(tile.getX() + 1, tile.getY() + 1), 0, 0, 0);  
  1272. 1272.  
  1273. 1273.    if (calc.pointOnScreen(southwest) && calc.pointOnScreen(southeast)  
  1274. 1274.        && calc.pointOnScreen(northwest)  
  1275. 1275.        && calc.pointOnScreen(northeast)) {  
  1276. 1276.      render.setColor(Color.BLACK);  
  1277. 1277.      render.drawPolygon(new int[] { (int) northwest.getX(),  
  1278. 1278.          (int) northeast.getX(), (int) southeast.getX(),  
  1279. 1279.          (int) southwest.getX() },  
  1280. 1280.          new int[] { (int) northwest.getY(), (int) northeast.getY(),  
  1281. 1281.              (int) southeast.getY(), (int) southwest.getY() }, 4);  
  1282. 1282.      render.setColor(color);  
  1283. 1283.      render.fillPolygon(new int[] { (int) northwest.getX(),  
  1284. 1284.          (int) northeast.getX(), (int) southeast.getX(),  
  1285. 1285.          (int) southwest.getX() },  
  1286. 1286.          new int[] { (int) northwest.getY(), (int) northeast.getY(),  
  1287. 1287.              (int) southeast.getY(), (int) southwest.getY() }, 4);  
  1288. 1288.  
  1289. 1289.      if (drawCardinalDirections) {  
  1290. 1290.        render.setColor(Color.WHITE);  
  1291. 1291.  
  1292. 1292.      }  
  1293. 1293.    }  
  1294. 1294.  }  
  1295. 1295.  
  1296. 1296.  private void paintRockModel(final Graphics g, final RSObject o,  
  1297. 1297.      final Color c, String s) {  
  1298. 1298.    for (Polygon p : o.getModel().getTriangles()) {  
  1299. 1299.      g.setColor(c);  
  1300. 1300.      g.drawPolygon(p);  
  1301. 1301.      if (c == Color.green) {  
  1302. 1302.        g.setColor(new Color(0, 200, 0, 130));  
  1303. 1303.      } else if (c == Color.red) {  
  1304. 1304.        g.setColor(new Color(200, 0, 0, 130));  
  1305. 1305.      } else if (c == Color.blue) {  
  1306. 1306.        g.setColor(new Color(0, 0, 200, 70));  
  1307. 1307.      }  
  1308. 1308.      g.fillPolygon(p);  
  1309. 1309.    }  
  1310. 1310.    final Point p = calc.tileToScreen(o.getLocation());  
  1311. 1311.    g.setColor(c);  
  1312. 1312.    g.drawString(s, p.x - 30, p.y - 25);  
  1313. 1313.  }  
  1314. 1314.  
  1315. 1315.  // ///////////////////////  
  1316. 1316.  // ////////PAINT//////////  
  1317. 1317.  // ///////////////////////  
  1318. 1318.  
  1319. 1319.  public void onRepaint(Graphics g) {  
  1320. 1320.    if (game.isLoggedIn() == true) {  
  1321. 1321.  
  1322. 1322.      drawTile(g, players.getMyPlayer().getLocation(), new Color(0, 0,  
  1323. 1323.          200, 70), true);  
  1324. 1324.      if (paintRock != null) {  
  1325. 1325.        paintRockModel(g, paintRock, Color.blue, "Rock");  
  1326. 1326.      }  
  1327. 1327.  
  1328. 1328.      g.setColor(transDarkBlue);  
  1329. 1329.      g.fillRect(6, 250, 60, 20); // interactive square 1  
  1330. 1330.      g.fillRect(70, 250, 60, 20); // interactive square 2  
  1331. 1331.      g.fillRect(134, 250, 60, 20); // interactive square 3  
  1332. 1332.      g.fillRect(198, 250, 13, 20); // interactive square 4  
  1333. 1333.  
  1334. 1334.      g.setColor(Color.white); // words for interactive squares  
  1335. 1335.      g.drawString("STATUS", 11, 267);  
  1336. 1336.      g.drawString("PROFIT", 75, 267);  
  1337. 1337.      g.drawString("EXTRA", 139, 267);  
  1338. 1338.      g.drawString("X", 201, 267);  
  1339. 1339.  
  1340. 1340.      runTime = System.currentTimeMillis() - startTime;  
  1341. 1341.      seconds = runTime / 1000; // seconds  
  1342. 1342.      if (seconds >= 60) { // minutes  
  1343. 1343.        minutes = seconds / 60;  
  1344. 1344.        seconds -= (minutes * 60);  
  1345. 1345.      }  
  1346. 1346.      if (minutes >= 60) { // hours  
  1347. 1347.        hours = minutes / 60;  
  1348. 1348.        minutes -= (hours * 60);  
  1349. 1349.      }  
  1350. 1350.      if (startexp == 0) {  
  1351. 1351.        startexp = skills.getCurrentExp(14);  
  1352. 1352.      }  
  1353. 1353.      if (startLvl == 0) {  
  1354. 1354.        startLvl = skills.getCurrentLevel(Skills.MINING);  
  1355. 1355.      }  
  1356. 1356.      if (pricePerOre == 0) {  
  1357. 1357.        pricePerOre = grandExchange.getMarketPrice(oreID);  
  1358. 1358.      }  
  1359. 1359.  
  1360. 1360.      // adds zero before minutes  
  1361. 1361.      if (minutes >= 10) {  
  1362. 1362.        addZero = "";  
  1363. 1363.      } else if (minutes < 10) {  
  1364. 1364.        addZero = "0";  
  1365. 1365.      }  
  1366. 1366.  
  1367. 1367.      // adds zero before seconds  
  1368. 1368.      if (seconds >= 10) {  
  1369. 1369.        addZero2 = "";  
  1370. 1370.      } else if (seconds < 10) {  
  1371. 1371.        addZero2 = "0";  
  1372. 1372.      }  
  1373. 1373.  
  1374. 1374.      kMade = (oresMined * pricePerOre) / 1000;  
  1375. 1375.      gainedXP = skills.getCurrentExp(14) - startexp;  
  1376. 1376.      if (mineEss) {  
  1377. 1377.        oresMined = gainedXP / xpPerEssence;  
  1378. 1378.      }  
  1379. 1379.      currentLVL = skills.getCurrentLevel(Skills.MINING);  
  1380. 1380.      gainedLVL = currentLVL - startLvl;  
  1381. 1381.      oresPerHour = (int) ((3600000.0 / (double) runTime) * oresMined);  
  1382. 1382.      expPerHour = (int) (3600000.0 / (double) runTime * gainedXP);  
  1383. 1383.      kPerHour = (int) (3600000.0 / (double) runTime * kMade);  
  1384. 1384.  
  1385. 1385.      if (showPaint1 == true) {  
  1386. 1386.  
  1387. 1387.        final int percent = (skills.getPercentToNextLevel(14) * 2);  
  1388. 1388.        g.setColor(transDarkRed);  
  1389. 1389.        g.fillRoundRect(8, 282, 200, 18, 16, 16);  
  1390. 1390.        g.setColor(transDarkGreen);  
  1391. 1391.        g.fillRoundRect(8, 282, percent, 18, 16, 16);  
  1392. 1392.        g.setColor(edgeColor);  
  1393. 1393.        g.drawRoundRect(8, 282, 200, 18, 16, 16);  
  1394. 1394.        g.drawRoundRect(8, 282, percent, 18, 16, 16);  
  1395. 1395.        // Percentage bar till level  
  1396. 1396.  
  1397. 1397.        g.setColor(transDarkBlue);  
  1398. 1398.        g.fillRoundRect(4, 273, 208, 63, 16, 16);  
  1399. 1399.        g.setColor(edgeColor);  
  1400. 1400.        ((Graphics2D) g).setStroke(stroke1);  
  1401. 1401.        g.drawRoundRect(4, 273, 208, 63, 16, 16);  
  1402. 1402.        g.setColor(Color.white);  
  1403. 1403.        g.drawString("Status: " + status, 23, 295);  
  1404. 1404.        g.drawString("Runtime: " + hours + ":" + addZero + minutes  
  1405. 1405.            + ":" + addZero2 + seconds, 12, 315);  
  1406. 1406.        g.drawString("XP Gained: " + gainedXP + " (" + expPerHour  
  1407. 1407.            + "/hour)", 12, 329);  
  1408. 1408.      }  
  1409. 1409.  
  1410. 1410.      if (showPaint2 == true) {  
  1411. 1411.        g.setColor(transDarkBlue);  
  1412. 1412.        g.fillRoundRect(4, 273, 208, 63, 16, 16);  
  1413. 1413.        g.setColor(edgeColor);  
  1414. 1414.        ((Graphics2D) g).setStroke(stroke1);  
  1415. 1415.        g.drawRoundRect(4, 273, 208, 63, 16, 16);  
  1416. 1416.        g.setColor(Color.white);  
  1417. 1417.        g.drawString("Total Profit Made: " + kMade + "k", 12, 295);  
  1418. 1418.        g.drawString("Profit Per Hour: " + kPerHour + "k", 12, 312);  
  1419. 1419.        g.drawString("Total Ores Mined: " + oresMined + " ("  
  1420. 1420.            + oresPerHour + "/hour)", 12, 329);  
  1421. 1421.      }  
  1422. 1422.  
  1423. 1423.      if (showPaint3 == true) {  
  1424. 1424.        g.setColor(transDarkBlue);  
  1425. 1425.        g.fillRoundRect(4, 273, 208, 63, 16, 16);  
  1426. 1426.        g.setColor(edgeColor);  
  1427. 1427.        ((Graphics2D) g).setStroke(stroke1);  
  1428. 1428.        g.drawRoundRect(4, 273, 208, 63, 16, 16);  
  1429. 1429.        g.setColor(Color.white);  
  1430. 1430.        g.drawString("Total Gems Mined: " + gemsMined, 12, 295);  
  1431. 1431.        g.drawString("[Anti-Ban]: " + "Total " + antiBanCount, 12, 312);  
  1432. 1432.        g.drawString(antiBanStatus, 12, 329);  
  1433. 1433.      }  
  1434. 1434.      if (showPaint4 == true) {  
  1435. 1435.        // nothing  
  1436. 1436.      }  
  1437. 1437.  
  1438. 1438.      // Draws the mouse  
  1439. 1439.      g.setColor(transDarkBlue);  
  1440. 1440.      g.drawLine(0, (int) (mouse.getLocation().getY()), 800,  
  1441. 1441.          (int) (mouse.getLocation().getY()));  
  1442. 1442.      g.drawLine((int) (mouse.getLocation().getX()), 0,  
  1443. 1443.          (int) (mouse.getLocation().getX()), 800);  
  1444. 1444.  
  1445. 1445.      // draws banner  
  1446. 1446.      g.drawImage(img1, 1, 170, null);  
  1447. 1447.  
  1448. 1448.    }  
  1449. 1449.  }  
  1450. 1450.  
  1451. 1451.  // /////////////////////////  
  1452. 1452.  // ////////ANTIBAN//////////  
  1453. 1453.  // /////////////////////////  
  1454. 1454.  
  1455. 1455.  private void AntiBanPro() {  
  1456. 1456.    int randomProd = random(1, 60);  
  1457. 1457.    if (randomProd == 1) {  
  1458. 1458.      int randomMore = random(1, 5);  
  1459. 1459.      if (randomMore == 1) {  
  1460. 1460.        antiBanStatus = "Checking mining level..";  
  1461. 1461.        antiBanCount = antiBanCount + 1;  
  1462. 1462.        if (game.getCurrentTab() != 1) {  
  1463. 1463.          game.openTab(1);  
  1464. 1464.          sleep(350, 500);  
  1465. 1465.          mouse.move(random(678, 728), random(213, 232));  
  1466. 1466.          sleep(2000, 3500);  
  1467. 1467.        }  
  1468. 1468.  
  1469. 1469.        else {  
  1470. 1470.          mouse.move(random(678, 728), random(213, 232));  
  1471. 1471.          sleep(2000, 3500);  
  1472. 1472.        }  
  1473. 1473.      } else {  
  1474. 1474.        antiBanStatus = "Lets wait for a while..";  
  1475. 1475.        antiBanCount = antiBanCount + 1;  
  1476. 1476.        sleep(1200, 2500);  
  1477. 1477.      }  
  1478. 1478.    }  
  1479. 1479.    if (randomProd == 2 || randomProd == 3 || randomProd == 4) {  
  1480. 1480.      antiBanStatus = "Pause for a few seconds..";  
  1481. 1481.      antiBanCount = antiBanCount + 1;  
  1482. 1482.      sleep(1000, 2500);  
  1483. 1483.    }  
  1484. 1484.    if (randomProd >= 52) {  
  1485. 1485.      antiBanStatus = "Moving mouse randomly..";  
  1486. 1486.      antiBanCount = antiBanCount + 1;  
  1487. 1487.      mouse.moveRandomly(65, 350);  
  1488. 1488.    } else  
  1489. 1489.      sleep(10, 30);  
  1490. 1490.  }  
  1491. 1491.  
  1492. 1492.  private void AntiBanCamera() {  
  1493. 1493.    int randomNum = random(1, 50);  
  1494. 1494.    if (randomNum == 1 || randomNum == 2 || randomNum == 3) {  
  1495. 1495.      antiBanStatus = "Random camera movement..";  
  1496. 1496.      antiBanCount = antiBanCount + 1;  
  1497. 1497.      camera.moveRandomly(random(2000, 5500));  
  1498. 1498.    }  
  1499. 1499.    if (randomNum == 4 || randomNum == 5) {  
  1500. 1500.      antiBanStatus = "Random camera angle change..";  
  1501. 1501.      antiBanCount = antiBanCount + 1;  
  1502. 1502.      camera.setAngle(random(10, 40));  
  1503. 1503.    }  
  1504. 1504.    if (randomNum == 6) {  
  1505. 1505.      camera.setPitch(random(40, 68));  
  1506. 1506.      antiBanStatus = "Random camera pitch change..";  
  1507. 1507.      antiBanCount = antiBanCount + 1;  
  1508. 1508.    }  
  1509. 1509.    if (randomNum == 7) {  
  1510. 1510.      camera.setPitch(random(20, 45));  
  1511. 1511.      antiBanStatus = "Random camera pitch change..";  
  1512. 1512.      antiBanCount = antiBanCount + 1;  
  1513. 1513.    }  
  1514. 1514.    if (randomNum == 8) {  
  1515. 1515.      camera.setPitch(random(68, 90));  
  1516. 1516.      antiBanStatus = "Random camera pitch change..";  
  1517. 1517.      antiBanCount = antiBanCount + 1;  
  1518. 1518.    } else  
  1519. 1519.      sleep(50, 100);  
  1520. 1520.  }  
  1521. 1521.  
  1522. 1522.  // ///////////////////////  
  1523. 1523.  // ////////EXTRAS/////////  
  1524. 1524.  // ///////////////////////  
  1525. 1525.  
  1526. 1526.  // Will logout if all else fails  
  1527. 1527.  private void failLogOff() {  
  1528. 1528.    log("[!Error occured!] To prevent futher errors the script will now stop.");  
  1529. 1529.    sleep(random(1400, 1600));  
  1530. 1530.    if (game.isOnLogoutTab() == true) {  
  1531. 1531.      sleep(random(300, 1200));  
  1532. 1532.      mouse.move(631 + random(-40, 40), 417 + random(-5, 5));  
  1533. 1533.      sleep(random(250, 2500));  
  1534. 1534.      mouse.click(true);  
  1535. 1535.      sleep(random(5000, 10000));  
  1536. 1536.    } else {  
  1537. 1537.      mouse.move(754 + random(-3, 3), 9 + random(-3, 3));  
  1538. 1538.      sleep(random(100, 150));  
  1539. 1539.      mouse.click(true);  
  1540. 1540.      sleep(random(300, 1200));  
  1541. 1541.      mouse.move(631 + random(-40, 40), 417 + random(-5, 5));  
  1542. 1542.      sleep(random(250, 2500));  
  1543. 1543.      mouse.click(true);  
  1544. 1544.      sleep(random(5000, 10000));  
  1545. 1545.    }  
  1546. 1546.  
  1547. 1547.    stopScript();  
  1548. 1548.  }  
  1549. 1549.  
  1550. 1550.  // //////////////////////////  
  1551. 1551.  // ////////ONFINISH//////////  
  1552. 1552.  // //////////////////////////  
  1553. 1553.  
  1554. 1554.  public void onFinish() {  
  1555. 1555.    log("Thank you for using DarkMiner,");  
  1556. 1556.    log("Please report any bugs and make suggestions on our thread.");  
  1557. 1557.  }  
  1558. 1558.  
  1559. 1559.  // //////////////////////  
  1560. 1560.  // ////////LOOP//////////  
  1561. 1561.  // //////////////////////  
  1562. 1562.  
  1563. 1563.  @Override  
  1564. 1564.  public int loop() {  
  1565. 1565.  
  1566. 1566.    if (mineEss) {  
  1567. 1567.  
  1568. 1568.      // if invent full ---> bank  
  1569. 1569.      if (inventory.isFull() && atBank()) { // bank  
  1570. 1570.        letsRun();  
  1571. 1571.        bank();  
  1572. 1572.      } else if (inventory.isFull()  
  1573. 1573.          && (atNW() || atNE() || atSE() || atSW())) {  
  1574. 1574.        portal();  
  1575. 1575.      } else if (inventory.isFull() && !atNE() && !atNW() && !atSE()  
  1576. 1576.          && !atSW() && !atBank() && !atShop() && !atVarrock()) {  
  1577. 1577.        walkToRock();  
  1578. 1578.      } else if (inventory.isFull() && atShop()) {  
  1579. 1579.        openDoor2();  
  1580. 1580.      } else if (inventory.isFull()) {  
  1581. 1581.        walkToBank();  
  1582. 1582.      }  
  1583. 1583.  
  1584. 1584.      // if invent not full ---> mine  
  1585. 1585.      if ((!inventory.isFull()) && (atNW() || atNE() || atSW() || atSE())) {  
  1586. 1586.        mine();  
  1587. 1587.      } else if (!inventory.isFull() && !atNE() && !atNW() && !atSE()  
  1588. 1588.          && !atSW() && !atBank() && !atShop() && !atVarrock()) {  
  1589. 1589.        walkToRock();  
  1590. 1590.  
  1591. 1591.      } else if (!inventory.isFull() && !atNE() && !atNW() && !atSE()  
  1592. 1592.          && !atSW() && !atCenter() && !atShop() && !atDoor()) {  
  1593. 1593.        walkToMine();  
  1594. 1594.  
  1595. 1595.      } else if (!inventory.isFull() && atDoor()) {  
  1596. 1596.        openDoor();  
  1597. 1597.  
  1598. 1598.      } else {  
  1599. 1599.        sleep(200, 300);  
  1600. 1600.      }  
  1601. 1601.    } else {  
  1602. 1602.      // If inventory full --> bank or drop  
  1603. 1603.      if (inventory.isFull()) {  
  1604. 1604.        if (modeDrop || modeMine2 || modeHybrid == true) {  
  1605. 1605.          dropOre();  
  1606. 1606.        }  
  1607. 1607.        // otherwise bank  
  1608. 1608.        else if (modeBank == true) {  
  1609. 1609.          if (calc.distanceTo(bankTile) < 5) {  
  1610. 1610.            bank();  
  1611. 1611.            return 10;  
  1612. 1612.          } else {  
  1613. 1613.            letsRun();  
  1614. 1614.            walkToBank();  
  1615. 1615.            return 10;  
  1616. 1616.          }  
  1617. 1617.        }  
  1618. 1618.      }  
  1619. 1619.  
  1620. 1620.      // If inventory not full --> mine  
  1621. 1621.      if (!inventory.isFull()) {  
  1622. 1622.        if (calc.distanceTo(mineTile) < 5) {  
  1623. 1623.  
  1624. 1624.          if (modeHybrid == true) {  
  1625. 1625.            hybrid();  
  1626. 1626.          } else if (modeMine2 == true) {  
  1627. 1627.            mTwo();  
  1628. 1628.          } else {  
  1629. 1629.            mine();  
  1630. 1630.          }  
  1631. 1631.          return 10;  
  1632. 1632.        }  
  1633. 1633.  
  1634. 1634.        else {  
  1635. 1635.          letsRun();  
  1636. 1636.          walkToMine();  
  1637. 1637.          return 10;  
  1638. 1638.        }  
  1639. 1639.      } else  
  1640. 1640.        failLogOff(); // how the hell you need this?  
  1641. 1641.    }  
  1642. 1642.  
  1643. 1643.    return 0;  
  1644. 1644.  }  
  1645. 1645.  
  1646. 1646.  // //////////////////////////