December 8, 20169 yr I'm a fucking newb at this, my programmer knowledge is basic at best.I can't for the love of my life figure out why this script doesn't start, I don't even get the onStart messages, I am sure I've done something wrong but can't quite pin it. Please ignore all of my shitty practices, as I'm using this to familiarize myself with the API whilst I learn. EDIT: Also would appreciate any tips one may have to offer. import org.osbot.rs07.api.NPCS; import org.osbot.rs07.api.model.NPC; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.script.API; import java.awt.*; @ScriptManifest(name = "TzTok Wine Maker", author = "TzTok Jad", version = 1.0, info = "", logo = "") public class WineMaker extends Script { public int wineMade; public int expGained; public String grapes = "Grapes"; public String jugwater = "Jug of water"; public String unfwine = "Unfermented wine"; NPC banker = npcs.closest("Banker"); @[member='Override'] public void onStart() throws InterruptedException { //Code here will execute before the loop is started log("Starting TzTok Wine Maker"); } @[member='Override'] public void onExit() { //Code here will execute after the script ends } public enum scriptState{ MAKEWINE, BANK, NULL, END } public scriptState getState() { if (inventory.contains(grapes) && inventory.contains(jugwater)){ return scriptState.MAKEWINE; } if (inventory.isEmptyExcept(unfwine)){ return scriptState.BANK; } else{ return scriptState.NULL; } } @[member='Override'] public int onLoop() throws InterruptedException { switch(getState()){ case MAKEWINE: inventory.getItem(grapes).interact(); sleep(random(400,1200)); inventory.getItem(jugwater).interact(); if(getWidgets().get(305, 2).isVisible()){ sleep(random(400,1200)); getWidgets().get(305, 2).interact("Make All"); sleep(random(10000,16000)); } break; case BANK: banker.interact("Bank"); sleep(random(400,1200)); bank.depositAll(); sleep(random(400,1200)); bank.withdraw(jugwater, 14); sleep(random(400,1200)); bank.withdraw(grapes, 14); break; case NULL: log("NULL"); break; default: getState(); break; } return 800; //The amount of time in milliseconds before the loop starts over } @[member='Override'] public void onPaint(Graphics2D g) { //This is where you will put your code for paint(s) } } Edited December 8, 20169 yr by TzTok Jad
December 8, 20169 yr Author NPC banker = npcs.closest("Banker"); Thanks, you have saved much frustration.