Jump to content

Need some help with powermining script


cleggy999

Recommended Posts

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

	}

} 
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

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