Jump to content

OakCutting Bot Help


Recommended Posts

Posted


I am using Apaecs guide, but added wood cutting instead of thieving tea from stalls. I am trying to bank the oak logs that I have chopped. Any ideas?

package sixshots2;

import org.osbot.rs07.api.Bank;

import org.osbot.rs07.api.*;

import org.osbot.rs07.api.model.Entity;

import org.osbot.rs07.script.Script;

import org.osbot.rs07.script.ScriptManifest;

import java.awt.*;

@ScriptManifest(author = "CaptWingo", info = "My first script", name = "OakCutting", version = 1.01, logo = "")

public class sixshots extends Script {

@Override

public void onStart() {

}

private enum State {

Chop, Wait, Bank

};

private State getState() {

Entity Oak = objects.closest("Oak");

if (!inventory.isEmpty())

return State.Bank;

if (Oak != null)

return State.Chop;

return State.Wait;

}

@Override

public int onLoop() throws InterruptedException {

switch (getState()) {

case Chop:

Entity Oak = objects.closest("Oak");

if (Oak != null) {

Oak.interact("Chop-down");

}

break;

case Bank:

inventory.store.Deposit(OakLogs);

break;

case Wait:

sleep(random(500, 700));

break;

}

return random(200, 300);

}

@Override

public void onExit() {

}

@Override

public void onPaint(Graphics2D g) {

}

  • Like 1
Posted (edited)
I am using Apaecs guide, but added wood cutting instead of thieving tea from stalls. I am trying to bank the oak logs that I have chopped. Any ideas?



package sixshots2;

import org.osbot.rs07.api.Bank;
import org.osbot.rs07.api.*;
import org.osbot.rs07.api.model.Entity;
import org.osbot.rs07.script.Script;
import org.osbot.rs07.script.ScriptManifest;

import java.awt.*;

@ScriptManifest(author = "CaptWingo", info = "My first script", name = "OakCutting", version = 1.01, logo = "")
public class sixshots extends Script {

	@Override
	public void onStart() {
		
	}

	private enum State {
		Chop, Wait, Bank
	};

	private State getState() {
		Entity Oak = objects.closest("Oak");
		if (!inventory.isEmpty())
			return State.Bank;
		if (Oak != null)
			return State.Chop;
		return State.Wait;
	}

	@Override
	public int onLoop() throws InterruptedException {
		switch (getState()) {
		case Chop:
			Entity Oak = objects.closest("Oak");
			if (Oak != null) {
				Oak.interact("Chop-down");
			}
			break;
		case Bank:
			inventory.store.Deposit(OakLogs);
			break;
		case Wait:
			sleep(random(500, 700));
			break;
		}
		return random(200, 300);
	}

	@Override
	public void onExit() {
		
	}

	@Override
	public void onPaint(Graphics2D g) {

	}

} 

 

You need 4 states. Bank, WalkToBank, Chop, and WalkToTrees. They should be as follows

if(inventory.isFull()&&!BANKAREA.contains(myPlayer())
return State.WALKTOBANK;
if(inventory.isFull()&&BANKAREA.CONTAINS(myPlayer())
return State.BANK;
if(!inventory.isFull()&&TREEAREA.contains(myPlayer())
return State.CHOP;
if(!inventory.isFull()&&!TREEAREA.conntains(myPlayer())
return State.WALKTOTREES;

So you're going to need to make paths for walking to the bank, walking to tthe trees, and areas for the bank and the area you want to cut oaks.

 

Then for banking, it should look something like this

if(bank.isOpenn())
{
Entity bankBooth = objects.closest("Bank booth")
bankBooth.interact("Bank");
bank.depositAll("Oak logs");
sleep(random(500,1000));
bank.close;
}
else
bankBooth.interact("Bank");
sleep(random(500,1000));
Edited by Twin
  • Like 1

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...