July 12, 201510 yr This is the first script I have created, there seems to be problem when running the script. It will only drop items but not chop down the willows near it. import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.api.model.Entity; import java.awt.*; @ScriptManifest(author = "SS", info = "First script", name = "test1", version = 0, logo = "") public class Main1 extends Script { public static final int[] WOODCUTTING_ID = { 11753, 11752, 11751 }; @Override public void onStart() { log("Let's get started!"); } private enum State { DROP, CHOP, WAIT }; private State getState() { if (!inventory.isFull()) return State.DROP; return State.CHOP; } @Override public int onLoop() throws InterruptedException { switch (getState()) { case CHOP: if (!myPlayer().isAnimating()) { Entity Willow = objects.closest(WOODCUTTING_ID); if (Willow != null) { Willow.interact("Chop-down"); sleep(random(25, 30)); } } break; case DROP: inventory.dropAll(); break; case WAIT: sleep(random(500, 700)); break; } return random(200, 300); } @Override public void onExit() { log("T!"); } @Override public void onPaint(Graphics2D g) { } } First attempt Also is there any other tutorials out there that can improve my skills? Edited July 12, 201510 yr by saamabd
July 12, 201510 yr if (!inventory.isFull()) return State.DROP; You probably want to drop when inventory.isFull() Also, to not drop your axe you can use a filter: inventory.dropAllExcept(item -> item.getName().contains("axe")); Edited July 12, 201510 yr by Flamezzz
July 12, 201510 yr Here is some tips: I added "Willow logs" so it don't drop the important things in the inventory and in the second code i removed the "Chop-down" and added "Chop down" inventory.dropAll("Willow logs"); Willow.interact("Chop down");
July 12, 201510 yr I think you need cut the logs before dropping. Kappa Edited July 12, 201510 yr by Ryota
July 12, 201510 yr In this line of code: if (!inventory.isFull()) return State.DROP; We are saying if the inventory is not full, we drop the logs. And of course, the fallback is the chopping state - which will be returned after every condition is not met (in this case, the inventory is full when we want to chop logs). Solution: if (inventory.isFullExcept("Bronze axe")) return State.DROP; return State.CHOP;
July 12, 201510 yr nvm you need to switch up the returns with chop and drop Edited July 12, 201510 yr by itzDot
Create an account or sign in to comment