Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package CrystalKey;
- import org.osbot.rs07.api.model.Entity;
- import org.osbot.rs07.api.ui.EquipmentSlot;
- import org.osbot.rs07.api.ui.Message;
- import org.osbot.rs07.script.Script;
- import org.osbot.rs07.script.ScriptManifest;
- import org.osbot.rs07.utility.Area;
- import java.awt.*;
- import javax.imageio.ImageIO;
- import java.io.IOException;
- import java.net.URL;
- @ScriptManifest(name = "Crystal Key Runner", author = "Rumb", version = 1.1D, info="Opens Crystal Key Chests", logo = "")
- public class CrystalKey extends Script{
- public Area bankArea = new Area(2435, 3100, 2455, 3075);
- public Area chestArea = new Area(2912, 3452, 2917, 3448);
- public Area walkArea = new Area(2882, 3472, 2932, 3428);
- public Area doorArea = new Area(2893, 3452, 2896, 3447);
- long startTime = System.currentTimeMillis();
- public int chestsOpened = 0;
- public String status = "Nothing";
- @Override
- public int onLoop() throws InterruptedException {
- if(bankArea.contains(myPlayer())) {
- log("doBankChecks()");
- doBankChecks();
- }
- if(!inventory.contains("Crystal key") && walkArea.contains(myPlayer())) {
- log("interacting");
- String dueling = "Ring of dueling(";
- for(int x = 0; x < 9; x++) {
- if(equipment.getItem("Ring of dueling(" + x + ")") != null) {
- dueling = dueling+x+")";
- break;
- }
- }
- status = "Teleporting";
- equipment.getItem(dueling).interact("Castle Wars");
- sleep(random(5000,6000));
- }
- if(getObjects().closest("Portal") != null && !walkArea.contains(myPlayer())) {
- log("clickPortal()");
- clickPortal();
- }
- if(chestArea.contains(myPlayer()) && inventory.contains("Crystal key")) {
- log("openChests()");
- openChests();
- }
- if(walkArea.contains(myPlayer()) && !chestArea.contains(myPlayer())) {
- log("walkToChest()");
- walkToChest();
- }
- return 3;
- }
- public void bank() throws InterruptedException {
- if(bank.isOpen()) {
- status = "Banking";
- if(inventory.contains("Uncut dragonstone")) {
- bank.depositAll();
- sleep(random(1000,2000));
- }
- if(!inventory.contains("Crystal key")) {
- bank.withdraw("Crystal key", 8);
- sleep(random(400,500));
- }
- if(!inventory.contains("Teleport to house")) {
- bank.withdraw("Teleport to house", 1);
- sleep(random(400,500));
- }
- if(!equipment.isWearingItem(EquipmentSlot.RING)) {
- String dueling = "Ring of dueling(";
- for(int x = 0; x < 9; x++) {
- if(bank.getItem("Ring of dueling(" + x + ")") != null) {
- dueling = dueling+x+")";
- break;
- }
- }
- bank.withdraw(dueling, 1);
- sleep(random(400,500));
- }
- status = "Closing Bank";
- bank.close();
- sleep(random(1000,2000));
- doBankChecks();
- } else {
- bank.open();
- sleep(random(1000,2000));
- bank();
- }
- }
- public void doBankChecks() throws InterruptedException {
- sleep(random(1000,2000));
- if(!bank.isOpen()) {
- String dueling = "Ring of dueling(";
- for(int x = 0; x < 9; x++) {
- if(inventory.getItem("Ring of dueling(" + x + ")") != null) {
- dueling = dueling+x+")";
- break;
- }
- }
- if(inventory.contains(dueling)) {
- status = "Equiping";
- inventory.getItem(dueling).interact("Wear");
- sleep(random(2000,4000));
- }
- if(inventory.contains("Crystal key") && inventory.contains("Teleport to house") && equipment.isWearingItem(EquipmentSlot.RING)) {
- status = "Teleporting";
- inventory.getItem("Teleport to house").interact("Break");
- sleep(random(2000,4000));
- } else {
- bank();
- }
- } else {
- bank.close();
- sleep(random(1000,2000));
- }
- }
- public void clickPortal() throws InterruptedException {
- status = "Exiting House";
- Entity portal = getObjects().closest("Portal");
- portal.interact("Enter");
- log("interacted");
- sleep(random(1000,2000));
- }
- public void openChests() throws InterruptedException {
- status = "Opening Chests";
- Entity chest = getObjects().closest(chestArea, "Closed chest");
- inventory.getItem("Crystal key").interact("Use");
- sleep(random(500,1000));
- chest.interact("Use");
- sleep(random(3000,3500));
- checkInv();
- }
- public void checkInv() {
- if(inventory.contains("Air rune")) {
- inventory.drop("Air rune");
- }
- if(inventory.contains("Body rune")) {
- inventory.drop("Body rune");
- }
- if(inventory.contains("Mind rune")) {
- inventory.drop("Mind rune");
- }
- if(inventory.contains("Earth rune")) {
- inventory.drop("Earth rune");
- }
- if(inventory.contains("Fire rune")) {
- inventory.drop("Fire rune");
- }
- if(inventory.contains("Water rune")) {
- inventory.drop("Water rune");
- }
- if(inventory.contains("Spinach roll")) {
- inventory.getItem("Spinach roll").interact("Eat");
- }
- if(inventory.contains("Raw swordfish")) {
- inventory.drop("Raw swordfish");
- }
- }
- public void walkToChest() throws InterruptedException {
- getLocalWalker().walk(doorArea,true);
- while(myPlayer().isMoving()) {
- sleep(50);
- }
- Entity door = getObjects().closest(walkArea, "Door");
- if(door.getId() == 7122){
- door.interact("Open");
- sleep(random(1000,2000));
- } else {
- getLocalWalker().walk(chestArea,true);
- while(myPlayer().isMoving()) {
- sleep(50);
- }
- }
- }
- public void onMessage(Message m) {
- String s = m.getMessage();
- if(s.contains("unlock the chest")) {
- chestsOpened++;
- }
- }
- //START: Code generated using Enfilade's Easel
- private Image getImage(String url) {
- try {
- return ImageIO.read(new URL(url));
- } catch(IOException e) {
- return null;
- }
- }
- private final Color color1 = new Color(0, 102, 102, 70);
- private final Color color2 = new Color(0, 0, 0);
- private final Color color3 = new Color(255, 255, 255);
- private final BasicStroke stroke1 = new BasicStroke(4);
- private final Font font1 = new Font("Impact", 0, 22);
- private final Font font2 = new Font("Impact", 0, 12);
- private final Image img1 = getImage("http://i.imgur.com/T43DTZN.png");
- @Override
- public void onPaint(Graphics2D g1) {
- Graphics2D g = (Graphics2D)g1;
- g.setColor(color1);
- g.fillRoundRect(145, 340, 369, 138, 16, 16);
- g.setColor(color2);
- g.setStroke(stroke1);
- g.drawRoundRect(145, 340, 369, 138, 16, 16);
- g.setFont(font1);
- long runTime = 0;
- long seconds = 0;
- long minutes = 0;
- long hours = 0;
- runTime = System.currentTimeMillis() - startTime;
- seconds = runTime / 1000;
- if (seconds >= 60) {
- minutes = seconds / 60;
- seconds -= (minutes * 60);
- }
- if (minutes >= 60) {
- hours = minutes / 60;
- minutes -= (hours * 60);
- }
- g.drawString("Time Run: " + hours + ":" + minutes + ":" + seconds, 271, 383);
- g.setColor(color3);
- g.drawString("Time Run: " + hours + ":" + minutes + ":" + seconds, 269, 381);
- g.drawImage(img1, 145, 342, null);
- g.setColor(color2);
- g.drawString("Opened: " + chestsOpened, 272, 416);
- g.setColor(color3);
- g.drawString("Opened: " + chestsOpened, 270, 414);
- g.setColor(color2);
- g.drawString("Task: " + status, 272, 448);
- g.setColor(color3);
- g.drawString("Task: " + status, 270, 446);
- g.setFont(font2);
- g.setColor(color2);
- g.drawString("Made by Rumb", 407, 472);
- g.setColor(color3);
- g.drawString("Made by Rumb", 405, 470);
- Point p = new Point((int) mouse.getPosition().getX(), (int) mouse.getPosition().getY());
- g.setColor(Color.RED);
- g.drawLine(0, p.y, 800, p.y);
- g.drawLine(p.x, 0, p.x, 800);
- g.setColor(Color.BLUE);
- }
- //END: Code generated using Enfilade's Easel
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement