Thondar

rRockCrabs with Looting

Aug 5th, 2012
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 48.36 KB | None | 0 0
  1.  
  2. import java.awt.AlphaComposite;
  3. import java.awt.BasicStroke;
  4. import java.awt.Color;
  5. import java.awt.Font;
  6. import java.awt.Graphics;
  7. import java.awt.Graphics2D;
  8. import java.awt.Image;
  9. import java.awt.Point;
  10. import java.awt.RenderingHints;
  11. import java.awt.event.ActionEvent;
  12. import java.io.IOException;
  13. import java.net.URL;
  14. import java.util.ArrayList;
  15. import java.util.LinkedHashSet;
  16. import java.util.List;
  17. import java.util.Set;
  18.  
  19. import javax.imageio.ImageIO;
  20. import javax.swing.SwingUtilities;
  21.  
  22. import org.powerbot.concurrent.Task;
  23. import org.powerbot.concurrent.strategy.Condition;
  24. import org.powerbot.concurrent.strategy.Strategy;
  25. import org.powerbot.game.api.ActiveScript;
  26. import org.powerbot.game.api.Manifest;
  27. import org.powerbot.game.api.methods.Calculations;
  28. import org.powerbot.game.api.methods.Tabs;
  29. import org.powerbot.game.api.methods.Walking;
  30. import org.powerbot.game.api.methods.Widgets;
  31. import org.powerbot.game.api.methods.input.Mouse;
  32. import org.powerbot.game.api.methods.interactive.NPCs;
  33. import org.powerbot.game.api.methods.interactive.Players;
  34. import org.powerbot.game.api.methods.node.GroundItems;
  35. import org.powerbot.game.api.methods.node.SceneEntities;
  36. import org.powerbot.game.api.methods.tab.Inventory;
  37. import org.powerbot.game.api.methods.tab.Skills;
  38. import org.powerbot.game.api.methods.widget.Bank;
  39. import org.powerbot.game.api.methods.widget.Camera;
  40. import org.powerbot.game.api.util.Random;
  41. import org.powerbot.game.api.util.Time;
  42. import org.powerbot.game.api.util.Timer;
  43. import org.powerbot.game.api.wrappers.Area;
  44. import org.powerbot.game.api.wrappers.Tile;
  45. import org.powerbot.game.api.wrappers.node.GroundItem;
  46. import org.powerbot.game.api.wrappers.widget.WidgetChild;
  47. import org.powerbot.game.bot.event.listener.PaintListener;
  48.  
  49. @Manifest(name = "rRockCrabs", description = "Good combat XP for pures", version = 1.0, authors = { "r59q" })
  50. public class rRockCrabs extends ActiveScript implements PaintListener {
  51. private String VERSION = "1.0";
  52.  
  53. private int MouseClickedX;
  54. private int MouseClickedY;
  55. private int[] charmIDS = { 12160, 12159, 12163, 12158 };
  56. private int[] crabID = { 1266, 1268 };
  57. private int[] liveCrabID = { 1267, 1265 };
  58. private int cannonID = 6;
  59. private int[] loot = {554, 561, 5300, 5304, 1275, 402};
  60. private int giftID = 14664;
  61. private int foodID;
  62. private int foodAmount;
  63. private int whenToEat;
  64. private int Total_startExp;
  65. private int Const_startExp;
  66.  
  67. private long startTime;
  68.  
  69. private String STATE;
  70. private String status;
  71.  
  72. private boolean crabReset = true;
  73. private boolean GUI = true, guiExit;
  74. private boolean useRest;
  75. private boolean lootCharm, dropGifts;
  76. private boolean cannonJump;
  77.  
  78. List<Point> MouseCoords = new ArrayList<Point>();
  79. Timer MouseTimer = new Timer(0);
  80.  
  81. private Area CRAB_AREA_E = new Area(new Tile(2692, 3734, 0), new Tile(2726,
  82. 3708, 0));
  83. private Area RESET_AREA_E = new Area(new Tile(2712, 3685, 0), new Tile(
  84. 2703, 3675, 0));
  85. private Area TP_AREA = new Area(new Tile(2705, 3737, 0), new Tile(2708,
  86. 3730, 0));
  87. private Area BANK_AREA = new Area(new Tile(2731, 3489, 0), new Tile(2720,
  88. 3494, 0));
  89.  
  90. private Tile[] RESET_PATH1 = { new Tile(2706, 3726, 0),
  91. new Tile(2706, 3725, 0), new Tile(2706, 3724, 0),
  92. new Tile(2707, 3723, 0), new Tile(2707, 3722, 0),
  93. new Tile(2707, 3721, 0), new Tile(2707, 3720, 0),
  94. new Tile(2707, 3719, 0), new Tile(2707, 3718, 0),
  95. new Tile(2707, 3717, 0), new Tile(2707, 3716, 0),
  96. new Tile(2707, 3715, 0), new Tile(2707, 3714, 0),
  97. new Tile(2707, 3713, 0), new Tile(2707, 3712, 0),
  98. new Tile(2707, 3711, 0), new Tile(2707, 3710, 0),
  99. new Tile(2707, 3708, 0), new Tile(2707, 3707, 0),
  100. new Tile(2707, 3706, 0), new Tile(2706, 3705, 0),
  101. new Tile(2706, 3704, 0), new Tile(2706, 3703, 0),
  102. new Tile(2706, 3702, 0), new Tile(2706, 3701, 0),
  103. new Tile(2706, 3700, 0), new Tile(2706, 3699, 0),
  104. new Tile(2706, 3698, 0), new Tile(2706, 3697, 0),
  105. new Tile(2706, 3696, 0), new Tile(2706, 3695, 0),
  106. new Tile(2705, 3694, 0), new Tile(2705, 3693, 0),
  107. new Tile(2705, 3692, 0), new Tile(2705, 3691, 0),
  108. new Tile(2704, 3690, 0), new Tile(2703, 3689, 0),
  109. new Tile(2702, 3688, 0), new Tile(2701, 3687, 0),
  110. new Tile(2701, 3686, 0), new Tile(2701, 3685, 0),
  111. new Tile(2701, 3684, 0), new Tile(2701, 3683, 0),
  112. new Tile(2700, 3682, 0), new Tile(2699, 3681, 0),
  113. new Tile(2700, 3681, 0), new Tile(2700, 3641, 0),
  114. new Tile(2701, 3680, 0), new Tile(2701, 3679, 0),
  115. new Tile(2701, 3678, 0), new Tile(2701, 3677, 0),
  116. new Tile(2701, 3676, 0), new Tile(2700, 3675, 0),
  117. new Tile(2701, 3675, 0), new Tile(2702, 3675, 0),
  118. new Tile(2703, 3676, 0), new Tile(2704, 3677, 0),
  119. new Tile(2702, 3676, 0), new Tile(2700, 3674, 0),
  120. new Tile(2699, 3673, 0), new Tile(2703, 3677, 0),
  121. new Tile(2704, 3678, 0), new Tile(2705, 3679, 0),
  122. new Tile(2706, 3679, 0) };
  123. private Tile[] RESET_PATH2 = { new Tile(2708, 3682, 0),
  124. new Tile(2708, 3683, 0), new Tile(2708, 3684, 0),
  125. new Tile(2708, 3685, 0), new Tile(2708, 3686, 0),
  126. new Tile(2708, 3687, 0), new Tile(2708, 3688, 0),
  127. new Tile(2708, 3689, 0), new Tile(2708, 3690, 0),
  128. new Tile(2708, 3691, 0), new Tile(2708, 3692, 0),
  129. new Tile(2708, 3693, 0), new Tile(2708, 3694, 0),
  130. new Tile(2708, 3696, 0), new Tile(2708, 3697, 0),
  131. new Tile(2707, 3698, 0), new Tile(2707, 3699, 0),
  132. new Tile(2707, 3700, 0), new Tile(2707, 3701, 0),
  133. new Tile(2707, 3702, 0), new Tile(2706, 3703, 0),
  134. new Tile(2706, 3704, 0), new Tile(2706, 3705, 0),
  135. new Tile(2706, 3707, 0), new Tile(2706, 3708, 0),
  136. new Tile(2706, 3709, 0), new Tile(2706, 3711, 0),
  137. new Tile(2706, 3712, 0), new Tile(2706, 3713, 0),
  138. new Tile(2706, 3714, 0), new Tile(2706, 3715, 0),
  139. new Tile(2706, 3755, 0), new Tile(2706, 3717, 0),
  140. new Tile(2706, 3718, 0), new Tile(2706, 3719, 0),
  141. new Tile(2706, 3720, 0) };
  142. private Tile[] TP_PATH = { new Tile(2708, 3695, 0),
  143. new Tile(2708, 3696, 0), new Tile(2708, 3697, 0),
  144. new Tile(2707, 3698, 0), new Tile(2707, 3700, 0),
  145. new Tile(2707, 3701, 0), new Tile(2707, 3702, 0),
  146. new Tile(2706, 3703, 0), new Tile(2706, 3704, 0),
  147. new Tile(2706, 3705, 0), new Tile(2706, 3706, 0),
  148. new Tile(2706, 3707, 0), new Tile(2706, 3708, 0),
  149. new Tile(2706, 3709, 0), new Tile(2706, 3710, 0),
  150. new Tile(2706, 3711, 0), new Tile(2706, 3712, 0),
  151. new Tile(2706, 3713, 0), new Tile(2706, 3714, 0),
  152. new Tile(2706, 3715, 0), new Tile(2706, 3716, 0),
  153. new Tile(2706, 3757, 0), new Tile(2706, 3717, 0),
  154. new Tile(2706, 3718, 0), new Tile(2707, 3721, 0),
  155. new Tile(2707, 3722, 0), new Tile(2707, 3723, 0),
  156. new Tile(2707, 3724, 0), new Tile(2707, 3725, 0),
  157. new Tile(2707, 3726, 0), new Tile(2707, 3728, 0),
  158. new Tile(2707, 3729, 0), new Tile(2707, 3730, 0),
  159. new Tile(2707, 3731, 0), new Tile(2707, 3732, 0),
  160. new Tile(2707, 3733, 0), new Tile(2707, 3734, 0),
  161. new Tile(2707, 3735, 0), new Tile(2707, 3736, 0) };
  162. private Tile[] BANK_PATH = { new Tile(2700, 3483, 0),
  163. new Tile(2701, 3483, 0), new Tile(2702, 3483, 0),
  164. new Tile(2703, 3483, 0), new Tile(2704, 3483, 0),
  165. new Tile(2705, 3483, 0), new Tile(2706, 3483, 0),
  166. new Tile(2707, 3483, 0), new Tile(2708, 3483, 0),
  167. new Tile(2709, 3483, 0), new Tile(2710, 3483, 0),
  168. new Tile(2711, 3483, 0), new Tile(2712, 3483, 0),
  169. new Tile(2714, 3483, 0), new Tile(2715, 3483, 0),
  170. new Tile(2716, 3483, 0), new Tile(2717, 3483, 0),
  171. new Tile(2718, 3484, 0), new Tile(2719, 3484, 0),
  172. new Tile(2720, 3484, 0), new Tile(2721, 3484, 0),
  173. new Tile(2722, 3484, 0), new Tile(2723, 3484, 0),
  174. new Tile(2724, 3485, 0), new Tile(2725, 3486, 0),
  175. new Tile(2725, 3487, 0), new Tile(2725, 3488, 0),
  176. new Tile(2725, 3489, 0), new Tile(2725, 3490, 0),
  177. new Tile(2725, 3491, 0), new Tile(2724, 3492, 0),
  178. new Tile(2724, 3493, 0) };
  179. private Tile[] TO_CRAB_PATH = { new Tile(2724, 3493, 0),
  180. new Tile(2724, 3492, 0), new Tile(2724, 3491, 0),
  181. new Tile(2725, 3490, 0), new Tile(2725, 3489, 0),
  182. new Tile(2725, 3488, 0), new Tile(2725, 3487, 0),
  183. new Tile(2726, 3486, 0), new Tile(2766, 3486, 0),
  184. new Tile(2728, 3486, 0), new Tile(2729, 3486, 0),
  185. new Tile(2730, 3486, 0), new Tile(2731, 3486, 0),
  186. new Tile(2732, 3486, 0), new Tile(2733, 3487, 0),
  187. new Tile(2734, 3488, 0), new Tile(2735, 3489, 0),
  188. new Tile(2735, 3490, 0), new Tile(2735, 3491, 0),
  189. new Tile(2735, 3492, 0), new Tile(2736, 3493, 0),
  190. new Tile(2737, 3494, 0), new Tile(2737, 3495, 0),
  191. new Tile(2738, 3496, 0), new Tile(2739, 3497, 0),
  192. new Tile(2740, 3498, 0), new Tile(2740, 3499, 0),
  193. new Tile(2740, 3500, 0), new Tile(2740, 3501, 0),
  194. new Tile(2740, 3502, 0), new Tile(2740, 3503, 0),
  195. new Tile(2740, 3504, 0), new Tile(2740, 3505, 0),
  196. new Tile(2740, 3506, 0), new Tile(2740, 3507, 0),
  197. new Tile(2740, 3508, 0), new Tile(2740, 3509, 0),
  198. new Tile(2740, 3510, 0), new Tile(2741, 3511, 0),
  199. new Tile(2741, 3512, 0), new Tile(2741, 3513, 0),
  200. new Tile(2741, 3514, 0), new Tile(2741, 3515, 0),
  201. new Tile(2741, 3516, 0), new Tile(2749, 3557, 0),
  202. new Tile(2741, 3517, 0), new Tile(2741, 3518, 0),
  203. new Tile(2741, 3519, 0), new Tile(2741, 3520, 0),
  204. new Tile(2741, 3521, 0), new Tile(2741, 3522, 0),
  205. new Tile(2741, 3523, 0), new Tile(2741, 3524, 0),
  206. new Tile(2741, 3525, 0), new Tile(2741, 3526, 0),
  207. new Tile(2741, 3527, 0), new Tile(2741, 3528, 0),
  208. new Tile(2741, 3529, 0), new Tile(2741, 3530, 0),
  209. new Tile(2741, 3531, 0), new Tile(2741, 3532, 0),
  210. new Tile(2741, 3533, 0), new Tile(2741, 3534, 0),
  211. new Tile(2740, 3535, 0), new Tile(2740, 3536, 0),
  212. new Tile(2739, 3537, 0), new Tile(2737, 3539, 0),
  213. new Tile(2737, 3540, 0), new Tile(2736, 3540, 0),
  214. new Tile(2735, 3540, 0), new Tile(2734, 3540, 0),
  215. new Tile(2733, 3540, 0), new Tile(2732, 3540, 0),
  216. new Tile(2731, 3540, 0), new Tile(2730, 3540, 0),
  217. new Tile(2729, 3541, 0), new Tile(2728, 3541, 0),
  218. new Tile(2727, 3542, 0), new Tile(2726, 3542, 0),
  219. new Tile(2725, 3542, 0), new Tile(2724, 3542, 0),
  220. new Tile(2723, 3542, 0), new Tile(2722, 3542, 0),
  221. new Tile(2721, 3542, 0), new Tile(2720, 3542, 0),
  222. new Tile(2719, 3543, 0), new Tile(2718, 3543, 0),
  223. new Tile(2717, 3543, 0), new Tile(2716, 3543, 0),
  224. new Tile(2715, 3543, 0), new Tile(2714, 3543, 0),
  225. new Tile(2713, 3543, 0), new Tile(2712, 3543, 0),
  226. new Tile(2711, 3543, 0), new Tile(2710, 3543, 0),
  227. new Tile(2709, 3543, 0), new Tile(2708, 3543, 0),
  228. new Tile(2707, 3543, 0), new Tile(2667, 3559, 0),
  229. new Tile(2706, 3543, 0), new Tile(2705, 3543, 0),
  230. new Tile(2704, 3543, 0), new Tile(2703, 3543, 0),
  231. new Tile(2702, 3543, 0), new Tile(2701, 3543, 0),
  232. new Tile(2700, 3543, 0), new Tile(2699, 3543, 0),
  233. new Tile(2698, 3543, 0), new Tile(2697, 3543, 0),
  234. new Tile(2696, 3543, 0), new Tile(2695, 3543, 0),
  235. new Tile(2694, 3543, 0), new Tile(2693, 3543, 0),
  236. new Tile(2692, 3544, 0), new Tile(2691, 3546, 0),
  237. new Tile(2690, 3546, 0), new Tile(2689, 3547, 0),
  238. new Tile(2688, 3547, 0), new Tile(2686, 3547, 0),
  239. new Tile(2685, 3547, 0), new Tile(2684, 3546, 0),
  240. new Tile(2683, 3546, 0), new Tile(2682, 3546, 0),
  241. new Tile(2681, 3546, 0), new Tile(2680, 3546, 0),
  242. new Tile(2679, 3546, 0), new Tile(2678, 3546, 0),
  243. new Tile(2677, 3546, 0), new Tile(2676, 3547, 0),
  244. new Tile(2676, 3548, 0), new Tile(2675, 3548, 0),
  245. new Tile(2675, 3549, 0), new Tile(2675, 3550, 0),
  246. new Tile(2675, 3551, 0), new Tile(2675, 3552, 0),
  247. new Tile(2675, 3553, 0), new Tile(2675, 3554, 0),
  248. new Tile(2674, 3555, 0), new Tile(2673, 3556, 0),
  249. new Tile(2672, 3556, 0), new Tile(2671, 3556, 0),
  250. new Tile(2670, 3556, 0), new Tile(2669, 3557, 0),
  251. new Tile(2668, 3557, 0), new Tile(2667, 3557, 0),
  252. new Tile(2627, 3573, 0), new Tile(2666, 3557, 0),
  253. new Tile(2665, 3557, 0), new Tile(2663, 3559, 0),
  254. new Tile(2662, 3560, 0), new Tile(2661, 3561, 0),
  255. new Tile(2661, 3562, 0), new Tile(2661, 3563, 0),
  256. new Tile(2661, 3564, 0), new Tile(2661, 3565, 0),
  257. new Tile(2661, 3566, 0), new Tile(2661, 3567, 0),
  258. new Tile(2661, 3568, 0), new Tile(2660, 3569, 0),
  259. new Tile(2659, 3570, 0), new Tile(2659, 3571, 0),
  260. new Tile(2658, 3571, 0), new Tile(2657, 3571, 0),
  261. new Tile(2657, 3572, 0), new Tile(2656, 3573, 0),
  262. new Tile(2655, 3574, 0), new Tile(2654, 3575, 0),
  263. new Tile(2654, 3576, 0), new Tile(2654, 3577, 0),
  264. new Tile(2654, 3578, 0), new Tile(2654, 3579, 0),
  265. new Tile(2654, 3580, 0), new Tile(2654, 3581, 0),
  266. new Tile(2654, 3582, 0), new Tile(2654, 3583, 0),
  267. new Tile(2654, 3584, 0), new Tile(2654, 3585, 0),
  268. new Tile(2654, 3586, 0), new Tile(2654, 3587, 0),
  269. new Tile(2654, 3588, 0), new Tile(2646, 3628, 0),
  270. new Tile(2654, 3590, 0), new Tile(2654, 3591, 0),
  271. new Tile(2654, 3592, 0), new Tile(2654, 3593, 0),
  272. new Tile(2654, 3594, 0), new Tile(2654, 3595, 0),
  273. new Tile(2654, 3596, 0), new Tile(2654, 3597, 0),
  274. new Tile(2654, 3598, 0), new Tile(2654, 3599, 0),
  275. new Tile(2654, 3600, 0), new Tile(2654, 3601, 0),
  276. new Tile(2654, 3602, 0), new Tile(2654, 3603, 0),
  277. new Tile(2655, 3604, 0), new Tile(2657, 3606, 0),
  278. new Tile(2657, 3607, 0), new Tile(2657, 3608, 0),
  279. new Tile(2658, 3608, 0), new Tile(2658, 3609, 0),
  280. new Tile(2658, 3610, 0), new Tile(2658, 3611, 0),
  281. new Tile(2659, 3612, 0), new Tile(2660, 3613, 0),
  282. new Tile(2661, 3614, 0), new Tile(2661, 3615, 0),
  283. new Tile(2661, 3616, 0), new Tile(2661, 3617, 0),
  284. new Tile(2660, 3618, 0), new Tile(2660, 3619, 0),
  285. new Tile(2660, 3620, 0), new Tile(2661, 3621, 0),
  286. new Tile(2662, 3622, 0), new Tile(2663, 3623, 0),
  287. new Tile(2664, 3624, 0), new Tile(2664, 3625, 0),
  288. new Tile(2664, 3626, 0), new Tile(2664, 3627, 0),
  289. new Tile(2664, 3628, 0), new Tile(2665, 3629, 0),
  290. new Tile(2666, 3630, 0), new Tile(2667, 3631, 0),
  291. new Tile(2668, 3631, 0), new Tile(2669, 3631, 0),
  292. new Tile(2670, 3631, 0), new Tile(2671, 3631, 0),
  293. new Tile(2672, 3631, 0), new Tile(2673, 3631, 0),
  294. new Tile(2674, 3631, 0), new Tile(2675, 3631, 0),
  295. new Tile(2676, 3631, 0), new Tile(2677, 3631, 0),
  296. new Tile(2678, 3631, 0), new Tile(2679, 3631, 0),
  297. new Tile(2680, 3631, 0), new Tile(2681, 3631, 0),
  298. new Tile(2682, 3631, 0), new Tile(2683, 3631, 0),
  299. new Tile(2684, 3631, 0), new Tile(2724, 3663, 0),
  300. new Tile(2686, 3631, 0), new Tile(2687, 3631, 0),
  301. new Tile(2688, 3631, 0), new Tile(2689, 3631, 0),
  302. new Tile(2690, 3631, 0), new Tile(2691, 3632, 0),
  303. new Tile(2692, 3633, 0), new Tile(2693, 3634, 0),
  304. new Tile(2694, 3635, 0), new Tile(2695, 3636, 0),
  305. new Tile(2696, 3637, 0), new Tile(2697, 3638, 0),
  306. new Tile(2698, 3639, 0), new Tile(2699, 3640, 0),
  307. new Tile(2699, 3641, 0), new Tile(2699, 3642, 0),
  308. new Tile(2699, 3643, 0), new Tile(2699, 3644, 0),
  309. new Tile(2699, 3645, 0), new Tile(2699, 3646, 0),
  310. new Tile(2699, 3647, 0), new Tile(2699, 3648, 0),
  311. new Tile(2699, 3649, 0), new Tile(2699, 3650, 0),
  312. new Tile(2699, 3651, 0), new Tile(2699, 3652, 0),
  313. new Tile(2699, 3653, 0), new Tile(2699, 3654, 0),
  314. new Tile(2699, 3655, 0), new Tile(2699, 3656, 0),
  315. new Tile(2700, 3657, 0), new Tile(2701, 3658, 0),
  316. new Tile(2701, 3659, 0), new Tile(2701, 3660, 0),
  317. new Tile(2702, 3661, 0), new Tile(2703, 3662, 0),
  318. new Tile(2711, 3702, 0), new Tile(2703, 3663, 0),
  319. new Tile(2703, 3664, 0), new Tile(2703, 3665, 0),
  320. new Tile(2703, 3666, 0), new Tile(2703, 3667, 0),
  321. new Tile(2703, 3668, 0), new Tile(2703, 3669, 0),
  322. new Tile(2703, 3671, 0), new Tile(2703, 3672, 0),
  323. new Tile(2703, 3673, 0), new Tile(2703, 3674, 0),
  324. new Tile(2703, 3675, 0), new Tile(2703, 3676, 0),
  325. new Tile(2703, 3677, 0), new Tile(2703, 3678, 0),
  326. new Tile(2703, 3679, 0), new Tile(2703, 3680, 0),
  327. new Tile(2703, 3681, 0), new Tile(2703, 3682, 0),
  328. new Tile(2703, 3683, 0), new Tile(2703, 3684, 0),
  329. new Tile(2703, 3685, 0), new Tile(2703, 3686, 0),
  330. new Tile(2703, 3687, 0), new Tile(2703, 3688, 0),
  331. new Tile(2703, 3689, 0), new Tile(2703, 3690, 0),
  332. new Tile(2703, 3691, 0), new Tile(2703, 3692, 0),
  333. new Tile(2703, 3693, 0), new Tile(2703, 3694, 0),
  334. new Tile(2703, 3695, 0), new Tile(2703, 3696, 0),
  335. new Tile(2703, 3697, 0), new Tile(2703, 3698, 0),
  336. new Tile(2703, 3699, 0), new Tile(2703, 3700, 0),
  337. new Tile(2703, 3701, 0), new Tile(2703, 3741, 0),
  338. new Tile(2703, 3702, 0), new Tile(2703, 3703, 0),
  339. new Tile(2703, 3704, 0), new Tile(2703, 3705, 0),
  340. new Tile(2703, 3706, 0), new Tile(2702, 3707, 0),
  341. new Tile(2702, 3708, 0), new Tile(2702, 3709, 0),
  342. new Tile(2702, 3710, 0), new Tile(2702, 3711, 0),
  343. new Tile(2702, 3712, 0), new Tile(2702, 3713, 0),
  344. new Tile(2702, 3714, 0), new Tile(2702, 3715, 0),
  345. new Tile(2702, 3716, 0), new Tile(2702, 3717, 0),
  346. new Tile(2702, 3718, 0), new Tile(2702, 3719, 0),
  347. new Tile(2702, 3720, 0), new Tile(2703, 3721, 0),
  348. new Tile(2704, 3722, 0) };
  349.  
  350. @Override
  351. protected void setup() {
  352. log.info("Setting up...");
  353. status = "Setting up...";
  354. setupGUI();
  355. provide(new GUI());
  356. provide(new XPPop());
  357. provide(new Loot());
  358. provide(new DropGift());
  359. provide(new Resting());
  360. provide(new States());
  361. provide(new EatFood());
  362. provide(new SetRun());
  363. provide(new CheckState());
  364. provide(new AntibanTask());
  365. Total_startExp = Skills.getExperience(Skills.ATTACK)
  366. + Skills.getExperience(Skills.CONSTITUTION)
  367. + Skills.getExperience(Skills.STRENGTH)
  368. + Skills.getExperience(Skills.DEFENSE)
  369. + Skills.getExperience(Skills.RANGE)
  370. + Skills.getExperience(Skills.MAGIC);
  371. Const_startExp = Skills.getExperience(Skills.CONSTITUTION);
  372. startTime = System.currentTimeMillis();
  373. }
  374.  
  375. public class XPPop extends Strategy implements Task, Condition {
  376.  
  377. @Override
  378. public void run() {
  379. // TODO Auto-generated method stub
  380. if (Widgets.get(1213).getChild(12).isOnScreen()) {
  381. status = "Toggling XP Pop-up";
  382. Widgets.get(548, 171).interact("Toggle XP Pop-up");
  383. Time.sleep(2000);
  384. }
  385.  
  386. }
  387.  
  388. public boolean validate() {
  389. return true;
  390. }
  391. }
  392.  
  393. public class Loot extends Strategy implements Task, Condition {
  394.  
  395. @Override
  396. public void run() {
  397. GroundItem lootItems = GroundItems.getNearest(loot);
  398. GroundItem charms = GroundItems.getNearest(charmIDS);
  399. while (lootItems != null) {
  400. status = "Looting "
  401. + lootItems.getGroundItem().getDefinition().getName();
  402. if (lootItems.isOnScreen()) {
  403. if (CRAB_AREA_E.contains(lootItems.getLocation())) {
  404. lootItems.interact("Take", lootItems.getGroundItem()
  405. .getDefinition().getName());
  406. Time.sleep(1000);
  407. }
  408. } else {
  409. if (CRAB_AREA_E.contains(lootItems.getLocation())) {
  410. Walking.walk(lootItems.getLocation());
  411. Time.sleep(2000);
  412. }
  413. }
  414. }
  415. if (lootCharm == true) {
  416. while (charms != null) {
  417. status = "Looting "
  418. + charms.getGroundItem().getDefinition().getName();
  419. if (charms.isOnScreen()
  420. && CRAB_AREA_E.contains(charms.getLocation())) {
  421. charms.interact("Take", charms.getGroundItem()
  422. .getDefinition().getName());
  423. Time.sleep(1000);
  424. } else {
  425. if (CRAB_AREA_E.contains(charms.getLocation())) {
  426. Walking.walk(charms.getLocation());
  427. Time.sleep(2000);
  428. }
  429. }
  430. }
  431. }
  432. }
  433.  
  434. public boolean validate() {
  435. return !Inventory.isFull();
  436. }
  437. }
  438.  
  439. public class Resting extends Strategy implements Task {
  440.  
  441. @Override
  442. public void run() {
  443. status = "Resting...";
  444. if (Players.getLocal().getAnimation() == -1) {
  445. if (Widgets.get(750, 2).interact("Rest"))
  446. while (90 > Walking.getEnergy()) {
  447. if (Players.getLocal().getAnimation() == -1)
  448. Widgets.get(750, 2).interact("Rest");
  449. Time.sleep(2000);
  450. }
  451. Time.sleep(2000);
  452. if (!Walking.isRunEnabled()) {
  453. Walking.setRun(true);
  454. }
  455. restTo = Random.nextInt(68, 97);
  456. }
  457. }
  458.  
  459. @Override
  460. public boolean validate() {
  461. return Walking.getEnergy() < 20 && useRest == true
  462. && !Players.getLocal().isInCombat();
  463. }
  464.  
  465. public int restTo = Random.nextInt(68, 97);
  466. }
  467.  
  468. public class CheckState extends Strategy implements Task, Condition {
  469.  
  470. @Override
  471. public void run() {
  472. // if (CRAB_AREA_E.contains(SceneEntities.getNearest(cannonID))) {
  473. // STATE = "WORLDJUMP";
  474. // }
  475. if (Players.getLocal().getLocation()
  476. .equals(new Tile(2689, 3482, 0))
  477. || BANK_AREA.contains(Players.getLocal().getLocation())) {
  478. if (Inventory.getItem(foodID) != null) {
  479. STATE = "TOCRAB";
  480. } else {
  481. STATE = "BANKING";
  482. }
  483. }
  484. if (crabReset == true) {
  485. if (CRAB_AREA_E.contains(Players.getLocal().getLocation())) {
  486. if (STATE != "TELEPORT" && STATE != "WORLDJUMP") {
  487. STATE = "ATTACK";
  488. }
  489. if (NPCs.getNearest(crabID).getLocation()
  490. .equals(Players.getLocal().getLocation())) {
  491. crabReset = false;
  492. }
  493. }
  494. } else {
  495. if (CRAB_AREA_E.contains(Players.getLocal().getLocation())) {
  496. Time.sleep(350);
  497. if (CRAB_AREA_E.contains(Players.getLocal().getLocation())) {
  498. STATE = "RESET_CRABS";
  499. }
  500. }
  501. }
  502. }
  503.  
  504. public boolean validate() {
  505. return true;
  506. }
  507. }
  508.  
  509. public class DropGift extends Strategy implements Task, Condition {
  510.  
  511. @Override
  512. public void run() {
  513. if (Inventory.getItem(giftID) != null) {
  514. status = "Dropping event gift...";
  515. Inventory.getItem(giftID).getWidgetChild().interact("Drop");
  516. }
  517. }
  518.  
  519. public boolean validate() {
  520. if (dropGifts == true) {
  521. return true;
  522. } else {
  523. return false;
  524. }
  525. }
  526. }
  527.  
  528. public class SetRun extends Strategy implements Task, Condition {
  529.  
  530. @Override
  531. public void run() {
  532. if (!Walking.isRunEnabled()) {
  533. status = "Enabling run...";
  534. Walking.setRun(true);
  535. }
  536. }
  537.  
  538. public boolean validate() {
  539. if (Walking.getEnergy() > 60) {
  540. return true;
  541. } else {
  542. return false;
  543. }
  544. }
  545. }
  546.  
  547. public class EatFood extends Strategy implements Task, Condition {
  548.  
  549. @Override
  550. public void run() {
  551. if (Inventory.getItem(foodID) != null && !Bank.isOpen()) {
  552. status = "Eating food...";
  553. Inventory.getItem(foodID).getWidgetChild().click(true);
  554. Time.sleep(2000);
  555. } else {
  556. if (STATE != "BANKING") {
  557. STATE = "TELEPORT";
  558. }
  559. }
  560. }
  561.  
  562. public boolean validate() {
  563. if (Players.getLocal().getHpPercent() < whenToEat) {
  564. return true;
  565. } else {
  566. return false;
  567. }
  568. }
  569. }
  570.  
  571. public class States extends Strategy implements Task, Condition {
  572.  
  573. @Override
  574. public void run() {
  575. switch (STATE) {
  576. case "ATTACK":
  577. status = "Attacking...";
  578. if (CRAB_AREA_E.getNearest(NPCs.getNearest(crabID)) != null) {
  579. if (CRAB_AREA_E.contains(NPCs.getNearest(crabID)
  580. .getLocation())) {
  581. if (!Players.getLocal().isMoving()) {
  582. if (!Players.getLocal().isInCombat()) {
  583. if (CRAB_AREA_E.getNearest(
  584. NPCs.getNearest(crabID)).isOnScreen()) {
  585. Mouse.click(
  586. CRAB_AREA_E
  587. .getNearest(
  588. NPCs.getNearest(crabID))
  589. .getLocation()
  590. .getCentralPoint(), true);
  591. Time.sleep(4000);
  592. } else {
  593. Walking.walk(CRAB_AREA_E.getNearest(
  594. NPCs.getNearest(crabID))
  595. .getLocation());
  596. Time.sleep(4000);
  597. }
  598. } else {
  599. if (Calculations.distance(Players.getLocal()
  600. .getLocation(),
  601. NPCs.getNearest(liveCrabID)
  602. .getLocation()) > 1) {
  603. if (CRAB_AREA_E.getNearest(
  604. NPCs.getNearest(crabID))
  605. .isOnScreen()) {
  606. Mouse.click(
  607. CRAB_AREA_E
  608. .getNearest(
  609. NPCs.getNearest(crabID))
  610. .getLocation()
  611. .getCentralPoint(),
  612. true);
  613. Time.sleep(4000);
  614. } else {
  615. Walking.walk(CRAB_AREA_E.getNearest(
  616. NPCs.getNearest(crabID))
  617. .getLocation());
  618. Time.sleep(4000);
  619. }
  620. } else {
  621. if (!NPCs.getNearest(liveCrabID)
  622. .isInCombat()) {
  623. if (Players.getLocal().isInCombat()) {
  624. Time.sleep(200);
  625. } else {
  626. NPCs.getNearest(liveCrabID)
  627. .interact("Attack");
  628. Time.sleep(2000);
  629. }
  630. }
  631. }
  632. }
  633. }
  634. } else {
  635. if (!Players.getLocal().isInCombat()) {
  636. Walking.walk(new Tile(2706, 3720, 0));
  637. Time.sleep(4000);
  638. }
  639. }
  640. }
  641. break;
  642. case "RESET_CRABS":
  643. status = "Resetting the crabs...";
  644. if (crabReset == false) {
  645. if (RESET_AREA_E.contains(Players.getLocal().getLocation())) {
  646. crabReset = true;
  647. } else {
  648. Walking.newTilePath(RESET_PATH1).traverse();
  649. }
  650. } else {
  651. if (CRAB_AREA_E.contains(Players.getLocal().getLocation())) {
  652. STATE = "ATTACK";
  653. } else {
  654. Walking.newTilePath(RESET_PATH2).traverse();
  655. }
  656. }
  657. break;
  658. case "TELEPORT":
  659. status = "Teleporting to bank...";
  660. if (TP_AREA.contains(Players.getLocal().getLocation())) {
  661. if (Players.getLocal().getAnimation() == -1
  662. && !Players.getLocal().isInCombat()) {
  663. if (!Tabs.MAGIC.isOpen()) {
  664. Tabs.MAGIC.open();
  665. }
  666. WidgetChild WidgetToClick = Widgets.get(192, 24);
  667. WidgetToClick.click(true);
  668. Time.sleep(2000);
  669. if (Widgets.get(1092, 49).isOnScreen()) {
  670. Widgets.get(1092, 49).click(true);
  671. Time.sleep(2000);
  672. }
  673. Tabs.INVENTORY.open();
  674. } else {
  675. Time.sleep(200);
  676. }
  677. } else {
  678. Walking.newTilePath(TP_PATH).traverse();
  679. }
  680. break;
  681. case "BANKING":
  682. if (Bank.isOpen()) {
  683. status = "Depositing inventory...";
  684. Bank.depositInventory();
  685. Time.sleep(2000);
  686. if (Inventory.getItem(foodID) != null) {
  687. STATE = "TOCRAB";
  688. } else {
  689. if (Bank.getItem(foodID) != null) {
  690. status = "Withdrawing food...";
  691. Bank.withdraw(foodID, foodAmount);
  692. Time.sleep(4000);
  693. Bank.close();
  694. Time.sleep(2000);
  695. } else {
  696. log.info("No food available in bank!");
  697. stop();
  698. }
  699. }
  700. } else {
  701. if (BANK_AREA.contains(Players.getLocal().getLocation())) {
  702. status = "Opening bank...";
  703. if (SceneEntities.getNearest(25808) != null) {
  704. if (SceneEntities.getNearest(25808).isOnScreen()) {
  705. SceneEntities.getNearest(25808)
  706. .interact("Bank");
  707. Time.sleep(3500);
  708. } else {
  709. Camera.turnTo(SceneEntities.getNearest(25808)
  710. .getLocation());
  711. }
  712. }
  713. } else {
  714. status = "Walking to bank...";
  715. Walking.newTilePath(BANK_PATH).traverse();
  716. }
  717. }
  718. break;
  719. case "TOCRAB":
  720. Walking.newTilePath(TO_CRAB_PATH).traverse();
  721. status = "Walking to crabs...";
  722. break;
  723. case "WORLDJUMP":
  724. status = "Worldjumping...";
  725. break;
  726. default:
  727. break;
  728. }
  729. }
  730.  
  731. public boolean validate() {
  732. return true;
  733. }
  734. }
  735.  
  736. public class AntibanTask extends Strategy implements Task {
  737.  
  738. /** Our timer */
  739. private Timer antiBanTimer;
  740.  
  741. /** Our min and max times */
  742. private int minTime = (10 * 1000); // 10 seconds
  743. private int maxTime = (90 * 1000); // 1.30 minutes, or 90 seconds
  744.  
  745. /**
  746. * Constructor. Initializes timer.
  747. */
  748. public AntibanTask() {
  749. antiBanTimer = new Timer(Random.nextInt(minTime, maxTime));
  750. }
  751.  
  752. @Override
  753. public void run() {
  754. int whatdo = Random.nextInt(0, 10);
  755. switch (whatdo) {
  756.  
  757. case 0:
  758. status = "Antiban...";
  759. // Open the skills tab and check a random skill
  760. int randomSkill = Random.nextInt(0, 24);
  761. Tabs.STATS.open();
  762. WidgetChild randStat = Skills.getWidgetChild(randomSkill);
  763. Point randStatPoint = randStat.getAbsoluteLocation();
  764. randStatPoint.x += Random.nextInt(-10, 10); // Don't have
  765. // the
  766. // mouse go to the
  767. // EXACT same spot
  768. // every time! :)
  769. randStatPoint.y += Random.nextInt(-10, 1); // Also, you can
  770. // change all of
  771. // these values. >_>
  772. Mouse.move(randStatPoint);
  773. Time.sleep(2000);
  774. Tabs.INVENTORY.open();
  775. break;
  776. case 1:
  777. if (NPCs.getNearest(crabID) != null) {
  778. Camera.turnTo(NPCs.getNearest(crabID).getLocation());
  779. }
  780. break;
  781. case 2:
  782. status = "Antiban...";
  783. if (Players.getLocal().getInteracting() != null) {
  784. // Turn to the object we are interacting with, then move it
  785. // around a bit
  786. Camera.turnTo(Players.getLocal().getInteracting());
  787. int currentPitch = Camera.getPitch();
  788. int currentYaw = Camera.getYaw();
  789. Camera.setPitch(currentPitch + Random.nextInt(-13, 13));
  790. Camera.setAngle(currentYaw + Random.nextInt(-40, 40));
  791. } else {
  792. // Move the camera a bit
  793. int currentPitch = Camera.getPitch();
  794. int currentYaw = Camera.getYaw();
  795. Camera.setPitch(currentPitch + Random.nextInt(-50, 50));
  796. Camera.setAngle(currentYaw + Random.nextInt(-70, 70));
  797. }
  798. break;
  799. case 3:
  800. Camera.setPitch(86);
  801. break;
  802. case 4:
  803. status = "Antiban...";
  804. Tabs.ATTACK.open();
  805. Time.sleep(20);
  806. Tabs.TASK_LIST.open();
  807. Time.sleep(20);
  808. Tabs.STATS.open();
  809. Time.sleep(20);
  810. Tabs.QUESTS.open();
  811. Time.sleep(20);
  812. Tabs.INVENTORY.open();
  813. Time.sleep(20);
  814. Tabs.EQUIPMENT.open();
  815. Time.sleep(20);
  816. Tabs.PRAYER.open();
  817. Time.sleep(20);
  818. Tabs.MAGIC.open();
  819. Time.sleep(20);
  820. Tabs.INVENTORY.open();
  821. break;
  822. case 5:
  823. if (NPCs.getNearest(crabID) != null) {
  824. if (NPCs.getNearest(crabID).isOnScreen()) {
  825. Mouse.move(NPCs.getNearest(crabID).getLocation()
  826. .getCentralPoint());
  827. }
  828. Camera.turnTo(NPCs.getNearest(crabID));
  829. }
  830. break;
  831. default:
  832. status = "Antiban...";
  833. int mouseY = Mouse.getY();
  834. int mouseX = Mouse.getX();
  835.  
  836. Mouse.move(Random.nextInt(mouseX - 250, mouseX + 250),
  837. Random.nextInt(mouseY - 250, mouseY + 250));
  838. break;
  839. }
  840.  
  841. resetAntiBanTime();
  842. }
  843.  
  844. /**
  845. * Returns true if the timer has ended
  846. */
  847. @Override
  848. public boolean validate() {
  849. return !antiBanTimer.isRunning();
  850. }
  851.  
  852. /**
  853. * Resets the timer to a new random time between our min and max values
  854. */
  855. private void resetAntiBanTime() {
  856. antiBanTimer.setEndIn(Random.nextInt(minTime, maxTime));
  857. }
  858.  
  859. }
  860.  
  861. public void drawMouse(Graphics g) {
  862. int MouseX = Mouse.getLocation().x, MouseY = Mouse.getLocation().y;
  863. Graphics2D gMouse = (Graphics2D) g.create();
  864. gMouse.setRenderingHints(new RenderingHints(
  865. RenderingHints.KEY_ANTIALIASING,
  866. RenderingHints.VALUE_ANTIALIAS_ON));
  867. gMouse.setColor(Color.WHITE);
  868. gMouse.rotate(System.currentTimeMillis() % 2000d / 2000d * 360d
  869. * Math.PI / 180d, MouseX, MouseY);
  870. gMouse.drawArc(MouseX, MouseY - 1, 1, 1, 0, 90);
  871. gMouse.drawArc(MouseX - 1, MouseY - 1, 1, 1, 90, 90);
  872. gMouse.drawArc(MouseX - 1, MouseY, 1, 1, 180, 90);
  873. gMouse.drawArc(MouseX, MouseY, 1, 1, 270, 90);
  874. gMouse.drawArc(MouseX, MouseY - 6, 6, 6, 0, 90);
  875. gMouse.drawArc(MouseX - 6, MouseY - 6, 6, 6, 90, 90);
  876. gMouse.drawArc(MouseX - 6, MouseY, 6, 6, 180, 90);
  877. gMouse.drawArc(MouseX, MouseY, 6, 6, 270, 90);
  878. if (MouseCoords.size() >= 7) {
  879. MouseCoords.remove(0);
  880. }
  881. MouseCoords.add(Mouse.getLocation());
  882. Set<Point> MouseCoordsSet = new LinkedHashSet<Point>(MouseCoords);
  883. Point[] p = MouseCoordsSet.toArray(new Point[MouseCoordsSet.size()]);
  884. if (p.length >= 2) {
  885. Graphics2D gMouseTrail = (Graphics2D) g.create();
  886. gMouseTrail.setRenderingHints(new RenderingHints(
  887. RenderingHints.KEY_ANTIALIASING,
  888. RenderingHints.VALUE_ANTIALIAS_ON));
  889. gMouseTrail.setComposite(AlphaComposite.getInstance(
  890. AlphaComposite.SRC_OVER, 0.5f));
  891. gMouseTrail.setStroke(new BasicStroke(2F));
  892. if (Mouse.isPressed()) {
  893. gMouseTrail.setColor(Color.WHITE);
  894. } else {
  895. gMouseTrail.setColor(Color.RED);
  896. }
  897. for (int x = 0; x < p.length; x++) {
  898. gMouseTrail.drawLine(p[x].x, p[x].y, p[x + 1].x, p[x + 1].y);
  899. if (x == (p.length - 2)) {
  900. break;
  901. }
  902. }
  903. }
  904. if (Mouse.isPressed()) {
  905. MouseTimer = new Timer(1000);
  906. MouseClickedX = MouseX;
  907. MouseClickedY = MouseY;
  908. }
  909. if (MouseTimer.isRunning()) {
  910. Graphics2D gMouseClicked = (Graphics2D) g.create();
  911. gMouseClicked.setRenderingHints(new RenderingHints(
  912. RenderingHints.KEY_ANTIALIASING,
  913. RenderingHints.VALUE_ANTIALIAS_ON));
  914. gMouseClicked.setColor(Color.RED);
  915. gMouseClicked.rotate(System.currentTimeMillis() % 2000d / 2000d
  916. * -360d * Math.PI / 180d, MouseClickedX, MouseClickedY);
  917. gMouseClicked
  918. .drawArc(MouseClickedX, MouseClickedY - 1, 1, 1, 0, 90);
  919. gMouseClicked.drawArc(MouseClickedX - 1, MouseClickedY - 1, 1, 1,
  920. 90, 90);
  921. gMouseClicked.drawArc(MouseClickedX - 1, MouseClickedY, 1, 1, 180,
  922. 90);
  923. gMouseClicked.drawArc(MouseClickedX, MouseClickedY, 1, 1, 270, 90);
  924. gMouseClicked
  925. .drawArc(MouseClickedX, MouseClickedY - 6, 6, 6, 0, 90);
  926. gMouseClicked.drawArc(MouseClickedX - 6, MouseClickedY - 6, 6, 6,
  927. 90, 90);
  928. gMouseClicked.drawArc(MouseClickedX - 6, MouseClickedY, 6, 6, 180,
  929. 90);
  930. gMouseClicked.drawArc(MouseClickedX, MouseClickedY, 6, 6, 270, 90);
  931. }
  932. }
  933.  
  934. private int getPerHour(final int value) {
  935. return (int) (value * 3600000D / (System.currentTimeMillis() - startTime));
  936. }
  937.  
  938. private final RenderingHints antialiasing = new RenderingHints(
  939. RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  940.  
  941. private Image getImage(String url) {
  942. try {
  943. return ImageIO.read(new URL(url));
  944. } catch (IOException e) {
  945. return null;
  946. }
  947. }
  948.  
  949. public String runTime(long i) {
  950. long millis = System.currentTimeMillis() - i;
  951. long hours = millis / (1000 * 60 * 60);
  952. millis -= hours * (1000 * 60 * 60);
  953. long minutes = millis / (1000 * 60);
  954. millis -= minutes * (1000 * 60);
  955. long seconds = millis / 1000;
  956. return hours + ":" + minutes + ":" + seconds;
  957. }
  958.  
  959. private final Color color1 = new Color(0, 0, 0);
  960. private final Color color2 = new Color(153, 153, 153);
  961.  
  962. private final BasicStroke stroke1 = new BasicStroke(1);
  963.  
  964. private final Font font1 = new Font("Eras Medium ITC", 1, 17);
  965.  
  966. private final Image img1 = getImage("http://img210.imageshack.us/img210/7318/rrockcrabs.jpg");
  967.  
  968. @Override
  969. public void onRepaint(Graphics g1) {
  970. Graphics2D g = (Graphics2D) g1;
  971.  
  972. final int Total_currentExp = Skills.getExperience(Skills.ATTACK)
  973. + Skills.getExperience(Skills.CONSTITUTION)
  974. + Skills.getExperience(Skills.STRENGTH)
  975. + Skills.getExperience(Skills.DEFENSE)
  976. + Skills.getExperience(Skills.RANGE)
  977. + Skills.getExperience(Skills.MAGIC) - Total_startExp;
  978. final int Const_currentExp = Skills.getExperience(Skills.CONSTITUTION)
  979. - Const_startExp;
  980. final int Comba_currentExp = Total_currentExp - Const_currentExp;
  981.  
  982. g.drawImage(img1, 0, 388, null);
  983. g.setStroke(stroke1);
  984. g.setFont(font1);
  985. g.setColor(color2);
  986. g.drawString("" + Total_currentExp + "(" + getPerHour(Total_currentExp)
  987. + " pr/hr)", 129, 413);
  988. g.drawString("" + Comba_currentExp + "(" + getPerHour(Comba_currentExp)
  989. + " pr/hr)", 129, 438);
  990. g.drawString("" + Const_currentExp + "(" + getPerHour(Const_currentExp)
  991. + " pr/hr)", 162, 463);
  992. g.drawString(status, 75, 487);
  993. g.drawString("" + runTime(startTime), 83, 509);
  994. g.drawString(VERSION, 321, 550);
  995.  
  996. g.setRenderingHints(antialiasing);
  997. drawMouse(g);
  998.  
  999. }
  1000.  
  1001. public class GUI extends Strategy implements Task {
  1002. @Override
  1003. public boolean validate() {
  1004. return GUI;
  1005. }
  1006.  
  1007. @Override
  1008. public void run() {
  1009. while (GUI) {
  1010. Time.sleep(10);
  1011. }
  1012. }
  1013. }
  1014.  
  1015. public void setupGUI() {
  1016. try {
  1017. SwingUtilities.invokeLater(new Runnable() {
  1018. public void run() {
  1019. Rockcrabs gui = new Rockcrabs();
  1020. gui.setVisible(true);
  1021. }
  1022. });
  1023. } catch (Throwable ignore) {
  1024. log.info("Failed to load GUI.");
  1025. }
  1026. }
  1027.  
  1028. @SuppressWarnings("serial")
  1029. public class Rockcrabs extends javax.swing.JFrame {
  1030.  
  1031. /**
  1032. * Creates new form for the script rRockCrabs
  1033. */
  1034. public Rockcrabs() {
  1035. initComponents();
  1036. }
  1037.  
  1038. /**
  1039. * This method is called from within the constructor to initialize the
  1040. * form. WARNING: Do NOT modify this code. The content of this method is
  1041. * always regenerated by the Form Editor.
  1042. */
  1043.  
  1044. // <editor-fold defaultstate="collapsed" desc="Generated Code">
  1045. private void initComponents() {
  1046.  
  1047. jLabel1 = new javax.swing.JLabel();
  1048. jLabel2 = new javax.swing.JLabel();
  1049. jTextField1 = new javax.swing.JTextField();
  1050. jLabel3 = new javax.swing.JLabel();
  1051. jTextField2 = new javax.swing.JTextField();
  1052. jSlider1 = new javax.swing.JSlider();
  1053. jLabel4 = new javax.swing.JLabel();
  1054. jLabel5 = new javax.swing.JLabel();
  1055. jLabel6 = new javax.swing.JLabel();
  1056. jLabel7 = new javax.swing.JLabel();
  1057. jTextField3 = new javax.swing.JTextField();
  1058. jCheckBox1 = new javax.swing.JCheckBox();
  1059. jCheckBox2 = new javax.swing.JCheckBox();
  1060. jCheckBox3 = new javax.swing.JCheckBox();
  1061. jCheckBox4 = new javax.swing.JCheckBox();
  1062. jCheckBox5 = new javax.swing.JCheckBox();
  1063. jCheckBox6 = new javax.swing.JCheckBox();
  1064. jButton1 = new javax.swing.JButton();
  1065.  
  1066. setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
  1067.  
  1068. jLabel1.setText("Food ID");
  1069.  
  1070. jLabel2.setFont(new java.awt.Font("Trajan Pro", 1, 14)); // NOI18N
  1071. jLabel2.setText("rRockCrabs");
  1072.  
  1073. jTextField1.setText("379");
  1074.  
  1075. jLabel3.setText("Food Amount");
  1076. jLabel3.setToolTipText("Amount of food withdrawed from bank");
  1077.  
  1078. jTextField2.setText("24");
  1079. jTextField2.addActionListener(new java.awt.event.ActionListener() {
  1080. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1081. jTextField2ActionPerformed(evt);
  1082. }
  1083. });
  1084.  
  1085. jLabel4.setText("When to eat");
  1086.  
  1087. jLabel5.setText("100% HP");
  1088.  
  1089. jLabel6.setText("0% HP");
  1090.  
  1091. jLabel7.setText("Loot");
  1092.  
  1093. jTextField3.setToolTipText("Separate the ID's with comma ( , )");
  1094.  
  1095. jCheckBox1.setSelected(true);
  1096. jCheckBox1.setText("Loot charms");
  1097.  
  1098. jCheckBox2.setText("Drop event gifts");
  1099.  
  1100. jCheckBox3.setSelected(true);
  1101. jCheckBox3.setText("Resting");
  1102.  
  1103. jCheckBox4.setText("Worldhop (Cannon)");
  1104.  
  1105. jCheckBox5.setText("WorldHop (Too many players)");
  1106. jCheckBox5.setEnabled(false);
  1107.  
  1108. jCheckBox6.setText("Using cannon");
  1109. jCheckBox6.setToolTipText("I hate cannons :(");
  1110. jCheckBox6.setEnabled(false);
  1111.  
  1112. jButton1.addActionListener(new java.awt.event.ActionListener() {
  1113. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1114. jButton1ActionPerformed(evt);
  1115. }
  1116. });
  1117.  
  1118. jButton1.setText("Start script!");
  1119.  
  1120. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
  1121. getContentPane());
  1122. getContentPane().setLayout(layout);
  1123. layout.setHorizontalGroup(layout
  1124. .createParallelGroup(
  1125. javax.swing.GroupLayout.Alignment.LEADING)
  1126. .addGroup(
  1127. layout.createSequentialGroup()
  1128. .addContainerGap()
  1129. .addGroup(
  1130. layout.createParallelGroup(
  1131. javax.swing.GroupLayout.Alignment.LEADING)
  1132. .addGroup(
  1133. layout.createSequentialGroup()
  1134. .addComponent(
  1135. jButton1,
  1136. javax.swing.GroupLayout.DEFAULT_SIZE,
  1137. javax.swing.GroupLayout.DEFAULT_SIZE,
  1138. Short.MAX_VALUE)
  1139. .addContainerGap())
  1140. .addGroup(
  1141. layout.createSequentialGroup()
  1142. .addGroup(
  1143. layout.createParallelGroup(
  1144. javax.swing.GroupLayout.Alignment.LEADING)
  1145. .addGroup(
  1146. layout.createSequentialGroup()
  1147. .addComponent(
  1148. jLabel1)
  1149. .addGap(18,
  1150. 18,
  1151. 18)
  1152. .addComponent(
  1153. jTextField1,
  1154. javax.swing.GroupLayout.PREFERRED_SIZE,
  1155. 99,
  1156. javax.swing.GroupLayout.PREFERRED_SIZE)
  1157. .addGap(18,
  1158. 18,
  1159. 18)
  1160. .addComponent(
  1161. jLabel3)
  1162. .addGap(18,
  1163. 18,
  1164. 18)
  1165. .addComponent(
  1166. jTextField2))
  1167. .addComponent(
  1168. jSlider1,
  1169. javax.swing.GroupLayout.Alignment.TRAILING,
  1170. javax.swing.GroupLayout.DEFAULT_SIZE,
  1171. javax.swing.GroupLayout.DEFAULT_SIZE,
  1172. Short.MAX_VALUE)
  1173. .addGroup(
  1174. javax.swing.GroupLayout.Alignment.TRAILING,
  1175. layout.createSequentialGroup()
  1176. .addComponent(
  1177. jLabel6)
  1178. .addPreferredGap(
  1179. javax.swing.LayoutStyle.ComponentPlacement.RELATED,
  1180. javax.swing.GroupLayout.DEFAULT_SIZE,
  1181. Short.MAX_VALUE)
  1182. .addComponent(
  1183. jLabel4)
  1184. .addGap(94,
  1185. 94,
  1186. 94)
  1187. .addComponent(
  1188. jLabel5))
  1189. .addGroup(
  1190. layout.createSequentialGroup()
  1191. .addComponent(
  1192. jLabel7)
  1193. .addGap(18,
  1194. 18,
  1195. 18)
  1196. .addComponent(
  1197. jTextField3)))
  1198. .addContainerGap())
  1199. .addGroup(
  1200. javax.swing.GroupLayout.Alignment.TRAILING,
  1201. layout.createSequentialGroup()
  1202. .addGap(0,
  1203. 0,
  1204. Short.MAX_VALUE)
  1205. .addComponent(
  1206. jLabel2)
  1207. .addGap(106,
  1208. 106,
  1209. 106))
  1210. .addGroup(
  1211. layout.createSequentialGroup()
  1212. .addGroup(
  1213. layout.createParallelGroup(
  1214. javax.swing.GroupLayout.Alignment.LEADING)
  1215. .addComponent(
  1216. jCheckBox6)
  1217. .addGroup(
  1218. layout.createSequentialGroup()
  1219. .addComponent(
  1220. jCheckBox4)
  1221. .addGap(18,
  1222. 18,
  1223. 18)
  1224. .addComponent(
  1225. jCheckBox5))
  1226. .addGroup(
  1227. layout.createSequentialGroup()
  1228. .addComponent(
  1229. jCheckBox1)
  1230. .addGap(18,
  1231. 18,
  1232. 18)
  1233. .addComponent(
  1234. jCheckBox2)
  1235. .addGap(18,
  1236. 18,
  1237. 18)
  1238. .addComponent(
  1239. jCheckBox3)))
  1240. .addGap(0,
  1241. 0,
  1242. Short.MAX_VALUE)))));
  1243. layout.setVerticalGroup(layout
  1244. .createParallelGroup(
  1245. javax.swing.GroupLayout.Alignment.LEADING)
  1246. .addGroup(
  1247. layout.createSequentialGroup()
  1248. .addContainerGap()
  1249. .addComponent(jLabel2)
  1250. .addPreferredGap(
  1251. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1252. .addGroup(
  1253. layout.createParallelGroup(
  1254. javax.swing.GroupLayout.Alignment.BASELINE)
  1255. .addComponent(jLabel1)
  1256. .addComponent(
  1257. jTextField1,
  1258. javax.swing.GroupLayout.PREFERRED_SIZE,
  1259. javax.swing.GroupLayout.DEFAULT_SIZE,
  1260. javax.swing.GroupLayout.PREFERRED_SIZE)
  1261. .addComponent(jLabel3)
  1262. .addComponent(
  1263. jTextField2,
  1264. javax.swing.GroupLayout.PREFERRED_SIZE,
  1265. javax.swing.GroupLayout.DEFAULT_SIZE,
  1266. javax.swing.GroupLayout.PREFERRED_SIZE))
  1267. .addGap(18, 18, 18)
  1268. .addComponent(
  1269. jSlider1,
  1270. javax.swing.GroupLayout.PREFERRED_SIZE,
  1271. javax.swing.GroupLayout.DEFAULT_SIZE,
  1272. javax.swing.GroupLayout.PREFERRED_SIZE)
  1273. .addPreferredGap(
  1274. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1275. .addGroup(
  1276. layout.createParallelGroup(
  1277. javax.swing.GroupLayout.Alignment.BASELINE)
  1278. .addComponent(
  1279. jLabel4,
  1280. javax.swing.GroupLayout.PREFERRED_SIZE,
  1281. 14,
  1282. javax.swing.GroupLayout.PREFERRED_SIZE)
  1283. .addComponent(jLabel5)
  1284. .addComponent(jLabel6))
  1285. .addGap(18, 18, 18)
  1286. .addGroup(
  1287. layout.createParallelGroup(
  1288. javax.swing.GroupLayout.Alignment.BASELINE)
  1289. .addComponent(jLabel7)
  1290. .addComponent(
  1291. jTextField3,
  1292. javax.swing.GroupLayout.PREFERRED_SIZE,
  1293. javax.swing.GroupLayout.DEFAULT_SIZE,
  1294. javax.swing.GroupLayout.PREFERRED_SIZE))
  1295. .addGap(18, 18, 18)
  1296. .addGroup(
  1297. layout.createParallelGroup(
  1298. javax.swing.GroupLayout.Alignment.BASELINE)
  1299. .addComponent(jCheckBox1)
  1300. .addComponent(jCheckBox2)
  1301. .addComponent(jCheckBox3))
  1302. .addPreferredGap(
  1303. javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  1304. .addGroup(
  1305. layout.createParallelGroup(
  1306. javax.swing.GroupLayout.Alignment.BASELINE)
  1307. .addComponent(jCheckBox4)
  1308. .addComponent(jCheckBox5))
  1309. .addPreferredGap(
  1310. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1311. .addComponent(jCheckBox6)
  1312. .addPreferredGap(
  1313. javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  1314. .addComponent(jButton1)
  1315. .addContainerGap(
  1316. javax.swing.GroupLayout.DEFAULT_SIZE,
  1317. Short.MAX_VALUE)));
  1318.  
  1319. pack();
  1320. }// </editor-fold>
  1321.  
  1322. protected void jButton1ActionPerformed(ActionEvent evt) {
  1323. log.info("[SETTINGS]");
  1324. if (jCheckBox1.isSelected()) {
  1325. lootCharm = true;
  1326. log.info("-Looting charms: TRUE");
  1327. } else {
  1328. lootCharm = false;
  1329. log.info("-Looting charms: FALSE");
  1330. }
  1331. if (jCheckBox2.isSelected()) {
  1332. dropGifts = true;
  1333. log.info("-Drop event gifts: TRUE");
  1334. } else {
  1335. dropGifts = false;
  1336. log.info("-Drop event gifts: FALSE");
  1337. }
  1338. if (jCheckBox3.isSelected()) {
  1339. useRest = true;
  1340. log.info("-Use rest: TRUE");
  1341. } else {
  1342. useRest = false;
  1343. log.info("-Use rest: FALSE");
  1344. }
  1345. if (jCheckBox4.isSelected()) {
  1346. cannonJump = true;
  1347. log.info("-WorldJumps on Cannon: TRUE");
  1348. } else {
  1349. cannonJump = false;
  1350. log.info("-WorldJumps on Cannon: FALSE");
  1351. }
  1352. foodID = Integer.parseInt(jTextField1.getText().toString());
  1353. log.info("-Food ID: " + foodID);
  1354. whenToEat = jSlider1.getValue();
  1355. log.info("-Eats at: " + whenToEat + "% health");
  1356. foodAmount = Integer.parseInt(jTextField2.getText().toString());
  1357. log.info("-Withdraws: " + foodAmount + " pieces of food");
  1358. log.info("Enjoy! And thanks for using rRockCrabs.");
  1359. GUI = false;
  1360. dispose();
  1361. }
  1362.  
  1363. private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {
  1364. // TODO add your handling code here:
  1365. }
  1366.  
  1367. /**
  1368. * @param args
  1369. * the command line arguments
  1370. */
  1371. // Variables declaration - do not modify
  1372. // Variables declaration - do not modify
  1373. private javax.swing.JButton jButton1;
  1374. private javax.swing.JCheckBox jCheckBox1;
  1375. private javax.swing.JCheckBox jCheckBox2;
  1376. private javax.swing.JCheckBox jCheckBox3;
  1377. private javax.swing.JCheckBox jCheckBox4;
  1378. private javax.swing.JCheckBox jCheckBox5;
  1379. private javax.swing.JCheckBox jCheckBox6;
  1380. private javax.swing.JLabel jLabel1;
  1381. private javax.swing.JLabel jLabel2;
  1382. private javax.swing.JLabel jLabel3;
  1383. private javax.swing.JLabel jLabel4;
  1384. private javax.swing.JLabel jLabel5;
  1385. private javax.swing.JLabel jLabel6;
  1386. private javax.swing.JLabel jLabel7;
  1387. private javax.swing.JSlider jSlider1;
  1388. private javax.swing.JTextField jTextField1;
  1389. private javax.swing.JTextField jTextField2;
  1390. private javax.swing.JTextField jTextField3;
  1391. // End of variables declaration
  1392. }
  1393. }
Advertisement
Add Comment
Please, Sign In to add comment