Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.rsbot.script.Script;
- import org.rsbot.script.ScriptManifest;
- import org.rsbot.script.wrappers.RSObject;
- import org.rsbot.script.methods.Game;
- import org.rsbot.script.methods.Skills;
- import org.rsbot.script.methods.GrandExchange;
- import org.rsbot.event.listeners.PaintListener;
- import org.rsbot.event.listeners.ServerMessageListener;
- import org.rsbot.event.events.ServerMessageEvent;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.imageio.ImageIO;
- import javax.swing.DefaultComboBoxModel;
- import javax.swing.JButton;
- import javax.swing.JComboBox;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.WindowConstants;
- import java.io.IOException;
- import java.net.URL;
- @ScriptManifest(authors = "CryptBots", keywords = "Woodcutting", name = "CryptCutter", version = 1.5, description = "Cuts and drops all kinds of logs!")
- public class CryptCutter extends Script implements ServerMessageListener, PaintListener {
- public String state;
- public String selectedTree;
- int[] hatchetID = {1351, 1349, 1355, 1353, 6739, 1359, 1357, 1361};
- int[] normalTree = {1278, 1276};
- int[] oakTree = {1281};
- int[] willowTree = {5551, 5552, 5553, 1308};
- int[] mapleTree = {1307};
- int[] yewTree = {1309};
- int normalLog = 1511;
- int oakLog = 1521;
- int willowLog = 1519;
- int mapleLog = 1517;
- int yewLog = 1515;
- private int[] treeID;
- private int logID;
- private int xpHour;
- private int xpRemaining;
- public int invCount;
- public int logsChopped;
- public int wcLevelStart;
- public int wcLevelGained;
- public int gainedXP = 0;
- public int startXP = 0;
- public long startTime = System.currentTimeMillis();
- long runTime = 0;
- long seconds = 0;
- long minutes = 0;
- long hours = 0;
- int profitMade;
- int itemPrice;
- int logPrice;
- int remainingXP;
- public boolean c2d2;
- public boolean onStart() {
- CryptCutterGUI gui = new CryptCutterGUI();
- gui.setVisible(true);
- while(gui.isVisible()){
- sleep(50);
- }
- logPrice = logID;
- log("Welcome to CryptCutter");
- c2d2 = false;
- invCount = 0;
- logsChopped = 0;
- wcLevelStart = 0;
- wcLevelGained = 0;
- mouse.setSpeed(random(3,9));
- return true;
- }
- public void onFinish() {
- log("Closing...");
- }
- public boolean chop2drop2() {
- if(getMyPlayer().getAnimation() == -1 && inventory.getCount(normalLog) < 2){
- RSObject tree = objects.getNearest(treeID);
- if (tree != null) {
- if (tree.isOnScreen()) {
- state = "Chopping";
- tree.doAction("Chop down");
- return true;
- } else {
- state = "Walking To Trees";
- objects.getNearest(treeID).doHover();
- walking.walkTileMM(tree.getLocation());
- }
- }
- }
- if (inventory.getCount(normalLog) >= 1) {
- state = "Dropping";
- inventory.dropAllExcept(hatchetID);
- invCount = invCount +2;
- return true;
- }
- return true;
- }
- public void chop() {
- if(getMyPlayer().getAnimation() == -1 ){
- RSObject tree = objects.getNearest(treeID);
- if (tree != null) {
- if (tree.isOnScreen()) {
- tree.doAction("Chop down");
- } else {
- state = "Walking To Trees";
- objects.getNearest(treeID).doHover();
- walking.walkTileMM(tree.getLocation());
- }
- }
- }
- }
- public void drop() {
- inventory.dropAllExcept(hatchetID);
- }
- public void serverMessageRecieved(final ServerMessageEvent arg0) {
- final String serverString = arg0.getMessage();
- if (serverString.contains("get some logs")) {
- logsChopped = logsChopped +1;
- }
- if (serverString.contains("advanced")) {
- wcLevelGained++;
- game.openTab(Game.TAB_INVENTORY);
- skills.doHover(skills.INTERFACE_WOODCUTTING);
- sleep(random(600,4000));
- }
- }
- private void antiBan() {
- switch (random(0, 50)) {
- case 5:
- camera.setAngle(random(0, 140));
- camera.setPitch(random(140, 335));
- break;
- case 14:
- camera.setAngle(random(20, 340));
- camera.setPitch(random(70, 90));
- mouse.move(random(-200, 700), random(200, 400));
- break;
- case 22:
- game.openTab(Game.TAB_STATS);
- mouse.move(random(10, 700), random(10, 300));
- sleep(random(800,2000));
- sleep(random(600,2000));
- break;
- case 29:
- camera.setAngle(random(20, 89));
- camera.setPitch(random(70, 90));
- mouse.move(random(10, 750), random(10, 495));
- break;
- case 32:
- game.openTab(Game.TAB_INVENTORY);
- skills.doHover(skills.INTERFACE_WOODCUTTING);
- sleep(random(600,2000));
- break;
- case 46:
- mouse.move(random(-200, 700), random(200, 400));
- break;
- }
- }
- private Image getImage(String url) {
- try {
- return ImageIO.read(new URL(url));
- } catch(IOException e) {
- return null;
- }
- }
- private final Color color1 = new Color(0, 0, 0, 137);
- private final Color color2 = new Color(0, 0, 0);
- private final Color color3 = new Color(0, 102, 0);
- private final Color color4 = new Color(0, 0, 0, 81);
- private final Color color5 = new Color(0, 51, 153);
- private final BasicStroke stroke1 = new BasicStroke(1);
- private final Font font1 = new Font("Times New Roman", 0, 14);
- private final Font font2 = new Font("Times New Roman", 0, 20);
- private final Image img1 = getImage("");
- public void onRepaint(Graphics g1) {
- Graphics2D g = (Graphics2D)g1;
- xpHour = (int) ((3600000.0 / (double) runTime) * gainedXP);
- profitMade = logsChopped * itemPrice;
- xpRemaining = skills.getExpToNextLevel(8);
- int gainedXP = 0;
- if (startXP == 0) {
- startXP = skills.getCurrentExp(skills.WOODCUTTING);
- }
- gainedXP = skills.getCurrentExp(skills.WOODCUTTING) - startXP;
- runTime = System.currentTimeMillis() - startTime;
- seconds = runTime / 1000;
- if (seconds >= 60) {
- minutes = seconds / 60;
- seconds -= (minutes * 60);
- }
- if (minutes >= 60) {
- hours = minutes / 60;
- minutes -= (hours * 60);
- }
- g.setColor(color1);
- g.fillRect(6, 344, 490, 114);
- g.setColor(color2);
- g.setStroke(stroke1);
- g.drawRect(6, 344, 490, 114);
- g.setFont(font1);
- g.setColor(color5);
- g.drawString("Current State: " + state, 27, 384);
- g.drawString("Run Time: " + hours + ":" + minutes + ":" + seconds, 261, 384);
- g.drawString("Exp Next Lvl: " + xpRemaining, 26, 412);
- g.drawString("Gained: " + gainedXP + " Exp", 260, 412);
- g.drawString("Chopping: " + selectedTree, 27, 440);
- g.drawString("Version: " + "1.5", 261, 440);
- g.setFont(font2);
- g.setColor(color2);
- g.drawString("CryptCutter", 425, 338);
- g.setColor(color3);
- g.drawString("Next Tree", objects.getNearest(treeID).getLocation().getX(), objects.getNearest(treeID).getLocation().getY());
- g.drawLine(0, (int)(mouse.getLocation().getY()), 800, (int)(mouse.getLocation().getY()));
- g.drawLine((int)(mouse.getLocation().getX()), 0, (int)(mouse.getLocation().getX()), 800);
- }
- public int loop() {
- if(random(1, 500) > 200) {
- antiBan();
- }
- if(c2d2 && inventory.isFull()) {
- chop2drop2();
- }
- if(!c2d2 && !inventory.isFull()) {
- if (getMyPlayer().isIdle()) {
- state = "Chopping";
- chop();
- }
- }
- if(!c2d2 && inventory.isFull()) {
- if (getMyPlayer().isIdle()) {
- state = "Dropping";
- drop();
- }
- }
- if(!walking.isRunEnabled() && walking.getEnergy() > 60){
- state = "Enabling Run";
- walking.setRun(true);
- }
- return random(300, 600);
- }
- public class CryptCutterGUI extends JFrame {
- public CryptCutterGUI() {
- initComponents();
- }
- private void startActionPerformed(ActionEvent e) {
- if(comboboxtree.getSelectedItem().toString().equals("Regular Tree")){
- treeID = normalTree;
- logID = normalLog;
- c2d2 = true;
- selectedTree = "Regular Trees";
- }
- if(comboboxtree.getSelectedItem().toString().equals("Oak Tree")){
- treeID = oakTree;
- logID = oakLog;
- selectedTree = "Oak Trees";
- }
- if(comboboxtree.getSelectedItem().toString().equals("Willow Tree")){
- treeID = willowTree;
- logID = willowLog;
- selectedTree = "Willow Trees";
- }
- if(comboboxtree.getSelectedItem().toString().equals("Maple Tree")){
- treeID = mapleTree;
- logID = mapleLog;
- selectedTree = "Maple Trees";
- }
- if(comboboxtree.getSelectedItem().toString().equals("Yew Tree")){
- treeID = yewTree;
- logID = yewLog;
- selectedTree = "Yew Trees";
- }
- setVisible(false);
- dispose();
- }
- private void quitActionPerformed(ActionEvent e) {
- log("Thanks for using CryptCutter!");
- setVisible(false);
- dispose();
- stopScript();
- }
- private void initComponents() {
- title = new JLabel();
- start = new JButton();
- quit = new JButton();
- comboboxtree = new JComboBox();
- setTitle("CryptCutter v1.0");
- setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
- setResizable(false);
- Container contentPane = getContentPane();
- contentPane.setLayout(null);
- title.setText("CryptCutter");
- title.setFont(new Font("Tahoma", Font.BOLD, 18));
- contentPane.add(title);
- title.setBounds(new Rectangle(new Point(30, 5), title.getPreferredSize()));
- start.setText("Start");
- start.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- startActionPerformed(e);
- }
- });
- contentPane.add(start);
- start.setBounds(new Rectangle(new Point(145, 135), start.getPreferredSize()));
- quit.setText("Quit");
- quit.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- quitActionPerformed(e);
- }
- });
- contentPane.add(quit);
- quit.setBounds(new Rectangle(new Point(5, 135), quit.getPreferredSize()));
- comboboxtree.setModel(new DefaultComboBoxModel(new String[] {
- "Regular Tree",
- "Oak Tree",
- "Willow Tree",
- "Maple Tree",
- "Yew Tree",
- }));
- contentPane.add(comboboxtree);
- comboboxtree.setBounds(50, 70, 110, comboboxtree.getPreferredSize().height);
- {
- Dimension preferredSize = new Dimension();
- for(int i = 0; i < contentPane.getComponentCount(); i++) {
- Rectangle bounds = contentPane.getComponent(i).getBounds();
- preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
- preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
- }
- Insets insets = contentPane.getInsets();
- preferredSize.width += insets.right;
- preferredSize.height += insets.bottom;
- contentPane.setMinimumSize(preferredSize);
- contentPane.setPreferredSize(preferredSize);
- }
- pack();
- setLocationRelativeTo(getOwner());
- }
- private JLabel title;
- private JButton start;
- private JButton quit;
- private JComboBox comboboxtree;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement