Advertisement
Rudie221

ShieldTaker3000

Jul 2nd, 2011
469
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 11.23 KB | None | 0 0
  1. import java.awt.*;
  2. import java.io.IOException;
  3. import java.net.URL;
  4.  
  5. import javax.imageio.ImageIO;
  6.  
  7. import org.rsbot.event.listeners.PaintListener;
  8. import org.rsbot.script.Script;
  9. import org.rsbot.script.ScriptManifest;
  10. import org.rsbot.script.wrappers.RSNPC;
  11. import org.rsbot.script.wrappers.RSObject;
  12. import org.rsbot.script.wrappers.RSTile;
  13. import org.rsbot.script.wrappers.RSTilePath;
  14.  
  15. @ScriptManifest(
  16.         authors = {"Rudie"},
  17.         version = 1.0,
  18.         keywords = ("money, moneymaking, shield, rudie"),
  19.         description = "Takes Anti-Dragon Shields from The duke dude",
  20.         name = "ShieldTaker3000"
  21. )
  22. public class ShieldTaker extends Script implements PaintListener {
  23.    
  24.     private final static int duke_ID = 741;
  25.     private final static int door_ID = 36844;
  26.     public int wtf = 1;
  27.     private final static int dstairID = 36778;
  28.     private final static int ustairID = 36777;
  29.     private final static int booth_ID = 36786;
  30.     private final static int shield_ID = 1540;
  31.     long startTime;
  32.     int oresMined = 0;
  33.     private int shieldPrice = 0;    
  34.    
  35.     RSTile[] duke = {new RSTile(3210, 3222, 1), new RSTile(3205, 3228, 1)};
  36.     RSTilePath toDuke;
  37.    
  38.     RSTile[] toBank = {new RSTile(3205, 3228, 2), new RSTile(3208, 3220, 2)};
  39.     RSTilePath toStairs;
  40.    
  41.     public boolean onStart() {
  42.         mouse.setSpeed(random(3, 5));
  43.         toStairs = walking.newTilePath(toBank);
  44.         toDuke = walking.newTilePath(duke);
  45.         startTime = System.currentTimeMillis();
  46.         shieldPrice = grandExchange.lookup(shield_ID).getGuidePrice(); 
  47.         log(new Color (255, 102, 0), "Welcome to ShieldTaker3000.");
  48.         log(new Color (255, 102, 0), "Current Anti-Dragon shield price is: " + shieldPrice);
  49.         log(new Color (255, 102, 0), "Please report bugs.");
  50.         log(new Color (255, 102, 0), "Happy Botting");
  51.        
  52.         return true;
  53.     }
  54.    
  55.     public int loop() {
  56.     if(!inventory.isFull()) {
  57.         if(atDuke()) {
  58.             takeShield();
  59.             } else if(atDown()) {
  60.                 goDown();
  61.                 } else {
  62.                     duke();
  63.                     stairs();
  64.                 }
  65.                     } else {
  66.                         if(inventory.isFull()) {
  67.                             if(atBank()) {
  68.                                 doBank();
  69.                             } else if(atDoor()) {
  70.                                 openDoor();
  71.                             } else if(atUp()) {
  72.                                 goUp();
  73.                             } else {
  74.                                 toDuke();
  75.                                 toStairs();
  76.                             }
  77.                     }
  78.                        
  79.                     }
  80.         return random(600, 800);
  81.     }
  82.    
  83.      public void takeShield() {
  84.             RSNPC duke = npcs.getNearest(duke_ID);
  85.             if (duke != null) {
  86.                 if (interfaces.get(241).isValid()) {
  87.                     interfaces.clickContinue();
  88.                     sleep(800+(200 * wtf), 1000+(200 * wtf));
  89.                     AntiBanCamera();
  90.                 } else if (interfaces.get(230).getComponent(2).isValid()) {
  91.                     interfaces.get(230).getComponent(2).doClick();
  92.                     sleep(800+(200 * wtf), 1000+(200 * wtf));
  93.                     AntiBanCamera();
  94.                 } else if (interfaces.get(64).getComponent(5).isValid()) {
  95.                     interfaces.get(64).getComponent(5).doClick();
  96.                     sleep(800+(200 * wtf), 1000+(200 * wtf));
  97.                     AntiBanCamera();
  98.                 } else if (interfaces.get(242).getComponent(6).isValid()) {
  99.                     interfaces.get(242).getComponent(6).doClick();
  100.                     sleep(800+(200 * wtf), 1000+(200 * wtf));
  101.                     AntiBanCamera();
  102.                 } else if (interfaces.get(65).getComponent(6).isValid()) {
  103.                     interfaces.get(65).getComponent(6).doClick();
  104.                     sleep(800+(200 * wtf), 1000+(200 * wtf));
  105.                     oresMined++;
  106.                     AntiBanCamera();
  107.                 } else {
  108.                     duke.doAction("Talk-to");
  109.                     sleep(600+(200 * wtf), 800+(200 * wtf));
  110.                     AntiBanCamera();
  111.                 }
  112.             }
  113.         }
  114.  
  115.    
  116.     private boolean atDuke() {
  117.         RSNPC duke = npcs.getNearest(duke_ID);
  118.         if(duke != null) {
  119.             if(duke.isOnScreen()) {
  120.                 return true;
  121.             }
  122.         }
  123.         return false;
  124. }
  125.    
  126.     private void duke() {
  127.         toDuke.reverse();
  128.         toDuke.traverse();
  129.         toDuke.reverse();
  130.         AntiBanCamera();
  131.     }
  132.  
  133.     private void toDuke() {
  134.         toDuke.traverse();
  135.         AntiBanCamera();
  136.     }
  137.    
  138.     private void stairs() {
  139.         toStairs.reverse();
  140.         toStairs.traverse();
  141.         toStairs.reverse();
  142.         AntiBanCamera();
  143.     }
  144.  
  145.     private void toStairs() {
  146.         toStairs.traverse();
  147.         AntiBanCamera();
  148.     }
  149.    
  150.     private void openDoor() {
  151.         RSObject door = objects.getNearest(door_ID);
  152.         if (door != null && getMyPlayer().getAnimation() == -1) {
  153.             door.doAction("Open");
  154.             AntiBanCamera();
  155.         }
  156.         sleep(1000, 2500);
  157.     }
  158.    
  159.     private void goDown() {
  160.         RSObject ladder = objects.getNearest(dstairID);
  161.         if (ladder != null && getMyPlayer().getAnimation() == -1) {
  162.             ladder.doAction("Climb-down");
  163.             AntiBanCamera();
  164.         }
  165.         sleep(1000, 2500);
  166.     }
  167.    
  168.     private void goUp() {
  169.         RSObject ladder = objects.getNearest(ustairID);
  170.         if (ladder != null && getMyPlayer().getAnimation() == -1) {
  171.             ladder.doAction("Climb-up");
  172.             AntiBanCamera();
  173.         }
  174.         sleep(1000, 2500);
  175.     }
  176.    
  177.     private boolean atDoor() {
  178.         RSObject door = objects.getNearest(door_ID);
  179.         if(door != null) {
  180.             if(door.isOnScreen()) {
  181.                 return true;
  182.             }
  183.         }
  184.         return false;
  185. }
  186.    
  187.     private void doBank() {
  188.         if(bank.isOpen()) {
  189.             bank.depositAll();
  190.             sleep(800, 1200);
  191.         } else {
  192.             bank.open();
  193.             sleep(1800, 2200);
  194.         }
  195.     }
  196.    
  197.     private boolean atBank() {
  198.         RSObject bank = objects.getNearest(booth_ID);
  199.         if(bank != null) {
  200.             if(bank.isOnScreen()) {
  201.                 return true;
  202.             }
  203.         }
  204.         return false;
  205.     }
  206.    
  207.     private boolean atDown() {
  208.         RSObject ladder = objects.getNearest(dstairID);
  209.         if(ladder != null) {
  210.             if(ladder.isOnScreen()) {
  211.                 return true;
  212.             }
  213.         }
  214.         return false;
  215. }
  216.    
  217.     private boolean atUp() {
  218.         RSObject ladder = objects.getNearest(ustairID);
  219.         if(ladder != null) {
  220.             if(ladder.isOnScreen()) {
  221.                 return true;
  222.             }
  223.         }
  224.         return false;
  225. }
  226.    
  227.     public void onFinish() {
  228.         log(new Color (255, 102, 0), "Thank you for using ShieldTaker3000 By Rudie");
  229.     }
  230.    
  231.     ////////////////////
  232.     ///////paint///////
  233.     //////////////////
  234.     private Image getImage(String url) {
  235.         try {
  236.             return ImageIO.read(new URL(url));
  237.         } catch(IOException e) {
  238.             return null;
  239.         }
  240.     }
  241.  
  242.     private final Color color1 = new Color(255, 102, 0);
  243.     private final Color color2 = new Color(255, 102, 0, 158);
  244.     private final Color color3 = new Color(255, 255, 255);
  245.  
  246.     private final BasicStroke stroke1 = new BasicStroke(1);
  247.  
  248.     private final Font font1 = new Font("Comic Sans MS", 2, 32);
  249.     private final Font font2 = new Font("Comic Sans MS", 0, 15);
  250.     private final Font font3 = new Font("Comic Sans MS", 2, 23);
  251.  
  252.     private final Image img1 = getImage("http://i52.tinypic.com/2yx3nva.gif");
  253.  
  254.     public void onRepaint(Graphics g) {
  255.         drawModel(g, npcs.getNearest(duke_ID), new Color (255, 102, 0), "Duke Horacio", Color.WHITE);
  256.         drawModell(g, objects.getNearest(booth_ID), new Color (255, 102, 0), "Bank Booth", Color.WHITE);
  257.         drawModell(g, objects.getNearest(dstairID), new Color (255, 102, 0), "Stairs", Color.WHITE);
  258.         drawModell(g, objects.getNearest(ustairID), new Color (255, 102, 0), "Stairs", Color.WHITE);
  259.         drawModell(g, objects.getNearest(door_ID), new Color (255, 102, 0), "Door", Color.WHITE);
  260.        
  261.         long millis = System.currentTimeMillis() - startTime;
  262.         long hours = millis / (1000 * 60 * 60);
  263.         millis -= hours * (1000 * 60 * 60);
  264.         long minutes = millis / (1000 * 60);
  265.         millis -= minutes * (1000 * 60);
  266.         long seconds = millis / 1000;
  267.        
  268.         float oresec = 0;
  269.         if((minutes > 0 || hours > 0 || seconds > 0)&& oresMined > 0) {
  270.             oresec = ((float) oresMined)/(float)(seconds + (minutes*60) + (hours*60*60));
  271.         }
  272.         float oremin = oresec * 60;
  273.         float orehour = oremin * 60;
  274.        
  275.         float profitsec = 0;
  276.         if((minutes > 0 || hours > 0 || seconds > 0)&& oresMined*shieldPrice > 0) {
  277.             profitsec = ((float) oresMined*shieldPrice)/(float)(seconds + (minutes*60) + (hours*60*60));
  278.         }
  279.         float profitmin = profitsec * 60;
  280.         float profithour = profitmin * 60;
  281.        
  282.         Graphics2D g1 = (Graphics2D)g;
  283.         g1.setFont(font1);
  284.         g1.setColor(color1);
  285.         g1.drawString("ShieldTaker3000", 2, 338);
  286.         g1.setColor(color2);
  287.         g1.fillRoundRect(546, 205, 190, 185, 16, 16);
  288.         g1.setColor(color3);
  289.         g1.setStroke(stroke1);
  290.         g1.drawRoundRect(546, 205, 190, 185, 16, 16);
  291.         g1.setFont(font2);
  292.         g1.drawString("Shields Taked: " + oresMined, 547, 260);
  293.         g1.drawString("Shields/H: " + (int) orehour, 547, 275);
  294.         g1.drawString("Profit: " + oresMined*shieldPrice, 547, 290);
  295.         g1.drawString("Profit/H: " + (int) profithour, 547, 305);
  296.         g1.drawImage(img1, 579, 306, null);
  297.         g1.setFont(font3);
  298.         g1.setColor(color1);
  299.         g1.drawString("ShieldTaker3000", 545, 225);
  300.         g1.setFont(font2);
  301.         g1.setColor(color3);
  302.         g1.drawString("RunTime: " + hours + ":" + minutes + ":" + seconds, 547, 245);
  303.         g1.setColor(new Color (255, 102, 0));
  304.         g1.drawLine(0, (int)(mouse.getLocation().getY()), 800, (int)(mouse.getLocation().getY()));
  305.         g1.drawLine((int)(mouse.getLocation().getX()), 0, (int)(mouse.getLocation().getX()), 800);
  306.     }
  307.    
  308.     public void drawModel(Graphics g, RSNPC rsnpc, Color c, String s, Color tc) {
  309.         if(rsnpc != null) {
  310.             Polygon[] model = rsnpc.getModel().getTriangles();
  311.                     Point point = calc.tileToScreen(rsnpc.getLocation());
  312.             for(Polygon p : model)  {
  313.                 g.setColor(c);
  314.                 g.fillPolygon(p);
  315.                             g.setColor(c.darker());
  316.                 g.drawPolygon(p);
  317.             }
  318.  
  319.             g.setColor(tc);
  320.             g.drawString(s, point.x - 75, point.y - 35);
  321.             }
  322.             }
  323.             public RSTile[] reversePath(RSTile[] other) {
  324.                     RSTile[] t = new RSTile[other.length];
  325.                     for (int i = 0; i < t.length; i++) {
  326.                             t[i] = other[other.length - i - 1];
  327.                     }
  328.                     return t;
  329.             }
  330.            
  331.             public void drawModell(Graphics g, RSObject o, Color c, String s, Color tc) {
  332.                 if(o != null) {
  333.                     Polygon[] model = o.getModel().getTriangles();
  334.                             Point point = calc.tileToScreen(o.getLocation());
  335.                     for(Polygon p : model)  {
  336.                         g.setColor(c);
  337.                         g.fillPolygon(p);
  338.                                     g.setColor(c.darker());
  339.                         g.drawPolygon(p);
  340.                     }
  341.  
  342.                     g.setColor(tc);
  343.                     g.drawString(s, point.x - 75, point.y - 35);
  344.                     }
  345.                     }
  346.                     public RSTile[] reversePath1(RSTile[] other) {
  347.                             RSTile[] t = new RSTile[other.length];
  348.                             for (int i = 0; i < t.length; i++) {
  349.                                     t[i] = other[other.length - i - 1];
  350.                             }
  351.                             return t;
  352.                     }
  353.    
  354.      private void AntiBanCamera() {
  355.             int randomNum = random(1, 50);
  356.             if (randomNum == 1 || randomNum == 2 || randomNum == 3) {
  357.               camera.moveRandomly(random(2000, 5500));
  358.             }
  359.             if (randomNum == 4 || randomNum == 5) {
  360.               camera.setAngle(random(10, 40));
  361.             }
  362.             if (randomNum == 6) {
  363.               camera.setPitch(random(40, 68));
  364.             }
  365.             if (randomNum == 7) {
  366.               camera.setPitch(random(20, 45));
  367.             }
  368.             if (randomNum == 8) {
  369.               camera.setPitch(random(68, 90));
  370.             } else
  371.               sleep(50, 70);
  372.           }
  373. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement