Jump to content

Need some help with powermining script


Recommended Posts

Posted

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

Posted

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 ^_^

Posted

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) {

	}

} 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...