cleggy999 Posted July 16, 2015 Share Posted July 16, 2015 Hey, I used a code from someones powerfisher and thought I'd just turn it into a powerminer for educational purposes, trying to get to learn scripting properly. I editted some of the code etc but the scipt is constantly clicking different rock IDs when I have specifically told it mine 1 ID. Here is the code. import java.awt.Graphics2D; import org.osbot.rs07.api.model.Entity; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.utility.Area; @ScriptManifest(author = "Cleggy", info = "kPower", name = "kPowerminer", version = 0, logo = "") public class main extends Script { public static final int[] ORE = {438}; public static final int[] ROCKS = {14863}; private static final Area MININGAREA = new Area(3227, 3153, 3222, 3142); @Override public void onStart() { log("kPowerminer Activated - Beginning to get dem levels bruh"); } private enum State { DROP, MINE }; private State getState() { if (inventory.isFull() && MININGAREA.contains(myPlayer())) return State.DROP; return State.MINE; } @Override public void onExit() { } public int onLoop() throws InterruptedException { switch (getState()) { case MINE: if (inventory.isEmptyExcept(438)); { Entity Spot = objects.closest(ROCKS); if (Spot != null) { Spot.interact("Mine"); sleep(random(400, 600)); } } default : break; } return 400; } @Override public void onPaint(Graphics2D g) { } } any help? I want it to mine a rock until it gets a full inventory then empty, but it just mines 1 ore then instantlly drops it. cheers Quote Link to comment Share on other sites More sharing options...
Precise Posted July 16, 2015 Share Posted July 16, 2015 Hey, I used a code from someones powerfisher and thought I'd just turn it into a powerminer for educational purposes, trying to get to learn scripting properly. I editted some of the code etc but the scipt is constantly clicking different rock IDs when I have specifically told it mine 1 ID. Here is the code. import java.awt.Graphics2D; import org.osbot.rs07.api.model.Entity; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.utility.Area; @ScriptManifest(author = "Cleggy", info = "kPower", name = "kPowerminer", version = 0, logo = "") public class main extends Script { public static final int[] ORE = {438}; public static final int[] ROCKS = {14863}; private static final Area MININGAREA = new Area(3227, 3153, 3222, 3142); @Override public void onStart() { log("kPowerminer Activated - Beginning to get dem levels bruh"); } private enum State { DROP, MINE }; private State getState() { if (inventory.isFull() && MININGAREA.contains(myPlayer())) return State.DROP; return State.MINE; } @Override public void onExit() { } public int onLoop() throws InterruptedException { switch (getState()) { case MINE: if (inventory.isEmptyExcept(438)); { Entity Spot = objects.closest(ROCKS); if (Spot != null) { Spot.interact("Mine"); sleep(random(400, 600)); } } default : break; } return 400; } @Override public void onPaint(Graphics2D g) { } } any help? I want it to mine a rock until it gets a full inventory then empty, but it just mines 1 ore then instantlly drops it. cheers well you are checking whether the inventory is empty except for the ore, and so it will drop it since you have just mined it. instead you want to check if the !getInventory().isFull() then mine else drop ^_^ Quote Link to comment Share on other sites More sharing options...
cleggy999 Posted July 16, 2015 Author Share Posted July 16, 2015 Is this better? I cant test it due to my main account botting. but heres the script, seems to make sense to me. import java.awt.Graphics2D; import org.osbot.rs07.api.model.Entity; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.utility.Area; @ScriptManifest(author = "Cleggy", info = "kPower", name = "kPowerminer", version = 0, logo = "") public class main extends Script { public static final int[] ORE = {438}; public static final int[] ROCKS = {14863}; private static final Area MININGAREA = new Area(3227, 3153, 3222, 3142); @Override public void onStart() { log("kPowerminer Activated - Beginning to get dem levels bruh"); } private enum State { DROP, MINE }; private State getState() { if (!getInventory().isFull() && MININGAREA.contains(myPlayer())) return State.DROP; return State.MINE; } @Override public void onExit() { } public int onLoop() throws InterruptedException { switch (getState()) { case MINE: if (!getInventory().isEmpty()); { Entity Spot = objects.closest(ROCKS); if (Spot != null) { Spot.interact("Mine"); sleep(random(400, 600)); } } default : break; } return 400; } @Override public void onPaint(Graphics2D g) { } } Quote Link to comment Share on other sites More sharing options...
Precise Posted July 16, 2015 Share Posted July 16, 2015 (edited) what if inventory is empty? it wont mine just read through the logic and see for yourself ^_^ Edited July 16, 2015 by Precise Quote Link to comment Share on other sites More sharing options...