Precise Posted March 17, 2015 Share Posted March 17, 2015 (edited) I'm stille getting used to the API, so it's kinda hard to find ... Also, you gold me the coin id, bit how could I find such things myself? I would use Names instead of ID's if you can, will stop the script breaking if they change the ID's in a Runescape update.. Keep exploring the API. Precise. Edited March 17, 2015 by Precise Quote Link to comment Share on other sites More sharing options...
Khaleesi Posted March 17, 2015 Share Posted March 17, 2015 I'm stille getting used to the API, so it's kinda hard to find ... Also, you gold me the coin id, bit how could I find such things myself? the client debugger interface Found under the settings icon at the client. Then enable inventory debug or anything else that you want to see/debug Khaleesi Quote Link to comment Share on other sites More sharing options...
Rushomi Posted March 17, 2015 Share Posted March 17, 2015 this is a very good begginer script, keep doing ur thing , knowledge is power! Quote Link to comment Share on other sites More sharing options...
Rudie Posted March 17, 2015 Share Posted March 17, 2015 I'm stille getting used to the API, so it's kinda hard to find ... Also, you gold me the coin id, bit how could I find such things myself? Go to settings at the client and click debug inventory, you should get the id's of every item in your inventory. Quote Link to comment Share on other sites More sharing options...
Scorncial Posted March 17, 2015 Author Share Posted March 17, 2015 completeDialogue(java.lang.String... options) Completes the current dialogue using the specified options when available. How exactly should I use this so he picks the first option? This is the code I currently have, Eclispe is giving an error at each line starting with "Dialogues.", what's the proble there and how can I solve it? DO you guys have any other suggestions on things I could improve? import org.osbot.rs07.api.model.NPC; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.api.Dialogues; import java.awt.*; @ScriptManifest(author = "Me", info = "Buys Woad leaves from Wyson the gardener in Falador Park", name = "Woad Leaf Buyer", version = 0.1, logo = "") public class main extends Script { @Override public void onStart() { log("Woad Leaf Buyer has started."); } @Override public int onLoop() throws InterruptedException { if(!(inventory.getAmount(995) < 20)) { stop(); } NPC gardener = npcs.closest("Wyson the gardener"); if (gardener != null) { gardener.interact("Talk-to"); return random(200, 300); Dialogues.clickContinue(); return random(200, 300); Dialogues.clickContinue(); return random(200, 300); Dialogues.selectOption(2, 1); return random(200, 300); Dialogues.clickContinue(); return random(200, 300); Dialogues.clickContinue(); return random(200, 300); Dialogues.selectOption(4, 4); return random(200, 300); Dialogues.clickContinue(); return random(200, 300); Dialogues.clickContinue(); return random(200, 300); Dialogues.clickContinue(); } return random(200, 300); } @Override public void onExit() { log("Thanks for running my first script"); } @Override public void onPaint(Graphics2D g) { } } Quote Link to comment Share on other sites More sharing options...
Lemons Posted March 17, 2015 Share Posted March 17, 2015 change Dialogues to getDialogues() Quote Link to comment Share on other sites More sharing options...
Scorncial Posted March 17, 2015 Author Share Posted March 17, 2015 change Dialogues to getDialogues() I did that and Eclipse is still giving me an error, it says: "getDialogues cannot be resolved". Quote Link to comment Share on other sites More sharing options...
Lemons Posted March 17, 2015 Share Posted March 17, 2015 its a function, not a variable. For a variable do dialogues all lowercase. Quote Link to comment Share on other sites More sharing options...
Scorncial Posted March 17, 2015 Author Share Posted March 17, 2015 Now it tells me "org.osbot.rs07.api.Dialogues is never used" on line 4 and on line 26: "dialogues.clickContinue(); is unreachable code". import org.osbot.rs07.api.model.NPC; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.api.Dialogues; import java.awt.*; @ScriptManifest(author = "Me", info = "Buys Woad leaves from Wyson the gardener in Falador Park", name = "Woad Leaf Buyer", version = 0.1, logo = "") public class main extends Script { @Override public void onStart() { log("Woad Leaf Buyer has started."); } @Override public int onLoop() throws InterruptedException { if(!(inventory.getAmount(995) < 20)) { stop(); } NPC gardener = npcs.closest("Wyson the gardener"); if (gardener != null) { gardener.interact("Talk-to"); return random(200, 300); dialogues.clickContinue(); return random(200, 300); dialogues.clickContinue(); return random(200, 300); dialogues.selectOption(2, 1); return random(200, 300); dialogues.clickContinue(); return random(200, 300); dialogues.clickContinue(); return random(200, 300); dialogues.selectOption(4, 4); return random(200, 300); dialogues.clickContinue(); return random(200, 300); dialogues.clickContinue(); return random(200, 300); dialogues.clickContinue(); } return random(200, 300); } @Override public void onExit() { log("Thanks for running Woad Leaf Buyer"); } @Override public void onPaint(Graphics2D g) { } } Quote Link to comment Share on other sites More sharing options...
Lemons Posted March 17, 2015 Share Posted March 17, 2015 Yeah, any code after a return is not executed, therefore unreachable in your code. Replace return random(200, 300) with sleep(200, 300) or better yet conditional sleeps (look at API). Quote Link to comment Share on other sites More sharing options...
Scorncial Posted March 17, 2015 Author Share Posted March 17, 2015 (edited) Yeah, any code after a return is not executed, therefore unreachable in your code. Replace return random(200, 300) with sleep(200, 300) or better yet conditional sleeps (look at API). It's giving me another error, when I change "return random" with "sleep", Eclipse tells me: "Tha method sleep(long) in the type MethodProvider is not applicable for the arguments (int, int). So I suppose it's not possible to sleep a random amount of time? And it still gives me the unreacable error on the first "dialogues.clickContinue();". Edited March 17, 2015 by Scorncial Quote Link to comment Share on other sites More sharing options...
Lemons Posted March 17, 2015 Share Posted March 17, 2015 Sorry, do sleep(random(200, 300)). You have to remove the "return" part, else the code will remain unreachable. Quote Link to comment Share on other sites More sharing options...
Scorncial Posted March 17, 2015 Author Share Posted March 17, 2015 Sorry, do sleep(random(200, 300)). You have to remove the "return" part, else the code will remain unreachable. Thanks a lot, everything seems to be working fine now How could I implement the coditionalsleep, so that it only sleeps as long as the next dialogue has been opened? Quote Link to comment Share on other sites More sharing options...
Acinate Posted March 21, 2015 Share Posted March 21, 2015 I'm stille getting used to the API, so it's kinda hard to find ... Also, you gold me the coin id, bit how could I find such things myself? To get the ID for anything, put it in your inventory, go to SETTINGS > DEBUG > [x] Interface Debugging and hover over the item. Quote Link to comment Share on other sites More sharing options...