Advertisement
Conderoga

CChop-forSVN

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