Advertisement
Conderoga

v1.261 - Final

Apr 23rd, 2011
534
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 114.90 KB | None | 0 0
  1. import java.awt.event.*;
  2. import java.awt.*;
  3. import java.util.*;
  4. import java.io.*;
  5. import java.nio.channels.*;
  6. import java.net.*;
  7. import java.util.List;
  8. import java.util.logging.Level;
  9. import java.lang.reflect.Method;
  10. import javax.accessibility.*;
  11. import javax.swing.*;
  12. import org.rsbot.*;
  13. import org.rsbot.bot.Bot;
  14. import org.rsbot.script.*;
  15. import org.rsbot.script.wrappers.*;
  16. import org.rsbot.event.listeners.*;
  17. import org.rsbot.event.events.ServerMessageEvent;
  18. import org.rsbot.util.ScreenshotUtil;
  19. import javax.imageio.ImageIO;
  20.  
  21. @ScriptManifest(authors = { "Conderoga" }, keywords = "Woodcutting", name = "Conderoga's Chopper", version = 1.261,description = "Chops trees and stuff.")
  22. /*UpdateLog:
  23. v1.00 - New Combined Script
  24. v1.01 - New GUI, Added Grand Exchange Ivy
  25. v1.02 - Added Taverly and Yanille Ivy, Willow Chopping in Draynor
  26. v1.03 - Nothing really..
  27. v1.04 - Added Seer's Village yew and maple chopping, new walking method, Ardougne and Varrock Palace Ivy
  28. v1.05 - Walking fixes and autoupdate
  29. v1.06 - More options with autoupdate, tweaked banking and walking
  30. v1.07 - Fixed Maple Chopping, added mage training area magics and Falador yews
  31. v1.08 - Fixed Falador Yew Chopping and banking problems in Seer's village
  32. v1.09 - Improved Tree Clicking, added Mouse Hovering, new paint, falador ivy locations
  33. v1.10 - Quick walking, banking, and animation fixes
  34. v1.11 - Added Timeout feature to get rid of script stopping error
  35. v1.12 - Failed attempt at fixing stuff
  36. v1.13 - Fixed walking problems, added cool mouse stuff.
  37. v1.14 - Added Draynor Yews - new Walking Method - Fixed Mage Training Area Problems
  38. v1.15 - Fixed lag issues added breaking antiban fixed Draynor yews improved mouse hover
  39. v1.16 - Reverted to old version of walking, added Tree Gnome Stronghold Yews
  40. v1.17 - Lag gone for good, fixed south falador and edgeville, Merry Christmas!
  41. v1.18 - Fixed lots of problems
  42. v1.19 - Fixed South Falador Banking problems, Draynor Yew banking, Catherby Bee Hive error
  43. v1.20 - Fixed small banking errors and errors in South Falador Yews
  44. v1.21 - Added Failsafe for banking problems, shortened break length
  45. v1.22 - Fixed walking methods, fixed Mage Training magics, added Port Salim Willows and Draynor Oaks
  46. v1.23 - Added failsafe fixed run issues
  47. v1.24 - Fixed new Tree ids in Port Sarim, Rimmington and South Falador
  48. v1.25 - Fixed Edgeville banking, Seer's Village yews screw up, Rimmington Sticking error, South Falador tree bug
  49. v1.26 - fixed more problems due to updates
  50. v1.261 - Fixed Rimmington
  51. */
  52.  
  53. public class CChop extends Script implements PaintListener, ServerMessageListener, MouseListener{
  54.  
  55. private boolean guiWait = true;
  56. private boolean guiExit = true;
  57. private String location;
  58. private RSTile tree1, tree2, tree3, tree4, tree5, tree6, tree7;
  59. private RSTile [] treesToBank;
  60. private RSTile [] bankToTrees;
  61. private boolean tree1Status, tree2Status, tree3Status, tree4Status, tree5Status, tree6Status, tree7Status;
  62. private long tree1TimeDead, tree2TimeDead, tree3TimeDead, tree4TimeDead, tree5TimeDead, tree6TimeDead, tree7TimeDead;
  63. private long tree1DeadTime, tree2DeadTime, tree3DeadTime, tree4DeadTime, tree5DeadTime, tree6DeadTime, tree7DeadTime;
  64. private long tree1TimeAlive, tree2TimeAlive, tree3TimeAlive, tree4TimeAlive, tree5TimeAlive, tree6TimeAlive, tree7TimeAlive;
  65. private long tree1AliveTime, tree2AliveTime, tree3AliveTime, tree4AliveTime, tree5AliveTime, tree6AliveTime, tree7AliveTime;
  66. private int nextTree = 0;
  67. private int bankerID;
  68. private int yewPrice = 0;
  69. private int magicPrice = 0;
  70. private int willowPrice = 0;
  71. private int maplePrice = 0;
  72. private int oakPrice = 0;
  73.  
  74. public CChopGUI gui;
  75. private boolean nearest;
  76. private boolean takeBreaks;
  77. private boolean breakActive;
  78. private int breakLength;
  79. private long breakStart;
  80. private Point stump1, stump2, stump3, stump4, stump5, stump6, stump7;
  81. public int [] BNIDs = {5070, 5071, 5072, 5073, 5074, 5075, 5076, 7413, 11966};
  82. public int [] hatchetIDs = {1349, 1351, 1353, 1355, 1357, 1359, 1361, 6739, 13470};
  83. private int yewsCut = 0;
  84. private int magicsCut = 0;
  85. private int ivyCut = 0;
  86. private int willowsCut = 0;
  87. private int maplesCut = 0;
  88. private int oaksCut = 0;
  89. private int nests = 0;
  90. private boolean full = false;
  91. private int startLevel;
  92. private int startExp;
  93. private int expGained;
  94. private int lvlsGained;
  95. private long startTime, failSafeTimer;
  96. private double startTimeDbl;
  97. private long ExpHr;
  98. private int safety = 0;
  99. private String status;
  100. private int tempX = 0;
  101. private int tempY = 0;
  102. private Point p;
  103. private int randomInt;
  104. private String version = "v1.261";
  105. private String currentVersion = "";
  106. private String treeType = ".";
  107. private int treeID;
  108. private ArrayList<Integer> ivyIDs = new ArrayList<Integer>();
  109. private ArrayList<Integer> stumpIDs = new ArrayList<Integer>();
  110. private int stumpID;
  111. private RSTile bankLocation;
  112. private String chopType;
  113. private String command;
  114. private boolean done = false;
  115. private boolean showPaint = true;
  116. private boolean fancyPaint = true;
  117. private final Image img1 = getImage("http://i263.photobucket.com/albums/ii158/zpogo/Logo.png");
  118. private final Image img2 = getImage("http://i263.photobucket.com/albums/ii158/zpogo/Bar.png");
  119. private final Image img4 = getImage("http://i263.photobucket.com/albums/ii158/zpogo/EXPback-1copy.png");
  120. private Color mouseColor = new Color(51,153,0,255);
  121.  
  122. public boolean onStart() {
  123. if(checkCurrentVersion())
  124. log(Color.BLUE, "You have the latest version! :)");
  125. startTime = System.currentTimeMillis();
  126. startTimeDbl = System.currentTimeMillis();
  127. //Credits to Zombieknight for this:-----------------
  128. final int welcome = JOptionPane.showConfirmDialog(null,"Before using my script, would you like to thank me\nby clicking some adverts?","Welcome", JOptionPane.YES_NO_OPTION);
  129. if (welcome == 0) {
  130. final String message = "<html>Thank you for your support!<br /></html>";
  131. JOptionPane.showMessageDialog(null, message);
  132. openURL("http://adf.ly/317631/agsn");
  133. }
  134. //=================================Yeah, I wrote all the rest of this...
  135.  
  136.  
  137.  
  138. gui = new CChopGUI();
  139. gui.setVisible(true);
  140. while(guiWait)
  141. {
  142. sleep(100);
  143. }
  144. return !guiExit;
  145. }
  146. public void pickUpNest()
  147. {
  148. RSGroundItem o = groundItems.getNearest(BNIDs);
  149. if(o!=null && !inventory.isFull())
  150. {
  151. status = "Nest!";
  152. sleep(random(600,800));
  153. if(o.doAction("Take"))
  154. nests++;
  155. sleep(random(600,800));
  156. }
  157. }
  158. public boolean chopCheck()
  159. {
  160. if(!treeType.equals("ivy"))
  161. {
  162. if(players.getMyPlayer().getAnimation()==867||players.getMyPlayer().getAnimation()==2846||players.getMyPlayer().getAnimation()==10251||players.getMyPlayer().getAnimation()==875||players.getMyPlayer().getAnimation()==869)
  163. {status = "Chopping!";
  164. return true;}
  165. else
  166. status = "Not chopping.";
  167. }
  168. else
  169. {
  170. for(int i = 0; i<5;i++){
  171. if(players.getMyPlayer().getAnimation()==870||players.getMyPlayer().getAnimation()==872||players.getMyPlayer().getAnimation()==10251)
  172. {status = "Chopping!";
  173. return true;}
  174. sleep(random(200,300));
  175. }
  176. status = "Not chopping.";
  177. }
  178. return false;
  179. }
  180. public void updateStatus()
  181. {
  182. antiBan(random(1,100));
  183. boolean temp = chopCheck();
  184. if(!temp&&!tree7Status&&!tree6Status&&!tree5Status&&!tree4Status&&!tree3Status&&!tree2Status&&!tree1Status)
  185. {
  186. status = "Waiting.";
  187. }
  188. }
  189. public void setUp()
  190. {
  191. status = "Starting up.";
  192. command = location+ " - "+chopType;
  193. if(command.equals("Draynor - Oaks"))
  194. {
  195. treeType = "oaks";
  196. treeID = 1281;
  197. stumpID = 1356;
  198. bankerID = 494;
  199. tree1 = new RSTile(3102,3242);
  200. tree2 = new RSTile(3107,3248);
  201. tree3 = new RSTile(0,0);
  202. tree4 = new RSTile(0,0);
  203. tree5 = new RSTile(0,0);
  204. tree6 = new RSTile(0,0);
  205. tree7 = new RSTile(0,0);
  206.  
  207. treesToBank = new RSTile [3];
  208. bankToTrees = new RSTile [2];
  209.  
  210. treesToBank[0] = new RSTile(3107,3250);
  211. treesToBank[1] = new RSTile(3101,3244);
  212. treesToBank[2] = new RSTile(3092,3244);
  213.  
  214. bankToTrees[0] = new RSTile(3092,3244);
  215. bankToTrees[1] = new RSTile(3101,3244);
  216.  
  217. }
  218. else if(command.equals("Grand Exchange - Yews"))
  219. {
  220. treeType = "yews";
  221. treeID = 1309;
  222. stumpID = 7402;
  223. bankerID = 6533;
  224. tree1 = new RSTile(3205,3504);
  225. tree2 = new RSTile(3210,3504);
  226. tree3 = new RSTile(3222,3503);
  227. tree4 = new RSTile(0,0);
  228. tree5 = new RSTile(0,0);
  229. tree6 = new RSTile(0,0);
  230. tree7 = new RSTile(0,0);
  231.  
  232. treesToBank = new RSTile [6];
  233. bankToTrees = new RSTile [6];
  234.  
  235. bankToTrees[0] = new RSTile(3167, 3489);
  236. bankToTrees[1] = new RSTile(3173, 3491);
  237. bankToTrees[2] = new RSTile(3183, 3490);
  238. bankToTrees[3] = new RSTile(3195, 3494);
  239. bankToTrees[4] = new RSTile(3204, 3502);
  240. bankToTrees[5] = new RSTile(3208, 3502);
  241.  
  242. treesToBank[0] = new RSTile(3208, 3502);
  243. treesToBank[1] = new RSTile(3204, 3502);
  244. treesToBank[2] = new RSTile(3195, 3494);
  245. treesToBank[3] = new RSTile(3183, 3490);
  246. treesToBank[4] = new RSTile(3173, 3491);
  247. treesToBank[5] = new RSTile(3167, 3489);
  248. }
  249. else if(command.equals("Edgeville - Yews"))
  250. {
  251. treeType = "yews";
  252. treeID = 1309;
  253. stumpID = 7402;
  254. bankerID = 553;
  255. tree1 = new RSTile(3086,3481);
  256. tree2 = new RSTile(3086,3469);
  257. tree3 = new RSTile(0,0);
  258. tree4 = new RSTile(0,0);
  259. tree5 = new RSTile(0,0);
  260. tree6 = new RSTile(0,0);
  261. tree7 = new RSTile(0,0);
  262.  
  263. treesToBank = new RSTile [5];
  264. bankToTrees = new RSTile [5];
  265.  
  266. bankToTrees[0] = new RSTile(3093, 3490);
  267. bankToTrees[1] = new RSTile(3088, 3487);
  268. bankToTrees[2] = new RSTile(3093, 3482);
  269. bankToTrees[3] = new RSTile(3094, 3476);
  270. bankToTrees[4] = new RSTile(3087, 3475);
  271.  
  272. treesToBank[0] = new RSTile(3087, 3475);
  273. treesToBank[1] = new RSTile(3094, 3476);
  274. treesToBank[2] = new RSTile(3093, 3482);
  275. treesToBank[3] = new RSTile(3088, 3487);
  276. treesToBank[4] = new RSTile(3093, 3490);
  277. }
  278. else if(command.equals("Rimmington - Yews"))
  279. {
  280. treeType = "yews";
  281. treeID = 38755;
  282. stumpID = 38759;
  283. bankerID = 6200;
  284. tree1 = new RSTile(2941,3233);
  285. tree2 = new RSTile(2934,3234);
  286. tree3 = new RSTile(2926,3229);
  287. tree4 = new RSTile(2935,3226);
  288. tree5 = new RSTile(0,0);
  289. tree6 = new RSTile(0,0);
  290. tree7 = new RSTile(0,0);
  291.  
  292. treesToBank = new RSTile [15];
  293. bankToTrees = new RSTile [15];
  294.  
  295.  
  296. bankToTrees[0] = new RSTile(3047, 3236);
  297. bankToTrees[1] = new RSTile(3037, 3235);
  298. bankToTrees[2] = new RSTile(3027, 3241);
  299. bankToTrees[3] = new RSTile(3016, 3242);
  300. bankToTrees[4] = new RSTile(3004, 3238);
  301. bankToTrees[5] = new RSTile(2993, 3235);
  302. bankToTrees[6] = new RSTile(2988, 3225);
  303. bankToTrees[7] = new RSTile(2979, 3223);
  304. bankToTrees[8] = new RSTile(2969, 3223);
  305. bankToTrees[9] = new RSTile(2959, 3223);
  306. bankToTrees[10] = new RSTile(2950, 3228);
  307. bankToTrees[11] = new RSTile(2942, 3230);
  308. bankToTrees[12] = new RSTile(2938, 3231);
  309. bankToTrees[13] = new RSTile(2930, 3230);
  310. bankToTrees[14] = new RSTile(2925, 3231);
  311.  
  312. treesToBank = walking.reversePath(bankToTrees);
  313.  
  314. }
  315. else if(command.equals("Catherby - Yews"))
  316. {
  317. treeType = "yews";
  318. treeID = 1309;
  319. stumpID = 7402;
  320. if(random(1,2)==1)
  321. bankerID = 494;
  322. else
  323. bankerID = 495;
  324.  
  325. tree1 = new RSTile(2766,3428);
  326. tree2 = new RSTile(2760,3428);
  327. tree3 = new RSTile(2761,3432);
  328. tree4 = new RSTile(2771,3438);
  329. tree5 = new RSTile(2756,3431);
  330. tree6 = new RSTile(2758,3434);
  331. tree7 = new RSTile(2755,3434);
  332.  
  333. treesToBank = new RSTile [5];
  334. bankToTrees = new RSTile [5];
  335.  
  336.  
  337. bankToTrees[0] = new RSTile(2809, 3440);
  338. bankToTrees[1] = new RSTile(2801, 3434);
  339. bankToTrees[2] = new RSTile(2789, 3436);
  340. bankToTrees[3] = new RSTile(2777, 3436);
  341. bankToTrees[4] = new RSTile(2767, 3431);
  342.  
  343. treesToBank[0] = new RSTile(2767, 3431);
  344. treesToBank[1] = new RSTile(2777, 3436);
  345. treesToBank[2] = new RSTile(2789, 3436);
  346. treesToBank[3] = new RSTile(2801, 3434);
  347. treesToBank[4] = new RSTile(2809, 3440);
  348. }
  349. else if(command.equals("Seer's Village - Yews"))
  350. {
  351. treeType = "yews";
  352. treeID = 1309;
  353. stumpID = 7402;
  354. bankerID = 495;
  355. tree1 = new RSTile(2715,3460);
  356. tree2 = new RSTile(2706,3460);
  357. tree3 = new RSTile(2706,3465);
  358. tree4 = new RSTile(0,0);
  359. tree5 = new RSTile(0,0);
  360. tree6 = new RSTile(0,0);
  361. tree7 = new RSTile(0,0);
  362.  
  363. treesToBank = new RSTile [4];
  364. bankToTrees = new RSTile [4];
  365.  
  366.  
  367. bankToTrees[0] = new RSTile(2726, 3493);
  368. bankToTrees[1] = new RSTile(2724, 3483);
  369. bankToTrees[2] = new RSTile(2723, 3474);
  370. bankToTrees[3] = new RSTile(2714, 3462);
  371.  
  372. treesToBank[0] = new RSTile(2714, 3462);
  373. treesToBank[1] = new RSTile(2723, 3474);
  374. treesToBank[2] = new RSTile(2724, 3483);
  375. treesToBank[3] = new RSTile(2726, 3493);
  376. }
  377. else if(command.equals("South Falador - Yews"))
  378. {
  379. treeType = "yews";
  380. treeID = 38755;
  381. stumpID = 38759;
  382. bankerID = 6200;
  383. tree1 = new RSTile(2999,3315);
  384. tree2 = new RSTile(3017,3322);
  385. tree3 = new RSTile(3047,3318);
  386. tree4 = new RSTile(0,0);
  387. tree5 = new RSTile(0,0);
  388. tree6 = new RSTile(0,0);
  389. tree7 = new RSTile(0,0);
  390.  
  391. treesToBank = new RSTile [11];
  392. bankToTrees = new RSTile [6];
  393.  
  394.  
  395. bankToTrees[0] = new RSTile(3012, 3356);
  396. bankToTrees[1] = new RSTile(3006, 3357);
  397. bankToTrees[2] = new RSTile(3006, 3346);
  398. bankToTrees[3] = new RSTile(3006, 3339);
  399. bankToTrees[4] = new RSTile(3006, 3331);
  400. bankToTrees[5] = new RSTile(3007, 3322);
  401.  
  402.  
  403. treesToBank[0] = new RSTile(3045, 3318);
  404. treesToBank[1] = new RSTile(3040, 3320);
  405. treesToBank[2] = new RSTile(3036, 3321);
  406. treesToBank[3] = new RSTile(3028, 3321);
  407. treesToBank[4] = new RSTile(3016, 3320);
  408. treesToBank[5] = new RSTile(3007, 3322);
  409. treesToBank[6] = new RSTile(3006, 3331);
  410. treesToBank[7] = new RSTile(3006, 3339);
  411. treesToBank[8] = new RSTile(3006, 3346);
  412. treesToBank[9] = new RSTile(3006, 3357);
  413. treesToBank[10] = new RSTile(3012, 3356);
  414. }
  415. else if(command.equals("Draynor - Yews"))
  416. {
  417. treeType = "yews";
  418. treeID = 1309;
  419. stumpID = 7402;
  420. bankerID = 494;
  421. tree1 = new RSTile(3147,3255);
  422. tree2 = new RSTile(3152,3231);
  423. tree3 = new RSTile(3166,3220);
  424. tree4 = new RSTile(3185,3227);
  425. tree5 = new RSTile(0,0);
  426. tree6 = new RSTile(0,0);
  427. tree7 = new RSTile(0,0);
  428.  
  429. treesToBank = new RSTile [19];
  430. bankToTrees = new RSTile [7];
  431.  
  432. treesToBank[0] = new RSTile(3185,3227);
  433. treesToBank[1] = new RSTile(3177,3226);
  434. treesToBank[2] = new RSTile(3172,3226);
  435. treesToBank[3] = new RSTile(3166,3222);
  436. treesToBank[4] = new RSTile(3161,3227);
  437. treesToBank[5] = new RSTile(3158,3232);
  438. treesToBank[6] = new RSTile(3153,3239);
  439. treesToBank[7] = new RSTile(3152,3245);
  440. treesToBank[8] = new RSTile(3147,3252);
  441. treesToBank[9] = new RSTile(3146,3244);
  442. treesToBank[10] = new RSTile(3147,3235);
  443. treesToBank[11] = new RSTile(3145,3230);
  444. treesToBank[12] = new RSTile(3137,3228);
  445. treesToBank[13] = new RSTile(3126,3226);
  446. treesToBank[14] = new RSTile(3119,3226);
  447. treesToBank[15] = new RSTile(3110,3229);
  448. treesToBank[16] = new RSTile(3105,3235);
  449. treesToBank[17] = new RSTile(3101,3242);
  450. treesToBank[18] = new RSTile(3092,3244);
  451.  
  452. bankToTrees[0] = new RSTile(3092,3244);
  453. bankToTrees[1] = new RSTile(3104,3238);
  454. bankToTrees[2] = new RSTile(3114,3229);
  455. bankToTrees[3] = new RSTile(3126,3225);
  456. bankToTrees[4] = new RSTile(3137,3226);
  457. bankToTrees[5] = new RSTile(3144,3229);
  458. bankToTrees[6] = new RSTile(3150,3231);
  459. }
  460. else if(command.equals("Tree Gnome - Yews"))
  461. {
  462. treeType = "yews";
  463. treeID = 1309;
  464. stumpID = 7402;
  465. bankerID = 166;
  466. tree1 = new RSTile(2439,3436);
  467. tree2 = new RSTile(2433,3441);
  468. tree3 = new RSTile(2433,3426);
  469. tree4 = new RSTile(0,0);
  470. tree5 = new RSTile(0,0);
  471. tree6 = new RSTile(0,0);
  472. tree7 = new RSTile(0,0);
  473.  
  474. treesToBank = new RSTile [2];
  475. bankToTrees = new RSTile [2];
  476.  
  477. treesToBank[0] = new RSTile(2442,3438);
  478. treesToBank[1] = new RSTile(2445,3427);
  479.  
  480. bankToTrees[0] = new RSTile(2445,3425);
  481. bankToTrees[1] = new RSTile(2440,3434);
  482.  
  483. }
  484. else if(command.equals("Seer's Village - Maples"))
  485. {
  486. treeType = "maples";
  487. treeID = 1307;
  488. stumpID = 7400;
  489. bankerID = 495;
  490. tree1 = new RSTile(2722,3502);
  491. tree2 = new RSTile(2728,3502);
  492. tree3 = new RSTile(2731,3501);
  493. tree4 = new RSTile(2733,3500);
  494. tree5 = new RSTile(0,0);
  495. tree6 = new RSTile(0,0);
  496. tree7 = new RSTile(0,0);
  497.  
  498. treesToBank = new RSTile [2];
  499. bankToTrees = new RSTile [2];
  500.  
  501. bankToTrees[0] = new RSTile(2726, 3493);
  502. bankToTrees[1] = new RSTile(2729, 3501);
  503.  
  504.  
  505. treesToBank[0] = new RSTile(2729, 3501);
  506. treesToBank[1] = new RSTile(2726, 3493);
  507.  
  508.  
  509. }
  510. else if(command.equals("Seer's Village - Magics"))
  511. {
  512. treeType = "magics";
  513. treeID = 1306;
  514. stumpID = 7401;
  515. bankerID = 495;
  516. tree1 = new RSTile(2697,3424);
  517. tree2 = new RSTile(2692,3425);
  518. tree3 = new RSTile(2691,3428);
  519. tree4 = new RSTile(0,0);
  520. tree5 = new RSTile(0,0);
  521. tree6 = new RSTile(0,0);
  522. tree7 = new RSTile(0,0);
  523.  
  524. treesToBank = new RSTile [9];
  525. bankToTrees = new RSTile [9];
  526.  
  527. bankToTrees[0] = new RSTile(2726, 3493);
  528. bankToTrees[1] = new RSTile(2725, 3487);
  529. bankToTrees[2] = new RSTile(2725, 3477);
  530. bankToTrees[3] = new RSTile(2723, 3466);
  531. bankToTrees[4] = new RSTile(2724, 3456);
  532. bankToTrees[5] = new RSTile(2713, 3449);
  533. bankToTrees[6] = new RSTile(2707, 3439);
  534. bankToTrees[7] = new RSTile(2703, 3429);
  535. bankToTrees[8] = new RSTile(2694, 3424);
  536.  
  537. treesToBank[0] = new RSTile(2694, 3424);
  538. treesToBank[1] = new RSTile(2703, 3429);
  539. treesToBank[2] = new RSTile(2707, 3439);
  540. treesToBank[3] = new RSTile(2713, 3449);
  541. treesToBank[4] = new RSTile(2724, 3456);
  542. treesToBank[5] = new RSTile(2723, 3466);
  543. treesToBank[6] = new RSTile(2725, 3477);
  544. treesToBank[7] = new RSTile(2725, 3487);
  545. treesToBank[8] = new RSTile(2726, 3493);
  546. }
  547. else if(command.equals("Sorcerer's Tower - Magics"))
  548. {
  549. treeType = "magics";
  550. treeID = 1306;
  551. stumpID = 7401;
  552. bankerID = 495;
  553. tree1 = new RSTile(2705,3397);
  554. tree2 = new RSTile(2705,3399);
  555. tree3 = new RSTile(2699,3399);
  556. tree4 = new RSTile(2699,3397);
  557. tree5 = new RSTile(0,0);
  558. tree6 = new RSTile(0,0);
  559. tree7 = new RSTile(0,0);
  560.  
  561. treesToBank = new RSTile [12];
  562. bankToTrees = new RSTile [12];
  563.  
  564. bankToTrees[0] = new RSTile(2726, 3493);
  565. bankToTrees[1] = new RSTile(2725, 3487);
  566. bankToTrees[2] = new RSTile(2725, 3477);
  567. bankToTrees[3] = new RSTile(2723, 3466);
  568. bankToTrees[4] = new RSTile(2724, 3456);
  569. bankToTrees[5] = new RSTile(2713, 3449);
  570. bankToTrees[6] = new RSTile(2707, 3439);
  571. bankToTrees[7] = new RSTile(2703, 3429);
  572. bankToTrees[8] = new RSTile(2709, 3418);
  573. bankToTrees[9] = new RSTile(2715, 3406);
  574. bankToTrees[10] = new RSTile(2714, 3396);
  575. bankToTrees[11] = new RSTile(2701, 3398);
  576.  
  577. treesToBank[0] = new RSTile(2701, 3398);
  578. treesToBank[1] = new RSTile(2714, 3396);
  579. treesToBank[2] = new RSTile(2715, 3406);
  580. treesToBank[3] = new RSTile(2709, 3418);
  581. treesToBank[4] = new RSTile(2703, 3429);
  582. treesToBank[5] = new RSTile(2707, 3439);
  583. treesToBank[6] = new RSTile(2713, 3449);
  584. treesToBank[7] = new RSTile(2724, 3456);
  585. treesToBank[8] = new RSTile(2723, 3466);
  586. treesToBank[9] = new RSTile(2725, 3477);
  587. treesToBank[10] = new RSTile(2725, 3487);
  588. treesToBank[11] = new RSTile(2726, 3493);
  589. }
  590. else if(command.equals("Mage Training Area - Magics"))
  591. {
  592. treeType = "magics";
  593. treeID = 1306;
  594. stumpID = 7401;
  595. bankLocation = new RSTile(3381,3269);
  596.  
  597. tree1 = new RSTile(3357,3312);
  598. tree2 = new RSTile(3369,3312);
  599. tree3 = new RSTile(0,0);
  600. tree4 = new RSTile(0,0);
  601. tree5 = new RSTile(0,0);
  602. tree6 = new RSTile(0,0);
  603. tree7 = new RSTile(0,0);
  604.  
  605. treesToBank = new RSTile [7];
  606. bankToTrees = new RSTile [7];
  607.  
  608. bankToTrees[0] = new RSTile(3381, 3268);
  609. bankToTrees[1] = new RSTile(3370, 3266);
  610. bankToTrees[2] = new RSTile(3358, 3265);
  611. bankToTrees[3] = new RSTile(3349, 3274);
  612. bankToTrees[4] = new RSTile(3348, 3282);
  613. bankToTrees[5] = new RSTile(3360, 3287);
  614. bankToTrees[6] = new RSTile(3363, 3298);
  615.  
  616.  
  617. treesToBank[0] = new RSTile(3363, 3298);
  618. treesToBank[1] = new RSTile(3360, 3287);
  619. treesToBank[2] = new RSTile(3348, 3282);
  620. treesToBank[3] = new RSTile(3349, 3274);
  621. treesToBank[4] = new RSTile(3358, 3265);
  622. treesToBank[5] = new RSTile(3370, 3266);
  623. treesToBank[6] = new RSTile(3382, 3268);
  624.  
  625. }
  626. else if(command.equals("Castle Wars - Ivy"))
  627. {
  628. bankLocation = new RSTile(2445,3083);
  629. treeType = "ivy";
  630.  
  631. if(random(1,2)==1)
  632. camera.setAngle(random(1,30));
  633. else
  634. camera.setAngle(random(340,359));
  635.  
  636.  
  637. tree1 = new RSTile(2430,3068);
  638. tree2 = new RSTile(2429,3068);
  639. tree3 = new RSTile(2428,3068);
  640. tree4 = new RSTile(2426,3068);
  641. tree5 = new RSTile(2425,3068);
  642. tree6 = new RSTile(2424,3068);
  643. tree7 = new RSTile(2423,3068);
  644.  
  645. treesToBank = new RSTile [3];
  646. bankToTrees = new RSTile [3];
  647.  
  648.  
  649. bankToTrees[0] = new RSTile(2443, 3084);
  650. bankToTrees[1] = new RSTile(2444, 3073);
  651. bankToTrees[2] = new RSTile(2429, 3068);
  652.  
  653. treesToBank[0] = new RSTile(2429, 3068);
  654. treesToBank[1] = new RSTile(2444, 3073);
  655. treesToBank[2] = new RSTile(2443, 3084);
  656. }
  657.  
  658. else if(command.equals("Grand Exchange - Ivy"))
  659. {
  660. treeType = "ivy";
  661. bankerID = 6533;
  662.  
  663. camera.setAngle(random(170,190));
  664.  
  665.  
  666. tree1 = new RSTile(3219,3498);
  667. tree2 = new RSTile(3218,3498);
  668. tree3 = new RSTile(3217,3498);
  669. tree4 = new RSTile(3216,3498);
  670. tree5 = new RSTile(0,0);
  671. tree6 = new RSTile(0,0);
  672. tree7 = new RSTile(0,0);
  673.  
  674. treesToBank = new RSTile [6];
  675. bankToTrees = new RSTile [6];
  676.  
  677. bankToTrees[0] = new RSTile(3167, 3489);
  678. bankToTrees[1] = new RSTile(3173, 3491);
  679. bankToTrees[2] = new RSTile(3183, 3490);
  680. bankToTrees[3] = new RSTile(3195, 3494);
  681. bankToTrees[4] = new RSTile(3204, 3502);
  682. bankToTrees[5] = new RSTile(3217, 3500);
  683.  
  684. treesToBank[0] = new RSTile(3217, 3500);
  685. treesToBank[1] = new RSTile(3204, 3502);
  686. treesToBank[2] = new RSTile(3195, 3494);
  687. treesToBank[3] = new RSTile(3183, 3490);
  688. treesToBank[4] = new RSTile(3173, 3491);
  689. treesToBank[5] = new RSTile(3167, 3489);
  690. }
  691.  
  692. else if(command.equals("Taverly - Ivy"))
  693. {
  694. treeType = "ivy";
  695. log("Nest banking is unavailable at the Taverly location.");
  696.  
  697. camera.setAngle(random(260,280));
  698.  
  699. tree1 = new RSTile(2943,3416);
  700. tree2 = new RSTile(2943,3417);
  701. tree3 = new RSTile(2943,3418);
  702. tree4 = new RSTile(2943,3419);
  703. tree5 = new RSTile(2943,3420);
  704. tree6 = new RSTile(0,0);
  705. tree7 = new RSTile(0,0);
  706.  
  707. }
  708. else if(command.equals("Yanille - Ivy"))
  709. {
  710. bankerID = 494;
  711. treeType = "ivy";
  712.  
  713. camera.setAngle(random(170,190));
  714.  
  715.  
  716. tree1 = new RSTile(2597,3111);
  717. tree2 = new RSTile(2596,3111);
  718. tree3 = new RSTile(2595,3111);
  719. tree4 = new RSTile(2593,3111);
  720. tree5 = new RSTile(2592,3111);
  721. tree6 = new RSTile(2591,3111);
  722. tree7 = new RSTile(0,0);
  723.  
  724. treesToBank = new RSTile [4];
  725. bankToTrees = new RSTile [4];
  726.  
  727.  
  728. bankToTrees[0] = new RSTile(2613, 3094);
  729. bankToTrees[1] = new RSTile(2616, 3106);
  730. bankToTrees[2] = new RSTile(2603, 3113);
  731. bankToTrees[3] = new RSTile(2597, 3111);
  732.  
  733. treesToBank[0] = new RSTile(2597, 3111);
  734. treesToBank[1] = new RSTile(2603, 3113);
  735. treesToBank[2] = new RSTile(2616, 3106);
  736. treesToBank[3] = new RSTile(2613, 3094);
  737. }
  738. else if(command.equals("Ardougne - Ivy"))
  739. {
  740. bankerID = 494;
  741. treeType = "ivy";
  742.  
  743. camera.setAngle(random(80,100));
  744.  
  745.  
  746. tree1 = new RSTile(2622,3304);
  747. tree2 = new RSTile(2622,3305);
  748. tree3 = new RSTile(2622,3307);
  749. tree4 = new RSTile(2622,3308);
  750. tree5 = new RSTile(2622,3310);
  751. tree6 = new RSTile(0,0);
  752. tree7 = new RSTile(0,0);
  753.  
  754. treesToBank = new RSTile [5];
  755. bankToTrees = new RSTile [5];
  756.  
  757.  
  758. bankToTrees[0] = new RSTile(2614, 3333);
  759. bankToTrees[1] = new RSTile(2607, 3326);
  760. bankToTrees[2] = new RSTile(2607, 3314);
  761. bankToTrees[3] = new RSTile(2614, 3312);
  762. bankToTrees[4] = new RSTile(2622, 3310);
  763.  
  764. treesToBank[0] = new RSTile(2622, 3310);
  765. treesToBank[1] = new RSTile(2614, 3312);
  766. treesToBank[2] = new RSTile(2607, 3314);
  767. treesToBank[3] = new RSTile(2607, 3326);
  768. treesToBank[4] = new RSTile(2614, 3333);
  769. }
  770. else if(command.equals("Varrock Palace - Ivy"))
  771. {
  772. bankerID = 5912;
  773. treeType = "ivy";
  774.  
  775. camera.setAngle(random(250,280));
  776.  
  777.  
  778. tree1 = new RSTile(3233,3456);
  779. tree2 = new RSTile(3233,3457);
  780. tree3 = new RSTile(3233,3459);
  781. tree4 = new RSTile(3233,3460);
  782. tree5 = new RSTile(3233,3461);
  783. tree6 = new RSTile(0,0);
  784. tree7 = new RSTile(0,0);
  785.  
  786. treesToBank = new RSTile [5];
  787. bankToTrees = new RSTile [5];
  788.  
  789.  
  790. bankToTrees[0] = new RSTile(3253, 3420);
  791. bankToTrees[1] = new RSTile(3246, 3431);
  792. bankToTrees[2] = new RSTile(3245, 3441);
  793. bankToTrees[3] = new RSTile(3244, 3454);
  794. bankToTrees[4] = new RSTile(3233, 3460);
  795.  
  796. treesToBank[0] = new RSTile(3233, 3460);
  797. treesToBank[1] = new RSTile(3244, 3454);
  798. treesToBank[2] = new RSTile(3245, 3441);
  799. treesToBank[3] = new RSTile(3246, 3431);
  800. treesToBank[4] = new RSTile(3253, 3420);
  801. }
  802. else if(command.equals("South Falador - Ivy"))
  803. {
  804. bankerID = 6200;
  805. treeType = "ivy";
  806.  
  807. if(random(1,2)==1)
  808. camera.setAngle(random(1,30));
  809. else
  810. camera.setAngle(random(340,359));
  811.  
  812.  
  813. tree1 = new RSTile(3052,3328);
  814. tree2 = new RSTile(3051,3328);
  815. tree3 = new RSTile(3049,3328);
  816. tree4 = new RSTile(3048,3328);
  817. tree5 = new RSTile(3047,3328);
  818. tree6 = new RSTile(3045,3328);
  819. tree7 = new RSTile(3044,3328);
  820.  
  821. treesToBank = new RSTile [10];
  822. bankToTrees = new RSTile [10];
  823.  
  824.  
  825. bankToTrees[0] = new RSTile(3012, 3356);
  826. bankToTrees[1] = new RSTile(3006, 3357);
  827. bankToTrees[2] = new RSTile(3006, 3346);
  828. bankToTrees[3] = new RSTile(3006, 3339);
  829. bankToTrees[4] = new RSTile(3006, 3331);
  830. bankToTrees[5] = new RSTile(3007, 3322);
  831. bankToTrees[6] = new RSTile(3017, 3323);
  832. bankToTrees[7] = new RSTile(3027, 3326);
  833. bankToTrees[8] = new RSTile(3036, 3326);
  834. bankToTrees[9] = new RSTile(3044, 3327);
  835.  
  836. treesToBank[0] = new RSTile(3044, 3327);
  837. treesToBank[1] = new RSTile(3036, 3326);
  838. treesToBank[2] = new RSTile(3027, 3326);
  839. treesToBank[3] = new RSTile(3017, 3323);
  840. treesToBank[4] = new RSTile(3007, 3322);
  841. treesToBank[5] = new RSTile(3006, 3331);
  842. treesToBank[6] = new RSTile(3006, 3339);
  843. treesToBank[7] = new RSTile(3006, 3346);
  844. treesToBank[8] = new RSTile(3006, 3357);
  845. treesToBank[9] = new RSTile(3012, 3356);
  846. }
  847. else if(command.equals("North Falador - Ivy"))
  848. {
  849. bankerID = 6200;
  850. treeType = "ivy";
  851.  
  852.  
  853. camera.setAngle(random(170,190));
  854.  
  855. tree1 = new RSTile(3018,3392);
  856. tree2 = new RSTile(3017,3392);
  857. tree3 = new RSTile(3016,3392);
  858. tree4 = new RSTile(3015,3392);
  859. tree5 = new RSTile(3014,3392);
  860. tree6 = new RSTile(3012,3392);
  861. tree7 = new RSTile(3011,3392);
  862.  
  863. treesToBank = new RSTile [11];
  864. bankToTrees = new RSTile [11];
  865.  
  866.  
  867. bankToTrees[0] = new RSTile(2946, 3368);
  868. bankToTrees[1] = new RSTile(2948, 3376);
  869. bankToTrees[2] = new RSTile(2952, 3381);
  870. bankToTrees[3] = new RSTile(2963, 3386);
  871. bankToTrees[4] = new RSTile(2968, 3397);
  872. bankToTrees[5] = new RSTile(2974, 3397);
  873. bankToTrees[6] = new RSTile(2980, 3397);
  874. bankToTrees[7] = new RSTile(2989, 3397);
  875. bankToTrees[8] = new RSTile(2994, 3396);
  876. bankToTrees[9] = new RSTile(3005, 3397);
  877. bankToTrees[10] = new RSTile(3012, 3393);
  878.  
  879. treesToBank[0] = new RSTile(3012, 3393);
  880. treesToBank[1] = new RSTile(3005, 3397);
  881. treesToBank[2] = new RSTile(2994, 3396);
  882. treesToBank[3] = new RSTile(2989, 3397);
  883. treesToBank[4] = new RSTile(2980, 3397);
  884. treesToBank[5] = new RSTile(2974, 3397);
  885. treesToBank[6] = new RSTile(2968, 3397);
  886. treesToBank[7] = new RSTile(2963, 3386);
  887. treesToBank[8] = new RSTile(2952, 3381);
  888. treesToBank[9] = new RSTile(2948, 3376);
  889. treesToBank[10] = new RSTile(2946, 3368);
  890. }
  891. else if(command.equals("Draynor - Willows"))
  892. {
  893. treeType = "willows";
  894. bankerID = 494;
  895. tree1 = new RSTile(3089,3228);
  896. tree2 = new RSTile(3088,3232);
  897. tree3 = new RSTile(3089,3235);
  898. tree4 = new RSTile(3086,3236);
  899. tree5 = new RSTile(3084,3238);
  900. tree6 = new RSTile(0,0);
  901. tree7 = new RSTile(0,0);
  902.  
  903. treesToBank = new RSTile [2];
  904. bankToTrees = new RSTile [2];
  905.  
  906. bankToTrees[0] = new RSTile(3092, 3245);
  907. bankToTrees[1] = new RSTile(3087, 3237);
  908.  
  909. treesToBank[0] = new RSTile(3090, 3236);
  910. treesToBank[1] = new RSTile(3092, 3245);
  911. }
  912. else if(command.equals("Port Salim - Willows"))
  913. {
  914. treeType = "willows";
  915. tree1 = new RSTile(3062,3263);
  916. tree2 = new RSTile(3065,3258);
  917. tree3 = new RSTile(3062,3253);
  918. tree4 = new RSTile(3058,3251);
  919. tree5 = new RSTile(0,0);
  920. tree6 = new RSTile(0,0);
  921. tree7 = new RSTile(0,0);
  922.  
  923. treesToBank = new RSTile [4];
  924.  
  925. treesToBank[0] = new RSTile(3059, 3252);
  926. treesToBank[1] = new RSTile(3049, 3246);
  927. treesToBank[2] = new RSTile(3042, 3240);
  928. treesToBank[3] = new RSTile(3047, 3236);
  929.  
  930. bankToTrees = walking.reversePath(treesToBank);
  931.  
  932. }
  933. else
  934. {
  935. log("Incorrect combination of chop type / location");
  936. }
  937. if(treeType.equals("ivy"))
  938. {
  939. ivyIDs.add(46318);
  940. ivyIDs.add(46320);
  941. ivyIDs.add(46322);
  942. ivyIDs.add(46324);
  943. stumpIDs.add(46321);
  944. stumpIDs.add(46323);
  945. stumpIDs.add(46325);
  946. stumpIDs.add(46319);
  947. }
  948. if(treeType.equals("willows"))
  949. {
  950.  
  951. ivyIDs.add(38616);
  952. ivyIDs.add(38627);
  953. ivyIDs.add(139);
  954. ivyIDs.add(142);
  955. ivyIDs.add(2372);
  956. stumpIDs.add(5554);
  957. stumpIDs.add(38725);
  958. }
  959. status = "Finished set up.";
  960. }
  961. public int floorHeight(){
  962. RSNPC testNPC = npcs.getNearest(bankerID);
  963. if(testNPC!=null)
  964. return 1;
  965. else
  966. return 0;
  967. }
  968. public void checkTrees()
  969. {
  970. RSObject[] check1 = objects.getAllAt(tree1);
  971. for(int i = 0; i< check1.length; i++)
  972. {
  973. if(check1[i].getID()==stumpID&&tree1Status)
  974. { tree1Status = false;
  975. tree1DeadTime = System.currentTimeMillis();
  976. tree1TimeAlive = -1;
  977. }
  978. else if(check1[i].getID()==treeID&&!tree1Status)
  979. { tree1Status = true;
  980. tree1AliveTime = System.currentTimeMillis();
  981. tree1TimeDead = -1;
  982. }
  983. else if(check1[i].getID()==treeID)
  984. { tree1Status = true;
  985. tree1TimeAlive = System.currentTimeMillis()-tree1AliveTime;}
  986. else if(check1[i].getID()==stumpID)
  987. { tree1Status = false;
  988. tree1TimeDead = System.currentTimeMillis()-tree1DeadTime;}
  989. }
  990. RSObject[] check2 = objects.getAllAt(tree2);
  991. for(int i = 0; i< check2.length; i++)
  992. {
  993. if(check2[i].getID()==stumpID&&tree2Status)
  994. { tree2Status = false;
  995. tree2DeadTime = System.currentTimeMillis();
  996. tree2TimeAlive = -1;
  997. }
  998. else if(check2[i].getID()==treeID&&!tree2Status)
  999. { tree2Status = true;
  1000. tree2AliveTime = System.currentTimeMillis();
  1001. tree2TimeDead = -1;
  1002. }
  1003. else if(check2[i].getID()==treeID)
  1004. { tree2Status = true;
  1005. tree2TimeAlive = System.currentTimeMillis()-tree2AliveTime;}
  1006. else if(check2[i].getID()==stumpID)
  1007. { tree2Status = false;
  1008. tree2TimeDead = System.currentTimeMillis()-tree2DeadTime;}
  1009. }
  1010. if(tree3.getX()!=0)
  1011. {
  1012. RSObject[] check3 = objects.getAllAt(tree3);
  1013. {
  1014. for(int i = 0; i< check3.length; i++)
  1015. {
  1016. if(check3[i].getID()==stumpID&&tree3Status)
  1017. { tree3Status = false;
  1018. tree3DeadTime = System.currentTimeMillis();
  1019. tree3TimeAlive = -1;
  1020. }
  1021. else if(check3[i].getID()==treeID&&!tree3Status)
  1022. { tree3Status = true;
  1023. tree3AliveTime = System.currentTimeMillis();
  1024. tree3TimeDead = -1;
  1025. }
  1026. else if(check3[i].getID()==treeID)
  1027. { tree3Status = true;
  1028. tree3TimeAlive = System.currentTimeMillis()-tree3AliveTime;}
  1029. else if(check3[i].getID()==stumpID)
  1030. { tree3Status = false;
  1031. tree3TimeDead = System.currentTimeMillis()-tree3DeadTime;}
  1032. }
  1033. }
  1034. }
  1035. else
  1036. {
  1037. tree3Status=false;
  1038. tree3TimeDead = 0;
  1039. tree3TimeAlive = 0;
  1040. }
  1041. if(tree4.getX()!=0)
  1042. {
  1043. RSObject[] check4 = objects.getAllAt(tree4);
  1044. {
  1045. for(int i = 0; i< check4.length; i++)
  1046. {
  1047. if(check4[i].getID()==stumpID&&tree4Status)
  1048. { tree4Status = false;
  1049. tree4DeadTime = System.currentTimeMillis();
  1050. tree4TimeAlive = -1;
  1051. }
  1052. else if(check4[i].getID()==treeID&&!tree4Status)
  1053. { tree4Status = true;
  1054. tree4AliveTime = System.currentTimeMillis();
  1055. tree4TimeDead = -1;
  1056. }
  1057. else if(check4[i].getID()==treeID)
  1058. { tree4Status = true;
  1059. tree4TimeAlive = System.currentTimeMillis()-tree4AliveTime;}
  1060. else if(check4[i].getID()==stumpID)
  1061. { tree4Status = false;
  1062. tree4TimeDead = System.currentTimeMillis()-tree4DeadTime;}
  1063. }
  1064. }
  1065. }
  1066. else
  1067. {
  1068. tree4Status=false;
  1069. tree4TimeDead = 0;
  1070. tree4TimeAlive = 0;
  1071. }
  1072. if(tree5.getX()!=0)
  1073. {
  1074. RSObject[] check5 = objects.getAllAt(tree5);
  1075. {
  1076. for(int i = 0; i< check5.length; i++)
  1077. {
  1078. if(check5[i].getID()==stumpID&&tree5Status)
  1079. { tree5Status = false;
  1080. tree5DeadTime = System.currentTimeMillis();
  1081. tree5TimeAlive = -1;
  1082. }
  1083. else if(check5[i].getID()==treeID&&!tree5Status)
  1084. { tree5Status = true;
  1085. tree5AliveTime = System.currentTimeMillis();
  1086. tree5TimeDead = -1;
  1087. }
  1088. else if(check5[i].getID()==treeID)
  1089. { tree5Status = true;
  1090. tree5TimeAlive = System.currentTimeMillis()-tree5AliveTime;}
  1091. else if(check5[i].getID()==stumpID)
  1092. { tree5Status = false;
  1093. tree5TimeDead = System.currentTimeMillis()-tree5DeadTime;}
  1094. }
  1095. }
  1096. }
  1097. else
  1098. {
  1099. tree5Status=false;
  1100. tree5TimeDead = 0;
  1101. tree5TimeAlive = 0;
  1102. }
  1103. if(tree6.getX()!=0)
  1104. {
  1105. RSObject[] check6 = objects.getAllAt(tree6);
  1106. {
  1107. for(int i = 0; i< check6.length; i++)
  1108. {
  1109. if(check6[i].getID()==stumpID&&tree6Status)
  1110. { tree6Status = false;
  1111. tree6DeadTime = System.currentTimeMillis();
  1112. tree6TimeAlive = -1;
  1113. }
  1114. else if(check6[i].getID()==treeID&&!tree6Status)
  1115. { tree6Status = true;
  1116. tree6AliveTime = System.currentTimeMillis();
  1117. tree6TimeDead = -1;
  1118. }
  1119. else if(check6[i].getID()==treeID)
  1120. { tree6Status = true;
  1121. tree6TimeAlive = System.currentTimeMillis()-tree6AliveTime;}
  1122. else if(check6[i].getID()==stumpID)
  1123. { tree6Status = false;
  1124. tree6TimeDead = System.currentTimeMillis()-tree6DeadTime;}
  1125. }
  1126. }
  1127. }
  1128. else
  1129. {
  1130. tree6Status=false;
  1131. tree6TimeDead = 0;
  1132. tree6TimeAlive = 0;
  1133. }
  1134. if(tree7.getX()!=0)
  1135. {
  1136. RSObject[] check7 = objects.getAllAt(tree7);
  1137. {
  1138. for(int i = 0; i< check7.length; i++)
  1139. {
  1140. if(check7[i].getID()==stumpID&&tree7Status)
  1141. { tree7Status = false;
  1142. tree7DeadTime = System.currentTimeMillis();
  1143. tree7TimeAlive = -1;
  1144. }
  1145. else if(check7[i].getID()==treeID&&!tree7Status)
  1146. { tree7Status = true;
  1147. tree7AliveTime = System.currentTimeMillis();
  1148. tree7TimeDead = -1;
  1149. }
  1150. else if(check7[i].getID()==treeID)
  1151. { tree7Status = true;
  1152. tree7TimeAlive = System.currentTimeMillis()-tree7AliveTime;}
  1153. else if(check7[i].getID()==stumpID)
  1154. { tree7Status = false;
  1155. tree7TimeDead = System.currentTimeMillis()-tree7DeadTime;}
  1156. }
  1157. }
  1158. }
  1159. else
  1160. {
  1161. tree7Status=false;
  1162. tree7TimeDead = 0;
  1163. tree7TimeAlive = 0;
  1164. }
  1165. }
  1166. public void checkIvy()
  1167. {
  1168. RSObject[] check1 = objects.getAllAt(tree1);
  1169. for(int i = 0; i< check1.length; i++)
  1170. {
  1171. if(stumpIDs.contains(check1[i].getID())&&tree1Status)
  1172. { tree1Status = false;
  1173. tree1DeadTime = System.currentTimeMillis();
  1174. tree1TimeAlive = -1;
  1175. }
  1176. else if(ivyIDs.contains(check1[i].getID())&&!tree1Status)
  1177. { tree1Status = true;
  1178. tree1AliveTime = System.currentTimeMillis();
  1179. tree1TimeDead = -1;
  1180. }
  1181. else if(ivyIDs.contains(check1[i].getID()))
  1182. { tree1Status = true;
  1183. tree1TimeAlive = System.currentTimeMillis()-tree1AliveTime;}
  1184. else if(stumpIDs.contains(check1[i].getID()))
  1185. { tree1Status = false;
  1186. tree1TimeDead = System.currentTimeMillis()-tree1DeadTime;}
  1187. }
  1188. RSObject[] check2 = objects.getAllAt(tree2);
  1189. for(int i = 0; i< check2.length; i++)
  1190. {
  1191. if(stumpIDs.contains(check2[i].getID())&&tree2Status)
  1192. { tree2Status = false;
  1193. tree2DeadTime = System.currentTimeMillis();
  1194. tree2TimeAlive = -1;
  1195. }
  1196. else if(ivyIDs.contains(check2[i].getID())&&!tree2Status)
  1197. { tree2Status = true;
  1198. tree2AliveTime = System.currentTimeMillis();
  1199. tree2TimeDead = -1;
  1200. }
  1201. else if(ivyIDs.contains(check2[i].getID()))
  1202. { tree2Status = true;
  1203. tree2TimeAlive = System.currentTimeMillis()-tree2AliveTime;}
  1204. else if(stumpIDs.contains(check2[i].getID()))
  1205. { tree2Status = false;
  1206. tree2TimeDead = System.currentTimeMillis()-tree2DeadTime;}
  1207. }
  1208. if(tree3.getX()!=0)
  1209. {
  1210. RSObject[] check3 = objects.getAllAt(tree3);
  1211. {
  1212. for(int i = 0; i< check3.length; i++)
  1213. {
  1214. if(stumpIDs.contains(check3[i].getID())&&tree3Status)
  1215. { tree3Status = false;
  1216. tree3DeadTime = System.currentTimeMillis();
  1217. tree3TimeAlive = -1;
  1218. }
  1219. else if(ivyIDs.contains(check3[i].getID())&&!tree3Status)
  1220. { tree3Status = true;
  1221. tree3AliveTime = System.currentTimeMillis();
  1222. tree3TimeDead = -1;
  1223. }
  1224. else if(ivyIDs.contains(check3[i].getID()))
  1225. { tree3Status = true;
  1226. tree3TimeAlive = System.currentTimeMillis()-tree3AliveTime;}
  1227. else if(stumpIDs.contains(check3[i].getID()))
  1228. { tree3Status = false;
  1229. tree3TimeDead = System.currentTimeMillis()-tree3DeadTime;}
  1230. }
  1231. }
  1232. }
  1233. else
  1234. {
  1235. tree3Status=false;
  1236. tree3TimeDead = 0;
  1237. tree3TimeAlive = 0;
  1238. }
  1239. if(tree4.getX()!=0)
  1240. {
  1241. RSObject[] check4 = objects.getAllAt(tree4);
  1242. {
  1243. for(int i = 0; i< check4.length; i++)
  1244. {
  1245. if(stumpIDs.contains(check4[i].getID())&&tree4Status)
  1246. { tree4Status = false;
  1247. tree4DeadTime = System.currentTimeMillis();
  1248. tree4TimeAlive = -1;
  1249. }
  1250. else if(ivyIDs.contains(check4[i].getID())&&!tree4Status)
  1251. { tree4Status = true;
  1252. tree4AliveTime = System.currentTimeMillis();
  1253. tree4TimeDead = -1;
  1254. }
  1255. else if(ivyIDs.contains(check4[i].getID()))
  1256. { tree4Status = true;
  1257. tree4TimeAlive = System.currentTimeMillis()-tree4AliveTime;}
  1258. else if(stumpIDs.contains(check4[i].getID()))
  1259. { tree4Status = false;
  1260. tree4TimeDead = System.currentTimeMillis()-tree4DeadTime;}
  1261. }
  1262. }
  1263. }
  1264. else
  1265. {
  1266. tree4Status=false;
  1267. tree4TimeDead = 0;
  1268. tree4TimeAlive = 0;
  1269. }
  1270. if(tree5.getX()!=0)
  1271. {
  1272. RSObject[] check5 = objects.getAllAt(tree5);
  1273. {
  1274. for(int i = 0; i< check5.length; i++)
  1275. {
  1276. if(stumpIDs.contains(check5[i].getID())&&tree5Status)
  1277. { tree5Status = false;
  1278. tree5DeadTime = System.currentTimeMillis();
  1279. tree5TimeAlive = -1;
  1280. }
  1281. else if(ivyIDs.contains(check5[i].getID())&&!tree5Status)
  1282. { tree5Status = true;
  1283. tree5AliveTime = System.currentTimeMillis();
  1284. tree5TimeDead = -1;
  1285. }
  1286. else if(ivyIDs.contains(check5[i].getID()))
  1287. { tree5Status = true;
  1288. tree5TimeAlive = System.currentTimeMillis()-tree5AliveTime;}
  1289. else if(stumpIDs.contains(check5[i].getID()))
  1290. { tree5Status = false;
  1291. tree5TimeDead = System.currentTimeMillis()-tree5DeadTime;}
  1292. }
  1293. }
  1294. }
  1295. else
  1296. {
  1297. tree5Status=false;
  1298. tree5TimeDead = 0;
  1299. tree5TimeAlive = 0;
  1300. }
  1301. if(tree6.getX()!=0)
  1302. {
  1303. RSObject[] check6 = objects.getAllAt(tree6);
  1304. {
  1305. for(int i = 0; i< check6.length; i++)
  1306. {
  1307. if(stumpIDs.contains(check6[i].getID())&&tree6Status)
  1308. { tree6Status = false;
  1309. tree6DeadTime = System.currentTimeMillis();
  1310. tree6TimeAlive = -1;
  1311. }
  1312. else if(ivyIDs.contains(check6[i].getID())&&!tree6Status)
  1313. { tree6Status = true;
  1314. tree6AliveTime = System.currentTimeMillis();
  1315. tree6TimeDead = -1;
  1316. }
  1317. else if(ivyIDs.contains(check6[i].getID()))
  1318. { tree6Status = true;
  1319. tree6TimeAlive = System.currentTimeMillis()-tree6AliveTime;}
  1320. else if(stumpIDs.contains(check6[i].getID()))
  1321. { tree6Status = false;
  1322. tree6TimeDead = System.currentTimeMillis()-tree6DeadTime;}
  1323. }
  1324. }
  1325. }
  1326. else
  1327. {
  1328. tree6Status=false;
  1329. tree6TimeDead = 0;
  1330. tree6TimeAlive = 0;
  1331. }
  1332. if(tree7.getX()!=0)
  1333. {
  1334. RSObject[] check7 = objects.getAllAt(tree7);
  1335. {
  1336. for(int i = 0; i< check7.length; i++)
  1337. {
  1338. if(stumpIDs.contains(check7[i].getID())&&tree7Status)
  1339. { tree7Status = false;
  1340. tree7DeadTime = System.currentTimeMillis();
  1341. tree7TimeAlive = -1;
  1342. }
  1343. else if(ivyIDs.contains(check7[i].getID())&&!tree7Status)
  1344. { tree7Status = true;
  1345. tree7AliveTime = System.currentTimeMillis();
  1346. tree7TimeDead = -1;
  1347. }
  1348. else if(ivyIDs.contains(check7[i].getID()))
  1349. { tree7Status = true;
  1350. tree7TimeAlive = System.currentTimeMillis()-tree7AliveTime;}
  1351. else if(stumpIDs.contains(check7[i].getID()))
  1352. { tree7Status = false;
  1353. tree7TimeDead = System.currentTimeMillis()-tree7DeadTime;}
  1354. }
  1355. }
  1356. }
  1357. else
  1358. {
  1359. tree7Status=false;
  1360. tree7TimeDead = 0;
  1361. tree7TimeAlive = 0;
  1362. }
  1363.  
  1364. }
  1365. public void calculateNextTree()
  1366. {
  1367. if(!tree7Status&&!tree6Status&&!tree5Status&&!tree4Status&&!tree3Status&&!tree2Status&&!tree1Status)
  1368. {
  1369. long num = -2;
  1370. int index = -1;
  1371. long [] temp = {tree1TimeDead,tree2TimeDead,tree3TimeDead,tree4TimeDead,tree5TimeDead,tree6TimeDead,tree7TimeDead};
  1372. for(int i =0; i < temp.length; i++)
  1373. {
  1374. if(temp[i]>=num)
  1375. {index = i;
  1376. num = temp[i];
  1377. }
  1378. }
  1379. nextTree = index+1;
  1380. }
  1381. else if(nearest){
  1382. RSTile [] trees = {tree1, tree2, tree3, tree4, tree5, tree6, tree7};
  1383. int [] distances = new int [7];
  1384. boolean [] temp = {tree1Status,tree2Status,tree3Status,tree4Status,tree5Status,tree6Status,tree7Status};
  1385. for(int i = 0; i<temp.length;i++)
  1386. if(temp[i])
  1387. distances[i] = distanceTo(trees[i]);
  1388. else
  1389. distances[i] = 500;
  1390. int min = 500;
  1391. int index = -1;
  1392. if(!status.equals("Chopping!")){
  1393. for(int i =0; i<distances.length;i++)
  1394. if(distances[i]<min)
  1395. {index = i;
  1396. min = distances[i];
  1397. }
  1398. }
  1399. else{
  1400. min=499;
  1401. int index2 = -1;
  1402. for(int i =0; i<distances.length;i++){
  1403. if(distances[i]<min&&min==499)
  1404. {index2 = i;
  1405. min = distances[i];
  1406. }
  1407. else if(distances[i]<min&&min!=499)
  1408. {
  1409. index=index2;
  1410. index2=i;
  1411. }
  1412. }
  1413. }
  1414. nextTree = index+1;
  1415. }
  1416. else{
  1417. long num = -2;
  1418. int index = -1;
  1419. long [] temp = {tree1TimeAlive,tree2TimeAlive,tree3TimeAlive,tree4TimeAlive,tree5TimeAlive,tree6TimeAlive,tree7TimeAlive};
  1420. if(!status.equals("Chopping!")){
  1421. for(int i =0; i < temp.length; i++)
  1422. {
  1423. if(temp[i]>=num)
  1424. {index = i;
  1425. num = temp[i];
  1426. }
  1427. }
  1428. }
  1429. else{
  1430. int index2 = -1;
  1431. for(int i =0; i < temp.length; i++){
  1432. if(temp[i]>=num&&num==-2)
  1433. {
  1434. index2 = i;
  1435. num = temp[i];
  1436. }
  1437. else if(temp[i]>=num)
  1438. {
  1439. index=index2;
  1440. index2=i;
  1441. }
  1442. }
  1443. }
  1444. nextTree = index+1;
  1445. }
  1446. }
  1447. public RSObject getNextTree()
  1448. {
  1449. if(!treeType.equals("ivy")&&!treeType.equals("willows"))
  1450. {
  1451. RSObject [] temp = new RSObject [10];
  1452. if(nextTree==1)
  1453. temp = objects.getAllAt(tree1);
  1454. if(nextTree==2)
  1455. temp = objects.getAllAt(tree2);
  1456. if(nextTree==3)
  1457. temp = objects.getAllAt(tree3);
  1458. if(nextTree==4)
  1459. temp = objects.getAllAt(tree4);
  1460. if(nextTree==5)
  1461. temp = objects.getAllAt(tree5);
  1462. if(nextTree==6)
  1463. temp = objects.getAllAt(tree6);
  1464. if(nextTree==7)
  1465. temp = objects.getAllAt(tree7);
  1466. for(int i = 0; i<temp.length;i++)
  1467. if(temp[i].getID()==treeID)
  1468. return temp[i];
  1469. }
  1470. else
  1471. {
  1472. RSObject [] temp = new RSObject [10];
  1473. if(nextTree==1)
  1474. temp = objects.getAllAt(tree1);
  1475. if(nextTree==2)
  1476. temp = objects.getAllAt(tree2);
  1477. if(nextTree==3)
  1478. temp = objects.getAllAt(tree3);
  1479. if(nextTree==4)
  1480. temp = objects.getAllAt(tree4);
  1481. if(nextTree==5)
  1482. temp = objects.getAllAt(tree5);
  1483. if(nextTree==6)
  1484. temp = objects.getAllAt(tree6);
  1485. if(nextTree==7)
  1486. temp = objects.getAllAt(tree7);
  1487. for(int i = 0; i<temp.length;i++)
  1488. if(ivyIDs.contains(temp[i].getID()))
  1489. return temp[i];
  1490. }
  1491. return null;
  1492. }
  1493. public RSTile getMidTile(RSTile tile1, RSTile tile2)
  1494. {
  1495. int x1 = tile1.getX();
  1496. int y1 = tile1.getY();
  1497. int x2 = tile2.getX();
  1498. int y2 = tile2.getY();
  1499.  
  1500. return new RSTile((int)(x1+x2)/2,(int)(y1+y2)/2);
  1501. }
  1502. public void moveToNextTree()
  1503. {
  1504. status = "Moving to tree: "+nextTree;
  1505. RSTile [] trees = {tree1,tree2,tree3,tree4,tree5,tree6,tree7};
  1506. RSTile tileToWalkTo = getMidTile(players.getMyPlayer().getLocation(),trees[nextTree-1]);
  1507. if(!walking.isRunEnabled()&&walking.getEnergy()>20){
  1508. walking.setRun(true);
  1509. sleep(random(600,800));
  1510. }
  1511. if(command.equals("South Falador - Yews")||command.equals("Draynor - Yews"))
  1512. {
  1513. moveToNextTreeLong();
  1514. }
  1515. else if(command.equals("Edgeville - Yews")){
  1516. if(nextTree == 1&& calc.tileOnMap(tree1))
  1517. tileToWalkTo = new RSTile(tree1.getX(),tree1.getY()-2);
  1518. if(nextTree == 2&& calc.tileOnMap(tree2))
  1519. tileToWalkTo = new RSTile(tree2.getX(),tree2.getY()+2);
  1520. }
  1521. else if(command.equals("Grand Exchange - Yews")){
  1522. if(nextTree == 1&& calc.tileOnMap(tree1))
  1523. tileToWalkTo = new RSTile(tree1.getX()+2,tree1.getY());
  1524. if(nextTree == 2&& calc.tileOnMap(tree2))
  1525. tileToWalkTo = new RSTile(tree2.getX(),tree2.getY());
  1526. if(nextTree == 3&& calc.tileOnMap(tree3))
  1527. tileToWalkTo = new RSTile(tree3.getX()-2,tree2.getY());
  1528. }
  1529. else if(command.equals("Catherby - Yews")){
  1530. if(nextTree == 1&& calc.tileOnMap(tree1))
  1531. tileToWalkTo = new RSTile(tree1.getX(),tree1.getY()-2);
  1532. if(nextTree == 2&& calc.tileOnMap(tree2))
  1533. tileToWalkTo = new RSTile(tree2.getX(),tree2.getY()-2);
  1534. if(nextTree == 3&& calc.tileOnMap(tree3))
  1535. tileToWalkTo = new RSTile(tree3.getX(),tree3.getY()-2);
  1536. if(nextTree == 4&& calc.tileOnMap(tree4))
  1537. tileToWalkTo = new RSTile(tree4.getX(),tree4.getY()-2);
  1538. if(nextTree == 5&& calc.tileOnMap(tree5))
  1539. tileToWalkTo = new RSTile(tree5.getX(),tree5.getY()-2);
  1540. if(nextTree == 6&& calc.tileOnMap(tree6))
  1541. tileToWalkTo = new RSTile(tree6.getX(),tree6.getY()-2);
  1542. if(nextTree == 7&& calc.tileOnMap(tree7))
  1543. tileToWalkTo = new RSTile(tree7.getX(),tree7.getY()-2);
  1544. }
  1545. else if(command.equals( "Catherby - Yews")){
  1546. if(nextTree == 1&& calc.tileOnMap(tree1))
  1547. tileToWalkTo = new RSTile(tree1.getX(),tree1.getY()+2);
  1548. if(nextTree == 2&& calc.tileOnMap(tree2))
  1549. tileToWalkTo = new RSTile(tree2.getX(),tree2.getY()+2);
  1550. if(nextTree == 3&& calc.tileOnMap(tree3))
  1551. tileToWalkTo = new RSTile(tree3.getX(),tree3.getY()-2);
  1552. }
  1553. else{
  1554. if(nextTree == 1&& calc.tileOnMap(tree1))
  1555. tileToWalkTo = tree1;
  1556. if(nextTree == 2&& calc.tileOnMap(tree2))
  1557. tileToWalkTo = tree2;
  1558. if(nextTree == 3&& calc.tileOnMap(tree3))
  1559. tileToWalkTo = tree3;
  1560. if(nextTree == 4&& calc.tileOnMap(tree4))
  1561. tileToWalkTo = tree4;
  1562. if(nextTree == 5&& calc.tileOnMap(tree5))
  1563. tileToWalkTo = tree5;
  1564. if(nextTree == 6&& calc.tileOnMap(tree6))
  1565. tileToWalkTo = tree6;
  1566. if(nextTree == 7&& calc.tileOnMap(tree7))
  1567. tileToWalkTo = tree7;
  1568. }
  1569. if(!command.equals("South Falador - Yews")&&!command.equals("Draynor - Yews"))
  1570. {
  1571. boolean didClick = false;
  1572. if(calc.tileOnScreen(tileToWalkTo)&&!command.equals("Mage Training Area - Magics"))
  1573. {if(walking.walkTileOnScreen(tileToWalkTo))
  1574. didClick=true;}
  1575. else
  1576. if(walking.walkTileMM(tileToWalkTo))
  1577. didClick= true;
  1578. if(command.equals("Mage Training Area - Magics")&&didClick)
  1579. while(getMyPlayer().isMoving())
  1580. sleep(random(600,800));
  1581. sleep(random(600,800));
  1582. if(didClick){
  1583. long start = System.currentTimeMillis();
  1584. while (!playerIsNear(trees[nextTree-1],4)) {
  1585. if(System.currentTimeMillis()-start>2000)
  1586. break;
  1587. if(System.currentTimeMillis()-start>random(600,800)&&!getMyPlayer().isMoving())
  1588. walking.walkTileMM(tileToWalkTo);
  1589. sleep(random(100, 200));
  1590. }
  1591. if(!playerIsNear(trees[nextTree-1],4)) //try again
  1592. walking.walkTileMM(tileToWalkTo);
  1593. }
  1594. }
  1595. }
  1596. public void moveToNextTreeLong()
  1597. {
  1598. RSTile[] trees = {tree1,tree2,tree3,tree4,tree5,tree6,tree7};
  1599. long start = System.currentTimeMillis();
  1600. if(location.equals("South Falador")){
  1601. RSTile[] p1to3 = { tree1, new RSTile(3007, 3318), tree2, new RSTile(3030, 3321), new RSTile(3038,3321), tree3 };
  1602. RSTile[] p3to1 = walking.reversePath(p1to3);
  1603. RSTile[] p1to2 = { tree1,new RSTile(3007, 3318), tree2};
  1604. RSTile[] p2to1 = walking.reversePath(p1to2);
  1605. RSTile[] p2to3 = { tree2,new RSTile(3030, 3321),new RSTile(3038,3321), tree3 };
  1606. RSTile[] p3to2 = walking.reversePath(p2to3);
  1607.  
  1608. RSTile[][] paths = {p1to3,p3to1,p1to2,p2to1,p2to3,p3to2};
  1609.  
  1610. int choice = -1;
  1611. if(nextTree ==1 && !atTrees())
  1612. choice = 1;
  1613. if(nextTree ==1 && atTrees())
  1614. choice = 3;
  1615. else if(nextTree == 2 && playerIsNear(tree3,4))
  1616. choice = 5;
  1617. else if(nextTree == 2 && playerIsNear(tree1,4))
  1618. choice = 2;
  1619. else if(nextTree == 3)
  1620. choice = 0;
  1621. else if(nextTree == 2)
  1622. choice = 2;
  1623.  
  1624. if(choice>=0){
  1625. status = "Moving to tree: "+nextTree;
  1626. int lastTileToWalkTo = -1;
  1627. int tempTileToWalkTo = walkPath(paths[choice]);
  1628. boolean clickedLastTile = false;
  1629. while(!playerIsNear(trees[nextTree-1],4)&&System.currentTimeMillis()-start<20000){
  1630. boolean clicked = false;
  1631. tempTileToWalkTo = walkPath(paths[choice]);
  1632. if(!clickedLastTile){
  1633. if(tempTileToWalkTo>lastTileToWalkTo){
  1634. if(calc.tileOnScreen(paths[choice][tempTileToWalkTo])){
  1635. if(!walking.walkTileOnScreen(paths[choice][tempTileToWalkTo]))
  1636. if(walking.walkTileMM(paths[choice][tempTileToWalkTo],1,1))
  1637. clicked = true;
  1638. else
  1639. clicked = false;
  1640. else
  1641. clicked = true;
  1642. }
  1643. else
  1644. clicked = walking.walkTileMM(paths[choice][tempTileToWalkTo],1,1);
  1645. }
  1646.  
  1647.  
  1648. if(clicked){
  1649. lastTileToWalkTo = tempTileToWalkTo;
  1650. if(tempTileToWalkTo==paths[choice].length-1)
  1651. {
  1652. clickedLastTile = true;
  1653. }
  1654. }
  1655. }
  1656. sleep(random(200, 300));
  1657. }
  1658. }
  1659. }
  1660. if(location.equals("Draynor")){
  1661. RSTile[] p1to2 = {tree1,new RSTile(3149,3244),tree2};
  1662. RSTile[] p2to1 = walking.reversePath(p1to2);
  1663. RSTile[] p2to3 = {tree2,new RSTile(3161,3222), tree3};
  1664. RSTile[] p3to2 = walking.reversePath(p2to3);
  1665. RSTile[] p3to4 = {tree3, new RSTile(3176,3224), tree4};
  1666. RSTile[] p4to3 = walking.reversePath(p3to4);
  1667. RSTile[] p2to4 = {tree2, new RSTile(3162,3227), new RSTile(3171,3227),tree4};
  1668. RSTile[] p4to2 = walking.reversePath(p2to4);
  1669. RSTile[] p1to3 = {tree1, new RSTile(3151,3248), new RSTile(3153,3241), new RSTile(3161,3228),tree3};
  1670. RSTile[] p3to1 = walking.reversePath(p1to3);
  1671. RSTile[] p1to4 = {tree1, new RSTile(3156,3244), new RSTile(3165,3235), new RSTile(3175,3229), tree4};
  1672. RSTile[] p4to1 = walking.reversePath(p1to4);
  1673.  
  1674. RSTile[][] paths = {p1to2,p2to1,p2to3,p3to2,p3to4,p4to3,p2to4,p4to2,p1to3,p3to1,p1to4,p4to1};
  1675.  
  1676. int choice = -1;
  1677. status = "Moving to tree: "+nextTree;
  1678. if(nextTree ==1 && playerIsNear(tree3,6))
  1679. choice = 9;
  1680. else if(nextTree == 1 && playerIsNear(tree2,6))
  1681. choice = 1;
  1682. else if(nextTree == 2 && playerIsNear(tree3,6))
  1683. choice = 3;
  1684. else if(nextTree == 2 && playerIsNear(tree1,6))
  1685. choice = 0;
  1686. else if(nextTree == 3 && playerIsNear(tree1,6))
  1687. choice = 8;
  1688. else if(nextTree == 3 && playerIsNear(tree2,6))
  1689. choice = 2;
  1690. else if(nextTree == 4 && playerIsNear(tree3,6))
  1691. choice = 4;
  1692. else if(nextTree == 3 && playerIsNear(tree4,6))
  1693. choice = 5;
  1694. else if(nextTree == 4 && playerIsNear(tree2,6))
  1695. choice = 6;
  1696. else if(nextTree == 2 && playerIsNear(tree4,6))
  1697. choice = 7;
  1698. else if(nextTree == 4 && playerIsNear(tree1,6))
  1699. choice = 10;
  1700. else if(nextTree == 1 && playerIsNear(tree4,6))
  1701. choice = 11;
  1702. else if(playerIsNear(new RSTile(3149,3237),6))
  1703. choice = 0;
  1704. else if(playerIsNear(new RSTile(3161,3222),6))
  1705. choice = 2;
  1706. else if(playerIsNear(new RSTile(3176,3224),6))
  1707. choice = 4;
  1708. else if(playerIsNear(new RSTile(3171,3227),6)||playerIsNear(new RSTile(3162,3227),6))
  1709. choice = 6;
  1710. else if(playerIsNear(new RSTile(3151,3248),6)||playerIsNear(new RSTile(3153,3241),6)||playerIsNear(new RSTile(3161,3228),6))
  1711. choice = 8;
  1712. else if(playerIsNear(new RSTile(3156,3240),6)||playerIsNear(new RSTile(3166,3232),6)||playerIsNear(new RSTile(3176,3229),6))
  1713. choice = 10;
  1714.  
  1715.  
  1716.  
  1717. if(choice>=0){
  1718. int lastTileToWalkTo = -1;
  1719. int tempTileToWalkTo = walkPath(paths[choice]);
  1720. boolean clickedLastTile = false;
  1721. while(!playerIsNear(trees[nextTree-1],4)&&System.currentTimeMillis()-start<20000){
  1722. boolean clicked = false;
  1723. tempTileToWalkTo = walkPath(paths[choice]);
  1724. if(!clickedLastTile){
  1725. if(tempTileToWalkTo>lastTileToWalkTo){
  1726. if(calc.tileOnScreen(paths[choice][tempTileToWalkTo])){
  1727. if(!walking.walkTileOnScreen(paths[choice][tempTileToWalkTo]))
  1728. if(walking.walkTileMM(paths[choice][tempTileToWalkTo],1,1))
  1729. clicked = true;
  1730. else
  1731. clicked = false;
  1732. else
  1733. clicked = true;
  1734. }
  1735. else
  1736. clicked = walking.walkTileMM(paths[choice][tempTileToWalkTo],1,1);
  1737.  
  1738. }
  1739. if(clicked){
  1740. lastTileToWalkTo = tempTileToWalkTo;
  1741. if(tempTileToWalkTo==paths[choice].length-1)
  1742. {
  1743. clickedLastTile = true;
  1744. }
  1745. }
  1746. }
  1747. sleep(random(200, 300));
  1748. }
  1749. }
  1750. }
  1751. }
  1752. public void chop(boolean secondTry)
  1753. {
  1754. safety = 1;
  1755. if(!treeType.equals("ivy")){
  1756. RSObject treeToChop = getNextTree();
  1757. RSModel m = treeToChop.getModel();
  1758. Point temp = m.getPoint();
  1759. mouse.move(temp);
  1760. }
  1761. RSTile [] ivys = {tree1,tree2,tree3,tree4,tree5,tree6,tree7};
  1762.  
  1763.  
  1764. if(!secondTry&&treeType.equals("ivy")){
  1765.  
  1766. if(command.equals("Castle Wars - Ivy")||command.equals("South Falador - Ivy"))
  1767. {
  1768. camera.setPitch(false);
  1769. int tempNum = random(1,2);
  1770. if(tempNum==1)
  1771. camera.setAngle(random(1,30));
  1772. if(tempNum==2)
  1773. camera.setAngle(random(340,359));
  1774. }
  1775. if(command.equals("Grand Exchange - Ivy")||command.equals("Yanille - Ivy")||command.equals("North Falador - Ivy"))
  1776. {
  1777. camera.setPitch(false);
  1778. camera.setAngle(random(170,190));
  1779. }
  1780. if(command.equals("Taverly - Ivy")||command.equals("Varrock Palace - Ivy"))
  1781. {
  1782. camera.setPitch(false);
  1783. camera.setAngle(random(260,280));
  1784. }
  1785. if(command.equals("Ardougne - Ivy"))
  1786. {
  1787. camera.setPitch(false);
  1788. camera.setAngle(random(80,100));
  1789. }
  1790. }
  1791.  
  1792. if(treeType.equals("yews"))
  1793. menu.doAction("Chop down Yew");
  1794. else if(treeType.equals("magics"))
  1795. menu.doAction("Chop down Magic tree");
  1796. else if(treeType.equals("ivy")){
  1797. Point p = calc.tileToScreen(ivys[nextTree-1]);
  1798. p.y-=(random(40,80));
  1799. p.x+=(random(-10,10));
  1800. mouse.move(p);
  1801. menu.doAction("Chop Ivy");
  1802. }
  1803. else if(treeType.equals("willows"))
  1804. menu.doAction("Chop down Willow");
  1805. else if(treeType.equals("maples"))
  1806. menu.doAction("Chop down Maple tree");
  1807. else if(treeType.equals("oaks"))
  1808. menu.doAction("Chop down Oak");
  1809.  
  1810. sleep(random(600,800));
  1811. while (players.getMyPlayer().isMoving()) {
  1812. sleep(random(100, 200));
  1813. }
  1814. if(!chopCheck()&&!secondTry)
  1815. chop(true);
  1816. }
  1817. public void hoverMouse(){
  1818. if(!players.getMyPlayer().isMoving()){
  1819. RSTile [] trees = {tree1,tree2,tree3,tree4,tree5,tree6,tree7};
  1820. if(calc.tileOnScreen(trees[nextTree-1])){
  1821. Point temp = calc.tileToScreen(trees[nextTree-1]);
  1822. try{
  1823. if(temp.getY()-50>1)
  1824. mouse.move(new Point((int)temp.getX(),(int)temp.getY()-50),1,1);
  1825. else
  1826. mouse.move(new Point((int)temp.getX(),(int)temp.getY()),1,1);
  1827. }catch(Exception e){};
  1828. }
  1829. }
  1830. }
  1831. public boolean atBank(){
  1832. boolean temp = false;
  1833. if(command.equals("Grand Exchange - Yews")||command.equals("Grand Exchange - Ivy"))
  1834. {
  1835. if(getMyPlayer().getLocation().getX()<3171&&getMyPlayer().getLocation().getX()>=3167)
  1836. temp=true;
  1837. else
  1838. return false;
  1839. if(getMyPlayer().getLocation().getY()>=3486&&getMyPlayer().getLocation().getY()<=3492)
  1840. return true;
  1841. }
  1842. if(command.equals("Edgeville - Yews"))
  1843. {
  1844. if(getMyPlayer().getLocation().getX()<3096&&getMyPlayer().getLocation().getX()>=3091)
  1845. temp=true;
  1846. else
  1847. return false;
  1848. if(getMyPlayer().getLocation().getY()>=3488&&getMyPlayer().getLocation().getY()<=3494)
  1849. return true;
  1850. }
  1851. if(command.equals("South Falador - Yews")||command.equals("South Falador - Ivy"))
  1852. {
  1853. if(getMyPlayer().getLocation().getX()<3016&&getMyPlayer().getLocation().getX()>=3010)
  1854. temp=true;
  1855. else
  1856. return false;
  1857. if(getMyPlayer().getLocation().getY()>=3355&&getMyPlayer().getLocation().getY()<=3359)
  1858. return true;
  1859. }
  1860. if(command.equals("Rimmington - Yews")||command.equals("Port Salim - Willows")){
  1861. return (getMyPlayer().getLocation().getX()>=3045&&getMyPlayer().getLocation().getY()<=3237&&getMyPlayer().getLocation().getY()>=3234);
  1862. }
  1863.  
  1864. if(command.equals("Catherby - Yews"))
  1865. {
  1866. if(getMyPlayer().getLocation().getX()<=2811&&getMyPlayer().getLocation().getX()>=2807)
  1867. temp=true;
  1868. else
  1869. return false;
  1870. if(getMyPlayer().getLocation().getY()>=3439&&getMyPlayer().getLocation().getY()<=3441)
  1871. return true;
  1872. }
  1873. if(command.equals("Tree Gnome - Yews"))
  1874. {
  1875. if(getMyPlayer().getLocation().getX()<=2446&&getMyPlayer().getLocation().getX()>=2445)
  1876. temp=true;
  1877. else
  1878. return false;
  1879. if(getMyPlayer().getLocation().getY()>=3423&&getMyPlayer().getLocation().getY()<=3428)
  1880. return true;
  1881. }
  1882. if(location.equals("Seer's Village")||command.equals("Sorcerer's Tower - Magics"))
  1883. {
  1884. if(getMyPlayer().getLocation().getX()>=2724&&getMyPlayer().getLocation().getX()<=2728)
  1885. temp=true;
  1886. else
  1887. return false;
  1888. if(getMyPlayer().getLocation().getY()>=3491&&getMyPlayer().getLocation().getY()<=3495)
  1889. return true;
  1890. }
  1891. if(command.equals("Mage Training Area - Magics"))
  1892. {
  1893. return playerIsNear(bankLocation,5);
  1894. }
  1895. if(command.equals("Castle Wars - Ivy"))
  1896. {
  1897. if(getMyPlayer().getLocation().getX()<2445&&getMyPlayer().getLocation().getX()>=3086)
  1898. temp=true;
  1899. else
  1900. return false;
  1901. if(getMyPlayer().getLocation().getY()>=3083&&getMyPlayer().getLocation().getY()<=3086)
  1902. return true;
  1903. }
  1904. if(command.equals("Yanille - Ivy"))
  1905. {
  1906. if(getMyPlayer().getLocation().getX()<2614&&getMyPlayer().getLocation().getX()>=2611)
  1907. temp=true;
  1908. else
  1909. return false;
  1910. if(getMyPlayer().getLocation().getY()>=3092&&getMyPlayer().getLocation().getY()<=3095)
  1911. return true;
  1912. }
  1913. if(command.equals("Ardougne - Ivy"))
  1914. {
  1915. if(getMyPlayer().getLocation().getX()<2616&&getMyPlayer().getLocation().getX()>=2613)
  1916. temp=true;
  1917. else
  1918. return false;
  1919. if(getMyPlayer().getLocation().getY()>=3332&&getMyPlayer().getLocation().getY()<=3334)
  1920. return true;
  1921. }
  1922. if(command.equals("Varrock Palace - Ivy"))
  1923. {
  1924. if(getMyPlayer().getLocation().getX()<3255&&getMyPlayer().getLocation().getX()>=3250)
  1925. temp=true;
  1926. else
  1927. return false;
  1928. if(getMyPlayer().getLocation().getY()>=3252&&getMyPlayer().getLocation().getY()<=3422)
  1929. return true;
  1930. }
  1931. if(command.equals("North Falador - Ivy"))
  1932. {
  1933. if(getMyPlayer().getLocation().getX()<2948&&getMyPlayer().getLocation().getX()>=2944)
  1934. temp=true;
  1935. else
  1936. return false;
  1937. if(getMyPlayer().getLocation().getY()>=3368&&getMyPlayer().getLocation().getY()<=3371)
  1938. return true;
  1939. }
  1940. if(location.equals("Draynor"))
  1941. {
  1942. if(getMyPlayer().getLocation().getX()<3094&&getMyPlayer().getLocation().getX()>=3092)
  1943. temp=true;
  1944. else
  1945. return false;
  1946. if(getMyPlayer().getLocation().getY()>=3244&&getMyPlayer().getLocation().getY()<=3246)
  1947. return true;
  1948. }
  1949. return false;
  1950. }
  1951. public boolean atTrees()
  1952. {
  1953. boolean temp = false;
  1954. if(command.equals("Draynor - Oaks"))
  1955. return playerIsNear(tree1,4)||playerIsNear(tree2,4);
  1956. if(command.equals("Grand Exchange - Yews"))
  1957. {
  1958. if(getMyPlayer().getLocation().getX()>=3203&&getMyPlayer().getLocation().getX()<=3222)
  1959. temp=true;
  1960. else
  1961. return false;
  1962. if(getMyPlayer().getLocation().getY()>=3500&&getMyPlayer().getLocation().getY()<=3505)
  1963. return true;
  1964. }
  1965. if(command.equals("Edgeville - Yews"))
  1966. {
  1967. if(getMyPlayer().getLocation().getX()<3090&&getMyPlayer().getLocation().getX()>=3085)
  1968. temp=true;
  1969. else
  1970. return false;
  1971. if(getMyPlayer().getLocation().getY()>=3468&&getMyPlayer().getLocation().getY()<=3482)
  1972. return true;
  1973. }
  1974. if(command.equals("Rimmington - Yews"))
  1975. {
  1976. if(getMyPlayer().getLocation().getX()<2946&&getMyPlayer().getLocation().getX()>=2923)
  1977. temp=true;
  1978. else
  1979. return false;
  1980. if(getMyPlayer().getLocation().getY()>=3223&&getMyPlayer().getLocation().getY()<=3242)
  1981. return true;
  1982. }
  1983. if(command.equals("Catherby - Yews"))
  1984. {
  1985. if(getMyPlayer().getLocation().getX()<2769&&getMyPlayer().getLocation().getX()>=2751)
  1986. temp=true;
  1987. else
  1988. return false;
  1989. if(getMyPlayer().getLocation().getY()>=3427&&getMyPlayer().getLocation().getY()<=3438)
  1990. return true;
  1991. }
  1992. if(command.equals("Seer's Village - Yews"))
  1993. {
  1994. if(getMyPlayer().getLocation().getX()<2717&&getMyPlayer().getLocation().getX()>=2712)
  1995. temp=true;
  1996. else
  1997. return false;
  1998. if(getMyPlayer().getLocation().getY()>=3462&&getMyPlayer().getLocation().getY()<=3464)
  1999. return true;
  2000. }
  2001. if(command.equals("South Falador - Yews"))
  2002. {
  2003. if(getMyPlayer().getLocation().getX()<3010&&getMyPlayer().getLocation().getX()>=3004)
  2004. temp=true;
  2005. else
  2006. return false;
  2007. if(getMyPlayer().getLocation().getY()>=3317&&getMyPlayer().getLocation().getY()<=3325)
  2008. return true;
  2009. }
  2010. if(command.equals("Draynor - Yews"))
  2011. {
  2012. return playerIsNear(tree2,5);
  2013. }
  2014. if(command.equals("Tree Gnome - Yews"))
  2015. {
  2016. return floorHeight()==0&&playerIsNear(new RSTile (2444,3434),5);
  2017. }
  2018. if(command.equals("Seer's Village - Magics"))
  2019. {
  2020. if(getMyPlayer().getLocation().getX()>=2690&&getMyPlayer().getLocation().getX()<=2699)
  2021. temp=true;
  2022. else
  2023. return false;
  2024. if(getMyPlayer().getLocation().getY()>=3422&&getMyPlayer().getLocation().getY()<=3426)
  2025. return true;
  2026. }
  2027. if(command.equals("Sorcerer's Tower - Magics"))
  2028. {
  2029. if(getMyPlayer().getLocation().getX()<=2704&&getMyPlayer().getLocation().getX()>=2700)
  2030. temp=true;
  2031. else
  2032. return false;
  2033. if(getMyPlayer().getLocation().getY()>=3396&&getMyPlayer().getLocation().getY()<=3400)
  2034. return true;
  2035. }
  2036. if(command.equals("Mage Training Area - Magics"))
  2037. {
  2038. if(getMyPlayer().getLocation().getX()<=3365&&getMyPlayer().getLocation().getX()>=3361)
  2039. temp=true;
  2040. else
  2041. return false;
  2042. if(getMyPlayer().getLocation().getY()>=3296&&getMyPlayer().getLocation().getY()<=3300)
  2043. return true;
  2044. }
  2045. if(command.equals("Castle Wars - Ivy"))
  2046. {
  2047. if(getMyPlayer().getLocation().getX()<2431&&getMyPlayer().getLocation().getX()>=2423)
  2048. temp=true;
  2049. else
  2050. return false;
  2051. if(getMyPlayer().getLocation().getY()>=3067&&getMyPlayer().getLocation().getY()<=3068)
  2052. return true;
  2053. }
  2054. if(command.equals("Grand Exchange - Ivy"))
  2055. {
  2056. if(getMyPlayer().getLocation().getX()<3220&&getMyPlayer().getLocation().getX()>=3215)
  2057. temp=true;
  2058. else
  2059. return false;
  2060. if(getMyPlayer().getLocation().getY()>=3498&&getMyPlayer().getLocation().getY()<=3502)
  2061. return true;
  2062. }
  2063. if(command.equals("Yanille - Ivy"))
  2064. {
  2065. if(getMyPlayer().getLocation().getX()<2599&&getMyPlayer().getLocation().getX()>=2594)
  2066. temp=true;
  2067. else
  2068. return false;
  2069. if(getMyPlayer().getLocation().getY()>=3111&&getMyPlayer().getLocation().getY()<=3112)
  2070. return true;
  2071. }
  2072. if(command.equals("Ardougne - Ivy"))
  2073. {
  2074. if(getMyPlayer().getLocation().getX()<2624&&getMyPlayer().getLocation().getX()>=2622)
  2075. temp=true;
  2076. else
  2077. return false;
  2078. if(getMyPlayer().getLocation().getY()>=3304&&getMyPlayer().getLocation().getY()<=3310)
  2079. return true;
  2080. }
  2081. if(command.equals("Varrock Palace - Ivy"))
  2082. {
  2083. if(getMyPlayer().getLocation().getX()<3234&&getMyPlayer().getLocation().getX()>=3232)
  2084. temp=true;
  2085. else
  2086. return false;
  2087. if(getMyPlayer().getLocation().getY()>=3456&&getMyPlayer().getLocation().getY()<=3461)
  2088. return true;
  2089. }
  2090. if(command.equals("South Falador - Ivy"))
  2091. {
  2092. if(getMyPlayer().getLocation().getX()<3053&&getMyPlayer().getLocation().getX()>=3044)
  2093. temp=true;
  2094. else
  2095. return false;
  2096. if(getMyPlayer().getLocation().getY()>=3326&&getMyPlayer().getLocation().getY()<=3328)
  2097. return true;
  2098. }
  2099. if(command.equals("North Falador - Ivy"))
  2100. {
  2101. if(getMyPlayer().getLocation().getX()<3019&&getMyPlayer().getLocation().getX()>=3010)
  2102. temp=true;
  2103. else
  2104. return false;
  2105. if(getMyPlayer().getLocation().getY()>=3392&&getMyPlayer().getLocation().getY()<=3394)
  2106. return true;
  2107. }
  2108. if(command.equals("Draynor - Willows"))
  2109. {
  2110. if(getMyPlayer().getLocation().getX()<3092&&getMyPlayer().getLocation().getX()>=3083)
  2111. temp=true;
  2112. else
  2113. return false;
  2114. if(getMyPlayer().getLocation().getY()>=3233&&getMyPlayer().getLocation().getY()<=3239)
  2115. return true;
  2116. }
  2117. if(command.equals("Port Salim - Willows"))
  2118. {
  2119. if(getMyPlayer().getLocation().getX()<3064&&getMyPlayer().getLocation().getX()>=3056)
  2120. temp=true;
  2121. else
  2122. return false;
  2123. if(getMyPlayer().getLocation().getY()>=3250&&getMyPlayer().getLocation().getY()<=3256)
  2124. return true;
  2125. }
  2126. if(command.equals("Seer's Village - Maples"))
  2127. {
  2128. if(getMyPlayer().getLocation().getX()<2731&&getMyPlayer().getLocation().getX()>=2727)
  2129. temp=true;
  2130. else
  2131. return false;
  2132. if(getMyPlayer().getLocation().getY()>=3499&&getMyPlayer().getLocation().getY()<=3502)
  2133. return true;
  2134. }
  2135. return false;
  2136. }
  2137. public void gate()
  2138. {
  2139. if(calc.tileToScreen(new RSTile(3348,3279)).x!=-1)
  2140. {
  2141. RSObject gate = getGate();
  2142. while(isGateClosed()){
  2143. status = "Opening gate.";
  2144. walking.walkTileMM(new RSTile(3348,3279),1,1);
  2145. RSModel m = gate.getModel();
  2146. Point temp = m.getPoint();
  2147. mouse.move(temp,1,1);
  2148. if(menu.doAction("Open Gate"))
  2149. status = "Gate opened.";
  2150. sleep(random(1000,1200));
  2151. }
  2152. }
  2153. }
  2154. public boolean isGateClosed()
  2155. {
  2156. RSObject [] test = objects.getAllAt(new RSTile(3348,3279));
  2157. for(int i = 0; i<test.length;i++)
  2158. {
  2159. if(test[i].getID()==27852){
  2160. return true;
  2161. }
  2162. }
  2163. return false;
  2164. }
  2165. public RSObject getGate(){
  2166. RSObject [] test = objects.getAllAt(new RSTile(3348,3279));
  2167. RSObject gate = null;
  2168. for(int i = 0; i<test.length;i++)
  2169. {
  2170. if(test[i].getID()==27852){
  2171. gate = test[i];
  2172. }
  2173. }
  2174. return gate;
  2175. }
  2176. public void walkToBank(){
  2177. long startTime = System.currentTimeMillis();
  2178. status = "Walking to bank.";
  2179. if(random(1,3)==2)
  2180. camera.setPitch(true);
  2181. int lastTileToWalkTo = -1;
  2182. int tempTileToWalkTo = 0;
  2183. boolean clickedLastTile = false;
  2184. while(!atBank())
  2185. {
  2186. if(!walking.isRunEnabled()&&walking.getEnergy()>20){
  2187. walking.setRun(true);
  2188. sleep(random(600,800));
  2189. }
  2190. status = "Walking to bank..";
  2191. if(command.equals("Mage Training Area - Magics"))
  2192. {
  2193. gate();
  2194. }
  2195. /*if(command.equals("Rimmington - Yews"))
  2196. {
  2197. if(!getMyPlayer().isMoving()&&(playerIsNear(new RSTile(2933,3236),3)||playerIsNear(tree4,3)))
  2198. {walking.walkTileMM(treesToBank[0],1,1);
  2199. sleep(random(600,800));
  2200. while(getMyPlayer().isMoving())
  2201. sleep(random(100,200));}
  2202. }*/
  2203. /*if(command.equals("South Falador - Yews"))
  2204. {
  2205. if(playerIsNear(tree3,4))
  2206. {
  2207. walking.walkTileMM(new RSTile(3030,3321),1,1);
  2208. while(calc.tileToMinimap(tree2).getX()==-1){
  2209. sleep(random(100, 200));
  2210. }
  2211. walking.walkTileMM(tree2,1,1);
  2212. sleep(random(1200,1500));
  2213. while (players.getMyPlayer().isMoving()) {
  2214. sleep(random(100, 200));
  2215. }
  2216. }
  2217. }*/
  2218. if(command.equals("Tree Gnome - Yews"))
  2219. {
  2220. if(floorHeight()==0)
  2221. {
  2222. if(!playerIsNear(new RSTile(2444,3434),4))
  2223. {
  2224. walking.walkTileMM(new RSTile(2444,3434));
  2225. while(getMyPlayer().isMoving())
  2226. sleep(random(100,200));
  2227. }
  2228. else{
  2229. for(int inc = 0; inc<3;inc++){
  2230. RSObject stairs = null;
  2231. RSObject [] tester = objects.getAllAt(new RSTile(2446,3435));
  2232. for(int i = 0; i<tester.length;i++)
  2233. {
  2234. if(tester[i].getID()==1742)
  2235. stairs = tester[i];
  2236. }
  2237. if(stairs!=null){
  2238. RSModel m = stairs.getModel();
  2239. Point toClick = m.getPoint();
  2240. mouse.move(toClick);
  2241. mouse.click(true);
  2242. sleep(random(1000,1500));
  2243. }
  2244. }
  2245. if(floorHeight()==1)
  2246. break;
  2247. }
  2248. }
  2249. }
  2250. if(command.equals("Grand Exchange - Yews")){
  2251. if(playerIsNear(tree3,5)){
  2252. walking.walkTileMM(tree2);
  2253. sleep(random(600,800));
  2254. }
  2255. }
  2256.  
  2257. if(!getMyPlayer().isMoving()){
  2258. sleep(random(600,800));
  2259. if(!getMyPlayer().isMoving())
  2260. lastTileToWalkTo=-1;
  2261. }
  2262. boolean clicked = false;
  2263. tempTileToWalkTo = walkPath(treesToBank);
  2264. if(tempTileToWalkTo>lastTileToWalkTo){
  2265. if(walking.walkTileMM(treesToBank[tempTileToWalkTo],1,1))
  2266. clicked = true;
  2267. sleep(random(400,500));
  2268. if(getMyPlayer().isMoving())
  2269. clicked = true;
  2270. }
  2271. if(clicked){
  2272. lastTileToWalkTo = tempTileToWalkTo;
  2273. }
  2274. sleep(random(200, 300));
  2275. }
  2276. }
  2277. public boolean compareTiles(RSTile t1, RSTile t2){
  2278. return t1.getX()==t2.getX()&&t1.getY()==t2.getY();
  2279. }
  2280. public int walkPath(RSTile [] path)
  2281. {
  2282. //if(playerIsNear(path[path.length-2],5))
  2283. // walking.walkTileMM(path[path.length-1],1,1);
  2284. //else{
  2285. int temp = 0;
  2286. boolean nearSomething = false;
  2287. for(int i = 0; i<path.length;i++)
  2288. {
  2289. if(playerIsNear(path[i],5))
  2290. {
  2291. nearSomething = true;
  2292. temp = i+1;
  2293. antiBan(random(1,200));
  2294. for(int j = i; j<path.length; j++)
  2295. {
  2296. if(calc.tileToMinimap(path[j]).x<0)
  2297. {
  2298. temp=j-1;
  2299. break;
  2300. }
  2301. if(j==path.length-1&&calc.tileToMinimap(path[j]).x>0)
  2302. {
  2303. temp=j;
  2304. break;
  2305. }
  2306. }
  2307. return temp;
  2308. }
  2309. }
  2310. if(!nearSomething){
  2311. RSTile tempTileToCompare = walking.nextTile(path);
  2312. for(int i = 0; i<path.length;i++)
  2313. {
  2314. if(compareTiles(path[i],tempTileToCompare))
  2315. return i;
  2316. }
  2317.  
  2318. }
  2319. return 0;
  2320. }
  2321. public RSItem[] getNestLocations()
  2322. {
  2323. RSItem [] inv = inventory.getItems();
  2324. int length = 0;
  2325. for(int i = 0; i<inv.length;i++)
  2326. for(int j = 0; j<BNIDs.length;j++)
  2327. if(inv[i].getID()==BNIDs[j])
  2328. length++;
  2329. RSItem [] toReturn = new RSItem [length];
  2330. int index = 0;
  2331. for(int i = 0; i<inv.length;i++)
  2332. for(int j = 0; j<BNIDs.length;j++)
  2333. if(inv[i].getID()==BNIDs[j])
  2334. toReturn[index++] = inv[i];
  2335. return toReturn;
  2336. }
  2337. public void bank(boolean npc){
  2338. mouse.setSpeed(random(7,8));
  2339. if(command.equals("Rimmington - Yews")||command.equals("Port Salim - Willows")){
  2340. mouse.setSpeed(random(7,8));
  2341. boolean tryAgain = true;
  2342. while(inventory.isFull()){
  2343. tryAgain = true;
  2344. while(tryAgain) {
  2345. status = "Opening bank.";
  2346. RSObject [] test = objects.getAllAt(new RSTile(3047,3237));
  2347. RSObject bankBox = null;
  2348. for(int i = 0; i<test.length;i++)
  2349. if(test[i].getID()==36788)
  2350. bankBox = test[i];
  2351. RSModel m = bankBox.getModel();
  2352. Point p = m.getPoint();
  2353. mouse.move(p,1,1);
  2354. if(menu.doAction("Deposit Bank deposit box"))
  2355. tryAgain = false;
  2356. }
  2357. sleep(random(3000,4000));
  2358. status = "Depositing.";
  2359. RSItem[] tempArray = getNestLocations();
  2360. if(tempArray.length!=0)
  2361. {
  2362. for(int i = 0; i < tempArray.length;i++)
  2363. tempArray[i].doAction("Deposit Bird's nest");
  2364. }
  2365. bank.depositAllExcept(hatchetIDs);
  2366. }
  2367.  
  2368. }
  2369. else if(npc)
  2370. {
  2371. RSNPC banker = npcs.getNearest(bankerID);
  2372. if(banker!=null)
  2373. {
  2374. do{
  2375. while(!bank.isOpen()) {
  2376. camera.setAngle(random(1,359));
  2377. status = "Opening bank.";
  2378. if(location.equals("Grand Exchange")||location.equals("Draynor")){
  2379. mouse.move(banker.getModel().getPoint(),1,1);
  2380. mouse.click(false);
  2381. menu.doAction("Bank banker");
  2382. sleep(random(600,800));
  2383. }
  2384. if(!bank.isOpen())
  2385. bank.open();
  2386. }
  2387. if(inventory.getCount(hatchetIDs)>0)
  2388. {status = "Depositing.";
  2389. RSItem[] tempArray = getNestLocations();
  2390. if(tempArray.length!=0)
  2391. {
  2392. for(int i = 0; i < tempArray.length;i++)
  2393. tempArray[i].doAction("Deposit Bird's nest");
  2394. }
  2395. bank.depositAllExcept(hatchetIDs);}
  2396. else
  2397. {
  2398. status = "Depositing All.";
  2399. bank.depositAll();
  2400. sleep(random(600,800));
  2401. antiBan(random(100,200));
  2402. }
  2403. } while(inventory.isFull());
  2404. full = inventory.isFull();
  2405. bank.close();
  2406. }
  2407. else
  2408. log("Can't find banker.");
  2409. }
  2410. else
  2411. {
  2412. RSTile banker = bankLocation;
  2413. if(calc.tileOnScreen(banker))
  2414. {
  2415. do{
  2416. while(!bank.isOpen()){
  2417. status = "Opening bank.";
  2418. mouse.move(calc.tileToScreen(banker));
  2419. sleep(random(600,800));
  2420. mouse.click(false);
  2421. menu.doAction("Bank");
  2422. sleep(random(1000,2000));
  2423. }
  2424. if(inventory.getCount(hatchetIDs)>0)
  2425. {status = "Depositing.";
  2426. RSItem[] tempArray = getNestLocations();
  2427. if(tempArray.length!=0)
  2428. {
  2429. for(int i = 0; i < tempArray.length;i++)
  2430. tempArray[i].doAction("Deposit Bird's nest");
  2431. }
  2432. bank.depositAllExcept(hatchetIDs);}
  2433. else
  2434. {
  2435. status = "Depositing All.";
  2436. bank.depositAll();
  2437. }
  2438. sleep(random(1000,2000));
  2439. } while(inventory.isFull());
  2440. full = inventory.isFull();
  2441. }
  2442. else
  2443. log("Can't find banker.");
  2444. }
  2445. }
  2446. public void walkToTrees(){
  2447. long startTime = System.currentTimeMillis();
  2448. status = "Walking to trees.";
  2449. int lastTileToWalkTo = -1;
  2450. int tempTileToWalkTo = walkPath(bankToTrees);
  2451. boolean clickedLastTile = false;
  2452. while(!atTrees()){
  2453. if(!walking.isRunEnabled()&&walking.getEnergy()>20){
  2454. walking.setRun(true);
  2455. sleep(random(600,800));
  2456. }
  2457. status = "Walking to trees.";
  2458. if(command.equals("Mage Training Area - Magics")){
  2459. gate();
  2460. }
  2461. if(command.equals("Tree Gnome - Yews")){
  2462. if(floorHeight()==1){
  2463. if(!playerIsNear(new RSTile(2445,3433),5)){
  2464. walking.walkTileMM(new RSTile(2445,3433));
  2465. while(getMyPlayer().isMoving())
  2466. sleep(random(100,200));
  2467. }
  2468. else{
  2469. RSObject temp = objects.getNearest(1744);
  2470. if(temp!=null)
  2471. mouse.move(temp.getModel().getPoint());
  2472. mouse.click(true);
  2473. sleep(random(600,800));
  2474. }
  2475. }
  2476. }
  2477. if(!getMyPlayer().isMoving()){
  2478. sleep(random(600,800));
  2479. if(!getMyPlayer().isMoving())
  2480. lastTileToWalkTo=-1;
  2481. }
  2482. boolean clicked = false;
  2483. tempTileToWalkTo = walkPath(bankToTrees);
  2484. if(tempTileToWalkTo>lastTileToWalkTo){
  2485. if(walking.walkTileMM(bankToTrees[tempTileToWalkTo],1,1))
  2486. clicked = true;
  2487. sleep(random(400,500));
  2488. if(getMyPlayer().isMoving())
  2489. clicked = true;
  2490. }
  2491. if(clicked){
  2492. lastTileToWalkTo = tempTileToWalkTo;
  2493. }
  2494. sleep(random(200, 300));
  2495. }
  2496. }
  2497. public void doBank(int num)
  2498. { if(num==0)
  2499. {
  2500. walkToBank();
  2501. sleep(random(600,800));
  2502. }
  2503. if(!command.equals("Castle Wars - Ivy")&&!command.equals("Mage Training Area - Magics"))
  2504. bank(true);
  2505. else
  2506. bank(false);
  2507. sleep(random(600,800));
  2508. walkToTrees();
  2509. sleep(random(600,800));
  2510. }
  2511. public void serverMessageRecieved(final ServerMessageEvent a){
  2512. final String serverString = a.getMessage();
  2513. if (serverString.toLowerCase().contains("you get some yew logs"))
  2514. yewsCut++;
  2515. else if (serverString.toLowerCase().contains("you get some magic logs"))
  2516. magicsCut++;
  2517. else if(serverString.toLowerCase().contains("your inventory is too full to hold any more logs"))
  2518. full = true;
  2519. else if(serverString.toLowerCase().contains("you successfully chop away some ivy"))
  2520. ivyCut++;
  2521. else if(serverString.toLowerCase().contains("you get some willow logs"))
  2522. willowsCut++;
  2523. else if(serverString.toLowerCase().contains("you get some maple logs"))
  2524. maplesCut++;
  2525. }
  2526. public boolean playerIsNear(RSTile tile, int d)
  2527. {
  2528. return (Math.abs(getMyPlayer().getLocation().getX()-tile.getX())<d&&Math.abs(getMyPlayer().getLocation().getY()-tile.getY())<d);
  2529. }
  2530. public boolean checkCurrentVersion()
  2531. {
  2532. try{
  2533. URL checkPage = new URL("http://www.conderogascripts.99k.org/CChopVersion.txt");
  2534. BufferedReader reader = new BufferedReader(new InputStreamReader(new BufferedInputStream(checkPage.openConnection().getInputStream())));
  2535. currentVersion = reader.readLine().trim();
  2536. reader.close();
  2537. } catch (Exception E){};
  2538. if(currentVersion.equals(version))
  2539. return true;
  2540. else{
  2541. for(int i = 0; i<5;i++){
  2542. log(Color.RED, "Your version of the script is out of date.");
  2543. log(Color.RED, "Please update to version: "+currentVersion);
  2544. }
  2545. }
  2546. return false;
  2547. }
  2548. public boolean update()
  2549. {
  2550. try{
  2551.  
  2552. saveUrl("http://www.conderogascripts.99k.org/CChop.txt","CChop.java");
  2553.  
  2554.  
  2555. log("Update was successful. The new CChop.java file is wherever your RSBot file is.");
  2556. log("Copy the file into your RSBot/Scripts/Sources folder, compile, and restart the script.");
  2557. stopScript();
  2558. }catch(Exception e){log("Update was unsuccessful."); return false;};
  2559. return true;
  2560. }
  2561. public void saveUrl(String urlString, String filename) throws MalformedURLException, IOException
  2562. {
  2563. BufferedInputStream in = null;
  2564. FileOutputStream fout = null;
  2565. try
  2566. {
  2567. in = new BufferedInputStream(new URL(urlString).openStream());
  2568. fout = new FileOutputStream(filename);
  2569.  
  2570. byte data[] = new byte[1024];
  2571. int count;
  2572. while ((count = in.read(data, 0, 1024)) != -1)
  2573. {
  2574. fout.write(data, 0, count);
  2575. }
  2576. }
  2577. finally
  2578. {
  2579. if (in != null)
  2580. in.close();
  2581. if (fout != null)
  2582. fout.close();
  2583. }
  2584. }
  2585. public void mouseExited(MouseEvent e) {
  2586. }
  2587. public void mouseEntered(MouseEvent e) {
  2588. }
  2589. public void mouseReleased(MouseEvent e) {
  2590. mouseColor = new Color(51,153,0,255);
  2591. }
  2592. public void mousePressed(MouseEvent e) {
  2593. mouseColor = new Color(255,0,0,100);
  2594. }
  2595. public void mouseClicked(MouseEvent e) {
  2596. p = e.getPoint();
  2597. if(showPaint && p.getX()>447&&p.getX()<513&& p.getY()>458&&p.getY()<473)
  2598. showPaint = false;
  2599. else if(!showPaint && p.getX()>447&&p.getX()<513&& p.getY()>458&&p.getY()<473)
  2600. showPaint = true;
  2601. else if(showPaint && fancyPaint && p.getX()>397&&p.getX()<448&& p.getY()>458&&p.getY()<473)
  2602. fancyPaint = false;
  2603. else if(showPaint && !fancyPaint && p.getX()>397&&p.getX()<448&& p.getY()>458&&p.getY()<473)
  2604. fancyPaint = true;
  2605. mouseColor = new Color(255,0,0,100);
  2606. }
  2607. public int distanceTo(RSTile test){
  2608. RSTile myLoc = players.getMyPlayer().getLocation();
  2609. return (int)Math.pow(Math.pow(test.getY()-myLoc.getY(),2)+Math.pow(test.getX()-myLoc.getX(),2),.5);
  2610. }
  2611. public int distanceBetween(RSTile t1, RSTile t2){
  2612. return (int)Math.pow(Math.pow(t1.getY()-t2.getY(),2)+Math.pow(t1.getX()-t2.getX(),2),.5);
  2613. }
  2614. public ArrayList<RSTile> fixPath(ArrayList<RSTile> path){
  2615. boolean madeSwap = false;
  2616. do{
  2617. madeSwap = false;
  2618. for(int i = 0; i<path.size()-1;i++)
  2619. if(distanceBetween(path.get(i),path.get(i+1))>7){
  2620. path.add(i+1,getMidTile(path.get(i),path.get(i+1)));
  2621. madeSwap = true;
  2622. }
  2623. }while(madeSwap);
  2624. return path;
  2625. }
  2626. public void getUnstuck(){
  2627. log("Stuck! Moving to Closest Tree/Bank");
  2628. RSTile [] trees = {tree1,tree2,tree3,tree4,tree5,tree6,tree7};
  2629. int [] distances = new int [8];
  2630. for(int i = 0;i < 7;i++)
  2631. distances[i] = distanceTo(trees[i]);
  2632. if(treesToBank.length>0)
  2633. distances[7] = distanceTo(treesToBank[treesToBank.length-1]);
  2634. else
  2635. distances[7] = 9999;
  2636. int min = 9998;
  2637. int minIndex = -1;
  2638. for(int i = 0; i < distances.length;i++){
  2639. if(distances[i]<min){
  2640. min = distances[i];
  2641. minIndex = i;
  2642. }
  2643. }
  2644. //log("Moving to: "+minIndex);
  2645. RSTile toWalkTo = (minIndex==7) ? treesToBank[treesToBank.length-1] : trees[minIndex];
  2646. ArrayList<RSTile> path = new ArrayList<RSTile>();
  2647. path.add(getMyPlayer().getLocation());
  2648. path.add(toWalkTo);
  2649. path = fixPath(path);
  2650. RSTile [] toWalk = new RSTile [path.size()];
  2651. for(int i = 0; i<path.size();i++)
  2652. toWalk[i] = path.get(i);
  2653. //log("Path Length: "+path.size());
  2654. long start = System.currentTimeMillis();
  2655. int lastTileToWalkTo = -1;
  2656. int tempTileToWalkTo = walkPath(toWalk);
  2657. boolean clickedLastTile = false;
  2658. while(!playerIsNear(toWalkTo,5)&&System.currentTimeMillis()-start<20000){
  2659. boolean clicked = false;
  2660. tempTileToWalkTo = walkPath(toWalk);
  2661. if(!clickedLastTile){
  2662. if(tempTileToWalkTo>lastTileToWalkTo){
  2663. if(calc.tileOnScreen(toWalk[tempTileToWalkTo])){
  2664. if(!walking.walkTileOnScreen(toWalk[tempTileToWalkTo]))
  2665. if(walking.walkTileMM(toWalk[tempTileToWalkTo],1,1))
  2666. clicked = true;
  2667. else
  2668. clicked = false;
  2669. else
  2670. clicked = true;
  2671. }
  2672. else
  2673. clicked = walking.walkTileMM(toWalk[tempTileToWalkTo],1,1);
  2674.  
  2675. }
  2676. if(clicked){
  2677. lastTileToWalkTo = tempTileToWalkTo;
  2678. if(tempTileToWalkTo==toWalk.length-1)
  2679. {
  2680. clickedLastTile = true;
  2681. }
  2682. }
  2683. }
  2684. sleep(random(200, 300));
  2685. }
  2686. }
  2687. public static int getGEValue(String name, int id){
  2688. try{
  2689. String [] temp = name.split(" ");
  2690. String newName = "";
  2691. for(int i = 0; i<temp.length; i++)
  2692. if(i==temp.length-1)
  2693. newName+=temp[i];
  2694. else
  2695. newName+="_"+temp[i];
  2696. URL url = new URL("http://services.runescape.com/m=itemdb_rs/"+newName+"/viewitem.ws?obj="+id);
  2697. InputStream is = url.openStream();
  2698. InputStreamReader isr = new InputStreamReader(is);
  2699. BufferedReader br = new BufferedReader(isr);
  2700. String line;
  2701. String num = "";
  2702. while((line=br.readLine())!=null){
  2703. if(line.contains("Current guide price:"))
  2704. num = line;
  2705. }
  2706. System.out.println(num);
  2707. if(num.length()<29)
  2708. return -1;
  2709. else{
  2710. num = num.substring(28);
  2711. num = num.replaceAll(",", "");
  2712. return Integer.parseInt(num);
  2713. }
  2714.  
  2715. }catch(Exception e){
  2716. return -1;
  2717. }
  2718. }
  2719. //LOOP====================================================================================================================
  2720. public int loop() {
  2721. try{
  2722. if(safety<1)
  2723. {
  2724. if(!game.isFixed())
  2725. for(int i = 0; i<3;i++)
  2726. log("For best results, please set your window mode to 'fixed'.");
  2727. setUp();
  2728. log("Chopping Command: "+command);
  2729. if(treeType.equals("yews")||treeType.equals("magics")||treeType.equals("willows")||treeType.equals("maples")||treeType.equals("oaks"))
  2730. {
  2731. status = "Looking up GE data.";
  2732. log("Looking up log prices...");
  2733. if(treeType.equals("yews"))
  2734. {
  2735. for(int i = 0; i < 3; i++)
  2736. {yewPrice = getGEValue("Yew logs",1515);
  2737. if(yewPrice!=-1)
  2738. break;
  2739. }
  2740. log("Yew log price: "+yewPrice);
  2741. }
  2742. else if(treeType.equals("magics"))
  2743. {
  2744. for(int i = 0; i < 3; i++){
  2745. magicPrice = getGEValue("Magic logs",1513);
  2746. if(magicPrice!=-1)
  2747. break;
  2748. }
  2749. log("Magic logs price: "+magicPrice);
  2750. }
  2751. else if(treeType.equals("willows"))
  2752. {
  2753. for(int i = 0; i < 3; i++){
  2754. willowPrice = getGEValue("Willow logs",1519);
  2755. if(willowPrice!=-1)
  2756. break;
  2757. }
  2758. log("Willow logs price: "+willowPrice);
  2759. }
  2760. else if(treeType.equals("maples"))
  2761. {
  2762. for(int i = 0; i < 3; i++){
  2763. maplePrice = getGEValue("Maple logs",1517);
  2764. if(maplePrice!=-1)
  2765. break;
  2766. }
  2767. log("Maple logs price: "+maplePrice);
  2768. }
  2769. else if(treeType.equals("oaks"))
  2770. {
  2771. for(int i = 0; i < 3; i++){
  2772. oakPrice = getGEValue("Oak logs",1521);
  2773. if(oakPrice!=-1)
  2774. break;
  2775. }
  2776. log("Oak logs price: "+oakPrice);
  2777. }
  2778. camera.setPitch(true);
  2779. }
  2780. else
  2781. camera.setPitch(false);
  2782. safety=1;
  2783. full = inventory.isFull();
  2784. if(!full&&atBank())
  2785. while(!atTrees())
  2786. walkToTrees();
  2787. if(full&&atBank())
  2788. doBank(1);
  2789. if(full&&atTrees())
  2790. doBank(0);
  2791. }
  2792.  
  2793. RSTile [] trees = {tree1,tree2,tree3,tree4,tree5,tree6,tree7};
  2794. mouse.setSpeed(random(5,8));
  2795. antiBan(random(1,120));
  2796. updateStatus();
  2797. full = inventory.isFull();
  2798.  
  2799. if(!full) //NEST PICKUP
  2800. pickUpNest();
  2801. if(full&&!atBank())
  2802. {
  2803. walkToBank();
  2804. }
  2805. else if(!full&&atBank()){
  2806. walkToTrees();
  2807. }
  2808. else if(full) //BANK
  2809. {
  2810. if(!location.equals("Taverly"))
  2811. doBank(0);
  2812. }
  2813. if(status.equals("Chopping!"))
  2814. {
  2815. if(safety<3)
  2816. {hoverMouse();
  2817. safety++;
  2818. }
  2819. }
  2820. else if(status.equals("Not chopping.")||status.contains("Moving to tree"))
  2821. {
  2822. long tempTimer = System.currentTimeMillis();
  2823. while(!getNextTree().isOnScreen()&&System.currentTimeMillis()-tempTimer<5000)
  2824. moveToNextTree();
  2825. if(!getNextTree().isOnScreen()){
  2826. //log("else");
  2827. if(!getMyPlayer().isMoving()&&failSafeTimer==0)
  2828. failSafeTimer = System.currentTimeMillis();
  2829. if(!getMyPlayer().isMoving()&&System.currentTimeMillis()-failSafeTimer>10000){
  2830. getUnstuck();
  2831. failSafeTimer = 0;
  2832. }
  2833. }
  2834. if(!getMyPlayer().isMoving()&&status.contains("Moving to tree")&&System.currentTimeMillis()-tempTimer>15000)
  2835. getUnstuck();
  2836. chop(false);
  2837. }
  2838. else if(status.equals("Waiting."))
  2839. {
  2840. if(safety==3)
  2841. {
  2842. long tempTimer = System.currentTimeMillis();
  2843. while(!playerIsNear(trees[nextTree-1],4))
  2844. moveToNextTree();
  2845. if(!chopType.equals("ivy"))
  2846. camera.turnToTile(trees[nextTree-1]);
  2847. camera.setPitch(random(20,50));
  2848. }
  2849. if(safety<5)
  2850. hoverMouse();
  2851. safety++;
  2852. }
  2853. else{
  2854.  
  2855. }
  2856. }
  2857. catch (Exception e){/*log("Error: "+e);
  2858. log(e.getMessage()+"");*/}
  2859. return random(300,500);
  2860. }
  2861. //LOOP====================================================================================================================
  2862. public void antiBan(int rand){
  2863. status += "(AB)";
  2864. mouse.setSpeed(random(7,8));
  2865. if(rand==1)
  2866. if(random(1, 8) == 2)
  2867. mouse.moveRandomly(900,1200);
  2868. if(rand==2)
  2869. if(random(1, 8) == 2)
  2870. mouse.moveRandomly(400,800);
  2871. if(rand==3)
  2872. if(random(1, 8) == 2)
  2873. mouse.moveRandomly(200,700);
  2874.  
  2875. if(rand==4) //THIS CHECKS THE WOODCUTTING STAT
  2876. if(random(1, 12) == 2)
  2877. {
  2878. game.openTab(game.TAB_STATS);
  2879. sleep(random(600,800));
  2880. mouse.move(random(681, 690), random(365, 370),0,0);
  2881. sleep(random(1900,2000));
  2882. game.openTab(game.TAB_INVENTORY);
  2883. }
  2884. if(rand==5) //THIS CLICKS THE XP BUTTON UNDER THE COMPASS
  2885. if(random(1, 12) == 2 && game.isFixed())
  2886. {
  2887. mouse.move(random(527, 540), random(58, 65),0,0);
  2888. sleep(random(800,1000));
  2889. mouse.click(true);
  2890. mouse.moveRandomly(20,50);
  2891. sleep(random(1000,1500));
  2892. }
  2893. if(takeBreaks)
  2894. if(rand==6)
  2895. if(random(1,6)==2){
  2896. if(random(1,2)==1)
  2897. mouse.moveRandomly(50,75);
  2898. breakActive = true;
  2899. breakLength = random(5,13);
  2900. breakStart = System.currentTimeMillis();
  2901. sleep(breakLength*1000);
  2902. breakActive = false;
  2903. }
  2904. if(rand==7) //RANDOM SPIN
  2905. if(random(1, 3) == 2)
  2906. {int r = random(1,2);
  2907. camera.setAngle(random(1,359));
  2908. if(r!=1)
  2909. camera.setPitch(random(1,99));}
  2910.  
  2911. if(rand==8) //THIS CHECKS A RANDOM TAB
  2912. if(random(1, 4) == 2)
  2913. {
  2914. int[] tabs = {0,2,3,5,6,7,9,10,11,12,13,14,15};
  2915. game.openTab(tabs[random(0,tabs.length-1)]);
  2916. mouse.moveRandomly(175,200);
  2917. sleep(random(1600,1800));
  2918. sleep(random(900,1000));
  2919.  
  2920. }
  2921. if(rand==9)
  2922. if(random(1,10)==2)
  2923. mouse.moveOffScreen();
  2924. status=status.substring(0,status.indexOf('('));
  2925.  
  2926. }
  2927. public void onRepaint(Graphics g)
  2928. {
  2929. if(game.isLoggedIn())
  2930. {
  2931. try{
  2932. if(breakActive){
  2933. g.setColor(new Color(0,0,0,100));
  2934. g.fillRect(0,0,764,501);
  2935. g.setColor(new Color(255,0,0));
  2936. long timeLeft = (breakLength*1000)-(System.currentTimeMillis()-breakStart);
  2937. long secondsLeft=timeLeft/1000;
  2938. timeLeft-=secondsLeft*1000;
  2939. String toOutput = "";
  2940. if(timeLeft<10)
  2941. toOutput = "00"+timeLeft;
  2942. else if(timeLeft<100)
  2943. toOutput = "0"+timeLeft;
  2944. else
  2945. toOutput = ""+timeLeft;
  2946.  
  2947. timeLeft-=secondsLeft*1000;
  2948. g.drawString("Script will resume in: "+secondsLeft+":"+toOutput,50,200);
  2949. }
  2950. if(!treeType.equals("ivy")&&!treeType.equals(".")&&!treeType.equals("willows"))
  2951. checkTrees();
  2952. else
  2953. checkIvy();
  2954. calculateNextTree();
  2955. if(startExp==0)
  2956. {
  2957. startExp = skills.getCurrentExp(skills.getIndex("woodcutting"));
  2958. startLevel = skills.getCurrentLevel(skills.getIndex("woodcutting"));
  2959. }
  2960. lvlsGained = skills.getCurrentLevel(skills.getIndex("woodcutting")) - startLevel;
  2961. expGained = skills.getCurrentExp(skills.getIndex("woodcutting")) - startExp;
  2962. long expToLvl = skills.getExpToNextLevel(skills.getIndex("woodcutting"));
  2963. //setting up the time
  2964. long ms = System.currentTimeMillis() - startTime;
  2965. double ms2 = System.currentTimeMillis() - startTimeDbl;
  2966. long hours = ms/3600000;
  2967. ms = ms-(hours*3600000);
  2968. long minutes = ms/60000;
  2969. ms = ms-(minutes*60000);
  2970. long seconds = ms/1000;
  2971. long time2Lvl = 0;
  2972. long time2LvlHrs = 0;
  2973. long time2LvlMins = 0;
  2974. long time2LvlSec = 0;
  2975. if(ms2!=0&&expGained!=0){
  2976. time2Lvl = (long)(expToLvl/(expGained/(ms2/3600000))*3600000);
  2977. time2LvlHrs = time2Lvl/3600000;
  2978. time2Lvl -= time2LvlHrs*3600000;
  2979. time2LvlMins = time2Lvl/60000;
  2980. time2Lvl -= time2LvlMins*60000;
  2981. time2LvlSec = time2Lvl/1000;
  2982. }
  2983. yewsCut = expGained/175;
  2984. magicsCut = expGained/250;
  2985. ivyCut = (int)((expGained+1)/332.5);
  2986. willowsCut = (int)((expGained+1)/67.5);
  2987. maplesCut = expGained/100;
  2988. oaksCut = (int)((expGained+1)/37.5);
  2989.  
  2990. if(fancyPaint)
  2991. {
  2992. if(showPaint){
  2993. onRepaint2(g,true);
  2994.  
  2995. //Text Color and Output
  2996. g.setColor(new Color(0,0,0,255));
  2997. g.setFont(new Font("Comic Sans MS", Font.PLAIN, 12));
  2998. g.drawString(" "+version,450,360);
  2999. g.setFont(new Font("Comic Sans MS", Font.PLAIN, 11));
  3000. g.drawString("Levels Gained: "+lvlsGained,16,40);
  3001. if(treeType.equals("yews"))
  3002. g.drawString("Yews Chopped: "+yewsCut,395,22);
  3003. else if(treeType.equals("magics"))
  3004. g.drawString("Magics Chopped: "+magicsCut,395,22);
  3005. else if(treeType.equals("ivy"))
  3006. g.drawString("Ivy Chopped: "+ivyCut,395,22);
  3007. else if(treeType.equals("willows"))
  3008. g.drawString("Willows Chopped: "+willowsCut,395,22);
  3009. else if(treeType.equals("maples"))
  3010. g.drawString("Maples Chopped: "+maplesCut,395,22);
  3011. else if(treeType.equals("oaks"))
  3012. g.drawString("Oaks Chopped: "+oaksCut,395,22);
  3013. g.drawString("Exp Gained: "+expGained,16,55);
  3014. g.drawString("Time Running: "+hours+":"+minutes+":"+seconds,16,97);
  3015.  
  3016. //Determine Length:
  3017. double difference = skills.XP_TABLE[skills.getCurrentLevel(skills.getIndex("woodcutting"))+1]-skills.XP_TABLE[skills.getCurrentLevel(skills.getIndex("woodcutting"))];
  3018. double barLength = ((difference-expToLvl)/difference)*512;
  3019.  
  3020. //Progress Bar
  3021. g.setColor(new Color(255,0,0,255));
  3022. g.fillRoundRect(4,320,512,18,8,8); //Bar background
  3023. g.setColor(new Color(51,153,0,255)); //GREEN
  3024. g.fillRoundRect(4,320,(int)barLength,18,4,4);
  3025. g.setColor(new Color(0,0,0,255));
  3026. g.drawString(skills.getPercentToNextLevel(skills.getIndex("woodcutting"))+"% to: "+(skills.getCurrentLevel(skills.getIndex("woodcutting"))+1)+" ("+expToLvl+" exp)",215,334);
  3027. g.setColor(new Color(255,255,255,100));
  3028. g.fillRoundRect(4,320,512,9,4,4);
  3029.  
  3030.  
  3031. if(ms2!=0)
  3032. g.setColor(new Color(0,0,0,255));
  3033. g.drawString("Exp/Hr: "+(int)(expGained/(ms2/3600000)),16,69);
  3034. g.drawString("Status: "+status,16,22);
  3035.  
  3036. if(treeType.equals("yews"))
  3037. {
  3038. g.drawString("Money Gained: "+yewPrice*yewsCut,154,22);
  3039. if(ms2!=0)
  3040. g.drawString("Money/Hr: "+(int)((yewPrice*yewsCut)/(ms2/3600000)),289,22);
  3041. }
  3042. else if(treeType.equals("magics"))
  3043. {
  3044. g.drawString("Money Gained: "+magicPrice*magicsCut,154,22);
  3045. if(ms2!=0)
  3046. g.drawString("Money/Hr: "+(int)((magicPrice*magicsCut)/(ms2/3600000)),289,22);
  3047. }
  3048. else if(treeType.equals("ivy"))
  3049. {
  3050. g.drawString("Nests Collected: "+nests,154,22);
  3051. if(ms2!=0)
  3052. g.drawString("Nests/Hr: "+(int)(nests/(ms2/3600000)),289,22);
  3053. }
  3054. else if(treeType.equals("willows"))
  3055. {
  3056. g.drawString("Money Gained: "+willowPrice*willowsCut,154,22);
  3057. if(ms2!=0)
  3058. g.drawString("Money/Hr: "+(int)((willowPrice*willowsCut)/(ms2/3600000)),289,22);
  3059. }
  3060. else if(treeType.equals("maples"))
  3061. {
  3062. g.drawString("Money Gained: "+maplePrice*maplesCut,154,22);
  3063. if(ms2!=0)
  3064. g.drawString("Money/Hr: "+(int)((maplePrice*maplesCut)/(ms2/3600000)),289,22);
  3065. }
  3066. else if(treeType.equals("oaks"))
  3067. {
  3068. g.drawString("Money Gained: "+oakPrice*oaksCut,154,22);
  3069. if(ms2!=0)
  3070. g.drawString("Money/Hr: "+(int)((oakPrice*oaksCut)/(ms2/3600000)),289,22);
  3071. }
  3072. g.drawString("Est. Time to Lvl: "+time2LvlHrs+":"+time2LvlMins+":"+time2LvlSec,16,83);
  3073. //Mouse Stuff
  3074. Point tempPoint = mouse.getLocation();
  3075. int tempXCoordinate = (int)tempPoint.getX();
  3076. int tempYCoordinate = (int)tempPoint.getY();
  3077. g.setColor(mouseColor);
  3078. g.drawLine(tempXCoordinate,0,tempXCoordinate,501);
  3079. g.drawLine(0,tempYCoordinate,764,tempYCoordinate);
  3080. g.fillRect(tempXCoordinate-1,tempYCoordinate-1,3,3);
  3081. Color tempColor = new Color(255,0,0,100);
  3082. if(mouseColor.equals(tempColor))
  3083. mouseColor=new Color(51,153,0,255);
  3084. //Stump time drawing
  3085. g.setColor(Color.GREEN);
  3086. stump1 = calc.tileToScreen(tree1);
  3087. stump2 = calc.tileToScreen(tree2);
  3088. stump3 = calc.tileToScreen(tree3);
  3089. stump4 = calc.tileToScreen(tree4);
  3090. stump5 = calc.tileToScreen(tree5);
  3091. stump6 = calc.tileToScreen(tree6);
  3092. stump7 = calc.tileToScreen(tree7);
  3093. //ALIVE TREES
  3094. if(tree1Status&&tree1AliveTime!=0)
  3095. g.drawString((int)(tree1TimeAlive/1000)+"s",(int)stump1.getX(),(int)stump1.getY());
  3096. if(tree2Status&&tree2AliveTime!=0)
  3097. g.drawString((int)(tree2TimeAlive/1000)+"s",(int)stump2.getX(),(int)stump2.getY());
  3098. if(tree3Status&&tree3AliveTime!=0)
  3099. g.drawString((int)(tree3TimeAlive/1000)+"s",(int)stump3.getX(),(int)stump3.getY());
  3100. if(tree4Status&&tree4AliveTime!=0)
  3101. g.drawString((int)(tree4TimeAlive/1000)+"s",(int)stump4.getX(),(int)stump4.getY());
  3102. if(tree5Status&&tree5AliveTime!=0)
  3103. g.drawString((int)(tree5TimeAlive/1000)+"s",(int)stump5.getX(),(int)stump5.getY());
  3104. if(tree6Status&&tree6AliveTime!=0)
  3105. g.drawString((int)(tree6TimeAlive/1000)+"s",(int)stump6.getX(),(int)stump6.getY());
  3106. if(tree7Status&&tree7AliveTime!=0)
  3107. g.drawString((int)(tree7TimeAlive/1000)+"s",(int)stump7.getX(),(int)stump7.getY());
  3108. //DEAD TREES
  3109. g.setColor(Color.MAGENTA);
  3110. if(!tree1Status&&tree1DeadTime!=0)
  3111. g.drawString((int)(tree1TimeDead/1000)+"s",(int)stump1.getX(),(int)stump1.getY());
  3112. if(!tree2Status&&tree2DeadTime!=0)
  3113. g.drawString((int)(tree2TimeDead/1000)+"s",(int)stump2.getX(),(int)stump2.getY());
  3114. if(!tree3Status&&tree3DeadTime!=0)
  3115. g.drawString((int)(tree3TimeDead/1000)+"s",(int)stump3.getX(),(int)stump3.getY());
  3116. if(!tree4Status&&tree4DeadTime!=0)
  3117. g.drawString((int)(tree4TimeDead/1000)+"s",(int)stump4.getX(),(int)stump4.getY());
  3118. if(!tree5Status&&tree5DeadTime!=0)
  3119. g.drawString((int)(tree5TimeDead/1000)+"s",(int)stump5.getX(),(int)stump5.getY());
  3120. if(!tree6Status&&tree6DeadTime!=0)
  3121. g.drawString((int)(tree6TimeDead/1000)+"s",(int)stump6.getX(),(int)stump6.getY());
  3122. if(!tree7Status&&tree7DeadTime!=0)
  3123. g.drawString((int)(tree7TimeDead/1000)+"s",(int)stump7.getX(),(int)stump7.getY());
  3124. }
  3125. else
  3126. {
  3127. g.setColor(new Color(51,153,0,255));
  3128. g.fillRect(448,459,(512-448),(472-459));
  3129. g.setColor(new Color(0,0,0,255));
  3130. g.drawRect(448,459,(512-448),(472-459));
  3131. g.drawString("Hide/Show",450,470);
  3132. }
  3133.  
  3134. }
  3135. else
  3136. {
  3137. if(showPaint){
  3138. onRepaint2(g,false);
  3139. g.setColor(new Color(0, 0, 0, 205));
  3140. g.fillRoundRect(333, 160, 181, 179, 6, 6);
  3141. g.setColor(new Color(255,0,0,255));
  3142. g.setFont(new Font("Comic Sans MS", Font.PLAIN, 12));
  3143. g.drawString("Conderoga's Chopper "+version,338,177);
  3144. g.setFont(new Font("Comic Sans MS", Font.PLAIN, 11));
  3145. g.drawString("Levels Gained: "+lvlsGained,344,192);
  3146. if(treeType.equals("yews"))
  3147. g.drawString("Yews Chopped: "+yewsCut,344,207);
  3148. else if(treeType.equals("magics"))
  3149. g.drawString("Magics Chopped: "+magicsCut,344,207);
  3150. else if(treeType.equals("ivy"))
  3151. g.drawString("Ivy Chopped: "+ivyCut,344,207);
  3152. else if(treeType.equals("willows"))
  3153. g.drawString("Willows Chopped: "+willowsCut,344,207);
  3154. else if(treeType.equals("maples"))
  3155. g.drawString("Maples Chopped: "+maplesCut,344,207);
  3156. else if(treeType.equals("oaks"))
  3157. g.drawString("Oaks Chopped: "+oaksCut,344,207);
  3158. g.drawString("Exp Gained: "+expGained,344,222);
  3159. g.drawString("Time Running: "+hours+":"+minutes+":"+seconds,344, 237);
  3160.  
  3161. //Progress Bar
  3162.  
  3163. g.setColor(new Color(255,0,0,255));
  3164. g.fillRoundRect(344,241,150,20,8,8); //Bar background
  3165. g.setColor(new Color(0,255,0,255)); //GREEN
  3166. g.fillRoundRect(344,241,(int)(skills.getPercentToNextLevel(skills.getIndex("woodcutting"))*1.5),20,8,8);
  3167. g.setColor(new Color(255,255,255,100));
  3168. g.drawString(skills.getPercentToNextLevel(skills.getIndex("woodcutting"))+"% to: "+(skills.getCurrentLevel(skills.getIndex("woodcutting"))+1)+" ("+expToLvl+" exp)",348,256);
  3169. g.fillRoundRect(345,251,148,10,8,8);
  3170. g.setColor(new Color(0,0,0,255));
  3171. g.drawString(skills.getPercentToNextLevel(skills.getIndex("woodcutting"))+"% to: "+(skills.getCurrentLevel(skills.getIndex("woodcutting"))+1)+" ("+expToLvl+" exp)",347,255);
  3172. g.setColor(new Color(255,0,0,255));
  3173. if(ms2!=0)
  3174. g.drawString("Exp/Hr: "+(int)(expGained/(ms2/3600000)),344,274);
  3175. g.drawString("Status: "+status,344,289);
  3176.  
  3177. if(treeType.equals("yews"))
  3178. {
  3179. g.drawString("Money Gained: "+yewPrice*yewsCut,344,304);
  3180. if(ms2!=0)
  3181. g.drawString("Money/Hr: "+(int)((yewPrice*yewsCut)/(ms2/3600000)),344,319);
  3182. }
  3183. else if(treeType.equals("magics"))
  3184. {
  3185. g.drawString("Money Gained: "+magicPrice*magicsCut,344,304);
  3186. if(ms2!=0)
  3187. g.drawString("Money/Hr: "+(int)((magicPrice*magicsCut)/(ms2/3600000)),344,319);
  3188. }
  3189. else if(treeType.equals("ivy"))
  3190. {
  3191. g.drawString("Nests Collected: "+nests,344,304);
  3192. if(ms2!=0)
  3193. g.drawString("Nests/Hr: "+(int)(nests/(ms2/3600000)),344,319);
  3194. }
  3195. else if(treeType.equals("willows"))
  3196. {
  3197. g.drawString("Money Gained: "+willowPrice*willowsCut,344,304);
  3198. if(ms2!=0)
  3199. g.drawString("Money/Hr: "+(int)((willowPrice*willowsCut)/(ms2/3600000)),344,319);
  3200. }
  3201. else if(treeType.equals("maples"))
  3202. {
  3203. g.drawString("Money Gained: "+maplePrice*maplesCut,344,304);
  3204. if(ms2!=0)
  3205. g.drawString("Money/Hr: "+(int)((maplePrice*maplesCut)/(ms2/3600000)),344,319);
  3206. }
  3207. else if(treeType.equals("oaks"))
  3208. {
  3209. g.drawString("Money Gained: "+oakPrice*oaksCut,344,304);
  3210. if(ms2!=0)
  3211. g.drawString("Money/Hr: "+(int)((oakPrice*oaksCut)/(ms2/3600000)),344,319);
  3212. }
  3213. g.drawString("Est. Time to Lvl: "+time2LvlHrs+":"+time2LvlMins+":"+time2LvlSec,344,334);
  3214. //Mouse Stuff
  3215. Point tempPoint = mouse.getLocation();
  3216. int tempXCoordinate = (int)tempPoint.getX();
  3217. int tempYCoordinate = (int)tempPoint.getY();
  3218. g.setColor(new Color(0,255,0,100));
  3219. g.drawLine(tempXCoordinate,0,tempXCoordinate,501);
  3220. g.drawLine(0,tempYCoordinate,764,tempYCoordinate);
  3221. //Stump time drawing
  3222. g.setColor(Color.GREEN);
  3223. stump1 = calc.tileToScreen(tree1);
  3224. stump2 = calc.tileToScreen(tree2);
  3225. stump3 = calc.tileToScreen(tree3);
  3226. stump4 = calc.tileToScreen(tree4);
  3227. stump5 = calc.tileToScreen(tree5);
  3228. stump6 = calc.tileToScreen(tree6);
  3229. stump7 = calc.tileToScreen(tree7);
  3230. //ALIVE TREES
  3231. if(tree1Status&&tree1AliveTime!=0)
  3232. g.drawString((int)(tree1TimeAlive/1000)+"s",(int)stump1.getX(),(int)stump1.getY());
  3233. if(tree2Status&&tree2AliveTime!=0)
  3234. g.drawString((int)(tree2TimeAlive/1000)+"s",(int)stump2.getX(),(int)stump2.getY());
  3235. if(tree3Status&&tree3AliveTime!=0)
  3236. g.drawString((int)(tree3TimeAlive/1000)+"s",(int)stump3.getX(),(int)stump3.getY());
  3237. if(tree4Status&&tree4AliveTime!=0)
  3238. g.drawString((int)(tree4TimeAlive/1000)+"s",(int)stump4.getX(),(int)stump4.getY());
  3239. if(tree5Status&&tree5AliveTime!=0)
  3240. g.drawString((int)(tree5TimeAlive/1000)+"s",(int)stump5.getX(),(int)stump5.getY());
  3241. if(tree6Status&&tree6AliveTime!=0)
  3242. g.drawString((int)(tree6TimeAlive/1000)+"s",(int)stump6.getX(),(int)stump6.getY());
  3243. if(tree7Status&&tree7AliveTime!=0)
  3244. g.drawString((int)(tree7TimeAlive/1000)+"s",(int)stump7.getX(),(int)stump7.getY());
  3245. //DEAD TREES
  3246. g.setColor(Color.MAGENTA);
  3247. if(!tree1Status&&tree1DeadTime!=0)
  3248. g.drawString((int)(tree1TimeDead/1000)+"s",(int)stump1.getX(),(int)stump1.getY());
  3249. if(!tree2Status&&tree2DeadTime!=0)
  3250. g.drawString((int)(tree2TimeDead/1000)+"s",(int)stump2.getX(),(int)stump2.getY());
  3251. if(!tree3Status&&tree3DeadTime!=0)
  3252. g.drawString((int)(tree3TimeDead/1000)+"s",(int)stump3.getX(),(int)stump3.getY());
  3253. if(!tree4Status&&tree4DeadTime!=0)
  3254. g.drawString((int)(tree4TimeDead/1000)+"s",(int)stump4.getX(),(int)stump4.getY());
  3255. if(!tree5Status&&tree5DeadTime!=0)
  3256. g.drawString((int)(tree5TimeDead/1000)+"s",(int)stump5.getX(),(int)stump5.getY());
  3257. if(!tree6Status&&tree6DeadTime!=0)
  3258. g.drawString((int)(tree6TimeDead/1000)+"s",(int)stump6.getX(),(int)stump6.getY());
  3259. if(!tree7Status&&tree7DeadTime!=0)
  3260. g.drawString((int)(tree7TimeDead/1000)+"s",(int)stump7.getX(),(int)stump7.getY());
  3261.  
  3262. }
  3263. else
  3264. {
  3265. g.setColor(new Color(51,153,0,255));
  3266. g.fillRect(448,459,(512-448),(472-459));
  3267. g.setColor(new Color(0,0,0,255));
  3268. g.drawRect(448,459,(512-448),(472-459));
  3269. g.drawString("Hide/Show",450,470);
  3270. }
  3271. }
  3272. }catch (Exception e){};
  3273. }
  3274. }
  3275. private Image getImage(String url) {
  3276. try {
  3277. return ImageIO.read(new URL(url));
  3278. } catch(IOException e) {
  3279. return null;
  3280. }
  3281. }
  3282. private final Color color1 = new Color(1, 1, 1);
  3283. private final Font font1 = new Font("Arial", 0, 12);
  3284. public void onRepaint2(Graphics g1 , boolean fancy) {
  3285. Graphics2D g = (Graphics2D)g1;
  3286. if(fancy){
  3287. g.drawImage(img1, 342, 350, null);
  3288. g.drawImage(img2, 5, 6, null);
  3289. g.drawImage(img4, 5, 29, null);
  3290. }
  3291. g.setColor(new Color(51,153,0,255));
  3292. g.fillRect(448,459,(512-448),(472-459));
  3293. g.fillRect(398,459,(448-398),(472-459));
  3294. g.setColor(new Color(0,0,0,255));
  3295. g.drawRect(448,459,(512-448),(472-459));
  3296. g.drawRect(398,459,(448-398),(472-459));
  3297. g.drawString("Hide/Show",450,470);
  3298. if(fancy)
  3299. g.drawString("Simple",405,470);
  3300. else
  3301. g.drawString("Adv.",415,470);
  3302. }
  3303. public void onFinish() {
  3304. log("Exp gained: "+expGained);
  3305. log("Levels gained: "+lvlsGained);
  3306. log("Thanks for using Conderoga's Chopper!");
  3307. }
  3308. public void openURL(final String url) { // Credits ZombieKnight
  3309. //who gave credits to Dave who gave credits
  3310. // to
  3311. // some guy who made this.
  3312. final String osName = System.getProperty("os.name");
  3313. try {
  3314. if (osName.startsWith("Mac OS")) {
  3315. final Class<?> fileMgr = Class
  3316. .forName("com.apple.eio.FileManager");
  3317. final Method openURL = fileMgr.getDeclaredMethod("openURL",new Class[]{String.class});
  3318. openURL.invoke(null, new Object[]{url});
  3319. } else if (osName.startsWith("Windows")) {
  3320. Runtime.getRuntime().exec(
  3321. "rundll32 url.dll,FileProtocolHandler " + url);
  3322. } else { // assume Unix or Linux
  3323. final String[] browsers = {"firefox", "opera", "konqueror",
  3324. "epiphany", "mozilla", "netscape"};
  3325. String browser = null;
  3326. for (int count = 0; count < browsers.length && browser == null; count++) {
  3327. if (Runtime.getRuntime().exec(
  3328. new String[]{"which", browsers[count]})
  3329. .waitFor() == 0) {
  3330. browser = browsers[count];
  3331. }
  3332. }
  3333. if (browser == null) {
  3334. throw new Exception("Could not find web browser");
  3335. } else {
  3336. Runtime.getRuntime().exec(new String[]{browser, url});
  3337. }
  3338. }
  3339. } catch (final Exception e) {
  3340. }
  3341. }
  3342. public class CChopGUI extends JFrame {
  3343. private static final long serialVersionUID = 1L;
  3344. public CChopGUI() {
  3345. initComponents();
  3346. }
  3347.  
  3348. private void button4ActionPerformed(ActionEvent e)
  3349. {
  3350. try{
  3351. guiWait = false;
  3352. guiExit = true;
  3353. dispose();
  3354. }catch(Exception ex){log("WTF?!?");};
  3355. }
  3356.  
  3357. private void button2ActionPerformed(ActionEvent e)
  3358. {
  3359. try{
  3360. location = comboBox2.getSelectedItem().toString();
  3361. takeBreaks = checkBox1.isSelected();
  3362. nearest = true;
  3363. guiExit = false;
  3364. guiWait = false;
  3365. dispose();
  3366. }
  3367. catch(Exception ex){log("WTF?!?1");};
  3368. }
  3369. private void button1ActionPerformed(ActionEvent e)
  3370. {
  3371. try{
  3372. chopType = comboBox1.getSelectedItem().toString();
  3373. initializeStage2Components();
  3374. }
  3375. catch(Exception ex){log("WTF?!?2");};
  3376. }
  3377. /*private void button3ActionPerformed(ActionEvent e)
  3378. {
  3379. initComponents();
  3380. chopType = null;
  3381. }*/
  3382. private void initComponents() {
  3383. label1 = new JLabel();
  3384. label2 = new JLabel();
  3385. label3 = new JLabel();
  3386. button1 = new JButton();
  3387. comboBox1 = new JComboBox();
  3388. button4 = new JButton();
  3389.  
  3390.  
  3391. //======== this ========
  3392. setAlwaysOnTop(true);
  3393. setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
  3394. setFont(new Font("Dialog", Font.PLAIN, 16));
  3395. setResizable(false);
  3396. setTitle("Conderoga's Chopper");
  3397. Container contentPane = getContentPane();
  3398. contentPane.setLayout(null);
  3399.  
  3400. //---- label1 ----
  3401. label1.setText("Conderoga's Chopper Settings");
  3402. label1.setFont(new Font("Comic Sans MS", Font.PLAIN, 20));
  3403. contentPane.add(label1);
  3404. label1.setBounds(25, 15, 315, 39);
  3405.  
  3406. //---- label2 ----
  3407. label2.setText("Version: "+version);
  3408. contentPane.add(label2);
  3409. label2.setBounds(new Rectangle(new Point(25, 50), label2.getPreferredSize()));
  3410.  
  3411. //---- label3 ----
  3412. label3.setText("Select what you wish to chop:");
  3413. label3.setFont(label3.getFont().deriveFont(label3.getFont().getSize() + 2f));
  3414. contentPane.add(label3);
  3415. label3.setBounds(new Rectangle(new Point(10, 105), label3.getPreferredSize()));
  3416.  
  3417. //---- button1 ----
  3418. button1.setText("Confirm and Proceed");
  3419. button1.addActionListener(new ActionListener() {
  3420. public void actionPerformed(ActionEvent e) {
  3421. button1ActionPerformed(e);
  3422. }
  3423. });
  3424. contentPane.add(button1);
  3425. button1.setBounds(85, 145, 195, 35);
  3426.  
  3427. //---- comboBox1 ----
  3428. comboBox1.setMaximumRowCount(6);
  3429. contentPane.add(comboBox1);
  3430. comboBox1.setModel(new DefaultComboBoxModel(new String[] {
  3431.  
  3432. "Yews",
  3433. "Magics",
  3434. "Ivy",
  3435. "Willows",
  3436. "Maples",
  3437. "Oaks"
  3438.  
  3439. }));
  3440. comboBox1.setBounds(205, 100, 145, 25);
  3441.  
  3442. //---- button4 ----
  3443. button4.setText("Exit");
  3444. button4.addActionListener(new ActionListener() {
  3445. public void actionPerformed(ActionEvent e) {
  3446. button4ActionPerformed(e);
  3447. }
  3448. });
  3449. contentPane.add(button4);
  3450. button4.setBounds(0, 325, 85, 38);
  3451.  
  3452.  
  3453.  
  3454. { // compute preferred size
  3455. Dimension preferredSize = new Dimension();
  3456. for(int i = 0; i < contentPane.getComponentCount(); i++) {
  3457. Rectangle bounds = contentPane.getComponent(i).getBounds();
  3458. preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
  3459. preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
  3460. }
  3461. Insets insets = contentPane.getInsets();
  3462. preferredSize.width += insets.right;
  3463. preferredSize.height += insets.bottom;
  3464. contentPane.setMinimumSize(preferredSize);
  3465. contentPane.setPreferredSize(preferredSize);
  3466. }
  3467. pack();
  3468. setLocationRelativeTo(getOwner());
  3469.  
  3470. }
  3471. private void initializeStage2Components()
  3472. {
  3473. checkBox1 = new JCheckBox("Take short breaks?",false);
  3474. //checkBox2 = new JCheckBox("Chop nearest?",true);
  3475. label4 = new JLabel();
  3476. comboBox2 = new JComboBox();
  3477. button2 = new JButton();
  3478. label1 = new JLabel();
  3479. label2 = new JLabel();
  3480. button4 = new JButton();
  3481.  
  3482.  
  3483. //======== this ========
  3484. setAlwaysOnTop(true);
  3485. setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
  3486. setFont(new Font("Dialog", Font.PLAIN, 16));
  3487. setResizable(false);
  3488. setTitle("Conderoga's Chopper");
  3489. Container contentPane = getContentPane();
  3490. contentPane.setLayout(null);
  3491.  
  3492. //---- label1 ----
  3493. label1.setText("Conderoga's Chopper Settings");
  3494. label1.setFont(new Font("Comic Sans MS", Font.PLAIN, 20));
  3495. contentPane.add(label1);
  3496. label1.setBounds(25, 15, 315, 39);
  3497.  
  3498. //---- label2 ----
  3499. label2.setText("Version: "+version);
  3500. contentPane.add(label2);
  3501. label2.setBounds(new Rectangle(new Point(25, 50), label2.getPreferredSize()));
  3502.  
  3503. //---- label4 ----
  3504. label4.setText("Select where you wish to chop:");
  3505. label4.setFont(label4.getFont().deriveFont(label4.getFont().getSize() + 2f));
  3506. contentPane.add(label4);
  3507. label4.setBounds(10, 210, 180, 16);
  3508.  
  3509. //---- comboBox2 ----
  3510. if(chopType.equals("Yews")){
  3511. comboBox2.setMaximumRowCount(8);
  3512. comboBox2.setModel(new DefaultComboBoxModel(new String[] {
  3513.  
  3514. "Grand Exchange",
  3515. "Edgeville",
  3516. "Rimmington",
  3517. "Catherby",
  3518. "Seer's Village",
  3519. "South Falador",
  3520. "Draynor",
  3521. "Tree Gnome"
  3522.  
  3523. }));
  3524. }
  3525. else if(chopType.equals("Magics")){
  3526. comboBox2.setMaximumRowCount(3);
  3527. comboBox2.setModel(new DefaultComboBoxModel(new String[] {
  3528.  
  3529. "Seer's Village",
  3530. "Sorcerer's Tower",
  3531. "Mage Training Area"
  3532.  
  3533. }));
  3534. }
  3535. else if(chopType.equals("Ivy")){
  3536. comboBox2.setMaximumRowCount(8);
  3537. comboBox2.setModel(new DefaultComboBoxModel(new String[] {
  3538.  
  3539. "Castle Wars",
  3540. "Grand Exchange",
  3541. "Taverly",
  3542. "Yanille",
  3543. "Varrock Palace",
  3544. "Ardougne",
  3545. "South Falador",
  3546. "North Falador"
  3547.  
  3548. }));
  3549. }
  3550. else if(chopType.equals("Willows")){
  3551. comboBox2.setMaximumRowCount(2);
  3552. comboBox2.setModel(new DefaultComboBoxModel(new String[] {
  3553.  
  3554. "Draynor",
  3555. "Port Salim"
  3556.  
  3557.  
  3558. }));
  3559. }
  3560. else if(chopType.equals("Maples")){
  3561. comboBox2.setMaximumRowCount(1);
  3562. comboBox2.setModel(new DefaultComboBoxModel(new String[] {
  3563.  
  3564. "Seer's Village"
  3565.  
  3566.  
  3567. }));
  3568. }
  3569. else if(chopType.equals("Oaks")){
  3570. comboBox2.setMaximumRowCount(1);
  3571. comboBox2.setModel(new DefaultComboBoxModel(new String[] {
  3572.  
  3573. "Draynor"
  3574.  
  3575.  
  3576. }));
  3577. }
  3578. contentPane.add(comboBox2);
  3579. comboBox2.setBounds(205, 205, 145, 25);
  3580.  
  3581. //---- checkBox1 ----
  3582. checkBox1.setText("Take short breaks?");
  3583. contentPane.add(checkBox1);
  3584. checkBox1.setBounds(new Rectangle(new Point(120, 250), checkBox1.getPreferredSize()));
  3585.  
  3586. //---- checkBox2 ----
  3587. //checkBox2.setText("Chop nearest?");
  3588. //contentPane.add(checkBox2);
  3589. //checkBox2.setBounds(new Rectangle(new Point(120, 270), checkBox1.getPreferredSize()));
  3590.  
  3591. //---- button2 ----
  3592. button2.setText("Start");
  3593. button2.addActionListener(new ActionListener() {
  3594. public void actionPerformed(ActionEvent e) {
  3595. button2ActionPerformed(e);
  3596. }
  3597. });
  3598. contentPane.add(button2);
  3599. button2.setBounds(175, 325, 175, 38);
  3600.  
  3601.  
  3602. /*/---- button3 ----
  3603. button3.setText("Choose Again");
  3604. button3.addActionListener(new ActionListener() {
  3605. public void actionPerformed(ActionEvent e) {
  3606. button2ActionPerformed(e);
  3607. }
  3608. });
  3609. contentPane.add(button3);
  3610. button3.setBounds(85, 325, 130, 38);
  3611. */
  3612. //---- button4 ----
  3613. button4.setText("Exit");
  3614. button4.addActionListener(new ActionListener() {
  3615. public void actionPerformed(ActionEvent e) {
  3616. button2ActionPerformed(e);
  3617. }
  3618. });
  3619. contentPane.add(button4);
  3620. button4.setBounds(0, 325, 85, 38);
  3621.  
  3622. { // compute preferred size
  3623. Dimension preferredSize = new Dimension();
  3624. for(int i = 0; i < contentPane.getComponentCount(); i++) {
  3625. Rectangle bounds = contentPane.getComponent(i).getBounds();
  3626. preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
  3627. preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
  3628. }
  3629. Insets insets = contentPane.getInsets();
  3630. preferredSize.width += insets.right;
  3631. preferredSize.height += insets.bottom;
  3632. contentPane.setMinimumSize(preferredSize);
  3633. contentPane.setPreferredSize(preferredSize);
  3634. }
  3635. pack();
  3636. setLocationRelativeTo(getOwner());
  3637.  
  3638. }
  3639. private JCheckBox checkBox1;
  3640. //private JCheckBox checkBox2;
  3641. private JLabel label1;
  3642. private JLabel label2;
  3643. private JLabel label3;
  3644. private JButton button1;
  3645. private JComboBox comboBox1;
  3646. private JLabel label4;
  3647. private JComboBox comboBox2;
  3648. private JButton button2;
  3649. private JButton button3;
  3650. private JButton button4;
  3651. }
  3652. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement