Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package scripts;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.Image;
- import java.awt.Polygon;
- import java.awt.Toolkit;
- import java.io.IOException;
- import java.net.URL;
- import javax.imageio.ImageIO;
- import org.tribot.api.DynamicClicking;
- import org.tribot.api.General;
- import org.tribot.api.Timing;
- import org.tribot.api.input.Keyboard;
- import org.tribot.api.input.Mouse;
- import org.tribot.api2007.Camera;
- import org.tribot.api2007.ChooseOption;
- import org.tribot.api2007.Game;
- import org.tribot.api2007.GameTab;
- import org.tribot.api2007.Interfaces;
- import org.tribot.api2007.Inventory;
- import org.tribot.api2007.Login;
- import org.tribot.api2007.NPCs;
- import org.tribot.api2007.Objects;
- import org.tribot.api2007.Options;
- import org.tribot.api2007.PathFinding;
- import org.tribot.api2007.Player;
- import org.tribot.api2007.Players;
- import org.tribot.api2007.Screen;
- import org.tribot.api2007.Skills;
- import org.tribot.api2007.Walking;
- import org.tribot.api2007.types.RSInterfaceChild;
- import org.tribot.api2007.types.RSItem;
- import org.tribot.api2007.types.RSNPC;
- import org.tribot.api2007.types.RSObject;
- import org.tribot.api2007.types.RSPlayer;
- import org.tribot.api2007.types.RSTile;
- import org.tribot.script.Script;
- import org.tribot.script.ScriptManifest;
- import org.tribot.script.interfaces.Painting;
- @ScriptManifest(authors = { "Coca Cola" }, category = "Woodcutting", name = "CC Willow Chop'N'Sell V2", description = "Now supports fletching the logs! Start the script anywhere within walking distance to Rimmington, or in Rimmington to be safe.")
- public class WillowsChopnSellV2 extends Script implements Painting {
- private final Polygon shopArea = new Polygon(new int[] { 2945, 2951, 2951,
- 2945 }, new int[] { 3211, 3211, 3219, 3219 }, 4);
- private final Polygon treesArea = new Polygon(new int[] { 2953, 2970, 2970,
- 2953 }, new int[] { 3193, 3193, 3203, 3203 }, 4);
- RSTile[] shopPath = new RSTile[] { new RSTile(2963, 3199),
- new RSTile(2961, 3207), new RSTile(2960, 3208),
- new RSTile(2955, 3211), new RSTile(2951, 3214),
- new RSTile(2949, 3217) };
- RSTile[] shopDoorPath = new RSTile[] { new RSTile(2963, 3199),
- new RSTile(2961, 3207), new RSTile(2960, 3208),
- new RSTile(2955, 3211), new RSTile(2951, 3214) };
- RSTile[] treesPath = new RSTile[] { new RSTile(2951, 3214),
- new RSTile(2955, 3211), new RSTile(2960, 3208),
- new RSTile(2962, 3204), new RSTile(2963, 3200),
- new RSTile(2963, 3196) };
- private final int[] DO_NOT_DROP = { 946, 60, 58, 6743, 6739, 494, 496, 498,
- 500, 502, 504, 506, 1519, 995, 1349, 1351, 1353, 1355, 1357, 1359,
- 1361 };
- private final int[] ITEMS_TO_SELL = { 1519, 58, 60 };
- private final int[] junk = { 1521, 1971, 1917, 6961, 2327, 9003, 6180,
- 6181, 6182, 6654, 6655, 6656, 6657, 6658, 6659, 6183, 3057, 3058,
- 3059, 3060, 3061, 117, 1607, 1608, 1623, 1624, 1625, 1606, 1621,
- 1622, 1603, 1604, 1619, 1620, 1601, 1602, 1617, 1618, 1973, 995 };
- public final int[] WILLOW_IDS = { 9397, 9396, 9395, };
- public final int SHOP_DOOR_CLOSED = 7116;
- public String METHOD;
- public boolean GUI_COMPLETE = false;
- Timer time = new Timer(2500);
- final long startTime = System.currentTimeMillis();
- final int LOGS = 1519;
- final int SHORTBOW = 60;
- final int LONGBOW = 58;
- final int[] BOWS = { 60, 58 };
- @SuppressWarnings("deprecation")
- int startLvl = Skills.getActualLevel("Woodcutting");
- @SuppressWarnings("deprecation")
- int startXP = Skills.getXP("Woodcutting");
- int willowsSold = 0;
- int startFletchXP = Skills.getXP("Fletching");
- int startFletchLvl = Skills.getActualLevel("Fletching");
- int bowsSold = 0;
- private Image getImage(String url) {
- try {
- return ImageIO.read(new URL(url));
- } catch (IOException e) {
- return null;
- }
- }
- private final Image img = getImage("http://s21.postimg.org/6mflgq2vb/Chop_n_Sell_Paint.png");
- private final Image img2 = getImage("http://s24.postimg.org/3pu17hm6t/chopnsellpaintwithfletch.png");
- public void run() {
- Mouse.setSpeed(200);
- GUI GUI = new GUI();
- Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
- int screenW = screenSize.width;
- int screenH = screenSize.height;
- Dimension dim = GUI.getSize();
- GUI.setVisible(true);
- println("Please select your desired settings in the GUI.");
- GUI.setLocation((screenW / 2) - (dim.width / 2), (screenH / 2)
- - (dim.height / 2));
- while (!GUI_COMPLETE) {
- sleep(200);
- }
- GUI.setVisible(false);
- println("GUI Closed. Script initialized with chosen settings.");
- println("Selected method: " + METHOD);
- if (onStart()) {
- while (true) {
- sleep(loop());
- }
- }
- }
- private boolean onStart() {
- return true;
- }
- public RSObject findNearest(int distance, int... ids) {
- RSObject[] objects = Objects.findNearest(distance, ids);
- for (RSObject object : objects) {
- if (object != null) {
- return object;
- }
- }
- return null;
- }
- @SuppressWarnings("serial")
- class GUI extends javax.swing.JFrame {
- public GUI() {
- initComponents();
- }
- @SuppressWarnings({ "unchecked", "rawtypes" })
- private void initComponents() {
- jLabel2 = new javax.swing.JLabel();
- METHOD_DROPDOWN = new javax.swing.JComboBox();
- jLabel4 = new javax.swing.JLabel();
- jLabel1 = new javax.swing.JLabel();
- START_BUTTON = new javax.swing.JButton();
- setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
- jLabel2.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
- jLabel2.setText("Please choose a method:");
- METHOD_DROPDOWN.setModel(new javax.swing.DefaultComboBoxModel(
- new String[] { " ", "Fletch bows and sell",
- "Just sell logs" }));
- METHOD_DROPDOWN
- .addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(
- java.awt.event.ActionEvent evt) {
- METHOD_DROPDOWNActionPerformed(evt);
- }
- });
- jLabel4.setFont(new java.awt.Font("Tahoma", 1, 14));
- jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
- jLabel4.setText("Coca Cola's Willow Chop'N'Sell");
- jLabel1.setForeground(new java.awt.Color(255, 0, 0));
- jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
- jLabel1.setText("Note: You need a knife in your inventory if you choose to fletch.");
- START_BUTTON.setText("Start");
- START_BUTTON.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- START_BUTTONActionPerformed(evt);
- }
- });
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
- getContentPane());
- getContentPane().setLayout(layout);
- layout.setHorizontalGroup(layout
- .createParallelGroup(
- javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel1,
- javax.swing.GroupLayout.DEFAULT_SIZE,
- javax.swing.GroupLayout.DEFAULT_SIZE,
- Short.MAX_VALUE)
- .addComponent(jLabel4,
- javax.swing.GroupLayout.Alignment.TRAILING,
- javax.swing.GroupLayout.DEFAULT_SIZE,
- javax.swing.GroupLayout.DEFAULT_SIZE,
- Short.MAX_VALUE)
- .addGroup(
- javax.swing.GroupLayout.Alignment.TRAILING,
- layout.createSequentialGroup()
- .addContainerGap(39, Short.MAX_VALUE)
- .addComponent(jLabel2)
- .addGap(18, 18, 18)
- .addComponent(
- METHOD_DROPDOWN,
- javax.swing.GroupLayout.PREFERRED_SIZE,
- javax.swing.GroupLayout.DEFAULT_SIZE,
- javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(25, 25, 25))
- .addComponent(START_BUTTON,
- javax.swing.GroupLayout.Alignment.TRAILING,
- javax.swing.GroupLayout.DEFAULT_SIZE,
- javax.swing.GroupLayout.DEFAULT_SIZE,
- Short.MAX_VALUE));
- layout.setVerticalGroup(layout
- .createParallelGroup(
- javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(
- layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(jLabel4)
- .addGap(32, 32, 32)
- .addGroup(
- layout.createParallelGroup(
- javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel2)
- .addComponent(
- METHOD_DROPDOWN,
- javax.swing.GroupLayout.PREFERRED_SIZE,
- javax.swing.GroupLayout.DEFAULT_SIZE,
- javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(
- javax.swing.LayoutStyle.ComponentPlacement.RELATED,
- 22, Short.MAX_VALUE)
- .addComponent(START_BUTTON)
- .addGap(18, 18, 18).addComponent(jLabel1)));
- pack();
- }
- private void METHOD_DROPDOWNActionPerformed(
- java.awt.event.ActionEvent evt) {
- METHOD = METHOD_DROPDOWN.getSelectedItem().toString();
- }
- private void START_BUTTONActionPerformed(java.awt.event.ActionEvent evt) {
- if (METHOD == null) {
- println("Please select a method..");
- return;
- } else {
- GUI_COMPLETE = true;
- }
- }
- @SuppressWarnings("rawtypes")
- private javax.swing.JComboBox METHOD_DROPDOWN;
- private javax.swing.JButton START_BUTTON;
- private javax.swing.JLabel jLabel1;
- private javax.swing.JLabel jLabel2;
- private javax.swing.JLabel jLabel4;
- }
- public int loop() {
- while (Player.getAnimation() != -1) {
- ent();
- invCheck();
- }
- RSObject willow = findNearest(10, WILLOW_IDS);
- RSObject shopdoorclosed = findNearest(5, SHOP_DOOR_CLOSED);
- RSPlayer[] allPlayers = Players.getAll();
- for (RSPlayer i : allPlayers) {
- if (treesArea.contains(i.getPosition().getX(), i.getPosition()
- .getY())
- && i.getName() != Player.getRSPlayer().getName()
- && !loggedOut()) {
- println("Somebody is near-by, going to hop worlds.");
- Worldhopper.switchWorld(Worldhopper.getRandomWorld());
- }
- }
- switch (METHOD) {
- case "Just sell logs":
- if (Inventory.isFull()) {
- startRunning();
- openInvTab();
- sellLogs();
- }
- if (!treesArea.contains(Player.getPosition().getX(), Player
- .getPosition().getY())
- && !Inventory.isFull() && !(Inventory.getCount(LOGS) >= 1)) {
- if (PathFinding.canReach(new RSTile(2963, 3196), true)) {
- Walking.walkPath(treesPath);
- } else {
- Walking.walkPath(shopDoorPath);
- if (shopdoorclosed != null) {
- if (shopdoorclosed.isOnScreen()) {
- shopdoorclosed.click("Open Door");
- sleep(1000);
- }
- }
- if (shopdoorclosed == null) {
- Walking.walkPath(treesPath);
- }
- }
- }
- if (treesArea.contains(Player.getPosition().getX(), Player
- .getPosition().getY())
- && Player.getRSPlayer().getAnimation() == -1
- && !Inventory.isFull()) {
- if (willow != null) {
- if (willow.isOnScreen()) {
- willow.click("Chop down Willow");
- time.reset();
- while (Player.getRSPlayer().getAnimation() == -1
- && time.isRunning()) {
- sleep(10);
- }
- } else {
- Walking.walkTo(willow);
- Camera.turnToTile(willow.getPosition());
- }
- }
- }
- break;
- case "Fletch bows and sell":
- if (Skills.getCurrentLevel("Fletching") < 35) {
- println("You need a fletching level of at least 35 to fletch willows.");
- println("Your method has been switched to just selling logs.");
- METHOD = "Just sell logs";
- }
- if (Inventory.isFull()) {
- if (Inventory.getCount(LOGS) >= 1) {
- makeBows();
- while (Player.getAnimation() == 1248) {
- sleep(20);
- }
- }
- if (Inventory.getCount(LOGS) < 1
- && Inventory.getCount(LONGBOW) >= 1
- || Inventory.getCount(SHORTBOW) >= 1) {
- startRunning();
- openInvTab();
- sellLogs();
- }
- }
- if (!treesArea.contains(Player.getPosition().getX(), Player
- .getPosition().getY())
- && !Inventory.isFull() && !(Inventory.getCount(LOGS) >= 1)) {
- if (PathFinding.canReach(new RSTile(2963, 3196), true)) {
- Walking.walkPath(treesPath);
- } else {
- Walking.walkPath(shopDoorPath);
- if (shopdoorclosed != null) {
- if (shopdoorclosed.isOnScreen()) {
- shopdoorclosed.click("Open Door");
- sleep(1000);
- }
- }
- if (shopdoorclosed == null) {
- Walking.walkPath(treesPath);
- }
- }
- }
- if (treesArea.contains(Player.getPosition().getX(), Player
- .getPosition().getY())
- && Player.getRSPlayer().getAnimation() == -1
- && !Inventory.isFull()) {
- if (willow != null) {
- if (willow.isOnScreen()) {
- willow.click("Chop down Willow");
- time.reset();
- while (Player.getRSPlayer().getAnimation() == -1
- && time.isRunning()) {
- sleep(10);
- }
- } else {
- Walking.walkTo(willow);
- Camera.turnToTile(willow.getPosition());
- }
- }
- }
- break;
- case " ":
- println("Invalid selection, method set to just sell logs by default.");
- METHOD = "Just sell logs";
- break;
- }
- return 50;
- }
- public void sellLogs() {
- RSNPC[] shopassist = NPCs.findNearest("Shop assistant");
- RSObject shopdoorclosed = findNearest(5, SHOP_DOOR_CLOSED);
- switch (METHOD) {
- case "Just sell logs":
- if (!shopArea.contains(Player.getPosition().getX(), Player
- .getPosition().getY())
- && Inventory.getCount(LOGS) >= 1) {
- if (PathFinding.canReach(new RSTile(2949, 3217), true)) {
- Walking.walkPath(shopPath);
- } else {
- Walking.walkPath(shopDoorPath);
- if (shopdoorclosed != null) {
- if (shopdoorclosed.isOnScreen()) {
- shopdoorclosed.click("Open Door");
- sleep(1000);
- }
- }
- if (shopdoorclosed == null) {
- Walking.walkPath(shopPath);
- }
- }
- } else {
- if (shopArea.contains(Player.getPosition().getX(), Player
- .getPosition().getY())) {
- while (shopassist != null && !Shop.isShopOpen()
- && !Player.isMoving()) {
- DynamicClicking.clickRSNPC(shopassist[0],
- "Trade Shop assistant");
- sleep(1000);
- }
- if (Shop.isShopOpen()) {
- willowsSold += Inventory.getCount(LOGS);
- while (Inventory.getCount(ITEMS_TO_SELL) >= 1) {
- Mouse.setSpeed(744);
- Shop.sell(LOGS, 10);
- Shop.sell(LONGBOW, 10);
- Shop.sell(SHORTBOW, 10);
- Mouse.setSpeed(200);
- }
- }
- }
- }
- break;
- case "Fletch bows and sell":
- if (!shopArea.contains(Player.getPosition().getX(), Player
- .getPosition().getY())
- && Inventory.getCount(BOWS) >= 1) {
- if (PathFinding.canReach(new RSTile(2949, 3217), true)) {
- Walking.walkPath(shopPath);
- } else {
- Walking.walkPath(shopDoorPath);
- if (shopdoorclosed != null) {
- if (shopdoorclosed.isOnScreen()) {
- shopdoorclosed.click("Open Door");
- sleep(1000);
- }
- }
- if (shopdoorclosed == null) {
- Walking.walkPath(shopPath);
- }
- }
- } else {
- if (shopArea.contains(Player.getPosition().getX(), Player
- .getPosition().getY())) {
- while (shopassist != null && !Shop.isShopOpen()
- && !Player.isMoving()) {
- DynamicClicking.clickRSNPC(shopassist[0],
- "Trade Shop assistant");
- sleep(1000);
- }
- if (Shop.isShopOpen()) {
- bowsSold += Inventory.getCount(LONGBOW)
- + Inventory.getCount(SHORTBOW);
- while (Inventory.getCount(ITEMS_TO_SELL) >= 1) {
- Mouse.setSpeed(744);
- Shop.sell(LOGS, 10);
- Shop.sell(LONGBOW, 10);
- Shop.sell(SHORTBOW, 10);
- Mouse.setSpeed(200);
- }
- }
- }
- }
- break;
- }
- }
- public void openInvTab() {
- if (GameTab.getOpen() == GameTab.TABS.INVENTORY) {
- return;
- } else {
- GameTab.open(GameTab.TABS.INVENTORY);
- }
- }
- public void startRunning() {
- if (!Game.isRunOn()) {
- if (Game.getRunEnergy() >= General.random(20, 35)) {
- Options.setRunOn(true);
- }
- } else {
- return;
- }
- }
- private boolean makex() {
- RSInterfaceChild amount = Interfaces.get(548, 94);
- if ((amount != null) && (!amount.isHidden())) {
- String txt = amount.getText();
- if (txt != null)
- txt.equals("*");
- }
- return false;
- }
- @SuppressWarnings("deprecation")
- public void makeBows() {
- RSItem[] log = Inventory.find(new int[] { 1519 });
- RSItem[] knife = Inventory.find(new int[] { 946 });
- RSInterfaceChild shaft = Interfaces.get(548, 88);
- if (knife[0].click(new String[] { "Use" })) {
- sleep(450, 655);
- if (log[0].click(new String[] { "Use" })) {
- sleep(1455, 1644);
- if (shaft != null) {
- if (Skills.getCurrentLevel("Fletching") >= 35
- && Skills.getCurrentLevel("Fletching") <= 39) {
- Mouse.clickBox(63, 396, 94, 422, 3);
- ChooseOption.select(new String[] { "x" });
- makex();
- sleep(500, 650);
- Keyboard.typeSend("" + General.random(28, 99));
- sleep(2300, 4000);
- }
- if (Skills.getCurrentLevel("Fletching") >= 40) {
- Mouse.clickBox(220, 392, 280, 424, 3);
- ChooseOption.select(new String[] { "x" });
- makex();
- sleep(500, 650);
- Keyboard.typeSend("" + General.random(28, 99));
- sleep(2300, 4000);
- }
- }
- }
- }
- }
- public void ent() {
- RSNPC[] ent = NPCs.findNearest("Willow");
- RSObject willow = findNearest(5, WILLOW_IDS);
- RSTile current_tree = willow.getPosition();
- if (ent.length > 0) {
- if (ent[0].getPosition().distanceTo(current_tree) < 2) {
- willow.click("Chop down Willow");
- sleep(500, 1700);
- println("Ent detected - Switching tree.");
- } else {
- sleep(500);
- }
- }
- }
- public void invCheck() {
- if (Inventory.getCount(junk) >= 1) {
- Inventory.dropAllExcept(DO_NOT_DROP);
- }
- }
- public boolean loggedOut() {
- return (Login.getLoginState() == Login.STATE.LOGINSCREEN)
- && !(Screen.getColorAt(100, 200).equals(new Color(0, 0, 0)));
- }
- @SuppressWarnings("deprecation")
- public void onPaint(Graphics g) {
- long timeRan = System.currentTimeMillis() - startTime;
- int currentLvl = Skills.getActualLevel("Woodcutting");
- int currentFletchLvl = Skills.getActualLevel("Fletching");
- int gainedLvl = currentLvl - startLvl;
- int gainedXp = Skills.getXP("Woodcutting") - startXP;
- int gainedFletchLvl = currentFletchLvl - startFletchLvl;
- int gainedFletchXP = Skills.getXP("Fletching") - startFletchXP;
- long xpPerHour = (long) (gainedXp * 3600000d / timeRan);
- long fletchXPPerHour = (long) (gainedFletchXP * 3600000d / timeRan);
- long willowsSoldPerHour = (long) (willowsSold * 3600000d / timeRan);
- long bowsSoldPerHour = (long) (bowsSold * 3600000d / timeRan);
- Graphics2D yolo = (Graphics2D) g;
- switch (METHOD) {
- case "Just sell logs":
- Font font = new Font("Trajan Pro", Font.BOLD, 14);
- g.setColor(new Color(0, 127, 14));
- g.setFont(font);
- yolo.drawImage(img, -14, 308, null);
- g.drawString(" " + Timing.msToString(timeRan), 200, 370);
- g.drawString(" " + currentLvl + " (Gained " + gainedLvl
- + " levels)", 200, 400);
- g.drawString(" " + gainedXp + " (" + xpPerHour + " Per hour" + ")",
- 200, 431);
- g.drawString(" " + willowsSold + " (" + willowsSoldPerHour
- + " Per hour" + ")", 200, 461);
- break;
- case "Fletch bows and sell":
- Font font1 = new Font("Trajan Pro", Font.BOLD, 12);
- g.setColor(new Color(0, 127, 14));
- g.setFont(font1);
- yolo.drawImage(img2, -9, 313, null);
- g.drawString(" " + Timing.msToString(timeRan), 200, 360);
- g.drawString(" " + currentLvl + " (Gained " + gainedLvl
- + " levels)", 200, 381);
- g.drawString(" " + gainedXp + " (" + xpPerHour + " Per hour" + ")",
- 200, 402);
- g.drawString(" " + currentFletchLvl + " (Gained " + gainedFletchLvl
- + " levels)", 200, 422);
- g.drawString(" " + gainedFletchXP + " (" + fletchXPPerHour
- + " Per hour" + ")", 200, 444);
- g.drawString(" " + bowsSold + " (" + bowsSoldPerHour + " Per hour"
- + ")", 200, 465);
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement