Advertisement
Guest User

Untitled

a guest
Aug 27th, 2014
460
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.94 KB | None | 0 0
  1. import java.awt.Color;
  2. import java.awt.Graphics;
  3. import java.awt.Graphics2D;
  4. import java.awt.Point;
  5. import java.awt.Toolkit;
  6. import java.lang.reflect.Field;
  7. import java.text.DecimalFormat;
  8. import java.util.ArrayList;
  9. import java.util.HashMap;
  10. import java.util.Random;
  11.  
  12. import org.parabot.core.Context;
  13. import org.parabot.core.asm.wrappers.Interface;
  14. import org.parabot.environment.api.interfaces.Paintable;
  15. import org.parabot.environment.api.utils.Time;
  16. import org.parabot.environment.input.Keyboard;
  17. import org.parabot.environment.input.Mouse;
  18. import org.parabot.environment.scripts.Script;
  19. import org.parabot.environment.scripts.ScriptManifest;
  20. import org.parabot.environment.scripts.framework.LoopTask;
  21. import org.parabot.environment.scripts.framework.Strategy;
  22. import org.parabot.environment.scripts.Category;
  23. import org.rev317.min.Loader;
  24. import org.rev317.min.accessors.Client;
  25.  
  26. import org.rev317.min.api.methods.Game;
  27. import org.rev317.min.api.methods.Inventory;
  28. import org.rev317.min.api.methods.Menu;
  29. import org.rev317.min.api.methods.Npcs;
  30. import org.rev317.min.api.methods.Players;
  31. import org.rev317.min.api.methods.SceneObjects;
  32. import org.rev317.min.api.methods.Skill;
  33. import org.rev317.min.api.wrappers.Item;
  34. import org.rev317.min.api.wrappers.Npc;
  35. import org.rev317.min.api.wrappers.Player;
  36. import org.rev317.min.api.wrappers.SceneObject;
  37. import org.rev317.min.api.wrappers.Tile;
  38.  
  39. @ScriptManifest(author = ", ", category = Category.UTILITY, description = "", name = "Cannonball Maker", servers = { "" }, version = 2.0)
  40. public class CannonballMaker extends Script implements Paintable, LoopTask {
  41.  
  42. enum State {
  43. IDLE, mine, smelt, makeBalls
  44. }
  45.  
  46. State state = State.IDLE;
  47. public int iron = 441;
  48. public int coal = 454;
  49. public int bar = 2354;
  50. public int ballsMade = 0;
  51. long rTimer = 0;
  52.  
  53. public void getState() {
  54.  
  55. try {
  56.  
  57. if (Inventory.getCount(coal) < 10 || Inventory.getCount(iron) < 10) {
  58. if (Inventory.getCount(bar) <= 0) {
  59. state = State.mine;
  60. return;
  61. }
  62. }
  63.  
  64. if (Inventory.getCount(coal) == 10
  65. && Inventory.getCount(iron) == 10
  66. || Inventory.getCount(bar) != 10) {
  67. state = State.smelt;
  68. return;
  69. }
  70.  
  71. if (Inventory.getCount(bar) > 0 && Inventory.getCount(coal) == 0
  72. && Inventory.getCount(iron) == 0) {
  73. state = State.makeBalls;
  74. return;
  75. }
  76.  
  77. } catch (Exception e) {
  78.  
  79. }
  80. }
  81.  
  82. public void handleState() {
  83.  
  84. try {
  85.  
  86. if (state == State.mine) {
  87. mine();
  88. return;
  89. }
  90.  
  91. if (state == State.smelt) {
  92. smelt();
  93. return;
  94. }
  95.  
  96. if (state == State.makeBalls) {
  97. makeBalls();
  98. return;
  99. }
  100.  
  101. } catch (Exception e) {
  102.  
  103. }
  104.  
  105. }
  106.  
  107. public void makeBalls() {
  108.  
  109. if (Game.getOpenBackDialogId() == 2492) {
  110. Mouse.getInstance().click(265, 430, true);
  111. sleep(2000);
  112. ballsMade += 200;
  113. return;
  114. }
  115.  
  116. for (Item i : Inventory.getItems()) {
  117. if (i.getId() == bar) {
  118. Menu.sendAction(447, 2353, i.getSlot(), 3214);
  119. sleep(1000);
  120. Mouse.getInstance().click(385, 165, true);
  121. sleep(2000);
  122. return;
  123. }
  124. }
  125.  
  126. }
  127.  
  128. public void smelt() {
  129.  
  130. final Player me = Players.getMyPlayer();
  131.  
  132. if (!atFurnace()) {
  133. teleFurnace();
  134. return;
  135. }
  136.  
  137. if (me.getAnimation() == 899) {
  138. sleep(4000);
  139. return;
  140. }
  141.  
  142. if (Game.getOpenBackDialogId() == 2400) {
  143. Mouse.getInstance().click(230, 400, false);
  144. sleep(500);
  145. Mouse.getInstance().click(230, 464, true);
  146. sleep(2000);
  147. return;
  148. }
  149.  
  150. SceneObject[] obj = SceneObjects.getNearest(11666);
  151. SceneObject fur = obj[0];
  152.  
  153. fur.interact(0);
  154. sleep(2500);
  155. }
  156.  
  157. public boolean atMine() {
  158. final Player me = Players.getMyPlayer();
  159.  
  160. if (me.getLocation().getY() > 9730 && me.getLocation().getY() < 9800) {
  161. return true;
  162. }
  163. return false;
  164. }
  165.  
  166. public boolean atFurnace() {
  167. final Player me = Players.getMyPlayer();
  168.  
  169. if (me.getLocation().getY() > 3360 && me.getLocation().getY() < 3390) {
  170. return true;
  171. }
  172. return false;
  173. }
  174.  
  175. public void teleMine() {
  176.  
  177. final Player me = Players.getMyPlayer();
  178.  
  179. if (me.getAnimation() == 8939) {
  180. sleep(2000);
  181. return;
  182. }
  183.  
  184. if (Game.getOpenBackDialogId() == 2492) {
  185. Mouse.getInstance().click(265, 415, true);
  186. sleep(3000);
  187. return;
  188. }
  189.  
  190. /*
  191. * for (Item i : Inventory.getItems()) { if (i.getId() == 14605) {
  192. * Menu.sendAction(454, i.getId() - 1, i.getSlot(), 3214); sleep(2000);
  193. * return;
  194. *
  195. * } }
  196. */
  197.  
  198. Mouse.getInstance().click(new Point(745, 185));// tab
  199. sleep(200);
  200. Mouse.getInstance().click(715, 290, true);
  201. sleep(750);
  202. Mouse.getInstance().click(635, 190, true);// backpack
  203. // sleep(2000);
  204.  
  205. }
  206.  
  207. public void teleFurnace() {
  208.  
  209. final Player me = Players.getMyPlayer();
  210.  
  211. if (me.getAnimation() == 8939) {
  212. sleep(2000);
  213. return;
  214. }
  215.  
  216. if (Game.getOpenBackDialogId() == 2492) {
  217. Mouse.getInstance().click(265, 430, true);
  218. sleep(3000);
  219. return;
  220. }
  221.  
  222. /*
  223. * for (Item i : Inventory.getItems()) { if (i.getId() == 14605) {
  224. * Menu.sendAction(454, i.getId() - 1, i.getSlot(), 3214); sleep(2000);
  225. * return;
  226. *
  227. * } }
  228. */
  229.  
  230. Mouse.getInstance().click(new Point(745, 185));// tab
  231. sleep(200);
  232. Mouse.getInstance().click(715, 290, true);
  233. sleep(750);
  234. Mouse.getInstance().click(635, 190, true);// backpack
  235. // sleep(2000);
  236.  
  237. }
  238.  
  239. public int[] rockID() {
  240. if (Inventory.getCount(iron) < 10)
  241. return ironRocks;
  242.  
  243. if (Inventory.getCount(coal) < 10)
  244. return coalRocks;
  245.  
  246. return coalRocks;
  247. }
  248.  
  249. public int[] ironRocks = { 2093 };
  250.  
  251. public int[] coalRocks = { 2097, 2096 };
  252.  
  253. public void mine() {
  254. final Player me = Players.getMyPlayer();
  255.  
  256. if (!atMine()) {
  257. teleMine();
  258. return;
  259. }
  260.  
  261. SceneObject[] obj = SceneObjects.getNearest(rockID());
  262. SceneObject rock = obj[0];
  263.  
  264. if (rock.getLocation().distanceTo() > 1) {
  265. rock.interact(0);
  266. sleep(1500);
  267. return;
  268. }
  269.  
  270. if (me.getAnimation() == 6746 || me.getAnimation() == 12188) {
  271. // sleep(1500);
  272. return;
  273. }
  274.  
  275. rock.interact(0);
  276. sleep(1500);
  277. }
  278.  
  279. Npc rNPC;
  280.  
  281. public boolean atIsland() {
  282. final Player me = Players.getMyPlayer();
  283.  
  284. if (me.getLocation().getX() >= 2500 && me.getLocation().getX() <= 2600) {
  285.  
  286. if (me.getLocation().getY() >= 4730
  287. && me.getLocation().getX() <= 4800) {
  288. return true;
  289. }
  290. }
  291. return false;
  292. }
  293.  
  294. public void handleRandom() {
  295. if (Game.getOpenInterfaceId() == 23350) {
  296. Mouse.getInstance().click(486, 27, true);
  297. sleep(400);
  298. return;
  299. }
  300.  
  301. if (atIsland()) {
  302. for (SceneObject o : SceneObjects.getSceneObjects()) {
  303. if (o != null) {
  304. if (o.getId() == 8987) {
  305. o.interact(0);
  306. sleep(5000);
  307. }
  308. }
  309. }
  310. System.out.println("AT BOBS ISLAND!");
  311. return;
  312. }
  313.  
  314. if (!atIsland()) {
  315.  
  316. if (rNPC.getDef().getId() == 3022 || rNPC.getDef().getId() == 3351
  317. || rNPC.getDef().getId() == 409) {
  318. System.out.println("Genie called on us. EXITING.");
  319. System.exit(0);
  320. return;
  321. }
  322.  
  323. if (rNPC != null) {
  324. rNPC.interact(0);
  325. rTimer = System.currentTimeMillis();
  326. // randCount++;
  327. sleep(3000);
  328. System.out.println("INTERACTING WITH " + rNPC.getDef().getId()
  329. + "");
  330. return;
  331. }
  332.  
  333. return;
  334. }
  335. }
  336.  
  337. @Override
  338. public void paint(Graphics g1) {
  339. Graphics2D g = (Graphics2D) g1;
  340. g.setColor(Color.WHITE);
  341. g.drawString("GP/HR: " + perHour(ballsMade * 9000) + "", 595, 310);
  342. g.drawString("loc: " + Players.getMyPlayer().getLocation().getX()
  343. + ", " + Players.getMyPlayer().getLocation().getY() + "", 595,
  344. 330);
  345. g.drawString("State: " + state + "", 595, 350);
  346. g.drawString("Mouse: " + Mouse.getInstance().getPoint().x + ", "
  347. + Mouse.getInstance().getPoint().y + "", 595, 370);
  348. // TODO Auto-generated method stub
  349.  
  350. }
  351.  
  352. public String runTime(long i) {
  353. DecimalFormat nf = new DecimalFormat("00");
  354. long millis = System.currentTimeMillis() - i;
  355. long hours = millis / (1000 * 60 * 60);
  356. millis -= hours * (1000 * 60 * 60);
  357. long minutes = millis / (1000 * 60);
  358. millis -= minutes * (1000 * 60);
  359. long seconds = millis / 1000;
  360. return nf.format(hours) + ":" + nf.format(minutes) + ":"
  361. + nf.format(seconds);
  362. }
  363.  
  364. public static long startTime = 0;
  365.  
  366. public String perHour(int gained) {
  367. return formatNumber((int) ((gained) * 3600000D / (System
  368. .currentTimeMillis() - startTime)));
  369. }
  370.  
  371. public String formatNumber(int start) {
  372. DecimalFormat nf = new DecimalFormat("0.0");
  373. double i = start;
  374. if (i >= 1000000) {
  375. return nf.format((i / 1000000)) + "m";
  376. }
  377. if (i >= 1000) {
  378. return nf.format((i / 1000)) + "k";
  379. }
  380. return "" + start;
  381. }
  382.  
  383. public boolean inRandom() {
  384.  
  385. if (atIsland()) {
  386. return true;
  387. }
  388.  
  389. for (Npc n : Npcs.getNearest(randoms)) {
  390. if (n != null && n.getLocation().distanceTo() <= 1) {
  391. return true;
  392. }
  393. }
  394.  
  395. for (Npc n : Npcs.getNpcs()) {
  396. if (n.getDef().getId() > 8000 && n.getLocation().distanceTo() <= 1) {
  397. return true;
  398. }
  399. }
  400.  
  401. return false;
  402. }
  403.  
  404. private int[] randoms = { 410, 3117, 3022, 3351, 409, 18169, 13817 };
  405.  
  406. @Override
  407. public int loop() {
  408. final Player me = Players.getMyPlayer();
  409.  
  410. if (startTime == 0) {
  411. startTime = System.currentTimeMillis();
  412. }
  413.  
  414. if (rTimer > 0) {
  415. if (System.currentTimeMillis() - rTimer > 50000) {
  416. rTimer = 0;
  417. }
  418. }
  419.  
  420. if (inRandom() && rTimer == 0) {
  421. handleRandom();
  422. return 0;
  423.  
  424. }
  425.  
  426. for (Npc n : Npcs.getNpcs()) {
  427. if (n != null && n.getLocation().distanceTo() <= 1) {
  428. if (n.getDef().getId() > 8000) {
  429. rNPC = n;
  430. // sleep(500);
  431. Runnable runnable1 = (Runnable) Toolkit.getDefaultToolkit()
  432. .getDesktopProperty("win.sound.exclamation");
  433.  
  434. if (runnable1 != null)
  435. runnable1.run();
  436. }
  437. }
  438. }
  439.  
  440. for (Npc n : Npcs.getNearest(randoms)) {
  441. if (n != null && n.getLocation().distanceTo() <= 1) {
  442. rNPC = n;
  443. // sleep(500);
  444. Runnable runnable1 = (Runnable) Toolkit.getDefaultToolkit()
  445. .getDesktopProperty("win.sound.exclamation");
  446.  
  447. if (runnable1 != null)
  448. runnable1.run();
  449. }
  450. }
  451.  
  452. for (Item i : Inventory.getItems()) {
  453. if (i.getId() > 1610 && i.getId() < 1635) {
  454. Menu.sendAction(847, i.getId() - 1, i.getSlot(), 3214);
  455. sleep(1000);
  456. return 0;
  457. }
  458. if (Inventory.getCount(bar) == 10 && i.getId() == coal) {
  459. Menu.sendAction(847, i.getId() - 1, i.getSlot(), 3214);
  460. sleep(1000);
  461. return 0;
  462.  
  463. }
  464. if (Inventory.getCount(bar) == 10 && i.getId() == iron) {
  465. Menu.sendAction(847, i.getId() - 1, i.getSlot(), 3214);
  466. sleep(1000);
  467. return 0;
  468.  
  469. }
  470. if (Inventory.getCount(coal) > 10 && i.getId() == coal) {
  471. Menu.sendAction(847, i.getId() - 1, i.getSlot(), 3214);
  472. sleep(1000);
  473. return 0;
  474.  
  475. }
  476. if (Inventory.getCount(iron) > 10 && i.getId() == iron) {
  477. Menu.sendAction(847, i.getId() - 1, i.getSlot(), 3214);
  478. sleep(1000);
  479. return 0;
  480.  
  481. }
  482. }
  483.  
  484. getState();
  485. handleState();
  486. // TODO Auto-generated method stub
  487. return 0;
  488. }
  489. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement