Advertisement
Conderoga

CChop v1.25

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