SHARE
TWEET

Untitled

a guest Jul 3rd, 2017 134 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import org.rsbot.script.Script;
  2. import org.rsbot.script.ScriptManifest;
  3. import org.rsbot.script.wrappers.RSObject;
  4. import org.rsbot.script.methods.Game;
  5. import org.rsbot.script.methods.Skills;
  6. import org.rsbot.script.methods.GrandExchange;
  7.  
  8. import org.rsbot.event.listeners.PaintListener;
  9. import org.rsbot.event.listeners.ServerMessageListener;
  10. import org.rsbot.event.events.ServerMessageEvent;
  11.  
  12. import java.awt.*;
  13. import java.awt.event.ActionEvent;
  14. import java.awt.event.ActionListener;
  15.  
  16. import javax.imageio.ImageIO;
  17. import javax.swing.DefaultComboBoxModel;
  18. import javax.swing.JButton;
  19. import javax.swing.JComboBox;
  20. import javax.swing.JFrame;
  21. import javax.swing.JLabel;
  22. import javax.swing.WindowConstants;
  23.  
  24. import java.io.IOException;
  25.  
  26. import java.net.URL;
  27.  
  28. @ScriptManifest(authors = "CryptBots", keywords = "Woodcutting", name = "CryptCutter", version = 1.5, description = "Cuts and drops all kinds of logs!")
  29.  
  30. public class CryptCutter extends Script implements ServerMessageListener, PaintListener {
  31.    
  32.     public String state;
  33.     public String selectedTree;
  34.    
  35.     int[] hatchetID = {1351, 1349, 1355, 1353, 6739, 1359, 1357, 1361};
  36.    
  37.    
  38.     int[] normalTree = {1278, 1276};
  39.     int[] oakTree = {1281};
  40.     int[] willowTree = {5551, 5552, 5553, 1308};
  41.     int[] mapleTree = {1307};
  42.     int[] yewTree = {1309};
  43.    
  44.     int normalLog = 1511;
  45.     int oakLog = 1521;
  46.     int willowLog = 1519;
  47.     int mapleLog = 1517;
  48.     int yewLog = 1515;
  49.    
  50.     private int[] treeID;
  51.     private int logID;
  52.     private int xpHour;
  53.     private int xpRemaining;
  54.    
  55.     public int invCount;
  56.     public int logsChopped;
  57.     public int wcLevelStart;
  58.     public int wcLevelGained;
  59.     public int gainedXP = 0;
  60.     public int startXP = 0;
  61.    
  62.     public long startTime = System.currentTimeMillis();
  63.    
  64.     long runTime = 0;
  65.     long seconds = 0;
  66.     long minutes = 0;
  67.     long hours = 0;
  68.    
  69.     int profitMade;
  70.     int itemPrice;
  71.     int logPrice;
  72.     int remainingXP;
  73.    
  74.     public boolean c2d2;
  75.    
  76.     public boolean onStart() {
  77.         CryptCutterGUI gui = new CryptCutterGUI();
  78.         gui.setVisible(true);
  79.         while(gui.isVisible()){
  80.              sleep(50);
  81.         }
  82.         logPrice = logID;
  83.         log("Welcome to CryptCutter");
  84.         c2d2 = false;
  85.         invCount = 0;
  86.         logsChopped = 0;
  87.         wcLevelStart = 0;
  88.         wcLevelGained = 0;
  89.         mouse.setSpeed(random(3,9));
  90.         return true;
  91.     }
  92.    
  93.     public void onFinish() {
  94.         log("Closing...");
  95.     }
  96.    
  97.     public boolean chop2drop2() {
  98.         if(getMyPlayer().getAnimation() == -1 && inventory.getCount(normalLog) < 2){
  99.             RSObject tree = objects.getNearest(treeID);
  100.             if (tree != null) {
  101.                     if (tree.isOnScreen()) {
  102.                             state = "Chopping";
  103.                             tree.doAction("Chop down");
  104.                             return true;
  105.                     } else {
  106.                             state = "Walking To Trees";
  107.                             objects.getNearest(treeID).doHover();
  108.                             walking.walkTileMM(tree.getLocation());
  109.                     }
  110.                 }
  111.             }
  112.             if (inventory.getCount(normalLog) >= 1) {
  113.                     state = "Dropping";
  114.                     inventory.dropAllExcept(hatchetID);
  115.                     invCount = invCount +2;
  116.                     return true;
  117.             }
  118.             return true;
  119.     }
  120.    
  121.     public void chop() {
  122.         if(getMyPlayer().getAnimation() == -1 ){
  123.             RSObject tree = objects.getNearest(treeID);
  124.             if (tree != null) {
  125.                     if (tree.isOnScreen()) {
  126.                             tree.doAction("Chop down");
  127.                     } else {
  128.                             state = "Walking To Trees";
  129.                             objects.getNearest(treeID).doHover();
  130.                             walking.walkTileMM(tree.getLocation());
  131.                     }
  132.                 }
  133.             }
  134.     }
  135.    
  136.     public void drop() {
  137.         inventory.dropAllExcept(hatchetID);
  138.     }
  139.    
  140.     public void serverMessageRecieved(final ServerMessageEvent arg0) {
  141.         final String serverString = arg0.getMessage();
  142.         if (serverString.contains("get some logs")) {
  143.             logsChopped = logsChopped +1;
  144.         }
  145.         if (serverString.contains("advanced")) {
  146.             wcLevelGained++;
  147.             game.openTab(Game.TAB_INVENTORY);
  148.             skills.doHover(skills.INTERFACE_WOODCUTTING);
  149.             sleep(random(600,4000));
  150.         }
  151.     }
  152.  
  153.     private void antiBan() {
  154.         switch (random(0, 50)) {
  155.         case 5:
  156.             camera.setAngle(random(0, 140));
  157.             camera.setPitch(random(140, 335));
  158.             break;
  159.            
  160.         case 14:
  161.             camera.setAngle(random(20, 340));
  162.             camera.setPitch(random(70, 90));
  163.             mouse.move(random(-200, 700), random(200, 400));
  164.             break;            
  165.        
  166.         case 22:
  167.             game.openTab(Game.TAB_STATS);
  168.             mouse.move(random(10, 700), random(10, 300));
  169.             sleep(random(800,2000));
  170.             sleep(random(600,2000));
  171.             break;
  172.            
  173.         case 29:
  174.             camera.setAngle(random(20, 89));
  175.             camera.setPitch(random(70, 90));
  176.             mouse.move(random(10, 750), random(10, 495));
  177.             break;  
  178.            
  179.         case 32:
  180.             game.openTab(Game.TAB_INVENTORY);
  181.             skills.doHover(skills.INTERFACE_WOODCUTTING);
  182.             sleep(random(600,2000));
  183.             break;  
  184.            
  185.         case 46:
  186.             mouse.move(random(-200, 700), random(200, 400));
  187.             break;  
  188.         }
  189.     }  
  190.        
  191.         private Image getImage(String url) {
  192.             try {
  193.                 return ImageIO.read(new URL(url));
  194.             } catch(IOException e) {
  195.                 return null;
  196.             }
  197.         }
  198.  
  199.     private final Color color1 = new Color(0, 0, 0, 137);
  200.     private final Color color2 = new Color(0, 0, 0);
  201.     private final Color color3 = new Color(0, 102, 0);
  202.     private final Color color4 = new Color(0, 0, 0, 81);
  203.     private final Color color5 = new Color(0, 51, 153);
  204.  
  205.  
  206.  
  207.         private final BasicStroke stroke1 = new BasicStroke(1);
  208.  
  209.     private final Font font1 = new Font("Times New Roman", 0, 14);
  210.     private final Font font2 = new Font("Times New Roman", 0, 20);
  211.  
  212.         private final Image img1 = getImage("");
  213.  
  214.         public void onRepaint(Graphics g1) {
  215.             Graphics2D g = (Graphics2D)g1;
  216.            
  217.             xpHour = (int) ((3600000.0 / (double) runTime) * gainedXP);
  218.                
  219.             profitMade = logsChopped * itemPrice;
  220.            
  221.             xpRemaining = skills.getExpToNextLevel(8);
  222.            
  223.             int gainedXP = 0;
  224.             if (startXP == 0) {
  225.                 startXP = skills.getCurrentExp(skills.WOODCUTTING);
  226.             }
  227.  
  228.             gainedXP = skills.getCurrentExp(skills.WOODCUTTING) - startXP;
  229.            
  230.             runTime = System.currentTimeMillis() - startTime;
  231.  
  232.             seconds = runTime / 1000;
  233.             if (seconds >= 60) {
  234.                 minutes = seconds / 60;
  235.                 seconds -= (minutes * 60);
  236.             }
  237.             if (minutes >= 60) {
  238.                 hours = minutes / 60;
  239.                 minutes -= (hours * 60);
  240.             }
  241.            
  242.         g.setColor(color1);
  243.         g.fillRect(6, 344, 490, 114);
  244.         g.setColor(color2);
  245.         g.setStroke(stroke1);
  246.         g.drawRect(6, 344, 490, 114);
  247.         g.setFont(font1);
  248.             g.setColor(color5);
  249.         g.drawString("Current State: " + state, 27, 384);
  250.         g.drawString("Run Time:  " + hours + ":" + minutes + ":" + seconds, 261, 384);
  251.         g.drawString("Exp Next Lvl: " + xpRemaining, 26, 412);
  252.         g.drawString("Gained: " + gainedXP + " Exp", 260, 412);
  253.         g.drawString("Chopping: " + selectedTree, 27, 440);
  254.         g.drawString("Version: " + "1.5", 261, 440);
  255.         g.setFont(font2);
  256.         g.setColor(color2);
  257.         g.drawString("CryptCutter", 425, 338);
  258.             g.setColor(color3);
  259.             g.drawString("Next Tree", objects.getNearest(treeID).getLocation().getX(), objects.getNearest(treeID).getLocation().getY());
  260.             g.drawLine(0, (int)(mouse.getLocation().getY()), 800, (int)(mouse.getLocation().getY()));
  261.             g.drawLine((int)(mouse.getLocation().getX()), 0, (int)(mouse.getLocation().getX()), 800);
  262.         }
  263.        
  264.     public int loop() {
  265.         if(random(1, 500) > 200) {
  266.             antiBan();
  267.             }
  268.         if(c2d2 && inventory.isFull()) {
  269.             chop2drop2();
  270.         }
  271.         if(!c2d2 && !inventory.isFull()) {
  272.             if (getMyPlayer().isIdle()) {
  273.                 state = "Chopping";
  274.                 chop();
  275.             }
  276.         }
  277.         if(!c2d2 && inventory.isFull()) {
  278.             if (getMyPlayer().isIdle()) {
  279.                 state = "Dropping";
  280.                 drop();
  281.             }      
  282.         }
  283.         if(!walking.isRunEnabled() && walking.getEnergy() > 60){
  284.             state = "Enabling Run";
  285.             walking.setRun(true);
  286.         }
  287.         return random(300, 600);
  288.     }
  289.  
  290.     public class CryptCutterGUI extends JFrame {
  291.         public CryptCutterGUI() {
  292.             initComponents();
  293.         }
  294.  
  295.         private void startActionPerformed(ActionEvent e) {
  296.          if(comboboxtree.getSelectedItem().toString().equals("Regular Tree")){
  297.             treeID = normalTree;
  298.             logID = normalLog;
  299.             c2d2 = true;
  300.             selectedTree = "Regular Trees";
  301.          }
  302.          if(comboboxtree.getSelectedItem().toString().equals("Oak Tree")){
  303.              treeID = oakTree;
  304.              logID = oakLog;
  305.              selectedTree = "Oak Trees";
  306.          }
  307.          if(comboboxtree.getSelectedItem().toString().equals("Willow Tree")){
  308.              treeID = willowTree;
  309.              logID = willowLog;
  310.              selectedTree = "Willow Trees";
  311.          }
  312.          if(comboboxtree.getSelectedItem().toString().equals("Maple Tree")){
  313.              treeID = mapleTree;
  314.              logID = mapleLog;
  315.              selectedTree = "Maple Trees";
  316.          }
  317.          if(comboboxtree.getSelectedItem().toString().equals("Yew Tree")){
  318.              treeID = yewTree;
  319.              logID = yewLog;
  320.              selectedTree = "Yew Trees";
  321.          }
  322.          setVisible(false);
  323.          dispose();
  324.         }
  325.  
  326.         private void quitActionPerformed(ActionEvent e) {
  327.             log("Thanks for using CryptCutter!");
  328.             setVisible(false);
  329.             dispose();
  330.             stopScript();
  331.         }
  332.  
  333.         private void initComponents() {
  334.             title = new JLabel();
  335.             start = new JButton();
  336.             quit = new JButton();
  337.             comboboxtree = new JComboBox();
  338.  
  339.  
  340.             setTitle("CryptCutter v1.0");
  341.             setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
  342.             setResizable(false);
  343.             Container contentPane = getContentPane();
  344.             contentPane.setLayout(null);
  345.  
  346.  
  347.             title.setText("CryptCutter");
  348.             title.setFont(new Font("Tahoma", Font.BOLD, 18));
  349.             contentPane.add(title);
  350.             title.setBounds(new Rectangle(new Point(30, 5), title.getPreferredSize()));
  351.  
  352.  
  353.             start.setText("Start");
  354.             start.addActionListener(new ActionListener() {
  355.                 public void actionPerformed(ActionEvent e) {
  356.                     startActionPerformed(e);
  357.                 }
  358.             });
  359.             contentPane.add(start);
  360.             start.setBounds(new Rectangle(new Point(145, 135), start.getPreferredSize()));
  361.  
  362.  
  363.             quit.setText("Quit");
  364.             quit.addActionListener(new ActionListener() {
  365.                 public void actionPerformed(ActionEvent e) {
  366.                     quitActionPerformed(e);
  367.                 }
  368.             });
  369.             contentPane.add(quit);
  370.             quit.setBounds(new Rectangle(new Point(5, 135), quit.getPreferredSize()));
  371.  
  372.  
  373.             comboboxtree.setModel(new DefaultComboBoxModel(new String[] {
  374.                 "Regular Tree",
  375.                 "Oak Tree",
  376.                 "Willow Tree",
  377.                 "Maple Tree",
  378.                 "Yew Tree",
  379.             }));
  380.             contentPane.add(comboboxtree);
  381.             comboboxtree.setBounds(50, 70, 110, comboboxtree.getPreferredSize().height);
  382.  
  383.             {
  384.                 Dimension preferredSize = new Dimension();
  385.                 for(int i = 0; i < contentPane.getComponentCount(); i++) {
  386.                     Rectangle bounds = contentPane.getComponent(i).getBounds();
  387.                     preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
  388.                     preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
  389.                 }
  390.                 Insets insets = contentPane.getInsets();
  391.                 preferredSize.width += insets.right;
  392.                 preferredSize.height += insets.bottom;
  393.                 contentPane.setMinimumSize(preferredSize);
  394.                 contentPane.setPreferredSize(preferredSize);
  395.             }
  396.             pack();
  397.             setLocationRelativeTo(getOwner());
  398.         }
  399.  
  400.         private JLabel title;
  401.         private JButton start;
  402.         private JButton quit;
  403.         private JComboBox comboboxtree;
  404.     }
  405.    
  406. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top