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.api.map.Area;
- import java.awt.*;
- import javax.imageio.ImageIO;
- import java.io.IOException;
- import java.net.URL;
- @ScriptManifest(name = "Crystal Key Runner", author = "Unknown", version = 0.4, info="Opens Crystal Key Chests", logo = "http://vignette2.wikia.nocookie.net/runescape2/images/8/82/Crystal_chest.png/revision/latest/scale-to-width-down/200?cb=20130611114449")
- 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(2896, 3450, 2896, 3447);
- long startTime = System.currentTimeMillis();
- public int chestsOpened = 0;
- public String status = "Idle";
- @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(!bank.contains("Crystal key", "Teleport to house", "Ring of dueling")){
- {
- stop(true);
- }
- }
- if(!inventory.contains("Teleport to house")) {
- bank.withdraw("Teleport to house", 1);
- sleep(random(600,700));
- }
- 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(4000,8000));
- } 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 {
- getWalking().walk(doorArea);
- while(myPlayer().isMoving()) {
- sleep(50);
- }
- Entity Door = getObjects().closest(walkArea, "Door");
- if(Door.getId() == 1535){
- Door.interact("Open");
- sleep(random(500,1000));
- } else {
- getWalking().walk(chestArea);
- while(myPlayer().isMoving()) {
- sleep(50);
- }
- }
- }
- public void onMessage(Message m) {
- String s = m.getMessage();
- if(s.contains("unlock the chest")) {
- chestsOpened++;
- }
- }
- public void onExit() {
- log("Thanks for running my crystal key runner!");
- }
- //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("Arial", 0, 15);
- private final Font font2 = new Font("Arial", 0, 10);
- private final Image img1 = getImage("https://www.runehq.com/image/geitems/c/crystal-key.gif");
- @Override
- public void onPaint(Graphics2D g1) {
- Graphics2D g = (Graphics2D)g1;
- g.setColor(color1);
- g.fillRoundRect(8, 345, 503, 113, 16, 16);
- g.setColor(color2);
- g.setStroke(stroke1);
- g.drawRoundRect(8, 345, 503, 113, 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, 165, 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 Reinier", 407, 472);
- g.setColor(color3);
- g.drawString("Made by Reinier", 405, 470);
- Point mP = getMouse().getPosition();
- g.drawRect(mP.x - 10, mP.y - 10, 20, 20);
- g.setColor(Color.GREEN);
- g.setColor(Color.BLUE);
- }
- //END: Code generated using Enfilade's Easel
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement