Jump to content

Rare scripts

Scripter I
  • Posts

    246
  • Joined

  • Last visited

  • Feedback

    98.1%

Everything posted by Rare scripts

  1. Did not see a invite, can you send me a PM with ur discord tag please?
  2. Wrote this quickly in 15min, hope somebody can learn something from it .jar file is at end of topic. -Rare import java.awt.Color; import java.awt.Graphics2D; import java.util.ArrayList; import java.util.List; import java.util.function.BooleanSupplier; import org.osbot.rs07.api.map.Area; import org.osbot.rs07.api.map.Position; import org.osbot.rs07.api.model.GroundItem; import org.osbot.rs07.api.ui.Message; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; @ScriptManifest(author = "Rare Scripts", name = "Plank Looter", info = "Loot planks at Barbarian Outpost", version = 1, logo = "") public final class PlankLooter extends Script { String currentState; public final Position bankTile = new Position(2536, 3572, 0); public final Position plankTile = new Position(2553, 3575, 0); @Override public final void onStart() { currentState = "Starting script..."; } public void hopWorld() throws InterruptedException { int oldWorld = getWorlds().getCurrentWorld(); if (getWorlds().hopToP2PWorld()) { Sleep.sleepUntil(() -> getWorlds().getCurrentWorld() != oldWorld && getClient().isLoggedIn(), 7000); } } public void handleBank() throws InterruptedException { if (getBank().getDepositBox().open()) { Sleep.sleepUntil(() -> getBank().getDepositBox().isOpen(), 9000); if (getBank().getDepositBox().isOpen()) { getBank().getDepositBox().depositAll(); if (getBank().getDepositBox().close()) { Sleep.sleepUntil(() -> !getBank().getDepositBox().isOpen(), 9000); } } } } public boolean findPlanks() { GroundItem i = getGroundItems().closest("Plank"); return i != null && map.canReach(i) && map.distance(i) <= 15; } public void lootPlanks() { GroundItem i = getGroundItems().closest("Plank"); if (i != null && map.canReach(i) && map.distance(i) <= 15) { if (i.interact("Take")) { Sleep.sleepUntil(() -> !i.exists() || i == null || getInventory().isFull(), 9000); } } } @Override public final int onLoop() throws InterruptedException { if (getInventory().isFull()) { if (bankTile.distance(myPlayer().getPosition()) <= 2) { currentState = "Banking"; handleBank(); } else { currentState = "Running to Bank"; getWalking().webWalk(bankTile); } } else { if (plankTile.distance(myPlayer().getPosition()) <= 7) { if (findPlanks()) { currentState = "Looting Planks"; lootPlanks(); } else { currentState = "No Planks, hop world"; hopWorld(); } } else { currentState = "Running to Planks"; getWalking().webWalk(plankTile); } } return random(50, 500); } @Override public final void onExit() { log("Script terminated! :)"); } @Override public final void onMessage(final Message message) { // log("New msg: " + message.getMessage()); } @Override public void onPaint(final Graphics2D g) { g.drawString("Rare Plank Looter", 12, 130); g.drawString("State: " + currentState, 12, 150); } } Sleep class (Special thanks to Explv): import java.util.function.BooleanSupplier; import org.osbot.rs07.utility.ConditionalSleep; //Thanks to Explv: class Sleep extends ConditionalSleep { private final BooleanSupplier condition; public Sleep(final BooleanSupplier condition, final int timeout) { super(timeout); this.condition = condition; } @Override public final boolean condition() throws InterruptedException { return condition.getAsBoolean(); } public static boolean sleepUntil(final BooleanSupplier condition, final int timeout) { return new Sleep(condition, timeout).sleep(); } } PlankLooter.jar
×
×
  • Create New...