Jump to content

Help me with one of my first scripts please!


Recommended Posts

Posted

This is my first post, im  sorry if i did something wrong. 

I am trying to write a script that makes Uncooked pizza (pizza base, cheese and tomato), and i dont know why it doesn't work. I really need some tips to make better code and make it works

 

My script:

import java.awt.Graphics2D;

import org.osbot.rs07.api.ui.RS2Widget;
import org.osbot.rs07.script.Script;
import org.osbot.rs07.script.ScriptManifest;

@ScriptManifest(author = "Marcelo", info = "makes cheese and tomatoes pizzas", name = "PizzaHut", version = 0, logo = "")
public class PizzaMaker extends Script {

	@Override
	public void onStart() {
		log("Let's make pizza!");
	}
	
	private enum State {
		WITHDRAW, DEPOSIT, TOMATO, CHEESE, WIDGET, NOTHING;
	}
	
	private State getState() {
		RS2Widget cooking_interface = widgets.get(270, 14);
		if(cooking_interface != null && cooking_interface.isVisible()) {
			return State.WIDGET;
		}

		if(getInventory().contains("Tomato") && getInventory().contains("Pizza base") && !bank.isOpen()) {
			return State.TOMATO;
		}
		if(getInventory().contains("Incomplete pizza") && getInventory().contains("Cheese") && !bank.isOpen()) {
			return State.CHEESE;
		}
		if(getInventory().onlyContains("Uncooked pizza")) {
			return State.DEPOSIT;
		}
		if(!getInventory().contains("Pizza base", "Cheese", "Tomato")) {
			return State.WITHDRAW;
		}
		
		return State.NOTHING;
	}
	@Override
	public int onLoop() throws InterruptedException {
		RS2Widget cooking_interface = widgets.get(270, 14);

		switch(getState()) {
		case WIDGET:
			cooking_interface.interact("Make");
	
		case TOMATO:
			if(!myPlayer().isAnimating()) {
				getInventory().interact(random(4, 7));
				sleep(random(200,400));
				getInventory().interact(random(9, 11));
				sleep(random(200, 400));
			}
	
		case CHEESE:
			if(!myPlayer().isAnimating()) {
				getInventory().interact(8);
				sleep(random(200,400));
				getInventory().interact(random(18, 20));
				sleep(random(200, 400));
			}
		
		case DEPOSIT:
			if(!bank.isOpen()) {
				bank.open();
			}
			bank.depositAll();
		
		case WITHDRAW:
			if(!bank.isOpen()) {
				bank.open();
			}
			else if(!getInventory().contains("Pizza base")) {
				bank.withdraw("Pizza base", 9);
			}
			else if(!getInventory().contains("Tomato")) {
				bank.withdraw("Tomato", 9);
			}
			else if(!getInventory().contains("Cheese")) {
				bank.withdraw("Cheese", 9);
			}
			else {
				bank.close();
			}
		case NOTHING:
			log("I DONT KNOW!");
			sleep(100);
		
			
		}
		return random(300, 700);
	}

	@Override
	public void onExit() {
		log("Done.");
	}

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