Guest User

Untitled

a guest
Apr 16th, 2013
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Groovy 6.25 KB | None | 0 0
  1. import org.osbot.script.Script
  2. import java.awt.Graphics
  3. import java.awt.Toolkit;
  4.  
  5. import org.osbot.script.Constants
  6. import org.osbot.script.ScriptManifest
  7. import org.osbot.script.Script
  8. import org.osbot.script.rs2.map.Position
  9. import org.osbot.script.rs2.Client
  10. import org.osbot.script.rs2.model.RS2Object
  11.  
  12. import java.awt.*;
  13. import javax.imageio.ImageIO;
  14. import java.io.IOException;
  15. import java.net.URL;
  16.  
  17. import javax.swing.JComboBox;
  18. import javax.swing.JOptionPane;
  19. import javax.swing.JPanel;
  20. import java.awt.Color;
  21. import java.awt.Graphics;
  22.  
  23. @ScriptManifest(name = "ZKFightCaves", author = "Zweetkonijn", version = 1.0D, info="Version 1.0 Start outside of the fight caves.")
  24.  
  25. class ZKFightCaves extends Script {
  26.  
  27.     private RS2Object caveEntrance
  28.  
  29.     enum State {
  30.         ENTER, IN_CAVE
  31.     }
  32.  
  33.     int[] caveMonsters = [2734, 2735, 2738, 2736, 2737, 2739, 2740, 702]
  34.     def npc = null
  35.     def starttime = null;
  36.     def entrance = 9356
  37.     def state = State.ENTER
  38.     def runs = 0
  39.     def version = 1.0
  40.     int outside = 9362
  41.     def lvlatt = 0
  42.     def lvlstr = 0
  43.     def lvldefe = 0
  44.     def lvlhp = 0
  45.  
  46.  
  47.     private final Font font1 = new Font("Arial", 0, 16);
  48.     private final Font font2 = new Font("Arial", 1, 12);
  49.    
  50.     private final Image img1 = getImage("http://flbocholt.be/zweetkonijn.png");
  51.  
  52.   private Image getImage(String url) {
  53.         try {
  54.             return ImageIO.read(new URL(url));
  55.         } catch(IOException e) {
  56.             return null;
  57.         }
  58.     }
  59.  
  60.     void onStart() {      
  61.         starttime = System.currentTimeMillis()
  62.         log("Starting...")
  63.     }
  64.  
  65.       void onPaint(Graphics g) {
  66.       g.setColor(Color.darkGray);
  67.       g.setFont(font1)
  68.       g.drawImage(img1, 1, 339, null)
  69.       g.drawString("ZKFightCaves ${version}", 20, 375)
  70.       g.drawString("Runs: ${runs}", 180, 375)
  71.       g.drawString("Runtime: " + format(System.currentTimeMillis() - starttime), 20, 400)
  72.       g.setFont(font2)
  73.       g.drawString("${lvlatt}", 422, 400)
  74.           g.drawString("${lvlstr}", 422, 430)
  75.               g.drawString("${lvldefe}", 422, 465)
  76.                   g.drawString("${lvlhp}", 480, 400)
  77.      
  78.    }
  79.  
  80.  
  81.     void onMessage(String message) {
  82.         if (message == "You have been defeated!") {
  83.             log("Detected death. Entering cave.")
  84.             walk(new Position(2438, 5170, 0))
  85.             client.rotateCameraToAngle(180)
  86.             sleep(1000 + gRandom(500, 200))
  87.             state = State.ENTER
  88.         }
  89.          if (message == "Congratulations, you just advanced a Strength level.") {
  90.             log("You have advanced a strength level! WHOOP WHOOP")
  91.             lvlstr++
  92.         }
  93.          if (message == "Congratulations, you just advanced a Attack level.") {
  94.             log("You have advanced a attack level! WHOOP WHOOP")
  95.             lvlatt++
  96.         }
  97.          if (message == "Congratulations, you just advanced a Defence level.") {
  98.             log("You have advanced a defence level! WHOOP WHOOP")
  99.             lvldefe++
  100.         }
  101.          if (message == "Congratulations, you just advanced a Hitpoints level.") {
  102.             log("You have advanced a hitpoints level! WHOOP WHOOP")
  103.             lvlhp++
  104.         }      
  105.         }
  106.    
  107.      String format(final long time) {
  108.         final StringBuilder t = new StringBuilder();
  109.         final long total_secs = time / 1000;
  110.         final long total_mins = total_secs / 60;
  111.         final long total_hrs = total_mins / 60;
  112.         final int secs = (int) total_secs % 60;
  113.         final int mins = (int) total_mins % 60;
  114.         final int hrs = (int) total_hrs % 24;
  115.         if (hrs < 10) {
  116.             t.append("0");
  117.     }
  118.         t.append(hrs);
  119.         t.append(":");
  120.         if (mins < 10) {
  121.             t.append("0");
  122.     }
  123.         t.append(mins);
  124.         t.append(":");
  125.         if (secs < 10) {
  126.             t.append("0");
  127.     }
  128.         else if (secs < 0){
  129.             t.append("0")
  130.         }
  131.         else{
  132.             t.append(secs);
  133.         }
  134.         return t.toString();
  135.     }
  136.  
  137.  
  138.  
  139.     int inCave() {
  140.         if (closestObject(outside) != null) {
  141.             walk(new Position(2438, 5170, 0))
  142.             log("We are still outside... Walking in front of the entrance.")
  143.             client.rotateCameraToAngle(180)
  144.             sleep(300 + gRandom(500, 200))
  145.             state = State.ENTER
  146.             return 3000
  147.         } else {
  148.         npc = closestNPC(caveMonsters)
  149.         if (npc != null) {
  150.             client.moveCameraToEntity(npc)
  151.             selectEntityOption(npc, "Attack")
  152.             log("Attacking NPC.")
  153.             sleep(5000 + gRandom(500, 200))
  154.             state = State.IN_CAVE
  155.         } else {
  156.             log("Can't find NPC.")
  157.             state = State.IN_CAVE
  158.             sleep(5000 + gRandom(500, 200))
  159.             if (closestNPC(2617, 2608) != null) {
  160.             log("we are outside again... Appearantly.")
  161.             sleep(300 + gRandom(500, 200))
  162.             state = State.ENTER }
  163.         }
  164.         return 3000
  165.  
  166.     }
  167.     }
  168.  
  169.    int enterCave() {
  170.         sleep(1000 + gRandom(600, 100))
  171.         Position myPosition = client.getMyPlayer().getPosition()
  172.         RS2Object closestEntrance = null
  173.         double closestDistance = 0
  174.         for(RS2Object object : client.getCurrentRegion().getObjects()) {
  175.             if(object.getId() != 9356)
  176.                 continue
  177.             double distance = myPosition.distance(object.getPosition())
  178.             if(closestEntrance == null || distance < closestDistance) {
  179.                 closestEntrance = object
  180.                 closestDistance = distance
  181.             }
  182.         }
  183.         caveEntrance = closestEntrance
  184.         if (caveEntrance != null) {
  185.             selectEntityOption(caveEntrance, "Enter")
  186.             log("Entering Cave.")
  187.             runs++
  188.             state = State.IN_CAVE
  189.             sleep(10000 + gRandom(500, 200))
  190.         }  else {
  191.             log("No cave found.")
  192.             walk(new Position(2438, 5170, 0))
  193.             log("We are still outside... Walking in front of the entrance.")
  194.             client.rotateCameraToAngle(180)
  195.             state = State.ENTER
  196.         }
  197.         return 200 + gRandom(100, 200)
  198.     }
  199.  
  200.     int onLoop() {
  201.         switch (state) {
  202.             case State.ENTER:
  203.                 return enterCave()
  204.             case State.IN_CAVE:
  205.                 return inCave()
  206.         }
  207.         return 300 + random(500)
  208.      }
  209. }
Advertisement
Add Comment
Please, Sign In to add comment