Advertisement
Guest User

ShaftMaker.java

a guest
Nov 24th, 2013
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.92 KB | None | 0 0
  1. package scripts;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Dimension;
  5. import java.awt.Font;
  6. import java.awt.Graphics;
  7. import java.awt.Graphics2D;
  8. import java.awt.Image;
  9. import java.awt.Polygon;
  10. import java.awt.Toolkit;
  11. import java.io.IOException;
  12. import java.net.URL;
  13.  
  14. import javax.imageio.ImageIO;
  15.  
  16. import org.tribot.api.General;
  17. import org.tribot.api.Timing;
  18. import org.tribot.api.input.Keyboard;
  19. import org.tribot.api.input.Mouse;
  20. import org.tribot.api2007.Camera;
  21. import org.tribot.api2007.ChooseOption;
  22. import org.tribot.api2007.Game;
  23. import org.tribot.api2007.Interfaces;
  24. import org.tribot.api2007.Inventory;
  25. import org.tribot.api2007.NPCs;
  26. import org.tribot.api2007.Objects;
  27. import org.tribot.api2007.Options;
  28. import org.tribot.api2007.Player;
  29. import org.tribot.api2007.Skills;
  30. import org.tribot.api2007.Walking;
  31. import org.tribot.api2007.WebWalking;
  32. import org.tribot.api2007.types.RSInterfaceChild;
  33. import org.tribot.api2007.types.RSItem;
  34. import org.tribot.api2007.types.RSNPC;
  35. import org.tribot.api2007.types.RSObject;
  36. import org.tribot.api2007.types.RSTile;
  37. import org.tribot.script.Script;
  38. import org.tribot.script.ScriptManifest;
  39. import org.tribot.script.interfaces.Painting;
  40.  
  41. @ScriptManifest(authors = { "Coca Cola" }, category = "Woodcutting/Fletching", name = "Coca-Cola's Log chopper + Shaft fletcher")
  42. public class ShaftMaker extends Script implements Painting {
  43.  
  44. private Image getImage(String url) {
  45. try {
  46. return ImageIO.read(new URL(url));
  47. } catch (IOException e) {
  48. return null;
  49. }
  50. }
  51.  
  52. private final Image img = getImage("http://s9.postimg.org/59efcj6r3/Supershafter_paint.png");
  53.  
  54. public boolean GUI_COMPLETE = false;
  55.  
  56. Timer time = new Timer(5000);
  57.  
  58. final long startTime = System.currentTimeMillis();
  59.  
  60. public String CONFIRMED_LOCATION;
  61.  
  62. int startFletchLvl = Skills.getActualLevel("Fletching");
  63. int startWCLvl = Skills.getActualLevel("Woodcutting");
  64. int startFletchXP = Skills.getXP("Fletching");
  65. int startWCXP = Skills.getXP("Woodcutting");
  66. int shaftsMade = 0;
  67.  
  68. private final Polygon vEast = new Polygon(new int[] { 3271, 3282, 3282, 3271 },
  69. new int[] { 3440, 3440, 3456, 3456 }, 4);
  70.  
  71. private final Polygon vWest = new Polygon(new int[] { 3158, 3173, 3173, 3158 },
  72. new int[] { 3392, 3392, 3419, 3419 }, 4);
  73.  
  74. private final Polygon vEastBar = new Polygon(new int[] { 3271, 3287, 3287, 3271 },
  75. new int[] { 3474, 3474, 3485, 3485 }, 4);
  76.  
  77. private final Polygon lumbyDraynor = new Polygon(new int[] { 3123, 3143, 3143, 3123 },
  78. new int[] { 3207, 3207, 3227, 3227 }, 4);
  79.  
  80.  
  81. private final int[] TREE_ID = { 1276, 1278 };
  82. private final int[] AXE_IDS = { 1349, 1351, 1353, 1355, 1357, 1359, 1361 };
  83. private final int[] GEM_IDS = { 1607, 1608, 1623, 1624, 1625, 1606, 1621, 1622,
  84. 1603, 1604, 1619, 1620, 1601, 1602, 1617, 1618 };
  85.  
  86. private final int[] junk ={ 50, 48, 1521, 1971, 1917, 6961, 2327, 9003, 6180, 6181, 6182, 6654,
  87. 6655, 6656, 6657, 6658, 6659, 6183, 3057, 3058, 3059, 3060,
  88. 3061, 117, 1607, 1608, 1623, 1624, 1625, 1606, 1621, 1622,
  89. 1603, 1604, 1619, 1620, 1601, 1602, 1617, 1618, 1973, 995 };
  90.  
  91. private final int[] DO_NOT_DROP = { 1349, 1351, 1353, 1355, 1357, 1359, 1361, 985, 987, 1511, 52, 946, 494, 496, 498, 500, 502, 504, 506 };
  92.  
  93. @SuppressWarnings("unused")
  94. public void run() {
  95.  
  96. Mouse.setSpeed(200);
  97.  
  98. myForm GUI = new myForm();
  99.  
  100. Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  101. int screenW = screenSize.width;
  102. int screenH = screenSize.height;
  103.  
  104. Dimension dim = GUI.getSize();
  105.  
  106. GUI.setVisible(true);
  107. println("GUI is open. Please select desired settings.");
  108.  
  109. GUI.setLocation((screenW / 2) - (dim.width / 2), (screenH / 2) - (dim.height / 2));
  110.  
  111. while(!GUI_COMPLETE) {
  112. sleep(200);
  113. }
  114.  
  115. GUI.setVisible(false);
  116.  
  117. println("GUI Closed. Script initialized with chosen settings.");
  118. println("Selected location:" + CONFIRMED_LOCATION);
  119.  
  120. if (onStart()) {
  121. while (true) {
  122. sleep(loop());
  123. }
  124. }
  125.  
  126. }
  127.  
  128. /**
  129. *
  130. * @author Trying Again
  131. */
  132. @SuppressWarnings("serial")
  133. class myForm extends javax.swing.JFrame {
  134.  
  135. /**
  136. * Creates new form myForm
  137. */
  138. public myForm() {
  139. initComponents();
  140. }
  141.  
  142. /**
  143. * This method is called from within the constructor to initialize the form.
  144. * WARNING: Do NOT modify this code. The content of this method is always
  145. * regenerated by the Form Editor.
  146. */
  147. @SuppressWarnings("unchecked")
  148. // <editor-fold defaultstate="collapsed" desc="Generated Code">
  149. private void initComponents() {
  150.  
  151. TITLE_LABEL = new javax.swing.JLabel();
  152. LOCATION_DROPDOWN = new javax.swing.JComboBox();
  153. START_BUTTON = new javax.swing.JButton();
  154. LOCATION_LABEL = new javax.swing.JLabel();
  155.  
  156. setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
  157. setAutoRequestFocus(false);
  158. setBackground(new java.awt.Color(51, 51, 51));
  159.  
  160. TITLE_LABEL.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
  161. TITLE_LABEL.setText("Coca Cola's Log Chopper + Shaft Fletcher");
  162.  
  163. LOCATION_DROPDOWN.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "","Lumbridge/Draynor Path", "Varrock West", "Varrock East", "Varrock East/Near Sawmill & Bar" }));
  164. LOCATION_DROPDOWN.setToolTipText("");
  165. LOCATION_DROPDOWN.addActionListener(new java.awt.event.ActionListener() {
  166. public void actionPerformed(java.awt.event.ActionEvent evt) {
  167. LOCATION_DROPDOWNActionPerformed(evt);
  168. }
  169. });
  170.  
  171. START_BUTTON.setText("Initialize");
  172. START_BUTTON.addActionListener(new java.awt.event.ActionListener() {
  173. public void actionPerformed(java.awt.event.ActionEvent evt) {
  174. START_BUTTONActionPerformed(evt);
  175. }
  176. });
  177.  
  178. LOCATION_LABEL.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
  179. LOCATION_LABEL.setText("Location:");
  180.  
  181. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  182. getContentPane().setLayout(layout);
  183. layout.setHorizontalGroup(
  184. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  185. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
  186. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
  187. .addGroup(layout.createSequentialGroup()
  188. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  189. .addComponent(LOCATION_LABEL, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
  190. .addGap(18, 18, 18)
  191. .addComponent(LOCATION_DROPDOWN, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  192. .addGroup(layout.createSequentialGroup()
  193. .addGap(0, 84, Short.MAX_VALUE)
  194. .addComponent(TITLE_LABEL, javax.swing.GroupLayout.PREFERRED_SIZE, 296, javax.swing.GroupLayout.PREFERRED_SIZE)))
  195. .addGap(77, 77, 77))
  196. .addGroup(layout.createSequentialGroup()
  197. .addGap(186, 186, 186)
  198. .addComponent(START_BUTTON)
  199. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  200. );
  201. layout.setVerticalGroup(
  202. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  203. .addGroup(layout.createSequentialGroup()
  204. .addComponent(TITLE_LABEL, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE)
  205. .addGap(18, 18, 18)
  206. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  207. .addComponent(LOCATION_LABEL)
  208. .addComponent(LOCATION_DROPDOWN, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  209. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 31, Short.MAX_VALUE)
  210. .addComponent(START_BUTTON)
  211. .addContainerGap())
  212. );
  213.  
  214. pack();
  215. }// </editor-fold>
  216.  
  217. private void LOCATION_DROPDOWNActionPerformed(java.awt.event.ActionEvent evt) {
  218.  
  219. CONFIRMED_LOCATION = LOCATION_DROPDOWN.getSelectedItem().toString();
  220.  
  221. }
  222.  
  223. private void START_BUTTONActionPerformed(java.awt.event.ActionEvent evt) {
  224.  
  225. if(CONFIRMED_LOCATION == null) {
  226. println("Please select a location..");
  227. return;
  228. } else {
  229.  
  230. GUI_COMPLETE = true;
  231.  
  232. }
  233.  
  234. }
  235.  
  236. /**
  237. * @param args the command line arguments
  238. */
  239.  
  240. // Variables declaration - do not modify
  241. private javax.swing.JComboBox LOCATION_DROPDOWN;
  242. private javax.swing.JLabel LOCATION_LABEL;
  243. private javax.swing.JButton START_BUTTON;
  244. private javax.swing.JLabel TITLE_LABEL;
  245. // End of variables declaration
  246. }
  247.  
  248. private boolean onStart() {
  249. println("Coca Cola's Log chopper + Shaft fletcher has started!");
  250. return true;
  251.  
  252. }
  253.  
  254. public RSObject findNearest(int distance, int... ids) {
  255. RSObject[] objects = Objects.findNearest(distance, ids);
  256.  
  257. for (RSObject object : objects) {
  258. if (object != null) {
  259. return object;
  260. }
  261. }
  262.  
  263. return null;
  264.  
  265. }
  266.  
  267. @SuppressWarnings("unused")
  268. private int loop() {
  269.  
  270. RSObject tree = findNearest(15, TREE_ID);
  271.  
  272. if(!Game.isRunOn() && Game.getRunEnergy() >= 30) {
  273. Options.setRunOn(true);
  274. }
  275.  
  276. switch(CONFIRMED_LOCATION) {
  277.  
  278. case "Varrock West":
  279.  
  280. if(Inventory.isFull()) {
  281. if(Player.getRSPlayer().getAnimation() == -1) {
  282. makeShafts();
  283. } else {
  284. sleep(10);
  285. }
  286. }
  287.  
  288. if(Inventory.getCount(junk) >= 1 || Inventory.getCount(GEM_IDS) >= 1) {
  289. //Inventory.drop(junk);
  290. Inventory.dropAllExcept(DO_NOT_DROP);
  291. }
  292.  
  293. if (!vWest.contains(Player.getPosition().getX(), Player.getPosition().getY())) {
  294. WebWalking.walkTo(new RSTile(3169, 3418));
  295. }
  296.  
  297. if (vWest.contains(Player.getPosition().getX(), Player.getPosition().getY()) && Player.getRSPlayer().getAnimation() == -1) {
  298. ent();
  299. if (tree != null) {
  300. if (tree.isOnScreen()) {
  301. tree.click("Chop down Tree");
  302. time.reset();
  303. while (Player.getRSPlayer().getAnimation() == -1 && time.isRunning()) {
  304. sleep(10);
  305. }
  306. } else {
  307. Walking.walkTo(tree);
  308. Camera.turnToTile(tree.getPosition());
  309. }
  310. } else {
  311. if(Player.getRSPlayer().getAnimation() == -1) {
  312. makeShafts();
  313. } else {
  314. sleep(10);
  315. }
  316. }
  317. }
  318.  
  319. break;
  320.  
  321. case "Lumbridge/Draynor Path":
  322.  
  323. if(Inventory.isFull()) {
  324. if(Player.getRSPlayer().getAnimation() == -1) {
  325. makeShafts();
  326. } else {
  327. sleep(10);
  328. }
  329. }
  330.  
  331. if(Inventory.getCount(junk) >= 1 || Inventory.getCount(GEM_IDS) >= 1) {
  332. Inventory.dropAllExcept(DO_NOT_DROP);
  333. }
  334.  
  335. if (!lumbyDraynor.contains(Player.getPosition().getX(), Player.getPosition().getY())) {
  336. WebWalking.walkTo(new RSTile(3131, 3213));
  337. }
  338.  
  339. if (lumbyDraynor.contains(Player.getPosition().getX(), Player.getPosition().getY()) && Player.getRSPlayer().getAnimation() == -1) {
  340. ent();
  341. if (tree != null) {
  342. if (tree.isOnScreen()) {
  343. tree.click("Chop down Tree");
  344. time.reset();
  345. while (Player.getRSPlayer().getAnimation() == -1 && time.isRunning()) {
  346. sleep(10);
  347. }
  348. } else {
  349. Walking.walkTo(tree);
  350. Camera.turnToTile(tree.getPosition());
  351. }
  352. } else {
  353. if(Player.getRSPlayer().getAnimation() == -1) {
  354. makeShafts();
  355. } else {
  356. sleep(10);
  357. }
  358. }
  359. }
  360. break;
  361.  
  362. case "Varrock East":
  363. if(Inventory.isFull()) {
  364. if(Player.getRSPlayer().getAnimation() == -1) {
  365. makeShafts();
  366. } else {
  367. sleep(10);
  368. }
  369. }
  370.  
  371. if(Inventory.getCount(junk) >= 1 || Inventory.getCount(GEM_IDS) >= 1) {
  372. Inventory.dropAllExcept(DO_NOT_DROP);
  373. }
  374.  
  375. if (!vEast.contains(Player.getPosition().getX(), Player.getPosition().getY())) {
  376. WebWalking.walkTo(new RSTile(3276, 3442));
  377. }
  378.  
  379. if (vEast.contains(Player.getPosition().getX(), Player.getPosition().getY()) && Player.getRSPlayer().getAnimation() == -1) {
  380. ent();
  381. if (tree != null) {
  382. if (tree.isOnScreen()) {
  383. tree.click("Chop down Tree");
  384. time.reset();
  385. while (Player.getRSPlayer().getAnimation() == -1 && time.isRunning()) {
  386. sleep(10);
  387. }
  388. } else {
  389. Walking.walkTo(tree);
  390. Camera.turnToTile(tree.getPosition());
  391. }
  392. } else {
  393. if(Player.getRSPlayer().getAnimation() == -1) {
  394. makeShafts();
  395. } else {
  396. sleep(10);
  397. }
  398. }
  399. }
  400. break;
  401.  
  402. case "Varrock East/Near Sawmill & Bar":
  403. if(Inventory.isFull()) {
  404. if(Player.getRSPlayer().getAnimation() == -1) {
  405. makeShafts();
  406. } else {
  407. sleep(10);
  408. }
  409. }
  410.  
  411. if(Inventory.getCount(junk) >= 1 || Inventory.getCount(GEM_IDS) >= 1) {
  412. Inventory.dropAllExcept(DO_NOT_DROP);
  413. }
  414.  
  415. if (!vEastBar.contains(Player.getPosition().getX(), Player.getPosition().getY())) {
  416. WebWalking.walkTo(new RSTile(3274, 3475));
  417. }
  418.  
  419. if (vEastBar.contains(Player.getPosition().getX(), Player.getPosition().getY()) && Player.getRSPlayer().getAnimation() == -1) {
  420. ent();
  421. if (tree != null) {
  422. if (tree.isOnScreen()) {
  423. tree.click("Chop down Tree");
  424. time.reset();
  425. while (Player.getRSPlayer().getAnimation() == -1 && time.isRunning()) {
  426. sleep(10);
  427. }
  428. } else {
  429. Walking.walkTo(tree);
  430. Camera.turnToTile(tree.getPosition());
  431. }
  432. } else {
  433. if(Player.getRSPlayer().getAnimation() == -1) {
  434. makeShafts();
  435. } else {
  436. sleep(10);
  437. }
  438. }
  439. }
  440. break;
  441.  
  442. }
  443.  
  444. return 100;
  445. }
  446.  
  447. private boolean makex() {
  448. RSInterfaceChild amount = Interfaces.get(548, 94);
  449. if ((amount != null) && (!amount.isHidden())) {
  450. String txt = amount.getText();
  451. if (txt != null) txt.equals("*");
  452.  
  453. }
  454.  
  455. return false;
  456. }
  457.  
  458. public void makeShafts() {
  459. RSItem[] log = Inventory.find(new int[] { 1511 });
  460. RSItem[] knife = Inventory.find(new int[] { 946 });
  461. RSInterfaceChild shaft = Interfaces.get(548, 88);
  462.  
  463. if (knife[0].click(new String[] { "Use" })) {
  464. sleep(450, 655);
  465. if (log[0].click(new String[] { "Use" })) {
  466. sleep(1455, 1644);
  467. if (shaft != null) {
  468. Mouse.clickBox(63, 396, 94, 422, 3);
  469. ChooseOption.select(new String[] { "x" });
  470. makex();
  471. sleep(500, 650);
  472. Keyboard.typeSend("" + General.random(28, 99));
  473. sleep(2300, 4000);
  474. }
  475. }
  476. }
  477. }
  478.  
  479. public void ent() {
  480. RSNPC[] ent = NPCs.findNearest("Tree");
  481. RSObject[] tree = Objects.findNearest(10, "Tree");
  482. if (ent.length > 0) {
  483. println("Ent detected! Moving away.");
  484. Walking.walkPath(tree);
  485. sleep(500, 1700);
  486. }
  487. }
  488.  
  489. public void onPaint(Graphics g) {
  490.  
  491. long timeRan = System.currentTimeMillis() - startTime;
  492. int currentFletchLvl = Skills.getActualLevel("Fletching");
  493. int currentWCLvl = Skills.getActualLevel("Woodcutting");
  494. int gainedFletchLvl = currentFletchLvl - startFletchLvl;
  495. int gainedWCLvl = currentWCLvl - startWCLvl;
  496. int gainedFletchXP = Skills.getXP("Fletching") - startFletchXP;
  497. int gainedWCXP = Skills.getXP("Woodcutting") - startWCXP;
  498. int shaftsFletched = (gainedFletchXP / 5 * 15);
  499. int logsCut = (gainedWCXP / 25);
  500. long fletchXPPerHour = (long)(gainedFletchXP * 3600000d / timeRan);
  501. long WCXPPerHour = (long)(gainedWCXP * 3600000d / timeRan);
  502. long shaftsFletchedPerHour = (long)(shaftsFletched * 3600000d / timeRan);
  503.  
  504. Graphics2D yolo = (Graphics2D)g;
  505.  
  506. yolo.drawImage(img, -9, 281, null);
  507.  
  508. Font font = new Font("Trajan Pro", Font.BOLD, 12);
  509. g.setColor(new Color(16, 89, 0));
  510. g.setFont(font);
  511. g.drawString(" " + Timing.msToString(timeRan), 263, 360);
  512. g.drawString(" " + currentFletchLvl + " (Gained " + gainedFletchLvl + " levels)", 220, 381);
  513. g.drawString(" " + gainedFletchXP + " (" + fletchXPPerHour + " Per hour" + ")", 220, 403);
  514. g.drawString(" " + currentWCLvl + " (Gained " + gainedWCLvl + " Levels)", 220, 423);
  515. g.drawString(" " + gainedWCXP + " (" + WCXPPerHour + " Per hour" + ")", 220, 443);
  516. g.drawString(" " + shaftsFletched + " (" +shaftsFletchedPerHour + " Per hour" + ")", 220, 465);
  517.  
  518. }
  519.  
  520. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement