Advertisement
Conderoga

CChop v1.25 - Final

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