Advertisement
Rudie221

MultiCooker V1.1

Sep 7th, 2012
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 14.25 KB | None | 0 0
  1. import java.awt.*;
  2. import java.awt.event.*;
  3.  
  4. import javax.swing.*;
  5. import java.awt.Color;
  6. import javax.imageio.ImageIO;
  7. import java.io.IOException;
  8. import java.net.URL;
  9.  
  10. import com.rarebot.event.events.MessageEvent;
  11. import com.rarebot.event.listeners.MessageListener;
  12. import com.rarebot.event.listeners.PaintListener;
  13. import com.rarebot.script.Script;
  14. import com.rarebot.script.ScriptManifest;
  15. import com.rarebot.script.methods.Skills;
  16. import com.rarebot.script.wrappers.RSComponent;
  17. import com.rarebot.script.wrappers.RSItem;
  18. import com.rarebot.script.wrappers.RSObject;
  19. import com.rarebot.script.wrappers.RSTile;
  20. import com.rarebot.script.wrappers.RSWeb;
  21.  
  22. ///////////////////////////////////////////////////
  23. ///             Rudie's MultiCooker             ///
  24. ///        Credits to: HeWhoReturneth for V1.1  ///
  25. ///         I'd like to thank him.              ///
  26. ///////////////////////////////////////////////////
  27.  
  28.  
  29. @ScriptManifest(
  30.         authors = {"Rudie"},
  31.         version = 1.1,
  32.         keywords = ("cooker, cooking, aio, rudie"),
  33.         description = "Cooks all types of food!",
  34.         name = "MultiCooker"
  35. )
  36. public class MultiCooker extends Script implements PaintListener, MessageListener, MouseListener {
  37.    
  38.     public int foodID;
  39.     public int rangeID = 25730;
  40.     public int[] boothID = {};
  41.    
  42.     RSTile Banktile = new RSTile(3270, 3167, 0);
  43.     RSTile Rangetile = new RSTile(3273, 3180, 0);
  44.    
  45.     long startTime;
  46.     private String status = "Loading...";
  47.    
  48.        int expGained = 0;
  49.        int startExp = 0;
  50.        int foodCooked = 0;
  51.        int foodBurnt = 0;
  52.        int gainedLvl = 0;
  53.        private static boolean hide = false;
  54.        public boolean showPaint = true ;
  55.        public boolean clicked = false;
  56.    
  57.     MultiCookerGUI g;
  58.     private boolean guiWait = true;
  59.    
  60.     public boolean onStart() {
  61.         log(Color.RED, "Welcome to MultiCooker.");
  62.         startTime = System.currentTimeMillis();
  63.         mouse.setSpeed(random(5, 7));
  64.         startExp = skills.getCurrentExp(Skills.COOKING);
  65.         try {
  66.             SwingUtilities.invokeAndWait(new Runnable() {
  67.  
  68.                 public void run() {
  69.                     g = new MultiCookerGUI();
  70.                     g.setVisible(true);
  71.                 }
  72.             });
  73.         } catch (Throwable e) {
  74.             log("Fail.");
  75.         }
  76.        
  77.         while(guiWait) sleep(500);
  78.        
  79.         return true;
  80.     }
  81.  
  82.     @Override
  83.     public int loop() {
  84.         RSObject r = objects.getNearest(rangeID);
  85.         if(inventory.contains(foodID) && r.isOnScreen()) {
  86.             cook();
  87.             AntiBan();
  88.             AntiBanCamera();
  89.         } else {
  90.             if(!inventory.contains(foodID)) {
  91.             walktoBank();
  92.         }
  93.         }
  94.             if(!inventory.contains(foodID)) {
  95.                 doBank();
  96.         } else {
  97.             walktoRange();
  98.             }
  99.         return random(300, 400);
  100.     }
  101.  
  102.     private void walktoBank() {
  103.             RSWeb walkWeb = web.getWeb(Banktile);
  104.             if (walkWeb != null && !walkWeb.finished()) {
  105.                 walkWeb.step();
  106.                 sleep(200, 300);
  107.                 clicked = false;
  108.             } else if (walkWeb == null) {
  109.                 walkWeb = web.getWeb(Banktile);
  110.                 clicked = false;
  111.             }}
  112.    
  113.     private void walktoRange() {
  114.             RSWeb walkWeb = web.getWeb(Rangetile);
  115.             if (walkWeb != null && !walkWeb.finished()) {
  116.                 walkWeb.step();
  117.                 sleep(200, 300);
  118.             } else if (walkWeb == null) {
  119.                 walkWeb = web.getWeb(Rangetile);
  120.             }}
  121.  
  122.     private void cook() {
  123.         RSItem f = inventory.getItem(foodID);
  124.         RSObject r = objects.getNearest(rangeID);
  125.         if(r != null && getMyPlayer().getAnimation() == -1 && !cookingInterface().isValid() && clicked == false) {
  126.             camera.turnTo(r);
  127.             status = "Cooking";
  128.             sleep(1500, 2000);
  129.             inventory.selectItem(foodID);//Was "f.interact("Use");"
  130.             //sleep(500, 1000);//Removed for speed
  131.             r.interact("Use", f.getName()+ " -> " + r.getName());//Was r.doClick();
  132.             sleep(700, 850);//Was "sleep(2000, 2250);"
  133.         } else {
  134.             if (cookingInterface().isValid()) {
  135.                     interfaces.getComponent(905, 14).doClick();
  136.                     clicked = true;
  137.                     status = "Cooking";
  138.                 sleep(1200, 1400);
  139.             }
  140.         }
  141.     }
  142.  
  143.     private void doBank() {
  144.         if (bank.isOpen()) {
  145.             if (inventory.getCountExcept(foodID) > 0) {
  146.                 if (bank.depositAll()) {
  147.                     status = "Banking";
  148.                     sleep(100,150);//Changing sleep time to make faster
  149.                     //sleep(400, 450);
  150.                 }
  151.             }
  152.             if (!inventory.contains(foodID)) {
  153.                 if (bank.getCount(foodID) > 0) {
  154.                     if (bank.withdraw(foodID, 0)) {
  155.                         status = "Banking";
  156.                         sleep(100,150);
  157.                         //sleep(250, 300);
  158.                     }}}
  159.         } else {
  160.             bank.open();
  161.             status = "Banking";
  162.             sleep(250,350);//Changing sleep time to make faster
  163.             //sleep(1000, 1200);
  164.         }
  165.     }
  166.    
  167.     private RSComponent cookingInterface() {
  168.         return interfaces.getComponent(905, 14);
  169.     }
  170.    
  171.     @Override
  172.     public void messageReceived(MessageEvent e) {
  173.         String txt = e.getMessage().toLowerCase();
  174.         if(txt.contains("successfully"))  {
  175.             foodCooked++;
  176.         }
  177.         if(txt.contains("burn")) {
  178.             foodBurnt++;
  179.         }
  180.         if(txt.contains("cooking level")) {
  181.             gainedLvl++;
  182.         }
  183.     }
  184.    
  185.     private Image getImage(String url) {
  186.         try {
  187.             return ImageIO.read(new URL(url));
  188.         } catch(IOException e) {
  189.             return null;
  190.         }
  191.     }
  192.  
  193.     private final Color color1 = new Color(255, 255, 255);
  194.     private final Color color2 = new Color(255, 255, 255, 0);
  195.     private final Color color3 = new Color(178, 34, 34);
  196.  
  197.     private final BasicStroke stroke1 = new BasicStroke(1);
  198.  
  199.     private final Font font1 = new Font("Arial", 1, 14);
  200.  
  201.     private final Image img1 = getImage("http://epicscape668.org/images/cook.png");
  202.  
  203.     public void onRepaint(Graphics g) {
  204.         expGained = skills.getCurrentExp(Skills.COOKING) - startExp;
  205.        
  206.         long millis = System.currentTimeMillis() - startTime;
  207.         long hours = millis / (1000 * 60 * 60);
  208.         millis -= hours * (1000 * 60 * 60);
  209.         long minutes = millis / (1000 * 60);
  210.         millis -= minutes * (1000 * 60);
  211.         long seconds = millis / 1000;
  212.        
  213.         float xpsec = 0;
  214.         if((minutes > 0 || hours > 0 || seconds > 0)&& expGained > 0) {
  215.             xpsec = ((float) expGained)/(float)(seconds + (minutes*60) + (hours*60*60));
  216.         }
  217.         float xpmin = xpsec * 60;
  218.         float xphour = xpmin * 60;
  219.        
  220.         float foodsec = 0;
  221.         if((minutes > 0 || hours > 0 || seconds > 0)&& foodCooked > 0) {
  222.             foodsec = ((float) foodCooked)/(float)(seconds + (minutes*60) + (hours*60*60));
  223.         }
  224.         float foodmin = foodsec * 60;
  225.         float foodhour = foodmin * 60;
  226.        
  227.         Graphics2D g1 = (Graphics2D)g;
  228.         g1.setColor(color2);
  229.         g1.fillRect(336, 396, 75, 17);//fixing paint. Was "(336, 346, 75, 17)"
  230.         g1.setColor(color3);
  231.         g1.setStroke(stroke1);
  232.         g1.drawRect(336, 396, 75, 17);//fixing paint. Was "(336, 346, 75, 17)"
  233.         g1.drawString("Show", 357, 410);//fixing paint. Was "("Show", 357, 360)"
  234.         g.setColor(Color.WHITE);
  235.         g.drawLine(0, (int)(mouse.getLocation().getY()), 800, (int)(mouse.getLocation().getY()));
  236.         g.drawLine((int)(mouse.getLocation().getX()), 0, (int)(mouse.getLocation().getX()), 800);
  237.         if(!hide) {
  238.         g1.drawImage(img1, -7, 20, null);//fixing paint. Was "(img1, -7, -30, null)"
  239.         g1.setFont(font1);
  240.         g1.setColor(color1);
  241.         g1.drawString("" + hours + ":" + minutes + ":" + seconds, 120, 441);//fixing paint. Was "seconds, 120, 391)"
  242.         g1.drawString("" + expGained, 139, 466);//fixing paint. Was "expGained, 139, 416)"
  243.         g1.drawString("" + (int) xphour, 96, 494);//fixing paint. Was "xphour, 96, 444)"
  244.         g1.drawString("" + foodBurnt, 146, 520);//fixing paint. Was "foodBurnt, 146, 470)"
  245.         g1.drawString("" + foodCooked, 409, 441);//fixing paint. Was "foodCooked, 409, 391)"
  246.         g1.drawString("" + (int) foodhour, 355, 465);//fixing paint. Was "foodhour, 355, 415)"
  247.         g1.drawString("" + status, 345, 493);//fixing paint. Was " status, 345, 443"
  248.         g1.drawString("" + gainedLvl + " (C:"+skills.getCurrentLevel(Skills.COOKING)+")", 407, 521);//fixing paint. Was "407, 471)"
  249.         g1.setColor(color2);
  250.         g1.fillRect(336, 396, 75, 17);//fixing paint. Was"(336, 346, 75, 17)"
  251.         g1.setColor(color1);
  252.         g1.setStroke(stroke1);
  253.         g1.drawRect(336, 396, 75, 17);//fixing paint. Was"(336, 346, 75, 17)"
  254.         g1.drawString("Hide", 357, 410);//fixing paint. Was"("Hide", 357, 360)"
  255.         g.setColor(Color.WHITE);
  256.         g.drawLine(0, (int)(mouse.getLocation().getY()), 800, (int)(mouse.getLocation().getY()));
  257.         g.drawLine((int)(mouse.getLocation().getX()), 0, (int)(mouse.getLocation().getX()), 800);
  258.         }
  259.         }
  260.  
  261.     @Override
  262.     public void mouseClicked(MouseEvent e) {
  263.         final Rectangle rect = new Rectangle(336, 396, 75, 17);//fixing paint. Was "(336, 346, 75, 17)"
  264.         final Point p = e.getPoint();
  265.         if (rect.contains(p) && !hide) {
  266.             hide = true;
  267.         } else if (rect.contains(p) && hide) {
  268.             hide = false;
  269.         }
  270.     }
  271.    
  272.       private void AntiBanCamera() {
  273.             int randomNum = random(1, 160);
  274.             if (randomNum == 1 || randomNum == 2 || randomNum == 3) {
  275.               camera.moveRandomly(random(2000, 5500));
  276.             }
  277.             if (randomNum == 4 || randomNum == 5) {
  278.               camera.setAngle(random(10, 40));
  279.             }
  280.             if (randomNum == 6) {
  281.               camera.setPitch(random(40, 68));
  282.             }
  283.             if (randomNum == 7) {
  284.               camera.setPitch(random(20, 45));
  285.             }
  286.             if (randomNum == 8) {
  287.               camera.setPitch(random(68, 90));
  288.             } else
  289.               sleep(50, 70);
  290.           }
  291.      
  292.       @SuppressWarnings("deprecation")
  293.     private void AntiBan() {
  294.             int randomProd = random(1, 60);
  295.             if (randomProd == 1) {
  296.               int randomMore = random(1, 5);
  297.               if (randomMore == 1) {
  298.                 if (game.getCurrentTab() != 2) {
  299.                   game.openTab(2);
  300.                   sleep(350, 500);
  301.                   skills.doHover(Skills.COOKING);
  302.                   sleep(2000, 3500);
  303.                 } else {
  304.                   mouse.move(random(678, 728), random(213, 232));
  305.                   sleep(2000, 3500);
  306.                 }
  307.               } else {
  308.                 sleep(1200, 2500);
  309.               }
  310.             }
  311.             if (randomProd == 2 || randomProd == 3 || randomProd == 4) {
  312.               sleep(1000, 2500);
  313.             }
  314.             if (randomProd >= 52) {
  315.               mouse.moveRandomly(65, 350);
  316.             } else
  317.               sleep(10, 30);
  318.           }
  319.    
  320.     public void onFinish() {
  321.         log(Color.RED, "Thanks for using: MultiCooker!");
  322.         env.saveScreenshot(true);
  323.     }
  324.    
  325.      class MultiCookerGUI extends JFrame {
  326.          /**
  327.              *
  328.              */
  329.             private static final long serialVersionUID = 1L;
  330.             public MultiCookerGUI() {
  331.                 initComponents();
  332.             }
  333.  
  334.             private void startActionPerformed(ActionEvent e) {
  335.                 foodID = Integer.parseInt(foodfield.getText());
  336.                 guiWait = false;
  337.                 g.dispose();
  338.             }
  339.  
  340.             private void initComponents() {
  341.                 // JFormDesigner - Component initialization - DO NOT MODIFY  //GEN-BEGIN:initComponents
  342.                 // Generated using JFormDesigner Evaluation license - Rudie Visser
  343.                 label1 = new JLabel();
  344.                 start = new JButton();
  345.                 label2 = new JLabel();
  346.                 label3 = new JLabel();
  347.                 foodfield = new JTextField();
  348.  
  349.                 //======== this ========
  350.                 setTitle("MultiCooker GUI");
  351.                 Container contentPane = getContentPane();
  352.  
  353.                 //---- label1 ----
  354.                 label1.setText("MultiCooker GUI");
  355.                 label1.setForeground(Color.red);
  356.                 label1.setFont(new Font("Tahoma", Font.PLAIN, 48));
  357.  
  358.                 //---- start ----
  359.                 start.setText("Start Cooking!");
  360.                 start.addActionListener(new ActionListener() {
  361.                     @Override
  362.                     public void actionPerformed(ActionEvent e) {
  363.                         startActionPerformed(e);
  364.                     }
  365.                 });
  366.  
  367.                 //---- label2 ----
  368.                 label2.setText("To start cooking simply fill in your food id what you want to cook:");
  369.  
  370.                 //---- label3 ----
  371.                 label3.setText("And then press: \"Start Cooking\".");
  372.  
  373.                 GroupLayout contentPaneLayout = new GroupLayout(contentPane);
  374.                 contentPane.setLayout(contentPaneLayout);
  375.                 contentPaneLayout.setHorizontalGroup(
  376.                     contentPaneLayout.createParallelGroup()
  377.                         .addGroup(contentPaneLayout.createSequentialGroup()
  378.                             .addContainerGap()
  379.                             .addComponent(label1)
  380.                             .addContainerGap(14, Short.MAX_VALUE))
  381.                         .addGroup(GroupLayout.Alignment.TRAILING, contentPaneLayout.createSequentialGroup()
  382.                             .addContainerGap(31, Short.MAX_VALUE)
  383.                             .addComponent(label2)
  384.                             .addGap(27, 27, 27))
  385.                         .addGroup(contentPaneLayout.createSequentialGroup()
  386.                             .addGap(95, 95, 95)
  387.                             .addComponent(label3)
  388.                             .addContainerGap(117, Short.MAX_VALUE))
  389.                         .addGroup(contentPaneLayout.createSequentialGroup()
  390.                             .addGap(123, 123, 123)
  391.                             .addComponent(start, GroupLayout.PREFERRED_SIZE, 123, GroupLayout.PREFERRED_SIZE)
  392.                             .addContainerGap(123, Short.MAX_VALUE))
  393.                         .addGroup(contentPaneLayout.createSequentialGroup()
  394.                             .addGap(43, 43, 43)
  395.                             .addComponent(foodfield, GroupLayout.PREFERRED_SIZE, 283, GroupLayout.PREFERRED_SIZE)
  396.                             .addContainerGap(43, Short.MAX_VALUE))
  397.                 );
  398.                 contentPaneLayout.setVerticalGroup(
  399.                     contentPaneLayout.createParallelGroup()
  400.                         .addGroup(contentPaneLayout.createSequentialGroup()
  401.                             .addContainerGap()
  402.                             .addComponent(label1)
  403.                             .addGap(41, 41, 41)
  404.                             .addComponent(label2)
  405.                             .addGap(2, 2, 2)
  406.                             .addComponent(label3)
  407.                             .addGap(18, 18, 18)
  408.                             .addComponent(foodfield, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
  409.                             .addGap(27, 27, 27)
  410.                             .addComponent(start, GroupLayout.PREFERRED_SIZE, 52, GroupLayout.PREFERRED_SIZE)
  411.                             .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  412.                 );
  413.                 pack();
  414.                 setLocationRelativeTo(getOwner());
  415.                 // JFormDesigner - End of component initialization  //GEN-END:initComponents
  416.             }
  417.  
  418.             // JFormDesigner - Variables declaration - DO NOT MODIFY  //GEN-BEGIN:variables
  419.             // Generated using JFormDesigner Evaluation license - Rudie Visser
  420.             private JLabel label1;
  421.             private JButton start;
  422.             private JLabel label2;
  423.             private JLabel label3;
  424.             private JTextField foodfield;
  425.             // JFormDesigner - End of variables declaration  //GEN-END:variables
  426.         }
  427.  
  428.     @Override
  429.     public void mouseEntered(MouseEvent arg0) {
  430.         // TODO Auto-generated method stub
  431.        
  432.     }
  433.  
  434.     @Override
  435.     public void mouseExited(MouseEvent arg0) {
  436.         // TODO Auto-generated method stub
  437.        
  438.     }
  439.  
  440.     @Override
  441.     public void mousePressed(MouseEvent arg0) {
  442.         // TODO Auto-generated method stub
  443.        
  444.     }
  445.  
  446.     @Override
  447.     public void mouseReleased(MouseEvent arg0) {
  448.         // TODO Auto-generated method stub
  449.        
  450.     }
  451. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement