Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.osbot.script.Script
- import java.awt.Graphics
- import java.awt.Toolkit;
- import org.osbot.script.Constants
- import org.osbot.script.ScriptManifest
- import org.osbot.script.Script
- import org.osbot.script.rs2.map.Position
- import org.osbot.script.rs2.Client
- import org.osbot.script.rs2.model.RS2Object
- import java.awt.*;
- import javax.imageio.ImageIO;
- import java.io.IOException;
- import java.net.URL;
- import javax.swing.JComboBox;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import java.awt.Color;
- import java.awt.Graphics;
- @ScriptManifest(name = "ZKFightCaves", author = "Zweetkonijn", version = 1.0D, info="Version 1.0 Start outside of the fight caves.")
- class ZKFightCaves extends Script {
- private RS2Object caveEntrance
- enum State {
- ENTER, IN_CAVE
- }
- int[] caveMonsters = [2734, 2735, 2738, 2736, 2737, 2739, 2740, 702]
- def npc = null
- def starttime = null;
- def entrance = 9356
- def state = State.ENTER
- def runs = 0
- def version = 1.0
- int outside = 9362
- def lvlatt = 0
- def lvlstr = 0
- def lvldefe = 0
- def lvlhp = 0
- private final Font font1 = new Font("Arial", 0, 16);
- private final Font font2 = new Font("Arial", 1, 12);
- private final Image img1 = getImage("http://flbocholt.be/zweetkonijn.png");
- private Image getImage(String url) {
- try {
- return ImageIO.read(new URL(url));
- } catch(IOException e) {
- return null;
- }
- }
- void onStart() {
- starttime = System.currentTimeMillis()
- log("Starting...")
- }
- void onPaint(Graphics g) {
- g.setColor(Color.darkGray);
- g.setFont(font1)
- g.drawImage(img1, 1, 339, null)
- g.drawString("ZKFightCaves ${version}", 20, 375)
- g.drawString("Runs: ${runs}", 180, 375)
- g.drawString("Runtime: " + format(System.currentTimeMillis() - starttime), 20, 400)
- g.setFont(font2)
- g.drawString("${lvlatt}", 422, 400)
- g.drawString("${lvlstr}", 422, 430)
- g.drawString("${lvldefe}", 422, 465)
- g.drawString("${lvlhp}", 480, 400)
- }
- void onMessage(String message) {
- if (message == "You have been defeated!") {
- log("Detected death. Entering cave.")
- walk(new Position(2438, 5170, 0))
- client.rotateCameraToAngle(180)
- sleep(1000 + gRandom(500, 200))
- state = State.ENTER
- }
- if (message == "Congratulations, you just advanced a Strength level.") {
- log("You have advanced a strength level! WHOOP WHOOP")
- lvlstr++
- }
- if (message == "Congratulations, you just advanced a Attack level.") {
- log("You have advanced a attack level! WHOOP WHOOP")
- lvlatt++
- }
- if (message == "Congratulations, you just advanced a Defence level.") {
- log("You have advanced a defence level! WHOOP WHOOP")
- lvldefe++
- }
- if (message == "Congratulations, you just advanced a Hitpoints level.") {
- log("You have advanced a hitpoints level! WHOOP WHOOP")
- lvlhp++
- }
- }
- String format(final long time) {
- final StringBuilder t = new StringBuilder();
- final long total_secs = time / 1000;
- final long total_mins = total_secs / 60;
- final long total_hrs = total_mins / 60;
- final int secs = (int) total_secs % 60;
- final int mins = (int) total_mins % 60;
- final int hrs = (int) total_hrs % 24;
- if (hrs < 10) {
- t.append("0");
- }
- t.append(hrs);
- t.append(":");
- if (mins < 10) {
- t.append("0");
- }
- t.append(mins);
- t.append(":");
- if (secs < 10) {
- t.append("0");
- }
- else if (secs < 0){
- t.append("0")
- }
- else{
- t.append(secs);
- }
- return t.toString();
- }
- int inCave() {
- if (closestObject(outside) != null) {
- walk(new Position(2438, 5170, 0))
- log("We are still outside... Walking in front of the entrance.")
- client.rotateCameraToAngle(180)
- sleep(300 + gRandom(500, 200))
- state = State.ENTER
- return 3000
- } else {
- npc = closestNPC(caveMonsters)
- if (npc != null) {
- client.moveCameraToEntity(npc)
- selectEntityOption(npc, "Attack")
- log("Attacking NPC.")
- sleep(5000 + gRandom(500, 200))
- state = State.IN_CAVE
- } else {
- log("Can't find NPC.")
- state = State.IN_CAVE
- sleep(5000 + gRandom(500, 200))
- if (closestNPC(2617, 2608) != null) {
- log("we are outside again... Appearantly.")
- sleep(300 + gRandom(500, 200))
- state = State.ENTER }
- }
- return 3000
- }
- }
- int enterCave() {
- sleep(1000 + gRandom(600, 100))
- Position myPosition = client.getMyPlayer().getPosition()
- RS2Object closestEntrance = null
- double closestDistance = 0
- for(RS2Object object : client.getCurrentRegion().getObjects()) {
- if(object.getId() != 9356)
- continue
- double distance = myPosition.distance(object.getPosition())
- if(closestEntrance == null || distance < closestDistance) {
- closestEntrance = object
- closestDistance = distance
- }
- }
- caveEntrance = closestEntrance
- if (caveEntrance != null) {
- selectEntityOption(caveEntrance, "Enter")
- log("Entering Cave.")
- runs++
- state = State.IN_CAVE
- sleep(10000 + gRandom(500, 200))
- } else {
- log("No cave found.")
- walk(new Position(2438, 5170, 0))
- log("We are still outside... Walking in front of the entrance.")
- client.rotateCameraToAngle(180)
- state = State.ENTER
- }
- return 200 + gRandom(100, 200)
- }
- int onLoop() {
- switch (state) {
- case State.ENTER:
- return enterCave()
- case State.IN_CAVE:
- return inCave()
- }
- return 300 + random(500)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment